希望你做得很好!我最近开始使用python进行modbus通信。我想澄清一些疑问。
使用pymodbus3模块时,我能够使用以下代码编写线圈:
import pymodbus3
import serial
from pymodbus3.pdu import ModbusRequest
from pymodbus3.client.sync import ModbusSerialClient as ModbusClient
from pymodbus3.transaction import ModbusRtuFramer
from serial.tools.list_ports import comports
client = ModbusClient(method = "rtu", port = 'COM4',stopbits = 1, bytesize = 8, parity = 'N', baudrate= 19200)
connection = client.connect()
client.write_coil(1000, 1, unit = 0x01)
用于读取线圈状态(功能0x01):
result = client.read_coils(1000,1)
print(result)
client.close()
它返回无。
或写入注册和阅读也无效:
client.write_register(0, 1000, unit=0x01)
resu= client.read_holding_registers(0, 1, unit=0x01)
print(resu)
client.close()
欢迎积极响应!
答案 0 :(得分:7)
这是一个相当陈旧的问题,但我想把这些信息放在那里,这样可以减少混淆。
pymodbus3
是pymodbus
的一个分支,用于在pymodbus
之前支持python3。 pymodbus
现在完全支持python3,pymodbus3
不再维护,并且不具备原始版本的所有最新版本。