Adding/Editing Logix

In the Add Logix window, entering a system name and a user name, then clicking Create Logix, will create a new Logix, and bring up the Edit Logix window. A user name may be any useful text, provided the new user name was not previously assigned to another Logix. Once a Logix is created, its system name cannot be changed. Its user name may be changed in either the Logix Table or the Edit Logix window. The user name is usually used to identify the particular Logix, for example, "Signal 5 Control".

The system name for a Logix always must begin with the two letters IX, usually followed by a number selected by the user. For example, valid Logix system names include: IX1, IX34, and IX100. All letters in a system name must be in upper case. If the user enters lower case letters, JMRI will automatically convert them to upper case. Also, as a convenience to the user, if the entered system name does not begin with IX, the program will add IX in front of what is entered. For example, to enter a system name of IX32, simply enter 32 in the system name field, and the program will do the rest.

The Edit Logix pane allows Conditionals to be created and edited. The system name and user name of the Logix are displayed at the top. The user name may be changed by entering/modifying the text in the User Name field. Next is a table of Conditionals belonging to the Logix. To add a new Conditional, click the New Conditional button under the Conditional Table. (See also the separate help page on adding/editing Conditionals) This will create a new Conditional (a new row in the Conditional Table), and open the Edit Conditional pane allowing the logical expression and actions of the new Conditional to be defined. An existing Conditional may be edited by clicking the Edit button of that Conditional in the table. The user name of the Conditional may be changed in the table. Conditional user names may be any useful text, provided the new user name is not used by another Conditional belonging to this Logix. It may be the same as the user name of another Logix's Conditional. When editing the user name (or any item in any JMRI table) please remember to move to another cell in the table so that the program is notified that you have finished your entry, otherwise the entry may not take effect.

Clicking Calculate under the Conditional Table causes all Conditionals of the Logix to be calculated. Resulting states are displayed in the State column of the table. Since the Logix is "inactive" while being edited, no Conditional actions are taken when the Calculate button is pressed.

The order of Conditionals in the Conditional Table may be changed by clicking Reorder (below the Conditional Table). Clicking Reorder changes all edit buttons in the last Column of the table to First. Select the Conditional that is to be first, and it is immediately moved to the top of the table. All remaining buttons change to Next. Select remaining Conditionals in desired order, until all buttons change back to Edit. Note that the order that Conditionals are listed in the Logix does not determine the order in which they're evaluated, nor does it force evaluation of one Conditional when an earlier or later one is evaluated. For more on this, see the discussion on the Logix main page.

When Done is clicked at the bottom of the Edit Logix window, any change in the Logix user name is checked and made. A check is made for inconsistencies in specifying that an entity (sensor, turnout, etc.) referenced in multiple state variables is not monitored as a trigger for calculation of the Logix, and a warning message appears if any inconsistencies are found. Then the Logix is activated, the Edit Logix window is dismissed, and the user is returned to the Logix Table. Immediately before the Logix is activated, the state of all its Conditionals is set to UNKNOWN. Immediately after activation, all Conditionals are calculated.

The Edit Logix window also provides a way to delete a Logix if it is no longer needed. Click Delete Logix to delete the Logix being edited and all its Conditionals.

For more information, consult the main Logix documentation.