Тема: Modbus опрос
Показать сообщение отдельно
Старый 11.05.2018, 14:05   #4
chaos1727
Senior Member
 
Регистрация: Jan 2015
Сообщения: 116
Благодарил(а): 2 раз(а)
Поблагодарили: 2 раз(а) в 1 сообщении
По умолчанию Ответ: Modbus опрос

Уважаемые LordN и Arsie, "поиграл" с Rin и Rout ничего не вышло (.
Еще раз покопался в хелпе лоджика никак не пойму реализации с обращением к определенным переменным(регистрам).

мое понимание организации регистров

1-9999 ReadCoil функция 0х01
10001-19999 DiscreteInput функция 0х02
30001-39999 Input Register функция 0х04
40001-49999 Holding Register функция 0х03

В утилите CAS Modbus Scanner я напрямую задавал область памяти ( Arsie считает что слово адрес здесь не применимо) 40021 и считывал данные.

В ОРС не задается область памяти 40021, там я выставлял ее выбирая HOLDING REGISTER, а дальше задавал смещение(offset) в моем случае 20. Итого 40001+20=40021 и данные получал.

В хелпе лоджика написано, что функцию 0х03 выполняет R(out) и R/Wout
задал им смещение 20,21,22, но результат нулевой. Как всегда смотрю в книгу фижу фигу. Не понимаю как лоджик запрашивает регистры в режиме мастера. В режиме слэйва вообще все просто особенно если выставляешь старый тип адресации.
chaos1727 вне форума   Ответить с цитированием