【问题标题】:Pymodbus and async serial clientPymodbus 和异步串行客户端
【发布时间】:2018-03-19 15:44:47
【问题描述】:

我正在尝试读/写一些寄存器到一些 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 获得用于读取/写入寄存器的语法,或者对另一个工作库提出建议,只要它可以在带有 tty、Python 3.x 和 Twisted 的 Linux 上工作。

【问题讨论】:

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


    【解决方案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()
    

    【讨论】:

    • 是的,它工作正常,没那么难。我仍然希望 Twisted 能够实现一个适当的串行端点……该分支上的工作似乎停滞不前。谢谢!
    猜你喜欢
    • 2015-01-26
    • 1970-01-01
    • 2019-01-25
    • 1970-01-01
    • 2017-12-15
    • 2017-08-30
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多