2012-04-26 16 views
1

私は2つのSCADAシステムでデータを交換しています。私は両方のシステムがこのプロトコルをサポートしているので、tcpよりもmodbusを使うことを目指しています。もちろん、両方のシステムがモードバスマスタとしてしか機能しないという問題はあります。SCADAシステムでは、Modbusマスターを別のマスターと話す方法はありますか?

すべてのフィールドバスオープンソースを使って、2人のマスターがお互いに話すようにする「ブリッジ」ユーティリティはなかったことに驚きました。私は技術に精通しているわけではありませんが、外部からは2つのポートを開き、2つの別々のマスターの奴隷として機能するプロセスを実装することは自明のようです。

両方のマスタが仲介をスレーブとして認識しますが、Master1のPOVからの入力レジスタはMaster2のPOVからの出力レジスタであり、その逆もあります。

概念的にもプロトコル的にも、問題があると示唆されるものはありますか?

答えて

4

両方のSCADAシステムが同じPLCにアクセスできる場合は、SCADA1を使用してそのPLCのデータブロックにデータを書き込み、SCADA2を使用して同じデータを読み取ります。もう1つの選択肢は、簡単なMODBUS TCPサーバをいくつかの高級言語で実装し、それを両方のSCADAシステムがアクセスできるいくつかのPCに置くことです。あるいは、MODBUS TCPサーバシミュレータを独自に実装する代わりに実行することもできます。

SCADAシステムは、組み込みではない非常に親切なサポートオプションであるため、SCADA内部にMODBUS TCPサーバーを構築することは、使用しているSCADAシステムに応じて、非常に難しいものから不可能なものです。ほとんどのSCADAシステムは、OPCクライアント(さまざまなOPCデータソースからのデータへのアクセス)とOPCサーバー(OPCクライアントにすべてのタグの読み取り/書き込みオプションを提供する)の両方として機能することができます。あなたのSCADAシステムがそのようなものなら、OPCを使ってあなたが望むものを達成することができます。

+0

Modbusスレーブは、並行性の問題に陥ることなく、2つの異なるマスターを受け入れるのが一般的ですか?私は、それがプロトコルの一部であったと思っていました。これは、モードバスマスターが同時に2つの操作を同時に行うことはないということでした。私はOPCと考えていましたが、他の懸念から、接続がIOインターフェイスを通過したいと思っています。 – Tormod

+0

MODBUS RTUとASCIIスレーブは、1つのマスタのみを持つことができます。 MODBUS TCPスレーブは実際にはTCPサーバーであり、他のTCPサーバーと同様にメッセージのシリアル化が組み込まれています。さもなければ、Webサーバは、(同じ時間に人間がそれを知覚するのに十分速く逐次化が行われるので)「同時に」多くのクライアントを処理できませんでした。 – avra

+1

Modbus/TCPサーバは、複数の(しかし限られた数の)同時接続をサポートするように設計されています。共有レジスタを介して情報をトンネリングするAvraの提案は、おそらくあなたが得ることができる最高のものです。 Peter Groteの提案はおそらく、これらのうちの1つをPCに実装しています。 – Pekka

0

この問題を解決するには、KEPware LinkMasterという完璧なソリューションを使用してください。

関連する問題