在我问之前,我只想提一下,我已经花了几天时间研究这个,似乎无法找到解决这个基本问题的方法。我已经阅读了文档并花时间在这里。否则我不会问。
我继承了一个庞大的单体 python 程序,它成功地使用 pymodbus + 读取保持寄存器read_holding_registers
。我以前花时间编辑 python,但从未真正学会它。为了尝试在 python 方面理解这一点,我尝试从头开始编写自己的基本程序。我从大开始,最终将代码分解为尽可能简单。
from pymodbus.client.sync import ModbusTcpClient as ModbusClient
client = ModbusClient('192.168.1.98', port=502)
client.connect()
rr = client.read_holding_registers(10904, 2)
print rr
client.close()
我知道这是我想要的寄存器。它是霍纳 PLC 上的一个保持寄存器。它在 python 程序和 Horner CSCAPE 中都有详细记录。但是每当我运行程序时,它只会打印我在元组的第二项中输入的任何值。所以在这里,它只会打印2
. 如果我提供它的一个元组(10905, 1)
只是打印1
. 寄存器位的真实值应该是0
。
我会发布庞大的程序,但不幸的是它是私人的。这是python2.7。我知道这很糟糕,但我只想在担心将其移植到 3.9 之前了解该程序。