Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- PROGRAM STEROWANIE
- VAR_EXTERNAL (*$AUTO*)
- END_VAR
- VAR
- Stan : INT:=0; (* Stan automatu *)
- Stan_: INT:=1; (* Stan automatu (poprzedni) *)
- END_VAR
- (*** Sterowanie poziomem cieczy ***)
- CASE Stan OF
- 0: (* Tryb MANUAL (AUTO=FALSE) *)
- IF AUTO THEN Stan := Stan_; END_IF
- 1: (* Tryb AUTO (AUTO=TRUE): napełnianie *)
- IF START THEN
- Z1 := TRUE; Z2 := FALSE; (* Napełnianie zbiornika *)
- IF H3 THEN Stan := 2; END_IF (* Przejście do opróżniania *)
- ELSE
- Z1 := FALSE; Z2 := FALSE; (* Wstrzymanie napełniania *)
- END_IF
- IF NOT AUTO THEN
- Stan_ := Stan; (* Zapamiętanie stanu *)
- Stan := 0; (* Przejście do MANUAL *)
- END_IF
- 2: (* Tryb AUTO (AUTO=TRUE): opróżnianie *)
- IF START THEN
- Z1 := FALSE; Z2 := TRUE; (* Opróżnianie zbiornika *)
- IF NOT H1 THEN Stan := 1; END_IF (* Przejście do napełn. *)
- ELSE
- Z1 := FALSE; Z2 := FALSE; (* Wstrzymanie opróżniania *)
- END_IF
- IF NOT AUTO THEN
- Stan_ := Stan; (* Zapamiętanie stanu *)
- Stan := 0; (* Przejście do MANUAL *)
- END_IF
- END_CASE
- (*** Regulacja temperatury cieczy (p.6) ***)
- IF AUTO AND START THEN
- IF (T2<T1) THEN
- G1 := TRUE;
- ELSE
- G1 := FALSE;
- END_IF
- END_IF
- (*** Sygnalizacja alarmów (p.5) ***)
- IF P1 OR (G1 AND NOT H1) OR (H3 AND NOT H2) OR (H2 AND NOT H1) THEN
- ALM:=TRUE;
- END_IF
- (*** Obsługa alarmów ***)
- IF ALM AND START THEN (* ALARM - np. uszkodzone czujniki *)
- Z1 := FALSE; Z2 := FALSE; (* Stan bezpieczny Z1, Z2 *)
- G1 := FALSE; (* Grzałka G1 wyłączona *)
- AUTO := FALSE; (* Tryb MANUAL *)
- START := FALSE; (* Zatrzymanie procesu *)
- Stan := 0; (* Tryb MANUAL *)
- END_IF
- IF ALMACK THEN (* Jeśli potwierdzony alarm *)
- ALM := FALSE; (* Kasowanie alarmu *)
- ALMACK := FALSE; (* Kasowanie potwierdzenia *)
- END_IF
- END_PROGRAM
Add Comment
Please, Sign In to add comment