JMRI® is...
The Next Generation of Layout Automation
JMRI tools for working with your layout:
Layout Automation
Use JMRI to automate parts of your layout and operations:
By the community of

JMRI Help:

Contents Index
Glossary FAQ

Donate to JMRI Donate to

JMRI: LogixNG Table Editor

The Edit LogixNG table contains a list of the defined ConditionalNGs.

Table Content

The LogixNG Editor table lists all of the currently defined ConditionalNGs.

LogixNG Editor
System Name
The system name for the ConditionalNG. ConditionalNG system names have an IQC prefix normally followed by numbers. For details about the ConditionalNG system name, see Add a ConditionalNG. The system name cannot be changed.
User Name
The user name for the ConditionalNG. This is a free form field that contains a meaningful name.
The thread field shows the currently assigned thread name. It is changed by using the Edit threads button. This is particular useful when using the LogixNG Debugger.
The Edit button opens the ConditionalNG Editor window.
The LogixNG Debugger allows you to walk thru a ConditionalNG step by step to see what it is actually doing. See LogixNG Debugger
The Delete button deletes the current ConditionalNG and the ConditionalNG content. A confirmation dialog will be displayed.
Delete ConditionalNG Confirmation
Edit threads

LogixNG runs the ConditionalNGs in the LogixNG Java thread. This reduces conflicts with other parts of JMRI.

The thread for a ConditionalNG can be changed to use a different thread. This makes it possible to isolate long running or complex ConditionalNGs. Another use is to use the Debug thread when using the Debug option. The Debug option stops the thread for each step. By using the Debug thread, the other LogixNG ConditionalNGs are not affected.

When the Edit threads button is selected, the Thread editor opens.

Edit threads dialog

The default LogixNG and Debug threads are displayed. The Add thread button can be used to create new threads. The threads in the dialog can be used by any ConditionalNG. Unused threads can be deleted using the delete button.

The Select thread button is used to assign a different thread to the current ConditionalNG. This is NOT a real time change. The thread is assigned during the layout data file load process. This means that after a different thread is selected, the layout data has to be stored, PanelPro is stopped and restarted and the layout data file is loaded.

Show startup thread checkbox
When unchecked, the Thread column displays the thread assignments for the current PanelPro session. When checked, the column displays the planned thread assignments for the next PanelPro session. If a thread assignment was changed, a layout data file Store needs to occur before stopping PanelPro.

Add a ConditionalNG

To create a new ConditionalNG, click on the Add... button. The Add ConditionalNG window will be displayed.

Add ConditionalNG

The system name is required. The system name for a ConditionalNG always begins with the letters IQC. If the entered name does not start with IQC, it will be automatically added. The typical suffix is a number. If Automatically generate System Name is checked, the system name format will be IQC:AUTO:nnnn. Any other format requires adding a $ (dollar) character between IQC and the suffix.

The ConditionalNG system name is not derived from the the parent LogixNG system name. This is different than the Logix procedure.

The user name is optional but recommended. A user name may be any useful text, provided the new user name was not previously assigned to another ConditionalNG in this LogixNG. The user name can be the same as another ConditionalNG that is in a different LogixNG.

Once a ConditionalNG is created, its system name cannot be changed. Its user name may be changed in the Edit LogixNG window. The user name is usually used to provide a more descriptive name, for example, "Signal 5 Control".

After clicking Create, the ConditionalNG will be created and the Edit ConditionalNG window will appear.


During initial startup of a LogixNG, the ConditionalNGs will be executed in sequence. The sequence for subsequent executions is dependent on JMRI change events.

When the Reorder button is pressed, the Edit labels for each row will change to First. After the first ConditionalNG is selected, the label will change to 1 and the remaining labels will change to Next. As each Next is selected, the label will change to the new row number. When all of the Next labels have been selected, the labels will change back to Edit.


When the Execute button is pressed, the ConditionalNG Expressions will be evaluated using the current JMRI states and the appropriate Actions will be performed.


When the Close button is pressed, the Edit LogixNG window will close.


When the Delete button is pressed, the LogixNG, its ConditionalNGs and related content will be deleted. The LogixNG delete confirmation dialog will be displayed.