Hoppa till huvudinnehåll

Kommandogrupper

Följande kommandogrupper är de grundläggande konstruktionerna för strukturerad text och kan kombineras på ett flexibelt sätt och inordnas i varandra.

Boolska länkar

Booleska länkar används för binär länkning av variabler.

| Symbol | Logisk operation | Exempel | | --- | | --- | |NOT | Binär negation | a := NOT b;| | AND| Logisk AND | a := b AND c;| | OR | Logical OR | a := b OR c;| | XOR| Exclusive OR | a := b XOR c; | Exclusive OR | a := b XOR c;

Sanningstabellen för booleska länkar ser ut på följande sätt:

InmatningOCHELLER XOR
0 0000
0 1011
1 0011
1 1110

Aritmetiska operationer

Den strukturerade texten innehåller grundläggande aritmetiska operationer för användning. Prioriteringarna måste följas under utförandet.

SymbolAritmetisk operationExempel
:= Tilldelninga := b;
+Tillägga := b + c;
-Subtraktiona := b - c;
*Multiplikationa := b * c;
/Divisiona := b / c;
MODModulo, heltalsrest av divisionen a := b MOD c;

Datatypen för variabler och värden är alltid avgörande för beräkningen av dessa.

| Uttryck / Syntax | Var1 | Var2 | Var3 | Resultat | | --- | | --- | -- | | Var 1 := 10 / 4; | INT | INT | 2 | | Var1 := 10 / 4; | REAL | INT | 2.0 | | Var1 := 10.0 / 4; | REAL | REAL | INT | 2.5 | | Var1 := 10.0 / 4; | REAL | REAL | INT | 2.5 |

Jämförelse av operatörer

Symbol Jämförande uttryckExempel 
=Kommer snartOM a = b DÅ
<>OjämlikIF a <> b DÅ 
>Större änIF a > b DÅ 
>=Större än eller lika medIF a >= b DÅ
<Mindre änIF a < b DÅ
<=Mindre än eller lika medIF a <= b DÅ

Beslut

IF a > b THEN // 1. Jämförelse
c := 1; // Instruktion om 1. Jämförelse TRUE
ELSIF a > d THEN // 2. Jämförelse
e := 1; // Instruktion om 2. Jämförelse TRUE
ELSE // Alternativ gren, ingen jämförelse TRUE
f := 1; // Uttalande om den alternativa grenen
END_IF // Slut på beslutet

IF - ELSE-angivelse

IF - ELSIF-instruktion

CASE-utlåtande

CASE-satsen används för att gruppera flera villkorliga satser med samma villkorliga variabel.

CASE newCase OF // Start of Case         
1,5: // för 1 och 5
StateDescription := "Stopped";
2: // för 2
Statedescription := "Running";
3, 4, 6 ... 8: // för 3, 4, 6, 7, 8
Statedescription := "Failed";
ELSE // Alternativ gren
(* .. *)
END_CASE // Slut på fall

I en programcykel bearbetas endast ett steg i CASE-instruktionen åt gången. Stegvariabeln måste vara en heltalsdatatyp.

Slipning

Loops bearbetas upprepade gånger inom en cykel. Koden exekveras tills ett definierat avslutningsvillkor uppfylls.

För att undvika ändlösa loopar bör det alltid finnas en väg som avslutar loopen efter ett visst antal upprepningar.

Huvudstyrda slingor (FOR, WHILE) kontrollerar avslutningsvillkoret före körningen, fotstyrda slingor (REPEAT) i slutet.

FOR-utlåtande

FOR-instruktionen används för att utföra ett visst antal repetitioner av en del av programmet.

Sum := 0;
FOR Index := 0 TO 3 DO
Sum := Sum + Values[ Index ];
END_FOR;

WHILE-meddelande

WHILE-instruktionen har ingen loopräknare. Detta kallas tills ett villkor eller uttryck är FALSKT.

WHILE Index < 10 DO
Sum := Sum + Values[ Index ];
Index := Index + 1;
END_WHILE;

REPEAT-uttalande

Avslutningsvillkoret kontrolleras i REPEAT-loopen först efter exekveringen.

Index := 0;
Sum := 0;
REPEAT
Sum := Sum + Values[ Index ];
Index := Index + 1;
UNTIL Index >= 10 END_REPEAT;

EXIT-meddelande

Kan användas med alla typer av loopar och leder till omedelbar uppsägning.

REPEAT
IF Exit = TRUE THEN
EXIT;
END_IF
UNTIL Index >5
END_REPEAT