There will be an instance of this SCChart for each train. The train gets a pre-calculated path and the direction for each track in the path (forward or reverse). Once the path is loaded it selects a small portion of it, that allows the train to drive and the environment to keep track of it. The portion is then outputted combined with the wanted track speed.
Name | Type | Length | Description |
---|---|---|---|
in_aiPath | int array | PATH_LENGHT | The path containing all track numbers in correct order from start to finish. The end of the path is specified with -1 (INVALID) |
in_aiTrackDirections | int array | PATH_LENGTH | The direction of each track (FORWARD/REVERSE) in the path. |
in_iTrainPosition | int | The position of the train on the track. | |
in_sUpdatePath | signal | Signals that the train con copy the path from the input into memory and start driving. | |
in_sAbort | signal | Signals to abort the driving process and wait for the new path to be available. Used for dynamical rerouting (NOT IMPLEMENTED) | |
in_bFacingBackwards | bool | Specifies whether the train initially faces forward or backward. | |
HAS_TRACK_CONTACTS | bool array | NUM_TRACKS | Specifies whether a track has contacts. |
CONTACTS | bool array | NUM_TRACKS, 2 | Hold information of triggered contacts. |
Name | Type | Length | Description |
---|---|---|---|
out_aiOccupiedTracks | int aray | MAX_OCCUPIED, 2 | |
out_iTrainStatus | int | ||
out_bFacingBackwards |