0

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

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

以下代码:

from pymodbus.client.async import ModbusSerialClient as ModbusClient

将使用 pymodbus 1.4.0 在 Python 3.4 上引发 ImportError。

标准示例使用 ModbusClient 和 connectTCP,但 Twisted 还没有提供串行端点。

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

我想通过 pymodbus 获得用于读/写寄存器的语法,或者对另一个工作库提出建议,只要它可以在带有 tty、Python 3.x 和 Twisted 的 Linux 上工作。

4

1 回答 1

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()
于 2018-03-20T10:59:29.900 回答