(57)【要約】【課題】プロセス制御装置などの構成をテストすることを提供すること。【解決手段】プロセス制御システムをテストするためのエンジニアリングツールは、1つまたは複数のテストマネージャインスタンスを含む。各テストマネージャインスタンスは、テストケースおよび関連するテスト要求を受け取る回路を含む。この回路はまた、各テスト要求の対象を識別し、各テスト要求を識別された対象に対する命令に変換し、各テスト要求の正当性をチェックし、各テストケースの実行を開始し、対象によって生成された発行済みデータを監視し、第1の時点と第2の時点の発行済みデータ間の差を計算し、かつ、その計算された差が所定の閾値よりも大きいときに通知を生成する。【選択図】図1
2018067282.tif 000002
【特許請求の範囲】
【請求項１】
プロセス制御システムをテストするためのエンジニアリングツールであって、1つまたは複数のテストマネージャインスタンスを含み、各テストマネージャインスタンスが、
テストケースのソースから、少なくとも1つのテストケースおよび関連したテスト要求を受け取り、
物理的制御装置、論理シミュレータ、および制御装置シミュレータのうちの1つである、各テスト要求の対象を識別し、
各テスト要求を前記識別された対象に対する命令に変換し、
各テスト要求の正当性をチェックし、
各テストケースの実行を開始し、
各テストケースの前記対象によって生成された発行済みデータを監視し、
第1の時点の前記発行済みデータと第2の時点の前記発行済みデータとの間の差を計算し、
前記計算された差が第1の所定の閾値よりも大きいときに通知を生成する
ように構成されている第1の回路を含む、エンジニアリングツール。
【請求項２】
前記1つまたは複数のテストマネージャインスタンスのそれぞれと通信を行い、各テストケースの実行を開始するための待ち行列の優先順序を管理するように構成された第2の回路を含むアービタをさらに含む、請求項1に記載のエンジニアリングツール。
【請求項３】
前記1つまたは複数のテストマネージャインスタンスのそれぞれに対する前記第1の回路が別個のプロセッサである、請求項1に記載のエンジニアリングツール。
【請求項４】
各テストケースの正当性をチェックする前記第1の回路、および、前記1つまたは複数のテストマネージャインスタンスのそれぞれの各テストケースによって生成されるデータを監視する前記第1の回路が、別個のプロセッサに実装される、請求項1に記載のエンジニアリングツール。
【請求項５】
各データベースインスタンスが、各テストケースに使用される記憶された変数の値を含む、1つまたは複数のデータベースインスタンスをさらに含む、請求項1に記載のエンジニアリングツール。
【請求項６】
各テストマネージャインスタンスが、各テストケースに使用する前記1つまたは複数のデータベースインスタンスのうちの1つを識別するようにさらに構成される回路を含む、請求項5に記載のエンジニアリングツール。
【請求項７】
前記対象が物理的制御装置のとき、前記正当性のチェックは、前記物理的制御装置がオフライン状態であることのチェックを含む、請求項1に記載のエンジニアリングツール。
【請求項８】
構成ファイルが前記対象を識別するために使用される、請求項1に記載のエンジニアリングツール。
【請求項９】
前記計算された差が、連続するデータ値が所定の回数を超えて第2の所定の閾値よりも大きい場合に、前記第1の回路が前記通知を生成するようにさらに構成される、請求項1に記載のエンジニアリングツール。
【請求項１０】
プロセス制御システムをテストする方法であって、
テストケースのソースから、少なくとも1つのテストケースおよび関連したテスト要求を受け取るステップと、
物理的制御装置、論理シミュレータ、および制御装置シミュレータのうちの1つである、各テスト要求の対象を識別するステップと、
各テスト要求を前記識別された対象に対する命令に変換するステップと、
各テスト要求の正当性をチェックするステップと、
各テストケースの実行を開始するステップと、
回路を使用して、各テストケースの前記対象によって生成された発行済みデータを監視するステップと、
前記回路を使用して、第1の時点の前記発行済みデータと第2の時点の前記発行済みデータとの間の差を計算するステップと、
前記差が所定の閾値よりも大きいときに通知を生成するステップと、
を含む方法。
【請求項１１】
待ち行列の優先順序に基づいて、前記少なくとも1つのテストケースと、関連するテスト要求との間を仲裁するステップをさらに含む、請求項10に記載の方法。
【請求項１２】
前記識別された対象に関して別のテストケースが開始する前に、前記識別された対象に関して第1のテストケースが完了されたことを、前記仲裁するステップが確認する、請求項11に記載の方法。
【請求項１３】
各テストケースに使用するデータベースインスタンスを識別するステップをさらに含む、請求項10に記載の方法。
【請求項１４】
前記対象が物理的制御装置のとき、前記正当性のチェックは、前記物理的制御装置がオフライン状態であることをチェックするステップを含む、請求項10に記載の方法。
【請求項１５】
コンピュータによって実行されると、前記コンピュータに
テストケースのソースから、少なくとも1つのテストケースおよび関連したテスト要求を受け取るステップと、
物理的制御装置、論理シミュレータ、および制御装置シミュレータのうちの1つである、各テスト要求の対象を識別するステップと、
各テスト要求を前記識別された対象に対する命令に変換するステップと、
各テスト要求の正当性をチェックするステップと、
各テストケースの実行を開始するステップと、
各テストケースの前記対象によって生成された発行済みデータを監視するステップと、
第1の時点の前記発行済みデータと第2の時点の前記発行済みデータとの間の差を計算するステップと、
前記差が所定の閾値よりも大きいときに通知を生成するステップと、
を含む方法を実行させる、コンピュータ可読命令を記憶する非一時的なコンピュータ可読媒体。
【請求項１６】
前記方法が待ち行列の優先順序に基づいて、前記少なくとも1つのテストケースと、関連するテスト要求との間を仲裁するステップをさらに含む、請求項15に記載の非一時的なコンピュータ可読媒体。
【請求項１７】
前記識別された対象に関して別のテストケースが開始する前に、前記識別された対象に関して第1のテストケースが完了されたことを、前記仲裁するステップが確認する、請求項16に記載の非一時的なコンピュータ可読媒体。
【請求項１８】
前記方法が各テストケースに使用するデータベースインスタンスを識別するステップをさらに含む、請求項15に記載の非一時的なコンピュータ可読媒体。
【請求項１９】
前記対象が物理的制御装置のとき、前記正当性のチェックは、前記物理的制御装置がオフライン状態であることをチェックするステップを含む、請求項15に記載の非一時的なコンピュータ可読媒体。
【請求項２０】
前記計算された差が、連続するデータ値が所定の回数を超えて第2の所定の閾値よりも大きい場合に、前記方法が前記通知を生成するステップをさらに含む、請求項15に記載の非一時的なコンピュータ可読媒体。
【発明の詳細な説明】
【技術分野】
【０００１】
本開示は、工業用プロセス制御システムまたは他のプロセス制御システムを含む制御システムの分野に関する。詳細には、本開示は、プロセス制御装置などの構成をテストすることに関する。
【背景技術】
【０００２】
プロセス制御システム中の、工業用制御装置(プログラマブル論理制御装置、PLC、プログラマブル制御装置、または、単純に制御装置とも呼ばれる)およびフィールドデバイス(センサおよびアクチュエータ)は、伝統的に手動で操作するものであった。典型的なケースにおいては、ユーザは、プロセス制御システム用のテストケースおよびテスト手順を手動でセットアップし、テスト中には、手動で適切なデータベースを選択し、所与のプロセスの要求を満たすためにそのテストケースの値を更新する。
【０００３】
本明細書で説明する「背景技術」の記述は、本開示の背景を一般的に述べることを目的としている。本背景技術の区分に記載された範囲までの、目下のところ有名な発明家の製品、ならびに、別のやりかたでは出願の時点において従来技術として認められ得ない本記述の諸態様は、本開示に対して明示的にも黙示的にも従来技術として認められない。
【発明の概要】
【課題を解決するための手段】
【０００４】
プロセス制御システムをテストするためのエンジニアリングツールは、1つまたは複数のテストマネージャインスタンスを含み、各テストマネージャインスタンスは、少なくとも1つのテストケース、およびテストケースのソースからの関連したテスト要求を受け取り、各テスト要求の対象を識別し、各テスト要求を識別された対象への命令に変換し、各テスト要求の正当性をチェックし、各テストケースの実行を開始し、各テストケースの対象によって生成された発行済みデータを監視し、第1の時点と第2の時点の発行済みデータ間の差を計算し、かつ、その計算された差が第1の所定の閾値よりも大きいときに通知を生成するように構成された回路を含む。
【０００５】
本開示のより完全な理解および付随する利点の多くは、これらが、添付の図面と共に考察されるとき、以下の詳細な記述を参照することによってより理解が進むのと同様に、容易に得られるであろう。
【図面の簡単な説明】
【０００６】
【図１】プロセス制御システムならびに開発ファシリティおよびテストファシリティを含むプロセス制御システム環境を示す図である。
【図２】プロセス制御システムならびに開発ファシリティおよびテストファシリティを含む別のプロセス制御システム環境を示す図である。
【図３】プロセス制御システムならびに開発ファシリティおよびテストファシリティを含むさらに別のプロセス制御システム環境を示す図である。
【図４】プロセス制御システムのテストのための流れ図である。
【図５】手動モードにおける論理シミュレータのテストのための通信/コマンドフローを示す図である。
【図６】手動モードにおける制御装置シミュレータのテストのための通信/コマンドフローを示す図である。
【図７】手動モードにおける物理的制御装置のテストのための通信/コマンドフローを示す図である。
【図８】1つの可能な構成ファイルの簡略化された構成を示す図である。
【図９】改良されたテストシナリオのための通信/コマンドフローを示す図である。
【図１０】例示のコンピューティングデバイスの機能ブロック図である。
【発明を実施するための形態】
【０００７】
製造プロセスを開発しまたは変更するとき、1つまたは複数の制御装置は、様々なプロセスのステップを監視し制御するためにプログラム化する必要がある。
【０００８】
制御装置は、関連する論理シミュレータ、制御装置シミュレータ、および物理的制御装置を有する場合があり、これらのすべては、新しい制御装置プログラム(プロセス制御プログラム)を使用してテストする必要がある。論理シミュレータは、制御装置プログラムの振舞いをワークステーション(コンピュータ)上でシミュレートするソフトウェアプログラムである。論理シミュレータの目的は、制御装置プログラムが正しく定義されていることをテストし、制御装置プログラムが制御装置およびフィールドデバイスを設計仕様に従って機能できるようにさせることを確認することにある。制御装置シミュレータは、制御装置のアクションをワークステーション上でシミュレートするプログラムである。制御装置シミュレータの目的は、制御装置が模擬環境において設計仕様に従って機能するかチェックすることにより制御装置プログラムをテストすることにある。最後に、実際の(物理的な)制御装置を、実際の環境において、ただし、制御装置はオフラインで(製造プロセスを制御することなく)設計仕様に従って機能することを保証するために、制御装置プログラムを使用してテストすることができる。制御装置は、プログラマブル論理制御装置(PLC)用または分散制御システム(DCS)用の標準IEC61131-3で指定されたプログラミング言語を使用してプログラムすることができる。制御装置は、DCSまたは安全計装システム(SIS)の一部とすることができる。
【０００９】
ここで図面を参照すると、同じ参照数字は、いくつかの図を通して同一または対応する部分を示す。
【００１０】
図1は、プロセス制御システムならびに開発ファシリティおよびテストファシリティを含む第1のプロセス制御システム環境100を示す。プロセス制御システム環境100は、第1のエンジニアリングツール105(PCまたは他のコンピュータに実装することができる)、ワークステーション110、制御システム115(制御装置シミュレータ)、1つまたは複数の制御装置120、ならびにセンサ125およびアクチュエータ130を含むフィールドデバイスを含む。制御装置120は、プロセス制御システム内でフィールドデバイスを通してプロセスを制御する。一例として、センサ125は、1つまたは複数のプロセスの状況に関して制御装置120にフィードバックを伝達することができる。受け取ったフィードバックに基づいて、制御装置120は、制御信号を生成し、実行中のプロセスを制御するためにその信号をアクチュエータ130に伝達することができる。さらに、制御装置120は、フィードバック(現在のシステムの状態、履歴データ、傾向など)、および、警報(指定限界を超えたシステム動作、フィールドデバイスまたは他のコンポーネントの故障など)をプロセス制御システム環境100の1つまたは複数のオペレータに提供することができる。第1のエンジニアリングツール105およびワークステーション110を含む、プロセス制御システム環境100の様々なコンポーネントを相互接続するために、事務所/企業ネットワーク135を使用することができる。制御ネットワーク140を使用して、制御装置120をワークステーション110および制御システム115に相互に接続することができる。フィールドネットワーク145を使用して、1つまたは複数の制御装置120と、センサ125およびアクチュエータ130を含むフィールドデバイスを相互に接続することができる。
【００１１】
第1のエンジニアリングツール105を使用して、制御装置120用の制御装置プログラムを定義し、テストし、文書化することができる。制御装置の論理の正確性をテストするテストケースを作成するために使用されるとき、第1のエンジニアリングツール105を使用して、そのテストケースを論理シミュレータ、制御装置シミュレータ、または実際の(物理的)制御装置120上で実行させる目的で、ワークステーション110との通信を開始することができる。
【００１２】
ワークステーション110は、作業台150(論理シミュレータ)に機能性を提供するハードウェアおよび/またはソフトウェア、第2のエンジニアリングツール155、データベース160(ワークデータベース165およびマスタデータベース170を含む)、ならびにデータ/記号エクストラクタ175を含むことができる。
【００１３】
プロセス制御システム環境100は、異なるけれども関連する3つのテスト環境、すなわち、論理シミュレータ(作業台150を使用)、制御装置シミュレータ(制御システム115を使用)、および実際の(物理的)制御装置120を提供する。テストの最中には、制御装置120はオフライン状態でなければならない(稼働中の製造プロセス中では実行しない)。
【００１４】
図1に示す論理シミュレータ(作業台150)は、ワークステーション110上でPOU(プログラム組織単位)の振舞いをエミュレートするソフトウェアコンポーネントである。プログラム組織単位は、制御装置プログラムを形成するために組合せ可能な諸機能、機能ブロック、およびプログラムである。POUは、プログラム内で再利用可能であり、他の制御装置プログラムにインポートするためにユーザ宣言ライブラリ中に記憶することができる。論理シミュレータ(作業台150)の目的は、制御装置プログラムの論理が正しく定義されていることを確認し、制御装置プログラムが、制御装置およびフィールドデバイスを設計仕様に従って機能することができるようにすることをチェックすることである。論理シミュレータ(作業台150)は、変数および他のデータを、必要に応じて、テストケースの実行中にワークデータベース165から読み出すことができる。変数は、制御装置プログラムの実行中にPOUによってアクセスされる値およびパラメータである。変数のデフォルト値は、データベースのうちの1つから抽出され、制御装置プログラムのテスト中に使用され得る。追加の変数値は、テストケースの実行中に投入することができる。
【００１５】
ワークデータベース165は、編集されていない作業用のデータベースである。ワークデータベース165は、論理シミュレータによって使用される。ワークデータベース165は、テストケースの使用/実行前には論理シミュレータにダウンロードされることはない。論理シミュレータ(作業台150中の)は、ワークデータベース165のみから読み出す。マスタデータベース170は、編集済みであり、制御装置シミュレータ(制御システム115を使用して)および物理的制御装置120によって使用するために容易に展開されるデータベースである。マスタデータベース170は、テストケースを実行する前に、制御装置シミュレータ(制御システム115を使用して)または物理的制御装置120にダウンロードされなければならない。より重要なことには、マスタデータベース170は、ネットワークアドレス、制御装置のタイプ、および通信プロトコルなど、制御装置に関連したより多くのデータを有する。
【００１６】
制御装置シミュレータ(制御システム115)は、実際の制御装置のアクションをコンピュータ上でシミュレートするソフトウェアコンポーネントである。制御装置シミュレータの目的は、制御装置が、模擬製造環境において設計仕様に従って機能するかどうかチェックすることによって、制御装置プログラムの論理をテストすることである。制御装置シミュレータ(制御システム115)は、変数および他のデータを、必要に応じて、テストケースの実行中にマスタデータベース170から読み出すことができる。
【００１７】
制御装置120により、制御装置が実際の製造環境において設計仕様に従って機能することをチェックすることによって、制御装置プログラムをテストすることが可能となる。制御装置120は、変数および他のデータを、必要に応じて、テストケースの実行中にマスタデータベース170から読み出すことができる。
【００１８】
実際の製造プロセス制御中に、制御装置は、トリガイベント(変数の異常値、逸脱など)だけでなく事前定義された制御アクションに基づいて機能する。定義されたテストケースを使用するテスト手順により、様々なシナリオを投入することができ、制御装置プログラムがどのように振る舞うか、また、コマンドを制御装置およびフィールドデバイスに送信するためにどのような出力が制御装置プログラムによって生成されるかをテストすることができる。
【００１９】
代替シナリオを図2に示す。図2において、プロセス制御システム環境200は、プロセス制御システムならびに開発ファシリティおよびテストファシリティを含む。プロセス制御システム環境200は、第1のエンジニアリングツール205、ワークステーション210、1つまたは複数の制御装置220、ならびにセンサ225およびアクチュエータ230を含むフィールドデバイスを含む。事務所/企業ネットワーク235を使用して、第1のエンジニアリングツール205およびワークステーション210を含むプロセス制御システム環境200の様々なコンポーネントを相互接続することができる。制御ネットワーク240を使用して、制御装置220をワークステーション210に相互接続することができる。フィールドネットワーク245を使用して、1つまたは複数の制御装置220、ならびにセンサ225およびアクチュエータ230を含むフィールドデバイスを相互接続することができる。プロセス制御システム環境200中の第1のエンジニアリングツール205は、図1の制御装置シミュレータ(制御システム115)と同様に機能することができる制御装置エミュレータ280を含む。制御装置エミュレータ280は、第1のエンジニアリングツール205上で、実際の制御装置のアクションをエミュレートするソフトウェアコンポーネントである。制御装置エミュレータの目的は、制御装置が、模擬製造環境において設計仕様に従って機能するかチェックすることにより、論理のテストをすることにある。
【００２０】
第1のエンジニアリングツール205を使用して、制御装置220用の制御装置プログラムを定義し、テストし、文書化することができる。制御装置の論理の正確性をテストするテストケースを作成するために使用されるとき、第1のエンジニアリングツール205を使用して、そのテストケースを論理シミュレータ、制御装置シミュレータ、または実際の(物理的)制御装置220上で実行させる目的で、ワークステーション210との通信を開始することができる。
【００２１】
ワークステーション210は、作業台250(論理シミュレータ)に機能性を提供するハードウェアおよび/またはソフトウェア、第2のエンジニアリングツール255、ならびにデータベース260(ワークデータベース265およびマスタデータベース270を含む)を含むことができる。
【００２２】
プロセス制御システム環境200は、異なるけれども関連する3つのテスト環境、すなわち、論理シミュレータ(作業台250を使用)、制御装置エミュレータ(第1のエンジニアリングツール205中の)、および実際の(物理的)制御装置220を提供する。テストの最中には、制御装置220はオフライン状態でなければならない(稼働中の製造プロセス中では実行しない)。
【００２３】
図1に示したシステムと同様に、図2に示す論理シミュレータ(作業台250)は、ワークステーション210上でPOUの振舞いをエミュレートするソフトウェアコンポーネントである。論理シミュレータ(作業台250)の目的は、制御装置プログラムの論理が正しく定義されていることを確認し、制御装置プログラムが、制御装置およびフィールドデバイスを設計仕様に従って機能することができるようにすることをチェックすることである。論理シミュレータ(作業台250)は、変数および他のデータを、必要に応じて、テストケースの実行中にワークデータベース265から読み出すことができる。
【００２４】
制御装置エミュレータ(第1のエンジニアリングツール205中の)は、第1のエンジニアリングツール205上で実際の制御装置のアクションをエミュレートするソフトウェアコンポーネントである。制御装置エミュレータの目的は、制御装置が、模擬製造環境において設計仕様に従って機能するかチェックすることにより、制御装置プログラムの論理をテストすることにある。制御装置エミュレータは、変数および他のデータを、必要に応じて、テストケースの実行中にマスタデータベース270から読み出すことができる。
【００２５】
制御装置220により、制御装置が実際の製造環境において設計仕様に従って機能することをチェックすることによって、制御装置プログラムをテストすることが可能となる。制御装置220は、変数および他のデータを、必要に応じて、テストケースの実行中にマスタデータベース270から読み出すことができる。
【００２６】
実際の製造プロセス制御中に、制御装置は、トリガイベント(変数の異常値、逸脱など)だけでなく事前定義された制御アクションに基づいて機能する。定義されたテストケースを使用するテスト手順により、様々なシナリオを投入することができ、制御装置プログラムがどのように振る舞うか、また、コマンドを制御装置およびフィールドデバイスに送信するためにどのような出力が制御装置プログラムによって生成されるかをテストすることができる。
【００２７】
図1および図2に示した実施形態において、論理シミュレータ、制御装置シミュレータ/エミュレータ、および物理的制御装置は、通常、テストするために手動でセットアップされ、テスト自体も手動操作によって実行される。各テストは、各制御装置および各テスト対象(論理シミュレータ、制御装置シミュレータ/エミュレータ、および物理的制御装置)ごとに個別に実行される。たとえば、特定のテストのセットアップの一部として、ユーザは特定のシミュレータを手動でセットアップし、テスト対象(おそらくはデータエクストラクタを介して)と通信することとなるデータベース(ワークデータベースまたはマスタデータベース)を選択し、次いで、選択されたシミュレータに対してテストケースを手動で実行することができる。
【００２８】
図5は、手動モードで論理シミュレータをテストするための通信/コマンドフローを示す。第1のエンジニアリングツール505のユーザはテストケースを作成し、第2のエンジニアリングツール515を介して、制御装置01論理シミュレータ520と通信を行う。テスト工程の一部として、ユーザは、第2のエンジニアリングツール515を介して、第1のエンジニアリングツール510を使用してテストケース中の値を変更するために、制御装置01論理シミュレータ520と対話する。
【００２９】
図6は、手動モードで制御装置シミュレータをテストするための通信/コマンドフローを示す。この場合も、第1のエンジニアリングツール605のユーザはテストケースを作成し、第2のエンジニアリングツール615を介して、制御装置01シミュレータ625、制御装置02シミュレータ630、および制御装置03シミュレータ635と通信を行う。テスト工程の一部として、ユーザは、第2のエンジニアリングツール615を介して、第1のエンジニアリングツール610を使用してテストケース中の値を変更するために、制御装置シミュレータと対話する。
【００３０】
図7は、手動モードで物理的制御装置をテストするための通信/コマンドフローを示す。今度の場合も、第1のエンジニアリングツール705のユーザはテストケースを作成し、第2のエンジニアリングツール715を介して、物理的制御装置01 725、物理的制御装置02 730、および物理的制御装置03 735と通信を行う。テスト工程の一部として、ユーザは、第2のエンジニアリングツール715を介して、第1のエンジニアリングツール710を使用してテストケース中の値を変更するために、物理的制御装置と対話する。
【００３１】
さらに、図1および図2に示した実施形態において、エンジニアリングツールが複数の制御装置と通信するとき、テスト手順を監視するために制御装置から読み出されるデータが、正確に表示されない場合がある。これにより、ユーザが次に続くテストケース用のテスト変数を調整する機能が弱体化する。これにより、テストの効率性および信頼性が低下する。
【００３２】
最後に、シミュレータ/エミュレータと通信するための通信プロトコルは、物理的制御装置の通信プロトコルと相違する場合があるので、シミュレータ/エミュレータと物理的制御装置のテストは、通信プロトコルが異なるために別々でのみ実行される。
【００３３】
いくつかのセットアップにおいて、第1のエンジニアリングツール205は、図2のように、制御装置エミュレータ280を含む。制御装置エミュレータ280は、図1のように、制御装置シミュレータ115の代わりにテストすることができる。このことは、物理的制御装置と異なる通信プロトコルを有する制御装置シミュレータ115に対して、追加の通信をセットアップする必要がないので、テストするにはより便利な場合がある。しかしながら、エミュレータをテストすることは効率が良くないことは、当業者にはよく知られている。
【００３４】
図9は、改良されたテストシナリオ900用の通信/コマンドフローを示す。改良されたテストシナリオ900において、テストケースのソース905(これはエンジニアリングツール、ロジックビルダ(logic builder)、またはテスタとすることができる)は、データベース910、および個々のテストマネージャインスタンス915a、915b、および915cと通信することができる。エンジニアリングツールの機能は、入出力データを構成し、セットアップし、かつ、制御装置との間で入出力データを書き込み、読み出すことができるようにすることである。ロジックビルダの機能は、制御装置用のPOUを作成することである。テスタの機能は、制御装置を検証/テストすることである。各テストマネージャインスタンス915a、915b、および915cは、制御装置925a、925b、および925cと通信するためのインタフェース920a、920b、および920cを含む(ここで、各制御装置は関連した論理シミュレータ、制御装置シミュレータ、ならびに物理的制御装置を有することができる)。
【００３５】
さらに別のシナリオを図3に示す。図3において、プロセス制御システム環境300は、第1のエンジニアリングツール305と、ワークステーション310と、制御システム315(制御装置シミュレータ)と、複数の制御装置320a、320b、および320cと、センサ325a、325b、および325c、ならびにアクチュエータ330a、330b、および330cを含む複数のフィールドデバイスとを含む。制御装置320a、320b、および320cは、プロセス制御システム環境300内でフィールドデバイスを介してプロセスを制御する。事務所/企業ネットワーク335を使用して、第1のエンジニアリングツール305およびワークステーション310を含むプロセス制御システム環境300の様々なコンポーネントを相互接続することができる。制御ネットワーク340を使用して、制御装置320a、320b、および320cをワークステーション310および制御システム315に相互接続することができる。フィールドネットワーク345を使用して、1つまたは複数の制御装置320a、320b、および320cと、センサ325a、325b、および325c、ならびにアクチュエータ330a、330b、および330cを含むフィールドデバイスとを相互接続することができる。
【００３６】
ワークステーション310は、作業台350(論理シミュレータ)に機能性を提供するハードウェア回路および/またはソフトウェアと、第2のエンジニアリングツール355と、データベース360(ワークデータベース365a、365b、および365c、ならびにマスタデータベース370a、370b、および370cを含む)とを含むことができる。ワークステーション310はまた、コンピュータ可読命令を記憶する非一時的なコンピュータ可読媒体を含むことができ、これがワークステーション310により実行されて本明細書に記載の諸機能を実施する。
【００３７】
図3に示したプロセス制御システム環境300はまた、第2のエンジニアリングツール355の一部として1つまたは複数のテストマネージャインスタンスを含み得るテストマネージャを含む。複数のテストマネージャインスタンスを使用することにより、制御装置320a、320b、および320c用の検証およびテスト工程を改善および効率化することができる。たとえば、第2のエンジニアリングツール355中の各テストマネージャインスタンスは、テストの信頼性と効率性を向上させるために、第1のエンジニアリングツール305中のテストケースのソースと制御装置320a、320b、および320cとの間に、データ通信用の通信構造を含むことができる。各テストマネージャインスタンス中の通信構造は、指定されたテスト対象においてテストケースを開始するために、第1のエンジニアリングツール305からのテスト要求を適切な命令に変換することができる。さらに、第2のエンジニアリングツール355中の各テストマネージャインスタンスは、ワークデータベース365a、365b、および365c、ならびにマスタデータベース370a、370b、および370cの個々のインスタンスを識別し、使用する機能を含むことができる。ここで、各データベースインスタンスは、特定の制御装置と関連付けられてもよい。これにより、テストを実施するための変数および他のデータを抽出する効率性の向上が図られ得る。さらに、第2のエンジニアリングツール355中の各テストマネージャインスタンスにより、オフラインモードでのテストが可能となり得る。
【００３８】
第2のエンジニアリングツール355中の各テストマネージャインスタンスは、バリデータ390を含むことができる。このバリデータは、対象デバイスの正当性(対象が制御装置の場合、この制御装置は正当であるためにはオフライン状態でなければならない)を求める第1のエンジニアリングツール305からのテスト要求をチェックするのに使用することができ、対象に書き込まれ、対象から読み出されるデータをチェックする。
【００３９】
第2のエンジニアリングツール355中の各テストマネージャインスタンスはまた、監視機能395を含むことができ、これは発行済みデータ(テストケースの実行中にテスト対象によって生成されたデータ)を連続的に読むために使用することができる。監視機能395はまた、第1の時点における発行済みデータと第2の時点における発行済みデータとの差(Nt対Nt-1)を計算し、差がある場合には通知を生成することができる。たとえば、t時点の変数Nのデータ値が、t-1時点のNのデータ値と等しい場合(Nt=Nt-1)、通知は生成されない。しかし、t時点の変数Nのデータ値が、t-1時点のNのデータ値と等しくない場合(Nt≠Nt-1)、通知は生成される。いくつかの実施形態において、差が所定の閾値よりも大きい場合にのみ通知が生成され得る。他の実施形態において、連続するデータ値が所定の回数を超えて差が所定の閾値よりも大きい場合にのみ通知が生成され得る。他の実施形態において、t時点とt-1時点(Nt≠Nt-1)のデータ値間にいくらかの差がある場合、アラートが生成され得る。
【００４０】
いくつかの実施形態において、監視機能395およびバリデータ390は、別個のプロセッサまたはプロセッサ要素(コア)に実装され得、各テストマネージャインスタンスにおいて並列、平行処理が可能となる。これにより、図1および図2に示した諸実施形態にわたって、重要な改良がもたらされる。というのは、ユーザは、テストケースの実行中に対象制御装置から読み出されるデータを、リアルタイムで見る必要があるからである。各テストマネージャインスタンスは、1度に1つの制御装置とのみ通信可能であるので、監視機能395およびバリデータ390の並行処理は、同じ制御装置に対してである。
【００４１】
第2のエンジニアリングツール355はまたアービタ385を含むことができ、これは、複数のテストマネージャインスタンス、および複数の制御装置が、テストするために接続されるとき使用することができる。アービタ385は、待ち行列の優先順序を管理することができ、いくつかの実施形態において、1つのテスト対象が、次の対象についてのテストケースがスタートする前に、テストケースを完了できるようにする。これにより、複数の制御装置をテストする信頼性および効率性の向上が図られ得る。
【００４２】
第2のエンジニアリングツール355のいくつかの実施形態において、各テストマネージャインスタンスは、別個のプロセッサまたはプロセッサ要素として実装され得、それぞれ制御装置320a、320b、および320cのうちの1つと専用の通信リンクを有する。こうした実施形態において、制御装置320a、320b、および320cのうちのそれぞれは、関連する論理シミュレータ、制御装置シミュレータ、および物理的制御装置を有し、これらは皆、事前定義された順序でテストされる。
【００４３】
いくつかの実施形態において、第2のエンジニアリングツール355中の各テストマネージャインスタンスは、ソース(第1のエンジニアリングツール305など)からテストケースに基づく要求を受け取る。第2のエンジニアリングツール355中のテストマネージャインスタンスは、テストコマンドの形式のテスト要求を受け取ることができる。テスト対象に関する情報を識別するために、テストマネージャについては構成ファイルを使用することができる。この情報は、対象のタイプ(論理シミュレータ、制御装置シミュレータ、および物理的制御装置)、対象のアドレス、および対象の接続性(通信プロトコル)を含むことができる。
【００４４】
図8は1つの可能な構成ファイルの簡略化された構成を示す。構成ファイル805は、対象のアドレス810、対象の制御装置タイプ815、および対象の接続性820(通信プロトコル)を含む。
【００４５】
図4はプロセス制御システムのテスト方法400のための流れ図を示す。テストフローはステップ405で始まり、ここでは、少なくとも1つのテストケース、ならびに関連したテスト要求および任意選択で監視要求が、1つまたは複数の制御装置、ならびに関連のある論理シミュレータおよび制御装置シミュレータをテスト(および監視)するために受け取られる。通常、少なくとも1つのテストケースが、プロセス制御システム中の各制御装置(論理シミュレータ、制御装置シミュレータ、および物理的制御装置を含む)に対して定義されよう。論理シミュレータ、制御装置シミュレータ、および物理的制御装置は、テストするために事前定義された順序でセットアップされよう。
【００４６】
テスト方法400のステップ410において、テスト要求に適した対象が識別される。いくつかの実施形態において、テストマネージャは、構成ファイルを使用してテスト対象についての情報を識別する。この情報は、対象のタイプ、対象のアドレス、接続性(たとえば通信プロトコル)を含むことができる。識別されたテスト対象は、どのテストマネージャがテスト要求を処理するか決定することができる。
【００４７】
テスト方法400のステップ415において、テスト要求は、適切な対象に送られる一連の命令に変換される。
【００４８】
テスト要求のみが受け取られた場合(監視要求は無し)、テストマネージャインスタンス中のバリデータのみが、この時点からテスト要求の正当性を引き続きチェックする。テスト要求と監視要求の両方が受け取られた場合、先に述べたように、検証と監視は、1つまたは複数のプロセッサまたはプロセッサ要素(コア)上に実装することができるので、それらが並行して実行される。
【００４９】
テスト方法400のステップ420において、テストマネージャインスタンス中のバリデータは、テスト要求が正しいことをチェックする。テスト要求は、指定された対象が正しい場合、すなわち、対象が制御ネットワーク中またはフィールドネットワーク中に存在する場合に正しい。対象が物理的制御装置の場合、対象は、その制御装置がオフライン状態(能動的にプロセスを制御しない)の場合にのみ正しい。対象が正しくない場合、要求は実行されず、ユーザインタフェースにメッセージが生成され得る。
【００５０】
テスト方法400のステップ425において、テストマネージャインスタンスは、対象の制御装置、または関連した論理シミュレータもしくは制御装置シミュレータ中のテストケースの実行を開始する。
【００５１】
並行して、テスト方法400のステップ430において、テストマネージャインスタンスは、監視要求がテスト要求と共に受け取られたとき、そのテストケースを実行している最中に対象によって作成された作成済みデータを監視する。
【００５２】
テスト方法400のステップ435において、先に詳細に説明したように、テストマネージャインスタンスは、第1の時点から第2の時点までのデータの差(Nt対Nt-1)をチェックする。
【００５３】
テスト方法400のステップ440において、テストマネージャインスタンスは、監視されたデータ中に差(Nt≠Nt-1)が存在する場合に通知を生成する。
【００５４】
テスト方法400のステップ445においてテストケースが完了すると、この方法は追加のテスト要求が待ち状態にあるか判定する。追加のテスト要求が待ち状態にある場合、フローはステップ410に戻って次のテスト要求の処理を開始する。
【００５５】
テストケースの実行はステップ445に到達するまで継続することが、完全に許容可能であることに留意されたい。この場合、ステップ430、435、および440の監視機能は、次のテスト要求が取り扱われている間中は継続可能である。先に述べたように、監視機能395およびバリデータ390は、別個のプロセッサまたはプロセッサ要素(コア)中に実装され、各テストマネージャインスタンスにおいて、並列、平行動作が可能となる。
【００５６】
ステップ430、435、および440の監視機能は、ステップ420の検証とは異なるプロセッサまたはプロセッサ要素上に実装することができる。これにより、テストケースの並列実行、およびこのテストケースによって作成されたデータの非同期読み出しが可能となる。これにより、ユーザが、テストケースの実行中に対象から読み出されるデータを、リアルタイムに見ることが可能となる。
【００５７】
また、先に述べたように、各テストマネージャインスタンスは、特定の制御装置と関連した特定のデータベースインスタンスを識別することができる。これにより、異なるデータベースインスタンス間で交換することによって、テストを実行するための変数を抽出する効率を向上させることができる。いくつかの実施形態において、データベースの複数のインスタンスは、さらにアクセス可能性を向上させるために、テストマネージャインスタンス内に記憶される。
【００５８】
図10は、第1のエンジニアリングツール305、ワークステーション310、および第2のエンジニアリングツール355など、例示のコンピューティングデバイス1000の機能ブロック図であり、これらすべては、本明細書に記述の技術を実装するために使用することができる。コンピューティングデバイス1000とは、ラップトップ、デスクトップ、ワークステーション、携帯情報端末、サーバ、ブレードサーバ、メインフレーム、および他の適切なコンピュータなど、様々な形式のデジタルハードウェアを意味する。ここに示したコンポーネント、その回路、接続および関係、ならびにその機能は、例示のみを意図したものであり、制限しようとするものではない。
【００５９】
コンピューティングデバイス1000は、1つまたは複数のプロセッサ1001(ここで、各プロセッサは1つまたは複数のプロセッサ回路、素子またはコアを含むことができる)、メモリ1002、キャッシュ1003、記憶デバイス1004、複数の高速拡張ポート1016に接続した高速インタフェース1012、および、低速拡張ポート1014に接続した低速インタフェース1010を含むことができる。プロセッサ1001、メモリ1002、キャッシュ1003、記憶デバイス1004、高速インタフェース1012、高速拡張ポート1016、および低速インタフェース1010のそれぞれは、通信バス1026など様々なバスを使用して相互に接続され、共通のマザーボード上にまたは他の適切な方法で装着することができる。
【００６０】
プロセッサ1001は、高速インタフェース1012に接続されたディスプレイ1008など、外部入力/出力デバイス上のGUI用の画像情報を表示するために、メモリ1002または記憶デバイス1004に記憶された命令を含む、コンピューティングデバイス1000内で実行するための命令を処理することができる。他の実装形態において、複数のメモリおよび各種メモリと共に、必要に応じて多重バスを使用することができる。また、複数のコンピューティングデバイスを、各デバイスが一部の必要な動作を提供した状態で、接続することができる(たとえば、サーババンク(server bank)、一群のブレードサーバ、またはマルチプロセッサシステムとして)。
【００６１】
メモリ1002は、コンピューティングデバイス1000内で情報を記憶する。いくつかの実装形態において、メモリ1002は、1つまたは複数の揮発性メモリユニットである。いくつかの実装形態において、メモリ1002は、1つまたは複数の不揮発性メモリユニットである。メモリ1002はまた、磁気ディスクまたは光ディスクなど、別の形式のコンピュータ可読媒体とすることができる。
【００６２】
キャッシュ1003は、メモリ1002からデータにアクセスする平均時間またはエネルギを削減するために、プロセッサ1001によって使用される。キャッシュ1003は一般に、メモリ1002に比べて小型で高速である。キャッシュ1003は、メモリ1002内の頻繁に使用される場所からのデータのコピーを記憶する。キャッシュ1003は、独立キャッシュとすることができ、命令キャッシュおよびデータキャッシュを含むことができる。データキャッシュは、複数のキャッシュレベルの階層として構築することができる。プロセッサ1001が、メモリ1002内のある場所との間で読み書きする必要があるとき、最初にデータのコピーがキャッシュ1003内にあるかチェックする。ある場合には、プロセッサ1001はキャッシュ1003との間で読み書きするが、これはメモリ1002との間の読み書きに比べてはるかに速い。
【００６３】
記憶デバイス1004は、コンピューティングデバイス1000に大容量の記憶を提供することができる。いくつかの実装形態において、記憶デバイス1004は、フロッピーディスクデバイス、ハードディスクデバイス、光ディスクデバイス、テープデバイス、フラッシュメモリもしくは他の同様な固体メモリデバイス、または、ストレージエリアネットワーク中もしくは他の構成中のデバイスを含むデバイスのアレイなどの、コンピュータ可読媒体とすること、または、コンピュータ可読媒体を含むことができる。命令は情報キャリア中に記憶することができる。1つまたは複数の処理デバイス(たとえば、プロセッサ1001)によって実行されるとき、命令は、先に述べた方法など1つまたは複数の方法を実施する。命令はまた、コンピュータ可読媒体または機械可読媒体(たとえば、メモリ1002、記憶デバイス1004、またはプロセッサ1001上のメモリ)など、1つまたは複数の記憶デバイスによって記憶することができる。
【００６４】
高速インタフェース1012は、コンピューティングデバイス1000用の大量の帯域幅を必要とする動作を管理し、一方、低速インタフェース1010は、より少ない帯域幅を必要とする動作を管理する。こうした機能の割り当てはほんの一例である。いくつかの実装形態において、高速インタフェース1012は、ディスプレイ1008(たとえば、画像プロセッサまたはアクセラレータを介して)、および、様々な拡張カードを受け入れることが可能な高速拡張ポート1016に接続される。一実装形態において、低速インタフェース1010は低速拡張ポート1014に接続される。様々な通信ポート(たとえば、USB、Bluetooth(登録商標)、イーサネット(登録商標)、無線イーサネット(登録商標))を含むことが可能な低速拡張ポート1014は、キーボード、ポインティングデバイス、スキャナ、または、たとえばネットワークアダプタを介するスイッチもしくはルータなどのネットワーキングデバイスといった、1つまたは複数の入力/出力デバイス1018に接続することができる。
【００６５】
コンピューティングデバイス1000はまた、ネットワーク1099とインタフェースをとるネットワーク制御装置1006を含む。周知のように、ネットワーク1099は、インターネットなど公衆ネットワーク、または、LANもしくはWANネットワークなど専用ネットワーク、または、それらの任意の組合せとすることができ、また、PSTNまたはISDNサブネットワークも含むことができる。ネットワーク1099はまた、イーサネット(登録商標)ネットワークなど有線、または、EDGE、3Gおよび4G無線セルラーシステムを含むセルラーネットワークなど無線とすることができる。無線ネットワークはまた、Wi-Fi、Bluetooth(登録商標)、または既知の任意の他の無線通信形式とすることができる。
【００６６】
図10のコンピューティングデバイスは、記憶デバイス1004を有するものとして記述されているが、特許請求された提案は、記述されたプロセスの命令が記憶されるコンピュータ可読媒体の形式によっては制限されない。たとえば、命令は、CD、DVD、フラッシュメモリ、RAM、ROM、PROM、EPROM、EEPROM、ハードディスク、またはコンピューティングデバイスが通信することができる任意の他の情報処理デバイスに記憶することができる。
【００６７】
他の代替実施形態において、本開示による処理機能は、ハードウェア、ソフトウェアソリューション、またはそれらの組合せとして実装され、商品化することができる。さらに、本明細書に記述のプロセスに対応する命令は、安全なプロセスをホスティングするUSBフラッシュドライブなど、携帯ドライブに記憶することができる。
【００６８】
本明細書に記述のプロセスに関連したコンピュータプログラム(プログラム、ソフトウェア、ソフトウェアアプリケーション、またはコードとしても知られる)は、プログラマブルプロセッサ用の機械語命令を含み、高水準手続き型プログラミング言語、および/もしくは、オブジェクト指向プログラミング言語を使用して、ならびに/または、アセンブリ言語/機械語を使用して実装することができる。本明細書で使用する場合、機械可読媒体およびコンピュータ可読媒体という用語は、機械語命令および/またはデータを、機械可読信号として機械語命令を受け取る機械可読媒体を含むプログラマブルプロセッサに提供するために使用される、任意のコンピュータプログラム製品、装置、および/または、デバイス(たとえば、磁気ディスク、光ディスク、メモリ、プログラマブルロジックデバイス(PLD))を指す。機械可読信号という用語は、機械語命令および/またはデータを、プログラマブルプロセッサに提供するために使用される任意の信号を指す。
【００６９】
ユーザとの対話を提供するために、本明細書に記述のシステムおよび技術は、情報をユーザに表示するためのディスプレイ1008(たとえば、CRT(陰極線管)またはLCD(液晶ディスプレイ)モニタ)、ならびに、ユーザが入力をコンピュータに提供することができるキーボード、およびポインティングデバイス1018(たとえば、マウスまたはトラックボール)を有するコンピュータ上に実装することができる。他の種類のデバイスも、ユーザとの対話を提供するために使用することができる。たとえば、ユーザに提供されるフィードバックは、任意の形式の感覚フィードバック(たとえば、視覚フィードバック、聴覚フィードバック、または触覚フィードバック)とすることができ、ユーザからの入力は、音響、音声または触覚入力を含む任意の形式で受け取ることができる。
【００７０】
本明細書に記述のシステムおよび技術は、バックエンドコンポーネント(たとえば、データサーバとして)、またはミドルウェアコンポーネント(たとえば、アプリケーションサーバ)、またはフロントエンドコンポーネント(たとえば、ユーザがそれらを通して本明細書に記述のシステムおよび技術の実装と対話することができるグラフィカルユーザインタフェースまたはウェブブラウザを有するクライアントコンピュータ)、またはこうしたバックエンド、ミドルウェア、またはフロントエンドコンポーネントの任意の組合せを含む、コンピューティングシステムに実装することができる。システムのコンポーネントは、デジタルデータ通信(たとえば、通信ネットワーク)の任意の形式または媒体によって、相互に接続することができる。通信ネットワークの例としては、ローカルエリアネットワーク(LAN)、広域ネットワーク(WAN)、およびインターネットがある。
【００７１】
コンピューティングシステムは、クライアントおよびサーバを含むことができる。クライアントおよびサーバは一般に、相互に離れており、通常、通信ネットワークを介して対話する。クライアントとサーバの関係は、それぞれのコンピュータ上で実行し、相互にクライアント/サーバ関係を有するコンピュータプログラムによって生ずる。
【００７２】
いくつかの実装形態について説明してきた。それでもなお、様々な変更形態が、本開示の趣旨および範囲から離れることなく実施できることは理解されよう。たとえば、開示された技術のステップが異なる順序で実施されたとしても、開示されたシステムのコンポーネントが異なる方法で結合されたとしても、コンポーネントが他のコンポーネントによって置き換えられ、または追加されたとしても、好ましい結果が達成できるであろう。本明細書に記述の機能、プロセス、およびアルゴリズムは、本明細書に記述の機能、プロセス、およびアルゴリズムを実行するためのプログラムコード、および/またはコンピュータ命令を実行するように構成された、コンピュータプロセッサ、および/またはプログラマブル回路を含む、ハードウェアまたはハードウェアによって実行されるソフトウェアによって実行することができる。さらに、ある実装形態は、記述されたモジュールまたはハードウェアと等しくないモジュールまたはハードウェアに基づいて実行することができる。したがって、他の実装形態は、特許請求され得る範囲内にある。
【符号の説明】
【００７３】
100  第1のプロセス制御システム環境
105  第1のエンジニアリングツール
110  ワークステーション
115  制御システム(制御装置シミュレータ)
120  制御装置
125  センサ
130  アクチュエータ
135  事務所/企業ネットワーク
140  制御ネットワーク
145  フィールドネットワーク
150  作業台(論理シミュレータ)
155  第2のエンジニアリングツール
160  データベース
165  ワークデータベース
170  マスタデータベース
175  データ/記号エクストラクタ
200  プロセス制御システム環境
205  第1のエンジニアリングツール
210  ワークステーション
220  制御装置
225  センサ
230  アクチュエータ
235  事務所/企業ネットワーク
240  制御ネットワーク
245  フィールドネットワーク
250  作業台
255  第2のエンジニアリングツール
260  データベース
265  ワークデータベース
270  マスタデータベース
280  制御装置エミュレータ
300  プロセス制御システム環境
305  第1のエンジニアリングツール
310  ワークステーション
315  制御システム315(制御装置シミュレータ)
320a  制御装置
320b  制御装置
320c  制御装置
325a  センサ
325b  センサ
325c  センサ
330a  アクチュエータ
330b  アクチュエータ
330c  アクチュエータ
335  事務所/企業ネットワーク
340  制御ネットワーク
345  フィールドネットワーク
350  作業台(論理シミュレータ)
355  第2のエンジニアリングツール
360  データベース
365a  ワークデータベース
365b  ワークデータベース
365c  ワークデータベース
370a  マスタデータベース
370b  マスタデータベース
370c  マスタデータベース
385  アービタ
390  バリデータ
395  監視機能
505  第1のエンジニアリングツール
510  第1のエンジニアリングツール
515  第2のエンジニアリングツール
520  制御装置01論理シミュレータ
605  第1のエンジニアリングツール
610  第1のエンジニアリングツール
615  第2のエンジニアリングツール
625  制御装置01シミュレータ
630  制御装置02シミュレータ
635  制御装置03シミュレータ
705  第1のエンジニアリングツール
710  第1のエンジニアリングツール
715  第2のエンジニアリングツール
725  物理的制御装置01
730  物理歴制御装置02
735  物理的制御装置03
805  構成ファイル
810  対象のアドレス
815  対象の制御装置
820  対象の接続性
900  テストシナリオ
905  テストケースのソース
910  データベース
915a  テストマネージャインスタンス
915b  テストマネージャインスタンス
915c  テストマネージャインスタンス
920a  インタフェース
920b  インタフェース
920c  インタフェース
925a  制御装置
925b  制御装置
925c  制御装置
1000  コンピューティングデバイス
1001  プロセッサ
1002  メモリ
1003  キャッシュ
1004  記憶デバイス
1006  ネットワーク制御装置
1008  ディスプレイ
1010  低速インタフェース
1012  高速インタフェース
1014  低速拡張ポート
1016  高速拡張ポート
1018  入力/出力デバイス
1026  通信バス
1099  ネットワーク
【図１】
2018067282.tif 000003
【図２】
2018067282.tif 000004
【図３】
2018067282.tif 000005
【図４】
2018067282.tif 000006
【図５】
2018067282.tif 000007
【図６】
2018067282.tif 000008
【図７】
2018067282.tif 000009
【図８】
2018067282.tif 000010
【図９】
2018067282.tif 000011
【図１０】
2018067282.tif 000012
【外国語明細書】
2018067282000001.pdf