Pymodbus 和异步串行客户端

Pymodbus and async serial client

我正在尝试 read/write 一些寄存器到一些 modbus 设备。我的软件使用 Python 3.4 和 Twisted,所以我想要一个与此类堆栈集成并允许异步通信的库。

我正在尝试使用 pymodbus 来实现 modbus 串行客户端,但是该库似乎不再提供 ModbusSerialClient 了?

以下代码:

from pymodbus.client.async import ModbusSerialClient as ModbusClient

将在 Python 3.4 和 pymodbus 1.4.0 上引发 ImportError。

标准示例将 ModbusClient 与 connectTCP 结合使用,但 Twisted 尚不提供串行端点。

我看到有一个 StartSerialServer,但我不清楚是否可以使用它以及如何使用它。

我想通过 pymodbus 获取 reading/writing 寄存器的语法,或者对另一个工作库有建议,只要它在 Linux 上使用 tty,Python 3.x 和 Twisted.

您可以像这样使用 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()