多个服务器pymodbus连接问题Modbus TCP

时间:2016-01-31 19:06:21

标签: python modbus modbus-tcp

当我尝试使用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()

我知道如果我将它们分解为不同的脚本并同时运行它们,则会发生同样的错误。

独立地,如同一次运行一样,这些执行正确,没有错误。

非常感谢大家的帮助!

1 个答案:

答案 0 :(得分:0)

我在电脑上尝试过没有任何问题。你确实有不需要的行:

connection1 = client1.connect()
..
connection2 = client2.connect()

也许这就是问题...