2016-09-09 13 views
0

enter image description here私は、Pagoodusを使用してWago 750-881 PLCのレジスタを読み取ります。また、Modbus PollユーティリティとHMIの同じレジスタを読んでいます。 Modbus PollとHMIは正しく読み込みますが、pymodbusプログラムは正しく読み込まれていません。ここpymodbusを使用してPLCを読み取るときに予期しない番号

コードである:ここ

from pymodbus.client.sync import ModbusTcpClient 

c = ModbusTcpClient(host="192.168.1.20") 
chk = c.read_holding_registers(257, 1, unit = 1) 
response = c.execute(chk)   
print response.getRegister(0) 

は、コードを実行からの応答である:

>>> runfile('C:/Users/Mike/modbustest2.py', wdir='C:/Users/Mike') 
18283 

正しい出力は2043でなければならないまた、上に同じ番号「18283」を読み出し他のレジスタ。私は他のプログラム/デバイスからレジスタを読むことができるので、問題がコード関連でなければならないことを知っています。どんな助けもありがとうございます。

答えて

0

間違ったレジスタ、または間違ったユニットID、またはその両方の組み合わせを読み込んでいる可能性があります。

Wiresharkを使用して、サードパーティのソフトウェアと自分のソフトウェアが何をしているのかを把握すると、その差をかなり早く見つけられるはずです。

+0

私はModbus Pollの写真を追加しました。 –

+0

このアドレスから+/- 1を読んだり、257の代わりに40257を読もうとしましたか?あなたが使用しているModbus Pollユーティリティに慣れていないので、実際に何をしているのか、あなたのPythonコードが何をしているのかは確信できません。 Wiresharkが理想的だろう。 –

+0

@mikec。あなたはこれを理解したことがありますか? –

関連する問題