пять лет прошло, а грабли как новые.
попался мне плк 73 c платкой модбаса,
залил тестовый проект в него Modbus чтение INT и REAL (ST),
и к этому же компу через usb-rs485 модбас от контроллера пробросил, софт MasterOPCUniversal включил и смотрю.
Ага, переключил в коде на MB_RTU , т.к. в MasterOPCUniversal так по умолчанию.
забил цифры в регистры с 8 по 14 (как в примере) в slave устройстве на софте MasterOPCUniversal
INT нормально считывает, REAL байты только переставил и все норм тоже.
А считывание трех INT подряд - нули. что то не так....
настроил цикл задачи на 500ms и увидел что код ошибки 255 прилетает как раз в тот момент как прошло завершение чтения.
таким образом ничего в результат не попадает.
вот в поиске и нашел эту ветку.
уменьшив в запросе количество байт до 4х - ошибка пропадает, ставишь больше появляется.
собственно вопрос тот же (
как не наступить на грабли ?) как работать с modbus.lib?
не совсем ясна фраза "Не надо формировать буфер на запись в каждом цикле" ? хотя чувствую что в ней зарыт смысл...
где посмотреть подробнее?
PS. не хочется лезть в библиотеку, благо можно открыть либу текстовым редактором и скопипастить это чудо и покопаться.
Не попадись мне контроллер для опытов just for fun так сказать, не купил бы. А ведь цена на него стоит сейчас в 30 тысяч!
(хоть и снят с производства) и при этом к нему бубен не прилагается!