FUNCTION "Ampelsteuerung" : VOID TITLE = VERSION : 0.1 BEGIN NETWORK TITLE =Takt/Zähler U "Takt_0.5Hz"; ZV Z 0; NOP 0; NOP 0; NOP 0; U( ; O( ; L MW 12; L 16; ==I ; ) ; O "S0"; ON "S1"; ) ; R Z 0; L Z 0; T MW 12; NOP 0; NOP 0; NETWORK TITLE =Autoampel Rot U( ; L MW 12; L 9; >=I ; ) ; U "S1"; UN "S0"; = "H1"; NETWORK TITLE =Autoampel Gelb U( ; U( ; L MW 12; L 7; >=I ; ) ; UN "H1"; O( ; L MW 12; L 15; >=I ; ) ; ) ; U "S1"; O ; U "S0"; U "Takt_0.5Hz"; = "H2"; NETWORK TITLE =Autoampel Grün U( ; L MW 12; L 7; <=I ; ) ; UN "H2"; U "S1"; UN "S0"; = "H3"; NETWORK TITLE =Fußgängeranpel Rot U( ; O( ; L MW 12; L 14; >=I ; ) ; O( ; L MW 12; L 10; <=I ; ) ; ) ; U "S1"; UN "H5"; UN "S0"; = "H4"; NETWORK TITLE =Fußgängerampel Grün U( ; L MW 12; L 10; >=I ; ) ; U( ; L MW 12; L 14; <=I ; ) ; U "S1"; UN "H4"; UN "S0"; = "H5"; END_FUNCTION ORGANIZATION_BLOCK OB 1 TITLE = "Main Program Sweep (Cycle)" VERSION : 0.1 VAR_TEMP OB1_EV_CLASS : BYTE ; //Bits 0-3 = 1 (Coming event), Bits 4-7 = 1 (Event class 1) OB1_SCAN_1 : BYTE ; //1 (Cold restart scan 1 of OB 1), 3 (Scan 2-n of OB 1) OB1_PRIORITY : BYTE ; //Priority of OB Execution OB1_OB_NUMBR : BYTE ; //1 (Organization block 1, OB1) OB1_RESERVED_1 : BYTE ; //Reserved for system OB1_RESERVED_2 : BYTE ; //Reserved for system OB1_PREV_CYCLE : INT ; //Cycle time of previous OB1 scan (milliseconds) OB1_MIN_CYCLE : INT ; //Minimum cycle time of OB1 (milliseconds) OB1_MAX_CYCLE : INT ; //Maximum cycle time of OB1 (milliseconds) OB1_DATE_TIME : DATE_AND_TIME ; //Date and time OB1 started END_VAR BEGIN NETWORK TITLE = CALL "Ampelsteuerung" ; NOP 0; END_ORGANIZATION_BLOCK ORGANIZATION_BLOCK OB 100 TITLE = VERSION : 0.1 VAR_TEMP OB100_EV_CLASS : BYTE; // B#16#13, Event class 1, Entering event state, Event logged in diagnostic buffer OB100_STRTUP : BYTE; // B#16#81/82/83/84 Method of startup OB100_PRIORITY : BYTE; // Priority of OB execution OB100_OB_NUMBR : BYTE; // 100 (Organization block 100, OB 100) OB100_RESERVED_1 : BYTE; OB100_RESERVED_2 : BYTE; OB100_STOP : WORD; // Event that caused CPU to stop (W#16#4XXX) OB100_STRT_INFO : DWORD; // Information on how system started OB100_DATE_TIME : DATE_AND_TIME; // Date and time OB 100 started END_VAR BEGIN // Ampel einschalten SET; = "S1"; END_ORGANIZATION_BLOCK