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