PyModbus write_coil 函数返回值解析及示例
在 PyModbus 中,write_coil 函数用于向 Modbus 从机写入单个线圈的值。该函数将返回一个包含以下值的 Response 对象:
- Function code:写入线圈功能码(0x05)。
- Address:写入的线圈地址。
- Value:写入线圈的值(True 或 False)。
如果写入成功,Response 对象的 isError 属性将为 False,否则为 True。如果 isError 为 True,Response 对象的 exceptionCode 属性将包含 Modbus 从机返回的异常代码。
以下是一个使用 write_coil 函数并解析返回值的示例:
from pymodbus.client.sync import ModbusTcpClient
# connect to Modbus TCP server
client = ModbusTcpClient('localhost', port=502)
client.connect()
# write a coil value
address = 0x0001
value = True
response = client.write_coil(address, value)
# parse the response
if response.isError():
print('Error: ' + str(response))
else:
print('Write success:')
print('Function code: ' + str(response.function_code))
print('Address: ' + str(response.address))
print('Value: ' + str(response.value))
# close the connection
client.close()
在上面的示例中,如果写入成功,将打印以下内容:
Write success:
Function code: 5
Address: 1
Value: True
如果写入失败,将打印类似以下内容的错误消息:
Error: Modbus Error: [Input/Output] Modbus Error: [Invalid Message] Incomplete message received, expected at least 8 bytes (0 received)
原文地址: https://www.cveoy.top/t/topic/ndGF 著作权归作者所有。请勿转载和采集!