У цій статті розглянуто інтеграцію програмованого логічного контролера CPM713 компанії Fastwel, що працює на базі протоколу MODBUS TCP, з панеллю оператора Weintek, що підтримує послідовний варіант протоколу MODBUS RTU/ASCII, за допомогою інтерфейсного модуля NIM742 і готової бібліотеки адаптованого середовища CODeysAfAY.
Промислові протоколи на базі мереж Ethernet набувають все більшої популярності. Використання цієї технології в промислових системах має переваги, наприклад, можливість гнучкої модернізації та масштабування системи, простоту побудови архітектури і невисоку вартість створення мереж [1]. Однак впровадження нових технологій в область АСУ ТП відбувається досить повільно, тому досі багатьма пристроями використовуються традиційні промислові мережі на базі послідовних шин.
При створенні автоматизованих систем нерідко потрібно налагодити обмін даними між пристроями, що підтримують різні протоколи обміну даними або різні модифікації одного і того ж протоколу.
Так, контролер CPM713 компанії Fastwel використовує для передачі даних протокол MODBUS TCP на базі мереж Ethernet [2]. Під час роботи з цим контролером виникло завдання передавати і отримувати дані з панелі оператора MT6100i компанії Weintek, що підтримує послідовний протокол MODBUS RTU/ASCII (рис. 1).
Малюнок 1. Інтеграція контролера Fastwel I/O з операторською панеллю Weintek
Використання безшовної інтеграції завжди є більш пріоритетним, ніж використання сторонніх шлюзів. Тому для вирішення даного завдання було взято інтерфейсний модуль NIM742 компанії Fastwel, що дозволяє підключати пристрої з інтерфейсом RS-232C і працювати з ними через користувальницьку програму контролера CPM713.
Додаток NIM742 спільно з користувальницькою програмою контролера CPM713 реалізує роботу підлеглого вузла Modbus RTU. NIM742 з'єднується в загальну лінійку додатків і по шині FBUS обмінюється даними з контролером CPM713 (ризи.2). Для забезпечення роботи NIM742 з протоколом MODBUS RTU використовується бібліотека CoDeSys FastwelModbusServer.lib, що входить в пакет адаптації Fastwel.
Малюнок 2. Контролер CPM71x з'єднаними додатками
З'єднання пристроїв
Для налаштування і програмування контролера CPM713 та інтерфейсного додатка NIM742 використовувалися такі компоненти і аксесуари:
- кабель для конфігурування ACS00019, що входить до комплекту постачання контролера,
- безкоштовний програмний пакет CoDeSys фірми 3S Smart Software Solutions з адаптаційним пакетом Fastwel CoDeSys Adaptation для роботи з Fastwel.
Для роботи з панеллю оператора Weintek MT6100i знадобилися:
- сполучні кабелі для конфігурування, які також входять до комплекту постачання,
- безкоштовне програмне забезпечення для конфігурування EasyBuilder 8000.
Підключення інтерфейсного модуля до панелі оператора здійснюється за допомогою з'єднувального кабелю. Цей кабель можна виготовити самостійно, використовуючи інформацію про призначення контактів, представлену в керівництві з експлуатації панелі Weintek (рис. 3). Для зв'язку з модулем NIM742 використовувався порт COM3 [RS-232] операторської панелі, що використовує трьох контактне підключення для передачі даних: TxD (передача), RxD (прийом) і GND (земля).
Малюнок 3. Призначення контактів панелі Weintek 6100i роз'єму female SUB-D COM3 [RS-232]
На малюнку 4 зображена схема з'єднання контактів додатка NIM742 до порту COM3 панелі оператора [3, 4]. При підключенні необхідно мати на увазі, що контакт передачі даних TxD інтерфейсного модуля повинен з'єднуватися до контакту прийому даних RxD панелі оператора, а контакт RxD відповідно до TxD панелі.
Малюнок 4. З'єднання додатка NIM742 до порту COM3 панелі оператора.
Таким чином, для здійснення зв'язку між панеллю оператора і модулем NIM742 необхідно підключити контакти TxD і RxD з 8-м і 7-м контактами SUB-D роз'єму, а землю модуля з'єднати з 5-м контактом (рис. 5).
Малюнок 5. Схема з'єднання NIM742 і панелі оператора Weintek MT6100i.
Налаштування панелі оператора
Екранна форма панелі оператора створюється і конфігурується за допомогою безкоштовного програмного забезпечення EasyBuilder8000. Під час створення нового проекту необхідно вказати модель панелі Weintek (рис 6).
Малюнок 6. Створення нового проекту в EasyBuilder8000
Далі, під час створення проекту необхідно відредагувати системні налаштування і вказати список пристроїв, з якими зв'язується панель оператора (рис. 7). У нашому випадку це буде підлеглий пристрій Modbus RTU [5].
Малюнок 7. Системні параметри проекту
Для клієнта, який ми використовуємо, налаштовуються такі параметри: розташування ПЛК, тип зв'язку, COM порт, швидкість і режим роботи (рис. 8). Ці дані також будуть вказані в робочій програмі ПЛК.
Малюнок 8. Налаштування нового пристрою
Після введення всіх параметрів комунікації необхідно додати на екранну форму елементи управління та відображення: бітові індикатори, перемикачі, цифрові індикатори тощо. На малюнку 9 представлений зовнішній вигляд готового тестового проекту.
Малюнок 9. Тестовий проект екрана панелі
Дані елементи відображення та керування пов'язуються зі змінними MODBUS. Адресація змінних Modbus RTU вказана в підручнику з з'єднання панелі Weintek до ПЛК (рис. 10).
Малюнок 10. Таблиця адрес змінних Modbus
У протоколі MODBUS підтримуються змінні чотирьох типів:
- дискретний вхід (Discrete Input, 1 біт);
- дискретний вихід (Coil, 1 біт);
- аналоговий вхід (Input Register, 16 біт);
- аналоговий вихід (Holding Register, 16 біт).
Для доступу до певної змінної також необхідно вказати адресу в мережі MODBUS.
Залежно від типу змінної, для доступу до даних використовуються функції з кодами 0х, 1х, 3х, 4х. Код 0x відповідає типу Coil, який є вихідною змінною для запису значення в бітову змінну. Адреса 1x зчитує стан бітової змінної Discrete Input. Адреса 3x відповідає Input Register і використовується для зчитування стану аналогової змінної. Адреса 4x записує аналогову змінну Holding Register.
Таким чином, адреса першого перемикача буде 0x1 (рис. 11), другого 0х2 тощо. Адреси всіх елементів робочого екрана мнемосхеми представлені в таблиці 1.
Ріс. 11. Завдання адрес до елементів робочої мнемосхеми
Таблиця 1. Адреси елементів екрана робочої схеми:
Програма для ПЛК
Тестовий проект для CPM713 базується на готовому прикладі для FastwelModbusServer.lib, що входить в адаптацію CoDeSys для Fastwel. Ця бібліотека реалізує високу швидкість роботи, універсальна і проста в реалізації, тому при організації обміну даними за протоколом Modbus RTU рекомендується використовувати саме її. FastwelModbusServer.lib реалізує функціональність підпорядкованого вузла мережі MODBUS RTU/ASCII через доступні користувальницькій програмі порти контролера. Зокрема, для організації доступу до мережі MODBUS RTU через порт додатка NIM742.
Для організації обміну даними між користувальницькою програмою і модулями введення-виведення потрібно додати конфігурацію системи введення-виведення згідно з фізичним підключенням до контролера. У тестовому проекті ми використовували тільки модуль NIM742, і конфігурація контролера представлена на малюнку 12.
Ріс. 12. Список додатків
Бібліотека FastwelModbusServer має єдину функцію FwModbusServerInit () для ініціалізації та налаштування сервера. При виклику цієї функції користувач визначає комунікаційні параметри вузла мережі і описує області даних, які будуть відображатися на просторі адрес сервера MODBUS. Ініціалізація сервера відбувається тільки з обробника системної події OnInit, який ініціалізує Modbus сервер один раз, після включення живлення і до того, як основна користувацька програма буде запущена.
Параметри обміну даними через COM-порт вказуються в самій функції в області завдання локальних змінних (рис. 13). Тут Port - номер порту, BaudRate - швидкість обміну даними, StopBit - довжина стопового біта, Parity - режим контрольного біта, ByteSize - кількість біт в кадрі, NodeAddress - адреса пристрою в мережі Modbus.
Ріс. 13. Встановлення параметрів COM-порту
Дані, якими обмінюється основна програма з панеллю оператора, задаються в користувальницьких типах даних PLC_PRG_IN (те, що виходить по мережі) і PLC_PRG_OUT (те, що відправляється в мережу). Ці змінні - це масив з чотирьох змінних типу WORD, подвійного слова DWORD і речове число REAL (рис. 14).
Ріс. 14. Змінні для обміну даними по мережі Modbus
Після того, як екранна форма і програма були завантажені у відповідні пристрої, панель оператора в режимі майстра опитує контролер CPM713. Робочий екран панелі оператора в режимі виконання представлений на малюнку 15.
Ріс. 15. Робочий екран операторської панелі у режимі виконання
Далі, за необхідності за допомогою засобів CoDeSys можна збирати дані, одержувані контролером CPM713 по мережі MODBUS TCP, і перенаправляти їх на панель оператора за протоколом MODBUS RTU. Таким чином, за допомогою засобів CoDeSys і інтерфейсного модуля NIM742 може бути створена безшовна інтеграція протоколів MODBUS RTU і MODBUS TCP.
Література
1. Орлов, С. Ethernet і промислові мережі/Сергій Орлов//Журнал мережевих рішень/LAN. — 2013. — № 9. - С. 24-31
2. FASTWEL I/O розподілена система введення-виведення. Керівництво з експлуатації. ftp.prosoft.ru/pub/Hardware/Fastwel/Fastwel_IO/Version2/Doc/FIO_UM.pdf.
3. Система введення-виводу Fastwel I/O Модулі введення-виводу. Керівництво програміста. ftp.prosoft.ru/pub/Hardware/Fastwel/Fastwel_IO/Version2/Doc/FIO_Modules_CoDeSys_Adaptation_UM.pdf.
4. Weintek MT-600/8000 series MT-607i, MT-8070iH / MT-6070iH. Installation Instruction
5. Підручник з користувачем EasyBuilder8000.






