PROGRAM MAIN VAR Bang: BitBang; Bul : BOOL; Bite: BYTE; Ind : INT; LastTime: UDINT; i, state: LINT; END_VAR VAR CONSTANT HOW_MUCH: LINT := 100_000; END_VAR LastTime := _TaskInfo[1].LastExecTime; CASE state OF 0:; // IDLE 100: // NOT BOOL FOR i := 0 TO HOW_MUCH DO Bul := NOT Bul; END_FOR 200: // XOR BYTE FOR i := 0 TO HOW_MUCH DO Bite := Bite XOR 2#_0000_0010; END_FOR 300: // NOT BYTE.x FOR i := 0 TO HOW_MUCH DO Bite.2 := NOT Bite.2; END_FOR 400: // NOT BIT FOR i := 0 TO HOW_MUCH DO Bang.b1 := NOT Bang.b1; END_FOR 500: // NOT BYTE.Enable FOR i := 0 TO HOW_MUCH DO Ind.Enable := NOT Ind.Enable; END_FOR 1000: // READ BOOL FOR i := 0 TO HOW_MUCH DO IF Bul THEN ; END_IF END_FOR 1100: // READ BIT FOR i := 0 TO HOW_MUCH DO IF Bang.b1 THEN ; END_IF END_FOR 1200: // WRITE BOOL FOR i := 0 TO HOW_MUCH DO Bul := TRUE; END_FOR 1300: // WRITE BIT FOR i := 0 TO HOW_MUCH DO Bang.b1 := TRUE; END_FOR END_CASE END_PROGRAM