Косяк при чтении Long по Modbus-у?
Наблюдаю странное.
Читаю переменную типа Long (32бита) из устройства.
Запрос на чтение от сегнетикса SMH 2Gi:
01 04 00 1С 00 02 B0 0D
(Читаем устройство 01 ф-ция 4, два 16-битных слова начиная с адреса 001Chex).
Ответ от устройства:
01 04 04 00 0С 00 00 3B 87
(значение регистра - 0000000Сhex/12dec)
Контроллер "успешно" выдаёт ошибку чтения. Т.е. ответ ему не нравится.
Подключаю устройство к виртуальной Master-машине Modbus на компе - всё нормально.
Более того: генерирую ответ виртуальным Slave-устройством - ответ такой же! И он тоже не распознаётся сегнетиксом.
Регистры другого типа (float, 16bit int) - читаются нормально (т.е. с сетью и портами проблем нет).
В чём прикол?
|