PDA

Просмотр полной версии : ПЛК и обмен с обьектом по TCP



Alex_A
28.05.2025, 11:07
Добрый день!

Имею ПЛК110[М02] в кол-ве n штук (среда CODESYS v2 соответсвтенно)

Возникла необходимость общаться с устройством посредством локальной сети.
Идея в том что одно из устройств постоянно слушает эфир и поступлении команды с устройства управляемого выполняет операцию и возвращает результат.

Смог добыть два учбных проекта (ссылки на форуме протухли в шапке) - TcpClient_PLCm02 и TcpServerPLCm02 чтобы изучить и попробовать адаптировать работу ..
Решил попробовать реализовать TCP соединение ,в виде либо сервер ПЛК - клиент устройство , либо сервер устройство - клиент ПЛК.

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

Столкнулся с тем что не могу удовлетворительно реализовать ни один из сценариев

1)Сервер устройство - ПЛК клиент - почти удалось заставить работать , но всё портит невозможность без запроса узнать есть ли сообщение от устройства, т.е приходтся постояно опрашивать устройство т.к (*в неблокирующем режиме факт установки соединения можно определить только косвенным путем, используя функции SysSockSend и SysSockRecv*). в итоге стабильного обмена в любое время не удается обеспечить.

2) Сервер ПЛК - клиент устройство - не удается реализовать совсем. Пример учебный посмотрел , там всё с визуализации управляется , но настроить чтобы работало с моим случаем работало пока не разобрался..Сервер постоянно бегает по состояниям и в IDLE не переходит. Более того после какото - кол-ва попыток подключений оно намертово перестает подключаться, пока не сменишь порт.

Заранее скажу , что проект в остально части протестирован и работает обмен посредством RS232 вполне сносно, то есть проблема не в остальной части проекта(да и я уже делал минимальную программу где только сервер и перменные для него)

Поэтому прошу сообщество помочь советом и настройкой одного из вариантов или предложить альтернативу как заставить работать. Может быть кто уже реализовывал подобное правильно?

Прикладываю кусок от программы , где пробовал по разному заставить работать обмен..

EFrol
28.05.2025, 11:57
А можно узнать? Что за устройство такое?

Alex_A
28.05.2025, 12:52
в данном случае - Кабинет робота EPSON , с внутренним ЯП EPSON RC+ (не путать с С+ - они разные) который похож на урезаный VBasic скорее.

При этом он нормально работает с : Смарткамерой HikRobot по TCP(Получение данных по команде) , тк там реализовано в самой прошивке камеры работа по TCP (возможность быть TCP Сервером или клиентом); с програмой Hercules SETUP Utility на пк всем известной тоже; а также с самописным клиентом на С# на ПК.

Видимо у меня скилла не хватает именно по работе с ПЛК

EFrol
28.05.2025, 16:04
Я, наверно, не совсем Вас понимаю. У меня Kuka работает с Kinco по ModbusTCP без особых проблем. Кстати, сам Modbus-сервер может быть внешним к обоим контроллерам. Каждый процесс при смене своего состояния сохраняет (семафорит) его в выделенном ему Modbus-регистре. Поэтому любой контроллер в курсе, что происходит у соседа. ПЛК1 сообщает что-то выставлением бита в общем регистре, ПЛК2 выполняет и сбрасывает (квитирует) этот бит. Я не понимаю, если честно, в чём проблема.

Alex_A
28.05.2025, 17:28
Проблема что MODBUS не используется здесь )

я раньше по такому же типу работал с модбас с драйверами двигателей и самописным ПО на одном устройстве - так что вцелом вкурсе как это работает

Времени нет разбираться как в этом конкретно кабинете они сделан. там команды то всего 4 будет. Хотелось как по 232 реализовать быстро ..


Попробую по модбасу , в среде EPSON нельзя виртуально с ним работать (хотя бы тестовое что-нибудь собрать) - придется идти на производство к кабинету с роботом..

Валенок
28.05.2025, 21:13
1) ПЛК клиент - ... ..в неблокирующем режиме факт установки соединения можно определить только косвенным путем, используя функции SysSockSend и SysSockRecv...
.
Не только если покопошится в syslibsocket



2) Сервер ПЛК ...
..
Все норм работает. Может примеры такие

может поможет
https://owen.ru/forum/showthread.php?t=14182

Alex_A
29.05.2025, 10:11
1) Я процитировал то что в примере написано

2) ну я хотел быстрый проект для отладки накидать, и вообще в целом возможности работы ПЛК в таком режиме..

Услуг из темы пока нет необходимости заказывать, но спасибо за напоминание.

EFrol
29.05.2025, 10:22
Создать Modbus-сервер средствами CoDeSys 5 сек.
И что-то подсказывает, что EPSON Basic поддерживает работу с протоколом ModbusTCP.

Валенок
29.05.2025, 12:35
Создать просто tcp-сервер или просто tcp—клиент средствами codesys тоже 5 сек. Конешно если подготовить инструмент заранее. Codesys же подготовил за вас модбас-сервер/клиент.