2. Табличное программирование. Пример разработки программы

2.1. Простая программа управления шлагбаумом


Рассмотрим работу табличной программы на конкретном примере управления простым шлагбаумом с электроприводом. Сначала опишем алгоритм работы и основное оборудование такого шлагбаума.



Управление шлагбаумом производится нажимным двухкнопочным выключателем с фиксацией, возврат одной кнопки которого происходит при нажатии другой кнопки. Введем правило: шлагбаум может быть либо открыт, либо закрыт, остановку стрелы шлагбаума в промежуточном состоянии считаем аварийной. Если нажата кнопка «Открыть», то шлагбаум должен открыться, и мы сможем нажать только кнопку «Закрыть», так как кнопка «Открыть» зафиксирована в нажатом состоянии. Верхний и нижний концевые выключатели при срабатывании должны останавливать двигатель.

Так как работа шлагбаума способна нанести вред людям или имуществу, то необходимо предусмотреть в схеме аварийную кнопку и главный контактор, отключающий силовое питание при нажатии на нее. Аварийная кнопка должна иметь дополнительный контакт для сигнализации о том, что она находится в нажатом состоянии. Не углубляясь в схему реверсивного управления двигателем, поднимающего и опускающего стрелу шлагбаума, будем считать, что два выхода контроллера, обозначенные как «Вверх» и «Вниз», будут управлять движением стрелы.

Опишем алгоритм управления шлагбаумом. При нажатии на кнопку «Открыть» на выходе контроллера «Вверх» появляется единица и держится до срабатывания верхнего концевого выключателя. Аналогично, если будет нажата кнопка «Закрыть», на выходе контроллера «Вниз» появляется единица и держится до срабатывания нижнего концевого выключателя. Если во время опускания стрелы шлагбаума оператор увидит помеху, то он может кнопкой «Открыть» переключить двигатель на подъем стрелы. При нештатных ситуациях оператор нажимает аварийную кнопку.

Рассмотрим работу программы при переводе стрелы шлагбаума из открытого состояния в закрытое. Для открытого состояния шлагбаума управляющая программа представлена на рис. 10.


Рис. 10. Табличная программа управления шлагбаумом, соответствующая его открытому состоянию


Можно увидеть, что питание включено, аварий нет, шлагбаум открыт, команды «Вверх» и «Вниз» равны нолю. По тому, что верхний концевой выключатель разомкнут, можно определить, что стрела шлагбаума находится в верхнем конечном положении. Нажатие на кнопку «Закрыть» выключит кнопку «Открыть», активные ячейки в таблице под командой «Вниз» получат состояние «Единица» и станут отображаться зеленым цветом. Логическое И по столбцу 2 даст в результате единицу. На выходном контакте 12 появится напряжение, соответствующее логической единице, и двигатель будет включен для опускания стрелы шлагбаума. Начнется движение стрелы вниз (рис. 11).


Рис. 11. Табличная программа управления шлагбаумом в момент нажатия кнопки «Закрыть»


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


Рис. 12. Табличная программа управления шлагбаумом в момент движения стрелы вниз


Как только стрела достигнет положения «Закрыто», сработает нижний концевой выключатель. Соответствующая ему ячейка в столбце под командой «Вниз» получит значение ноль, результатом логического И по этому столбцу станет ноль, и двигатель будет отключен. Таблица покажет состояние «Закрыто» (рис. 13).


Рис. 13. Табличная программа управления шлагбаумом, соответствующая его закрытому состоянию


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

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

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

2.2. Использование триггерных ячеек

Одним из недостатков первой версии программы управления шлагбаумом является жесткая зависимость пуска приводного двигателя от состояния концевых выключателей. Если из-за раскачки стрелы шлагбаума на ветру или намокания контактов произойдет замыкание концевого выключателя, то это может привести к неконтролируемому включению двигателя стрелы, так как одна из кнопок, «Открыть» или «Закрыть», уже нажата. Попробуем повысить надежность системы управления шлагбаумом. Изменим способ подачи команд «открыть» и «закрыть». Вместо двухкнопочного выключателя с фиксацией применим обычные нажимные кнопки. Это более надежное и удобное решение. Также добавим кнопку «Стоп», при нажатии на которую состояние выходов 11 и 12, управляющих движением стрелы шлагбаума, становится равным нолю. Хотя нажатие на кнопку «Стоп» остановит движение, ею нельзя заменить аварийную кнопку. Последняя должна отключить систему вне зависимости от работы контроллера.


Необходимо отметить, что контакты кнопок «Открыть» и «Закрыть» нормально открытые, а контакт кнопки «Стоп» нормально замкнутый. Это сделано для того, чтобы при неисправности кнопки «Стоп» или обрыве провода, соединяющего ее с контроллером, заблокировать команды открытия и закрытия. Кнопка «Стоп» наряду с аварийной кнопкой является частью системы безопасности, при неисправности которой запрещается работа механизмов.


Чтобы реализовать алгоритм управления с помощью кнопок, необходимо ввести в программу триггерные ячейки. Кнопка управления обычно имеет нормально открытый контакт, и при ее нажатии на входе контроллера появится единица. А концевой выключатель обычно имеет нормально замкнутый контакт, и при его срабатывании на входе контроллера будет уровень, соответствующий нолю. Но реализуемый в программе алгоритм требует, чтобы срабатывание конечного выключателя также давало единицу. Поэтому необходимо инвертировать некоторые входные логические сигналы. Для инверсии сигналов от конечных выключателей, кнопки «Стоп» и главного контактора в ячейку операции запишем слово NOT.

Загрузка...