è óñëîâèå ðàâíî FALSE, òî
Ñèíòàêñèñ: IF <boolean_expression> THEN
<statement> ;
<statement> ;
...
ELSIF <boolean_expression> THEN
<statement> ;
<statement> ;
...
ELSE
<statement> ;
<statement> ;
...
END_IF;
Îïåðàòîðû ELSE è ELSIF - äîïîëíèòåëüíûå. Åñëè ELSE îïóùåí è óñëîâèå ðàâíî FALSE, òî íèêàêèõ èíñòðóêöèé íå âûïîëíÿåòñÿ.
Ïðèìåð:
(*ST ïðîãðàììà , èñïîëüçóþùàÿ îïåðàòîð IF*)
IF manual AND not (alarm) THEN
level := manual_level;
bx126 := bi12 OR bi45;
ELSIF over_mode THEN
level := max_level;
ELSE
level := (lv16 * 100) / scale;
END_IF;
(* IF ñòðóêòóðà áåç ELSE *)
If overflow THEN
alarm_level := true;
END_IF;
Îïåðàòîð CASE
Èìÿ: CASE... OF... ELSE... END_CASE
Çíà÷åíèå: âûïîëíÿåò îäèí èëè íåñêîëüêî ñïèñêîâ ST îïåðàòîðîâ, âûáîð îñóùåñòâëÿåòñÿ â ñîîòâåòñòâèè ñ öåëûì âûðàæåíèåì
Ñèíòàêñèñ: CASE <integer_expression> OF
<value> : <statements> ;
<value> , <value> : <statements> ;
...
ELSE
<statements> ;
END_CASE;
Çíà÷åíèåì CASE äîëæíà áûòü öåëàÿ êîíñòàíòà. Íåñêîëüêî çíà÷åíèé ðàçäåëåííûõ çàïÿòûìè ìîãóò óêàçûâàòü íà îäèí è òîò æå ñïèñîê îïåðàòîðîâ.
Ñîäåðæàíèå Íàçàä Âïåðåä