PDA

Просмотр полной версии : СПК107 как Modbus Serial Device(SLAVE)



Andres K
12.10.2016, 23:00
Здравствуйте.

Я понимаю их смысл работы когда используешь эти канал с внешнего модбас Мастера используя функциональные коды 03/16(READ/WRITE) и 04(only READ).

Возник вопрос насчет Holding Registers(%IW) и Input Registers(%QW) на самом носителе Slave.
На сколько я знаю, то у меня должна быть возможность манипулировать с обеими Holding так и Input регистрами READ/WRITE. Но на деле я могу это делать только с Input регистрами.
Что касаеться Holding регистров, то их я могу только читать и по какой-то причине не могу их изменять. Поправьте меня, если не прав.
http://i.imgur.com/fPgPGeP.png

Евгений Кислов
13.10.2016, 08:14
Все верно - в CODESYS нельзя изменять значения holding регистров из программы слэйва.

Кстати, записывать в Input регистры тоже нельзя - это определено стандартом Modbus.

Вообще, в большинстве случаев лучше не использовать адресацию через %, а просто привязать к регистрам слэйва переменные и работать в программе уже с ними.

slonegd
13.10.2016, 08:46
Прав, и об этом написано в документе modbus, который прикреплен в теме выше.
Фактически скажу, что Holding Registers я менял внутри программы слейва, но там такие глюки выходят, что не стоит этого делать.