Особенности бинарной логики в STL


В языке STL применяются двоичные логические операции A (AND – логическое И), O (OR – логическое ИЛИ) и X (Exclusive OR – Исключающее ИЛИ). При вычислении булевых функций с этими операциями проверяется результат на уровне логической единицы “1”. Для проверки логического уровня “0” используются функции с модификатором N, то есть функции AN, ON и XN, соответственно.

Нужно принять во внимание, что в схемах SIMATIC S7 состояние сигнала имеет значение "1" при наличии напряжения на входе модуля ввода, а значение "0", если напряжение на входе отсутствует.

Строго говоря, при вычислении булевой функции CPU не связывает состояние сигнала проверенного бита, а скорее формирует результат проверки. При этом в случаях проверки на состояние "1" результат проверки идентичен состоянию сигнала, а в случаях проверки на состояние "0" результат проверки инвертируется относительно состояния сигнала.

Проверку состояния бита инициирует выражение, которые содержит оператор проверки (check statement). Это выражение содержит правило логической операции, то есть алгоритм, согласно которому результат проверки состояния бита будет приравниваться сохраненному в процессоре результату логической операции (RLO).

Результат логической операции CPU в дальнейшем используется для обработки двоичных сигналов. Значение RLO формируется и модифицируется с помощью операторов проверки. Если RLO имеет значение "1", то это означает, что условие двоичной логической операции выполнено, если RLO имеет значение "0, то условие двоичной логической операции не выполнено.

В процессе выполнения проверки логической операции принимают участие входной модуль, выходной модуль и CPU. После проверки состояния сигнала датчика, подключенного к каналу входного модуля, CPU связывает его с результатом логической операции RLO, который был сохранен после выполнения предыдущей логической операции, а потом формирует соответствующий выходной сигнал. Эта схема показана на рисунке 2.1.

 

Рисунок 2.1 - Схема выполнения проверки двоичной логической операции

 

Результат текущей логической операции запоминается и хранится как новый результат логической операции. Таким образом, обработка RLO осуществляется на каждом логическом шаге операции.

Каждый логический шаг составляется из выражений с операторами проверки, которые называются операторами сканирования, и выражений с условными операторами. Первый оператор проверки, который выполняется за условным оператором, называется первичным опросом (first check).

Условные операторы – это такие операторы, выполнение которых зависит от результата логической операции RLO. Эти операторы включают операции назначения (assign), установки (set) и сбрасывания (reset) двоичных разрядов, а также запуск таймеров и счетчиков.

Условные операторы (за редким исключением) выполняются только тогда, когда результат логической операции RLO имеет состояние "1", и не выполняются, когда RLO имеет состояние "0". Условные операторы не влияют на результат логической операции RLO, и, таким образом, RLO на протяжении последовательного выполнения нескольких условных операторов остается неизменным.

Примеры логических шагов с операторами А:

= Q 4.0 условный оператор (conditional statement), который назначает текущий RLO выходному сигналу с адресом Q 4.0 (на схеме рис. 2.1 переход от меркера сохранения к модулю вывода);

A I 2.0 первичный опрос (first check) – это сканирование входов на схеме рис. 2.1;

A I 2.1 оператор проверки (check statement) – это двоичная логическая операция на рис. 2.1;

= Q 4.3 условный оператор (conditional statement).

В приведенном примере использован условный оператор присвоения "=". Этот оператор назначает результат логической операции RLO биту, указанному в выражении. Если результат логической операции имеет значение "1", то бит устанавливается, если результат логической операции имеет значение "0", то бит сбрасывается.

Первый оператор проверки, который выполняется за условным оператором, имеет особое значение, потому что он создает новый результат логической операции. При этом старое значение результата логической операции RLO теряется. Первичный опрос всегда отвечает началу логической операции. Алгоритм первичного опроса (AND, OR или Exclusive OR) не играет при этом никакой роли.

Если датчик, подключенный к входу, имеет нормально разомкнутые контакты, то уровень "1" устанавливается при его активации. Если датчик имеет нормально замкнутые контакты, то уровень "1" присутствует на входе в неактивном состоянии датчика.

Тип используемого датчика необходимо учитывать при разработке программы. В случае, если один из нормально разомкнутых контактов заменить на нормально замкнутый, то для сохранения логики управления (управление активными значениями сигналов) нужно заменить оператор проверки А на AN. Из этого вытекает, что учет типа датчика необходим для правильного выбора оператора проверки.

При программировании сложных двоичных логических операций оператор AND имеет более высокий приоритет и выполняется перед операторами OR и Exclusive OR, которые имеют одинаковый приоритет. Для сохранения необходимого порядка вычисления сложного логического выражения иногда нужно временно сохранить значение RLO в некоторой точке программы. С этой целью могут использоваться вложенные выражения. Как и при записи выражений булевой алгебры, вложенные операторы обеспечивают определенный порядок выполнения функций.

В языке программирования STL можно использовать следующие вложенные операторы:

O функция OR для вложения функций AND;

A( открывающая скобка с функцией AND;

O( открывающая скобка с функцией OR;

X( открывающая скобка с функцией Exclusive OR;

AN( открывающая скобка с функцией NOT-AND;

ON( открывающая скобка с функцией NOT-OR;

XN( открывающая скобка с функцией Not-exclusive OR;

) закрывающая скобка.

Когда CPU встречает открывающую скобку, он запоминает текущее значение RLO, а потом обрабатывает выражение в скобках, то есть вложенное выражение.

Когда CPU встречает закрывающую скобку, он связывает значение RLO для вложенного выражения с ранее запомненным значением RLO. Это связывание осуществляется согласно функции, которая записана при открывающей скобке.

Оператор проверки, который выполняется за открытой скобкой, является первичным опросом, потому что CPU должен создать новый результат логической операции RLO для вложенного выражения.

В практике вычисления булевых выражений нередко возникает необходимость в объединении отдельных функций. При объединении AND-функций оператором OR логические операции могут быть записаны в булевой алгебре без использования скобок. Здесь действует правило, согласно которому функции AND выполняются в первую очередь, а функция OR, которая связывает функции AND, выполняется во вторую очередь.

Пример:

A Key0;

A Key1;

O ;

A Var1;

A Var2;

= Out1;

В данном примере оператор O находится между двумя функциями AND. Сигнал Out1 устанавливается в "1", если (Key0 И Key1) ИЛИ (Var1 И Var2) установлены в "1".

При объединении OR оператором AND функции должны быть записаны в булевой алгебре с использованием скобок, с помощью которых указывается, что функции OR выполняются в первую очередь.

На рисунке 2.2 показано окно STL-редактора с фрагментом программы, в которой применяется скобки для изменения порядка формирования результата логической операции RLO.

Особенности операций бинарной логики в LAD

Графический язык программирования LAD основан на представлении коммутационных схем. Элементами коммутационной схемы являются нормально разомкнутые и нормально замкнутые контакты, а также катушки реле. Соединение этих элементов группируется в цепь (network). Один или несколько цепей Network 1, Network 2 и т.д. образовуют раздел кодов логического блока. На рисунке 2.3 представлен вид окна LAD-редактора. Обратите внимание на то, что программный код на рисунках 2.2-2.3 одинаковый.

В языке LAD применяются только два типа контактов – нормально разомкнутые контакты типа NО, которые сканируются с ожиданием состояния «1», и нормально замкнутые контакты типа NC, которые сканируются с ожиданием состояния «0».

 

Рисунок 2.2 – Вид окна программирования на языке STL

 

Рисунок 2.3 – Вид окна программирования на языке LAD

Цепь может составляться из одного контакта или же большого количества соединенных контактов. Цепь всегда должна быть завершена логической переменной, например, катушкой (coil). Катушка управляет двоичным операндом с помощью результата логической операции RLO.

К операнду можно обратиться через контакт, используя абсолютный или символический адрес.

Нормально разомкнутый контакт отвечает сканированию с ожиданием сигнального состояния «1». Если ток течет в точке контактного плана, то это означает, что в этой точке битовая логика выполняется и соответствующий двоичный операнд имеет состояние «1». Результат логической операции (RLO) тоже равен «1».



Дата добавления: 2016-12-09; просмотров: 4297;


Поиск по сайту:

Воспользовавшись поиском можно найти нужную информацию на сайте.

Поделитесь с друзьями:

Считаете данную информацию полезной, тогда расскажите друзьям в соц. сетях.
Poznayka.org - Познайка.Орг - 2016-2024 год. Материал предоставляется для ознакомительных и учебных целей.
Генерация страницы за: 0.013 сек.