Обратил внимание, что в моих проектах при настройке UMD для внешнего модуля МВ110-16ДН параметр Command стоит значение Read holding Registers (0х03). Все работает хорошо. Наверно, это значение было выставлено по умолчанию. Но там же имеется и другой параметр для способа опроса - read input registers (0х04). Подскажите, какой правильнее выбрать параметр? В интернете много разночтения по данным регистрам. Возможно уже кто-то задавал подобный вопрос, но я не знаю, как сделать запрос в данном форуме для поиска ответа.
vsa Это разные команды протокола Modbus.
Некоторые устройства поддерживают разные команды, а некоторые - оба варианта.
То есть, это не так, что "0x04 лучше чем 0x03" - а прям разные.
Чтобы точно научиться и узнатть на будущее, какие команды поддерживаются - надо найти инструкцию к устройствам.
Пишите код так, как будто сопровождать его будет склонный к насилию психопат, который знает, где вы живёте. © Steve McConnell
Мой рабочий блог со статьями про щиты и автоматику ОВЕН - Cs-Cs.Net | Почта: Info@Cs-Cs.Net | Канал в ТГ @CsCsNetLab
Мало того, на некоторых устройствах используя один и тот-же адрес регистра, но различные функции чтения - можно получить разные значения
Не надо мудрить и ломать голову, открываете руководство и читаете 1 Модуль МВ110-16ДН.jpg скрин для нового модуля МВ110-16ДН H/W 2.0
Спасибо, что заострили на этом внимание. Вот с этим я сегодня столкнулся при изучении программирования выпрямителя Flex Kraft. Благо под рукой было несколько web-платформ ИИ. Часа два я пытался получить вразумительный ответ - как мне использовать одинаковые адреса регистров выпрямителя для разного назначения в программе ПЛК110-60 при управлении по Modbus? Вот фрагмент ответа DeepSeek:
"Для 30006 (Input Register) → FUNCTION=4, ADDR=5.
Для 40006 (Holding Register) → FUNCTION=3, ADDR=5.
Не путайте функции (04 vs 03), даже если адрес в CoDeSys одинаковый!"
У меня в проекте как раз подобная ситуация будет. Мне предстоит через регистр 5 (40006) записывать ток в выпрямитель, а из регистра 5 (30006) читать фактическое значение тока при нагрузке. Теперь мне понятно, как я должен настраивать регистры в UMD выпрямителя.
я новичок в подключении устройств по протоколу MODBUS. Необходимо получить данные от контроллера Logik33 S. Пробовал подключать к RS 232, RS 485 нет ответа на запросы от Lectusa. Таймауты (300-10000) и межбайтовый интервал (4-20) менял - не помогло. Качество связи показывает хорошее, но ответа по логам нет. Как должен быть настроен Lectus (Master/Slave)? Логи прилогаю.