-

Signalablauf: Konkurrierende Lösch- und Lesezugriffe

Das folgende Signalablauf-Diagramm zeigt das Verhalten der Rezeptur-FBs SF_RecipeDeleteFile und SF_RecipeRead wenn sie gleichzeitig auf dieselbe Rezeptur-Datei zugreifen. Durch diese konkurrierenden Operationen kann nur ein FB seine Ausführung erfolgreich beenden.

Hinweis
1) Um die Darstellung zu vereinfachen, wird im Signalablauf für jeden Zustandswechsel der FBs eine Dauer von einem Zyklus der Sicherheitssteuerung angenommen. In der Realität können hierfür mehrere Zyklen nötig sein. Die Dauer, um Rezepturdaten vollständig zu lesen/schreiben, variiert und hängt von der Menge der zu verarbeitenden Daten ab.

0Nach dem Start der Sicherheitssteuerung sind beide FBs deaktiviert. Folglich sind die Done-Ausgänge beider FBs SAFEFALSE und beide DiagCode-Ausgänge zeigen den Wert 0000 (Zustand Idle).
1SF_RecipeDeleteFile wird aktiviert, indem sein Eingang Activate auf TRUE gesteuert wird. In der Folge durchläuft der FB die Zustände 8002 (Prepare), 8004 (Warten auf Bereitschaft) und 8006 (Warten auf den Befehl zur Ausführung am Eingang CommandDelete).

SF_RecipeRead bleibt inaktiv.
2SF_RecipeDeleteFile bleibt aktiviert und wartet nach wie vor auf eine steigende Flanke am Eingang CommandDelete.

SF_RecipeRead wird aktiviert, indem sein Eingang Activate auf TRUE gesteuert wird. In der Folge durchläuft der FB die Zustände 8002 (Prepare), 8004 (Warten auf Bereitschaft) und 8006 (Warten auf den Befehl zur Ausführung am Eingang CommandRead).
3Eine steigende Flanke an CommandDelete und CommandRead startet die Ausführung der FBs.

Für beide FBs sind am Eingang IDRecipeFile dieselben Werte angelegt.

SF_RecipeDeleteFile sendet eine Anforderung an die Sicherheitssteuerung, um die Datei löschen zu dürfen.

SF_RecipeRead liest die Daten vom adressierten Datensatz und validiert dann die gelesenen Daten.
4Nachdem er das Löschen der Datei angefordert hat, wartet der SF_RecipeDeleteFile auf die Antwort der Sicherheitssteuerung.

Die Validierung im Baustein SF_RecipeRead war nicht erfolgreich, da die Datei zwischenzeitlich gelöscht wurden. Ausgang Done bleibt SAFEFALSE und am Ausgang DiagCode liegt der Wert C050 an.
5SF_RecipeDeleteFile hat seine Operation erfolgreich beendet. Die Datei wurde gelöscht und am Ausgang Done liegt SAFETRUE an (Zustand 8000).

SF_RecipeRead bleibt im Fehlerzustand. Ausgang Done bleibt SAFEFALSE und am Ausgang DiagCode liegt der Wert C050 an.