Пожалуйста, рассмотрите возможность добавить поддержку Modbus UDP master/slave для ПЛК и Modbus UDP slave для модулей ввода-вывода.
Всё в рамках актуальной спецификации Modbus, меняется (добавляется) только транспортный протокол - UDP.
Пожалуйста, рассмотрите возможность добавить поддержку Modbus UDP master/slave для ПЛК и Modbus UDP slave для модулей ввода-вывода.
Всё в рамках актуальной спецификации Modbus, меняется (добавляется) только транспортный протокол - UDP.
Последний раз редактировалось Евгений Кислов; 25.03.2023 в 15:41.
СODESYS V3.5: Repository Archive V3.5 SP4 (необходим для старых СПК) / Раздел CDS V3.5 на сайте
Форум: Вопросы и ответы / Визуализация / Настройка обмена с другими устройствами
Web-панель ВП110 / Modbus-индикатор СМИ2-М
Telegram: @JuneSmellsLikeBlood | e-mail: e.kislov@owen.ru | oscat.ru | Как обратиться в техподдержку?
Как отлаживать ошибки | Отладка проектов в CODESYS V3.5 | XY problem | Как правильно задавать вопросы | AnyDesk
Да легко:
https://icp-das.ru/collections/io-mo...dbus+UDP+Slave
Единственное, что я не совсем понимаю - зачем модулю в/в нужно быть мастером?
Очень показательный пример - на него я и рассчитывал.
Открываем мануал на любой из модулей (например - ET-7026):
https://insat.ru/products/icpdas/PET...ET-7026_RE.pdf
Термин "UDP" в нем встречается 10 раз (1 раз - в оглавлении) и нигде не соседствует с "Modbus".
Если прочитать чуть внимательнее - то окажется, что по UDP (не Modbus UDP, а по какому-то сервисному "протоколу" поверх UDP) происходит обновление прошивки модуля:
26-03-2023 8-51-16.png
26-03-2023 8-57-01.png
Не очень-то и "легко" получилось, верно?
Последний раз редактировалось Евгений Кислов; 26.03.2023 в 09:11.
СODESYS V3.5: Repository Archive V3.5 SP4 (необходим для старых СПК) / Раздел CDS V3.5 на сайте
Форум: Вопросы и ответы / Визуализация / Настройка обмена с другими устройствами
Web-панель ВП110 / Modbus-индикатор СМИ2-М
Telegram: @JuneSmellsLikeBlood | e-mail: e.kislov@owen.ru | oscat.ru | Как обратиться в техподдержку?
Как отлаживать ошибки | Отладка проектов в CODESYS V3.5 | XY problem | Как правильно задавать вопросы | AnyDesk
Открываем произвольно выбранный даташит и читаем:
Был бы мне доступен один из модулей для проверки - можно было бы более аргументированно. А так - приходится верить даташитам.Protocol Modbus TCP, Modbus UDP
СODESYS V3.5: Repository Archive V3.5 SP4 (необходим для старых СПК) / Раздел CDS V3.5 на сайте
Форум: Вопросы и ответы / Визуализация / Настройка обмена с другими устройствами
Web-панель ВП110 / Modbus-индикатор СМИ2-М
Telegram: @JuneSmellsLikeBlood | e-mail: e.kislov@owen.ru | oscat.ru | Как обратиться в техподдержку?
Как отлаживать ошибки | Отладка проектов в CODESYS V3.5 | XY problem | Как правильно задавать вопросы | AnyDesk
Если честно, я не понимаю тех, кто это разработал.... Завернуть TCP в UDP не составляет особого труда для сетевого оборудования вроде.
А что происходит тут?, к Modbus TCP необходимо добавить снова CRC как в RTU чтобы проверять пакеты протокола?
перевод
ну и смысл велосипеда?В этом вся прелесть, по сути, мы ничего не изменили в спецификации прикладного уровня Modbus (и TCP), кроме способа передачи сообщений.
Это означает, что специфичный для IP заголовок (называемый MBAP в спецификации) точно такой же, как и для Modbus/TCP. Он имеет длину 7 байт и состоит из следующих полей:
идентификатор вызова (2 байта), используемый для сопряжения транзакций; ранее называвшийся идентификатором транзакции идентификатор
протокола (2 байта), по умолчанию равен 0 для Modbus; зарезервирован для будущих расширений
длина (2 байта), количество байтов всех следующих байтов
идентификатор единицы измерения (1 байт), используемый для идентификации удаленное устройство, расположенное в сети, отличной от TCP/IP
Также ничего не изменилось в отношении возможных сетевых настроек. На самом деле они не соответствуют спецификации; возможно настроить системы с несколькими ведущими или реализовать двунаправленную связь (т.е. иметь узлы, которые являются ведущими и ведомыми одновременно). Однако пользователь должен хорошо осознавать, что это влечет за собой последствия
Последний раз редактировалось melky; 25.03.2023 в 17:58.
Мсье знает толк. В извращениях.
В Вашем изложении - никакого.
А так, в своей практике я единственный раз сталкивался с ситуацией, когда пришлось перейти с tcp на udp. Правда, тот случай никакого отношения к modbus tcp/udp не имеет. Просто китайский конвертер последовательного порта по необъяснимым для меня причинам отказался работать по tcp.
Последний раз редактировалось imaex; 26.03.2023 в 08:51.
По логике "Великих Автоматизаторов" основная проблема ModBus TCP - это время установления коннекта. И если его "убрать" сразу всё заколосится и полетит со сверхсветовой скоростью.
Но, если в ModBusTCP есть логичная и понятная система запрос-ответ с приходом пакетов по порядку, то в ModBusUDP кинул зёрна в поле - авось взойдут. Т.е. если мастер посылает пакет Slave для управления выходами - еще худо-бедно пакет дойдёт (пусть и не первый, но у нас же скорость, пулемёт дострелит) и выход включится. На пустой сети включится быстро.
А вот если мастер посмел запросить состояние входа - то тут будет ли ответ, когда, и самое главное на какой запрос - тайна великая.
Ведь у Модбаса в ответе нет номера регистра и можно лишь гадать ответ на какой запрос пришёл по UDP.
Кстати эта проблема с приходом ответов не по порядку есть и у RTU модбаса - если Slave отвечает медленнее чем период ожидания ответа мастером - то есть большая вероятность что мастер спросит уже другое, а тут свежезапоздавший зомби-пакет, получите-распишитесь. И мастер никак его не отличит.
Парни, понимая что получается лажа взяли идентификатор транзакции и типо по нему будет сортировка. Так себе решение, сильно усложняющее мастер и совсем не гарантирующее хоть какие нибудь тайминги в загруженной сети.
Последний раз редактировалось Филоненко Владислав; 26.03.2023 в 17:36.
Тролль-наседка, добрый, нежный и ласковый