Questions & Answers for  Stellwerk easy and Stellwerk 2001

Following questions frequently reported by STELLWERK customers on different topics are listed with the answers. 

1. General and Windows

2. Symbols / Magnetic articles / Switch routes

3. Toolbar / Keys / Mouse

4. Loco bar / Locomotives / Functions

5. Feedback modules

6. Contact control

7. Schedules

8. Systems Massoth-DiMAX + LGB-MTS

9. System Lenz Digital plus

10. Systems Uhlenbrock / Fleischmann / Tams / Maerklin / Arnold


I heard a subroutine can be used only once and not in several, different loaded schedules?

This is not right! Each schedule has its own tables for addresses (go to subroutine) and variables. Several, different subroutin names can be used in one or several schedules (of course each must be defined in every schedule). Only following is not possible:

    a) calling a new subroutine within subroutine and

    b) calling the same subroutine in a subroutine (recursive call)).

Is it possible to use schedules of MTS-PC in Stellwerk 2001  or in Stellwerk easy?

a) There is a import function in schedule editor of Stellwerk easy. Here the used contact numbers are converted once.

b) This conversion is not (yet) available in schedule editor of Stellwerk 2001 (STWEDIT). If you have used MTS-PC before and now DiMAX, you can convert the schedules once by schedule editor of Stellwerk easy  (ST-EDIT).  

Will used schedules be reloaded together with the track layout in which they are had been loaded before?

In STW2001 (since version 11.0.0004)  and in Stellwerk easy loaded schedule names are saved in the layout file (as in MTS-PC) and if you reload the track layout the schedules will be loaded to their old command number.

How can I start schedules?

Clicking on schedule icon an own window will be opened (since STW2001 version 11.0.0004 and in STe-PC); here you can fix the activities for each single schedule or for all together and start these activities.

What's the meaning of  markers and what’s their use together with the schedule control?

Marker are fixed memory places (help fields) with the numbers 1 up to 250. Such places (markers) can be used to save actual or important positive, integer data; it’s possible to actualize these and/or delete also. Using contact control they are used specially to set/release a further switch route. Using schedule control you have more possibilities with several different commands (e.g. D- and Y-commands). Furthermore you can e.g. calculate with markers or integrate within in/out-messages and use these in queries (F-command). All markers are usable for all schedule numbers equally and simultaneously. Therefore variables stored in markers can easily be used in several schedule numbers and/or can be exchanged between schedules (e.g. marker no. 5 can be used in all schedules no 1 ,2, …9 at same time). Therefore it’s often better to use markers.

Is it possible to write remarks within a schedule?

In STW2001 (since 11.0) and in STe-PC  there are two alternatives for schedule remarks:

    1. Older alternative with a * (star), it's a sign for following text is no command.

    2. In addition after every command  and at least one blank and a * (star) a remark can follow.

        (Example: S, 27, G  * Exit track 3 free

       A special field exists in schedule editor remarks with a command line.

Is a special Editor available for creating and changing Stellwerk 2001 or Stellwerk easy schedules?

As part of Stellwerk 2001 version. 11.0 there is the schedule editor STWEdit available. As part of Stellwerk easy 7.0 there is the schedule ST-EDIT available.

I want to reset all contacts to initial status, but not all magnetic articles too. Is this possible?

In STW2001 (since update 10.00.1020) and in STe-PC there is a new parameter for A-command (e.g. A, C). Only all contacts are set to initial status (normally free) by this command.

How long is the occupied status for different contact types?

In principle, there are two various groups:

    a) Contacts, which are triggered only a short-time and as a rule once . These are: Reed contact and switch track (Maerklin).

    b) Contacts, which are occupied by engine/car  for a longer time. Contact track and track occupation sensor are part of this.

Furthermore the defined blocked time is authoritative for every contact  (parameter: "Afterwards contact will be blocked for ..) ". Closed contacts remain occupied for the duration of its block time, i.e. a second triggering is prevented. The contacts of group a) are free again after this. Contacts of the group of b) may be longer "occupied"  if e.g. an engine or  illuminated car stand on the occupied section. Is a contact coupled with a further then the block time prolongs until  the second contact is free.

Using schedule control the "status occupies" of one single contacts remains as long as got till new queried, e.g. by the if-command  "FALLS K ...) or manual changes by schedule occupy-command B (BELEGE ...). Very fast behind each other following queries to the same contact get unconsidered for one for a short time (block time). The parameter "Contact free  automatically" applies to the schedule control, deleting mentioned above can be prevented by this parameter.

I am using  (Maerklin) contact tracks only, I would like to see only the real contact status that is as long as the contact is occupied by train as "RED". How this ids going ?

There are two alternatives here:

1.) At selection "Contact control"  you use as contact type "contact track" and define as block time = 0, if you don't use any triggering. If you use contact triggering, though, then block time take care that no double triggering is executed  during the time..

2.) At selection "Schedule control"  you use also as contact type "contact track" and define as block time= 0. Write and load a pseudo schedule e.g. from 4 commands:


*, this is a pseudo schedule

V, 1


I need a solution to remain the status "occupied" after query contact (by F command)?

You can use following schedule commands:

..... .

F, K, 1, F    If contact no. 1 free

G, CONT_1     Go to CONT_1

B, 1, B       Occupy contact no. 1 as "OCCUPIED"

*,.....       several other commands of "OCCUPIED status

!, CONT_1    Go to address CONT_1

Furthermore there is the possibility to change  the initialization parameter "contact free automatically", so all status resets must be done by schedule B command.

How can I brake an engine or accelerate by schedule?

There are schedule commands for braking locomotives, for which braking steps has to be defined, e.g.:

L, 1, B, -14   = Locomotive no 1. ok Nr. 1 shall decelerate  -undependable of its speed-  to zero (for e.g. Lenz, DiMAX 28, 126  driving steps, use. –28 or –126).

L, 1, B, +2     = Locomotive  no. 11 shall accelerate up to 2 steps.

Braking and accelerating take  the starting and end speed (defined at the locomotive data) and the defined delay of braking into account. If e.g. engine no. 1 has the speed 5 and starting speed 4, then command L, 1, B, -2 brakes already to speed zero.

Furthermore you can use general subroutines for braking and accelerating. A braking function is however only possible as long as current is in the separated section. Here an example  schedule part: Accelerate engine no. 20 if signal 6 is switched to "green" (4 steps higher):

F, S, 6, G      = if signal no.6 green, then next command

R, ACCEL, 20    = call subroutine ACCEL for locomotive 20

*,.....         = ... other commands of main program

E               = end of main program

U, ACCEL        = Subroutine ACCEL

W, 4            = loop 4times

L, 0, B, +1     = Locomotive no. 1 (as called) accelerate 1 step

Z, 15           = time delay 1.5 sec

E, W            = end loop

E, U            = End subroutine ACCEL

Locomotive no.1 can be set to old speed before braking to zero by command:     L, 1, B, ALT

How can I switch a signal using schedule control in dependence of the status of a contact track? I'm using Reed contacts.

Here a small schedule example for e.g. a block distance signal:  A contact (e.g. 20) shall switch the signal (e.g. 10) to "RED" if "occupied" and to "GREEN" if contact is "free". The subroutines (SIGREEN and SIGRED) with parameter "signal number" are called for needed contacts in a (endless) main program  for the desired contacts. You can insert other commands e.g. "Fetch locomotive number (H)" and "Driving  command (L)" behind subroutine call if necessary.

*, Switch signal (no.10) depending on contact no. 20 status


F, K, 20, F


R, SIRED, 10


!, ADR20G



*. ..... if necessary more contact queries in main program


The two subroutines can executed with every signal no. The value 0  is typed over by the transfer data automatically. A switching is executed at this only at unequal signal position. You find a further possibility in the example "STW_006" (block distance) at the delivered components.

*, Subroutine signal to red                     


F, S, 0, G, OR

F, S, 0, O

S, 0, R

E, U

*, Subroutine signal to green


F, S, 0, G, OR

F, S, 0, O


S, 0, G


E, U

How can I create or change schedules?

Use the STWEdit schedule Editor of Stellwerk 2001 or the ST-EDIT schedule Editor of Stellwerk easy. If you will use another Windows Editor, so open a file by  going to "file" / "open". Change to your Stellwerk folder, change search value "text files (*.txt)" to "All files (*.*) or to "*.sfp". So you will find the example files. It favorable, to change one of these for your application and save under another name. You must pay attention to the right ending (SFP for schedules) at saving. If you don't find your schedule in "Open window" of STW2001 or STe-PC change the extension from "*.sfp" to "*.*", so all files are displayed.

If  I write a schedule with an editor -as your example is listed in the manual- and open this one, I see at "Data" / "Display" only schedule name but no commands. What is the reason?

Schedule line numbers are represented in the description listing (schedule view). These don't have to be entered in an instruction list! The first sign is, the command code , followed by a comma and blank and then the corer. variables; separated these from each other by comma and blank respectively, too.

What can I do with Queue schedule commands?

The Q command was implemented very early before "locomotive tracking" possibility was a component of STELLWERK. You must imagine the possibilities as two-dimensional table (grid):

a.) There are up to 9 Rows (Queues)

b.) Each table has up to 9 Columns (with variable values)

c.) The row is the queue number

d.) With Q, A-command you fix the first value in this row

e.) With Q, E-command you fix 2nd ... 9th value in this row (e.g. a locomotive no, a signal no.)

f.) With Q, S-command you go stepwise within a row to next columns (forward/backwards)

g.) With Q, G-command you go to a definite row and column.

h.) With Q, M-command you move your SET-variable to a definite row and column.

i.) With Q, P-command you add a value to a definite row and column.

j.) With Q, V-command you fetch the value of an actual row and column to your SET-variables.

So you can define some signals, locomotive numbers i.e.., which can be checked stepwise (forward/backwards) and used for other control tasks (e.g. succession of trains different speeds of engine using a slope i.e..).You can query SET variable after a Q,V-command and control other parts with its value. Every schedule has his own queue table. These are very complex commands and you should use them first after own small tests.

How is running of  STELLWERK 2001 with several schedules and one is waiting for "occupation contact (K)" and another schedule doing a "Time (Z)" command.?

One command "worked off" for every schedule number (1 to max. 9) always alternately. If the desired condition isn't reached yet at a K command, then only the other schedules go on. It's the same for Z command.

Schedules file could not be found, What is the reason?

Such schedule files created or changed by Windows'9x program got probably a "standard extension "(most *.doc or *.txt). STELLWERK 2001 is searching for *.sfp. Please change in "Open" window of STELLWERK 2001 at file name the searching extension from *.sfp to *.* and so you'll find all files in your folder and can read in the right one. Later you should rename this one by Explorer (e.g. of Test.sfp.doc to Test.sfp).