У меня проблема, когда я пытаюсь прочитать регистры хранения с помощью pymodbus и raspberry pi. Кажется, я не могу подключить два сервера / подчиненных одновременно (один или другой будет работать, но вместе я не могу читать регистры с обоих устройств). Эти проблемы с подключением, кажется, вызывают сообщения об ошибках. Может, мне здесь чего-то простого не хватает?
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()
Вот сообщение об ошибке, которое я получаю:
[18, 57, 48, 984, 31, 1, 16, 1, 2, 78, 87, 4, 4, 0, 299, 65517, 8, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]
Traceback (most recent call last):
File "gpsonce", line 20, in <module>
request2 = client2.read_holding_registers(1,7) #covert to float
File "/usr/local/lib/python2.7/dist-packages/pymodbus-1.2.0-py2.7.egg/pymodbus/client/common.py", line 109, in read_holding_registers
return self.execute(request)
File "/usr/local/lib/python2.7/dist-packages/pymodbus-1.2.0-py2.7.egg/pymodbus/client/sync.py", line 82, in execute
raise ConnectionException("Failed to connect[%s]" % (self.__str__()))
pymodbus.exceptions.ConnectionException: Modbus Error: [Connection] Failed to connect[192.168.1.8:502]
Я знаю, что если я разбиваю их на разные сценарии и запускаю их одновременно, возникнет та же ошибка.
Независимо, как и при выполнении по одному, они выполняются правильно, без ошибок.
Мы очень ценим помощь каждого!
telnet 192.168.1.8 502
- person J.J. Hakala   schedule 31.01.2016localhost
(ПК с Windows 7). Один сервер прослушивает порт5020
, другой -5021
. Вы уверены, что правильно настроили порты? Потому что в примерах pymodbus настроенный порт по умолчанию на сервере -5020
, а на клиенте -502
. - person wewa   schedule 01.02.2016