Programmierung der sicherheitsbezogenen Anwendung
Allgemeine Informationen zum sicherheitsbezogenen Projekt
Die nachstehende Liste enthält grundlegende Angaben zur Benutzerschnittstelle des Machine Expert - Safety und zu den Kenndaten des sicherheitsbezogenen Codes und der sicherheitsbezogenen Variablen.
Weiterführende und detaillierte Informationen finden Sie im Benutzerhandbuch von EcoStruxure Machine Expert - Safety.
oPOUs werden im Projektbaum-Fenster verwaltet.
oEin sicherheitsbezogenes Projekt kann genau eine POU des Programms vom Typ IE 61131-3 namens Main enthalten. Diese POU kann weder gelöscht noch umbenannt und es können keine weiteren benutzerdefinierten IEC 61131-3-Programme hinzugefügt werden (nur FBs).
oDie sicherheitsbezogene Task, in der dieses Programm ausgeführt wird, ist ebenfalls vordefiniert, in Machine Expert - Safety jedoch nicht sichtbar. Sie können diese Taskkonfiguration nicht bearbeiten.
HINWEIS: Da nur eine sicherheitsbezogene Task vom SLC ausgeführt wird, hat eine Änderung der SLC-Zykluszeit dieselbe Wirkung wie eine Änderung der Task-Zykluszeit.
oSie können benutzerdefinierte sicherheitsbezogene Funktionsbausteine (gemäß IEC 61131-3) erstellen, jedoch keine Funktionen.
oSie können Bibliotheken einfügen, die sicherheitsbezogene Funktionen und Funktionsbausteine bereitstellen.
oJede POU besteht aus einem oder mehreren Code-Arbeitsblättern und einer Variablentabelle mit lokalen Variablendeklarationen. Wenn Sie auf ein Baumsymbol doppelklicken, wird das entsprechende Arbeitsblatt zur Bearbeitung geöffnet.
oGlobale Variablendeklarationen sind in einem separaten Variablenraster enthalten. Klicken Sie auf das Symbol Global decl. in der Hauptsymbolleiste, um diese Tabelle zu öffnen.
oDer Edit Wizard stellt Funktionen und Funktionsbausteine bereit. Wenn Sie eine POU-Bibliothek hinzugefügt haben (über das Kontextmenü im Ordner Bibliotheken im Projektbaum), können die enthaltenen Bausteine in einer separaten Gruppe ausgewählt werden.
oIn Machine Expert - Safety wird streng zwischen Sicherheits- und Standardcode unterschieden. Aus diesem Grund wird ebenfalls zwischen Sicherheits- und Standardvariablen bzw. genauer gesagt zwischen Sicherheits- und Standard-Datentypen unterschieden. So ist es beispielsweise nicht möglich, eine Variable eines Standard-Datentyps mit einem formalen Parameter zu verbinden, der eine sicherheitsbezogene Variable erwartet.
Sicherheitsbezogene Variablen werden im Code mit rotem Hintergrund dargestellt. Variablen der Standard-Datentypen erscheinen ohne Hintergrundfarbe.
oSicherheitsbezogene System-FUs/FBs sowie sicherheitsbezogene Bibliotheks-FBs werden rot angezeigt. Standardbausteine werden grau-blau dargestellt, Benutzer-FUs/FBs grün.
oWenn Sicherheits- und Standardvariablen miteinander kombiniert werden, führt Machine Expert - Safety eine Datenflussanalyse im FBD/LD-Code durch und hebt die führenden sicherheitsbezogenen Signalpfade eines Netzwerks durch deren Darstellung als dicke rote Linien optisch hervor. Ein sicherheitsbezogener Pfad endet stets entweder an einer sicherheitsbezogenen Ausgangsvariablen oder, im Fall einer Standard-Ausgangsvariablen, am letzten Objekteingang, der sich vor diesem Ausgang befindet. Wenn eine Standard-Signalpfad an einem sicherheitsbezogenen Ausgang endet, wird dieser Ausgang mit einem rot schraffierten Hintergrund angezeigt.
Beispiel für eine Sicherheitsanwendung
Das nachstehende einfache Programm verwendet die im Beispielprojekt konfigurierten TM5-E/A-Module. Die Vorgehensweisen zur Entwicklung dieses Beispiels werden in den nachfolgenden Abschnitten beschrieben.
Eine umfassende Beschreibung der Editorfunktionen finden Sie im Kapitel zur FBD/LD-Codeentwicklung im EcoStruxure Machine Expert Benutzerhandbuch.
Das Eingangssignal SafeDigitalInput01 des TM5SDI4DFS-Moduls wird über die AND_S-Funktion gelesen und dem Ausgangssignal SafeDigitalOutput01 des TM5SDO4TFS-Moduls zugeordnet. Aufgrund der AND_S-Funktion werden die SafeModuleOK-Diagnosesignale der sicherheitsbezogenen E/A-Module ausgewertet. Bei Erkennung eines Fehlers in einem Modul wird das SafeDigitalOutput01-Signal ausgeschaltet (SAFEFALSE).
Darüber hinaus wird der SafeDigitalOutput01 in die boolesche Austauschvariable SLC2LMC_Bool0_7_0 geschrieben, die zu den in der SLC-Gerätekonfiguration in Logic Builder konfigurierten SLC2LMC-Austauschdaten gehört. Auf diese Weise kann die Standardanwendung den Status des Ausgangs lesen. (Das SafeDigitalOutputxx-Signal ist für digitale Ausgangsmodule verfügbar. Es meldet der Standardanwendung, ob der sicherheitsbezogene Ausgang von der Sicherheitsanwendung gesetzt wird.) Die direkte Verbindung der sicherheitsbezogenen Variablen mit der Standard-Austauschvariablen SLC2LMC_Bool0_7_0 ist möglich, da Typkonvertierungen von Sicherheits- zu Standard-Datentypen zulässig sind.
Der Timer-Funktionsbaustein TON_S verzögert das ReleaseOutput01-Signal. Dieses Freigabesignal deaktiviert eine aktive Neustartblockierung und gibt den Ausgangskanal des SafeDigitalOutput01-Signals des TM5SDO4TFS-Moduls frei. Die Verzögerungszeit ist auf 50 ms eingestellt.
HINWEIS: Diese programmierte Verzögerungszeit wirkt sich auf die globale Sicherheitsreaktionszeit des Systems aus.
Einfügen einer Funktion / eines Funktionsbausteins in den Code
Schritt |
Aktion |
---|---|
1 |
Öffnen Sie das Haupt-Programmarbeitsblatt durch einen Doppelklick auf das entsprechende Symbol im Projektbaum-Fenster. |
2 |
Wählen Sie im Auswahlbereich Edit Wizard den gewünschten Funktionsbaustein aus. Sollte der Baustein nicht sichtbar sein, dann müssen Sie zuerst die Gruppe <all FUs and FBs> auswählen. |
3 |
Ziehen Sie den Baustein aus dem Auswahlbereich Edit Wizard in das Codearbeitsblatt, klicken Sie mit der linken Maustaste, um den Bausteinumriss einzufügen, und legen Sie den Baustein dann mit einem weiteren linken Mausklick an der gewünschten Position ab. |
4 |
Bei einem Funktionsbaustein (z. B. TON_S) muss eine Instanzvariable deklariert werden. Ergebnis: Das Dialogfeld Variable wird mit einem Instanznamen angezeigt, den Sie nach Wunsch ändern können. |
5 |
Klicken Sie im Dialogfeld Variable auf OK. Ergebnis: Die Funktionsbausteininstanz wird in den Code und die entsprechende Instanzvariable in die lokalen Deklarationen der Haupt-POU eingefügt. Sie können das Deklarationsarbeitsblatt durch einen Klick auf das ToggleWS-Symbol in der Hauptsymbolleiste öffnen. |
6 |
In diesem Beispiel benötigt die AND_S-Funktion vier Eingänge. Um die Funktion anzupassen, klicken Sie mit der rechten Maustaste auf das Bausteinsymbol und wählen Sie im Kontextmenü die Option Objekteigenschaften aus. Wählen Sie den Eintrag IN2 in der List eFormal Parameters aus und klicken Sie zweimal auf Duplicate FP, um zwei weitere Eingänge hinzuzufügen. Schließen Sie das Dialogfeld mit OK. |
Einfügen von Gerätesignalen in den Code
Das nachfolgende Verfahren gilt für die Gerätesignale, die unter den Geräteknoten im Fenster Geräte bereitgestellt werden. Dazu gehören für den SLC definierte Austauschvariablen sowie Diagnose- und Steuersignale der sicherheitsbezogenen E/A-Module.
Schritt |
Aktion |
---|---|
1 |
Öffnen Sie das Codearbeitsblatt, in dem Sie das Signal einfügen möchten. |
2 |
Öffnen Sie im Fenster Geräte den Gerätebaum am linken Rand und erweitern Sie den Knoten des gewünschten Moduls (SL1.SMx). |
3 |
Ziehen Sie das gewünschte Signal in das Codearbeitsblatt. Ergebnis: Sobald Sie die Maustaste loslassen, wird das Dialogfeld Variable angezeigt. |
4 |
Übernehmen Sie im Dialogfeld Variable den vorgeschlagenen Namen und wählen Sie eine vorhandene globale Variable aus bzw. deklarieren Sie eine neue globale Variable. Die in diesem Beispiel verwendeten Variablennamen können Sie der Abbildung entnehmen. |
5 |
Bestätigen Sie das Dialogfeld Variable durch einen Klick auf OK und legen Sie die Variable mit einem Linksklick an der gewünschten Position ab. Ergebnis: Die Variable wird in den Code und die zugehörige Variablendeklaration automatisch in das globale Variablenarbeitsblatt eingefügt. Sie können die Variable direkt auf einem Bausteinausgang oder -eingang ablegen, um sie beim Einfügen zu verbinden. |
Fügen Sie in diesem Beispiel folgende Signale auf die beschriebene Weise ein:
oSafeDigitalInput01 des mit einem AND_S-Eingang verbundenen TM5SDI4DFS-Moduls.
oSafeModuleOK jedes mit einem AND_S-Eingang verbundenen E/A-Moduls.
oSafeDigitalOutput01 des mit dem AND_S-Ausgang verbundenen TM5SDO4TFS-Moduls.
Fügen Sie die Variable ein zweites Mal ein und legen Sie sie an einer freien Position ohne Verbindung ab.
oReleaseOutput01 des mit dem TON_S-Ausgang verbundenen TM5SDO4TFS-Moduls.
oSLC2LMC_Bool0_7_0-Austauschvariable des mit dem Eingang (blauer Verbindungspunkt) der nicht verbundenen SafeDigitalOutput01-Variablen verbundenen SLC. Auf diese Weise wird die Ausgangsvariable in die boolesche Austauschvariable geschrieben.
Einfügen von Konstanten (Literale) in den Code
Das nachstehende Verfahren beschreibt, wie Literale in den Code eingefügt werden. Literale müssen zur Eingabe von Konstantwerten in den Code verwendet werden. Sie können ohne Angabe einer Deklaration verwendet werden.
Schritt |
Aktion |
---|---|
1 |
Sie können nicht verbundene oder verbundene/zugewiesene Konstanten einfügen: oUm eine bereits mit einer Funktion oder einem Funktionsbaustein verbundene Konstante einzufügen, doppelklicken Sie auf den gewünschten formalen Parameter. oUm eine mit keinem Objekt verbundene Konstante einzufügen, klicken Sie auf eine freie Position im Arbeitsblatt und drücken Sie F5 oder klicken Sie auf das Symbol Variable in der Editorsymbolleiste. Ergebnis: Das Dialogfeld Variable wird angezeigt. |
2 |
Geben Sie Bereich = Konstante an. |
3 |
Im Kombinationsfeld Typ wird ein Datentyp vorgeschlagen. Passen Sie diese Einstellung nach Bedarf an. |
4 |
Geben Sie im Feld Name das gewünschte Literal (die Konstante) ein. Beachten Sie die unter dieser Tabelle angegebenen Regeln. |
5 |
Drücken Sie OK. Ergebnis: Die Konstante wird in den FBD/LD-Code eingefügt. |
Detaillierte Informationen zu Konstanten und dem Sonderfall „Globale Konstanten“ finden Sie im Kapitel zu Konstanten (Literale): Einfügen und Deklarieren im EcoStruxure Machine Expert Benutzerhandbuch.
Regeln für Konstanten:
oLiterale müssen immer mit dem Datentyp eingegeben werden (z. B. SAFEINT#1000).
Ausnahme: TRUE und FALSE werden stets als BOOL und SAFETRUE/SAFEFALSE als SAFEBOOL gehandhabt. So ist es beispielsweise nicht erforderlich, BOOL#TRUE einzugeben.
oStandard-INT-Konstanten können ohne Datentyp eingegeben werden (1000 z. B. bedeutet INT#1000), da Dezimaleingaben automatisch als INT interpretiert werden.
Ausnahme: 0 und 1 bei Verwendung mit dem Datentyp Boolesch.
Weitere Informationen zu Literalen gemäß dem Standard IEC 61131-3 finden Sie im Kapitel zu Konstanten im Vergleich zu Literalen im EcoStruxure Machine Expert Benutzerhandbuch.
Einfügen neuer Variablen in den Code
Das nachstehende Verfahren beschreibt, wie neue Variablen in den Code eingefügt werden. Die Deklaration wird automatisch in das entsprechende Deklarationsarbeitsblatt eingefügt.
Schritt |
Aktion |
---|---|
1 |
Sie können nicht verbundene oder verbundene/zugewiesene Variablen einfügen: oUm eine bereits mit einer Funktion oder einem Funktionsbaustein verbundene Variable einzufügen, doppelklicken Sie auf den gewünschten formalen Parameter. oUm eine mit keinem Objekt verbundene Variable einzufügen, klicken Sie auf eine freie Position im Arbeitsblatt und drücken Sie F5 oder klicken Sie auf das Symbol Variable in der Editorsymbolleiste. oUm eine Variable für einen Kontakt oder eine Spule einzufügen, doppelklicken Sie auf jeweilige LD-Objekt. Ergebnis: Das Dialogfeld Variable wird angezeigt. |
2 |
Wählen Sie den Bereich der Variablen aus. Ergebnis: Für lokale Variablen wird die Deklaration in das Deklarationsarbeitsblatt der aktuellen POU eingefügt (Öffnen über des ToggleWS-Symbol). Eine globale Deklaration wird in das globale Deklarationsarbeitsblatt eingefügt, das durch einen Klick auf das Symbol Global decl. geöffnet werden kann. |
3 |
Geben Sie den Datentyp der neuen Variablen an, geben Sie einen Namen für die Variable ein und definieren Sie die verbleibenden Eigenschaften. |
4 |
Drücken Sie OK. Ergebnis: Die Variable wird in den FBD/LD-Code und die Deklaration in das entsprechende Deklarationsarbeitsblatt eingefügt. |
Für die Deklaration von Variablen sind weitere Möglichkeiten gegeben. Detaillierte Informationen finden Sie im Kapitel zu Variablen: Einfügen und Deklarieren im EcoStruxure Machine Expert Benutzerhandbuch.
Verbinden von Objekten im Grafikcode
Um Linien zwischen Objekten und formalen Bausteinparametern ziehen zu können, müssen Sie den Verbindungsmodus durch Klicken auf das Verbinden-Symbol in der Editorsymbolleiste aktivieren.
Durch einen Klick auf das Markieren-Symbol in der Editorsymbolleiste wird der Editor in den Markierungsmodus umgeschaltet, in dem Sie Objekte ausgewählen und verschieben können.
Deklarieren einer sicherheitsbezogenen Variablen für ein Gerätesignal
Das sicherheitsbezogene Projekte darf keine nicht verwendeten sicherheitsbezogenen TM5/TM7-Module enthalten. Nicht verwendet bedeutet, dass keines der unter dem Geräteknoten im Fenster Geräte in Machine Expert - Safety aufgeführten Signale im sicherheitsbezogenen Projekt verwendet wird. Mindestens ein Signal jedes Moduls muss einer globalen sicherheitsbezogenen Variablen in Machine Expert - Safety zugewiesen werden. Andernfalls meldet der Compiler Fehler.
Dasselbe gilt für die SLC-Austauschsignale, die Sie in Logic Builder definiert haben (siehe den Abschnitt Konfiguration des Datenaustauschs für den SLC).
HINWEIS: Die Deklaration einer sicherheitsbezogenen Variablen und deren Zuweisung zu einem Gerätesignal, ohne dass die Variable im Code verwendet wird, kann sich bei der Projektentwicklung als nützlich erweisen, da das sicherheitsbezogene Projekte dadurch kompiliert werden kann. In einer praktischen Anwendung müssen Sie sicherstellen, dass die relevanten Variablen im sicherheitsbezogenen Anwendungsprogramm gelesen und geschrieben werden.
Schritt |
Aktion |
---|---|
1 |
Öffnen Sie in Machine Expert - Safety das globale Variablenarbeitsblatt durch einen Klick auf das Symbol Globale decl. in der Symbolleiste. |
2 |
Klicken Sie mit der rechten Maustaste in das Raster und wählen Sie Neue Variable im Kontextmenü aus. Ergebnis: Eine neue Variable mit einem Standardnamen (der geändert werden kann) wird erstellt. |
3 |
Öffnen Sie im Fenster Geräte den Gerätebaum am linken Rand. Erweitern Sie den Baumknoten des Geräts, von dem eine Geräteklemme verwendet werden soll. |
4 |
Ziehen Sie das zu verbindende Gerätesignal in das globale Variablenarbeitsblatt und legen Sie es auf der gewünschten Deklaration ab. Ergebnis: oDer Kanalname des verbundenen Gerätesignals wird jetzt in der Spalte Klemme der globalen Deklaration im Variablenarbeitsblatt angezeigt. oDer Datentyp der globalen Variablen wurde an den Datentyp des zugewiesenen Gerätesignals angepasst. oIm Fenster Geräte wird der Name der verbundenen Variablen für dieses Gerätesignal in der Spalte Variable angegeben. |
HINWEIS: Anhand dieses Verfahrens können Sie auch bereits vorhandene Zuweisungen zwischen globalen Variablen und Gerätesignalen ersetzen. Beachten Sie die Gefahrenhinweise im Kapitel zur Verbindung/Trennung von Prozessdatenelementen und globalen E/A-Variablen im Benutzerhandbuch von EcoStruxure Machine Expert - Safety.
Um eine deklarierte Variable in den Code einzufügen, verwenden Sie das Dialogfeld Variable, das Sie über das Symbol Variable in der Editorsymbolleiste öffnen können. Detaillierte Informationen finden Sie im Kapitel zu Variablen: Einfügen und Deklarieren im Benutzerhandbuch von EcoStruxure Machine Expert - Safety.
Kompilieren des sicherheitsbezogenen Projekts
Sobald Sie die Entwicklung des sicherheitsbezogenen Projekts abgeschlossen haben, müssen Sie es kompilieren. (Wenn eine POU im Projektbaum mit einem Asterisk (*) gekennzeichnet ist, wurde sie nach der Bearbeitung der Variablen oder des Codes noch nicht kompiliert. Im Anschluss an eine erfolgreiche Kompilierung wird der Asterisk entfernt.)
Schritt |
Aktion |
---|---|
1 |
Drücken Sie F9 oder klicken Sie auf das Kompilieren-Symbol in der Symbolleiste. |
2 |
Beheben Sie alle Fehler, die der Compiler entdeckt und im Meldungsfenster signalisiert hat. Durch Doppelklicken auf eine Fehlermeldung springen Sie direkt zur entsprechenden Fehlerposition. |
3 |
Sobald Sie das Projekt ohne Fehler kompiliert haben, laden Sie das Projekt in den SLC herunter. Siehe das Kapitel Download der sicherheitsbezogenen Anwendung. |