JP7278515B2 - 制御システム、制御方法、制御プログラム、ローカル機器、リモート機器、信号処理方法、パケット処理方法、信号処理プログラム及びパケット処理プログラム - Google Patents

制御システム、制御方法、制御プログラム、ローカル機器、リモート機器、信号処理方法、パケット処理方法、信号処理プログラム及びパケット処理プログラム Download PDF

Info

Publication number
JP7278515B2
JP7278515B2 JP2023500158A JP2023500158A JP7278515B2 JP 7278515 B2 JP7278515 B2 JP 7278515B2 JP 2023500158 A JP2023500158 A JP 2023500158A JP 2023500158 A JP2023500158 A JP 2023500158A JP 7278515 B2 JP7278515 B2 JP 7278515B2
Authority
JP
Japan
Prior art keywords
local
state machine
remote
attribute
state
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
JP2023500158A
Other languages
English (en)
Other versions
JPWO2022176031A1 (ja
JPWO2022176031A5 (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.)
Mitsubishi Electric Corp
Original Assignee
Mitsubishi Electric 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 Mitsubishi Electric Corp filed Critical Mitsubishi Electric Corp
Publication of JPWO2022176031A1 publication Critical patent/JPWO2022176031A1/ja
Publication of JPWO2022176031A5 publication Critical patent/JPWO2022176031A5/ja
Application granted granted Critical
Publication of JP7278515B2 publication Critical patent/JP7278515B2/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/042Programme control other than numerical control, i.e. in sequence controllers or logic controllers using digital processors
    • G05B19/0421Multiprocessor system
    • GPHYSICS
    • G05CONTROLLING; REGULATING
    • G05BCONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
    • G05B19/00Programme-control systems
    • G05B19/02Programme-control systems electric
    • G05B19/04Programme control other than numerical control, i.e. in sequence controllers or logic controllers
    • G05B19/042Programme control other than numerical control, i.e. in sequence controllers or logic controllers using digital processors
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • 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/23Pc programming
    • G05B2219/23051Remote control, enter program remote, detachable programmer

Landscapes

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

Description

本開示は、制御対象機器の制御に関する。
近年、コントローラと、センサ及び/又はアクチュエータなどを有する制御対象への入出力機能を有する入出力装置とをネットワークで接続した制御システムが構成されることが多くなってきている。こうした制御システムでは、コントローラと入出力装置との間のネットワークに、通信遅延及び/又はパケットロスが発生する可能性が高いネットワーク(インターネット等)が含まれる場合がある。
高い応答性(リアルタイム性)が要求される処理で通信遅延及び/又はパケットロスが発生すると、要求される応答性が満たされない可能性がある。
高い応答性が要求される処理として、例えば、以下の処理が考えられる。
(1)コントローラが、センサ及びモータを有する制御対象機器から、センサで得られたセンサ値を入力値として取得する。
(2)センサ値が特定の値である場合に、コントローラが、モータを停止させるための出力値を制御対象機器に出力する。
また、高い応答性が要求されない処理として、例えば、以下の処理が考えられる。
(1)コントローラが、プッシュスイッチ及びモニタを有する制御対象機器から、プッシュスイッチの状態を通知する状態値を入力値として取得する。
(2)コントローラが、状態値に基づき、モニタにプッシュスイッチの状態を表示させるための出力値を制御対象機器に出力する。
通信遅延及び/又はパケットロスにより要求される応答性が満たされないという課題に対する対策として以下が考えられる。
例えば、入出力装置に、タイムアウト等の通信エラーを検出する機能を、要求される応答性を考慮して設ける。また、当該機能が通信エラーが検出した場合に、当該機能がフェールセーフ処理等のエラー処理を行う。
しかしながら、通信エラーが検出される頻度が高い場合、エラー処理が頻発する。このため、通信エラーが検出される頻度が高い場合は、制御システムの可用性が低下する。
一方、特定の処理を制御対象機器の近傍で行う方法もある。
例えば特許文献1では、高い応答性が必要とされる処理を工場内のローカル機器が行い、高い応答性が要求されない処理をインターネットを介した管理センタ内のリモート機器が行う制御システムが開示されている。
特開2002-82711号公報
制御対象機器の制御にステートマシンが用いられる場合は、状態ごとに実行すべき処理が異なり、また、状態遷移の状況により処理の実行順序も変化する。制御対象機器の制御では、制御対象機器への出力値を生成する出力値生成処理が実行される。従って、制御対象機器の制御にステートマシンが用いられる場合は、状態ごとに実行すべき出力値生成処理が異なり、状態遷移の状況により出力値生成処理の実行順序が変化する。
特許文献1の手法では、リモート機器とローカル機器に処理を固定的に割り当てるのみである。このため、特許文献1の手法では、リモート機器とローカル機器との間で、出力値生成処理を実行させる機器を状態遷移に応じて状態ごとに切り替えることはできないという課題がある。
本開示は、このような課題を解決することを主な目的とする。より具体的には、本開示は、リモート機器とローカル機器との間で、出力値生成処理を実行させる機器を状態遷移に応じて状態ごとに切り替えることを主な目的とする。
本開示に係る制御システムは、
各々に属性としてリモート制御属性及びローカル制御属性のいずれかが設定されている複数の状態の間で状態遷移を行うステートマシンと、
前記ステートマシンの現在の状態の属性が前記リモート制御属性であれば、制御対象機器への出力値を生成する出力値生成処理を前記制御対象機器にとってのリモート環境にあるリモート機器に実行させ、前記ステートマシンの現在の状態の属性が前記ローカル制御属性であれば、前記出力値生成処理を前記制御対象機器にとってのローカル環境にあるローカル機器に実行させる実行制御部とを有する。
本開示によれば、リモート機器とローカル機器との間で、出力値生成処理を実行させる機器を状態遷移に応じて状態ごとに切り替えることができる。
実施の形態1に係る制御システムの構成例を示す図。 実施の形態1に係るステートマシンの例を示す図。 実施の形態1に係る初期設定パケットの例を示す図。 実施の形態1に係る入力パケットの例を示す図。 実施の形態1に係る出力パケットの例を示す図。 実施の形態1に係るローカル制御状況パケットの例を示す図。 実施の形態1に係る状態属性テーブルの例を示す図。 実施の形態1に係る入出力装置の機能構成例を示す図。 実施の形態1に係るコントローラの機能構成例を示す図。 実施の形態1に係る初期化処理の例を示すフローチャート。 実施の形態1に係る入出力装置の入力処理の例を示すフローチャート。 実施の形態1に係るコントローラの動作例を示すフローチャート。 実施の形態1に係る入出力装置の動作例を示すフローチャート。 実施の形態1に係る入出力装置の動作例を示すフローチャート。 実施の形態1に係る効果を説明する図。 実施の形態2に係る制御システムの構成例を示す図。 実施の形態2に係るローカル入力処理の例を示すフローチャート。 実施の形態2に係る入出力装置の動作例を示すフローチャート。 実施の形態2に係る入出力装置の動作例を示すフローチャート。 実施の形態3に係る制御システムの構成例を示す図。 実施の形態3に係るゲートウェイの機能構成例を示す図。 実施の形態3に係るゲートウェイの入力処理の例を示すフローチャート。 実施の形態3に係るゲートウェイの動作例を示すフローチャート。 実施の形態4に係る初期化処理の例を示すフローチャート。 実施の形態1に係る入出力装置のハードウェア構成例を示す図。 実施の形態1に係るコントローラのハードウェア構成例を示す図。 実施の形態3に係るゲートウェイのハードウェア構成例を示す図。
以下、実施の形態を図を用いて説明する。以下の実施の形態の説明及び図面において、同一の符号を付したものは、同一の部分又は相当する部分を示す。
実施の形態1.
***構成の説明***
図1は、本実施の形態に係る制御システム60の構成例を示す。
本実施の形態に係る制御システム60は、入出力装置10とコントローラ30を含む。入出力装置10とコントローラ30で行われる動作は、制御方法に相当する。
制御システム60は、制御対象機器20を制御するためのシステムである。
入出力装置10は、制御対象機器20にとってのローカル環境にある機器である。入出力装置10は、ローカル機器に相当する。また、入出力装置10の動作手順は、信号処理方法に相当する。
制御対象機器20にとってのローカル環境は、制御対象機器20との通信で生じる通信の遅延及びジッタが許容範囲内であり、当該通信の遅延及び当該ジッタの最悪値の予測が困難ではない環境である。本実施の形態では、入出力装置10は、制御対象機器20に直接接続されている。このため、入出力装置10と制御対象機器20との間では通信の遅延及びジッタは殆んど生じず、また、通信の遅延及びジッタが生じるとしても、通信の遅延及びジッタの最悪値の予測が容易である。従って、入出力装置10は制御対象機器20にとってのローカル環境にある。本実施の形態では、入出力装置10と制御対象機器20が直接接続されている例を示すが、入出力装置10と制御対象機器20が通信の遅延及びジッタが許容範囲内であり、当該通信の遅延及び当該ジッタの最悪値の予測が困難ではない通信回線を介して接続されてもよい。
入出力装置10は、コントローラ30から送信された初期設定パケット71を内部ネットワーク51を介してゲートウェイ40から受信する。初期設定パケット71は、入出力装置10の初期化処理に用いられる。
入出力装置10は、制御対象機器20から繰り返し入力値信号81を受信する。入力値信号81では、制御対象機器20からの入力値が通知される。
また、入出力装置10は、制御対象機器20から入力値信号81を受信する度に、内部ネットワーク51を介して入力パケット72をゲートウェイ40に送信する。入力パケット72では、制御対象機器20からの入力値が通知される。
また、入出力装置10は、内部ネットワーク51を介してローカル制御状況パケット74をゲートウェイ40に送信する。
ローカル制御状況パケット74では、後述する状態遷移先及び共有内部値の更新値が通知される。
共有内部値は、入出力装置10とコントローラ30で共有している内部値である。共有内部値は、後述するプリミティブステートマシン及びローカルステートマシンで演算を行う際に必要になる値である。入出力装置10とコントローラ30は共有内部値を同期して更新する必要がある。
また、入出力装置10は、コントローラ30から送信された出力パケット73を内部ネットワーク51を介してゲートウェイ40から受信する。出力パケット73では、制御対象機器20への出力値、状態遷移先、共有内部値の更新値が通知される。
また、入出力装置10は、制御対象機器20に出力値信号82を送信する。出力値信号82では、制御対象機器20への出力値が通知される。
制御対象機器20は、例えば、センサ及びアクチュエータを有する機器である。
入力値信号81で通知される入力値は、例えばセンサで得られたセンサ値である。また、出力値信号82で通知される出力値は、例えばアクチュエータを制御するための制御値である。
また、制御対象機器20がプッシュスイッチ及びモニタを有する場合は、入力値信号81で通知される入力値は、プッシュスイッチの状態を通知する状態値であってもよい。また、出力値信号82で通知される出力値は、モニタにプッシュスイッチの状態を表示させるための値であってもよい。
コントローラ30は、制御対象機器20にとってのリモート環境にある機器である。コントローラ30はリモート機器に相当する。また、コントローラ30の動作手順は、パケット処理方法に相当する。
制御対象機器20にとってのリモート環境は、制御対象機器20との通信で生じる通信の遅延及びジッタが許容範囲外であり、当該通信の遅延及び当該ジッタの最悪値の予測が困難な環境である。コントローラ30は、入出力装置10、内部ネットワーク51、ゲートウェイ40及び外部ネットワーク52を介して制御対象機器20と接続されている。このため、コントローラ30と制御対象機器20との間の通信で生じる通信の遅延及びジッタは大きく、また、生じる通信の遅延及びジッタの最悪値の予測は困難である。従って、コントローラ30は制御対象機器20にとってのリモート環境にある。
ゲートウェイ40は、内部ネットワーク51を介して入出力装置10と接続し、外部ネットワーク52を介してコントローラ30と接続している。
ゲートウェイ40は、入出力装置10とコントローラ30の間で、初期設定パケット71、入力パケット72、出力パケット73及びローカル制御状況パケット74の通信を中継する。
内部ネットワーク51は、想定済みのトラフィックしか存在せず、通信の遅延及びジッタが許容範囲内であり、通信の遅延及びジッタの最悪値の予測が容易な通信路である。内部ネットワーク51は、例えば、フィールドネットワークである。
外部ネットワーク52は、未想定のトラフィックが存在することがあり、通信の遅延及びジッタが許容範囲外であり、通信の遅延及びジッタの最悪値の予測が困難な通信路である。外部ネットワーク52は、例えばインターネットである。
図2は、本実施の形態で用いられるステートマシンの例を示す。
本実施の形態で用いられるステートマシンには、プリミティブステートマシンとローカルステートマシンがある。
プリミティブステートマシンはコントローラ30で管理されるステートマシンである。プリミティブステートマシンは、リモートステートマシンに相当する。
ローカルステートマシンは入出力装置10で管理されるステートマシンである。
プリミティブステートマシンは、制御仕様が定義された複数の状態が含まれるステートマシンである。プリミティブステートマシンは複数の状態の間で状態遷移を行う。
また、プリミティブステートマシンに含まれる複数の状態の各々には、属性としてリモート制御属性及びローカル制御属性のいずれかが設定されている。例えば、プリミティブステートマシンに含まれる状態の数がN(N≧2)個である場合は、プリミティブステートマシンには、L個(1≦L<N)のローカル制御属性を有する状態と、(N-L)個のリモート制御属性を有する状態が存在する。
また、プリミティブステートマシンの各状態には、演算手段が含まれる。各演算手段は、入力値及び共有内部値を用いた演算を行う。各演算手段は、演算により、状態遷移先、出力値、共有内部値の更新値を得る。
コントローラ30は、演算手段の演算により得られた状態遷移先にプリミティブステートマシンの状態を遷移させる。更に、コントローラ30は、入出力装置10から通知された状態遷移先にプリミティブステートマシンの状態を遷移させることもある。
また、各状態には、要求応答時間が指定されている。要求応答時間とは、入出力装置10での制御対象機器20からの入力値の受信から制御対象機器20への出力値の送信までに要求される時間である。
なお、コントローラ30は、各状態の要求応答時間に基づいて、各状態の属性をリモート制御属性及びローカル制御属性のいずれかに設定してもよい。
ローカルステートマシンは、プリミティブステートマシンに含まれる複数の状態と同一の複数の状態を含む。ローカルステートマシンは、プリミティブステートマシンと同期して状態遷移を行う。
また、ローカルステートマシンでは、プリミティブステートマシンの対応する状態と同じ属性が各状態に設定されている。つまり、ローカルステートマシンでも、プリミティブステートマシンと同じく、L個のローカル制御属性を有する状態と、(N-L)個のリモート制御属性を有する状態が存在する。
ローカルステートマシンでは、ローカル制御属性を有する状態にのみ演算手段が含まれる。リモート制御属性を有する状態には演算手段が含まれない。ローカルステートマシン内のローカル制御属性を有する状態の演算手段は、プリミティブステートマシン内の対応する状態の演算手段と同様の動作を行う。
入出力装置10は、演算手段の演算により状態遷移先が得られた場合は、演算手段の演算により得られた状態遷移先にプリミティブステートマシンの状態を遷移させる。また、入出力装置10は、コントローラ30から通知された状態遷移先にプリミティブステートマシンの状態を遷移させることもある。
ここで、リモート制御属性及びローカル制御属性について説明する。
リモート制御属性は、プリミティブステートマシンの演算手段で出力値生成処理、状態遷移先特定処理及び共有内部値更新処理が行われる属性である。一方、ローカル制御属性は、ローカルステートマシンの演算手段で出力値生成処理、状態遷移先特定処理及び共有内部値更新処理が行われる属性である。
出力値生成処理は制御対象機器20からの入力値に基づき制御対象機器20への出力値を生成する処理である。なお、出力値生成処理は、入力値に加え、共有内部値に基づき制御対象機器20への出力値を生成する処理であってもよい。状態遷移先特定処理は、プリミティブステートマシン及びローカルステートマシンの状態遷移先を特定する処理である。共有内部値更新処理は、入出力装置10及びコントローラ30で共有内部値を更新する処理である。
図2の例では、プリミティブステートマシンにST_0、ST_1、ST_2及びST_3の4つの状態が含まれる。そして、ST_0、ST_1、ST_3にリモート制御属性が設定され、ST_2にローカル制御属性が設定されている。プリミティブステートマシンでは、ST_0、ST_1、ST_2及びST_3の各々に演算手段が存在する。
ローカルステートマシンでも同様にST_0、ST_1、ST_2及びST_3の4つの状態が含まれるが、演算手段はローカル制御属性が設定されているST_2にのみ存在する。
図3は、初期設定パケット71の例を示す。
前述のように、初期設定パケット71はコントローラ30から入出力装置10に送信される。
初期設定パケット71には、ヘッダ、状態属性テーブル、ローカルステートマシンプログラム及びフッタが含まれる。
状態属性テーブルは、プリミティブステートマシン及びローカルステートマシンに含まれる各状態の属性を示すテーブルである。
ローカルステートマシンプログラムは、ローカル制御属性を有する状態の演算手段を実現するプログラムである。つまり、ローカルステートマシンプログラムは、ローカルステートマシンに出力値生成処理、状態遷移先特定処理及び共有内部値更新処理を実行させるためのプログラムである。
ローカルステートマシンプログラムはコントローラ30で生成される。
図4は、入力パケット72の例を示す。
前述のように、入力パケット72は入出力装置10からコントローラ30に送信される。
入力パケット72には、ヘッダ、入力値及びフッタが含まれる。
入力値は、入力値信号81で通知された値である。
図5は、出力パケット73の例を示す。
前述のように、出力パケット73はコントローラ30から入出力装置10に送信される。
出力パケット73には、ヘッダ、出力値、状態遷移先、共有内部値及びフッタが含まれる。
プリミティブステートマシン及びローカルステートマシンの現在の状態の属性がリモート制御属性である場合に、出力パケット73により、プリミティブステートマシンの演算手段の演算により得られた出力値、状態遷移先及び共有内部値の更新値が通知される。なお、共有内部値が更新されない場合は、出力パケット73に共有内部値を含まなくてもよい。
図6は、ローカル制御状況パケット74の例を示す。
前述のように、ローカル制御状況パケット74は入出力装置10からコントローラ30に送信される。
ローカル制御状況パケット74には、ヘッダ、状態遷移先、共有内部値及びフッタが含まれる。
プリミティブステートマシン及びローカルステートマシンの現在の状態の属性がローカル制御属性である場合に、ローカル制御状況パケット74により、ローカルステートマシンの演算手段の演算により得られた状態遷移先及び共有内部値の更新値が通知される。なお、共有内部値が更新されない場合は、ローカル制御状況パケット74に共有内部値を含まなくてもよい。
図7は、状態属性テーブルの例を示す。
前述したように、状態属性テーブルは、プリミティブステートマシン及びローカルステートマシンに含まれる各状態の属性を示すテーブルである。
図7の例では、図2に示すST_0、ST_1、ST_2及びST_3の4つの状態と、各状態の属性が示される。
図8は、本実施の形態に係る入出力装置10の機能構成例を示す。
また、図25は、入出力装置10のハードウェア構成例を示す。
先ず、図25を参照して入出力装置10のハードウェア構成例を説明する。
本実施の形態に係る入出力装置10は、コンピュータである。
入出力装置10は、ハードウェアとして、プロセッサ701、主記憶装置702、補助記憶装置703及び通信装置704を備える。
補助記憶装置703には、図8を参照して後述する第1の通信部11、第2の通信部12、ローカルステートマシン13及び実行制御部14の機能を実現するプログラムが記憶されている。なお、第1の通信部11、第2の通信部12及び実行制御部14の機能を実現するプログラムは、信号処理プログラムに相当する。
これらプログラムは、補助記憶装置703から主記憶装置702にロードされる。そして、プロセッサ701がこれらプログラムを実行して、後述する第1の通信部11、第2の通信部12、ローカルステートマシン13及び実行制御部14の動作を行う。
図25では、プロセッサ701が第1の通信部11、第2の通信部12、ローカルステートマシン13及び実行制御部14の機能を実現するプログラムを実行している状態を模式的に表している。
なお、ローカルステートマシン13及び実行制御部14の機能を実現するプログラムと、後述するプリミティブステートマシン32と実行制御部33の機能を実現するプログラムは、制御プログラムに相当する。
次に、図8を参照して入出力装置10の機能構成例を説明する。
第1の通信部11は、制御対象機器20と通信する。
具体的には、第1の通信部11は、通信装置704を用いて、制御対象機器20から入力値信号81を受信する。また、第1の通信部11は、通信装置704を用いて、制御対象機器20に出力値信号821又は出力値信号822を送信する。出力値信号821は、後述するローカルステートマシン13により生成された出力値を通知する信号である。一方、出力値信号822は、コントローラ30により生成された出力値を通知する信号である。
なお、第1の通信部11により行われる処理は、第1の通信処理に相当する。
第2の通信部12は、内部ネットワーク51を介してゲートウェイ40と通信する。
具体的には、第2の通信部12は、通信装置704を用いて、入力パケット72及びローカル制御状況パケット74をゲートウェイ40に送信する。
また、第2の通信部12は、通信装置704を用いて、ゲートウェイ40から初期設定パケット71及び出力パケット73を受信する。
なお、第2の通信部12により行われる処理は、第2の通信処理に相当する。
ローカルステートマシン13は、図2を用いて説明したローカルステートマシンである。
実行制御部14は、ステートマシン(ローカルステートマシン13)の現在の状態の属性がリモート制御属性であれば、制御対象機器20への出力値を生成する出力値生成処理を制御対象機器20にとってのリモート環境にあるリモート機器(コントローラ30)に実行させる。一方、ステートマシン(ローカルステートマシン13)の現在の状態の属性がローカル制御属性であれば、実行制御部14は、出力値生成処理を制御対象機器20にとってのローカル環境にあるローカル機器(入出力装置10)に実行させる。
また、実行制御部14は、第2の通信部12から初期設定パケット71を取得する。
そして、実行制御部14は、初期設定パケット71に含まれるローカルステートマシンプログラムをローカルステートマシン13に設定する。つまり、実行制御部14は、ローカルステートマシン13がローカルステートマシンプログラムを実行できるようにローカルステートマシンプログラムを主記憶装置902に実装する。実行制御部14がローカルステートマシンプログラムをローカルステートマシン13に設定することにより、演算手段が実行可能になる。
また、実行制御部14は、初期設定パケット71に含まれる状態属性テーブルを主記憶装置902に実装する。図8に示す状態属性テーブル16は、主記憶装置902に実装された状態の状態属性テーブルを表している。実行制御部14は状態属性テーブル16を参照可能である。
また、実行制御部14は、第1の通信部11から入力値信号81を取得する。また、実行制御部14は、入力値信号81から、入力信号を通知する入力パケット72を生成する。そして、入力パケット72を第2の通信部12に出力する。
このように、実行制御部14は、制御対象機器20からの入力値を受信し、入力パケット72にて制御対象機器20からの入力値をコントローラ30に通知する。
また、実行制御部14は、次に入力値信号81を取得するまで、入力値を内部バッファである入力値バッファ(不図示)に保持しておく。
更に、実行制御部14は、状態属性テーブル16を参照して、ローカルステートマシン13の現在の状態の属性がリモート制御属性であるかローカル制御属性であるかを判定する。ローカルステートマシン13の現在の状態とは、後述する制御周期T1の到来時のローカルステートマシン13の状態である。
ローカルステートマシン13の現在の状態の属性がローカル制御属性であれば、実行制御部14は、ローカルステートマシン13に出力値生成処理を実行させる。つまり、実行制御部14は、制御対象機器20からの入力値をローカルステートマシン13に通知し、ローカルステートマシン13に入力値を用いた出力値生成処理を実行させる。
そして、実行制御部14は、ローカルステートマシン13で生成された出力値を通知する出力値信号821を生成し、出力値信号821を第1の通信部11に出力する。
また、実行制御部14は、ローカルステートマシン13の現在の状態がローカル制御属性であれば、入力値に基づいてローカルステートマシン13に状態遷移先を決定させ、ローカルステートマシン13の状態を状態遷移先に遷移させる。また、実行制御部14は、ローカルステートマシン13に共有内部値の更新値を生成させる。
そして、実行制御部14は、状態遷移先及び共有内部値の更新値を通知するローカル制御状況パケット74を生成し、ローカル制御状況パケット74を第2の通信部12に出力する。
このように、ローカルステートマシン13の現在の状態の属性がローカル制御属性であるときには、実行制御部14は、コントローラ30に状態遷移先、共有内部値の更新値を通知する。
一方、ローカルステートマシン13の現在の状態の属性がリモート制御属性である場合は、実行制御部14は、第2の通信部12から出力パケット73を取得する。そして、実行制御部14は、出力パケット73から、制御対象機器20への出力値を通知する出力値信号822を生成し、出力値信号822を第1の通信部11に出力する。つまり、実行制御部14は、出力値を制御対象機器20に通知する。
更に、実行制御部14は、ローカルステートマシン13の状態を、出力パケット73で通知された状態遷移先に遷移させる。また、実行制御部14は、共有内部値を、出力パケット73で通知された共有内部値の更新値に更新する。
実行制御部14は、ローカル実行制御部に相当する。また、実行制御部14により行われる処理は、ローカル実行制御処理に相当する。
また、実行制御部14と、後述する実行制御部33とにより行われる処理は、実行制御処理に相当する。
内部値バッファ15は、共有内部値を含む内部値を保持するバッファである。なお、制御対象機器20の制御に内部値が不要な場合は、内部値バッファ15は省略してもよい。
図9は、本実施の形態に係るコントローラ30の機能構成例を示す。
また、図26は、コントローラ30のハードウェア構成例を示す。
先ず、図26を参照してコントローラ30のハードウェア構成例を説明する。
本実施の形態に係るコントローラ30は、サーバなどのコンピュータである。
コントローラ30は、ハードウェアとして、プロセッサ801、主記憶装置802、補助記憶装置803及び通信装置804を備える。なお、仮想化環境上において、これらハードウェアは同等な機能を持つ仮想ハードウェアとして実現されていてもよい。この場合、複数のサーバなどの複数のコンピュータによって仮想ハードウェアが構築されていてもよい。
補助記憶装置803には、図9を参照して後述する通信部31、プリミティブステートマシン32及び実行制御部33の機能を実現するプログラムが記憶されている。通信部31及び実行制御部33の機能を実現するプログラムは、パケット処理プログラムに相当する。
これらプログラムは、補助記憶装置803から主記憶装置802にロードされる。そして、プロセッサ801がこれらプログラムを実行して、後述する通信部31、プリミティブステートマシン32及び実行制御部33の動作を行う。
図26では、プロセッサ801が通信部31、プリミティブステートマシン32及び実行制御部33の機能を実現するプログラムを実行している状態を模式的に表している。
なお、前述したように、プリミティブステートマシン32と実行制御部33の機能を実現するプログラムと、ローカルステートマシン13及び実行制御部14の機能を実現するプログラムは、制御プログラムに相当する。
次に、図9を参照してコントローラ30の機能構成例を説明する。
通信部31は、ゲートウェイ40と通信する。
具体的には、通信部31は、通信装置804を用いて、ゲートウェイ40に初期設定パケット71を送信する。
また、通信部31は、通信装置804を用いて、ゲートウェイ40から入力パケット72を受信する。
また、通信部31は、通信装置804を用いて、ゲートウェイ40に出力パケット73を送信する。
更に、通信部31は、通信装置804を用いて、ゲートウェイ40からローカル制御状況パケット74を受信する。
プリミティブステートマシン32は、図2を用いて説明したプリミティブステートマシンである。
実行制御部33は、ステートマシン(プリミティブステートマシン32)の現在の状態の属性がリモート制御属性であれば、制御対象機器20への出力値を生成する出力値生成処理を制御対象機器20にとってのリモート環境にあるリモート機器(コントローラ30)に実行させる。一方、ステートマシン(プリミティブステートマシン32)の現在の状態の属性がローカル制御属性であれば、実行制御部33は、出力値生成処理を制御対象機器20にとってのローカル環境にあるローカル機器(入出力装置10)に実行させる。
実行制御部33は、初期設定パケット71を生成する。
具体的には、実行制御部33は、プリミティブステートマシン32に含まれるN個の状態に対し、(N-L)個のリモート制御属性を有する状態と、L個のローカル制御属性を有する状態を決定する。そして、実行制御部33は、L個のローカル制御属性に対応する演算手段を実現するローカルステートマシンプログラムを生成する。そして、実行制御部33は、生成したローカルステートマシンプログラムと状態属性テーブル35が含まれる初期設定パケット71を生成し、生成した初期設定パケット71を通信部31に出力する。
また、実行制御部33は、通信部31から入力パケット72を取得する。
そして、実行制御部33は、状態属性テーブル35を参照して、プリミティブステートマシン32の現在の状態の属性がリモート制御属性であるかローカル制御属性であるかを判定する。プリミティブステートマシン32の現在の状態とは、実行制御部33が制御対象機器20からの入力値を通知されたとき(つまり、入力パケット72を取得したとき)のプリミティブステートマシン32の状態、又は、後述する制御周期T2の到来時のプリミティブステートマシン32の状態である。
プリミティブステートマシン32の現在の状態の属性がリモート制御属性であれば、実行制御部33は、プリミティブステートマシン32に出力値生成処理を実行させる。つまり、実行制御部33は、制御対象機器20からの入力値をプリミティブステートマシン32に通知し、プリミティブステートマシン32に入力値を用いた出力値生成処理を実行させる。また、実行制御部33は、プリミティブステートマシン32の現在の状態がリモート制御属性であれば、入力値に基づいてプリミティブステートマシン32に状態遷移先を決定させ、プリミティブステートマシン32の状態を状態遷移先に遷移させる。また、実行制御部33は、プリミティブステートマシン32に共有内部値の更新値を生成させる。そして、実行制御部33は、出力値、状態遷移先及び共有内部値の更新値を通知する出力パケット73を生成し、出力パケット73を通信部31に出力する。
このように、プリミティブステートマシン32の現在の状態の属性がリモート制御属性であるときには、実行制御部33は、ゲートウェイ40を介して入出力装置10に出力値、状態遷移先、共有内部値の更新値を通知する。
一方、プリミティブステートマシン32の現在の状態の属性がローカル制御属性である場合は、実行制御部33は、通信部31からローカル制御状況パケット74を取得する。そして、実行制御部33は、プリミティブステートマシン32の状態を、ローカル制御状況パケット74で通知された状態遷移先に遷移させる。また、実行制御部33は、共有内部値を、ローカル制御状況パケット74で通知された共有内部値の更新値に更新する。
実行制御部33は、リモート実行制御部に相当する。また、実行制御部33により行われる処理は、リモート実行制御処理に相当する。
また、実行制御部33と実行制御部14とにより行われる処理は、実行制御処理に相当する。
内部値バッファ34は、共有内部値を含む内部値を保持するバッファである。なお、制御対象機器20の制御に内部値が不要な場合は、内部値バッファ34は省略してもよい。
状態属性テーブル35は、図7に示した状態属性テーブルである。
***動作の説明***
次に、本実施の形態に係るコントローラ30と入出力装置10の動作例を説明する。
コントローラ30と入出力装置10の動作は、初期化処理時の動作と、初期化処理後の動作に大別される。
先ず、初期化処理時の動作を説明する。
<<初期化処理時の動作>>
図10は、初期化処理を示す。
先ず、ステップS11において、実行制御部33が状態属性テーブル35を生成する。
具体的には、実行制御部33は、プリミティブステートマシン32のN個の状態のそれぞれの属性を決定する。例えば、実行制御部33は、要求応答時間が短い順に規定数の状態の属性をローカル制御属性に設定する。また、実行制御部33は、残りの状態の属性をリモート制御属性に設定する。例えば、実行制御部33は、N個の状態のうち、L個の状態の属性をローカル制御属性に設定し、(N-L)個の状態の属性をリモート制御属性に設定する。そして、実行制御部33は、各状態の属性を示す状態属性テーブル35を生成する。
次に、ステップS12において、実行制御部33がローカルステートマシンプログラムを生成する。
例えば、実行制御部33は、ローカル制御属性が設定されたL個の状態に対応するL個の演算手段が含まれるプログラムをローカルステートマシンプログラムとして生成する。
次に、ステップS13において、実行制御部33は初期設定パケット71を生成し、生成した初期設定パケット71を通信部31から入出力装置10に送信する。
つまり、実行制御部33は、ステップS11で生成した状態属性テーブル35とステップS12で生成したローカルステートマシンプログラムが含まれるパケットを初期設定パケット71として生成する。そして、実行制御部33は、初期設定パケット71を通信部31に出力し、通信部31がゲートウェイ40に初期設定パケット71を送信する。ゲートウェイ40は、初期設定パケット71を入出力装置10に転送する。最終的に、入出力装置10は、ゲートウェイ40から初期設定パケット71を受信する。
次に、ステップS14において、実行制御部14が、初期設定パケット71に含まれる状態属性テーブル35を状態属性テーブル16として参照可能にする。更に、実行制御部14は、初期設定パケット71に含まれるローカルステートマシンプログラムをローカルステートマシン13に設定する。
つまり、第2の通信部12が、初期設定パケット71を受信し、初期設定パケット71を実行制御部14に出力する。実行制御部14は、初期設定パケット71から状態属性テーブル35を抽出し、抽出した状態属性テーブル35を主記憶装置702に実装して、状態属性テーブル16として参照可能にする。また、実行制御部14は、初期設定パケット71からローカルステートマシンプログラムを抽出し、抽出したローカルステートマシンプログラムを主記憶装置702に実装して、ローカルステートマシン13がローカルステートマシンプログラムを実行可能にする。
<<初期化処理後の動作>>
次に、初期化処理後の動作を説明する。
図11は、入出力装置10による入力処理の例を示す。
図11を用いて、入力処理を説明する。
図11に示すフローは、規定の制御周期T1ごとに開始されるものとする。
先ず、ステップS21において、第1の通信部11が制御対象機器20から入力値信号81を受信する。
第1の通信部11は、受信した入力値信号81を実行制御部14に出力する。
次に、ステップS22において、実行制御部14が入力値を用いて入力パケット72を生成する。
つまり、実行制御部14は、入力値信号81から入力値を抽出し、抽出した入力値を用いて入力パケット72を生成する。そして、実行制御部14は、入力パケット72を第2の通信部12に出力する。
なお、実行制御部14は、次の制御周期T1が到来して再度ステップS22を実施するまでの間、入力値を内部バッファである入力値バッファ(不図示)に保持しておく。
次に、ステップS23において、第2の通信部12が入力パケット72をコントローラ30に送信する。
具体的には、第2の通信部12がゲートウェイ40に入力パケット72を送信する。ゲートウェイ40は、入力パケット72をコントローラ30に転送する。最終的に、コントローラ30は、ゲートウェイ40から入力パケット72を受信する。
図12は、コントローラ30の動作例を示す。
図12のフローは、入力パケット72の受信時、又は規定の制御周期T2(T2≦T1)ごとに開始されるものとする。
先ず、ステップS30において、実行制御部33がプリミティブステートマシン32の現在の状態の属性がリモート制御属性であるか否かを判定する。
より具体的には、実行制御部33が状態属性テーブル35を参照してプリミティブステートマシン32の現在の状態の属性がリモート制御属性であるか否かを判定する。実行制御部33は、プリミティブステートマシン32の現在の状態を記録するための内部バッファである状態バッファ(不図示)を有する。実行制御部33は、プリミティブステートマシン32で状態遷移が発生する度に、状態遷移先の状態をプリミティブステートマシン32の現在の状態として状態バッファに記録する。実行制御部33は、ステップS30において、状態バッファで記録されている現在の状態の属性を状態属性テーブル35を参照して判定する。例えば、状態バッファで記憶されている状態がST_1であれば、実行制御部33は状態属性テーブル35よりプリミティブステートマシン32の現在の状態の属性はリモート制御属性であると判定することができる。
プリミティブステートマシン32の現在の状態の属性がリモート制御属性であれば、処理がステップS31に進む。一方、プリミティブステートマシン32の現在の状態の属性がローカル制御属性であれば、処理がステップS37に進む。
ステップS31では、実行制御部33は、入出力装置10からの入力パケット72を受信しているか否かを判定する。つまり、実行制御部33は、通信部31から入力パケット72を取得したか否かを判定する。
入出力装置10からの入力パケット72を受信している場合は、処理がステップS32に進む。一方、入出力装置10からの入力パケット72を受信していない場合は、処理が終了する。
ステップS32では、実行制御部33は、制御対象機器20からの入力値と共有内部値をプリミティブステートマシン32に通知する。
つまり、実行制御部33は、入力パケット72に含まれる入力値と、内部値バッファ34に保持されている共有内部値をプリミティブステートマシン32に通知する。
次に、ステップS33において、プリミティブステートマシン32が現在の状態に対応する演算手段を実行して、実行制御部33から通知された入力値と共有内部値を用いて、出力値、状態遷移先及び共有内部値の更新値を生成する。
また、プリミティブステートマシン32は、出力値、状態遷移先及び共有内部値の更新値を実行制御部33に通知する。
次に、ステップS34において、プリミティブステートマシン32は、ステップS33で生成した状態遷移先に状態を遷移させる。
次に、ステップS35において、実行制御部33が、内部値バッファ34を共有内部値の更新値を用いて更新し、また、出力値、状態遷移先及び共有内部値の更新値を通知する出力パケット73を生成する。
そして、実行制御部33は、出力パケット73を通信部31に出力する。
また、実行制御部33は、状態バッファの現在の状態を状態遷移先の状態に更新する。
次に、ステップS36において、通信部31が入出力装置10に出力パケット73を送信する。
具体的には、通信部31がゲートウェイ40に出力パケット73を送信する。ゲートウェイ40は、出力パケット73を入出力装置10に転送する。最終的に、入出力装置10は、ゲートウェイ40から出力パケット73を受信する。
このように、プリミティブステートマシン32の現在の状態の属性がリモート制御属性である場合は、実行制御部33は、入力値及び共有内部値をプリミティブステートマシン32に通知することで、プリミティブステートマシン32に、出力値、状態遷移先及び共有内部値の更新値を生成させ、また、プリミティブステートマシン32に状態を状態遷移先に遷移させる。更に、実行制御部33は、プリミティブステートマシン32により生成された出力値、状態遷移先及び共有内部値の更新値を通知する出力パケット73を入出力装置10に送信する。
ステップS31においてプリミティブステートマシン32の現在の状態の属性がローカル制御属性であると判定された場合は、ステップS37において、実行制御部33は、ローカル制御状況パケット74を受信済みであるか否かを判定する。
つまり、実行制御部33は、通信部31からローカル制御状況パケット74を取得しているか否かを判定する。
ローカル制御状況パケット74を受信済みであれば、処理がステップS38に進む。一方、ローカル制御状況パケット74を受信していない場合は、処理がステップS391に進む。
ステップS391では、実行制御部33は、リモート制御属性の状態からローカル制御属性の状態に遷移してから一度はローカル制御状況パケット74を受信しているか否かを判定する。ローカル制御状況パケット74を一度も受信していない場合には、処理がステップS392に進む。一度でもローカル制御状況パケット74を受信している場合は、処理が終了する。
ステップS392では、実行制御部33は、直前のリモート制御属性の状態で生成した出力パケット73を、入出力装置10に再度送信する。なお、当該出力パケット73は、本処理のためにバッファされているものとする。ステップS392の後、処理が終了する。
ステップS38では、実行制御部33は、ローカル制御状況パケット74に示される状態遷移先をプリミティブステートマシン32に通知する。
また、実行制御部33は、内部値バッファ34をローカル制御状況パケット74に示される共有内部値の更新値で更新する。
また、実行制御部33は、状態バッファの現在の状態を状態遷移先の状態に更新する。
次に、ステップS39において、プリミティブステートマシン32が、実行制御部33から通知された状態遷移先に状態を遷移させる。
このように、プリミティブステートマシン32の現在の状態の属性がローカル制御属性である場合は、実行制御部33は、入出力装置10で決定された状態遷移先をプリミティブステートマシン32に通知することで、プリミティブステートマシン32に状態を入出力装置10で決定された状態遷移先に遷移させる。更に、実行制御部33は、入出力装置10で決定された共有内部値の更新値を用いて内部値バッファ34を更新する。
図13及び図14は、入出力装置10の動作例を示す。
図13及び図14のフローは、制御周期T1ごとに開始されるものとする。
先ず、ステップS41において、実行制御部14がローカルステートマシン13の現在の状態の属性がリモート制御属性であるか否かを判定する。
より具体的には、実行制御部14が状態属性テーブル16を参照してローカルステートマシン13の現在の状態の属性がリモート制御属性であるか否かを判定する。実行制御部14は、ローカルステートマシン13の現在の状態を記録するための内部バッファである状態バッファ(不図示)を有する。実行制御部14は、ローカルステートマシン13で状態遷移が発生する度に、状態遷移先の状態をローカルステートマシン13の現在の状態として状態バッファに記録する。実行制御部14は、ステップS41において、状態バッファで記録されている現在の状態の属性を状態属性テーブル16を参照して判定する。例えば、状態バッファで記憶されている状態がST_1であれば、実行制御部14は状態属性テーブル16よりローカルステートマシン13の現在の状態の属性はリモート制御属性であると判定することができる。
ローカルステートマシン13の現在の状態の属性がリモート制御属性であれば、処理がステップS42に進む。一方、ローカルステートマシン13の現在の状態の属性がローカル制御属性であれば、処理が図14のステップS47に進む。
ステップS42では、実行制御部14は、コントローラ30からの出力パケット73を受信しているか否かを判定する。つまり、実行制御部14は、第2の通信部12から出力パケット73を取得したか否かを判定する。
コントローラ30からの出力パケット73を受信している場合は、処理がステップS43に進む。一方、コントローラ30からの出力パケット73を受信していない場合は、処理がステップS45に進む。
ステップS43では、実行制御部14は、出力値信号822を制御対象機器20に出力し、内部値バッファ15を更新し、状態遷移先をローカルステートマシン13に通知する。
つまり、実行制御部14は、出力パケット73に含まれる出力値を通知する出力値信号822を生成し、生成した出力値信号822を第1の通信部11に出力する。そして、第1の通信部11が出力値信号822を制御対象機器20に送信する。
また、実行制御部14は、出力パケット73に含まれる共有内部値の更新値を用いて内部値バッファ15を更新する。
更に、実行制御部14は、出力パケット73に含まれる状態遷移先をローカルステートマシン13に通知する。
次に、ステップS44において、ローカルステートマシン13が、実行制御部14から通知された状態遷移先に状態を遷移させる。
また、ステップS45では、実行制御部14は、出力パケット73を受信していない状態がT_err秒継続しているか否かを判定する。
出力パケット73を受信していない状態がT_err秒継続している場合は、処理がステップS46に進む。一方、出力パケット73を受信していない状態がT_err秒未満であれば、処理がステップS53に進む。
ステップS53では、実行制御部33は、ローカル制御属性の状態からリモート制御属性の状態に遷移してから一度は出力パケット73を受信しているか否かを判定する。出力パケット73を一度も受信していない場合には、処理がステップS54に進む。一度でも出力パケット73を受信している場合は、処理が終了する。
ステップS54では、実行制御部33は、直前のローカル制御属性の状態で生成したローカル制御状況パケット74を、コントローラ30に再度送信する。なお、当該ローカル制御状況パケット74は、本処理のためにバッファされているものとする。ステップS54の後、処理が終了する。
ステップS46では、実行制御部14は、規定の通信エラー処理を行う。通信エラー処理は、例えば、非常停止等のフェールセーフ処理である。
このように、ローカルステートマシン13の現在の状態の属性がリモート制御属性である場合は、実行制御部14は、コントローラ30で決定された状態遷移先をローカルステートマシン13に通知することで、ローカルステートマシン13に状態をコントローラ30で決定された状態遷移先に遷移させる。更に、実行制御部14は、コントローラ30で決定された共有内部値の更新値を用いて内部値バッファ15を更新する。
ステップS41においてローカルステートマシン13の現在の状態の属性がローカル制御属性であると判定された場合は、ステップS47において、実行制御部14は、制御対象機器20からの入力値と共有内部値をローカルステートマシン13に通知する。
つまり、実行制御部14は、図11のステップS21において制御対象機器20から受信した入力値信号81に含まれる入力値と、内部値バッファ15に保持されている共有内部値をローカルステートマシン13に通知する。入力値は入力値バッファ(不図示)に保存されている値である。
ステップS48では、ローカルステートマシン13が現在の状態に対応する演算手段を実行して、実行制御部14から通知された入力値と共有内部値を用いて、出力値、状態遷移先及び共有内部値の更新値を生成する。
また、ローカルステートマシン13は、出力値、状態遷移先及び共有内部値の更新値を実行制御部14に通知する。
次に、ステップS49において、ローカルステートマシン13は、ステップS48で生成した状態遷移先に状態を遷移させる。
次に、ステップS50において、実行制御部14が、出力値信号821を制御対象機器20に出力し、また、内部値バッファ15を更新する。
つまり、実行制御部14は、ステップS48でローカルステートマシン13により生成された出力値を通知する出力値信号821を生成し、生成した出力値信号821を第1の通信部11に出力する。そして、第1の通信部11が出力値信号821を制御対象機器20に送信する。
また、実行制御部14は、ステップS48でローカルステートマシン13により生成された共有内部値の更新値を用いて内部値バッファ15を更新する。
また、実行制御部14は、状態バッファの現在の状態を状態遷移先の状態に更新する。
次に、ステップS51において、実行制御部14は、ローカル制御状況パケット74を生成する。
つまり、ステップS48でローカルステートマシン13により生成された状態遷移先及び共有内部値の更新値を通知するパケットをローカル制御状況パケット74として生成する。そして、ローカル制御状況パケット74を第2の通信部12に出力する。
次に、ステップS52において、第2の通信部12がローカル制御状況パケット74をコントローラ30に送信する。
具体的には、第2の通信部12がゲートウェイ40にローカル制御状況パケット74を送信する。ゲートウェイ40は、ローカル制御状況パケット74をコントローラ30に転送する。最終的に、コントローラ30は、ゲートウェイ40からローカル制御状況パケット74を受信する。
このように、ローカルステートマシン13の現在の状態の属性がローカル制御属性である場合は、実行制御部14は、入力値及び共有内部値をローカルステートマシン13に通知することで、ローカルステートマシン13に、出力値、状態遷移先及び共有内部値の更新値を生成させ、また、ローカルステートマシン13に状態を状態遷移先に遷移させる。更に、実行制御部14は、ローカルステートマシン13により生成された状態遷移先及び共有内部値の更新値を通知するローカル制御状況パケット74をコントローラ30に送信する。
***実施の形態の効果の説明***
以上、本実施の形態によれば、リモート機器(コントローラ30)とローカル機器(入出力装置10)との間で、出力値生成処理を実行させる機器を状態遷移に応じて状態ごとに切り替えることができる。
つまり、本実施の形態によれば、ステートマシンで定義できる制御仕様に基づく制御システム60において、各状態における処理を、要求される応答性を考慮してコントローラ30又は入出力装置10に分散させることができる。また、本実施の形態によれば、状態ごとの出力値生成処理を、状態遷移の順序及び状態遷移の条件を考慮して制御することができる。
この結果、本実施の形態によれば、通信遅延及び/又はパケットロスが原因で発生する通信エラーによるフェールセーフ処理等のエラー処理の頻度を低減することができる。このため、制御システム60の可用性を向上させることができる。
次に、本実施の形態により得られる効果の例を、図15を用いて説明する。なお、図15に示す「演算結果生成」には、出力値の生成、状態遷移先の生成、共有内部値の更新値の生成が含まれる。
図15の(a)は、本実施の形態に係る制御方法を用いない場合の演算結果生成処理の実行例を示す。
図15の(a)の例では、全ての状態で演算結果生成処理をコントローラ30のプリミティブステートマシン32で行う必要がある。
このとき、入出力装置10の出力処理におけるタイムアウトの時間(図14のステップS45のT_errに相当)は、プリミティブステートマシン32で演算結果生成処理が行われる状態の要求応答時間の最小値を考慮して設定する必要がある。従って、図15の(a)の例では、入出力装置10の出力処理におけるタイムアウトの時間は、ST_2の要求応答時間である0.5秒を考慮して設定する必要がある。
図15の(b)は、本実施の形態に係る制御方法を用いた場合の演算結果生成処理の実行例を示す。
図15の(b)の例では、ST_0、ST_1及びST_3の演算結果生成処理はコントローラ30のプリミティブステートマシン32で行われる。一方、要求応答時間が小さいST_2の演算結果生成処理は入出力装置10のローカルステートマシン13で行われる。
前述のように、入出力装置10の出力処理におけるタイムアウトの時間(図14のステップS45のT_errに相当)は、プリミティブステートマシン32で演算結果生成処理が行われる状態の要求応答時間の最小値を考慮して設定する必要がある。図15の(b)の例では、入出力装置10の出力処理におけるタイムアウトの時間は、ST_3の要求応答時間である4秒を考慮して設定すればよい。
このため、図15の(a)の例よりも図15の(b)の例の方がタイムアウトの時間を長く設定できる。従って、本実施の形態によれば、通信エラーによってフェールセーフ処理等のエラー処理が行われる頻度を低減することができる。この結果、制御システム60の可用性を向上させることができる。
実施の形態2.
本実施の形態では、複数の入出力装置10が含まれる制御システム60を説明する。そして、本実施の形態では、ある入出力装置10のローカルステートマシン13が、他の入出力装置10が制御対象機器20から取得する入力値を用いて、当該制御対象機器20への出力値を生成する。
本実施の形態では、主に実施の形態1との差異を説明する。
なお、以下で説明していない事項は、実施の形態1と同様である。
***構成の説明***
図16は、本実施の形態に係る制御システム60の構成例を示す。
図16では、入出力装置(A)10aと入出力装置(B)10bという2つの入出力装置10が存在する。そして、図16の構成では、入出力装置(A)10aから入出力装置(B)10bにローカル入力パケット75が送信される。ローカル入力パケット75は、入出力装置(A)10aが制御対象機器20から取得した入力値を入出力装置(B)10bに通知するためのパケットである。
本実施の形態では、入出力装置(B)10bに含まれるローカルステートマシン13が、ローカル入力パケット75で通知される制御対象機器20からの入力値を用いて、制御対象機器20への出力値の生成、状態遷移先の特定及び共有内部値の更新を行う。本実施の形態では、入出力装置(B)10bがローカル機器に相当する。
入出力装置(A)10a及び入出力装置(B)10bの機能構成例は、図8に示す入出力装置10の機能構成例と同じである。また、入出力装置(A)10a及び入出力装置(B)10bのハードウェア構成例は、図25に示す入出力装置10のハードウェア構成例と同じである。
***動作の説明***
<<初期化処理時の動作>>
初期化処理時の動作は、実施の形態1と同じである。このため、初期化処理時の動作の説明は省略する。
<<初期化処理後の動作>>
図17は、入出力装置(A)10a及び入出力装置(B)10bによるローカル入力処理の例を示す。
入出力装置(A)10aは、実施の形態1に示した入力処理(図11)に加え、図17に示すローカル入力処理も行う。
図17に示すフローは、規定の制御周期T1ごとに開始されるものとする。
先ず、ステップS61において、入出力装置(A)10aの第1の通信部11が制御対象機器20から入力値信号81を受信する。
入出力装置(A)10aの第1の通信部11は、受信した入力値信号81を入出力装置(A)10aの実行制御部14に出力する。
次に、ステップS62において、入出力装置(A)10aの実行制御部14が入力値を用いてローカル入力パケット75を生成する。
つまり、実行制御部14は、入力値信号81から入力値を抽出し、抽出した入力値を用いてローカル入力パケット75を生成する。そして、実行制御部14は、ローカル入力パケット75を第2の通信部12に出力する。ローカル入力パケット75は、例えば、ヘッダ、入力値及びフッタで構成される。
なお、入出力装置(A)10aの実行制御部14は、次の制御周期T1が到来して新たにステップS62を実施するまでの間、入力値を内部バッファである入力値バッファ(不図示)に保持しておく。
次に、ステップS63において、入出力装置(A)10aの第2の通信部12がローカル入力パケット75を内部ネットワーク51に送信する。
なお、入出力装置(A)10aの第2の通信部12は、ローカル入力パケット75をユニキャスト、ブロードキャスト、マルチキャストのいずれで送信してもよい。
入出力装置(B)10bは、内部ネットワーク51からローカル入力パケット75を受信する。
なお、上記では、図17のフローが制御周期T1ごとに開始される例を説明した。制御周期T1の到来の他に、図17のフローが以下のいずれかのタイミングで開始されてもよい。
1)コントローラ30のプリミティブステートマシン32の現在の状態及び入出力装置(B)10bのローカルステートマシン13の現在の状態の属性がローカル制御属性であるとき
この例では、入出力装置(A)10aの実行制御部14は、任意の手段により、コントローラ30のプリミティブステートマシン32又は入出力装置(B)10bのローカルステートマシン13の現在の状態の属性を認識することができるものとする。そして、入出力装置(A)10aの実行制御部14が、コントローラ30のプリミティブステートマシン32又は入出力装置(B)10bのローカルステートマシン13の現在の状態の属性がローカル制御属性であることを認識した場合に、図17のフローが開始する。
2)入出力装置(A)10aが入出力装置(B)10bからローカル入力パケット75の送信要求を受信したとき
この場合は、入出力装置(B)10bの実行制御部14がローカル入力パケット75の送信要求を生成し、入出力装置(B)10bの第2の通信部12が当該送信要求を入出力装置(A)10aに送信する。そして、入出力装置(A)10aの第1の通信部11が送信要求を受信し、第1の通信部11が送信要求を受信したことを実行制御部14が認識した場合に、図17のフローが開始される。
上記の1)及び2)のタイミングで図17のフローが開始できるように、図17のフローにステップを追加してもよい。
本実施の形態では、コントローラ30の動作例は実施の形態1(図12)と同じである。このため、本実施の形態に係るコントローラ30の動作例は説明を省略する。
図18及び図19は、入出力装置(B)10bの動作例を示す。
図18のステップS71~ステップS76、ステップS86及びステップS87は、図13のステップS41~ステップS46、ステップS53及びステップS54と同じである。このため、ステップS71~ステップS76、ステップS86及びステップS87の説明は省略する。
図19では、ステップS77において、入出力装置(B)10bの実行制御部14は、入出力装置(A)10aからローカル入力パケット75を受信済みであるか否かを判定する。
入出力装置(A)10aからローカル入力パケット75を受信済みである場合は、処理がステップS78に進む。一方、入出力装置(A)10aからローカル入力パケット75を受信していない場合は、処理がステップS84に進む。
ステップS78では、入出力装置(B)10bの実行制御部14は、制御対象機器20からの入力値と共有内部値をローカルステートマシン13に通知する。
つまり、実行制御部14は、図17のステップS61において入出力装置(A)10aから受信したローカル入力パケット75に含まれる入力値と、内部値バッファ15に保持されている共有内部値をローカルステートマシン13に通知する。
ステップS79~ステップS83は、図14のステップS48~ステップS52と同じである。このため、ステップS79~ステップS83の説明は省略する。
ステップS77においてローカル入力パケット75を受信していないと判定された場合は、ステップS84において、入出力装置(B)10bの実行制御部14は、ローカル入力パケット75を受信していない状態がT_err_loc秒継続しているか否かを判定する。
ローカル入力パケット75を受信していない状態がT_err_loc秒継続している場合は、処理がステップS85に進む。一方、ローカル入力パケット75を受信していない状態がT_err_loc秒未満であれば、処理が終了する。
ステップS85では、入出力装置(B)10bの実行制御部14は、規定の通信エラー処理を行う。通信エラー処理は、例えば、非常停止等のフェールセーフ処理である。
なお、実施の形態1で述べたように、内部ネットワーク51は、想定済みのトラフィックしか存在せず、通信の遅延及びジッタの最悪値の予測が容易な通信路である。そのため、図19において処理がステップS77からステップS84に進む可能性は非常に小さいことが想定される。
***実施の形態の効果の説明***
本実施の形態によれば、複数の入出力装置10が存在する場合でも、実施の形態1と同様の効果を得ることができる。つまり、ある入出力装置10のローカルステートマシン13が、他の入出力装置10が制御対象機器20から取得する入力値を用いて、当該制御対象機器20への出力値を生成する場合にも、実施の形態1と同様の効果を得ることができる。
実施の形態3.
本実施の形態では、入出力装置10ではなく、ゲートウェイ40がローカル機器として機能する例を説明する。
実施の形態1及び実施の形態2では、入出力装置10がローカルステートマシン13と実行制御部14を有し、入出力装置10がローカル機器として機能している。しかし、従来機器との互換性又はコストの問題から、入出力装置10にローカルステートマシン13と実行制御部14を実装することが困難な事態も想定される。
本実施の形態では、このような事態に対処するために、ゲートウェイ40に、実施の形態1及び実施の形態2で説明したローカルステートマシン13と実行制御部14と同様の構成をゲートウェイ40に配置し、ゲートウェイ40をローカル機器として機能させる。
本実施の形態では、主に実施の形態1との差異を説明する。
なお、以下で説明していない事項は、実施の形態1と同様である。
***構成の説明***
図20は、本実施の形態に係る制御システム60の構成例を示す。
本実施の形態では、入出力装置10ではなく、ゲートウェイ40がローカル機器に相当する。
また、本実施の形態では、入出力装置10は、入力パケット721をゲートウェイ40に送信する。
ゲートウェイ40は、入力パケット721を受信し、入力パケット722とローカル制御状況パケット741をコントローラ30に送信する。
入力パケット721及び入力パケット722は、ヘッダに含まれるアドレス以外は図1に示す入力パケット72と同じである。入力パケット72では、宛先アドレスがコントローラ30のアドレスであり、送信元アドレスが入出力装置10のアドレスである。入力パケット721では、宛先アドレスがゲートウェイ40のアドレスであり、送信元アドレスが入出力装置10のアドレスである。入力パケット722では、宛先アドレスがコントローラ30のアドレスであり、送信元アドレスがゲートウェイ40のアドレスである。
また、ローカル制御状況パケット741は、ヘッダに含まれるアドレス以外は図1に示すローカル制御状況パケット74と同じである。ローカル制御状況パケット74では、宛先アドレスがコントローラ30のアドレスであり、送信元アドレスが入出力装置10のアドレスである。ローカル制御状況パケット741では、宛先アドレスがコントローラ30のアドレスであり、送信元アドレスがゲートウェイ40のアドレスである。
また、本実施の形態では、コントローラ30は、初期設定パケット711と出力パケット731をゲートウェイ40に送信する。
ゲートウェイ40は、初期設定パケット711と出力パケット731を受信し、出力パケット732を入出力装置10に送信する。
初期設定パケット711は、ヘッダに含まれるアドレス以外は図1に示す初期設定パケット71と同じである。初期設定パケット71では、宛先アドレスが入出力装置10であり、送信元アドレスがコントローラ30である。初期設定パケット711では、宛先アドレスがゲートウェイ40であり、送信元アドレスがコントローラ30である。
出力パケット731及び出力パケット732は、ヘッダに含まれるアドレス以外は図1に示す出力パケット73と同じである。出力パケット73では、宛先アドレスが入出力装置10であり、送信元アドレスがコントローラ30である。出力パケット731では、宛先アドレスがゲートウェイ40であり、送信元アドレスがコントローラ30である。出力パケット732では、宛先アドレスが入出力装置10であり、送信元アドレスがゲートウェイ40である。
出力パケット731には、出力パケット73と同様に、出力値、状態遷移先及び共有内部値の更新値が含まれる。出力パケット732は、出力値のみが含まれ、状態遷移先及び共有内部値の更新値は含まれないようにしてもよい。これは、本実施の形態では、入出力装置10は、状態遷移先及び共有内部値の更新値は利用しないためである。
図20に示す他の構成要素は、図1の対応する構成要素と同じである。
本実施の形態に係る入出力装置10の機能構成例の図示は省略する。本実施の形態では、入出力装置10の機能構成例として、図8に示す構成から、ローカルステートマシン13、実行制御部14、内部値バッファ15及び状態属性テーブル16を除いた構成とすることが考えられる。
コントローラ30の機能構成は、図9に示したものと同じである。このため、説明を省略する。
図21は、本実施の形態に係るゲートウェイ40の機能構成例を示す。また、図27は、本実施の形態に係るゲートウェイ40のハードウェア構成例を示す。
先ず、図27を参照してゲートウェイ40のハードウェア構成例を説明する。
本実施の形態に係るゲートウェイ40は、コンピュータである。
ゲートウェイ40は、ハードウェアとして、プロセッサ901、主記憶装置902、補助記憶装置903及び通信装置904を備える。
補助記憶装置903には、図21を参照して後述する第1の通信部41、第2の通信部42、ローカルステートマシン43及び実行制御部44の機能を実現するプログラムが記憶されている。
これらプログラムは、補助記憶装置903から主記憶装置902にロードされる。そして、プロセッサ901がこれらプログラムを実行して、後述する第1の通信部41、第2の通信部42、ローカルステートマシン43及び実行制御部44の動作を行う。
図27では、プロセッサ901が第1の通信部41、第2の通信部42、ローカルステートマシン43及び実行制御部44の機能を実現するプログラムを実行している状態を模式的に表している。
次に、図21を参照してゲートウェイ40の機能構成例を説明する。
第1の通信部41は、入出力装置10と通信する。
具体的には、第1の通信部41は、通信装置904を用いて、入出力装置10から入力パケット721を受信する。また、第1の通信部41は、通信装置904を用いて、入出力装置10に出力パケット732を送信する。
第2の通信部42は、コントローラ30と通信する。
具体的には、第2の通信部42は、通信装置904を用いて、入力パケット722及びローカル制御状況パケット741をコントローラ30に送信する。また、第2の通信部42は、通信装置904を用いて、コントローラ30から初期設定パケット711、出力パケット731を受信する。
ローカルステートマシン43は、図2を用いて説明したローカルステートマシンである。
実行制御部44は、ステートマシン(ローカルステートマシン43)の現在の状態の属性がリモート制御属性であれば、制御対象機器20への出力値を生成する出力値生成処理を制御対象機器20にとってのリモート環境にあるリモート機器(コントローラ30)に実行させる。一方、ステートマシン(ローカルステートマシン43)の現在の状態の属性がローカル制御属性であれば、実行制御部44は、出力値生成処理を制御対象機器20にとってのローカル環境にあるローカル機器(ゲートウェイ40)に実行させる。
実行制御部44は、ローカル実行制御部に相当する。
また、本実施の形態では、実行制御部44と、コントローラ30の実行制御部33とにより行われる処理が、実行制御処理に相当する。
実行制御部44の動作は、基本的に、実施の形態1で説明した実行制御部14の動作と同じであるため、詳細な説明は省略する。
内部値バッファ45は、共有内部値を含む内部値を保持するバッファである。なお、制御対象機器20の制御に内部値が不要な場合は、内部値バッファ45は省略してもよい。
状態属性テーブル46は、図7に示す状態属性テーブルである。状態属性テーブル46は、状態属性テーブル16と同じである。
***動作の説明***
<<初期化処理時の動作>>
本実施の形態では、コントローラ30とゲートウェイ40が図10に示す動作を行う。
ステップS11~ステップS13は、コントローラ30の動作である。ステップS11~ステップS13は、送受信されるパケット及びパケットの送信先が異なる以外は、実施の形態1で示したものと同じである。つまり、本実施の形態では、初期設定パケット71ではなく初期設定パケット711が、入出力装置10ではなくゲートウェイ40に送信される。
ステップS14では、実行制御部44が、初期設定パケット711に含まれる状態属性テーブル35を状態属性テーブル46として参照可能にし、初期設定パケット711に含まれるローカルステートマシンプログラムをローカルステートマシン43に設定する。
つまり、第2の通信部42が、初期設定パケット711を受信し、初期設定パケット711を実行制御部44に出力する。実行制御部44は、初期設定パケット711から状態属性テーブル35を抽出し、抽出した状態属性テーブル35を主記憶装置902に実装して、状態属性テーブル46として参照可能にする。また、実行制御部44は、初期設定パケット711からローカルステートマシンプログラムを抽出し、抽出したローカルステートマシンプログラムを主記憶装置902に実装して、ローカルステートマシン43がローカルステートマシンプログラムを実行可能にする。
<<初期化処理後の動作>>
次に、初期化処理後の動作を説明する。
図22は、ゲートウェイ40による入力処理の例を示す。
図22を用いて、入力処理を説明する。
図22に示すフローは、入力パケット721の受信ごとに開始されるものとする。
先ず、ステップS91において、実行制御部44がローカルステートマシン43の現在の状態の属性がリモート制御属性であるか否かを判定する。
より具体的には、実行制御部44が状態属性テーブル46を参照してローカルステートマシン43の現在の状態の属性がリモート制御属性であるか否かを判定する。実行制御部44は、ローカルステートマシン43の現在の状態を記録するための内部バッファである状態バッファ(不図示)を有する。実行制御部44は、ローカルステートマシン43で状態遷移が発生する度に、状態遷移先の状態をローカルステートマシン43の現在の状態として状態バッファに記録する。実行制御部44は、ステップS91において、状態バッファで記録されている現在の状態の属性を状態属性テーブル46を参照して判定する。例えば、状態バッファで記憶されている状態がST_1であれば、実行制御部44は状態属性テーブル46よりローカルステートマシン43の現在の状態の属性はリモート制御属性であると判定することができる。
ローカルステートマシン43の現在の状態の属性がローカル制御属性であれば、処理がステップS92に進む。一方、ローカルステートマシン43の現在の状態の属性がリモート制御属性であれば、処理がステップS93に進む。
ステップS92では、実行制御部44が入力値を内部バッファである入力値バッファに格納する。
つまり、実行制御部14は、第1の通信部41が入出力装置10から受信した入力パケット721から入力値を抽出し、抽出した入力値を入力値バッファに格納する。入力値バッファと状態バッファは、同じ内部バッファでもよいし、異なる内部バッファでもよい。
ステップS93では、実行制御部44は、入力パケット722をコントローラ30に送信する。
つまり、実行制御部44は、入力パケット721に含まれている入力値を通知する入力パケット722を生成し、生成した入力パケット722を第2の通信部42に出力する。そして、第2の通信部42がコントローラ30に入力パケット722を送信する。コントローラ30は、入力パケット722を受信する。
本実施の形態では、コントローラ30の動作例は実施の形態1(図12)と同じである。このため、本実施の形態に係るコントローラ30の動作例は説明を省略する。
図23は、本実施の形態に係るゲートウェイ40の動作例を示す。
図23のフローは、制御周期T1ごとまたは出力パケット731受信時に開始されるものとする。
先ず、ステップS101において、実行制御部44がローカルステートマシン43の現在の状態の属性がリモート制御属性であるか否かを判定する。
より具体的には、実行制御部44が状態属性テーブル46を参照してローカルステートマシン43の現在の状態の属性がリモート制御属性であるか否かを判定する。実行制御部44は、ローカルステートマシン43の現在の状態を記録するための内部バッファである状態バッファ(不図示)を有する。実行制御部44は、ローカルステートマシン43で状態遷移が発生する度に、状態遷移先の状態をローカルステートマシン43の現在の状態として状態バッファに記録する。実行制御部44は、ステップS101において、状態バッファで記録されている現在の状態の属性を状態属性テーブル46を参照して判定する。例えば、状態バッファで記憶されている状態がST_1であれば、実行制御部44は状態属性テーブル46よりローカルステートマシン43の現在の状態の属性はリモート制御属性であると判定することができる。
ローカルステートマシン43の現在の状態の属性がリモート制御属性であれば、処理がステップS113に進む。一方、ローカルステートマシン43の現在の状態の属性がローカル制御属性であれば、処理がステップS105に進む。
ステップS113では、実行制御部44は、出力パケット731を受信済みであるか否かを判定する。出力パケット731を受信済みであれば、処理がステップS102に進む。一方、出力パケット731を受信していなければ、処理がステップS114に進む。
ステップS102では、実行制御部44は、状態遷移先をローカルステートマシン43に通知し、内部値バッファ45を更新する。
つまり、実行制御部44は、出力パケット731に含まれる状態遷移先をローカルステートマシン43に通知する。
更に、実行制御部44は、出力パケット731に含まれる共有内部値の更新値を用いて内部値バッファ45を更新する。
次に、ステップS103において、ローカルステートマシン43が、実行制御部44から通知された状態遷移先に状態を遷移させる。
次に、ステップS104において、実行制御部44は、第1の通信部41を介して、出力パケット732を入出力装置10に送信する。
つまり、実行制御部44は、出力パケット731に含まれる出力値を通知する出力パケット732を生成する。そして、実行制御部44は、生成した出力パケット732を第1の通信部41に出力する。第1の通信部41は、出力パケット732を入出力装置10に送信する。なお、前述したように、出力パケット732には、状態遷移先及び共有内部値の更新値は含まれなくてもよい。
このように、ローカルステートマシン43の現在の状態の属性がリモート制御属性である場合は、実行制御部44は、コントローラ30で決定された状態遷移先をローカルステートマシン43に通知することで、ローカルステートマシン43に状態を入出力装置10で決定された状態遷移先に遷移させる。更に、実行制御部44は、コントローラ30で決定された共有内部値の更新値を用いて内部値バッファ15を更新する。また、実行制御部44は、コントローラ30で決定された出力値を制御対象機器20に通知する。
ステップS101においてローカルステートマシン43の現在の状態の属性がローカル制御属性であると判定された場合は、ステップS105において、実行制御部44は、制御対象機器20からの入力値と共有内部値をローカルステートマシン43に通知する。
つまり、実行制御部44は、第1の通信部41が入出力装置10から受信した入力パケット721に含まれる入力値と、内部値バッファ45に保持されている共有内部値をローカルステートマシン43に通知する。
ステップS106では、ローカルステートマシン43が現在の状態に対応する演算手段を実行して、実行制御部44から通知された入力値と共有内部値を用いて、出力値、状態遷移先及び共有内部値の更新値を生成する。
また、ローカルステートマシン43は、出力値、状態遷移先及び共有内部値の更新値を実行制御部44に通知する。
次に、ステップS107において、ローカルステートマシン43は、ステップS106で生成した状態遷移先に状態を遷移させる。
次に、ステップS108において、実行制御部44が、内部値バッファ45を更新する。
つまり、実行制御部44は、ステップS106でローカルステートマシン43により生成された共有内部値の更新値を用いて内部値バッファ15を更新する。
また、実行制御部44は、状態バッファの現在の状態を状態遷移先の状態に更新する。
次に、ステップS109において、実行制御部44は、出力パケット732を生成する。
つまり、実行制御部44は、ステップS106でローカルステートマシン43により生成された出力値を通知する出力パケット732を生成する。なお、前述したように、出力パケット732には、状態遷移先及び共有内部値の更新値は含まれなくてもよい。
そして、実行制御部44は、出力パケット732を第1の通信部41に出力する。
次に、ステップS110において、第1の通信部41が、出力パケット732を入出力装置10に送信する。
次に、ステップS111において、実行制御部44は、ローカル制御状況パケット741を生成する。
つまり、ステップS106でローカルステートマシン43により生成された状態遷移先及び共有内部値の更新値を通知するパケットをローカル制御状況パケット741として生成する。そして、ローカル制御状況パケット741を第2の通信部42に出力する。
次に、ステップS112において、第2の通信部42がローカル制御状況パケット741をコントローラ30に送信する。
ステップS113において出力パケット731が受信されていないと判定された場合は、ステップS114において、実行制御部44は、ローカル制御属性の状態からリモート制御属性の状態に遷移してから一度は出力パケット73を受信しているか否かを判定する。出力パケット731を一度も受信していない場合には、処理がステップS115に進む。一度でも出力パケット731を受信している場合は、処理が終了する。
ステップS115では、実行制御部44は、直前のローカル制御属性の状態で生成したローカル制御状況パケット741を、コントローラ30に再度送信する。なお、当該ローカル制御状況パケット741は、本処理のためにバッファされているものとする。ステップS115の後、処理が終了する。
このように、ローカルステートマシン43の現在の状態の属性がローカル制御属性である場合は、実行制御部44は、入力値をローカルステートマシン43に通知することで、ローカルステートマシン43に、出力値、状態遷移先及び共有内部値の更新値を生成させ、また、ローカルステートマシン43に状態を状態遷移先に遷移させる。更に、実行制御部44は、ローカルステートマシン43により生成された状態遷移先及び共有内部値の更新値を通知するローカル制御状況パケット741をコントローラ30に送信する。また、実行制御部44は、ローカルステートマシン43により生成された出力値を通知する出力パケット732を入出力装置10に送信する。
***実施の形態の効果の説明***
本実施の形態では、ゲートウェイ40がローカルステートマシン43と実行制御部44を有し、ローカル機器として機能する。このため、本実施の形態によれば、入出力装置10にローカルステートマシン13と実行制御部14を実装しなくても、実施の形態1と同様の効果を得ることができる。
実施の形態4.
実施の形態1~3では、実行制御部33がローカル制御属性を設定する状態の数は固定数(L個)である。本実施の形態では、実行制御部33が、ローカル制御属性を設定する状態の数を通信品質に基づいて動的に決定する例を説明する。
本実施の形態では、主に実施の形態1との差異を説明する。
なお、以下で説明していない事項は、実施の形態1と同様である。
***構成の説明***
本実施の形態では、制御システム60の構成は図1に示す通りである。
また、入出力装置10の機能構成は図8に示す通りであり、入出力装置10のハードウェア構成も図25に示す通りである。
また、コントローラ30の機能構成は図9に示す通りであり、コントローラ30のハードウェア構成も図26に示す通りである。
なお、本実施の形態では、実行制御部33は、コントローラ30が入出力装置10と通信する際に用いられる通信回線の通信品質に基づいてローカル制御属性を設定する状態の数を決定する。より具体的には、本実施の形態では、実行制御部33は、複数の状態のうち、要求応答時間が満たせないと予測される状態の属性をローカル制御属性に設定する。そして、実行制御部33は、複数の状態のうちの残りの状態の属性をリモート制御属性に設定する。
***動作の説明***
<<初期化処理時の動作>>
図24は、本実施の形態に係る初期化処理を示す。
ステップS121において、実行制御部33は、ゲートウェイ40との間のRTT(Round Trip Time)を測定し、RTTの分布を生成する。
つまり、実行制御部33は、入出力装置10と通信する際に用いられる通信回線である外部ネットワーク52の通信品質であるRTTを測定する。そして、実行制御部33は、測定したRTTの分布を生成する。なお、ステップS121で測定したRTTの測定情報に加え、ステップS121実行前に測定したRTT情報が利用できる場合には、これも含めてRTTの分布を生成しても良い。
次に、ステップS122において、実行制御部33は、ステップS121で生成したRTTの分布に基づき状態属性テーブル35を生成する。
具体的には、実行制御部33は、ステップS121で生成したRTTの分布に基づき、プリミティブステートマシン32に含まれる状態ごとに、要求応答時間を満たす確率ppを算出する。そして、実行制御部33は、確率ppが要求確率P未満である状態をローカル制御属性に設定する。また、実行制御部33は、確率ppが要求確率P以上である状態をリモート制御属性に設定する。要求確率Pは、確率ppに要求される最小値である。実行制御部33は、確率ppが要求確率P以上であれば、要求応答時間を満たせると予測する。つまり、実行制御部33は、要求応答時間が満たせないと予測される状態の属性をローカル制御属性に設定し、要求応答時間が満たせると予測される状態の属性をリモート制御属性に設定する。
ステップS123~ステップS125は、図10に示したステップS12~ステップS14と同じであるため、説明を省略する。
なお、ここでは、外部ネットワーク52の通信品質の指標としてRTTの分布を用いたが、通信品質の指標として他の指標を用いてもよい。
初期化処理後の動作は、実施の形態1と同じであるため、説明を省略する。
***実施の形態の効果の説明***
本実施の形態では、要求応答時間が満たせないと予測される状態をローカル制御属性に設定する。このため、本実施の形態によれば、ローカル制御属性を設定する状態の数を通信品質に基づいて決定しつつ、実施の形態1と同様の効果を得ることができる。
以上、実施の形態1~4を説明したが、これらの実施の形態のうち、2つ以上を組み合わせて実施しても構わない。
あるいは、これらの実施の形態のうち、1つを部分的に実施しても構わない。
あるいは、これらの実施の形態のうち、2つ以上を部分的に組み合わせて実施しても構わない。
また、これらの実施の形態に記載された構成及び手順を必要に応じて変更してもよい。
***ハードウェア構成の補足説明***
最後に、入出力装置10、コントローラ30及びゲートウェイ40のハードウェア構成の補足説明を行う。
プロセッサ701、プロセッサ801及びプロセッサ901は、それぞれ、プロセッシングを行うIC(Integrated Circuit)である。
プロセッサ701、プロセッサ801及びプロセッサ901は、それぞれ、CPU(Central Processing Unit)、DSP(Digital Signal Processor)等である。
主記憶装置702、主記憶装置802及び主記憶装置902は、それぞれ、RAM(Random Access Memory)である。
補助記憶装置703、補助記憶装置803及び補助記憶装置903は、それぞれ、ROM(Read Only Memory)、フラッシュメモリ、HDD(Hard Disk Drive)等である。
通信装置704、通信装置804及び通信装置904は、それぞれ、データの通信処理を実行する電子回路である。
通信装置704、通信装置804及び通信装置904は、それぞれ、例えば、通信チップ又はNIC(Network Interface Card)である。
また、補助記憶装置703には、OS(Operating System)が記憶されている。
そして、OSの少なくとも一部がプロセッサ701により実行される。
プロセッサ701はOSの少なくとも一部を実行しながら、第1の通信部11、第2の通信部12、ローカルステートマシン13及び実行制御部14の機能を実現するプログラムを実行する。
プロセッサ701がOSを実行することで、タスク管理、メモリ管理、ファイル管理、通信制御等が行われる。
また、補助記憶装置803にも、OSが記憶されている。
そして、OSの少なくとも一部がプロセッサ801により実行される。
プロセッサ801はOSの少なくとも一部を実行しながら、通信部31、プリミティブステートマシン32及び実行制御部33の機能を実現するプログラムを実行する。
プロセッサ801がOSを実行することで、タスク管理、メモリ管理、ファイル管理、通信制御等が行われる。
また、補助記憶装置903にも、OSが記憶されている。
そして、OSの少なくとも一部がプロセッサ901により実行される。
プロセッサ901はOSの少なくとも一部を実行しながら、第1の通信部41、第2の通信部42、ローカルステートマシン43及び実行制御部44の機能を実現するプログラムを実行する。
プロセッサ901がOSを実行することで、タスク管理、メモリ管理、ファイル管理、通信制御等が行われる。
また、第1の通信部11、第2の通信部12、ローカルステートマシン13及び実行制御部14の処理の結果を示す情報、データ、信号値及び変数値の少なくともいずれかが、主記憶装置702、補助記憶装置703、プロセッサ701内のレジスタ及びキャッシュメモリの少なくともいずれかに記憶される。
また、第1の通信部11、第2の通信部12、ローカルステートマシン13及び実行制御部14の機能を実現するプログラムは、磁気ディスク、フレキシブルディスク、光ディスク、コンパクトディスク、ブルーレイ(登録商標)ディスク、DVD等の可搬記録媒体に格納されていてもよい。そして、第1の通信部11、第2の通信部12、ローカルステートマシン13及び実行制御部14の機能を実現するプログラムが格納された可搬記録媒体を流通させてもよい。
また、第1の通信部11、第2の通信部12及び実行制御部14の「部」を、「回路」又は「工程」又は「手順」又は「処理」又は「サーキットリー」に読み替えてもよい。
また、入出力装置10は、処理回路により実現されてもよい。処理回路は、例えば、ロジックIC(Integrated Circuit)、GA(Gate Array)、ASIC(Application Specific Integrated Circuit)、FPGA(Field-Programmable Gate Array)である。
この場合は、第1の通信部11、第2の通信部12、ローカルステートマシン13及び実行制御部14は、それぞれ処理回路の一部として実現される。
また、通信部31、プリミティブステートマシン32及び実行制御部33の処理の結果を示す情報、データ、信号値及び変数値の少なくともいずれかが、主記憶装置802、補助記憶装置803、プロセッサ801内のレジスタ及びキャッシュメモリの少なくともいずれかに記憶される。
また、通信部31、プリミティブステートマシン32及び実行制御部33の機能を実現するプログラムは、磁気ディスク、フレキシブルディスク、光ディスク、コンパクトディスク、ブルーレイ(登録商標)ディスク、DVD等の可搬記録媒体に格納されていてもよい。そして、通信部31、プリミティブステートマシン32及び実行制御部33の機能を実現するプログラムが格納された可搬記録媒体を流通させてもよい。
また、通信部31及び実行制御部33の「部」を、「回路」又は「工程」又は「手順」又は「処理」又は「サーキットリー」に読み替えてもよい。
また、コントローラ30は、処理回路により実現されてもよい。処理回路は、前述のように、例えば、ロジックIC、GA、ASIC、FPGAである。
この場合は、通信部31、プリミティブステートマシン32、実行制御部33及び内部値バッファ34は、それぞれ処理回路の一部として実現される。
また、第1の通信部41、第2の通信部42、ローカルステートマシン43及び実行制御部44の処理の結果を示す情報、データ、信号値及び変数値の少なくともいずれかが、主記憶装置902、補助記憶装置903、プロセッサ901内のレジスタ及びキャッシュメモリの少なくともいずれかに記憶される。
また、第1の通信部41、第2の通信部42、ローカルステートマシン43及び実行制御部44の機能を実現するプログラムは、磁気ディスク、フレキシブルディスク、光ディスク、コンパクトディスク、ブルーレイ(登録商標)ディスク、DVD等の可搬記録媒体に格納されていてもよい。そして、第1の通信部41、第2の通信部42、ローカルステートマシン43及び実行制御部44の機能を実現するプログラムが格納された可搬記録媒体を流通させてもよい。
また、第1の通信部41、第2の通信部42及び実行制御部44の「部」を、「回路」又は「工程」又は「手順」又は「処理」又は「サーキットリー」に読み替えてもよい。
また、ゲートウェイ40は、処理回路により実現されてもよい。処理回路は、前述のように、例えば、ロジックIC、GA、ASIC、FPGAである。
この場合は、第1の通信部41、第2の通信部42、ローカルステートマシン43及び実行制御部44は、それぞれ処理回路の一部として実現される。
なお、本明細書では、プロセッサと処理回路との上位概念を、「プロセッシングサーキットリー」という。
つまり、プロセッサと処理回路とは、それぞれ「プロセッシングサーキットリー」の具体例である。
10 入出力装置、10a 入出力装置(A)、10b 入出力装置(B)、11 第1の通信部、12 第2の通信部、13 ローカルステートマシン、14 実行制御部、15 内部値バッファ、16 状態属性テーブル、20 制御対象機器、30 コントローラ、31 通信部、32 プリミティブステートマシン、33 実行制御部、34 内部値バッファ、35 状態属性テーブル、40 ゲートウェイ、41 第1の通信部、42 第2の通信部、43 ローカルステートマシン、44 実行制御部、45 内部値バッファ、46 状態属性テーブル、51 内部ネットワーク、52 外部ネットワーク、60 制御システム、71 初期設定パケット、72 入力パケット、73 出力パケット、74 ローカル制御状況パケット、75 ローカル入力パケット、81 入力値信号、82 出力値信号、701 プロセッサ、702 主記憶装置、703 補助記憶装置、704 通信装置、711 初期設定パケット、721 入力パケット、722 入力パケット、731 出力パケット、732 出力パケット、741 ローカル制御状況パケット、801 プロセッサ、802 主記憶装置、803 補助記憶装置、804 通信装置、821 出力値信号、822 出力値信号、901 プロセッサ、902 主記憶装置、903 補助記憶装置、904 通信装置。

Claims (20)

  1. 各々に属性としてリモート制御属性及びローカル制御属性のいずれかが設定されている複数の状態の間で状態遷移を行うステートマシンと、
    前記ステートマシンの現在の状態の属性が前記リモート制御属性であれば、制御対象機器への出力値を生成する出力値生成処理を前記制御対象機器にとってのリモート環境にあるリモート機器に実行させ、前記ステートマシンの現在の状態の属性が前記ローカル制御属性であれば、前記出力値生成処理を前記制御対象機器にとってのローカル環境にあるローカル機器に実行させる実行制御部とを有し、
    前記ステートマシンには、
    各々に属性として前記リモート制御属性及び前記ローカル制御属性のいずれかが設定されている複数の状態の間で状態遷移を行う、前記リモート機器で管理されるリモートステートマシンと、
    前記リモートステートマシンに含まれる前記複数の状態と同一の複数の状態を含み、前記リモートステートマシンと同期して状態遷移を行い、前記リモートステートマシンの対応する状態と同じ属性が各状態に設定されている、前記ローカル機器で管理されるローカルステートマシンとが含まれ、
    前記実行制御部には、
    前記リモート機器で動作し、前記リモートステートマシンを管理するリモート実行制御部と、
    前記ローカル機器で動作し、前記ローカルステートマシンを管理するローカル実行制御部とが含まれ、
    前記リモート実行制御部は、
    前記リモートステートマシンの現在の状態が前記リモート制御属性であれば、前記リモートステートマシンに前記出力値生成処理を実行させ、
    前記ローカル実行制御部は、
    前記ローカルステートマシンの現在の状態が前記ローカル制御属性であれば、前記ローカルステートマシンに前記出力値生成処理を実行させる制御システム。
  2. 前記実行制御部は、
    前記ステートマシンの現在の状態の属性が前記リモート制御属性であれば、前記リモート機器に前記制御対象機器からの入力値を用いた前記出力値生成処理を実行させ、
    前記ステートマシンの現在の状態の属性が前記ローカル制御属性であれば、前記ローカル機器に前記制御対象機器からの入力値を用いた前記出力値生成処理を実行させる請求項1に記載の制御システム。
  3. 前記リモート実行制御部は、
    前記リモートステートマシンの現在の状態が前記リモート制御属性であれば、前記リモートステートマシンで生成された出力値を前記ローカル実行制御部に通知し、
    前記ローカル実行制御部は、
    前記ローカルステートマシンの現在の状態が前記リモート制御属性であれば、前記リモート実行制御部から通知された出力値を前記制御対象機器に送信し、
    前記ローカルステートマシンの現在の状態が前記ローカル制御属性であれば、前記ローカルステートマシンで生成された出力値を前記制御対象機器に送信する請求項に記載の制御システム。
  4. 前記ローカル実行制御部は、
    前記制御対象機器からの入力値を繰り返し受信し、
    前記制御対象機器からの入力値を受信する度に、受信した入力値を前記リモート実行制御部に通知し、
    前記リモート実行制御部は、
    前記リモートステートマシンの現在の状態の属性が前記リモート制御属性であれば、前記リモートステートマシンに前記制御対象機器からの入力値を用いた前記出力値生成処理を実行させ、
    前記ローカル実行制御部は、
    前記ローカルステートマシンの現在の状態の属性が前記リモート制御属性であれば、前記リモート実行制御部から通知された出力値を前記制御対象機器に送信し、
    前記ローカルステートマシンの現在の状態の属性が前記ローカル制御属性であれば、前記ローカルステートマシンに前記制御対象機器からの入力値を用いた前記出力値生成処理を実行させ、前記ローカルステートマシンで生成された出力値を前記制御対象機器に送信する請求項に記載の制御システム。
  5. 前記リモート実行制御部は、
    前記リモートステートマシンの現在の状態の属性が前記リモート制御属性であれば、前記制御対象機器からの入力値に基づいて前記リモートステートマシンに状態遷移先を決定させ、前記リモートステートマシンの状態を前記状態遷移先に遷移させ、前記ローカル実行制御部に前記状態遷移先を通知し、
    前記ローカル実行制御部は、
    前記リモート実行制御部から前記状態遷移先が通知された場合に、前記ローカルステートマシンの状態を、前記リモート実行制御部から通知された前記状態遷移先に遷移させる請求項に記載の制御システム。
  6. 前記ローカル実行制御部は、
    前記ローカルステートマシンの現在の状態の属性が前記ローカル制御属性であれば、前記制御対象機器からの入力値に基づいて前記ローカルステートマシンに状態遷移先を決定させ、前記ローカルステートマシンの状態を前記状態遷移先に遷移させ、前記リモート実行制御部に前記状態遷移先を通知し、
    前記リモート実行制御部は、
    前記ローカル実行制御部から前記状態遷移先が通知された場合に、前記リモートステートマシンの状態を、前記ローカル実行制御部から通知された前記状態遷移先に遷移させる請求項に記載の制御システム。
  7. 前記リモート実行制御部は、
    前記ローカルステートマシンに前記出力値生成処理を実行させるためのプログラムをローカルステートマシンプログラムとして生成し、生成した前記ローカルステートマシンプログラムを前記ローカル実行制御部に出力し、
    前記ローカル実行制御部は、
    前記ローカルステートマシンプログラムを前記ローカルステートマシンに設定する請求項に記載の制御システム。
  8. 前記リモートステートマシンに含まれる前記複数の状態の各状態には、前記ローカル機器での前記制御対象機器からの入力値の受信から前記制御対象機器への出力値の送信までに要求される時間である要求応答時間が指定されており、
    前記リモート実行制御部は、
    前記要求応答時間が短い順に前記複数の状態のうちの既定数の状態の属性を前記ローカル制御属性に設定し、前記複数の状態のうちの残りの状態の属性を前記リモート制御属性に設定する請求項に記載の制御システム。
  9. 前記リモートステートマシンに含まれる前記複数の状態の各状態には、前記ローカル機器での前記制御対象機器からの入力値の受信から前記制御対象機器への出力値の送信までに要求される時間である要求応答時間が指定されており、
    前記リモート実行制御部は、
    前記複数の状態のうち、前記リモート機器が前記ローカル機器と通信する際に用いられる通信回線の通信品質に基づいて前記要求応答時間が満たせないと予測される状態の属性を前記ローカル制御属性に設定し、前記複数の状態のうちの残りの状態の属性を前記リモート制御属性に設定する請求項に記載の制御システム。
  10. 前記ローカル機器は、
    通信の遅延及びジッタの予測が困難な通信回線を介して前記リモート機器と接続されており、
    前記通信の遅延及び前記ジッタの予測が困難ではない通信回線を介して前記制御対象機器と接続されている請求項1に記載の制御システム。
  11. 前記ローカル実行制御部は、
    前記制御対象機器からの入力値を、前記制御対象機器に接続された入出力装置から受信する請求項に記載の制御システム。
  12. 前記ローカル機器は、
    前記制御対象機器に接続された入出力装置と前記リモート機器とに接続され、前記入出力装置と前記リモート機器との間の通信を中継するゲートウェイである請求項1に記載の制御システム。
  13. 各々に属性としてリモート制御属性及びローカル制御属性のいずれかが設定されている複数の状態の間で状態遷移を行うステートマシンを用い
    前記ステートマシンの現在の状態の属性が前記リモート制御属性であれば、制御対象機器への出力値を生成する出力値生成処理を前記制御対象機器にとってのリモート環境にあるリモート機器に実行させ、前記ステートマシンの現在の状態の属性が前記ローカル制御属性であれば、前記出力値生成処理を前記制御対象機器にとってのローカル環境にあるローカル機器に実行させる制御方法であって、
    前記ステートマシンには、
    各々に属性として前記リモート制御属性及び前記ローカル制御属性のいずれかが設定されている複数の状態の間で状態遷移を行う、前記リモート機器で管理されるリモートステートマシンと、
    前記リモートステートマシンに含まれる前記複数の状態と同一の複数の状態を含み、前記リモートステートマシンと同期して状態遷移を行い、前記リモートステートマシンの対応する状態と同じ属性が各状態に設定されている、前記ローカル機器で管理されるローカルステートマシンとが含まれ、
    前記リモートステートマシンの現在の状態が前記リモート制御属性であれば、前記リモート機器に、前記リモートステートマシンによる前記出力値生成処理を実行させ、
    前記ローカルステートマシンの現在の状態が前記ローカル制御属性であれば、前記ローカル機器に、前記ローカルステートマシンによる前記出力値生成処理を実行させる制御方法。
  14. 各々に属性としてリモート制御属性及びローカル制御属性のいずれかが設定されている複数の状態の間で状態遷移を行うステートマシンを用い
    前記ステートマシンの現在の状態の属性が前記リモート制御属性であれば、制御対象機器への出力値を生成する出力値生成処理を前記制御対象機器にとってのリモート環境にあるリモート機器に実行させ、前記ステートマシンの現在の状態の属性が前記ローカル制御属性であれば、前記出力値生成処理を前記制御対象機器にとってのローカル環境にあるローカル機器に実行させる制御プログラムであって、
    前記ステートマシンには、
    各々に属性として前記リモート制御属性及び前記ローカル制御属性のいずれかが設定されている複数の状態の間で状態遷移を行う、前記リモート機器で管理されるリモートステートマシンと、
    前記リモートステートマシンに含まれる前記複数の状態と同一の複数の状態を含み、前記リモートステートマシンと同期して状態遷移を行い、前記リモートステートマシンの対応する状態と同じ属性が各状態に設定されている、前記ローカル機器で管理されるローカルステートマシンとが含まれ、
    前記リモートステートマシンの現在の状態が前記リモート制御属性であれば、前記リモート機器に、前記リモートステートマシンによる前記出力値生成処理を実行させ、
    前記ローカルステートマシンの現在の状態が前記ローカル制御属性であれば、前記ローカル機器に、前記ローカルステートマシンによる前記出力値生成処理を実行させる制御プログラム
  15. 制御対象機器にとってのローカル環境にあるローカル機器であって、
    前記制御対象機器からの入力値を通知する入力値信号を受信する第1の通信部と、
    前記制御対象機器にとってのリモート環境にあるリモート機器からの、前記制御対象機器への出力値を通知する出力パケットを受信する第2の通信部と、
    各々に属性としてリモート制御属性及びローカル制御属性のいずれかが設定されている複数の状態の間で状態遷移を行うローカルステートマシンと、
    前記ローカルステートマシンの現在の状態の属性が前記リモート制御属性であれば、前記出力パケットで通知された前記制御対象機器への出力値を通知する出力値信号を前記第1の通信部を介して前記制御対象機器に送信し、前記ローカルステートマシンの現在の状態の属性が前記ローカル制御属性であれば、前記入力値信号で通知されている前記制御対象機器からの入力値を前記ローカルステートマシンに出力して前記ローカルステートマシンに前記制御対象機器への出力値を生成させ、前記ローカルステートマシンにより生成された前記制御対象機器への出力値を通知する出力値信号を前記第1の通信部を介して前記制御対象機器に送信する実行制御部とを有するローカル機器。
  16. 制御対象機器にとってのリモート環境にあるリモート機器であって、
    前記制御対象機器にとってのローカル環境にあるローカル機器から送信された、前記制御対象機器からの入力値を通知する入力パケットを受信する通信部と、
    各々に属性としてリモート制御属性及びローカル制御属性のいずれかが設定されている複数の状態の間で状態遷移を行うプリミティブステートマシンと、
    前記プリミティブステートマシンの現在の状態の属性が前記リモート制御属性であれば、前記入力パケットで通知されている前記制御対象機器からの入力値を前記プリミティブステートマシンに出力して前記プリミティブステートマシンに前記制御対象機器への出力値を生成させ、前記プリミティブステートマシンにより生成された前記制御対象機器への出力値を通知する出力パケットを前記通信部を介して前記ローカル機器に送信し、前記出力パケットで通知されている出力値を通知する出力値信号を前記ローカル機器に前記制御対象機器へ送信させる実行制御部とを有するリモート機器。
  17. 各々に属性としてリモート制御属性及びローカル制御属性のいずれかが設定されている複数の状態の間で状態遷移を行うローカルステートマシンを有する、制御対象機器にとってのローカル環境にあるコンピュータであるローカル機器が、
    前記制御対象機器からの入力値を通知する入力値信号を受信し、
    前記制御対象機器にとってのリモート環境にあるリモート機器からの、前記制御対象機器への出力値を通知する出力パケットを受信し、
    前記ローカルステートマシンの現在の状態の属性が前記リモート制御属性であれば、前記出力パケットで通知された前記制御対象機器への出力値を通知する出力値信号を前記制御対象機器に送信し、前記ローカルステートマシンの現在の状態の属性が前記ローカル制御属性であれば、前記入力値信号で通知されている前記制御対象機器からの入力値を前記ローカルステートマシンに出力して前記ローカルステートマシンに前記制御対象機器への出力値を生成させ、前記ローカルステートマシンにより生成された前記制御対象機器への出力値を通知する出力値信号を前記制御対象機器に送信する信号処理方法。
  18. 各々に属性としてリモート制御属性及びローカル制御属性のいずれかが設定されている複数の状態の間で状態遷移を行うプリミティブステートマシンを有する、制御対象機器にとってのリモート環境にあるコンピュータであるリモート機器が、
    前記制御対象機器にとってのローカル環境にあるローカル機器から送信された、前記制御対象機器からの入力値を通知する入力パケットを受信し、
    前記プリミティブステートマシンの現在の状態の属性が前記リモート制御属性であれば、前記入力パケットで通知されている前記制御対象機器からの入力値を前記プリミティブステートマシンに出力して前記プリミティブステートマシンに前記制御対象機器への出力値を生成させ、前記プリミティブステートマシンにより生成された前記制御対象機器への出力値を通知する出力パケットを前記ローカル機器に送信し、前記出力パケットで通知されている出力値を通知する出力値信号を前記ローカル機器に前記制御対象機器へ送信させるパケット処理方法。
  19. 各々に属性としてリモート制御属性及びローカル制御属性のいずれかが設定されている複数の状態の間で状態遷移を行うローカルステートマシンを有する、制御対象機器にとってのローカル環境にあるコンピュータであるローカル機器に、
    前記制御対象機器からの入力値を通知する入力値信号を受信する第1の通信処理と、
    前記制御対象機器にとってのリモート環境にあるリモート機器からの、前記制御対象機器への出力値を通知する出力パケットを受信する第2の通信処理と、
    前記ローカルステートマシンの現在の状態の属性が前記リモート制御属性であれば、前記出力パケットで通知された前記制御対象機器への出力値を通知する出力値信号を前記制御対象機器に送信し、前記ローカルステートマシンの現在の状態の属性が前記ローカル制御属性であれば、前記入力値信号で通知されている前記制御対象機器からの入力値を前記ローカルステートマシンに出力して前記ローカルステートマシンに前記制御対象機器への出力値を生成させ、前記ローカルステートマシンにより生成された前記制御対象機器への出力値を通知する出力値信号を前記制御対象機器に送信する実行制御処理とを実行させる信号処理プログラム。
  20. 各々に属性としてリモート制御属性及びローカル制御属性のいずれかが設定されている複数の状態の間で状態遷移を行うプリミティブステートマシンを有する、制御対象機器にとってのリモート環境にあるコンピュータであるリモート機器に、
    前記制御対象機器にとってのローカル環境にあるローカル機器から送信された、前記制御対象機器からの入力値を通知する入力パケットを受信する通信処理と、
    前記プリミティブステートマシンの現在の状態の属性が前記リモート制御属性であれば、前記入力パケットで通知されている前記制御対象機器からの入力値を前記プリミティブステートマシンに出力して前記プリミティブステートマシンに前記制御対象機器への出力値を生成させ、前記プリミティブステートマシンにより生成された前記制御対象機器への出力値を通知する出力パケットを前記ローカル機器に送信し、前記出力パケットで通知されている出力値を通知する出力値信号を前記ローカル機器に前記制御対象機器へ送信させる実行制御処理とを実行させるパケット処理プログラム。
JP2023500158A 2021-02-16 2021-02-16 制御システム、制御方法、制御プログラム、ローカル機器、リモート機器、信号処理方法、パケット処理方法、信号処理プログラム及びパケット処理プログラム Active JP7278515B2 (ja)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/JP2021/005764 WO2022176031A1 (ja) 2021-02-16 2021-02-16 制御システム、制御方法、制御プログラム、ローカル機器、リモート機器、信号処理方法、パケット処理方法、信号処理プログラム及びパケット処理プログラム

Publications (3)

Publication Number Publication Date
JPWO2022176031A1 JPWO2022176031A1 (ja) 2022-08-25
JPWO2022176031A5 JPWO2022176031A5 (ja) 2023-03-15
JP7278515B2 true JP7278515B2 (ja) 2023-05-19

Family

ID=82931233

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2023500158A Active JP7278515B2 (ja) 2021-02-16 2021-02-16 制御システム、制御方法、制御プログラム、ローカル機器、リモート機器、信号処理方法、パケット処理方法、信号処理プログラム及びパケット処理プログラム

Country Status (5)

Country Link
US (1) US20230324868A1 (ja)
JP (1) JP7278515B2 (ja)
DE (1) DE112021006543B4 (ja)
TW (1) TW202234190A (ja)
WO (1) WO2022176031A1 (ja)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP7399146B2 (ja) * 2021-10-05 2023-12-15 アンリツ株式会社 誤り検出装置および誤り検出方法
JP7432569B2 (ja) * 2021-10-11 2024-02-16 アンリツ株式会社 誤り検出装置および誤り検出方法

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2009224852A (ja) 2008-03-13 2009-10-01 Toshiba Corp 設備機器連携システム及び機器制御方法並びにエージェント装置

Family Cites Families (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP4320111B2 (ja) 2000-09-07 2009-08-26 メタウォーター株式会社 制御システム
EP3767494B1 (en) 2017-08-28 2023-02-15 Bright Data Ltd. Method for improving content fetching by selecting tunnel devices

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2009224852A (ja) 2008-03-13 2009-10-01 Toshiba Corp 設備機器連携システム及び機器制御方法並びにエージェント装置

Also Published As

Publication number Publication date
TW202234190A (zh) 2022-09-01
JPWO2022176031A1 (ja) 2022-08-25
WO2022176031A1 (ja) 2022-08-25
DE112021006543T5 (de) 2023-11-23
US20230324868A1 (en) 2023-10-12
DE112021006543B4 (de) 2024-10-17

Similar Documents

Publication Publication Date Title
US10698717B2 (en) Accelerator virtualization method and apparatus, and centralized resource manager
US9912596B2 (en) Autonomic traffic load balancing in link aggregation groups by modification of switch ingress traffic routing
JP7278515B2 (ja) 制御システム、制御方法、制御プログラム、ローカル機器、リモート機器、信号処理方法、パケット処理方法、信号処理プログラム及びパケット処理プログラム
JP5363064B2 (ja) ネットワーク・オン・チップ(noc)上のソフトウェア・パイプライン化の方法、プログラムおよび装置
US20200382578A1 (en) Communication Method, System and Apparatus
US8571848B2 (en) System and method of network emlation for test of on-line server processing heavy traffic
US8615586B2 (en) Discovery of logical images at storage area network endpoints
TWI603205B (zh) 於晶載網路上之流量控制技術
KR20100103594A (ko) 메시징 네트워크에서의 메시지 전달에 관한 방법 및 시스템
JP2010218364A (ja) 情報処理システム、通信制御装置および方法
CN113098774B (zh) 一种报文转发方法及装置
US20200044963A1 (en) Centralized label-based software defined network
US8199648B2 (en) Flow control in a variable latency system
WO2018107433A1 (zh) 信息处理方法和装置
US20070121621A1 (en) Integrated active-active fibre channel capability in SATA and SAS devices
CN110389827B (zh) 在分布式系统中进行优化的方法、设备和计算机程序产品
JP5754504B2 (ja) 管理装置、情報処理装置、情報処理システム及びデータ転送方法
CN113225229B (zh) 一种基于标签的分布式轻量级全网遥测方法及装置
WO2019169582A1 (zh) 处理中断的方法和装置
JP2017028539A (ja) 通信装置、制御装置、及び通信システム
US10148518B2 (en) Method and apparatus for managing computer system
JP7332869B2 (ja) 通信プログラム、通信方法および通信装置
US20070030813A1 (en) Monitoring a problem condition in a communications protocol implementation
JP2018005664A (ja) 制御装置、情報処理システム、制御方法、及び、情報処理プログラム
JP2006121699A (ja) 第1のデータネットワークから第2のデータネットワークへのデータパケットのカーネルレベルの通過のための方法及び装置

Legal Events

Date Code Title Description
A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20230118

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20230118

A871 Explanation of circumstances concerning accelerated examination

Free format text: JAPANESE INTERMEDIATE CODE: A871

Effective date: 20230118

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

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20230509

R150 Certificate of patent or registration of utility model

Ref document number: 7278515

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150