(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2024-11-11
(45)【発行日】2024-11-19
(54)【発明の名称】制御システム、制御装置およびプログラム
(51)【国際特許分類】
G05B 19/05 20060101AFI20241112BHJP
【FI】
G05B19/05 N
(21)【出願番号】P 2020133496
(22)【出願日】2020-08-06
【審査請求日】2023-06-07
(73)【特許権者】
【識別番号】000002945
【氏名又は名称】オムロン株式会社
(74)【代理人】
【識別番号】110001195
【氏名又は名称】弁理士法人深見特許事務所
(72)【発明者】
【氏名】赤井 亮太
(72)【発明者】
【氏名】阪谷 信幸
(72)【発明者】
【氏名】米田 光宏
(72)【発明者】
【氏名】新實 太雅
【審査官】影山 直洋
(56)【参考文献】
【文献】特開2019-067046(JP,A)
【文献】特開平07-311607(JP,A)
(58)【調査した分野】(Int.Cl.,DB名)
G05B 19/05
(57)【特許請求の範囲】
【請求項1】
FA(ファクトリオートメーション)の生産ラインに設けられる制御システムであって、
前記制御システムは、
それぞれが対象を制御する複数の制御装置を、備え、
各前記複数の制御装置は、
前記対象が接続されるネットワークを通じて当該対象と通信するインターフェイスと、
他の制御装置のタイマと互い時刻同期されるタイマと、
前記他の制御装置と連係して実行される前記対象の制御に関連した1つ以上の処理それぞれについて、当該処理を実行する予め定められた時期を含む情報が関連付けられたリストを記憶する記憶部と、
前記記憶部のリストに従って処理を実行する処理実行手段と、を有し、
前記リストの処理は第1の処理と、当該第1の処理が実行終了すると、その後に実行される第2の処理とを含み、
前記予め定められた時期は、予め定められた時刻と時間の少なくとも一方、前記生産ラインにおいて予め定められた種類のイベントが検出されたとき、および前記第1の処理が実行終了したときを含む異なる種類の時期のいずれかであり、
各制御装置の前記処理実行手段は、
当該制御装置の前記記憶部の前記リストの前記予め定められた時期
の種類を判断し、判断された種類が示す時期に達したと判断したとき、前記リストにおいて当該予め定められた時期に関連付けられた処理を実行する、制御システム。
【請求項2】
前記予め定められた時期
の種類は、予め定められた時刻と時間の少なくとも一方を
示すと判断されると、
前記各制御装置の前記処理実行手段は、
当該制御装置の前記タイマ
の時刻に基づき、前記予め定められた時刻と時間の少なくとも一方に達したと判断したとき、前記リストにおいて当該予め定められた時刻と時間の少なくとも一方に関連付けられた処理を実行する、請求項1に記載の制御システム。
【請求項3】
前記予め定められた時期
の種類は、前記生産ラインにおいて予め定められた種類のイベントが検出されたとき
を示すと判断されると、
前記各制御装置の前記処理実行手段は
、前記予め定められた種類のイベントを検出したとき、前記リストにおいて当該予め定められた種類のイベントの検出に関連付けられた処理を実行する、請求項1または2に記載の制御システム。
【請求項4】
前記予め定められた時期
の種類は、前記第1の処理が実行終了したときを
示すと判断されると、
前記各制御装置の前記処理実行手段は、前記第1の処理が実行終了したと判断したとき、その後に、
前記第2の処理を実行する、請求項1から3のいずれか1項に記載の制御システム。
【請求項5】
前記リストにおける前記1つ以上の処理それぞれに対応の情報は、当該処理の処理手順を含む、請求項1から4のいずれか1項に記載の制御システム。
【請求項6】
前記リストにおける前記1つ以上の処理それぞれに対応の情報は、当該処理を実行する制御装置の識別子を含む、請求項1から5のいずれか1項に記載の制御システム。
【請求項7】
前記対象は、前記生産ラインに関連して設置された装置を駆動する機器を含む、請求項1から6のいずれか1項に記載の制御システム。
【請求項8】
前記リストにおける前記1つ以上の処理の少なくとも1つは、前記装置を駆動するための制御量を決定する処理を含む、請求項7に記載の制御システム。
【請求項9】
前記生産ラインに関連して設置された装置は、ワークの搬送装置を含み、
前記機器は、前記搬送装置を前記制御量に従い駆動する機器を含む、請求項8に記載の制御システム。
【請求項10】
前記第1の処理は、前記搬送装置を駆動するための制御量を決定する処理を含み、
前記搬送装置を駆動するための制御量は、
前記ワークを前記生産ライン上の前記第2の処理に関連した位置に、前記第2の処理に対応の前記予め定められた時期までに搬送するよう、前記搬送装置を駆動するための制御量を含む、請求項9に記載の制御システム。
【請求項11】
前記生産ラインに関連して設置された装置は、撮像視野を有した撮像部を含み、
前記機器は、前記撮像部を撮像指令に従い駆動する機器を含み、
前記第2の処理は、前記撮像部を駆動する機器を介して当該撮像部に前記撮像指令を出力する処理を含み、
前記第2の処理に関連した位置は、前記撮像視野に基づく位置を含む、請求項10に記載の制御システム。
【請求項12】
前記生産ラインに関連して設置された装置は、ワークを扱うロボットを含み、
前記機器は、前記ロボットを、当該ロボットを駆動するための前記制御量に従い駆動する機器を含み、
前記第2の処理は、前記ロボットを駆動する機器に前記制御量に対応の制御指令を出力する処理を含み、
前記第2の処理に関連した位置は、前記ロボットがワークを扱うための予め定められたエリアに基づく位置を含む、請求項10または11に記載の制御システム。
【請求項13】
FA(ファクトリオートメーション)の生産ラインに設けられて、対象を制御する制御装置であって、
前記対象が接続されるネットワークを通じて当該対象と通信するインターフェイスと、 前記生産ラインに設けられる他の制御装置のタイマと互い時刻同期されるタイマと、
前記他の制御装置と連係して実行される前記対象の制御に関連した1つ以上の処理それぞれについて、当該処理を実行する予め定められた時期を含む情報が関連付けられたリストを記憶する記憶部と、
前記記憶部のリストに従って処理を実行する処理実行手段と、を有し、
前記リストの処理は第1の処理と、当該第1の処理が実行終了すると、その後に実行される第2の処理とを含み、
前記予め定められた時期は、予め定められた時刻と時間の少なくとも一方、前記生産ラインにおいて予め定められた種類のイベントが検出されたとき、および前記第1の処理が実行終了したときを含む異なる種類の時期のいずれかであり、
前記処理実行手段は、
前記制御装置の前記記憶部の前記リストの前記予め定められた時期
の種類を判断し、判断された種類が示す時期に達したと判断したとき、前記リストにおいて当該予め定められた時期に関連付けられた処理を実行する、制御装置。
【請求項14】
FA(ファクトリオートメーション)の生産ラインに設けられる制御装置が対象を制御する方法をコンピュータに実行させるプログラムであって、
前記制御装置は、
前記対象が接続されるネットワークを通じて当該対象と通信するインターフェイスと、 前記生産ラインに設けられる他の前記制御装置のタイマと互い時刻同期されるタイマと、
前記制御装置が他の制御装置と連係して実行する前記対象の制御に関連した1つ以上の処理それぞれについて、当該処理を実行する予め定められた時期を含む情報が関連付けられたリストを記憶するための記憶部とを備え、
前記リストの処理は第1の処理と、当該第1の処理が実行終了すると、その後に実行される第2の処理とを含み、
前記予め定められた時期は、予め定められた時刻と時間の少なくとも一方、前記生産ラインにおいて予め定められた種類のイベントが検出されたとき、および前記第1の処理が実行終了したときを含む異なる種類の時期のいずれかであり、
前記方法は、
前記記憶部のリストに従って処理を実行するステップを備え、
前記処理を実行するステップは、
前記制御装置の前記記憶部の前記リストの前記予め定められた時期
の種類を判断し、判断された種類が示す時期に達したと判断したとき、前記リストにおいて当該予め定められた時期に関連付けられた処理を実行するステップを有する、プログラム。
【発明の詳細な説明】
【技術分野】
【0001】
本開示は、制御システム、制御装置およびプログラムに関し、特に、FA(Factory Automation:ファクトリオートメーション)の生産ラインの制御システム、制御装置およびプログラムに関する。
【背景技術】
【0002】
対象を制御するための制御システムとして、複数のコントローラを有した分散型システムが提案されている。分散型システムでは、各コントローラは、他のコントローラに接続される対象の機器の動作に合わせて自装置に接続される対象機器が動作する、いわゆる協調動作を実現するよう、対象を制御する。
【0003】
分散型システムの一例として、例えば特許文献1(特開2018-68017号公報)と特許文献2(特開平8-19977号公報)が提案されている。特許文献1は、ネットワークを介して複数の制御装置を接続した分散制御システムを開示する。また、特許文献2は、「プログラムブルコントローラで、周辺機械と伴に制御されるロボットコントローラにおいて、ロボットと周辺機械とのインターロックを実現するために、プログラムブルコントローラとのインターフェイスを持ちソフトオーバートラベルをプログラムブルコントローラからの命令で変えられる」構成を開示する。
【先行技術文献】
【特許文献】
【0004】
【文献】特開2018-68017号公報
【文献】特開平8-19977号公報
【発明の概要】
【発明が解決しようとする課題】
【0005】
FAの生産ラインに分散型システムが採用される。この場合、ワークの種類の変更または生産量の変更に対応して生産ラインの機能の変更が行われる。このような変更は、分散型システムが備える複数のコントローラが実行する制御に関連した処理の組合せを変更することによって実現する。当該組合せを変更する場合に、特許文献2のようにコントローラ間で協調動作を実現するためのインターロックなどの処理に関する通知を遣り取りする仕組みを必要とすれば、想定される処理の組合せ毎に、インターロックの通知の仕組みが正常に作動するように処理を設計する必要があり、設計が複雑になる。
【0006】
したがって、各制御装置が他の制御装置と連係して実行する制御に関連した処理を、他の制御装置による処理の実行を通知する仕組みを用いずに簡単に実行できる環境が望まれる。
【0007】
本開示は、制御装置が、他の制御装置の処理と連係する処理を簡単な構成で実行することが可能な制御システム、制御装置およびプログラムを提供することを1つの目的とする。
【課題を解決するための手段】
【0008】
本開示において制御システムは、FA(ファクトリオートメーション)の生産ラインに設けられる制御システムであって、制御システムは、それぞれが対象を制御する複数の制御装置を、備え、各制御装置は、他の制御装置のタイマと互い時刻同期されるタイマと、他の制御装置と連係して実行される制御に関連した1つ以上の処理それぞれについて、当該処理を実行する予め定められた時期を含む情報が関連付けられたリストに従って当該処理を実行する処理実行手段と、を有し、各制御装置の処理実行手段は、リストの予め定められた時期に達したと判断したとき、リストにおいて当該予め定められた時期に関連付けられた処理を実行する。
【0009】
この開示によれば、時刻同期する各制御装置はリストにおいて予め定められた時期に達すると、当該時期に関連付けられた制御処理を実行する。これにより、例えば、制御装置間で処理の実行状態等の通知を遣り取りする仕組みを利用することなく、制御装置間で連係して処理を実行することができ、その結果、当該仕組みを用いることなく対象の協調動作を実現できる。
【0010】
上述の開示において、予め定められた時期は、予め定められた時刻と時間の少なくとも一方を含み、各制御装置の処理実行手段は、当該制御装置のタイマが計測する時刻に基づき、時刻と時間の少なくとも一方に達したと判断したとき、リストにおいて当該予め定められた時刻と時間の少なくとも一方に関連付けられた処理を実行する。
【0011】
この開示によれば、各制御装置は、他の制御装置と時刻同期するタイマの計測時刻から、予め定められた時刻と時間の少なくとも一方に達したか否かを判断し、上記の関連付けられた処理を実行できる。
【0012】
上述の開示において、予め定められた時期は、生産ラインにおいて予め定められた種類のイベントが検出されたときを含み、各制御装置の処理実行手段は、予め定められた種類のイベントを検出したとき、リストにおいて当該予め定められた種類のイベントの検出に関連付けられた処理を実行する。
【0013】
この開示によれば、制御装置は、予め定められた種類のイベントを検出すると、予め定められた時期に達したと判断して、関連付けられた処理を実行する。
【0014】
上述の開示において、リストの処理は第1の処理と、当該第1の処理が実行終了すると、その後に実行される第2の処理とを含み、予め定められた時期は、第1の処理が実行終了したときを含み、各制御装置の処理実行手段は、第1の処理が実行終了したと判断したとき、その後に、第2の処理を実行する。
【0015】
この開示によれば、予め定められた時期に達したことを、処理が実行終了したことによって判断し、関連付けられた処理を実行する。
【0016】
上述の開示において、リストにおける1つ以上の処理それぞれに対応の情報は、当該処理の処理手順を含む。
【0017】
この開示によれば、リストに、制御処理のための処理手順を含めることができる。
【0018】
上述の開示において、リストにおける1つ以上の処理それぞれに対応の情報は、当該処理を実行する制御装置の識別子を含む。
【0019】
この開示によれば、リストにおいて、各処理を実行するべき制御装置を、当該制御装置の識別子によって指定することができる。
【0020】
上述の開示おいて、対象は、生産ラインに関連して設置された装置を駆動する機器を含む。
【0021】
この開示によれば、制御の対象に、駆動機器を含めることができる。
【0022】
上述の開示において、リストにおける1つ以上の処理の少なくとも1つは、装置を駆動するための制御量を決定する処理を含む。
【0023】
この開示によれば、リストの処理に、制御量を決定する処理を含めることができる。
【0024】
上述の開示において、生産ラインに関連して設置された装置は、ワークの搬送装置を含み、機器は、当該搬送装置を上記の制御量に従い駆動する機器を含む。
【0025】
この開示によれば、制御装置が制御する対象に、ワーク搬送装置を駆動する機器を含めることができる。
【0026】
上述の開示において、リストの処理は第1の処理と、当該第1の処理が実行終了すると、その後に実行される第2の処理とを含み、第1の処理は、搬送装置を駆動するための制御量を決定する処理を含み、搬送装置を駆動するための制御量は、ワークを生産ライン上の第2の処理に関連した位置に、第2の処理に対応の予め定められた時期までに搬送するよう、搬送装置を駆動するための制御量を含む。
【0027】
この開示によれば、第1の処理では、次位の処理である第2の処理に関連した位置にワークを搬送するために搬送装置を駆動するために制御量を決定できる。
【0028】
上述の開示において、生産ラインに関連して設置された装置は、撮像視野を有した撮像部を含み、機器は、撮像部を撮像指令に従い駆動する機器を含み、第2の処理は、撮像部を駆動する機器を介して当該撮像部に撮像指令を出力する処理を含み、第2の処理に関連した位置は、撮像視野に基づく位置を含む。
【0029】
この開示によれば、第1の処理は、搬送装置を駆動するための制御量を決定する処理を含み、この制御量に、ワークを第2の処理が出力する撮像指令によって駆動される撮像部の撮像視野に基づく位置に、第2の処理に対応の予め定められた時期まで搬送するための制御量を含めることができる。
【0030】
上述の開示において、生産ラインに関連して設置された装置は、ワークを扱うロボットを含み、機器は、ロボットを、当該ロボットを駆動するための制御量に従い駆動する機器を含み、第2の処理は、ロボットを駆動する機器に制御量に対応の制御指令を出力する処理を含み、第2の処理に関連した位置は、ロボットがワークを扱うための予め定められたエリアに基づく位置を含む。
【0031】
この開示によれば、第1の処理は、搬送装置を駆動するための制御量を決定する処理を含み、この制御量に、ワークを第2の処理が出力する制御指令によって駆動されるロボットのワークを扱うための予め定められたエリアに基づく位置に、第2の処理に対応の予め定められた時期まで搬送するための制御量を含めることができる。
【0032】
本開示に係る制御装置は、FA(ファクトリオートメーション)の生産ラインに設けられて、対象を制御する制御装置であって、生産ラインに設けられる他の制御装置のタイマと互い時刻同期されるタイマと、他の制御装置と連係して実行される制御に関連した1つ以上の処理それぞれについて、当該処理を実行する予め定められた時期を含む情報が関連付けられたリストに従って当該処理を実行する処理実行手段と、を有し、処理実行手段は、リストの予め定められた時期に達したと判断したとき、リストにおいて当該予め定められた時期に関連付けられた処理を実行する。
【0033】
この開示によれば、他の制御装置と時刻同期する制御装置は、リストにおいて予め定められた時期に達すると、当該時期に関連付けられた制御処理を実行する。これにより、例えば、他の制御装置との間で処理の実行状態等の通知を遣り取りする仕組みを利用することなく、他の制御装置との間で連係して処理を実行することができ、その結果、当該仕組みを用いることなく他の制御装置との間で対象の協調動作を実現できる。
【0034】
本開示に係るプログラムは、FA(ファクトリオートメーション)の生産ラインに設けられる制御装置が対象を制御する方法をコンピュータに実行させるプログラムであって、制御装置は、生産ラインに設けられる他の制御装置のタイマと互い時刻同期されるタイマを備える。方法は、制御装置が他の制御装置と連係して実行する制御に関連した1つ以上の処理それぞれについて、当該処理を実行する予め定められた時期を含む情報が関連付けられたリストに従って当該処理を実行するステップを備え、処理を実行するステップは、リストの予め定められた時期に達したと判断したとき、リストにおいて当該予め定められた時期に関連付けられた処理を実行するステップを有する。
【0035】
この開示によれば、プログラムが実行されると、コンピュータは、リストにおいて予め定められた時期に達したと判断したとき、当該時期に関連付けられた制御処理を実行する方法を実現する。これにより、当該方法が適用される制御装置では、例えば、制御装置が他の制御装置との間で処理の実行状態等の通知を遣り取りする仕組みを利用することなく、他の制御装置との間で連係して処理を実行することができ、その結果、当該仕組みを用いることなく他の制御装置との間で対象の協調動作を実現できる。
【発明の効果】
【0036】
本開示によれば、制御装置が、他の制御装置の処理と連係する処理を簡単な構成で実行することができる。
【図面の簡単な説明】
【0037】
【
図1】本実施の形態に係るFAの生産ライン60Aに備えられる制御システム10Aの構成を模式的に示す図である。
【
図2】PLC200のハードウェア構成の一例を示す模式図である。
【
図3】本実施の形態に係るPLCが有する制御処理リスト50Aに従う処理を実現するため機能構成を示す図である。
【
図4】本実施の形態にかかる処理の一例を示すフローチャートである。
【
図5】本実施の形態にかかる処理の一例を示すフローチャートである。
【
図6】本実施の形態に係るFAの生産ライン60Bに備えられる制御システム10Bの構成を模式的に示す図である。
【
図7】本実施の形態に係る制御システムの利点を説明する図である。
【
図8】本実施の形態に係る制御システムの利点を説明する図である。
【発明を実施するための形態】
【0038】
以下に、図面を参照しつつ、実施の形態について説明する。以下の説明では、同一の部品および構成要素には同一の符号を付してある。それらの名称および機能も同じである。したがってそれらについての詳細な説明は繰返さない。
【0039】
<A.適用例>
まず、本発明が適用される場面の一例について説明する。
図1は、本実施の形態に係るFA(Factory Automation:ファクトリオートメーション)の生産ライン60Aに備えられる制御システム10Aの構成を模式的に示す図である。生産ライン60Aは、例えば、製品の一例であるワーク24の検査工程に備えられる。生産ライン60Aは、ワーク24の搬送装置を構成するベルト23を有したベルトコンベアと、ベルト23の搬送路に関連した設置されたセンサ300Aと、サーボモータ300Bと、画像センサ300Cと、回転数を計測するセンサの一例であるエンコーダ300Dを備える。ベルトコンベアは、さらに、サーボモータ300Bにより駆動されるローラを有し、ベルト23は当該ローラの回転に連動して移動する。サーボモータ300Bは、ワーク24の搬送装置であるベルト23を制御量に従い駆動する機器の一実施例である。より具体的には、サーボモータ300Bは、指令11が示す制御量(回転の角度、方向、速度など)に従って回転し、当該回転に連動してローラが回転することでベルト23は移動し、ベルト23の上面である搬送面に載せられたワーク24は連続的に移動する。エンコーダ300Dは、ベルトコンベアのローラの回転量を検出することにより、ベルト23の移動量に応じた検出値12を出力する。検出値12は、ベルト23の移動量に応じたパルス信号に基づいている。
【0040】
画像センサ300Cは、搬送面上のワーク24を検査するために、撮像視野がベルト23の搬送面上となるように配置されたカメラなどの撮像部302Cと、センサ部301Cとを含む。センサ部301Cは、撮像指令13に従って撮像部302Cを撮像するように制御し、撮像部302Cから出力される撮像画像を処理する。センサ300Aは、例えば近接スイッチを含んで構成される。センサ300Aは、搬送面上のワーク24を検出可能な検出範囲を有し、ワーク24を検出すると検出値10を出力する。センサ300Aの検出範囲は、搬送途中のワーク24が撮像部302Cの撮像視野に接近したことを検出することが可能な範囲に基づいている。
【0041】
なお、生産ライン60Aにおいてワーク24を搬送するための搬送装置はベルトコンベアに限定されない。例えば、ワーク24を搬送する移動型のロボットであってもよい。搬送装置が移動型ロボットの場合は、制御の対象は移動型ロボットが備える車輪を駆動するサーボモータなどを含み得る。
【0042】
図1では、生産ライン60Aは、ベルトコンベアでワーク24を搬送しながら、搬送されるワーク24を撮像可能な構成を備えるが、生産ライン60Aに備えられる機器はこれらに限定されず、FAの生産ライン60Aの種類に応じて適宜選択され得る。また、生産ライン60Aが扱う「ワーク24」としては、最終生成物あるいはその一部、または、中間生成物あるいはその一部など、その位置をトラッキング可能なものであればよく、限定されない。
【0043】
図1では、制御システム10Aは、ネットワークにPLC(プログラマブルロジックコントローラ)200Aおよび200B、制御の対象である複数のフィールド機器、通信装置410、サポート装置100およびサーバコンピュータ190が通信可能に接続されるネットワーク構成を備える。PLC200AとおよびPLC200Bは、それぞれ、タイマ201Aおよび201Bを備える。タイマ201Aは、タイマ201Bと互いに時刻同期する。例えば、タイマ201Aおよびタイマ201Bは、サーバコンピュータ190が配信する標準時刻に合わせるように動作する。これにより、タイマ201Aとタイマ201Bは、標準時刻に基づく共通の時刻を示すように時刻同期される。
【0044】
フィールド機器の各々は、製造装置または生産ライン60Aなど(以下、「フィールド」とも総称する。)に対して何らかの物理的な作用を与えるサーボモータなどのアクチュエータ、およびフィールドとの間で情報を遣り取りするセンサなどの入出力装置を含む。
図1では、例えば、フィールド機器は、センサ300A、サーボモータ300B、画像センサ300Cおよびエンコーダ300Dを含む。
【0045】
PLC200Aおよび200Bは、コントロールレベルのネットワークであるネットワーク120に接続される。ネットワーク120は、通信装置410を中継して、上位のネットワーク400に接続される。ネットワーク400は、サーバコンピュータ190と、サポート装置100とを接続する。
【0046】
制御システム10Aでは、ネットワーク120およびネットワーク400に接続される装置は、通信装置410を介して装置間でデータを遣り取りできる。PLC200AおよびPLC200Bは、それぞれ、ネットワーク110を介して1または複数のフィールド機器を通信可能に接続する。1または複数のフィールド機器は、ネットワーク110を介してPLC200A,PLC200Bに接続されることに加えて、PLC200A,200Bに関連した入出力ユニット(図示せず)を介してPLC200A,200Bに直接接続される場合もある。
図1では、PLC200Aはフィールド機器であるセンサ300A、サーボモータ300Bおよびエンコーダ300Dを接続し、PLC200Bはフィールド機器である画像センサ300Cを接続する。以下では、PLC200Aおよび200Bに共通する実施例の説明では、PLC200と総称し、フィールド機器であるセンサ300A、サーボモータ300B、画像センサ300Cおよびエンコーダ300Dに共通する実施例の説明では、フィールド機器300と総称する場合もある。
【0047】
本実施の形態では、「制御装置」の典型例として、PLCを具体例として説明するが、PLCの名称に限定されることなく、本明細書に開示された技術思想は、任意の制御装置に対して適用可能である。
【0048】
制御システム10Aでは、PLC200AおよびPLC200Bは、それぞれ、ワーク24の検査工程に係る処理を実行する。検査工程に係る処理は、対象(フィールド機器300)の制御に関連した制御処理を含み、制御処理はPLC200間で連係して実行される。より具体的には、PLC200AおよびPLC200Bは、それぞれ、処理実行部250Aおよび処理実行部250Bを備える。以下では、処理実行部250Aおよび処理実行部250Bに共通する実施例の説明では、処理実行部250と総称する。PLC200の処理実行部250は、他のPLC200との間で連係して実行されるべき1つ以上の制御処理それぞれについて、制御処理を実行する予め定められた時期を含む情報が関連付けられた制御処理リスト50Aに従って当該制御処理を実行する。制御処理リスト50Aによって示される「予め定められた時期」は、以下では「予約時期」とも称する。本実施の形態では、時期は、ある処理を実行するときを示す概念であって、タイマが計時した時刻に基づく時間または時刻と、当該処理に関連した何らかのイベント(事象)が生じ得る時間または時刻とを含み得る概念である。本実施の形態では、時間は連続した時の長さを示し、時刻は時間の中のある一点を示す。
【0049】
制御処理リスト50Aは、サポート装置100によって作成されて、ネットワーク400および120を介して、PLC200に転送される。PLC200は、サポート装置100から送信された制御処理リスト50Aを受信し、記憶部に格納する。
【0050】
制御処理リスト50Aは、各制御処理502と、当該制御処理502が実行される予約時期501との対応関係を表した情報を含む。制御処理リスト500は、この情報を、複数のレコードRとして有する。より具体的には、各レコードRの情報は、PLC200間で連係して実行される1つ以上の制御処理502と、各制御処理502に関連付けられた、当該制御処理502を実行する予め定められた時期である予約時期501を含む。制御処理502に関連付けられた情報は、さらに、当該処理の処理手順503および当該処理を実行するPLC200の識別子504を含む。制御処理502は、例えば、対応の予約時期501において実行される制御処理を定義する情報であって、例えば呼び出されて実行されるFB(ファンクションブロック)などの関数名を示す。処理手順503は、対応の処理手順503を構成する1つ以上の命令からなる命令群を示す。命令は、例えばサイクリック実行型言語(例えば、ラダー言語)、または逐次実行型の言語(例えばインタプリタ言語)の命令を含み、処理実行部250は、これら言語の命令を実行可能な実行エンジンを備えている。識別子504は、対応の制御処理502を実行するべきPLC200の識別子を示す。本実施の形態では、識別子は、ベルトコンベアのフィールド機器(センサ300A、サーボモータ300B、エンコーダ300D)を制御するPLC200Aの識別子である「コンベア用PLC」と、ワーク24を検査するためのフィールド機器(画像センサ300C)を制御するPLC200Bの識別子である「検査用PLC」を含む。
【0051】
制御処理リスト50Aは、識別子504が「コンベア用PLC」を示す制御処理リスト510と、識別子504が「検査用PLC」を示す制御処理リスト520とを含む。PLC200は、制御処理リスト50Aのプログラムを実行する場合、制御処理リスト50Aのうち、識別子504が自装置の識別子に一致する制御処理502を抽出して実行する。
図1の場合、PLC200Aは、制御処理リスト510の制御処理502を実行し、PLC200Bは、制御処理リスト520の制御処理502を実行する。より具体的には、各PLC200の処理実行部250は、予約時期501に達したと判断したとき、当該予約時期501に関連付けられた制御処理502を実行する。
【0052】
生産ライン60Aの稼働時に、PLC200は、予め定められた制御周期毎に制御処理リスト50Aに従い各予約時期501に達したかを判断しながら制御処理を実行する。より具体的には、生産ライン60Aの稼働時はベルトコンベアによりワーク24が継続して搬送されて、センサ300Aはワーク24を予め定められた位置で検出する。PLC200Aは、センサ300Aからの検出値10を受付けると、処理実行部250を用いて、検出値10に基づき予約時期501のうちワーク検出40のイベントの検出時期に達したと判断し、判断結果に基づき、対応の制御処理502であるワーク検出時刻保存511を処理手順503の命令に従い実行する。これにより、タイマ201Aの時刻がワーク検出時刻として格納される。
【0053】
PLC200Aは、処理実行部250Aを用いて、ワーク検出時刻保存511の処理後に達したことを判断すると、PLC200Aは、処理実行部250Aを用いて、対応の制御処理502であるコンベア速度検出512を処理手順503の命令に従い実行する。これにより、エンコーダ300Dからの検出値12が表すカウント値に基づき、ベルト23の移動量を示す値、および/または、移動速度(コンベア速度)を示す値が算出(検出)される。
【0054】
PLC200Aは、処理実行部250Aを用いて、コンベア速度検出512の処理後に達したことを判断すると、PLC200Aは、処理実行部250Aを用いて、対応の制御処理502であるコンベア速度調整513を処理手順503の命令に従い実行する。より具体的には、PLC200Aは、処理実行部250Aを用いて、搬送されるワーク24が撮像時刻41(例えば毎秒または毎制御周期の開始から一定時間が経過した時点など)に撮像視野または、撮像視野内の予め定められた位置に移動するための目標速度と、上記の手順で算出されたコンベア速度との差を算出し、算出された差に基づきサーボモータ300Bの制御量を決定し、決定した制御量を表す指令11をサーボモータ300Bに出力する。この目標速度は、例えば((センサ300Aの検出位置と撮像視野に基づく撮像位置との間の距離)/(撮像時刻-(ワーク検出時刻))に基づき算出され得る。なお、目標速度の取得方法は、演算に限定されず、テーブルルックアップであってもよい。
【0055】
上記に述べたように、処理実行部250Aは、制御処理リスト50Aに従い制御処理502を実行する場合、例えば、ワーク検出時刻保存511(第1の処理の一例)が実行終了したと判断したとき、その後に、コンベア速度検出512(第2の処理の一例)を実行する、また、コンベア速度検出512(第1の処理の一例)が実行終了したと判断したとき、その後に、コンベア速度調整513(第2の処理の一例)を実行するよう構成されている。
【0056】
一方、PLC200Bは、処理実行部250Bを用いて、撮像時刻41に達したか否かをタイマ201Bの時刻に基づき判断する。撮像時刻41に達したと判断されると、PLC200Bは、処理実行部250Bを用いて、対応の制御処理502である撮像指令出力514の処理を実行する。これにより、画像センサ300Cは、PLC200Bからの撮像指令13に従い撮像部302Cを制御し、ワーク24の撮像画像を撮像部302Cから取得し検査のために処理する。
【0057】
撮像画像を用いたワーク24の検査は、外観検査などを含むが、検査処理は画像センサ300CとPLC200Bの一方が実行する、または両者が協働して実行してもよい。検査結果は、ネットワーク120およびネットワーク400を経由して転送されたサーバコンピュータ190の記憶部に格納されてもよい。
【0058】
このように、分散型システムの一例である制御システム10Aでは、互いに時刻同期したPLC200A,PLC200Bは、両者間で連係して実行されるべき制御処理502を、予約時期501を用いてスケジューリングされた制御処理リスト50Aに従って実行する。これにより、制御システム10Aでは、PLC200による制御処理の実行状態を、PLC200が互いに通知する、または通知するためにPLC200間を信号線で接続する等の特別な仕組みを用いずに、PLC200間で制御処理を連係しながら実行できる。以下、本実施の形態のより具体的な応用例について説明する。
【0059】
<B.サポート装置>
本実施の形態に係るサポート装置100は、制御処理リスト50Aを各PLC200に提供する。
図1を参照して、制御システム10Aのネットワーク構成に接続されるサポート装置100は、例えば汎用のコンピュータを用いて構成されて、ユーザが制御システム10Aを運用するのを支援する支援ツールを、例えばUI(User Interface)ベースで提供する。サポート装置100は、開発支援プログラム50を実行する。開発支援プログラム50が実行されることにより、サポート装置100は、上記の支援ツールの1つとして、ユーザが制御処理リスト50Aを作成し、作成された制御処理リスト50AをPLC200にダウンロードなどで転送するのを支援するツールを提供する。なお、サポート装置100が提供する支援ツールは、これに限定されず、制御プログラムの実行環境またはPLC200との通信環境等の準備の設定ツールなどを含み得る。制御システム10Aにおいては、PLC200とサポート装置100は別体として構成されているが、これらの機能の全部または一部を単一の装置に集約するような構成を採用してもよい。サポート装置100は、ネットワーク400に接続されてもよく、または、PLC200に内蔵されてもよく、または、ポータブル端末として提供されてもよい。
【0060】
制御処理リスト50AをPLC200にダウンロードするための経路は、サポート装置100からのダウンロードに限定されず、サーバコンピュータ190からのダウンロードであってもよい。また、制御システム10Aの1台のPLC200に制御処理リスト50Aをダウンロードし、当該1台のPLC200から、ネットワーク120を介して他のPLC200に制御処理リスト50Aを送信するとしてもよい。この場合、例えば、EtherNet/IP(登録商標)のタグデータリンク通信を利用できる。
【0061】
本実施の形態では、制御処理リスト50Aは、サポート装置100のUIツールを介してユーザにより作成されるが、作成する環境はこれに限定されない。例えば、シミュレータによって作成されてもよい。シミュレータは、サポート装置100またはクラウドベースのコンピュータ(例えば、サーバコンピュータ190)などに備えられてもよい。
【0062】
<C.PLC200のハードウェアの構成例>
図2は、PLC200のハードウェア構成の一例を示す模式図である。
図2を参照して、PLC200は、タイマ201と、CPU(Central Processing Unit)またはMPU(Micro-Processing Unit)などを含む制御装置202と、チップセット204と、DRAM(Dynamic Random Access Memory)やSRAM(Static Random Access Memory)などの揮発性記憶装置などで構成される主メモリ206と、HDD(Hard Disk Drive)やSSD(Solid State Drive)などの不揮発性記憶装置などで構成される記憶装置208と、内部バスコントローラ222と、フィールドバスコントローラ224と、通信インターフェイス238と、メモリカードインターフェイス239とを含む。
【0063】
タイマ201は、所定周期毎にカウンタ値をインクリメントまたはデクリメントするカウンタを含んで構成される。タイマ201は、ハードウェアタイマーである高精度イベントタイマー(HPET:High Precision Event Timer)または専用回路(例えば、ASIC(Application Specific Integrated Circuit)またはFPGA(Field-Programmable Gate Array)など)を用いて実装されてもよい。
【0064】
記憶装置208は、制御プログラム211および各種データ214を格納する。制御プログラム211は、OS(Operating System)を含むシステムプログラム212およびユーザプログラムを含む。ユーザプログラムは、実行されると処理実行部250A,250Bを実現する処理実行プログラム215、IOリフレッシュプログラム216および制御処理リスト50Aのプログラムを含む。この他にユーザプログラムは、制御対象に応じて任意に設計された制御処理を実行するための各種のプログラムを含む。
【0065】
制御装置202は、記憶装置208に格納された制御プログラム211を読み出して、主メモリ206に展開して実行することで、フィールド機器300の制御を実現する。
【0066】
チップセット204は、各コンポーネントを制御することで、PLC200全体としての処理を実現する。内部バスコントローラ222は、PLC200と内部バスを通じて連結される各種デバイスとデータを遣り取りするインターフェイスである。このようなデバイスの一例として、I/Oユニット226が接続されている。I/Oユニット226は、フィールド機器300が接続される場合は、接続されたフィールド機器300の状態値である、例えば検出値10,12を入力するとともに、フィールド機器300の制御指令である、例えば制御指令11および撮像指令13をフィールド機器300に出力する。
【0067】
フィールドバスコントローラ224は、PLC200とネットワーク110を通じて連結される各種のフィールド機器300とデータを遣り取りするインターフェイスである。
【0068】
通信インターフェイス238は、各種の有線/無線ネットワークを通じたデータの遣り取りを制御する。PLC200は、通信インターフェイス238を介して、ネットワーク120およびネットワーク400を介してサポート装置100またはサーバコンピュータ190と通信する。
【0069】
メモリカードインターフェイス239は、外部記憶媒体の一例であるメモリカード240を着脱可能に構成されており、装着されたメモリカード240に対してデータを書き込み、メモリカード240からデータを読出すことが可能になっている。PLC200に制御処理リスト50Aのプログラムが供給される経路は、サポート装置100からダウンロードされる経路に限定されず、メモリカード240から読出されて、記憶装置208にユーザプログラム210として格納される経路であってもよい。メモリカード240は、SDカードなどのフラッシュメモリからなる不揮発性記憶装置に相当する。
【0070】
PLC200は、制御プログラム211や各種データ214を、メモリカード240などの外部記憶媒体から取得してもよい。このような外部記憶媒体は、コンピュータその他装置、機械等が記録されたプログラムやデータ等の情報を読み取り可能なように、当該プログラムやデータ等の情報を、電気的、磁気的、光学的、機械的または化学的作用によって蓄積する媒体である。PLC200の制御装置202は、このような外部記憶媒体からシステムプログラム212、処理実行プログラム215、IOリフレッシュプログラム216、制御処理リスト50Aおよび各種データ214などのプログラムおよび/またはデータを取得してもよい。
【0071】
また、上記に述べたプログラムおよび/またはデータは、サーバコンピュータ190またはサポート装置100などの外部情報処理装置から、ネットワーク120を介して、PLC100にダウンロードされて,所定記憶領域(例えば、記憶装置208など)に格納されるとしてもよい。
【0072】
<D.PLC200の機能構成>
図3は、本実施の形態に係るPLCが有する制御処理リスト50Aに従う処理を実現するため機能構成を示す図である。
図3では、当該機能構成として、制御装置202がプログラムを実行することにより実現されるモジュールの構成が示される。より具体的には、制御装置202が処理実行プログラム215を実行することで実現される処理実行部250およびIOリフレッシュプログラム216を実行することで実現される入出力処理部251を含む。入出力処理部251は、制御周期毎に内部バスコントローラ222またはフィールドバスコントローラ224を介してフィールド機器300との間でデータ(状態値、制御指令)を遣り取りする。本実施の形態では、PLC200の稼働時は、記憶装置208から読出された制御処理リスト50Aは主メモリ206に展開される。処理実行部250は、制御周期毎に、入出力処理部251を介して入力するフィールド機器300からのデータ(検出値10,12の状態値)を用いて制御処理リスト50Aのプログラムを実行し、実行結果に基づくデータ(指令11,撮像指令13の制御指令)を出力する。入出力処理部251は、処理実行部250から出力された制御指令をフィールド機器300に送信する。
【0073】
図3には、制御装置202のプロセッサがプログラムを実行することで必要なモジュールが提供される構成例を示したが、これらの提供されるモジュールの一部または全部を、専用のハードウェア回路(例えば、ASIC(application specific integrated circuit)またはFPGA(field-programmable gate array)など)を用いて実装してもよい。あるいは、制御装置202の主要部を、汎用的なアーキテクチャに従うハードウェア(例えば、汎用パソコンをベースとした産業用パソコン)を用いて実現してもよい。この場合には、仮想化技術を用いて、用途の異なる複数のOSを並列的に実行させるとともに、各OS上で必要なアプリケーションを実行させるようにしてもよい。
【0074】
<E.フローチャート>
図4と
図5は、本実施の形態にかかる処理の一例を示すフローチャートである。
図4と
図5は処理実行プログラム215が実行されることにより実現される処理実行部250を用いた処理を示す。
図4を参照して、PLC200は、処理実行部250を用いて、まず、変数nの値0を設定して初期化する(ステップS1)。変数nは、制御処理リスト50Aの先頭から、それが有する制御処理502が実行されたレコードをカウントするために用いられる。
【0075】
PLC200は、処理実行部250を用いて、制御処理リスト50Aに従ってフィールド機器300の制御処理を実行し(ステップS2)、自装置の制御処理リスト50Aに従った制御処理の実行は終了したか否かを判断する(ステップS3)。ステップS3では、例えば、PLC200Aは制御処理リスト510の全てのレコードRの制御処理502を実行したか否かを、変数nが制御処理リスト510のレコードRの総数値を示すか否かに基づき判断し、同様に、PLC200Bは制御処理リスト510の全てのレコードRの制御処理502を実行したか否かを、変数nが制御処理リスト520のレコードRの総数値を示すか否かの値に基づき判断する。
【0076】
制御処理の実行は終了したと判断されると(ステップS3でYES)、
図4の処理は終了するが、制御処理の実行は終了していないと判断されると(ステップS3でNO)、ステップS1に戻り、制御処理リスト50Aに従う制御処理の実行が継続する。
【0077】
図5を参照して、ステップS2の処理を詳述する。PLC200は、変数nを1インクリメントする(ステップS10)。PLC200は、処理実行部250を用いて、制御処理リスト50Aのn番目のレコードRの予約時期501を解析し、解析の結果に基づき、当該予約時期501の種類を判断する(ステップS11)。具体的には、PLC200は、予約時期501は「予め定められた種類のイベントが検出されたこと」、「予め設定された時刻に達したこと」および「その他」のいずれを示すかを判断する。
【0078】
PLC200は、予約時期501は「予め設定された時刻に達したこと」を示すと判断すると(ステップS11で“予め設定された時刻”)、処理実行部250を用いて、タイマ201が計測する時刻は予約時期501が示す予め設定された時刻に達したかを判断する(ステップS12)。PLC200は、例えば、タイマ201が計測する時刻を予約時期501が示す予め設定された時刻と比較し、比較の結果に基づき、当該予め設定された時刻に達したかを判断する。PLC200は、予約時期501が示す予め設定された時刻に達したと判断すると(ステップS12でYES)、PLC200は、処理実行部250を用いて、n番目のレコードRの当該予約時期501に関連付けられた制御処理502を実行する(ステップS13)。一方、PLC200は、予約時期501が示す予め設定された時刻に達していないと判断すると(ステップS12でNO)、ステップS12を繰り返す。
【0079】
また、PLC200は、予約時期501は「予め定められた種類のイベントが検出されたこと」を示すと判断すると(ステップS11で“予め設定された時刻”)、PLC200は、処理実行部250を用いて、フィールド機器300からの状態値に基づき、予め定められた種類のイベントが検出されるか否かを判断する(ステップS15)。例えば、予約時期501が“ワーク検出時”を示す場合、PLC200は、センサ300Aからの検出値10からイベントとしてワーク検出40が取得されるか否かに基づき、予め定められた種類のイベントが検出されるか否かを判断する。
【0080】
PLC200は、予め定められた種類のイベントが検出されたと判断すると(ステップS15でYES)、処理実行部250を用いて、n番目のレコードRの当該予約時期501に関連付けられた制御処理502を実行する(ステップS16)。一方、PLC200は、予め定められた種類のイベントが検出されていないと判断すると(ステップS15でNO)、ステップS15を繰り返す。
【0081】
また、PLC200は、予約時期501は「その他」を示すと判断すると(ステップS11で“その他”)、PLC200は、処理実行部250を用いて、“その他”の時期に達したか否かを判断する(ステップS17)。例えば、「その他」は、
図1の制御処理リスト50Aの予約時期501の(上記処理後)を含む。この場合、PLC200は、(n-1)番目のレコードRの制御処理502の実行が終了したとき、予約時期501である(上記処理後)に達したと判断し、当該実行が終了していないときは予約時期501である(上記処理後)に達していないと判断する。
【0082】
PLC200は、n番目のレコードRの当該予約時期501の「その他」に達したと判断すると(ステップS17でYES)、n番目のレコードRの当該予約時期501に関連付けられた制御処理502を実行する(ステップS18)。一方、PLC200は、予約時期501の「その他」に達していないと判断すると(ステップS17でNO)、ステップS17を繰り返す。
【0083】
なお、PLC200は、制御処理リスト50Aを格納し、稼働時には、制御処理リスト50Aのうち自装置に対応の制御処理リスト510(520)に従って処理を実行してもよい。または、PLC200は、制御処理リスト50Aの全体ではなく自装置に対応の制御処理リスト510(520)を格納し、稼働時には、格納されている自装置に対応の制御処理リストに従って処理を実行してもよい。
【0084】
<F.変形例>
図6は、本実施の形態に係るFAの生産ライン60Bに備えられる制御システム10Bの構成を模式的に示す図である。制御システム10Bは、
図1の制御システム10Aの変形例を示す。
図6を参照して、生産ライン60Bは、例えばワーク24を箱611に箱詰めする工程に備えられる。生産ライン60Bは、
図1に示す検査工程における画像センサ300Cに代えて、ロボット310を制御するロボットコントローラ300Eを備える。ロボット310は、ワーク24を扱うために、図示しないロボットサーボモータが回転することで駆動される複数の関節を有している。各関節が駆動されることで、当該関節に繋がるアームが動作するとともにハンドが開閉する。生産ライン60Bの他の構成は、
図1に示したもの同様であるから説明を繰り返さない。
【0085】
ロボット310は、ロボットコントローラ300Eからの指令に従い、ロボットハンド301Eを用いてピックアンドプレースを実施する。ピックアンドプレースは、ロボット310が、コンベアのベルト23上に載置されたワーク24をロボットハンド301Eによりピックし、ピックしたまま所定位置に配置された箱611までワーク24を移動させて箱611内に置く(プレースする)一連の動作を示す。ロボットハンド301Eは、ワーク24をピックおよびプレースするためハンドを例えば開閉動作させるが、ピックおよびプレースのための動作は開閉動作に限定されず、ロボットハンド301Eに空気式の吸着装置を利用し、吸着によりワーク24をピックし、プレース側の箱611内でワーク24の吸着を解除する動作であってもよい。ロボットコントローラ300Eは、PLC200Bからのピッキング指令14が示す制御量(サーボモータの回転の角度、方向、速度など)に従い、ロボットサーボモータの駆動を制御することで、各アームが3次元に動作するとともに、ロボットハンド301Eが開閉する。このようなピッキング指令14に従う各アーム,ロボットハンド301Eの動作により、ロボット310のピックアンドプレースの動作が実現される。
【0086】
図6を参照して、生産ライン60Bの制御処理リスト50Bの識別子504が「コンベア用PLC」を示す制御処理リスト515と、識別子504が「ピッキング用PLC」を示す制御処理リスト525とを含む。PLC200Aは「コンベア用PLC」に対応し、PLC200Bは「ピッキング用PLC」に対応する。
【0087】
図6の制御処理リスト515では、コンベア速度調整513を処理手順503の命令が、
図1に示された対応の処理手順503とは異なるが、他の制御処理は
図1の制御処理リスト510と同様であるので説明は繰り返さない。制御処理リスト515のコンベア速度調整513の処理手順503では、PLC200Aは、処理実行部250Aを用いて、搬送されるワーク24がピッキング時刻42(例えば毎秒、毎制御周期の周期開始から一定時間が経過した時など)に、ピックアンドプレースのための予め定められた位置に対応のトラッキングエリアに移動するための目標速度と、コンベア速度検出512で算出されたコンベア速度との差を算出し、算出された差に基づきサーボモータ300Bの制御量を決定し、決定した制御量を表す指令11をサーボモータ300Bに出力する。この目標速度は、例えば((センサ300Aの検出位置とトラッキングエリアに基づく位置との間の距離)/(ピッキング時刻42-(ワーク検出時刻))に基づき算出され得る。なお、目標速度の取得方法は、演算に限定されず、テーブルルックアップであってもよい。
図6では、トラッキングエリアを、ロボット301がワーク23を扱うための予め定められたエリアとしているが、これに限定されず、また、ロボット310がワークを扱うための予め定められたエリアに基づく位置として、トラッキングエリアに基づく位置を例示したが、これに限定されず、生産ライン60Bに適用されるロボットの種類により設定できる。
【0088】
一方、PLC200Bは、処理実行部250Bを用いて、ピッキング時刻42に達したか否かをタイマ201Bの出力に基づき判断する。ピッキング時刻42に達したと判断されると、PLC200Bは、処理実行部250Bを用いて、対応の制御処理502であるピッキング指令出力516を実行する。これにより、ロボットコントローラ300Eは、PLC200Bからのピッキング指令14に従いアームおよびロボットハンド301Eを制御し、ロボット310にワーク24のピックアンドプレースを実施させる。
【0089】
なお、PLC200Bは、制御処理リスト50Bを格納し、稼働時には、制御処理リスト50Bのうち自装置に対応の制御処理リスト515(525)に従って処理を実行してもよい。または、PLC200Bは、制御処理リスト50Bの全体ではなく自装置に対応の制御処理リスト515(525)を格納し、稼働時には、格納されている自装置に対応の制御処理リストに従って処理を実行してもよい。
【0090】
上記の変形例の
図6の制御処理と、
図1の制御処理とを組みあわせてもよい。例えば、1のPLC200に、撮像視野内の予め定められた位置にワーク24が到達する予め定められた時刻(予約時期501)に撮像指令13を出力する制御処理502を実行させ、他のPLC200に、予め定められた時刻に、例えば撮像指令13の出力から予め定められた時間が経過したとき(予約時期501)にピッキング指令14を出力する制御処理502を実行させる制御リストが提供されてもよい。
【0091】
また、上記の変形例として、制御処理リスト50A,50Bの予約時期501は、例えば毎秒(1.0秒、2.0秒、3.0秒・・・)という時刻(時刻:the time)に限定されず、例えば1.0秒~1.5秒、2.0秒~2.5秒、3.0秒~3.5秒・・・などの予め定められた長さの時間(時間:a time period)を含み得る。これにより、予約時期501は、時刻と時間の少なくとも一方を含み得る。予約時期501が時間を示す場合、PLC200は、タイマ201の時刻に基づき当該時間に達したことを判断すると、予約時期501(当該時間)に関連付けられた制御処理502を実行する。
【0092】
<G.実施の形態の利点>
図7および
図8は、本実施の形態に係る制御システムの利点を説明する図である。例えば、ワークの検査工程でコンベア用PLCと検査用PLCとにより協調動作を実現するシーンにおいて、
図8は制御処理リスト500を利用しない従来の協調動作の処理手順を模式的に示し、
図7の制御処理リスト500を用いた
図1における協調動作の処理手順を模式的に示す。
【0093】
図8の従来例では、コンベア用PLCのタイマの値が「123」を示すとき、検査用PLCのタイマの値は「1234」を示すというように、両PLCが有するタイマの時刻は非同期状態である。したがって、両PLCについて、それぞれ、異なる時間軸を基準としたスケジューラに従い制御処理の実行タイミング(実行時期)が設計される。
【0094】
より具体的には、コンベア用PLCは、ワーク検出40のイベントを取得すると、処理T1~T4(ワーク検出時刻保存、コンベア速度算出、撮像時刻算出、タイミング信号発信時刻算出)を実行し、その後に、タイミング信号発信時刻に達すると、タイミング信号TMを検査用PLCに送信する処理T5を実行する。検査用PLCは、コンベア用PLCからのタイミング信号TMの受信処理T6および受信したタイミング信号TMに応じて撮像指令13を出力する処理T7を実行する。
【0095】
このように、検査用PLCでは、撮像指令13を出力するタイミングは、コンベア用PLCからタイミング信号TMの通知を受信した時刻によって決定される。この場合において、コンベア用PLCがタイミング信号TMの通知を送信してから、検査用PLCが撮像指令13を出力するまでに時間を要するから、コンベア用PLCは、タイミング信号発信時刻算出T4の処理では、検査用PLCの時間軸上での当該所要時間に基づく遅延時間DLも考慮してタイミング信号TMを送信するべき時刻を算出する必要がある。
【0096】
従来例では、このように分散型システムにおいてPLCにより対象を協調動作させて制御処理を連係して実行するタイミングの設計には、各PLCの制御処理について、当該PLCとは異なる時間軸上の他PLCの処理時間等も考慮した詳細なタイミングチャートを設計する必要がある。
【0097】
これに対し、
図7の実施の形態では、分散型システムの各PLCは他のPLCのタイマと互い時刻同期されたタイマを有することで、当該システムにおける全てのPLCが共通の時間軸を基準に、連係する制御処理(ワーク検出40のイベント取得に応じたワーク検出時刻保存511、コンベア速度検出512、コンベア速度調整513、および撮像指令13のための撮像指令出力514)を実行するタイミングを決定できる。したがって、
図8の従来例とは異なり、
図7の本実施の形態では、PLCは他のPLCの動作状態を把握する必要はなく、タイミング信号TMの通知によるインターロックは不要となる。これにより、制御処理リストを、PLC間で連係して実行する複数の制御処理のそれぞれを、1つのPLCが予約時期501に達したときに実行するよう設計するという簡易な方法で、分散型システム全体について制御処理の実行タイミングを設計することができる。
【0098】
したがって、本実施の形態では、制御処理リスト50A,50Bによって対象を協調動作させるようPLCの制御処理の実行時期を設計することで、PLC200単体の設計がし易くなる。つまり、対象を協調動作させる場合であっても、全体の制御処理リスト50A,50Bから各PLC200の制御処理502を実行する時期(予約時期501)を決めることができ、設計しやすい。また、PLC200間でタイミング信号TM等の通知の仕組みは不要となる。つまり、PLC200間で制御処理502の実行状態を通知する必要はなく、通知の仕組みを不要にできる。またPLC200単体で制御処理502のデバッグが可能となる。つまり、PLC200単体で制御処理502を実行でき、PLC200単体について制御処理502のデバッグができる。
【0099】
また、制御処理リスト50A,50Bによって協調動作するPLC200の制御処理502により実現される機能の変更が容易となる。具体的には、協調動作する既存のPLC200の制御処理502の再設計/デバッグは不要となる。つまり、機能変更時に協調動作する既存のPLC200の制御処理502の設計/デバッグは不要である。また、制御システムの全体について制御処理502の実行時期の調整も不要となる。つまり、各PLC200の制御処理502の実行時期(予約時期501)は機能変更前と変わらないため、制御システム全体での制御処理502の実行時期(予約時期501)の調整も不要にできる。
【0100】
<H.付記>
上述したような本実施の形態は、以下のような技術思想を含む。
[構成1]
FA(ファクトリオートメーション)の生産ライン(60A、60B)に設けられる制御システム(10A、10B)であって、
前記制御システムは、
それぞれが対象(300A、300B、300C、300D)を制御する複数の制御装置(200A、200B)を、備え、
各前記複数の制御装置は、
他の制御装置のタイマ(201A)と互い時刻同期されるタイマ(201B)と、
前記他の制御装置と連係して実行される制御に関連した1つ以上の処理(502)それぞれについて、当該処理を実行する予め定められた時期(501)を含む情報が関連付けられたリスト(50A、50B)に従って当該処理を実行する処理実行手段(250A、250B)と、を有し、
各制御装置の前記処理実行手段は、
前記リストの前記予め定められた時期に達したと判断したとき、前記リストにおいて当該予め定められた時期に関連付けられた処理を実行する、制御システム。
[構成2]
前記予め定められた時期は、予め定められた時刻と時間の少なくとも一方を含み、
前記各制御装置の前記処理実行手段は、
当該制御装置の前記タイマの時刻に基づき、前記予め定められた時刻と時間の少なくとも一方に達したと判断したとき、前記リストにおいて当該予め定められた時刻と時間の少なくとも一方に関連付けられた処理を実行する、構成1に記載の制御システム。
[構成3]
前記予め定められた時期は、前記生産ラインにおいて予め定められた種類のイベント(40)が検出されたときを含み、
前記各制御装置の前記処理実行手段は、
前記予め定められた種類のイベントを検出したとき、前記リストにおいて当該予め定められた種類のイベントの検出に関連付けられた処理を実行する、構成1または2に記載の制御システム。
[構成4]
前記リストの処理は第1の処理と、当該第1の処理が実行終了すると、その後に実行される第2の処理とを含み、
前記予め定められた時期は、前記第1の処理が実行終了したときを含み、
前記各制御装置の前記処理実行手段は、
前記第1の処理が実行終了したと判断したとき、その後に、第2の処理を実行する、構成1から3のいずれか1に記載の制御システム。
[構成5]
前記リストにおける前記1つ以上の処理それぞれに対応の情報は、当該処理の処理手順(503)を含む、構成1から4のいずれか1に記載の制御システム。
[構成6]
前記リストにおける前記1つ以上の処理それぞれに対応の情報は、当該処理を実行する制御装置の識別子(504)を含む、構成1から5のいずれか1に記載の制御システム。
[構成7]
前記対象は、前記生産ラインに関連して設置された装置を駆動する機器を含む、構成1から6のいずれか1に記載の制御システム。
[構成8]
前記リストにおける前記1つ以上の処理の少なくとも1つは、前記装置を駆動するための制御量を決定する処理を含む、構成7に記載の制御システム。
[構成9]
前記生産ラインに関連して設置された装置は、ワーク(24)の搬送装置(23)を含み、
前記機器は、前記搬送装置を前記制御量に従い駆動する機器(300B)を含む、構成8に記載の制御システム。
[構成10]
前記リストの処理は第1の処理と、当該第1の処理が実行終了すると、その後に実行される第2の処理とを含み、
前記第1の処理は、前記搬送装置を駆動するための制御量を決定する処理を含み、
前記搬送装置を駆動するための制御量は、
前記ワークを前記生産ライン上の前記第2の処理に関連した位置に、前記第2の処理に対応の前記予め定められた時期までに搬送するよう、前記搬送装置を駆動するための制御量を含む、構成9に記載の制御システム。
[構成11]
前記生産ラインに関連して設置された装置は、撮像視野を有した撮像部(302C)を含み、
前記機器は、前記撮像部を撮像指令(13)に従い駆動する機器(301C)を含み、
前記第2の処理は、前記撮像部を駆動する機器を介して当該撮像部に前記撮像指令を出力する処理を含み、
前記第2の処理に関連した位置は、前記撮像視野に基づく位置を含む、構成10に記載の制御システム。
[構成12]
前記生産ラインに関連して設置された装置は、ワーク(24)を扱うロボット(310)を含み、
前記機器は、前記ロボットを、当該ロボットを駆動するための前記制御量に従い駆動する機器(300E)を含み、
前記第2の処理は、前記ロボットを駆動する機器に前記制御量に対応の制御指令(14)を出力する処理を含み、
前記第2の処理に関連した位置は、前記ロボットがワークを扱うための予め定められたエリアに基づく位置を含む、構成10または11に記載の制御システム。
[構成13]
FA(ファクトリオートメーション)の生産ライン(60A、60B)に設けられて、対象(300A、300B、300C、300D)を制御する制御装置(200A、200B)であって、
前記生産ラインに設けられる他の制御装置のタイマ(201A)と互い時刻同期されるタイマ(201B)と、
前記他の制御装置と連係して実行される制御に関連した1つ以上の処理(502)それぞれについて、当該処理を実行する予め定められた時期(501)を含む情報が関連付けられたリスト(50A、50B)に従って当該処理を実行する処理実行手段(250A、250B)と、を有し、
前記処理実行手段は、
前記リストの前記予め定められた時期に達したと判断したとき、前記リストにおいて当該予め定められた時期に関連付けられた処理を実行する、制御装置。
[構成14]
FA(ファクトリオートメーション)の生産ライン(60A、60B)に設けられる制御装置(200A、200B)が対象(300A、300B、300C、300D)を制御する方法をコンピュータ(202)に実行させるプログラム(215)であって、
前記制御装置は、
前記生産ラインに設けられる他の前記制御装置のタイマ(201A)と互い時刻同期されるタイマ(201B)を備え、
前記方法は、
前記制御装置が他の制御装置と連係して実行する制御に関連した1つ以上の処理(502)それぞれについて、当該処理を実行する予め定められた時期(501)を含む情報が関連付けられたリスト(50A、50B)に従って当該処理を実行するステップを備え、
前記処理を実行するステップは、
前記リストの前記予め定められた時期に達したと判断したとき、前記リストにおいて当該予め定められた時期に関連付けられた処理を実行するステップを有する、プログラム。
【0101】
今回開示された実施の形態はすべての点で例示であって制限的なものではないと考えられるべきである。本発明の範囲は、上記した実施の形態の説明ではなくて特許請求の範囲によって示され、特許請求の範囲と均等の意味及び範囲内でのすべての変更が含まれることが意図される。
【符号の説明】
【0102】
10,12 検出値、10A,10B 制御システム、11 制御指令、13 撮像指令、14 ピッキング指令、23 ベルト、24 ワーク、40 ワーク検出、41 撮像時刻、42 ピッキング時刻、50 開発支援プログラム、50A,50B,510,515,520,525 制御処理リスト、60A,60B 生産ライン、100 サポート装置、110,120,400 ネットワーク、190 サーバコンピュータ、201,201A,201B タイマ、202 制御装置、204 チップセット、206 主メモリ、208 記憶装置、210 ユーザプログラム、211 制御プログラム、212 システムプログラム、214 各種データ、215 処理実行プログラム、216 リフレッシュプログラム、222 内部バスコントローラ、224 フィールドバスコントローラ、226 I/Oユニット、238 通信インターフェイス、239 メモリカードインターフェイス、240 メモリカード、250,250A,250B 処理実行部、251 入出力処理部、300 フィールド機器、300A センサ、300B サーボモータ、300C 画像センサ、300D エンコーダ、300E ロボットコントローラ、301C センサ部、301E ロボットハンド、302C 撮像部、310 ロボット、410 通信装置、501 予約時期、502 制御処理、503 処理手順、504 識別子、511 ワーク検出時刻保存、512 コンベア速度検出、513 コンベア速度調整、514 撮像指令出力、516 ピッキング指令出力、611 箱。