JP7199387B2 - Plc制御機器においてプロセスデータのログを取る方法 - Google Patents

Plc制御機器においてプロセスデータのログを取る方法 Download PDF

Info

Publication number
JP7199387B2
JP7199387B2 JP2019570447A JP2019570447A JP7199387B2 JP 7199387 B2 JP7199387 B2 JP 7199387B2 JP 2019570447 A JP2019570447 A JP 2019570447A JP 2019570447 A JP2019570447 A JP 2019570447A JP 7199387 B2 JP7199387 B2 JP 7199387B2
Authority
JP
Japan
Prior art keywords
data
task
process data
application code
plc
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
JP2019570447A
Other languages
English (en)
Other versions
JP2020524852A (ja
Inventor
ルーカス・カールソン
アシュラフ・ザルール
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Tetra Laval Holdings and Finance SA
Original Assignee
Tetra Laval Holdings and Finance SA
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Tetra Laval Holdings and Finance SA filed Critical Tetra Laval Holdings and Finance SA
Publication of JP2020524852A publication Critical patent/JP2020524852A/ja
Application granted granted Critical
Publication of JP7199387B2 publication Critical patent/JP7199387B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/0802Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
    • G06F12/0864Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches using pseudo-associative means, e.g. set-associative or hashing
    • GPHYSICS
    • G05CONTROLLING; REGULATING
    • G05BCONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
    • G05B19/00Programme-control systems
    • G05B19/02Programme-control systems electric
    • G05B19/04Programme control other than numerical control, i.e. in sequence controllers or logic controllers
    • G05B19/05Programmable logic controllers, e.g. simulating logic interconnections of signals according to ladder diagrams or function charts
    • G05B19/058Safety, monitoring
    • GPHYSICS
    • G05CONTROLLING; REGULATING
    • G05BCONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
    • G05B19/00Programme-control systems
    • G05B19/02Programme-control systems electric
    • G05B19/04Programme control other than numerical control, i.e. in sequence controllers or logic controllers
    • G05B19/05Programmable logic controllers, e.g. simulating logic interconnections of signals according to ladder diagrams or function charts
    • GPHYSICS
    • G05CONTROLLING; REGULATING
    • G05BCONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
    • G05B19/00Programme-control systems
    • G05B19/02Programme-control systems electric
    • G05B19/04Programme control other than numerical control, i.e. in sequence controllers or logic controllers
    • G05B19/042Programme control other than numerical control, i.e. in sequence controllers or logic controllers using digital processors
    • GPHYSICS
    • G05CONTROLLING; REGULATING
    • G05BCONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
    • G05B19/00Programme-control systems
    • G05B19/02Programme-control systems electric
    • G05B19/04Programme control other than numerical control, i.e. in sequence controllers or logic controllers
    • G05B19/048Monitoring; Safety
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0653Monitoring storage devices or systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/30003Arrangements for executing specific machine instructions
    • G06F9/30007Arrangements for executing specific machine instructions to perform operations on data operands
    • G06F9/3001Arithmetic instructions
    • G06F9/30014Arithmetic instructions with variable precision
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/38Concurrent instruction execution, e.g. pipeline, look ahead
    • G06F9/3836Instruction issuing, e.g. dynamic instruction scheduling or out of order instruction execution
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/48Program initiating; Program switching, e.g. by interrupt
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5005Allocation of resources, e.g. of the central processing unit [CPU] to service a request
    • G06F9/5027Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5061Partitioning or combining of resources
    • GPHYSICS
    • G05CONTROLLING; REGULATING
    • G05BCONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
    • G05B2219/00Program-control systems
    • G05B2219/10Plc systems
    • G05B2219/14Plc safety
    • G05B2219/14055Make log, journal, history file of state changes
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/10Address translation
    • G06F12/1009Address translation using page tables, e.g. page table structures
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2209/00Indexing scheme relating to G06F9/00
    • G06F2209/50Indexing scheme relating to G06F9/50
    • G06F2209/5011Pool
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2209/00Indexing scheme relating to G06F9/00
    • G06F2209/50Indexing scheme relating to G06F9/50
    • G06F2209/5018Thread allocation

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Physics & Mathematics (AREA)
  • Software Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • Automation & Control Theory (AREA)
  • Computational Mathematics (AREA)
  • Mathematical Analysis (AREA)
  • Mathematical Optimization (AREA)
  • Pure & Applied Mathematics (AREA)
  • Human Computer Interaction (AREA)
  • Programmable Controllers (AREA)
  • Debugging And Monitoring (AREA)

Description

本発明は一般的に、プロセスデータのログを取る分野に関する。より詳細には、本発明は、PLCアプリケーションコードのセクションが、特定の実行速度でプログラム機能を実行するように構成されるタスクを含む、PLCアプリケーションコードを実行するPLC制御機器においてプロセスデータのログを取る方法、並びに関連コンピュータプログラム製品、及び、充填機に関連するシステム、又は密封パッケージを製造する関連システムなどにおいてこのようなプロセスデータのログを取るように構成されている装置に関する。
PLC制御機械の性能を維持する又は向上させるために、大量のプロセスデータのログを取る必要がある。このようなプロセスデータのロギング及び解析は、包装容器に充填して包装容器を密封するシステムに使用される機械などのPLC制御機械の開発プロセスの不可欠な部分である。プロセスデータの処理は、産業用デジタル化において重要な要素であり、従って、完全なプロセス概要を検索する課題と一緒に、このようなシステムの機能及び設計の複雑さが増加する場合(「機械DNA」又は「指紋」)、土台である。しかし、上述のロギング技法に関する問題は、これらの機械によって生成されるデータに基づいてこれらのシステムを向上させる際の努力を妨げる。典型的には、実行可能な量の資源をロギング解決策に費やして、複雑なシステムで生成されるデータの一部のログしか取ることができない。様々な手動ロギング解決策が存在しているが、しかし、これらの解決策は、法外な量の資源を消費し、十分に効率的でなく、又は管理できない。特定のアプリケーションに合わせて実施及びカスタマイズされる必要がある独立型解決策は、より自動化されたロギングプロセスを提供することが可能であるものの、全ての利用可能な出力データを検索するのに必要な関連量の資源及びこのような実施の複雑さに苦しむ。上述の複雑さは、例えば、様々なカスタマイゼーション操作用の更なる資源を必要とする、機械制御の既存のインフラストラクチャーとの非互換性から生じることがある。更に、リアルタイムで多数の並行機能を実行する一層複雑なシステムにおいて、上述の独立型解決策は、記録データでかなりの量のジッタ(jitter)を発生することが判明している。
従って、PLCアプリケーションコードを実行するPLC制御機器においてプロセスデータのログを取る改良方法は、有利であり、特に、より高速且つより安定した効率的なプロセスで、PLC制御機器からの、時間とともに増加するデータのロギング及び処理の提供を含む、上述の問題及び妥協案の一層多くを回避することができる。このような改良方法は、より完全で包括的なプロセス概要を介した製造追跡可能性及び製品開発のための実現者としての作業、円滑なトラブルシューティングに対して、より効率的な試運転、即ち、システムの検証及び妥当性確認を可能にする。
従って、好ましくは、本発明の例は、添付の特許請求の範囲によるデバイスを提供することによって、単独で又は任意の組み合わせで、上述のような当技術分野における1つ又は複数の欠陥、欠点又は問題を軽減、緩和又は解消しようとする。
第1の態様は、PLCアプリケーションコードを実行するPLC制御機器においてプロセスデータのログを取る方法を提供する。PLCアプリケーションコードのセクションは、特定の実行速度でプログラム機能を実行するように構成されるタスクを含み、第1のタスクは、PLCアプリケーションコードで第2のタスクの第2の実行速度と異なる関連実行速度を有する。タスクの各々は、タグとして割り当てられる専用メモリ領域を有するプログラム機能を含み、プロセスデータの各データ入力は、タグ値と、PLCアプリケーションコードから割り当てられる関連プロセス値とを含む。この方法は、PLCアプリケーションコードからプロセスデータを受信するステップであって、前記第2のタスクと関連しているプロセス値をスレッドプールのスレッドにそれぞれ割り当てるステップと並行して、前記第1のタスクと関連しているプロセス値をスレッドプールのスレッドに割り当てるステップを含む。この方法は、スレッドの各々に対して、スレッドの各々と関連しているそれぞれのデータテーブルに、受信プロセスデータのタグ値及びプロセス値を受信するステップと、それぞれのデータテーブルのハッシュ関数に従ってタグの各々に対してハッシュコードを判定して、前記ハッシュコードに従ってそれぞれのデータテーブルにタグ値及び関連プロセス値を配列するステップとを更に含む。
第2の態様は、コンピュータによってプログラムを実行する場合、第1の態様による方法のステップをコンピュータに実行させる命令を含むコンピュータプログラム製品を提供する。
第3の態様は、PLCアプリケーションコードを実行するPLC制御機器においてプロセスデータのログを取るように構成されている装置を提供する。PLCアプリケーションコードのセクションは、特定の実行速度でプログラム機能を実行するように構成されているタスクを含み、第1のタスクは、PLCアプリケーションコードで第2のタスクの第2の実行速度と異なる関連実行速度を有する。タスクの各々は、タグとして割り当てられる専用メモリ領域を有するプログラム機能を含み、プロセスデータの各データ入力は、タグ値と、PLCアプリケーションコードから割り当てられる関連プロセス値とを含む。この装置は、PLCアプリケーションコードからプロセスデータを受信するように構成されている第1の処理モジュールと、第2のタスクと関連しているプロセス値をスレッドプールのスレッドにそれぞれ割り当てることと並行して、前記第1のタスクと関連しているプロセス値をスレッドプールのスレッドに割り当てるように構成されている第2の処理モジュールとを含む。この第2の処理モジュールは、スレッドの各々に対して、スレッドの各々と関連しているそれぞれのデータテーブルに、受信プロセスデータのタグ値及びプロセス値を受信し、それぞれのデータテーブルのハッシュ関数に従ってタグ値の各々に対してハッシュコードを判定して、ハッシュコードに従ってそれぞれのデータテーブルにタグ値及び関連プロセス値を配列するように更に構成されている。
本発明の更なる例は、従属請求項に規定されており、開示の第2及び第3の態様に対する特徴は、第1の態様に関して、変更すべきところは変更する。
開示の幾つかの例は、多数の並行実行機能を有する複雑なPLC機械システムにおいて増加するプロセスデータのログを取る改良方法を提供する。
開示の幾つかの例は、PLCシステムにおけるプロセスデータのより高速且つより安定したロギングを提供する。
開示の幾つかの例は、異なるロギング速度を必要とする異なる時間スケール又は領域で実行される複数の機能又はタスクを実行するPLCシステムにおけるプロセスデータの改良ロギングを提供する。
開示の幾つかの例は、機械開発のための改良能力及びPLC機械システムにおける一層の包括的プロセス理解を得ることを提供する。
開示の幾つかの例は、PLCシステムでプロセスデータのロギングを実施する際の複雑さを減らすことを提供する。
開示の幾つかの例は、PLCシステムの機能に対する最小の影響でプロセスデータのロギングを実施することを提供する。
開示の幾つかの例は、既存のPLCシステムに対する最小のインフラストラクチャー変更でプロセスデータのロギングを実施することを提供する。
開示の幾つかの例は、改良製造追跡可能性を提供する。
開示の幾つかの例は、機械の改良及び時間浪費が少ないトラブルシューティング手順を提供する。
開示の幾つかの例は、機械又は機械の開発改良で誤動作を特定する資源の一層効率的な使用を提供する。
開示の幾つかの例は、機械の質を評価する一層効率的な手順を提供する。
この明細書で使用される場合の用語「含む(comprises/comprising)」は、記載の特徴、整数、ステップ又は構成要素の存在を指定し、1つ又は複数の他の特徴、整数、ステップ、構成要素又はこれらのグループの存在又は追加を排除しないことを強調すべきである。
本発明の例が可能であるこれら及び他の態様、特徴及び利点は、添付図面を参照して本発明の例の下記の説明から明白且つ明らかにされよう。
開示の例によるPLCアプリケーションコードを実行するPLC制御機器においてプロセスデータのログを取るように構成されている方法及び装置を例示する略図である。 開示の例による関連データテーブル及びプロセスタグのハッシュコードを判定するステップを例示する略図である。 開示の例によるプロセスデータのスタックにプッシュ又はプル演算子を適用するステップを例示する略図である。 開示の例によるPLCアプリケーションコードを実行するPLC制御機器においてプロセスデータのログを取る方法のフローチャートである。 開示の例によるPLCアプリケーションコードを実行するPLC制御機器においてプロセスデータのログを取るように構成されている装置及び関連方法の略図である。 開示の例によるPLCアプリケーションコードを実行するPLC制御機器においてプロセスデータのログを取るように構成されている装置及び関連方法の略図である。
さて、本発明の特定の例について、添付図面を参照して説明する。しかし、この発明は、多くの異なる形態で具体化されてもよく、記載のこれらの例に限定されると解釈されるべきではない。むしろ、この開示が、徹底して完全であり、当業者に本発明の範囲を完全に伝えるように、これらの例を与える。添付図面に例示された例の詳細な説明で使用される用語は、本発明の限定を意図しない。図面において、同様の番号は、同様の要素を意味する。
図4aは、PLCアプリケーションコードを実行するPLC制御機器においてプロセスデータのログを取る方法100のフローチャートを例示する。方法100のステップを説明して例示する順序は、限定されると解釈されるべきではなく、これらのステップを様々な順序で実行することができると考えられる。より詳細に後述される図1の略図と併せて、方法100を更に例示する。
従って、PLCアプリケーションコードを実行するPLC制御機器においてプロセスデータのログを取る方法100を提供する。PLC制御機器は、包装容器に充填して包装容器を密封するシステムの機器、及び様々な関連機械であってもよい。PLCアプリケーションコードを、機器の持続性メモリにダウンロードして、所望のパッケージ機器機能を果たしてもよい。PLCアプリケーションコードのセクションは、特定の実行速度でプログラム機能を実行するように構成されるタスクT、Tを含む。どんな種類の機能を必要とするかによって、PLCアプリケーションを、異なるタスクに分割してもよい。例えば、あまり重要でない他の機能(温度制御など)よりも短い時間スケール(サーボ駆動、水力学など)で、幾つかの機能を実行してもよい。従って、第1のタスクTは、PLCアプリケーションコードで第2のタスクTの第2の実行速度と異なる関連実行速度を有してもよい。各タスクT、Tは、「タグ」として割り当てられる専用メモリ領域を有するプログラム機能を含む。PLC制御機器から受信されるべきプロセスデータの各データ入力は、タグ、即ち、データ型の所与の名前に対応するタグ値TG、…TGと、PLCアプリケーションコードから割り当てられる関連プロセス値V、…V(様々なデータ型であってもよい)とを含む。プロセス値V、…Vは、センサー又は他の内部機能などによって生じてもよい。包装容器用の充填機などの機械は、例えば、数千のタグで動作することを必要とする場合がある。方法100は、PLCアプリケーションコードからプロセスデータを受信するステップ101を含む。PLCアプリケーションコードを実行するPLC制御機器においてプロセスデータのログを取るように構成されている装置100に対して更に後述するように、PLC制御機器と通信する通信モジュールなどの処理モジュール201を介してPLC制御機器との接続を確立することによって、プロセスデータを検索する。方法100は、前記第2のタスクTと関連しているプロセス値をスレッドプールのスレッドTRDにそれぞれ割り当てるステップと並行して、第1のタスクTと関連しているプロセス値をスレッドプールのスレッドTRDに割り当てるステップ102を含む。従って、方法100及び関連処理モジュール201は、異なる実行速度でプログラム機能を実行するように構成されるタスクT、Tを、異なる実行速度と無関係に、並行して又は同時に、スレッドTRD、TRDに割り当てるステップを提供する。従って、異なるタスクに対する様々なロギング速度要件に対応することができる。図1は、処理モジュール201がPLC制御機器との接続を確立する時に、第1及び第2のタスクT、TをスレッドTRD、TRDにそれぞれ割り当てる例を示す。PLCへの処理モジュール201の各「コールバック」は、新しいプロセスデータがPLCから受信されており、このプロセスデータをスレッドに割り当てることを意味する。タスク及びスレッドの数は任意の複数で変わると考えられる。
方法100は、スレッドTRD、TRDの各々に対して、スレッドTRD、TRDの各々と関連しているそれぞれのデータテーブルDT、DTに、PLC制御機器から受信されたプロセスデータのタグ値及びプロセス値TG、Vを受信するステップ103を含む。方法100は、それぞれのデータテーブルDT、DTのハッシュ関数HFに従ってタグの各々に対して(即ち、これらのタグ値TGに対して)ハッシュコードHCを判定して(104)、上述のハッシュコードHCに従ってそれぞれのデータテーブルDT、DTにタグ値TG及び関連プロセス値Vを配列するステップ105を更に含む。これにより、リアルタイムを含む様々な時間領域における多数、例えば数千のタグのロギングを、PLC制御機器において実現できるような方法で、プロセスデータを受信して配列する速度が増加する。それぞれのデータテーブルDT、DTのハッシュ関数HFに従ってタグの各々に対してハッシュコードHCを判定するステップにより、データテーブルDT、DTにおけるプロセスデータの構造化を最適化できる。探索動作などの、データテーブルDT、DTにおけるその後の動作を、より高速で実行することが可能であり、例えば、更に後述するようなリアルタイム条件ベースのロギングが可能になる。同時に、データテーブルは、全ての汎用型のプロセスデータを処理することができるので、ロギングシステムの複雑さを追加することなく、汎用性が高まる。更に後述するように、処理モジュール201から関連スレッドTRD、TRDに伝達されるプロセスデータ(例えば、タグの特性)によって、ハッシュ関数HFを判定することができる。図2は、ハッシュ関数HFによって判定されたそれぞれのハッシュコードHCに従ってタグ値TG及び関連プロセス値をデータテーブルDTに配列するデータテーブルDTの1つの例を示す。この例では、タグ値TG~TG及びハッシュコードHCの関連例を示す。更に、データテーブル構造は、例えば、プロセスデータに対する適用探索条件において、論理演算子の特に有利なアプリケーションを可能にする。なぜなら、このような演算子をデータテーブルにおけるデータのスタックに適用できるからである。
図4bは、PLCアプリケーションコードを実行するPLC制御機器においてプロセスデータのログを取る方法100の更なるフローチャートを例示する。方法100のステップを説明して例示する順序は、限定されると解釈されるべきではなく、これらのステップを様々な順序で実行することができると考えられる。方法100は、ログ条件L、Lの従属でプロセスデータに対してロギング事象を判定するステップ106を含んでもよい。ログ条件L、Lは、PLCアプリケーションコードから受信される1つ又は複数のプロセス値Vのうち少なくとも1つの論理演算子又は閾値を含む。プロセス値Vは、データテーブルDT、DTに記憶されたタグから効果的に得られる。方法100は、ロギング事象に対して、データテーブルDT、DTからプロセスデータの少なくとも一部を受信するステップ107を含む。従って、一旦ログ条件を実行すると、ロギング事象が発生し、タグ値及びプロセス値などのプロセスデータを、例えば、図1に概略的に例示する専用ログメモリ203に記憶することができる。ログ条件L、Lの従属でプロセスデータに対してロギング事象を判定するステップ106は、(データのログを取る場合)ロギングトリガを完全に構成することができることによって、効率的な条件ベースのロギングを提供する。ログ条件L、Lを実行しない場合、処理又は通信モジュール201のコールバック中に、データテーブルDT、DTにおけるプロセスデータをメモリ203に保存しない。ログ条件L、Lによる妥当性確認のために、新しいコールバックが到着して新しいプロセスデータをDT、DTに挿入するまで、関連スレッドTRD、TRDは、活動状態であり、通信モジュール201を介してPLCに接続されたままである。PLCアプリケーションコードから受信される各データ入力に対して、方法100は、データ入力と関連しているそれぞれのタグの受信プロセス値Vをログ条件L、Lと比較して(108)、データ入力が、ロギング事象に対して受信される、即ちメモリ203に記憶されるべきであるかどうかを判定するステップ109を含んでもよい。
ハッシュコードに従ってタグ値及び関連プロセス値をそれぞれのデータテーブルに配列すると、図2に例示され上述のように、判定ログ条件L、Lの効率的な評価が得られる。例えば、同じハッシュコードHCの下に位置決めされたタグ値TGの間で探索する場合、他のハッシュコード位置に記憶された全ての他のタグを、探索から除外する。これにより、条件ベースのロギングは、リアルタイムで高速で、例えば、1~10ms毎の範囲にあるプロセスデータのロギングで、タスクT、T及び関連データテーブルDT、DTの全てに対して並行して、動作することができる。従って、PLCシステムにおけるプロセスデータのより高速且つより安定したロギングを提供する。図3は、上述のハッシュコードHCに従ってタグ値及び関連プロセス値をそれぞれのデータテーブルに配列した場合に特に有益である、更に後述される、スタック化レジスタ構造における論理演算子を用いてログ条件Lを評価する例を示す。
従って、装置100の第2の処理ユニット202は、PLCアプリケーションコードから受信される1つ又は複数のプロセス値のうち少なくとも1つの論理演算子又は閾値を含むログ条件L、Lの従属でプロセスデータに対してロギング事象を判定する(106)ように構成され、ロギング事象に対して、データテーブルDT、DTからプロセスデータの少なくとも一部を受信する(107)ように構成されていてもよい。
方法100は、スレッドTRD、TRDの各々に対してログ条件L、Lの従属でプロセスデータに対してロギング事象を判定するステップ110を含んでもよい。これを、図1に概略的に例示し、ログ条件Lは、第1のスレッドTRD及びそれぞれのデータテーブルDTと関連しており、ログ条件Lに対して、逆もまた同様である。
再度、図3の略図について参照する。方法100は、ログ条件L、Lを評価するために、PLCアプリケーションコードから受信されるプロセスデータのスタックにプッシュ及び/又はプル演算子を適用するステップ111を含んでもよい。図示の例において、「x」、「y」及び「z」として与えられるプロセス値Vの閾値及び論理演算子を用いて、ログ条件Lを評価する。データスタックを、左から右に評価する。タグ値(例えば、TG)及びプロセス値(例えば、「x」)を入力し、続いて、論理演算子(例えば、「==」)を入力し、評価条件(例えば、「C1」)に達する。その後、次のタグ値及びプロセス値、及び演算子を、スタックに適用して、最終評価条件(この例では、「C5」)に達する。このような演算子をプロセスデータのスタックに適用することによって、ログ条件L、Lの論理演算を実行すると、条件を評価する際の複雑さが減少して、評価ステップが促進される。従って、プロセスデータの条件付きロギングを、PLC機器がデータを伝達する所望の速度で実行することができる。
方法100は、タグ値TG及びプロセス値Vに基づいて、データテーブルDT、DTに対してハッシュ関数HFを判定するステップ104を含んでもよい。従って、タグ値TG及びプロセス値Vなどのタグの特性を考慮して、上述の値を、最適化ハッシュ関数HFに従ってそれぞれのデータテーブルDT、DTに配列してもよい。従って、プロセス値の伝達のためにPLC機器との接続を確立した場合、処理モジュール201から伝達されるタグ値TG及びプロセス値Vに関する情報に基づいて、ハッシュ関数HFを、最適化又は選択してもよい。ハッシュ関数HFの最適化選択により、探索時間が短縮され、条件ベースのロギングを実行することができる速度が増加する。
方法100は、タグ値TG及びプロセス値Vのデータ型(例えば、ブール、整数、実数など)に基づいて、データテーブルDT、DTに対してハッシュ関数HFを判定するステップ104を含んでもよい。これにより、ハッシュ関数HFの更なる最適化選択が行われ、その結果、タグ及び関連ハッシュコードHCが、データ型に最適化されたそれぞれのデータテーブルDT、DTに配列される。
更に、方法100は、タグTGの数に基づいて、データテーブルDT、DTに対してハッシュ関数HFを判定するステップ104を含んでもよい。有利なことに、これにより、データ構造の以後のサイズ変更の必要がなくなり得る。なぜなら、タグの量は、PLC機器への処理モジュール201の初期コールバック接続から既に既知であるからである。従って、より高速且つより安定したロギングを実現することができる。
方法100は、同じハッシュコードHCに割り当てられる多数のタグTGに対して連鎖方法をハッシュ関数HFに適用するステップ112を含んでもよい。図3は、タグ値TG及びTGを同じハッシュコードHCに割り当てる例を示す。衝突を回避するために、両方のタグ値を、配列中の同じ「バケット」に記憶する。このバケットにおけるヘッドレコードを有する連鎖によって、ハッシュ衝突を解消する。
第1のタスクTは、第2のタスクTの通信プロトコルと異なる通信プロトコルと関連していてもよい。方法100は、第1及び第2のタスクから受信されるプロセスデータを、プロトコル特定属性と無関係に並行して受信するように、第1及び第2のタスクT、Tのそれぞれの通信プロトコルのプロトコル特定属性をカプセル化するステップ101’を含んでもよい。従って、第1の処理ユニット201は、第1及び第2のタスクから受信されるプロセスデータを、プロトコル特定属性と無関係に並行して受信するように、第1及び第2のタスクのそれぞれの通信プロトコルのプロトコル特定属性をカプセル化する(101’)ように構成されていてもよい。これは、異なるプロトコル通信規格によって妨げられることなく、プロセスデータのロギングを与え、これによって、所望の速度でロギングが容易になる。
第1のタスクTは、1~10msの範囲にある実行速度を有してもよく、第2のタスクTは、100~1000msの範囲にある実行速度を有してもよい。この方法は、第1及び第2のタスクT、Tの同時ロギングを提供し、更に、異なる実行速度を有する様々な数の異なるタスクのログを取ってもよい。
コンピュータによってプログラムを実行する場合、図1~図5に関して上述のような方法100のステップをコンピュータに実行させる命令を含むコンピュータプログラム製品を提供する。
図1と併せて図4bに概略的に例示するように、PLCアプリケーションコードを実行するPLC制御機器においてプロセスデータのログを取るように構成されている装置200を更に提供する。上述のように、PLCアプリケーションコードのセクションは、特定の実行速度でプログラム機能を実行するように構成されているタスクT、Tを含み、第1のタスクTは、PLCアプリケーションコードで第2のタスクTの第2の実行速度と異なる関連実行速度を有する。これらのタスクの各々は、タグとして割り当てられる専用メモリ領域を有するプログラム機能を含む。プロセスデータの各データ入力は、タグ値TG、…TGと、PLCアプリケーションコードから割り当てられる関連プロセス値V、…Vとを含む。装置200は、PLCアプリケーションコードからプロセスデータを受信する(101)ように構成されている第1の処理モジュール201を含む。装置200は、前記第2のタスクと関連しているプロセス値をスレッドプールのスレッドTRD、TRDにそれぞれ割り当てることと並行して、第1のタスクTと関連しているプロセス値をスレッドプールのスレッドTRD、TRDに割り当てる(102)ように構成されている第2の処理モジュール202を更に含む。第2の処理モジュール202は、スレッドTRD、TRDの各々に対して、スレッドTRD、TRDの各々と関連しているそれぞれのデータテーブルDT、DTに、受信プロセスデータのタグ値TG及びプロセス値Vを受信する(103)ように構成されている。第2の処理モジュール202は、それぞれのデータテーブルDT、DTのハッシュ関数HFに従ってタグ値TGの各々に対してハッシュコードHC、HCを判定して(104)、前記ハッシュコードHCに従ってそれぞれのデータテーブルにタグ値TG及び関連プロセス値Vを配列する(105)ように更に構成されている。従って、装置200は、方法100及び図1~図5に関して上述のような有利な利益を得る。
本発明は、特定の例を参照して上述されている。しかし、上述以外の例も、本発明の範囲内で同様に可能である。本発明の異なる特徴及びステップを、上述以外の組み合わせで組み合わせてもよい。本発明の範囲は、添付の特許請求の範囲によって限定されるだけである。
より一般的には、当業者は、ここに記載の全てのパラメータ、寸法、材料及び構成は、例示的であるように意図されていること、及び、実際のパラメータ、寸法、材料及び/又は構成は、本発明の教示を使用する特定の1つ若しくは複数のアプリケーションに左右されることを容易に分かる。

Claims (11)

  1. PLCアプリケーションコードを実行するPLC制御機器においてプロセスデータのログを取る方法(100)であって、
    前記PLCアプリケーションコードのセクションは、特定の実行速度でプログラム機能を実行するように構成されるタスク(T、T)を含み、第1のタスク(T)は、前記PLCアプリケーションコードで第2のタスク(T)の第2の実行速度と異なる関連実行速度を有し、
    前記タスクの各々は、タグとして割り当てられる専用メモリ領域を有するプログラム機能を含み、
    前記プロセスデータの各データ入力は、タグ値(TG、TG)と、前記PLCアプリケーションコードから割り当てられる関連プロセス値(V、V)とを含み、
    前記PLCアプリケーションコードからプロセスデータを受信するステップ(101)であって、前記第2のタスクと関連しているプロセス値をスレッドプールのスレッド(TRD)にそれぞれ割り当てるステップと並行して、前記第1のタスクと関連しているプロセス値を前記スレッドプールのスレッド(TRD)に割り当てる(102)ステップ(101)と、
    前記スレッドの各々に対して、前記スレッドの各々と関連しているそれぞれのデータテーブル(DT、DT)に、前記受信されたプロセスデータの前記タグ値及び前記プロセス値を受信するステップ(103)と、
    前記それぞれのデータテーブルのハッシュ関数(HF)に従って前記タグの各々に対してハッシュコード(HC、HC)を判定して(104)、前記ハッシュコードに従って前記それぞれのデータテーブルに前記タグ値及び前記関連プロセス値を配列するステップ(105)と
    を含む方法。
  2. 前記PLCアプリケーションコードから受信される1つ又は複数のプロセス値のうち少なくとも1つの論理演算子又は閾値を含むログ条件(L、Lを実行することによって前記プロセスデータに対してロギング事象を判定するステップ(106)と、
    ロギング事象に対して、前記データテーブルから前記プロセスデータの少なくとも一部を受信するステップ(107)と
    を含む、請求項1に記載の方法。
  3. 前記PLCアプリケーションコードから受信される各データ入力に対して、
    前記データ入力と関連している前記それぞれのタグの前記プロセス値を前記ログ条件と比較して(108)、前記データ入力がロギング事象に対して受信されるべきであるかどうかを判定するステップ(109)を含む、請求項2に記載の方法。
  4. 前記スレッドの各々に対してログ条件を実行することによって前記プロセスデータに対して前記ロギング事象を判定するステップ(110)を含む、請求項2又は3に記載の方法。
  5. 前記ログ条件を評価するために、前記PLCアプリケーションコードから受信されるプロセスデータのスタックにプッシュ及び/又はプル演算子を適用するステップ(111)を含む、請求項2~4のいずれか一項に記載の方法。
  6. 前記第1のタスクは、前記第2のタスクの通信プロトコルと異なる通信プロトコルと関連しており、
    前記第1及び第2のタスクから受信されるプロセスデータを、プロトコル特定属性と無関係に並行して受信するように、前記第1及び第2のタスクのそれぞれの通信プロトコルの前記プロトコル特定属性をカプセル化するステップ(101’)を含む、請求項1~のいずれか一項に記載の方法。
  7. 前記第1のタスクは、1~10msの範囲にある実行時間を有し、前記第2のタスクは、100~1000msの範囲にある実行時間を有する、請求項1~のいずれか一項に記載の方法。
  8. コンピュータによってプログラムを実行する場合、請求項1~のいずれか一項に記載の方法の前記ステップを前記コンピュータに実行させる命令を含むコンピュータプログラムが記録された記録媒体
  9. PLCアプリケーションコードを実行するPLC制御機器においてプロセスデータのログを取るように構成されている装置(200)であって、
    前記PLCアプリケーションコードのセクションは、特定の実行速度でプログラム機能を実行するように構成されているタスク(T、T)を含み、第1のタスク(T)は、前記PLCアプリケーションコードで第2のタスク(T)の第2の実行速度と異なる関連実行速度を有し、
    前記タスクの各々は、タグとして割り当てられる専用メモリ領域を有するプログラム機能を含み、
    前記プロセスデータの各データ入力は、タグ値(TG、TG)と、前記PLCアプリケーションコードから割り当てられる関連プロセス値(V、V)とを含み、
    前記PLCアプリケーションコードからプロセスデータを受信する(101)ように構成されている第1の処理モジュール(201)と、
    前記第2のタスクと関連しているプロセス値をスレッドプールのスレッドにそれぞれ割り当てることと並行して、前記第1のタスクと関連しているプロセス値を前記スレッドプールのスレッド(TRD、TRD)に割り当て(102)、
    前記スレッドの各々に対して、前記スレッドの各々と関連しているそれぞれのデータテーブル(DT、DT)に、前記受信プロセスデータの前記タグ値及び前記プロセス値を受信し(103)、
    前記それぞれのデータテーブルのハッシュ関数(HF)に従って前記タグ値の各々に対してハッシュコード(HC、HC)を判定して(104)、前記ハッシュコードに従って前記それぞれのデータテーブルに前記タグ値及び前記関連プロセス値を配列する(105)ように構成されている第2の処理モジュール(202)と
    を含む装置。
  10. 前記第2の処理モジュールは、前記PLCアプリケーションコードから受信される1つ又は複数のプロセス値のうち少なくとも1つの論理演算子又は閾値を含むログ条件(L、Lを実行することによって前記プロセスデータに対してロギング事象を判定し(106)、ロギング事象に対して、前記データテーブルから前記プロセスデータの少なくとも一部を受信する(107)ように構成されている、請求項に記載の装置。
  11. 前記第1のタスクは、前記第2のタスクの通信プロトコルと異なる通信プロトコルと関連しており、
    前記第1の処理モジュールは、前記第1及び第2のタスクから受信されるプロセスデータを、プロトコル特定属性と無関係に並行して受信するように、前記第1及び第2のタスクのそれぞれの通信プロトコルの前記プロトコル特定属性をカプセル化する(101’)ように構成されている、請求項又は1に記載の装置。
JP2019570447A 2017-06-21 2018-06-18 Plc制御機器においてプロセスデータのログを取る方法 Active JP7199387B2 (ja)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
EP17177238.7 2017-06-21
EP17177238 2017-06-21
PCT/EP2018/066132 WO2018234246A1 (en) 2017-06-21 2018-06-18 METHOD OF LOGGING PROCESS DATA IN AN API CONTROLLED EQUIPMENT

Publications (2)

Publication Number Publication Date
JP2020524852A JP2020524852A (ja) 2020-08-20
JP7199387B2 true JP7199387B2 (ja) 2023-01-05

Family

ID=59227490

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2019570447A Active JP7199387B2 (ja) 2017-06-21 2018-06-18 Plc制御機器においてプロセスデータのログを取る方法

Country Status (5)

Country Link
US (1) US11086782B2 (ja)
EP (1) EP3418829B1 (ja)
JP (1) JP7199387B2 (ja)
CN (1) CN109100981B (ja)
WO (1) WO2018234246A1 (ja)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11630661B2 (en) 2021-07-29 2023-04-18 Kyndryl, Inc. Intelligent logging and automated code documentation
CN114363323A (zh) * 2022-01-06 2022-04-15 东莞市云雀科技有限公司 一种针对plc的智能数据上发方法

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2005321910A (ja) 2004-05-07 2005-11-17 Softbank Bb Corp ログデータ管理システム、方法、及びプログラム
JP2007280214A (ja) 2006-04-10 2007-10-25 Mitsubishi Electric Corp プログラマブルコントローラ
JP2009301359A (ja) 2008-06-13 2009-12-24 Mitsubishi Electric Corp 制御装置
JP2010170407A (ja) 2009-01-23 2010-08-05 Mitsubishi Electric Corp ロギングシステム
JP2013025353A (ja) 2011-07-15 2013-02-04 Omron Corp Plcのcpuユニット、plc用のシステムプログラム、plc用のシステムプログラムを格納した記録媒体、plcシステム、plcサポート装置、plcサポートプログラム、および、plcサポートプログラムを格納した記録媒体
JP2015022667A (ja) 2013-07-23 2015-02-02 日本電気株式会社 トレース情報収集装置およびトレース情報収集方法、並びにコンピュータ・プログラム

Family Cites Families (15)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP3046171B2 (ja) 1993-03-26 2000-05-29 三菱電機株式会社 データロギング装置
US7301541B2 (en) * 1995-08-16 2007-11-27 Microunity Systems Engineering, Inc. Programmable processor and method with wide operations
JP3663617B2 (ja) * 1999-03-12 2005-06-22 オムロン株式会社 Plc用ツール装置、並びに、プログラム記録媒体
US20020124011A1 (en) * 2001-03-01 2002-09-05 Baxter Robert W. Methods, systems, and computer program products for communicating with a controller using a database interface
CN100397268C (zh) * 2002-12-23 2008-06-25 西门子能量及自动化公司 利用plc的存储设备的方法和结构
US7330936B2 (en) * 2004-08-30 2008-02-12 Texas Instruments Incorporated System and method for power efficient memory caching
US7827374B2 (en) * 2006-06-12 2010-11-02 Oracle America, Inc. Relocating page tables
US7684881B2 (en) * 2006-09-28 2010-03-23 Rockwell Automation Technologies, Inc. Transient-sensitive indicators for HMI devices
US8429386B2 (en) * 2009-06-30 2013-04-23 Oracle America, Inc. Dynamic tag allocation in a multithreaded out-of-order processor
US20130124575A1 (en) * 2011-11-11 2013-05-16 Rockwell Automation Technologies, Inc. System and Method for Dynamic Meta-Data in Control and Visualization
US9311221B2 (en) * 2013-03-15 2016-04-12 Ab Initio Technology Llc Recording program execution
CN105283846B (zh) 2013-05-20 2017-06-13 三菱电机株式会社 监视控制装置
JP2015035158A (ja) * 2013-08-09 2015-02-19 ルネサスエレクトロニクス株式会社 データ処理システム
CN105629862B (zh) * 2014-11-05 2020-03-17 同方威视技术股份有限公司 基于plc的控制设备的实时日志记录方法
US11061572B2 (en) * 2016-04-22 2021-07-13 Advanced Micro Devices, Inc. Memory object tagged memory monitoring method and system

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2005321910A (ja) 2004-05-07 2005-11-17 Softbank Bb Corp ログデータ管理システム、方法、及びプログラム
JP2007280214A (ja) 2006-04-10 2007-10-25 Mitsubishi Electric Corp プログラマブルコントローラ
JP2009301359A (ja) 2008-06-13 2009-12-24 Mitsubishi Electric Corp 制御装置
JP2010170407A (ja) 2009-01-23 2010-08-05 Mitsubishi Electric Corp ロギングシステム
JP2013025353A (ja) 2011-07-15 2013-02-04 Omron Corp Plcのcpuユニット、plc用のシステムプログラム、plc用のシステムプログラムを格納した記録媒体、plcシステム、plcサポート装置、plcサポートプログラム、および、plcサポートプログラムを格納した記録媒体
JP2015022667A (ja) 2013-07-23 2015-02-02 日本電気株式会社 トレース情報収集装置およびトレース情報収集方法、並びにコンピュータ・プログラム

Also Published As

Publication number Publication date
WO2018234246A1 (en) 2018-12-27
CN109100981B (zh) 2023-11-14
JP2020524852A (ja) 2020-08-20
EP3418829B1 (en) 2022-08-24
CN109100981A (zh) 2018-12-28
US20200142380A1 (en) 2020-05-07
US11086782B2 (en) 2021-08-10
EP3418829A1 (en) 2018-12-26

Similar Documents

Publication Publication Date Title
US10880197B2 (en) Methods, systems, and computer readable media for testing a network node using source code for programming a packet forwarding plane of the network node
US10733088B1 (en) Methods, systems, and computer readable media for testing a network node or a related application programming interface using source code metadata
EP3543854A1 (en) Resource control stack based system for multiple domain presentation of cloud computing resource control
JP7199387B2 (ja) Plc制御機器においてプロセスデータのログを取る方法
US9851707B2 (en) Bulk field device operations
US20170185068A1 (en) Manufacturing data processing system having a plurality of manufacturing apparatuses
US10678980B2 (en) Combination map based composite design
US7869887B2 (en) Discoverable services
US20160350450A1 (en) Combination map based composite design
JP6955309B2 (ja) 多変量バッチ制御解析のためのステージを画定する方法及び装置、製造物品
US9989940B2 (en) Method for engineering a distributed control system and an engineering tool thereof
JP2019532383A (ja) 産業用途のためのスキルインタフェース
US20210116890A1 (en) Production Control System
CN112738230A (zh) 一种自动化网闸测试系统及其工作方法
CN105739481B (zh) 工控软件的测试方法、装置及系统
WO2019189249A1 (ja) 学習装置、学習方法、及びコンピュータ読み取り可能な記録媒体
Kuroiwa et al. Testing environment for CPS by cooperating model checking with execution testing
KR101942905B1 (ko) 통신 데이터 모델링 방법
EP3699775A1 (en) Predictive graph query system for automation engineering systems
CN109656922B (zh) 数据处理方法及装置
US20210255607A1 (en) Automation Component Configuration
CN107430392A (zh) 用于配置和/或参数化自动化系统的自动化元件的配置设备和方法
CN112069144A (zh) 一种多控集群收集系统日志的方法及装置
CN114513384B (zh) 设备控制方法、装置、终端及计算机可读存储介质
Haack et al. Industrial Hydraulics–Are we really on track concerning Industry 4.0?

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20210602

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20220428

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20220510

A601 Written request for extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A601

Effective date: 20220809

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20221007

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20221213

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20221220

R150 Certificate of patent or registration of utility model

Ref document number: 7199387

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150