Schritte in ST

Syntax
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
Pro AS-Netzwerk sind mehrere Schritte zulässig. Beachten Sie die Hinweise unter "AS-Elemente in ST", wie Sie AS-Netzwerke effizient und korrekt erstellen/verwenden.

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.

Beispiel
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.

Beispiel
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;