2014-12-28 2 views
0

Я подключаю устройство по протоколу Modbus.Запись одного бита в Modbus

Имеются команды для чтения и записи регистров (регистр = 2 байта).

Однако часто регистр содержит несколько флагов конфигурации как биты, и мне нужно написать только один из них или около того.

Я могу прочитать его, изменить флаг и записать его обратно, но так ли это?

Я видел несколько команд для написания катушек, но я не совсем уверен, что такое катушка - это немного? Если да, то как получить адрес катушки?

+0

Возможно, вам захочется узнать электронику и узнать о том, какое оборудование вы должны контролировать. –

+0

@JoachimPileborg У меня есть техническое описание, но это очень запутанно, переводится с китайского, я думаю. Не уверен, что заставляет вас думать, что я должен научиться электронике? Я сомневаюсь, что «катушка» означает «индуктор» в этом контексте, это просто реликт, когда все было сделано с использованием реле. – MightyPork

ответ

1

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

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

Катушки являются одной из четырех областей данных в Modbus (регистры хранения, входные регистры, катушки, дискретные входы), и да, они являются логическими/битными, но это не имеет большого значения, если значения, которые вы предполагаете для чтения/записи сохраняются как биты в регистре.

Смежные вопросы