Pymodbus和异步串行客户端

时间:2018-03-19 15:44:48

标签: python python-3.x asynchronous twisted pymodbus

我试图将一些寄存器读/写到某些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。

1 个答案:

答案 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()