JP6399136B1 - 制御装置、制御プログラム、および制御システム - Google Patents

制御装置、制御プログラム、および制御システム Download PDF

Info

Publication number
JP6399136B1
JP6399136B1 JP2017069932A JP2017069932A JP6399136B1 JP 6399136 B1 JP6399136 B1 JP 6399136B1 JP 2017069932 A JP2017069932 A JP 2017069932A JP 2017069932 A JP2017069932 A JP 2017069932A JP 6399136 B1 JP6399136 B1 JP 6399136B1
Authority
JP
Japan
Prior art keywords
time
delay
delay time
data
control device
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
JP2017069932A
Other languages
English (en)
Other versions
JP2018173710A (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.)
Omron Corp
Original Assignee
Omron Corp
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 filed Critical Omron Corp
Priority to JP2017069932A priority Critical patent/JP6399136B1/ja
Priority to CN201810141020.9A priority patent/CN108693821B/zh
Priority to EP18000159.6A priority patent/EP3382481B1/en
Priority to US15/901,925 priority patent/US10908579B2/en
Application granted granted Critical
Publication of JP6399136B1 publication Critical patent/JP6399136B1/ja
Publication of JP2018173710A publication Critical patent/JP2018173710A/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/048Monitoring; Safety
    • 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/054Input/output
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/21Design, administration or maintenance of databases
    • G06F16/217Database tuning
    • 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/11Plc I-O input output
    • G05B2219/1103Special, intelligent I-O processor, also plc can only access via processor
    • 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/13Plc programming
    • G05B2219/13063Synchronization between modules
    • 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/20Pc systems
    • G05B2219/22Pc multi processor system
    • G05B2219/2241Real time database, each processor stores in local memory used variables
    • 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/20Pc systems
    • G05B2219/25Pc structure of the system
    • G05B2219/25213Synchronisation, address and data

Landscapes

  • Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Databases & Information Systems (AREA)
  • Automation & Control Theory (AREA)
  • Theoretical Computer Science (AREA)
  • Data Mining & Analysis (AREA)
  • General Engineering & Computer Science (AREA)
  • Programmable Controllers (AREA)
  • Testing And Monitoring For Control Systems (AREA)

Abstract

【課題】上述したような課題を解決するために、制御対象から収集される観測値が実際に現れた時刻を正確に把握できる仕組みを提供する。【解決手段】制御対象についての制御演算を実行する制御装置が提供される。制御装置は、データ伝送路を介して1または複数の機能ユニットと制御装置とを電気的に接続するための通信インターフェイスと、機能ユニットを介して収集される観測値をデータベースに書込む書込手段と、機能ユニットに観測値を示す信号が入力されてから当該観測値を示すデータが制御装置で利用可能になるまでに要する遅延時間を取得するとともに、取得した遅延時間を示す情報を格納する遅延時間取得手段とを含む。【選択図】図9

Description

本発明は、データベースを利用可能な制御装置、当該制御装置で実行される制御プログラム、および当該制御装置を含む制御システムに関する。
様々な生産現場において、PLC(プログラマブルコントローラ)などの制御装置を用いたFA(Factory Automation)技術が広く普及している。このような制御装置が取り扱うデータを利用したいというニーズがある。
例えば、特開2008−293138号公報(特許文献1)は、デバッグを実施する場合、プログラムの論理を確認するために、ある特定の条件が成立した時点の値を保持する、いわゆる条件モニタ機能を提供するための構成を開示する。
ICT(Information and Communication Technology)の進歩によって、特許文献1に開示されるような特定の条件が成立した時点の値を保持するような構成ではなく、制御装置においても大量のデータを収集および格納することが可能になりつつある。
特開2008−293138号公報
比較的規模の大きな制御装置には、フィールドバスまたはフィールドネットワークと称されるデータ伝送路を介して機能ユニットが接続されており、制御対象に取り付けられたセンサからの観測値が機能ユニットを介して収集される。
制御対象から収集される複数の観測値の間では、時間軸を揃える必要がある。すなわち、同一の時刻に発生した観測値を互いに比較できるように収集する必要がある。一方で、制御装置には、複数の機能ユニットがそれぞれ異なる態様で接続されている場合も多い。制御装置と機能ユニットとの間の接続形態が異なっているため、制御対象においてある観測値が実際に現れてから制御装置に収集されるまでに要する遅延時間は、機能ユニットの間で同一ではないことも多い。また、遅延時間そのものの存在によって、観測値が実際に現れた時刻を正確に把握することが難しくなる。
本発明は、上述したような課題を解決するために、制御対象から収集される観測値が実際に現れた時刻を正確に把握できる仕組みを提供することを一つの目的としている。
本発明のある局面に従えば、制御対象についての制御演算を実行する制御装置が提供される。制御装置は、データ伝送路を介して1または複数の機能ユニットと制御装置とを電気的に接続するための通信インターフェイスと、機能ユニットを介して収集される観測値をデータベースに書込む書込手段と、機能ユニットに観測値を示す信号が入力されてから当該観測値を示すデータが制御装置で利用可能になるまでに要する遅延時間を取得するとともに、取得した遅延時間を示す情報を格納する遅延時間取得手段とを含む。
この局面によれば、機能ユニットに観測値を示す信号が入力されてから当該観測値を示すデータが制御装置で利用可能になるまでには、遅延時間が存在しており、この遅延時間分だけ遅延した時刻に対応付けて観測値がデータベースに書込まれたとしても、遅延時間を示す情報を取得および格納しておくことで、事後的な解析処理などを高い精度で実施できる。
好ましくは、制御装置は、遅延時間取得手段により取得された遅延時間を示す情報に基づいて、観測値を示す信号が現れた時刻を決定する時刻決定手段をさらに含む。この局面によれば、制御対象から収集される観測値が実際に現れた時刻を正確に把握できる。
好ましくは、書込手段は、観測値と、当該観測値が制御装置において利用可能になった時刻とを対応付けてデータベースに書込み、時刻決定手段は、データベースから読出した観測値について、当該観測値に対応付けられた時刻を遅延時間取得手段により取得された遅延時間を示す情報に基づいて補正することで、当該観測値を示す信号が現れた時刻を決定する。この局面によれば、制御対象から収集される観測値が実際に現れた時刻が正確に再現された結果を出力できる。
好ましくは、遅延時間は、時間的に変動しない第1の遅延時間と、時間的に変動する第2の遅延時間とを含む。この局面によれば、時間的に変動しない成分および時間的に変動する成分のそれぞれを考慮した、遅延時間を取得できる。
好ましくは、第1の遅延時間は、機能ユニットに設定される処理特性および機能ユニットの機能の少なくとも一方に依存して定まる遅延時間を含む。この局面によれば、機能ユニットに設定される処理特性または機能ユニットの機能を考慮して、遅延時間の長さを決定できる。
好ましくは、第1の遅延時間は、機能ユニットから制御装置までのデータ伝送路に依存して定まる遅延時間を含む。この局面によれば、機能ユニットから制御装置までのデータ伝送路を考慮して、遅延時間の長さを決定できる。
好ましくは、通信インターフェイスおよび機能ユニットは、互いに時刻同期されたカウンタをそれぞれ有しており、第2の遅延時間は、互いに時刻同期されたカウンタが示すカウンタ値間のずれの程度に依存して時間的に変化する遅延時間を含む。この局面によれば、互いに時刻同期されたカウンタ間に生じる時刻ずれなどの影響を考慮して、遅延時間の長さを動的に決定できる。
好ましくは、制御装置は、データベースに格納されている観測値と、当該観測値に対応付けられる遅延時間を示す情報とを関連付けて出力する出力手段をさらに含む。この局面によれば、制御装置以外の他の装置において観測値を解析するような場合であっても、観測値が実際に現れた時刻を正確に把握できる。
好ましくは、データベースは制御装置に組込まれている。この局面によれば、制御装置からデータベースへのデータ書込みをより高速に行うことができる。
本発明の別の局面に従えば、制御対象についての制御演算を実行する制御装置で実行される制御プログラムが提供される。制御装置は、データ伝送路を介して1または複数の機能ユニットと制御装置とを電気的に接続されている、制御プログラムは、制御装置に、機能ユニットを介して収集される観測値をデータベースに書込むステップと、機能ユニットに観測値を示す信号が入力されてから当該観測値を示すデータが制御装置で利用可能になるまでに要する遅延時間を取得するとともに、取得した遅延時間を示す情報を格納するステップとを実行させる。
この局面によれば、機能ユニットに観測値を示す信号が入力されてから当該観測値を示すデータが制御装置で利用可能になるまでには、遅延時間が存在しており、この遅延時間分だけ遅延した時刻に対応付けて観測値がデータベースに書込まれたとしても、遅延時間を示す情報を取得および格納しておくことで、事後的な解析処理などを高い精度で実施できる。
本発明のさらに別の局面に従う制御システムは、制御対象についての制御演算を実行する制御装置と、制御装置とデータ伝送路を介して電気的に接続された1または複数の機能ユニットとを含む。制御装置は、機能ユニットを介して収集される観測値をデータベースに書込む書込手段と、機能ユニットに観測値を示す信号が入力されてから当該観測値を示すデータが制御装置で利用可能になるまでに要する遅延時間を取得するとともに、取得した遅延時間を示す情報を格納する遅延時間取得手段とを含む。
この局面によれば、機能ユニットに観測値を示す信号が入力されてから当該観測値を示すデータが制御装置で利用可能になるまでには、遅延時間が存在しており、この遅延時間分だけ遅延した時刻に対応付けて観測値がデータベースに書込まれたとしても、遅延時間を示す情報を取得および格納しておくことで、事後的な解析処理などを高い精度で実施できる。
本発明によれば、制御対象から収集される観測値が実際に現れた時刻を正確に把握できる仕組みを提供できる。
本実施の形態に係る制御システムの構成例を示す模式図である。 本実施の形態に係る制御システムを構成するPLCのハードウェア構成例を示すブロック図である。 本実施の形態に係る制御システムを構成する機能ユニットのハードウェア構成例を示すブロック図である。 本実施の形態に係る制御システムを構成するカプラユニットのハードウェア構成例を示すブロック図である。 本実施の形態に係る制御システムを構成するサポート装置のハードウェア構成例を示すブロック図である。 本実施の形態に係る制御システムにおけるデータ伝送に要する時間を示すタイムチャートである。 本実施の形態に係る制御システムにおけるデータ格納時およびデータ利用時の処理を説明する模式図である。 本実施の形態に係る制御システムを構成するCPUユニットおよびサポート装置のソフトウェア構成例を示すブロック図である。 本実施の形態に係る制御システムにおける遅延時間補正の全体処理を説明するための図である。 本実施の形態に係る制御システムにおいて利用されるデータ管理情報の構成例を示すテーブルである。 本実施の形態に係る制御システムにおける遅延時間補正の実装例を示す模式図である。 本実施の形態に係る制御システムにおける遅延時間補正に係る処理手順を示すフローチャートである。 本実施の形態に係る制御システムの機能ユニットが一般的な入力処理を実行する場合のタイムチャートの一例である。 本実施の形態に係る制御システムの機能ユニットがオーバサンプリングでの入力処理を実行する場合のタイムチャートの一例である。 本実施の形態に係る制御システムの通信マスターが提供する同期管理機能を説明するための図である。 本実施の形態に係る遅延時間補正による時系列データの利用形態の一例を説明するための図である。
本発明の実施の形態について、図面を参照しながら詳細に説明する。なお、図中の同一または相当部分については、同一符号を付してその説明は繰返さない。
<A.制御システムの全体構成例>
まず、本実施の形態に係る制御システム1の全体構成例について説明する。図1は、本実施の形態に係る制御システム1の構成例を示す模式図である。
図1を参照して、一例として、制御システム1は、制御対象を制御するPLC(プログラマブルコントローラ)2と、PLC2とフィールドバスを介して接続されるリモートIO装置3A,3B,3C,3D(以下、「リモートIO装置3」とも総称する。)とを含む。
一般的に「フィールドバス」は、「フィールドネットワーク」とも称されるが、説明の簡素化のため、以下の説明においては、「フィールドバス」と総称する。すなわち、本明細書の「フィールドバス」は、「フィールドバス」に加えて「フィールドネットワーク」を含み得る。
PLC2は、さらに上位ネットワーク8に接続されていてもよい。上位ネットワーク8には、他のPLCが接続されていてもよいし、ゲートウェイやデータベースサーバといった任意の情報処理装置が接続されていてもよい。
図1に示す構成例においては、リモートIO装置3A,3B,3Cは、フィールドバス4を介してPLC2と接続されている。リモートIO装置3Aは別のフィールドバス6を提供しており、フィールドバス6を介して、リモートIO装置3AとリモートIO装置3Dとが接続されている。フィールドバス6は、リモートIO装置3Aに装着されたカプラユニット160によって管理される。PLC2は、フィールドバス4およびフィールドバス6を介してリモートIO装置3Dへアクセス可能になっている。
フィールドバス5,6としては、典型的には、ネットワーク内のノード間のデータ到着時間が保証されるプロトコルが採用される。このようなノード間のデータ到着時間が保証されるプロトコルとしては、例えば、EtherCAT(登録商標)などを採用できる。あるいは、EtherNet/IP(登録商標)、DeviceNet(登録商標)、CompoNet(登録商標)などを採用してもよい。なお、フィールドバス5およびフィールドバス6は、互いに同一のプロトコルを採用する必要はなく、それぞれの装置やユニットに適したプロトコルを採用すればよい。
典型的には、PLC2は、CPUユニット100と、CPUユニット100に装着される1または複数の機能ユニット150とから構成される。CPUユニット100は、制御対象についての制御演算を実行する制御装置に相当する。CPUユニット100単体を「制御装置」と称することもあるし、CPUユニット100および1または複数の機能ユニット150の全体を「制御装置」と称することもある。
また、リモートIO装置3は、通信機能を有するカプラユニット160と、カプラユニット160に装着される1または複数の機能ユニット150とから構成される。CPUユニット100と機能ユニット150との間、および、カプラユニット160と機能ユニット150との間は、ローカルバスと称されるデータ伝送路を介して電気的に接続されている。
本明細書において、「機能ユニット」は、設備や機械などの制御対象との間で各種の信号を遣り取りするための装置を包含する概念を意味する。機能ユニット150は、例えば、制御対象からのデジタル信号を受取るDI(Digital Input)機能、制御対象に対してデジタル信号を出力するDO(Digital Output)機能、制御対象からのアナログ信号を受取るAI(Analog Input)機能、制御対象に対してアナログ信号を出力するAO(Analog Output)機能のうち1または複数の機能を有している。あるいは、機能ユニット150としては、PID(Proportional Integral Derivative)制御やモーション制御といった特殊機能を実装したものを含んでいてもよい。
上述したように、CPUユニット100と機能ユニット150との間は、フィールドバスおよび/またはローカルバスといったデータ伝送路を介して電気的に接続されている。
本実施の形態において、制御装置の一例であるCPUユニット100は、機能ユニット150を介して収集される観測値を格納するデータベースを有している。以下では、CPUユニット100に内蔵されているという意味において、当該データベースを「組込データベース180」と称する。本実施の形態においては、一例として、データベースがCPUユニット100に組込まれている。但し、本発明の本質はデータベースそのものではなく、CPUユニット100とは別の装置にデータベース(すなわち、外付データベース)を配置してもよいし、組込データベースと外付データベースとを組合せて利用するようにしてもよい。以下の説明においては、「データベース」を「DB」とも記す。
本明細書において、「観測値」は、CPUユニット100での制御演算において利用可能な値(実値)を総称する概念であり、典型的には、制御対象から取得されて制御演算に用いられる入力値(デジタル値またはアナログ値)、取得された入力値に基づいて制御演算によって決定された制御対象に対する出力値あるいは指令値(デジタル値またはアナログ値)、制御演算の過程において算出される演算値(デジタル値またはアナログ値)などを含み得る。すなわち、「観測値」は、CPUユニット100においてデータとして格納できる、または、CPUユニット100からデータとして外部出力できる任意の値を包含する概念を有する。
典型的には、組込データベース180には、1または複数の観測値がレコードの形で格納される。
<B.各装置のハードウェア構成例>
次に、本実施の形態に係る制御システム1を構成する各装置のハードウェア構成例について説明する。
(b1:PLC)
図2は、本実施の形態に係る制御システム1を構成するPLC2のハードウェア構成例を示すブロック図である。図2を参照して、PLC2は、CPUユニット100と、1または複数の機能ユニット150とを含む。
CPUユニット100は、プロセッサ102と、チップセット104と、主記憶装置106と、二次記憶装置108と、ネットワークコントローラ110と、USB(Universal Serial Bus)コントローラ112と、メモリカードインターフェイス114と、ローカルバスコントローラ118と、フィールドバスコントローラ120と、カウンタ126と、RTC(Real Time Clock)128とを含む。
プロセッサ102は、制御演算などを実行する演算処理部に相当し、CPU、MPU、GPUなどで構成される。具体的には、プロセッサ102は、二次記憶装置108に格納された各種プログラムを読出して、主記憶装置106に展開して実行することで、制御対象に応じた制御、および、後述するような各種処理を実現する。二次記憶装置108は、例えば、HDD(Hard Disk Drive)やSSD(Solid State Drive)などの不揮発性記憶装置などで構成される。主記憶装置106は、DRAM(Dynamic Random Access Memory)やSRAM(Static Random Access Memory)などの揮発性記憶装置などで構成される。
チップセット104は、プロセッサ102と各デバイスを制御することで、CPUユニット100全体としての処理を実現する。
二次記憶装置108には、基本的な機能を実現するためのシステムプログラムに加えて、設備や機械などの制御対象に応じて作成されるユーザプログラムが格納される。さらに、二次記憶装置108を用いて、組込データベース180(図1参照)が構成されてもよい。典型的には、組込データベース180は、CPUユニット100のプロセッサ102が、二次記憶装置108に格納されているシステムプログラムを読出して主記憶装置106に展開して実行することで実現される。
ネットワークコントローラ110は、上位ネットワーク8を介して、ゲートウェイやデータベースサーバといった任意の情報処理装置との間でデータを遣り取りする。USBコントローラ112は、USB接続を介して、サポート装置200との間でデータを遣り取りする。
メモリカードインターフェイス114は、メモリカード116を着脱可能に構成されており、メモリカード116に対してデータを書込み、メモリカード116から各種データ(ユーザプログラムやトレースデータなど)を読出すことが可能になっている。メモリカード116を用いて、組込データベース180(図1参照)が構成されてもよい。
カウンタ126は、CPUユニット100で実行される各種プログラムの実行タイミングを管理するための時刻基準として用いられる。カウンタ126は、典型的には、所定周期毎にカウンタ値をインクリメントまたはデクリメントする。カウンタ126として、プロセッサ102を駆動するシステムバス上に配置された、高精度イベントタイマー(HPET:High Precision Event Timer)などを用いて実装してもよいし、あるいは、ASIC(Application Specific Integrated Circuit)やFPGA(Field-Programmable Gate Array)などの専用回路を用いて実装してもよい。
RTC128は、計時機能を有する一種のカウンタであり、現在時刻をプロセッサ102などへ提供する。
ローカルバスコントローラ118は、データ伝送路を介して1または複数の機能ユニット150とCPUユニット100とを電気的に接続するための通信インターフェイスに相当する。より具体的には、ローカルバスコントローラ118は、ローカルバス12を介して、CPUユニット100に装着される1または複数の機能ユニット150との間でデータを遣り取りする。ローカルバスコントローラ118は、ローカルバス12を介して接続される機能ユニット150との間でタイミングを管理するための時刻基準として用いられるカウンタ119を有している。同様に、機能ユニット150の各々も、ローカルバスコントローラ118および他の機能ユニット150との間でタイミングを管理するための時刻基準として用いられるカウンタ151を有している。カウンタ119およびカウンタ151については、上述のカウンタ126と同様の構成を採用できる。
ローカルバスコントローラ118は、ローカルバス12を介した定周期通信を行うための通信マスターとして機能し、ローカルバス12に接続されている機能ユニット150(通信スレーブに相当)の各々が有するカウンタが示すカウンタ値とカウンタ119が示すカウンタ値との差分を逐次監視して、必要に応じて、カウンタ値にずれが発生しているデバイスに対して補正を指示するための時刻同期信号を出力する。
このように、通信インターフェイスに相当するローカルバスコントローラ118および機能ユニット150は、互いに時刻同期されたカウンタをそれぞれ有している。そして、ローカルバスコントローラ118は、機能ユニット150のカウンタが示すカウンタ値をカウンタ119が示すカウンタ値と一致させるための指令を機能ユニット150へ与える同期管理機能を有している。
フィールドバスコントローラ120は、データ伝送路を介して1または複数の機能ユニット150とCPUユニット100とを電気的に接続するための通信インターフェイスに相当する。より具体的には、フィールドバスコントローラ120は、フィールドバス4を介して、カプラユニット160およびカプラユニット160に接続される機能ユニット150などのデバイスとの間でデータを遣り取りする。フィールドバスコントローラ120は、フィールドバス4を介して接続されるデバイス(カプラユニット160など)との間でタイミングを管理するための時刻基準として用いられるカウンタ121を有している。同様に、デバイス(カプラユニット160およびカプラユニット160に接続される機能ユニット150など)の各々も、フィールドバスコントローラ120との間でタイミングを管理するための時刻基準として用いられるカウンタ161およびカウンタ151を有している。カウンタ121、カウンタ161、カウンタ151の間では、互いに時刻同期が維持されている。カウンタ121ならびにカウンタ161およびカウンタ151については、上述のカウンタ126と同様の構成を採用できる。
フィールドバスコントローラ120は、フィールドバス4を介した定周期通信を行うための通信マスターとして機能し、フィールドバス4に接続されている各カプラユニット160(通信スレーブに相当)が有するカウンタ161が示すカウンタ値とカウンタ121が示すカウンタ値との差分を逐次監視して、必要に応じて、カウンタ値にずれが発生しているカプラユニット160に対して補正を指示するための時刻同期信号を出力する。このように、フィールドバスコントローラ120は、カプラユニット160のカウンタ161が示すカウンタ値をカウンタ121が示すカウンタ値と一致させるための指令をカプラユニット160へ与える同期管理機能を有している。
さらに、カプラユニット160のカウンタ161は、カプラユニット160に装着される1または複数の機能ユニット150のカウンタ151と同期するように管理される。その結果、通信インターフェイスに相当するフィールドバスコントローラ120、カプラユニット160および機能ユニット150は、互いに時刻同期されたカウンタをそれぞれ有している。
図2には、プロセッサ102がプログラムを実行することで必要な機能が提供される構成例を示したが、これらの提供される機能の一部または全部を、専用のハードウェア回路(例えば、ASICまたはFPGAなど)を用いて実装してもよい。あるいは、CPUユニット100の主要部を、汎用的なアーキテクチャに従うハードウェア(例えば、汎用パソコンをベースとした産業用パソコン)を用いて実現してもよい。この場合には、仮想化技術を用いて、用途の異なる複数のOS(Operating System)を並列的に実行させるとともに、各OS上で必要なアプリケーションを実行させるようにしてもよい。
さらに、CPUユニット100に表示装置やサポート装置200などの機能を統合した構成を採用してもよい。
(b2:機能ユニット)
図3は、本実施の形態に係る制御システム1を構成する機能ユニット150のハードウェア構成例を示すブロック図である。図3を参照して、機能ユニット150は、ローカルバスコントローラ152と、演算処理部に相当する主コントローラ154と、機能モジュール156とを含む。
ローカルバスコントローラ152は、典型的には、ASICやFPGAなどの専用回路を用いて実装され、ローカルバス12を介して、CPUユニット100との間でデータを遣り取りする。なお、機能ユニット150がカプラユニット160に装着される場合には、ローカルバスコントローラ152は、ローカルバス14を介して、カプラユニット160との間でデータを遣り取りする(後述の図4参照)。
ローカルバスコントローラ152は、ローカルバス12を介したデータ通信におけるタイミングを管理するための時刻基準として用いられるカウンタ153を有している。ローカルバスコントローラ152は、通信マスターからの指令に従ってデータの送出タイミングまたは受信タイミングを決定する通信スレーブとして機能する。
主コントローラ154は、機能ユニット150での処理を統括する演算処理部に相当し、機能モジュール156に対して計測タイミングなどの指令を与えるとともに、機能モジュール156からの計測値を、ローカルバスコントローラ152を介して送出する。
主コントローラ154は、典型的には、ASICやFPGAといった専用回路を用いて実現されるが、ソフトウェア実装で実現してもよい。ソフトウェア実装を採用する場合には、主コントローラ154は、主として、プロセッサ、主記憶装置、二次記憶装置などで構成され、プロセッサが二次記憶装置に格納されたシステムプログラム(ファームウェア)などを読出して、主記憶装置に展開して実行することで、必要な処理を実現する。
機能モジュール156は、機能ユニット150の機能を提供するコアであり、例えば、DI機能またはDO機能を実現するためのダイオードやトランジスタなどからなる論理回路を含む。あるいは、機能モジュール156は、AI機能またはAO機能を実現するためのAD(Analog Digital)変換器やDA(Digital Analog)変換器などを含む。さらに、機能モジュール156は、PID制御やモーション制御といった特殊機能を実現するためのプロセッサなどを含んでいてもよい。機能モジュール156の部分については、機能ユニット150に割り当てられた機能に応じて任意の構成が採用されてもよい。
(b3:カプラユニット)
図4は、本実施の形態に係る制御システム1を構成するカプラユニット160のハードウェア構成例を示すブロック図である。図4を参照して、カプラユニット160は、フィールドバス4に接続するためのインターフェイスに加えて、独自のローカルバス14を実現するためのインターフェイスを有している。
より具体的には、カプラユニット160は、フィールドバスコントローラ162と、主コントローラ164と、ローカルバスコントローラ166とを含む。
フィールドバスコントローラ162は、典型的には、ASICやFPGAなどの専用回路を用いて実装され、フィールドバス4を介して、CPUユニット100との間でデータを遣り取りする。フィールドバスコントローラ162は、フィールドバス4を介したデータ通信におけるタイミングを管理するための時刻基準として用いられるカウンタ161を有している。フィールドバスコントローラ162は、通信マスターからの指令に従ってデータの送出タイミングまたは受信タイミングを決定する通信スレーブとして機能する。
主コントローラ164は、カプラユニット160での処理を統括する演算処理部に相当し、主として、フィールドバス4とローカルバス14との間でのデータの遣り取りを制御する。
主コントローラ164は、典型的には、ASICやFPGAといった専用回路を用いて実現されるが、ソフトウェア実装で実現してもよい。ソフトウェア実装を採用する場合には、主コントローラ164は、主として、プロセッサ、主記憶装置、二次記憶装置などで構成され、プロセッサが二次記憶装置に格納されたシステムプログラム(ファームウェア)などを読出して、主記憶装置に展開して実行することで、必要な処理を実現する。
ローカルバスコントローラ166は、ローカルバス14を介して、1または複数の機能ユニット150との間でデータを遣り取りする。ローカルバスコントローラ166は、ローカルバス14を介して接続される機能ユニット150との間でタイミングを管理するための時刻基準として用いられるカウンタ167を有している。ローカルバスコントローラ118は、ローカルバス14を介した定周期通信を行うための通信マスターとして機能し、ローカルバス14に接続されている機能ユニット150(通信スレーブに相当)が有するカウンタが示すカウンタ値とカウンタ167が示すカウンタ値との差分を逐次監視して、必要に応じて、カウンタ値にずれが発生しているデバイスに対して補正を指示するための時刻同期信号を出力する。このように、ローカルバスコントローラ166は、機能ユニット150のカウンタが示すカウンタ値をカウンタ167が示すカウンタ値と一致させるための指令を機能ユニット150へ与える同期管理機能を有している。
(b4:サポート装置)
図5は、本実施の形態に係る制御システム1を構成するサポート装置200のハードウェア構成例を示すブロック図である。サポート装置200は、CPUユニット100のカプラユニット160が管理している各種変数値や各種設定値などを確認する機能、CPUユニット100で実行されるプログラムを開発する機能およびデバックする機能、CPUユニット100の組込データベース180に格納されたデータを利用する機能(例えば、データマイニング機能)などを提供する。
サポート装置200は、典型的には、汎用的なアーキクテチャを有するパーソナルコンピュータ上で、サポートプログラムが実行されることで実現される。より具体的には、図5を参照して、サポート装置200は、プロセッサ202と、ディスプレイ204と、主記憶装置206と、二次記憶装置208と、USBコントローラ212と、入力装置214とを含む。これらのコンポーネントは内部バス210を介して接続されている。
プロセッサ202は、CPU、MPU、GPUなどで構成され、二次記憶装置208に格納されたOS216およびサポートプログラム218を含む各種プログラムを読出して、主記憶装置206して実行することで、上述したような各種機能を実現する。二次記憶装置208は、例えば、HDDやSSDなどの不揮発性記憶装置などで構成される。主記憶装置206は、DRAMやSRAMなどの揮発性記憶装置などで構成される。
ディスプレイ204は、プロセッサ202などによる演算結果を表示するデバイスであり、例えば、LCD(Liquid Crystal Display)などで構成される。
USBコントローラ212は、USB接続を介して、CPUユニット100との間でデータを遣り取りする。
入力装置214は、ユーザの操作を受付けデバイスであり、例えば、キーボードやメモリなどで構成される。
<C.処理概要>
次に、本実施の形態に係る制御システム1における処理の概要について説明する。
図6は、本実施の形態に係る制御システム1におけるデータ伝送に要する時間を示すタイムチャートである。図6には、CPUユニット100にローカルバスを介して接続された機能ユニット150−1、および、CPUユニット100にフィールドバスを介して接続された機能ユニット150−2のそれぞれに入力された入力信号を示すデータが伝送される例を示す。このとき、機能ユニット150−2は、カプラユニット160にローカルバスを介して接続されており、リモートIO装置3の一部を構成している。
図6を参照して、まず、ローカルバスを介して接続された機能ユニット150−1に入力された入力信号Aは、機能ユニット150−1の機能モジュール156においてAD変換などの入力処理402によりデジタルデータに変換され、ローカルバスコントローラ152への伝送処理404が実施される。そして、ローカルバスコントローラ152においてエンコードなどの伝送前処理406が実施された後、CPUユニット100のローカルバスコントローラ118への伝送処理408が実施される。ローカルバスコントローラ118では、受信したデータに対するデコードなどの受信処理410が実施された後、組込データベース180への格納処理412が実施される。
このような一連のデータ伝送によって、機能ユニット150−1に入力信号Aが入力されてから、組込データベース180への入力信号Aを示すデータの格納が完了するまでには、遅延時間Δ1が生じる。
また、フィールドバスを介して接続された機能ユニット150−2に入力された入力信号Bは、機能ユニット150−2の機能モジュール156においてAD変換などの入力処理422によりデジタルデータに変換され、ローカルバスコントローラ152への伝送処理424が実施される。そして、ローカルバスコントローラ152においてエンコードなどの伝送前処理426が実施された後、カプラユニット160のローカルバスコントローラ164への伝送処理428が実施される。ローカルバスコントローラ164では、受信したデータに対するデコードなどの受信処理430が実施された後、フィールドバスコントローラ162への伝送処理432が実施される。
そして、フィールドバスコントローラ162においてエンコードなどの伝送前処理434が実施された後、CPUユニット100のフィールドバスコントローラ120への伝送処理436が実施される。フィールドバスコントローラ120では、受信したデータに対するデコードなどの受信処理438が実施された後、組込データベース180への格納処理440が実施される。
このような一連のデータ伝送によって、機能ユニット150−2に入力信号Bが入力されてから、組込データベース180への入力信号Bを示すデータの格納が完了するまでには、遅延時間Δ2が生じる。
図6に示すタイムチャートにおいては、入力信号Aおよび入力信号Bは、機能ユニット150−1および機能ユニット150−2へそれぞれ同じタイミングで入力されているが、それぞれの信号を示すデータがCPUユニット100の組込データベース180に格納されるタイミングは異なっている。すなわち、遅延時間Δ1および遅延時間Δ2が存在し、かつ、これらの遅延時間は同一ではないので、制御対象において実際に何らかの現象が生じたタイミングと実際の組込データベース180に対応するデータが格納されるタイミングとは一致しない。
一方で、これらの組込データベース180に格納されるデータを事後的に利用するにあたっては、実際に現象が生じた時刻を可能な限り正確に再現することが重要である。そこで、本実施の形態に係るCPUユニット100においては、上述したような遅延時間を補正するためのデータ管理情報を収集された観測値とともに格納する。そして、データ管理情報を用いて観測値の時刻を補正することで、対応する現象が実際に現れたタイミングを再現する。
本明細書において、「遅延時間」は、機能ユニット150に観測値を示す信号が入力されてから当該観測値を示すデータがCPUユニット100で利用可能になるまでに要する時間を意味する。
図7は、本実施の形態に係る制御システム1におけるデータ格納時およびデータ利用時の処理を説明する模式図である。図7を参照して、組込データベース180へのデータ格納時には、計測タイミングと観測値との組を計測タイミングの順に並べた時系列データ300を生成する。
本明細書において、「時系列データ」は、任意の対象についてのデータ(観測値)の時間的な変化を連続的(あるいは、一定間隔をおいて不連続)に取得することで得られる一連の値を意味する。
時系列データ300と対応付けて、時系列データ300に含まれる観測値を取得した際の遅延時間などの情報を含むデータ管理情報350が生成される。データ管理情報350は、制御システム1のネットワーク構成やハードウェア構成によって予め定まる遅延(以下、「静的遅延」とも称す。)を補正するための静的遅延補正用データ352と、ネットワークの同期ゆらぎや外乱要因などによって変化する遅延(以下、「動的遅延」とも称す。)を補正するための動的遅延補正用データ354とを含む。
静的遅延を示す遅延時間は、時間的に変動しない遅延時間に相当し、動的遅延を示す遅延時間は、時間的に変動する遅延時間に相当する。
一方、データ利用時には、組込データベース180に格納された時系列データ300に対して、データ管理情報350を用いた遅延時間補正を行うことで得られる、補正済時系列データ310が生成される。補正済時系列データ310を用いて各種解析などが行われる。
図7には、説明の便宜上、単一の観測値を含む時系列データ300のみを示すが、実際には、単一の観測値を含む時系列データ300の複数、または、複数の観測値を含む時系列データ300をまとめて解析することが一般的である。このような場合であっても、それぞれの観測値が実際に現れたタイミングを正確に再現できるので、複数の観測値を共通の時間軸で解析することができる。
<D.制御システムのソフトウェア構成例>
次に、本実施の形態に係る制御システム1の要部を実現するソフトウェア構成例について説明する。
図8は、本実施の形態に係る制御システム1を構成するCPUユニット100およびサポート装置200のソフトウェア構成例を示すブロック図である。図8には、組込データベース180に格納されたデータの利用例として、観測値の時系列データまたは観測値から算出される特徴量の時系列データに基づいて機械学習を行うとともに、当該機械学習により得られた学習結果を利用して、異常の有無を検知する処理が可能な構成を示す。但し、この機械学習に係る機能については、本発明の本質ではなく、オプショナルな構成である。
図8を参照して、CPUユニット100は、PLCエンジン130と、機械学習エンジン140と、組込データベース180と、組込データベース管理サービス190とを含む。
PLCエンジン130は、典型的には、CPUユニット100のプロセッサ102が、二次記憶装置108に格納されているシステムプログラムを読出して主記憶装置106に展開して実行することで各種プログラムの実行環境が提供され、当該実行環境下において、各種プログラムを実行することができる。
より具体的には、PLCエンジン130は、スケジューラ134と、変数管理プログラム136と、制御プログラム138とを含む。
スケジューラ134は、CPUユニット100で実行されるプロセスやタスクなどに対してリソース割当てや実行タイミングなどを管理する。
変数管理プログラム136は、PLCエンジン130(CPUユニット100)で利用可能な値を変数の形で管理する。より具体的には、変数管理プログラム136は、例えば、システム変数1362と、ユーザ/デバイス変数1364と、異常検知パラメータ1366とを管理する。システム変数1362は、CPUユニット100および接続される各デバイスの状態などを示す。ユーザ/デバイス変数1364は、CPUユニット100で実行されるプログラムにより生成または更新される値、ならびに、CPUユニット100とローカルバスまたはフィールドバスを介して接続される各種デバイスが保持する値を示す。異常検知パラメータ1366は、機械学習エンジン140において異常であると検知するためのしきい値などを示す。
スケジューラ134および変数管理プログラム136については、システムプログラムの一部として実装されてもよい。この場合には、これらのプログラムが提供するそれぞれの機能を単一のシステムプログラムが提供するようにしてもよい。
制御プログラム138は、典型的には、ユーザプログラム1381と、組込データベース読出しプログラム1382と、組込データベース書込みプログラム1383と、機械学習エンジンインターフェイス1384と、特徴量生成プログラム1388とにより構成される。
ユーザプログラム1381は、設備や機械などの制御対象に応じて作成される、シーケンス演算やモーション演算などの命令を含む。
組込データベース読出しプログラム1382は、典型的には、ユーザプログラム1381に規定された命令によって呼び出され、組込データベース180から指定されたデータを読出す。組込データベース180から何らかのデータが読出される場合、必要に応じて、読出されたデータに対して、後述するような遅延時間補正が実施されてもよい。この遅延時間補正には、予め取得したデータ管理情報350が利用されてもよい。
組込データベース書込みプログラム1383は、典型的には、ユーザプログラム1381に規定された命令によって呼び出され、組込データベース180に対して指定されたデータを書込む。典型的には、組込データベース書込みプログラム1383は、機能ユニット150を介して収集される観測値を組込データベース180に書込む。組込データベース180に対して何らかのデータが書込まれる場合、必要に応じて、対応するデータ管理情報350が生成および格納されてもよい。
機械学習エンジンインターフェイス1384は、ユーザプログラム1381に規定された命令に従って、機械学習エンジン140での処理実行を指示する。より具体的には、機械学習エンジンインターフェイス1384は、学習要求プログラム1385と、監視要求プログラム1386と、シリアライズプログラム1387とを含む。
学習要求プログラム1385は、機械学習エンジン140に対して、指定された観測値または観測値から算出される特徴量を学習結果として書込むように要求する。
監視要求プログラム1386は、機械学習エンジン140に対して、指定された観測値または観測値から算出される特徴量を送信して、異常の有無を判断するように要求する。
シリアライズプログラム1387は、組込データベース180に対して書込まれるデータに対してシリアライズ処理を行う。または、シリアライズプログラム1387は、組込データベース180から読出されるデータに対してデシリアライズ処理を行う。シリアライズ処理は、対象のデータを格納可能なバイト列に変換する処理に相当し、デシリアライズ処理は、シリアライズ処理の逆変換処理に相当する。なお、組込データベース180へのアクセス速度およびアクセス容量などに応じて、必ずしもシリアライズ処理およびデシリアライズ処理を行う必要はない。すなわち、シリアライズプログラム1387はオプショナルな構成である。
特徴量生成プログラム1388は、典型的には、ユーザプログラム1381に規定された命令によって呼び出され、指定された観測値に対して予め定められた演算処理を実施することで、特徴量を算出する。
機械学習エンジン140は、上述したような機械学習の機能を提供する。典型的には、機械学習エンジン140は、CPUユニット100のプロセッサ102が、二次記憶装置108に格納されているシステムプログラムを読出して主記憶装置106に展開して実行することで実現される。但し、PLCエンジン130および機械学習エンジン140は、互いに別プロセスとしてプロセッサ102で実行されるようにしてもよい。このような別プロセスとすることで、PLCエンジン130から機械学習エンジン140の実行開始などのタイミングを制御できる。
より具体的には、機械学習エンジン140は、学習機能142および異常検知機能144を含む。学習機能142は、PLCエンジン130から与えられた観測値または観測値から算出される特徴量と何らかのラベルとを関連付けて、学習結果として格納する。異常検知機能144は、PLCエンジン130から与えられた観測値または観測値から算出される特徴量を受けると、予め用意されている学習結果と比較し、学習結果からの乖離の度合いなどを示す評価値が異常検知パラメータ1366として設定されているしきい値を超えるか否かに基づいて、異常の有無を検知する。異常検知機能144は、何らかの異常を検知すると、その検知した異常の内容を含むイベントログ146を出力するようにしてもよい。
組込データベース180は、典型的には、主記憶装置106または二次記憶装置108(図2参照)に配置されたデータを格納するための記憶領域と、当該記憶領域へのデータ追加、更新、削除、検索といった処理を提供するためのデータベース管理プロセスとにより実現される。組込データベース180は、組込データベース書込みプログラム1383により書込まれる時系列データを格納する。
組込データベース180を構成するデータベース管理プロセスは、外部からの要求(クエリ)に応答して、指定されたデータを応答する。データベース管理プロセスは、典型的には、CPUユニット100のプロセッサ102が、二次記憶装置108に格納されているシステムプログラムを読出して主記憶装置106に展開して実行することで実現される。
組込データベース管理サービス190は、組込データベース180へのデータ書込みおよび組込データベース180からのデータ読出しを管理する。組込データベース管理サービス190は、遅延時間取得モジュール192と、時刻決定モジュール194と、データ出力モジュール196とを含む。
遅延時間取得モジュール192は、後述するような処理によって、データ管理情報350を生成する。すなわち、遅延時間取得モジュール192は、観測値に係る遅延時間を取得するとともに、取得した遅延時間を示す情報(データ管理情報350)を格納する。上述したように、データ管理情報350は、静的遅延補正用データ352および動的遅延補正用データ354を含んでいてもよい。
時刻決定モジュール194は、遅延時間取得モジュール192により取得された遅延時間を示す情報(データ管理情報350)に基づいて、観測値を示す信号が現れた時刻を決定する。すなわち、時刻決定モジュール194は、対象の観測値が取得された入力信号が実際に機能ユニット150へ入力された時刻、あるいは、対象の観測値が取得された入力信号が実際に発現した時刻を算出する。
PLCエンジン130においては、観測値に時刻が対応付けられているので、時刻決定モジュール194は、組込データベース180に格納される時系列データに規定される時刻に対する遅延時間補正を行うことで、観測値を示す信号が現れた時刻を決定する。
遅延時間補正は、組込データベース180へのデータ書込み時に行ってもよいし、組込データベース180からデータを読出し時に行ってもよい。より具体的には、時刻決定モジュール194は、(1)PLCエンジン130から与えられたデータを組込データベース180へ書込む段階で遅延時間補正を行う、(2)PLCエンジン130から要求されたデータを組込データベース180から読出して応答する段階で遅延時間補正を行う、(3)組込データベース180から何らかのデータを読出して機械学習エンジン140などへ出力する段階で遅延時間補正を行う、のいずれかを実施するようにしてもよい。
データ出力モジュール196は、外部からの要求に応じて、組込データベース180から読出した時系列データと、当該読出した時系列データに対応するデータ管理情報350とを対応付けて出力する。すなわち、データ出力モジュール196は、組込データベース180に格納されている観測値と、当該観測値に対応付けられる遅延時間を示す情報(データ管理情報350)とを関連付けて出力する。なお、データ管理情報350に含まれる静的遅延補正用データ352および動的遅延補正用データ354の両方を対応付けて出力してもよいし、いずれか一方のみを出力するようにしてもよい。
一方、サポート装置200には、機械学習に向けられた各種機能が実装されていてもよい。例えば、本実施の形態に係るサポート装置200には、データマイニングツール260および機械学習パラメータ設定ツール270が実装されている。
データマイニングツール260は、組込データベース180に格納される観測値の時系列データから、制御対象に生じ得る何らかの異常を検知するのに適した特徴量や兆候などを探し出す機能を提供する。具体的には、データマイニングツール260は、組込データベースアクセス機能262と、データマイニング機能264と、可視化機能266とを含む。
組込データベースアクセス機能262は、CPUユニット100に対して、要求(クエリ)を送信することで、必要なデータを組込データベース180から取得する。
データマイニング機能264は、組込データベース180から取得したデータを解析することで、制御対象に発生し得る異常を検知するのに適した特徴量や異常検知手法を決定する。また、データマイニング機能264は、決定した特徴量や異常検知手法に応じたしきい値(異常検知パラメータ1366)などを決定することもできる。さらに、データマイニング機能264は、決定した特徴量および異常検知手法ならびに異常検知パラメータなどの妥当性などについても評価することができる。
可視化機能266は、データマイニング機能264に決定された内容を視覚的にユーザへ通知し、あるいは、解析結果や異常検知の精度などをグラフ化するような機能を有している。
機械学習パラメータ設定ツール270は、PLC変数アクセス機能272を有しており、データマイニング機能264により決定されたしきい値などをCPUユニット100の異常検知パラメータ1366へ反映する。
<E.遅延時間補正>
次に、本実施の形態に係る制御システム1における遅延時間補正について説明する。
(e1:遅延時間補正の全体処理)
本実施の形態に係る制御システム1においては、静的遅延として、機能ユニット起因遅延d1および基本通信遅延d2を想定し、動的遅延として、動的通信遅延d3を想定する。
機能ユニット起因遅延d1は、機能ユニット150への入力信号がデータとしてCPUユニット100またはカプラユニット160へ送出されるまでに要する遅延時間を意味する。すなわち、機能ユニット起因遅延d1は、機能ユニット150に設定される処理特性(例えば、サンプリング周期、フィルタ特性など)および機能ユニット150の機能(例えば、AI機能、DI機能の別)の少なくとも一方に依存して定まる遅延時間に相当する。
基本通信遅延d2は、機能ユニット150からCPUユニット100までデータが伝送されるのに要する遅延時間を意味する。すなわち、基本通信遅延d2は、機能ユニット150からCPUユニット100(プロセッサ102)までのデータ伝送路に依存して定まる遅延時間に相当する。より具体的には、基本通信遅延d2は、定周期通信の1通信周期分に相当する伝搬遅延時間と、ローカルバスまたはフィールドバスのケーブル長などに依存する伝搬遅延時間との合計に相当する。
このような基本通信遅延d2は、CPUユニット100から時刻同期信号をローカルバスまたはフィールドバスへ送出するとともに、その時刻同期信号が一巡してCPUユニット100に戻るまでに要する時間に基づいて算出できる。
なお、一般的に、ローカルバスについては、フィールドバスに比較して通信周期が十分に短く、かつ、伝送距離も短いので、基本通信遅延d2としては、フィールドバス上のデータ伝送のみを考慮するようにしてもよい。
機能ユニット起因遅延d1および基本通信遅延d2は、基本的には、収集される観測値毎に設定される。但し、同一の機能ユニット150が複数の入力信号を受付け可能になっており、それぞれの入力信号に対する入力処理の設定が同一であるような場合には、当該同一の機能ユニット150に入力される入力信号に対する観測値の間では、機能ユニット起因遅延d1および基本通信遅延d2を共通化できる。このような場合には、機能ユニット起因遅延d1および基本通信遅延d2は、機能ユニット150毎に設定されてもよい。
動的通信遅延d3は、通信マスターとして機能するローカルバスコントローラまたはフィールドバスコントローラの同期管理機能により逐次算出される。より具体的には、通信マスターは、自身のカウンタが示すカウンタ値と、接続されている通信スレーブのカウンタが示すカウンタ値との間のずれの程度を逐次監視しており、このずれが予め定められた値より大きくなると、時刻同期信号をローカルバスまたはフィールドバスへ送信して時刻を同期させる。動的通信遅延d3は、通信マスターのカウンタが示すカウンタ値と通信スレーブのカウンタが示すカウンタ値との間のずれの程度に相当する。
図9は、本実施の形態に係る制御システム1における遅延時間補正の全体処理を説明するための図である。図9には、一例として、カプラユニット160に装着される機能ユニット150へセンサからの信号が入力される場合を示す。
図9を参照して、いずれかの機能ユニット150に入力される入力信号(センサから出力される信号に相当)500は、機能ユニット起因遅延d1(=遅延時間α)だけ遅れて、カプラユニット160へ到着する。すなわち、カプラユニット160上の入力信号を示す時系列データ502においては、各観測値に対応付けられる時刻は、本来の時刻から遅延時間αだけ遅れている。
さらに、カプラユニット160からCPUユニット100へデータ伝送が行われる際には、基本通信遅延d2(=遅延時間β)および動的通信遅延d3(=遅延時間γ(t))が生じる。すなわち、CPUユニット100上の入力信号を示す時系列データ504においては、各観測値に対応付けられる時刻は、本来の時刻から、遅延時間βに加えて遅延時間γ(t)分だけさらに遅れている。ここで、動的通信遅延d3の度合いを示す遅延時間γ(t)は、時間とともに逐次変化するので、時間tの関数として定義することができる。
基本的には、CPUユニット100上で実行される制御演算においては、図9に示す時系列データ504が用いられる。また、時系列データ504が組込データベース180に格納される。本実施の形態に係る制御システム1においては、CPUユニット100上の時系列データ504の時刻に生じる遅延時間を補正することになる。
図9に示すように、静的遅延補正用データ352は、機能ユニット起因遅延d1の度合いを示す遅延時間αと、基本通信遅延d2の度合いを示す遅延時間βとの組合せを含む。この遅延時間αと遅延時間βとの組合せは、観測値(変数)毎または機能ユニット毎に定義されることになる。
図9に示すように、動的遅延補正用データ354は、動的通信遅延d3の度合いを示す遅延時間γ(t)は、時刻毎の値として定義される。動的遅延補正用データ354は、伝送経路の状態を反映するものであるので、ローカルバス毎またはフィールドバス毎に定義されてもよいし、通信スレーブ毎に定義されてもよい。
なお、図9においては、説明の便宜上、カプラユニット160と機能ユニット150とを接続するローカルバスにおける伝搬遅延時間は、無視できるとして説明したが、この伝搬遅延時間を基本通信遅延d2または動的通信遅延d3に含めるようにしてもよい。
上述の説明においては、機能ユニット150に起因する遅延として、静的遅延である機能ユニット起因遅延d1を想定する場合を例に説明したが、機能ユニット150での処理ゆらぎなどに起因する動的遅延をさらに考慮するようにしてもよい(図9に示す動的遅延d1’に相当)。このような動的遅延d1’については、例えば、機能ユニット150に、温度補償機能が付加された高精度な水晶発振器などを搭載して、その水晶発振器からのパルスなどに基づいてタイミングのずれなどを、機能ユニット150またはカプラユニット160などで逐次検出するようにしてもよい。
図9には、カプラユニット160に装着される機能ユニット150へセンサからの信号が入力される場合を示すが、CPUユニット100に装着される機能ユニット150へセンサからの信号が入力される場合には、CPUユニット100においては、図9に示す時系列データ504ではなく、時系列データ502が取得されることになる。
CPUユニット100においては、上述のような遅延を含む観測値が組込データベース180に格納される。すなわち、CPUユニット100のプロセッサ102(により実行される組込データベース書込みプログラム1383)は、観測値と当該観測値がCPUユニット100において利用可能になった時刻とを対応付けた、時系列データ504のようなデータを組込データベース180に書込む。
CPUユニット100上の時系列データ504に対する遅延時間補正として、まず、時刻決定モジュール194(図8)は、静的遅延補正用データ352を参照して、時系列データ504に格納される時刻から静的遅延を示す遅延時間αおよび遅延時間βを減じる。時系列データ504に格納される時刻は、CPUユニット100において各観測値に対応付けられる時刻であり、例えば、ある制御周期において受信された観測値であれば、当該受信された制御周期を代表する基準時刻を用いてもよい。
上述したような静的遅延の補正によって、静的遅延補正済データ506が生成される。用途によっては、静的遅延補正済データ506をそのまま利用することが可能である。そのため、静的遅延補正済データ506の状態で外部出力されてもよい。この場合、静的遅延補正済データ506に加えて、動的遅延補正用データ354が併せて出力されてもよい。
さらに、時刻決定モジュール194(図8)は、動的遅延補正用データ354を参照して、静的遅延補正済データ506の各時刻から対応する遅延時間γ(t)がそれぞれ減じる。このような動的遅延の補正によって、動的遅延補正済データ508が生成される。動的遅延補正済データ508は、対応する観測値が実際に現れた時刻を正確に反映した時系列データとなる。この動的遅延補正済データ508が外部出力されてもよい。
上述したように、時刻決定モジュール194(図8)は、組込データベース180から読出した観測値について、当該観測値に対応付けられた時刻を、遅延時間取得モジュール192(図8)により取得された遅延時間を示す情報(データ管理情報350)に基づいて補正することで、当該観測値を示す信号が現れた時刻を決定する。
図9に示す静的補正および動的補正は、時系列データ504の状態で組込データベース180に格納し、組込データベース180から読出された後に実施するようにしてもよい。あるいは、時系列データ504に対して静的補正または動的補正を行って静的遅延補正済データ506または動的遅延補正済データ508を生成した上で、組込データベース180に書込むようにしてもよい。静的遅延補正用データ352および動的遅延補正用データ354が用意されていれば、遅延時間補正はいずれの段階で実施するようにしてもよい。さらに、CPUユニット100で遅延時間補正を行うようにしてもよいし、サポート装置200などの外部装置で遅延時間補正を行うようにしてもよい。
また、説明の便宜上、静的補正および動的補正を分けて実施する例を示すが、静的補正および動的補正を同時に実施してもよい。
(e2:遅延時間補正用データ)
次に、本実施の形態に係る遅延時間補正を行うためのデータ管理情報350に含まれる静的遅延補正用データ352および動的遅延補正用データ354について説明する。
図10は、本実施の形態に係る制御システム1において利用されるデータ管理情報350の構成例を示すテーブルである。図10を参照して、データ管理情報350は、静的遅延補正用データ352および動的遅延補正用データ354の少なくとも一方を含む。
静的遅延補正用データ352は、(1)CPUユニット100が保持する基本通信遅延情報3521、(2)サポート装置200が保持するシステム構成情報3522、(3)サポート装置200が保持するスレーブ設定情報3523、(4)サポート装置200が保持するユーザプログラム1381、といった情報に基づいて生成される。
基本通信遅延情報3521は、図9に示す基本通信遅延d2に相当する遅延時間を含む。この遅延時間は、ローカルバスまたはフィールドバスのケーブル長などに依存する。基本通信遅延情報3521に含まれる遅延時間は、CPUユニット100の起動時などに計測されて取得される。
システム構成情報3522は、図9に示す基本通信遅延d2を算出するための情報を含む。より具体的には、システム構成情報3522は、ローカルバスまたはフィールドバスに接続されている機能ユニット150の数、種類、トポロジーなどの情報を含む。システム構成情報3522を参照することで、ローカルバスまたはフィールドバスに接続されている機能ユニット150(通信スレーブに相当)の数などに起因する遅延時間を決定することができる。
スレーブ設定情報3523は、図9に示す機能ユニット起因遅延d1を算出するための情報を含む。より具体的には、スレーブ設定情報3523は、CPUユニット100に装着されている機能ユニット150およびカプラユニット160に装着される機能ユニット150の各々についての設定値(例えば、サンプリング周期、フィルタ特性など)の情報を含む。スレーブ設定情報3523を参照することで、機能ユニット150にセンサなどからの信号が入力されてから、実際にデータとして出力されるまでの遅延時間を決定することができる。
ユーザプログラム1381は、図9に示す基本通信遅延d2を算出するために用いられてもよい。より具体的には、ユーザプログラム1381には、CPUユニット100で実行される命令群が記述されており、命令群はタスク単位に記述されている。各タスクについては、実行周期が予め定義されている。ユーザプログラム1381を解析することで、ユーザ変数などの更新周期を推定することができる。すなわち、各ユーザ変数に対する更新命令がいずれのタスクに存在するのかを解析するとともに、各タスクの実行周期を参照することで、各ユーザ変数の更新周期を決定できる。
なお、システム構成情報3522、スレーブ設定情報3523、ユーザプログラム1381については、CPUユニット100へ転送される場合もあり、このような場合には、サポート装置200ではなく、CPUユニット100が保持するこれらの情報を参照するようにしてもよい。
また、CPUユニット100が図9に示す基本通信遅延d2を実測できる場合には、必ずしも、システム構成情報3522およびユーザプログラム1381を参照しなくてもよい。但し、すべての機能ユニット150について基本通信遅延d2を実測できるとは限らないので、実測できない場合には、システム構成情報3522およびユーザプログラム1381などを参照して、基本通信遅延d2を算出あるいは推定してもよい。
一方、動的遅延補正用データ354は、リアルタイム通信遅延情報3541に基づいて生成される。動的遅延補正用データ354は、各時間帯における遅延時間の変化を含み、基本的には、機能ユニット150毎に規定されてもよい。
リアルタイム通信遅延情報3541は、各通信スレーブが基本通信遅延d2に対して現在どの程度遅延しているのかという情報を含む。通信マスター(上述したように、通信マスターとして機能する、ローカルバスコントローラおよびフィールドバスコントローラ)は、接続されている通信スレーブからの応答に基づいて、どの程度の遅延が発生しているのかを算出する。この算出される遅延時間がリアルタイム通信遅延情報3541に相当する。通信マスターは、算出される遅延時間に基づいて、各通信スレーブに対して時刻補正を行うための時刻同期信号を出力する。
動的遅延補正用データ354は、リアルタイム通信遅延情報3541に含まれる各時間帯における遅延時間を含む。リアルタイム通信遅延情報3541は、図9に示す動的通信遅延d3に相当する遅延時間を含む。リアルタイム通信遅延情報3541は、CPUユニット100(より具体的には、通信マスターとして機能するローカルバスコントローラまたはフィールドバスコントローラ)によって逐次更新される。
より具体的には、通信マスターは、I/Oリフレッシュの実行タイミングにて時間計測を開始し、当該I/Oリフレッシュに応じた各通信スレーブからの応答を受信したタイミングまでの時間を計測する。通信マスターは、この計測した時間から基本通信遅延d2を引くことで動的通信遅延d3を算出する。I/Oリフレッシュとは、各通信スレーブからの入力値、および、各通信スレーブへの出力値および指令値を更新する処理を意味する。このI/Oリフレッシュにおいて、通信マスターは、各通信スレーブに対して、I/Oリフレッシュに必要なフレームを送出し、各通信スレーブは、通信マスターからの通信スレーブが到着すると、当該フレームに含まれる出力値または指令値を読出した後に、予め収集している入力値を通信マスターへ応答する。
上述のI/Oリフレッシュの実行タイミングとは、I/Oリフレッシュに必要なフレームを通信マスターが送出するタイミングを意味し、各通信スレーブからの応答までの時間が、静的遅延および動的遅延を含む通信遅延に相当することになる。
(e3:遅延時間補正の実装例)
次に、本実施の形態に係る遅延時間補正を実現するための実装例について説明する。
図11は、本実施の形態に係る制御システム1における遅延時間補正の実装例を示す模式図である。図11を参照して、本実施の形態に係る遅延時間補正に関する構成として、CPUユニット100は、PLCエンジン130および組込データベース管理サービス190を含む。
PLCエンジン130は、システム変数1362およびユーザ/デバイス変数1364を管理している(図8など参照)。また、PLCエンジン130は、基本通信遅延情報3521およびリアルタイム通信遅延情報3541を生成および更新する。
組込データベース管理サービス190は、組込データベース180と連携して処理を実行する。組込データベース管理サービス190は、組込データベース180へのデータ書込みおよびデータ読出しなどを処理するタスクである。組込データベース管理サービス190は、典型的には、CPUユニット100のプロセッサ102が、二次記憶装置108に格納されているシステムプログラムを読出して主記憶装置106に展開して実行することで実現される。
図11に示す実装例においては、組込データベース管理サービス190は、システム状態値時系列データ182および制御変数値時系列データ184を組込データベース180に書込む。システム状態値時系列データ182は、システム変数1362に含まれる任意の変数値の時系列データを含み、制御変数値時系列データ184は、ユーザ/デバイス変数1364に含まれる任意の変数値の時系列データを含む。システム状態値時系列データ182および制御変数値時系列データ184が遅延時間補正の対象(補正対象データ)となる。
なお、システム状態値時系列データ182と制御変数値時系列データ184との間では、更新頻度が異なることが想定されているため、両時系列データをそれぞれ独立したデータファイルとして格納されている。但し、システム状態値時系列データ182および制御変数値時系列データ184を共通のデータファイルとして格納するようにしてもよい。
また、組込データベース管理サービス190(図8に示す遅延時間取得モジュール192)は、静的遅延補正用データ352および動的遅延補正用データ354を生成または更新する。静的遅延補正用データ352および動的遅延補正用データ354についても、組込データベース180に格納されてもよい。あるいは、静的遅延補正用データ352および動的遅延補正用データ354を二次記憶装置108またはメモリカード116(図2参照)に格納するようにしてもよい。
すなわち、システム状態値時系列データ182および制御変数値時系列データ184に対して事後的に遅延時間補正を行う場合には、静的遅延補正用データ352および動的遅延補正用データ354と、システム状態値時系列データ182および制御変数値時系列データ184とを任意の方法で対応付けて格納しておけばよい。
さらに、システム状態値時系列データ182および制御変数値時系列データ184に対して遅延時間補正を行った上で、組込データベース180に書込む方法を採用する場合には、静的遅延補正用データ352および動的遅延補正用データ354を事後的に利用しなくてもよいので、遅延時間補正後には廃棄するようにしてもよい。
また、サポート装置200は、ユーザによって設定または開発される、システム構成情報3522、スレーブ設定情報3523、ユーザプログラム1381を保持する。
図11に示す実装例においては、(1)サポート装置200からCPUユニット100へのプログラムダウンロード時、(2)CPUユニット100での制御演算中、(3)CPUユニット100の起動時、のそれぞれにおいて、データ更新またはデータ作成が実施される。
(1)サポート装置200からCPUユニット100へのプログラムダウンロード時において、サポート装置200が保持する情報を用いて、静的遅延補正用データ352が生成または更新されてもよい。
より具体的には、サポート装置200からCPUユニット100へ必要なデータが転送される際に、組込データベース管理サービス190は、システム構成情報3522およびスレーブ設定情報3523を参照して、機能ユニット起因遅延d1および基本通信遅延d2を算出して、静的遅延補正用データ352として保存する。すなわち、組込データベース管理サービス190は、システム構成情報3522およびスレーブ設定情報3523から遅延情報を取得する。
また、組込データベース管理サービス190は、ユーザプログラム1381を解析して、基本通信遅延d2を算出、または、基本通信遅延d2に対する補正量を算出してもよい。この算出結果についても、静的遅延補正用データ352に反映される。
(2)CPUユニット100での制御演算中において、システム状態値時系列データ182、制御変数値時系列データ184、動的遅延補正用データ354の値が逐次更新される。
より具体的には、組込データベース書込みプログラム1383(図8参照)などからの要求に応答して、組込データベース管理サービス190は、システム変数1362に含まれる指定された変数値を指定された書込み周期でシステム状態値時系列データ182に書込み、また、ユーザ/デバイス変数1364に含まれる指定された変数値を指定された書込み周期で制御変数値時系列データ184に書込む。
システム状態値時系列データ182および制御変数値時系列データ184への変数値の書込みは、制御演算の実行周期で高速に実施されてもよい。
また、組込データベース管理サービス190(図8に示す時刻決定モジュール194)は、通信マスターによって逐次計測されるリアルタイム通信遅延情報3541に基づいて、動的遅延補正用データ354を生成または更新する。動的遅延補正用データ354の更新は、予め定義された条件が成立した場合に実施するようにしてもよい。このような予め定義された条件は、状態定義テーブルとして記述されてもよい。
(3)CPUユニット100の起動時において、静的遅延補正用データ352の値が更新されてもよい。上述したように、CPUユニット100(より具体的には、通信マスターとして機能するローカルバスコントローラまたはフィールドバスコントローラ)は、起動時などに、時刻同期信号などを送出して、基本通信遅延d2に相当する遅延時間を計測する。この計測された遅延時間が基本通信遅延情報3521である。組込データベース管理サービス190は、基本通信遅延情報3521に基づいて、静的遅延補正用データ352の値を更新してもよい。
(e4:遅延時間補正の処理手順)
次に、本実施の形態に係る遅延時間補正に係る処理手順の一例について説明する。
図12は、本実施の形態に係る制御システム1における遅延時間補正に係る処理手順を示すフローチャートである。図12には、図11に示す実装例に対応させて、PLCエンジン130と、組込データベース管理サービス190と、サポート装置200との間の遣り取りの一例を示す。
図12を参照して、まず、CPUユニット100において制御対象に応じた制御演算を実行するための各種の設定およびユーザプログラムの開発が実施される。なお、図12に示すブロックのうち、破線で示すものは、基本的には、ユーザが実施する処理である。
具体的には、サポート装置200において、ユーザは、対象の制御システム1の構成に応じて、システム構成情報3522を作成し(ステップS100)、対象の制御システム1に含まれる機能ユニット150の数、種類、トポロジーなどに応じて、スレーブ設定情報3523を作成する(ステップS102)。また、ユーザは、ユーザ/デバイス変数1364などの状態値を定義する(ステップS104)。以上のような一連の設定処理が完了すると、ユーザは、ユーザプログラム1381を作成する(ステップS106)。
ユーザによって作成されたユーザプログラム1381は、システム構成情報3522およびスレーブ設定情報3523などとともに、CPUユニット100(PLCエンジン130)へ転送(プログラムダウンロード)される。
ユーザが、サポート装置200を利用して、ステップS100〜S106までの処理を実施すると、CPUユニット100において制御演算を実行できる状態になる。
続くステップS108〜S112は、静的遅延補正用データ352を生成するための処理である。
より具体的には、サポート装置200は、ユーザプログラム1381を解析して、基本通信遅延d2または基本通信遅延d2に対する補正量を算出する(ステップS108)。続いて、サポート装置200は、システム構成情報3522およびスレーブ設定情報3523を参照するとともに、ステップS108での解析結果を利用して、静的遅延補正用データ352を生成する(ステップS110)。この生成された静的遅延補正用データ352は、CPUユニット100(システム状態値時系列データ182)へ転送される。
さらに、サポート装置200は、動的遅延補正用データ354を更新する条件を示す状態定義テーブルを作成する(ステップS112)。この生成された状態定義テーブルは、CPUユニット100(システム状態値時系列データ182)へ転送される。
なお、CPUユニットにおいて静的遅延補正用データ352に必要な遅延時間のすべてを収集できる場合には、上述のステップS108およびS110の処理を省略してもよい。
必要なプログラムおよび設定などのデータが転送されたCPUユニット100では、ユーザプログラム1381などに従う制御演算が実行される。より具体的には、CPUユニット100が起動されると(ステップS300)、続いて、PLCエンジン130が起動される(ステップS302)とともに、組込データベース管理サービス190も起動される(ステップS200)。ステップS200において、組込データベース180によるデータベースサービス機能の提供が開始または再開される。
組込データベース管理サービス190の起動後、PLCエンジン130は、サポート装置200から転送されたシステム構成情報3522およびスレーブ設定情報3523などを展開する(ステップS304)。以上のような処理によって、CPUユニット100のPLCエンジン130は制御演算の実行が可能になる。
すなわち、PLCエンジン130は、ユーザプログラム1381の実行を含む制御演算を開始する(ステップS306)。PLCエンジン130は、ユーザプログラム1381に含まれる命令に従って、データベースへのデータ書込み要求を発行してもよい(ステップS308)。データ書込み要求は、組込データベース管理サービス190へ与えられる。また、PLCエンジン130は、ユーザプログラム1381に含まれる命令に従って、データベースからのデータ読出し要求を発行してもよい(ステップS310)。データ読出し要求は、組込データベース管理サービス190へ与えられる。
一方、組込データベース管理サービス190は、起動後(ステップS200の後)、基本通信遅延情報3521の取得をPLCエンジン130へ要求する(ステップS202)。PLCエンジン130は、起動時に計測した基本通信遅延情報3521を、組込データベース管理サービス190へ応答する。組込データベース管理サービス190は、PLCエンジン130からの基本通信遅延情報3521に基づいて、静的遅延補正用データ352を生成する(ステップS204)。
ステップS204までの処理によって、遅延時間補正に必要な最小限の情報が取得されるので、組込データベース管理サービス190は、遅延時間補正を開始する(ステップS206)。このとき、組込データベース管理サービス190は、動的遅延補正用データ354の更新処理も開始する(ステップS208)。動的遅延補正用データ354の更新処理においては、組込データベース管理サービス190は、予め定義された条件が成立すると、PLCエンジン130からリアルタイム通信遅延情報3541を取得して、動的遅延補正用データ354を更新する。
組込データベース管理サービス190は、PLCエンジン130からのデータベース書込み要求および/またはデータベース読込み要求に応答して、遅延時間補正を実施する。
より具体的には、組込データベース管理サービス190は、データベース書込み要求に応答して、指定された観測値(変数値)に対応する時刻に対する遅延時間補正を行って(ステップS210)、補正済データを組込データベース180へ書込む(ステップS212)。
また、組込データベース管理サービス190は、データベース読出し要求に応答して、指定された観測値(変数値)についての時系列データを組込データベース180から読出し(ステップS214)、読出した時系列データに対する遅延時間補正を行って(ステップS216)、補正済データをPLCエンジン130へ応答する。
なお、ステップS210およびS216の遅延時間補正は、いずれか一方のみを実施するようにしてもよいし、いずれも行わないようにしてもよい。遅延時間補正が実施されない場合には、指定された観測値の時系列データとデータ管理情報350とが対応付けて出力されるようにしてもよい。
PLCエンジン130での制御演算がサイクリック実行されている間、組込データベース管理サービス190は、ステップS210〜S216の処理を繰返し実行する。
(e5:機能ユニット起因遅延d1および基本通信遅延d2(静的遅延))
次に、本実施の形態に係る遅延時間補正における機能ユニット起因遅延d1および基本通信遅延d2(静的遅延)の具体例について説明する。
制御対象からの入力信号を受取る機能ユニット150の種類に応じて、発生し得る遅延時間(静的遅延)が変化する。そのため、CPUユニット100またはカプラユニット160に装着される機能ユニット150の種類および設定を特定した上で、補正すべき遅延時間を決定する。このような機能ユニット150の種類および設定は、CPUユニット100などに保持されるシステム構成情報やスレーブ設定情報を参照することで取得することができる。
以下、機能ユニット起因遅延d1および基本通信遅延d2(静的遅延)の具体例を示す。
図13は、本実施の形態に係る制御システム1の機能ユニット150が一般的な入力処理を実行する場合のタイムチャートの一例である。図14は、本実施の形態に係る制御システム1の機能ユニット150がオーバサンプリングでの入力処理を実行する場合のタイムチャートの一例である。
図13には、例えば、ワークの存在を検出する光電センサなどからの出力信号が機能ユニット150に入力される例を示す。また、図13に示すタイムチャートは、カプラユニット160に装着される機能ユニット150へセンサからの出力信号が入力される場合に対応する。
例えば、ワークが検出位置を通過すると、そのワークが光電センサを遮光することになり、図13(d)に示すようなセンサ出力を示す。機能ユニット150においては、センサ出力に対してフィルタリングおよびAD変換などを行って、オン/オフの2値化された検出信号を生成する。図13(c)には、図13(d)に示すセンサ出力に対して、機能ユニット150から出力される信号の時間波形を示す。
図13(c)に示す機能ユニット150の出力信号には、フィルタなどの機能ユニット起因遅延d1が発生し得る。すなわち、機能ユニット150の出力信号には、機能ユニット150に設定されるフィルタの時定数やAD変換の遅れなどに応じた遅延時間が発生し得る。
機能ユニット150からの出力信号は、カプラユニット160を介してCPUユニット100へ伝送される。機能ユニット150からカプラユニット160までの伝送経路、ならびに、カプラユニット160からCPUユニット100までの伝送経路は、定周期通信を行うネットワークで構成されているため、1通信周期分だけ遅延する可能性がある。すなわち、図13(b)に示すカプラユニット160の出力信号には、定周期通信に起因する遅延(基本通信遅延d2の一部)が発生し得る。
図13(b)〜図13(d)に示すような伝送経路における各遅延時間を合計すると、CPUユニット100のセンサ出力の値を示すセンサ変数に対して考慮すべき遅延時間が決定される(図13(a)参照)。
図13(a)に示すような考慮すべき遅延時間は、CPUユニット100とカプラユニット160とを接続するフィールドバスに関するシステム構成情報と、カプラユニット160に接続される機能ユニット150に関するスレーブ設定情報とを参照することで、推定することができる。
図14には、例えば、振動などを検出する振動センサなどからの出力信号が機能ユニット150に入力される例を示す。この機能ユニット150は、通信周期より短いサンプリング周期で入力信号のサンプリングが可能に設定されており、複数のサンプリング結果を周波数解析(例えば、FFT(Fast Fourier Transform))した結果を出力するようになっているとする。このような通信周期より短い周期でデータ収集を行うことを、以下では、「オーバサンプリング」と略称することもある。
このような構成において、例えば、図14(d)に示すようなセンサ出力が現れたとする。機能ユニット150においては、所定のサンプリング期間にわたって入力信号をサンプリングし(図14(c)参照)、そのサンプリング結果に対してFFTを実行し、そのFFTの実行結果を、図14(b)に示すようなタイミングで出力する。図14(b)には、機能ユニット150からのオーバサンプリング出力のタイミングを示す。機能ユニット150からのオーバサンプリング出力は、機能ユニット150からCPUユニット100までの伝送経路において、通信周期分だけさらに遅延し得る。
図14(b)〜図14(d)に示すような伝送経路における各遅延時間を合計すると、CPUユニット100のセンサ出力の値を示すセンサ変数に対して考慮すべき遅延時間が決定される(図14(a)参照)。
図14(a)に示すような考慮すべき遅延時間は、CPUユニット100から機能ユニット150までの伝送経路を特定するためのシステム構成情報と、機能ユニット150における設定を特定するためのスレーブ構成情報とを参照することで、推定することができる。
(e6:動的通信遅延d3(動的遅延))
次に、本実施の形態に係る遅延時間補正における動的通信遅延d3(動的遅延)の具体例について説明する。
上述したように、通信マスターとして機能するローカルバスコントローラまたはフィールドバスコントローラは、通信スレーブが管理する時刻(典型的には、通信スレーブのカウンタが出力するカウンタ値)を逐次監視するとともに、時刻のずれの程度が大きくなると、時刻同期信号を出力して、そのずれを補正する。
図15は、本実施の形態に係る制御システム1の通信マスターが提供する同期管理機能を説明するための図である。例えば、図15(a)に示すように、通信マスターに複数の通信スレーブが接続されている例を想定する。通信マスターおよび通信スレーブの各々は、カウンタを保持しているとする。
このような構成例において、通信マスターは、予め定義された条件が成立すると、いずれかの通信スレーブに対して、時刻要求を送信する。この時刻要求に応答して、対象の通信スレーブは、自身のカウンタが出力するカウンタ値を通信マスターへ送信する(時刻応答)。
通信スレーブが応答する時刻(カウンタ値)は、当該通信スレーブが時刻要求を受信したタイミングを示すものである。通信マスターと通信スレーブとの間で時刻同期が完全になされていれば、通信マスターが時刻要求を送信した時刻と、通信スレーブが応答する時刻との間は、当該時刻要求が当該通信スレーブまで伝搬されるのに要した時間(基本通信遅延d2に相当)だけ遅延することになる。なお、通信スレーブは、時刻要求を受信したタイミングにおけるカウンタ値を応答するので、通信スレーブから通信マスターまでの時刻応答の伝搬遅延時間を考慮する必要はない。
すなわち、通信マスターと通信スレーブとの間が完全に時刻同期されていれば、図15(b)に示すように、時刻要求を送信したタイミングを示す時刻と、通信スレーブが応答した時刻との間隔は、基本通信遅延d2と一致するはずである。
しかしながら、通信マスターと通信スレーブとの間の時刻同期にずれが生じている場合には、図15(c)に示すように、両時刻の間隔は広くなり、あるいは、狭くなる。通信マスターは、このような時刻要求を送信したタイミングを示す時刻と通信スレーブが応答した時刻との間隔が基本通信遅延d2からずれた度合いを時刻補正量として決定する。
すなわち、図15(c)に示す時刻補正量の大きさが、リアルタイム通信遅延情報3541(図10および図11参照)として保存されることになる。そして、リアルタイム通信遅延情報3541に基づいて、動的通信遅延d3(動的遅延)に対する補正がなされることになる。このように、動的通信遅延d3(動的遅延)は、互いに時刻同期されたカウンタが示すカウンタ値間のずれの程度に依存して時間的に変化する遅延時間に相当する。
以上のような手順によって、動的通信遅延d3(動的遅延)を行うための情報が計測される。
<F.利用形態>
次に、本実施の形態に係る遅延時間補正による時系列データの利用形態のいくつかについて説明する。
図16は、本実施の形態に係る遅延時間補正による時系列データの利用形態の一例を説明するための図である。図16に示すチャートにおいて、横軸は、出力されるデータの形態を示し、縦軸は、遅延時間補正の状態を示す。
図16を参照して、出力されるデータの形態としては、典型的には、(1)遅延時間補正がなされていない観測値の時系列データ(以下、「生データ」とも称す。)と対応するデータ管理情報、ならびに、(2)遅延時間補正済の時系列データ以下、「遅延補正済データ」とも称す。)、が想定される。
また、遅延時間補正の状態としては、典型的には、(a)遅延時間の補正が行われていない状態、(b)静的遅延のみ補正された状態、(c)静的遅延および動的遅延の両方が補正された状態、が想定される。
例えば、静的遅延は、数十μs〜数msオーダの遅延時間を補正することが想定されており、動的遅延は、ns〜数μsオーダの遅延時間を補正することが想定されている。観測値の時系列データの利用目的に応じて、必要な遅延時間補正が実施されてもよい。
例えば、オフライン解析やデータマイニングを実施することで、学習データを作成するような用途を想定すると、要求される精度に応じて、(a)〜(c)のいずれかが選択されてもよい。なお、(a)遅延時間の補正が行われていない状態で時系列データを利用する場合には、遅延補正済データではなく、生データをそのまま出力することが好ましい。
また、機械学習エンジン140を用いたリアルタイムでの異常検知機能を利用する場合には、データマイニングなどの結果に基づいて決定される異常検知方法に応じて、遅延時間補正の状態を適宜選択すればよい。
以上のような利用形態を想定すると、本実施の形態に係るCPUユニット100において、組込データベース180へ観測値を書込む場合には、以下のような処理形態を採用できる。
(1)機能ユニット150から収集された観測値を時刻と対応付けてそのまま格納
(2)機能ユニット150から収集された観測値に対して静的補正を行った上で格納
(3)機能ユニット150から収集された観測値に対して動的補正を行った上で格納
(4)機能ユニット150から収集された観測値に対して静的補正よび動的補正を行った上で格納
なお、上述の(1)の方法を採用することで、組込データベース180への観測値の格納をより高速化することができる。
また、本実施の形態に係るCPUユニット100の組込データベース180に格納された観測値を出力する場合には、以下のような処理形態を採用できる。
(1)格納された観測値の時系列データ(生データ)のみを出力
(2)格納された観測値の時系列データ(生データ)と対応する静的遅延補正用データ352とを出力
(3)格納された観測値の時系列データ(生データ)と対応する動的遅延補正用データ354とを出力
(4)格納された観測値の時系列データ(生データ)と対応する静的遅延補正用データ352および動的遅延補正用データ354とを出力
(5)格納された遅延補正済データのみを出力
(6)格納された遅延補正済データと対応する静的遅延補正用データ352とを出力
(7)格納された遅延補正済データと対応する動的遅延補正用データ354とを出力
(8)格納された遅延補正済データと対応する静的遅延補正用データ352および動的遅延補正用データ354とを出力
なお、上述した処理形態に限られず、観測値の利用形態や利用目的などに応じて、任意のデータ格納形態およびデータ出力形態を採用すればよい。また、複数種類の観測値を利用する場合には、それぞれの観測値に応じたデータ格納形態およびデータ出力形態を採用すればよく、利用される複数の観測値の間で同一のデータ格納形態またはデータ出力形態を採用する必要はない。
<G.付記>
上述の説明においては、主として、制御対象から機能ユニット150に対して与えられる入力信号(デジタル信号および/またはアナログ信号)に着目して説明したが、これに限られることなく、出力信号(デジタル信号および/またはアナログ信号)についても同様に扱うことができる。
<H.利点>
CPUユニットに内蔵されるデータベース機能(組込データベース)に対して観測値を格納するにあたって、観測値に付与される時刻は、データベースへ書込まれるときの時刻が用いられることが一般的である。事後的なデータ利用において、要求される時刻精度が緩やかな場合には、このような処理態様で問題はない。
しかしながら、時刻精度を高めてより高い解析精度を実現するためには、観測値が実際に現れた時刻を正確に把握することが重要である。
上述したような処理対象では、データベースに書込まれる観測値は、当該観測値を示す物理現象が実際に発生した時刻ではなく、機能ユニットやカプラユニットを介してデータ伝送されて生じる各種の遅延時間を含む時刻での値として管理されることになる。
そのため、データベースに格納された観測値の時系列データを事後的に利用して、制御や解析を実施する場合、時系列データと実際の物理現象とのタイミングの不一致を個別に検討しなければならないという課題があった。
このような課題に対して、本実施の形態に係るPLCにおいては、CPUユニットに予め設定されている構成情報や設定情報に基づいて決定される静的遅延、および/または、時間的に変化し得る動的遅延を含むデータ管理情報を観測値に対応付けて格納する。データベースから読出された観測値に対応付けられる時刻を、データ管理情報に基づいて補正することで、当該観測値を示す物理現象が実際に発生した時刻を容易に特定することができる。
このような観測値を示す物理現象が実際に発生した時刻を特定する機能を実装することで、データベースに格納された観測値の時系列データを事後的に利用する場合、遅延時間などの影響を排除できるので、高い精度で制御や解析を実施できる。
また、制御装置においては、観測値の時系列データ(生データ)をそのままデータベースに格納するとともに、データ管理情報を併せて格納するという構成を採用した場合には、時刻補正処理ことに起因する制御装置での処理負荷の増大を防止できる。これにより、処理能力が高くない制御装置であっても、短いサンプリング周期でのデータベースへのデータ格納を実現できる。
今回開示された実施の形態はすべての点で例示であって制限的なものではないと考えられるべきである。本発明の範囲は、上記した説明ではなく、特許請求の範囲によって示され、特許請求の範囲と均等の意味および範囲内でのすべての変更が含まれることが意図される。
1 制御システム、2 PLC、3,3A,3B,3C,3D リモートIO装置、4,5,6 フィールドバス、8 上位ネットワーク、12,14 ローカルバス、100 CPUユニット、102,202 プロセッサ、104 チップセット、106,206 主記憶装置、108,208 二次記憶装置、110 ネットワークコントローラ、112,212 USBコントローラ、114 メモリカードインターフェイス、116 メモリカード、118,152,166 ローカルバスコントローラ、119,121,126,151,153,161,167 カウンタ、120,162 フィールドバスコントローラ、128 RTC、130 PLCエンジン、134 スケジューラ、136 変数管理プログラム、138 制御プログラム、140 機械学習エンジン、142 学習機能、144 異常検知機能、146 イベントログ、150 機能ユニット、154,164 主コントローラ、156 機能モジュール、160 カプラユニット、180 組込データベース、182,184,300,310,502,504 時系列データ、190 組込データベース管理サービス、192 遅延時間取得モジュール、194 時刻決定モジュール、196 データ出力モジュール、200 サポート装置、204 ディスプレイ、210 内部バス、214 入力装置、216 OS、218 サポートプログラム、260 データマイニングツール、262 組込データベースアクセス機能、264 データマイニング機能、266 可視化機能、270 機械学習パラメータ設定ツール、272 変数アクセス機能、350 データ管理情報、352 静的遅延補正用データ、354 動的遅延補正用データ、402,422 入力処理、404,408,424,428,432,436 伝送処理、406,426,434 前処理、410,430,438 受信処理、412,440 格納処理、506 静的遅延補正済データ、508 動的遅延補正済データ、1362 システム変数、1364 デバイス変数、1366 異常検知パラメータ、1381 ユーザプログラム、1382 組込データベース読出しプログラム、1383 組込データベース書込みプログラム、1384 機械学習エンジンインターフェイス、1385 学習要求プログラム、1386 監視要求プログラム、1387 シリアライズプログラム、1388 特徴量生成プログラム、3521 基本通信遅延情報、3522 システム構成情報、3523 スレーブ設定情報、3541 リアルタイム通信遅延情報、d1 機能ユニット起因遅延、d1’ 動的遅延、d2 基本通信遅延、d3 動的通信遅延。

Claims (9)

  1. 制御対象についての制御演算を実行する制御装置であって、
    データ伝送路を介して1または複数の機能ユニットと前記制御装置とを電気的に接続するための通信インターフェイスと、
    前記機能ユニットを介して収集される観測値をデータベースに書込む書込手段と、
    前記機能ユニットに観測値を示す信号が入力されてから当該観測値を示すデータが前記制御装置で利用可能になるまでに要する遅延時間を取得するとともに、取得した遅延時間を示す情報を格納する遅延時間取得手段とを備え、
    前記遅延時間は、時間的に変動しない第1の遅延時間と、時間的に変動する第2の遅延時間とを含み、
    前記通信インターフェイスおよび前記機能ユニットは、互いに時刻同期されたカウンタをそれぞれ有しており、
    前記第2の遅延時間は、互いに時刻同期されたカウンタが示すカウンタ値間のずれの程度に依存して時間的に変化する遅延時間を含む、制御装置。
  2. 前記遅延時間取得手段により取得された遅延時間を示す情報に基づいて、前記観測値を示す信号が現れた時刻を決定する時刻決定手段をさらに備える、請求項1に記載の制御装置。
  3. 前記書込手段は、前記観測値と、当該観測値が前記制御装置において利用可能になった時刻とを対応付けて前記データベースに書込み、
    前記時刻決定手段は、前記データベースから読出した観測値について、当該観測値に対応付けられた時刻を前記遅延時間取得手段により取得された遅延時間を示す情報に基づいて補正することで、当該観測値を示す信号が現れた時刻を決定する、請求項2に記載の制御装置。
  4. 前記第1の遅延時間は、前記機能ユニットに設定される処理特性および前記機能ユニットの機能の少なくとも一方に依存して定まる遅延時間を含む、請求項1〜3のいずれか1項に記載の制御装置。
  5. 前記第1の遅延時間は、前記機能ユニットから前記制御装置までのデータ伝送路に依存して定まる遅延時間を含む、請求項1〜4のいずれか1項に記載の制御装置。
  6. 前記データベースに格納されている観測値と、当該観測値に対応付けられる遅延時間を示す情報とを関連付けて出力する出力手段をさらに備える、請求項1〜のいずれか1項に記載の制御装置。
  7. 前記データベースは前記制御装置に組込まれている、請求項1〜のいずれか1項に記載の制御装置。
  8. 制御対象についての制御演算を実行する制御装置で実行される制御プログラムであって、前記制御装置は、通信インターフェイスによりデータ伝送路を介して1または複数の機能ユニットと前記制御装置とを電気的に接続されており、前記制御プログラムは、前記制御装置に
    前記機能ユニットを介して収集される観測値をデータベースに書込むステップと、
    前記機能ユニットに観測値を示す信号が入力されてから当該観測値を示すデータが前記制御装置で利用可能になるまでに要する遅延時間を取得するとともに、取得した遅延時間
    を示す情報を格納するステップとを実行させ、
    前記遅延時間は、時間的に変動しない第1の遅延時間と、時間的に変動する第2の遅延時間とを含み、
    前記通信インターフェイスおよび前記機能ユニットは、互いに時刻同期されたカウンタをそれぞれ有しており、
    前記第2の遅延時間は、互いに時刻同期されたカウンタが示すカウンタ値間のずれの程度に依存して時間的に変化する遅延時間を含む、制御プログラム。
  9. 制御対象についての制御演算を実行する制御装置と、
    前記制御装置と通信インターフェイスによりデータ伝送路を介して電気的に接続された1または複数の機能ユニットとを備え、
    前記制御装置は、
    前記機能ユニットを介して収集される観測値をデータベースに書込む書込手段と、
    前記機能ユニットに観測値を示す信号が入力されてから当該観測値を示すデータが前記制御装置で利用可能になるまでに要する遅延時間を取得するとともに、取得した遅延時間を示す情報を格納する遅延時間取得手段とを備え、
    前記遅延時間は、時間的に変動しない第1の遅延時間と、時間的に変動する第2の遅延時間とを含み、
    前記通信インターフェイスおよび前記機能ユニットは、互いに時刻同期されたカウンタをそれぞれ有しており、
    前記第2の遅延時間は、互いに時刻同期されたカウンタが示すカウンタ値間のずれの程度に依存して時間的に変化する遅延時間を含む、制御システム。
JP2017069932A 2017-03-31 2017-03-31 制御装置、制御プログラム、および制御システム Active JP6399136B1 (ja)

Priority Applications (4)

Application Number Priority Date Filing Date Title
JP2017069932A JP6399136B1 (ja) 2017-03-31 2017-03-31 制御装置、制御プログラム、および制御システム
CN201810141020.9A CN108693821B (zh) 2017-03-31 2018-02-11 控制装置、存储介质、控制方法及控制***
EP18000159.6A EP3382481B1 (en) 2017-03-31 2018-02-16 Controller, control program, and control system field
US15/901,925 US10908579B2 (en) 2017-03-31 2018-02-22 Controller, control program, and control system

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2017069932A JP6399136B1 (ja) 2017-03-31 2017-03-31 制御装置、制御プログラム、および制御システム

Publications (2)

Publication Number Publication Date
JP6399136B1 true JP6399136B1 (ja) 2018-10-03
JP2018173710A JP2018173710A (ja) 2018-11-08

Family

ID=61274037

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2017069932A Active JP6399136B1 (ja) 2017-03-31 2017-03-31 制御装置、制御プログラム、および制御システム

Country Status (4)

Country Link
US (1) US10908579B2 (ja)
EP (1) EP3382481B1 (ja)
JP (1) JP6399136B1 (ja)
CN (1) CN108693821B (ja)

Families Citing this family (15)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP6969455B2 (ja) * 2018-03-13 2021-11-24 オムロン株式会社 制御装置、制御システム、制御方法、および、制御プログラム
JP6969454B2 (ja) * 2018-03-13 2021-11-24 オムロン株式会社 制御装置、制御方法、および、制御プログラム
CN108521474B (zh) * 2018-03-30 2021-05-25 青岛海尔空调电子有限公司 多联式控制***的地址竞争方法
US11075951B1 (en) * 2018-06-29 2021-07-27 NortonLifeLock Inc. Query learning for automated incident investigation and remediation
JP7399108B2 (ja) * 2019-01-07 2023-12-15 住友重機械工業株式会社 モーションコントローラ
JP6973427B2 (ja) * 2019-02-15 2021-11-24 株式会社安川電機 通信システム、通信方法、及びプログラム
JP7156982B2 (ja) * 2019-03-11 2022-10-19 株式会社日立製作所 リアルタイムコントローラおよびそれを用いた分散制御システム、産業機械
US20220129865A1 (en) * 2019-03-28 2022-04-28 Siemens Energy Global GmbH & Co. KG Method for monitoring an electrical device
US10805262B1 (en) * 2019-06-10 2020-10-13 Banner Engineering Corp. Modbus system having actual and virtual slave addresses and slave sensors
JP7423920B2 (ja) * 2019-07-03 2024-01-30 オムロン株式会社 制御システム、設定装置およびコンピュータプログラム
EP3995910A4 (en) * 2019-07-04 2023-08-09 OMRON Corporation CONTROL SYSTEM
JP7404789B2 (ja) * 2019-11-01 2023-12-26 オムロン株式会社 制御システム、制御システムの通信制御方法、および制御装置
JP7318557B2 (ja) * 2020-02-18 2023-08-01 トヨタ自動車株式会社 コミュニケーションシステム、制御方法及び制御プログラム
WO2022168475A1 (ja) * 2021-02-04 2022-08-11 オムロン株式会社 制御装置
CN117335579B (zh) * 2023-12-01 2024-02-13 四川通通数智科技有限公司 橇装电控一体化装置

Family Cites Families (22)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO1994008850A1 (en) * 1992-10-08 1994-04-28 Ishida Co., Ltd. System for integrating machines
CN1188359A (zh) * 1996-10-24 1998-07-22 克罗内有限公司 在异步传送方式网络中进行同步传输的方法及电路结构
US6529785B1 (en) * 1999-09-27 2003-03-04 Rockwell Automation Technologies, Inc. Jog control for industrial control network
JP4005779B2 (ja) * 2001-07-03 2007-11-14 株式会社東芝 クロック同期回路
JP4302483B2 (ja) * 2003-10-28 2009-07-29 パナソニック株式会社 データ伝送方法およびデータ伝送装置
JP4313754B2 (ja) * 2004-12-10 2009-08-12 住友電装株式会社 通信制御装置
JP4555124B2 (ja) 2005-03-04 2010-09-29 日本電気通信システム株式会社 光アクセスネットワークにおける同期方法、光スイッチ装置、センタ装置、リモート装置、光アクセスシステム、光アクセスネットワーク、プログラム、及び記録媒体
US7593351B1 (en) * 2005-06-30 2009-09-22 Opnet Technologies, Inc. Method and system for collecting and consolidating network traffic information
ATE445871T1 (de) 2005-08-31 2009-10-15 Omron Tateisi Electronics Co Kommunikationssystem mit master-, slave- und repeatereinheiten
JP4877068B2 (ja) 2007-05-22 2012-02-15 富士電機株式会社 ソフトウェア開発支援プログラム、ソフトウェア開発支援方法
JP4941753B2 (ja) * 2007-08-31 2012-05-30 横河電機株式会社 フィールド制御システム
JP2011191874A (ja) * 2010-03-12 2011-09-29 Koyo Electronics Ind Co Ltd データ信号送受信方法
JP2011223359A (ja) 2010-04-09 2011-11-04 Sony Corp 遅延制御装置、制御方法、及び通信システム
US8615683B2 (en) * 2011-06-24 2013-12-24 Rockwell Automation Technologies, Inc. Capturing data during operation of an industrial controller for the debugging of control programs
US9323286B2 (en) * 2012-09-22 2016-04-26 Innovasic, Inc. Ad-hoc synchronization of industrial control networks
DE112014001892B4 (de) * 2014-01-31 2019-02-07 Mitsubishi Electric Corporation Überwachungssteuerungssystem und Steuergerät
WO2015128981A1 (ja) * 2014-02-27 2015-09-03 富士電機株式会社 プログラマブルコントローラシステム、そのコントローラ
JP6550867B2 (ja) * 2014-04-03 2019-07-31 富士電機株式会社 タイムスタンプ付データ管理システム、その装置、プログラム
JP5837146B1 (ja) * 2014-06-13 2015-12-24 ファナック株式会社 外部入力信号の取り込み時間を短縮した数値制御システム
JP6477161B2 (ja) 2015-03-31 2019-03-06 オムロン株式会社 情報処理装置、情報処理プログラムおよび情報処理方法
JP6753262B2 (ja) * 2016-10-14 2020-09-09 オムロン株式会社 制御装置および通信装置
JP6772748B2 (ja) * 2016-10-14 2020-10-21 オムロン株式会社 演算装置および制御システム

Also Published As

Publication number Publication date
EP3382481A1 (en) 2018-10-03
JP2018173710A (ja) 2018-11-08
US20180284710A1 (en) 2018-10-04
CN108693821A (zh) 2018-10-23
EP3382481B1 (en) 2020-09-30
CN108693821B (zh) 2021-11-05
US10908579B2 (en) 2021-02-02

Similar Documents

Publication Publication Date Title
JP6399136B1 (ja) 制御装置、制御プログラム、および制御システム
CN108572613B (zh) 控制装置、信息处理方法
US10891280B2 (en) Controller for improved time-series data collection
US20220413474A1 (en) Control system
JP6926539B2 (ja) 制御装置およびプログラム
US20110222561A1 (en) Systems and methods for providing time synchronization
JP2016012172A (ja) 通信システム、プログラマブル表示器、情報処理装置、動作制御方法、情報処理方法、およびプログラム
US20230023970A1 (en) Control system
US20190229885A1 (en) Computing device and control system
KR101645260B1 (ko) 복수의 제어기간의 정밀한 시간 기록을 포함하는 데이터 동기화 시스템 및 방법
JP7102801B2 (ja) 制御システム、制御装置および表示装置
EP3696626B1 (en) Communication system, communication method, and program
EP3767407B1 (en) Field bus system diagnosis using propagation delay measurements
JP2023151742A (ja) 制御システム、制御装置および制御プログラム
Chumachenko Real-time programs communication in the POTOK software package

Legal Events

Date Code Title Description
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: 20180807

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20180820

R150 Certificate of patent or registration of utility model

Ref document number: 6399136

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150