scchart Tut1 { int counter = 0; bool second = false; bool start = false; int ic_st_1_0 = 0; region ICcontroller: initial state init --> notrain_ic_st_1_0 immediate with /'settrack(railway, -1, FWD, 100)';'settrack(railway, IC_ST_2, BRAKE, 0)';'settrack(railway, IC_ST_3, BRAKE,0)';'settrack(railway, OC_ST_1, BRAKE, 0)';'settrack(railway, OC_ST_2, BRAKE, 0)';'settrack(railway, OC_ST_3, BRAKE, 0)';'settrack(railway, KH_ST_1, BRAKE, 0)';'settrack(railway, KH_ST_2, BRAKE, 0)';'settrack(railway, KH_ST_3, BRAKE, 0)';'settrack(railway, KH_ST_4, BRAKE, 0)';'settrack(railway, KH_ST_5, BRAKE, 0)';'settrack(railway, KH_ST_6, BRAKE, 0)';'setpoint(railway, -1, STRAIGHT)';start=true; state notrain_ic_st_1_0 --> check_ic_st_1_0 immediate with /ic_st_1_0='getcontact(railway, IC_ST_1, 0, 1)'; state check_ic_st_1_0 --> ICfirstcontact immediate with (ic_st_1_0 > 0)/'settrack(railway, IC_ST_1, FWD, 40)' --> notrain_ic_st_1_0; state ICfirstcontact --> check_again_ic_st_1_0 immediate with /ic_st_1_0='getcontact(railway, IC_ST_1, 0, 1)'; state check_again_ic_st_1_0 --> ICwait immediate with (ic_st_1_0 > 0)/'settrack(railway, IC_ST_1, BRAKE, 0)';counter=0 --> ICfirstcontact; state ICwait --> notrain_ic_st_1_0 with counter==10/'settrack(railway, IC_ST_1, FWD, 100)' --> ICwait with second/counter=counter+1; }