Как получить доступ к COM порту панели оператора и ПЛК CTRL01 Weintek из встроенного Codesys?
Согласно документации на встроенный Codesys доступными из Codesys остаются только Ethernet порт и CAN bus. COM порт остается в "билдеровской части".
Но на практике очень часто COM порт нужен в "вычислительной" части Codesys, а не в панели.
Вопрос: как получить доступ к COM порту в Codesys?
Поясним вопрос: как в программе Codesys получить данные от устройства на COM порту панели оператора Weintek (от устройства, которое использует последовательный интерфейс).
Ответ: нужно в "билдеровской" части создать два устройства: одно Modbus RTU и второе Modbus server.

Рассматривать решение будем на следующем примере: к панели Weintek по RS-485 и Modbus RTU подключен ПЛК. В Codesys этой панели крутится программа, которой нужны данные от этого ПЛК.
| Примечание: | Подход для доступа к COM порту из Codesys одинаков для панелей и ПЛК CTR01. |
Схематично это будет выглядеть примерно так, как на рисунке ниже.

Схема доступа к COM порту из Codesys
Алгоритм реализации такой схемы будет следующий:
1) В EasyBuilder Pro создаем новый проект для операторской панели, добавляем устройство типа MODBUS RTU с интерфейсом COM2.

2) Добавляем устройство типа Modbus server.

3) В настройках устройства Modbus server включаем опцию "Шлюз" и настраиваем Таблицы привязки

4) В нашем примере мы создадим простую таблицу: в обоих устройствах адреса регистров начинаются с 1го и всего 10 регистров

5) В окно №10 добавляем несколько графических объектов типа "Числовой" (Numeric) и привязываем их к соответствующим регистрам в устройстве MODBUS RTU

6) В этом же окне добавим некоторую диагностическую информацию по устройству Modbus server

7) Сохраняем проект, компилируем, загружаем в панель. Если подключение по RS-485 сделано корректно, настройки COM порта в обоих устройствах совпадают, то наблюдаем получение данных с устройства Modbus RTU

8) Теперь перейдём в среду разработки Codesys 3.5 и создадим там новый проект

9) Находим нашу панель и делаем подключение к ней активным

10) Создаем простую программу, в которой объявляем массив из 10 элементов типа WORD, которые будут инициализироваться при старте Runtime Codesys
Создаем программу в Codesys
11) Щёлкаем правой кнопкой мыши на узле Device и через контекстное меню добавляем устройство Ethernet


12) Выберем для этого Ethernet устройства соответствующий интерфейс "eth0"

12) Щёлкаем правой кнопкой мыши на узле Ethernet и через контекстное меню добавляем устройство Modbus TCP Master

14) Через контекстное меню переименуем этот объект в "hmi"
15) Щёлкаем правой кнопкой мыши на узле hmi и через контекстное меню добавляем устройство Modbus TCP Slave

16) Через контекстное меню переименуем этот объект в "com_port"
17) Задаим IP адрес и TCP порт нашей панели Weintek с Modbus server (в нашем примере это 192.168.1.184 и 502)

18) Для устройства com_port на вкладке Modbus Slave Channel добавим канал


19) На вкладке ModbusTCPSlaveParameters задаем номер Slave (в нашем примере это 7)

20) На вкладке ModbusTCPSlave I/O Mapping привязываем переменные из программы (в нашем примере это массив array_mb[]) с оответствующему каналу Сhannel0


21) Сохраняем проект (Ctrl+S), делаем Build (F11) и загружаем в панель (Online -> Login Alt+F8)

22) В онлайн наблюдаем значения с нашего ПЛК


Но тут возникает вопрос: если Modbus server ("билдеровский" проект) и "вычислительная" проект Codesys работают в одном устройстве, условно на одной материнской плате, возможно ли их связать без внешних связей через локальную сеть ?
Оказывается можно.
Об этом нам намекает примечание в окне системных настроек проект в EasyBuilder Pro:
Встроенный Codesys должен использовать внутренний IP адрес(10.255.255.1) для доступа к локальному серверу MODBUS TCP/IP.

Схема взаимодействия программы в Codesys с COM портом в таком случае будет примерно следующая:

Вернёмся в наш проект Codesys и сделаем соответствующие изменения.
1) Откроем вкладку General у устройства Ethernet и выберем для него интерфейс vnet1

2) Меняем IP адрес у Slave на 10.255.255.1

3) Сохраняем проект (Ctrl+S), делаем Build (F11) и загружаем в панель (Online -> Login Alt+F8)
4) Отключаем кабель от ethernet порта LAN2 (чтобы исключить возможность общения Codesys с Modbus server по ehernet)
5) В онлайн наблюдаем значения с нашего ПЛК

_
Видео Использование CODESYS в панелях Weintek
Список панелей, в которых доступен встроенный Codesys - тут.
Все вопросы и обсуждения - на нашем форуме.
Видео о панелях Weintek на нашем Rutube канале.
Возврат к списку новостей
Подходящие товары
Web-панель
Weintek
cMT2058XH(W)
Панель оператора
Weintek
cMT2102X
Панель оператора
Weintek
cMT2168X
Портативная панель оператора
Weintek
cMT3106XM
Панель оператора
Weintek
cMT3218XP
Панель оператора
Weintek
cMT2058XH
Панель оператора
Weintek
cMT3072XHT(L)
Панель оператора
Weintek
cMT3072XP
Панель оператора
Weintek
MT8106iP
Панель оператора
Weintek
MT8052iP
Панель оператора
Weintek
cMT2128X
Панель оператора
Weintek
cMT3108XP
Панель оператора
Weintek
cMT3072XH2
Панель оператора
Weintek
cMT3072X2
Панель оператора
Weintek
MT8072iP
Панель оператора
Weintek
cMT3108XH
Панель оператора
Weintek
cMT3072XHT
Панель оператора
Weintek
cMT2166X
Панель оператора
Weintek
cMT2108X2
Панель оператора
Weintek
cMT1106X