Шрифт:
Интервал:
Закладка:
2.2. Использование триггерных ячеек
Одним из недостатков первой версии программы управления шлагбаумом является жесткая зависимость пуска приводного двигателя от состояния концевых выключателей. Если из-за раскачки стрелы шлагбаума на ветру или намокания контактов произойдет замыкание концевого выключателя, то это может привести к неконтролируемому включению двигателя стрелы, так как одна из кнопок, «Открыть» или «Закрыть», уже нажата. Попробуем повысить надежность системы управления шлагбаумом. Изменим способ подачи команд «открыть» и «закрыть». Вместо двухкнопочного выключателя с фиксацией применим обычные нажимные кнопки. Это более надежное и удобное решение. Также добавим кнопку «Стоп», при нажатии на которую состояние выходов 11 и 12, управляющих движением стрелы шлагбаума, становится равным нолю. Хотя нажатие на кнопку «Стоп» остановит движение, ею нельзя заменить аварийную кнопку. Аварийная кнопка должна отключить систему вне зависимости от работы контроллера.
Необходимо отметить, что контакты кнопок «Открыть» и «Закрыть» нормально открытые, а контакт кнопки «Стоп» нормально замкнутый. Это сделано для того, чтобы при неисправности кнопки «Стоп» или обрыве провода, соединяющего ее с контроллером, заблокировать команды открытия и закрытия. Кнопка «Стоп» наряду с аварийной кнопкой является частью системы безопасности, при неисправности которой запрещается работа механизмов.
Чтобы реализовать алгоритм управления с помощью кнопок, необходимо ввести в программу триггерные ячейки. Кнопка управления обычно имеет нормально открытый контакт, и при ее нажатии на входе контроллера появится единица. А концевой выключатель обычно имеет нормально замкнутый контакт, и при его срабатывании на входе контроллера будет уровень, соответствующий нолю. Но реализуемый в программе алгоритм требует, чтобы срабатывание конечного выключателя также давало единицу. Поэтому необходимо инвертировать некоторые входные логические сигналы. Для инверсии сигналов от конечных выключателей, кнопки «Стоп» и главного контактора в ячейку операции запишем слово «NOT».
Состояние программы при отсутствии силового питания представлено на рис. 14, из которого можно увидеть, что силовое питание выключено, аварий нет, шлагбаум открыт, команды «вверх» и «вниз» равны нолю. В отличие от первоначальной программы, верхняя строка перенесена вниз, а в строке 4 появился входной сигнал от кнопки «Стоп», приходящий на входной контакт номер 7. Во многих активных ячейках символ «&» заменен на «R» или «S».
Рис. 14. Табличная программа управления шлагбаумом с использованием триггерных ячеек перед включением главного контактора
Начальное значение всех ячеек «RS» равно единице, и если не сбросить их в ноль, то возможно появление на выходах ВВЕРХ и ВНИЗ логической единицы, которая самопроизвольно запустит двигатель при первоначальной подаче питания. Чтобы этого не произошло, в строке 7 на входной контакт номер 1 приходит сигнал с главного контактора, коммутирующего силовое питание. После того, как на контроллер будет подано напряжение, а главный контактор еще не будет включен, на контакте номер 1 будет логический ноль, который после инверсии сбросит ячейки «RS».
Пересчет таблицы внутренним интерпретатором производится сверху вниз, и значение ячейки «RS» определяется нижней триггерной активной ячейкой. Поэтому при отключенном главном контакторе ячейки «RS» будут находиться в сброшенном состоянии, независимо от сигналов кнопок управления. В целях безопасности должна быть предусмотрена схема, не позволяющая включать главный контактор при неработающем контроллере. На первый взгляд, достаточно блокировать включение главного контактора на время загрузки контроллера. Но наиболее правильным решением будет формирование на выходе контроллера сигнала готовности, который станет активным только после полной загрузки программы контроллера и разрешит включить главный контактор.
Как только главный контактор будет включен, триггерные активные ячейки в строке 7 перейдут в нулевое состояние и больше не будут влиять на результат, а ячейки «RS» в верхнем заголовке останутся в ноле. Так как стрела шлагбаума находится в верхнем положении и верхний концевой выключатель сработал, то ячейка «RS» в первом столбце будет удерживаться в сброшенном состоянии и не позволит включить двигатель при нажатии на кнопку «Открыть». Шлагбаум, находящийся в открытом состоянии, дальше открываться не будет. Программа, готовая принять команду оператора, показана на рис. 15.
Рис. 15. Табличная программа управления шлагбаумом с использованием триггерных ячеек после включения главного контактора
Нажатие на кнопку «Закрыть» переведет ячейку «RS» во втором столбце из ноля в единицу, результат логического И по столбцу также будет равен единице. Команда «вниз» запустит двигатель, и стрела начнет опускаться. Состояние программы в этот момент показано на рис. 16.
Рис. 16. Табличная программа управления шлагбаумом с использованием триггерных ячеек и нажатой кнопкой «Закрыть»
Стрела шлагбаума еще находится в верхнем конечном положении, начинается движение вниз. Силовое питание включено, аварий нет, команда «вниз» равна единице.
После начала движения оператор отпустит кнопку «Закрыть», при этом выходная переменная с адресом 12 будет активной благодаря установленной в единицу ячейке «RS» во втором столбце, как показано на рис. 17.
Рис. 17. Табличная программа управления шлагбаумом с использованием триггерных ячеек и отпущенными кнопками
Стрела, дойдя до закрытого положения, выключит нижний концевой выключатель, ячейка «RS» во втором столбце будет сброшена, логическое И по второму столбцу будет равно нолю — и двигатель остановится (рис. 18).
Рис. 18. Табличная программа управления шлагбаумом с использованием триггерных ячеек после срабатывания нижнего концевого выключателя
При всей кажущейся простоте программа управления шлагбаумом вполне может быть использована на реальном объекте. Можно добавить фотодатчики и другие обратные связи с механизмами, но сейчас нас интересует сама возможность управлять оборудованием простой программой в таблице.
2.3. Семь строк таблицы
Для управления оборудованием, в данном случае шлагбаумом, нам потребовалась табличная программа размером в семь строк. Большую часть программы занимают названия переменных или комментарии к ним, что эквивалентно схеме подключения из инструкции по эксплуатации. В таблице можно непрерывно видеть состояния входных и выходных переменных, а также цепи формирования сигналов. Программа управления шлагбаумом, графический интерфейс, система отладки с возможностью наблюдения за формированием сигналов в режиме реального времени и описание назначения физических выводов контроллера уместились в семь строк таблицы. Дополнительно можно создать графический интерфейс оператора, но в случае со шлагбаумом для индикации достаточно к схеме подключить несколько контрольных лампочек, а