2016-04-05 11 views
0

私は、さまざまな要素について、modbusデバイス(Powerscout 24)から異なる値を読み取る方法を理解しようとしています。 ELEMENTModbus-TCPとは異なる要素を読む

PowerScout 24は、8つの要素を持っているアドレッシング

を言うどのhereマニュアルがあります。 ModbusとBACnetはそれぞれ を使ってPS24上の要素を指定する方法が異なります。 Modbusモードでは、 10進数のネットワークスイッチがメータリングエレメント "A"のベースアドレスを設定します。 "B"から "H"までのメータリングエレメントは常に以前のエレメントより1つ高いModbus アドレスを持ちます。例えば、 のロータリアドレススイッチが001に設定されている場合、計量要素 "A" のレジスタ値はModbusアドレス001、要素 "B" にアクセスされ、Modbusアドレス002、要素 "C"には 003番地などを指定します。

だから、私の理解から、私は要素Bを読みたいと思った場合、私は4012

で保持レジスタを読みになる要素A(またはスレーブ1)上のレジスタ4012の値を読みたい場合、登録簿は4013ですか?しかし、どうすればいいのでしょうか?4013は、Displacement PF Systemという別の値に使われています。私はこれをテストしてみた、それが唯一の要素A(スレーブ1)のためのレジスタを読むことができるという意味で働くEasyModbusTCP

ModbusClient modbusClient = new ModbusClient("192.168.1.250", 502); //Ip-Address and Port of Modbus-TCP-Server 
modbusClient.Connect();              
int[] readHoldingRegisters = modbusClient.ReadHoldingRegisters(4000,1); 
//Read 10 Holding Registers from Server, starting with Address 1 

このライブラリを使用してみました

を(65ページの一番上を確認してください) 。私は他の要素のためのレジスタの読み方を理解することはできませんでした。

ライブラリの他の部分(RTU - シリアルポートからの読み取り)を調べましたが、これは読み込み先のスレーブを定義していますが、この方法では実装できないので、

誰もがTCP経由でさまざまな要素を読み取る方法を説明できますか?

答えて

0

私は特定の要素(奴隷)を読むための解決策を見つけました。簡単なmodbustcpから、modbusクライアントのUnitIdentifierを変更することができます。

modbusClient.UnitIdentifier = 3; 

これにより、3番目の要素から読み込まれたmodbusクライアントへの読み取りが行われます。

関連する問題