18 Публикация 1756-PM007B-EN-P - Июль 2008
Программирование на языке структурированного текста Глава 1
Инструкции
Операторами структурированного текста могут быть и инструкции.
Инструкции структурированного текста выполняются всякий раз,
когда они сканируются. Инструкции структурированного текста
внутри конструкции выполняются всякий раз, когда условия
конструкции принимают значения «истина». Если условия
конструкции имеют значение «ложь», операторы внутри
конструкции не сканируются. Не существует условия цепочки или
перехода, которое запускало бы выполнение.
Это отличает инструкции структурированного текста от инструкций
функционального блока, в котором для инициации выполнения
инструкции используется EnableIn. В структурированном тексте
инструкции выполняются так, как будто бы EnableIn всегда
установлен.
Это также отличает инструкции структурированного текста от
инструкций релейной логики, в которой входное условие цепочки
запускает выполнение. Некоторые инструкции релейной логики
выполняются только в том случае, когда входное условие цепочки
переключается со значения «ложь» на значение «истина». В
релейной логике это так называемые переходные инструкции. В
структурированном тексте инструкции будут выполняться при
каждом сканировании, если вы не введете какое-либо
предварительное условие на выполнение инструкции.
Например, инструкция ABL является переходной инструкцией в
релейной логике. В этом примере инструкция ABL выполняется
только при сканировании, когда tag_xic переходит из положения
снят в положение установлен. Инструкция ABL не выполняется,
если tag_xic находится в положении установлен или снят.
Для структурированного текста, если вы запишите этот пример
следующим образом:
IF tag_xic THEN ABL(0,serial_control);
END_IF;
то инструкция ABL будет выполняться при каждом сканировании,
когда tag_xic установлен, а не только тогда, когда tag_xic переходит из
положения снят в положение установлен.
Если вы хотите, чтобы инструкция ABL выполнялась только тогда,
когда tag_xic переходит из положения снят в положение установлен,
вы должны ввести специальное условие. Используйте единичное
включение инструкции.
osri_1.InputBit := tag_xic;
OSRI(osri_1);
IF (osri_1.OutputBit) THEN
ABL(0,serial_control);
END_IF;