Я работал с простой программой, используя библиотеку pymodbus в python. Это пример программы, которую я нашел в документации библиотеки. Код выглядит следующим образомPymodbus - Простая программа
from pymodbus.client.sync import ModbusTcpClient
client = ModbusTcpClient('192.168.10.3')
client.write_coil(410001, False)
result = client.read_coils(410001,1,unit=1)
print result.bits[0]
client.close()
Я получаю ошибку
Traceback (most recent call last):
File "start_2407.py", line 4, in <module>
client.write_coil(410001, False)
File "build\bdist.win-amd64\egg\pymodbus\client\common.py", line 61, in write_coil
File "build\bdist.win-amd64\egg\pymodbus\client\sync.py", line 131, in execute
File "build\bdist.win-amd64\egg\pymodbus\client\sync.py", line 46, in execute
File "build\bdist.win-amd64\egg\pymodbus\transaction.py", line 243, in buildPacket
File "build\bdist.win-amd64\egg\pymodbus\bit_write_message.py", line 58, in encode
struct.error: 'H' format requires 0 <= number <= 65535
необходимо предоставить место адреса в шестнадцатеричном Do? Я тоже пробовал это, но результат не соответствует тому, что я получаю от Modscan2.
Вы отслеживаете, что вы пытаетесь написать адрес 410001 вместо 10001. Это опечатка? – Vincent
да простите, я пытаюсь написать 410001 – apoorvasomani