//semafor półsamoczynny, pięciokomorowy z zielonym pasem świetlnym i wskaźnikiem w24. //autorzy: kudłacz, ziomalcl origin (p2) (p3) (p4) rotate 0 (p5) 0 //model semafora 5komorowego prostego: node 1000 0 (p1) model 0 0 0 0 sem/glowice/s5izpcpb_dd.t3d tabl/(p6) lights 0 0 1 0 0 endmodel //glowica node 200 0 none model 0 0 0 0 sem/slupy/s5ibg.t3d sem/slupy endmodel //slup node 100 0 none model 0 0 0 0 sem/drabinki/d5i.t3d sem/slupy endmodel //drabinka node 800 0 (p1)s model 0 0 0 0 sem/pasy/pz.t3d sem/slupy lights 0 endmodel //wskaznik w24 node 400 0 (p1)w24 model 0 0 0 0 sem/wskazniki/w24v2.t3d none lights 0 endmodel //wskaznik w24 node 700 100 none lines 100 50 20 100.0 //linia zeby byl maszt widoczny z daleka 0.0 0.0 0.0 0.0 4.0 0.0 endline rotate 0 0 0 endorigin // podstawowe zdarzenia: //odczyt z pamieci (zdarzenie przypisane do toru przy ktorym stoi semafor): event (p1)_sem_info getvalues 1.0 (p1)_sem_mem endevent //stany semafora: event (p1)_s1 multiple 0 none (p1)_sem_ligh1 (p1)_sem_lighs1 (p1)_sem_info_stop (p1)_w24off endevent event (p1)_s2 multiple 0 none (p1)-s2 (p1)-s2_1 (p1)-s3 (p1)-s4 (p1)-s5 endevent //wybierane zaleznie od nastepnego semafora (p7) event (p1)_s6 multiple 0 none (p1)-s6 (p1)-s6_1 (p1)-s7 (p1)-s8 (p1)-s9 endevent //wybierane zaleznie od nastepnego semafora (p7) event (p1)_s10 multiple 0 none (p1)-s10 (p1)-s10_1 (p1)-s11 (p1)-s12 (p1)-s13 endevent //wybierane zaleznie od nastepnego semafora (p7) event (p1)_ms2 multiple 0 none (p1)_sem_lighm2 (p1)_sem_info_Shunt25 endevent event (p1)_m40 multiple 0 none (p1)_sem_lighm2 (p1)_sem_info_Shunt40 endevent event (p1)_sz1 multiple 0 none (p1)_sem_lighz1 (p1)_sem_info_v20 (p1)_wyg_sz endevent event (p1)_wyg_sz multiple 90 (p1)_sem_mem (p1)_s1 condition memcompare SetVelocity 20 0 endevent //podswietlanie wskaznika w24: event (p1)_w24 lights 1.0 (p1)w24 1 endevent //gaszenie wskaznika w24 event (p1)_w24off lights 0.0 (p1)w24 0 endevent //dla nastepnego sbl zeby mogl zmienic stan: event (p1)_sbls2 multiple 0 (p1)_sem_mem (p1)-s2 (p1)-s3 condition memcompare * 100 0 endevent event (p1)_sbls10 multiple 1 (p1)_sem_mem (p1)-s10 (p1)-s11 condition memcompare * 40 0 endevent //powyzsze zdarzenia skladaja sie z: //zdarzen uwarunkowanych nastepnym semaforem: event (p1)-s2 multiple 0 (p7)_sem_mem (p1)_sem_ligh2 (p1)_sem_lighs1 (p1)_sem_info_vmax (p1)_sem_distinfo_vmax condition memcompare * -1 * endevent event (p1)-s2_1 multiple 0 (p7)_sem_mem (p1)_sem_ligh2 (p1)_sem_lighs1 (p1)_sem_info_vmax (p1)_sem_distinfo_vmax condition memcompare * 160 * endevent event (p1)-s3 multiple 1 (p7)_sem_mem (p1)_sem_ligh3 (p1)_sem_lighs1 (p1)_sem_info_v160 (p1)_sem_distinfo_v100 condition memcompare * 100 * endevent event (p1)-s4 multiple 2 (p7)_sem_mem (p1)_sem_ligh4 (p1)_sem_lighs1 (p1)_sem_info_v100 (p1)_sem_distinfo_v40 condition memcompare * 40 * endevent event (p1)-s5 multiple 3 (p7)_sem_mem (p1)_sem_ligh5 (p1)_sem_lighs1 (p1)_sem_info_v100 (p1)_sem_distinfo_stop condition memcompare * 0 * endevent event (p1)-s6 multiple 0 (p7)_sem_mem (p1)_sem_ligh10 (p1)_sem_lighs2 (p1)_sem_info_v100 (p1)_sem_distinfo_vmax condition memcompare * -1 * endevent event (p1)-s6_1 multiple 0 (p7)_sem_mem (p1)_sem_ligh10 (p1)_sem_lighs2 (p1)_sem_info_v100 (p1)_sem_distinfo_vmax condition memcompare * 160 * endevent event (p1)-s7 multiple 1 (p7)_sem_mem (p1)_sem_ligh11 (p1)_sem_lighs2 (p1)_sem_info_v100 (p1)_sem_distinfo_v100 condition memcompare * 100 * endevent event (p1)-s8 multiple 2 (p7)_sem_mem (p1)_sem_ligh12 (p1)_sem_lighs2 (p1)_sem_info_v100 (p1)_sem_distinfo_v40 condition memcompare * 40 * endevent event (p1)-s9 multiple 3 (p7)_sem_mem (p1)_sem_ligh13 (p1)_sem_lighs2 (p1)_sem_info_v100 (p1)_sem_distinfo_stop condition memcompare * 0 * endevent event (p1)-s10 multiple 0 (p7)_sem_mem (p1)_sem_ligh10 (p1)_sem_lighs1 (p1)_sem_info_v40 (p1)_sem_distinfo_vmax condition memcompare * -1 * endevent event (p1)-s10_1 multiple 0 (p7)_sem_mem (p1)_sem_ligh10 (p1)_sem_lighs1 (p1)_sem_info_v40 (p1)_sem_distinfo_vmax condition memcompare * 160 * endevent event (p1)-s11 multiple 1 (p7)_sem_mem (p1)_sem_ligh11 (p1)_sem_lighs1 (p1)_sem_info_v40 (p1)_sem_distinfo_v100 condition memcompare * 100 * endevent event (p1)-s12 multiple 2 (p7)_sem_mem (p1)_sem_ligh12 (p1)_sem_lighs1 (p1)_sem_info_v40 (p1)_sem_distinfo_v40 condition memcompare * 40 * endevent event (p1)-s13 multiple 3 (p7)_sem_mem (p1)_sem_ligh13 (p1)_sem_lighs1 (p1)_sem_info_v40 (p1)_sem_distinfo_stop condition memcompare * 0 * endevent //memcell do pamietania predkosci: node -1 0 (p1)_sem_mem memcell (p2) (p3) (p4) SetVelocity 0.0 0.0 none endmemcell //zdarzenia wpisujace w memcell predkosci przy tym (info) i przy nastepnym (distinfo) semaforze: event (p1)_sem_info_stop updatevalues 10.0 (p1)_sem_mem SetVelocity 0.0 0.0 endevent event (p1)_sem_distinfo_stop updatevalues 1.0 (p1)_sem_mem SetVelocity * 0.0 endevent event (p1)_sem_info_vmax updatevalues 1.0 (p1)_sem_mem SetVelocity -1 * endevent event (p1)_sem_info_v100 updatevalues 1.0 (p1)_sem_mem SetVelocity 100 * endevent event (p1)_sem_info_v160 updatevalues 1.0 (p1)_sem_mem SetVelocity 160 * endevent event (p1)_sem_distinfo_vmax updatevalues 0.0 (p1)_sem_mem SetVelocity * -1 endevent event (p1)_sem_distinfo_v100 updatevalues 1.0 (p1)_sem_mem SetVelocity * 100 endevent event (p1)_sem_info_v40 updatevalues 1.0 (p1)_sem_mem SetVelocity 40 * endevent event (p1)_sem_distinfo_v40 updatevalues 0.0 (p1)_sem_mem SetVelocity * 40 endevent event (p1)_sem_info_v20 updatevalues 1.0 (p1)_sem_mem SetVelocity 20 0 endevent // dziala tylko na pojazdy w trybie manewrowym: event (p1)_sem_info_Shunt25 updatevalues 1.0 (p1)_sem_mem ShuntVelocity 25 0 endevent event (p1)_sem_info_Shunt40 updatevalues 1.0 (p1)_sem_mem ShuntVelocity 40 0 endevent //zdarzenia sterujace swiatlami: event (p1)_sem_ligh1 lights 0.0 (p1) 0 0 1 0 0 endevent event (p1)_sem_lighs1 lights 0.0 (p1)s 0 endevent event (p1)_sem_ligh2 lights 0.0 (p1) 1 0 0 0 0 endevent event (p1)_sem_lighs2 lights 0.0 (p1)s 1 endevent event (p1)_sem_ligh3 lights 0.0 (p1) 2 0 0 0 0 endevent event (p1)_sem_ligh4 lights 0.0 (p1) 0 2 0 0 0 endevent event (p1)_sem_ligh5 lights 0.0 (p1) 0 1 0 0 0 endevent event (p1)_sem_ligh10 lights 0.0 (p1) 1 0 0 1 0 endevent event (p1)_sem_ligh11 lights 0.0 (p1) 2 0 0 1 0 endevent event (p1)_sem_ligh12 lights 0.0 (p1) 0 2 0 1 0 endevent event (p1)_sem_ligh13 lights 0.0 (p1) 0 1 0 1 0 endevent event (p1)_sem_lighm2 lights 0.0 (p1) 0 0 0 0 1 endevent event (p1)_sem_lighz1 lights 0.0 (p1) 0 0 1 0 2 endevent // uszkodzony semafor - nieoswietlony: event (p1)_uszk multiple 0 none (p1)_sem_ligh0 (p1)_sem_lighs1 (p1)_w24off (p1)_sem_info_stop endevent event (p1)_sem_ligh0 lights 0.0 (p1) 0 0 0 0 0 endevent