8.4.
Ablauf der Programmausführung
8.4.1.
Bedingungen
Bedingungen können in if-then-else-Befehlen, Schleifen und als Abbruch-Bedingungen in
Bewegungsbefehlen verwendet werden. Die Bedingungen können Kombinationen aus digitalen
Eingängen, globalen Signalen, booleschen Operationen und Vergleichen sein. Beispiele:
DIn23
DIn23 AND !DIn27 Wahr, wenn Digitaleingang 23 gesetzt und 27 nicht gesetzt ist.
modelclass = 31
mempos.x > 350.0 Wahr, wenn die x-Komponente der Positionsvariablen „mempos"
Die Syntax der bedingten Anweisungen ist durch die folgende EBNF-Definition gegeben:
Ausdruck
Boolean
BoolescherOperator
BoolescheKonstante
Digitaleingänge
KanalTyp
Kanalld
VerglAusdruck
VerglWert
Variable
Zahlenvariable
Positionskomponente
Positionsvariable
Komponente
Zahl
VerglOperator
Wahr, wenn Digitaleingang 23 gesetzt ist.
Wahr, wenn die Variable „modelclass" 31 ist
größer als 350 ist.
: = [ „ ! "] <Boolean> { <Boolscher Operator> <Boolean> } ...
: = <Boolsche Konstante> | <Ausdruck> | "(" <Ausdruck> ")" |
VerglAusdruck | "(" <VerglAusdruck> ")" | <Digitaleingänge> |
(" <Digitaleingänge> ")""
: = „And" | „Or"
: = „True" | "False"
: = <KanalTyp> <KanalId>
: = „Din" | „GSig"
: = ein ganzzahliger Wert
: = < VerglWert> <VerglOperator> <VerglWert>
: = <Variable> | <Zahl>
: = < Zahlenvariable> | < Positionskomponente>
: = Name einer Zahlenvariablen
: = < Positionsvariable> „ . " <Komponente>
: = Name einer Positionsvariablen
: = „x" | „y" | „z" | „A" | „B" | „C" | „A1" | „A2" | „A3" | „A4" | „A5" | „A6" | „E1"
| „E2" | „E3"
: = Ganzzahl oder Gleitkommazahl
: = „=" | „>" | „<" | „>=" | „<="
51