在 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)
PyModbus write_coil 函数返回值解析及示例

原文地址: https://www.cveoy.top/t/topic/ndGF 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录