JP2020052441A - マスタ装置、マスタ装置の制御方法、情報処理プログラム、および記録媒体 - Google Patents

マスタ装置、マスタ装置の制御方法、情報処理プログラム、および記録媒体 Download PDF

Info

Publication number
JP2020052441A
JP2020052441A JP2018177785A JP2018177785A JP2020052441A JP 2020052441 A JP2020052441 A JP 2020052441A JP 2018177785 A JP2018177785 A JP 2018177785A JP 2018177785 A JP2018177785 A JP 2018177785A JP 2020052441 A JP2020052441 A JP 2020052441A
Authority
JP
Japan
Prior art keywords
data
collection
unit
node
permutation
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.)
Granted
Application number
JP2018177785A
Other languages
English (en)
Other versions
JP7010185B2 (ja
Inventor
貴佳 松山
Takayoshi Matsuyama
貴佳 松山
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.)
Omron Corp
Original Assignee
Omron Corp
Omron Tateisi Electronics Co
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 Omron Corp, Omron Tateisi Electronics Co filed Critical Omron Corp
Priority to JP2018177785A priority Critical patent/JP7010185B2/ja
Priority to PCT/JP2019/036410 priority patent/WO2020059719A1/ja
Publication of JP2020052441A publication Critical patent/JP2020052441A/ja
Application granted granted Critical
Publication of JP7010185B2 publication Critical patent/JP7010185B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • 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
    • G05B23/00Testing or monitoring of control systems or parts thereof
    • G05B23/02Electric testing or monitoring

Landscapes

  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Engineering & Computer Science (AREA)
  • Automation & Control Theory (AREA)
  • Programmable Controllers (AREA)

Abstract

【課題】スレーブ装置から制御データを収集する処理負荷を、ユーザが管理できるマスタ装置を提供する。【解決手段】スレーブ装置から周期的に取得した制御データから、外部装置20に送信すべき複数のデータの各々を、所定の収集規則に従って繰り返し収集する収集部140と、単位時間あたりに収集されるデータ量のユーザが指定する最大値を受け付ける受付部120と、所定の収集規則に従う収集部によって単位時間あたりに収集されるデータのデータ量が、受付部により受け付けられた最大値以下となるように、所定の収集規則を調整する第1調整部130と、を備える。【選択図】図1

Description

本発明は、マスタスレーブ制御システムにおけるマスタ装置等に関する。
従来から、FA(Factory Automation)の分野において、工場などに設置される生産設備等に係るデータを、効率的に収集、管理しようとする試みがなされている。例えば、下掲の特許文献1には、上位装置により設定される収集間隔で制御データを収集し、収集した制御データを、収集間隔に等しいか、または大きい転送間隔で、上位装置に転送するPLC(プログラマブル・ロジック・コントローラ、Programmable Logic Controller)が開示されている。
再公表WO2012/111653
しかしながら、上述のような従来技術は、制御周期ごとに取得したデバイスデータ等の制御データをPLCが上位装置へ転送する場合、転送に関係する処理の処理負荷が大きくなると、制御処理等の転送以外の処理の実行に悪影響を及ぼし得るという問題がある。より具体的には、従来技術には、PLC等のマスタスレーブ制御システムにおけるマスタ装置について、外部サーバ等の外部装置に送信すべきデータを制御データから収集する処理の処理負荷が大きくなった場合に、収集処理以外の処理の実行が影響を受け得るとの視点がない。以下に詳細を説明する。
一般に、PLCが制御周期ごとに取得するデバイスデータ等の制御データは、種類も量も極めて多いため、これらを全て外部サーバ等の外部装置へ転送するのは効率的ではない。そこで、例えばPLCは、制御周期ごとに取得した制御データから所望のデータを収集し、収集した所望のデータを外部装置に送信する。
ただし、例えばマスタスレーブ制御システムとして構築されるFAシステムについて、その監視、検証等を精緻に行うためには、監視、検証の対象として外部装置に保存する制御データは、できるだけ多くしたいとの要望がある。そのため、PLCには、制御周期ごとに取得した制御データから、できるだけ多くのデータを、外部装置に送信すべき所望のデータとして収集することが期待される。
そのため、PLC等のマスタスレーブ制御システムにおけるマスタ装置について、外部装置に送信すべきデータを制御データから収集する処理の処理負荷が、収集処理以外の処理の実行に影響を及ぼすほどに大きくなる可能性がある。
本発明の一態様は、前記の問題点に鑑みてなされたものであり、マスタスレーブ制御システムにおけるマスタ装置について、外部装置に送信すべきデータを制御データから収集する処理の処理負荷を、ユーザが管理できるようにすることを目的とする。
上記の課題を解決するために、本発明の一態様に係るマスタ装置は、マスタスレーブ制御システムにおけるマスタ装置であって、スレーブ装置から周期的に取得した制御データから、外部装置に送信すべき複数のデータの各々を、所定の収集規則に従って、繰り返し収集する収集部と、前記収集部によって単位時間あたりに収集されるデータのデータ量について、ユーザの指定する最大値を受け付ける受付部と、前記所定の収集規則に従う前記収集部によって単位時間あたりに収集されるデータのデータ量が、前記受付部により受け付けられた前記最大値以下となるように、前記所定の収集規則を調整する第1調整部と、を備えている。
前記の構成によれば、前記マスタ装置は、単位時間あたりに収集するデータのデータ量が前記最大値以下となるように前記所定の収集規則を調整し、調整した前記所定の収集規則に従って、前記制御データから、前記複数のデータの各々を繰り返し収集する。
ここで、単位時間あたりに収集するデータのデータ量が大きくなるほど、前記マスタ装置のデータ収集に係る単位時間当たりの処理負荷が大きくなることは明らかである。つまり、前記最大値は、前記マスタ装置のデータ収集に係る単位時間当たりの処理負荷に対応する。
したがって、前記マスタ装置は、データ収集に係る単位時間当たりの処理負荷が、ユーザの指定する前記最大値に対応する処理負荷以下となるように、前記制御データから、前記外部サーバ等の外部装置に送信すべきデータを収集することができるとの効果を奏する。言い換えれば、前記マスタ装置によってユーザは、前記制御データから前記複数のデータの各々を収集する処理に係る処理負荷を管理できるようになるとの効果を奏する。具体的には、ユーザは、前記マスタ装置に、「前記スレーブ対象に対する制御処理などの、データ収集処理以外の処理」の実行に影響のない適切な処理負荷で、前記外部装置に送信すべきデータを、前記制御データから収集させることができる。
また、「前記マスタ装置が単位時間あたりに収集するデータのデータ量」は、ユーザにとって直感的に把握しやすく、かつ、「前記マスタ装置の、データ収集に係る単位時間当たりの処理負荷」を正確に示すことのできる指標である。
したがって、前記マスタ装置は、「データ収集に係る単位時間当たりの処理負荷」の指標として正確で、かつ、ユーザにとって直感的な把握の容易な「単位時間あたりに収集するデータのデータ量」に基づいて、データ収集処理を管理できるとの効果を奏する。
本発明の一態様に係るマスタ装置において、前記所定の収集規則は、前記収集部によって収集される前記複数のデータの各々の収集順序を示す順列を含み、前記収集部は、前記複数のデータの各々を、前記順列に従って繰り返し収集し、前記所定の収集規則に従う前記収集部によって単位時間あたりに収集されるデータのデータ量は、前記順列を一巡するまでに前記収集部によって収集されるデータのデータ量を、前記順列を一巡するまでに前記収集部が要する時間で除した値であってもよい。
前記の構成によれば、前記マスタ装置は、前記制御データから前記順列に従って繰り返し、前記外部装置に送信すべき前記複数のデータの各々を、収集する。
したがって、前記マスタ装置は、例えば前記マスタスレーブ制御システムの監視、検証を行うためのデータを、前記順列に示される収集順序で、前記制御データから繰り返し収集することができるとの効果を奏する。
本発明の一態様に係るマスタ装置において、前記第1調整部は、前記所定の収集規則として、(1)前記複数のデータの各々の、前記順列における出現回数、(2)前記複数のデータの各々の、前記順列における1回の出現ごとに収集されるデータ点数、(3)前記複数のデータの各々の、前記順列における1回の出現ごとに単位時間当たりに収集されるデータ点数である収集周波数、および、(4)前記順列を一巡するまでに前記収集部が要する時間の少なくとも1つを調整してもよい。
前記の構成によれば、前記マスタ装置は、前記所定の収集規則として、前記複数のデータの各々の、前記出現回数、前記順列における1回の出現ごとに収集するデータ点数、前記収集周波数、および、前記順列を一巡するのに要する時間の少なくとも1つを調整する。
ここで、複数の時点の各々における「前記複数のデータの各々」を、前記外部サーバ等の外部装置に蓄積して、一貫性のある解析を実行しようとする場合、前記外部装置に送信する前記複数のデータの各々の前記収集周波数は、複数の時点の各々で不変とするのが望ましい。例えば、或るデータDaについて、或る時点T1での前記収集周波数が500Hzである場合、その或るデータDaの、別の時点T2での前記収集周波数は、その或るデータDaに対して一貫性のある解析を実行しようとする場合には、500Hzとするのが望ましい。そこで、例えば一貫性のある解析を目的として前記複数のデータの各々を収集する場合、前記マスタ装置は、前記複数のデータの各々の収集に際し、前記複数のデータの各々の前記収集周波数を変更せずに、前記所定の収集規則に含まれる、それ以外の項目を調整する。具体的には、前記マスタ装置は、前記所定の収集規則として、前記複数のデータの各々の、前記出現回数、前記順列における1回の出現ごとに収集するデータ点数、および、前記順列を一巡するのに要する時間の少なくとも1つを調整する。
また、前記複数のデータの各々を、所定の順序で、まんべんなく(つまり、特定のデータに偏ることなく)収集したい場合、前記マスタ装置は、前記複数のデータの各々の、前記出現回数および前記順列における1回の出現ごとに収集するデータ点数を変更しない。前記マスタ装置は、前記所定の収集規則のうち、前記複数のデータの各々の前記収集周波数、および、前記順列を一巡するのに要する時間の少なくとも一方を調整して、前記制御データから、前記複数のデータの各々を繰り返し収集する。
さらに、前記複数のデータの各々を収集する時間(=収集期間)を連続させる必要がない場合、前記マスタ装置は、前記所定の収集規則のうち、前記順列を一巡するのに要する時間を調整する。前記マスタ装置は、例えば、3種類のデータDa、Db、Dcをこの順序で繰り返し収集する場合、以下のように空き時間(=待ち時間)を挿入して、「Da、Db、Dcの各々を、この順序で、1回収集する」のに要する時間を調整する。すなわち、前記マスタ装置は、「Daの収集終了後からDbの収集開始までの間」、「Dbの収集終了後からDcの収集開始までの間」、および、「Dcの収集終了後からDaの収集開始までの間」の少なくとも1つに、空き時間を挿入する。
つまり、前記マスタ装置は、前記所定の収集規則のうち、前記複数のデータの各々の、前記出現回数、前記順列における1回の出現ごとに収集するデータ点数、前記収集周波数、および、前記順列を一巡するのに要する時間の少なくとも1つを調整する。したがって、前記マスタ装置は、前記所定の収集規則のうち、前記複数のデータの利用目的等に好適な項目を適宜調整して、データ収集に係る処理負荷が前記最大値に対応する処理負荷以下となるように、前記複数のデータを収集できるとの効果を奏する。
本発明の一態様に係るマスタ装置は、前記収集部によって収集された前記複数のデータの各々に対して付与される評価値が所定の基準を満たすと、当該所定の基準を満たす評価値の付与されたデータについて、(1)前記順列における出現回数、(2)前記順列における1回の出現ごとに収集されるデータ点数、および、(3)前記順列における1回の出現ごとに単位時間当たりに収集されるデータ点数である収集周波数の少なくとも1つを調整する第2調整部をさらに備え、前記第1調整部は、前記第2調整部により調整された前記出現回数、前記順列における1回の出現ごとに収集されるデータ点数、および、前記収集周波数を含む前記所定の収集規則を、前記最大値を用いてさらに調整してもよい。
前記の構成によれば、前記マスタ装置は、前記複数のデータの各々に対して付与される評価値に従って、前記複数のデータの各々の、前記出現回数、前記順列における1回の出現ごとに収集されるデータ点数、および、前記収集周波数の少なくとも1つを調整する。
例えば、前記マスタ装置は、高い評価値の付与されたデータについては、前記出現回数、前記順列における1回の出現ごとに収集されるデータ点数、および、前記収集周波数の少なくとも1つを増やす。また、前記マスタ装置は、低い評価値の付与されたデータについては、前記出現回数、前記順列における1回の出現ごとに収集されるデータ点数、および、前記収集周波数の少なくとも1つを減らす。
したがって、前記マスタ装置は、前記複数のデータの各々を、各々の前記評価値に従った、前記出現回数、前記順列における1回の出現ごとに収集されるデータ点数、および、前記収集周波数で、収集することができるとの効果を奏する。
ここで、前記マスタ装置は、前記評価値に従って調整した、前記複数のデータの各々の、前記出現回数、前記順列における1回の出現ごとに収集されるデータ点数、および、前記収集周波数を含む前記所定の収集規則を、前記最大値を用いてさらに調整する。
したがって、前記マスタ装置は、前記複数のデータの各々を、各々の前記評価値に従った、かつ、前記複数のデータの各々の収集に係る単位時間当たりの処理負荷が前記最大値に対応する処理負荷以下となるように、収集することができるとの効果を奏する。
本発明の一態様に係るマスタ装置において、前記第1調整部は、(1)前記複数のデータの各々の、前記順列における1回の出現ごとに収集されるデータ点数、および、(2)前記複数のデータの各々の、前記順列における1回の出現ごとに単位時間当たりに収集されるデータ点数である収集周波数の少なくとも一方を、一律の割合で小さくしてもよい。
前記の構成によれば、前記マスタ装置は、前記所定の収集規則の調整として、前記複数のデータの各々の、前記順列における1回の出現ごとに収集されるデータ点数、および、前記収集周波数の少なくとも一方を、一律の割合で小さくする。
例えば、前記複数のデータの各々を所定の順序で収集したい場合、前記マスタ装置は、前記所定の収集規則のうち、「前記複数のデータの各々の、前記順列における出現回数」については、変更しない。その代わりに、前記マスタ装置は、前記複数のデータの各々の、前記順列における1回の出現ごとに収集されるデータ点数、および、前記収集周波数の少なくとも一方を、一律の割合で小さくすることで、データ収集に係る処理負荷を減少させる。
したがって、前記マスタ装置は、例えば、前記複数のデータの各々を所定の順序で収集したい場合などに、「前記複数のデータの各々の、前記順列における出現回数」を変更せずに、データ収集に係る処理負荷を減少させることができるとの効果を奏する。
本発明の一態様に係るマスタ装置は、(1)前記最大値、(2)前記第1調整部によって調整された前記所定の収集規則に従う前記収集部によって単位時間あたりに収集されるデータのデータ量、および、(3)両者の差をユーザに対して表示させる表示制御部をさらに備えてもよい。
前記の構成によれば、前記マスタ装置は、前記最大値と、調整済の前記所定の収集規則に従って単位時間あたりに収集しているデータのデータ量との差を、つまり、データ収集に係る処理負荷の許容値を示す値と実際の処理負荷を示す値との差を、表示させる。
したがって、前記マスタ装置は、ユーザが一見して認識できるように、データ収集に要している現在の処理負荷から、データ収集に係る処理負荷の許容値までの余裕度を通知することができるとの効果を奏する。
本発明の一態様に係るマスタ装置において、前記収集部によって収集される前記複数のデータの各々は、前記スレーブ装置から周期的に取得した制御データのうち、ユーザによって収集対象として選択されたデータであってもよい。
前記の構成によれば、前記マスタ装置は、前記スレーブ装置から周期的に取得した前記制御データのうち、ユーザによって収集対象として選択されたデータを、前記所定の収集規則に従って、繰り返し収集する。
したがって、前記マスタ装置は、前記制御データのうち、ユーザによって収集対象として選択されたデータのみを、単位時間あたりに収集するデータのデータ量が前記最大値以下となるように、繰り返し収集することができるとの効果を奏する。
上記の課題を解決するために、本発明の一態様に係る制御方法は、マスタスレーブ制御システムにおけるマスタ装置の制御方法であって、スレーブ装置から周期的に取得した制御データから、外部装置に送信すべき複数のデータの各々を、所定の収集規則に従って、繰り返し収集する収集ステップと、前記収集ステップにて単位時間あたりに収集されるデータのデータ量について、ユーザの指定する最大値を受け付ける受付ステップと、前記所定の収集規則に従って前記収集ステップにて単位時間あたりに収集されるデータのデータ量が、前記受付ステップにて受け付けられた前記最大値以下となるように、前記所定の収集規則を調整する第1調整ステップと、を含んでいる。
前記の方法によれば、前記制御方法は、単位時間あたりに収集するデータのデータ量が前記最大値以下となるように前記所定の収集規則を調整し、調整した前記所定の収集規則に従って、前記制御データから、前記複数のデータの各々を繰り返し収集する。
ここで、単位時間あたりに収集するデータのデータ量が大きくなるほど、前記制御方法のデータ収集に係る単位時間当たりの処理負荷が大きくなることは明らかである。つまり、前記最大値は、前記制御方法のデータ収集に係る単位時間当たりの処理負荷に対応する。
したがって、前記制御方法は、データ収集に係る単位時間当たりの処理負荷が、ユーザの指定する前記最大値に対応する処理負荷以下となるように、前記制御データから、前記外部サーバ等の外部装置に送信すべきデータを収集することができるとの効果を奏する。言い換えれば、前記制御方法によってユーザは、前記制御データから前記複数のデータの各々を収集する処理に係る処理負荷を管理できるようになるとの効果を奏する。具体的には、ユーザは、前記マスタ装置に、「前記スレーブ対象に対する制御処理などの、データ収集処理以外の処理」の実行に影響のない適切な処理負荷で、前記外部装置に送信すべきデータを、前記制御データから収集させることができる。
また、「前記制御方法が単位時間あたりに収集するデータのデータ量」は、ユーザにとって直感的に把握しやすく、かつ、「前記制御方法の、データ収集に係る単位時間当たりの処理負荷」を正確に示すことのできる指標である。
したがって、前記制御方法は、「データ収集に係る単位時間当たりの処理負荷」の指標として正確で、かつ、ユーザにとって直感的な把握の容易な「単位時間あたりに収集するデータのデータ量」に基づいて、データ収集処理を管理できるとの効果を奏する。
本発明の一態様によれば、マスタスレーブ制御システムにおけるマスタ装置について、外部装置に送信すべきデータを制御データから収集する処理の処理負荷を、ユーザが管理できるようになるという効果を奏する。
本発明の実施形態1に係るPLC等の要部構成を示すブロック図である。 図1のPLCを含む制御システムの全体概要を示す図である。 図1のPLCが実行する、制御データから「データベースに送信すべきデータ」を収集する方法のイメージを示す図である。 収集規則テーブルのデータ構造の一例を示す図である。 図1のPLCが実行する処理の概要を示すフロー図である。 重要度に基づいて収集規則を調整する方法の例を示す図である。 基準収集規則を変更せずに採用できる場合の収集規則テーブルの一例である。 基準収集規則をそのまま採用できない場合の収集規則テーブルの一例である。 各I/Oノードの収集規則を増減させた場合の、平均サンプリング速度の変化の傾向を説明する図である。 収集規則の調整方法の一例を示す図である。 収集規則の調整方法について、図10の例とは異なる例を示す図である。 収集規則の調整方法について、図10および図11の例とは異なる例を示す図である。 図1のPLCが外部表示装置の表示画面に表示させる情報の一例である。 図4に例示したのとは異なる収集規則テーブルのデータ構造の例である。
〔実施形態1〕
以下、本発明の一側面に係る実施の形態(以下、「本実施形態」とも表記する)を、図1から図14に基づいて説明する。なお、図中同一または相当部分には同一符号を付してその説明は繰返さない。本実施の形態においては、例えばPLC(Programmable Logic Controller)10をマスタ装置の典型例として説明を行う。本発明の一態様に係るPLC10についての理解を容易にするため、先ず、PLC10を含む制御システム1の概要を、図2および図3を用いて説明する。
§1.適用例
(制御システムの概要)
図2は、制御システム1の全体概要を示す図である。図2に示すように、制御システム1は、マスタ装置としてのPLC10と、マスタ装置にネットワークを介して接続される1つ以上のスレーブ装置としてのサーボドライバ30A、30B、30C、30D、・・・とを含むマスタスレーブ制御システムである。サーボドライバ30A、30B、30C、30Dの各々には、サーボモータ40A、40B、40C、40Dが接続している。
なお、以下の説明において、サーボドライバ30A、30B、30C、30Dの各々を区別する必要がない場合には、単に「サーボドライバ30」と表記する。同様に、サーボモータ40A、40B、40C、40Dの各々を区別する必要がない場合には、単に「サーボモータ40」と表記する。
PLC10は、サーボモータ40などの制御機器を制御するためのユーザプログラムを実行するプログラマブルコントローラであり、下位コントローラとしてのサーボドライバ30に対する上位コントローラである。PLC10は、制御システム1において、ネットワークを介したデータ伝送を管理しているという意味で「マスタ装置」と呼ばれ、一方、サーボドライバ30は「スレーブ装置」と呼ばれる。すなわち、制御システム1は、マスタ装置としてのPLC10と、マスタ装置にネットワークを介して接続される1つ以上のスレーブ装置としてのサーボドライバ30とを含むマスタスレーブ制御システムである。PLC10とサーボドライバ30とをつなぐネットワークとしては、例えば、EtherCAT(登録商標)を使用することができる。
PLC10は、サーボドライバ30に対して、制御指示を制御周期ごとに出力してサーボドライバ30に対する制御を実行する。また、PLC10は、サーボドライバ30から、サーボモータ40の出力に係るデータ(つまり、トルク、速度、および位置など、サーボモータ40の状態を示す制御データ)を制御周期ごとに取得する。
サーボドライバ30は、サーボモータ40の制御装置であり、PLC10からの制御指示を制御周期ごとに受信し、受信した制御指示に従ってサーボモータ40を駆動する。また、サーボドライバ30は、サーボモータ40の軸に接続されている位置センサおよびトルクセンサなどから、位置、速度、トルクといったサーボモータ40の出力(状態)に係る実測値を取得し、これら実測値に係るデータを制御周期ごとにPLC10に出力する。なお、サーボドライバ30は、サーボモータアンプと称されることもある。
マスタ装置としてのPLC10に接続されるスレーブ装置としては、サーボドライバ30以外にも、各種のデバイス通信管理ユニットなどが含まれ得る。デバイス通信管理ユニットには、デバイス通信ケーブルを介して、1つ以上のデバイスが接続される。デバイス通信管理ユニットに接続されるデバイスは、例えば、センサなどの入力機器であり、または、アクチュエータ(Actuator)などの出力機器である。PLC10は、ネットワークを介してデバイス通信管理ユニットから、デバイス通信管理ユニットに接続される1つ以上のデバイスの各々からの情報(例えば、センサなどからの検知情報)を取得することができる。これらのデバイスからのデータ(デバイスデータ。例えば、センサなどからの検知情報)も、マスタ装置としてのPLC10が、スレーブ装置から制御周期ごとに周期的に取得する制御データである。
なお、「マスタ装置」および「スレーブ装置」は、ネットワーク上のデータ伝送の制御機能に着目して定義されるものであり、各装置間でどのような情報が送受信されるかについては、特に限定されない。PLC10は、マスタ装置として、サーボドライバ30等のスレーブ装置が出力するデータ(制御データ)を、制御周期ごとに周期的に取得する。そして、PLC10は、サーボドライバ30等のスレーブ装置から制御周期ごとに取得した制御データの少なくとも一部を、外部のデータベース20に送信する。
データベース20は、PLC10から送信されたデータを、つまり、PLC10がスレーブ装置から制御周期ごとに取得した制御データの少なくとも一部を受け付け、受け付けたデータを保存領域に格納する。
ここで一般に、PLC10がサーボドライバ30等のスレーブ装置から制御周期ごとに周期的に取得する制御データは、データ数が非常に多くなる傾向がある。例えば、各軸について、「トルク」、「速度」、および「位置」の3種類のサーボデータ(制御データ)を20軸分、サーボドライバ30から取得するとしたら、PLC10は制御周期ごとに60点のサーボデータを取得することになる。
そのため、PLC10がスレーブ装置から制御周期ごとに取得する制御データの全てをデータベース20に格納する場合、データベース20に格納される制御データのデータ量は膨大になり、データベース20の保存領域が直ぐに不足してしまう。また、ユーザ(人)が、データベース20に格納するデータを、PLC10が制御周期ごとに取得する膨大な制御データの中から選択する場合、制御システム1の異常を示す制御データなど、データベース20に格納したい制御データを見逃してしまう可能性がある。
そこで、PLC10は、スレーブ装置から制御周期ごとに取得する制御データから、データベース20に送信すべきデータを、所定の収集規則に従って収集し、収集したデータをデータベース20に送信する(つまり、格納する)。以下の説明では、「スレーブ装置から制御周期ごとに周期的に取得した制御データから、データベース20に送信すべきデータを収集する」ことを「サンプリング」とも称する。
ただし、単純に「一定のタイミング(時間間隔)、一定のサンプリング周波数で、制御データから、データベース20に送信すべきデータを収集する」方法を実行した場合、以下の問題が生じ得る。すなわち、ユーザにとって重要性の低い制御データを過剰に収集してしまったり、ユーザにとって重要性の高い制御データを詳細に収集することができなかったりする可能性がある。
また、PLC10の処理能力(システム性能)全体に比して、サンプリングに要する処理負荷が大きすぎると、メモリ枯渇、およびバッファオーバーフロー等により、データベース20に送信すべきデータが欠落する可能性がある。さらに、サンプリングのためにシステムリソースが消費され、制御プログラムの実行等に支障をきたす可能性もある。
そこで、PLC10は、データベース20に送信すべき複数のデータの各々について重要度(評価値)を算出し、算出した重要度を用いて、データベース20に送信すべき複数のデータの各々についての収集規則を調整する。例えば、PLC10は、重要度の高いデータの収集頻度、サンプリング周波数、および、サンプリング点数などを、重要度の低いデータの収集頻度、サンプリング周波数、および、サンプリング点数などに比べて、高くする。PLC10は、複数のデータの各々についての収集規則を、複数のデータの各々の重要度を用いて調整することによって、重要性の高い制御データを詳細に収集し、かつ、重要性の低い制御データについては過剰な収集を回避することができる。
また、PLC10は、サンプリング処理に係る処理負荷が、ユーザの設定する最大値以下となるように、データベース20に送信すべき複数のデータの各々についての収集規則を調整し、調整した収集規則に従って、サンプリング処理を実行する。したがって、PLC10は、ユーザの管理下、スレーブ装置に対する制御処理など、サンプリング処理以外の処理に影響がでないように、サンプリング処理を実行することができる。
PLC10には、例えばUSB(Universal Serial Bus)ケーブルである通信ケーブルを介して、不図示のツール等が接続していてもよい。ツールは、制御システム1に対して各種のパラメータを設定するための情報処理装置である。例えば、PLC10の実行するサンプリング処理の収集規則に係る情報(詳細は後述する)は、ツールによって設定されてもよい。ツールは、典型的には、汎用のコンピュータで構成される。ツールの代わりに、通信ケーブルを介して、PLC10にHMI(Human Machine Interface)が接続されてもよい。PLC10は、例えばツール等から、サンプリング処理に係る収集規則についての情報(例えば、収集規則についての初期値・基準値など)を受け付ける。
図3は、PLC10が実行する、制御データから「データベース20に送信すべきデータ」を収集する方法の、つまり、PLC10の実行するサンプリング処理の、イメージを示す図である。PLC10は、図2の制御データテーブル181に格納されたI/O(制御データ)の各点を、ネットワークのノード(I/Oノード)として扱い、各I/Oノードにおいてデータを収集しながら、I/Oノードを巡回する。
すなわち、PLC10は、サーボドライバ30から制御周期ごとに取得する種々の制御データの各々を、マスタ装置としてのPLC10が伝送を制御するネットワークのノード(I/Oノード)として扱う。PLC10は、例えば、サーボドライバ30から周期的に取得した「軸1のトルクを示すデータ(TorqueData1)」、「軸1の速度を示すデータ(VelocityData1)」、および「軸1の位置を示すデータ(PositionData1)」の各々を、ノード(I/Oノード)として扱う。
そして、スレーブ装置から取得した複数の制御データの全体(つまり、制御データ群)に対して、PLC10は、データ収集対象とするI/Oノードを所定の順番で切り替えながら、各I/Oノードのデータを収集する。PLC10は、例えば、先ず「TorqueData1」のデータを収集し、次に「VelocityData1」のデータを、さらに「PositionData1」のデータを、そして、・・・と次々に、各I/Oノードのデータを収集する。
図3には、PLC10が、「A、B、C、D、E、F」の6個のI/Oノードを、この順で(つまり、「AからBへ、BからCへ、CからDへ、DからEへ、EからFへ、Fから再びAへ」)巡回しながら、サンプリングを実行するイメージが示されている。すなわち、PLC10は、「A、B、C、D、E、F」の6個のI/Oノードの各々について、「A、B、C、D、E、F、A、B、C、D、E、F、A、・・・」の順で、データを収集する。PLC10は、例えば、「TorqueData1」、「VelocityData1」、「PositionData1」、「TorqueData2」、「VelocityData2」、「PositionData3」の6個のI/Oノードについて、この順で、各I/Oノードのデータを収集する処理を繰り返す。PLC10は、データ収集対象とするI/Oノードを所定の順番で切り替えながら、各I/Oノードのデータを次々に収集していく処理を繰り返すことで、制御システム1の異常等を示すデータを見逃してしまう(つまり、収集対象から漏らす)可能性を低減できる。
(用語の整理)
以下の説明において、「データ収集対象のI/Oノードを一定の順番で切り替えながら、各I/Oノードのデータを収集すること」を、「巡回」と称することがある。例えば、「A、B、C、D、E、F(つまり、Aの後にB、Bの後にC、Cの後にD、Dの後にE、Eの後にF、Fの後にA)」といった一定のパターン(順序)で繰り返し、各I/Oノードのデータを収集することを、「巡回」と称することがある。
I/Oノードの出現順序の重複を含まない、巡回の最小単位であるI/Oノードの順列を、「巡回単位順列(または、単に「順列」)」と呼ぶことがある。例えば、PLC10が「Aの後にB、Bの後にC、Cの後にA、Aの後にB、Bの後にC、Cの後にA、Aの後にB、・・・」で巡回を実行する場合、順列は「A、B、C」である。同様に、PLC10が「Aの後にB、Bの後にC、Cの後にD、Dの後にE、Eの後にF、Fの後にA、Aの後にB、Bの後にC、Cの後にD、Dの後にE、Eの後にF、Fの後にA、Aの後にB、・・・」で巡回を実行する場合、順列は「A、B、C、D、E、F」である。
巡回単位順列に含まれる特定のI/Oノードの出現回数を「巡回頻度」と称する。例えば、「順列:A、B、C、D、E、F」における「I/Oノード:A」の巡回頻度は、「1〔回/巡]」である。「順列:A、B、C、A、D、E、F」における「I/Oノード:A」の巡回頻度は、「2〔回/巡]」である。「順列:A、B、C、A、D、E、A、F」における「I/Oノード:A」の巡回頻度は、「3〔回/巡]」である。
なお、「順列:A、B、C、D、E、F」における「I/Oノード:A」の相対的な巡回頻度(順列における全要素数に対する、各I/Oノードの個数)を、「1/6〔回/巡]」と表現してもよい。同様に、「順列:A、B、C、A、D、E、F」における「I/Oノード:A」の相対的な巡回頻度を、「2/7〔回/巡]」と表現してもよい。「順列:A、B、C、A、D、E、A、F」における「I/Oノード:A」の相対的な巡回頻度は、「3/8〔回/巡]」である。
上の例からも明らかな通り、巡回単位順列に含まれるI/Oノードの個数と、巡回単位順列の全要素の総数とは一致するとは限らず、巡回単位順列の要素の総数は巡回単位順列(巡回パターン)によって変化する。例えば、AからFまでの6個のI/Oノードを含む「巡回単位順列(順列)」であっても、その巡回単位順列の全要素の総数は様々である。すなわち、「順列:A、B、C、D、E、F」の全要素の総数は「6」、「順列:A、B、C、A、D、E、F」の全要素の総数は「7」、「順列:A、B、C、A、D、E、A、F」の全要素の総数は「8」である。
また、巡回単位順列内での巡回順は、実装に即して任意に表現することができる。例えば、AからCまでの3個のI/Oノードを含む「順列:A、B、C」は、「順列:B、C、A」と表現してもよいし、「順列:C、A、B」と表現してもよい。
さらに、巡回単位順列内での巡回順(各I/Oノードの出現順序)は、実装に即して任意に設定することができる。例えば、AからCまでの3個のI/Oノードについての、全要素の総数が「3」である順列として、「順列:A、B、C」および「順列:A、C、B」のいずれを設定してもよい。
(本実施形態に係るPLCの概要)
制御システム1において、ユーザは、「PLC10がサンプリング処理の実行に要する処理負荷の大きさを示す値であって、ユーザが許容する最大の値」を、「最大許容平均サンプリング速度Vallowed_mean_max(以下、最大値Vamm)」として設定する。PLC10は、最大値Vammに基づいて、サンプリングに係る収集規則を動的に最適化する。
すなわち、ユーザは、PLC10のデータ収集能力について最大値Vammを設定し、また、各I/Oノードに対して、所望の収集規則(収集規則の基準値)を設定する。具体的には、ユーザは、各I/Oノードについて、「名称(識別子)」に加えて、各I/Oノードに対する所望の収集規則として、「サンプリング周波数の基準(基準周波数)」および「サンプリング点数の基準(基準点数)」等を指定する。
「サンプリング点数」とは、各I/Oノードについて、巡回単位順列における1回の出現ごとに収集されるデータ点数であり、「基準サンプリング点数」は、ユーザの初期設定する、つまり、例えばユーザの所望する、「サンプリング点数」である。
「サンプリング周波数」とは、各I/Oノードについて、巡回単位順列における1回の出現ごとに単位時間当たりに収集されるデータ点数である。「基準サンプリング周波数」は、ユーザの初期設定する、つまり、例えばユーザの所望する、「サンプリング周波数」である。
PLC10は、各I/Oノードの「基準周波数」および「基準点数」等を含む「初期設定時の収集規則」に従ってサンプリング処理の実行した場合に要する処理負荷の大きさを示す値(平均サンプリング速度Vmean)を算出する。そして、PLC10は、最大値Vammと平均サンプリング速度Vmeanとを比較して、具体的には、「最大値Vammと平均サンプリング速度Vmeanとの差(つまり、最大値Vamm−平均サンプリング速度Vmean)」から、「余裕速度Vmargin」を算出する。
PLC10は、「余裕速度Vmarginが『0』以上となる(つまり、余裕速度Vmargin≧0)」ように、収集規則を調整する。具体的には、PLC10は、「余裕速度Vmarginが『0』以上となる」ように、各I/Oノードについて、巡回単位順列における「巡回頻度(出現回数)」、「サンプリング周波数」、および、「サンプリング点数」の少なくとも1つを変更する。また、PLC10は、「余裕速度Vmarginが『0』以上となる」ように、「巡回単位順列を一巡するまでに要する時間」を調整してもよい。PLC10は、「余裕速度Vmarginが『0』以上となる」ように調整した収集規則に従って、サンプリング(データ収集)を開始する。
さらに、PLC10は、I/Oノード毎に、収集したデータの重要度の判定を行い、具体的には、各I/Oノードについて(より正確には、各I/Oノードのデータについて)、重要度(評価値)を算出する。
PLC10は、重要度判定の結果に基づき、つまり、各I/Oノードの重要度を用いて、「余裕速度Vmarginが『0』以上となる」との条件を満たす範囲で、各I/Oノードの収集規則を調整する。具体的には、PLC10は、「余裕速度Vmarginが『0』以上となる」との条件下で、各I/Oノードについて、重要度に基づいて、巡回単位順列における「巡回頻度」、「サンプリング周波数」、および、「サンプリング点数」の少なくとも1つを調節する。例えば、PLC10は、重要度の高いI/Oノードについてはデータを詳細に収集し、かつ、重要度の低いI/Oノードについてはデータの過剰な収集を回避して収集するように、各I/Oノードの収集規則を、各I/Oノードの重要度に従って調整する。したがって、PLC10は、システムリソースを最大限に活かしつつ、重要性が高いデータを詳細かつ大量に収集することができる。
(重要度についての注記)
PLC10がサンプリングする種々のデータに対する重要度(評価値)は、そのデータの利用目的によって異なり、利用目的はユーザにより様々である。例えば、オペレータであれば、「現場異常」の発生有無の判定を、データの主たる利用目的とするかもしれないし、ライン管理者であれば、「生産性および生産物の品質」の判定を、データの主たる利用目的とするかもしれない。また、保全担当者であれば、「異常の兆候、および、バスタブ曲線」の判定を、データの主たる利用目的とするかもしれないし、特に、「保全作業前後」の時期に取得したデータへの関心が高いかもしれない。解析担当者であれば、「良/不良まんべんなく」取得する、定時性の(つまり、所定期間ごとに取得した)データへの関心が高いかもしれず、例えば、四季ごとに取得するデータへの関心が高いかもしれない。
データに対する重要度(評価値)は、利用目的ごとに異なるため、同じデータに対する、或る利用目的からみた重要度と、その或る利用目的とは別の利用目的からみた重要度とは、矛盾したり、衝突したりすることがあり得る。例えば、或る利用目的にとっては重要度が低く、削除しても構わないデータが、その或る利用目的とは別の利用目的にとっては、必須の、極めて重要度の高いデータであるかもしれない。
そこで、PLC10は、サンプリングした種々のデータの各々に対する、これら複数の「利用目的ごとの重要度」を自動調停し、「調停した重要度」を、サンプリングした種々のデータの各々に付与する。具体的には、PLC10は、サンプリングした種々のデータの各々について、複数の利用目的の各々に対応する複数の評価方式の各々を適用して、評価方式ごとの重要度を算出する。そして、PLC10は、サンプリングした種々のデータの各々について、算出した評価方式ごとの重要度を用いて、「複数の評価方式の全体に対応する重要度」である調停済重要度を算出し、算出した調停済重要度をサンプリングした種々のデータの各々に付与する。PLC10は、サンプリングした種々のデータの各々について、例えば、「評価方式ごとの重要度」を示す値に、「評価方式ごとの重み付け係数」を乗じた値の和を用いて、調停済重要度を算出する。また、PLC10は、サンプリングした種々のデータの各々について、例えば、「評価方式ごとの重要度」の中で最も高い重要度を、調停済重要度とする。
(表示処理等について)
PLC10は、ユーザが、データの収集状況をリアルタイムに把握して問題発見に役立てることができるよう、表示画面(例えば、ツールなどの外部表示装置の表示画面)に、実行中のサンプリング処理に係る情報を表示する。具体的には、PLC10は、「ユーザが設定した最大値Vamm」、「実行中のサンプリング処理に係る処理負荷の大きさを示す平均サンプリング速度Vmean」、および「最大値Vammと平均サンプリング速度Vmeanとの差である余裕速度Vmargin」を表示させる。また、PLC10は、例えば、「巡回単位順列に含まれる複数のI/Oノードの各々の名称」、「巡回単位順列における、各I/Oノードの出現順序」、および、「現在、データ収集対象となっているI/Oノード」を表示させる。さらに、PLC10は、例えば、各I/Oノードについて、適用中の収集規則における「サンプリング周波数」、「サンプリング点数」、および、「直近のデータに対する重要度」を表示させる。
これまでに図2および図3を用いて説明してきたように、PLC10は、制御周期毎に繰り返し、スレーブ装置から制御データを取得し(つまり、取り込み)、取得した制御データから、データベース20に送信すべきデータを、収集規則に従って収集する。PLC10は、収集規則として定義された巡回単位順列に従って、データ収集対象とするI/Oノードを順次切り替えながら、各I/Oノードのデータを収集する。PLC10は、収集規則として定義された各I/Oノードの「巡回頻度」、「サンプリング周波数」、および「サンプリング点数」等を、平均サンプリング速度Vmeanが最大値Vamm以下となるように調整し、調整済の収集規則に従って、サンプリングを実行する。また、PLC10は、各I/Oノードについて(より正確には、各I/Oノードのデータについて)重要度を算出し、算出した重要度に基づいて、各I/Oノードの「巡回頻度」、「サンプリング周波数」、および「サンプリング点数」等を調整する。
(概要の整理)
すなわち、PLC10(マスタ装置)は、マスタスレーブ制御システムである制御システム1におけるマスタ装置であって、収集部140と、受付部120と、第1調整部130と、を備えている。収集部140は、サーボドライバ30等のスレーブ装置から周期的に取得した制御データから、データベース20等の外部装置に送信すべき複数のデータの各々を、所定の収集規則に従って、繰り返し収集する。受付部120は、収集部140によって単位時間あたりに収集されるデータのデータ量について、ユーザの指定する最大値Vammを受け付ける。第1調整部130は、前記所定の収集規則に従う収集部140によって単位時間あたりに収集されるデータのデータ量が、受付部120により受け付けられた最大値Vamm以下となるように、前記所定の収集規則を調整する。
前記の構成によれば、PLC10は、単位時間あたりに収集するデータのデータ量が最大値Vamm以下となるように前記所定の収集規則を調整し、調整した前記所定の収集規則に従って、前記制御データから、前記複数のデータの各々を繰り返し収集する。
ここで、単位時間あたりに収集するデータのデータ量が大きくなるほど、PLC10のデータ収集に係る単位時間当たりの処理負荷が大きくなることは明らかである。つまり、最大値Vammは、PLC10のデータ収集に係る単位時間当たりの処理負荷に対応する。
したがって、PLC10は、データ収集に係る単位時間当たりの処理負荷が、ユーザの指定する最大値Vammに対応する処理負荷以下となるように、前記制御データから、データベース20の外部装置に送信すべきデータを収集することができるとの効果を奏する。言い換えれば、PLC10によってユーザは、前記制御データから前記複数のデータの各々を収集する処理に係る処理負荷を管理できるようになるとの効果を奏する。具体的には、ユーザは、PLC10に、「サーボドライバ30等のスレーブ対象に対する制御処理などの、データ収集処理以外の処理」の実行に影響のない適切な処理負荷で、データベース20に送信すべきデータを、前記制御データから収集させることができる。
また、「PLC10が単位時間あたりに収集するデータのデータ量」は、ユーザにとって直感的に把握しやすく、かつ、「PLC10の、データ収集に係る単位時間当たりの処理負荷」を正確に示すことのできる指標である。
したがって、PLC10は、「データ収集に係る単位時間当たりの処理負荷」の指標として正確で、かつ、ユーザにとって直感的な把握の容易な「単位時間あたりに収集するデータのデータ量」に基づいて、データ収集処理を管理できるとの効果を奏する。
PLC10において、前記所定の収集規則は、収集部140によって収集される前記複数のデータの各々の収集順序を示す順列(巡回単位順列)を含む。収集部140は、前記複数のデータの各々を、前記順列に従って繰り返し収集する。前記所定の収集規則に従う収集部140によって単位時間あたりに収集されるデータのデータ量は、例えば、「前記順列を一巡するまでに収集部140によって収集されるデータのデータ量を、前記順列を一巡するまでに収集部140が要する時間で除した値」である。
前記の構成によれば、PLC10は、前記制御データから前記順列に従って繰り返し、データベース20等の外部装置に送信すべき前記複数のデータの各々を、収集する。
したがって、PLC10は、例えば、制御システム1の監視および検証等を行うためのデータを、前記順列に示される収集順序で、前記制御データから繰り返し収集することができるとの効果を奏する。
PLC10において、第1調整部130は、前記所定の収集規則として、以下の4つの内の少なくとも1つを調整する。すなわち、第1調整部130は、(1)前記複数のデータの各々の、前記順列における出現回数である出現頻度、(2)前記複数のデータの各々の、前記順列における1回の出現ごとに収集されるデータ点数であるサンプリング点数、(3)前記複数のデータの各々の、前記順列における1回の出現ごとに単位時間当たりに収集されるデータ点数であるサンプリング周波数(収集周波数)、および、(4)前記順列を一巡するまでに収集部140が要する時間の少なくとも1つを調整する。
前記の構成によれば、PLC10は、前記所定の収集規則として、前記複数のデータの各々の、前記出現頻度、前記サンプリング点数、前記サンプリング周波数、および、前記順列を一巡するのに要する時間の少なくとも1つを調整する。
ここで、複数の時点の各々における「前記複数のデータの各々」を、データベース20等の外部装置に蓄積して、一貫性のある解析を実行しようとする場合、前記外部装置に送信する前記複数のデータの各々のサンプリング周波数は、複数の時点の各々で不変とするのが望ましい。例えば、或るデータDaについて、或る時点T1でのサンプリング周波数が500Hzである場合、その或るデータDaの、別の時点T2でのサンプリング周波数は、その或るデータDaに対して一貫性のある解析を実行しようとする場合には、500Hzとするのが望ましい。そこで、例えば一貫性のある解析を目的として前記複数のデータの各々を収集する場合、PLC10は、前記複数のデータの各々の収集に際し、前記複数のデータの各々のサンプリング周波数は変更せずに、前記所定の収集規則に含まれる、それ以外の項目を調整する。具体的には、PLC10は、前記所定の収集規則として、前記複数のデータの各々の、出現頻度、前記サンプリング点数、および、前記順列を一巡するのに要する時間の少なくとも1つを調整する。
また、前記複数のデータの各々を、所定の順序で、まんべんなく(つまり、特定のデータに偏ることなく)収集したい場合、PLC10は、前記複数のデータの各々の、出現頻度および前記サンプリング点数を変更しない。PLC10は、前記所定の収集規則のうち、前記複数のデータの各々のサンプリング周波数、および、前記順列を一巡するのに要する時間の少なくとも一方を調整して、前記制御データから、前記複数のデータの各々を繰り返し収集する。
さらに、前記複数のデータの各々を収集する時間(=収集期間)を連続させる必要がない場合、PLC10は、前記所定の収集規則のうち、前記順列を一巡するのに要する時間を調整する。PLC10は、例えば、「I/Oノード:A、B、C」の各々のデータを「順列:A、B、C」に従って繰り返し収集する場合、以下のように空き時間(=待ち時間)を挿入して、各I/Oノードのデータを、この順序で、1回収集する」のに要する時間を調整する。すなわち、PLC10は、「『I/Oノード:A』のデータの収集終了後から、『I/Oノード:B』のデータの収集開始までの間」、「『I/Oノード:B』のデータの収集終了後から、『I/Oノード:C』のデータの収集開始までの間」、および、「『I/Oノード:C』のデータの収集終了後から、『I/Oノード:A』のデータの収集開始までの間」の少なくとも1つに、空き時間を挿入する。
つまり、PLC10は、前記所定の収集規則のうち、前記複数のデータの各々の、出現頻度、サンプリング点数、サンプリング周波数、および、前記順列を一巡するのに要する時間の少なくとも1つを調整する。したがって、PLC10は、前記所定の収集規則のうち、前記複数のデータの利用目的等に好適な項目を適宜調整して、データ収集に係る処理負荷が最大値Vammに対応する処理負荷以下となるように、前記複数のデータを収集できるとの効果を奏する。
PLC10は、収集部140によって収集された前記複数のデータ(つまり、各I/Oノードのデータ)の各々に対して付与される重要度(評価値)が所定の基準を満たすと、当該所定の基準を満たす重要度の付与されたデータの収集規則を調整する第2調整部160をさらに備える。各I/Oノードのデータに対して付与される重要度は、例えば、前述の「調停済重要度」である。
第2調整部160は、所定の基準を満たす重要度が付与されたI/Oノードの、(1)出現頻度、(2)サンプリング点数、および、(3)サンプリング周波数の少なくとも1つを調整する。第1調整部130は、第2調整部160により調整された出現頻度、サンプリング点数、および、サンプリング周波数を含む収集規則を、最大値Vammを用いてさらに調整する。
前記の構成によれば、PLC10は、前記複数のデータの各々に対して付与される重要度に従って、前記複数のデータの各々の、出現頻度、サンプリング点数、および、サンプリング周波数の少なくとも1つを調整する。
例えば、PLC10は、高い重要度の付与されたデータについては、出現頻度、サンプリング点数、および、サンプリング周波数の少なくとも1つの値を増加させる。また、PLC10は、低い重要度の付与されたデータについては、出現頻度、サンプリング点数、および、サンプリング周波数の少なくとも1つの値を減少させる。
したがって、PLC10は、前記複数のデータの各々を、各々の前記重要度に従った、出現頻度、サンプリング点数、および、サンプリング周波数で、収集することができるとの効果を奏する。
ここで、PLC10は、前記重要度に従って調整した、前記複数のデータの各々の、出現頻度、サンプリング点数、および、サンプリング周波数を含む収集規則を、最大値Vammを用いてさらに調整する。
したがって、PLC10は、前記複数のデータの各々を、各々の前記重要度に従った、かつ、前記複数のデータの各々の収集に係る単位時間当たりの処理負荷が最大値Vammに対応する処理負荷以下となるように、収集することができるとの効果を奏する。
PLC10において、第1調整部130は、前記複数のデータの各々のサンプリング点数およびサンプリング周波数の少なくとも一方を、低減率Rを用いて一律の割合で小さくすることによって、収集規則を調整する。
前記の構成によれば、PLC10は、例えば、前記複数のデータの各々を所定の順序で収集したい場合、前記所定の収集規則のうち、「前記複数のデータの各々の、前記順列における出現回数」については、変更しない。その代わりに、PLC10は、前記複数のデータの各々のサンプリング点数およびサンプリング周波数の少なくとも一方を、低減率Rを用いて一律の割合で小さくすることで、データ収集に係る処理負荷を減少させる。
したがって、PLC10は、例えば、前記複数のデータの各々を所定の順序で収集したい場合などに、「前記複数のデータの各々の、前記順列における出現回数」を変更せずに、データ収集に係る処理負荷を減少させることができるとの効果を奏する。
PLC10は、(1)最大値Vamm、(2)第1調整部130によって調整された収集規則に従う収集部140によって単位時間あたりに収集されるデータのデータ量、および、(3)両者の差である余裕速度Vmarginをユーザに対して表示させる表示制御部170をさらに備えている。
前記の構成によれば、PLC10は、ユーザが一見して認識できるように、データ収集に要している現在の処理負荷から、データ収集に係る処理負荷の許容値(つまり、最大値Vamm)までの余裕度を通知することができるとの効果を奏する。
PLC10において、収集部140によって収集される前記複数のデータの各々は、サーボドライバ30等のスレーブ装置から周期的に取得した制御データのうち、ユーザによって収集対象として選択されたデータである。
前記の構成によれば、PLC10は、サーボドライバ30等のスレーブ装置から周期的に取得した前記制御データのうち、ユーザによって収集対象として選択されたデータを、前記所定の収集規則に従って、繰り返し収集する。
したがって、PLC10は、前記制御データのうち、ユーザによって収集対象として選択されたデータのみを、単位時間あたりに収集するデータのデータ量が最大値Vamm以下となるように、繰り返し収集することができるとの効果を奏する。
これまでに概要を説明してきたPLC10について、次に、先ずその構成の詳細について図1および図4を参照しながら説明し、その後、PLC10が実行する処理について、図5を参照しながら説明していく。
§2.構成例
(マスタ装置の詳細)
図1は、PLC10等の要部構成を示すブロック図である。図1に示すように、PLC10は、記憶部180以外の機能ブロックとして、取得部110、受付部120、第1調整部130、収集部140、評価部150、第2調整部160、および、表示制御部170を備えている。なお、記載の簡潔性を担保するため、サーボドライバ30に対する制御指示を演算する構成、および、演算した制御指示をサーボドライバ30へ出力する構成などの、本実施の形態に直接関係のない構成は、説明およびブロック図から省略している。ただし、実施の実情に則して、PLC10は、当該省略された構成を備えてもよい。図1に例示した各機能ブロックは、例えば、CPU(central processing unit)等が、ROM(read only memory)、NVRAM(non-Volatile random access memory)等で実現された記憶装置(記憶部180)に記憶されているプログラムを不図示のRAM(random access memory)等に読み出して実行することで実現できる。以下、PLC10における各機能ブロックについて説明する。
(記憶部以外の機能ブロックの詳細)
取得部110は、サーボドライバ30などのスレーブ装置から、スレーブ装置の出力する制御データを制御周期ごとに取得し、取得した制御データを、記憶部180の制御データテーブル181に格納する。
受付部120は、通信ケーブルを介してPLC10に接続されているツールなどから、「PLC10が、制御データから単位時間あたりに収集するデータのデータ量について、ユーザの指定する最大値」である最大値Vammを受け付ける。受付部120は、受け付けた最大値Vammを、記憶部180の最大許容値テーブル182に格納する。
受付部120は、また、「PLC10がサンプリング処理を実行する際に従う収集規則についての、ユーザの初期設定(基準値)」をツールなどから受け付け、受け付けた「収集規則の初期設定」を、記憶部180の収集規則テーブル183に格納する。具体的には、受付部120は、各I/Oノードの、「名称(識別子)」、「データ型」、「サンプリング周波数の初期設定値(基準周波数)」、および「サンプリング点数の初期設定値(基準点数)」等を受け付け、これらを収集規則テーブル183に格納する。収集規則テーブル183に格納される「名称(識別子)」、「データ型」、「基準周波数」、および「基準点数」等について、詳細は図4の説明において後述する。本実施の形態において、「基準周波数」は「基準サンプリング周波数」とも称し、「基準点数」は「基準サンプリング点数」とも称する。
第1調整部130は、PLC10が実行するサンプリング処理に係る処理負荷が、ユーザの許容する最大処理負荷以下となるように、PLC10がサンプリング処理を実行する際に従う収集規則を調整する。
(基準収集規則の、最大値Vammを用いた調整)
第1調整部130は、先ず、図4等に例示する収集規則テーブル183を参照して、「調整後の収集規則」が未だ収集規則テーブル183に格納されていないことを確認すると、「基準収集規則(つまり、初期設定段階の収集規則)」を取得する。第1調整部130は、収集規則テーブル183の「ID」、「名称」、および「データ型」等の項目に入力値があって、かつ、「実周波数」および「実点数」等の項目に入力値のない行があると、「調整後の収集規則」が格納されていないと判定する。
第1調整部130は、「調整後の収集規則」が格納されていないと判定すると、各I/Oノードの「データ型」、「巡回頻度」、「基準周波数」、「基準点数」、および、「巡回単位順列を一巡するまでに要する時間」を含む、「基準収集規則」を取得する。
第1調整部130は、次に、基準収集規則に従ってPLC10がサンプリング処理を実行した場合に要する処理負荷の大きさを示す値(平均サンプリング速度Vmean)を算出する。基準収集規則から平均サンプリング速度Vmeanを算出する方法について、詳細は図7の説明において後述する。
そして、第1調整部130は、「余裕速度Vmargin(=最大値Vamm−平均サンプリング速度Vmean)が『0』以上であるか」を判定する。
第1調整部130は、「余裕速度Vmarginが『0』以上である」と判定すると、PLC10が実際にサンプリング処理を実行する際に従う収集規則として、基準収集規則をそのまま変更せずに採用する。すなわち、第1調整部130は、各I/Oノードについて、収集規則テーブル183の「基準周波数」および「基準点数」の各々の値を、「実周波数」および「実点数」の各々へと格納する。
第1調整部130は、「余裕速度Vmarginが『0』未満である」と判定すると、基準収集規則を調整し、調整後の収集規則を、PLC10が実際にサンプリング処理を実行する際に従う収集規則として採用する。すなわち、第1調整部130は、「余裕速度Vmarginが『0』以上となる」ように調整した収集規則を、収集規則テーブル183に格納する。具体的には、例えば、第1調整部130は、「余裕速度Vmarginが『0』以上となる」ように調整した値を、収集規則テーブル183の「実周波数」および「実点数」へと格納する。また、例えば、第1調整部130は、「余裕速度Vmarginが『0』以上となる」ように、収集規則テーブル183に格納されている巡回単位順列を調整する。さらに、例えば、第1調整部130は、「余裕速度Vmarginが『0』以上となる」ように、収集規則テーブル183に格納されている「巡回単位順列を一巡するまでに要する時間」を調整する。第1調整部130による収集規則の調整方法について、詳細は図9から図12の説明において後述する。
(調整後の収集規則の、最大値Vammを用いた再調整)
第1調整部130は、図4等に例示する収集規則テーブル183を参照して、「ID」、「名称」、および「データ型」等の項目に入力値がある行の、「実周波数」および「実点数」等の項目に入力値があると、「調整後の収集規則」が格納されていると判定する。第1調整部130は、調整後の収集規則に従ったサンプリング処理の処理負荷の大きさを示す値(平均サンプリング速度Vmean)を算出する。調整後の収集規則から平均サンプリング速度Vmeanを算出する方法は、基準収集規則から平均サンプリング速度Vmeanを算出する方法と同様である。
そして、第1調整部130は、「余裕速度Vmargin(=最大値Vamm−平均サンプリング速度Vmean)が『0』以上であるか」を判定する。
第1調整部130は、「余裕速度Vmarginが『0』以上である」と判定すると、PLC10が実際にサンプリング処理を実行する際に従う収集規則として、収集規則テーブル183に格納されている調整後の収集規則をそのまま変更せずに採用する。すなわち、第1調整部130は、各I/Oノードについて、収集規則テーブル183の「実周波数」および「実点数」の各々の項目に格納されている値を変更しない。
第1調整部130は、「余裕速度Vmarginが『0』未満である」と判定すると、調整後の収集規則を再調整し、再調整後の収集規則を、PLC10が実際にサンプリング処理を実行する際に従う収集規則として採用する。すなわち、第1調整部130は、「余裕速度Vmarginが『0』以上となる」ように再調整した収集規則を、収集規則テーブル183に格納する。具体的には、例えば、第1調整部130は、「余裕速度Vmarginが『0』以上となる」ように再調整した値を、収集規則テーブル183の「実周波数」および「実点数」へと格納する。また、例えば、第1調整部130は、「余裕速度Vmarginが『0』以上となる」ように、収集規則テーブル183に格納されている巡回単位順列を調整する。さらに、例えば、第1調整部130は、「余裕速度Vmarginが『0』以上となる」ように、収集規則テーブル183に格納されている「巡回単位順列を一巡するまでに要する時間」を調整する。第1調整部130による収集規則の調整方法について、詳細は図9から図12の説明において後述する。
収集部140は、収集規則テーブル183に格納されている調整後の収集規則に従って、サンプリング処理を実行し、つまり、制御データテーブル181を参照して、データベース20に送信すべきデータを収集する。すなわち、収集部140は、収集規則テーブル183に格納されている巡回単位順列に従って、データ収集対象とするI/Oノードを順次切り替えながら、各I/Oノードのデータを収集する。その際、収集部140は、収集規則テーブル183に格納されている「巡回単位順列を一巡するまでに要する時間」で、巡回単位順列を一巡する。また、収集部140は、収集規則テーブル183に格納されている、各I/Oノードの「実周波数」および「実点数」に従って、各I/Oノードのデータを収集する。そして、第1調整部130によって調整された収集規則に従って収集したデータを、収集部140は、評価部150に通知する。
評価部150は、収集規則テーブル183に格納されている調整後の収集規則に従って収集部140が収集した各I/Oノードのデータに対して、重要度(例えば、調停済重要度)を算出し、算出した重要度を、収集規則テーブル183に格納する。
例えば、収集規則テーブル183に格納されている「順列:A、B、C、A、D、E、F」に従って収集部140が収集する、順列の先頭に出現する「I/Oノード:A」について、評価部150は、重要度を算出する。評価部150は、算出した重要度を、収集規則テーブル183の、順列の先頭に出現する「I/Oノード:A」の「重要度」の項目に格納する。同様に、収集規則テーブル183に格納されている「順列:A、B、C、A、D、E、F」に従って収集部140が収集する、順列の先頭から4番目に出現する「I/Oノード:A」について、評価部150は、重要度を算出する。評価部150は、算出した重要度を、収集規則テーブル183の、順列の先頭から4番目に出現する「I/Oノード:A」の「重要度」の項目に格納する。
前述の通り、評価部150は、各I/Oノードのデータについて、例えば、複数の利用目的の各々に対応する複数の評価方式の各々を適用して、評価方式ごとの重要度を算出する。そして、評価部150は、算出した評価方式ごとの重要度を用いて、「複数の評価方式の全体に対応する重要度」である調停済重要度を算出し、算出した調停済重要度を、収集規則テーブル183における各I/Oノードの「重要度」の項目に格納する。評価部150は、各I/Oノードのデータについて、例えば、「評価方式ごとの重要度」を示す値に、「評価方式ごとの重み付け係数」を乗じた値の和を用いて、調停済重要度を算出する。また、評価部150は、各I/Oノードのデータについて、例えば、「評価方式ごとの重要度」の中で最も高い重要度を、調停済重要度とする。
さらに、評価部150は、収集部140から通知された各I/Oノードのデータを、データベース20に送信し、これらのデータを収集データテーブル21に保存させる。
第2調整部160は、収集規則テーブル183を参照して、収集規則テーブル183における各I/Oノードの「重要度」が所定の基準を満たしているかを判定し、所定の基準を満たしていると判定したI/Oノードについての収集規則を変更する(調整する)。
具体的には、第2調整部160は、所定の基準を満たしていると判定したI/Oノードについて、収集規則テーブル183の「実周波数」、「実点数」、および、「巡回頻度(より正確には、相対的な巡回頻度)」の少なくとも一つの項目を更新する。第2調整部160による「実周波数」、「実点数」、および、「巡回頻度」の更新内容について、詳細は後に図6を用いて説明する。
表示制御部170は、表示画面(例えば、ツールなどの外部表示装置の表示画面)に、実行中のサンプリング処理に係る情報を表示する。表示制御部170は、例えば、ユーザの設定した最大値Vamm、実行中のサンプリング処理に係る処理負荷の大きさを示す平均サンプリング速度Vmean、および、最大値Vammと平均サンプリング速度Vmeanとの差である余裕速度Vmarginを表示させる。また、表示制御部170は、例えば、「巡回単位順列に含まれる複数のI/Oノードの各々の名称」、「巡回単位順列における、各I/Oノードの出現順序」、および、「現在、データ収集対象となっているI/Oノード」を表示させる。さらに、表示制御部170は、例えば、各I/Oノードについて、適用中の収集規則における「サンプリング周波数」、「サンプリング点数」、および、「直近のデータに対する重要度」を表示させる。
(記憶部の詳細)
記憶部180は、PLC10が使用する各種データを格納する記憶装置である。なお、記憶部180は、PLC10が実行する(1)制御プログラム、(2)OSプログラム、(3)PLC10が有する各種機能を実行するためのアプリケーションプログラム、および、(4)該アプリケーションプログラムを実行するときに読み出す各種データを非一時的に記憶してもよい。上記の(1)〜(4)のデータは、例えば、ROM(read only memory)、フラッシュメモリ、EPROM(Erasable Programmable ROM)、EEPROM(登録商標)(Electrically EPROM)、HDD(Hard Disc Drive)等の不揮発性記憶装置に記憶される。PLC10は、図示しない一時記憶部を備えていてもよい。一時記憶部は、PLC10が実行する各種処理の過程で、演算に使用するデータおよび演算結果等を一時的に記憶するいわゆるワーキングメモリであり、RAM(Random Access Memory)等の揮発性記憶装置で構成される。どのデータをどの記憶装置に記憶するのかについては、PLC10の使用目的、利便性、コスト、または、物理的な制約等から適宜決定される。記憶部180はさらに制御データテーブル181、最大許容値テーブル182、および、収集規則テーブル183を格納している。
制御データテーブル181には、取得部110によって、取得部110がスレーブ装置から制御周期ごとに取得した制御データが格納される。最大許容値テーブル182には、受付部120によって、受付部120が受け付けた最大値Vammが格納される。収集規則テーブル183には、収集部140がサンプリングを実行する際に従う、つまり、収集部140が制御データテーブル181を参照してデータベース20に送信すべきデータを収集する際に従う、収集規則等が格納される。
(収集規則テーブルの概要)
図4は、収集規則テーブル183のデータ構造の一例を示す図である。図4に例示するように、収集規則テーブル183には、例えば、各I/Oノードを識別するIDが、巡回単位順列における出現順序に従って格納されており、つまり、収集規則テーブル183には、巡回単位順列が格納されている。言い換えれば、収集規則テーブル183の「ID」の項目に格納されているIDに対応するI/Oノードが、収集規則テーブル183の「ID」の項目に格納されている順に(例えば、図4の紙面の上から順に)、データ収集対象となる。図4の例では、「順列:A、B、C、D、E、F、・・・、X」との巡回単位順列が収集規則テーブル183において規定されている。つまり、図4に例示する収集規則テーブル183には、「Aの後にB、Bの後にC、Cの後にD、Dの後にE、Eの後にF、Fの後に・・・、Xの後にA」との巡回単位順列が格納されている。
本実施形態の説明においては、記載を簡略化するため、例えば、「ID:A」のI/Oノードを「I/Oノード:A」と、「ID:B」のI/Oノードを「I/Oノード:B」といったように略記することがある。
ユーザは、初期設定として、例えば、各IDに対応するI/Oノードが、どのようなデータについてのデータであるのかを示す「名称」、および、そのデータの1単位当たりの大きさの基準となる「データ型」を登録する。ユーザは、各I/Oノードについて「データ型」を登録することによって、各I/Oノードについて、収集するデータの1単位当たりの大きさを登録する。
また、ユーザは、初期設定として、各I/Oノードについての収集規則を登録する。すなわち、ユーザは、各I/Oノードについて、サンプリング周波数の初期設定として「基準周波数」を、サンプリング点数の初期設定として「基準点数」を、登録する。さらに、ユーザは、各I/Oノードに付与される重要度の変数名を示す項目である「重要度変数」を登録してもよい。
受付部120は、各I/Oノードについて、ユーザの登録する「名称(識別子)」、「データ型」、「基準周波数」、および「基準点数」等を受け付け、これらを収集規則テーブル183の対応する項目に格納する。
図4の例では、ユーザが、「ID:A」のI/Oノードについて、その「名称」として「TorqueData1(例えば、軸1のトルク)」を登録し、また、「ID:A」のI/Oノードのデータの「データ型」が「INT」型であることが示されている。「ID:A」のI/Oノードの「基準周波数(つまり、初期設定されたサンプリング周波数)」は、「200Hz」であり、「基準点数(つまり、初期設定されたサンプリング点数)」は、「1000」である。
同様に、ユーザが、「ID:B」のI/Oノードについて、その「名称」として「VelocityData1(例えば、軸1の速度)」を登録し、また、「ID:B」のI/Oノードのデータの「データ型」が「DINT」型であることが示されている。「ID:B」のI/Oノードの「基準周波数」は、「200Hz」であり、「基準点数」は、「1000」である。
(待ち時間の設定についての注記)
前述の通り、収集部140は、収集規則テーブル183に格納されている巡回単位順列に従って巡回を実行する。ここで、詳細は後に図12の(B)を参照して説明するが、収集部140は、サンプリングするデータとデータとの間に待ち時間を設定してもよい。例えば、図4に例示する収集規則テーブル183には、「ID」および「収集時間(図4においては不図示)」の項目にだけデータが格納されている行があってもよい。すなわち、収集規則テーブル183は、巡回単位順列における各I/Oノード(より正確には、「各ID」)について、巡回単位順列における1回の出現ごとの収集時間(サンプリング期間)を示す「収集時間」の項目を有していてもよい。
例えば、「順列:A、B、C、D」を格納した収集規則テーブル183における「ID:D」の行について、「基準周波数」および「基準点数」等の項目は未指定で、「収集時間」の項目にだけ「10.7s」が格納されている場合、この収集規則テーブル183には、以下の収集規則が格納されている。すなわち、「ID:C」のI/Oノードについてのサンプリング(つまり、データ収集)を完了した後、「ID:A」のI/Oノードについてのサンプリングを開始するまで、「10.7秒」の間、サンプリング処理を中断するとの収集規則が格納されている。なお、本実施の形態では、「秒」は「S」と略記することがある。
複数のI/Oノードのサンプリングの間に「待ち時間」が設定される(挿入される)場合、「待ち時間」として設定されるI/Oノードの「ID」および「収集時間」の項目のみが設定され、「基準周波数」および「基準点数」等の項目は未指定とされる。ただし、「待ち時間」として設定されるI/Oノードについて、収集規則テーブル183において、「基準点数:0」および「実点数:0」が設定されてもよい。
(重要度について)
前述の通り、収集部140は、巡回単位順列において順々に出現するIDに対応するI/Oノードのデータを次々と収集し、評価部150は、収集部140によって収集されたデータに対して重要度(調停済重要度)を付与する。具体的には、評価部150は、収集部140によって収集されたデータに対して付与した重要度を、収集規則テーブル183の「履歴」項目へと格納する。
収集規則テーブル183は、「N」を「1」以上の整数として、1巡目からN巡目までの巡回単位順列の各々において、各巡回単位順列において出現するIDに対応するI/Oノードのデータに対して付与される重要度が格納される、N個の「履歴」項目を有する。N個の「履歴」には、1巡目からN巡目までの巡回単位順列の各々において付与される重要度が、例えばFIFO(First - In First - Out)で格納され、言い換えれば、重要度の、過去N回分の履歴が格納される。図4に示す例は、「N=6」の例であり、つまり、図4の収集規則テーブル183は、1巡目から6巡目までの巡回単位順列の各々において付与される重要度の各々が格納される、「履歴1」から「履歴6」までの6個の「履歴」項目を有している。
例えば、収集規則テーブル183に、「順列:A、B、C、A、D、E、F」が格納されている場合、図4の収集規則テーブル183の「履歴」項目には、以下のように収集部140によって付与された重要度が格納される。
すなわち、評価部150は、1巡目の巡回単位順列の先頭の「I/Oノード:A」について、「重要度:2」を算出すると、収集規則テーブル183における先頭の「ID:A」の「履歴1」に「重要度:2」を格納する。評価部150は、1巡目の巡回単位順列の先頭から4番目に出現する「I/Oノード:A」について、「重要度:1」を算出すると、収集規則テーブル183における先頭から4番目に出現する「ID:A」の「履歴1」に「重要度:1」を格納する。
評価部150は、2巡目の巡回単位順列の先頭の「I/Oノード:A」について、「重要度:3」を算出すると、収集規則テーブル183における先頭の「ID:A」の「履歴1」に「重要度:3」を、そして、「履歴2」に「重要度:2」を格納する。評価部150は、2巡目の巡回単位順列の先頭から4番目に出現する「I/Oノード:A」について、「重要度:2」を算出すると、収集規則テーブル183における先頭から4番目に出現する「ID:A」の「履歴1」に「重要度:2」を、「履歴2」に「重要度:1」を格納する。
(その他の項目について)
図4に例示する収集規則テーブル183は、これまでに説明した「ID」、「名称」、「データ型」、「基準周波数」、「基準点数」、「重要度変数」、「履歴1」から「履歴6」、および、「収集時間」に加えて、以下の項目を有する。すなわち、収集規則テーブル183は、「実周波数(「実サンプリング周波数」とも称する)」および「実点数(「実サンプリング点数」とも称する)」の項目を有する。「実周波数」および「実点数」について、詳細は後に図6から図8等を用いて説明する。
§3.動作例
図5は、PLC10が実行する処理の概要を示すフロー図である。受付部120は、ツールなどから、ユーザの指定する最大値Vammを受け付け、受け付けた最大値Vammを、記憶部180の最大許容値テーブル182に格納する(S110)。
また、受付部120は、ツールなどから、各I/Oノードについて、ユーザの指定する「データ型」、「基準周波数」、および「基準点数」等の収集規則についての初期設定(基準値)を受け付ける。受付部120は、受け付けた「収集規則の初期設定」を、記憶部180の収集規則テーブル183に格納する。つまり、受付部120は、各I/Oノードの「名称(識別子)」、「データ型」、「基準周波数」、「基準点数」、「巡回頻度」、および、「順列を一巡するのに割り当てられた期間」の初期値を設定する(S120)。
初期設定の段階では、各I/Oノードの「巡回頻度」は、例えば、巡回単位順列において「1回」であるものとする。すなわち、ユーザが「データ収集対象」として選択した全てのI/Oノードが各々1回だけ出現する巡回単位順列が、初期設定段階の巡回単位順列として、収集規則テーブル183に格納され、各I/Oノードの「巡回頻度」は初期設定段階では「1」である。また、「順列を一巡するのに割り当てられた期間」は、詳細は後述するが、巡回単位順列、サンプリング周波数、および、サンプリング点数から算出される。
第1調整部130は、収集部140が収集規則テーブル183に格納されている収集規則に従って実行するサンプリング処理に係る処理負荷を示す平均サンプリング速度Vmeanが、ユーザの許容する最大処理負荷を示す最大値Vamm以下であるかを判定する。すなわち、第1調整部130は、「平均サンプリング速度Vmean<=最大値Vamm」となっているかを判定する(S130)。第1調整部130は、収集規則テーブル183を参照して、調整後の収集規則が格納済であれば調整後の収集規則から平均サンプリング速度Vmeanを算出し、調整後の収集規則が未格納であれば基準収集規則から平均サンプリング速度Vmeanを算出する。そして、第1調整部130は、算出した平均サンプリング速度Vmeanが、最大許容値テーブル182に格納されている最大値Vamm以下であるかを判定する。
第1調整部130が、平均サンプリング速度Vmeanが最大値Vamm以下であると判定すると(S130でYes)、収集規則テーブル183に格納されている収集規則をそのまま、収集部140が従うべき収集規則として採用する。すなわち、調整後の収集規則が未格納であれば、第1調整部130は、各I/Oノードについて、収集規則テーブル183の「基準周波数」および「基準点数」の各々の値を、「実周波数」および「実点数」の各々へと格納する。調整後の収集規則が格納済であれば、第1調整部130は、各I/Oノードについて、収集規則テーブル183の「実周波数」および「実点数」の各々の項目に格納されている値を変更しない。
収集部140は、収集規則テーブル183に格納されている収集規則に従って、制御データテーブル181を参照してデータ収集を実行する(S150)。すなわち、収集部140は、収集規則テーブル183に格納されている巡回単位順列に従って、データ収集対象とするI/Oノードを切り替えながら、各I/Oノードのデータを、収集規則テーブル183の「実周波数」および「実点数」に従って、収集する。
第1調整部130が、平均サンプリング速度Vmeanが最大値Vammより大きいと判定すると(S130でNo)、収集規則テーブル183に格納されている収集規則を調整(なたは再調整)した収集規則を、収集部140が従うべき収集規則として採用する。つまり、第1調整部130は、各I/Oノードの「巡回頻度(より正確には、相対的な巡回頻度)」、「サンプリング周波数」、「サンプリング点数」、および「順列を一巡するのに割り当てられた期間」の少なくとも一つを、最大値Vammを用いて補正(調整)する(S140)。第1調整部130は、平均サンプリング速度Vmeanが最大値Vamm以下となるように、各I/Oノードの「巡回頻度」、「サンプリング周波数」、「サンプリング点数」、および「順列を一巡するのに割り当てられた期間」の少なくとも1つを調整する。
調整後の収集規則が未格納であれば、第1調整部130は、例えば、収集規則テーブル183の「基準周波数」および「基準点数」の少なくとも一方の値を調整した値を、「実周波数」および「実点数」へと格納する。また、第1調整部130は、例えば、収集規則テーブル183に格納されている巡回単位順列を調整し、さらに、例えば、収集規則テーブル183に格納されている「巡回単位順列を一巡するまでに要する時間」を調整する。
調整後の収集規則が格納済であれば、第1調整部130は、平均サンプリング速度Vmeanが最大値Vamm以下となるように、収集規則テーブル183の「実周波数」および「実点数」の少なくとも一方の値を再調整する。また、第1調整部130は、例えば、収集規則テーブル183に格納されている巡回単位順列を再調整し、さらに、例えば、収集規則テーブル183に格納されている「巡回単位順列を一巡するまでに要する時間」を再調整する。
収集部140は、収集規則テーブル183に格納されている、S140における調整後(または、再調整後)の収集規則に従って、制御データテーブル181を参照してデータ収集(サンプリング)を実行する(S150)。収集部140は、収集規則テーブル183に格納されている収集規則に従って収集した各I/Oノードのデータを評価部150に通知する。
評価部150は、収集部140から通知された各I/Oノードのデータに対して重要度(調停済重要度)を算出し、算出した重要度を、収集規則テーブル183における、対応するI/Oノードの「履歴(重要度の履歴)」の項目に格納する。
第2調整部160は、収集規則テーブル183を参照して、収集規則テーブル183における各I/Oノードの「重要度」が所定の基準を満たしているかを判定し、所定の基準を満たしていると判定したI/Oノードについての収集規則を調整する。すなわち、第2調整部160は、各I/Oノードの重要度に基づいて、収集規則テーブル183における、各I/Oノードの「巡回頻度(より正確には、相対的な巡回頻度)」、「サンプリング周波数」、および「サンプリング点数」の少なくとも一つの値を更新する(S160)。
これまでに図5を参照しながら説明してきたPLC10が実行する処理(言い換えれば、PLC10が実行する制御方法)は、以下のように整理することができる。すなわち、PLC10が実行する制御方法は、マスタスレーブ制御システムである制御システム1におけるPLC10(マスタ装置)の制御方法であって、収集ステップ(S150)と、受付ステップ(S110)と、第1調整ステップ(S140)と、を含んでいる。収集ステップS150は、サーボドライバ30等のスレーブ装置から周期的に取得した制御データから、データベース20等の外部装置に送信すべき複数のデータの各々を、所定の収集規則に従って、繰り返し収集するステップである。受付ステップS110は、収集ステップS150にて単位時間あたりに収集されるデータのデータ量について、ユーザの指定する最大値Vammを受け付けるステップである。第1調整ステップS140は、前記所定の収集規則に従って収集ステップS150にて単位時間あたりに収集されるデータのデータ量が、受付ステップS110にて受け付けられた最大値Vamm以下となるように、前記収集規則を調整するステップである。
前記の方法によれば、PLC10が実行する制御方法は、単位時間あたりに収集するデータのデータ量が最大値Vamm以下となるように収集規則を調整し、調整した収集規則に従って、前記制御データから、前記複数のデータの各々を繰り返し収集する。
ここで、単位時間あたりに収集するデータのデータ量が大きくなるほど、PLC10が実行する制御方法のデータ収集に係る単位時間当たりの処理負荷が大きくなることは明らかである。つまり、最大値Vammは、PLC10が実行する制御方法のデータ収集に係る単位時間当たりの処理負荷に対応する。
したがって、PLC10が実行する制御方法は、データ収集に係る単位時間当たりの処理負荷が、ユーザの指定する最大値Vammに対応する処理負荷以下となるように、前記制御データから、データベース20等の外部装置に送信すべきデータを収集することができるとの効果を奏する。言い換えれば、PLC10が実行する制御方法によってユーザは、前記制御データから前記複数のデータの各々を収集する処理に係る処理負荷を管理できるようになるとの効果を奏する。具体的には、ユーザは、PLC10に、「サーボドライバ30等のスレーブ対象に対する制御処理などの、データ収集処理以外の処理」の実行に影響のない適切な処理負荷で、前記外部装置に送信すべきデータを、前記制御データから収集させることができる。
また、「PLC10が実行する制御方法が単位時間あたりに収集するデータのデータ量」は、ユーザにとって直感的に把握しやすく、かつ、「PLC10が実行する制御方法の、データ収集に係る単位時間当たりの処理負荷」を正確に示すことのできる指標である。
したがって、PLC10が実行する制御方法は、「データ収集に係る単位時間当たりの処理負荷」の指標として正確で、かつ、ユーザにとって直感的な把握の容易な「単位時間あたりに収集するデータのデータ量」に基づいて、データ収集処理を管理できるとの効果を奏する。
(重要度に基づく、各I/Oノードの収集規則の調整について)
図6は、各I/Oノードについて、重要度に基づいて収集規則を調整する方法の具体例を説明する図である。図6の(A)は、重要度に基づいて、サンプリング周波数とサンプリング点数とを調整する方法の一例を示す図である。図6の(B)は、重要度に基づいて、各I/Oノードの巡回頻度(より正確には、相対的な巡回頻度)を調整し、つまり、収集部140の従う巡回単位順列を調整する方法の一例を示す図である。
(サンプリング周波数およびサンプリング点数の少なくとも一方の調整)
「N」を「1」以上の整数として、第2調整部160は、収集規則テーブル183の「履歴(重要度の履歴)」に格納されている値が、連続してN回、増加基準値Uth以上であるI/Oノード(つまり、各ID)の収集規則を変更する。
図6の(A)には、「N=6」、「増加基準値Uth=3」である例が示されている。図6の(A)において、「I/Oノード:A」の「履歴1」から「履歴6」までの各々には、いずれも「3」以上の値が入力されており、つまり、「I/Oノード:A」について、「履歴」に格納されている値は、連続して「6」回、増加基準値「3」以上である。そこで、第2調整部160は、「I/Oノード:A」の「実周波数」を「200Hzから、400Hzへ」増加させ、また、「実点数」を「1000から、2000へ」増加させている。ただし、第2調整部160にとって、「実周波数」と「実点数」との両方の値を増加させることは必須ではなく、少なくとも一方の値を増加させればよい。第2調整部160は、重要度の高いデータのI/Oノードについて、そのI/Oノードの収集規則を調整して、具体的には、サンプリング周波数とサンプリング点数との少なくとも一方を増加させて、より多くのデータを収集する。
「M」を「1」以上の整数として、第2調整部160は、収集規則テーブル183の「履歴(重要度の履歴)」に格納されている値が、連続してM回、減少基準値Dth以下であるI/Oノード(つまり、各ID)の収集規則を変更する。
図6の(A)には、「M=6」、「減少基準値Dth=1」である例が示されている。図6の(A)において、「I/Oノード:D」の「履歴1」から「履歴6」までの各々には、いずれも「1」以下の値が入力されており、つまり、「I/Oノード:D」について、「履歴」に格納されている値は、連続して「6」回、減少基準値「1」以下である。そこで、第2調整部160は、「I/Oノード:D」の「実周波数」を「200Hzから、100Hzへ」減少させ、また、「実点数」を「1000から、500へ」減少させている。ただし、第2調整部160にとって、「実周波数」と「実点数」との両方の値を減少させることは必須ではなく、少なくとも一方の値を減少させればよい。第2調整部160は、重要度の低いデータのI/Oノードについて、そのI/Oノードの収集規則を調整して、具体的には、サンプリング周波数とサンプリング点数との少なくとも一方を減少させて、収集するデータ量を抑制する。
(巡回頻度の調整)
「N」を「1」以上の整数として、第2調整部160は、収集規則テーブル183の「履歴」に格納されている値が、連続してN回、増加基準値Uth以上であるI/Oノード(つまり、各ID)の巡回頻度(より正確には、相対的な巡回頻度)を増加させる。また、「M」を「1」以上の整数として、第2調整部160は、収集規則テーブル183の「履歴」に格納されている値が、連続してM回、減少基準値Dth以下であるI/Oノード(つまり、各ID)の巡回頻度(より正確には、相対的な巡回頻度)を減少させる。すなわち、第2調整部160は、各I/Oノードの重要度に基づいて、各I/Oノードの相対的な巡回頻度を変更し、つまり、巡回単位順列を変更する。
図6の(B)の一段目には、データ収集対象のI/OノードのIDが、A、B、C、D、E、Fの6つである場合の、通常の巡回単位順列(つまり、初期設定段階の巡回単位順列)が、具体的には、「順列:A、B、C、D、E、F」が、示されている。初期設定段階において、各I/Oノードの「巡回頻度」は「1」であり、したがって、データ収集対象のI/OノードのIDが、A、B、C、D、E、Fの6つである場合、初期設定段階の巡回単位順列は、例えば「順列:A、B、C、D、E、F」となる。収集部140は、「Aの後にB、Bの後にC、Cの後にD、Dの後にE、Eの後にF、Fの後にA、Aの後にB、Bの後にC、Cの後にD、Dの後にE、Eの後にF、Fの後にA、Aの後にB、・・・」で巡回を実行する。
図6の(B)の二段目には、「N=6」、「増加基準値Uth=3」として、「I/Oノード:A」の巡回頻度を増加させた場合の巡回単位順列が示されている。図6の(A)の「I/Oノード:A」のように、「履歴1」から「履歴6」までの各々に「3」以上の値が入力され、つまり、「履歴」の値が、連続「6」回、増加基準値「3」以上であると、第2調整部160は、「I/Oノード:A」の巡回頻度を増加させる。図6の(B)の二段目に示す「順列:A、B、C、A、D、E、F」は、図6の(B)の一段目に示す「順列:A、B、C、D、E、F」から、「I/Oノード:A」についてのみ、その巡回頻度を増加させた場合の巡回単位順列の一例である。「順列:A、B、C、A、D、E、F」において、「I/Oノード:A」の「巡回頻度」は「2」であり、他のI/Oノード(つまり、B、C、D、E、F)の「巡回頻度」は「1」である。第2調整部160は、重要度の高いデータのI/Oノードについて、そのI/Oノードの収集規則を調整して、具体的には、相対的な巡回頻度を増加させて、より多くのデータを収集する。
図6の(B)の三段目には、「M=6」、「減少基準値Dth=1」として、「I/Oノード:D」の巡回頻度を増加させた場合の巡回単位順列が示されている。図6の(A)の「I/Oノード:D」のように、「履歴1」から「履歴6」までの各々に「1」以下の値が入力され、つまり、「履歴」の値が、連続「6」回、減少基準値「1」以下であると、第2調整部160は、「I/Oノード:D」の巡回頻度を減少させる。図6の(B)の三段目に示す「順列:A、B、C、A、E、F、A、B、C、A、D、E、F」は、図6の(B)の二段目に示す「順列:A、B、C、A、D、E、F」から、「I/Oノード:D」の巡回頻度を減少させた場合の巡回単位順列の一例である。「順列:A、B、C、A、E、F、A、B、C、A、D、E、F」において、「巡回頻度」は、「I/Oノード:A」が「4」、「I/Oノード:B、C、E、Fが「2」、「I/Oノード:D」が「1」である。第2調整部160は、重要度の低いデータのI/Oノードについて、そのI/Oノードの収集規則を調整して、具体的には、相対的な巡回頻度を減少させて、収集するデータ量を抑制する。
(最大値Vammを用いた収集規則の調整の具体例)
取得部110がスレーブ装置から制御周期ごとに取得した全ての制御データを、つまり、全てのI/Oノードのデータを、収集部140が初期設定段階の収集規則に従って収集できれば最も望ましいが、そのような収集処理は処理負荷が極めて大きくなってしまう。そこで、ユーザは「PLC10が実行するサンプリング処理に係る処理負荷(言い換えれば、「システムのデータ収集能力」)」の許容最大値を、「最大値Vamm」として設定し、PLC10について、サンプリング処理に係る処理負荷を管理する。
第1調整部130は、収集部140によるサンプリング処理に係る処理負荷が、「最大値Vamm」によって規定される処理負荷以下となるように、収集部140がサンプリング処理を実行する際に従う収集規則を調整する。具体的には、第1調整部130は、各I/Oノードの「巡回頻度」、「サンプリング周波数」、「サンプリング点数」、および、「巡回単位順列を一巡するまでに要する時間」の少なくとも一つの項目を、最大値Vammを用いて、調整する。
第1調整部130が、各I/Oノードの「巡回頻度」、「サンプリング周波数」、「サンプリング点数」、および、「巡回単位順列を一巡するまでに要する時間」のいずれを調整するかは、例えば、収集部140の収集するデータの利用目的により決定される。例えば、収集部140の収集するデータに対する「一貫性のある解析」を目的として、PLC10にデータ収集処理(つまり、サンプリング処理)を実行させる場合、収集規則の内、「サンプリング周波数」は不変とするのが望ましい。したがって、第1調整部130は、例えば、「巡回頻度」および「サンプリング点数」の少なくとも一方を変更し(調整し)、「サンプリング周波数」は変更せずに維持する(周波数維持)。
例えば、収集部140に、「取得部110がスレーブ装置から制御周期ごとに取得した全ての制御データ」から、まんべんなくデータを収集させることを目的とする場合、収集規則の内、「巡回頻度」および「サンプリング点数」は不変とするのが望ましい。したがって、第1調整部130は、例えば、「サンプリング周波数」を変更し(調整し)、「巡回頻度」および「サンプリング点数」は変更せずに維持する(巡回頻度および点数維持)。収集部140が繰り返し実行するサンプリング処理の間が途切れることを許容できる場合、第1調整部130は、繰り返し実行するサンプリング処理の間に待ち時間を設け、つまり、「巡回単位順列を一巡するまでに要する時間」を調整する(待ち時間挿入)。
第1調整部130は、収集部140の収集するデータの利用目的に応じて、任意の方法によって、サンプリング処理に係る処理負荷が、「最大値Vamm」によって規定される処理負荷以下となるように、収集規則を調整する。つまり、第1調整部130は、収集部140の実行するデータ収集処理(サンプリング処理)の処理負荷の大きさを示す値(平均サンプリング速度Vmean)が最大値Vamm以下となるよう、収集部140の収集するデータの利用目的に応じて、収集規則を調整する。
以下、先ず図7および図8を用いて、第1調整部130が、収集部140の実行するサンプリング処理の処理負荷の大きさを示す値(平均サンプリング速度Vmean)と、最大値Vammとから、収集規則の調整要否を判定する方法について説明する。
(収集規則の調整が不要である場合の例)
図7は、収集部140が実際にサンプリング処理を実行する際に従う収集規則として、基準収集規則をそのまま変更せずに採用できる場合の収集規則テーブル183等の一例を示す図である。図7において、「最大値Vamm=1024byte/s」とする。
ユーザは、取得部110がスレーブ装置から制御周期ごとに取得し、制御データテーブル181に格納されている制御データである、「I/Oノード:A」、「I/Oノード:B」、および、「I/Oノード:C」のデータについて、以下の内容を登録する。すなわち、ユーザは、各I/Oノードについて、「名称」、「データ型」、「基準周波数」、および「基準点数」を設定する。ここで、「データ型」は、図4に例示したように、例えば、「INT」、「DINT」等であり、各I/Oノードのデータの1単位当たりの大きさを示す情報である。例えば、「データ型:INT」のデータの1単位当たりの大きさは「16bit」であり、「データ型:DINT」のデータの1単位当たりの大きさは「32bit」であるものとする。
図7の(A)に例示する収集規則テーブル183には、「I/Oノード:A」について、「データ型」が例えば「DINT」であって、1単位当たり32bit、「基準周波数」が「200Hz」、「基準点数」が「1000」であるとの情報が登録されている。同様に、「I/Oノード:B」は、「データ型」が例えば「DINT」であって、1単位当たり32bit、「基準周波数」が「200Hz」、「基準点数」が「1000」である。また、「I/Oノード:C」は、「データ型」が例えば「INT」であって、1単位当たり16bit、「基準周波数」が「1000Hz」、「基準点数」が「1000」である。
(サンプリング速度の算出方法)
第1調整部130は、各I/Oノードの「データ型」、「基準周波数」、および「基準点数」から、各I/Oノードについて、「単位時間あたり(1秒間)に収集されるデータのデータ量(byte)」を示すサンプリング速度Vsampleを算出する。「I/Oノード:A」、「I/Oノード:B」、および、「I/Oノード:C」の各々のサンプリング速度Vsampleをサンプリング速度V、V、およびVとすると、第1調整部130は、以下のように、サンプリング速度V、V、およびVを算出する。すなわち、第1調整部130は、各I/Oノードについて、「データ型」によって特定されるデータ1単位当たりの大きさに、「基準周波数」の値を乗じた後、「8bit/byte」で除して、サンプリング速度Vsampleを算出する。サンプリング速度V、V、およびVは各々、具体的には、図7の(B)に例示するように、
Figure 2020052441
となる。
すなわち、第1調整部130は、各I/Oノードについて、「データ型」によって特定されるデータ1単位当たりの大きさに、「サンプリング周波数」の値を乗じた後、「8bit/byte」で除して、サンプリング速度Vsampleを算出する。
(収集時間の算出方法)
また、第1調整部130は、各I/Oノードの「データ型」、「基準周波数」、および「基準点数」から、各I/Oノードについて、「基準点数を収集するのに要する期間」である収集時間Tsampleを算出する。「I/Oノード:A」、「I/Oノード:B」、および、「I/Oノード:C」の各々の収集時間Tsampleを収集時間T、T、およびTとすると、第1調整部130は、以下のように、収集時間T、T、およびTを算出する。すなわち、第1調整部130は、各I/Oノードについて、「基準点数」の値を「基準周波数」の値で除して、収集時間Tsampleを算出する。収集時間T、T、およびTは各々、具体的には、図7の(B)に例示するように、
Figure 2020052441
となる。
すなわち、第1調整部130は、各I/Oノードについて、「サンプリング点数」の値を「サンプリング周波数」の値で除して、収集時間Tsampleを算出する。以下の説明において、「各I/Oノードの収集時間Tsampleの、全I/Oノード分の合計(つまり、全I/Oノード分の収集時間Tsampleの合計)」を「総収集時間TAll」と称することがある。総収集時間TAllは、第1調整部130が巡回単位順列を一巡するのに割り当てられた期間(言い換えれば、巡回単位順列を一巡するまでに収集部140が要する期間)とも言える。図7の(B)に示す例では、巡回単位順列における各I/Oノードの収集時間Tsampleの合計から、「総収集時間TAll=T+T+T=5+5+1=11s」となる。
(平均サンプリング速度の算出方法)
第1調整部130は、巡回単位順列における各I/Oノードについて算出したサンプリング速度Vsampleと収集時間Tsampleとから、収集部140によって単位時間あたりに収集されるデータのデータ量を示す「平均サンプリング速度Vmean」を算出する。具体的には、第1調整部130は、「巡回単位順列を一巡するまでに収集部140によって収集されるデータのデータ量を、巡回単位順列を一巡するまでに収集部140が要する時間間隔で除した値」として、「平均サンプリング速度Vmean」を算出する。例えば、第1調整部130は、「各I/Oノードのサンプリング速度Vsampleに各I/Oノードの収集時間Tsampleを乗じた値」の全I/Oノード分の合計を、全I/Oノード分の収集時間Tsampleの合計で除して、平均サンプリング速度Vmeanを算出する。平均サンプリング速度Vmeanは、具体的には、図7の(B)に例示するように、
Figure 2020052441
となる。
(余裕速度の算出方法)
第1調整部130は、最大値Vammから平均サンプリング速度Vmeanを差し引いた値として、「余裕速度Vmargin」を算出する。「最大値Vamm=1024byte/s」であり、「平均サンプリング速度Vmean=910byte/s」であるから、図7の(B)に例示するように、
Figure 2020052441
である。
第1調整部130は、「余裕速度Vmargin=114byte/s」であり、つまり、「余裕速度Vmarginが『0』以上である」ことを確認すると、収集規則の調整が不要であると判定する。第1調整部130は、各I/Oノードについて、収集規則テーブル183の「基準周波数」および「基準点数」の各々の値を、「実周波数」および「実点数」の各々へと格納する。
つまり、図7の(C)に例示するように、第1調整部130は、収集規則テーブル183の「I/Oノード:A」について、「実周波数」に「基準周波数」と等しい「200Hz」を格納し、「実点数」に「基準点数」と等しい「1000」を格納する。同様に、「I/Oノード:B」について、「実周波数」に「基準周波数」と等しい「200Hz」を格納し、「実点数」に「基準点数」と等しい「1000」を格納する。また、「I/Oノード:C」について、「実周波数」に「基準周波数」と等しい「1000Hz」を格納し、「実点数」に「基準点数」と等しい「1000」を格納する。
収集部140は、収集規則テーブル183に格納されている調整後の収集規則に従ってサンプリング処理を実行し、つまり、収集規則テーブル183に格納されている各I/Oノードの「基準周波数」および「基準点数」に従って、サンプリングを実行する。具体的には、図7の(C)に例示する収集規則テーブル183には、「順列:A、B、C」が格納されているため、収集部140は、「I/Oノード:A」、「I/Oノード:B」、および、「I/Oノード:C」の各々のデータを、この順に収集する。収集部140は、「I/Oノード:A」について、「サンプリング周波数:200Hz」として、「サンプリング点数:1000」点のデータを、収集する。収集部140は、「I/Oノード:B」について、「サンプリング周波数:200Hz」として、「サンプリング点数:1000」点のデータを、収集する。収集部140は、「I/Oノード:C」について、「サンプリング周波数:1000Hz」として、「サンプリング点数:1000」点のデータを、収集する。
(サンプリング速度についての留意点)
図7に示す例では、「I/Oノード:C」のサンプリング速度Vは「2000byte/s」であり、「最大値Vamm=1024byte/s」よりも大きい。しかしながら、「平均サンプリング速度Vmean=910byte/s」は「最大値Vamm=1024byte/s」以下であるから、第1調整部130は、収集規則の調整が不要であると判定する。
すなわち、特定のI/Oノードのサンプリング速度Vsampleが最大値Vammを超えていても、データ収集全体の平均(平均サンプリング速度Vmean)が最大値Vamm以下であれば、第1調整部130は、収集規則の調整は不要であると判定する。
(収集規則の調整が必要である場合の例)
図8は、収集部140が実際にサンプリング処理を実行する際に従う収集規則として、基準収集規則をそのまま採用できない場合の収集規則テーブル183等の一例を示す図である。図8において、「最大値Vamm=1024byte/s」とする。
図8の(A)に例示する収集規則テーブル183には、「I/Oノード:A」について、「データ型」が例えば「DINT」であって、1単位当たり32bit、「基準周波数」が「2000Hz」、「基準点数」が「2000」であるとの情報が登録されている。同様に、「I/Oノード:B」は、「データ型」が例えば「DINT」であって、1単位当たり32bit、「基準周波数」が「1000Hz」、「基準点数」が「1000」である。また、「I/Oノード:C」は、「データ型」が例えば「INT」であって、1単位当たり16bit、「基準周波数」が「1000Hz」、「基準点数」が「1000」である。
(サンプリング速度の算出方法)
上述の通り、第1調整部130は、各I/Oノードについて、「データ型」によって特定されるデータ1単位当たりの大きさに、「サンプリング周波数」の値を乗じた後、「8bit/byte」で除して、サンプリング速度Vsampleを算出する。具体的には、第1調整部130は、「I/Oノード:A」、「I/Oノード:B」、および、「I/Oノード:C」のサンプリング速度V、V、およびVの各々について、図8の(B)に例示するように、以下の値を算出する。すなわち、第1調整部130は、「サンプリング速度V=8000byte/s」、「サンプリング速度V=4000byte/s」、「サンプリング速度V=2000byte/s」を算出する。
(収集時間の算出方法)
また、第1調整部130は、各I/Oノードについて、「サンプリング点数」の値を「サンプリング周波数」の値で除して、収集時間Tsampleを算出する。具体的には、第1調整部130は、「I/Oノード:A」、「I/Oノード:B」、および、「I/Oノード:C」の収集時間T、T、およびTの各々について、図8の(B)に例示するように、以下の値を算出する。すなわち、第1調整部130は、「収集時間T=1s」、「収集時間T=1s」、「収集時間T=1s」を算出する。
(平均サンプリング速度および余裕速度の算出方法)
第1調整部130は、巡回単位順列における各I/Oノードについて算出したサンプリング速度Vsampleと収集時間Tsampleとから、平均サンプリング速度Vmeanを算出する。例えば、第1調整部130は、「各I/Oノードのサンプリング速度Vsampleに各I/Oノードの収集時間Tsampleを乗じた値」の全I/Oノード分の合計を、全I/Oノード分の収集時間Tsampleの合計で除して、平均サンプリング速度Vmeanを算出する。すなわち、第1調整部130は、「平均サンプリング速度Vmean=4667byte/s」を算出する。また、「最大値Vamm=1024byte/s」であるから、第1調整部130は、「余裕速度Vmargin=最大値Vamm−平均サンプリング速度Vmean=−3643byte/s」を算出する。
第1調整部130は、「余裕速度Vmargin=−3643byte/s」であり、つまり、「余裕速度Vmarginが『0』未満である」ことを確認すると、収集規則の調整が必要であると判定する。
図7および図8を用いて説明したように、第1調整部130は、平均サンプリング速度Vmeanと最大値Vammとの比較から、収集規則の調整要否を判定する。そして、収集規則の調整が必要であると判定した第1調整部130は、「余裕速度Vmarginが『0』以上となる」ように、収集規則を調整する。具体的には、第1調整部130は、各I/Oノードの「巡回頻度」、「サンプリング周波数」、「サンプリング点数」、および、「巡回単位順列を一巡するまでに要する時間」の少なくとも一つの項目を、最大値Vammを用いて、調整する。
(収集規則の調整を行なう場合の一般的な留意点について)
図9は、或るI/Oノードの収集規則を増減させた場合に、平均サンプリング速度Vmeanの値がどのように変化するかの傾向を説明する図である。具体的には、図9は、第1調整部130が、各I/Oノードの「巡回頻度」、「サンプリング周波数」、および「サンプリング点数」を調整する(つまり、増減させる)ことによる、平均サンプリング速度Vmeanへの一般的な影響を説明する図である。
第1調整部130は、収集部140の収集するデータの利用目的に応じて、各I/Oノードの「巡回頻度」、「サンプリング周波数」、「サンプリング点数」、および、「巡回単位順列を一巡するまでに要する時間」の少なくとも1つを調整する。ここで、或るI/Oノードの収集規則が変更されると、「第1調整部130が巡回単位順列を一巡するのに要する総時間(つまり、総収集時間TAll)に対して、各I/Oノードの収集時間Tsampleが占める割合」が相対的に変化する。具体的には、或るI/Oノードの「巡回頻度」、「サンプリング周波数」、「サンプリング点数」の少なくとも一つを変更すると、「総収集時間TAllに対して、各I/Oノードの収集時間Tsampleが占める割合」が相対的に変化する。そのため、或るI/Oノードの収集規則を変更すると、巡回単位順列における他のI/Oノードの収集規則にも影響を与え、結果として平均サンプリング速度Vmeanが大きく変わることがある。そこで、図9に、各I/Oノードの収集規則の変更と、その平均サンプリング速度Vmeanへの影響について整理した図を示しておく。
図9の(A)は、収集規則を変更するI/Oノードのサンプリング速度Vsampleが最大値Vammよりも大きい場合の、変更する収集規則と、その平均サンプリング速度Vmeanへの影響を説明する図である。サンプリング速度Vsampleが最大値Vammよりも大きいI/Oノードの「巡回頻度」を増加させると、平均サンプリング速度Vmeanは大きくなり、平均サンプリング速度Vmeanが最大値Vammよりも大きくなる可能性は上昇する。サンプリング速度Vsampleが最大値Vammよりも大きいI/Oノードの「巡回頻度」を減少させると、平均サンプリング速度Vmeanは小さくなり、平均サンプリング速度Vmeanが最大値Vammよりも大きくなる可能性は下降する。
サンプリング速度Vsampleが最大値Vammよりも大きいI/Oノードの「サンプリング周波数」を増加させると、平均サンプリング速度Vmeanは大きくなり、平均サンプリング速度Vmeanが最大値Vammよりも大きくなる可能性は上昇する。サンプリング速度Vsampleが最大値Vammよりも大きいI/Oノードの「サンプリング周波数」を減少させると、平均サンプリング速度Vmeanは小さくなり、平均サンプリング速度Vmeanが最大値Vammよりも大きくなる可能性は下降する。
サンプリング速度Vsampleが最大値Vammよりも大きいI/Oノードの「サンプリング点数」を増加させると、平均サンプリング速度Vmeanは大きくなり、平均サンプリング速度Vmeanが最大値Vammよりも大きくなる可能性は上昇する。サンプリング速度Vsampleが最大値Vammよりも大きいI/Oノードの「サンプリング点数」を減少させると、平均サンプリング速度Vmeanは小さくなり、平均サンプリング速度Vmeanが最大値Vammよりも大きくなる可能性は下降する。
図9の(B)は、収集規則を変更するI/Oノードのサンプリング速度Vsampleが最大値Vammよりも小さい場合の、変更する収集規則と、その平均サンプリング速度Vmeanへの影響を説明する図である。サンプリング速度Vsampleが最大値Vammよりも小さいI/Oノードの「巡回頻度」を増加させると、平均サンプリング速度Vmeanは小さくなり、平均サンプリング速度Vmeanが最大値Vammよりも大きくなる可能性は下降する。サンプリング速度Vsampleが最大値Vammよりも小さいI/Oノードの「巡回頻度」を減少させると、平均サンプリング速度Vmeanは大きくなり、平均サンプリング速度Vmeanが最大値Vammよりも大きくなる可能性は上昇する。
サンプリング速度Vsampleが最大値Vammよりも小さいI/Oノードの「サンプリング周波数」を増加させると、平均サンプリング速度Vmeanは大きくなり、平均サンプリング速度Vmeanが最大値Vammよりも大きくなる可能性は上昇する。サンプリング速度Vsampleが最大値Vammよりも小さいI/Oノードの「サンプリング周波数」を減少させると、平均サンプリング速度Vmeanは小さくなり、平均サンプリング速度Vmeanが最大値Vammよりも大きくなる可能性は下降する。
サンプリング速度Vsampleが最大値Vammよりも小さいI/Oノードの「サンプリング点数」を増加させると、平均サンプリング速度Vmeanは小さくなり、平均サンプリング速度Vmeanが最大値Vammよりも大きくなる可能性は下降する。サンプリング速度Vsampleが最大値Vammよりも小さいI/Oノードの「サンプリング点数」を減少させると、平均サンプリング速度Vmeanは大きくなり、平均サンプリング速度Vmeanが最大値Vammよりも大きくなる可能性は上昇する。
図9の(C)は、収集規則を変更するI/Oノードのサンプリング速度Vsampleが最大値Vammに等しい場合の、変更する収集規則と、その平均サンプリング速度Vmeanへの影響を説明する図である。サンプリング速度Vsampleが最大値Vammに等しいI/Oノードの「巡回頻度」を増減させた場合、平均サンプリング速度Vmeanの値は、そのI/Oノード以外の、他のI/Oノードの収集規則に依存する。
サンプリング速度Vsampleが最大値Vammに等しいI/Oノードの「サンプリング周波数」を増加させると、平均サンプリング速度Vmeanは大きくなり、平均サンプリング速度Vmeanが最大値Vammよりも大きくなる可能性は上昇する。
サンプリング速度Vsampleが最大値Vammに等しいI/Oノードの「サンプリング周波数」を減少させると、平均サンプリング速度Vmeanは小さくなり、平均サンプリング速度Vmeanが最大値Vammよりも大きくなる可能性は下降する。
サンプリング速度Vsampleが最大値Vammに等しいI/Oノードの「サンプリング点数」を増減させた場合、平均サンプリング速度Vmeanの値は、そのI/Oノード以外の、他のI/Oノードの収集規則に依存する。
第1調整部130は、「余裕速度Vmarginが『0』以上となる」ように、例えば、各I/Oノードの「巡回頻度」、「サンプリング周波数」、および、「サンプリング点数」の少なくとも一つを、図9を用いて説明した上述の傾向に留意して調整する。
(「サンプリング周波数」を不変とする場合の調整方法の一例)
図10は、第1調整部130が、各I/Oノードの「サンプリング周波数」を不変としつつ、平均サンプリング速度Vmeanが最大値Vamm以下となるように収集規則を調整する例を示す図である。図10において、「最大値Vamm=1024byte/s」とする。図10に例示するように、第1調整部130は、各I/Oノードの「サンプリング周波数」は変更せずに、例えば、各I/Oノードの「巡回頻度(より正確には、相対的な巡回頻度)」を増減させて、平均サンプリング速度Vmeanを最大値Vamm以下とする。
図10の(A)は、第2調整部160によって、「I/Oノード:A」の巡回頻度が変更された直後の収集規則テーブル183の一例を示す図である。例えば、「I/Oノード:A」について、収集規則テーブル183の「履歴」に格納されている値が、連続してN回、増加基準値Uth以上である判定した第2調整部160は、「I/Oノード:A」の巡回頻度を、図10の(A)のように増やす。すなわち、第2調整部160は、「I/Oノード:A」の巡回頻度を増やす前の巡回単位順列である「順列:A、B、C」について、「I/Oノード:A」の巡回頻度を増やして、例えば、図10の(A)に例示する「順列:A、B、A、C」に変更する。
図10の(A)に例示する収集規則テーブル183には、「順列:A、B、A、C」が格納されており、さらに、「I/Oノード:A」、「I/Oノード:B」、および、「I/Oノード:C」の各々について、以下の情報が格納されている。すなわち、「I/Oノード:A」について、「データ型」が例えば「DINT」であって、1単位当たり32bit、「基準周波数」が「400Hz」、「基準点数」が「1000」であるとの情報が登録されている。同様に、「I/Oノード:B」は、「データ型」が例えば「DINT」であって、1単位当たり32bit、「基準周波数」が「400Hz」、「基準点数」が「1000」である。また、「I/Oノード:C」は、「データ型」が例えば「INT」であって、1単位当たり16bit、「基準周波数」が「200Hz」、「基準点数」が「1000」である。
(サンプリング速度の算出方法)
これまでに説明した方法を用いて、第1調整部130は、「I/Oノード:A」、「I/Oノード:B」、および、「I/Oノード:C」のサンプリング速度V、V、およびVの各々について、図10の(A)に例示するように、以下の値を算出する。すなわち、第1調整部130は、「サンプリング速度V=1600byte/s」、「サンプリング速度V=1600byte/s」、「サンプリング速度V=400byte/s」を算出する。
(収集時間の算出方法)
また、これまでに説明した方法を用いて、第1調整部130は、「I/Oノード:A」、「I/Oノード:B」、および、「I/Oノード:C」の収集時間T、T、およびTの各々について、図10の(A)に例示するように、以下の値を算出する。すなわち、第1調整部130は、「収集時間T=2.5s」、「収集時間T=2.5s」、「収集時間T=5s」を算出する。
(平均サンプリング速度および余裕速度の算出方法)
第1調整部130は、巡回単位順列の各I/Oノードについて算出したサンプリング速度Vsampleと収集時間Tsampleとから、平均サンプリング速度Vmeanを算出する。例えば、第1調整部130は、「各I/Oノードのサンプリング速度Vsampleに各I/Oノードの収集時間Tsampleを乗じた値」の全I/Oノード分の合計を、全I/Oノード分の収集時間Tsampleの合計で除して、平均サンプリング速度Vmeanを算出する。すなわち、第1調整部130は、「平均サンプリング速度Vmean=1120byte/s」を算出する。また、「最大値Vamm=1024byte/s」であるから、第1調整部130は、「余裕速度Vmargin=最大値Vamm−平均サンプリング速度Vmean=−96byte/s」を算出する。
第1調整部130は、「余裕速度Vmargin=−96byte/s」であり、つまり、「余裕速度Vmarginが『0』未満である」ことを確認すると、収集規則の調整が必要であると判定する。
(巡回頻度の調整例)
第1調整部130は、各I/Oノードの「サンプリング周波数」は変更せずに、例えば、図10の(B)に例示するように各I/Oノードの「巡回頻度」を増減させて、平均サンプリング速度Vmeanを最大値Vamm以下とする。
ここで、図9を用いて説明したように、最大値Vammよりも大きいサンプリング速度VsampleのI/Oノードの「巡回頻度」を減少させると、一般的に平均サンプリング速度Vmeanは小さくなる(図9の(A))。また、最大値Vammよりも小さいサンプリング速度VsampleのI/Oノードの「巡回頻度」を増加させると、一般的に平均サンプリング速度Vmeanは小さくなる(図9の(B))。
「最大値Vamm=1024byte/s」であるから、「サンプリング速度V=1600byte/s」は最大値Vammよりも大きく、「サンプリング速度V=400byte/s」は最大値Vammよりも小さい。
そこで、第1調整部130は、「順列:A、B、A、C」について、「I/Oノード:B」の「巡回頻度(より正確には、「相対的な巡回頻度」)」の減少、および、「I/Oノード:C」の「巡回頻度」の増加の少なくとも一方を実行する。例えば、「I/Oノード:B」の重要度が、「I/Oノード:A」および「I/Oノード:C」の重要度よりも低い場合、第1調整部130は、図10の(A)の「順列:A、B、A、C」を、図10の(B)の「順列:A、B、C、A、A、C」に変更する。
「順列:A、B、A、C」において、「I/Oノード:A、B、および、C」の各々の巡回頻度は、「2、1、1(相対的には、2/4、1/4、1/4)」である。これに対し、「順列:A、B、C、A、A、C」において、「I/Oノード:A、B、および、C」の各々の巡回頻度は、「3、1、2(相対的には、3/6、1/6、2/6)」である。つまり、第1調整部130は、「順列:A、B、A、C」について、「I/Oノード:B」の「巡回頻度(より正確には、「相対的な巡回頻度」)」を減少させ、「I/Oノード:C」の「巡回頻度」を増加させて、「順列:A、B、C、A、A、C」に変更する。
図10の(B)に例示するように、第1調整部130が「順列:A、B、C、A、A、C」について算出する平均サンプリング速度Vmeanは「平均サンプリング速度Vmean=1000byte/s」となる。「最大値Vamm=1024byte/s」であるから、第1調整部130は、「余裕速度Vmargin=最大値Vamm−平均サンプリング速度Vmean=24byte/s」を算出する。余裕速度Vmarginが0以上であると判定した第1調整部130は、この「順列:A、B、C、A、A、C」を、収集部140が従うべき巡回単位順列として採用する。
図10を用いて説明したように、第1調整部130は、巡回単位順列の各I/Oノードの「サンプリング周波数」は変更せずに、各I/Oノードの「巡回頻度(相対的な巡回頻度)」を増減させて、平均サンプリング速度Vmeanを最大値Vamm以下とする。例えば、第1調整部130は、「I/Oノード:B」の「巡回頻度」を「1/4から1/6に」減少させ、「I/Oノード:C」の「巡回頻度」を「1/4から2/6に」増加させて、平均サンプリング速度Vmeanを最大値Vamm以下とする。
なお、第2調整部160によって「順列:A、B、C」から「I/Oノード:A」の巡回頻度が増やされた「順列:A、B、A、C」について、平均サンプリング速度Vmeanを最大値Vamm以下とするための調整方法は、上述のものに限られない。例えば、第1調整部130は、図10の(B)に例示する「順列:A、B、A、C」を、「順列:A、B、C」に戻すことによって、平均サンプリング速度Vmeanを最大値Vamm以下としてもよい。
(「巡回頻度」および「サンプリング点数」を不変とする場合の調整方法の一例)
図11は、第1調整部130が、各I/Oノードの「巡回頻度」および「サンプリング点数」を不変としつつ、平均サンプリング速度Vmeanが最大値Vamm以下となるように収集規則を調整する例を示す図である。図11において、「最大値Vamm=1024byte/s」とする。図11に例示するように、第1調整部130は、巡回単位順列の各I/Oノードの「巡回頻度」および「サンプリング点数」は変更せずに、例えば、各I/Oノードの「サンプリング周波数」を増減させて、平均サンプリング速度Vmeanを最大値Vamm以下とする。
図11の(A)は、第1調整部130による調整前の収集規則テーブル183の一例であり、「順列:A、B、C」の「I/Oノード:A」、「I/Oノード:B」、および、「I/Oノード:C」の各々について、以下の情報が格納されている。すなわち、「I/Oノード:A」について、「データ型」が例えば「DINT」であって、1単位当たり32bit、「基準周波数」が「2000Hz」、「基準点数」が「2000」であるとの情報が登録されている。同様に、「I/Oノード:B」は、「データ型」が例えば「DINT」であって、1単位当たり32bit、「基準周波数」が「1000Hz」、「基準点数」が「1000」である。また、「I/Oノード:C」は、「データ型」が例えば「INT」であって、1単位当たり16bit、「基準周波数」が「1000Hz」、「基準点数」が「1000」である。
(サンプリング速度および収集時間の算出方法)
これまでに説明した方法を用いて、第1調整部130は、「I/Oノード:A、B、および、C」について、サンプリング速度V、V、Vと、収集時間T、T、Tと、を算出する。すなわち、第1調整部130は、「サンプリング速度V=8000byte/s」、「サンプリング速度V=4000byte/s」、「サンプリング速度V=2000byte/s」を算出する。また、第1調整部130は、「収集時間T=1s」、「収集時間T=1s」、「収集時間T=1s」を算出する。
(平均サンプリング速度および余裕速度の算出方法)
第1調整部130は、巡回単位順列の各I/Oノードについて算出したサンプリング速度Vsampleと収集時間Tsampleとから、「平均サンプリング速度Vmean=4667byte/s」を算出する。また、「最大値Vamm=1024byte/s」であるから、第1調整部130は、「余裕速度Vmargin=最大値Vamm−平均サンプリング速度Vmean=−3643byte/s」を算出する。
第1調整部130は、「余裕速度Vmargin=−3643byte/s」であり、つまり、「余裕速度Vmarginが『0』未満である」ことを確認すると、収集規則の調整が必要であると判定する。
(サンプリング周波数の調整例)
第1調整部130は、巡回単位順列の各I/Oノードの「巡回頻度」および「サンプリング点数」は変更せずに、例えば、図11の(B)に例示するように各I/Oノードの「サンプリング周波数」を増減させて、平均サンプリング速度Vmeanを最大値Vamm以下とする。
先ず、第1調整部130は、「最大値Vamm=1024byte/s」を、調整前の「平均サンプリング速度Vmean=4667byte/s」で除した値である「低減率R」を算出する。すなわち、
Figure 2020052441
である。
次に、第1調整部130は、各I/Oノードの調整前のサンプリング周波数(FA_未補正、FB_未補正、FC_未補正)に低減率Rを乗じて、各I/Oノードの調整後のサンプリング周波数(FA_補正後、FB_補正後、FC_補正後)を算出する。すなわち、
Figure 2020052441
を算出する。
そして、第1調整部130は、各I/Oノードについて、「データ型」によって特定されるデータ1単位当たりの大きさに、「調整後のサンプリング周波数」の値を乗じた後、「8bit/byte」で除して、調整後のサンプリング速度Vsampleを算出する。具体的には、第1調整部130は、「I/Oノード:A」、「I/Oノード:B」、および、「I/Oノード:C」の調整後のサンプリング速度V、V、およびVの各々について、図11の(B)に例示するように、以下の値を算出する。すなわち、第1調整部130は、「調整後のサンプリング速度V=1756byte/s」、「調整後のサンプリング速度V=876byte/s」、「調整後のサンプリング速度V=438byte/s」を算出する。
また、第1調整部130は、各I/Oノードについて、「サンプリング点数」の値を「調整後のサンプリング周波数」の値で除して、調整後の収集時間Tsampleを算出する。具体的には、第1調整部130は、「I/Oノード:A」、「I/Oノード:B」、および、「I/Oノード:C」の調整後の収集時間T、T、およびTの各々について、図11の(B)に例示するように、以下の値を算出する。すなわち、第1調整部130は、「調整後の収集時間T=4.6s」、「調整後の収集時間T=4.6s」、「調整後の収集時間T=4.6s」を算出する。
前述のように、第1調整部130は、巡回単位順列の各I/Oノードについて算出した調整後のサンプリング速度V、V、Vと調整後の収集時間T、T、Tとから、調整後の「平均サンプリング速度Vmean(「Vmean_補正後」とも称する)」を算出する。平均サンプリング速度Vmeanは、具体的には、図11の(B)に例示するように、「平均サンプリング速度Vmean=1024byte/s」となる。「最大値Vamm=1024byte/s」であるから、第1調整部130は、「余裕速度Vmargin=最大値Vamm−平均サンプリング速度Vmean=0byte/s」を算出する。余裕速度Vmarginが0以上であると判定した第1調整部130は、この調整後のサンプリング周波数(FA_補正後、FB_補正後、FC_補正後)を、収集部140が従うべきサンプリング周波数として採用する。
(「待ち時間」を挿入する場合の調整方法の一例)
図12は、第1調整部130が、サンプリング処理の間に待ち時間を挿入して、平均サンプリング速度Vmeanが最大値Vamm以下となるように、「巡回単位順列を一巡するまでに要する時間」を調整する例を示す図である。図12において、「最大値Vamm=1024byte/s」とする。図12に例示するように、第1調整部130は、巡回単位順列の各I/Oノードの「巡回頻度」、「サンプリング周波数」、「サンプリング点数」は変更せずに、「巡回単位順列を一巡するまでに要する時間」を増減させて、平均サンプリング速度Vmeanを最大値Vamm以下とする。
図12の(A)は、第1調整部130による調整前の収集規則テーブル183の一例であり、「順列:A、B、C」の「I/Oノード:A」、「I/Oノード:B」、および、「I/Oノード:C」の各々について、以下の情報が格納されている。すなわち、「I/Oノード:A」について、「データ型」が例えば「DINT」であって、1単位当たり32bit、「基準周波数」が「2000Hz」、「基準点数」が「2000」であるとの情報が登録されている。同様に、「I/Oノード:B」は、「データ型」が例えば「DINT」であって、1単位当たり32bit、「基準周波数」が「1000Hz」、「基準点数」が「1000」である。また、「I/Oノード:C」は、「データ型」が例えば「INT」であって、1単位当たり16bit、「基準周波数」が「1000Hz」、「基準点数」が「1000」である。
(サンプリング速度および収集時間の算出方法)
これまでに説明した方法を用いて、第1調整部130は、「I/Oノード:A、B、および、C」について、サンプリング速度V、V、Vと、収集時間T、T、Tと、を算出する。すなわち、第1調整部130は、「サンプリング速度V=8000byte/s」、「サンプリング速度V=4000byte/s」、「サンプリング速度V=2000byte/s」を算出する。また、第1調整部130は、「収集時間T=1s」、「収集時間T=1s」、「収集時間T=1s」を算出する。
(平均サンプリング速度および余裕速度の算出方法)
第1調整部130は、巡回単位順列の各I/Oノードについて算出したサンプリング速度Vsampleと収集時間Tsampleとから、「平均サンプリング速度Vmean=4667byte/s」を算出する。また、「最大値Vamm=1024byte/s」であるから、第1調整部130は、「余裕速度Vmargin=最大値Vamm−平均サンプリング速度Vmean=−3643byte/s」を算出する。
第1調整部130は、「余裕速度Vmargin=−3643byte/s」であり、つまり、「余裕速度Vmarginが『0』未満である」ことを確認すると、収集規則の調整が必要であると判定する。
(「待ち時間」の挿入例)
第1調整部130は、「巡回頻度」、「サンプリング周波数」、「サンプリング点数」は変更せずに、例えば、図12の(B)に例示するように「待ち時間T」を挿入して、平均サンプリング速度Vmeanを最大値Vamm以下とする。
補正後の平均サンプリング速度Vmean_補正後は最大値Vamm以下となるから、つまり、
Figure 2020052441
となる。第1調整部130は、これを解いて、すなわち、
Figure 2020052441
となる。第1調整部130は、「順列:A、B、C」に「待ち時間T」を挿入し、具体的には、図12の(B)に例示するように、「待ち時間T」を収集規則テーブル183に格納する。すなわち、図12の(B)には、図12の(A)に例示する収集規則テーブル183に対し、「ID:D」および「収集時間:10.7s」だけが格納され、その他の項目にデータの格納されていない行が追加された収集規則テーブル183が示されている。
「順列:A、B、C」における各I/Oノードの収集時間Tsampleの合計である「総収集時間TAll」は「総収集時間TAll=1+1+1=3s」である。「順列:A、B、C」に「待ち時間T」を挿入した「順列:A、B、C、D」の「総収集時間TAll」は「総収集時間TAll=1+1+1+10.7=13.7s」である。そして、「I/Oノード:D」は待ち時間に対応するノードであるため、「I/Oノード:D」の「サンプリング点数」は「0」であり、つまり、「I/Oノード:D」について収集されるデータのデータ量は「0」である。
第1調整部130は、「巡回単位順列を一巡するまでに収集するデータのデータ量」は変えずに、「待ち時間を挿入して巡回単位順列を一巡するまでに要する総収集時間TAllを大きくする」ことによって、平均サンプリング速度Vmeanを小さくする。
図12の(B)に例示するように、第1調整部130が「順列:A、B、C、D」について算出する平均サンプリング速度Vmeanは「平均サンプリング速度Vmean=1022byte/s」となる。「最大値Vamm=1024byte/s」であるから、第1調整部130は、「余裕速度Vmargin=最大値Vamm−平均サンプリング速度Vmean=2byte/s」を算出する。余裕速度Vmarginが0以上であると判定した第1調整部130は、この「順列:A、B、C、D」を含む、図12の(B)に示す収集規則テーブル183に格納された収集規則を、収集部140が従うべき巡回単位順列として採用する。
(表示処理について)
図13は、表示制御部170が、ツールなどの外部表示装置の表示画面に表示させる情報の一例を示す図である。表示制御部170は、表示画面(例えば、ツールなどの外部表示装置の表示画面)に、実行中のサンプリング処理に係る情報を表示させ、例えば、図13に例示するように、ユーザの設定した最大値Vammを表示させる。図13に示す例では、表示制御部170は、さらに、実行中のサンプリング処理に係る処理負荷の大きさを示す平均サンプリング速度Vmean、および、最大値Vammと平均サンプリング速度Vmeanとの差である余裕速度Vmarginを表示させている。
また、表示制御部170は、例えば、「巡回単位順列に含まれる複数のI/Oノードの各々の名称」、「巡回単位順列における、各I/Oノードの出現順序」、および、「現在、データ収集対象となっているI/Oノード」を表示させる。さらに、表示制御部170は、例えば、各I/Oノードについて、適用中の収集規則における「サンプリング周波数」、「サンプリング点数」、および、「直近のデータに対する重要度」を表示させる。
§4.変形例
図14は、記憶部180に格納されている収集規則テーブル183について、図4に例示したのとは異なる収集規則テーブル183のデータ構造の一例を示す図である。図14に例示する収集規則テーブル183は、図4に例示した収集規則テーブル183の備える項目に加えてさらに、「収集フラグ変数」との項目を有する。
収集部140は、制御データテーブル181に格納されている制御データのうち、収集規則テーブル183の「収集フラグ変数」が「TRUE」であるI/Oノードのデータを収集し、「収集フラグ変数」が「FALSE」のI/Oノードのデータは収集しない。つまり、収集部140は、取得部110がスレーブ装置から制御周期ごとに取得した制御データのうち、収集規則テーブル183の「収集フラグ変数」が「TRUE」であるI/Oノードのみを、データ収集対象とする。
第1調整部130は、収集規則テーブル183の「収集フラグ変数」が「TRUE」であるI/Oノードのみをデータ収集対象とすることで、サンプリングの必要なI/Oノードのデータだけを収集することができる。
収集規則テーブル183が「収集フラグ変数」との項目を有する場合、第1調整部130は、「収集フラグ変数」が「FALSE」のI/Oノードの「サンプリング点数」を「0」として、平均サンプリング速度Vmeanを算出する。
〔ソフトウェアによる実現例〕
PLC10の制御ブロック(具体的には、取得部110、受付部120、第1調整部130、収集部140、評価部150、第2調整部160、および、表示制御部170)は、集積回路(ICチップ)等に形成された論理回路(ハードウェア)によって実現してもよいし、CPU(CenTral Processing Unit)を用いてソフトウェアによって実現してもよい。
後者の場合、PLC10は、各機能を実現するソフトウェアであるプログラムの命令を実行するCPU、上記プログラムおよび各種データがコンピュータ(またはCPU)で読み取り可能に記録されたROM(Read Only Memory)または記憶装置(これらを「記録媒体」と称する)、上記プログラムを展開するRAM(Random Access Memory)等を備えている。そして、コンピュータ(またはCPU)が上記プログラムを上記記録媒体から読み取って実行することにより、本発明の目的が達成される。上記記録媒体としては、「一時的でない有形の媒体」、例えば、テープ、ディスク、カード、半導体メモリ、プログラマブルな論理回路等を用いることができる。また、上記プログラムは、該プログラムを伝送可能な任意の伝送媒体(通信ネットワークや放送波等)を介して上記コンピュータに供給されてもよい。なお、本発明は、上記プログラムが電子的な伝送によって具現化された、搬送波に埋め込まれたデータ信号の形態でも実現され得る。
本発明は上述した各実施形態に限定されるものではなく、請求項に示した範囲で種々の変更が可能であり、異なる実施形態にそれぞれ開示された技術的手段を適宜組み合わせて得られる実施形態についても本発明の技術的範囲に含まれる。
1 制御システム(マスタスレーブ制御システム)
10 PLC(マスタ装置)
20 データベース(外部装置)
30 サーボドライバ(スレーブ装置)
120 受付部
130 第1調整部
140 収集部
160 第2調整部
170 表示制御部
R 低減率(一律の割合)
S110 受付ステップ
S140 第1調整ステップ
S150 収集ステップ
All 総収集時間(順列を一巡するまでに収集部が要する時間)
amm 最大値(ユーザの指定する最大値)
mean 平均サンプリング速度(単位時間あたりに収集されるデータのデータ量)
margin 余裕速度(最大値Vamm−平均サンプリング速度Vmean

Claims (10)

  1. マスタスレーブ制御システムにおけるマスタ装置であって、
    スレーブ装置から周期的に取得した制御データから、外部装置に送信すべき複数のデータの各々を、所定の収集規則に従って、繰り返し収集する収集部と、
    前記収集部によって単位時間あたりに収集されるデータのデータ量について、ユーザの指定する最大値を受け付ける受付部と、
    前記所定の収集規則に従う前記収集部によって単位時間あたりに収集されるデータのデータ量が、前記受付部により受け付けられた前記最大値以下となるように、前記所定の収集規則を調整する第1調整部と、
    を備えるマスタ装置。
  2. 前記所定の収集規則は、前記収集部によって収集される前記複数のデータの各々の収集順序を示す順列を含み、
    前記収集部は、前記複数のデータの各々を、前記順列に従って繰り返し収集し、
    前記所定の収集規則に従う前記収集部によって単位時間あたりに収集されるデータのデータ量は、前記順列を一巡するまでに前記収集部によって収集されるデータのデータ量を、前記順列を一巡するまでに前記収集部が要する時間で除した値である
    請求項1に記載のマスタ装置。
  3. 前記第1調整部は、前記所定の収集規則として、(1)前記複数のデータの各々の、前記順列における出現回数、(2)前記複数のデータの各々の、前記順列における1回の出現ごとに収集されるデータ点数、(3)前記複数のデータの各々の、前記順列における1回の出現ごとに単位時間当たりに収集されるデータ点数である収集周波数、および、(4)前記順列を一巡するまでに前記収集部が要する時間の少なくとも1つを調整する
    請求項2に記載のマスタ装置。
  4. 前記収集部によって収集された前記複数のデータの各々に対して付与される評価値が所定の基準を満たすと、当該所定の基準を満たす評価値の付与されたデータについて、(1)前記順列における出現回数、(2)前記順列における1回の出現ごとに収集されるデータ点数、および、(3)前記順列における1回の出現ごとに単位時間当たりに収集されるデータ点数である収集周波数の少なくとも1つを調整する第2調整部をさらに備え、
    前記第1調整部は、前記第2調整部により調整された前記出現回数、前記順列における1回の出現ごとに収集されるデータ点数、および、前記収集周波数を含む前記所定の収集規則を、前記最大値を用いてさらに調整する
    請求項2または3に記載のマスタ装置。
  5. 前記第1調整部は、(1)前記複数のデータの各々の、前記順列における1回の出現ごとに収集されるデータ点数、および、(2)前記複数のデータの各々の、前記順列における1回の出現ごとに単位時間当たりに収集されるデータ点数である収集周波数の少なくとも一方を、一律の割合で小さくする
    請求項2から4のいずれか1項に記載のマスタ装置。
  6. (1)前記最大値、(2)前記第1調整部によって調整された前記所定の収集規則に従う前記収集部によって単位時間あたりに収集されるデータのデータ量、および、(3)両者の差をユーザに対して表示させる表示制御部をさらに備える
    請求項1から5のいずれか1項に記載のマスタ装置。
  7. 前記収集部によって収集される前記複数のデータの各々は、前記スレーブ装置から周期的に取得した制御データのうち、ユーザによって収集対象として選択されたデータである
    請求項1から6のいずれか1項に記載のマスタ装置。
  8. マスタスレーブ制御システムにおけるマスタ装置の制御方法であって、
    スレーブ装置から周期的に取得した制御データから、外部装置に送信すべき複数のデータの各々を、所定の収集規則に従って、繰り返し収集する収集ステップと、
    前記収集ステップにて単位時間あたりに収集されるデータのデータ量について、ユーザの指定する最大値を受け付ける受付ステップと、
    前記所定の収集規則に従って前記収集ステップにて単位時間あたりに収集されるデータのデータ量が、前記受付ステップにて受け付けられた前記最大値以下となるように、前記所定の収集規則を調整する第1調整ステップと、
    を含む制御方法。
  9. 請求項1から7のいずれか一項に記載のマスタ装置としてコンピュータを機能させるための情報処理プログラムであって、前記各部としてコンピュータを機能させるための情報処理プログラム。
  10. 請求項9に記載の情報処理プログラムを記録したコンピュータ読み取り可能な記録媒体。
JP2018177785A 2018-09-21 2018-09-21 マスタ装置、マスタ装置の制御方法、情報処理プログラム、および記録媒体 Active JP7010185B2 (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP2018177785A JP7010185B2 (ja) 2018-09-21 2018-09-21 マスタ装置、マスタ装置の制御方法、情報処理プログラム、および記録媒体
PCT/JP2019/036410 WO2020059719A1 (ja) 2018-09-21 2019-09-17 マスタ装置、マスタ装置の制御方法、情報処理プログラム、および記録媒体

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2018177785A JP7010185B2 (ja) 2018-09-21 2018-09-21 マスタ装置、マスタ装置の制御方法、情報処理プログラム、および記録媒体

Publications (2)

Publication Number Publication Date
JP2020052441A true JP2020052441A (ja) 2020-04-02
JP7010185B2 JP7010185B2 (ja) 2022-01-26

Family

ID=69887029

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2018177785A Active JP7010185B2 (ja) 2018-09-21 2018-09-21 マスタ装置、マスタ装置の制御方法、情報処理プログラム、および記録媒体

Country Status (2)

Country Link
JP (1) JP7010185B2 (ja)
WO (1) WO2020059719A1 (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20220276630A1 (en) * 2021-02-26 2022-09-01 Kabushiki Kaisha Yaskawa Denki Data collection system for industrial machine, data collection method for industrial machine, and information storage medium

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP7063292B2 (ja) 2019-03-15 2022-05-09 オムロン株式会社 制御システム、設定装置、および設定プログラム

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2000324567A (ja) * 1999-05-10 2000-11-24 Mitsubishi Electric Corp 遠隔監視システム
WO2012111653A1 (ja) * 2011-02-16 2012-08-23 三菱電機株式会社 データ転送装置
JP2014178852A (ja) * 2013-03-14 2014-09-25 Toshiba Corp 制御システム及び制御プログラム
WO2016031244A1 (ja) * 2014-08-27 2016-03-03 株式会社 東芝 監視制御システム及びデータ収集装置

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2000324567A (ja) * 1999-05-10 2000-11-24 Mitsubishi Electric Corp 遠隔監視システム
WO2012111653A1 (ja) * 2011-02-16 2012-08-23 三菱電機株式会社 データ転送装置
JP2014178852A (ja) * 2013-03-14 2014-09-25 Toshiba Corp 制御システム及び制御プログラム
WO2016031244A1 (ja) * 2014-08-27 2016-03-03 株式会社 東芝 監視制御システム及びデータ収集装置

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20220276630A1 (en) * 2021-02-26 2022-09-01 Kabushiki Kaisha Yaskawa Denki Data collection system for industrial machine, data collection method for industrial machine, and information storage medium

Also Published As

Publication number Publication date
JP7010185B2 (ja) 2022-01-26
WO2020059719A1 (ja) 2020-03-26

Similar Documents

Publication Publication Date Title
US7849210B2 (en) Optimizing the responsiveness and throughput of a system performing packetized data transfers
US6606658B1 (en) Apparatus and method for server resource usage display by comparison of resource benchmarks to determine available performance
EP3432463B1 (en) Motor control system, motor control device, program and recording medium
US10120820B2 (en) Direct memory access transmission control method and apparatus
CN100565487C (zh) 仲裁器、交叉开关、请求选择方法以及信息处理设备
CN108693823B (zh) 控制装置
EP2618263A2 (en) Cache device, communication apparatus, and computer program product
WO2020059719A1 (ja) マスタ装置、マスタ装置の制御方法、情報処理プログラム、および記録媒体
CN100456201C (zh) 事件时间标记
JP6394313B2 (ja) ストレージ管理装置、ストレージ管理方法及びストレージ管理プログラム
JP7067406B2 (ja) 制御システム、制御装置および制御方法
CN116260738B (zh) 设备监控方法及相关设备
CN112654939B (zh) 控制系统以及控制装置
CN111130920B (zh) 硬件信息获取方法、装置、服务器及存储介质
CN107085557A (zh) 直接存储器访问系统以及相关方法
JP5390424B2 (ja) プラント監視装置
CN110647533A (zh) 一种用于结构监测系统的数据监听方法,系统及存储介质
WO2021199342A1 (ja) 通信装置、通信方法及びプログラム
JP4267304B2 (ja) ディスクアレイ制御装置
CN108334180A (zh) 一种服务器的风扇控制方法和服务器
JPH10307613A (ja) プロセスデータ収集装置の更新方法
JP6758533B1 (ja) メンテナンス支援プログラム、メンテナンス支援装置、およびメンテナンス支援方法
US20220171361A1 (en) Control system, relay device, and relay program
JP2000357011A (ja) 分散型プラント監視装置
CN110008088A (zh) 一种传感器信息的传递系统、方法、设备及存储介质

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20201215

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: 20211214

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20211227

R150 Certificate of patent or registration of utility model

Ref document number: 7010185

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150