説明

プログラマブルロジックコントローラのプロトコル変換器

とくに、PLCデバイスが希望の通信プロトコルと「話さない」場合に、監視制御及びデータ収集(SCADA)システムが、希望の通信プロトコルを使用して、PLCデバイスと効率的に通信することを可能にするプログラマブルロジックコントローラ(PLC)のプロトコル変換器が開示されている。第1のスレッドは、PLCデバイスによって理解されている通信プロトコルを使用して、PLCアドレスを一度に1つずつ読み出し続けるように構成され得る。第1のスレッドは、プログラムメモリ内の共有データ配列にデータ値を記憶し得る。従って、第1のスレッドは、PLCデバイスからのデータを、構成ファイルにおいて特定されているように露出する。同時に、第2のスレッドは、第2の通信プロトコルに従って、共有データ配列内のデータを、例えばSCADAシステムに、供給するように構成され得る。

【発明の詳細な説明】
【技術分野】
【0001】
本願は、2007年7月26日に出願された仮出願第60/952,118号に対して米国特許法第119条に従って利益を請求している。仮出願第60/952,118号の全内容は、参照によってここに組込まれている。
【0002】
本発明は、プロトコル変換器に関する。
【背景技術】
【0003】
多くの産業施設は、一般にPLCと称されるデバイスを使っている。PLCは、プログラマブルロジックコントローラ(Programmable Logic Controller)の略称である。知られているように、PLCは、マイクロプロセッサベースの産業用制御システムを提供している。PLCは、データリンクを介して他のプロセス制御コンポーネントと通信する。PLCは、単純な切り替えタスク(例えば、バルブの開閉)に対するプロセス制御、PID制御、複雑なデータ操作、算術演算、タイミングとプロセスと機械の制御などに使用される。例えば、PLCは、温度と、圧力と、流量と、生産工程の動作状態に関する様々な他の数値とを供給するように構成されたセンサに接続することができる。同様に、PLCは、所定のバルブが開いているか又は閉じているかのような、離散値に対する情報を集めることもできる。PLCは、特定のアドレス、レジスタ、又はデータベースの位置に、この情報を記憶するように構成することができる。
【0004】
さらに、PLCに含まれているマイクロプロセッサは、報告されたデータに基づいて、様々なプロセス制御動作を行うように構成され得る。例えば、PLCは、処理室(process chamber)の特定温度を維持するようにプログラムされ得る。このような場合に、指定最低温度を下回ると、PLCは温度を上げる動作(例えば、バルブを開く/閉じる、燃焼室に流れる燃料を増加する、など)を行い得る。同様に、指定最高温度を上回ると、PLCは温度を下げるために、逆の動作を行い得る。
【0005】
さらに、PLCは、任意の所定の時点に、所定のセンサに対して、記録された値の情報に対する要求に応答するように構成され得る。このような要求は、通常、特定のメモリ位置又はデータベース値に対する要求の形をとる。さらに、このような要求は、PLCによって「理解される」通信プロトコルを使用してフォーマットされなければならない。PLCに通信カードを加えることによって、PLCが所定の通信プロトコルと話す(speak)能力を高めることができる場合がある。しかしながら、PLCに通信カードを加えることは、しばしば、大規模なPLC構成と、プラントの運転停止とを必要とし、プラントの運転停止は極めて破壊的であり得る。さらに、幾つかの通信カードは、PLCデバイスからの限られたデータへのアクセスを提供するだけである。従って、プラントの操作者がPLCから取り出すことを望むデータによって、このアプローチは簡単に失敗し得る。
【発明の概要】
【0006】
本発明の1つの実施形態は、プログラマブルロジックコントローラ(PLC)デバイスからデータを露出(expose)する方法を提供する。概して、方法は、露出する複数のPLCアドレスを識別する構成ファイルにアクセスするステップと、共有メモリ配列を初期設定するステップとを含む。共有メモリ配列は、PLCデバイスから取得したデータを記憶するためにそれぞれ使用される複数の要素を含む。方法は、第1のスレッドを起動するステップをさらに含む。概して、第1のスレッドは、識別されたPLCアドレスの1つに対する要求を送信して、要求に応答してPLCデバイスによって返されたデータ値を、共有メモリ配列の要素の1つに記憶すること、を繰り返し行うように構成され得る。各要求は、第1の通信プロトコルに従って構成されている。方法は、第2のスレッドを起動するステップをさらに含み得る。概して、第2のスレッドは、第2の通信プロトコルに従って通信される要求であって、共有メモリ配列に記憶されている1つ以上のデータ値に対する要求を受信して、要求された1つ以上のデータ値を取り出して、第2の通信プロトコルに従うフォーマットで、要求されたデータ値を返すこと、を繰り返し行うように構成され得る。
【0007】
本発明の別の実施形態は、PLCデバイスからデータを露出するための煩わしくない方法(non-intrusive method)を行うように構成されたプログラムを収めた、コンピュータ読み出し可能記憶媒体を含む。プログラムは、動作を行わせる命令を含む。概して、動作は、露出する複数のPLCアドレスを識別する構成ファイルにアクセスするステップと、共有メモリ配列を初期設定するステップとを含み得る。共有メモリ配列は、PLCデバイスから取得したデータを記憶するためにそれぞれ使用される複数の要素を含む。動作は、第1のスレッドを起動するステップをさらに含み得る。概して、第1のスレッドは、識別されたPLCアドレスの1つに対する要求を送信して、要求に応答してPLCデバイスによって返されたデータ値を、共有メモリ配列の要素の1つに記憶すること、を繰り返し行うように構成され得る。各要求は、第1の通信プロトコルに従って構成されている。動作は、第2のスレッドを起動するステップをさらに含み得る。概して、第2のスレッドは、第2の通信プロトコルに従って通信される要求であって、共有メモリ配列に記憶されている1つ以上のデータ値に対する要求を受信して、要求された1つ以上のデータ値を取り出して、第2の通信プロトコルに従うフォーマットで、要求されたデータ値を返すこと、を繰り返し行うように構成され得る。
【0008】
本発明のさらに別の実施形態は、PLCデバイスからデータ値を取得する動作を行うように構成されたプログラムを収めたメモリと、プロセッサと、を有するシステムを含む。概して、プログラムによって行われる動作は、露出する複数のPLCアドレスを識別する構成ファイルにアクセスするステップと、共有メモリ配列を初期設定するステップとを含み得る。共有メモリ配列は、PLCデバイスから取得したデータを記憶するためにそれぞれ使用される複数の要素を含む。動作は、第1のスレッドを起動するステップをさらに含み得る。概して、第1のスレッドは、識別されたPLCアドレスの1つに対する要求を送信して、要求に応答してPLCデバイスによって返されたデータ値を、共有メモリ配列の要素の1つに記憶すること、を繰り返し行うように構成され得る。各要求は、第1の通信プロトコルに従って構成されている。動作は、第2のスレッドを起動するステップをさらに含み得る。第2のスレッドは、第2の通信プロトコルに従って通信される要求であって、共有メモリ配列に記憶されている1つ以上のデータ値に対する要求を受信して、要求された1つ以上のデータ値を取り出して、第2の通信プロトコルに従ったフォーマットで、要求されたデータ値を返すように構成され得る。
【0009】
本発明の性質及び目的をさらに理解するために、同じ要素に同一又は類似の参照番号が与えられている添付の図面と併せて、次の詳細な説明を参照すべきである。
【図面の簡単な説明】
【0010】
【図1】本発明の1つの実施形態に従って、PLCデバイス及びPLC変換器システムと通信するように構成されたSCADAシステムを含む動作制御センタと、監視されている産業施設とを示す概念図。
【図2】本発明の1つの実施形態に従って、PLCプロトコル変換プロセスを行うように構成されたPLC変換器システムのコンポーネントを示すブロック図。
【図3】本発明の1つの実施形態に従って、希望の通信プロトコルを使用してPLCデバイスとの通信を可能にするPLCプロトコル変換器によって使用される共有メモリ配列を示す概念図。
【図4】本発明の1つの実施形態に従って、PLCプロトコル変換器が希望の通信プロトコルを使用してPLCデバイスと通信する方法を示す図。
【発明を実施するための形態】
【0011】
本発明の実施形態は、とくに、PLCデバイスが希望の通信プロトコルと「話さない」場合に、SCADAシステムが希望の通信プロトコルを使用してPLCデバイスと効率的に通信することを可能にする、PLCプロトコル変換器システムを提供する。監視制御及びデータ収集システム(Supervisory Control And Data Acquisition)の略称であるSCADAシステムは、処理データを中央に集めて、様々な産業システムの遠隔からの監視と制御とを可能にしている。SCADAシステムは、パイプライン(例えば、炭化水素パイプライン、又は水素パイプライン)の状態と機器とを制御するために、離れた場所から、実時間で、データを集めるように構成され得る。例えば、SCADAシステムは、生産プラント内のセンサの現在の値、又は生産プラント中のコンポーネントのディスクリートな状態を表す、メモリ中のアドレスに記録された値に対する要求を、PLCコントローラに送るように構成され得る。SCADAシステムがPLCと通信するために、両者は、互換性のある通信プロトコルを使用して通信することができなければならない。
【0012】
1つの実施形態において、PLC変換器システムは、アプリケーションプログラムを実行することによって、PLCデバイス及びSCADAシステムの両者と通信するように構成されたコンピュータ(例えば、埋め込みシステム)であり得る。実際には、プログラムは構成ファイルを読み出し得る。構成ファイルは、PLCからどのデータ要素(例えば、メモリ値、レジスタ値、又はデータベースフィールド値)が要求されているかと、PLCから以前に集められたデータをマップする1組のメモリアドレス(例えば、MODBUSアドレス)とを識別する。集められたデータは、構成ファイル中のメモリアドレスに基づいて、共有メモリ配列の要素に記憶され得る。構成ファイルは、既知の通信プロトコル(例えば、ftp)を使用して、PLC変換器に送信され得る。
【0013】
さらに、プログラムは第1のスレッドを含み、第1のスレッドは、PLCデバイスによって理解される通信プロトコルを使用して、希望のPLCアドレスを一度に1つずつ読み出し続けるように構成されている。例えば、PLC変換器は、シリアル接続を使用してPLCデバイスに物理的に接続して、PLCデバイスによって理解されるシリアルラインプロトコルを使用して、プログラムが情報に対する要求を送ることを可能にし得る。特定の実施形態において、プロトコルは、既知の非インテリジェント端末プロトコル(Non-Intelligent Terminal Protocol, NITP)である。第1のスレッドは、プログラムメモリ内の共有データ配列にデータ値を記憶し得る。従って、第1のスレッドは、PLCデバイスからのデータを、構成ファイルにおいて特定されているように露出する。
【0014】
同時に、プログラムは第2のスレッドをさらに含み、第2のスレッドは、共有データ配列中のデータを、第2の通信プロトコルに従って、例えばSCADAシステムに、供給するように構成されている。例えば、第2のスレッドは、既知のTCP−MODBUSプロトコルを使用して、TCP−MODBUSプロトコルを「理解している」SCADAシステムに、共有メモリからのデータを供給し得る。こうすることにより、PLC変換器システムに存在するイーサネット(登録商標)ポートを介して受信された任意のMODBUSマスタポーリングに対して、PLCデバイスからのデータを共有することを可能にしている。従って、実際には、PLC変換器システムは、MODBUSメッセージ要求に応答するために、PLCデバイスになりすましている(masquerade)。さらに、第1のスレッドによって露出された集合に、データ点を追加する(又は、削除する)ように要求された場合に、ユーザは、構成ファイルを修正して、(例えば、ftpによって)PLC変換器システムにそれをアップロードして、(例えば、HTTPベースの診断インターフェースを使用して)プログラムを再起動するだけである。
【0015】
都合の良いことには、本発明の実施形態を使用して、PLCデータベース内の任意のデータタイプ(例えば数値、離散値など)に読み出し専用アクセスを行って、SCADAシステムが理解するプロトコルでデータを提供することができる。さらに、本発明の実施形態は、PLCデバイス自体内における構成を必要とせず、又は機能させるためのプロセッサの再起動/シャットダウンにより、PLCデバイスに影響を及ぼすことなく、PLCデバイスとの接続/切断ができ、(例えば、TCP接続を介して)SCADAシステムに接続して、遠隔からの構成と管理と使用とを可能にすることができる。
【0016】
ここでは、本発明の実施形態が、特定のPLCデバイスに関連して記載されていることに注意すべきである。特定のPLCデバイスは、ドイツ、ベルリン市のシーメンス社(Siemens, AG)から市販されているシリーズ5×5デバイスである。知られているように、シリーズ5×5(とくに、シリーズ505)は、RS−232シリアル接続によって、非インテリジェント端末プロトコル(NITP)を使用してフォーマットされた要求に応答することができるPLCデバイスを提供しているが、MODBUSポーリングを使用したデータ要求をサポートしていない(少なくとも、ある特定のアドオン通信カードを備えていない)。さらに、同じく知られているように、アドオン通信カードを用いても、この通信カードによって提供されるMODBUSデータマッピングは、PLCデータベース中の利用可能なデータタイプの一部へのアクセスを可能にするだけである。しかしながら、当業者によって理解されるように、シリーズ5×5デバイスは単なる例示であり、本発明はそのように制限されない。
【0017】
本発明の1つの実施形態は、コンピュータシステムで使用する1つ以上のソフトウェアプログラムとして実施され得る。プログラムは、(ここに記載されている方法を含めて)本発明の実施形態を実行させる命令を含み、様々なコンピュータ読み出し可能媒体に記憶され得る。例示的なコンピュータ読み出し可能媒体は、(i)情報を永久に記憶している書き込み不能な記憶媒体(例えば、CD−ROM又はDVD−ROMドライブによって読み出し可能な、CD−ROM又はDVD−ROMディスクのような、コンピュータ内の読み出し専用メモリデバイス)、及び/又は(ii)変更可能な情報を記憶する書き込み可能な記憶媒体(例えば、ディスケットドライブ、ハードディスクドライブ、又はフラッシュメモリデバイス内の、フロッピー(登録商標)ディスク)を含むが、これらに制限されない。他の媒体は、コンピュータ又は電話ネットワーク、例えば無線通信ネットワークのような、情報をコンピュータに運ぶ通信媒体を含む。無線通信ネットワークの実施形態は、とくに、インターネット及び他のネットワークへ/から情報を送信することを含む。このようなコンピュータ読み出し可能媒体は、本発明の機能を指図するコンピュータ読み出し可能命令を有する場合に、本発明の実施形態を示す。
【0018】
さらに、ここに記載されている本発明の実施形態を参照する。しかしながら、本発明は、具体的に記載されている実施形態に制限されないと理解されるべきである。その代わりに、次の特徴及び要素の任意の組み合わせは、様々な実施形態に関連していても、関連していなくても、本発明を実施及び実行するために考慮される。さらに、様々な実施形態において、本発明は、先行技術よりも優れた多数の特長を提供している。しかしながら、本発明の実施形態は他の解決案及び/又は先行技術よりも優れた特長を達成し得るが、特定の特長が所定の実施形態によって達成されているかどうかによって、本発明は制限されない。従って、次の態様、特徴、実施形態、及び特長は、単なる例示であり、請求項に明確に記載されている場合を除いて、請求項の限定又は要素であると見なされない。同様に、「発明」との記載は、ここに開示されている発明の内容を総括するものとして解釈されるべきではなく、請求項に明確に記載されている場合を除いて、請求項の限定又は要素であると見なされるべきではない。
【0019】
一般に、本発明の実施形態を実施するために実行されるルーチンは、オペレーティングシステム又は特定のアプリケーション、コンポーネント、プログラム、モジュール、オブジェクト、或いは一連の命令、の一部であり得る。さらに、プログラムは、変数及びデータ構造から構成され、この変数及びデータ構造は、プログラムにローカルに存在するか、或いはメモリ又は記憶デバイスで見付けられる。さらに、後述の様々なプログラムは、本発明の特定の実施形態においてそれらが実施されるアプリケーションに基づいて識別され得る。しかしながら、以下の特定のプログラム名(program nomenclature)は、便宜上使用されているだけであると理解されるべきであり、従って、本発明は、このようなプログラム名によって識別及び/又は示唆される特定のアプリケーションのみにおいて使用するように制限されるべきではない。
【0020】
図1は、本発明の1つの実施形態に従って、監視されている産業施設105と、動作制御センタ130とを示す概念図であり、動作制御センタ130は、PLC変換器システム120及びPLCデバイス115と通信するように構成されたSCADAシステム135を含んでいる。示されているように、監視されている産業施設105は、PLCデバイス115によって監視及び管理されるプラントシステム110の集合を含んでいる。プラントシステム110の集合は、PLCデバイス115によって制御される様々な産業プロセスを表わすものとして含まれている。プラントシステムの例は、低温空気分離ユニット、水処理プラント、液体生成物蒸発器、及び水素精製ユニットを含む。上述のように、PLCデバイス115は、データリンクを介して他のプロセス制御コンポーネントと通信するように構成されたプログラマブルロジックコントローラを提供し、PLCデバイス115は、単純な切り替えタスク(例えば、バルブの開閉)に対するプロセス制御、PID制御、複雑なデータ操作、算術演算、タイミングとプロセスと機械の制御などに使用され得る。特定の実施形態において、PLCデバイス115は、ドイツ、ベルリン市のシーメンス社から市販されているシリーズ5×5デバイスである。ここに記載されている特徴を有する他のPLCデバイスを使用することは、当然に可能である。
【0021】
1つの実施形態において、PLCデバイス115は、PLC変換器システム120からの要求に応答し得る。このような要求は、通信プロトコルを使用してフォーマットされ、PLCデバイス115とPLC変換器システム120との間で確立されたデータリンクによって送信され得る。例えば、PLC変換器システム120は、NITPプロトコルを使用して要求を送信する(及び、応答を受信する)ために、(矢印117によって表わされている)シリアルライン接続を使用して、PLCデバイス115と通信するように構成され得る。
【0022】
同時に、PLC変換器システム120は、(矢印119によって表わされている)ネットワーク137を通じてSCADAシステム135とさらに通信するように構成され得る。例えば、SCADAシステム135は、PLC変換器システム120にMODBUSマスタポーリングを送って、認識されたMODBUSアドレスのブロックを要求し得る。これを受けて、PLC変換器システム120で実行されているアプリケーションプログラムは、要求されたアドレスに対する値を共有メモリ配列から取り出して、SCADAシステム135にそれらを送信し得る。
【0023】
特定の実施形態において、PLC変換器システム120は、マルチスレッドアプリケーションプログラムで構成された、Moxa(登録商標),Incから市販されているモデルUC−7110埋込みコンピュータシステム(model UC-7110 embedded computer system)であり、ここでさらに詳しく記載される。知られているように、モデルUC−7110は、2つのシリアルポートを備えたRISCベースの実行準備のできた(ready-to-run)コンピュータと、2つのローカルエリアネットワークとを提供する。本発明の実施形態は、ここに記載されている特徴を有する他のコンピューティングデバイスで使用するように、当然に構成することができる。
【0024】
1つの実施形態において、SCADAシステム135からの要求の結果は、動作制御センタ130に送信される。動作制御センタ130は、幾つかのコンピュータシステムを用いることができ、幾つかのコンピュータシステムは、監視されている産業施設105の動作の調整と、監視と、制御とをするために使用されるアプリケーションプログラムを実行する。例示的に、パイプライン動作制御センタ130は、SCADAシステム135と、SCADAデータベース145と、HTTPサーバ148と、クライアントシステム170とを含み、これらは、ローカルエリアネットワーク137を通じて相互に通信するように構成されている。なお、動作制御センタ130の中に示されているコンピュータシステム135及び170は、例えば、デスクトップコンピュータ、サーバコンピュータ、ラップトップコンピュータ、タブレットコンピュータなどの既存のコンピュータシステムを表わすものとして含まれている。しかしながら、本発明の実施形態は、特定のコンピューティングシステム、アプリケーション、デバイス、アーキテクチャ、又はネットワークに制限されず、その代わりに、新たなコンピューティングシステム及びプラットフォームが利用可能になった場合には、それらを利用するように構成され得る。さらに、本発明の態様を強調するために、コンピュータシステム135、148、及び170の説明図(illustration)が単純化されていることと、通常はコンピューティングシステム及びネットワークが図1に示されていない様々なコンポーネントを含むこととが、当業者に分かるであろう。
【0025】
上述のように、SCADAシステム135は、様々な生産工程からの処理データを中央に集めて、監視されている産業施設105の遠隔からの監視と制御とを可能にするように構成され得る。例示的に、SCADAシステム135によって受信されたデータは、データベース145に記憶される。さらに、ブラウザアプリケーション175は、監視されている生産工程の現在(又は過去)の状態に関する、データベース145からのデータを要求するように構成され得る。通常、HTTPサーバ148は、ウェブブラウザ(例えば、SCADAブラウザアプリケーション175)によって表示されるHTMLウェブページを送信するように構成されている。この場合に、ウェブページの内容は、データベース145からの情報を、構造化された形で提示する。従って、クライアントコンピュータシステム170はウェブブラウザ175を含み、ウェブブラウザ175を使用して、ウェブサーバのHTTPサーバ148から受信した情報を表示する。なお、データベース145とウェブサーバ148とは別々のシステムとして示されているが、これらのコンポーネントが様々なやり方で編成及び構成され得ることが、当業者に分かるであろう。
【0026】
図2は、本発明の1つの実施形態に従って、PLCプロトコル変換プロセスを行うように構成されたPLC変換器システム120のコンポーネントを示すブロック図である。示されているように、PLC変換器システム120は、CPU215と、記憶デバイス220と、メモリ230と、シリアル接続ポート205と、イーサネット接続ポート210とを含み、これらの各々はバス211に接続されている。CPU215は、単一のCPU、複数のCPU、及び複数の処理コアを有する単一のCPUなどを表わすものとして含まれている。例えば、Moxa(登録商標)埋め込みシステムは、ARM9 32ビット 192MHzのプロセッサを含む。記憶デバイス220は、PLC変換器システム120によって使用されるデータ及びアプリケーションプログラムのための持続性記憶域を提供し得る。記憶デバイス220の例は、1つ以上のハードディスクドライブ、ソリッドステートメモリデバイス、光学媒体などを含む。例示的に、構成ファイル225を含んだ記憶デバイス220が示されている。1つの実施形態において、構成ファイル225は、カンマで区切られた値(comma separated values, CSV)の組を提供し、CSVは、どのPLCデバイスのアドレスがPLC変換器システム120を介して利用可能にされるかと、PLCデバイスのアドレスの各々がPLC変換器システム120によってどのMODBUSアドレスにマップされるべきか(例えば、どのMODBUSアドレスか)とを示す。
【0027】
メモリ230は、ランダムアクセスメモリ、不揮発性又はバックアップメモリ(例えば、プログラマブル又はフラッシュメモリ、読み出し専用メモリなど)を含む、メモリデバイスの1つ又は組み合わせであり得る。例えば、メモリ230は、オペレーティングシステム260、共有メモリ配列250、及びPLCプロトコル変換器アプリケーション235を記憶している。オペレーティングシステム260は、PLC変換器システム120において実行されるハードウェアとソフトウェア、例えばPLCプロトコル変換器アプリケーション235を管理するために使用される。さらに、オペレーティングシステム260は、PLC変換器システム120及びPLCプロトコル変換器アプリケーション235と対話するために、必要に応じて幾つかのユーティリィティアプリケーション(例えば、FTP又はHTTPサーバプロセス)を含み得る。
【0028】
示されているように、PLCプロトコル変換器アプリケーション235は、(NITPスレッドとして表示されている)第1のスレッド240と、(MODBUSスレッドとして表示されている)第2のスレッド245とを含む。1つの実施形態において、第1のスレッド240は、PLCデバイス115におけるアドレスを読み出し続けるように構成されている。PLCデバイス115におけるアドレスは、構成ファイル225において識別されている。さらに、PLCデバイス115によって理解される通信プロトコル(例えば、シーメンス社のシリーズ505PLCによって理解されるNITPプロトコル)を使用して、アドレスは一度に1つずつ読み出され得る。第1のスレッド240は、PLCデバイス115から読み出されたデータ値を、共有メモリ配列250に記憶し得る。従って、第1のスレッド240は、PLCデバイス115からのデータを、構成ファイル225において特定されているように露出する。
【0029】
最初に、PLCプロトコル変換器アプリケーション235は、どのPLCアドレスが要求されているかと、それらをどのMODBUSアドレスにマップすべきか、とを記載している構成ファイル225を読み出す。1つの実施形態では、第1のスレッド240によって使用される1組のメッセージを構築するために、構成ファイル225から読み出した情報を評価して、PLCデバイス115からのデータ値を集める。例えば、NITPは、1つのメッセージで通信することができるデータ要素数が制限されているので、通常、メッセージは、データ要求によってPLCデバイス115に負担がかかり過ぎないことを保証するように構成される。メッセージが構成されると、第1のスレッド240は、それらを一度に1つずつPLCデバイス115に送り始める。毎回、次のメッセージを送る前に、応答を待つ。連続する応答の各々からのデータは、PLCプロトコル変換器アプリケーション235の第2のスレッド245による使用のために、共有メモリ配列250に記憶される。1つの実施形態において、PLCプロトコル変換器アプリケーション235にシャットダウンするように指示する割り込み(interrupt)が受信されるまで、第1のスレッド240は、無限ループにおいて規則的な間隔でメッセージを繰り返し送信する。
【0030】
通常、第2のスレッド245は、共有メモリ配列250に記憶されているデータを、SCADAシステム135に供給するように構成されている。すなわち、通常、第2のスレッド245は、要求に応じてMODBUSアドレス値を提供する、MODBUSスレーブデバイスとして働くように構成され得る。例えば、1つの実施形態において、第2のスレッド245は、イーサネットポート210によって確立されるTCP接続を介して、SCADAシステム135からのコマンド要求を待ち、要求された値を共有メモリ配列250から取得して応答する。第1のスレッド240と同様に、第2のスレッド245も、通常、無限ループで実行することができ、PLCプロトコル変換器アプリケーション235にシャットダウンするように指示する割り込みが受信されるまで、SCADAシステム135からの新たなデータ要求を待つ。
【0031】
図3は、本発明の1つの実施形態に従って、PLCプロトコル変換器アプリケーション235によって使用される共有メモリ配列250をさらに示すブロック図である。示されているように、共有メモリ配列250は、数値データ値335のための配列スロットの集合と、離散データ値340のための配列スロットの集合と、診断値345のための配列スロットの集合とを含む。さらに、(NITPスレッドとして表示されている)第1のスレッド240の動作は、全体的に、図3の共有メモリ配列250の左側に示されており、(MODBUSスレッドとして表示されている)第2のスレッド245は、全体的に、図3の共有メモリ配列250の右側に示されている。1つの実施形態において、数値データ値335及び離散データ値340のうちの1つのための各スロットは、PLCデバイス115から取り出されたデータ値を記憶するために使用される。さらに、数値データ値335及び離散データ値340のうちの1つのための各スロットは、MODBUSアドレスに関連付けられて、第2のスレッド245が、SCADAシステム135から受信したMODBUSアドレス値に対する要求に応答することを可能にしている。
【0032】
1つの実施形態において、各数値データ値のための配列スロットは、浮動小数点数を記憶する4バイトのメモリ空間を提供している。一般に、数値データ値335は、産業施設105についての幾つかの観点の測定値、例えば、温度、圧力、流量など、連続的な範囲(continuous range)に入り得る測定値を記憶する。一般に、離散データ値340は、産業施設105についての幾つかの観点の測定値、例えば、整数のカウントのようなブール値又は整数、或いは「オン」又は「オフ」のようなスイッチの位置であり得る測定値を記憶する。
【0033】
例えば、図3は、PLCデバイス115から「LPV1」アドレスと、「V101」アドレスと、「LSP3」アドレスとを引き出して、共有メモリ配列250中の数値データ値335の最初の3つの配列スロットに記憶することを示している。知られているように、「LPV1」アドレスと、「V101」アドレスと、「LSP3」アドレスとはそれぞれ、シーメンス社のシリーズ505PLCデバイスに対する、制御ループ1に対するプロセス変数と、汎用メモリ変数101と、制御ループ3に対する設定値とに相当する。さらに、この例では、配列スロットは、「40,000」シリーズのMODBUSアドレスの最初の3つの値にマップする。同じく知られているように、MODBUSアドレスはブロックに細分され、「40,000」シリーズは、一般に、「保持レジスタ」であると理解され、数値データを収める。1つの実施形態において、SCADAシステム135は、イーサネット接続210により第2のスレッド245にメッセージを送ることによって、どの数値データ値335でも要求することができる。これを受けて、第2のスレッド245は、要求された値を共有メモリ配列250から取り出して、矢印320によって示されているように、イーサネット接続210によりSCADAシステム135にそれらを送信する。
【0034】
同様に、図3は、「X1」アドレスと「C3」とがPLCデバイス115から引き出されて、共有メモリ配列250中の離散データ値340の最初の3つの配列スロットに記憶されることを示している。知られているように、「X1」と「C3」のPLCアドレスはそれぞれ、シーメンス社のシリーズ505PLCデバイスに対する、スイッチ状態1と出力コイル3とに相当する。さらに、この例では、配列スロットは、「10,000」シリーズのMODBUSアドレスの最初の3つの値にマップする。数値データ値335と同様に、SCADAシステム135は、イーサネット接続210により第2のスレッド245にメッセージを送ることによって、どの離散データ値340でも要求することができる。これを受けて、第2のスレッド245は、要求された値を共有メモリ配列250から取り出して、矢印325によって示されているように、イーサネット接続210によってSCADAシステム135にそれらを送信する。
【0035】
1つの実施形態において、第1のスレッド240は、PLCデバイス115からデータ値を引き出すことに加えて、さらに、共有メモリ配列250中の、診断値345のために確保されたスロットに、情報を書き込むように構成され得る。例えば、図3は、日付、時間、一般状態(general status)などのような診断情報のために確保された配列スロットを示している。通常、診断値345は、プロトコル変換器アプリケーション235及び/又はPLC変換器システム120の動作状態に関する情報を記録するのに役立ち得る。PLCアドレス値と同様に、SCADAシステム135は、診断値345に対する要求を第2のスレッド245に送り得る。これを受けて、第2のスレッド245は、要求された値を共有メモリ配列250から取り出して、矢印330によって示されているように、イーサネット接続210によってSCADAシステム135にそれらを送信する。
【0036】
図4は、本発明の1つの実施形態に従って、PLCプロトコル変換器アプリケーション235が、希望の通信プロトコルを使用して、PLCデバイス115と通信する方法400を示している。1つの実施形態では、既に記載したように、PLCデバイス115(例えば、シーメンス社のシリーズ505PLCデバイス)及びSCADAシステム135と通信するために使用されるPLCプロトコル変換器アプリケーション235を使用して、方法400を実行することができる。しかしながら、当業者は、特定の装置、ソフトウェア、及び製品の例が、ここでは例示の目的で使用されており、これらのアイテムの他のタイプが、本発明の範囲から逸脱することなく使用され得ることを理解するであろう。
【0037】
示されているように、方法400は、ステップ405において、PLCプロトコル変換器アプリケーション235が実行を開始することから始まる。1つの実施形態において、アプリケーションは構成ファイル225を読み出して、共有メモリ配列250を作成し得る。最初に、配列250は、構成ファイル225によって特定されているように、数値データ値335と、離散データ値340と、診断値345とのためのスロットを含んでいるが、個々の配列メンバの中に実際のデータはない。ステップ410において、PLCプロトコル変換器アプリケーション235は、第1のスレッド240と第2のスレッド245とを初期設定し得る。第1のスレッド240の動作は、ステップ415乃至435を参照して記載され、第2のスレッド245の動作は、ステップ445乃至465を参照して記載される。
【0038】
ステップ415において、第1のスレッド240は、PLCデバイス115との接続を確立する。例えば、既に記載したように、RS−232のシリアル接続は、シーメンス社のシリーズ505PLCデバイスによって確立され得る。PLCプロトコル変換器アプリケーション235が実行し続けているならば、ステップ420乃至435は、第1のスレッド240によって実行されるループを表わす。ステップ420において、第1のスレッド240は、PLCデバイス115から要求される次のデータ値を識別する。例えば、第1のスレッド240は、共有メモリ配列250中の最後に更新された値を表わすインデックスを維持し得る。このような場合に、第1のスレッド240は、ステップ420乃至435のループを通る各パスに対して、インデックスを次の値にインクリメントするだけである。ステップ425において、第1のスレッド240は、ステップ420で識別されたPLCアドレスを要求するメッセージを、PLCデバイス115に送り得る。例えば、既に記載したように、NITPプロトコルを使用して構成されたメッセージは、シーメンス社のシリーズ505PLCデバイスに送られ得る。応答を受信すると、PLCデバイス115から送信された値は、共有メモリ配列250の適切な位置に記憶される(ステップ430)。ステップ435において、第1のスレッド240は、(例えば、割り込みを介して)シャットダウンコマンドが受信されたかどうかを決定し得る。しかしながら、PLCプロトコル変換器アプリケーション235が実行し続けているならば、第1のスレッド240は、希望のPLCアドレスを一度に1つずつ読み出し続ける。
【0039】
1つの実施形態において、第2のスレッド245が、SCADAシステム135からの、共有メモリ配列250の値に対する要求に応答する一方で、このような値は第1のスレッド240によって更新されている。ステップ445において、第2のスレッド245は、SCADAシステム135との接続を確立する。例えば、既に記載したように、PLC変換器アプリケーション235は、SCADAシステム135とのTCP接続を確立して、第2のスレッド245がMODBUSスレーブデバイスとして働くことを可能にするように構成され得る。PLCプロトコル変換器アプリケーション235が実行し続けているならば、ステップ450乃至460は、第2のスレッド245によって実行されるループを表わす。ステップ450において、第2のスレッド245は、共有メモリ配列250からのある範囲の値に対する要求を受信する。1つの実施形態において、要求は、ある範囲のMODBUSアドレスに対するMODBUS要求としてフォーマットされ得る。ステップ445において、第2のスレッド245は、要求された値を共有メモリ配列250から取り出して、ステップ450において、要求されたデータをSCADAシステム135に適切なフォーマット(例えば、MODBUSフォーマット)で送信する。ステップ465において、第2のスレッド245は、(例えば、割り込みによって)シャットダウンコマンドが受信されたかどうかを決定し得る。しかしながら、PLCプロトコル変換器アプリケーション235が実行し続けているならば、第2のスレッドは、共有メモリ配列250からの情報に対する要求を待って、これに応答し得る。
【0040】
都合の良いことには、本発明の実施形態は、とくに、PLCデバイスが希望の通信プロトコルと「話さない」場合に、SCADAシステムが、希望の通信プロトコルを使用してPLCデバイスと効率的に通信することを可能にするPLCプロトコル変換器システムを提供している。既に記載したように、本発明の実施形態を使用して、PLCデータベース内の任意のデータタイプ(例えば、数値、離散値、など)に対する読み出し専用アクセスを行って、SCADAシステムが理解するプロトコルを使用して、データを提供することができる。さらに、本発明の実施形態は、PLCデバイス自体内における構成を必要とせず、又は機能させるためのプロセッサの再起動/シャットダウンは、PLCデバイスに影響を及ぼすことなく、PLCデバイスとの接続/分離を可能にし、遠隔からの構成と管理と使用とを可能にするために、(例えば、TCP接続を介して)SCADAシステムに接続され得る。
【0041】
本発明を実行するための好ましいプロセス及び装置を記載した。本発明の精神と範囲から逸脱することなく、上述の実施形態に対して多くの変更と修正とが可能であることが、当業者に理解され、容易に明らかである。上述は一例に過ぎず、請求項に定義された発明の真の範囲から逸脱することなく、統合されたプロセス及び装置の他の実施形態を用いることができる。

【特許請求の範囲】
【請求項1】
プログラマブルロジックコントローラ(PLC)デバイスからデータを露出する方法であって、
露出する複数のPLCアドレスを識別する構成ファイルにアクセスするステップと、
前記PLCデバイスから取得したデータを記憶するためにそれぞれ使用される複数の要素を含む、共有メモリ配列を初期設定するステップと、
第1の通信プロトコルに従って構成される要求であって、前記識別されたPLCアドレスの1つに対する前記要求を送信して、
前記要求に応答して前記PLCデバイスによって返されたデータ値を、前記共有メモリ配列の前記要素の1つに記憶すること、
を繰り返し行うように構成された、第1のスレッドを起動するステップと、
第2の通信プロトコルに従って通信される要求であって、前記共有メモリ配列に記憶されている1つ以上の前記データ値に対する前記要求を受信して、
前記要求された1つ以上のデータ値を取り出して、
第2の通信プロトコルに従うフォーマットで、前記要求されたデータ値を返すこと、
を繰り返し行うように構成された、第2のスレッドを起動するステップと、
を具備する、方法。
【請求項2】
1つ以上のデータ値に対する前記要求は、監視制御及びデータ収集(SCADA)システムによって送信されて、前記SCADAシステムに返される、請求項1に記載の方法。
【請求項3】
前記第1のプロトコルは、非インテリジェント端末プロトコル(NITP)を具備する、請求項1に記載の方法。
【請求項4】
前記第1のプロトコルは、前記PLCデバイスと前記第1のスレッドとの間で確立されたシリアル通信データリンクによって通信するために使用される、請求項1に記載の方法。
【請求項5】
前記第2のプロトコルは、TCP/MODBUSプロトコルを具備する、請求項1に記載の方法。
【請求項6】
前記共有メモリ配列は、少なくとも1つの数値データ値を含む、請求項1に記載の方法。
【請求項7】
前記共有メモリ配列は、少なくとも1つの離散データ値を含む、請求項1に記載の方法。
【請求項8】
前記共有メモリ配列は、少なくとも1つの診断値を含む、請求項1に記載の方法。
【請求項9】
プログラマブルロジックコントローラ(PLC)デバイスからデータを露出する方法を行うように構成されたプログラムを収めたコンピュータ読み出し可能媒体であって、前記プログラムは、
露出する複数のPLCアドレスを識別する構成ファイルにアクセスするステップと、
前記PLCデバイスから取得したデータを記憶するためにそれぞれ使用される複数の要素を含む、共有メモリ配列を初期設定するステップと、
第1の通信プロトコルに従って構成される要求であって、前記識別されたPLCアドレスの1つに対する前記要求を送信して、
前記要求に応答して前記PLCデバイスによって返されたデータ値を、前記共有メモリ配列の前記要素の1つに記憶すること、
を繰り返し行うように構成された、第1のスレッドを起動するステップと、
第2の通信プロトコルに従って通信される要求であって、前記共有メモリ配列に記憶されている1つ以上の前記データ値に対する前記要求を受信して、
前記要求された1つ以上のデータ値を取り出して、
第2の通信プロトコルに従うフォーマットで、前記要求されたデータ値を返すこと、
を繰り返し行うように構成された、第2のスレッドを起動するステップと、
を具備する、動作を行わせる命令を含む、コンピュータ読み出し可能媒体。
【請求項10】
1つ以上のデータ値に対する前記要求は、監視制御及びデータ収集(SCADA)システムによって送信されて、前記SCADAシステムに返される、請求項9に記載のコンピュータ読み出し可能媒体。
【請求項11】
前記第1のプロトコルは、非インテリジェント端末プロトコル(NITP)を具備する、請求項9に記載のコンピュータ読み出し可能媒体。
【請求項12】
前記第1のプロトコルは、前記PLCデバイスと前記第1のスレッドとの間で確立されたシリアル通信データリンクによって通信するために使用される、請求項9に記載のコンピュータ読み出し可能媒体。
【請求項13】
前記第2のプロトコルは、TCP/MODBUSプロトコルを具備する、請求項9に記載のコンピュータ読み出し可能媒体。
【請求項14】
前記共有メモリ配列は、少なくとも1つの数値データ値を含む、請求項9に記載のコンピュータ読み出し可能媒体。
【請求項15】
前記共有メモリ配列は、少なくとも1つの離散データ値を含む、請求項9に記載のコンピュータ読み出し可能媒体。
【請求項16】
前記共有メモリ配列は、少なくとも1つの診断値を含む、請求項9に記載のコンピュータ読み出し可能媒体。
【請求項17】
プロセッサと、
プログラマブルロジックコントローラ(PLC)デバイスからデータ値を取得する動作を行うように構成されたプログラムを収めたメモリと、を含み、前記動作は、
露出する複数のPLCアドレスを識別する構成ファイルを解析するステップと、
前記PLCデバイスから取得したデータを記憶するためにそれぞれ使用される複数の要素を含む、共有メモリ配列を初期設定するステップと、
第1の通信プロトコルに従って構成される要求であって、前記PLCアドレスの1つに対する前記要求を送信して、
前記要求に応答して前記PLCデバイスによって返されたデータ値を、前記共有メモリ配列の前記要素の1つに記憶すること、
を繰り返し行うように構成された、第1のスレッドを起動するステップと、
第2の通信プロトコルに従って通信される要求であって、前記共有メモリ配列に記憶されている1つ以上の前記データ値に対する前記要求を受信して、
前記要求された1つ以上のデータ値を取り出して、
第2の通信プロトコルに従うフォーマットで、前記要求されたデータ値を返すこと、
を繰り返し行うように構成された、第2のスレッドを起動するステップと、
を具備する、システム。
【請求項18】
1つ以上のデータ値に対する前記要求は、監視制御及びデータ収集(SCADA)システムによって送信されて、前記SCADAシステムに返される、請求項17に記載のシステム。
【請求項19】
前記第1のプロトコルは、非インテリジェント端末プロトコル(NITP)を具備する、請求項17に記載のシステム。
【請求項20】
前記第1のプロトコルは、前記PLCデバイスと前記第1のスレッドとの間で確立されたシリアル通信データリンクによって通信するために使用される、請求項17に記載のシステム。
【請求項21】
前記第2のプロトコルは、TCP/MODBUSプロトコルを具備する、請求項17に記載のシステム。
【請求項22】
前記共有メモリ配列は、少なくとも1つの数値データ値を含む、請求項17に記載のシステム。
【請求項23】
前記共有メモリ配列は、少なくとも1つの離散データ値を含む、請求項17に記載のシステム。
【請求項24】
前記共有メモリ配列は、少なくとも1つの診断値を含む、請求項17に記載のシステム。

【図1】
image rotate

【図2】
image rotate

【図3】
image rotate

【図4】
image rotate


【公表番号】特表2010−534880(P2010−534880A)
【公表日】平成22年11月11日(2010.11.11)
【国際特許分類】
【出願番号】特願2010−517537(P2010−517537)
【出願日】平成20年7月26日(2008.7.26)
【国際出願番号】PCT/IB2008/053012
【国際公開番号】WO2009/013726
【国際公開日】平成21年1月29日(2009.1.29)
【出願人】(591036572)レール・リキード−ソシエテ・アノニム・プール・レテュード・エ・レクスプロワタシオン・デ・プロセデ・ジョルジュ・クロード (438)
【Fターム(参考)】