The Block Table
Blocks are sections of track whose occupancy may be individually monitored. Dividing track into Blocks is optional. Blocks set up in a track diagram normally correspond to physical blocks on a layout. Block occupancy is indicated by the state of an occupancy sensor. When a layout's track is divided into Blocks, all of the track need not belong to a Block. For example, yard track may not be in a Block, whereas mainline track almost always would be divided into Blocks. The main use of Blocks is to facilitate signaling, but Blocks may be used for other layout control and animation functions.
Blocks may be set up using a script, or automatically in a Layout Editor panel. When a Block is defined in a Layout Editor panel, a new Block is created if one does not already exist. In Layout Editor, Blocks are identified by their User Name, so if a Block shown in this table is used in a Layout Editor panel, its User Name should not be changed. If you want to change the User Name of a Block used in a Layout Editor panel, make the change in the Layout Editor, not here.
To complete the definition of a Block, Paths and Bean Settings must be attached to each Block. Paths describe entry points to the Block. Each Block has one or more Paths associated with it. Sometimes a turnout must be set a certain way to use a Path; Bean Settings carry that information. Paths and Bean Settings are set up automatically for Blocks defined in a Layout Editor panel. They can also be set up in a script. There is currently no way to manually enter Paths or Bean Settings. Paths and Bean Settings are not shown in the Block Table, and are described here only for completeness.
For use in automatically running trains, a length attribute and a curvature attribute may optionally be assigned to a Block. These optional attributes are entered manually in this table. If trains will not be run automatically through a Block, there is no need to add these attributes.
Columns in the Block Table:
System Name - The system name of the Block. There is no functional requirement for a type letter in the System Name of a Block, but by convention we use 'B' for 'Block'. The default implementation is not system-specific, so a system letter of 'I' is appropriate. This leads to system names like "IB201".
User Name - The user name of the Block. The user name of a Block created here may be set to any text. The user name for a Block created by Layout Editor is set by Layout Editor and should not be changed.
Value - This is the string value of whatever object the block is carrying. Usually, this will either be a message or a Throttle object. If you modify this, it's stored in the Block as a string. There is currently no way to manually add a Throttle object to a block from the table. More information on block tracking
Comment - You may enter any text in this field that will help you distinguish this Block from other Blocks, or provide useful notes about its use.
Delete - Click the Delete button in any row to delete the Block in that row from the list of Blocks in the computer. You must save your configuration (and any Panels present) to disk to make the deletion permanent. Deletion may not be undone. Caution: Make sure you remove all references to a Block before deleting it. Blocks are referenced in the Paths of other Blocks, in some scripts, and in Layout Editor panels.
Direction - The current direction stored in the block.
Length (optional) - Displays the length of the Block. Optionally, you may enter the length of the Block here. The length is used for automatic running of trains. If '0.0' is displayed, the length has not been entered. The entered length should be the actual length of the Block on the model railroad layout. Length is entered and displayed in either inches or centimeters, depending on which unit is requested at the bottom of the Block Table.
Curvature (optional) - Displays the curvature selected for the track in the Block. Curvature is used for automatic running of trains, and need not be entered if trains will not be run automatically. Curvature, if present, indicates to the computer that it should slow the train as it runs through the Block. If None or Gradual are selected, an automatic train will proceed at normal speed. Tight should be selected if the train should slow down some; Severe should be selected if the train should slow by a maximum amount. If the Block has variable curvature, your selection should be made according to the most limiting part of the Block.
State Shows the current state of the block, Occupied or UnOccupied
Reporter The Reporter assigned to this block. See the Reporter table. Puts the Reporter Value into the Block value
Use Current? If we consider the scenario whereby we want track a train around the layout, typically this is achieved via the use of Memory objects associated with Blocks. Until the train is known, we have nothing to track. Typically, we can manually type in the train ID into a panel and then this is tracked around the layout based on block occupancy. If, however, we have an attached device that can provide us with the train ID, such as an RFID reader, we no longer need to manually type the train ID in - the reader does this for us. In essence, the reader is little more than an 'intelligent' sensor - not only can it sense that 'something' is there, it can tell us which something it is. Now to the implementation. A Sensor is purely ACTIVE or INACTIVE - i.e. something is there or it isn't. A Reporter, however, can tell us one of the following:
- 'Hey, I'm seeing something right now - this is it'
- 'Hmm, I'm not seeing anything right now'
- 'Hey, I saw something a while back - this was it'
- 'Hmm, I've not seen anything yet'
Permissive The permissive option is used to identify blocks that can be entered while the block is occupied. It is used with certain automation tools and logic, to help determine if a train can enter an occupied block and what aspect should be displayed on a signal mast.
Block Speed The speed is used with certain automation tools and logic, to help determine the speed at which a train can be set through the block. It is also used by the signal mast logic for determining which aspect should be displayed in a signal path.
In the drop down list, you are presented a set of named fixed speeds that have been predefined in the signalSpeed.xml file, in addition to a global option.
It is also possible to enter in a numerical value to represent a speed.
The global value is set via the Speeds menu option.
More information on using Blocks with Layout Editor
Located at package/jmri/jmrt/beantable/BlockTable