SafetyRemote Sonderbefehle
Safety-Remote Sonderbefehle
Inhaltsverzeichnis
1 Einführung
2 Marken
3 Zähler
4 Variablen
5 Sprungbefehle
6 Unterprogrammaufruf
7 Sonderbefehle
Einführung
Safety-Remote enthält Sonderbefehle zur Programmverzweigung, zur Abfrage von Ergebnissen und zum Rechnen mit Parametern oder Ergebnissen. Dadurch ist es möglich, Prozeduren mit Programmschleifen, Unterprogrammen und bedingten Abläufen zu gestalten.
Jeder Befehl nimmt eine Programmzeile ein.
Jeder Befehl besteht aus einer Abkürzung, die jedoch nur intern im Programmablauf verwendet wird, einer Befehlsbeschreibung, die sprachabhängig ist, und bis zu vier Parametern.
Wenn Sie Befehle zur Abfrage und Programmverzweigung verwenden, achten Sie auf sinnvolle Namen und Gruppierungen. Anders als bei einem normalen Programmablauf kann eine Prozedur nicht mit Leerzeilen oder Kommentaren zur besseren Lesbarkeit versehen werden.
Variablennamen, Markennamen und Zählernamen dürfen ein beliebiger alphanumerischer Text und auch Leerzeichen enthalten, jedoch keine Leerzeichen zu Beginn und am Ende. Alle Variablennamen einer Prozedur sollten sich voneinander unterscheiden, ebenso alle Markennamen (Marke = „Label" oder „Ziel" oder „Sprungmarke") und Zählernamen.
Zähler, Variablen und Marken sind in der Anzahl begrenzt. Zum Zeitpunkt der Erstellung dieser Dokumentation ist die Anzahl auf jeweils 100 begrenzt. Diese Anzahl wird im Prozedurablauf überwacht. Bei Bedarf kann die Anzahl erhöht werden.
Marken
Marken dienen dazu, ein Ziel für einen Sprungbefehl oder ein Unterprogramm zu definieren. Der Name der Marke (anschließend die „Marke" genannt) wird im Parameter 1 definiert. Eine Marke darf nur einmal im Programmablauf vorkommen. Wenn sie mehrmals vorkommt, wird immer die zuerst definierte Marke verwendet. Es sind bis zu 100 Marken in einem Ablauf möglich.
Syntax:
Marke setzen
LABEL | Sprungmarke setzen (Par1) | Destination |
„Destination" steht hier für den Markennamen. Benennen Sie „Destination" in einen sinnvollen Namen um. Nach der Durchführung eines Sprungbefehles oder Unterprogrammaufrufes wird die Ausführung der Prozedur nach der Marke fortgesetzt. Der Sprungbefehl und der Markenname tauchen nicht in der Ergebnisliste auf.
Zähler
Zähler dienen dazu, sich wiederholende Abläufe nur einmal in der Prozedur zu definieren und in einer Schleife sooft durchzuführen, wie es für den Zähler definiert wurde.
Ein Zähler wird immer zusammen mit einem Schleifensprungbefehl und einer Marke verwendet.
Zähler setzen
CNTR | Zähler setzen. Par 1 = Label Par 2 = Anzahl | Counter | 1 |
Im Parameter 1 steht der Name des Zählers. Im Parameter 2 steht die Anzahl. Parameter 2 kann auch ein Variablenname sein. In diesem Fall wird der numerische Wert der Variable in eine Ganzzahl gewandelt und als Zähler verwendet. Wenn der Zähler bereits definiert ist, wird der Wert neu gesetzt. Wenn er noch nicht definiert wurde, dann wird er in diesem Prüfschritt definiert.
Variablen
Variablen werden verwendet, um Werte zwischen zu speichern. Diese Werte können Zahlen oder Zeichenfolgen sein. Die Werte können von Ergebnissen einer Messung stammen, sie können direkt gesetzt werden und sie können im Prozedurablauf eingegeben werden. Mit Variablen kann gerechnet werden. Eine Variable kann auch als Ergebnis eines Prüfschrittes bewertet werden. Variablen können miteinander oder mit Konstanten verglichen werden und die Prüfprozedur wird dann aufgrund der Bewertung des Ergebnisses an einer durch eine Marke definierte Stelle fortgesetzt.
Variable setzen.
SETVAR | Variable setzen.Variable Par1, Wert Par2 | Variable | 1 |
Der Variablenname steht im Parameter 1, der Wert, auf den die Variable gesetzt wird, im Parameter 2. Als Wert kann auch eine Bezeichnung mit Wertangabe verwendet werden. Wenn z. B. als Wert 1mV steht, dann wird 0,001 in die Variable geschrieben. Die Einheit geht verloren. Es können auch E Operatoren verwendet werden. 0,001 entspricht also 1E-3. Ein Komma und ein Punkt werden als Dezimaltrennzeichen gesehen.
Die Standard Einheitsbezeichnungen sind:
„p" Pico. 1 p entspricht 1E-12
„n" Nano. 1n entspricht 1E-9
„u" Micro. 1u entspricht 1E-6
„m" Milli. 1m entspricht 1E-3. Hinweis: Hier unterscheidet sich Groß- und Kleinschreibung. 1M ist 1E6.
„k" Kilo, 1k entspricht 1E3
„M" Mega. 1M entspricht 1E6
„G" Giga. 1G entspricht 1E9
„T" Terra. 1T entspricht 1E12.
Wenn in Parameter die englsiche Bezeichnung eines Feldes der Startmaske steht, wird dieser Wert in Var1 übertragen.
Var1=Var2
SETVV | Var1 (Par1) = Var2 (Par2) | Var1 | Var2 |
Die Variable im Parameter 1 wird auf den Wert der im Parameter 2 genannten Variable gesetzt. Die Variable im Parameter 2 muss definiert sein. Ist sie nicht definiert und steht im Parameter 2 ein numerischer Wert, so wird dieser Wert anstatt einer Variablen verwendet. Wenn Variable 1 noch nicht definiert ist, so wird sie in diesem Schritt definiert. Durch Parameter 3 ist es möglich, vor dem Setzen der im Parameter 1 definierten Variablen, Rechenoperationen, die im Parameter 3 definiert sind, mit den im Parameter 1 und Parameter 2 definierten Variablen vorzunehmen.
Im Folgenden heißt Var1 die unter Parameter 1 definierte Variable, Var2 die unter Parameter 2 definierte Variable. Wenn in den Operationen Var1 noch nicht definiert war, wird sie vor der Operation definiert und auf 0 gesetzt.
Die definierten Rechenoperationen:
Parameter 3 | Bedeutung |
Var1 = Var2 | Variable 1 wird auf den Wert von Variable 2 gesetzt |
Var1 = Var1 + Var2 | Variable 1 wird zunächst zur Variable 2 hinzugezählt. Das Ergebnis wird in Variable 1 geschrieben |
Var1 = Var1 – Var2 | Var2 wird von Var 1 abgezogen, das Ergebnis in Var1 geschrieben |
Var1 = Var1 * Var2 | Var1 wird mit Var2 multipliziert, das Ergebnis in Var1 geschrieben |
Var1 = Var1 / Var2 | Var1 wird mit Var2 dividiert, das Ergebnis in Var1 geschrieben |
Var1 = Var1 ^ Var2 | Var1 wird exponiert, das Ergebnis in Var1 geschrieben |
Var1 = log (Var2) | Var1 wird auf den Logarithmus (Basis 10) von Var 2 gesetzt. |
Var1 = Var1 AND Var2 | Var1 und Var2 werden bitweise verundet |
Var1 = Var1 OR Var2 | Var1 und Var2 werden bitweise verodert |
Var1 = NOT Var2 | Var1 wird gesetzt auf die bitweise Invertierung von Var2 |
Var1 = Var1 & Var2 | Var1 und Var2 werden als Zeichenketten verknüpft, das Ergebnis in Var1 geschrieben. |
Var1 = Hex(Var2) | Der ASCII Hex-Wert von Var2 wird in Var1 übertragen |
Die Variable auf das Prüfergebnis setzen
Variable auf Ergebnis setzen
VARRES | Variable (Par1) = Ergebnis des vorigen Schrittes. | Var1 |
Die Variable im Parameter 1 wird auf das Ergebnis des vorigen Prüfschrittes gesetzt.
Variable bewerten
EVAVAR | Variable bewerten | Var1 | Var2 |
Der Wert von Var1 wird als Istwert, der von Var2 als Sollwert bewertet
Sprungbefehle
Es gibt unmittelbare, an das Ergebnis eins Vergleichs geknüpfte und Schleifen-Sprungbefehle.
Ein Sprungbefehl hat einen Markennamen als Ziel. Ist dieser nicht definiert, erscheint eine Fehlermeldung und der Prozedurablauf wird abgebrochen.
Der unmittelbare oder unbedingte Sprungbefehl
Springe
JUMP | Springe | Destination | Immer |
Der unmittelbare Sprungbefehl springt zur Marke, deren Namen im Parameter 1 angegeben ist.
Im Parameter 2 kann stehen „Immer" oder „Bei Fehler".
„Immer" oder Parameter 2 leer heißt, dass die Prozedur in jedem Fall an der unter Parameter 1 angegebenen Marke fortgesetzt wird. „Bei Fehler" heißt, dass das Programm nur nach Durchführen eines Prüfschrittes, in der das Ergebnis nicht „OK" ist, am Punkt der Marke fortgesetzt wird. Diese Bedingung ist dazu da, bei einem umfangreichen Prüfablauf in einen weiteren Prüfabschnitt zu springen, auf den der gefundene Fehler keine Auswirkung hat.
Hinweis: Nach einem bedingten Sprungbefehl wird die Prozedur in der Zeile nach diesem bedingten Sprungbefehl fortgesetzt, wenn die Sprungbedingung nicht erfüllt ist. Häufig ist es jedoch besser leserlich, wenn der Ablauf an anderer Stelle fortgesetzt wird. In diesem Fall sollte ein unmittelbarer Sprungbefehl mit dem neuen Ziel nach dem bedingten Sprungbefehl eingesetzt werden.
Schleifensprung
Zähler -1, Springe wenn > 0
DJNZ | Zähler Par1 dekrementieren. Wenn > 0, springe zu Label Par2. | Counter | Destination |
Der Zähler, der im Parameter 1 definiert ist, wird um 1 erniedrigt. Wenn das Ergebnis 0 ist, dann wird die Prozedur an der unter Parameter 2 angegebenen Marke fortgesetzt. Ansonsten wird die Prozedur in der nächsten Zeile fortgesetzt.
Springe bei Ergebnis OK/F
Springe bei OK/F
CMPRES | Springe wenn voriges Ergebnis OK/F (Par1) zu Label unter Par2 | OK | Destination |
Das Ergebnis des vorigen Schrittes wird verglichen mit der Angabe unter Parameter 1. Wenn in Parameter 1 „OK" steht wird bei gutem Ergebnis des vorigen Schrittes zur unter Parameter 2 angegebenen Marke gesprungen. Ansonsten wird die Prozedur in der nächsten Zeile fortgeführt. Ähnliches gilt für ein fehlerhaftes Ergebnis, wenn in Parameter 1 ein „F" steht.
Vergleiche Ergebnis mit Wert und springe
Springe bei Ergebnis
CMPVAL | Springe bei Ergebnis. Ziel Par 3, Bedingung Par1, Wert Par2 | = | 1 | Destination |
Das Ergebnis des vorigen Schrittes wird verglichen mit der Angabe in Parameter 2. Im Parameter 2 kann ein Zahlenwert stehen oder eine Zeichenfolge. Der Operator mit dem verglichen wird, steht im Parameter 1. Bei positivem Vergleich wird zur unter Parameter 3 definierten Marke gesprungen.
Parameter | Bedeutung |
---|---|
= | Ergebnis gleich Wert |
< | Ergebnis kleiner als Wert |
> | Ergebnis größer als Wert |
<= | Ergebnis kleiner oder gleich Wert |
>= | Ergebnis größer oder gleich Wert |
Vergleiche Ergebnis mit Variable und springe
Vergl. Variable und springe
CMPVAR | Vergl. Variable und springe. Ziel Par4, Var Par 1, Bedingung Par2, Wert Par 3 | = | Variable | 1 | Destination |
Das Ergebnis des vorigen Schrittes wird verglichen mit der Variable in Parameter 2. Der Operator mit dem verglichen wird, steht im Parameter 1. Bei positivem Vergleich wird zur unter Parameter 3 definierten Marke gesprungen.
Vergleiche Variablen und springe
Vergleiche Var1 mit Var2
CMPVV | Var1 = (>...) Var2? Ziel Par4, Bedingung Par1, Variable 1 Par2, Variable 2 Par 3 | = | Var1 | Var2 | Destination |
Var1 wird mit Var 2 verglichen. Der Operator, mit dem verglichen wird, steht unter Parameter 1. Bei positivem Vergleich wird zur Marke gesprungen, die im Parameter 4 benannt ist.
Vergleiche Parameter der Eingabemaske und springe
Vergleiche Parameter
CMPPAR | Vergleiche Parameter der Startmaske und springe. Ziel Par4, Bedingung Par1, Name Par2, Wert Par3 | = | Gerät | CF | Destination |
Der Wert des unter Parameter 2 der Startmaske definierten Feldes wird verglichen mit dem Wert, der in Parameter 3 definiert ist. Bei positivem Vergleich, wird zur Marke, die im Parameter 4 definiert ist, gesprungen.
Abfragefenster, springe bei „Nein"
Abfrage
MSGYN | Abfrage Ja/Nein, Springe bei Nein | Message | DestinationNo |
Der Text, der im Parameter 1 angegeben ist, wird in einer Ja/Nein Abfrage ausgegeben. Bei Antwort „Nein" wird zur Marke gesprungen, die im Parameter 4 angegeben ist. Bei Antwort „Ja" wird in der folgenden Prozedurzeile weitergemacht.
Unterprogrammaufruf
Der Unterprogrammaufruf dient dazu, sich wiederholende Prozedurabschnitte nur einmal zu definieren und sie von verschiedenen Stellen in der Prozedur aufzurufen.
Nach der Durchführung eines Unterprogramms wird die Prozedur in der Zeile, die dem Unterprogrammaufruf folgt fortgeführt. Unterprogramme können auch weitere Unterprogramme aufrufen. Das Ziel des Unterprogramms ist eine Marke, wie sie auch für Sprungbefehle verwendet wird. Wenn die Prozedur ohne Unterprogrammaufruf in eine Marke läuft, die als Unterprogrammziel definiert ist, wird eine Fehlermeldung erzeugt und die Prozedur abgebrochen.
CALL Befehl
CALL
CALL | Unterprogrammaufruf | Destination | Immer |
Im Parameter 1 steht die Zielmarke, im Parameter 2 kann, ähnlich wie beim Sprungbefehl, eingegeben werden, ob das Unterprogramm immer oder nur bei Auftreten eines Fehlers aufgerufen werden soll.
Im Unterprogramm muss als letztes der RETURN Befehl stehen.
Sonderbefehle
Warten:
WAIT | Wartezeit in Sekunden |
Die Ausführung der Prozedur wird für die angegebene Zeit unterbrochen.
Zulassen bei Fehler weiterzuprüfen:
SETFLTQRY | Zulassen bei Fehler weiterzuprüfen | Aus |
Mit diesem Parameter kann man einstellen, dass bei bestimmten Prozedurabschnitten das Programm nicht bei Fehler abbricht, sondern trotz Fehler weiterläuft. Dieses Flag kann aus- oder eingeschaltet werden.
Mit dem Multimeter messen
DMM | Multimetermessung | mvDC | Auto | DMM 1 |
Parameter 1 enthält die Messfunktion, Parameter 2 den Bereich, Parameter 4 die Multimeternummer.