Привет! Я хочу показать, как написать программу управления технологическим оборудованием на ПЛК.
Чаще всего я имел дело с ПЛК производства Schneider Electric. Quantum, который я выбрал для этой задачи, — самый мощный и дорогой ПЛК этого производителя.
Он может управлять оборудованием с помощью тысяч сигналов; естественно, в реальной жизни его никто не будет использовать как светофор.
Я никогда не занимался автоматизацией светофоров, поэтому алгоритм придумал сам.
А вот и он: 1. Светофор для регулируемого пешеходного перехода.
Те.
светофор для автомобилей, светофор для пешеходов и кнопка для пешеходов, нажатием которой пешеход оповещает о своем желании перейти дорогу.
2. После запуска программы свет станет зеленым для автомобилей и красным для пешеходов.
3. После нажатия пешеходом кнопки начинает мигать зеленый для автомобилей, затем загорается желтый, затем красный.
После этого у пешеходов загорается зеленый, через заданное время он начинает мигать, у пешеходов загорается красный, после этого у автомобилей загорается желтый и красный, затем зеленый.
4. В течение заданного времени после включения зеленого цвета светофора для пешеходов нажатие кнопки пешеходом не запускает алгоритм перехода.
В этом случае алгоритм перехода запускается только по истечении заданного времени.
Программирование ПЛК осуществляется в среде программирования Unity на языках стандарта МЭК 61131-3. Этот стандарт включает 5 языков.
Например, я выбрал язык функциональных блоков — FBD.
Вот браузер проекта в Unity:
Настройка ПЛК:
ПЛК состоит из монтажной панели, источника питания (1), контроллера (2), модуля дискретного ввода на 32 сигнала постоянного тока 24 В (4), модуля дискретного ввода на 32 сигнала постоянного тока 24 В (5).
В реальном проекте к одному контроллеру через различные сети могут быть подключены десятки монтажных панелей и сотни модулей ввода-вывода.
Создайте переменные нужных типов в редакторе переменных:
Переменные, привязанные к каналам модулей ввода-вывода, имеют адрес, указывающий, к какой корзине, модулю и каналу привязан сигнал.
Программа состоит из разделов, которые выполняются в каждом цикле сканирования контроллера по порядку.
Упрощенный цикл сканирования контроллера выглядит так: 1. Считывание входных сигналов с модуля ввода в переменные с адресами.
2. Выполнение разделов.
3. Запись значений из переменных с адресами в выходные сигналы модулей вывода.
4. Перейдите к шагу 1. Создайте раздел Clock с генератором импульсов с периодом 0,5 секунды.
При изменении входного сигнала с 0 на 1 блок ТП выдает на выходе импульс заданной длительности.
Здесь и далее скриншоты разделов показаны в режиме анимации, а не в режиме редактирования.
Они отображают значения переменных на текущий момент времени при подключении к ПЛК с загруженной программой (цифры для числовых переменных, цвет зеленый (1)-красный (0) для булевых).
Раздел Main управляет основной логикой.
Блок SR устанавливает выход в 1, когда S1=1, и сбрасывает выход в 0, когда R=1. Блок R_TRIG устанавливает выход для 1 цикла сканирования в 1, когда входной сигнал переходит от 0 к 1 (детектор нарастающего фронта).
Блок F_TRIG устанавливает выход для 1 цикла сканирования в 1, когда входной сигнал переходит от 1 к 0 (детектор заднего фронта).
Переменная inButton, привязанная к каналу кнопки, была заменена в разделе на inButtonForTest, чтобы ее значение можно было изменить в симуляторе контроллера без реального оборудования.
В разделе «Выходы» формируются выходные сигналы для управления светофорами.
Загрузите проект в симулятор контроллера:
Значение любых переменных можно посмотреть в таблице анимации:
Но для удобства отладки можно сделать экран оператора с простой графикой, анимация которого привязана к переменным:
Попробуем перейти дорогу:
Я не ожидал, что для управления таким простым объектом, как светофор, понадобится 30 блоков.
В следующей статье я покажу, как написать эту программу, используя одновременно все языки стандарта MЭK 61131-3. УПД.
Исправлена ошибка в названии стандарта.
Теги: #plc #PLC #IEC 61131-3 #Quantum #unity #fbd #программирование #Промышленное программирование
-
Пятница. Программистский Бред 4.3
19 Oct, 24 -
Флибуста Просуществовала Недолго?
19 Oct, 24 -
Фриланс - Практика
19 Oct, 24 -
Что Нужно Знать Об Arc
19 Oct, 24