Фильтр по тематике

Контроллер GCAN-PLC-510 и повторитель узла GCAN-IO-8100 в сетях Modbus TCP

В статье продолжается обзор ПЛК GCAN от китайского производителя Shenyang Vhandy technology Co., Ltd. Рассматривается вопрос интеграции контроллера GCAN-PLC-510 и повторителя узла сети GCAN-IO-8100. Приводится пример выбора панели оператора и построения испытательного стенда.

1273 1
В настоящей статье мы продолжаем знакомить специалистов с ПЛК GCAN компании Shenyang Vhandy Technology Co., Ltd. Статья посвящена вопросам интеграции контроллера GCAN-PLC-510 и повторителя узла сети GCAN-IO-8100 в промышленные сети Modbus TCP и содержит описание простого приложения, состоящего из двух задач (программ): DIO_AIO и Modbus_TCP_Server. Приложение реализует простые функции ввода и вывода дискретных и аналоговых сигналов и осуществляет обмен с клиентами по протоколу Modbus TCP. 

Вы ознакомитесь с комплектом firmware, реализующим функции протокола Modbus_TCP, процессом создания приложения и инструментами тестирования и отладки. Комплексная отладка осуществлялась с использованием демонстрационного стенда на базе панели оператора WECON.

Введение

Благодаря модульной конструкции и гармоничному, с точки зрения технических характеристик, набору модулей программируемые логические контроллеры GCAN стали очень популярны на рынке АСУ ТП в Российской Федерации и за её пределами. В наши дни очень многие крупные и локальные китайские производители активно начинают работать на рынке РФ. Опыт посещения столичных и региональных выставок отображает тенденцию выхода на открытый рынок российских компаний, которые ранее производили ПЛК исключительно под свои проекты. Данные факторы, с учётом ухода с рынка европейских производителей в виде официальных представительств, а также параллельный импорт значительно стимулировали рынок АСУ ТП.

Великим политическим деятелем Мао Цзэдуном была произнесена фраза: «Сто цветов цветут вместе, чтобы отвергнуть старое и взрастить новое»: «Байхуа цифан, туйчэнь чусинь» (百花齐放,推陈出新). Внутренняя конкуренция уже сейчас заставляет производителей предлагать более качественный и более бюджетный продукт в области ПЛК.

За последние полгода ПЛК GCAN были применены на нескольких крупных и десятках мелких проектов. Сюда вошли как промышленные, так и бытовые реализации. Стоит выделить такие применения, как стенды для обучения студентов в вузах, системы управления кранами в портах, система управления для вакуумной упаковки, системы контроля выброса вредных веществ, в частности, серы, а также пищевые производства и системы очистки сточных вод.

Сетевые интерфейсы и протоколы, поддерживаемые контроллерами серии GCAN

Для интеграции контроллеров (GCAN-PLC-400, GCAN-PLC-510, GCAN-PLC-511) [1, 2, 3] и повторителей узла сети (GCAN-IO-8000, GCAN-IO-8100) [4, 5] в распределённые системы сбора данных и управления (SCADA-системы) производитель предусмотрел в своих изделиях ряд популярных интерфейсов и обеспечил программную поддержку распространённых прикладных протоколов. 

В контроллере GCAN-PLC-510 предусмотрены: одноканальный интерфейс CAN-Bus, одноканальный интерфейс Ethernet, одноканальный последовательный интерфейс RS-232/485 (мультиплексный). 

Firmware контроллера обеспечивает поддержку протоколов: CANopen (master/slave); Modbus RTU (master/slave); Modbus TCP / IP (client/server); TCP Socket (client/server); MQTT (Publisher) [6]. Зачастую в рамках SCADA-системы контроллеры интегрируются в локальную производственную сеть и обмениваются данными и командами управления с верхним уровнем системы по протоколу Modbus TCP/IP. В настоящей статье рассмотрено простое приложение для контроллера GCAN-PLC-510 Modbus_TCP_server, реализующее функцию сервера Modbus TCP/IP. Состав системы и модулей ввода-вывода описаны в статье «Модульный ПЛК GCAN-PLC – это просто... Делаем выводы!» [7]. Кроме того, в статье рассмотрен вариант системы на основе повторителя узла сети GCAN-IO-8100. Комплексная отладка системы осуществлялась на стенде с использованием панели WECON в качестве Modbus-клиента.

Проект Modbus_TCP_Server

Проект Modbus_TCP_server на базе контроллера GCAN-PLC-510 реализует элементарные функции ввода и вывода дискретных и аналоговых сигналов с использованием модулей системы и обмена информацией с клиентом верхнего уровня по протоколу Modbus TCP. Он состоит из двух программ (задач) – DIO_AIO и Modbus_TCP_server. Программы написаны на языке ST. В качестве прототипа использовался пример из комплекта поставки контроллера GCAN-PLC-510 и рекомендации документа «Начало работы с GCANPLC.

Руководство по применению» [6]. Программно-аппаратная конфигурация ПЛК кратко описана в секции объявления переменных программы DIO_AIO рис. 1 и проиллюстрирована на рис. 2. 


Программа DIO_AIO

Программа DIO_AIO в контексте проекта Modbus_TCP_server носит вспомогательный характер. Она иллюстрирует возможность контроллера GCAN-PLC-510, в отличие от повторителей узла сети GCAN-IO-8100, автономно выполнять алгоритмы, а не только транслировать команды клиента Modbus TCP. Программа вызывается как периодическая задача с интервалом 1 с и наращивает примерно на 0,1 В напряжение на выходе 1 модуля аналогового вывода (ЦАП) GC4662. Напряжение перемычками подаётся на первый вход модуля аналогового ввода (АЦП) GC3624 (рис. 2). Когда регистр ЦАП переполняется, напряжение на выходе ЦАП сбрасывается, и процесс повторяется с периодом около одной минуты. Для контроля работы считывается код АЦП модуля GC3624 и пересчитывается по формуле в величину напряжения в вольтах (см. окно просмотра переменных на рис. 7).

Функциональные блоки Modbus_TCP_Slave (_INIT, CTRL)

Сервис Modbus TCP Server для контроллеров GCAN поддержан производителем на уровне функциональных блоков Firmware. В комплект поставки входят два функциональных блока MODBUS_TCP_SLAVE_INIT (рис. 3) и MODBUS_TCP_SLAVE_CTRL (рис. 4).


Оба функциональных блока описаны в документе «Начало работы с GCANPLC. Руководство по применению» [6]. Детали протокола, формат и структуру сообщений, таблицу регистров и коды функций можно найти в статьях, посвящённых протоколу Modbus, в журнале «Современные технологии автоматизации» [8], [9], [10].

Программа Modbus_TCP_Server

Программа (задача) Modbus_TCP_Server выполняется циклически с приоритетом, равным 1. При первом вызове задачи вызывается ФБ MODBUS_TCP_SLAVE_INIT и однократно происходит инициализация сервиса. В дальнейшем циклически вызывается только ФБ MODBUS_TCP_SLAVE_CTRL, который реализует функциональность сервиса. Назначение входов и выходов функциональных блоков прокомментированы ниже в тексте программы (рис. 5, рис. 6). 
Входы и выходы модулей DO, DI, AI, AO через массивы: modbusDOBuf, modbusDIBuf, modbusAIBuf, modbusRegBuf и входы DO_PTR, DI_PTR, AI_PTR, REG_PTR экземпляра ФБ inst0_MODBUS_TCP_SLAVE_CTRL связаны с регистрами Modbus: COIL STATUS DO 00001... 00008; INPUT STATUS DI 10001...10008; INPUT REGISTER AI 30001; HOLDIN REGISTER 40001.


Отладка и тестирование

Отладка и тестирование приложения осуществлялось с помощью встроенных средств infoteam Open PCS [7] (рис. 7 и рис. 8) и утилит ModScan32 (рис. 9) и Modbus Poll (рис. 10).




Профилирование программы MODBUS_TCP_SERVER показало, что среднее время выполнения задачи заметно меньше 1 миллисекунды. Время однократной инициализации сервиса составляет порядка 8 миллисекунд.

Тестирование с использованием утилиты ModScan32 показало, что контроллер устойчиво выполнял функции MODBUS TCP SERVER при циклическом опросе с интервалом 20 миллисекунд. При общем количестве запросов порядка 650 000 было зафиксировано только 10 фактов отсутствия или неверных ответов. Тестирование с помощью утилиты Modbus Poll показало, что ПО контроллера поддерживает функции Modbus с кодами: 1, 2, 3, 4, 5, 6, 15, 16. Понимание этого может пригодиться при самостоятельной разработке клиентских приложений Modbus TCP.

Комплексная отладка приложения осуществлялась в составе демонстрационного стенда, который описан в следующей части нашей статьи (см. рис. 17, рис. 21). 

Повторитель узла ModbusTCP GCAN-IO-8100

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

В таких случаях удобно будет использовать повторители узла сети (каплеры), имеющие заказной код GCAN-IO. В частности, рассмотрим повторитель узла ModbusTCP/RTU – модель GCAN-IO-8100. Со стороны системной шины к этому устройству можно подключить до 32 различных модулей дискретного и аналогового ввода-вывода GCAN. Информационные данные с модулей ввода-вывода автоматически проецируются на карту регистров Modbus и становятся доступными для клиентов (мастеров) в сетях ModbusTCP/RTU. В качестве клиентов(мастеров) могут выступать различные узлы систем автоматизации: АРМы, сервера, панели оператора, ПЛК и т.д.

Обратим внимание, что для сетевого обмена можно одновременно использовать любой из интерфейсов каплера GCAN-IO-8100:
  • порт Ethernet (сервис ModbusTCP server);
  • порт RS232/485 (сервис ModbusRTU slave). 

Этапы конфигурирования каплера GCAN-IO-8100

Для полноценного функционирования каплера GCAN-IO-8100 достаточно сконфигурировать только сетевые параметры: ip-адрес узла в сети Ethernet и параметры порта RS-232/485. Для перехода в режим конфигурирования и работы в этом режиме нужно выполнить ряд последовательных действий. 
  1. Нам понадобится инженерный ПК с коммуникационным портом RS-232. Процедура начинается с его подключения по линии RS-232 к консольному порту GCAN-IO-8100, питание каплера при этом выключено. В экземпляре, который мы тестировали, консольный порт устройства совместим с его сетевым портом RS-232/485. Для подключения нужно использовать кабель-переходник RJ45/DB9 из комплекта поставки GCAN-IO-8100. 
  2. На инженерном ПК запустить терминальную программу с параметрами связи по порту RS-232: скорость – «115200 бит/с», бит данных – «8», чётность – «нет», стоповые биты – «1», уп-равление потоком – «нет». Мы исполь-зовали классический HyperTerminal. 
  3. Подать питание на каплер GCAN-IO-8100. Открыть сервисную крышку модуля, где находятся кнопка «RESET» и DIP-переключатель – показаны на рис. 11. Для перехода в режим конфигурирования необходимо удерживать кнопку «RESET» в течение ~10 с до тех пор, пока не загорится красный светодиод «IO ERR». 

  4. Перезапустить питание каплера. Перевести DIP-переключатель в нижнее положение. В окне терминальной программы отразится переход в режим конфигурирования сообщением «load config mode». 
  5. Набрать базовую команду «help» – и в окне терминальной программы отразится перечень всех доступных команд для конфигурирования. На-пример, для изменения ip-адреса каплера GCAN-IO-8100 используется команда «setip=192.168.1.33». По аналогии, при необходимости меняется маска сети и шлюз по умолчанию командами «setmask», «setgateway».Чтобы получить информацию о текущем ip-адресе, потребуется команда «getip». Пример выполнения команд «help», «setip», «getip» показан на рис. 12. *Обратим внимание читателя, что при наборе команд обязательно нужно использовать символы «возврат каретки» и «перевод строки», если они не добавляются в вашей терминальной программе автоматически.

  6. Если предполагается работа каплера с протоколом ModbusRTU, то необходимо сконфигурировать параметры узла Modbus и коммуникационного порта RS-232/485. Для этого применяются команды:
    – «getmdinfo» – отражает текущие настройки узла ModbusRTU; 
    – «setnode» – изменить Modbus ID узла. По умолчанию – «1»;
    – «setport» – изменить режим работы порта. Варианты: setport = 1 (режим RS-232), setport = 2 (режим RS-485);
    – «setbaud» – установить скорость порта. Например, setbaud = 19 200;
    – «setparity» – чётность. Варианты: setparity = 0, setparity = 1;
    – «setdatalen» – бит данных. Например, setdatalen = 8; 
    – «setstopbit» – стоповые биты 1 или 2. Например, setstopbit = 1.
    На рис. 13 пример использования команд: «getmdinfo» – для отображения текущих настроек коммуникационного порта, «setport = 1» – для изменения режима работы порта на RS-232.

  7. Для выхода из режима конфигурирования переводим DIP-переключатель в верхнее положение. Перезапускаем питание каплера. И наше устройство GCAN-IO-8100 готово к работе в системе автоматизации:
    – в качестве ModbusTCP server с ip-адресом 192.168.1.33;
    – в качестве ModbusRTU slave с параметрами Modbus ID = 1; коммуникационный порт в режиме RS-232, скорость – «19 200 бит/с», бит данных – «8», чётность – «нет», стоповые биты – «1».

Тестирование каплера GCAN-IO-8100 в качестве подчинённого узла ModbusRTU с использованием утилиты ModScan

Работу каплера GCAN-IO-8100 мы решили проверить с тем же набором модулей GCAN: 
  • GC-1018 – 8-канальный модуль дискретного ввода, вход типа NPN, 24 В DC;
  • GC-2018 – 8-канальный модуль дискретного вывода, вход типа NPN, 24 В DC;
  • GC-3624 – 4-канальный модуль аналогового ввода, –10…+10 В DC, 16 бит;
  • GC-4662 – 2-канальный модуль аналогового вывода, 0~+5 В, 16 бит;
  • GC0001 – терминальный модуль.
Карта регистров Modbus, как мы уже указали, формируется автоматически. Примеры автоматического отображения каналов модулей ввода-вывода на конкретные адреса регистров Modbus приводится производителем в документе «GCAN-8100 Modbus I/O coupler» [5].

Для нашей конфигурации каплера GCAN-IO-810 с набором GC-1018, GC-2018, GC-3624, GC-4662 карта регистров Modbus будет выглядеть, как показано в табл. 1. 

Для тестирования мы собрали схему, как показано на рис. 14. 

Результат тестирования приведён в виде 4 экранов утилиты ModScan для каждого из 4 типа регистров Modbus (рис. 15).

Создание демонстрационного стенда

Для комплексного тестирования описанного оборудования GCAN авторы статьи решили собрать демонстрационный стенд. Поскольку типовым применением контроллеров этого класса является их установка в шкафу локальной автоматики (автоматизации), то для визуализации логичным было включить в состав стенда ещё и панель оператора. Возник вопрос – панель какого вендора выбрать? 

Выбор панели оператора. Кто на новенького?

На данный момент на нашем рынке промышленных устройств HMI появился ещё один интересный производитель из материкового Китая – компания Wecon Technology Co., Ltd. Линейка сенсорных панелей оператора, выпускаемых под брендом Wecon, представлена несколькими модельными рядами. 

Для проектов автоматизации в номенклатуре WECON можно подобрать разные варианты: как бюджетные панели на процессоре Cortex A7 и с минимальным набором сетевых интерфейсов, так и высокопроизводительные устройства на процессоре Cortex A35 с расширенным функционалом и поддержкой облачных технологий.

Инструментальное ПО PIStudio для панелей WECON 

Для создания проектов панелей оператора WECON используется бесплатное ПО – PIStudio [11, 12]. Что, кроме стандартного (для подобного класса уст-ройств) набора функций разработки HMI, можно особенно выделить в программе PIStudio?

Во-первых, предоставляется богатая библиотека элементов для создания экранных форм. На рис. 16 в качестве примера показаны элементы групп «Valves», «Tanks», «Switch». 

Во-вторых, имеется поддержка различных промышленных коммуникационных протоколов: Ethernet/IP, IEC60870-5 104 Client, MODBUS RTU/ TCP, OpenCAN и т.д. 

И в-третьих, это расширенные возможности (у флагманских моделей) по разработке скриптов. Для этих целей в структуре проекта PIStudio можно использовать несколько ресурсов:
  • Macro Script, где на BASIC-подобном языке можно написать небольшой макрос, например, для преобразования типов данных, чтения/записи данных по условию и т.п. Максимальная длина Macro Script – 512 строк;
  • LUA Script. Язык программирования Lua относится к языкам ООП. Его применение в проекте PIStudio – это различные нестандартные задачи. Например, производитель приводит демопример «Arabic Keypad» – применения макроса Lua для реализации экранной арабской клавиатуры. 

Структурная схема стенда. Создание проекта панели оператора

Для своего стенда мы решили использовать панель оператора WECON с диагональю 10.2″. У нас в руках оказался соответствующий образец – модель PI3102ig с характеристиками: процессор Cortex A35 1.2GHz, ОЗУ 128 Мбайт, внутренняя память 128 Мбайт, порты COM1: RS-232, RS-485/422, COM2: RS-485, Ethernet. 

Структурная схема стенда представлена на рис. 17. 
Опишем несколько ключевых шагов по созданию проекта для панели WECON PI3102ig в среде разработки PIStudio.

После создания файла нового проекта переходим к выбору нужного коммуникационного протокола в соответствующей форме системных настроек (рис. 18). 

Для конфигурирования сервиса ведущего устройства нужно указать IP-адрес опрашиваемого подчинённого узла ModbusTCP и указать ТСР-порт. Для опроса контроллера GCAN-PLC-510 указывается ip-адрес 192.168.1.30 (ТСР-порт 502). Для опроса каплера GCAN-IO-8100 указывается ip-адрес 192.168.1.33 (ТСР-порт 502). Создание экранов HMI в среде PIStudio – простая и не требующая много времени процедура. Особенно если взять за основу стандартный демо-проект от производителя, как это сделали мы.

Привязка дискретных и аналоговых данных, получаемых по протоколу ModbusTCP от устройств GCAN-PLC-510 и GCAN-IO-8100, сводится к корректному и внимательному указанию нужных адресов регистров Modbus в свойствах элементов экрана визуализации. И правильному выбору типа регистра Modbus. Для примера на рис. 19 показано окно свойств кнопки управления каналом дискретного выхода DO3.

На рис. 20 приведена экранная форма, подготовленная в среде PIStudio для панели PI3102ig. 

С таким интерфейсом оператора и осуществляется визуализация работы нашего стенда, фото которого представлено на рис. 21. 

Заключение

Для интеграции в системы автоматизации контроллеров (GCAN-PLC-400, GCAN-PLC-510, GCAN-PLC-511) и повторителей узла сети (GCAN-IO-8000, GCAN-IO-80100) производитель Shenyang Vhandy Technology Co., ltd. предусмотрел в своих изделиях ряд популярных интерфейсов и обеспечил программную поддержку распространённых прикладных протоколов. 

Firmware контроллеров обеспечивает поддержку протоколов: CANopen (master/slave); Modbus RTU (master/slave); Modbus TCP / IP (client/server); TCP Socket (client/server); MQTT (Publisher). Повторители узла сети поддерживают протоколы: Modbus RTU slave; Modbus TCP / IP server; CANopen.

В силу поддержки открытых протоколов семейством контроллеров и повторителей узла сети GCAN перед разработчиками систем автоматизации ­открываются прекрасные возможности не только для проектирования новых средних и малых систем АСУ ТП, но и для расширения возможностей и масштабирования ввода-вывода существующих, в том числе разнородных, больших систем авто-матизации. ●

Литература

  1. GCAN-PLC-510 Programmable Logic Controller User manual.
  2. GC-1018 8-channel digital input module (NPN) User manual.
  3. GC-2018 8-channel digital output module (NPN) User manual.
  4. GC-3624 4-channel analog input module (-10V~+10V) User manual.
  5. GC-4662 2-channel analog output module (0V~+5V) User manual.
  6. GCANPLC 入门 应用指南. (Начало работы с GCANPLC. Руководство по применению). 2021. 
  7. Константинов А., Маценко В., Деркач А. Модульный ПЛК GCAN-PLC – это просто... Делаем выводы! // СТА. 2023. № 2. С. 16–30.
  8. Томас Д. Введение в протокол Modbus. Ч. 1 // СТА. 2009. № 2. С. 52–56.
  9. Томас Д. Введение в протокол Modbus. Ч. 2. Modbus Serial и Modbus TCP // СТА. 2009. № 3. С. 22–26.
  10. Денисенко В. Протоколы и сети Modbus и Modbus TCP // СТА. 2010. № 4. С. 90–94.
  11. GCAN-8100 Modbus I/O coupler. User Manual.
  12. Ссылка на скачивание ПО Wecon PI-Studio // URL: https://docs.wecon.com.cn/bin/view/PIStudio/Download/3%20-Software/.
  13. PIStudio. User Manual. ●

1273 1
Комментарии
shirokov@soel.ru
shirokov@soel.ru
Полезная статья
Имя Ответить
Рекомендуем