Limbajul de programare de tip "Text structurat" (ST)
Operatori în ST
Simbol Operatie
(expresie) Evaluarea parantezei
identificator(lista de pa 535j97f rametri) Evaluarea functiei
Exemple:
LN(A), MAX(X,Y), etc.
Ridicare la putereExponentiation
Negare
NOT Complement
Operatori în ST
Înmultire
Împartire
MOD Modulo
Adunare
Scadere
< , > , <= , >= Comparare
Egalitate
<> Inegalitate
& SI logic
AND SI logic
XOR SAU-EXCLUSIV
OR SAU logic
Instructiunea de atribuire
A := B;
Instructiunea de atribuire
A := B;
Tip data la tip data
INT la INT
sau
Configuratie_Canal_Analogic la Configuratie_Canal_Analogic
Instructiuni de control si buclare
IF .. THEN .. ELSE
CASE
FOR
WHILE .
REPEAT UNTIL
Instructiunile IF .. THEN .. ELSE
IF conditie= true
THEN actiune1
ELSE actiune2 (conditia nu e adevarata)
IF ploua THEN Stai_acasa
ELSE Mergi_La_Plimbare
Instructiunile IF .. THEN .. ELSE
D := B*B - 4*A*C ;
IF D < 0.0 THEN NROOTS := 0 ;
ELSIF D = 0.0 THEN
NROOTS :=
X1 := - B/(2.0*A) ;
ELSE
NROOTS :=
X1 := (- B + SQRT(D))/(2.0*A) ;
X2 := (- B - SQRT(D))/(2.0*A) ;
END_IF ;
Instructiunea CASE : IF repetitiv
CASE selector OF
valoare_selector : actiune
ELSE ...
END_CASE;
Instructiunea CASE : IF repetitiv
TW := BCD_TO_INT(THUMBWHEEL);
TW_ERROR := 0;
CASE TW OF
: DISPLAY := OVEN_TEMP;
2: DISPLAY := MOTOR_SPEED;
3: DISPLAY := GROSS - TARE;
..10: DISPLAY := STATUS(TW - 4);
ELSE DISPLAY := 0 ;
TW_ERROR := 1;
END_CASE;
QW100 := INT_TO_BCD(DISPLAY);
Instructiunea FOR
SUM :=
FOR valoare_initiala TO valoare_finala DO
END_FOR ;
Instructiunea FOR
SUM :=
FOR I := 1 TO 3 DO
FOR J := 1 TO 2 DO
SUM := SUM + J ;
END_FOR ;
SUM := SUM + I ;
END_FOR ;
Instructiunea FOR
J :=
FOR I := 1 TO 100 BY 2 DO
IF WORDS[I] = 'KEY' THEN
J := I ;
EXIT ;
END_IF ;
END_FOR ;
Instructiunea WHILE
J :=
WHILE J <= 100 & WORDS[J] <> 'KEY' DO
J := J+2 ;
END_WHILE ;
Instructiunile REPEAT . UNTIL
J :=
REPEAT
J := J+2 ;
UNTIL J = 101 OR WORDS[J] = 'KEY'
END_REPEAT ;
Instructiunile EXIT si RETURN
Instructiunea EXIT va fi folosita pentru a termina interatiile înainte sa fie satisfacuta conditia de încheiere a iteratiilor.
SUM :=
FOR I := 1 TO 3 DO
FOR J := 1 TO 2 DO
IF FLAG THEN EXIT ; END_IF
SUM := SUM + J ;
END_FOR ;
SUM := SUM + I ;
END_FOR ;
Bibliografie
E. van der Wal, Structured Text - a high level language, www.plcopen.org
SR EN 61131-3, Automate programabile. Partea 3. Limbaje de programare
C.G.Haba, Sisteme de comanda a
masinilor electrice, Ed. Gh.Asachi,
|