(57)【要約】  ＰＬＣ制御機器においてプロセスデータのログを取る方法を開示する。ＰＬＣアプリケーションコードのセクションは、特定の実行速度でプログラム機能を実行するように構成されるタスクを含む。タスクの各々は、タグとして割り当てられる専用メモリ領域を有するプログラム機能を含み、プロセスデータの各データ入力は、タグ値と、関連プロセス値とを含む。この方法は、ＰＬＣアプリケーションコードからプロセスデータを受信するステップと、プロセス値をスレッドプールのスレッドに割り当てるステップと、スレッドの各々に対して、スレッドの各々と関連しているそれぞれのデータテーブルに、受信プロセスデータのタグ値及びプロセス値を受信するステップと、それぞれのデータテーブルのハッシュ関数に従ってタグの各々に対してハッシュコードを判定して、前記ハッシュコードに従ってそれぞれのデータテーブルにタグ値及び関連プロセス値を配列するステップとを含む。【選択図】図１
2020524852.tif 000002
【特許請求の範囲】
【請求項１】
ＰＬＣアプリケーションコードを実行するＰＬＣ制御機器においてプロセスデータのログを取る方法（１００）であって、
前記ＰＬＣアプリケーションコードのセクションは、特定の実行速度でプログラム機能を実行するように構成されるタスク（Ｔ１、Ｔ２）を含み、第１のタスク（Ｔ１）は、前記ＰＬＣアプリケーションコードで第２のタスク（Ｔ２）の第２の実行速度と異なる関連実行速度を有し、
前記タスクの各々は、タグとして割り当てられる専用メモリ領域を有するプログラム機能を含み、
前記プロセスデータの各データ入力は、タグ値（ＴＧ１、ＴＧｎ）と、前記ＰＬＣアプリケーションコードから割り当てられる関連プロセス値（Ｖ１、Ｖｎ）とを含み、
前記ＰＬＣアプリケーションコードからプロセスデータを受信するステップ（１０１）であって、前記第２のタスクと関連しているプロセス値をスレッドプールのスレッド（ＴＲＤ２）にそれぞれ割り当てるステップと並行して、前記第１のタスクと関連しているプロセス値を前記スレッドプールのスレッド（ＴＲＤ１）に割り当てる（１０２）ステップ（１０１）と、
前記スレッドの各々に対して、前記スレッドの各々と関連しているそれぞれのデータテーブル（ＤＴ１、ＤＴ２）に、前記受信プロセスデータの前記タグ値及び前記プロセス値を受信するステップ（１０３）と、
前記それぞれのデータテーブルのハッシュ関数（ＨＦ）に従って前記タグの各々に対してハッシュコード（ＨＣ１、ＨＣｍ）を判定して（１０４）、前記ハッシュコードに従って前記それぞれのデータテーブルに前記タグ値及び前記関連プロセス値を配列するステップ（１０５）と
を含む方法。
【請求項２】
前記ＰＬＣアプリケーションコードから受信される１つ又は複数のプロセス値のうち少なくとも１つの論理演算子又は閾値を含むログ条件（Ｌ１、Ｌ２）の従属で前記プロセスデータに対してロギング事象を判定するステップ（１０６）と、
ロギング事象に対して、前記データテーブルから前記プロセスデータの少なくとも一部を受信するステップ（１０７）と
を含む、請求項１に記載の方法。
【請求項３】
前記ＰＬＣアプリケーションコードから受信される各データ入力に対して、
前記データ入力と関連している前記それぞれのタグの前記受信プロセス値を前記ログ条件と比較して（１０８）、前記データ入力がロギング事象に対して受信されるべきであるかどうかを判定するステップ（１０９）を含む、請求項２に記載の方法。
【請求項４】
前記スレッドの各々に対してログ条件の従属で前記プロセスデータに対して前記ロギング事象を判定するステップ（１１０）を含む、請求項２又は３に記載の方法。
【請求項５】
前記ログ条件を評価するために、前記ＰＬＣアプリケーションコードから受信されるプロセスデータのスタックにプッシュ及び／又はプル演算子を適用するステップ（１１１）を含む、請求項２〜４のいずれか一項に記載の方法。
【請求項６】
前記タグ値及び前記プロセス値に基づいて前記データテーブルに対して前記ハッシュ関数を判定するステップ（１０４）を含む、請求項１〜５のいずれか一項に記載の方法。
【請求項７】
前記タグ値及び前記プロセス値のデータ型に基づいて前記データテーブルに対して前記ハッシュ関数を判定するステップ（１０４）を含む、請求項６に記載の方法。
【請求項８】
タグの数に基づいて前記データテーブルに対して前記ハッシュ関数を判定するステップ（１０４）を含む、請求項１〜７のいずれか一項に記載の方法。
【請求項９】
同じハッシュコードに割り当てられる多数のタグに対して連鎖方法を前記ハッシュ関数に適用するステップ（１１２）を含む、請求項１〜８のいずれか一項に記載の方法。
【請求項１０】
前記第１のタスクは、前記第２のタスクの通信プロトコルと異なる通信プロトコルと関連しており、
前記第１及び第２のタスクから受信されるプロセスデータを、プロトコル特定属性と無関係に並行して受信するように、前記第１及び第２のタスクのそれぞれの通信プロトコルの前記プロトコル特定属性をカプセル化するステップ（１０１’）を含む、請求項１〜９のいずれか一項に記載の方法。
【請求項１１】
前記第１のタスクは、１〜１０ｍｓの範囲にある実行速度を有し、前記第２のタスクは、１００〜１０００ｍｓの範囲にある実行速度を有する、請求項１〜１０のいずれか一項に記載の方法。
【請求項１２】
コンピュータによってプログラムを実行する場合、請求項１〜１１のいずれか一項に記載の方法の前記ステップを前記コンピュータに実行させる命令を含むコンピュータプログラム製品。
【請求項１３】
ＰＬＣアプリケーションコードを実行するＰＬＣ制御機器においてプロセスデータのログを取るように構成されている装置（２００）であって、
前記ＰＬＣアプリケーションコードのセクションは、特定の実行速度でプログラム機能を実行するように構成されているタスク（Ｔ１、Ｔ２）を含み、第１のタスク（Ｔ１）は、前記ＰＬＣアプリケーションコードで第２のタスク（Ｔ２）の第２の実行速度と異なる関連実行速度を有し、
前記タスクの各々は、タグとして割り当てられる専用メモリ領域を有するプログラム機能を含み、
前記プロセスデータの各データ入力は、タグ値（ＴＧ１、ＴＧｎ）と、前記ＰＬＣアプリケーションコードから割り当てられる関連プロセス値（Ｖ１、Ｖｎ）とを含み、
前記ＰＬＣアプリケーションコードからプロセスデータを受信する（１０１）ように構成されている第１の処理モジュール（２０１）と、
前記第２のタスクと関連しているプロセス値をスレッドプールのスレッドにそれぞれ割り当てることと並行して、前記第１のタスクと関連しているプロセス値を前記スレッドプールのスレッド（ＴＲＤ１、ＴＲＤ２）に割り当て（１０２）、
前記スレッドの各々に対して、前記スレッドの各々と関連しているそれぞれのデータテーブル（ＤＴ１、ＤＴ２）に、前記受信プロセスデータの前記タグ値及び前記プロセス値を受信し（１０３）、
前記それぞれのデータテーブルのハッシュ関数（ＨＦ）に従って前記タグ値の各々に対してハッシュコード（ＨＣ１、ＨＣｎ）を判定して（１０４）、前記ハッシュコードに従って前記それぞれのデータテーブルに前記タグ値及び前記関連プロセス値を配列する（１０５）ように構成されている第２の処理モジュール（２０２）と
を含む装置。
【請求項１４】
前記第２の処理ユニットは、前記ＰＬＣアプリケーションコードから受信される１つ又は複数のプロセス値のうち少なくとも１つの論理演算子又は閾値を含むログ条件（Ｌ１、Ｌ２）の従属で前記プロセスデータに対してロギング事象を判定し（１０６）、ロギング事象に対して、前記データテーブルから前記プロセスデータの少なくとも一部を受信する（１０７）ように構成されている、請求項１３に記載の装置。
【請求項１５】
前記第１のタスクは、前記第２のタスクの通信プロトコルと異なる通信プロトコルと関連しており、
前記第１の処理ユニットは、前記第１及び第２のタスクから受信されるプロセスデータを、プロトコル特定属性と無関係に並行して受信するように、前記第１及び第２のタスクのそれぞれの通信プロトコルの前記プロトコル特定属性をカプセル化する（１０１’）ように構成されている、請求項１３又は１４に記載の装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は一般的に、プロセスデータのログを取る分野に関する。より詳細には、本発明は、ＰＬＣアプリケーションコードのセクションが、特定の実行速度でプログラム機能を実行するように構成されるタスクを含む、ＰＬＣアプリケーションコードを実行するＰＬＣ制御機器においてプロセスデータのログを取る方法、並びに関連コンピュータプログラム製品、及び、充填機に関連するシステム、又は密封パッケージを製造する関連システムなどにおいてこのようなプロセスデータのログを取るように構成されている装置に関する。
【背景技術】
【０００２】
ＰＬＣ制御機械の性能を維持する又は向上させるために、大量のプロセスデータのログを取る必要がある。このようなプロセスデータのロギング及び解析は、包装容器に充填して包装容器を密封するシステムに使用される機械などのＰＬＣ制御機械の開発プロセスの不可欠な部分である。プロセスデータの処理は、産業用デジタル化において重要な要素であり、従って、完全なプロセス概要を検索する課題と一緒に、このようなシステムの機能及び設計の複雑さが増加する場合（「機械ＤＮＡ」又は「指紋」）、土台である。しかし、上述のロギング技法に関する問題は、これらの機械によって生成されるデータに基づいてこれらのシステムを向上させる際の努力を妨げる。典型的には、実行可能な量の資源をロギング解決策に費やして、複雑なシステムで生成されるデータの一部のログしか取ることができない。様々な手動ロギング解決策が存在しているが、しかし、これらの解決策は、法外な量の資源を消費し、十分に効率的でなく、又は管理できない。特定のアプリケーションに合わせて実施及びカスタマイズされる必要がある独立型解決策は、より自動化されたロギングプロセスを提供することが可能であるものの、全ての利用可能な出力データを検索するのに必要な関連量の資源及びこのような実施の複雑さに苦しむ。上述の複雑さは、例えば、様々なカスタマイゼーション操作用の更なる資源を必要とする、機械制御の既存のインフラストラクチャーとの非互換性から生じることがある。更に、リアルタイムで多数の並行機能を実行する一層複雑なシステムにおいて、上述の独立型解決策は、記録データでかなりの量のジッタ（ｊｉｔｔｅｒ）を発生することが判明している。
【０００３】
従って、ＰＬＣアプリケーションコードを実行するＰＬＣ制御機器においてプロセスデータのログを取る改良方法は、有利であり、特に、より高速且つより安定した効率的なプロセスで、ＰＬＣ制御機器からの、時間とともに増加するデータのロギング及び処理の提供を含む、上述の問題及び妥協案の一層多くを回避することができる。このような改良方法は、より完全で包括的なプロセス概要を介した製造追跡可能性及び製品開発のための実現者としての作業、円滑なトラブルシューティングに対して、より効率的な試運転、即ち、システムの検証及び妥当性確認を可能にする。
【発明の概要】
【発明が解決しようとする課題】
【０００４】
従って、好ましくは、本発明の例は、添付の特許請求の範囲によるデバイスを提供することによって、単独で又は任意の組み合わせで、上述のような当技術分野における１つ又は複数の欠陥、欠点又は問題を軽減、緩和又は解消しようとする。
【課題を解決するための手段】
【０００５】
第１の態様は、ＰＬＣアプリケーションコードを実行するＰＬＣ制御機器においてプロセスデータのログを取る方法を提供する。ＰＬＣアプリケーションコードのセクションは、特定の実行速度でプログラム機能を実行するように構成されるタスクを含み、第１のタスクは、ＰＬＣアプリケーションコードで第２のタスクの第２の実行速度と異なる関連実行速度を有する。タスクの各々は、タグとして割り当てられる専用メモリ領域を有するプログラム機能を含み、プロセスデータの各データ入力は、タグ値と、ＰＬＣアプリケーションコードから割り当てられる関連プロセス値とを含む。この方法は、ＰＬＣアプリケーションコードからプロセスデータを受信するステップであって、前記第２のタスクと関連しているプロセス値をスレッドプールのスレッドにそれぞれ割り当てるステップと並行して、前記第１のタスクと関連しているプロセス値をスレッドプールのスレッドに割り当てるステップを含む。この方法は、スレッドの各々に対して、スレッドの各々と関連しているそれぞれのデータテーブルに、受信プロセスデータのタグ値及びプロセス値を受信するステップと、それぞれのデータテーブルのハッシュ関数に従ってタグの各々に対してハッシュコードを判定して、前記ハッシュコードに従ってそれぞれのデータテーブルにタグ値及び関連プロセス値を配列するステップとを更に含む。
【０００６】
第２の態様は、コンピュータによってプログラムを実行する場合、第１の態様による方法のステップをコンピュータに実行させる命令を含むコンピュータプログラム製品を提供する。
【０００７】
第３の態様は、ＰＬＣアプリケーションコードを実行するＰＬＣ制御機器においてプロセスデータのログを取るように構成されている装置を提供する。ＰＬＣアプリケーションコードのセクションは、特定の実行速度でプログラム機能を実行するように構成されているタスクを含み、第１のタスクは、ＰＬＣアプリケーションコードで第２のタスクの第２の実行速度と異なる関連実行速度を有する。タスクの各々は、タグとして割り当てられる専用メモリ領域を有するプログラム機能を含み、プロセスデータの各データ入力は、タグ値と、ＰＬＣアプリケーションコードから割り当てられる関連プロセス値とを含む。この装置は、ＰＬＣアプリケーションコードからプロセスデータを受信するように構成されている第１の処理モジュールと、第２のタスクと関連しているプロセス値をスレッドプールのスレッドにそれぞれ割り当てることと並行して、前記第１のタスクと関連しているプロセス値をスレッドプールのスレッドに割り当てるように構成されている第２の処理モジュールとを含む。この第２の処理モジュールは、スレッドの各々に対して、スレッドの各々と関連しているそれぞれのデータテーブルに、受信プロセスデータのタグ値及びプロセス値を受信し、それぞれのデータテーブルのハッシュ関数に従ってタグ値の各々に対してハッシュコードを判定して、ハッシュコードに従ってそれぞれのデータテーブルにタグ値及び関連プロセス値を配列するように更に構成されている。
【０００８】
本発明の更なる例は、従属請求項に規定されており、開示の第２及び第３の態様に対する特徴は、第１の態様に関して、変更すべきところは変更する。
【０００９】
開示の幾つかの例は、多数の並行実行機能を有する複雑なＰＬＣ機械システムにおいて増加するプロセスデータのログを取る改良方法を提供する。
【００１０】
開示の幾つかの例は、ＰＬＣシステムにおけるプロセスデータのより高速且つより安定したロギングを提供する。
【００１１】
開示の幾つかの例は、異なるロギング速度を必要とする異なる時間スケール又は領域で実行される複数の機能又はタスクを実行するＰＬＣシステムにおけるプロセスデータの改良ロギングを提供する。
【００１２】
開示の幾つかの例は、機械開発のための改良能力及びＰＬＣ機械システムにおける一層の包括的プロセス理解を得ることを提供する。
【００１３】
開示の幾つかの例は、ＰＬＣシステムでプロセスデータのロギングを実施する際の複雑さを減らすことを提供する。
【００１４】
開示の幾つかの例は、ＰＬＣシステムの機能に対する最小の影響でプロセスデータのロギングを実施することを提供する。
【００１５】
開示の幾つかの例は、既存のＰＬＣシステムに対する最小のインフラストラクチャー変更でプロセスデータのロギングを実施することを提供する。
【００１６】
開示の幾つかの例は、改良製造追跡可能性を提供する。
【００１７】
開示の幾つかの例は、機械の改良及び時間浪費が少ないトラブルシューティング手順を提供する。
【００１８】
開示の幾つかの例は、機械又は機械の開発改良で誤動作を特定する資源の一層効率的な使用を提供する。
【００１９】
開示の幾つかの例は、機械の質を評価する一層効率的な手順を提供する。
【００２０】
この明細書で使用される場合の用語「含む（ｃｏｍｐｒｉｓｅｓ／ｃｏｍｐｒｉｓｉｎｇ）」は、記載の特徴、整数、ステップ又は構成要素の存在を指定し、１つ又は複数の他の特徴、整数、ステップ、構成要素又はこれらのグループの存在又は追加を排除しないことを強調すべきである。
【００２１】
本発明の例が可能であるこれら及び他の態様、特徴及び利点は、添付図面を参照して本発明の例の下記の説明から明白且つ明らかにされよう。
【図面の簡単な説明】
【００２２】
【図１】開示の例によるＰＬＣアプリケーションコードを実行するＰＬＣ制御機器においてプロセスデータのログを取るように構成されている方法及び装置を例示する略図である。
【図２】開示の例による関連データテーブル及びプロセスタグのハッシュコードを判定するステップを例示する略図である。
【図３】開示の例によるプロセスデータのスタックにプッシュ又はプル演算子を適用するステップを例示する略図である。
【図４ａ】開示の例によるＰＬＣアプリケーションコードを実行するＰＬＣ制御機器においてプロセスデータのログを取る方法のフローチャートである。
【図４ｂ】開示の例によるＰＬＣアプリケーションコードを実行するＰＬＣ制御機器においてプロセスデータのログを取るように構成されている装置及び関連方法の略図である。
【図５】開示の例によるＰＬＣアプリケーションコードを実行するＰＬＣ制御機器においてプロセスデータのログを取るように構成されている装置及び関連方法の略図である。
【発明を実施するための形態】
【００２３】
さて、本発明の特定の例について、添付図面を参照して説明する。しかし、この発明は、多くの異なる形態で具体化されてもよく、記載のこれらの例に限定されると解釈されるべきではない。むしろ、この開示が、徹底して完全であり、当業者に本発明の範囲を完全に伝えるように、これらの例を与える。添付図面に例示された例の詳細な説明で使用される用語は、本発明の限定を意図しない。図面において、同様の番号は、同様の要素を意味する。
【００２４】
図４ａは、ＰＬＣアプリケーションコードを実行するＰＬＣ制御機器においてプロセスデータのログを取る方法１００のフローチャートを例示する。方法１００のステップを説明して例示する順序は、限定されると解釈されるべきではなく、これらのステップを様々な順序で実行することができると考えられる。より詳細に後述される図１の略図と併せて、方法１００を更に例示する。
【００２５】
従って、ＰＬＣアプリケーションコードを実行するＰＬＣ制御機器においてプロセスデータのログを取る方法１００を提供する。ＰＬＣ制御機器は、包装容器に充填して包装容器を密封するシステムの機器、及び様々な関連機械であってもよい。ＰＬＣアプリケーションコードを、機器の持続性メモリにダウンロードして、所望のパッケージ機器機能を果たしてもよい。ＰＬＣアプリケーションコードのセクションは、特定の実行速度でプログラム機能を実行するように構成されるタスクＴ１、Ｔ２を含む。どんな種類の機能を必要とするかによって、ＰＬＣアプリケーションを、異なるタスクに分割してもよい。例えば、あまり重要でない他の機能（温度制御など）よりも短い時間スケール（サーボ駆動、水力学など）で、幾つかの機能を実行してもよい。従って、第１のタスクＴ１は、ＰＬＣアプリケーションコードで第２のタスクＴ２の第２の実行速度と異なる関連実行速度を有してもよい。各タスクＴ１、Ｔ２は、「タグ」として割り当てられる専用メモリ領域を有するプログラム機能を含む。ＰＬＣ制御機器から受信されるべきプロセスデータの各データ入力は、タグ、即ち、データ型の所与の名前に対応するタグ値ＴＧ１、…ＴＧｎと、ＰＬＣアプリケーションコードから割り当てられる関連プロセス値Ｖ１、…Ｖｎ（様々なデータ型であってもよい）とを含む。プロセス値Ｖ１、…Ｖｎは、センサー又は他の内部機能などによって生じてもよい。包装容器用の充填機などの機械は、例えば、数千のタグで動作することを必要とする場合がある。方法１００は、ＰＬＣアプリケーションコードからプロセスデータを受信するステップ１０１を含む。ＰＬＣアプリケーションコードを実行するＰＬＣ制御機器においてプロセスデータのログを取るように構成されている装置１００に対して更に後述するように、ＰＬＣ制御機器と通信する通信モジュールなどの処理モジュール２０１を介してＰＬＣ制御機器との接続を確立することによって、プロセスデータを検索する。方法１００は、前記第２のタスクＴ２と関連しているプロセス値をスレッドプールのスレッドＴＲＤ１にそれぞれ割り当てるステップと並行して、第１のタスクＴ１と関連しているプロセス値をスレッドプールのスレッドＴＲＤ１に割り当てるステップ１０２を含む。従って、方法１００及び関連処理モジュール２０１は、異なる実行速度でプログラム機能を実行するように構成されるタスクＴ１、Ｔ２を、異なる実行速度と無関係に、並行して又は同時に、スレッドＴＲＤ１、ＴＲＤ２に割り当てるステップを提供する。従って、異なるタスクに対する様々なロギング速度要件に対応することができる。図１は、処理モジュール２０１がＰＬＣ制御機器との接続を確立する時に、第１及び第２のタスクＴ１、Ｔ２をスレッドＴＲＤ１、ＴＲＤ２にそれぞれ割り当てる例を示す。ＰＬＣへの処理モジュール２０１の各「コールバック」は、新しいプロセスデータがＰＬＣから受信されており、このプロセスデータをスレッドに割り当てることを意味する。タスク及びスレッドの数は任意の複数で変わると考えられる。
【００２６】
方法１００は、スレッドＴＲＤ１、ＴＲＤ２の各々に対して、スレッドＴＲＤ１、ＴＲＤ２の各々と関連しているそれぞれのデータテーブルＤＴ１、ＤＴ２に、ＰＬＣ制御機器から受信されたプロセスデータのタグ値及びプロセス値ＴＧｎ、Ｖｎを受信するステップ１０３を含む。方法１００は、それぞれのデータテーブルＤＴ１、ＤＴ２のハッシュ関数ＨＦに従ってタグの各々に対して（即ち、これらのタグ値ＴＧｎに対して）ハッシュコードＨＣｍを判定して（１０４）、上述のハッシュコードＨＣｍに従ってそれぞれのデータテーブルＤＴ１、ＤＴ２にタグ値ＴＧｎ及び関連プロセス値Ｖｎを配列するステップ１０５を更に含む。これにより、リアルタイムを含む様々な時間領域における多数、例えば数千のタグのロギングを、ＰＬＣ制御機器において実現できるような方法で、プロセスデータを受信して配列する速度が増加する。それぞれのデータテーブルＤＴ１、ＤＴ２のハッシュ関数ＨＦに従ってタグの各々に対してハッシュコードＨＣｍを判定するステップにより、データテーブルＤＴ１、ＤＴ２におけるプロセスデータの構造化を最適化できる。探索動作などの、データテーブルＤＴ１、ＤＴ２におけるその後の動作を、より高速で実行することが可能であり、例えば、更に後述するようなリアルタイム条件ベースのロギングが可能になる。同時に、データテーブルは、全ての汎用型のプロセスデータを処理することができるので、ロギングシステムの複雑さを追加することなく、汎用性が高まる。更に後述するように、処理モジュール２０１から関連スレッドＴＲＤ１、ＴＲＤ２に伝達されるプロセスデータ（例えば、タグの特性）によって、ハッシュ関数ＨＦを判定することができる。図２は、ハッシュ関数ＨＦによって判定されたそれぞれのハッシュコードＨＣｍに従ってタグ値ＴＧｎ及び関連プロセス値をデータテーブルＤＴｎに配列するデータテーブルＤＴｎの１つの例を示す。この例では、タグ値ＴＧ１〜ＴＧ５及びハッシュコードＨＣｍの関連例を示す。更に、データテーブル構造は、例えば、プロセスデータに対する適用探索条件において、論理演算子の特に有利なアプリケーションを可能にする。なぜなら、このような演算子をデータテーブルにおけるデータのスタックに適用できるからである。
【００２７】
図４ｂは、ＰＬＣアプリケーションコードを実行するＰＬＣ制御機器においてプロセスデータのログを取る方法１００の更なるフローチャートを例示する。方法１００のステップを説明して例示する順序は、限定されると解釈されるべきではなく、これらのステップを様々な順序で実行することができると考えられる。方法１００は、ログ条件Ｌ１、Ｌ２の従属でプロセスデータに対してロギング事象を判定するステップ１０６を含んでもよい。ログ条件Ｌ１、Ｌ２は、ＰＬＣアプリケーションコードから受信される１つ又は複数のプロセス値Ｖｎのうち少なくとも１つの論理演算子又は閾値を含む。プロセス値Ｖｎは、データテーブルＤＴ１、ＤＴ２に記憶されたタグから効果的に得られる。方法１００は、ロギング事象に対して、データテーブルＤＴ１、ＤＴ２からプロセスデータの少なくとも一部を受信するステップ１０７を含む。従って、一旦ログ条件を実行すると、ロギング事象が発生し、タグ値及びプロセス値などのプロセスデータを、例えば、図１に概略的に例示する専用ログメモリ２０３に記憶することができる。ログ条件Ｌ１、Ｌ２の従属でプロセスデータに対してロギング事象を判定するステップ１０６は、（データのログを取る場合）ロギングトリガを完全に構成することができることによって、効率的な条件ベースのロギングを提供する。ログ条件Ｌ１、Ｌ２を実行しない場合、処理又は通信モジュール２０１のコールバック中に、データテーブルＤＴ１、ＤＴ２におけるプロセスデータをメモリ２０３に保存しない。ログ条件Ｌ１、Ｌ２による妥当性確認のために、新しいコールバックが到着して新しいプロセスデータをＤＴ１、ＤＴ２に挿入するまで、関連スレッドＴＲＤ１、ＴＲＤ２は、活動状態であり、通信モジュール２０１を介してＰＬＣに接続されたままである。ＰＬＣアプリケーションコードから受信される各データ入力に対して、方法１００は、データ入力と関連しているそれぞれのタグの受信プロセス値Ｖｎをログ条件Ｌ１、Ｌ２と比較して（１０８）、データ入力が、ロギング事象に対して受信される、即ちメモリ２０３に記憶されるべきであるかどうかを判定するステップ１０９を含んでもよい。
【００２８】
ハッシュコードに従ってタグ値及び関連プロセス値をそれぞれのデータテーブルに配列すると、図２に例示され上述のように、判定ログ条件Ｌ１、Ｌ２の効率的な評価が得られる。例えば、同じハッシュコードＨＣｍの下に位置決めされたタグ値ＴＧｎの間で探索する場合、他のハッシュコード位置に記憶された全ての他のタグを、探索から除外する。これにより、条件ベースのロギングは、リアルタイムで高速で、例えば、１〜１０ｍｓ毎の範囲にあるプロセスデータのロギングで、タスクＴ１、Ｔ２及び関連データテーブルＤＴ１、ＤＴ２の全てに対して並行して、動作することができる。従って、ＰＬＣシステムにおけるプロセスデータのより高速且つより安定したロギングを提供する。図３は、上述のハッシュコードＨＣｍに従ってタグ値及び関連プロセス値をそれぞれのデータテーブルに配列した場合に特に有益である、更に後述される、スタック化レジスタ構造における論理演算子を用いてログ条件Ｌを評価する例を示す。
【００２９】
従って、装置１００の第２の処理ユニット２０２は、ＰＬＣアプリケーションコードから受信される１つ又は複数のプロセス値のうち少なくとも１つの論理演算子又は閾値を含むログ条件Ｌ１、Ｌ２の従属でプロセスデータに対してロギング事象を判定する（１０６）ように構成され、ロギング事象に対して、データテーブルＤＴ１、ＤＴ２からプロセスデータの少なくとも一部を受信する（１０７）ように構成されていてもよい。
【００３０】
方法１００は、スレッドＴＲＤ１、ＴＲＤ２の各々に対してログ条件Ｌ１、Ｌ２の従属でプロセスデータに対してロギング事象を判定するステップ１１０を含んでもよい。これを、図１に概略的に例示し、ログ条件Ｌ１は、第１のスレッドＴＲＤ１及びそれぞれのデータテーブルＤＴ１と関連しており、ログ条件Ｌ２に対して、逆もまた同様である。
【００３１】
再度、図３の略図について参照する。方法１００は、ログ条件Ｌ１、Ｌ２を評価するために、ＰＬＣアプリケーションコードから受信されるプロセスデータのスタックにプッシュ及び／又はプル演算子を適用するステップ１１１を含んでもよい。図示の例において、「ｘ」、「ｙ」及び「ｚ」として与えられるプロセス値Ｖｎの閾値及び論理演算子を用いて、ログ条件Ｌを評価する。データスタックを、左から右に評価する。タグ値（例えば、ＴＧ１）及びプロセス値（例えば、「ｘ」）を入力し、続いて、論理演算子（例えば、「＝＝」）を入力し、評価条件（例えば、「Ｃ１」）に達する。その後、次のタグ値及びプロセス値、及び演算子を、スタックに適用して、最終評価条件（この例では、「Ｃ５」）に達する。このような演算子をプロセスデータのスタックに適用することによって、ログ条件Ｌ１、Ｌ２の論理演算を実行すると、条件を評価する際の複雑さが減少して、評価ステップが促進される。従って、プロセスデータの条件付きロギングを、ＰＬＣ機器がデータを伝達する所望の速度で実行することができる。
【００３２】
方法１００は、タグ値ＴＧｎ及びプロセス値Ｖｎに基づいて、データテーブルＤＴ１、ＤＴ２に対してハッシュ関数ＨＦを判定するステップ１０４を含んでもよい。従って、タグ値ＴＧｎ及びプロセス値Ｖｎなどのタグの特性を考慮して、上述の値を、最適化ハッシュ関数ＨＦに従ってそれぞれのデータテーブルＤＴ１、ＤＴ２に配列してもよい。従って、プロセス値の伝達のためにＰＬＣ機器との接続を確立した場合、処理モジュール２０１から伝達されるタグ値ＴＧｎ及びプロセス値Ｖｎに関する情報に基づいて、ハッシュ関数ＨＦを、最適化又は選択してもよい。ハッシュ関数ＨＦの最適化選択により、探索時間が短縮され、条件ベースのロギングを実行することができる速度が増加する。
【００３３】
方法１００は、タグ値ＴＧｎ及びプロセス値Ｖｎのデータ型（例えば、ブール、整数、実数など）に基づいて、データテーブルＤＴ１、ＤＴ２に対してハッシュ関数ＨＦを判定するステップ１０４を含んでもよい。これにより、ハッシュ関数ＨＦの更なる最適化選択が行われ、その結果、タグ及び関連ハッシュコードＨＣｍが、データ型に最適化されたそれぞれのデータテーブルＤＴ１、ＤＴ２に配列される。
【００３４】
更に、方法１００は、タグＴＧｎの数に基づいて、データテーブルＤＴ１、ＤＴ２に対してハッシュ関数ＨＦを判定するステップ１０４を含んでもよい。有利なことに、これにより、データ構造の以後のサイズ変更の必要がなくなり得る。なぜなら、タグの量は、ＰＬＣ機器への処理モジュール２０１の初期コールバック接続から既に既知であるからである。従って、より高速且つより安定したロギングを実現することができる。
【００３５】
方法１００は、同じハッシュコードＨＣｍに割り当てられる多数のタグＴＧｎに対して連鎖方法をハッシュ関数ＨＦに適用するステップ１１２を含んでもよい。図３は、タグ値ＴＧ２及びＴＧ４を同じハッシュコードＨＣ２に割り当てる例を示す。衝突を回避するために、両方のタグ値を、配列中の同じ「バケット」に記憶する。このバケットにおけるヘッドレコードを有する連鎖によって、ハッシュ衝突を解消する。
【００３６】
第１のタスクＴ１は、第２のタスクＴ２の通信プロトコルと異なる通信プロトコルと関連していてもよい。方法１００は、第１及び第２のタスクから受信されるプロセスデータを、プロトコル特定属性と無関係に並行して受信するように、第１及び第２のタスクＴ１、Ｔ２のそれぞれの通信プロトコルのプロトコル特定属性をカプセル化するステップ１０１’を含んでもよい。従って、第１の処理ユニット２０１は、第１及び第２のタスクから受信されるプロセスデータを、プロトコル特定属性と無関係に並行して受信するように、第１及び第２のタスクのそれぞれの通信プロトコルのプロトコル特定属性をカプセル化する（１０１’）ように構成されていてもよい。これは、異なるプロトコル通信規格によって妨げられることなく、プロセスデータのロギングを与え、これによって、所望の速度でロギングが容易になる。
【００３７】
第１のタスクＴ１は、１〜１０ｍｓの範囲にある実行速度を有してもよく、第２のタスクＴ２は、１００〜１０００ｍｓの範囲にある実行速度を有してもよい。この方法は、第１及び第２のタスクＴ１、Ｔ２の同時ロギングを提供し、更に、異なる実行速度を有する様々な数の異なるタスクのログを取ってもよい。
【００３８】
コンピュータによってプログラムを実行する場合、図１〜図５に関して上述のような方法１００のステップをコンピュータに実行させる命令を含むコンピュータプログラム製品を提供する。
【００３９】
図１と併せて図４ｂに概略的に例示するように、ＰＬＣアプリケーションコードを実行するＰＬＣ制御機器においてプロセスデータのログを取るように構成されている装置２００を更に提供する。上述のように、ＰＬＣアプリケーションコードのセクションは、特定の実行速度でプログラム機能を実行するように構成されているタスクＴ１、Ｔ２を含み、第１のタスクＴ１は、ＰＬＣアプリケーションコードで第２のタスクＴ２の第２の実行速度と異なる関連実行速度を有する。これらのタスクの各々は、タグとして割り当てられる専用メモリ領域を有するプログラム機能を含む。プロセスデータの各データ入力は、タグ値ＴＧ１、…ＴＧｎと、ＰＬＣアプリケーションコードから割り当てられる関連プロセス値Ｖ１、…Ｖｎとを含む。装置２００は、ＰＬＣアプリケーションコードからプロセスデータを受信する（１０１）ように構成されている第１の処理モジュール２０１を含む。装置２００は、前記第２のタスクと関連しているプロセス値をスレッドプールのスレッドＴＲＤ１、ＴＲＤ２にそれぞれ割り当てることと並行して、第１のタスクＴ１と関連しているプロセス値をスレッドプールのスレッドＴＲＤ１、ＴＲＤ２に割り当てる（１０２）ように構成されている第２の処理モジュール２０２を更に含む。第２の処理モジュール２０２は、スレッドＴＲＤ１、ＴＲＤ２の各々に対して、スレッドＴＲＤ１、ＴＲＤ２の各々と関連しているそれぞれのデータテーブルＤＴ１、ＤＴ２に、受信プロセスデータのタグ値ＴＧｎ及びプロセス値Ｖｎを受信する（１０３）ように構成されている。第２の処理モジュール２０２は、それぞれのデータテーブルＤＴ１、ＤＴ２のハッシュ関数ＨＦに従ってタグ値ＴＧｎの各々に対してハッシュコードＨＣ１、ＨＣｍを判定して（１０４）、前記ハッシュコードＨＣｍに従ってそれぞれのデータテーブルにタグ値ＴＧｎ及び関連プロセス値Ｖｎを配列する（１０５）ように更に構成されている。従って、装置２００は、方法１００及び図１〜図５に関して上述のような有利な利益を得る。
【００４０】
本発明は、特定の例を参照して上述されている。しかし、上述以外の例も、本発明の範囲内で同様に可能である。本発明の異なる特徴及びステップを、上述以外の組み合わせで組み合わせてもよい。本発明の範囲は、添付の特許請求の範囲によって限定されるだけである。
【００４１】
より一般的には、当業者は、ここに記載の全てのパラメータ、寸法、材料及び構成は、例示的であるように意図されていること、及び、実際のパラメータ、寸法、材料及び／又は構成は、本発明の教示を使用する特定の１つ若しくは複数のアプリケーションに左右されることを容易に分かる。
【図１】
2020524852.tif 000003
【図２】
2020524852.tif 000004
【図３】
2020524852.tif 000005
【図４ａ】
2020524852.tif 000006
【図４ｂ】
2020524852.tif 000007
【図５】
2020524852.tif 000008
【国際調査報告】
2020524852.tif 000009
2020524852.tif 000010
2020524852.tif 000011