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