scchart railway { initial state controller { region "go" : A; initial state init --> running with /'settrack(railway, IC_ST_3, FWD, 100)'; 'settrack(railway, IC_ST_4, FWD, 100)'; 'settrack(railway, IC_LN_0, FWD, 100)'; 'settrack(railway, IC_LN_1, FWD, 100)'; 'settrack(railway, IC_LN_2, FWD, 100)'; 'settrack(railway, IC_LN_3, FWD, 100)'; 'settrack(railway, IC_LN_4, FWD, 100)'; 'settrack(railway, IC_LN_5, FWD, 100)'; 'settrack(railway, IC_JCT_0, FWD, 100)'; 'settrack(railway, IC_ST_0, FWD, 100)'; 'setpoint(railway, 23, STRAIGHT)'; 'setpoint(railway, 24, BRANCH)'; 'setpoint(railway, 29, STRAIGHT)'; 'setpoint(railway, 13, STRAIGHT)'; 'setpoint(railway, 11, STRAIGHT)'; 'setpoint(railway, 18, STRAIGHT)'; 'setpoint(railway, 20, BRANCH)'; 'setpoint(railway, 19, STRAIGHT)'; state running; region "control" : B; initial state waiting --> slowdown with 'getcontact(railway, IC_ST_3, 0, 0)==FWD'/'settrack(railway, IC_ST_3, FWD, 40)'; state slowdown --> stop with 'getcontact(railway, IC_ST_3, 1, 0)==FWD'/'settrack(railway, IC_ST_3, FWD, 0)'; state stop --> waiting with /'sleep(10)';'settrack(railway, IC_ST_3, FWD, 100)'; }; }