Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- PROGRAM STEROWANIE
- VAR_EXTERNAL (*$AUTO*) END_VAR
- VAR
- CZAS_PRACY_SILNIKA:TON;
- OPOZN_ZAM:TON;
- stan:INT:=1;
- STOP:BOOL;
- END_VAR
- CZAS_PRACY_SILNIKA(IN:=SILNIK, PT:=T#3s);
- OPOZN_ZAM(IN:=stan=3, PT:=T#10s);
- (*sterowani autmatyczne*)
- IF AUTO THEN
- STOP:=TRUE;
- CASE stan OF
- 1: SILNIK:=FALSE; KIERUNEK:=TRUE;
- IF F THEN stan:=2;
- END_IF
- 2: SILNIK:=TRUE; KIERUNEK:=TRUE;
- IF CZAS_PRACY_SILNIKA.Q THEN WK_DZ:=FALSE; WK_DO:=TRUE;
- END_IF
- IF WK_DO THEN stan:=3;
- END_IF
- 3: SILNIK:=FALSE; KIERUNEK:=FALSE;
- IF OPOZN_ZAM.Q AND NOT F THEN stan:=4;
- ELSIF F AND NOT WK_DO THEN stan:=2;
- ELSIF F THEN stan:=3;
- END_IF
- 4: SILNIK:=TRUE; KIERUNEK:=FALSE;
- IF F THEN stan:=2;
- END_IF
- IF CZAS_PRACY_SILNIKA.Q THEN WK_DO:=FALSE; WK_DZ:=TRUE;
- END_IF
- IF WK_DZ THEN stan:=1;
- END_IF
- END_CASE
- ELSE (*Sterowanie reczne*)
- IF STOP THEN SILNIK:=FALSE;
- END_IF
- IF OTWORZ AND ZAMKNIJ THEN STOP:=TRUE;
- ELSIF OTWORZ AND NOT WK_DO THEN SILNIK:=TRUE; KIERUNEK:=TRUE;
- IF CZAS_PRACY_SILNIKA.Q THEN WK_DZ:=FALSE; WK_DO:=TRUE; OTWORZ:=FALSE;
- END_IF
- ELSIF ZAMKNIJ AND NOT WK_DZ THEN SILNIK:=TRUE; KIERUNEK:=FALSE;
- IF CZAS_PRACY_SILNIKA.Q THEN WK_DO:=FALSE; WK_DZ:=TRUE; ZAMKNIJ:=FALSE;
- END_IF
- ELSE STOP:=TRUE; OTWORZ:=FALSE; ZAMKNIJ:=FALSE;
- END_IF
- END_IF
- END_PROGRAM
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement