Как мы видели на примере счетчиков и таймеров, некоторые инструкции ПЛК генерируют цифровые значения, отличные от простых логических сигналов (вкл/выкл).
Счетчики имеют регистры текущего значения (CV), а таймеры — регистры прошедшего времени (ET), оба из которых обычно представляют собой целочисленные значения.
Многие другие инструкции ПЛК предназначены для получения и обработки небулевых значений, подобных этим, для выполнения полезных функций управления.
Стандарт IEC 61131-3 определяет множество инструкций сравнения данных для сравнения двух нелогических значений и генерации логических выходных данных.
Инструкции по сравнению данных ПЛК
Основные операции сравнения «меньше» (<), «больше» (>), «меньше или равно» (≤), «больше или равно» (≥), «равно» (=) , а «не равно» (6=) можно найти в стандарте IEC как серию «коробочных» инструкций:
Выход Q для каждого «блока» команд активируется, когда оцениваемая функция сравнения имеет значение «истина» и вход разрешения (EN) активен.
Если вход разрешения остается активным, но функция сравнения ложна, выход Q деактивируется. Если вход разрешения деактивируется, выход Q сохраняет свое последнее состояние.
Практическое применение функции сравнения — это так называемое попеременное управление двигателем, при котором отслеживается время работы двух резервных электродвигателей, при этом ПЛК определяет, какой двигатель включить следующим, исходя из того, какой двигатель работал меньше всего:
В этой программе два сохраняемых таймера задержки включения отслеживают общее время работы каждого электродвигателя, сохраняя значения времени работы в двух регистрах в памяти ПЛК:
Время работы двигателя A и время работы двигателя B. Эти два целочисленных значения вводятся в поле инструкции «больше чем» для сравнения.
Если двигатель A проработал дольше, чем двигатель B, двигатель B сможет запуститься при следующем нажатии кнопки «пуск».
Если двигатель A проработал меньше времени или столько же времени, что и двигатель B (сценарий, показанный индикаторами состояния, выделенными синим цветом), двигатель A сможет запуститься.
Два последовательно соединенных виртуальных контакта OUT Motor A и OUT Motor B гарантируют, что сравнение времени работы двигателя не будет производиться до тех пор, пока оба двигателя не будут остановлены.
Если бы сравнение производилось постоянно, могла бы возникнуть ситуация, когда оба двигателя запустятся, если кто-то случайно нажмет кнопку «Пуск», когда один из двигателей уже работает.