+8 800 6003347
info@weintek.net
Закладки
Сравнение
Ваша корзина пуста!
Корзина

Согласно документации на встроенный 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 одинаков для панелей и ПЛК CTRL01.

Схематично это будет выглядеть примерно так, как на рисунке ниже.

Схема доступа к 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


29.12.2021
Новости из этой категории