logo
Лабораторный практикум ПЛК ОВЕН Средства электр

Задача 2. Управление освещением в комнате.

Условие: есть комната, в двери стоят два датчика регистрации пересечения линии: снаружи и внутри комнаты, они подсоединены к ПЛК. Также к ПЛК подсоединен включатель комнатного освещения, есть возможность использовать еще одну кнопку. Требуется составить программу, которая управляет автоматическим включением и выключением света в комнате.

Программа, являющаяся решением задачи показана на рисунке 18.

Если человек входит в комнату, то он пересекает сначала наружный датчик, потом внутренний, и в момент пересечения внутреннего датчика внешний датчик уже регистрирует присутствие человека в дверях. Процесс выхода из комнаты относительно датчиков происходит так же, только датчики следует поменять местами. Таким образом, по переднему фронту одного датчика в сочетании с уже сработавшим другим получим короткий импульс, обозначающий вход, или выход одного человека. Далее требуется реализовать счет людей, это можно сделать с помощью реверсивного счетчика. Также, если значение счетчика больше, или равно 1, следует включить свет, если нет, то выключить. Предположим, что возможна ситуация, когда человек, находясь в комнате, может выйти из нее не через дверь, а, например, выпрыгнуть в окно. Тогда свет останется гореть и в том случае, если все вышли. Для этого стоит использовать кнопку принудительного гашения света, которую следует расположить с наружной стороны двери, кнопку соединить со сбросом счетчика.

Приведем назначение переменных. OUTER_SENSOR и INNER_SENSOR — переменные, связанные с внутренним и наружным датчиком пересечения линии. Устанавливаются, если линия пересечена посторонним объектом и сбрасываются, если пересечения нет. RESET_BUTTON кнопка гашения света. QUIT и ENTER — внутренние переменные, устанавливающиеся в единицу в моменты соответственно выхода из комнаты и входа в нее. LIGHT — переменная, связанная с реле включения света, CTR — переменная счетчика вошедших в комнату.

На рисунке 19 изображено решение той же задачи, но без применения типовых функциональных блоков.

Переменные IS1 и OS1 хранят значения переменных INNER_SENSOR и OUTER_SENSOR за предыдущий цикл. Функция GT — сравнение двух чисел на входе, и, если «верхнее» больше, чем «нижнее», функция возвращает логическую единицу. MOVE — пересылка значения. Слева указывается его источник, а справа — приемник, значение может быть любого типа, переменные источника и приемника должны быть одного и того же, или совместимых типов. Подробнее про совместимость типов можно узнать из лекционного материала.