Пожалуйста, рассмотрите возможность добавить поддержку 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
Если честно, я не понимаю тех, кто это разработал.... Завернуть 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.
Да легко:
https://icp-das.ru/collections/io-mo...dbus+UDP+Slave
Единственное, что я не совсем понимаю - зачем модулю в/в нужно быть мастером?
Мсье знает толк. В извращениях.
В Вашем изложении - никакого.
А так, в своей практике я единственный раз сталкивался с ситуацией, когда пришлось перейти с tcp на udp. Правда, тот случай никакого отношения к modbus tcp/udp не имеет. Просто китайский конвертер последовательного порта по необъяснимым для меня причинам отказался работать по tcp.
Последний раз редактировалось imaex; 26.03.2023 в 08:51.
я в вейнтековской панели всегда ставлю галку передавать по UDP, когда работаю с протоколом modbusTCP
Bad programmers worry about the code. Good programmers worry about data structures and their relationships
среди успешных людей я не встречала нытиков
Барбара Коркоран
Очень показательный пример - на него я и рассчитывал.
Открываем мануал на любой из модулей (например - 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
imaex ну давайте сначала. Одно из различий Modbus TCP от RTU заключается в том, что из пакета Modbus убрали CRC, возложив это на TCP стек, то есть устройство, принимая TCP пакет уже знает, что пакет битый или не битый и уже нет необходимости проверять пакет непосредственно Modbus протокола.
в UDP нет контрольных сумм насколько помню. То есть изобретая протокол Modbus UDP потребуется вернуть обратно CRC протокола, чтобы устройство точно знало, что пакет не битый...
И тем самым все сведется на нет...
Хотя вроде какой-то базовый функционал проверки целостности есть... Вот что будет делать устройство, если получит неполный пакет?
Последний раз редактировалось melky; 26.03.2023 в 09:13.