PDA

Просмотр полной версии : Не получается прочитать состояние выходов МУ-110Р



asumarine
20.09.2012, 13:42
Здравствуйте!
Возникли сложности с чтением состояния выходов МУ-110Р.
Обмен ведется по MODBUS. С записью проблем нет, а вот считать состояние выходов не получается.

Пример: Попытка прочитать состояние выходов модуля с адресом 10 (все в hex):
10 03 00 32 00 02 66 85
Ответ модуля:
10 83 02 90 F4
Данное сообщение никак не меняется, вне зависимости от того, что было записано ранее в МУ-110.
В ответе код функции возвращается 83, что в спецификации MODBUS соответствует ILLEGAL FUNCTION. С чего бы это? Вроде бы в РЭ на МУ-110 после таблицы описания регистров указано:
”Запись в регистры осуществляется командой 16 (0х10), чтение – командами 03 или 04
(прибор поддерживает обе команды).” В чем ошибка? Заранее спасибо.

Рабиндранат
20.09.2012, 15:32
А чем опрашиваете?

asumarine
20.09.2012, 15:55
Компьютер через USB->RS485 и радиомодем. Траффик смотрю Portmon-ом. Но я думаю это все в данном случаи особой роли не играет.

capzap
20.09.2012, 17:16
Пример: Попытка прочитать состояние выходов модуля с адресом 10 (все в hex):
10 03 00 32 00 02 66 85
Ответ модуля:
10 83 02 90 F4


если быть точным, то ошибка у Вас: "Адрес данных, указанный в запросе, не доступен данному подчиненному"
посмотрите, случайно адрес модулю не установили не в той системе исчисления

Валенок
20.09.2012, 18:20
Адрес - тот. Раз отвечает. Какой МУ ? 2 регистра ни с 8 ни с 16 нету. А с 32 - воще регистры другие.
10 03 00 32 00 02 66 85

capzap
20.09.2012, 18:26
виноват, конечно же речь о данных, а не об адресе :)

asumarine
20.09.2012, 19:15
Адрес - тот. Раз отвечает. Какой МУ ? 2 регистра ни с 8 ни с 16 нету. А с 32 - воще регистры другие.
10 03 00 32 00 02 66 85
МУ-110-16Р
Если верить вот этому описанию MODBUS http://www.project-p.ru/files/article/modbus.pdf (стр.19) то 5 и 6 по счету байт это старший и младший байт числа регистров для чтения. Я хочу прочитать 2 регистра, поэтому и ставлю двойку. Номер читаемого регистра- 0х32 "Битовая маска значений выходов" стр.43 РЭ на модуль.

asumarine
20.09.2012, 19:19
ЭЭ.. Кажется сам начинаю соображать. Регистры то 16 разрядные, а не 8, и надо читать соответственно один регистр, а не два. Завтра с утречка попробую.