Hier der tekst aus der hilfe in V13 SP1
Beschreibung (S7-1200, S7-1500)
Diese Anweisung ermöglicht eine fehlersichere Quittierung von einem Bedien- und Beobachtungssystem aus. Damit kann z. B. die Wiedereingliederung von F‑Peripherie über das Bedien- und Beobachtungssystem gesteuert werden. Eine Quittierung besteht aus zwei Schritten:
- Wechsel des Durchgangs IN für genau einen Zyklus auf den Wert 6
- Wechsel des Durchgangs IN für genau einen Zyklus auf den Wert am Eingang ACK_ID innerhalb einer Minute
Die Anweisung wertet aus, ob nach einem Wechsel des Durchgangs IN auf den Wert 6 nach frühestens 1 Sekunde oder spätestens einer Minute ein Wechsel auf den Wert am Eingang ACK_ID erfolgt ist. Dann wird der Ausgang OUT (Ausgang für Quittierung) für einen Zyklus auf 1 gesetzt.
Wird ein ungültiger Wert eingegeben oder erfolgt der Wechsel auf den Wert am Eingang ACK_ID nicht innerhalb von einer Minute oder vor Ablauf einer Sekunde, wird der Durchgang IN auf 0 zurückgesetzt, und die beiden obigen Schritte müssen erneut durchgeführt werden.
Während der Zeit, in der der Wechsel von 6 auf den Wert am Eingang ACK_ID erfolgen muss, wird der Ausgang Q auf 1 gesetzt. Sonst hat Q den Wert 0.
Jedem Aufruf der Anweisung "Fehlersichere Quittierung" muss ein Datenbereich zugeordnet werden, in dem die Anweisungsdaten gespeichert werden. Dazu wird beim Einfügen der Anweisung im Programm automatisch der Dialog "Aufrufoptionen" geöffnet, in dem Sie einen Datenbaustein (Einzelinstanz) (z. B. ACK_OP_DB_1) oder eine Multiinstanz (z. B. ACK_OP_Instance_1) für die Anweisung "Fehlersichere Quittierung" erstellen können. Nach dem Erstellen finden Sie den neuen Datenbaustein in der Projektnavigation im Ordner "STEP 7 Safety" unter "Programmbausteine > Systembausteine" oder die Multiinstanz als lokale Variable im Abschnitt "Static" der Schnittstelle des Bausteins. Weitere Informationen dazu finden Sie in der Hilfe zu
STEP 7.
[TABLE="class: safety"]
[TR]
[TD]
Hinweis Sie müssen für jeden Aufruf des ACK_OP einen separaten Datenbereich verwenden. Jeder Aufruf darf in einem Zyklus der F-Ablaufgruppe nur einmal bearbeitet werden.
Bei Nichtbeachtung kann die F‑CPU in STOP gehen. Im Diagnosepuffer der F‑CPU wird die Ursache des Diagnoseereignisses eingetragen. Weitere Informationen zur Ursache erhalten Sie in der Online-Hilfe zur Diagnosemeldung.
[/TD]
[/TR]
[/TABLE]
Die Beschaltung des Freigabeeingangs "EN" bzw. des Freigabeausgangs "ENO" ist nicht möglich. Somit wird die Anweisung (unabhängig vom Signalzustand am Freigabeeingang "EN") immer ausgeführt.
[TABLE="class: warning"]
[TR]
[TD="class: iconheader"]
[/TD]
[TD="class: textheader"]
Warnung [/TD]
[/TR]
[TR]
[TD="colspan: 2"]
Die beiden Quittierungsschritte dürfen nicht durch eine einzige Bedienung ausgelöst werden, z. B. indem Sie die Quittierungsschritte inklusive der Zeitbedingungen automatisch in einem Programm hinterlegen und durch eine einzige Funktionstaste auslösen!
Durch die beiden separaten Quittierungsschritte wird auch eine fehlerhafte Auslösung einer Quittierung durch Ihr nicht fehlersicheres Bedien‑ und Beobachtungssystem verhindert. (S013)
[/TD]
[/TR]
[/TABLE]
[TABLE="class: warning"]
[TR]
[TD="class: iconheader"]
[/TD]
[TD="class: textheader"]
Warnung [/TD]
[/TR]
[TR]
[TD="colspan: 2"]
Falls Sie miteinander vernetzte Bedien‑ und Beobachtungssysteme und F‑CPUs haben, die die Anweisung ACK_OP zur fehlersicheren Quittierung nutzen, müssen Sie sich vor Ausführung der beiden Quittierungsschritte davon überzeugen, dass tatsächlich die beabsichtigte F‑CPU angesprochen wird.
Alternative 1:
- Der Wert für die jeweilige Kennung der Quittierung (Eingang ACK_ID; Datentyp: INT) ist im Bereich von 9...30000 frei wählbar, muss jedoch netzweit* für alle Instanzen der Anweisung ACK_OP eindeutig sein.
Sie müssen den Eingang ACK_ID beim Aufruf der Anweisung mit konstanten Werten versorgen. Direkte Zugriffe im zugehörigen Instanz-DB sind im Sicherheitsprogramm weder lesend noch schreibend zulässig!
Alternative 2:
- Hinterlegen Sie in jeder F‑CPU in einem DB Ihres Standard‑Anwenderprogramms eine netzweit* eindeutige Bezeichnung für die F‑CPU.
- Richten Sie auf Ihrem Bedien‑ und Beobachtungssystem ein Feld ein, aus dem Sie vor Ausführung der beiden Quittierungsschritte die Bezeichnung der F‑CPU online aus dem DB auslesen können.
- Optional:
Richten Sie auf Ihrem Bedien‑ und Beobachtungssystem ein Feld ein, in dem die Bezeichnung der F‑CPU zusätzlich fest hinterlegt ist. Dann können Sie durch einen einfachen Vergleich der online ausgelesenen Bezeichnung der F‑CPU mit der fest hinterlegten Bezeichnung feststellen, ob die beabsichtigte F‑CPU angesprochen wird. (S047)
[/TD]
[/TR]
[/TABLE]
* Ein Netz besteht aus einem oder mehreren Subnetzen. "Netzweit" bedeutet, über Subnetz-Grenzen hinweg.
[TABLE="class: warning"]
[TR]
[TD="class: iconheader"]
[/TD]
[TD="class: textheader"]
Warnung [/TD]
[/TR]
[TR]
[TD="colspan: 2"]Berücksichtigen Sie bei der Bestimmung Ihrer Reaktionszeiten beim Einsatz einer Anweisung mit Zeitverarbeitung folgende zeitliche Unschärfen:
- die aus dem Standard bekannte zeitliche Unschärfe, die durch die zyklische Verarbeitung entsteht
- die zeitliche Unschärfe, die durch den Aktualisierungszeitpunkt der in der Anweisung verwendeten Zeitbasis entsteht (siehe Bild im Abschnitt "Zeitliche Unschärfe, die durch den Aktualisierungszeitpunkt der in der Anweisung verwendeten Zeitbasis entsteht")
- die Toleranz der internen Überwachung der Zeiten in der F‑CPU
- bei Zeitwerten bis 100 ms maximal 20 % des (parametrierten) Zeitwertes
- bei Zeitwerten ab 100 ms maximal 2 % des (parametrierten) Zeitwertes
Sie müssen den Abstand zwischen zwei Aufrufzeitpunkten einer Anweisung mit Zeitverarbeitung so wählen, dass bei Berücksichtigung der möglichen zeitlichen Unschärfen die erforderlichen Reaktionszeiten erreicht werden.
(S034)
[/TD]
[/TR]
[/TABLE]
[TABLE="class: safety"]
[TR]
[TD]
Hinweis Sie dürfen den Ausgang Q über Bedien- und Beobachtungssysteme auslesen oder ggf. in Ihrem Standard-Anwenderprogramm auswerten.
Sie müssen für jede Instanz der Anweisung ACK_OP den Durchgang IN mit einem eigenen Merkerwort bzw. DBW eines DBs des Standard-Anwenderprogramms versorgen.
[/TD]
[/TR]
[/TABLE]
Parameter (S7-1200, S7-1500)
Die folgende Tabelle zeigt die Parameter der Anweisung:
[TABLE="class: table_default, width: 100%"]
[TR="class: first"]
[TH]Parameter
[/TH]
[TH]Deklaration
[/TH]
[TH]Datentyp
[/TH]
[TH]Beschreibung
[/TH]
[/TR]
[TR]
[TD]ACK_ID
[/TD]
[TD]Input
[/TD]
[TD]INT
[/TD]
[TD]Kennung der Quittierung (9…30000)
[/TD]
[/TR]
[TR]
[TD]IN
[/TD]
[TD]InOut
[/TD]
[TD]INT
[/TD]
[TD]Eingangsgröße vom Bedien- und Beobachtungssystem
[/TD]
[/TR]
[TR]
[TD]OUT
[/TD]
[TD]Output
[/TD]
[TD]BOOL
[/TD]
[TD]Ausgang für Quittierung
[/TD]
[/TR]
[TR]
[TD]Q
[/TD]
[TD]Output
[/TD]
[TD]BOOL
[/TD]
[TD]Status der Zeit
[/TD]
[/TR]
[/TABLE]
Anweisungsversionen
Für diese Anweisung stehen mehrere Versionen zur Verfügung:
[TABLE="class: table_default, width: 100%"]
[TR="class: first"]
[TH]Version
[/TH]
[TH]S7-300/400
[/TH]
[TH]S7-1200
[/TH]
[TH]S7-1500
[/TH]
[TH]Funktion
[/TH]
[/TR]
[TR]
[TD]1.0
[/TD]
[TD]x
[/TD]
[TD]—
[/TD]
[TD]—
[/TD]
[TD]Bei der Migration von Projekten die mit
S7 Distributed Safety V5.4 SP5 erstellt wurden, wird automatisch die Version 1.0 der Anweisung verwendet.
Wenn Sie ein migriertes Sicherheitsprogramm mit
STEP 7 Safety Advanced erstmalig übersetzen wollen, empfehlen wir Ihnen, zuvor die Version der Anweisung auf die höchste verfügbare Version umzustellen.
[/TD]
[/TR]
[TR]
[TD]1.1
[/TD]
[TD]x
[/TD]
[TD]—
[/TD]
[TD]x
[/TD]
[TD]Diese Versionen sind funktional identisch zur Version V1.0 für F-CPUs S7-300/400.
Für F-CPUs S7-1200/1500 müssen Sie zusätzlich den Eingang ACK_ID berücksichtigen.
[/TD]
[/TR]
[TR]
[TD]1.2
[/TD]
[TD]x
[/TD]
[TD]x
[/TD]
[TD]x
[/TD]
[/TR]
[/TABLE]
Beim Anlegen einer neuen F-CPU mit
STEP 7 Safety ist automatisch die höchste für die angelegte F-CPU verfügbare Version voreingestellt.
Weitere Informationen zur Verwendung von Anweisungsversionen erhalten Sie in der Hilfe zu
STEP 7 unter "Anweisungsversionen verwenden".
Zeitliche Unschärfe, die durch den Aktualisierungszeitpunkt der in der Anweisung verwendeten Zeitbasis entsteht:
[TABLE="class: table_legend, width: 100%"]
[TR]
[TD]①
[/TD]
[TD]Der Aufrufzeitpunkt der Anweisung beim ersten Aufruf im Zyklus n+1 in Bezug auf den Beginn der F‑Ablaufgruppe ist um Δ[SUB]1[/SUB] früher als im Zyklus n, z. B. weil Teile des Sicherheitsprogramms der F‑Ablaufgruppe vor dem Aufrufzeitpunkt der Anweisung im Zyklus n+1 übersprungen werden. Die Anweisung berücksichtigt bei der Zeitaktualisierung statt der seit dem Aufruf in Zyklus n tatsächlich abgelaufenen Zeit T[SUB]1[/SUB] die Zeit T[SUB]Basis_1[/SUB].
[/TD]
[/TR]
[TR]
[TD]②
[/TD]
[TD]Die Anweisung wird im Zyklus n+1 ein zweites Mal aufgerufen. Dabei erfolgt keine erneute Zeitaktualisierung (um Δ[SUB]2[/SUB]).
[/TD]
[/TR]
[TR]
[TD]③
[/TD]
[TD]Der Aufrufzeitpunkt der Anweisung beim Aufruf im Zyklus n+2 in Bezug auf den Beginn der F‑Ablaufgruppe ist um Δ[SUB]3[/SUB] später als im Zyklus n, z. B. weil die F‑Ablaufgruppe vor dem Aufrufzeitpunkt der Anweisung im Zyklus n+2 durch einen höherprioren Alarm unterbrochen wurde. Statt der seit dem Aufruf in Zyklus n tatsächlich abgelaufenen Zeit T[SUB]3[/SUB] hat die Anweisung die Zeit T[SUB]Basis_1[/SUB] + T[SUB]Basis_2 [/SUB]berücksichtigt. Dies wäre auch dann der Fall, wenn im Zyklus n+1 kein Aufruf erfolgt wäre.
[/TD]
[/TR]
[/TABLE]
Beispiel
Ein Beispiel für die Anwendung der Anweisung erhalten Sie unter
Realisierung einer Anwenderquittierung im Sicherheitsprogramm der F-CPU eines DP-Masters oder IO-Controllers.