我试图将一些寄存器读/写到某些modbus设备上。我的软件使用Python 3.4和Twisted,所以我想要一个与这种堆栈集成的库,并允许异步通信。
我试图使用pymodbus来实现一个modbus串行客户端,但该库似乎不再提供ModbusSerialClient了?
以下代码:
from pymodbus.client.async import ModbusSerialClient as ModbusClient
使用pymodbus 1.4.0在Python 3.4上引发ImportError。
标准示例使用带有connectTCP的ModbusClient,但Twisted还没有提供串行端点。
我已经看到它有一个StartSerialServer,但是我不清楚我是否以及如何使用它。
我想要通过pymodbus获取读/写寄存器的语法,或者建议使用另一个工作库,只要它在Linux上运行tty,Python 3.x和Twisted。
答案 0 :(得分:1)
您可以使用Twisted连接到串口:
from twisted.internet.serialport import SerialPort
from twisted.internet import reactor
port = SerialPort(protocol, deviceName, reactor)
pymodbus提供modbus协议。所以在上面,protocol
应该是:
from pymodbus.client.async import ModbusClientProtocol
protocol = ModbusClientProtocol()