Показать сообщение отдельно
Старый 11.10.2016, 00:03   #1
Lexman
Новичок
 
Регистрация: Oct 2016
Сообщения: 1
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
По умолчанию Косяк при чтении 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) - читаются нормально (т.е. с сетью и портами проблем нет).

В чём прикол?
Lexman вне форума   Ответить с цитированием