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

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

Info

Publication number
JP7036069B2
JP7036069B2 JP2019049107A JP2019049107A JP7036069B2 JP 7036069 B2 JP7036069 B2 JP 7036069B2 JP 2019049107 A JP2019049107 A JP 2019049107A JP 2019049107 A JP2019049107 A JP 2019049107A JP 7036069 B2 JP7036069 B2 JP 7036069B2
Authority
JP
Japan
Prior art keywords
process data
application
information
data
data set
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
JP2019049107A
Other languages
English (en)
Other versions
JP2020149632A (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 JP2019049107A priority Critical patent/JP7036069B2/ja
Priority to US17/434,634 priority patent/US20220171361A1/en
Priority to CN202080017180.8A priority patent/CN113544600B/zh
Priority to PCT/JP2020/007799 priority patent/WO2020189206A1/ja
Priority to EP20774588.6A priority patent/EP3940479A4/en
Publication of JP2020149632A publication Critical patent/JP2020149632A/ja
Application granted granted Critical
Publication of JP7036069B2 publication Critical patent/JP7036069B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G05CONTROLLING; REGULATING
    • G05BCONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
    • G05B19/00Programme-control systems
    • G05B19/02Programme-control systems electric
    • G05B19/04Programme control other than numerical control, i.e. in sequence controllers or logic controllers
    • G05B19/05Programmable logic controllers, e.g. simulating logic interconnections of signals according to ladder diagrams or function charts
    • GPHYSICS
    • G05CONTROLLING; REGULATING
    • G05BCONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
    • G05B19/00Programme-control systems
    • G05B19/02Programme-control systems electric
    • G05B19/04Programme control other than numerical control, i.e. in sequence controllers or logic controllers
    • G05B19/05Programmable logic controllers, e.g. simulating logic interconnections of signals according to ladder diagrams or function charts
    • G05B19/058Safety, monitoring
    • GPHYSICS
    • G05CONTROLLING; REGULATING
    • G05BCONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
    • G05B23/00Testing or monitoring of control systems or parts thereof
    • G05B23/02Electric testing or monitoring
    • G05B23/0205Electric testing or monitoring by means of a monitoring system capable of detecting and responding to faults
    • G05B23/0208Electric testing or monitoring by means of a monitoring system capable of detecting and responding to faults characterized by the configuration of the monitoring system
    • G05B23/0216Human interface functionality, e.g. monitoring system providing help to the user in the selection of tests or in its configuration
    • 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/12Plc mp multi processor system
    • G05B2219/1214Real-time communication between plc, Ethernet for configuration, monitor
    • 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/15Plc structure of the system
    • G05B2219/15079Multitasking, real time multitasking

Landscapes

  • Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Automation & Control Theory (AREA)
  • Human Computer Interaction (AREA)
  • Programmable Controllers (AREA)
  • Computer And Data Communications (AREA)

Description

本発明は、プロセスセータの値を含むデータセットが送信される制御システム、当該制御システムに含まれる中継装置、ならびに、当該中継装置で実行される中継プロセスに関する。
様々な製造現場において、PLC(Programmable Logic Controller)などの制御装置が導入されている。このような制御装置は、一種のコンピュータであり、製造装置または製造設備などに応じて設計された制御プログラムが実行される。このような制御装置は、HMI(Human Machine Interface)などの情報処理装置と通信可能に接続される。
情報処理装置は、たとえば、制御装置からの情報を利用して、制御装置の制御対象の稼働状況などをグラフィカルに表示したり、あるいは、制御装置からの情報を利用して、表示するアプリケーションとは異なるアプリケーションを実行したりする。
たとえば、特開2017-146803号公報(特許文献1)は、PLCと接続される情報処理装置の一例としてプログラマブル表示器を開示する。このプログラマブル表示器は、表示画面に表示される一画面を一ページとした場合に、ページ単位で当該ページに表示される機能部品のレイアウト、および、機能の割り当て等がされている。
特開2017-146803号公報
特許文献1に開示されるようなプログラマブル表示器はPLCが保持する情報を所定周期毎に更新して表示する。このようなプログラマブル表示器をPLCとネットワーク接続した場合には、ネットワーク上を所定周期毎にデータが送信されることになる。
このような所定周期毎に送信されるデータが増大すると通信負荷が大きくなる。本発明は、このような送信されるデータ量の増大に伴う通信負荷の増大を抑制する技術を提供することを一つの目的とする。
本開示の一例に従う制御システムは、制御対象を制御するための制御プログラムを実行するとともに、当該制御プログラムにおいて参照または更新される複数のプロセスデータを管理する制御手段と、制御手段が管理する複数のプロセスデータの少なくとも一部のプロセスデータの値を含むデータセットを生成して送信する送信手段と、送信手段により送信されるデータセットを参照してアプリケーションを実行するアプリケーション実行手段と、送信手段とアプリケーション実行手段との間で遣り取りされるデータセットを調停する調停手段とを含む。調停手段は、制御手段が管理する複数のプロセスデータに関する情報を取得する第1取得手段と、アプリケーション実行手段で実行されているアプリケーションの情報を取得する第2取得手段と、第1取得手段が取得した複数のプロセスデータに関する情報および第2取得手段が取得した実行されているアプリケーションの情報に基づいて、データセットに含めるべきプロセスデータを決定する決定手段と、決定手段が決定したデータセットに含めるべきプロセスデータの内容を送信手段およびアプリケーション実行手段の各々に通知する通知手段とを含む。
本開示によれば、複数のプロセスデータに関する情報および実行されているアプリケーションの情報に基づいて、データセットに含めるべきプロセスデータを決定するので、状況に応じて適切なプロセスデータを含むデータセットが生成および送信されることになる。これによって、通信負荷の増大を抑制できる。
上述の開示において、第2取得手段は、アプリケーション実行手段で実行されているアプリケーションが変更される毎に、変更後のアプリケーションが利用するプロセスデータを特定するための情報を取得するようにしてもよい。この構成によれば、各アプリケーションにおいて利用されるプロセスデータを特定することができ、これらの情報によって、データセットを効率的に決定できる。
上述の開示において、決定手段は、第2取得手段により取得されたアプリケーションの情報に基づいて、通信負荷に関する予め定められた評価基準に従って、データセットに含めるべきプロセスデータを決定するようにしてもよい。この構成によれば、評価基準に基づいて、通信負荷の観点で最適なデータセットを決定できる。
上述の開示において、評価基準は、複数のプロセスデータの各々がアプリケーション実行手段において実行されるアプリケーションにおいて利用される頻度、および、複数のプロセスデータの各々に設定された重要度の少なくとも一方に基づくようにしてもよい。この構成によれば、アプリケーションにおいて利用される頻度および複数のプロセスデータの各々に設定された重要度といった、通信負荷に影響を与えるファクタを考慮して、通信負荷の観点で最適なデータセットを決定できる。
上述の開示において、決定手段は、データセットに含めるべきプロセスデータを都度決定するようにしてもよい。この構成によれば、状況に応じて、最適なプロセスデータを動的に決定できる。
上述の開示において、決定手段は、予め定められた複数のデータセットのうちから、データセットに含めるべきと決定されたプロセスデータに対応するデータセットを選択するようにしてもよい。この構成によれば、状況が変化した場合であっても、データセットに含めるべきプロセスデータを都度計算する必要がないので、計算に係る処理負荷を軽減できる。
上述の開示において、制御システムは、制御装置および表示装置を含み、調停手段は、制御装置および表示装置とは独立して配置されるようにしてもよい。この構成によれば、制御装置および表示装置が複数存在する場合であっても、状況に応じて適切なプロセスデータを含むデータセットを決定できる。
上述の開示において、制御システムは、第1アプリケーション実行手段および第2アプリケーション実行手段を含む複数のアプリケーション実行手段を含み、通知手段は、決定手段が第1アプリケーション実行手段から取得した情報に基づいて新たに決定されたプロセスデータの内容を、第2アプリケーション実行手段にも通知するようにしてもよい。この構成によれば、複数のアプリケーション実行手段が存在する構成においても、本開示に従うデータセットの送信方式を適用できる。
本開示の別の一例によれば、制御システムに配置された中継装置が提供される。制御システムは、制御対象を制御するための制御プログラムを実行するとともに、当該制御プログラムにおいて参照または更新される複数のプロセスデータを管理する制御手段と、制御手段が管理する複数のプロセスデータの少なくとも一部のプロセスデータの値を含むデータセットを生成して送信する送信手段と、送信手段により送信されるデータセットを参照してアプリケーションを実行するアプリケーション実行手段とを含む。中継装置は、送信手段とアプリケーション実行手段との間で遣り取りされるデータセットを調停するように構成される。中継装置は、制御手段が管理する複数のプロセスデータに関する情報を取得する第1取得手段と、アプリケーション実行手段で実行されているアプリケーションの情報を取得する第2取得手段と、第1取得手段が取得した複数のプロセスデータに関する情報および第2取得手段が取得した実行されているアプリケーションの情報に基づいて、データセットに含めるべきプロセスデータを決定する決定手段と、決定手段が決定したデータセットに含めるべきプロセスデータの内容を送信手段およびアプリケーション実行手段の各々に通知する通知手段とを含む。
本開示のさらに別の一例によれば、制御システムに配置された情報処理装置で実行される中継プログラムが提供される。制御システムは、制御対象を制御するための制御プログラムを実行するとともに、当該制御プログラムにおいて参照または更新される複数のプロセスデータを管理する制御手段と、制御手段が管理する複数のプロセスデータの少なくとも一部のプロセスデータの値を含むデータセットを生成して送信する送信手段と、送信手段により送信されるデータセットを参照してアプリケーションを実行するアプリケーション実行手段とを含む。中継プログラムは、情報処理装置を、送信手段とアプリケーション実行手段との間で遣り取りされるデータセットを調停する中継装置として機能させる。中継プログラムは、情報処理装置に、制御手段が管理する複数のプロセスデータに関する情報を取得するステップと、アプリケーション実行手段で実行されているアプリケーションの情報を取得するステップと、取得された複数のプロセスデータに関する情報および取得された実行されているアプリケーションの情報に基づいて、データセットに含めるべきプロセスデータを決定するステップと、決定されたデータセットに含めるべきプロセスデータの内容を送信手段およびアプリケーション実行手段の各々に通知するステップとを実行させる。
本発明によれば、データ量の増大に伴う通信負荷の増大を抑制できる。
制御システム1aの適用場面を示す模式図である。 本実施の形態に係る、制御システム1の概要を示す図である。 PubSub通信の概要を説明するための図である。 サブスクライバーとして機能するHMI200-1の概要を説明するための図である。 パブリッシャーとして機能するコントローラ100の概要を説明するための図である。 中継装置60の機能構成を示す図である。 決定手段340が実行する演算の一例を示す図である。 HMI情報376を受け付けるユーザインターフェイス700の一例を示す図である。 優先度情報358を受け付けるユーザインターフェイス900の一例を示す図である。 中継装置60による一連の処理の流れを示すシーケンス図である。 中継装置60による一連の処理の流れを示すシーケンス図である。 中継装置60による一連の処理の流れを示すシーケンス図である。 中継装置60のハードウェア構成の一例を示す模式図である。 HMI200のハードウェア構成の一例を示す模式図である。 コントローラ100のハードウェア構成の一例を示す模式図である。 変形例における中継装置60aの機能構成を示す図である。 変形例における制御システム1bの概要を示す図である。
以下、図面を参照しつつ、本発明に従う各実施の形態について説明する。以下の説明では、同一の部品および構成要素には同一の符号を付してある。それらの名称および機能も同じである。したがって、これらについての詳細な説明は繰り返さない。なお、以下で説明される各実施の形態および各変形例は、適宜選択的に組み合わせてもよい。
§1.適用例
図1は、制御システム1aの適用場面を示す模式図である。制御システム1aは、制御手段102aと、通信処理部80aと、アプリケーション実行手段200aと、調停手段300aとを含む。
制御手段102aは、制御対象を制御するための制御プログラム120aを実行するとともに、制御プログラム120aにおいて参照または更新される複数のプロセスデータ52を管理する。制御手段102aは、たとえば、製造現場において利用されるPLCおよびマシンコントローラといった、コントローラによって実現される。
制御対象は、生産工程を自動化するための種々の産業用機器を含み、製造装置や生産ラインなど(以下、「フィールド」とも総称する。)に対して何らかの物理的な作用を与える装置と、フィールドとの間で情報を遣り取りする入出力装置とを含む。図1に示す例では、制御対象として、フィールドデバイス500が例示されている。
本明細書において、「プロセスデータ」は、制御手段102a(後述するように、典型的にはコントローラ100として具現化される)またはアプリケーション実行手段200a(後述するように、典型的にはHMI200として具現化される)が参照可能な任意のデータを包含する用語である。より具体的には、「プロセスデータ」は、フィールドデバイスから取得する入力データ、制御演算によって算出されてフィールドデバイスへ与えられる出力データ(指令値)、制御演算を実行するための一時的に算出されるデータ、ユーザによる操作内容を示すデータなどを含み得る。
プロセスデータ52は、フィールドデバイス500から制御手段102aに入力されるデータと、制御手段102aからフィールドデバイス500に出力されるデータと、制御プログラム120aの実行または制御手段102aが搭載されたコントローラの状態管理に用いられるデータとを含む。プロセスデータ52は、制御プログラム120aの実行に伴って、周期的に更新される。
通信処理部80aは、送信手段の具現化例であって、1または複数のデータセット50を周期的に送信する。各データセット50は、制御手段102aが管理する複数のプロセスデータ52の少なくとも一部のプロセスデータ52の値を含む。通信処理部80は、調停手段300により決定される送信設定400に従い、データセット50を生成して送信する。
アプリケーション実行手段200aは、1または複数のアプリケーション220aを実行する。アプリケーション220aは、通信処理部80aにより送信されるデータセット50(データセット50に含まれるプロセスデータ52)を参照してアプリケーションを実行する。
アプリケーション実行手段200aは、制御プログラム120の実行によって得られる各種情報をオペレータへ提示するHMI(Human Machine Interface)や、プロセス制御と集中監視とを行うSCADA(Supervisory Control And Data Acquisition)装置、ロボットを制御するロボットコントローラ、アクチュエータ、および他のコントローラなどによって実現される。なお、アプリケーション実行手段200aは、制御システム1aにおいて実行され得るアプリケーションの実行主体全体を含み得る。たとえば、アプリケーション実行手段200aは、複数のHMIによって構成されてもよい。
図1に示す例では、アプリケーション実行手段200aは、アプリケーションA,B,C,Dを実行可能である。アプリケーションA~Dの各々において利用されるプロセスデータの種類は予め指定されている。
図1においては、各アプリケーションで利用されるプロセスデータの種類が、アプリケーションの名称の下にアルファベットで記載されている。具体的には、アプリケーションAは、プロセスデータA,Bを利用する。アプリケーションBは、プロセスデータC,Dを利用する。アプリケーションCは、プロセスデータXを利用する。アプリケーションDは、プロセスデータA,Dを利用する。
調停手段300aは、アプリケーション実行手段200aと通信処理部80aとの間で遣り取りされるデータセット50を調停する。具体的には、調停手段300aは、アプリケーション実行手段200aが実行しているアプリケーション220aに利用されるプロセスデータ52が通信処理部80aから送信されるようにデータセット50に含ませるべきプロセスデータ52の種類を決定し、送信設定400として通信処理部80aに通知する。また、調停手段300aは、アプリケーション実行手段200aが実行対象のアプリケーション220aに利用するプロセスデータ52の値を、通信処理部80aから送信されるデータセット50から読み出せるようにアプリケーション実行手段200aに向けて送信されるデータに関する情報をリンク情報98aとして通知する。
調停手段300aは、アプリケーション情報取得手段320aと、プロセスデータ取得手段330aと、決定手段340aと、通知手段350aとを含む。
アプリケーション情報取得手段320aは、アプリケーション実行手段200aで実行されているアプリケーション220aの情報(アプリケーション情報612a)を取得する。具体的には、アプリケーション情報取得手段320aは、アプリケーション実行手段200aにおいて実行されているアプリケーション220aに利用されるプロセスデータ52を特定する。
アプリケーション情報取得手段320aは、制御システム1aにおいて実行されているアプリケーション220aに利用されるプロセスデータ52を特定できればよく、たとえば、アプリケーション220a毎に利用されるプロセスデータ52の情報を有している場合は、アプリケーション実行手段200aから実行するアプリケーション220aを特定可能な情報を取得すればよい。
複数のアプリケーション220aが実行可能になっている場合には、アプリケーション情報取得手段320aは、アプリケーション実行手段200aで実行されているアプリケーションが変更される毎に、変更後のアプリケーションが利用するプロセスデータを特定するための情報(アプリケーション情報612a)を取得するようにしてもよい。
図1に示す例では、アプリケーション実行手段200aは、アプリケーションAおよびアプリケーションDを実行しているものとする。アプリケーション情報取得手段320aは、アプリケーション情報612aとして、アプリケーション実行手段200aの要求するプロセスデータがプロセスデータA,B,Dであることを特定する。
プロセスデータ取得手段330aは、制御手段102aが管理する複数のプロセスデータ52に関する情報(プロセスデータリスト622a)を取得する。具体的には、プロセスデータ取得手段330aは、制御手段102aが管理するプロセスデータ52の種類を特定する。
決定手段340aは、アプリケーション情報取得手段320aが取得したアプリケーション情報612aと、プロセスデータ取得手段330aが取得したプロセスデータリスト622aとに基づいて、データセット50に含めるべきプロセスデータ52を決定する。具体的には、アプリケーション情報612aに基づいて、通信処理部80aから送信することが必要なプロセスデータ52の種類を特定し、特定した必要なプロセスデータ52をいずれのデータセットに割り当てて送信するかを決定する。
決定手段340aは、後述するような評価指標を用いてデータセットの数およびデータセットに割り当てるプロセスデータ52の種類を決定する。決定手段340aは、データセットに含めるべきプロセスデータを都度決定するようにしてもよい(動的決定)。あるいは、決定手段340aは、事前に複数のデータセットを用意しておき、必要なプロセスデータに応じて適切なデータセットを選択するようにしてもよい(静的設定)。すなわち、決定手段340aは、予め定められた複数のデータセットのうちから、データセットに含めるべきと決定されたプロセスデータに対応するデータセットを選択するようにしてもよい。
通知手段350aは、決定手段340aが決定したデータセット50に含ませるべきプロセスデータ52の内容を通信処理部80aに送信設定として、アプリケーション実行手段200aにリンク情報98aとして通知する。
このようにすることで、複数のプロセスデータに関する情報および実行されているアプリケーションの情報に基づいて、データセットに含めるべきプロセスデータを決定するので、状況に応じて適切なプロセスデータを含むデータセットが生成および送信されることになる。これによって、通信負荷の増大を抑制できる。
§2.具体例
以下、上記適用例において説明した制御システム1の具体例について説明する。
<A.システム構成>
図2は、本実施の形態に係る、制御システム1の概要を示す図である。制御システム1は、制御装置の一例である1つのコントローラ100と、表示装置の一例である複数のHMI200(200-1,200-2)と、中継装置60とを含む。
中継装置60は、コントローラ100とHMI200との間の通信を中継する装置であって、調停手段の具現化例である。本実施の形態において、コントローラ100と中継装置60、および中継装置60と各HMI200とは、情報系ネットワーク2によって互いに通信可能に接続されている。すなわち、調停手段を具現化する中継装置60は、コントローラ100およびHMI200とは独立して配置されてもよい。なお、後述するように、中継装置60に相当する機能をコントローラ100およびHMI200のいずれかに組み入れるようにしてもよい。
情報系ネットワーク2は、たとえば、ベンダやOS(Operating System)の種類などに依存することなくデータ交換を実現することができる通信規格に従ったネットワークである。このような通信規格としては、たとえば、OPC UA(Object Linking and Embedding for Process Control Unified Architecture)などが知られている。
なお、情報系ネットワーク2に採用される通信規格は、OPC UAに限定されるわけではない。たとえば、情報系ネットワーク2は、特定のベンダまたはOS特有の通信規格に従ったネットワークであってもよく、また、Ethernet(登録商標)上に制御用プロトコルを実装した産業用オープンネットワークであるEtherNet/IP(登録商標)に従ったネットワークであってもよい。
図2に示す例では、HMI200とコントローラ100との間の通信は、中継装置60を中継して行われるものの、OPC UAのパブリッシュ・サブスクライブ(Publish-Subscribe)型の通信方式により行われる。なお、以下、OPC UAのパブリッシュ・サブスクライブ(Publish-Subscribe)型の通信方式が適用された通信をPubSub通信ともいう。
制御システム1は、複数のコントローラ100を含む構成であってもよい。また、制御システム1は、複数のHMI200を含む構成であってもよい。また、制御システム1は、1のコントローラ100に対して1のHMI200が通信可能に接続された構成でもよく、複数のコントローラ100に対して1のHMI200が通信可能に接続された構成でもよく、1のコントローラ100に対して複数のHMI200が通信可能に接続された構成でもよく、また、複数のコントローラ100に対して複数のHMI200が通信可能に接続された構成でもよい。図2に示す例では、制御システム1は、1のコントローラ100に対して2つのHMI200(HMI200-1,200-2)が通信可能に接続された構成である。以下では、複数のHMI200を互いに区別する場合に、HMI200-1,200-2と称する。
コントローラ100は、制御手段102と、通信処理部80とを含む。制御手段102は、制御対象であるフィールドデバイス500を制御するための制御プログラム120を実行するとともに、当該制御プログラム120において参照または更新される複数のプロセスデータ52を管理する。制御手段102は、たとえば、コントローラ100の基本的な機能を実現するためのシステムプログラムをプロセッサが実行することにより実現される。
フィールドデバイス500は、生産工程を自動化するための種々の産業用機器を含み、製造装置や生産ラインなど(以下、「フィールド」とも総称する。)に対して何らかの物理的な作用を与える装置と、フィールドとの間で情報を遣り取りする入出力装置とを含む。たとえば、フィールドデバイス500は、サーボモータを制御するサーボドライバ、ロボットを制御するロボットコントローラ、データを収集する装置であるセンサ、コンベヤを動かすアクチュエータ、または、リモートI/O(Input/Output)装置などを含む。
コントローラ100とフィールドデバイス500とは、図2に示す例において、制御系ネットワーク4により通信可能に接続される。制御系ネットワーク4には、データの到達時間が保証される、定周期通信を行うネットワークを採用することが好ましい。このような定周期通信を行うネットワークとしては、EtherCAT(登録商標)、EtherNet/IP(登録商標)、DeviceNet(登録商標)、CompoNet(登録商標)などが知られている。
プロセスデータ52は、フィールドデバイス500からコントローラ100に入力されるデータと、コントローラ100からフィールドデバイス500に出力されるデータと、制御プログラム120の実行またはコントローラ100の状態管理に用いられるデータとを含む。プロセスデータ52は、制御プログラム120の実行に伴って、周期的に更新される。
通信処理部80は、制御手段102が管理する複数のプロセスデータ52の値を含む複数のデータセット50を送信可能に構成されている。具体的には、通信処理部80は、各データセット50に格納されるプロセスデータ52の組み合わせを規定する送信設定400を参照して、データセット50を送信する。
各HMI200は、通信処理部80が送信したデータセット50に含まれるプロセスデータ52を利用して、各アプリケーション220を実行する。図1に示す例では、HMI200-1は、プロセスデータ52A,52Bを利用するアプリケーション220-1aと、プロセスデータ52Xを利用するアプリケーション220-1bとを実行可能である。HMI200-2は、プロセスデータ52A,52Dを利用するアプリケーション220-2aと、プロセスデータ52Cを利用するアプリケーション220-2bとを実行可能である。
<B.PubSub通信>
図3は、PubSub通信の概要を説明するための図である。以下の説明では、データを配信する側を「パブリッシャー」と称し、パブリッシャーが配信したデータを購読する側を「サブスクライバー」と称する。本実施の形態に係る制御システム1において、コントローラ100は、データを配信するパブリッシャーに相当する。一方、HMI200は、コントローラ100が配信したデータを購読するサブスクライバーに相当する。
パブリッシャーは、1または複数のデータを格納したデータセットを生成して配信する。パブリッシャーは、送信先を特定することなく、パブリッシャーおよびサブスクライバーを含むネットワークにデータセットを送信する。この送信形態は、マルチキャストであってもよいし、ユニキャストであってもよい。状況によって、ブロードキャストであってもよい。
サブスクライバーは、サブスクライバーがアクセスすることのできるネットワーク上に配信されるデータセットのうち、いずれのデータセットを購読対象とするかを管理する。たとえば、図4に示す例では、サブスクライバーは、データセット1~データセット3のうち、データセット1およびデータセット3を購読対象としている。そのため、サブスクライバーは、パブリッシャーが配信するデータセット1~3のうち、データセット1およびデータセット3のみを受信する。サブスクライバーは、購読対象を変更すると、受信対象を変更する。
サブスクライバーは購読対象ではないデータセットを受信してもよく、この場合、サブスクライバーは、購読対象ではないデータセットを破棄する処理をしてもよい。
サブスクライバーが購読対象を管理する方法は、図4に示す方法に限られない。たとえば、データ毎に購読するか否かを管理してもよい。その他の方法としては、データセットとは異なるデータの集合毎に購読するか否かを管理してもよい。
図4および図5を参照して、HMI200とコントローラ100との間のPubSub通信の概要について説明する。図4は、サブスクライバーとして機能するHMI200-1の概要を説明するための図である。図5は、パブリッシャーとして機能するコントローラ100の概要を説明するための図である。図4においては、HMI200-1を例に説明するものとするが、HMI200-2においても、HMI200-1と同様の構成を備えているものとする。
図4を参照して、HMI200-1は、表示部242と、複数のアプリケーション220(220-1a,220-1b…)と、OPC UAクライアントである通信処理部90とを備える。各アプリケーション220は、表示部242に特定のページを表示するためのプログラムである。図4には、表示部242にページ1を表示するためのアプリケーション1が実行されている例が示されている。
各ページは、複数のオブジェクト54を含む。たとえば、ページ1は、オブジェクト54a~オブジェクト54dを含む。オブジェクト54の表示は、プログラムに含まれる変数の値に応じて更新される。たとえば、オブジェクト54aの表示は、変数1の値に応じて更新される。同様に、オブジェクト54bの表示は変数2の値に、オブジェクト54cの表示は変数1の値に、オブジェクト54dの表示は変数2の値に応じて更新される。
アプリケーション220は、マッピング情報222を参照することで、変数の値を更新する。マッピング情報222は、変数とプロセスデータとを紐づけた情報である。たとえば、変数1の値は、プロセスデータ52Aの値に従って更新される。各プロセスデータの値が更新される周期は、アプリケーション220の作成に応じてユーザが設定してもよく、また、プロセスデータを管理するコントローラ100の更新周期に応じて決定されるものでもよい。
通信処理部90は、OPC UAクライアントであって、HMI200をサブスクライバーとして機能させる。通信処理部90は、購読管理手段92と通信ドライバ96とを含む。
購読管理手段92は、実行中のアプリケーション220に応じて購読対象を管理する。具体的には、購読管理手段92は、アプリケーション220とマッピング情報222とに基づいて生成される購読管理情報94を参照して購読対象を特定し、通信ドライバ96に向けて、購読対象を通知する。通信ドライバ96は、購読対象のプロセスデータ52を含むデータセット50を受信し、アプリケーション220で利用されるプロセスデータ52の値を更新する。
購読管理情報94は、アプリケーション220と、当該アプリケーション220で利用されるプロセスデータ52とを対応付けた情報であって、アプリケーション220とマッピング情報222とに基づいて生成される。
購読管理手段92は、たとえば、アプリケーション1を実行している場合、購読管理情報94を参照して、プロセスデータ52A,52Bがアプリケーション1の実行に利用されることを特定する。購読管理手段92は、プロセスデータ52A、52Bの購読開始を通信ドライバ96に向けて通知する。購読管理手段92は、アプリケーションの実行対象が切り替わった場合、購読を停止するプロセスデータ52に関する情報も、購読を開始するプロセスデータ52に関する情報とともに通信ドライバ96に向けて通知する。
通信ドライバ96は、コントローラ100が配信する複数のデータセット50の中から、購読対象のプロセスデータ52を含むデータセット50を読み取る。より具体的には、通信ドライバ96は、各データセット50に格納されたプロセスデータ52を特定するためのリンク情報98を参照して、コントローラ100が中継装置60を中継して配信する複数のデータセット50の中から、購読対象のプロセスデータ52を含むデータセット50を特定する。
本実施の形態においては、HMI200から中継装置60に向けて購読対象の要求がされ、当該要求を受けて中継装置60は送信設定400を生成してコントローラ100に向けて通知する。また、中継装置60は、送信設定400の生成と併せて、リンク情報98を生成し、各HMI200に通知する。
図5を参照して、コントローラ100は、制御手段102と、制御系ネットワークインターフェイス(IF)191と、OPC UAサーバである通信処理部80とを含む。
制御手段102は、制御プログラム120を実行することで、フィールドデバイス500を制御する。たとえば、制御プログラム120は、制御系ネットワークIF191を介して入力されたフィールドデバイス500の状態値を利用してプロセスデータ52の値を更新し、更新したプロセスデータ52の値を参照して制御演算を実行する。制御プログラム120は、実行した制御演算の結果に応じてプロセスデータ52の値を更新し、制御系ネットワークIF191を介してフィールドデバイス500に向けて、更新したプロセスデータ52の値を制御値として出力する。
通信処理部80は、OPC UAサーバであって、コントローラ100をパブリッシャーとして機能させる。通信処理部80は、データセット50を生成するデータセット生成手段82と、データセット50を送信する通信ドライバ84とを含む。
データセット生成手段82は、送信設定400を参照して、1または複数のプロセスデータ52を格納したデータセット50を生成する。データセット50は、プロセスデータ52の集合をいうこともあれば、情報系ネットワーク2上に出力することが可能な形式にしたものをいうこともある。
送信設定400は、一のデータセット50に格納されるプロセスデータ52を特定する情報である。なお、一のデータセット50には、1のプロセスデータ52だけが格納されるように規定されていてもよく、また、複数のプロセスデータ52が格納されるように規定されていてもよい。すなわち、「データセット」という用語は、データセット50に格納される1または複数のプロセスデータ52の組み合わせを意味する。この送信設定400は、HMI200からの要求を受けて中継装置60が生成してコントローラ100に通知したものである。
通信ドライバ84は、データセット生成手段82が生成したデータセット50を、中継装置60に送る。中継装置60は送られたデータセット50を核HMI200に向けて送信する。
図5を参照して、HMI200-1の購読対象がプロセスデータ52Aおよび52Bであり、HMI200-2の購読対象がプロセスデータ52Aおよび52Dであるときの、HMI200とコントローラ100との間のデータの遣り取りについて説明する。なお、図5中、プロセスデータ52A,52B,52Dについて、一部、符号等を省略して記載している。また、以下では、プロセスデータ52A,52B,52D,42Xを単にプロセスデータA,B,D,Xともいう。
図5に示す例では、データセット1にプロセスデータA,B,Dを格納することが送信設定400により規定されている。コントローラ100は、データセット1を周期的に生成して中継装置60に送信する。
HMI200-1は、コントローラ100から中継装置60を中継して配信されるデータセット1を取得する。データセット1は周期的に送信されるため、HMI200-1は、データセット1を周期的に取得する。これにより、HMI200-1は、プロセスデータ52Aおよびプロセスデータ52Bに対応する変数を周期的に更新することができ、当該変数に更新に応じてオブジェクト54の表示も更新する。
HMI200-2は、コントローラ100から中継装置60を中継して配信されるデータセット1を取得する。データセット1は周期的に送信されるため、HMI200-2は、データセット1を周期的に取得する。これにより、HMI200-2は、プロセスデータ52Aおよびプロセスデータ52Dに対応する変数を周期的に更新することができ、当該変数に更新に応じてオブジェクト54の表示も更新する。
<C.中継装置の機能構成>
図6を参照して、調停手段として機能する中継装置60が実行する処理の一例を説明する。図6は、中継装置60の機能構成を示す図である。なお、図6においては、HMI200-1およびHMI200-2を総じてHMI200としている。
図6を参照して、中継装置60は、調停手段300と、送受信管理手段680とを含む。調停手段300は、コントローラ100とHMI200との間で遣り取りされるデータセット50を調停する。送受信管理手段680は、コントローラ100から送信されるデータセット50を各HMI200-1,200-2に向けて送信する。コントローラ100から送信されるデータセット50に格納するプロセスデータ52の種類は、調停手段300により決定される。また、コントローラ100が送信される各データセット50の送信先についても、調停手段300によって決定される。
調停手段300は、購読リスト管理手段320と、プロセスデータ取得手段330と、決定手段340と、通知手段350とを含む。
購読リスト管理手段320は、中継装置60に接続されているHMI200-1,200-2の各々で実行されているアプリケーション220の情報を取得する。アプリケーション220の情報は、当該アプリケーション220に利用されるプロセスデータ52を特定可能な情報である。たとえば、購読リスト管理手段320は、HMI200からの購読要求を解析して、HMI200で実行されているアプリケーション220の情報を取得する。ここで、購読リスト管理手段320は、取得手段の具現化例に相当する。
HMI200は、実行するアプリケーション220に変更が生じた場合に、購読要求を中継装置60に向けて行う。購読要求には、購読を開始するサブスクリプション開始要求と、購読を停止するサブスクリプション停止要求とが含まれる。サブスクリプション開始要求およびサブスクリプション停止要求は、実行対象のアプリケーション220が切り替わったタイミングで、通信処理部90から出力される。
購読リスト管理手段320は、制御システム1において購読対象とされているプロセスデータ52と、当該プロセスデータを購読対象としているHMI200とを特定可能な購読リスト612を管理する。購読リスト管理手段320は、HMI200からの購読要求に基づいてHMI200で実行されているアプリケーション220に利用されるプロセスデータ52を特定し、当該プロセスデータを購読対象として購読リスト612に登録(更新)する。購読リスト管理手段320は、HMI200からの購読要求に基づいて、購読が停止されたプロセスデータを特定し、購読の停止を購読リスト612に反映(更新)する。購読リスト管理手段320は、購読リスト612を更新した場合に、決定手段340に通知する(図中の更新通知)。
プロセスデータ取得手段330は、プロセスデータ52と、プロセスデータ52を配信するコントローラ100との対応関係を規定するプロセスデータリスト622を管理する。プロセスデータ取得手段330は、中継装置60とコントローラ100との通信が確立すると、コントローラ100に対して、管理しているプロセスデータ52を示す情報の送信を要求する。プロセスデータ取得手段330は、プロセスデータ52を示す情報(図6中のプロセスデータ情報)を受けて、コントローラ100とコントローラ100が管理するプロセスデータ52との対応関係が、プロセスデータリスト622に登録されているか否かを確認し、登録されていなければ、コントローラ100とコントローラ100が管理するプロセスデータ52との対応関係をプロセスデータリスト622に登録(更新)する。
決定手段340は、購読リスト管理手段320からの更新通知を受けて、購読対象のプロセスデータ52を送信するための送信設定400を決定する。決定手段340は、購読リスト612に基づいて実行中のアプリケーション220に利用されるプロセスデータ52を特定する。決定手段340は、プロセスデータリスト622に基づいて特定したプロセスデータについて、当該プロセスデータを管理するコントローラ100毎にグループ化する。決定手段340は、グループ化された一群のプロセスデータ52毎に、一群のプロセスデータ52を管理するコントローラ100の送信設定400を決定する。送信設定400は、各データセット50に含ませるべきプロセスデータ52を規定する。送信設定400の決定方法は、後述する。また、決定手段340は、既に送信設定400およびリンク情報98を生成している場合は、送信設定400を決定するタイミングまでに蓄積されている蓄積情報623をさらに参照して、各データセット50に含ませるべきプロセスデータ52を規定してもよい。
決定手段340は、決定した各コントローラ100の送信設定400に基づいて各HMI200のリンク情報98を生成する。リンク情報98は、上述したように、各データセット50に格納されたプロセスデータ52を特定するための情報である。なお、リンク情報98は、HMI200の通信処理部90が受信可能なデータのうち、購読対象としているプロセスデータ52を格納しているデータおよび、当該データのいずれの格納先に購読対象としているプロセスデータ52が格納されているかをHMI200の通信処理部90が特定できる情報であればよい。たとえば、コントローラ100が送信したデータセット50のヘッダ(名称)を中継装置60が変更する場合は、中継装置60により変更された後のヘッダと、そのヘッダのデータに格納されるプロセスデータ52種類とを対応付けた情報がリンク情報98となる。
決定手段340は、決定した送信設定400およびリンク情報98を蓄積情報623として保存してもよい。また、決定手段340は、送信設定400に加えて当該送信設定400を決定したときの購読リスト612を合わせて蓄積情報623として保存してもよい。すなわち、蓄積情報623は、購読対象のプロセスデータと、当該プロセスデータを配信するための送信設定とを紐づけた情報である。
蓄積情報623が増えることで、決定手段340の演算が容易になるとともに、利用状況に応じた適当な送信設定400を設計することもできる。
通知手段350は、決定手段340により得られた送信設定400をコントローラ100に、リンク情報98をHMI200に通知する。なお、リンク情報98をHMI200毎に生成した場合は、各リンク情報98を対応するHMI200に送信する。
通知手段350は、送信設定400および購読リスト612に基づいて、各データセット50の送信先を規定するトピックリスト682の情報を更新する。
送受信管理手段680は、トピックリスト682を参照して、コントローラ100から配信された各データセット50を、当該データセット50に含まれるプロセスデータ52を購読対象とするHMI200に送信する。
<D.決定手段340の機能構成>
図7を参照して、決定手段340が実行する演算方法の一例を説明する。図7は、決定手段340が実行する演算の一例を示す図である。図7に示す例では、決定手段340は、プロセスデータ52の組み合わせを求めるための問題を「ナップサック問題」として送信するプロセスデータ52の組み合わせ候補を求める。決定手段340は、求めた候補が複数存在する場合に、各候補を「ナップサック問題」に組み込まれていない評価指標に従って評価する。
本実施の形態においては、典型例として、通信負荷に関する予め定められた評価基準に従って、データセット50に含めるべきプロセスデータ52を決定する。
図7を参照して、決定手段340は、価値決定手段342と、候補算出手段344と、評価手段346と、判定手段348を含む。
価値決定手段342は、プロセスデータ52の価値を決定する。たとえば、価値決定手段342は、システム全体におけるプロセスデータ52の重要性を価値に変換する。具体的には、価値決定手段342は、購読リスト612を参照して、各HMI200において実行されているアプリケーション220毎に必要なプロセスデータ52を特定し、各プロセスデータ52の価値を決定し、プロセスデータ52の各々の価値を示す価値情報370を生成する。
価値決定手段342は、たとえば、プロセスデータ52が利用される頻度と、プロセスデータ52を利用するHMI200のシステムにおける重要性とからプロセスデータ52の価値を概算する。すなわち、複数のプロセスデータ52の各々が各アプリケーションにおいて利用される頻度、および、複数のプロセスデータ52の各々に設定された重要度の少なくとも一方に基づく評価基準が用いられてもよい。
プロセスデータ52を利用するHMI200のシステムにおける重要性は、たとえば、HMI情報376から算出される。HMI情報376は、たとえば、いずれのHMI200が親機として登録されており、いずれのHMI200が補機として登録されているかを特定可能な情報を含む。HMI情報376は、HMI200の利用頻度を示す稼働状況を含んでもよい。本実施の形態においては、HMI情報376は、親機と補機とを示す情報とする。
本実施の形態に係るHMI200-1は、制御システム1において親機(メインで利用されるHMI)であり、HMI200-2は、制御システム1において補機(サブで利用されるHMI)である。当該情報が、HMI情報376として登録されている。HMI情報376は、たとえば、HMI200にアプリケーション220をインストールするとき、または、アプリケーション220を開発するとき等にユーザによって登録される。
たとえば、一のプロセスデータ52の価値pは、次の式(1)で算出される。
Figure 0007036069000001
ここで、iは、HMI200の種類を特定するものであって、i=1は、HMI200-1を示し、i=2は、HMI200-2を示す。αは、HMI情報376から得られるHMI200のシステムにおける重要性である。nは、HMI200で実行されるアプリケーション220において当該プロセスデータ52が利用される頻度を示す。たとえば、HMI200が5つのアプリケーション220を実行可能であり、その5つのアプリケーション220のうちの3つのアプリケーション220で特定のプロセスデータ52が利用される場合、当該プロセスデータ52が利用される頻度nは、3/5となる。なお、頻度nに、アプリケーションの利用頻度の実測値を反映させてもよい。
なお、価値の算出方法は一例であって、たとえば、上記式(1)に、さらに、プロセスデータ52そのものの価値を反映させてもよい。たとえば、エラーの発生の判定に利用されるプロセスデータ52へは高い価値を付与し、ロギングに利用されるプロセスデータ52へはエラーの発生の判定に利用されるプロセスデータ52よりも低い価値を付与してもよい。
図7中のpは、プロセスデータ52Aの価値を、pは、プロセスデータ52Aの価値を、pは、プロセスデータ52Cの価値を各々示しているものとする。なお、価値情報370は、予め定められているものであってもよい。すなわち、価値決定手段342は、購読リスト管理手段320が取得した各HMI200において実行されているアプリケーション220毎に必要なプロセスデータの各々の価値を予め定められた価値情報370に基づいて決定してもよい。
候補算出手段344は、プロセスデータ52のデータサイズを「重さ」、価値決定手段342が概算したプロセスデータ52の価値を「価値」、一のパケットのデータ容量を「ナップサックの容量」として、一のパケットに格納したプロセスデータ52の価値の和を最大化するプロセスデータ52の組み合わせを決定する。
プロセスデータ52のデータサイズは、予め定められている。たとえば、データサイズに関する情報は、コントローラ100が送信するプロセスデータ情報に含まれる。
パケットのデータ容量は、容量情報372として得られる。容量情報372は、情報系ネットワーク2の性能として予め定められた情報であってもよく、また、ユーザが仮の値として設定した情報であってもよい。
候補算出手段344は、決定した組み合わせを一のデータセットに含ませるべきプロセスデータ52として候補データ374に格納する。候補算出手段344は、パケットに格納するプロセスデータ52の候補の中から、候補データ374に格納したプロセスデータ52を除外して、再度、一のパケットに格納したプロセスデータ52の価値の和を最大化するプロセスデータ52の組み合わせを決定する。
すなわち、候補算出手段344は、評価基準として、データセットに含めるプロセスデータの価値を評価するための指標を含めて、プロセスデータ52の組み合わせを決定する。その結果、たとえば、価値の高いプロセスデータ52を優先して送信することができるような送信設定400を設計できる。
具体的には、決定した各データセット50の価値を、当該データセット50に含まれるプロセスデータ52の価値に基づいて決定し、価値の高いデータセット50を優先的に送信するような送信設定400を設計することができる。
候補算出手段344は、プロセスデータ52の組み合わせの決定、決定した組み合わせの候補データ374への格納、およびパケットに格納するプロセスデータ52の候補の中からの候補データ374に格納したプロセスデータ52の除外を、パケットに格納するプロセスデータ52の候補がなくなるまで繰り返す。
候補算出手段344は、パケットに格納するプロセスデータ52の候補がなくなるまでの一連の処理を複数回行い、複数の候補データ(第1候補データ374a,第2候補データ374b・・・)を取得してもよい。一連の処理を複数回行う場合に、候補算出手段344は、一のパケットに格納したプロセスデータ52の価値の和を最大化するプロセスデータ52の組み合わせを決定するアルゴリズムを都度変更してもよい。アルゴリズムは、特に限定されるものではないが、たとえば、動的計画法、貪欲法、遺伝アルゴリズムなどがあげられる。
また、同じアルゴリズムで一連の処理を実行した場合であっても、複数の解が得られたときには、複数の候補データが得られる。なお、一の候補データが得られた時点で、候補算出手段344の処理を終了するようにしてもよい。以下では、複数の候補データ374が得られたものとして説明する。
評価手段346は、複数の候補データ374の各々を予め定められた指標に基づいて評価する。図7に示す例では、評価手段346は、通信負荷指標352、通信性能指標354、通信効率指標356、および変更負荷指標357の各々の指標に基づいて複数の候補データ374の各々を評価する。
通信負荷指標352は、コントローラ100がデータセット50を送信する際の負荷を評価するための指標である。たとえば、通信負荷指標352は、候補データ374に含まれるデータセットの数、一のデータセットに格納するプロセスデータの数、一のデータセットのデータサイズなどを指標とする。
候補データ374に含まれるデータセットの数が少ないと、コントローラ100がデータセット50を送信する回数を減らすことができ、データセットを送信する間隔を空けることができ、コントローラ100への通信負荷を減らすことができる。
すなわち、評価手段346は、通信負荷指標352に従って評価した場合、候補データ374に含まれるデータセットの数、一のデータセットに格納するプロセスデータの数、一のデータセットのデータサイズの各々が小さいほど、評価対象の候補データ374の評価を高くする。その結果、コントローラ100にかかる負荷が小さくなるような送信設定400を設計することができる。
通信性能指標354は、HMI200へデータを配信する性能を評価するための指標であって、所定期間の間にHMI200が受信可能な、当該HMI200において実行するアプリケーションにおいて利用するプロセスデータの種類を評価する指標である。たとえば、通信性能指標354は、HMI200に向けてデータセットが送付される周期、HMI200に向けて配信されるデータセット50に含まれるプロセスデータ52のうちのHMI200において実行されるアプリケーションで利用されるプロセスデータ52の種類などを指標とする。
評価手段346は、通信性能指標354に従って評価した場合、所定期間の間にHMI200に向けて配信されるデータセット50に含まれるプロセスデータ52の種類が多いほど、評価対象の候補データ374の評価を高くする。ただし、単に種類が多いのではなく、HMI200において利用されるプロセスデータ52の種類が多いほど評価対象の候補データ374の評価は高くなる。その結果、プロセスデータ52の値が更新されるタイミングと、アプリケーション220で利用されるタイミングとの間で生じるタイムラグを小さくすることのできる送信設定400を設計することができる。すなわち、コントローラ100の状態を正確にHMI200が把握することができる。
通信効率指標356は、コントローラ100とHMI200との間の通信効率を評価するための指標である。たとえば、通信効率指標356は、コントローラ100とHMI200とを通信可能に接続させる情報系ネットワーク2にかかる負荷として、所定期間に送付しなければならないデータ数(pps(packet per second)、bps(bit per second))などを指標とする。
評価手段346は、通信効率指標356に従って評価した場合、所定期間に送付しなければならないデータ数が少ないほど、評価対象の候補データ374の評価を高くする。その結果、通信効率の良い送信設定400を設計することができる。より具体的には、トラフィックを小さくすることができる。
変更負荷指標357は、実行対象のアプリケーション220が変更されて、送信設定400を変更することに伴う通信処理部80の処理負担、各HMI200の処理負担、および調停手段300の処理負担を評価するための指標である。
判定手段348は、評価手段346が複数の指標に従って各々の候補データ374を評価した結果と優先度情報358とに基づいて、複数の候補データ374のうちのいずれの候補データ374が適当であるかを判定し、適当な候補データ374を決定結果とする。
優先度情報358は、ユーザにより入力される情報であって、通信負荷、通信性能、および通信効率の優先度(重みづけ)を規定する。評価手段346によって各々の指標に従って複数の候補データ374を評価した場合であっても、すべての指標が最適となる候補データが存在しない場合もある。その場合に、優先度情報358を用いて各指標の優先度が規定されることにより、すべての指標が最適となる候補データが存在しない場合であっても、最適と考えられる候補データを決定できる。
なお、図7に示した演算順序は一例であって、候補算出手段344は、評価手段346が参照する通信負荷指標352、通信性能指標354、および通信効率指標356のうちの少なくとも一の指標を考慮してプロセスデータ52の組み合わせを決定してもよい。すなわち、複数の候補データ374を算出して各候補データ374を評価して送信設定400を決定するという方法は一例であって、候補データ374を算出することなく、送信設定400を決定してもよい。
図7に示す例では、購読リスト管理手段320によって取得された購読対象の各プロセスデータ52を送信可能な通信処理部80は1つであるものとして説明した。なお、購読対象の各プロセスデータ52が互いに異なる通信処理部80から送信される場合、プロセスデータ取得手段330によって得られた情報に基づいて、購読対象の各プロセスデータ52を通信処理部80の種類毎にグループ化する。決定手段340は、グループごとに、データセットに含ませるべきプロセスデータの種類を決定する。
<E.ユーザインターフェイス>
(E1.HMI情報)
図8は、HMI情報376を受け付けるユーザインターフェイス700の一例を示す図である。ユーザインターフェイス700は、ネットワーク構成を示すネットワーク構成領域720と、HMI情報376を受け付ける受付領域740とを含む。ネットワーク構成領域720は、コントローラ100(図中のMaster)に接続されているHMI200を示す。
受付領域740は、コントローラ100に接続されているHMI200の優先度の指定を受け付ける。図8に示す例では、タブ742を操作することで「High」と「Low]とのうちのいずれか一方を選択可能である。これにより、コントローラ100の情報を表示可能な複数のHMI(HMI-1,HMI-2,HMI-3)のうちのいずれのHMIにプロセスデータ52を優先して送付するかを規定できる。たとえば、複数のHMIのうち、親機として機能するHMIの優先度を高くし、他のHMIの優先度は低くするようにして、親機と補機とを区別できるように登録してもよい。
このように、各HMIの重要度をプロセスデータ52の価値に反映することができ、たとえば、ユーザが指定した任意のHMI200が実行するアプリケーションで利用されるプロセスデータを優先して配信できるような送信設定400を設計できる。
(E2.優先度情報)
図9は、優先度情報358を受け付けるユーザインターフェイス900の一例を示す図である。ユーザインターフェイス900は、送信設定400を決定するためのパラメータの一つとして、通信処理部80とHMI200との通信を開始する前であって、管理手段のパラメータを設計する段階で提供される。
ユーザインターフェイス900は、評価指標を示す指標領域920と、評価指標の優先度の入力を受け付ける優先度受付領域960とを含む。優先度受付領域960のタブ962を操作して、各評価指標の優先度を入力する。
すなわち、ユーザインターフェイス900は、評価指標が複数設けられている場合に、各評価指標の重要度を受け付ける手段として機能する。ユーザインターフェイス900により、ユーザは、各評価指標の重要度を変えることで、任意の送信設定400を設計できる。たとえば、コントローラ100が制御プログラム120を実行する処理速度を重要視するような場合には、コントローラ100への処理負荷に関する指標の重要度を高くすればよい。一方、コントローラ100の性能が十分に高く、コントローラ100への処理負荷を十分に考慮しなくとも、コントローラ100が制御プログラム120を十分に実行できるような場合、コントローラ100への処理負荷に関する指標の重要度を下げるようにしてもよい。
<F.シーケンス>
図10~図12は、中継装置60による一連の処理の流れを示すシーケンス図である。以下、ステップを単に「S」と示す。
S102において、コントローラ100は、制御手段102が管理するプロセスデータ52の種類を示す情報の登録を行う。
S104において、中継装置60は、コントローラ100によって登録された情報に基づいて、プロセスデータリスト622を生成または更新する。
S106において、HMI200-1がアプリケーション220-1aの実行を開始したとする。
S108において、HMI200-1は、アプリケーション220-1aの実行開始に伴って、購読管理情報94を参照して、アプリケーション220-1aの実行に必要なプロセスデータ52を特定する(購読対象の特定)。
S110において、HMI200-1は、購読の開始を中継装置60に向けて通知する(サブスクリプション開始要求)。S110におけるサブスクリプション開始要求には、購読対象のプロセスデータ52を特定可能な情報が含まれる。図10に示す例では、プロセスデータA,Bの購読を開始する旨の通知がされる。
S111において、中継装置60は、サブスクリプション開始要求に基づいて、購読リスト612を更新する。
S112において、中継装置60は、送信設定400を決定するための演算を行う。具体的には、中継装置60は、購読リスト612とプロセスデータリスト622とを参照して、プロセスデータA,Bの各々について、プロセスデータA,Bの各々が送信されるようにデータセット50に格納するプロセスデータの種類を決定する。
図10に示す例では、S112において、データセット1にプロセスデータA、Bを格納することが決定される。
S113において、中継装置60は、リンク情報98を生成する。具体的には、中継装置60は、データセットのヘッダと、当該ヘッダの付されたデータ内のいずれの位置にいずれの種類のプロセスデータ52を格納するべきかを決定する。データ内の各位置は、タグ名によって特定できる。たとえば、中継装置60は、ヘッダ名と、タグ名と、当該タグ名の格納先に格納されているプロセスデータの種類とを特定可能なリンク情報98を生成する。
S114において、中継装置60は、データセット1にプロセスデータA、Bを格納することを規定する送信設定400をコントローラ100に送信する。
S116において、コントローラ100は、送られた送信設定400を登録する。
S118において、中継装置60は、リンク情報98をHMI200-1に送信する。
S120において、HMI200-1はリンク情報98を更新する。図10に示す例では、ヘッダ名がデータセット1のデータセットのうち、タグ1に格納されたデータがプロセスデータAであり、タグ2に格納されたデータがプロセスデータBであることがリンク情報98として登録される。
S121において、中継装置60は、トピックリスト682を更新する。さらに、中継装置60は、決定した送信設定400および当該送信設定400の決定時の購読リスト612を蓄積情報623として保存してもよい。
S122において、コントローラ100は、送信設定400に従い、プロセスデータAの値およびプロセスデータBの値を格納してデータセット1を生成するとともに生成したデータセット1の送信(パブリッシュ)を開始する。データセット1は、たとえば、周期的に送信される。
S124において、中継装置60は、トピックリスト682を参照してコントローラ100から送信されたデータセット1をHMI200-1に向けて送信する。
S126において、HMI200-1は、送信されたデータセット1を読み込み、プロセスデータAおよびプロセスデータBの値を取得して、アプリケーション220-1aの実行に利用する。
S122~S126の処理(S1220とする)は、データセット1に関する送信設定400が変更されるまで、周期的に繰り返される。
図11を参照して、新たにアプリケーションの実行が開始したときの処理について説明する。図11に示す例では、HMI200-2において新たにアプリケーション220-2aの実行が開始されたものとする。なお、図11の処理は、図10の処理の続きであるとする。
S128において、HMI200-2がアプリケーション220-2aの実行を開始したとする。
S130において、HMI200-2は、アプリケーション220-2aの実行開始に伴って、購読管理情報94を参照して、アプリケーション220-2aの実行に必要なプロセスデータ52を特定する(購読対象の特定)。
S132において、HMI200-2は、購読の開始を中継装置60に向けて通知する(サブスクリプション開始要求)。S132におけるサブスクリプション開始要求には、購読対象のプロセスデータ52を特定可能な情報が含まれる。図11に示す例では、プロセスデータA,Dの購読を開始する旨の通知がされる。
S133において、中継装置60は、サブスクリプション開始要求に基づいて、購読リスト612を更新する。
S134において、中継装置60は、送信設定400を決定するための演算を行う。具体的には、中継装置60は、購読リスト612とプロセスデータリスト622と蓄積情報623とを参照して、購読対象のプロセスデータ52をコントローラ100から送信するための送信設定400を決定する。中継装置60は、HMI200-1がプロセスデータA,Bの購読を継続していること、および、現在の送信設定400を踏まえて、送信設定400を決定するための演算を行う。すなわち、中継装置60は、プロセスデータA,BをHMI200-1に、プロセスデータA,DをHMI200-2に、それぞれ送信できるように送信設定400を決定する。
図11に示す例では、S134において、データセット1にプロセスデータA,B,Dを格納することが決定される。
S135において、中継装置60は、リンク情報98を生成する。
S136において、中継装置60は、データセット1にプロセスデータA,B,Dを格納することを規定する送信設定400をコントローラ100に送信する。
S138において、コントローラ100は、送られた送信設定400を登録する。
S140において、中継装置60は、リンク情報98をHMI200-1に送信する。
S142において、HMI200-1はリンク情報98を更新する。図11に示す例では、ヘッダ名がデータセット1のデータセットのうち、タグ1に格納されたデータがプロセスデータAであり、タグ2に格納されたデータがプロセスデータBであり、タグ3に格納されたデータがダミーデータであることがリンク情報98として登録される。ここで、ダミーデータとは、HMI200-1が購読対象としていないプロセスデータのことを意味する。
S144において、中継装置60は、リンク情報98をHMI200-2に送信する。
S146において、HMI200-2はリンク情報98を更新する。図11に示す例では、ヘッダ名がデータセット1のデータセットのうち、タグ1に格納されたデータがプロセスデータAであり、タグ2に格納されたデータがダミーデータであり、タグ3に格納されたデータがプロセスデータDであることがリンク情報98として登録される。
S147において、中継装置60は、トピックリスト682を更新する。さらに、中継装置60は、決定した送信設定400および当該送信設定400の決定時の購読リスト612を蓄積情報623として保存してもよい。
S148において、コントローラ100は、送信設定400に従い、プロセスデータAの値、プロセスデータBの値、およびプロセスデータDの値を格納してデータセット1を生成するとともに生成したデータセット1の送信(パブリッシュ)を開始する。データセット1は、たとえば、周期的に送信される。
S150において、中継装置60は、トピックリスト682を参照してコントローラ100から送信されたデータセット1をHMI200-1に向けて送信する。
S152において、HMI200-1は、送信されたデータセット1を読み込み、プロセスデータAおよびプロセスデータBの値を取得して、アプリケーション220-1aの実行に利用する。
S154において、中継装置60は、トピックリスト682を参照してコントローラ100から送信されたデータセット1をHMI200-2に向けて送信する。
S156において、HMI200-2は、送信されたデータセット1を読み込み、プロセスデータAおよびプロセスデータDの値を取得して、アプリケーション220-2aの実行に利用する。
このように、中継装置60は、HMI200-2から取得したHMI200-2で実行されるアプリケーションが利用するプロセスデータを特定するための情報に基づいて、新たに決定されたプロセスデータの内容をHMI200-2だけではなく、HMI200-1にも通知する。これによって、HMI200-1およびHMI200-2は、それぞれで実行されているアプリケーションに必要なプロセスデータを取得できる。
S148~S156の処理(S1480とする)は、データセット1に関する送信設定400が変更されるまで、周期的に繰り返される。すなわち、S1220の処理は、S138において送信設定400が更新されると、実行されなくなる。
図12を参照して、実行対象のアプリケーション220が切り替わったときの処理について説明する。図12に示す例では、HMI200-1においてページの切り替えが行われて、実行対象のアプリケーション220がアプリケーション220-1aからアプリケーション220-1bに切り替わったとする。図12の処理は、図11の処理の続きであるとする。
S160において、HMI200-1は、アプリケーション220-1aの実行を停止し、S162において、アプリケーション220-1bの実行を開始する。
S108において、HMI200-1は、アプリケーション220-1aの実行停止およびアプリケーション220-1bの実行開始に伴って、購読を停止するプロセスデータ52と、購読を開始するプロセスデータ52とを、購読管理情報94を参照して特定する(購読対象の特定)。
S166において、HMI200-1は、購読の停止を中継装置60に向けて通知する(サブスクリプション停止要求)。S166におけるサブスクリプション停止要求には、購読を停止するプロセスデータ52を特定可能な情報が含まれる。図12に示す例では、プロセスデータA,Bの購読を停止する旨の通知がされる。
S168において、HMI200-1は、購読の開始を中継装置60に向けて通知する(サブスクリプション開始要求)。図12に示す例では、プロセスデータXの購読を停止する旨の通知がされる。
S169において、中継装置60は、サブスクリプション停止要求およびサブスクリプション開始要求に基づいて、購読リスト612を更新する。
S170において、中継装置60は、送信設定400を決定するための演算を行う。具体的には、中継装置60は、購読リスト612とプロセスデータリスト622と蓄積情報623とを参照して、購読対象のプロセスデータ52をコントローラ100から送信するための送信設定400を決定する。中継装置60は、HMI200-2がプロセスデータA,Dの購読を継続していること、および、現在の送信設定400を踏まえて、送信設定400を決定するための演算を行う。すなわち、中継装置60は、プロセスデータXをHMI200-1に、プロセスデータA,DをHMI200-2に、それぞれ送信できるように送信設定400を決定する。
図12に示す例では、S170において、データセット1にプロセスデータA,B,Dを、データセット2にプロセスデータXを格納することが決定される。すなわち、データセット1に格納するプロセスデータ52の種類を変更することなく、新たにデータセット2の送信を開始することを、中継装置60は決定する。
S171において、中継装置60は、リンク情報98を生成する。なお、図12に示す例では、送信設定400の変更により、データセット1のHMI200-1への送信を停止し、新たにデータセット2のHMI200-1への送信を開始することが変更されるだけであり、データセット1のHMI200-1への送信に変更はない。そのため、中継装置60は、S171において、HMI200-1に対するリンク情報98を生成する。
S172において、中継装置60は、コントローラ100に向けて、プロセスデータXを格納したデータセット2を、新たに送信する旨の通知を行う(送信設定)。
S174において、コントローラ100は、送られた送信設定を登録する。具体的には、データセット1に対する設定を変更することなく、新たにデータセット2を生成する旨の内容を送信設定400として登録する。
S176において、中継装置60は、リンク情報98をHMI200-1に送信する。S178において、HMI200-1はリンク情報98を更新する。図12に示す例では、ヘッダ名がデータセット2のデータセットのうち、タグ1に格納されたデータがプロセスデータXであることがリンク情報98として登録される。ここで、データセット1に格納されるプロセスデータ52をHMI200-1がアプリケーション220-2bの実行に利用しないため、既に登録されているデータセット1に関する情報は破棄されてもよい。
また、中継装置60は、HMI200-2に向けてはリンク情報98を新たに送信しなくともよい。HMI200-2がアプリケーション220-2bの実行に利用するデータセット1を生成するための設定に変更はない。また、新たに生成されるデータセット2に格納されるプロセスデータXをHMI200-2がアプリケーション220-2bの実行に利用しない。すなわち、HMI200-2は、新たに、データセット2に関する情報を取得する必要がなく、データセット1を特定することができればアプリケーション220-2bを実行できる。
S179において、中継装置60は、トピックリスト682を更新する。また、中継装置60は、決定した送信設定400および当該送信設定400の決定時の購読リスト612を蓄積情報623として保存する。
S180において、コントローラ100は、送信設定400に従い、プロセスデータAの値、プロセスデータBの値、およびプロセスデータDの値を格納してデータセット1を生成するとともに生成したデータセット1の送信(パブリッシュ)を行う。
S182において、中継装置60は、コントローラ100から送信されたデータセット1をHMI200-2に向けて送信する。
S184において、HMI200-2は、送信されたデータセット1を読み込み、プロセスデータAおよびプロセスデータDの値を取得して、アプリケーション220-2aの実行に利用する。
S186において、コントローラ100は、送信設定400に従い、プロセスデータXの値を格納してデータセット2を生成するとともに生成したデータセット2の送信(パブリッシュ)を行う。
S188において、中継装置60は、コントローラ100から送信されたデータセット2をHMI200-1に向けて送信する。
S190において、HMI200-1は、送信されたデータセット2を読み込み、プロセスデータXの値を取得して、アプリケーション220-1bの実行に利用する。
ここで、S180~S184の処理をS1800とし、図11に示したS1480の処理と比較する。S1800とS1480とを比較すると、中継装置60がHMI200-1に向けてデータセット1を送信する処理(S150)および、HMI200-1が送信されたデータセット1のデータを読み込む処理(S152)をS1800では行わない点で異なる以外、残りの処理は共通している。
すなわち、中継装置60の処理が変更されるのみで、コントローラ100およびHMI200-2の処理に変更はない。
<G.ハードウェア構成>
以下、制御システム1に含まれる各装置のハードウェア構成の一例を説明する。
(G1.中継装置60のハードウェア構成)
図13は、中継装置60のハードウェア構成の一例を示す模式図である。図13を参照して、中継装置60は、プロセッサ61と、揮発性メモリ64と、不揮発性メモリ65と、通信IF67とを含む。これらのコンポーネントは、プロセッサバス68を介して接続されている。
プロセッサ61は、CPU(Central Processing Unit)やGPU(Graphical Processing Unit)などで構成され、不揮発性メモリ65に格納されたプログラムを読出して、揮発性メモリ64に展開して実行することで、コントローラ100とHMI200との間の通信を中継するとともに、送信設定400を決定するための機能を提供する。
揮発性メモリ64は、DRAM(Dynamic Random Access Memory)やSRAM(Static Random Access Memory)などで構成される。不揮発性メモリ65は、たとえば、HDD(Hard Disk Drive)やSSD(Solid State Drive)などで構成される。
不揮発性メモリ65は、基本的な機能を実現するためのOS(図示省略)に加えて、中継プログラム1310、購読リスト612、プロセスデータリスト622、蓄積情報623、トピックリスト682、評価情報1320、および性能情報1340を格納する。
中継プログラム1310は、コントローラ100とHMI200との間の通信を中継するとともに、送信設定400を決定するためのプログラムであって、プロセッサ61により実行されることで、図6および図7に示した各種手段の機能を提供する。中継プログラム1310は、調停手段300として機能する調停プログラム1312と、送受信管理手段680として機能する通信プログラム1314とを含む。
評価情報1320は、図7に示した通信負荷指標352、通信性能指標354、通信効率指標356、および変更負荷指標357を含む。評価情報1320は、HMI情報376および優先度情報358を含んでもよい。すなわち、評価情報1320は、決定手段340が参照する評価基準360に関する情報である。
性能情報1340は、容量情報372を含む情報であって、コントローラ100、情報系ネットワーク2、およびHMI200の性能を示す情報である。
なお、プロセッサ61がプログラムを実行することで必要な機能が提供される構成例を示したが、これらの提供される機能の一部または全部を、専用のハードウェア回路(たとえば、ASIC(Application Specific Integrated Circuit)またはFPGA(Field-Programmable Gate Array)など)を用いて実装してもよい。また、中継装置60が提供する機能は、OSが提供するモジュールの一部を利用する形で実現される場合もある。
不揮発性メモリ65に格納された各種プログラムは、コンピュータ読取可能な記録媒体を介してインストールされてもよいが、ネットワーク上のサーバ装置などからダウンロードする形でインストールするようにしてもよい。
通信IF67は、情報系ネットワーク2に接続された各装置(コントローラ100、HMI200)との間のデータの遣り取りを担当する。
以上のように、中継装置60は、あるタイミングにおける最適な送信設定400を暫定的に決定し、ネットワーク上で実行されるアプリケーション220の変更に応じて、送信設定400を変更する。なお、最適な送信設定400とは、決定手段340により求められた送信設定400であって、何を以て「最適な送信設定400」というかは、決定手段340が参照する評価基準360に応じて異なる。
中継装置60の利用場面は幅広く、中継装置60は、HMI200とコントローラ100との通信を開始するときから終了するときまで、一貫して利用可能され得る。
(G2.HMIのハードウェア構成)
図14は、HMI200のハードウェア構成の一例を示す模式図である。HMI200は、一例として、汎用的なアーキテクチャに従うハードウェア(例えば、汎用パソコン)を用いて実現される。HMI200は、据え置き型でもよいし、コントローラ100が配置される製造現場では可搬性に優れたノート型のパーソナルコンピュータの形態で提供されてもよい。図14を参照して、HMI200は、プロセッサ210と、タッチパネル240と、揮発性メモリ250と、不揮発性メモリ270と、通信IF292と、USBコントローラ294とを含む。これらのコンポーネントは、プロセッサバス296を介して接続されている。
プロセッサ210は、CPUやGPUなどで構成され、不揮発性メモリ270に格納されたプログラムを読み出して、揮発性メモリ250に展開して実行することで、制御プログラム120の実行によって得られる各種情報をタッチパネル240に出力する。
揮発性メモリ250は、DRAMやSRAMなどで構成される。不揮発性メモリ270は、たとえば、HDDやSSDなどで構成される。
不揮発性メモリ270は、基本的な機能を実現するためのOS(図示省略)に加えて、OPC UAプログラム260と、購読管理情報94と、リンク情報98と、1または複数のアプリケーション220と、マッピング情報222とを格納する。
OPC UAプログラム260は、HMI200をサブスクライバーとして機能させるためのプログラムであって、コントローラ100とHMI200との間で、OPC UAに従った通信を行うためのプログラムである。プロセッサ210がOPC UAプログラム260を実行することで、図4に示した通信処理部90に係る機能が提供される。OPC UAプログラム260は、たとえば、他の外部記憶媒体(たとえばメモリカード、ネットワーク上のサーバ装置)から、不揮発性メモリ270にインストールされる。
なお、プロセッサ210がプログラムを実行することで必要な機能が提供される構成例を示したが、これらの提供される機能の一部または全部を、専用のハードウェア回路(例えば、ASICまたはFPGAなど)を用いて実装してもよい。また、HMI200が提供する機能は、OSが提供するモジュールの一部を利用する形で実現される場合もある。
タッチパネル240は、ディスプレイである表示部242と、遊技者の操作を受け付ける入力部244とを含む。なお、表示部242と入力部244とが別体で構成されていてもよい。
通信IF292は、コントローラ100とのデータの遣り取りを担当する。USBコントローラ294は、USB接続を介して、任意の情報処理装置との間のデータの遣り取りを担当する。
(G3.コントローラ100のハードウェア構成)
図15は、コントローラ100のハードウェア構成の一例を示す模式図である。図15を参照して、コントローラ100は、主たるコンポーネントとして、プロセッサ110と、チップセット196と、不揮発性メモリ170と、揮発性メモリ150と、制御系ネットワークIF191と、情報系ネットワークIF192と、USBコントローラ193と、メモリカードIF194と、内部バスコントローラ195とを含む。
プロセッサ110は、CPUやGPUなどで構成され、不揮発性メモリ170に格納された各種プログラムを読み出して、揮発性メモリ150に展開して実行することで、フィールドデバイス500の制御および、パブリッシャーとしての機能を実現する。チップセット196は、プロセッサ110と各コンポーネントとの間のデータの遣り取りを仲介することで、コントローラ100全体としての処理を実現する。
不揮発性メモリ170には、システムプログラム172と、制御プログラム120と、OPC UAプログラム180と、送信設定400とが格納される。
システムプログラム172は、コントローラ100の基本的な機能を提供するプログラムである。制御プログラム120は、典型的には、ユーザがサポート装置を操作して設計することで生成されるユーザプログラムである。制御プログラム120とシステムプログラム172とが協働してユーザにおける制御目的を実現することで、フィールドデバイス500が制御される。プロセッサ110が、システムプログラム172を実行することで、制御手段102の機能が提供され、制御プログラム120の実行と、制御プログラム120の実行に伴うプロセスデータ52の更新を行う。
OPC UAプログラム180は、コントローラ100をパブリッシャーとして機能させるためのプログラムであって、コントローラ100とHMI200との間で、OPC UAに従った通信を行うためのプログラムである。プロセッサ110が、OPC UAプログラム180を実行することで、図5に示した通信処理部80に係る機能が提供される。OPC UAプログラム180は、たとえば、システムプログラムの一種として予めコントローラ100にインストールされていてもよく、また、他の外部記憶媒体(たとえばメモリカード194A、ネットワーク上のサーバ装置)から、不揮発性メモリ170にインストールされてもよい。
なお、プロセッサ110がプログラムを実行することで必要な機能が提供される構成例を示したが、これらの提供される機能の一部または全部を、専用のハードウェア回路(例えば、ASICまたはFPGAなど)を用いて実装してもよい。また、コントローラ100の主要部を、汎用的なアーキテクチャに従うハードウェア(たとえば、汎用パソコンをベースとした産業用パソコン)を用いて実現してもよい。この場合には、仮想化技術を用いて、用途の異なる複数のOSを並列的に実行させるとともに、各OS上で必要なアプリケーションを実行させるようにしてもよい。
制御系ネットワークIF191は、フィールドデバイス500との間のデータの遣り取りを担当する。
情報系ネットワークIF192は、中継装置60との間のデータの遣り取りを担当する。
USBコントローラ193は、USB接続を介して任意の情報処理装置との間のデータの遣り取りを担当する。
メモリカードIF194は、メモリカード194Aを着脱可能に構成されており、メモリカード194Aに対して制御プログラムや各種設定などのデータを書込み、あるいは、メモリカード194Aから制御プログラムや各種設定などのデータを読出すことが可能になっている。
内部バスコントローラ195は、コントローラ100に搭載される図示しないI/Oユニットなどとの間でデータを遣り取りするインターフェイスである。内部バスには、メーカ固有の通信プロトコルを用いてもよいし、いずれかの産業用ネットワークプロトコルと同一あるいは準拠した通信プロトコルを用いてもよい。
<H.中継装置の変形例>
上記実施の形態の中継装置60は、評価基準360が変動しないものとして説明した。アプリケーションの利用頻度、情報系ネットワーク2の通信帯域の利用状況、コントローラ100のプロセッサ110にかかる負荷の状況などに応じて、評価基準360aを更新してもよい。
図16は、変形例における中継装置60aの機能構成を示す図である。図16においては、上記実施の形態に係る中継装置60の機能と異なる部分だけを示している。
中継装置60aは、監視手段362、更新手段364をさらに含む。監視手段362は、アプリケーションの利用頻度、情報系ネットワーク2の通信帯域の利用状況、およびコントローラ100にかかる負荷の状況を監視する。なお、監視手段362は、蓄積情報623に基づいて、アプリケーション220の利用頻度を特定してもよい。
更新手段364は、監視手段362の監視結果に評価基準360aに関する情報を更新する。更新手段364は、評価基準360aに関する情報に加えて、コントローラ100、情報系ネットワーク2、およびHMI200の性能などを更新してもよい。
決定手段340は、更新手段364によって更新された評価基準360aに従って、各データセット50に含ませるべきプロセスデータ52を決定して、送信設定400を決定する。
<I.制御システムの変形例>
上記実施の形態において、制御システム1は中継装置60により調停手段が実装されるものとした。なお、調停手段は、コントローラにより実装されてもよい。図17は、変形例における制御システム1bの概要を示す図である。
制御システム1bは、コントローラ100bと、複数のHMI200(200-1,200-2)とを含む。コントローラ100bと各HMI200とは、互いに情報系ネットワーク2を介して通信可能に接続されている。
コントローラ100bは、調停手段300bを含む点でコントローラ100と異なる。調停手段300bは、購読リスト管理手段320bと、決定手段340bと、通知手段350bとを含む。コントローラ100bに含まれる制御手段102は、プロセスデータ52を管理するため、上記実施の形態におけるプロセスデータ取得手段330の機能を果たす。
購読リスト管理手段320bは、各HMI200からのサブスクリプション停止要求およびサブスクリプション開始要求に基づいて購読リスト612bを更新する。購読リスト612bは、HMI200と、当該HMI200が購読対象としているプロセスデータ52とを対応させて記憶する必要はなく、制御システム1b全体で購読対象となっているプロセスデータ52を特定可能な情報であればよい。
決定手段340bは、制御手段102が管理するプロセスデータ52の種類と、購読リスト612bとに基づいて、送信設定400を決定する。また、決定手段340bは、送信設定400に従い、各データセット50のヘッダ名と、タグ名と、当該タグ名の格納先に格納されているプロセスデータの種類とを特定可能なリンク情報98を生成する。
通知手段350bは、生成したリンク情報98をマルチキャストで各HMI200に向けて配信する。
コントローラ100bの通信処理部80は、決定手段340bが決定した送信設定400に従いデータセット50を生成して、マルチキャストで各HMI200に向けて送信する。
各HMI200は、リンク情報98に基づき、配信されたデータセット50から購読対象のプロセスデータ52の値を取得する。
なお、制御システム1bは、複数のコントローラ100cを含んでいてもよい。各コントローラ100cは、購読リスト612において購読対象となっているプロセスデータ52のうち、当該コントローラ100cにおいて管理しているプロセスデータ52を特定し、当該プロセスデータ52を送信するための送信設定400の決定および、決定した送信設定400に基づくリンク情報98の生成を行う。各HMI200は、各コントローラ100cのリンク情報98を有し、各リンク情報98に基づき、配信されたデータセット50から購読対象のプロセスデータ52の値を取得する。
<J.その他の変形例>
(J1.HMI200が送信する情報)
HMI200は、サブスクリプション開始要求とサブスクリプション停止要求として、購読の開始または停止するプロセスデータを中継装置60に向けて通知するものとした。
なお、中継装置が各HMIの購読管理情報94を含んでいる場合、各HMI200からは、実行を開始したアプリケーション220と、実行を停止したアプリケーション220とを特定可能な情報が中継装置に向けて通知されればよい。
中継装置が購読管理情報94を含んでいる場合、送信設定400の生成を繰り返す毎に、各アプリケーションを実行するために生成されるべきデータセットが決まっていくこととなり、送信設定400の生成に要する演算を容易にすることができる。
(J3.調停手段の実装方法の変形例)
上記実施の形態において、調停手段は、コントローラ100とHMI200との間のデータの遣り取りを中継する中継装置60を含むものとして説明した。なお、調停手段は、調停手段のみを含む設定装置として実装されてもよい。設定装置は、各コントローラ100と、各HMI200と通信可能に接続されていればよい。
たとえば、設定装置は、コントローラ100とHMI200との間のデータの遣り取りを中継しないため、コントローラ100に向けて送信設定400を通知し、コントローラ100が生成するデータセットに付すヘッダおよび、当該ヘッダ内のいずれの位置にいずれのプロセスデータを格納するかを示す情報を当該コントローラ100から受けたのち、リンク情報98を生成してもよい。
また、調停手段にかかる機能を、HMIが備えていてもよい。調停手段にかかる機能は、パブリッシャーとサブスクライバーとで構成されたネットワーク上の装置のうち、いずれの装置が備えていてもよい。たとえば、サブスクライバーとして機能する装置が複数ある場合に、当該複数の装置のうちの一の装置だけが調停手段にかかる機能を備えていてもよい。また、パブリッシャーとして機能する装置が複数ある場合に、当該複数の装置のうちの一の装置だけが調停手段にかかる機能を備えていてもよい。
(J4.HMIおよびコントローラの変形例)
上記実施の形態においては、HMIがサブスクライバー、コントローラがパブリッシャーであるとして説明した。HMIおよびコントローラの各々がサブスクライバーとパブリッシャーとの機能両方を含んでいてもよい。
この場合、制御プログラムは、HMIから配信されるデータを利用可能に構成される。HMIの送信設定は、制御プログラムに応じて、調停手段によって決定してもよい。HMIの送信設定の決定方法には、上記で説明した、コントローラ100の送信設定400の決定方法を利用できる。また、この場合に、HMIが調停手段を備えてもよい。
(J5.送信設定の決定方法に関する変形例)
一のデータセット50に含まれるすべてのプロセスデータ52を一のアプリケーションが利用するように送信設定400を生成する必要はない。この場合、評価基準360に、データセット50の中からアプリケーション220に利用するプロセスデータ52を仕分けるための処理にかかる負荷に関する指標を含めてもよい。
また、プロセスデータ52がコントローラ100で更新される周期、および、アプリケーション220において利用される周期を考慮して送信設定400を生成してもよい。
§3.付記
以上のように、上記の実施の形態は以下のような開示を含む。
<構成1>
制御対象を制御するための制御プログラム(120a)を実行するとともに、当該制御プログラムにおいて参照または更新される複数のプロセスデータ(52)を管理する制御手段(102a)と、
前記制御手段が管理する前記複数のプロセスデータの少なくとも一部のプロセスデータの値を含むデータセット(50)を生成して送信する送信手段(80a)と、
前記送信手段により送信されるデータセットを参照してアプリケーションを実行するアプリケーション実行手段(200a)と、
前記送信手段と前記アプリケーション実行手段との間で遣り取りされるデータセットを調停する調停手段(300a)とを備え、
前記調停手段は、
前記制御手段が管理する前記複数のプロセスデータに関する情報を取得する第1取得手段(320a)と、
前記アプリケーション実行手段で実行されているアプリケーションの情報を取得する第2取得手段(330a)と、
前記第1取得手段が取得した前記複数のプロセスデータに関する情報および前記第2取得手段が取得した前記実行されているアプリケーションの情報に基づいて、前記データセットに含めるべきプロセスデータを決定する決定手段(340a)と、
前記決定手段が決定した前記データセットに含めるべきプロセスデータの内容を前記送信手段および前記アプリケーション実行手段の各々に通知する通知手段(350a)とを含む、制御システム。
<構成2>
前記第2取得手段は、前記アプリケーション実行手段で実行されているアプリケーションが変更される毎に、変更後のアプリケーションが利用するプロセスデータを特定するための情報を取得する(S106~S110;S128~S132)、構成1に記載の制御システム。
<構成3>
前記決定手段は、前記第2取得手段により取得されたアプリケーションの情報に基づいて、通信負荷に関する予め定められた評価基準(360)に従って、前記データセットに含めるべきプロセスデータを決定する、構成1または2に記載の制御システム。
<構成4>
前記評価基準は、前記複数のプロセスデータの各々が前記アプリケーション実行手段において実行されるアプリケーションにおいて利用される頻度、および、前記複数のプロセスデータの各々に設定された重要度の少なくとも一方に基づく、構成3に記載の制御システム。
<構成5>
前記決定手段は、前記データセットに含めるべきプロセスデータを都度決定する、構成1~4のいずれか1項に記載の制御システム。
<構成6>
前記決定手段は、予め定められた複数のデータセットのうちから、データセットに含めるべきと決定されたプロセスデータに対応するデータセットを選択する、構成1~4のいずれか1項に記載の制御システム。
<構成7>
前記制御システムは、制御装置(100)および表示装置(200)を備え、
前記調停手段は、前記制御装置および前記表示装置とは独立して配置される、構成1~6のいずれか1項に記載の制御システム。
<構成8>
前記制御システムは、第1アプリケーション実行手段および第2アプリケーション実行手段を含む複数の前記アプリケーション実行手段を備え、
前記通知手段は、前記決定手段が前記第1アプリケーション実行手段から取得した情報に基づいて新たに決定されたプロセスデータの内容を、前記第2アプリケーション実行手段にも通知する(S140,S144)、構成1~7のいずれか1項に記載の制御システム。
<構成9>
制御システム(1)に配置された中継装置(60)であって、
前記制御システムは、
制御対象を制御するための制御プログラム(120a)を実行するとともに、当該制御プログラムにおいて参照または更新される複数のプロセスデータを管理する制御手段(102a)と、
前記制御手段が管理する前記複数のプロセスデータの少なくとも一部のプロセスデータの値を含むデータセット(50)を生成して送信する送信手段(80a)と、
前記送信手段により送信されるデータセットを参照してアプリケーションを実行するアプリケーション実行手段(200a)とを備え、
前記中継装置は、送信手段と前記アプリケーション実行手段との間で遣り取りされるデータセットを調停するように構成され、
前記中継装置は、
前記制御手段が管理する前記複数のプロセスデータに関する情報を取得する第1取得手段(320a)と、
前記アプリケーション実行手段で実行されているアプリケーションの情報を取得する第2取得手段(330a)と、
前記第1取得手段が取得した前記複数のプロセスデータに関する情報および前記第2取得手段が取得した前記実行されているアプリケーションの情報に基づいて、前記データセットに含めるべきプロセスデータを決定する決定手段(340a)と、
前記決定手段が決定した前記データセットに含めるべきプロセスデータの内容を前記送信手段および前記アプリケーション実行手段の各々に通知する通知手段(350a)とを含む、中継装置。
<構成10>
制御システムに配置された情報処理装置で実行される中継プログラム(1310)であって、
前記制御システムは、
制御対象を制御するための制御プログラムを実行するとともに、当該制御プログラムにおいて参照または更新される複数のプロセスデータを管理する制御手段(102a)と、
前記制御手段が管理する前記複数のプロセスデータの少なくとも一部のプロセスデータの値を含むデータセット(50)を生成して送信する送信手段(80a)と、
前記送信手段により送信されるデータセットを参照してアプリケーションを実行するアプリケーション実行手段(200a)とを備え、
前記中継プログラムは、前記情報処理装置を、前記送信手段と前記アプリケーション実行手段との間で遣り取りされるデータセットを調停する中継装置として機能させ、
前記中継プログラムは、前記情報処理装置に、
前記制御手段が管理する前記複数のプロセスデータに関する情報を取得するステップと、
前記アプリケーション実行手段で実行されているアプリケーションの情報を取得するステップ(S110)と、
前記取得された複数のプロセスデータに関する情報および前記取得された実行されているアプリケーションの情報に基づいて、前記データセットに含めるべきプロセスデータを決定するステップ(S111~S113)と、
前記決定された前記データセットに含めるべきプロセスデータの内容を前記送信手段および前記アプリケーション実行手段の各々に通知するステップ(S114,S118)とを実行させる、中継プログラム。
今回開示された実施の形態はすべての点で例示であって制限的なものではないと考えられるべきである。本発明の範囲は、上記した説明ではなく、特許請求の範囲によって示され、特許請求の範囲と均等の意味および範囲内でのすべての変更が含まれることが意図される。また、実施の形態および各変形例において説明された発明は、可能な限り、単独でも、組み合わせても、実施することが意図される。
1,1a,1b 制御システム、2 情報系ネットワーク、4 制御系ネットワーク、50 データセット、52 プロセスデータ、54 オブジェクト、60,60a 中継装置、61,110,210 プロセッサ、64,150,250 揮発性メモリ、65,170,270 不揮発性メモリ、68,296 プロセッサバス、80,80a,90 通信処理部、82 データセット生成手段、84,96 通信ドライバ、92 購読管理手段、94 購読管理情報、98,98a リンク情報、100,100b,100c コントローラ、102,102a 制御手段、120,120a 制御プログラム、172 システムプログラム、180,260 OPC UAプログラム、191 制御系ネットワークIF、192 情報系ネットワークIF、193,294 USBコントローラ、194 メモリカードIF、194A メモリカード、195 内部バスコントローラ、196 チップセット、200 HMI、200a アプリケーション実行手段、220 アプリケーション、222 マッピング情報、240 タッチパネル、242 表示部、244 入力部、300,300a,300b 調停手段、320,320b 購読リスト管理手段、320a アプリケーション情報取得手段、330,330a プロセスデータ取得手段、340,340a,340b 決定手段、342 価値決定手段、344 候補算出手段、346 評価手段、348 判定手段、350,350a,350b 通知手段、352 通信負荷指標、354 通信性能指標、356 通信効率指標、357 変更負荷指標、358 優先度情報、360,360a 評価基準、362 監視手段、364 更新手段、370 価値情報、372 容量情報、374 候補データ、376 HMI情報、400 送信設定、500 フィールドデバイス、612,612b 購読リスト、612a アプリケーション情報、622,622a プロセスデータリスト、623 蓄積情報、680 送受信管理手段、682 トピックリスト、700,900 ユーザインターフェイス、720 ネットワーク構成領域、740 受付領域、742,962 タブ、920 指標領域、960 優先度受付領域、1310 中継プログラム、1312 調停プログラム、1314 通信プログラム、1320 評価情報、1340 性能情報。

Claims (10)

  1. 制御対象を制御するための制御プログラムを実行するとともに、当該制御プログラムにおいて参照または更新される複数のプロセスデータを管理する制御手段と、
    前記制御手段が管理する前記複数のプロセスデータの少なくとも一部のプロセスデータの値を含むデータセットを生成して送信する送信手段と、
    前記送信手段により送信されるデータセットを参照してアプリケーションを実行するアプリケーション実行手段と、
    前記送信手段と前記アプリケーション実行手段との間で遣り取りされるデータセットを調停する調停手段とを備え、
    前記調停手段は、
    前記制御手段が管理する前記複数のプロセスデータに関する情報を取得する第1取得手段と、
    前記アプリケーション実行手段で実行されているアプリケーションの情報を取得する第2取得手段と、
    前記第1取得手段が取得した前記複数のプロセスデータに関する情報および前記第2取得手段が取得した前記実行されているアプリケーションの情報に基づいて、前記データセットに含めるべきプロセスデータを決定する決定手段と、
    前記決定手段が決定した前記データセットに含めるべきプロセスデータの内容を前記送信手段および前記アプリケーション実行手段の各々に通知する通知手段とを含む、制御システム。
  2. 前記第2取得手段は、前記アプリケーション実行手段で実行されているアプリケーションが変更される毎に、変更後のアプリケーションが利用するプロセスデータを特定するための情報を取得する、請求項1に記載の制御システム。
  3. 前記決定手段は、前記第2取得手段により取得されたアプリケーションの情報に基づいて、通信負荷に関する予め定められた評価基準に従って、前記データセットに含めるべきプロセスデータを決定する、請求項1または2に記載の制御システム。
  4. 前記評価基準は、前記複数のプロセスデータの各々が前記アプリケーション実行手段において実行されるアプリケーションにおいて利用される頻度、および、前記複数のプロセスデータの各々に設定された重要度の少なくとも一方に基づく、請求項3に記載の制御システム。
  5. 前記決定手段は、前記データセットに含めるべきプロセスデータを都度決定する、請求項1~4のいずれか1項に記載の制御システム。
  6. 前記決定手段は、予め定められた複数のデータセットのうちから、データセットに含めるべきと決定されたプロセスデータに対応するデータセットを選択する、請求項1~4のいずれか1項に記載の制御システム。
  7. 前記制御システムは、制御装置および表示装置を備え、
    前記調停手段は、前記制御装置および前記表示装置とは独立して配置される、請求項1~6のいずれか1項に記載の制御システム。
  8. 前記制御システムは、第1アプリケーション実行手段および第2アプリケーション実行手段を含む複数の前記アプリケーション実行手段を備え、
    前記通知手段は、前記決定手段が前記第1アプリケーション実行手段から取得した情報に基づいて新たに決定されたプロセスデータの内容を、前記第2アプリケーション実行手段にも通知する、請求項1~7のいずれか1項に記載の制御システム。
  9. 制御システムに配置された中継装置であって、
    前記制御システムは、
    制御対象を制御するための制御プログラムを実行するとともに、当該制御プログラムにおいて参照または更新される複数のプロセスデータを管理する制御手段と、
    前記制御手段が管理する前記複数のプロセスデータの少なくとも一部のプロセスデータの値を含むデータセットを生成して送信する送信手段と、
    前記送信手段により送信されるデータセットを参照してアプリケーションを実行するアプリケーション実行手段とを備え、
    前記中継装置は、送信手段と前記アプリケーション実行手段との間で遣り取りされるデータセットを調停するように構成され、
    前記中継装置は、
    前記制御手段が管理する前記複数のプロセスデータに関する情報を取得する第1取得手段と、
    前記アプリケーション実行手段で実行されているアプリケーションの情報を取得する第2取得手段と、
    前記第1取得手段が取得した前記複数のプロセスデータに関する情報および前記第2取得手段が取得した前記実行されているアプリケーションの情報に基づいて、前記データセットに含めるべきプロセスデータを決定する決定手段と、
    前記決定手段が決定した前記データセットに含めるべきプロセスデータの内容を前記送信手段および前記アプリケーション実行手段の各々に通知する通知手段とを含む、中継装置。
  10. 制御システムに配置された情報処理装置で実行される中継プログラムであって、
    前記制御システムは、
    制御対象を制御するための制御プログラムを実行するとともに、当該制御プログラムにおいて参照または更新される複数のプロセスデータを管理する制御手段と、
    前記制御手段が管理する前記複数のプロセスデータの少なくとも一部のプロセスデータの値を含むデータセットを生成して送信する送信手段と、
    前記送信手段により送信されるデータセットを参照してアプリケーションを実行するアプリケーション実行手段とを備え、
    前記中継プログラムは、前記情報処理装置を、前記送信手段と前記アプリケーション実行手段との間で遣り取りされるデータセットを調停する中継装置として機能させ、
    前記中継プログラムは、前記情報処理装置に、
    前記制御手段が管理する前記複数のプロセスデータに関する情報を取得するステップと、
    前記アプリケーション実行手段で実行されているアプリケーションの情報を取得するステップと、
    前記取得された複数のプロセスデータに関する情報および前記取得された実行されているアプリケーションの情報に基づいて、前記データセットに含めるべきプロセスデータを決定するステップと、
    前記決定された前記データセットに含めるべきプロセスデータの内容を前記送信手段および前記アプリケーション実行手段の各々に通知するステップとを実行させる、中継プログラム。
JP2019049107A 2019-03-15 2019-03-15 制御システム、中継装置、および中継プログラム Active JP7036069B2 (ja)

Priority Applications (5)

Application Number Priority Date Filing Date Title
JP2019049107A JP7036069B2 (ja) 2019-03-15 2019-03-15 制御システム、中継装置、および中継プログラム
US17/434,634 US20220171361A1 (en) 2019-03-15 2020-02-26 Control system, relay device, and relay program
CN202080017180.8A CN113544600B (zh) 2019-03-15 2020-02-26 控制系统、中继装置以及记录介质
PCT/JP2020/007799 WO2020189206A1 (ja) 2019-03-15 2020-02-26 制御システム、中継装置、および中継プログラム
EP20774588.6A EP3940479A4 (en) 2019-03-15 2020-02-26 CONTROL SYSTEM, RELAY DEVICE AND RELAY PROGRAM

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2019049107A JP7036069B2 (ja) 2019-03-15 2019-03-15 制御システム、中継装置、および中継プログラム

Publications (2)

Publication Number Publication Date
JP2020149632A JP2020149632A (ja) 2020-09-17
JP7036069B2 true JP7036069B2 (ja) 2022-03-15

Family

ID=72430652

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2019049107A Active JP7036069B2 (ja) 2019-03-15 2019-03-15 制御システム、中継装置、および中継プログラム

Country Status (5)

Country Link
US (1) US20220171361A1 (ja)
EP (1) EP3940479A4 (ja)
JP (1) JP7036069B2 (ja)
CN (1) CN113544600B (ja)
WO (1) WO2020189206A1 (ja)

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2000242326A (ja) 1999-02-23 2000-09-08 Keyence Corp 表示中継装置
JP2002358105A (ja) 2001-05-31 2002-12-13 Digital Electronics Corp 制御用コンピュータ、そのプログラム、および、それが記録された記録媒体
JP2016126495A (ja) 2014-12-26 2016-07-11 株式会社キーエンス 組込機器設定システム

Family Cites Families (17)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2525068B2 (ja) * 1990-04-27 1996-08-14 日産自動車株式会社 シ―ケンス制御のモニタ方法
JPH08147007A (ja) * 1994-11-21 1996-06-07 Yaskawa Electric Corp コントローラとプログラマブル表示装置との間のデータ伝送方法
RU2357278C2 (ru) * 2002-03-01 2009-05-27 Фишер-Роузмаунт Системз, Инк. Создание интегрированных предупреждений в технологической установке
JP4738458B2 (ja) * 2008-08-25 2011-08-03 株式会社 エニイワイヤ 制御・監視信号伝送システム
JP2010079369A (ja) * 2008-09-24 2010-04-08 Renesas Technology Corp データ処理システム、データプロセッサ及びバス調停方法
JP5473817B2 (ja) * 2010-07-23 2014-04-16 三菱電機株式会社 プログラマブルコントローラおよびバス変換器
JP5252014B2 (ja) * 2011-03-15 2013-07-31 オムロン株式会社 制御装置、制御システム、ツール装置および収集指示プログラム
WO2014027445A1 (ja) * 2012-08-13 2014-02-20 パナソニック株式会社 アクセス制御装置、中継装置、アクセス制御方法、コンピュータプログラム
JP6102430B2 (ja) * 2013-03-29 2017-03-29 ブラザー工業株式会社 中継装置、中継装置のプログラムおよび通信方法
JP6481267B2 (ja) * 2014-06-27 2019-03-13 オムロン株式会社 プログラマブル表示器
WO2016088215A1 (ja) * 2014-12-03 2016-06-09 富士電機株式会社 Plc機能内蔵型ドライブ制御装置
JP6535459B2 (ja) * 2014-12-08 2019-06-26 株式会社キーエンス プログラマブル・ロジック・コントローラ、基本ユニット、制御方法およびプログラム
JP6477161B2 (ja) * 2015-03-31 2019-03-06 オムロン株式会社 情報処理装置、情報処理プログラムおよび情報処理方法
JP6590726B2 (ja) 2016-02-17 2019-10-16 株式会社キーエンス プログラマブル表示器及びこれを備えるプログラマブルシステム、プログラマブル表示器の設計装置、プログラマブル表示器の設計方法、プログラマブル表示器の操作方法、プログラマブル表示器の設計プログラム及びコンピュータで読み取り可能な記録媒体並びに記憶した機器
JP6926539B2 (ja) * 2017-03-10 2021-08-25 オムロン株式会社 制御装置およびプログラム
JP6919404B2 (ja) * 2017-08-10 2021-08-18 オムロン株式会社 制御装置
US10545470B2 (en) * 2017-11-10 2020-01-28 Rockwell Automation Technologies, Inc. Configurable mode model

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2000242326A (ja) 1999-02-23 2000-09-08 Keyence Corp 表示中継装置
JP2002358105A (ja) 2001-05-31 2002-12-13 Digital Electronics Corp 制御用コンピュータ、そのプログラム、および、それが記録された記録媒体
JP2016126495A (ja) 2014-12-26 2016-07-11 株式会社キーエンス 組込機器設定システム

Also Published As

Publication number Publication date
EP3940479A4 (en) 2022-12-28
CN113544600B (zh) 2024-04-05
US20220171361A1 (en) 2022-06-02
WO2020189206A1 (ja) 2020-09-24
EP3940479A1 (en) 2022-01-19
JP2020149632A (ja) 2020-09-17
CN113544600A (zh) 2021-10-22

Similar Documents

Publication Publication Date Title
US7185046B2 (en) Submitting jobs in a distributed computing environment
EP2710470B1 (en) Extensible centralized dynamic resource distribution in a clustered data grid
JP5404060B2 (ja) 時間制御される分散型コンピュータシステムのための最適化された流れ図を生成する方法
US20150207851A1 (en) Systems and/or methods for automatically tuning a delivery system for transmission of large, volatile data
US11036539B2 (en) Workflow engine framework
JP6261079B2 (ja) ワークフロー管理装置、ワークフロー管理方法およびワークフロー管理プログラム
Berman et al. Bio-inspired group behaviors for the deployment of a swarm of robots to multiple destinations
WO2020189086A1 (ja) 制御システム、設定装置、および設定プログラム
JP2006164233A (ja) 分散データ駆動型アーキテクチャ環境におけるディレクトリ構造
JP2019075077A (ja) ワークフローエンジンフレームワーク
JP6881256B2 (ja) 制御装置、制御方法、およびプログラム
US10817512B2 (en) Standing queries in memory
JP7036069B2 (ja) 制御システム、中継装置、および中継プログラム
WO2020189204A1 (ja) 制御システム、中継装置、および中継プログラム
JP7040484B2 (ja) 制御システム、サポート装置、およびサポートプログラム
JP5530878B2 (ja) 分散システムにおけるデータレプリケーション管理方法
US20130042034A1 (en) Synchronisation of data processing systems
US20160006780A1 (en) Method for processing data streams including time-critical messages of a power network
US10705761B2 (en) Method of and system for scheduling transmission of I/O operations
US11044320B2 (en) Data distribution method for a process automation and internet of things system
Sait et al. Novel design of collaborative automation platform using real-time data distribution service middleware for an optimum process control environment
Jeong et al. A Configurable Model-Based Reinforcement Learning Framework for Disaggregated Storage Systems
Reyes Levalle et al. Final Remarks and Outlook for Teaming-Based Resilience in Supply Networks
TWI466498B (zh) A system and method for providing an autonomous load balancing host in a distributed environment
JP2022528548A (ja) ノードデータを転送するための集約サーバおよび方法

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20201215

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

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20220201

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20220214

R150 Certificate of patent or registration of utility model

Ref document number: 7036069

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150