Schritte in ST
STEP name_1 :
action_1();
action_2();
action_3(BZ); (* mit einem optionalen Aktionsbestimmungszeichen; 'BZ' ist hier nur ein Platzhalter. *)
action_4(BZ,T#0s); (* mit einem optionalen Aktionsbestimmungszeichen und einer Zeitdauer *)
...
action_n();
END_STEP
Bedeutung |
ein →Schritt im →AS-Netzwerk, wobei name_1 ein →IEC-Bezeichner sein muss Dem Schritt kann eine oder mehrere Aktionen zugeordnet werden: action_1(); ... action_n();Die Steuerung dieser Aktionen erfolgt durch das optionale Aktionsbestimmungszeichen. Informationen darüber, wann ein Schritt bzw. Initial-Schritt aktiv oder inaktiv ist, und die Auswirkungen davon finden Sie unter "Auswertung des ST-Codes inklusive der AS-Netzwerke". Die Verwendung des Schritts ist nur in der aktuellen POE möglich. |
STEP step1 :
act1();
act2(N);
act3(L,T#10s);
END_STEP
STEP step2 :
act2(R);
END_STEP
Schrittmerker und Schrittzeiten verwenden
Sie können die folgenden Eigenschaften eines Schritts in der aktuellen POE verwenden. Die Verwendung ist analog zur Verwendung einer →konstanten Variable möglich.
(Die folgenden Beschreibungen beziehen sich auf einen Schritt mit dem Namen name_1.)
Schrittmerker: Der aktive oder inaktive Zustand des Schritts kann durch den logischen Wert des booleschen Strukturelements name_1.X dargestellt werden. Falls der Schritt aktiv ist, hat X den Wert TRUE (oder eine Entsprechung). Bei einem inaktiven Schritt hat X den Wert FALSE (oder eine Entsprechung). Verwenden Sie z.B. den Schrittmerker, damit ein AS-Netzwerk den Zustand eines anderen AS-Netzwerks prüfen kann.
Schrittzeit: Die Zeit, die seit der Initiierung des Schritts verstrichen ist, kann durch das Strukturelement name_1.T vom Datentyp TIME dargestellt werden: Wird der Schritt aktiviert, wird der Wert für name_1.T auf t#0s zurückgesetzt. Wird der Schritt deaktiviert, bleibt der Wert für name_1.T erhalten, der vorlag, als der Schritt deaktiviert wurde.
Aktivierungszeitpunkt: Der Zeitpunkt, zu dem der Schritt aktiviert wurde, kann durch das Strukturelement name_1.S vom Datentyp TIME dargestellt werden.
ACTION act3 :
IF step1.T < t#5s THEN (* Bis 5 Sekunden nach der Aktivierung des Schritts 'step1' wird die Variable 'cntStep0' hochgezählt. *)
cntStep0 := cntStep0 + 1;
ELSE
cntStep0 := cntStep0 - 1;
END_IF;
END_ACTION
(* Fehlerhafte Verwendung *)
step1.X := BOOL#1;
step1.T := t#100ms;
step1.S := t#100s;