(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2024-02-02
(45)【発行日】2024-02-13
(54)【発明の名称】制御システム、制御方法、及びプログラム
(51)【国際特許分類】
G05B 19/042 20060101AFI20240205BHJP
G05B 23/02 20060101ALI20240205BHJP
【FI】
G05B19/042
G05B23/02 Z
(21)【出願番号】P 2021181373
(22)【出願日】2021-11-05
【審査請求日】2022-09-15
(73)【特許権者】
【識別番号】000006622
【氏名又は名称】株式会社安川電機
(74)【代理人】
【識別番号】110000154
【氏名又は名称】弁理士法人はるか国際特許事務所
(72)【発明者】
【氏名】田中 佑典
(72)【発明者】
【氏名】小林 和敏
(72)【発明者】
【氏名】有江 健
【審査官】牧 初
(56)【参考文献】
【文献】特開2013-105301(JP,A)
【文献】特開平07-146701(JP,A)
【文献】特開2006-113654(JP,A)
【文献】特開2003-140704(JP,A)
【文献】特開2002-077215(JP,A)
(58)【調査した分野】(Int.Cl.,DB名)
G05B 19/04-19/05
G05B 23/00-23/02
G05B 19/418
G05B 9/00- 9/05
H04L 12/28
H04L 12/44-12/46
(57)【特許請求の範囲】
【請求項1】
第1コントローラと、
第2コントローラと、
前記第1コントローラとネットワーク通信により通信し、前記第1コントローラにより制御される第1産業装置と、
を有し、
前記ネットワーク通信は、
前記第1コントローラが管理する第1通信ドメインと、
前記第2コントローラが管理する第2通信ドメインと、
を有し、
前記第1産業装置は、前記第1通信ドメイン及び前記第2通信ドメインに属し、
前記第2コントローラは、
前記ネットワーク通信により、前記第1産業装置の制御に関する制御データを収集する収集部を有する、
制御システム。
【請求項2】
第1コントローラと、
第2コントローラと、
前記第1コントローラとネットワーク通信により通信し、前記第1コントローラにより制御される第1産業装置と、
前記第2コントローラと前記ネットワーク通信により通信し、前記第2コントローラにより制御される第2産業装置と、
を有し、
前記第2コントローラは、
前記ネットワーク通信により、前記第1産業装置の制御に関する制御データと、前記第2産業装置の制御に関する制御データと、を収集する収集部を有し、
前記第1コントローラは、前記ネットワーク通信で行われる定周期通信の伝送周期内の第1期間において、前記第1産業装置と通信し、
前記第2コントローラは、前記伝送周期内の前記第1期間よりも後の第2期間において、前記第1産業装置と通信する、
制御システム。
【請求項3】
前記第2コントローラとネットワーク通信により通信し、前記第2コントローラにより制御される第2産業装置を有し、
前記収集部は、前記ネットワーク通信により、前記第2産業装置の制御に関する制御データを収集し、
前記第1コントローラは、前記ネットワーク通信で行われる定周期通信の伝送周期内の第1期間において、前記第1産業装置と通信し、
前記第2コントローラは、前記伝送周期内の前記第1期間よりも後の第2期間において、前記第1産業装置と通信する、
請求項
1に記載の制御システム。
【請求項4】
前記第2コントローラは、前記伝送周期内の第3期間において、前記第2産業装置と通信し、
前記第1期間及び前記第3期間は、互いに少なくとも一部が重複する、
請求項
2又は3に記載の制御システム。
【請求項5】
前記第2コントローラは、
他の産業装置を制御するための制御指令とは異なる収集指令を生成する指令生成部を有し、
前記収集部は、前記収集指令に基づいて、前記制御データを収集する、
請求項1~
4の何れかに記載の制御システム。
【請求項6】
前記第2コントローラは、
データ収集を行うデータ収集装置に、前記制御データを送信する送信部を有する、
請求項1~
5の何れかに記載の制御システム。
【請求項7】
前記収集部は、前記第1コントローラが制御のために前記第1産業装置から収集したデータと同じ内容を含む前記制御データを収集する、
請求項1~
6の何れかに記載の制御システム。
【請求項8】
前記第1産業装置は、
前記第1コントローラから受信した第1指令、又は、前記第2コントローラから受信した第2指令の何れかに基づいて動作する動作部を有する、
請求項1~
7の何れかに記載の制御システム。
【請求項9】
前記第1指令と前記第2指令とが互いに一致するか否かを判定する判定部を有し、
前記動作部は、前記第1指令と前記第2指令とが互いに一致すると判定された場合に、前記第1指令又は前記第2指令の何れかに基づいて動作する、
請求項
8に記載の制御システム。
【請求項10】
前記第1産業装置は、
前記判定部を有し、
前記動作部は、前記第1産業装置の前記判定部により前記第1指令と前記第2指令とが互いに一致すると判定された場合に、前記第1指令又は前記第2指令の何れかに基づいて動作する、
請求項
9に記載の制御システム。
【請求項11】
前記第1コントローラと、前記第2コントローラと、を含む3以上のコントローラを有し、
前記判定部は、前記3以上のコントローラに対応する3以上の指令の中に、互いに一致しない指令が含まれているか否かを判定し、
前記動作部は、互いに一致しない指令が含まれていると判定された場合に、前記3以上の指令の中で、最も多く一致した指令に基づいて動作する、
請求項
9又は
10に記載の制御システム。
【請求項12】
第1コントローラが、ネットワーク通信により第1産業装置と通信して前記第1産業装置を制御し、
前記ネットワーク通信は、
前記第1コントローラが管理する第1通信ドメインと、
第2コントローラが管理する第2通信ドメインと、
を有し、
前記第1産業装置は、前記第1通信ドメイン及び前記第2通信ドメインに属し、
前記第2コントローラが、前記ネットワーク通信により、前記第1産業装置の制御に関する制御データを収集する、
制御方法。
【請求項13】
第1コントローラが、ネットワーク通信により第1産業装置と通信して前記第1産業装置を制御し、
第2コントローラが、前記ネットワーク通信により第2産業装置と通信して前記第2産業装置を制御し、
前記第2コントローラが、
前記ネットワーク通信により、前記第1産業装置の制御に関する制御データと、前記第2産業装置の制御に関する制御データと、を収集し、
前記第1コントローラが、前記ネットワーク通信で行われる定周期通信の伝送周期内の第1期間において、前記第1産業装置と通信し、
前記第2コントローラが、前記伝送周期内の前記第1期間よりも後の第2期間において、前記第1産業装置と通信する、
制御方法。
【請求項14】
第1コントローラが管理する第1通信ドメインと、第2コントローラが管理する第2通信ドメインと、を有するネットワーク通信により
前記第1コントローラと通信し、前記第1コントローラにより制御され
、前記第1通信ドメイン及び前記第2通信ドメインに属する第1産業装置と通信可能な第2コントローラを、
前記ネットワーク通信により、前記第1産業装置の制御に関する制御データを収集する収集部、
として機能させるためのプログラム。
【請求項15】
第1コントローラとネットワーク通信により通信し、前記第1コントローラにより制御される第1産業装置と通信可能であり、かつ、前記ネットワーク通信により通信して第2産業装置を制御する第2コントローラを、
前記ネットワーク通信により、前記第1産業装置の制御に関する制御データと、前記第2産業装置の制御に関する制御データと、を収集する収集部、
として機能させ、
前記第1コントローラは、前記ネットワーク通信で行われる定周期通信の伝送周期内の第1期間において、前記第1産業装置と通信し、
前記第2コントローラに、前記伝送周期内の前記第1期間よりも後の第2期間において、前記第1産業装置と通信させる、
ためのプログラム。
【発明の詳細な説明】
【技術分野】
【0001】
本開示は、制御システム、制御方法、及びプログラムに関する。
【背景技術】
【0002】
特許文献1には、コントローラと、当該コントローラが制御する産業装置と、を含む通信グループを他の通信グループから独立して通信させるためのスイッチのオン/オフを制御することによって、1つの伝送周期の中で通信システム内の通信グループを動的に切り替える技術が記載されている。
【先行技術文献】
【特許文献】
【0003】
【発明の概要】
【発明が解決しようとする課題】
【0004】
本開示の目的の1つは、例えば、産業装置の制御データを収集することである。
【課題を解決するための手段】
【0005】
本開示の一側面に係る制御システムは、第1コントローラと、第2コントローラと、前記第1コントローラとネットワーク通信により通信し、前記第1コントローラにより制御される第1産業装置と、を有し、前記第2コントローラは、前記ネットワーク通信により、前記第1産業装置の制御に関する制御データを収集する収集部を有する。
【発明の効果】
【0006】
本開示によれば、例えば、産業装置の制御データを収集できる。
【図面の簡単な説明】
【0007】
【
図1】制御システムの全体構成の一例を示す図である。
【
図2】従来のネットワーク通信を制御システムに適用した場合のネットワーク構成の一例を示す図である。
【
図3】従来のネットワーク通信を制御システムに適用した場合の伝送周期の一例を示す図である。
【
図4】従来のネットワーク通信で収集された制御データをデータ収集装置に送信するためのデータフォーマットの一例を示す図である。
【
図5】第1実施形態で実現される機能の一例を示す機能ブロック図である。
【
図6】第1実施形態の制御システムにおけるネットワーク構成の一例を示す図である。
【
図7】第1実施形態の制御システムにおける伝送周期の一例を示す図である。
【
図8】第1実施形態の制御システムで収集された制御データをデータ収集装置に送信するためのデータフォーマットの一例を示す図である。
【
図9】第1実施形態で実行される処理の一例を示すフロー図である。
【
図10】第2実施形態の制御システムにおけるネットワーク構成の一例を示す図である。
【
図11】第2実施形態の制御システム1における伝送周期の一例を示す図である。
【
図12】第2実施形態で実行される処理の一例を示すフロー図である。
【
図13】変形例2の機能ブロックの一例を示す図である。
【発明を実施するための形態】
【0008】
[1.第1実施形態]
本開示に係る制御システムの実施形態の一例である第1実施形態を説明する。
【0009】
[1-1.制御システムの全体構成]
図1は、制御システムの全体構成の一例を示す図である。
図1の各装置は、産業用ネットワーク、LAN、又はインターネット等の任意のネットワークに接続される。
図1の産業装置30A~30Fを区別しない場合には、産業装置30と記載する。
図1のCPU31A~31F、記憶部32A~32F、及び通信部33A~33Fを区別しない場合には、それぞれCPU31、記憶部32、及び通信部33と記載する。
【0010】
第1コントローラ10は、1以上の産業装置30を制御可能な装置である。例えば、第1コントローラ10は、モータ制御装置の上位コントローラ、PLC(Programmable Logic Controller)、セルコントローラ、又はラインコントローラである。CPU11は、1以上のプロセッサを含む。記憶部12は、揮発性メモリと、不揮発性メモリと、の少なくとも一方を含む。通信部13は、有線通信用の通信インタフェースと、無線通信用の通信インタフェースと、の少なくとも一方を含む。
【0011】
第2コントローラ20は、1以上の産業装置30を制御可能な装置である。第2コントローラ20の物理的構成は、第1コントローラ10と同様であってよい。即ち、CPU21、記憶部22、及び通信部23の物理的構成は、それぞれCPU11、記憶部12、及び通信部13と同様であってもよい。
【0012】
産業装置30は、第1コントローラ10及び第2コントローラ20の少なくとも一方により制御される装置である。例えば、産業装置30は、モータ制御装置、ロボットコントローラ、数値制御装置、加工装置、搬送装置、検査装置、又はセンサユニットである。CPU31、記憶部32、及び通信部33の物理的構成は、それぞれCPU11、記憶部12、及び通信部13と同様であってもよい。例えば、産業装置30は、モータ又はロボットといった機構を制御する。
【0013】
データ収集装置40は、データ収集を行う装置である。例えば、データ収集装置40は、パーソナルコンピュータ、サーバコンピュータ、タブレット端末、又はスマートフォンある。CPU41、記憶部42、及び通信部43の物理的構成は、それぞれCPU11、記憶部12、及び通信部13と同様であってもよい。操作部44は、マウス又はキーボード等の入力デバイスである。表示部45は、液晶ディスプレイ又は有機ELディスプレイである。
【0014】
なお、各装置に記憶されるプログラム又はデータは、ネットワークを介して供給されてもよい。また、各装置の物理的構成は、上記の例に限られず、種々のハードウェアを適用可能である。例えば、コンピュータ読み取り可能な情報記憶媒体を読み取る読取部(例えば、メモリカードスロット)や外部機器と接続するための入出力部(例えば、USB端子)が含まれてもよい。この場合、情報記憶媒体に記憶されたプログラム又はデータが、読取部又は入出力部を介して供給されてもよい。
【0015】
例えば、FPGA又はASICといった他の回路が各装置に含まれてもよい。第1実施形態では、CPU11,21,31,41がcircuitryと呼ばれる構成に相当する場合を説明するが、FPGA又はASICといった他の回路がcircuitryに相当してもよい。各装置には、トルクセンサ、モータエンコーダ、ビジョンセンサ、モーションセンサ、赤外線センサ、超音波センサ、又は温度センサといったセンサが接続されていてもよい。
【0016】
[1-2.第1実施形態の概要]
第1実施形態では、第1コントローラ10は、産業装置30A~30Cを制御する。第2コントローラ20は、産業装置30D~30Fを制御する。第2コントローラ20は、産業装置30A~30Cを直接的には制御しないが、産業装置30A~30Cから制御データを収集する。第1コントローラ10も、産業装置30A~30Cの制御データを収集する。第2コントローラ20は、産業装置30D~30Fの制御データも収集する。
【0017】
制御データは、産業装置30の制御に関するデータである。制御データは、制御システム1において収集対象となるデータである。例えば、制御データは、産業装置30の動作を解析するために収集される。制御データ自体は、産業装置30が取得可能な任意のデータであってよく、例えば、産業装置30に接続されたセンサの検出結果(例えば、トルク、モータの位置、又はモータの速度)を示すデータである。制御データは、産業装置30が制御する機構に関するデータであってもよいし、作業の対象となる対象物に関するデータであってもよい。
【0018】
産業装置30A~30Cは、第1産業装置の一例である。このため、産業装置30A~30Cについて説明している箇所は、第1産業装置と読み替えることができる。第1産業装置は、第1コントローラ10とネットワーク通信により通信し、第1コントローラ10により制御される装置である。制御システム1は、1以上の第1産業装置を含めばよく、制御システム1に含まれる第1産業装置は、任意の台数であってよい。
【0019】
産業装置30D~30Fは、第2産業装置の一例である。このため、産業装置30D~30Fについて説明している箇所は、第2産業装置と読み替えることができる。第2産業装置は、第2コントローラ20とネットワーク通信により通信し、第2コントローラ20により制御される装置である。制御システム1は、1以上の第2産業装置を含めばよく、制御システム1に含まれる第2産業装置は、任意の台数であってよい。制御システム1には、第2産業装置が含まれなくてもよい。即ち、第2コントローラ20が直接的に制御する産業装置30が存在しなくてもよい。
【0020】
ネットワーク通信は、所定の通信プロトコルにより実現されるデータ通信である。第1実施形態では、通信プロトコルがメカトロリンク(登録商標)である場合を例に挙げるが、制御システム1の通信プロトコル自体は、産業用ネットワークで採用されている任意の通信プロトコルであってよく、第1実施形態の例に限られない。第1実施形態のネットワーク通信は、マルチドメインに対応している。
【0021】
マルチドメインとは、同一のネットワーク内に複数の通信ドメインを構成することである。通信ドメインは、ネットワークにおける通信の範囲である。同じ通信ドメインに属する装置同士でネットワーク通信が行われる。通信ドメインは、物理的なグループではなく、論理的なグループである。物理的に接続されていても、同じ通信ドメインに属さない装置同士で通信は行われない。第1実施形態では、マルチドメインの仕組みを利用することによって、従来にはないデータ収集を実現する。
【0022】
図2は、従来のネットワーク通信を制御システム1に適用した場合のネットワーク構成の一例を示す図である。
図2のネットワーク通信は、マルチドメインに対応しておらず、通信ドメインの概念もないものとする。第1ネットワークN1は、第1コントローラ10と、産業装置30A~30Cと、が通信するためのネットワークである。第2ネットワークN2は、第1コントローラ10と、第2コントローラ20と、が通信するためのネットワークである。第3ネットワークN3は、第2コントローラ20と、産業装置30D~30Fと、が通信するためのネットワークである。
【0023】
図2の制御システム1では、定周期通信が行われるものとする。定周期通信は、周期的に通信する通信方式である。定周期通信では、ある伝送周期が訪れると、この伝送周期内で、予め定められた手順に基づいて通信が行われる。ある伝送周期が終了して次の伝送周期が訪れると、再び同様の手順に基づいて通信が行われる。以降、予め定められた手順に基づく通信が周期的に繰り返される。
【0024】
図3は、従来のネットワーク通信を制御システム1に適用した場合の伝送周期の一例を示す図である。
図3のように、伝送周期が訪れると、第1ネットワークN1~第3ネットワークN3の各々で通信が開始される。例えば、第1ネットワークN1~第3ネットワークN3の各々で通信が行われる期間は、互いに重複する。即ち、第1ネットワークN1~第3ネットワークN3の各々の通信は、同時並行で行われる。
【0025】
例えば、第1ネットワークN1では、ある伝送周期1が訪れると、第1コントローラ10は、産業装置30A~30Cに指令を送信し、産業装置30A~30Cから制御データを収集する。第3ネットワークN3では、伝送周期1が訪れると、第2コントローラ20は、産業装置30D~30Fに指令を送信し、産業装置30D~30Fから制御データを収集する。
【0026】
第2ネットワークN2では、伝送周期1が訪れると、第2コントローラ20は、第1コントローラ10に記録された産業装置30A~30Cの制御データを収集する。この時点では、第1ネットワークN1におけるデータ収集が完了していない。このため、第2コントローラ20が収集する産業装置30A~30Cの制御データは、1伝送周期分遅れることになる。
【0027】
例えば、第2コントローラ20は、伝送周期1において、図示しない1つ前の伝送周期における産業装置30A~30Cの制御データを収集する。第2コントローラ20は、伝送周期2において、1つ前の伝送周期1における産業装置30A~30Cの制御データを収集する。
【0028】
以上のように、第2コントローラ20が収集した産業装置30A~30Cの制御データと産業装置30D~30Fの制御データとは、収集された時点が互いに異なる。産業装置30A~30Fの制御データをまとめてデータ収集装置40に送信する場合、個々の制御データがどの時点のものなのかを特定できるようにする必要がある。
【0029】
図4は、従来のネットワーク通信で収集された制御データをデータ収集装置40に送信するためのデータフォーマットの一例を示す図である。例えば、産業装置30D~30Eの制御データに、第2コントローラ20のタイムスタンプが付与され、産業装置30A~30Cの制御データに、第1コントローラ10のタイムスタンプが付与される。
図4のデータフォーマットの場合、これらの制御データに別々のタイムスタンプを付与する必要があるので、通信量及び処理量が増える。
【0030】
第1実施形態の制御システム1では、マルチドメインの仕組みを利用することによって、第2コントローラ20が、ある伝送周期で、この伝送周期における制御データを収集できるようになる。このため、
図3のように、産業装置30A~30Cの制御データが1伝送周期分遅れるといったことがなくなる。更に、産業装置30A~30Cの制御データと、産業装置30D~30Eの制御データと、の時間がそろうので、
図4のように、これらの制御データに別々のタイムスタンプを付与する必要もなくなる。以降、第1実施形態の詳細を説明する。
【0031】
[1-3.第1実施形態で実現される機能]
図5は、第1実施形態で実現される機能の一例を示す機能ブロック図である。産業装置30A~30Fの機能は、互いに同様なので、
図5では1つの産業装置30としてまとめている。なお、
図5では、データ収集装置40の機能は省略する。
図5の各機能は、制御システム1に構築されたネットワーク通信の設定により実現される。
【0032】
図6は、第1実施形態の制御システム1におけるネットワーク構成の一例を示す図である。第1実施形態のネットワーク通信は、マルチドメインに対応し、複数の通信ドメインを含む。ネットワーク通信は、複数の通信ドメインを有さなければならないわけではなく、1つの通信ドメインだけを有してもよい。個々の通信ドメインに属する装置は、エンジニアリングツールから行われた通信設定によって予め定義されているものとする。通信ドメインに属する複数の装置のうちの何れかがマスタの役割を果たす。通信ドメインに属する他の装置は、マスタの役割を果たす装置により制御される。
【0033】
例えば、ネットワーク通信は、第1コントローラ10が管理する第1通信ドメインD1を有する。第1通信ドメインD1は、第1コントローラ10が産業装置30A~30Cを制御するための通信ドメインである。例えば、第1通信ドメインD1では、第1コントローラ10から産業装置30A~30Cに指令が送信される。第1通信ドメインD1では、産業装置30A~30Cから第1コントローラ10に制御データが送信される。
【0034】
例えば、ネットワーク通信は、第2コントローラ20が管理する第2通信ドメインD2を有する。第2通信ドメインD2は、第2コントローラ20が産業装置30A~30Cから制御データを収集するための通信ドメインである。第2通信ドメインD2では、第2コントローラ20が産業装置30A~30Cを制御するための指令を送信することもできるが、第1実施形態では、第2コントローラ20が産業装置30A~30Cを直接的には制御しないので、第2通信ドメインD2では、この指令は送信されない。産業装置30A~30Cは、第1通信ドメインD1及び第2通信ドメインD2に属する。
【0035】
例えば、ネットワーク通信は、第2コントローラ20が管理する第3通信ドメインD3を有する。第3通信ドメインD3は、第2コントローラ20が産業装置30D~30Fを制御するための通信ドメインである。例えば、第3通信ドメインD3では、第2コントローラ20から産業装置30D~30Fに指令が送信される。第3通信ドメインD3では、産業装置30D~30Fから第2コントローラ20に制御データが送信される。産業装置30D~30Fは、第3通信ドメインD3に属する。
【0036】
図7は、第1実施形態の制御システム1における伝送周期の一例を示す図である。
図7の伝送周期における通信手順は、予めスケジューリングされたものである。この通信手順のスケジュールは、制御システム1の起動時に設定されてもよいし、第1コントローラ10及び第2コントローラ20に予め設定されていてもよい。各伝送周期の冒頭では、同期通知が行われてもよい。同期通知では、タイマ値等の時間合わせ等の処理が実行される。
図7に示す第1期間~第3期間は、伝送周期における帯域ということもできる。
【0037】
図7のように、第1コントローラ10は、ネットワーク通信で行われる定周期通信の伝送周期内の第1期間において、産業装置30A~30Cと通信する。第1期間は、伝送周期のうち、第1通信ドメインD1の通信用に割り当てられた期間である。第1期間は、伝送周期の一部の期間であればよい。例えば、第1期間の開始時点と、伝送周期の開始時点と、は一致していてもよい。例えば、第1期間の開始時点は、同期通知が完了した後の時点であってもよいし、伝送周期の開始時点から一定時間後の時点であってもよい。
【0038】
第2コントローラ20は、伝送周期内の第1期間よりも後の第2期間において、産業装置30A~30Cと通信する。第2期間は、伝送周期のうち、第2通信ドメインD2に割り当てられた期間である。第2期間は、伝送周期の一部の期間である。第1実施形態では、第2期間が第1期間よりも後の期間である場合を説明する。第1実施形態では、第2期間の開始時点は、第1期間の開始時点よりも後である。第2期間の開始時点は、伝送周期の開始時点よりも後であり、かつ、第1期間の開始時点よりも後である。なお、第2期間は、第1期間よりも前であってもよい。
【0039】
第2コントローラ20は、伝送周期内の第3期間において、産業装置30D~30Fと通信する。第3期間は、伝送周期のうち、第3通信ドメインD3に割り当てられた期間である。第3期間は、伝送周期の一部の期間であればよい。第3期間は、第1期間又は第2期間の一部と重複してもよい。例えば、第3期間の開始時点と、伝送周期の開始時点と、は一致していてもよい。例えば、第3期間の開始時点は、同期通知が完了した後の時点であってもよいし、伝送周期の開始時点から一定時間後の時点であってもよい。
【0040】
第1実施形態では、第1期間及び第3期間は、互いに少なくとも一部が重複する。例えば、第1期間が終了する前に第3期間が開始し、第1期間及び第3期間が互いに重複する。例えば、第3期間が終了する前に第1期間が開始し、第1期間及び第3期間が互いに重複する。
図7の例では、第1期間及び第3期間が同じ場合を示しているが、第1期間及び第3期間が時間的にずれていてもよいし、第1期間の長さと、第3期間の長さと、が異なっていてもよい。
【0041】
なお、第1期間及び第3期間は、重複しなくてもよい。例えば、第1期間が終了した後に第3期間が開始し、第1期間及び第3期間が重複しなくてもよい。例えば、第3期間が終了した後に第1期間が開始し、第1期間及び第3期間が重複しなくてもよい。また、
図7の例では、第3期間の後に第2期間が訪れる場合を示しているが、第2期間及び第3期間は、互いに少なくとも一部が重複してもよい。例えば、第3期間が終了する前に第2期間が開始してもよい。例えば、第3期間は、第2期間よりも後であってもよい。
【0042】
[1-3-1.第1コントローラの機能]
データ記憶部100は、記憶部12を主として実現される。指令生成部101、指令送信部102、及び収集部103は、CPU11を主として実現される。
【0043】
[データ記憶部]
データ記憶部100は、産業装置30A~30Cを制御するために必要なデータを記憶する。例えば、データ記憶部100は、制御プログラムと、パラメータと、を記憶する。制御プログラムは、産業装置30A~30Cに指令を送信するための処理を含む。制御プログラムは、任意の言語で作成可能であり、例えば、ラダー言語又はロボット言語で作成される。パラメータは、産業装置30A~30Cの動作に関する情報であり、例えば、モータの回転方向、モータの回転速度、又はロボットの目標位置といった情報である。
【0044】
例えば、データ記憶部100は、産業装置30A~30Cの各々に対応するレジスタを含む。産業装置30A~30Cの各々と、レジスタと、の対応関係は、エンジニアリングツール等によって予め設定されているものとする。産業装置30A~30Cの各々に対応するレジスタに、産業装置30A~30Cの各々の制御データが格納される。例えば、各レジスタに格納された制御データは、新たな伝送周期が訪れて新たな制御データが収集された場合に更新されてもよいし、リングバッファのように一定期間の制御データを保持できるようにしてもよい。
【0045】
例えば、データ記憶部100は、第1通信ドメインD1の設定に関する通信設定データを記憶する。通信設定データには、第1通信ドメインD1に属する装置を識別可能な装置識別情報と、通信のスケジュールに関するスケジュール情報と、が含まれる。装置識別情報は、装置名又はIPアドレスといった情報である。スケジュール情報は、どの装置とどの装置がいつ通信するかを示す情報である。スケジュール情報は、エンジニアリングツール等によって予め設定されているものとする。
【0046】
第1実施形態では、定周期通信が行われるので、スケジュール情報には、1つの伝送周期における通信手順が定義されている。例えば、スケジュール情報には、伝送周期の開始時点からの経過時間と、その時間に通信すべき相手と、が定義されている。経過時間は、タイマ値等の時間情報により管理されるようにすればよい。データ記憶部100は、時間情報も記憶する。
【0047】
[指令生成部]
指令生成部101は、産業装置30への指令を生成する。指令は、産業装置30に所定の動作をさせるための命令である。第1実施形態では、指令生成部101が産業装置30A~30Cの各々への指令を生成する場合を説明する。例えば、指令生成部101は、産業装置30A~30Cを制御するための制御指令を生成する。制御指令は、産業装置30A~30Cに対する具体的な制御内容を含む。制御指令は、産業装置30による機構の制御に影響する指令である。例えば、制御指令には、産業装置30が機構を制御するための処理内容、その処理に必要なパラメータ、又はその処理に必要なジョブ名が含まれる。
【0048】
なお、指令生成部101が生成する指令は、任意の種類であってよく、制御指令に限られない。例えば、指令生成部101は、制御データを収集するための収集指令、産業装置30A~30Cを起動させるための起動指令、ジョブを呼び出すジョブ呼び出し指令、又はパラメータを設定する設定指令を生成してもよい。指令を生成するためのプログラムは、データ記憶部100に記憶されているものとする。
【0049】
[指令送信部]
指令送信部102は、産業装置30A~30Cに、指令生成部101が生成した指令を送信する。第1実施形態では、指令送信部102は、第1通信ドメインD1に対応する第1期間が訪れると、指令生成部101により生成された制御指令を送信する。第1実施形態のネットワーク構成では、第1コントローラ10と、産業装置30Aと、が直接的に接続されるので、指令送信部102は、産業装置30Aに制御指令を送信する。産業装置30B及び産業装置30Cの各々には、この制御指令が適宜転送される。指令送信部102は、データ記憶部100に記憶されたスケジュール情報に基づいて、指令を送信すべきタイミングを判定すればよい。
【0050】
[収集部]
収集部103は、ネットワーク通信により、産業装置30A~30Cの制御に関する制御データを収集する。この制御データは、指令送信部102が送信した指令に基づく動作結果を示すデータである。収集部103は、第1通信ドメインD1に対応する第1期間が訪れて、指令送信部102が送信した指令に基づく動作が産業装置30A~30Cにおいて実行された場合に、この第1期間に制御データを収集する。
【0051】
第1実施形態では、第1コントローラ10と、産業装置30Aと、が直接的に接続されているので、収集部103は、産業装置30Aから直接的に、産業装置30Aの制御データを収集する。直接的に接続されるとは、通信する装置間に他の装置が存在しないことである。第1コントローラ10と、産業装置30B及び産業装置30Cと、は間接的に接続されているので、収集部103は、産業装置30B及び産業装置30Cから間接的に、産業装置30Aの制御データを収集する。間接的に接続されるとは、通信する装置間に他の装置が存在することである。
【0052】
[1-3-2.第2コントローラの機能]
データ記憶部200は、記憶部22を主として実現される。指令生成部201、指令送信部202、収集部203、付与部204、及び制御データ送信部205は、CPU21を主として実現される。
【0053】
[データ記憶部]
データ記憶部200は、産業装置30A~30Cの制御データを収集するために必要なデータを記憶する。第1実施形態では、データ記憶部200は、産業装置30D~30Fを制御するために必要なデータも記憶する。例えば、データ記憶部200は、制御プログラム、パラメータ、及び収集プログラムを記憶する。制御プログラム及びパラメータは、産業装置30D~30Fに関するものである点で、データ記憶部100に記憶される制御プログラム及びパラメータと異なるが、他の点では同様である。収集プログラムは、産業装置30A~30Cに収集指令を送信するための処理を含む。収集プログラムは、制御プログラムと同様に任意の言語で作成可能である。
【0054】
例えば、データ記憶部200は、産業装置30A~30Fの各々に対応するレジスタを含む。産業装置30A~30Fの各々と、レジスタと、の対応関係は、エンジニアリングツール等によって予め設定されているものとする。産業装置30A~30Fの各々に対応するレジスタに、産業装置30A~30Fの各々の制御データが格納される。例えば、各レジスタに格納された制御データは、新たな伝送周期が訪れて新たな制御データが収集された場合に更新されてもよいし、リングバッファのように一定期間の制御データを保持できるようにしてもよい。
【0055】
例えば、データ記憶部200は、第2通信ドメインD2及び第3通信ドメインD3の各々の設定に関する通信設定データを記憶する。これらの通信設定データは、第2通信ドメインD2及び第3通信ドメインD3のものである点で第1通信ドメインD1の通信設定データと異なるが、データの内容自体は同様である。データ記憶部200は、第2通信ドメインD2及び第3通信ドメインD3の各々の通信設定データが示すスケジュールに基づいて通信を行うための時間情報も記憶する。
【0056】
[指令生成部]
指令生成部201は、産業装置30への指令を生成する。第1実施形態では、指令生成部201が産業装置30A~30Fの各々への指令を生成する場合を説明する。例えば、指令生成部201は、産業装置30D~30Fを制御するための制御指令とは異なる収集指令を生成する。産業装置30D~30Fは、他の産業装置30の一例である。他の産業装置30とは、制御データの収集対象となる産業装置30A~30Cとは異なる産業装置30である。
【0057】
収集指令は、制御指令のように制御内容の情報は含まない。例えば、収集指令には、収集指令であることを識別可能な情報と、収集対象のデータを識別可能な情報と、を含む。制御指令は、何らかの計算結果が含まれることがあるが、収集指令は、何らかの計算が行われずに生成されてよい。収集指令は、何らかの計算が必要であってもよいが、その計算量は、制御指令よりも少ないものとする。このため、収集指令は、制御指令よりも早く生成可能である。指令生成部201が生成する指令は、任意の種類であってよく、収集指令及び制御指令に限られない点は、指令生成部201と同様である。指令を生成するためのプログラムは、データ記憶部200に記憶されているものとする。
【0058】
[指令送信部]
指令送信部202は、産業装置30A~30Fに、指令生成部201が生成した指令を送信する。第1実施形態では、指令送信部202は、第2通信ドメインD2に対応する第2期間が訪れると、指令生成部201により生成された収集指令を送信する。第1実施形態のネットワーク構成では、第1コントローラ10と、第2コントローラ20と、が直接的に接続されるので、指令送信部202は、第1コントローラ10に収集指令を送信する。産業装置30A~30Cには、この収集指令が適宜転送される。
【0059】
指令送信部202は、第3通信ドメインD3に対応する第3期間が訪れると、指令生成部201により生成された制御指令を送信する。第1実施形態のネットワーク構成では、第2コントローラ20と、産業装置30Dと、が直接的に接続されるので、指令送信部202は、産業装置30Dに制御指令を送信する。産業装置30E及び産業装置30Fの各々には、この制御指令が適宜転送される。指令送信部202は、データ記憶部200に記憶されたスケジュール情報に基づいて、指令を送信すべきタイミングを判定すればよい。
【0060】
[収集部]
収集部203は、ネットワーク通信により、産業装置30A~30Cの制御に関する制御データを収集する。収集部203は、指令送信部202により送信された収集指令に基づいて、産業装置30A~30Cの制御データを収集する。例えば、収集部203は、第2通信ドメインD2に対応する第2期間が訪れて、第2期間よりも前の第1期間に送信された制御指示が産業装置30A~30Cにおいて実行された場合に、この第2期間に制御データを収集する。
【0061】
第1実施形態では、第2コントローラ20と、産業装置30A~30Cと、が間接的に接続されているので、収集部203は、産業装置30A~30Cから間接的に、産業装置30A~30Cの制御データを収集する。第1実施形態では、収集部203が産業装置30A~30Cから制御データを収集する場合を説明するが、収集部203は、第1コントローラ10のレジスタに記録された産業装置30A~30Cから制御データを収集してもよい。この場合には、第1コントローラ10は、第2コントローラ20により制御されるように第2通信ドメインD2の設定が行われる。第1コントローラ10は、第2コントローラ20からの収集指令に基づいて、自身に記憶された産業装置30A~30Cの制御データを第2コントローラ20に送信する。
【0062】
例えば、収集部203は、第1コントローラ10が制御のために産業装置30A~30Cから収集したデータと同じ内容を含む制御データを収集する。第2コントローラ20の収集部203が収集した産業装置30A~30Cの制御データと、第1コントローラ10の収集部103が収集した産業装置30A~30Cの制御データと、は全く同じであってもよいし、一部が異なってもよい。例えば、第2コントローラ20の収集部203は、トルクに関する制御データを収集し、第1コントローラ10の収集部103は、位置に関する制御データを収集するといったように、互いの制御データの種類が異なってもよい。互いの制御データのサンプリング周期が異なってもよい。
【0063】
収集部203は、ネットワーク通信により、産業装置30D~30Fの制御に関する制御データを収集する。例えば、収集部203は、第3通信ドメインD3に対応する第3期間が訪れて、第3期間に送信された制御指示が産業装置30D~30Fにおいて実行された場合に、この第3期間に制御データを収集する。
【0064】
第1実施形態では、第2コントローラ20と、産業装置30Dと、が直接的に接続されているので、収集部203は、産業装置30Dから直接的に、産業装置30Dの制御データを収集する。第2コントローラ20と、産業装置30E及び産業装置30Fと、が間接的に接続されているので、収集部203は、産業装置30E及び産業装置30Fから間接的に、産業装置30E及び産業装置30Fの制御データを収集する。
【0065】
[付与部]
付与部204は、産業装置30A~30Cに関する制御データと、産業装置30D~30Fに関する制御データと、に同じタイムスタンプを付与する。タイムスタンプは、時間を識別可能な情報である。タイプスタンプは、日時を示す数値であってもよいし、タイマ値であってもよい。制御データにタイムスタンプを付与するとは、制御データにタイムスタンプを関連付けることである。例えば、付与部204は、第2コントローラ20のデータ記憶部200に記憶されたタイムスタンプを取得し、産業装置30A~30Fの制御データに付与する。
【0066】
産業装置30A~30Fの制御データに付与されるタイムスタンプは、産業装置30A~30Fの制御データが取得された伝送周期内の時間を示す。タイムスタンプは、産業装置30A~30Fの制御データが取得された伝送周期内の任意の時間であってよく、例えば、伝送周期の開始時点若しくは終了時点、第2期間の開始時点若しくは終了時点、又は第3期間の開始時点若しくは終了時点であってもよいし、これらの開始時点及び終了時点の間の時点であってもよい。
【0067】
[制御データ送信部]
制御データ送信部205は、データ収集装置40に、産業装置30A~30Cの制御データを送信する。第1実施形態では、産業装置30D~30Fの制御データも収集されるので、制御データ送信部205は、データ収集装置40に、産業装置30A~30Cの制御データと、産業装置30D~30Fの制御データと、を送信する。これらの制御データは、別々のデータとして送信されてもよいが、第1実施形態では、これらの制御データが1つのデータとして送信される。
【0068】
図8は、第1実施形態の制御システム1で収集された制御データをデータ収集装置40に送信するためのデータフォーマットの一例を示す図である。
図8の例では、産業装置30A~30Fの各々の制御データに、第2コントローラ20のタイムスタンプが付与される。制御データ送信部205は、データ収集装置40に、第2コントローラ20のタイムスタンプが付与された産業装置30A~30Fの各々の制御データを、1つのデータにまとめてデータ収集装置40に送信する。なお、これらの制御データには、第1コントローラ10のタイムスタンプが付与されてもよい。この場合、第2コントローラ20は、第1コントローラ10からタイムスタンプを取得すればよい。
【0069】
[1-3-3.産業装置の機能]
データ記憶部300は、記憶部32を主として実現される。受信部301、動作部302、及び送信部303は、CPU31を主として実現される。
【0070】
[データ記憶部]
データ記憶部300は、産業装置30の動作に必要なデータを記憶する。例えば、データ記憶部300は、動作プログラムと、パラメータと、を記憶する。動作プログラムは、産業装置30が実行すべき処理を含む。動作プログラムは、任意の言語で作成可能であり、例えば、ラダー言語又はロボット言語で作成可能である。ジョブと呼ばれるプログラムも動作プログラムの一種である。パラメータは、モータ又はロボットといった機構の制御に用いられる情報である。例えば、パラメータは、モータの回転方向、モータの回転速度、又はロボットの目標位置といった情報である。データ記憶部300は、制御データを記憶する。制御データは、データ記憶部300内の所定のレジスタに格納される。
【0071】
[受信部]
受信部301は、指令を受信する。例えば、産業装置30A~30Cの受信部301は、伝送周期における第1期間に、第1コントローラ10から制御指令を受信する。産業装置30A~30Cの受信部301は、伝送周期における第2期間に、第2コントローラ20から収集指令を受信する。産業装置30D~30Fの受信部301は、伝送周期における第3期間に、第2コントローラ20から制御指令を受信する。
【0072】
[動作部]
動作部302は、指令に基づいて動作する。動作部302は、指令に応じた動作結果に基づいて、制御データを生成してデータ記憶部300に記録する。例えば、産業装置30A~30Cの動作部302は、伝送周期における第1期間に、第1コントローラ10からの制御指令に基づいて、制御対象の機構を制御する。産業装置30A~30Cの動作部302は、伝送周期における第2期間に、第2コントローラ20からの収集指令に基づいて、自身の制御データを取得する。産業装置30D~30Fの動作部302は、伝送周期における第3期間に、第2コントローラ20からの制御指令に基づいて、制御対象の機構を制御する。
【0073】
[送信部]
送信部303は、制御データを送信する。例えば、産業装置30A~30Cの送信部303は、伝送周期における第1期間に、第1コントローラ10からの制御指令に応じた制御データを第1コントローラ10に送信する。産業装置30A~30Cの送信部303は、伝送周期における第2期間に、第1期間における制御内容を示す制御データを第2コントローラ20に送信する。産業装置30D~30Fの送信部303は、伝送周期における第3期間に、第2コントローラ20からの制御指令に応じた制御データを第2コントローラ20に送信する。
【0074】
[1-4.第1実施形態で実行される処理]
図9は、第1実施形態で実行される処理の一例を示すフロー図である。
図9の処理は、各伝送周期が訪れた場合に、第1コントローラ10及び第2コントローラ20の各々に記憶されたスケジュール情報に基づいて実行される。
【0075】
図9のように、第1コントローラ10は、スケジュール情報に基づいて第1期間の開始時点が訪れたこと検知すると、制御プログラムに基づいて、産業装置30A~30Cの各々への制御指令を生成する(S100)。第1コントローラ10は、産業装置30A~30Cの各々に、S100で生成した制御指令を送信する(S101)。産業装置30A~30Cの各々は、制御指令を受信すると、制御指令を実行して制御データを第1コントローラ10に送信する(S102)。第1コントローラ10は、S102で送信された制御データを収集する(S103)。
【0076】
第2コントローラ20は、スケジュール情報に基づいて第3期間の開始時点が訪れたこと検知すると、制御プログラムに基づいて、産業装置30D~30Fの各々への制御指令を生成する(S104)。第2コントローラ20は、産業装置30D~30Fの各々に、S104で生成した制御指令を送信する(S105)。産業装置30D~30Fの各々は、制御指令を受信すると、制御指令を実行して制御データを第2コントローラ20に送信する(S106)。第2コントローラ20は、S106で送信された制御データを収集する(S107)。S100~S103の処理と、S104~S107の処理と、は並行して実行される。
【0077】
第2コントローラ20は、スケジュール情報に基づいて第2期間の開始時点が訪れたこと検知すると、収集プログラムに基づいて、産業装置30A~30Cの各々への収集指令を生成する(S108)。第2コントローラ20は、産業装置30A~30Cの各々に、S108で生成した収集指令を送信する(S109)。産業装置30A~30Cの各々は、収集指令を受信すると、収集指令を実行して制御データを第2コントローラ20に送信する(S110)。第2コントローラ20は、S110で送信された制御データを収集し(S111)、伝送周期内の処理が終了する。次の伝送周期が訪れた場合には、S100~S111の処理が再び実行される。第2コントローラ20は、S107で収集した制御データと、S111で収集した制御データと、に自身のタイムスタンプを付与し、任意のタイミングで、データ収集装置40に送信する。第2コントローラ20は、複数の伝送周期における制御データをまとめて送信してもよいし、伝送周期ごとに制御データを送信してもよい。
【0078】
第1実施形態の制御システム1によれば、第2コントローラ20が、第1コントローラ10とネットワーク通信により通信し、第1コントローラ10により制御される産業装置30A~30Cの制御データを収集することによって、産業装置30A~30Cの制御データを収集できる。例えば、第2コントローラ20が、産業装置30A~30Cを直接的に制御しなかったとしても、制御データを収集できる。
【0079】
また、制御システム1は、マルチドメイン機能を利用して、産業装置30A~30Cを複数の通信ドメインに所属させることによって、第1コントローラ10による制御と、第2コントローラ20による収集と、を簡単に設定でき、かつ、確実に行うことができる。
【0080】
また、制御システム1は、第2コントローラ20は、産業装置30D~30Fを制御しつつ、産業装置30A~30Cの制御データを収集できる。
【0081】
また、制御システム1は、産業装置30A~30Cの制御データと、産業装置30D~30Fの制御データと、に同じタイムスタンプを付与することによって、これらの制御データのタイムスタンプの管理を容易化できる。制御データごとにタイムスタンプを付与する必要がないので、個々のデータのデータサイズを小さくすることができる。
【0082】
また、制御システム1は、ある伝送周期における産業装置30A~30Cの制御データをその伝送周期内で収集できる。したがって、制御データの収集タイミングと、産業装置30A~30Cの制御データの収集タイミングと、を同一にすることができる。同じ制御周期のデータを一度に集めることができるので、リアルタイムな比較処理が可能となるとともに、各データの時間管理が容易になる。同じ伝送周期におけるデータ収集を可能とすることで、制御データの収集時間を意識せずに解析を行うことができる。
【0083】
また、制御システム1は、第1期間及び第3期間が互いに少なくとも一部が重複することによって、伝送周期を有効活用できる。
【0084】
また、制御システム1は、第2コントローラ20が生成するのに時間を要する制御指令ではなく、生成するのに時間がかからない収集指令に基づいて、産業装置30A~30Cの制御データを収集することによって、産業装置30A~30Cの制御データの収集に要する時間を短くすることができる。その結果、伝送周期を短くしたとしても、伝送周期内に産業装置30A~30Cの制御データの収集を終えることができる。
【0085】
また、制御システム1は、データ収集装置40に制御データを収集させてデータを一括管理することができる。
【0086】
また、制御システム1は、第1コントローラ10が産業装置30A~30Cから収集したデータと同じ内容を含む制御データを、同じ伝送周期内で第2コントローラ20に収集させることができる。
【0087】
[2.第2実施形態]
次に、制御システム1の別実施形態である第2実施形態を説明する。第2実施形態では、第1実施形態と同様の点については、説明を省略する。第2実施形態では、制御システム1は、第1コントローラ10、第2コントローラ20、及び産業装置30A~Cを含む。第2実施形態では、産業装置30D~30Fと、データ収集装置40と、が制御システム1に含まれない場合を説明するが、産業装置30D~30Fと、データ収集装置40と、は制御システム1に含まれてもよい。
【0088】
図10は、第2実施形態の制御システム1におけるネットワーク構成の一例を示す図である。第2実施形態のネットワーク通信も、第1実施形態と同様、マルチドメインに対応しているものとする。
図10のように、第2実施形態では、第1コントローラ10及び第2コントローラ20の各々が産業装置30A~30Cを制御可能である。このため、産業装置30A~30Cを制御するための装置が二重化されている。第1コントローラ10及び第2コントローラ20は、互いに同じ制御プログラムに基づいて指令を送信する。このため、第1コントローラ10が送信する指令と、第2コントローラ20が送信する指令と、は原則として同じである。
【0089】
例えば、ネットワーク通信は、第1コントローラ10が管理する第1通信ドメインD1を有する。第1通信ドメインD1は、第1コントローラ10が産業装置30A~30Cを制御するための通信ドメインである。例えば、第1通信ドメインD1では、第1コントローラ10から産業装置30A~30Cに指令が送信される。第1通信ドメインD1では、産業装置30A~30Cから第1コントローラ10に制御データが送信される。第1通信ドメインD1には、第2コントローラ20も属してもよい。この場合、第2コントローラ20は、第1コントローラ10から産業装置30A~30Cへの制御指令を受信可能である。
【0090】
例えば、ネットワーク通信は、第2コントローラ20が管理する第2通信ドメインD2を有する。第2通信ドメインD1は、第2コントローラ20が産業装置30A~30Cを制御するための通信ドメインである。例えば、第2通信ドメインD2では、第2コントローラ20から産業装置30A~30Cに指令が送信される。第2通信ドメインD2では、産業装置30A~30Cから第2コントローラ20に制御データが送信される。第2通信ドメインD2には、第1コントローラ10も属してもよい。この場合、第1コントローラ10は、第2コントローラ20から産業装置30A~30Cへの制御指令を受信可能である。
【0091】
図11は、第2実施形態の制御システム1における伝送周期の一例を示す図である。産業装置30A~30Cは、第1コントローラ10及び第2コントローラ20の両方と同時に通信できないので、第1期間及び第2期間は、互いに重複しないようにスケジューリングされる。
図11の例では、第1通信ドメインD1に対応する第1期間の後に、第2通信ドメインD2に対応する第2期間が訪れるようにスケジューリングされている。第2期間は、第1期間の前に訪れるようにスケジューリングされてもよい。
【0092】
産業装置30A~30Cの各々は、第1コントローラ10及び第2コントローラ20の両方から指令を受信可能であるが、原則として第2コントローラ20からの指令に基づいて動作するようにプログラミングされている。産業装置30A~30Cの制御周期は、伝送周期と一致するように設定されているが、
図11の例では、仮の制御周期として、本当の制御周期の半分の周期(伝送周期の半分の周期)を示している。仮の制御周期は、第1コントローラ又は第2コントローラ20の何れかのみが存在すると仮定した場合の制御周期である。
【0093】
第2実施形態では、産業装置30A~30Cの各々は、仮の制御周期の開始時点が訪れても指令を実行しない。産業装置30A~30Cの各々は、本当の制御周期の開始時点が訪れた場合に指令を実行する。ある制御周期が訪れた場合には、この制御周期に対応する伝送周期の1つ前の伝送周期に受信した指令が実行される。
図11の例では、制御周期2において、伝送周期1に受信した指令が実行される。制御周期3において、伝送周期2に受信した指令が実行される。
【0094】
制御周期の開始時点では、第1コントローラ10及び第2コントローラ20の各々の指令を受信済みなので、何れの指令を実行するかについては、予め定められている。先述したように、第2実施形態では、第2コントローラ20からの指令が実行されるものとする。ただし、第2通信ドメインD2に障害が発生し、産業装置30A~30Cの各々が第2コントローラ20からの指令を受信できなかった場合には、産業装置30A~30Cの各々は、第1コントローラ10からの指令を実行する。
【0095】
例えば、産業装置30A~30Cは、第2期間において第2コントローラ20から何の指令も受信しなかった場合に、第2通信ドメインD2に障害が発生したと判定する。この場合、産業装置30A~30Cは、正常時のように第2コントローラ20からの指令ではなく、第1コントローラ10からの指令を実行する。障害発生の判定方法自体は、任意の方法であってよく、例えば、CRC等のチェックに異常が発生したか否かを判定したり、第2コントローラ20又はセンサ等から所定のアラートを受信したか否かを判定したりしてもよい。
【0096】
産業装置30A~30Cの各々のデータ記憶部300は、第1コントローラ10からの制御指令が格納される第1レジスタと、第2コントローラ20からの制御指令が格納される第2レジスタと、を含む。正常時には第2レジスタが参照され、異常時には第1レジスタが参照される。その後、第2通信ドメインD2が復旧した場合には、正常時の状態に戻り、第2レジスタが参照されるようにしてもよいし、引き続き第1レジスタが参照されるようにしてもよい。第1通信ドメインD1に障害が発生した場合には、正常時と同様に第2レジスタが参照されるようにすればよい。
【0097】
図12は、第2実施形態で実行される処理の一例を示すフロー図である。この処理は、各伝送周期が訪れた場合に実行される処理である。第2実施形態では、伝送周期及び制御周期が互いに同じなので、この処理は、各制御周期が訪れた場合に実行される処理ということもできる。この処理が実行されるにあたり、伝送周期内のスケジューリングが完了しているものとする。
【0098】
図12のように、産業装置30A~30Cの各々は、タイマ値のカウントアップ等によって制御周期が訪れたことを検知すると、制御指令を実行する(S200)。S200では、第2通信ドメインD2で障害が発生したか否かを判定する。第2通信ドメインD2で障害が発生したと判定されない場合、産業装置30A~30Cの各々は、第2コントローラ20に対応する第2レジスタに保持された制御指令を実行する。第2通信ドメインD2で障害が発生したと判定された場合、産業装置30A~30Cの各々は、第1コントローラ10に対応する第1レジスタに保持された制御指令を実行する。S200の処理の実行結果は、制御データとして所定のレジスタに格納される。この制御データは、後述のS204及びS209の処理で送信される。
【0099】
第1コントローラ10は、スケジュール情報に基づいて第1期間の開始時点が訪れたこと検知すると、制御プログラムに基づいて、産業装置30A~30Cの各々への制御指令を生成する(S201)。第1コントローラ10は、産業装置30A~30Cの各々に、S201で生成した制御指令を送信する(S202)。産業装置30A~30Cの各々は、制御指令を受信すると、第1コントローラ10に対応する第1レジスタに制御指令を保持する(S203)。この制御指令は、第2通信ドメインD2で異常が発生すれば、次の制御周期で実行される。産業装置30A~30Cの各々は、自身のレジスタに保持された制御データを第2コントローラ20に送信する(S204)。第1コントローラ10は、制御データを収集する(S205)。
【0100】
第2コントローラ20は、スケジュール情報に基づいて第2期間の開始時点が訪れたこと検知すると、伝送周期の第2期間において、制御プログラムに基づいて、産業装置30A~30Cの各々への制御指令を生成する(S206)。第2コントローラ20は、産業装置30A~30Cの各々に、S206で生成した制御指令を送信する(S207)。産業装置30A~30Cの各々は、制御指令を受信すると、第2コントローラ20に対応する第2レジスタに制御指令を保持する(S208)。この制御指令は、次の制御周期で実行される。第2通信ドメインD2で異常が発生した場合、S206~S208の少なくとも1つの処理が実行されない。産業装置30A~30Cの各々は、自身のレジスタに保持された制御データを第2コントローラ20に送信する(S209)。第2コントローラ20は、制御データを収集する(S210)。
【0101】
第2実施形態の制御システム1によれば、産業装置30A~30Cを制御するコントローラを二重化できる。第1コントローラ10又は第2コントローラ20の何れかに障害が発生したとしても、産業装置30A~30Cの動作を止めることなく継続させることができる。例えば、コントローラのCPUを二重化してお互いに監視しあいながら指令を出すといった構成では、コントローラはマスタとしてのふるまいになるので、複数のネットワークを同じ範囲で利用するといったことはできないが、第2実施形態のようにマルチドメインを利用することによって、障害発生時の制御をより確実に継続できる。例えば、第2コントローラ20と産業装置30Cの間が断線したとしても第1コントローラ10の指令は産業装置30A~30Cに届くので、制御を継続できる。なお、第2実施形態では、第1実施形態で説明した機能が省略されてもよい。第1実施形態で説明した機能を省略したとしても、第2実施形態で説明した機能があれば、産業装置30A~30Cを制御するコントローラを二重化できる。即ち、第1実施形態で説明した機能を省略したとしても、第2実施形態に対応する課題を解決できる。
【0102】
[3.変形例]
なお、本開示は、以上に説明した実施形態に限定されるものではない。本開示の趣旨を逸脱しない範囲で、適宜変更可能である。
【0103】
[3-1.変形例1]
例えば、第1実施形態及び第2実施形態を組み合わせてもよい。変形例1のネットワーク構成は、第1実施形態で説明した
図6のネットワーク構成と同様とする。ただし、第2通信ドメインD2は、産業装置30A~30Cから制御データを収集するだけでなく、産業装置30A~30Cの制御にも利用される。このため、変形例1では、第2期間において、産業装置30A~30Cへの制御指令が送信される。なお、第2コントローラ20は、第1コントローラ10を介して産業装置30A~30Cと接続されるのではなく、第2コントローラ20と産業装置30Cが直接的に接続されてもよい。
【0104】
変形例1の産業装置30A~30Cは、第1コントローラ10から受信した第1指令、又は、第2コントローラ20から受信した第2指令の何れかに基づいて動作する動作部302を有する。第1指令は、第1実施形態で説明した制御指令と同様である。第2指令は、第2実施形態で説明した制御指令と同様である。例えば、動作部302は、正常時には、第2指令に基づいて動作する。動作部302は、第2通信ドメインD2に異常が発生した場合には、第1指令に基づいて動作する。この動作の流れは、第2実施形態で説明した通りである。
【0105】
変形例1によれば、産業装置30A~30Cを制御するコントローラを二重化できる。第1コントローラ10又は第2コントローラ20の何れかに障害が発生したとしても、産業装置30A~30Cの動作を止めることなく継続させることができる。
【0106】
[3-2.変形例2]
図13は、変形例2の機能ブロックの一例を示す図である。変形例2では、産業装置30A~30Cは、判定部304を有する。判定部304は、CPU31を主として実現される。判定部304は、変形例1で説明した第1指令と第2指令とが互いに一致するか否かを判定する判定部304を有する。例えば、判定部304は、第1指令に含まれる指令識別情報と、第2指令に含まれる指令識別情報と、が互いに一致するか否かを判定する。指令識別情報は、指令識別情報は、指令を識別可能な情報である。例えば、指令識別情報は、個々の指令に割り当てられた数値、文字、その他の記号、又はこれらの組み合わせである。どの指令識別情報がどの指令を意味するかについては、予め定義されているものとする。
【0107】
なお、指令に指令識別情報以外の他の情報が含まれる場合には、判定部304は、指令に含まれる他の情報が互いに一致するか否かを判定してもよい。例えば、判定部304は、何らかのパラメータが指令に含まれる場合には、判定部304は、第1指令に含まれる第1パラメータと、第2指令に含まれる第2パラメータと、が互いに一致するか否かを判定してもよい。他にも例えば、判定部304は、指令に含まれる情報ではなく、第1指令のデータサイズと、第2指令のデータサイズと、が互いに一致するか否かを判定してもよい。判定部304は、第1指令に関する何らかの情報と、第2指令に関する何らかの情報と、が互いに一致するか否かを判定すればよい。
【0108】
動作部302は、第1指令と第2指令とが互いに一致すると判定された場合に、第1指令又は第2指令の何れかに基づいて動作する。動作部302は、第1指令と第2指令とが互いに一致すると判定されない場合に、第1指令又は第2指令の何れかに基づいて動作しないようにする。この場合、産業装置30は、指令を実行せずに待機する。なお、変形例2では、判定部304が産業装置30A~30Cに含まれる場合を説明したが、判定部304は、産業装置30A~30C以外の装置に含まれてもよい。例えば、第1コントローラ10及び第2コントローラ20の少なくとも一方が判定部304を含んでもよいし、他の装置が判定部304を含んでもよい。
【0109】
変形例2によれば、二重化したコントローラからの指令が互いに一致するか否かを判定することによって、産業装置30A~30Cの誤動作を防止できる。例えば、通信障害が発生したり、コントローラ側の内部処理(指令を生成する処理)で何らかの不具合が発生したりしても、産業装置30A~30Cが誤動作することを防止できる。
【0110】
また、産業装置30A~30Cが判定部304を有する場合には、第1指令と第2指令が一致するか否かを判定してすぐに指令を実行できる。
【0111】
[3-3.変形例3]
例えば、制御システム1は、第1コントローラ10と、第2コントローラ20と、を含む3以上のコントローラを有してもよい。他のコントローラの物理的構成は、第1コントローラ10又は第2コントローラ20と同様であってよい。他のコントローラは、第1コントローラ10又は第2コントローラ20と同様の機能を有し、任意の産業装置30に指令を送信できる。他のコントローラは、任意の産業装置30の制御データを収集できる。
【0112】
3以上のコントローラの各々は、産業装置30に指令を送信する。個々のコントローラが指令を送信する流れは、第2実施形態、変形例1、及び変形例2と同様である。判定部304は、3以上のコントローラに対応する3以上の指令の中に、互いに一致しない指令が含まれているか否かを判定する。例えば、判定部304は、3以上のコントローラの各々から受信した指令同士を比較し、一致しない指令が存在するか否かを判定する。
【0113】
動作部302は、互いに一致しない指令が含まれていると判定された場合に、3以上の指令の中で、最も多く一致した指令に基づいて動作する。例えば、コントローラが5つであり、そのうちの3つの指令が互いに一致したとする。動作部302は、当該3つが一致した指令に基づいて動作する。残りの2つの指令が互いに一致したとしても、互いに一致した3つの指令が優先される。即ち、動作部302は、3以上のコントローラからの指令の多数決に基づいて、実行すべき指令を決定する。
【0114】
変形例3によれば、産業装置30A~30Cの誤動作を防止しつつ、産業装置30A~30Cの動作を停止させないようにすることができる。その結果、制御システム1の生産効率が高まる。
【0115】
[3-4.その他変形例]
例えば、上記変形例を組み合わせてもよい。例えば、第2実施形態に変形例2又は変形例3を適用してもよい。
【0116】
例えば、制御システム1は、マルチドメインの通信プロトコルではなくてもよい。この場合、通信ドメインの概念がなくても、第1期間の後に第2期間が訪れるようにして、同じ伝送周期における制御データの収集ができるようにスケジューリングしておけばよい。例えば、第2コントローラ20は、産業装置30D~30Fを制御しなくてもよい。この場合、第2コントローラ20は、産業装置30を制御せずにデータ収集の機能だけを有してもよい。例えば、第2コントローラ20は、データ収集装置40に制御データを送信せずに、自身の記憶部22に制御データを蓄積してもよいし、自身で制御データを解析してもよい。
【0117】
例えば、個々の伝送周期では、個々の通信ドメインの通信期間が時分割で設定されるのではなく、第1実施形態及び第2実施形態で説明した時分割の設定が行われなくてもよい。例えば、制御システム1は、定周期通信ではなく、特に伝送周期が定められていない非定周期的な通信が行われてもよい。この場合も、第2コントローラ20は、非定周期的なネットワーク通信により、産業装置30A~30Cの制御データを収集してもよい。例えば、第2コントローラ20は、第2通信ドメインD2を利用して、第1コントローラ10のレジスタに格納された産業装置30A~30Cの制御データを収集してもよい。
【0118】
例えば、第2コントローラ20は、産業装置30A~30Cの制御データと、産業装置30D~30Fの制御データと、を同じ伝送周期で収集しなくてもよい。産業装置30A~30Cの制御データが、産業装置30D~30Fの制御データよりも1伝送周期分遅れることが予め分かっている場合には、同じ伝送周期でこれらの制御データが収集されなくてもよい。この場合、第2コントローラ20は、ある伝送周期で収集した産業装置30A~30Cの制御データと、1つ前の伝送周期で収集した産業装置30D~30Fの制御データと、を1つのデータにまとめてデータ収集装置40に送信してもよい。この場合、1つのデータにまとめられた制御データは、全て同じ伝送周期の制御データになる。
【0119】
例えば、各機能は、制御システム1における任意の装置で実現されるようにすればよい。第1コントローラ10で実現されるものとして説明した機能の一部又は全部は、第2コントローラ20又は産業装置30で実現されてもよい。第2コントローラ20で実現されるものとして説明した機能の一部又は全部は、第1コントローラ10又は産業装置30で実現されてもよい。産業装置30で実現されるものとして説明した機能の一部又は全部は、第1コントローラ10又は第2コントローラ20で実現されてもよい。例えば、複数の産業装置30の接続形態は、第1実施形態及び第2実施形態で説明したデイジーチェーン接続(カスケード接続)に限られずに、スター接続等の任意の接続形態であってよい。
【符号の説明】
【0120】
1 制御システム、10 第1コントローラ、20 第2コントローラ、30,30A,30B,30C,30D,30E,30F 産業装置、40 データ収集装置、11,21,31,41 CPU、12,22,32,42 記憶部、13,23,33,43 通信部、44 操作部、45 表示部、100 データ記憶部、101 指令生成部、102 指令送信部、103 収集部、200 データ記憶部、201 指令生成部、202 指令送信部、203 収集部、204 付与部、205 制御データ送信部、300 データ記憶部、301 受信部、302 動作部、303 送信部、304 判定部、D1 第1通信ドメイン、D2 第2通信ドメイン、D3 第3通信ドメイン。