JMRI: Simple Signal Logic Documentation

Contents

The documentation below describes Signaling with JMRI, and discusses how to set up the basic signal situations. The documentation is divided into sections; click below for easy access to a listed section. If you prefer to try before reading much, read Introduction to SSL, then click Getting Started and follow those instructions. Return here to read about what you did.

Vocabulary

Some basic signal terms:

Signal Arm or Signal Head
Each individual signal unit.
Aspect
The speed or route indication given by one or more signal heads or arms.
Marker
A signal head or arm that does not change color or position.
Light
The individual lamp in a signal. A light may indicate multiple aspects if it changes color like in a searchlight signal, or it may take multiple lights to indicate a single aspect, for example in position light signals.
Mast
The pole that mounts one or more signal arms that (usually) control each individual track.
Distant Signal
A distant signal shows the same or more restrictive aspect as the next signal in the direction and route of travel.

Some JMRI specific SSL and Signal terms:

Signal Head Table
The list of signals in JMRI. Signals must first be added into the Signal Head Table before they may be included in a SSL entry or Logix.
Triple Output
A signal head that has each aspect of the signal directly driven from an individual output (called a turnout) line. Each aspect change requires that three commands be sent.
Double Output
A signal head that uses just two output lines to indicate 4 signal aspects. Usually these aspects will be Clear, Approach, Stop, and Dark. The output coding is such that one turnout thrown (on) controls the stop and the other thrown (on) controls the clear. Both outputs thrown (on) controls the approach, and both closed (off) are dark. Each aspect change requires that two commands be sent.
SE8c
A signal head controlled by a single turnout command per aspect change. One turnout command changes between stop and clear, and the second turnout command changes between approach and dark.
Virtual
Virtual signals are JMRI internal signals with no actual hardware attached. Before the advent of Logix, Virtual Signals were required to solve more complex operations than can be done with with a single SSL alone.
Protected Sensor
The next block sensor/s following the signal you are controlling in the direction and route of travel. The "protection" is to prevent a train from entering an occupied block without warning.
Protected Signal
The next signal after the one you are controlling in the direction and route of travel. The "protection" is to prevent a train from approaching a stop signal without sufficient warning to allow it to be stopped short of reaching the "protected" signal.
System Name
The internal JMRI representation for the actual hardware being used to control the signal. This will vary depending on your hardware, and must match your system.

Signal Head Table

All the signals that JMRI knows about can be referenced using the "Signal Head Table" tool in the Tools menu of most JMRI programs. There are eight columns in the table:

Simple Signal Logic panel figure

To define a new signal, click on the Add... button. It will prompt you for the signal type (Triple Output; Double Output; SE8c; etc), and whatever setup information is needed for your choice.

This information is saved with the configuration in an XML file, along with control panel setup, Logix, Routes, and similar stuff. For more information on creating and displaying panels, including how to show signals on your panels, please see the Panels pages.

Introduction to SSL

SSL is a JMRI tool to enable the rapid setup of basic ABS style signaling. For more complex operations beyond the capability of SSL refer to the section on Logix. The SSL user interface is designed to be user friendly to all users with basic familiarity with JMRI. SSL provides a means for setting up basic signals in an intuitive manner, without the user having to be familiar with all of the logic necessary to account for the different aspects.

Simple Signal Logic

Simple Signal Logic panel figure Much of basic ABS signaling can be boiled down to "a signal goes red when a train can't safely enter the block it protects; it goes yellow when the block following the protected block can't be entered". Although that's a simplication, it can serve as a powerful starting point for understanding signaling logic.

The Simple Signal Logic tool allows you to configure JMRI to use this basic ABS type of logic to set the appearance of a signal. Using the panel, you enter information on:

The case of a facing point turnout which leads to two different "Protected Signals" is also covered although the above figure doesn't show it. If a single signal head is used to control both branches, then choose "On Facing-Point Turnout". If a different head will control each route, then simply choose "Main" or "Diverging" leg of turnout, as required for each one.

Pause your mouse over any entry or item in the SSL creation window for a brief "tooltip" help reminder.

It's clear that this won't cover complicated interlockings nor will it cover the speed-signaling seen on some prototypes. For those situations use a combination of Logix and Routes. Logix cover the conditions, and Routes control the actions to be taken.

Getting Started

Follow the following steps to create a signal and become familiar with how the SSL user interface works. This example defines a "virtual" signal head that doesn't really exist on the layout, so it can work with any kind of layout hardware. See the page on signals for information on how to set up your real signals.

  1. Select Signal Head Table in the Tools menu.
  2. In the Signal Head Table window that appears, click Add to begin defining a new signal head.
  3. In the Add New Signal window that appears choose the "Virtual Signal" type.
  4. Enter a system name such as IH1000.
  5. Click OK to enter this head into the Signal Head Table.
  6. Enter all the signal heads that you will be using for this test, using different names. The actual name doesn't matter, they just have to be different.
  7. Now select Simple Signal Logic in the Tools menu.
  8. Fill in the various entries to match your signals requirements as previously shown in the SSL section.
  9. Click Apply to make this entry active.
  10. Be sure to save your work.

You have just created an SSL entry to control a signal head. It's as simple as that. It took you more time to read this tutorial than to create the SSL entry.