当我尝试使用pymodbus和raspberry pi读取保存寄存器时,我遇到了问题。我似乎无法同时连接两个服务器/从服务器(一个或另一个将工作,但在一起,我无法从两个设备读取寄存器)。这些连接问题似乎导致错误消息。也许有一些简单的我在这里失踪了?
<div ng-repeat="(questionId, question) in questions.answers">
<label>
<input type="radio" ng-model="selectedValue.answerId" value="{{ questionId }}"> {{ question.answer }}
<span style="color:green;" ng-show="questionId === selectedValue.answerId && questions.answers[selectedValue.answerId].right === true"> Right answer!!! </span>
<span style="color:red;" ng-show="questionId === selectedValue.answerId && questions.answers[selectedValue.answerId].right !== true"> Wrong answer!!! </span>
<br/>
</label>
</div>
以下是我收到的错误消息:
from pymodbus.client.sync import ModbusTcpClient
import time
#modbus connection to 1st device
client1 = ModbusTcpClient('172.168.1.9', port=659)
connection1 = client1.connect()
#modbus connection to 2nd device
client2 = ModbusTcpClient('192.168.1.8', port=502)
connection2 = client2.connect()
#read registers of 1st device
request1 = client1.read_holding_registers(11,27) #covert to float
result1 = request1.registers
print (result1)
close = client1.close()
#read registers of 2nd device
request2 = client2.read_holding_registers(1,7) #covert to float
result2 = request2.registers
print (result2)
close = client2.close()
我知道如果我将它们分解为不同的脚本并同时运行它们,则会发生同样的错误。
独立地,如同一次运行一样,这些执行正确,没有错误。
非常感谢大家的帮助!
答案 0 :(得分:0)
我在电脑上尝试过没有任何问题。你确实有不需要的行:
connection1 = client1.connect()
..
connection2 = client2.connect()
也许这就是问题...