Как записать в регистры хранения в pymodbus? - PullRequest
0 голосов
/ 21 января 2020

Я хочу записать в регистры хранения мой исполнительный механизм, но я только недавно начал использовать pymodbus, и я немного не уверен относительно некоторых его команд. Насколько я понимаю, основная команда записи выглядит так:

write_register (address, value, ** kwargs)

Но я не уверен в том, как "определить", какого рода о регистре я тоже пишу. В отличие от других библиотек modbus, которые я использовал, в pymodbus я не могу определить, какой тип регистра я тоже пишу. Насколько я понимаю, по Modbus есть катушки, входные регистры и регистры хранения. Я читал, что вы не можете писать во входные регистры, но как я могу быть уверен, что я пишу в регистры хранения? Если я напишу 1 в адресе в write_register, будет ли это всегда регистр хранения с этим адресом?

Заранее спасибо.

1 Ответ

0 голосов
/ 09 марта 2020

Вам нужно знать немного больше о вашем приводе. У вас есть данные об этом? Если да, вам нужно найти карту регистров, где все адреса даны для регистров, где хранятся данные привода. Вот пример, где вы можете найти этот тип карты регистров: SIMEAS Pxxx Com-Modbus Datasheet .

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

Поэтому, если вам нужно что-то записать в конкретный регистр, вам нужен правильный адрес регистра, значение, которое вы хотите записать в правильном формате, и клиент библиотеки ModbusClient .

У вас должно быть что-то вроде этого:

client = ModbusClient(host='YOUR_IP_ADRESS', port=xxx)
client.connect()
client.write_register(REGISTER_ADRESS, PAYLOAD, UNIT)

Надеюсь, это немного поможет. Вы также можете go продолжить, прочитав документацию Pymodbus .

...