Полунатурное моделирование с КПМ РИТМ: логика в ПЛК ОВЕН
Полунатурное моделирование на КПМ РИТМ (Управление конвейером на ОВЕН ПЛК200)
Этот пример продолжает развитие проекта моделирования конвейера. Полноценно переходим к полунатурному моделированию: алгоритм управления переносим из блока Chart Engee в CODESYS V3.5, подключаем программируемый логический контроллер ОВЕН ПЛК200 к комплексу полунатурного моделирования РИТМ, а модель физики и грузов на ленте запускаем в режиме реального времени.
Так мы сможем тестировать встраиваемую управляющую логику без объекта управления - на модели Engee в реальном времени, испытывая все возможные сценарии программы, исследуя её и модернизируя с учётом поведения объекта без значительных издержек.
Введение
В предыдущем примере проекта мы реализовали автоматизацию конвейера в Engee и протестировали её в реальном времени. После небольших доработок выполнения модели в реальном времени перейдём к полноценному полунатурному тестированию:
Модель примера
Модель системы управления текущего примера выглядит так, как показано на рисунке ниже:
Здесь, вместо модели ПЛК, как это было в предыдущем примере, мы используем два блока периферийного модуля общего назначения GP-LC-45 КПМ РИТМ:
-
GP-LC-4x DI "Цифровые входы" - для передачи цифровых сигналов в КПМ РИТМ и модель Engee от ПЛК,
-
GP-LC-4x DO "Цифровые выходы" - для передачи цифровых сигналов из модели Engee и КПМ РИТМ в ПЛК.
Блоки модуля GP-LC-45
Блок DI формирует, по аналогии с блоком Chart из предыдущего примера, три выходных сигнала:
-
вкл/выкл двигателя,
-
сигнал размещения груза,
-
сигнал снятия прибывшего груза.
В блоке GP-LC-4x DI, соответственно, определим следующие параметры:
-
номер модуля: 1,
-
количество каналов: 3,
-
резисторная подтяжка на питание: нет,
-
шаг расчёта, с: 1e-3 (шаг расчёта модели).
На блок DO также, по аналогии с блоком Chart из предыдущего примера, передаётся один логически входной сигнал:
- груз можно снимать.
Этот сигнал необходимо отмасштабировать до уровня напряжения модуля (5 В) и преобразовать тип данных во Float64
.
Кроме этого, в блок передаётся один сигнал постоянного уровня 5 В для подачи напряжения на релейные модули входов/выходов ПЛК и согласующей цепи.
В блоке GP-LC-4x DO, соответственно, определим следующие параметры:
-
номер модуля: 1,
-
количество каналов: 2,
-
шаг расчёта, с: 1e-3 (шаг расчёта модели).
Подключение ОВЕН ПЛК200 к КПМ РИТМ
Используемая модель ПЛК - ОВЕН ПЛК200-01-CS. У данного контроллера - 8 быстрых дискретных входов (FDI1-FDI8) и 14 дискретных выходов типа реле (DO1A, DO1B - DO14A, DO14B). В контроллер, соответственно, нужно передавать сигналы с уровнем напряжения +24 В (уровня питания ПЛК), а на входе контроллера контакты A и B дискретных выходов будут замыкать цепи, передающие в КПМ РИТМ управляющие воздействия.
Подключим ПЛК ко входам РИТМ следующим образом:
На контакты DO1A-DO3A ПЛК поступает напряжение +5В от выхода DO1 терминала модуля GP-LC. От контактов DO1B-DO3B управляющие сигналы ПЛК поступают на входы DI01-DI03 терминала модуля GP-LC.
Выход DO2 терминала модуля подключен к сигнальному входу IN внешнего релейного модуля. Питание +5В он получает также от терминала.
Контакты реле релейного модуля COM и NO (нормально-открытый контакт) подключены, соответственно, к источнику питания +24 В и быстрому входу FDI1 ПЛК. Контакт SS1 (общий) также подключен к общему контакту источника питания.
После подключения ПЛК можно перейти к его конфигурированию и программированию.
Управляющая логика ПЛК
Перенесём логику, описанную в блоке chart прошлого примера в программу ПЛК, написанную на языках согласно IEC 61131-3. Среда разработки - CODESYS версии 3.5_SP17_Patch3.
Управляющая логика модели реализована в виде диаграммы состояний, как показано ниже:
После переноса на языке LAD в CODESYS управляющая логика принимает следующий вид:
Наименования переменных здесь сохранены, темпоральные переходы между состояниями выражаются в виде TON таймеров. Две верхние цепи соответствуют процессу снятия груза, прибывшего к ультразвуковому датчику. Нижние две цепи - процессу подачи грузов на ленту.
Данная управляющая логика может быть представлена и на языке FBD:
Для соотнесения имён переменных и аппаратных входов-выходов, рассмотрим область объявления переменных диаграммы CODESYS:
Так, выходы ПЛК DO1, DO2, DO3 связаны с адресами памяти %QX0.0
, %QX0.1
, %QX0.2
соответственно.
Вход ПЛК FDI1 - с адресом %IX8.0
.
Адреса маркеров используются следующим образом:
%MX0.0
- активация (по удержанию) состоянияmov
(цепь диаграммы №4),%MX0.1
- активация (в функции SET) состоянияprocessing
(цепь диаграммы №2),%MX0.2
- передача фронта сигнала для подачи груза на ленту после запуска двигателя,%MX0.3
- цикличная передача фронта сигнала для подачи груза на ленту,%MX0.4
- передача фронтов сигнала от маркеров%MX0.2
и%MX0.3
.
После отладки программы и программирования контроллера переходим к полунатурному моделированию:
HIL-тестирование управляющей логики ПЛК
Перед проведением HIL-тестирование с ПЛК пройдены следующие шаги:
-
модернизирована модель,
-
DI/DO ПЛК подключены к DI/DO КПМ РИТМ,
-
программа для ПЛК перенесена из модели,
-
программа для ПЛК отлажена, ПЛК запрограммирован,
-
программа на ПЛК запущена.
Теперь осталось провести, при необходимости, подготовку к работе с КПМ РИТМ и запустить модель Engee в интерактивном режиме:
Модель, выполняющаяся на КПМ РИТМ в режиме реального времени, обменивается дискретными сигналами с ПЛК, как это было определено в управляющей логике и на этапе моделирования в Engee. Система управления безошибочно реализует заложенную логику.
Далее можно переходить к масштабированию системы управления в модели и на ПЛК, тестированию различных условий работы объекта управления, проводить анализ работы системы управления, а также интегрировать прочие устройства и интерфейсы для всестороннего полунатурного тестирования.
Заключение
В этом примере мы рассмотрели полунатурное моделирование в режиме жесткого реального времени для конвейера с системой управления, реализованной на программируемом логическом контроллере ПЛК200 от компании ОВЕН. Управляющая логика ранее была разработана в блоке Chart модели и протестирована в Engee, на данном шаге она без изменений перенесена в Codesys.