(57)【要約】【課題】ネットワーク接続される複数の駆動機器に対して、単一の教示装置を用いて、対応する制御対象の動作を同時に教示することができる制御システムを提供する。【解決手段】制御システムは、ネットワークに接続され、複数の制御対象をそれぞれ駆動する複数の駆動機器と、ネットワークを介して複数の駆動機器を制御する制御装置と、複数の駆動機器に対して、対応する制御対象の動作を教示するための教示装置とを備える。教示装置は、ネットワークを介して、複数の駆動機器のうち少なくとも１つの駆動機器に対して、対応する制御対象を駆動するための指令を送信する。【選択図】図１
2019079344.tif 000002
【特許請求の範囲】
【請求項１】
複数の制御対象を制御するための制御システムであって、
ネットワークに接続され、前記複数の制御対象をそれぞれ駆動する複数の駆動機器と、
前記ネットワークを介して前記複数の駆動機器を制御する制御装置と、
前記複数の駆動機器に対して、対応する制御対象の動作を教示するための教示装置とを備え、
前記教示装置は、前記ネットワークを介して、前記複数の駆動機器のうち少なくとも１つの駆動機器に対して、対応する制御対象を駆動するための指令を送信する、制御システム。
【請求項２】
前記教示装置は、前記複数の駆動機器のうち第１の駆動機器と通信線を介して接続され、前記複数の駆動機器のうち第２の駆動機器に対する指令を、前記第１の駆動機器に出力し、
前記第１の駆動機器は、前記第２の駆動機器に対する指令を、前記ネットワークを介して前記第２の駆動機器へ送信する、請求項１に記載の制御システム。
【請求項３】
前記教示装置は、前記ネットワークに接続され、前記ネットワークを介して対象の駆動機器に対して、対応する制御対象を駆動するための指令を送信する、請求項１に記載の制御システム。
【請求項４】
前記制御装置は、前記ネットワークを介して前記教示装置が送信した指令を収集し、収集した指令を、前記ネットワークを介して対象となる駆動機器に対して送信する、請求項１から３のいずれかに記載の制御システム。
【請求項５】
前記制御装置は、収集した指令を、通信フレームの前記対象の駆動機器に割当てられている領域に格納し、前記ネットワークを介して前記通信フレームを送出し、
前記対象の駆動機器は、前記通信フレームを受信すると、前記対象の駆動機器に割当てられている領域に格納されている指令を読出す、請求項４に記載の制御システム。
【請求項６】
前記制御装置および前記複数の駆動機器の各々は、互いに時刻同期したタイマを有しており、
前記制御装置は、前記タイマが管理する時刻を基準として、前記複数の駆動機器の各々において受信された指令に対応する信号を出力する同期タイミングを決定する、請求項１に記載の制御システム。
【請求項７】
前記制御装置および前記複数の駆動機器の各々は、互いに時刻同期したタイマを有しており、
前記制御装置は、前記ネットワークを介して所定周期毎に通信フレームを送出し、
前記教示装置は、前記通信フレームが伝送されていない期間において、対象の駆動機器に対する指令を送信するとともに、前記対象の駆動機器において受信された指令に対応する信号を出力するタイミングを指示する、請求項１に記載の制御システム。
【請求項８】
前記複数の駆動機器のうち第１の駆動機器は、前記教示装置から、対応する第１の制御対象を駆動するための指令を受信した場合、前記指令を実行することによる前記第１の制御対象と第２の制御対象との間の衝突可能性を判定し、
前記衝突可能性があると判定されたときには、前記指令の実行を中止するとともに、前記教示装置に対して前記指令が実行不可であることを通知する、請求項１に記載の制御システム。
【請求項９】
前記複数の駆動機器のうち第１の駆動機器は、前記教示装置から、対応する第１の制御対象を駆動するための指令を受信した場合、前記指令を実行することによる前記第１の制御対象と第２の制御対象との間の衝突可能性を判定し、
前記衝突可能性があると判定されたときには、前記ネットワークを介して、前記制御装置に対して、前記第２の制御対象を駆動する第２の駆動機器に対する衝突回避指令を送信し、
前記制御装置は、前記衝突回避指令を受信したときには、前記第２の制御対象の補正位置を含む指令を、前記ネットワークを介して前記第２の駆動機器に送信する、請求項１に記載の制御システム。
【請求項１０】
前記ネットワークに接続され、前記複数の制御対象を撮像するように配置された撮像部を有する視覚センサをさらに備え、
前記教示装置は、前記視覚センサから前記ネットワークを介して伝送される、前記撮像部によって撮像された画像を表示する表示部と、
対象の駆動機器に対する指令を入力する操作を受け付ける操作部とを含む、請求項１に記載の制御システム。
【請求項１１】
前記教示装置は、停止指令を入力する操作を受け付ける操作部を含み、前記ネットワークを介して、前記複数の駆動機器のうち少なくとも１つの駆動機器に対して前記停止指令を送信する、請求項１に記載の制御システム。
【請求項１２】
前記ネットワークに接続され、前記複数の制御対象の状態を検知するセンサデバイスをさらに備え、
前記教示装置は、前記ネットワークを介して、前記センサデバイスの出力値を受信する、請求項１に記載の制御システム。
【発明の詳細な説明】
【技術分野】
【０００１】
本開示は、ネットワーク接続される複数の駆動機器の各々に対して、対応する制御対象の動作を教示するための技術に関する。
【背景技術】
【０００２】
複数のロボットをそれぞれ制御する複数のロボットコントローラを備えるロボットシステムにおいては、従来、各々のロボットコントローラに対して１つの教示装置（典型的には、ティーチングペンダント）が使用される（例えば、特開２０００−２８８９７６号公報（特許文献１参照）。そのため、複数のロボットに対して教示を行なう場合、ユーザは、教示対象のロボットコントローラに応じて教示装置を持ち替える必要があり、作業効率が低い。
【０００３】
このようなロボットシステムとして、例えば、特開２０１７−７７６０６号公報（特許文献２）は、複数のロボットコントローラが接続されるネットワークに教示装置を接続し、各ロボットコントローラからの接続要求に応答して、いずれか１つのロボットコントローラと教示装置とを選択的に通信できるように、教示装置の通信先を切り替えることができるロボットシステムを開示する。
【０００４】
また、特開２００６−１３０５７７号公報（特許文献３）は、複数台のロボットと、該複数台のロボットのうち１台以上を制御するロボット制御装置と、ロボット制御装置に接続される教示装置とからなるロボットシステムを開示する。
【先行技術文献】
【特許文献】
【０００５】
【特許文献１】特開２０００−２８８９７６号公報
【特許文献２】特開２０１７−７７６０６号公報
【特許文献３】特開２００６−１３０５７７号公報
【発明の概要】
【発明が解決しようとする課題】
【０００６】
上述の特許文献２に開示された構成においては、１つの教示装置で複数のロボットに対する教示を行なうことができるものの、教示対象のロボットコントローラに応じて教示装置の通信先を切り替える必要がある。また、１回の教示において教示可能なロボットコントローラは１つであるため、ユーザは、ロボットコントローラの数だけ教示を繰返し行なう必要がある。そのため、依然として作業効率が低いという課題がある。
【０００７】
また、ロボットシステムにおいて、動作タイミングを互いに同期させることが必要である複数のロボットについては、これら複数のロボットを同時に動作させて教示を行なうことが要求されることがある。しかしながら、上述の特許文献２に開示された構成では、このような要求に応えることができない。
【０００８】
上述の特許文献３に開示された構成においては、ロボット制御装置に接続されるロボットの台数が、ロボット制御装置のハードウェアに制約されることが懸念される。また、ロボット制御装置に接続されるロボットの機種についても、ロボット制御装置のハードウェアに制約されるという課題がある。
【０００９】
本開示は、このような課題の解決に向けられており、その一つの目的は、ネットワーク接続される複数の駆動機器に対して、単一の教示装置を用いて、対応する制御対象の動作を同時に教示することができる制御システムを提供することである。
【課題を解決するための手段】
【００１０】
本開示の一例では、複数の制御対象を制御するための制御システムが提供される。制御システムは、ネットワークに接続され、複数の制御対象をそれぞれ駆動する複数の駆動機器と、ネットワークを介して複数の駆動機器を制御する制御装置と、複数の駆動機器に対して、対応する制御対象の動作を教示するための教示装置とを備える。教示装置は、ネットワークを介して、複数の駆動機器のうち少なくとも１つの駆動機器に対して、対応する制御対象を駆動するための指令を送信する。
【００１１】
この開示によれば、複数の駆動機器およびこれらを制御する制御装置がネットワーク接続されてなる制御システムにおいて、教示装置は、ネットワークを利用して、複数の駆動機器に対して指令を同時に送信することができる。これにより、単一の教示装置によって、複数の駆動機器に対して同時に教示を行なうことができる。したがって、教示対象の駆動機器を１つずつ選択して教示を行なう従来の構成に比べて、作業効率を向上させることができる。また、複数の駆動機器は、いわゆる産業用ネットワークに接続されるため、従来の構成のように、接続可能な駆動機器の台数が制御装置のハードウェアに制約されることがない。駆動機器の機種についても、産業用ネットワークに接続可能な機種であれば接続することができるため、制御装置のハードウェアに制約されることがない。また、この開示によれば、教示装置は、複数の駆動機器に対して同時に指令を与えることができるため、動作タイミングを互いに同期させることが必要である複数の駆動機器を同時に動作させて教示を行なうことが可能となる。
【００１２】
上述の開示において、教示装置は、複数の駆動機器のうち第１の駆動機器と通信線を介して接続され、複数の駆動機器のうち第２の駆動機器に対する指令を、第１の駆動機器に出力する。第１の駆動機器は、第２の駆動機器に対する指令を、ネットワークを介して第２の駆動機器へ送信する。
【００１３】
この開示によれば、教示装置は、ネットワークを利用して、複数の駆動機器の各々に対して指令を送信することができる。
【００１４】
上述の開示において、教示装置は、ネットワークに接続され、ネットワークを介して対象の駆動機器に対して、対応する制御対象を駆動するための指令を送信する。
【００１５】
この開示によれば、教示装置は、ネットワークを利用して、複数の駆動機器の各々に対して指令を送信することができる。
【００１６】
上述の開示において、制御装置は、ネットワークを介して教示装置が送信した指令を収集し、収集した指令を、ネットワークを介して対象となる駆動機器に対して送信する。
【００１７】
この開示によれば、教示装置は、ネットワーク上で行なわれる制御装置と各駆動機器との間のデータの遣り取りを利用して、複数の駆動機器の各々に対して指令を送信することができる。
【００１８】
上述の開示において、制御装置は、収集した指令を、通信フレームの対象の駆動機器に割当てられている領域に格納し、ネットワークを介して前記通信フレームを送出する。対象の駆動機器は、通信フレームを受信すると、対象の駆動機器に割当てられている領域に格納されている指令を読出す。
【００１９】
この開示によれば、通信フレームを利用して、対象の駆動機器に対して指令を送信することができる。
【００２０】
上述の開示において、制御装置および複数の駆動機器の各々は、互いに時刻同期したタイマを有している。制御装置は、タイマが管理する時刻を基準として、複数の駆動機器の各々において受信された指令に対応する信号を出力する同期タイミングを決定する。
【００２１】
この開示によれば、教示装置は、複数の駆動機器に対して同時に指令を与えることができるため、動作タイミングを互いに同期させることが必要である複数の駆動機器を同時に動作させて教示を行なうことが可能となる。
【００２２】
上述の開示において、制御装置および複数の駆動機器の各々は、互いに時刻同期したタイマを有している。制御装置は、ネットワークを介して所定周期毎に通信フレームを送出する。教示装置は、通信フレームが伝送されていない期間において、対象の駆動機器に対する指令を送信するとともに、対象の駆動機器において受信された指令に対応する信号を出力するタイミングを指示する。
【００２３】
この開示によれば、教示装置は、メッセージ通信を利用して、対象の駆動機器に対して指令を送信することができる。このとき、対象の駆動機器に対して、指令に対応する信号を出力するタイミングを通知することで、複数の駆動機器の間で出力タイミングを同期させることができる。
【００２４】
上述の開示において、複数の駆動機器のうち第１の駆動機器は、教示装置から、対応する第１の制御対象を駆動するための指令を受信した場合、指令を実行することによる第１の制御対象と第２の制御対象との間の衝突可能性を判定する。衝突可能性があると判定されたときには、第１の駆動機器は、指令の実行を中止するとともに、教示装置に対して指令が実行不可であることを通知する。
【００２５】
この開示によれば、制御装置および複数の駆動機器間は、ネットワークを介してデータを遣り取りすることができるため、教示装置から対象の駆動機器に対して指令が与えられた場面において、対象の駆動機器は、自機器と他の駆動機器との相対的な位置関係に基づいて両者間の衝突可能性を判定することができる。さらに、衝突可能性があると判定された場合には、対象の駆動機器は、衝突を回避するための処理を実行することができる。
【００２６】
上述の開示において、複数の駆動機器のうち第１の駆動機器は、教示装置から、対応する第１の制御対象を駆動するための指令を受信した場合、指令を実行することによる第１の制御対象と第２の制御対象との間の衝突可能性を判定する。衝突可能性があると判定されたときには、第１の駆動機器は、ネットワークを介して、制御装置に対して、第２の制御対象を駆動する第２の駆動機器に対する衝突回避指令を送信する。制御装置は、衝突回避指令を受信したときには、第２の制御対象の補正位置を含む指令を、ネットワークを介して第２の駆動機器に送信する。
【００２７】
この開示によれば、制御装置および複数の駆動機器間は、ネットワークを介してデータを遣り取りすることができるため、教示装置から対象の駆動機器に対して指令が与えられた場面において、対象の駆動機器は、自機器と他の駆動機器との相対的な位置関係に基づいて両者間の衝突可能性を判定することができる。さらに、衝突可能性があると判定された場合には、制御装置と第１および第２の駆動機器とが互いに連系して、衝突を回避するための処理を実行することができる。
【００２８】
上述の開示において、制御システムは、ネットワークに接続され、複数の制御対象を撮像するように配置された撮像部を有する視覚センサをさらに備える。教示装置は、視覚センサからネットワークを介して伝送される、撮像部によって撮像された画像を表示する表示部と、対象の駆動機器に対する指令を入力する操作を受け付ける操作部とを含む。
【００２９】
この開示によれば、教示装置は、ネットワークに接続された視覚センサから制御対象の挙動を撮像した画像を受信して表示させることができる。これにより、ユーザは、教示装置に表示された、制御対象の機械または設備の挙動を監視しながら、制御対象の駆動機器に対して指令を与えることができる。これにより、ユーザは、目視が困難な制御対象の挙動についても駆動機器に教示させることができる。
【００３０】
上述の開示において、教示装置は、停止指令を入力する操作を受け付ける操作部を含み、ネットワークを介して、複数の駆動機器のうち少なくとも１つの駆動機器に対して停止指令を送信する。
【００３１】
この開示によれば、非常時に教示装置から発せられた停止指令を、ネットワークを介して、複数の駆動機器に出力することができる。これにより、複数の駆動機器を緊急停止させることができる。教示装置は、また、予め設定された特定の駆動機器のみに対して停止指令を出力することで、特定の駆動機器のみを緊急停止させることもできる。
【００３２】
上述の開示において、制御システムは、ネットワークに接続され、複数の制御対象の状態を検知するセンサデバイスをさらに備える。教示装置は、ネットワークを介して、センサデバイスの出力値を受信する。
【００３３】
この開示によれば、ユーザは、教示装置を用いて制御対象を移動させた際に、制御対象の挙動に対してセンサデバイスが正しい値を出力することを確認することができる。
【発明の効果】
【００３４】
本開示の一例によれば、ネットワーク接続される複数の駆動機器に対して、単一の教示装置を用いて、対応する制御対象の動作を同時に教示することができる制御システムを提供できる。
【図面の簡単な説明】
【００３５】
【図１】本実施の形態に係る制御システムの適用場面の一例を示す模式図である。
【図２】図１に示したティーチングペンダントの構成例を示す模式図である。
【図３】本実施の形態に係る制御システムのハードウェア構成例を示すブロック図である。
【図４】本実施の形態に係る制御システムにおけるデータ通信の第１の構成例を説明するための模式図である。
【図５】本実施の形態に係る制御システムにおけるデータ通信の第２の構成例を説明するための模式図である。
【図６】本実施の形態に係る制御システムにおけるデータ通信の第３の構成例を説明するための模式図である。
【図７】本実施の形態に係る制御システムにおけるデータ通信の第４の構成例を説明するための模式図である。
【図８】本実施の形態に係る制御システムにおいて用いられるＩ／Ｏリフレッシュフレームのデータ構造の一例を示す模式図である。
【図９】制御装置から駆動機器に対して指令を出力するために必要な処理を説明するための図である。
【図１０】本実施の形態に係る制御システムが提供する出力タイミング同期機能について説明するための模式図である。
【図１１】本実施の形態に係る制御システムが提供する出力タイミング同期機能に係る各部の処理（その１）を示すタイミングチャートである。
【図１２】本実施の形態に係る制御システムにおける出力タイミング同期機能に係る処理手順（その２）を示すフローチャートである。
【図１３】ティーチングペンダントからの指令がメッセージ通信される例を示す模式図である。
【図１４】メッセージ通信を用いた、出力タイミング同期機能について説明するための模式図である。
【図１５】本実施の形態に係る制御システムにおける緊急停止処理の一例を示す模式図である。
【図１６】本実施の形態に係る制御システムにおける緊急停止処理の別の例を示す模式図である。
【図１７】本実施の形態に係る制御システムにおける動作確認処理の一例を示す模式図である。
【図１８】本実施の形態に係る制御システムが提供する衝突回避機能について説明するための模式図である。
【図１９】本実施の形態に係る制御システムにおける他ロボット回避モードを説明するための模式図である。
【図２０】本実施の形態に係る制御システムにおける衝突回避機能の処理手順を示すフローチャートである。
【発明を実施するための形態】
【００３６】
本発明の実施の形態について、図面を参照しながら詳細に説明する。なお、図中の同一または相当部分について、同一符号を付してその説明は繰返さない。
【００３７】
＜Ａ．適用例＞
まず、図１を参照して、本発明が適用される場面の一例について説明する。図１は、本実施の形態に係る制御システム１の適用場面の一例を示す模式図である。図１には、制御装置１００を中心とした制御システム１を示す。
【００３８】
制御装置１００は、各種の設備や装置などの制御対象を制御する産業用コントローラに相当する。制御装置１００は、後述するような制御演算を実行する一種のコンピュータであり、典型的には、ＰＬＣ（プログラマブルコントローラ）として具現化されてもよい。制御装置１００は、フィールドネットワーク２などを介して各種のフィールド機器５００と接続されてもよい。制御装置１００は、フィールドネットワーク２を介して、１または複数のフィールド機器５００との間でデータを遣り取りする。一般的に「フィールドネットワーク」は、「フィールドバス」とも称されるが、説明の簡素化のため、以下の説明においては、「フィールドネットワーク」と総称する。
【００３９】
制御装置１００において実行される制御演算は、フィールド機器５００において収集または生成されたデータ（以下、「入力データ」とも称す。）を収集する処理（入力処理）、フィールド機器５００に対する指令などのデータ（以下、「出力データ」とも称す。）を生成する処理（演算処理）、生成した出力データを対象のフィールド機器５００へ送信する処理（出力処理）などを含む。
【００４０】
フィールドネットワーク２は、データの到達時間が保証される、定周期通信を行なうバスまたはネットワークを採用することが好ましい。このような定周期通信を行なうバスまたはネットワークとしては、ＥｔｈｅｒＣＡＴ（登録商標）、ＥｔｈｅｒＮｅｔ／ＩＰ（登録商標）、ＤｅｖｉｃｅＮｅｔ（登録商標）、ＣｏｍｐｏＮｅｔ（登録商標）などが知られている。
【００４１】
このようなフィールドデータの転送を実現するにあたっては、データ転送に関係する各部が互いに時刻同期されたタイマを有する構成を想定する。すなわち、バスまたはネットワークにおいて、各部は、互いに時刻同期されたタイマを用いて指定されるタイミングで、データの送信または受信を行なう。
【００４２】
フィールドネットワーク２には、任意のフィールド機器５００を接続することができる。フィールド機器５００は、製造装置や生産ラインなど（以下、「フィールド」とも総称する。）に対して何らかの物理的な作用を与えるアクチュエータ、および、フィールドとの間で情報を遣り取りする入出力装置などを含む。
【００４３】
フィールドネットワーク２を介して、制御装置１００とフィールド機器５００との間でデータが遣り取りされることになるが、これらの遣り取りされるデータは、数１００μｓｅｃオーダ〜数１０ｍｓｅｃオーダのごく短い周期で更新されることになる。なお、このような遣り取りされるデータの更新処理は、入出力リフレッシュ処理とも称される。
【００４４】
図１に示す構成例において、フィールド機器５００は、リモートＩ／Ｏ（Input/Output）装置５１０、サーボドライバ５２０およびサーボモータ５２２と、ロボットコントローラ５３０およびロボット５３２，５３４と、視覚センサ５４０とを含む。フィールド機器５００は、これらに限られることなく、入力データを収集する任意のデバイス、出力データに従う何らかの作用を与える任意のデバイスなどを採用することができる。
【００４５】
リモートＩ／Ｏ装置５１０は、入力リレーや各種センサ（例えば、アナログセンサ、温度センサ、振動センサなど）などの入力データを収集する装置、および、出力リレー、コンタクタ、サーボドライバ、および、その他任意のアクチュエータなどのフィールドに対しても何らかの作用を与える装置が接続される。
【００４６】
サーボドライバ５２０は、制御装置１００からの出力データ（例えば、位置指令や速度指令など）に従って、サーボモータ５２２を駆動する。
【００４７】
ロボットコントローラ５３０は、制御装置１００からの位置指令などに従って、軌道計算および各軸の角度計算などを行なうとともに、計算結果に従って、ロボット５３２，５３４を構成するサーボモータなどを駆動する。図１に示す構成例において、ロボット５３２はパラレルロボットであり、ロボット５３４は、多関節ロボットである。なお、ロボットとしては、図１に示す機構に限らず任意の機構を採用できる。また、説明の便宜上、ロボットコントローラ５３０とロボット５３２，５３４とが分離した構成を例示するが、これに限らず両者を一体化してもよい。
【００４８】
視覚センサ５４０は、制御対象の機械または設備およびワークなどの被写体を撮像するための撮像部５４２と、撮像部５４２によって撮像された画像を処理するための画像処理部（図示せず）とを一体的に構成したものである。ただし、撮像部５４２と画像処理部とを別体として構成してもよい。
【００４９】
制御装置１００は、上位ネットワーク３を介して、他の装置にも接続されている。上位ネットワーク３には、一般的なネットワークプロトコルであるイーサネット（登録商標）やＥｔｈｅｒＮｅｔ／ＩＰ（登録商標）が採用されてもよい。より具体的には、上位ネットワーク３には、１または複数のサーバ装置３００および１または複数の表示装置４００が接続されてもよい。
【００５０】
サーバ装置３００としては、データベースシステム、製造実行システム（ＭＥＳ：Manufacturing Execution System）などが想定される。これに限らず、情報系サービスを提供する装置を上位ネットワーク３に接続するようにしてもよい。情報系サービスとしては、制御対象の製造装置や設備からの情報を取得して、マクロ的またはミクロ的な分析などを行なう処理が想定される。
【００５１】
表示装置４００は、ユーザからの操作を受けて、制御装置１００に対してユーザ操作に応じたコマンドを出力するとともに、制御装置１００での演算結果などをグラフィカルに表示する。
【００５２】
ロボット５３２，５３４の駆動機器であるロボットコントローラ５３０、およびサーボモータ５２２の駆動機器であるサーボドライバ５２０には、ティーチングペンダント２００が接続可能となっている。ティーチングペンダント２００は、駆動機器に対して、制御対象の機械や設備の動作を教示するための装置である。具体的には、ティーチングペンダント２００は、視覚センサ５４０からの画像データや駆動機器からの制御対象の動作状態などを表示するとともに、ユーザからの操作に応答して、駆動機器へ各種の指令を与える。ユーザは、ティーチングペンダント２００の表示を参照しながらティーチングペンダント２００を操作することにより、キャリブレーションなどに必要な位置に制御対象を移動させることができる。
【００５３】
図１に示す構成例においては、ティーチングペンダント２００は、ロボット５３４を駆動するロボットコントローラ５３０に接続されている。ロボットコントローラ５３０とティーチングペンダント２００との通信にはシリアル通信が用いられる。なお、パラレル通信を用いてもよい。ティーチングペンダント２００とロボットコントローラ５３０との接続に用いられる通信線は、一例として送信用と受信用との２本である。
【００５４】
ティーチングペンダント２００は、ロボットコントローラ５３０に対してユーザ操作に応じた指令などを出力する。この指令には、ロボットコントローラ５３０の制御対象であるロボット５３４の目標位置を示す位置指令や、ロボット５３４の目標速度を示す速度指令などが含まれる。
【００５５】
本実施の形態に係る制御システム１において、ティーチングペンダント２００は、さらに、フィールドネットワーク２に接続される少なくとも１つの駆動機器に対して、フィールドネットワーク２を経由して指令を出力することができる。図１には、ティーチングペンダント２００の接続先である駆動機器（ロボットコントローラ５３０）以外の複数の駆動機器（ロボットコントローラ５３０およびサーボドライバ５２０）に向けて指令を出力する場合が例示されている。このような場合、ティーチングペンダント２００から出力された指令は、接続先の駆動機器（ロボットコントローラ５３０）を経由してフィールドネットワーク２に出力される。そして、当該指令は、フィールドネットワーク２を介して各駆動機器へ送信される。
【００５６】
すなわち、ティーチングペンダント２００は、フィールドネットワーク２を利用して複数の駆動機器（ロボットコントローラ５３０およびサーボドライバ５２０）に対して同時に指令を出力することができる。これによれば、ユーザは、単一のティーチングペンダント２００によって、フィールドネットワーク２に接続される複数の駆動機器に対して、対応する制御対象の動作を同時に教示することが可能となる。
【００５７】
ティーチングペンダント２００は、また、視覚センサ５４０の撮像部５４２で撮像された画像を、フィールドネットワーク２および、接続先の駆動機器（ロボットコントローラ５３０）を経由して受信する。ティーチングペンダント２００は、受信した画像を表示部に表示することができる。
【００５８】
図２は、図１に示したティーチングペンダント２００の構成例を示す模式図である。
図２を参照して、ティーチングペンダント２００は、操作部２０４および表示部２０３を有する。操作部２０４は、ユーザが操作する各種キーを含み、ユーザからティーチングペンダント２００に対する指示を含む入力を受け付ける。操作部２０４には、サーボモータ５２２およびロボット５３２，５３４を緊急停止できる非常停止ボタン２０５が含まれる。
【００５９】
表示部２０３は、例えば、ＬＣＤ（Liquid Crystal Display）または有機ＥＬ（Electro Luminescence）を含み、ユーザのキー操作に対応した画像を表示する。表示部２０３はさらに、視覚センサ５４０の撮像部５４２で撮像された画像を表示することができる。図２に示す構成例では、表示部２０３は、制御対象の機械または設備の動作状態を表示する領域ＲＥ１と、制御対象に対する指令を表示する領域ＲＥ２と、視覚センサ５４０の撮像部５４２によって撮像された画像を表示する領域ＲＥ３とを有する。
【００６０】
すなわち、ティーチングペンダント２００は、制御対象の機械または設備に対する指令を実行するとき、同一画面において、制御対象の挙動を表示し、制御対象に対する指令を表示するよう、表示部２０３を制御することができる。これにより、ユーザは、同一画面において、制御対象の挙動と、当該挙動を実現している指令とを確認することができる。ユーザは、さらに、操作部２０４を操作して制御対象の位置を登録することができる。ユーザは、また、操作部２０４を操作して、制御対象に対する指令を入力することにより、制御対象の動作や作業をプログラムすることができる。
【００６１】
ティーチングペンダント２００は、「教示装置」の一実施例に対応する。なお、教示装置としては、図１および図２に示す構成に限らず、任意の構成を採用できる。また、図１および図２では、駆動機器と教示装置とが分離した構成を例示するが、これに限らず両者を一体化してもよい。すなわち、駆動機器に教示装置が内蔵されていてもよい。
【００６２】
＜Ｂ．制御システムのハードウェア構成例＞
次に、本実施の形態に係る制御システム１のハードウェア構成例について説明する。
【００６３】
図３は、本実施の形態に係る制御システム１のハードウェア構成例を示すブロック図である。制御システム１は、制御装置１００と、フィールドネットワーク２を介して接続される複数のフィールド機器５００を備える。本実施の形態においては、フィールド機器５００として、リモートＩ／Ｏ装置５１０と、サーボドライバ５２０およびサーボモータ５２２と、ロボットコントローラ５３０およびロボット５３２，５３４と、視覚センサ５４０とを含む。
【００６４】
制御装置１００は、主たるコンポーネントとして、プロセッサ１０２と、メモリ１０４と、ストレージ１０６と、通信Ｉ／Ｆ（インターフェイス）１１０とを含む。これらのコンポーネントはバス１０９を介して接続されている。
【００６５】
プロセッサ１０２は、ストレージ１０６に格納されているシステムプログラム１０７およびユーザアプリケーションプログラム１０８をメモリ１０４に読み出して実行することで、各種処理を実現する。メモリ１０４は、ＤＲＡＭ（Dynamic Random Access Memory）やＳＲＡＭ（Static Random Access Memory）などの揮発性記憶装置からなる。ストレージ１０６は、ハードディスクやフラッシュメモリなどの不揮発性記憶装置からなる。ストレージ１０６には、制御装置１００の各部を制御するためのシステムプログラム１０７に加えて、制御対象などに応じて設計されるユーザアプリケーションプログラム１０８が格納される。通信Ｉ／Ｆ１１０は、他の装置から受信したデータを別の装置へ転送する送受信回路に相当する。通信Ｉ／Ｆ１１０は、フィールドネットワーク２に接続される通信ポートを含んでいる。
【００６６】
リモートＩ／Ｏ装置５１０は、通信制御部５１１と、通信Ｉ／Ｆ５１２とを含む。通信制御部５１１は、制御装置１００とリモートＩ／Ｏ装置５１０に接続される１または複数の装置との間で要求を仲介する。例えば、制御装置１００からの通信要求に応答して、１または複数の装置に対して、出力データの送信を要求する。
【００６７】
サーボドライバ５２０は、サーボ制御部５２５と、通信Ｉ／Ｆ５２６とを含む。サーボ制御部５２５は、制御装置１００またはティーチングペンダント２００からの指令に基づいて、対応するサーボモータ５２２に対して出力するコマンドを生成し、生成したコマンドに従って、対応するサーボモータ５２２を制御する。サーボモータ５２２の回転軸にはエンコーダ（図示せず）が設けられている。当該エンコーダは、サーボモータ５２２の位置（回転角度）、回転速度、累積回転数などをサーボ制御部５２５にフィードバックする。サーボ制御部５２５は、サーボモータ５２２の目標位置および目標回転速度などを送信するインターフェイスと、サーボモータ５２２の現在位置および現在の回転速度などを受信するインターフェイスとを有している。
【００６８】
通信Ｉ／Ｆ５２６は、他の装置から受信したデータを別の装置へ転送する送受信回路に相当する。通信Ｉ／Ｆ５２６は、後述するように、フィールドネットワーク２に接続される通信ポートを含んでいる。
【００６９】
ロボットコントローラ５３０は、ロボット制御部５３５と、通信Ｉ／Ｆ５３６とを含む。ロボット制御部５３５は、制御装置１００またはティーチングペンダント２００からの指令に基づいて、対応するロボットに対して出力するコマンドを生成し、生成したコマンドに従って、対応するロボットを制御する。具体的には、ロボット制御部５３５には、１または複数のサーボドライバが内蔵されており、各サーボドライバは、対応するサーボモータを制御する。サーボモータの回転軸にはエンコーダ（図示せず）が設けられている。当該エンコーダは、サーボモータの位置（回転角度）、サーボモータの回転速度、サーボモータの累積回転数などを、対応するサーボドライバにフィードバックする。なお、当該サーボドライバは、ロボットコントローラ５３０に必ずしも内蔵されている必要はなく、ロボットコントローラ５３０と別に設けられてもよい。
【００７０】
視覚センサ５４０は、撮像部５４２と、画像処理部５４４とを含む。撮像部５４２は、撮像範囲に存在する被写体を撮像する装置であり、主たる構成要素として、レンズや絞りなどの光学系と、ＣＣＤ（Charge Coupled Device）イメージセンサやＣＭＯＳ（Complementary Metal Oxide Semiconductor）イメージセンサなどの受光素子とを含む。撮像部５４２は、画像処理部５４４からの指令に従って撮像するとともに、その撮像によって得られた画像データを画像処理部５４４へ出力する。
【００７１】
画像処理部５４４は、撮像制御部５４６と、通信Ｉ／Ｆ５４８とを含む。これらのコンポーネントは図示しないバスを介して互いにデータ通信可能に接続されている。撮像制御部５４６は、撮像部５４２における撮像動作を制御する。撮像制御部５４６は、撮像部５４２に対して各種コマンドを送信するインターフェイスと、撮像部５４２からの画像データを受信するインターフェイスとを有している。通信Ｉ／Ｆ５４８は、制御装置１００との間で各種データを遣り取りする。
【００７２】
ティーチングペンダント２００は、制御部２０１と、通信Ｉ／Ｆ２０２と、表示部２０３と、操作部２０４とを含む。図２に示したように、操作部２０４は、ユーザからの所望の駆動機器に対する指令を含む入力を受け付ける。
【００７３】
制御部２０１は、ユーザが操作部２０４に対して入力した情報を受け付ける。所望の駆動機器に対する指令を受け付けると、制御部２０１は、当該指令に基づいて当該駆動機器を制御するための指令（位置指令および速度指令など）を生成し、その生成した指令を、接続先の駆動機器（ロボットコントローラ５３０）に対して出力する。接続先の駆動機器（ロボットコントローラ５３０）は、ティーチングペンダント２００で生成された指令を受け入れると、その指令を所望の駆動機器に向けて出力する。
【００７４】
制御部２０１はまた、接続先の駆動機器（ロボットコントローラ５３０）を介して視覚センサ５４０から出力される画像データを受け付けて、表示部２０３へ出力する。表示部２０３は、図２に示したように、制御部２０１から出力される画像データに従う画像を表示する。
【００７５】
通信Ｉ／Ｆ２０２は、ティーチングペンダント２００が接続先の駆動機器（ロボットコントローラ５３０）を含む外部の機器と通信するためのインターフェイスである。
【００７６】
＜Ｃ．制御システムにおけるデータ通信＞
次に、本実施の形態に係る制御システム１におけるデータ通信について説明する。
【００７７】
図４は、本実施の形態に係る制御システム１におけるデータ通信の第１の構成例を説明するための模式図である。
【００７８】
図４を参照して、制御装置１００および複数のフィールド機器５００は、フィールドネットワーク２を介してデイジーチェーンで接続されている。制御システム１におけるデータ通信において、制御装置１００は、ネットワーク内のデータ伝送を管理するマスターとして機能し、複数のフィールド機器５００の各々は、マスターからの指令に従ってデータ伝送を行なうスレーブとして機能する。以下の説明では、複数のフィールド機器５００をそれぞれ、スレーブ♯０１〜♯０５・・・とも称する。ただし、制御装置１００および複数のフィールド機器５００の接続態様は、デイジーチェーンに限定されず、ツリー接続またはスター接続のような他の接続態様であってもよい。
【００７９】
制御装置１００（マスター）における通信Ｉ／Ｆ１１０は、フィールドネットワーク２を介して、複数のフィールド機器５００とデータを送受信する通信回路に相当する。通信Ｉ／Ｆ１１０は、複数のフィールド機器５００が収集または生成したデータ（入力データ）を受信し、制御装置１００により取得または生成されたデータ（出力データ）を複数のフィールド機器５００へ送信する。
【００８０】
具体的には、通信Ｉ／Ｆ１１０は、フィールドネットワーク２と物理的に接続され、フィールドネットワーク２上に通信フレームを送信するとともに、フィールドネットワーク２上を伝送される通信フレームを受信してプロセッサ１０２（図２参照）へ出力する。通信Ｉ／Ｆ１１０は、フィールドネットワーク２を介したデータの遣り取りに加えて、フィールドネットワーク２上を転送される通信フレームの到着時間を保証するための時間管理および送受信タイミング管理などを行なう機能を有している。
【００８１】
フィールドネットワーク２上では、予め定められたデータ構造を有する通信フレームが所定周期で順次転送されてもよく、制御装置１００およびフィールド機器５００の各々は、順次転送される通信フレームに対して、指定されたデータを指令された領域に書込み、および、必要なデータを対応する領域から読出す。
【００８２】
より具体的には、通信Ｉ／Ｆ１１０は、通信ポート１１４と、送受信コントローラ１１６と、タイマ１１２とを含む。通信ポート１１４は、フィールドネットワーク２と物理的に接続される部位であり、送受信コントローラ１１６からの指令に従って電気信号を生成して、フィールドネットワーク２上に送信するとともに、フィールドネットワーク２上に生じる電気信号をデジタル信号に変換して送受信コントローラ１１６へ出力する。
【００８３】
送受信コントローラ１１６は、フィールドネットワーク２上を転送される通信フレームの生成および受信に関する処理を行なう。
【００８４】
タイマ１１２は、送受信コントローラ１１６から通信フレームなどの送信などを指示するタイミングの基準となるパルスを発生する。タイマ１１２は、リアルタイムクロックを採用することもできるが、本実施の形態においては、所定周期でカウントアップ（インクリメント）するフリーランカウンタが用いられる。フリーランカウンタが出力するカウンタ値をある時点からの経過時間として扱うことで、現在時刻を計算でき、これによってタイマとして機能させることができる。
【００８５】
フィールド機器５００（スレーブ）の各々において、通信Ｉ／Ｆ５０２は、フィールドネットワーク２を順次転送される通信フレームを処理する。すなわち、通信Ｉ／Ｆ５０２は、フィールドネットワーク２を介して何らかの通信フレームを受信すると、当該受信した通信フレームに対するデータ書込みおよび／またはデータ読出しを行なった後に、フィールドネットワーク２上において次に位置するフィールド機器５００へ当該通信フレームを送信する。通信Ｉ／Ｆ５０２は、このようなフレームリレーの機能を提供する。
【００８６】
より具体的には、通信Ｉ／Ｆ５０２は、通信ポート５０４，５０５と、送受信コントローラ５０６と、タイマ５０３とを含む。通信ポート５０４，５０５は、フィールドネットワーク２と物理的に接続される部位であり、送受信コントローラ５０６からの指令に従って、フィールドネットワーク２上を伝送される通信フレームの受信および再生などの処理を行なうことで、通信フレームの順次転送を実現する。
【００８７】
送受信コントローラ５０６は、フィールドネットワーク２上を転送される通信フレームに対するデータ書込みおよび／またはデータ読出しを行なう。
【００８８】
タイマ５０３は、送受信コントローラ５０６による指令出力やフィールド情報の収集などのタイミングの基準となるクロックを発生する。タイマ５０３としては、リアルタイムクロックを採用することもできるが、本実施の形態においては、所定周期でカウントアップ（インクリメント）するフリーランカウンタが用いられる。
【００８９】
複数のフィールド機器５００のうち、制御対象の駆動機器を構成するフィールド機器５００には、ティーチングペンダント２００が接続されている。図４の構成例では、「スレーブ♯０１」に相当するフィールド機器５００にティーチングペンダント２００が接続されている。スレーブ♯０１は、例えばロボットコントローラまたはサーボドライバである。スレーブ♯０１における通信Ｉ／Ｆ５０２は、通信ポート５０８をさらに含む。
【００９０】
ティーチングペンダント２００において、通信Ｉ／Ｆ２０２は、通信ポート２０６および送受信コントローラ２０８を含む。通信ポート２０２は、通信線５０９を介してスレーブ♯０１における通信ポート５０８と接続されている。通信線５０９は、シリアル通信方式およびパラレル通信方式のいずれであってもよく、また、バスおよびネットワークのいずれであってもよい。送受信コントローラ２０８は、通信線５０９を介してスレーブ♯０１との間のデータの遣り取りを制御する。
【００９１】
＜Ｄ．ティーチングペンダントの接続態様＞
次に、フィールドネットワーク２に対するティーチングペンダント２００の接続態様について説明する。ティーチングペンダント２００の接続態様は、図４に示す接続態様に限定されず、図５から図７に示すような接続態様を採用することができる。
【００９２】
図５は、本実施の形態に係る制御システム１におけるデータ通信の第２の構成例を説明するための模式図である。
【００９３】
図５に示す第２の構成例は、図４に示す第１の構成例に対して、ティーチングペンダント２００の接続態様が異なる。図５では、ティーチングペンダント２００は、制御装置１００および複数のフィールド機器５００に対して、フィールドネットワーク２を介してデイジーチェーンで接続されている。すなわち、ティーチングペンダント２００は、データ通信においてスレーブとして機能し得る。図５に示す例では、ティーチングペンダント２００は、スレーブ♯０４を構成する。
【００９４】
ティーチングペンダント２００は、通信Ｉ／Ｆ２０２として、通信ポート２０６，２０７と、送受信コントローラ２０８と、タイマ２０９とを含む。通信ポート２０６，２０７は、フィールドネットワーク２と物理的に接続される部位であり、送受信コントローラ２０８からの指令に従って、フィールドネットワーク２上を伝送される通信フレームの受信および再生などの処理を行なうことで、通信フレームの順次転送を実現する。
【００９５】
送受信コントローラ２０８は、フィールドネットワーク２上を転送される通信フレームに対するデータ書込みおよび／またはデータ読出しを行なう。
【００９６】
タイマ２０９は、送受信コントローラ２０８による指令出力やフィールド情報の収集などのタイミングの基準となるクロックを発生する。タイマ２０９は、タイマ１１２およびタイマ５０３と互いに時刻同期している。タイマ２０９としては、リアルタイムクロックを採用することもできるが、本実施の形態においては、所定周期でカウントアップ（インクリメント）するフリーランカウンタが用いられる。
【００９７】
図６は、本実施の形態に係る制御システム１におけるデータ通信の第３の構成例を説明するための模式図である。
【００９８】
図６に示す第３の構成例は、図４に示す第１の構成例に対して、ティーチングペンダント２００の接続態様が異なる。図６では、スイッチ６００が、制御装置１００および複数のフィールド機器５００に対して、フィールドネットワーク２を介してデイジーチェーンで接続されている。
【００９９】
スイッチ６００は、通信ポート６０１〜６０３と、送受信コントローラ６０４とを含む。通信ポート６０１，６０２は、フィールドネットワーク２と物理的に接続される。通信ポート６０４は、通信線６０５を介してティーチングペンダント２００の通信ポート２０６と接続される。通信線６０５は、シリアル通信方式およびパラレル通信方式のいずれであってもよく、また、バスおよびネットワークのいずれであってもよい。
【０１００】
スイッチ６００は、ティーチングペンダント２００と制御装置１００またはフィールド機器５００との間でデータの遣り取りが発生したとき、ティーチングペンダント２００をフィールドネットワーク２に接続させる。これにより、ティーチングペンダント２００は、データ通信においてスレーブ（図６ではスレーブ♯０４）として機能し得る。一方、ティーチングペンダント２００と制御装置１００またはフィールド機器５００との間でデータの遣り取りが無いときには、スイッチ６００は、ティーチングペンダント２００をフィールドネットワーク２から切り離すことができる。
【０１０１】
スイッチ６００における送受信コントローラ６０４は、フィールドネットワーク２上を転送される通信フレームに対するデータ書込みおよび／またはデータ読出しを行なう。通信ポート６０１，６０２は、送受信コントローラ６０４からの指令に従って、フィールドネットワーク２上を伝送される通信フレームの受信および再生などの処理を行なうことで、通信フレームの順次転送を実現する。
【０１０２】
図７は、本実施の形態に係る制御システム１におけるデータ通信の第４の構成例を説明するための模式図である。
【０１０３】
図７に示す第４の構成例は、図４に示す第１の構成例に対して、ティーチングペンダント２００の接続態様が異なる。図７では、複数のフィールド機器５００のうち、制御対象の駆動機器を構成するフィールド機器５００（例えばスレーブ♯０４）は、通信Ｉ／Ｆ５０２として、制御対象の機械または設備が接続される通信ポート５１４と、ティーチングペンダント２００が接続される通信ポート５０８と、通信ポート５０８，５１４と送受信コントローラ５０６との接続を切り替えるスイッチ５１５とを含む。例えば、通信ポート５１４には、ロボットのエンドエフェクタ５３７が接続される。エンドエフェクタは、例えば、ワークのピックアップツールであり、ロボットのアームに連結されている。
【０１０４】
スイッチ５１５は、ティーチングペンダント２００と制御装置１００またはフィールド機器５００との間でデータの遣り取りが発生していない場合、通信ポート５１４と送受信コントローラ５０６とを接続することにより、エンドエフェクタ５３７をスレーブ♯０４に接続させる。ティーチングペンダント２００と制御装置１００またはフィールド機器５００との間でデータの遣り取りが発生した場合、スイッチ５１５は、通信ポート５０８と送受信コントローラ５０６とを接続することにより、ティーチングペンダント２００をスレーブ♯０４に接続させる。
【０１０５】
＜Ｅ．通信フレームの例＞
次に、本実施の形態に係る制御システム１において用いられる通信フレームの一例について説明する。本実施の形態においては、実装例として、Ｉ／Ｏリフレッシュを行なうための通信フレームが用いられる。Ｉ／Ｏリフレッシュとは、制御装置１００が保持する入力データの値を対応するフィールド機器５００が収集した最新の値に更新する処理（入力リフレッシュ）と、制御装置１００で算出された出力データの値を対応するフィールド機器５００の出力値として反映する処理（出力リフレッシュ）とを包含する概念である。
【０１０６】
このような通信フレームとして、Ｉ／Ｏリフレッシュフレームが採用される。Ｉ／Ｏリフレッシュフレームは、入力リフレッシュに必要な入力データおよび出力データの両方を格納可能に構成される。なお、入力リフレッシュおよび出力リフレッシュをそれぞれ別々に実行するように実装してもよい。その場合には、入力データおよび出力データの一方のみをそれぞれ格納するように構成した通信フレームが採用される。
【０１０７】
図８は、本実施の形態に係る制御システム１において用いられるＩ／ＯリフレッシュフレームＦＬのデータ構造の一例を示す模式図である。図８を参照して、Ｉ／ＯリフレッシュフレームＦＬは、フレーム種別や宛先などを格納するためのヘッダ部と、データを格納する本体部とからなる。
【０１０８】
ヘッダ部に格納されるフレーム種別としては、通信フレームの種類を特定するための識別情報が用いられてもよく、例えば、ユニキャスト、マルチキャスト、ブロードキャストのいずれであるかを示す識別情報が用いられる。宛先としては、送信先のフィールド機器５００の識別情報などが用いられる。
【０１０９】
本体部には、入力データおよび出力データを格納するための領域が複数規定されており、それぞれの領域には、Ｉ／ＯリフレッシュフレームＦＬの転送経路に存在するフィールド機器５００（スレーブ♯０１〜♯０５）の全部または一部にそれぞれ対応付けられている。
【０１１０】
フィールド機器５００は、Ｉ／Ｏリフレッシュフレームを受信すると、自機器に割当てられている領域に格納されている出力データを読出すとともに、自機器が収集または生成した入力データを自機器に割当てられている領域に書込む。このような出力データの読出しおよび入力データの書込みが各フィールド機器において実行されることで、Ｉ／Ｏリフレッシュを実現できる。
【０１１１】
＜Ｆ．駆動機器への指令の送信＞
次に、本実施の形態に係る制御システム１において駆動機器に対して、ティーチングペンダント２００からの指令を送信するための必要な処理について説明する。
【０１１２】
以下に説明するように、ティーチングペンダント２００からの指令は、図８に示した通信フレームＦＬを利用して送信することができる。
【０１１３】
図９は、本実施の形態に係る制御システムにおいて、ティーチングペンダント２００が接続される駆動機器から他の駆動機器に指令を出力するために必要な処理を説明するための図である。
【０１１４】
図９を参照して、ティーチングペンダント２００が接続される駆動機器（スレーブ♯０１とも称する。）から他の駆動機器（スレーブ♯０２および♯０３とも称する。）に対して指令を出力する際の処理について説明する。
【０１１５】
まず、ティーチングペンダント２００においては、スレーブ♯０２に向けられる指令（以下、「指令♯０２」とも称する。）およびスレーブ♯０３に向けられる指令（以下、「指令♯０３」とも称する。）が生成され、その生成された指令♯０２、♯０３がスレーブ♯０１に送られる。
【０１１６】
スレーブ♯０１においては、フィールドネットワーク２上を順次転送される通信フレームＦＬの到着前に、制御装置１００へ送信すべき入力データの収集などを含む入力データ送信処理を実行する。この入力データ送信処理において、スレーブ♯０１は、ティーチングペンダント２００から他の駆動機器へ送信すべき指令（指令♯０２、♯０３）を収集する。
【０１１７】
次に、スレーブ♯０１は、通信フレームＦＬを受信すると、当該受信した通信フレームＦＬの自機器に割当てられている領域から自機器宛ての出力データを読出す。続いて、スレーブ♯０１は、該自機器に割当てられている領域に対して、入力データおよび指令♯０２、♯０３を書込む（図中の（１）に相当）。
【０１１８】
通信フレームＦＬに書込まれた指令♯０２，♯０３は、次回のＩ／Ｏリフレッシュ処理の実行タイミングにおいて、制御装置１００により収集されることとなる（図中の（２）に相当）。
【０１１９】
制御装置１００においては、対象の駆動機器へ向けられる出力データが生成され、その生成されたデータを通信フレームＦＬに格納して送信するためのパック処理が実行される。このパック処理では、収集した指令が、対象の駆動機器に割当てられてい領域に格納される。図９の例では、スレーブ♯０２に向けられる指令（指令♯０２）が、通信フレームＦＬのスレーブ＃０２に割当てられている領域に格納される。また、スレーブ♯０３に向けられる指令（指令♯０３）が、通信フレームＦＬのスレーブ♯０３に割当てられている領域に格納される（図中の（３）に相当）。
【０１２０】
フィールド機器５００からの出力信号を定義する出力データについては、対象の出力データが格納された通信フレームＦＬがフィールドネットワーク２を介して対象のフィールド機器５００へ伝送される。
【０１２１】
対象のフィールド機器５００においては、通信フレームＦＬを受信すると、受信した通信フレームＦＬから必要な出力データを読出すなどの処理が実行されるとともに、読出された出力データが現実の信号として外部出力される。このとき、スレーブ♯０２においては、読出された出力データに指令♯０２が含まれており、スレーブ♯０３においては、読出された出力データに指令♯０３が含まれている（図中の（４）に相当）。スレーブ♯０２および♯０３の各々は、読出した出力データに対応する信号を外部出力する処理を含む出力データ受信処理を実行する。
【０１２２】
スレーブ♯０２、♯０３の各々は、通信フレームＦＬの自機器に割当てられている領域から自機器宛ての出力データを読出した後、該自機器に割当てられている領域に、入力データを書込む（図中の（５）に相当）。
【０１２３】
＜Ｇ．制御システムにおける各フィールド機器の出力タイミング同期機能＞
次に、本実施の形態に係る制御システム１が提供する出力タイミング同期機能について説明する。
【０１２４】
図１０は、本実施の形態に係る制御システム１が提供する出力タイミング同期機能について説明するための模式図である。
【０１２５】
図１０を参照して、制御システム１は、多関節ロボット５３４と、ワークＷを保持するＸＹステージ７５０とを含む。図１２には、多関節ロボット５３４の先端に把持された部品をワークＷに設けられた孔に挿入するようなアプリケーション例を示す。
【０１２６】
多関節ロボット５３４はロボットコントローラ５３０によって駆動され、ＸＹステージ７５０はサーボドライバ５２０Ａ，５２０Ｂによって駆動される。サーボドライバ５２０Ａは、ＸＹステージ７５０のＸ軸を駆動するサーボモータ５２２Ａを制御する。サーボドライバ５２０Ｂは、ＸＹステージ７５０のＹ軸を駆動するサーボモータ５２２Ｂを制御する。
【０１２７】
多関節ロボット５３４およびＸＹステージ７５０を連係させる必要があるので、ロボットコントローラ５３０およびサーボドライバ５２０Ａ，５２０Ｂは、いずれも制御装置１００と接続されている。制御装置１００は、ロボットコントローラ５３０およびサーボドライバ５２０Ａ，５２０Ｂに対して指令を与える。
【０１２８】
ロボットコントローラ５３０には、ティーチングペンダント２００が接続されている。ティーチングペンダント２００は、ロボットコントローラ５３０およびサーボドライバ５２０Ａ，５２０Ｂに対して指令を与えることができる。
【０１２９】
ロボットコントローラ５３０は、ティーチングペンダント２００から与えられた指令を実行することで、多関節ロボット５３４に指令に従った挙動を行なわせる。サーボドライバ５２０Ａ，５２０Ｂは、ティーチングペンダント２００から与えられた指令を実行することで、ＸＹステージ７５０上に配置されたワークＷを適切な位置に位置決めする。
【０１３０】
ティーチングペンダント２００を用いて、多関節ロボット５３４とＸＹステージ７５０とを連係して作動させるためには、ロボットコントローラ５３０とサーボドライバ５２０Ａ，５２０Ｂとの間で制御タイミングを同期させる必要がある。本実施の形態に係る制御システム１は、ロボットコントローラ５３０が多関節ロボット５３４に対する指令を出力するタイミングと、サーボドライバ５２０Ａ，５２０Ｂがサーボモータ５２２Ａ，５２２Ｂに対する指令を出力するタイミングとを同期させる出力タイミング同期機能を有している。これにより、多関節ロボット５３４の動作とＸＹステージ７５０の動作とを同期させることができる。
【０１３１】
（ｇ１：出力タイミング同期機能に係る処理（その１））
図１１は、本実施の形態に係る制御システム１が提供する出力タイミング同期機能に係る各部の処理を示すタイミングチャートである。図１０には、主として、出力リフレッシュに関する処理を示す。
【０１３２】
図１１を参照して、制御装置１００は、Ｉ／Ｏリフレッシュ処理の実行によって生成された出力データを送信するための前処理、およびフィールドネットワーク２により送信される通信フレームに出力データを格納するための前処理（パック処理）を順次実行する。パック処理の実行完了のタイミングで、Ｉ／Ｏリフレッシュフレームである通信フレームがフィールドネットワーク２へ送出される。通信フレームが送信されたタイミングを「起動基準時刻Ｔｔ」と称する。通信フレームはフィールドネットワーク２上を順次転送される。
【０１３３】
フィールドネットワーク２に接続されているフィールド機器５００（ロボットコントローラ５３０およびサーボドライバ５２０Ａ，５２０Ｂを含む）の各々は、フィールドネットワーク２上を順次転送される通信フレームの到着前に、制御装置１００へ送信すべき入力データの収集などを含む入力データ送信処理を予め実行する。
【０１３４】
ロボットコントローラ５３０は、入力データ送信処理として、制御装置１００へ送信すべき入力データの収集とともに、ティーチングペンダント２００が受け付けた指令の収集を行なう。そして、ロボットコントローラ５３０は、通信フレームが到着すると、当該受信した通信フレームから自機器宛ての出力データを読出すとともに、予め用意していた入力データおよび指令を当該受信した通信フレームに書込む。ロボットコントローラ５３０は、読出した出力データに対応する信号を外部出力する処理を含む出力データ受信処理を実行する。
【０１３５】
サーボドライバ５２０Ａ，５２０Ｂの各々は、フィールドネットワーク２上を順次転送される通信フレームを受信すると、当該受信した通信フレームから自機器宛ての出力データを読出す。そして、サーボドライバ５２０Ａ，５２０Ｂの各々は、読出した出力データに対応する信号を外部出力する出力データ受信処理を実行する。
【０１３６】
図１１に示すタイムチャートにおいて、ロボットコントローラ５３０およびサーボドライバ５２０Ａ，５２０Ｂの各々から出力データが出力可能になるタイミングは、互いに異なる。そこで、本実施の形態においては、ロボットコントローラ５３０およびサーボドライバ５２０Ａ，５２０Ｂの各々について、制御装置１００において通信フレームを送出する指定がなされてから、当該通信フレームに含まれる出力データを出力可能な状態になるまでに要する遅れ時間がそれぞれ算出され、算出された遅れ時間のうち最大のもの（最大遅れ時間）が決定される。その上で、最大遅れ時間に対応する時刻を、制御システム１全体についての出力同期タイミングＴｏｕｔとして決定する。
【０１３７】
このように、本実施の形態においては、制御装置１００から出力データの送信が要求された後、各フィールド機器５００にて当該出力データに対応する信号が出力可能になるまでに要する最大遅れ時間を算出し、システム全体としての最大遅れ時間を考慮した上で、出力同期タイミングを決定する。そして、各フィールド機器５００が互いに保持する互いに同期されたタイマに対して、出力同期タイミングに応じたタイミングを設定することで、各フィールド機器５００から出力データに対応する信号が一斉に外部出力される。
【０１３８】
具体的には、各フィールド機器５００の遅れ時間は、制御装置１００において出力データの送信指令が与えられてからフィールドネットワーク２上に当該出力データを含む通信フレームが送出されるまでに要する時間、フィールドネットワーク２上に送出された出力データを含む通信フレームが対象のフィールド機器５００まで転送されるのに要する時間、および、各フィールド機器５００が出力データを含む通信フレームを受信してから当該受信データに対応する信号がフィールド機器５００から出力可能になるまでに要する時間を含む。
【０１３９】
制御システム１に含まれるフィールド機器５００の各々について、上述の時間要素の合計（フィールド機器５００毎の遅れ時間）がそれぞれ算出される。そして、これらの遅れ時間のうち最大のものが最大遅れ時間Ｄｍａｘとして決定される。
【０１４０】
出力同期タイミングＴｏｕｔの設定においては、制御装置１００およびフィールド機器５００の各々が保持するタイマの間で同期をとる。例えば、制御装置１００のタイマ１１２がグランドマスタクロックとして機能し、フィールド機器５００のタイマ５０３を、このグランドマスタクロックと同期させる。これにより、制御装置１００およびフィールド機器５００は、共通のクロックに従って各種制御およびアクションを実行することができる。このような環境下において、所定周期毎に設定される起動基準時刻Ｔｔおよび、起動基準時刻Ｔｔを基準として設定される出力同期タイミングＴｏｕｔが各フィールド機器５００に対して指定され、各フィールド機器５００は指定されたタイミングで指定された処理を実行する。
【０１４１】
図１１の構成例においては、制御装置１００に対しては、パック処理の実行開始をトリガする開始タイミングＴＲ１が設定される。また、制御装置１００に接続されるロボットコントローラ５３０およびサーボドライバ５２０Ａ，５２０Ｂの各々に対しては、出力同期タイミングＴｏｕｔが設定される。このように、ロボットコントローラ５３０およびサーボドライバ５２０Ａ，５２０Ｂの各々において、受信された出力データに対応する信号を外部出力または更新するタイミングが指示される。
【０１４２】
上述したような出力同期タイミングの算出および設定については、任意の１または複数の演算主体によって実現されてもよい。典型的には、出力同期タイミングの算出および設定を行なうためのロジックを制御装置１００内に実装してもよいし、あるいは、出力同期タイミングの算出および設定を行なうための機能をティーチングペンダント２００に実装してもよい。
【０１４３】
いずれの実装においても、制御装置１００がロボットコントローラ５３０およびサーボドライバ５２０Ａ，５２０Ｂの各々へ、出力データに対応する信号を外部出力または更新すべきタイミング（出力同期タイミングＴｏｕｔ）を指示する。出力同期タイミングＴｏｕｔは、制御装置１００のグランドマスタクロックであるタイマ１１２が管理する時刻（例えば、起動基準時刻Ｔｔ）を基準に設定される。これは、制御システム１に含まれるフィールド機器５００の各々がグランドマスタクロックであるタイマ１１２と時刻同期を行なっているからである。
【０１４４】
図１２は、本実施の形態に係る制御システム１における出力タイミング同期機能に係る処理手順を示すフローチャートである。図１２には、典型例として、制御装置１００のプロセッサ１０２がシステムプログラム１０７を実行することで、各ステップが実施される例について説明する。但し、以下に示す各ステップの全部または一部を他のユニットまたはティーチングペンダント２００などで実行するようにしてもよい。
【０１４５】
図１２を参照して、プロセッサ１０２は、メモリ１０４に格納されているコンフィギュレーションなどを参照するなどして、制御装置１００に接続されたフィールド機器毎の遅れ時間をそれぞれ算出し（ステップＳ１００）、算出された遅れ時間のうちの最大のものを最大遅れ時間Ｄｍａｘとして決定する（ステップＳ１０１）。
【０１４６】
プロセッサ１０２は、ステップＳ１０１において決定された最大遅れ時間Ｄｍａｘに基づいて、制御システム１全体における出力同期タイミングＴｏｕｔを決定する（ステップＳ１０２）。
【０１４７】
プロセッサ１０２は、ステップＳ１０２において決定された出力同期タイミングＴｏｕｔを各フィールド機器５００へ通知する（ステップＳ１０３）。各フィールド機器５００は、制御装置１００からの通知に従って、必要なタイミングを設定する。
【０１４８】
以上の処理により、出力タイミング同期機能に必要な設定は完了する。制御システム１を構成する各フィールド機器５００は、設定されたタイミングに従って、処理を繰返し実行する。
【０１４９】
（ｇ２：出力タイミング同期機能に係る処理（その２））
図１１および図１２では、Ｉ／Ｏリフレッシュ処理が実行される期間において、Ｉ／Ｏリフレッシュフレームである通信フレームを利用して、ティーチングペンダント２００からの指令を対象のフィールド機器５００へ送信する構成について説明したが、Ｉ／Ｏリフレッシュ処理が実行される期間以外の期間に、メッセージ通信を用いてティーチングペンダント２００からの指令を対象のフィールド機器５００に送信するようにしてもよい。
【０１５０】
上述したように、本実施の形態に係る制御システム１においては、制御装置１００とフィールド機器５００とは、各々に内蔵されるタイマが互いに同期した状態に維持されている。そのため、ティーチングペンダント２００から指令を受けた複数の駆動機器の各々は、互いに同期したタイマに基づいて、出力タイミングを同期させることができる。
【０１５１】
図１３には、所定周期毎に繰返し実行されるＩ／Ｏリフレッシュに加えて、ティーチングペンダント２００からの指令がメッセージ通信される例を示す。
【０１５２】
具体的には、図１３（Ａ）に示すように、フィールドネットワーク２を介して、所定のシステム周期Ｔｓ毎にＩ／Ｏリフレッシュを行なうための通信フレームＦＬが送出される。典型的には、通信フレームＦＬは、制御装置１００から送出されて、隣接するフィールド機器５００に対して順次転送される。このような所定周期毎に繰返し伝送される通信フレームＦＬが転送されていない期間にて、任意のメッセージ通信でデータを送信することもできる。このメッセージフレームＭＳＧＦＬについては、ティーチングペンダント２００から対象の駆動機器に指令が伝送される場合、ティーチングペンダント２００が接続される駆動機器から対象の駆動機器に指令が伝送される場合、制御装置１００から対象の駆動機器に指令が伝送される場合がある。
【０１５３】
ただし、通信フレームＦＬとメッセージフレームＭＳＧＦＬとは同時に送出することができないので、メッセージフレームＭＳＧＦＬの送信要求が発行されたとしても、Ｉ／Ｏリフレッシュ中であれば、指定されたメッセージフレームＭＳＧＦＬの生成および送出は遅れることになる。
【０１５４】
例えば、図１３（Ｂ）に示すように、Ｉ／Ｏリフレッシュを行なうための通信フレームＦＬの伝送中に、メッセージ送信要求が与えられたとする。この場合、通信フレームＦＬの伝送完了後に、メッセージフレームＭＳＧＦＬが生成および送出されることになる。図１５（Ｂ）に示す例では、メッセージフレームＭＳＧＦＬは、メッセージ送信要求が与えられてから遅延時間Ｄ１後に送出が開始される。
【０１５５】
また、図１３（Ｃ）に示すように、Ｉ／Ｏリフレッシュを行なうための通信フレームＦＬの伝送直前に、メッセージ送信要求が与えられたとすると、この場合、通信フレームＦＬの伝送期間が迫っているので、メッセージフレームＭＳＧＦＬの生成および送出は妨げられ、後続の通信フレームＦＬの伝送完了後に、メッセージフレームＭＳＧＦＬが生成および送出されることになる。図１５（Ｃ）に示す例では、メッセージフレームＭＳＧＦＬは、メッセージ送信要求が与えられてから遅延時間Ｄ２後に送出が開始される。
【０１５６】
このように、Ｉ／Ｏリフレッシュを行なうための通信フレームＦＬが周期的に伝送されているフィールドネットワーク２においては、メッセージ送信要求が与えられてから、実際にメッセージフレームＭＳＧＦＬが送出されるまでには、ある程度の伝送遅延が発生することになる。さらに、多数のメッセージ送信要求が発行されているような場合には、送信要求の数などに応じて、メッセージフレームＭＳＧＦＬの送信遅延が発生する。
【０１５７】
したがって、ティーチングペンダント２００から複数の駆動機器の各々に対して、メッセージ通信を用いて指令を送信する場合、複数の駆動機器の各々から出力データが出力可能になるタイミングが互いに異なることが懸念される。そこで、各駆動機器へ送信するメッセージフレームＭＳＧＦＬに対して、ティーチングペンダント２００からの指令とともに、出力データに対応する信号を外部出力または更新すべきタイミング（出力同期タイミング）を書込むことにより、各駆動機器に対して出力同期タイミングを通知する。なお、出力同期タイミングは、カウント値またはクロック値の形で通知されてもよい。
【０１５８】
図１４は、メッセージ通信を用いた、出力タイミング同期機能について説明するための模式図である。図１４には、ティーチングペンダント２００が接続されたロボットコントローラ５３０からサーボドライバ５２０Ａ，５２０Ｂに対して、メッセージ通信を用いて指令を送信する例を示す。
【０１５９】
図１４を参照して、マスターとして機能する制御装置１００と、フィールドネットワーク２を介して制御装置１００に接続されるサーボドライバ５２０Ａ，５２０Ｂおよびロボットコントローラ５３０との各々は、互いに同期したタイマを有している。具体的には、制御装置１００は、グランドマスタクロックであるタイマ１１２を有しており、サーボドライバ５２０Ａ，５２０Ｂおよびロボットコントローラ５３０の各々は、タイマ１１２と同期するタイマ５０３を有している。
【０１６０】
サーボドライバ５２０Ａ，５２０Ｂおよびロボットコントローラ５３０の各々の通信Ｉ／Ｆは、タイマ５０３が示すタイミングを基準としてデータの送受信を管理する。図１４には、メッセージ通信を用いて、ティーチングペンダント２００からの指令が、ロボットコントローラ５３０を経由してサーボドライバ５２０Ａ，５２０Ｂに送信される場合を示す。この場合、ロボットコントローラ５３０は、サーボドライバ５２０Ａ，５２０Ｂに対して、出力同期タイミングを通知する。サーボドライバ５２０Ａ，５２０Ｂの各々は、通知された出力同期タイミングに従って、受信された出力データに対応する信号を外部出力または更新する。
【０１６１】
＜Ｈ．制御システムの監視機能＞
次に、本実施の形態に係る制御システム１が提供する、ティーチングペンダント２００を利用した監視機能について説明する。
【０１６２】
本実施の形態に係る制御システム１におけるデータ通信において、視覚センサ５４０は、通信フレームを受信すると、撮像部５４２で撮像された画像データを当該受信した通信フレームに書込む。例えば、図４および図７に示す構成例においては、視覚センサ５４０は、通信フレームを受信すると、ティーチングペンダント２００が接続されるフィールド機器５００に割当てられている領域に撮像部５４２から収集した画像データを書込む。当該フィールド機器５００は、通信フレームを受信すると、自機器に割当てられている領域に格納されている画像データを読出し、読出した画像データをティーチングペンダント２００へ送信する。ティーチングペンダント２００は、受信した画像データを表示部２０３に表示する。
【０１６３】
あるいは、図５および図６に示す構成例においては、視覚センサ５４０は、通信フレームを受信すると、ティーチングペンダント２００に割当てられている領域に撮像部５４２から収集した画像データを書込む。ティーチングペンダント２００は、通信フレームを受信すると、自機器に割当てられている領域に格納されている画像データを読出し、読出した画像データを表示部２０３に表示する。
【０１６４】
このように、ティーチングペンダント２００は、フィールドネットワーク２を介して視覚センサ５４０からの画像データを受信し、受信した画像データを表示部２０３に表示させる。これにより、ユーザは、制御対象の機械または設備の挙動を監視しながら、制御対象の駆動機器に対して指令を与えることができる。例えば、ステージ上のワークを掴み移動させるロボットにおいては、ユーザがロボットのエンドエフェクタの挙動を目視できない場合がある。このような場合、視覚センサ５４０を用いてエンドエフェクタの挙動を撮像することによって、ユーザは、ティーチングペンダント２００の表示部２０３に表示される、エンドエフェクタの挙動を確認しながら、ロボットを駆動するロボットコントローラに対して指令を与えることができる。
【０１６５】
但し、画像データを受信する駆動機器またはティーチングペンダント２００の受信バッファなどはデバイス固有の性能に影響されるので、１回に送信できるデータサイズが制限されることもある。このような場合、送信される画像データのデータサイズの送信単位を小さくする。すなわち、１回に送信する画像データのサイズを小さくするとともに、より多くの送信回数に分けてデータ全体を送信する。このように、受信側の駆動機器またはティーチングペンダント２００の受信可能な最大サイズが小さい場合には、送信サイズの送信単位を小さくする。
【０１６６】
＜Ｉ．制御システムのセーフティ機能＞
次に、本実施の形態に係る制御システム１が提供するセーフティ機能について説明する。
【０１６７】
例えば、上述した視覚センサ５４０を用いた監視動作の実行中において制御対象の挙動に異常が検出された場合、ユーザは、ティーチングペンダント２００に設けられた非常停止ボタン２０５（図２参照）を操作することにより、制御対象の駆動機器を緊急停止させることができる。
【０１６８】
図１５は、本実施の形態に係る制御システム１における緊急停止処理の一例を示す模式図である。図１５に示す例では、ティーチングペンダント２００の非常停止ボタン２０５が操作されたとき、制御システム１に含まれる複数の駆動機器に向けて停止指令が発せられる。これにより、複数の駆動機器全てを停止させる。
【０１６９】
図１６は、本実施の形態に係る制御システム１における緊急停止処理の別の例を示す模式図である。図１６に示す例では、ティーチングペンダント２００の非常停止ボタン２０５が操作されたときに、特定の駆動機器に向けて停止指令が発せられる。これにより、特定の駆動機器のみを停止させる。特定の駆動機器は、１または複数の駆動機器で構成されており、予めユーザがティーチングペンダント２００に対して設定しておくことができる。あるいは、図１０に示した多関節ロボット５３４およびステージ７５０（サーボモータ５２２Ａ，５２２Ｂ）のように、制御タイミングが互いに同期する複数の駆動機器を、特定の駆動機器に設定することができる。
【０１７０】
このように、本実施の形態に係る制御システム１においては、ティーチングペンダント２００における非常停止ボタン２０５が操作された場合、フィールドネットワーク２を利用して、複数の駆動機器に向けて停止指令を発することができる。したがって、異常検出時において、速やかに複数の駆動機器を停止させることができる。
【０１７１】
また、複数の駆動機器のうちの特定の駆動機器に向けて停止指令を発する構成とすれば、異常による弊害が生じる虞のある駆動機器のみを停止させることで、製造設備や生産ラインへの影響を抑えることができる。
【０１７２】
＜Ｊ．制御システムの動作確認機能＞
次に、本実施の形態に係る制御システム１が提供する、ティーチングペンダント２００を利用した動作確認機能について説明する。
【０１７３】
図１７は、本実施の形態に係る制御システム１における動作確認処理の一例を示す模式図である。図１７に示す例では、ティーチングペンダント２００は、ロボットコントローラ５３０に対してユーザ操作に応じた指令を出力する。この指令には、ロボット５３３の目標位置を示す位置指令や、ロボット５３３の目標速度を示す速度指令などが含まれる。
【０１７４】
ロボット５３３の動作中、ティーチングペンダント２００は、フィールドネットワーク２に接続されたセンサデバイス５５０から出力されるＯＮ／ＯＦＦ値を受信する。センサデバイス５５０は、制御対象の機械または設備の状態（温度、変位、圧力など）を検知するためのデバイスであり、例えば、温度センサ、変位センサ、圧力センサなどが含まれる。ティーチングペンダント２００は、センサデバイス５５０のＯＮ／ＯＦＦ値を表示部２０３に表示させる。
【０１７５】
例えば、ロボット３３が所定位置まで移動したときに、センサデバイス５５０がＯＮ値を出力するように、製造設備を設計する場面において、ユーザは、センサデバイス５５０の出力値をティーチングペンダント２００の表示部２０３で監視しながら、操作部２０４を操作してロボット５３３を移動させる。ユーザは、ロボット５３３を所定位置まで移動させたときに、センサデバイス５５０が正しくＯＮ値を出力することを確認することができる。一方、センサデバイス５５０がＯＮ値を出力しなければ、ユーザは、ロボット５３３が所定位置まで移動していない可能性、もしくは、センサデバイス５５０が正常に動作していない可能性があると判断することができる。
【０１７６】
このように、ティーチングペンダント２００はフィールドネットワーク２を介してセンサデバイス５５０の出力を取得することができるため、ユーザは、ティーチングペンダント２００を用いて、制御対象およびセンサデバイス５５０の動作を確認することができる。
【０１７７】
＜Ｋ．制御システムの衝突回避機能＞
次に、本実施の形態に係る制御システム１が提供する、複数の制御対象間の衝突回避機能について説明する。
【０１７８】
図１８は、本実施の形態に係る制御システム１が提供する衝突回避機能について説明するための模式図である。図１８は、本実施の形態に係る制御システム１の全体構成例を示す模式図である。
【０１７９】
図１８に示す構成例においては、フィールド機器５００は、リモートＩ／Ｏ装置５１０と、サーボドライバ５２０およびサーボモータ５２２と、ロボットコントローラ５３０Ａおよびロボット５３２と、ロボットコントローラ５３０Ｂおよびロボット５３３と、ロボットコントローラ５３０Ｃおよびロボット５３４とを含む。
【０１８０】
ロボットコントローラ５３０Ａ〜５３０Ｃの各々は、制御装置１００からの位置指令などに従って、軌道計算および各軸の角度計算などと行なうとともに、計算結果に従って、対応するロボットを構成するサーボモータなどを駆動する。図１８に示す構成例において、ロボット５３２はパラレルロボットであり、ロボット５３３はスカラロボットであり、ロボット５３４は多関節ロボットである。
【０１８１】
フィールドネットワーク２には、ティーチングペンダント２００が接続されている。ティーチングペンダント２００は、フィールドネットワーク２を介してフィールド機器５００との間でデータを遣り取りする。
【０１８２】
ユーザは、ティーチングペンダント２００の操作部２０４を操作して、動作対象のフィールド機器５００を指定することができる。ユーザは、さらに、ティーチングペンダント２００の操作部２０４を操作して、回避対象のフィールド機器５００を指定することができる。動作対象のフィールド機器５００とは、ユーザが動作させたい機械または設備および、それを駆動する駆動機器に相当する。回避対象のフィールド機器５００とは、動作対象の機械または設備を目標位置まで移動させた場合に、動作対象の機械または設備と衝突する可能性がある機械または設備、およびそれを駆動する駆動機器に相当する。
【０１８３】
図１８に示す構成例においては、ロボット５３３およびロボットコントローラ５３０Ｂが動作対象のフィールド機器５００に指定されている。ロボット５３２およびロボットコントローラ５３０Ａと、ロボット５３４およびロボットコントローラ５３０Ｃとが回避対象のフィールド機器５００に指定されている。
【０１８４】
なお、回避対象のフィールド機器５００の指定については、ユーザがティーチングペンダント２００に対して、動作対象のフィールド機器５００を入力するとともに、回避対象のフィールド機器５００を入力する構成について例示したが、ティーチングペンダント２００が、ユーザが指定した動作対象のフィールド機器５００に基づいて、自動的に回避対象のフィールド機器５００を指定する構成としてもよい。例えば、ティーチングペンダント２００は、予め登録されている制御システム１の構成情報から、ロボット５３３との間で動作タイミングを同期させる同期制御の対象となるロボット（またはサーボモータ）およびその駆動機器を、回避対象のフィールド機器５００に指定することができる。
【０１８５】
図１８を参照して、動作対象に指定されたロボットコントローラ５３０Ｂは、ティーチングペンダント２００から、ロボット５３３の目標位置を示す位置指令を受信する。ロボット５３３の目標位置は、ロボット５３３が有する複数のアームにそれぞれ対応付けられた複数の軸の各々の目標位置を表す。各軸の目標位置からロボット５３３の位置が決まる。
【０１８６】
ロボット５３３の複数のアームの各々は、サーボモータによって駆動される。ロボットコントローラ５３０Ｂは、ティーチングペンダント２００から位置指令を受信すると、受信した位置指令が示す目標位置に基づいて各サーボモータの回転量を決定し、決定した回転量を指定する指定値を各サーボモータに対して出力する。
【０１８７】
ロボットコントローラ５３０Ｂは、さらに、回避対象に指定されたロボットコントローラ５３０Ａからロボット５３２の位置を示す位置情報と受信するとともに、ロボットコントローラ５３０Ｃからロボット５３４の位置を示す位置情報を受信する。各ロボットの位置情報は、各ロボットが有する複数のアームにそれぞれ対応付けられた複数の軸の各々の現在位置を表す。ロボットコントローラ５３０Ｂは、例えば、所定のシステム周期Ｔｓ毎に繰返し伝送される通信フレームから、回避対象のロボットコントローラに割当てられた領域に格納されている入力データを読出すことによって、回避対象のロボットの位置情報を取得することができる。
【０１８８】
次に、ロボットコントローラ５３０Ｂは、動作対象のロボット５３３の目標位置および現在位置と、回避対象のロボット５３２，５３４の現在位置とに基づいて、動作対象のロボット５３３と回避対象のロボット５３２，５３４の各々との間の衝突可能性を判定する。
【０１８９】
具体的には、ロボットコントローラ５３０Ｂは、動作対象のロボット５３３と回避対象のロボット５３２，５３４の各々との相対的な位置関係が、特定位置関係にあるか否かを判定する。この特定位置関係は、動作対象のロボットの目標位置と、回避対象のロボットの現在位置との間の距離が、閾値以下であることを含む。また、動作対象のロボットの現在位置と目標位置とを結ぶ軌跡と、回避対象のロボットの現在位置との最短距離が、閾値以下であることを含む。なお、特定位置関係は、これらの位置関係に限定されない。
【０１９０】
動作対象のロボット５３３と回避対象のロボット５３２，５３４の各々との相対的な位置関係のいずれか特定位置関係にある場合、ロボットコントローラ５３０Ｂは、動作対象のロボット５３３と回避対象のロボット５３２，５３４とが衝突する可能性があると判定する。一方、動作対象のロボット５３３と回避対象のロボット５３２，５３４の各々との相対的な位置関係がいずれも特定位置関係にない場合、ロボットコントローラ５３０Ｂは、動作対象のロボット５３３と回避対象のロボット５３２，５３４とが衝突する可能性がないと判定する。
【０１９１】
ロボットコントローラ５３０Ｂは、動作対象のロボット５３３と回避対象のロボット５３２，５３４とが衝突する可能性があると判定された場合、衝突を未然に回避するためのモード（衝突回避モード）に移行する。
【０１９２】
本実施の形態では、ロボットコントローラ５３０Ｂは、衝突回避モードとして、自己のロボットの動作を停止させる「自ロボット停止モード」と、回避対象のロボットを、自己のロボットとの衝突を回避可能な位置まで移動させる「他ロボット回避モード」とを選択することができる。
【０１９３】
自ロボット停止モードにおいては、ロボットコントローラ５３０Ｂは、動作対象のロボット５３３を目標位置まで移動させることなく、現在の位置に停止させる。この場合、ティーチングペンダント２００を介して、ユーザに対して、回避対象のロボット５３２および５３４との衝突可能性があるためにコマンドを実行不可であることを通知する。
【０１９４】
これに対して、他ロボット回避モードにおいては、ロボットコントローラ５３０Ｂは、制御装置１００に対して、回避対象のロボット５３２，５３４を、衝突を回避可能な位置まで移動させるための衝突回避指令を通知する。制御装置１００は、衝突回避指令を受けると、回避対象のロボット５３２の位置を補正するための補正指令を生成し、生成した補正指令をロボットコントローラ５３０Ａに出力する。また、制御装置１００は、回避対象のロボット５３４の位置を補正するための補正指令を生成し、生成した補正指令をロボットコントローラ５３０Ｃに出力する。なお、衝突回避指令は、回避対象のロボットのうち、衝突可能性のあるロボットの駆動機器に対して通知されればよい。
【０１９５】
図１９は、本実施の形態に係る制御システム１における他ロボット回避モードを説明するための模式図である。なお、説明の便宜上、図１９においては、動作対象のロボット５３３の現在位置をＰ１とし、目標位置をＰ１＊として表している。また、回避対象のロボット５３２，５５３３の現在位置をそれぞれ、Ｐ２，Ｐ３として表している。
【０１９６】
図１９（Ａ）に示すように、動作対象のロボット５３３の目標位置Ｐ１＊と回避対象のロボット５３２の現在位置Ｐ２との間の距離が、閾値Ｘ１以下となる場合、動作対象のロボット５３３と回避対象のロボット５３２との相対的な位置関係が特定位置関係にあるため、動作対象のロボット５３３と回避対象のロボット５３２とが衝突する可能性があると判定される。同様に、動作対象のロボット５３３の目標位置Ｐ１＊と回避対象のロボット５３４の現在位置Ｐ３との間の距離が、閾値Ｘ１以下となる場合、動作対象のロボット５３３と回避対象のロボット５３４との相対的な位置関係が特定位置関係にあるため、動作対象のロボット５３３と回避対象のロボット５３４とが衝突する可能性があると判定される。
【０１９７】
そこで、制御装置１００は、ロボットコントローラ５３０Ｂから、ロボット５３２，５３４に対する衝突回避指令を受けると、ロボット５３２，５３４の各々について補正位置を算出する。図１９（Ａ）に示す例においては、目標位置Ｐ１＊を中心とし、閾値Ｘ１を半径とする円状の領域ｋ１の範囲外であり、ロボット５３２の現在位置Ｐ２との間の距離が所定値以下となる位置Ｐ２♯を、ロボット５３２の補正位置とする。また、領域ｋ１の範囲外であって、ロボット５３４の現在位置Ｐ３との間の距離が所定値以下となる位置Ｐ３♯を、ロボット５３４の補正位置とする。
【０１９８】
図１９（Ｂ）には、動作対象のロボット５３３の現在位置Ｐ１と目標位置Ｐ１＊とを結ぶ軌跡（図中の実線矢印に相当）と、回避対象のロボット５３２，５３４の各々の現在位置との間の最短距離が閾値Ｘ２以下となる場合を示す。このような場合、動作対象のロボット５３３と回避対象のロボット５３２，５３４との相対的な位置関係が特定位置関係にあるため、動作対象のロボット５３３と回避対象のロボット５３２，５３４とが衝突する可能性があると判定される。
【０１９９】
制御装置１００は、ロボットコントローラ５３０Ｂから、ロボット５３２，５３４に対する衝突回避指令を受けると、ロボット５３２，５３４の各々について補正位置を算出する。図１９（Ｂ）に示す例においては、現在位置Ｐ１と目標位置Ｐ１＊とを結ぶ軌跡との間の最短距離が閾値Ｘ２以下となる領域ｋ２の範囲外であって、ロボット５３２の現在位置Ｐ２との間の距離が所定値以下となる位置Ｐ２♯を、ロボット５３２の補正位置とする。また、領域ｋ２の範囲外であって、ロボット５３４の現在位置Ｐ３との間の距離が所定値以下となる位置Ｐ３♯を、ロボット５３４の補正位置とする。
【０２００】
制御装置１００は、ロボットコントローラ５３０Ａに対して、ロボット５３２の補正位置Ｐ２♯を含む補正指令を出力するとともに、ロボットコントローラ５３０Ｃに対して、ロボット５３４の補正位置Ｐ３♯を含む補正指令を出力する。ロボットコントローラ５３０Ａは、補正指令に従って、ロボット５３２を補正位置Ｐ２♯まで移動させる。ロボットコントローラ５３０Ｃは、補正指令に従って、ロボット５３４を補正位置Ｐ３♯まで移動させる。
【０２０１】
このように、他ロボット回避モードにおいては、回避対象のロボット５３２，５３４を動作対象のロボット５３３との衝突を回避可能な位置まで移動させる。回避対象のロボット５３２，５３４の回避動作を行なっている期間中、動作対象のロボット５３３は、現在位置に止まり、待機状態とされる。
【０２０２】
回避対象のロボット５３２，５３４の回避動作が完了することによって、動作対象のロボット５３２と回避対象のロボット５３２，５３４との間の衝突可能性がなくなると、ロボットコントローラ５３０Ｂは、ロボット５３３を目標位置Ｐ１＊まで移動させる。そして、ロボット５３３が目標位置Ｐ１♯まで移動すると、ロボットコントローラ５３０Ｂは、ティーチングペンダント２００に対して動作完了を通知する。
【０２０３】
図２０は、本実施の形態に係る制御システム１における衝突回避機能の処理手順を示すフローチャートである。図２０に示すフローチャートは、動作対象に指定されたフィールド機器５００によって、所定のシステム周期Ｔｓ毎に繰返し実行される。
【０２０４】
図２０には、図１８に示す構成例に適用した場合の衝突回避機能の処理手順が示されている。なお、図２２に示す処理手順に先立って、ユーザにより、動作対象のフィールド機器５００（ロボットコントローラ５３０Ｂおよびロボット５３３）が指定されている。また、ユーザまたはティーチングペンダント２００により、回避対象のフィールド機器５００（ロボットコントローラ５３０Ａおよびロボット５３２、およびロボットコントローラ５３０Ｃおよびロボット５３４）が指定されている。
【０２０５】
図２０を参照して、動作対象に指定されたロボットコントローラ５３０Ｂは、回避対象に指定されたロボットコントローラ５３０Ａおよび５３０Ｂからそれぞれ出力される、ロボット５３２および５３４の位置情報を受信する（ステップＳ１１０）。
【０２０６】
ロボットコントローラ５３０Ｂは、ティーチングペンダント２００から、動作対象のロボット５３３に対する位置指令を受信したか否かを判定する（ステップＳ１１１）。ティーチングペンダント２００からの位置指令を受信していない場合（Ｓ１１１のＮＯ判定時）、ロボットコントローラ５３０Ｂは、以降の処理Ｓ１１２〜Ｓ１２２をスキップして処理を終了する。
【０２０７】
一方、ティーチングペンダント２００から、ロボット５３３に対する位置指令を受信した場合（Ｓ１１１のＹＥＳ判定時）には、ロボットコントローラ５３０Ｂは、動作対象のロボット５３３と回避対象のロボット５３２，５３４との衝突可能性を判定する（ステップＳ１１２）。ロボットコントローラ５３０Ｂは、動作対象のロボット５３３の現在位置および目標位置と、回避対象のロボット５３２，５３４の現在位置とに基づいて、衝突可能性があるか否かを判定する。
【０２０８】
ステップＳ１１２において衝突可能性がないと判定された場合（Ｓ１１２のＮＯ判定時）、ロボットコントローラ５３０Ｂは、ティーチングペンダント２００からの位置指令に従って、ロボット５３３を移動させる（ステップＳ１２０）。そして、ロボット５３３が目標位置まで移動すると、ロボットコントローラ５３０Ｂは、ロボット５３３の動作が完了したと判定し（Ｓ１２１のＹＥＳ判定時）、動作完了をティーチングペンダント２００に対して通知する（ステップＳ１２２）。通知を受け取ったティーチングペンダント２００は、その通知を表示部２０３に表示させることで、ユーザに対してロボット５３３の動作完了を知らせる。
【０２０９】
これに対して、ステップＳ１１２において衝突可能性がありと判定された場合（Ｓ１１２のＹＥＳ判定時）には、ロボットコントローラ５３０Ｂは、衝突回避モードに移行する。まず、ロボットコントローラ５３０Ｂは、衝突回避モードとして、自ロボット停止モードおよび他ロボット回避モードのいずれが選択されているかを判定する（ステップＳ１１３）
自ロボット停止モードが選択されている場合、ロボットコントローラ５３０Ｂは、ロボット５３３に対する位置指令の実行を中止してロボット５３３を停止状態とするとともに（ステップＳ１１４）、ティーチングペンダント２００に対して、コマンドを実行不可であることを通知する（ステップＳ１１５）。通知を受け取ったティーチングペンダント２００は、その通知を表示部２０３に表示させることで、ユーザに対して、回避対象の機器との衝突可能性があるためにロボット５３３を移動できないことを知らせる。
【０２１０】
一方、ステップＳ１１３において他ロボット回避モードが選択されている場合、ロボットコントローラ５３０Ｂは、制御装置１００に対して、ロボット５３２，５３４に対する衝突回避指令を通知する（ステップＳ１１６）。ロボットコントローラ５３０Ｂは、さらに、ティーチングペンダント２００に対して、他ロボット回避モードを実行するために、ロボット５３３が待機状態であることを通知する（ステップＳ１１７）。ティーチングペンダント２００は、ロボット５３３が待機状態であることを表示部２０３に表示させる。このロボット５３３の待機状態は、ロボットコントローラ５３０Ｂによって衝突可能性がなくなったと判定されたことによって解除される。
【０２１１】
なお、ステップＳ１１６により、制御装置１００は、ロボットコントローラ５３０Ｂから衝突回避指令を受け取ると、ロボット５３２，５３４の各々について、ロボット５３３の現在位置および目標位置に基づいて、ロボット５３２，５３４の各々の補正位置を算出する。制御装置１００は、算出した補正位置を含む補正指令を、ロボットコントローラ５３０Ａ，５３０Ｃに対して出力する。ロボットコントローラ５３０Ａ，５３０Ｃの各々は、補正指令を受信すると、補正指令で指示された補正位置まで、対応するロボットを移動させる。
【０２１２】
＜Ｌ．まとめ＞
本実施の形態によれば、複数の駆動機器およびこれらを制御する制御装置がネットワーク接続されてなる制御システムにおいて、教示装置は、ネットワークを利用して、複数の駆動機器に対して指令を同時に送信することができる。これにより、単一の教示装置によって、複数の駆動機器に対して同時に教示を行なうことができる。したがって、教示対象の駆動機器を１つずつ選択して教示を行なう従来の構成に比べて、作業効率を向上させることができる。
【０２１３】
また、複数の駆動機器は、いわゆる産業用ネットワークに接続されるため、従来の構成のように、接続可能な駆動機器の台数が制御装置のハードウェアに制約されることがない。駆動機器の機種についても、産業用ネットワークに接続可能な機種であれば接続することができるため、制御装置のハードウェアに制約されることがない。
【０２１４】
また、本実施の形態によれば、教示装置は、複数の駆動機器に対して同時に指令を与えることができるため、動作タイミングを互いに同期させることが必要である複数の駆動機器を同時に動作させて教示を行なうことが可能となる。
【０２１５】
また、本実施の形態によれば、教示装置は、ネットワークに接続された視覚センサから制御対象の挙動を撮像した画像を受信して表示させることができる。これにより、ユーザは、教示装置に表示された、制御対象の機械または設備の挙動を監視しながら、制御対象の駆動機器に対して指令を与えることができる。これにより、ユーザは、目視が困難な制御対象の挙動についても駆動機器に教示させることができる。
【０２１６】
また、本実施の形態によれば、非常時に教示装置から発せられた停止指令を、ネットワークを介して、複数の駆動機器に出力することができる。これにより、複数の駆動機器を緊急停止させることができる。教示装置は、また、予め設定された特定の駆動機器のみに対して停止指令を出力することで、特定の駆動機器のみを緊急停止させることもできる。
【０２１７】
また、本実施の形態によれば、制御装置および複数の駆動機器間は、ネットワークを介してデータを遣り取りすることができるため、教示装置から対象の駆動機器に対して指令が与えられた場面において、対象の駆動機器は、自機器と他の駆動機器との相対的な位置関係に基づいて両者間の衝突可能性を判定することができる。さらに、衝突可能性があると判定された場合には、制御装置、対象の駆動機器および他の駆動機器が互いに連系して、衝突を回避するための処理を実行することができる。
【０２１８】
＜Ｍ．付記＞
上述したような本実施の形態は、以下のような技術思想を含む。
［構成１］
複数の制御対象を制御するための制御システム（１）であって、ネットワーク（２）に接続され、前記複数の制御対象（５２２，５３２〜５３４）をそれぞれ駆動する複数の駆動機器（５００，５２０，５３０，５３０Ａ〜５３０Ｃ）と、前記ネットワークを介して前記複数の駆動機器を制御する制御装置（１００）と、前記複数の駆動機器に対して、対応する制御対象の動作を教示するための教示装置（２００）とを備える。前記教示装置は、前記ネットワークを介して、前記複数の駆動機器のうち少なくとも１つの駆動機器に対して、対応する制御対象を駆動するための指令を送信する、制御システム。
［構成２］
教示装置は、複数の駆動機器のうち第１の駆動機器と通信線（５０９）を介して接続され、複数の駆動機器のうち第２の駆動機器に対する指令を、第１の駆動機器に出力する。第１の駆動機器は、第２の駆動機器に対する指令を、ネットワークを介して第２の駆動機器へ送信する、構成１に記載の制御システム。
［構成３］
教示装置は、ネットワークに接続され、ネットワークを介して対象の駆動機器に対して、対応する制御対象を駆動するための指令を送信する、構成１に記載の制御システム。
［構成４］
制御装置は、ネットワークを介して教示装置が送信した指令を収集し、収集した指令を、ネットワークを介して対象となる駆動機器に対して送信する、構成１から３のいずれかに記載の制御システム。
［構成５］
制御装置は、収集した指令を、通信フレームの対象の駆動機器に割当てられている領域に格納し、ネットワークを介して通信フレームを送出する。対象の駆動機器は、通信フレームを受信すると、対象の駆動機器に割当てられている領域に格納されている指令を読出す、構成４に記載の制御システム。
［構成６］
制御装置および複数の駆動機器の各々は、互いに時刻同期したタイマ（１１２，５０３）を有する。制御装置は、タイマが管理する時刻を基準として、複数の駆動機器の各々において受信された指令に対応する信号を出力する同期タイミングを決定する、構成１に記載の制御システム。
［構成７］
制御装置および複数の駆動機器の各々は、互いに時刻同期したタイマを有している。制御装置は、ネットワークを介して所定周期毎に通信フレームを送出する。教示装置は、通信フレームが伝送されていない期間において、対象の駆動機器に対する指令を送信するとともに、対象の駆動機器において受信された指令に対応する信号を出力するタイミングを指示する、構成１に記載の制御システム。
［構成８］
複数の駆動機器のうち第１の駆動機器は、教示装置から、対応する第１の制御対象を駆動するための指令を受信した場合、指令を実行することによる第１の制御対象と第２の制御対象との間の衝突可能性を判定する。第１の駆動機器は、衝突可能性があると判定されたときには、指令の実行を中止するとともに、教示装置に対して前記指令が実行不可であることを通知する、構成１に記載の制御システム。
［構成９］
複数の駆動機器のうち第１の駆動機器は、教示装置から、対応する第１の制御対象を駆動するための指令を受信した場合、指令を実行することによる第１の制御対象と第２の制御対象との間の衝突可能性を判定する。第１の駆動機器は、衝突可能性があると判定されたときには、ネットワークを介して、制御装置に対して、第２の制御対象を駆動する第２の駆動機器に対する衝突回避指令を送信する。制御装置は、衝突回避指令を受信したときには、第２の制御対象の補正位置を含む指令を、ネットワークを介して第２の駆動機器に送信する、構成１に記載の制御システム。
［構成１０］
ネットワークに接続され、複数の制御対象を撮像するように配置された撮像部（５４２）を有する視覚センサ（５４０）をさらに備え、教示装置は、視覚センサからネットワークを介して伝送される、撮像部によって撮像された画像を表示する表示部（２０３）と、対象の駆動機器に対する指令を入力する操作を受け付ける操作部（２０４）とを含む、構成１に記載の制御システム。
［構成１１］
教示装置は、停止指令を入力する操作を受け付ける操作部（２０４）を含み、ネットワークを介して、複数の駆動機器のうち少なくとも１つの駆動機器に対して停止指令を送信する、構成１に記載の制御システム。
［構成１２］
ネットワークに接続され、複数の制御対象の状態を検知するセンサデバイス（５５０）をさらに備える。教示装置は、ネットワークを介して、センサデバイスの出力値を受信する、構成１に記載の制御システム。
【０２１９】
今回開示された実施の形態はすべての点で例示であって制限的なものではないと考えられるべきである。本発明の範囲は、上記した説明ではなく、特許請求の範囲よって示され、特許請求の範囲と均等の意味および範囲内でのすべての変更が含まれることが意図される。
【符号の説明】
【０２２０】
１  制御システム、２  フィールドネットワーク、３  上位ネットワーク、１００  制御装置、１０２  プロセッサ、１０４  メモリ、１０６  ストレージ、１０７  システムプログラム、１０８  ユーザアプリケーションプログラム、１０９  バス、１１２，２０９，５０３  タイマ、１１４，２０２，２０６，２０７，５０４，５０５，５０９８，５１４，６０１〜６０４  通信ポート、１１６，２０８，５０６，６０４  送受信コントローラ、２００  ティーチングペンダント、２０１  制御部、２０３  表示部、２０４  操作部、２０５  非常停止ボタン、３００  サーバ装置、４００  表示装置、５０９，６０５  通信線、５１０  リモートＩ／Ｏ装置、５１１  通信制御部、５１５，６００  スイッチ、５２０，５２０Ａ，５２０Ｂ  サーボドライバ、５２２，５２２Ａ，５２２Ｂ  サーボモータ、５２５  サーボ制御部、５３０，５３０Ａ〜５３０Ｃ  ロボットコントローラ、５３２〜５３４  ロボット、５３５  ロボット制御部、５３７  エンドエフェクタ、５４０  視覚センサ、５４２  撮像部、５４４  画像処理部、５４６  撮像制御部、５５０  センサデバイス、７５０  ステージ。
【図１】
2019079344.tif 000003
【図２】
2019079344.tif 000004
【図３】
2019079344.tif 000005
【図４】
2019079344.tif 000006
【図５】
2019079344.tif 000007
【図６】
2019079344.tif 000008
【図７】
2019079344.tif 000009
【図８】
2019079344.tif 000010
【図９】
2019079344.tif 000011
【図１０】
2019079344.tif 000012
【図１１】
2019079344.tif 000013
【図１２】
2019079344.tif 000014
【図１３】
2019079344.tif 000015
【図１４】
2019079344.tif 000016
【図１５】
2019079344.tif 000017
【図１６】
2019079344.tif 000018
【図１７】
2019079344.tif 000019
【図１８】
2019079344.tif 000020
【図１９】
2019079344.tif 000021
【図２０】
2019079344.tif 000022