User Tools

Site Tools


Long Train - Short Blocks

Version 2; the actual version. Completed on June 23, 2020.

Foreword 1:
This documentation has been created with:

Attribute Value Remark
Layout design RailModeller Pro Version 6.2.6 (Macintosh)
Railroad Tracks Mä… C-Gleis from 1996 to 2020
Control software Rocrail Version 2.1.631+ (macOS El Capitan)
Rocrail-Server MacBook Pro 13" (2009) running macOS 10.11.6 (El Capitan)
Rocrail-Client MacBook Pro 13" (2009) running macOS 10.11.6 (El Capitan)
Rocrail-Client iPhone running iOS 13.x and RocWeb using the Safari web-browser
Rocrail Workspace

Foreword 2:
The word "train" is used in this documentation. This means a locomotive with a Rocrail train. To simplify matters, only a locomotive is tested in the Rocrail workspace using the length of the locomotive to represent the length of the complete train.


A layout (1200mm x 3600mm) was designed for test purposes, which
- consists of two ovals and
- a storage area for trains and
- a storage area for locomotives (or short trains).
For this documentation only the inner oval is considered (here marked with gray and colored tracks).

Since there should be at least three Rocrail blocks in an oval, the oval was divided into four blocks:
- the two straight lines and
- the two arches.
Since the upper straight line is intersected by a switch, two small blocks were provided on the left side and one on the right side of the switch; these two blocks bk15 and bk16 are concatenated to one long virtual block bk1516v.

A short train can now travel using each block.
A long train can travel from the upper straight line to the right arch and to the bottom straight line. The left arch is then too short for a long train. To continue via the left arch to the upper straight line a manual route ist defined using a "via block" configuration. This documentation describes how to define this in Rocrail.
The colored tracks represent the sensors. The block lengths were calculated from the length between the sensors plus the length of the "enter" sensor (but without the "in" sensor).

Rocrail: Plan

The Rocrail blocks are shown in the first picture. Compact blocks are short and long blocks are long. They are arranged in a clockwise direction; the train always moves from the plus side into a block. This is not mandatory, but should be dealt with in this way in this documentation.

The Rocrail - blocks require an "identifier". It consists of the two letters "bk" (for the English word "block") and a two-digit number. The entire Rocrail layout uses
- block number 10 to 19 in the northern part,
- block number 20 to 29 in the eastern part,
- block number 30 to 39 in the southern part and
- block number 40 to 49 in the western part;
neither of which is mandatory, but is to be dealt with in this documentation.

The Rocrail - sensors need an "identifier". It consists of the two letters "fb" (for the English word "feedback"), a two-digit number and a plus sign or a minus sign, depending on whether the sensor is arranged on the plus side of the block or on the minus side of the block. None of this is mandatory either, but should …

The Rocrail - switches require an "identifier". It consists of the two letters "sw" (for the English word "switch") and a two-digit consecutive number. This is …

The Rocrail router assigns the sensors to the blocks and generates these block properties:

Block General Routes
Length all enter + all enter -
[mm] enter in enter in
bk15 532 fb15+ fb15- fb15- fb15+
bk16 802 bk16+ bk16- bk16- bk16+
bk22 1695 bk22+ bk22- bk22- bk22+
bk32 1695 bk32+ bk32- bk32- bk32+
bk42 565 bk42+ bk42- bk42- bk42+

Rocrail: Virtual Block

To allow a long train to stop on the upper straight line, a new "virtual block" is formed from the two blocks:
- bk1516v = bk15 and bk16
Rocrail outlines virtual blocks with dashed lines. Virtual blocks have to be created manually. While the Rocrail router can assist us with the configuration of sensors, signals, routes, commands for switches and signals, etc., all of this has to be configured manually for virtual blocks.

The orientation of the individual blocks that make up the virtual block is mandatory here! This and other important basic requirements can be found in the wiki at

Block "bk1516v" / Properties / General:

Attribute Value Remark
ID bk1516v
Length 1694 millimeter
Virtual yes
Slave blocks bk15,bk16 a comma-separated list of blocks (without spaces!)

Sensors of block "bk1516v" / Properties / Routes:

all enter + ID Event
fb15+ enter
fb16- in
all enter - ID Event
fb16- enter
fb15+ in

Rocrail: Routes

The routes are now created manually for the long train. Just copy an existing route. Here is an easy task to start with:
from block "bk42" minus to the virtual block "bk1516v" plus just copy the route "[bk42-]-[bk15+]":

ID From block To block Automatic generated
[bk42-]-[bk15+] (Copy) bk42 Minus bk15 Plus yes
has to be modified to:
[bk42-]-[bk1516v+] bk42 Minus bk1516v Plus no

For the long train a route is required from block "bk32" via block "bk42" to the virtual block "bk1516v". Therefore the route "[bk42-]-[bk1516v+]" is copied that was just created:

ID From block To block Via blocks Automatic generated
[bk42-]-[bk1516v+] (Copy) bk42 Minus bk1516v Plus no
has to be modified to:
[bk32-]-[bk1516v+] bk32 Minus bk1516v Plus bk42 no

The list of commands for this route must be completed manually; the turnouts "sw08" and "sw12" must be entered.

Accordingly, all the required routes to and from the virtual block "bk1516v" have to be created both clockwise and counterclockwise which results in the following list of manual routes:

ID From block To block Via blocks Automatic generated
[bk42-]-[bk1516v+] bk42 Minus bk1516v Plus no
[bk32-]-[bk1516v+] bk32 Minus bk1516v Plus bk42 no
[bk1516v-]-[bk22+] bk1516v Minus bk22 Plus no
[bk1516v-]-[bk32+] bk1516v Minus bk32 Plus bk22 no
ID From block To block Via blocks Automatic generated
[bk1516v+]-[bk42-] bk1516v Plus bk42 Minus no
[bk1516v+]-[bk32-] bk1516v Plus bk32 Minus bk42 no
[bk22+]-[bk1516v-] bk22 Plus bk1516v Minus no
[bk32+]-[bk1516v-] bk32 Plus bk1516v Minus bk22 no

Rocrail: scope of application

at first

Starting from block bk32 what blocks can be reached clockwise? The existing routes are:

no. route generated by short train usage long train usage
1 [bk32-]-[bk42+] router OK not possible; block bk42 is too short
2 [bk32-]-[bk1516v+] via bk42 manual possible but not wanted OK

1) route [bk32-]-[bk42+]: for a short train the next block bk42 is reserved:

2a) route [bk32-]-[bk1516v+] via bk42: for a long train the blocks bk42, bk15, bk16 and the virtual block bk1516v are reserved:

Fine-tuning the routes

2b) route [bk32-]-[bk1516v+] via bk42: a short train can of course also choose the route to the virtual block:

If this is not desired, just define conditions in the route to the virtual block, e.g. "Minimum train length" [millimeters]

The value can be set like this:
- the train must be at least as long as the short block before the virtual block.
Since Rocrail provides a safety distance (min. Block - train length) (standard is 20 millimeters), this value is subtracted from the block length which results in: Minimum train length = 545 millimeters.

Fine-tuning the switch

The switch "sw14" is part of the virtual block. It should be locked when there is a train inside the virtual block. One possibility is to assign the virtual block "bk1516v" to this switch:

The switch is now marked in red when the virtual block is occupied.

Rocrail Workspace

All tests have been done with this Rocrail workspace, whereby only the direction of travel from block "bk32" via block "bk42" to the virtual block "bk1516v" was examined and checked. Other driving options have not been checked and may contain discrepancies.

further ideas

A train of length 545 mm can drive from block "bk32" to block "bk42", but not to block "bk15" because block "bk15" is only 532 millimeters long. So it will occupy the long virtual block. To avoid this, manually create a route from block "bk42" to block "bk16" via block "bk15" and inside the permissions of the route set a minimum length of 512 mm. Have fun.

userpages/hermannk/longtrainshortblocks-en.txt · Last modified: 2020/06/23 15:25 by hermannk