(57)【要約】【課題】複数の制御装置がネットワーク接続された制御システムにおいて、互いに異なる制御装置に接続される複数の機器の協調制御を実現する。【解決手段】複数の制御装置の各々は、第１のネットワークを介して他の制御装置との間で第１のデータを送受信する上位通信手段と、第２のネットワークを介して１または複数の機器との間で第２のデータを送受信する下位通信手段とを含む。上位通信手段は、複数の制御装置の間で互いに時刻同期された第１のタイマを有している。下位通信手段は、第１のタイマの時刻に基づいて、１または複数の機器に対して第２のデータを伝送する処理を開始すべきタイミングを決定する。【選択図】図２
2019062288.tif 000002
【特許請求の範囲】
【請求項１】
第１のネットワークに接続される複数の制御装置と、
前記第１のネットワークよりも下位の第２のネットワークを介して、前記複数の制御装置の各々に接続される１または複数の機器とを備え、
前記複数の制御装置の各々は、
前記第１のネットワークを介して他の制御装置との間で第１のデータを送受信する上位通信手段と、
前記第２のネットワークを介して前記１または複数の機器との間で第２のデータを送受信する下位通信手段とを含み、
前記上位通信手段は、前記複数の制御装置の間で互いに時刻同期された第１のタイマを有しており、
前記下位通信手段は、前記第１のタイマの時刻に基づいて、前記１または複数の機器に対して前記第２のデータを伝送する処理を開始すべきタイミングを決定する、制御システム。
【請求項２】
前記上位通信手段は、前記第２のデータを伝送する処理を開始すべきタイミングを基準として、各前記複数の制御装置における前記下位通信手段が前記第２のデータの送受信に要する時間の最大値に基づいて、前記第１のデータを伝送する処理を開始すべきタイミングを決定する、請求項１に記載の制御システム。
【請求項３】
前記複数の制御装置の各々は、予め定められた周期において、前記第２のデータを伝送する処理および前記第１のデータを伝送する処理を実行した後に、ユーザプログラムを実行する、請求項１または２に記載の制御システム。
【請求項４】
前記下位通信手段は、前記１または複数の機器との間で互いに時刻同期された第２のタイマを有し、
前記複数の制御装置の各々は、前記第１のタイマと前記第２のタイマとの間で時刻同期するための同期手段をさらに含む、請求項１〜３のいずれか１項に記載の制御システム。
【請求項５】
前記上位通信手段は、第１のプロトコルに従って前記第１のデータを送受信し、
前記下位通信手段は、前記第１のプロトコルとは異なる第２のプロトコルに従って前記第２のデータを送受信し、
前記同期手段は、前記第１のタイマを基準として、前記第２のタイマを時刻補正する、請求項４に記載の制御システム。
【請求項６】
前記下位通信手段は、前記第２のデータを予め定められた周期毎に更新し、
前記上位通信手段は、前記第１のデータを、各周期において利用可能な時間に応じたデータサイズに分割した上で、分割後のそれぞれのデータを複数の周期に割り当てる、請求項１に記載の制御システム。
【請求項７】
第１のネットワークに接続されるとともに、前記第１のネットワークよりも下位の第２のネットワークを介して１または複数の機器と接続される制御装置であって、
前記第１のネットワークを介して他の制御装置との間で第１のデータを送受信する上位通信手段と、
前記第２のネットワークを介して前記１または複数のスレーブ機器との間で第２のデータを送受信する下位通信手段とを備え、前記上位通信手段は、前記他の制御装置の間で互いに時刻同期された第１のタイマを有しており、
前記下位通信手段は、前記第１のタイマの時刻に基づいて、前記１または複数の機器に対して前記第２のデータを伝送する処理を開始すべきタイミングを決定する、制御装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、複数の制御装置がネットワーク接続された制御システム、およびその制御システムを構成する制御装置に関する。
【背景技術】
【０００２】
様々な生産現場において、ＰＬＣ（プログラマブルコントローラ）などの制御装置を用いたＦＡ（Factory Automation）技術が広く普及している。このような制御装置は、１または複数の機器との間でバスまたはネットワークを介してデータを送受信する。
【０００３】
制御システムの高機能化に伴って、互いに独立した制御処理を実行する複数の制御装置がネットワークを介して接続されるような構成も実現しつつある。例えば、特開２０１５−１１８５０５号公報（特許文献１）には、コントローラレベルネットワークに複数の制御装置が接続された制御システムが開示される。複数の制御装置の各々には、デバイスレベルネットワークを介して複数の入出力装置が接続されている。各制御装置は、複数の入出力装置から取得した入力値を、コントローラレベルネットワークを介してサーバに送信する。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開２０１５−１１８５０５号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
しかしながら、複数の制御装置は互いに独立した制御処理を実行するため、１つの制御装置と別の制御装置との間では、機器において収集または生成されたデータ（入力データ）を収集するタイミングまたは機器に対する指令などのデータ（出力データ）を対象の機器へ送信するタイミングを互いに同期させることができない。
【０００６】
また、上記１の制御装置に接続される機器と、上記別の制御装置に接続される機器とを連係して動作させるためには、これらの制御装置間でそれぞれの機器の情報を遣り取りする必要があるが、入力データが収集されるタイミングまたは出力データが出力されるタイミングを互いに同期させることができないため、複数の機器の間で制御タイミングを同期させることが困難となる。
【０００７】
このように、互いに異なる制御装置に接続される複数の機器の協調制御を行なうことができないため、結果的に複数の機器を連係して動作させることができないことが懸念される。
【０００８】
本発明は、複数の制御装置がネットワーク接続された制御システムにおいて、互いに異なる制御装置に接続される複数の機器の協調制御を実現するための新たな構成を提供することを目的とする。
【課題を解決するための手段】
【０００９】
本開示の一例では、第１のネットワークに接続される複数の制御装置と、第１のネットワークよりも下位の第２のネットワークを介して、複数の制御装置の各々に接続される１または複数の機器とを備える制御システムが提供される。複数の制御装置の各々は、第１のネットワークを介して他の制御装置との間で第１のデータを送受信する上位通信手段と、第２のネットワークを介して１または複数の機器との間で第２のデータを送受信する下位通信手段とを含む。上位通信手段は、複数の制御装置の間で互いに時刻同期された第１のタイマを有している。下位通信手段は、第１のタイマの時刻に基づいて、１または複数の機器に対して第２のデータを伝送する処理を開始すべきタイミングを決定する。
【００１０】
本開示に従う制御システムによれば、第１のネットワークに接続される複数の制御装置の各々は、他の制御装置と互いに時刻同期されたタイマ（第１のタイマ）を有しているため、このタイマの時刻を基準として、下位の第２のネットワークを介して１または複数のフィールド機器との間でデータを送受信するタイミングを決定することができる。これにより、複数の制御装置の間で、入力データを収集するタイミングまたは出力データを送信するタイミングを互いに同期させることができる。また、複数の制御装置は互いに時刻同期しているため、それぞれの機器のデータを遣り取りするタイミングを互いに同期させることができる。この結果、互いに異なる制御装置に接続される複数の機器の協調制御を行なうことが可能となる。
【００１１】
これにより、互いに異なる制御装置に接続される複数の機器の間で、制御タイミングを同期させることができるため、当該複数の機器の間では処理の待ち合わせが不要となり、処理時間を短縮することができる。また、複数の機器の動作が互いに同期するため、動作タイミングを一致させることができ、結果的に処理精度を向上させることができる。
【００１２】
好ましくは、上位通信手段は、第２のデータを伝送する処理を開始すべきタイミングを基準として、複数の制御装置の各々における下位通信手段が第２のデータの送受信に要する時間の最大値に基づいて、第１のデータを伝送する処理を開始すべきタイミングを決定する。これによると、複数の制御装置の間で、第１のデータを伝送する処理を開始すべきタイミングを互いに同期させることができる。
【００１３】
好ましくは、複数の制御装置の各々は、予め定められた周期において、第２のデータを伝送する処理および第１のデータを伝送する処理を実行した後に、ユーザプログラムを実行する。
【００１４】
これによると、複数の制御装置の各々は、他の制御装置との間で互いに時刻同期した第１および第２のデータに基づいてユーザプログラムを実行することができる。なお、本明細書において、「ユーザプログラム」は、ユーザによって任意に作成可能なプログラムを包含する。「ユーザプログラム」は、シーケンス制御を実現するためのシーケンスプログラム、モーション制御を実現するためのモーションプログラム、および、アプリケーションプログラムを含み得る。
【００１５】
好ましくは、下位通信手段は、１または複数の機器との間で互いに時刻同期された第２のタイマを有する。複数の制御装置の各々は、第１のタイマと第２のタイマとの間で時刻同期するための同期手段をさらに含む。これによると、複数の制御装置の間で、それぞれに接続される１または複数の機器を互いに時刻同期させることができる。
【００１６】
好ましくは、上位通信手段は、第１のプロトコルに従って第１のデータを送受信する。下位通信手段は、第１のプロトコルとは異なる第２のプロトコルに従って第２のデータを送受信する。同期手段は、第１のタイマを基準として、第２のタイマを時刻補正する。
【００１７】
これによると、上位通信手段と下位通信手段とで互いに異なるプロトコルに従ってデータが送受信される場合であっても、上位通信手段および下位通信手段の間を時刻同期させることができる。
【００１８】
好ましくは、下位通信手段は、第２のデータを予め定められた周期毎に更新する。上位通信手段は、第１のデータを、各周期において利用可能な時間に応じたデータサイズに分割した上で、分割後のそれぞれのデータを複数の周期に割り当てる。
【００１９】
これによると、第２のデータを予め定められた周期毎に更新することを保証しつつ、第１のデータを伝送することができる。
【００２０】
本開示の一例では、第１のネットワークに接続されるとともに、第１のネットワークよりも下位の第２のネットワークを介して１または複数の機器と接続される制御装置が提供される。制御装置は、第１のネットワークを介して他の制御装置との間で第１のデータを送受信する上位通信手段と、第２のネットワークを介して１または複数のスレーブ機器との間で第２のデータを送受信する下位通信手段とを備える。上位通信手段は、他の制御装置の間で互いに時刻同期された第１のタイマを有している。下位通信手段は、第１のタイマの時刻に基づいて、１または複数の機器に対して第２のデータを伝送する処理を開始すべきタイミングを決定する。
【発明の効果】
【００２１】
本開示の一例によれば、複数の制御装置がネットワーク接続された制御システムにおいて、互いに異なる制御装置に接続される複数の機器の協調制御を実現することができる。
【図面の簡単な説明】
【００２２】
【図１】本実施の形態に従う制御システムの全体構成の一例を示す模式図である。
【図２】本実施の形態に従う制御システムのネットワーク構成例を示す模式図である。
【図３】本実施の形態に従う制御システムのデータ通信処理を示す模式図である。
【図４】本実施の形態に係る制御装置のハードウェア構成例を示すブロック図である。
【図５】本実施の形態に従う制御処理を実現するための制御装置のソフトウェア構成の一例を示す模式図である。
【図６】本実施の形態に従う制御装置における制御処理のスケジューリングを説明するための模式図である。
【図７】図６に示した制御処理のスケジューリングにおける、通信処理の開始タイミングを決定する処理を説明するための模式図である。
【図８】図６に示した制御処理のスケジューリングにおける、通信処理の開始タイミングを決定する処理を説明するためのフローチャートである。
【図９】本実施の形態に係る制御システムの応用例を示す模式図である。
【発明を実施するための形態】
【００２３】
§１  適用例
まず、図２を用いて、本発明が適用される場面の一例について説明する。図２は、本実施の形態に従う制御システム１の要部構成の一例を模式的に示す図である。
【００２４】
図２を参照して、本実施の形態に従う制御システム１において、コントローラレベルのネットワーク１１には、複数の制御装置１００Ａ〜１００Ｃが接続されている。複数の制御装置１００Ａ〜１００Ｃの各々には、フィールドネットワーク１１０を介して１または複数のフィールド機器２００が接続されている。ネットワーク１１は本発明の「第１のネットワーク」の一実施例に対応し、フィールドネットワーク１１０は本発明の「第２のネットワーク」の一実施例に対応する。
【００２５】
複数の制御装置１００Ａ〜１００Ｃの各々は、フィールドネットワーク１１０を介して１または複数のフィールド機器２００との間でデータを送受信する。複数の制御装置１００Ａ〜１００Ｃの各々は、さらに、ネットワーク１１を介して、他の制御装置との間でデータを送受信する。
【００２６】
複数の制御装置１００Ａ〜１００Ｃは、他の制御装置と互いに時刻同期されたタイマ１０１Ａ〜１０１Ｃ（第１のタイマ）をそれぞれ有している。複数の制御装置１００Ａ〜１００Ｃの各々は、さらに、１または複数のフィールド機器２００との間で互いに時刻同期されたタイマ１０２（第２のタイマ）を有している。複数の制御装置１００Ａ〜１００Ｃの各々において、タイマ１０１（第１のタイマ）にタイマ１０２（第２のタイマ）を同期させる。これにより、複数の制御装置１００Ａ〜１００Ｃの各々は、実質的に、複数の制御装置の間で互いに時刻同期されたタイマ１０１の時刻に基づいて、フィールド機器２００に対してデータを伝送する処理を開始すべきタイミングを決定することができる（図６のタイミングＴ１に相当）。その結果、複数の制御装置１００Ａ〜１００Ｃの間で、入力データを収集するタイミングまたは出力データを送信するタイミングを互いに同期させることが可能となる。また、複数の制御装置１００Ａ〜１００Ｃは互いに時刻同期しているため、それぞれの機器のデータを遣り取りするタイミングを互いに同期させることができる。この結果、互いに異なる制御装置に接続される複数のフィールド機器２００の協調制御を実現することができる。
【００２７】
このような構成を採用することにより、例えば生産現場においては、互いに異なる制御装置に接続される複数の機器の間で、制御タイミングを同期させることができるため、当該複数の機器の間では処理の待ち合わせが不要となり、処理時間を短縮することができる。また、複数の機器の動作が互いに同期するため、動作タイミングを一致させることができ、結果的に処理精度（組立精度、加工精度など）を向上させることができる。
【００２８】
§２  構成例
本発明の実施の形態について、図面を参照しながら詳細に説明する。なお、図中の同一または相当部分については、同一符号を付してその説明は繰返さない。
【００２９】
以下の説明においては、「制御装置」の典型例として、ＰＬＣ（プログラマブルコントローラ）を具体例として説明するが、ＰＬＣの名称に限定されることなく、本明細書に開示された技術思想は、任意の制御装置に対して適用可能である。また、ＰＬＣ（制御装置）を含むシステム全体を、以下では「制御システム」とも称する。
【００３０】
＜Ａ．制御システムの全体構成＞
まず、本実施の形態に従う制御システムの全体構成について説明する。図１は、本実施の形態に従う制御システム１の全体構成の一例を示す模式図である。
【００３１】
図１を参照して、制御システム１では、ネットワークが複数レベルに接続されており、各レベルのネットワークには、それぞれ異なる機能が割り当てられる。具体的には、４つのレベルのネットワーク１１〜１４が設けられている。
【００３２】
ネットワーク１１は、コントロールレベルのネットワークであり、マシン制御機器である複数の制御装置１００Ａ〜１００Ｃ（以下、「制御装置１００」と総称することもある。）と、装置／ライン管理機器である装置／ライン管理装置１９０およびＳＣＡＤＡ（Supervisory  Control  And  Data  Acquisition）機能を提供する表示装置１８０とが接続されており、装置間でデータを伝送できるリンクが形成される。ネットワーク２は、コントローラ（制御装置１００）と管理機器（装置／ライン管理装置１９０および表示装置１８０）との間でデータリンクを構築する。ネットワーク１１は、主として、制御系に係る情報の伝送を主たる機能として提供する。
【００３３】
制御装置１００には、センサ、アクチュエータといった各種のフィールド機器が接続される。これらのフィールド機器は、制御装置１００に装着される入出力ユニットを介して直接接続される場合もあるが、フィールドネットワークを介して接続されることもある。図１に示す構成例においては、制御装置１００では、１または複数のフィールドネットワーク１１０が構成されており、各フィールドネットワーク１１０には、１または複数のフィールド機器２００が接続される。１または複数のフィールド機器２００の各々は、製造装置や生産ラインなど（以下、「フィールド」とも総称する。）に対して何らかの物理的な作用を与えるアクチュエータ、およびフィールドとの間で情報を遣り取りする入出力装置などを含む。したがって、図１に示す制御システム１には、ネットワーク１１〜１４の４つのレベルに加えて、フィールドレベルのネットワークがさらに追加されることになる。
【００３４】
フィールドネットワーク１１０を介して、制御装置１００とフィールド機器２００との間でデータが遣り取りされることになるが、これらの遣り取りされるデータは、数１００μｓｅｃオーダ〜数１０ｍｓｅｃオーダのごく短い周期で更新されることになる。なお、このような遣り取りされるデータの更新処理は、入出力リフレッシュ処理とも称される。
【００３５】
ネットワーク１２は、管理レベルのネットワークであり、装置／ライン管理装置１９０と、製造管理装置３００およびデータベース装置３１０とが接続されており、装置間でデータを伝送できるリンクが形成される。ネットワーク１２は、管理情報の遣り取りおよび装置／ラインの情報の伝送を主たる機能として提供する。
【００３６】
ネットワーク１３は、コンピュータレベルのネットワークであり、製造管理装置３００およびデータベース装置３１０と生産計画などを管理する生産管理装置３５０とが接続されており、装置間でデータを伝送できるリンクが形成される。ネットワーク１３は、生産管理および情報系のデータの伝送を主たる機能として提供する。
【００３７】
ネットワーク１４は、インターネットなどの外部ネットワークであり、生産管理装置３５０とクラウドやサプライチェーンなどとが接続される。
【００３８】
図１に示す制御システム１において、ネットワーク１２およびそれ以下のレベルは、「ファクトリーネットワーク」とも称され、機器を現実に制御するためのデータ（以下、「制御系データ」と総称することもある）を遣り取りする制御系通信を提供する。一方、ネットワーク１３以上のレベルは、「コーポレートネットワーク」とも称され、生産ライン／工場での生産活動などを監視・管理・制御するためのデータ（以下、「情報系データ」と総称することもある）を遣り取りする情報系通信を提供する。
【００３９】
ネットワーク１１〜１４およびフィールドネットワーク１１０には、このような要求される特性の違いに応じたプロトコルおよびフレームワークが採用される。例えば、ファクトリーネットワークに属するネットワーク１１および１２のプロトコルとしては、汎用的なＥｔｈｅｒｎｅｔ（登録商標）上に制御用プロトコルを実装した産業用オープンネットワークであるＥｔｈｅｒＮｅｔ／ＩＰ（登録商標）を用いてもよい。また、フィールドネットワーク１１０のプロトコルとしては、マシンコントロール用ネットワークの一例であるＥｔｈｅｒＣＡＴ（登録商標）を採用してもよい。なお、ネットワーク１１のプロトコル（第１のプロトコル）とフィールドネットワーク１１０のプロトコル（第２のプロトコル）とは、同じであってもよいし、異なっていてもよい。
【００４０】
このようなマシンコントロールに適したネットワーク技術を採用することで、機器間の伝送に要する時間が保証されたリアルタイム性を提供できる。但し、１回の通信周期で伝送可能なデータ量には制限がある。
【００４１】
一方、コーポレートネットワークに属するネットワーク１３および１４のプロトコルとしては、接続先の多様性を担保するために、汎用的なＥｔｈｅｒｎｅｔなどが用いられる。汎用的なＥｔｈｅｒｎｅｔを採用することで、リアルタイム性は実現できないものの、送信可能なデータ量などの制限は存在しない。
【００４２】
＜Ｂ．概要＞
図１に示すファクトリーネットワークにおいては、ネットワーク１１に接続される複数の制御装置１００Ａ〜１００Ｃの各々は、フィールドネットワーク１１０を介して接続される１または複数の機器２００とのデータを送受信する。具体的には、制御装置１００は、フィールド機器２００において収集または生成されたデータ（入力データ）を収集する処理（入力処理）、フィールド機器２００に対する指令などのデータ（出力データ）を生成する処理（演算処理）および、生成した出力データを対象のフィールド機器２００へ送信する処理（出力処理）などを実行する。
【００４３】
フィールドネットワーク１１０では、データの到着時間が保証される必要がある。そのため、制御装置１００は、データ伝送のタイミングを規定する、データが送受信される主体（すなわち、１または複数のフィールド機器２００）の間で互いに時刻同期されたタイマを有している。
【００４４】
しかしながら、複数の制御装置１００の間で時刻同期がとれていない場合には、例えば、１つの制御装置１００に接続されるフィールド機器２００と、別の制御装置１００に接続されるフィールド機器２００との間は時刻同期させることができない。その結果、入出力リフレッシュ処理のタイミングが一致しない場合が生じ得るため、互いに異なる制御装置１００に接続される複数のフィールド機器２００を連係して動作させることが困難となる。
【００４５】
そこで、本実施の形態に従う制御システム１においては、複数の制御装置１００の各々が有するタイマを互いに時刻同期させる。これにより、互いに異なる制御装置１００に接続される複数のフィールド機器２００の協調制御を実現する。
【００４６】
以下、本実施の形態に係る制御システム１が提供する時刻同期機能について説明する。
＜Ｃ．ネットワーク構成例＞
次に、本実施の形態に従う制御システム１のネットワーク構成例について説明する。図２は、本実施の形態に従う制御システム１のネットワーク構成例を示す模式図である。
【００４７】
図２に示す制御システム１は、複数の制御装置１００Ａ〜１００Ｃと、複数のフィールド機器２００Ａ〜２００Ｉとを含む。制御システム１は、一例として、少なくとも一部の制御装置がデイジーチェーン接続のネットワークを採用する。制御装置１００Ａ〜１００Ｃの各々は、フィールドネットワーク１１０内のデータ伝送を管理するマスタとして機能する。フィールド機器２００Ａ〜２００Ｉは、対応するマスタからの指令に従ってデータ伝送を行なうスレーブとして機能する。
【００４８】
制御装置１００Ａ〜１００Ｃは、コントロールレベルのネットワーク１１（上位ネットワーク）に接続されている。ネットワーク１１には、例えばライン管理装置１９０が接続されている。
【００４９】
制御装置１００Ａに接続されるフィールドネットワーク１１０には、フィールド機器２００Ａ〜２００Ｃがデイジーチェーンで順次接続されており、制御装置１００Ｂに接続されるフィールドネットワーク１１０には、フィールド機器２００Ｄ〜２００Ｆがデイジーチェーンで順次接続されており、制御装置１００Ｃに接続されるフィールドネットワーク１１０には、フィールド機器２００Ｇ〜２００Ｉがデイジーチェーンで順次接続されている。
【００５０】
フィールドネットワーク１１０内において、制御装置１００および１または複数のフィールド機器２００は、いずれもデータ伝送機能を有する通信装置とみなすことができる。図２に示す例においては、制御装置１００および１または複数のフィールド機器２００の各々は、隣接して接続されているある通信装置から、ネットワーク上を伝送されるデータを受信すると、当該データを必要に応じて、隣接して接続されている別の通信装置へ伝送する機能を有している。なお、受信されたデータが自装置宛てである場合には、当該受信したデータは他の通信装置へ伝送されることなく、当該データを受信した装置自体で当該データが処理される。
【００５１】
本実施の形態に従う制御システム１において、フィールドネットワーク１１０を構成する複数の通信装置、すなわち制御装置１００および１または複数のフィールド機器２００の間では、送受信タイミングが時刻同期されている（図中の時刻同期（３）に相当）。具体的には、制御装置１００および１または複数のフィールド機器２００の各々は、互いに時刻同期されたタイマ（あるいは、同期してインクリメントまたはデクリメントされるカウンタ）を有しており、それらの時刻同期されたタイマまたはカウンタに従って、各々がデータの送信または受信のタイミングを決定する。
【００５２】
図２に示す例においては、制御装置１００Ａはタイマ１０２Ａを有しており、フィールド機器２００Ａ〜２００Ｃはタイマ２０１Ａ〜２０１Ｃをそれぞれ有している。制御装置１００Ａのタイマ１０２Ａがマスタとして機能し、フィールド機器２００Ａ〜２００Ｃのタイマがこのマスタを基準としてタイミングを同期させる。
【００５３】
制御装置１００Ｂはタイマ１０２Ｂを有しており、フィールド機器２００Ｄ〜２００Ｆはタイマ２０１Ｄ〜２０１Ｆをそれぞれ有している。制御装置１００Ｂのタイマ１０２Ｂがマスタとして機能し、フィールド機器２００Ｄ〜２００Ｆのタイマがこのマスタを基準としてタイミングを同期させる。
【００５４】
制御装置１００Ｃはタイマ１０２Ｃを有しており、フィールド機器２００Ｇ〜２００Ｉはタイマ２０１Ｇ〜２０１Ｉをそれぞれ有している。制御装置１００Ｃのタイマ１０２Ｃがマスタとして機能し、フィールド機器２００Ｇ〜２００Ｉのタイマがこのマスタを基準としてタイミングを同期させる。
【００５５】
すなわち、制御装置１００Ａ〜１００Ｃの各々は、フィールドネットワーク１１０内のデータ伝送を管理するマスタとして機能し、各制御装置１００に接続されるフィールド機器２００は、マスタからの指令に従ってデータ伝送を行なうスレーブとして機能する。マスタとスレーブとの間でタイマを互いに同期させることにより、フィールドネットワーク１１０を構成する制御装置１００とフィールド機器２００との間でデータの伝送タイミングなどを互いに一致させることができる。
【００５６】
図２に示す例において、制御装置１００Ａは、さらに、タイマ１０２Ａと時刻同期されたタイマ１０１Ａを有している。制御装置１００Ｂは、さらに、タイマ１０２Ｂと時刻同期されたタイマ１０１Ｂを有している。制御装置１００Ｃは、さらに、タイマ１０２Ｃと時刻同期されたタイマ１０１Ｃを有している（図中の時刻同期（２）に相当）。制御システム１においては、タイマ１０１Ａ〜１０１Ｃのいずれかを、制御システム１全体のマスタとして機能させる。以下、このようなシステム全体のマスタを「グランドマスタクロック」とも称す。
【００５７】
一例として、図２では、制御装置１００Ａのタイマ１０１Ａがグランドマスタクロックに設定され、制御装置１００Ｂ，１００Ｃのタイマがこのグランドマスタクロックに時刻同期する。これにより、複数の制御装置１００Ａ〜１００Ｂの間で、互いに時刻同期させることができる（図中の時刻同期（１）に相当）。
【００５８】
このように、複数の制御装置１００Ａ〜１００Ｃの各々は、複数の制御装置１００Ａ〜１００Ｃの間で互いに時刻同期されたタイマ（第１のタイマ）と、フィールドネットワーク１１０を介して接続される１または複数のフィールド機器２００と時刻同期されたタイマ（第２のタイマ）とを有しており、第１のタイマと第１のタイマとは互いに時刻同期している。この結果、制御装置１００Ａおよびフィールド機器２００Ａ〜２００Ｃの間で時刻同期された第２のタイマ（タイマ１０２Ａ）と、制御装置１００Ｂおよびフィールド機器２００Ｄ〜２００Ｆの間で時刻同期された第２のタイマ（タイマ１０２Ｂ）と、制御装置１００Ｃおよびフィールド機器２００Ｇ〜２００Ｉの間で時刻同期された第２のタイマ（タイマ１０２Ｃ）とが互いに時刻同期することになる。
【００５９】
なお、図２には、いずれかの制御装置１００のタイマをグランドマスタクロックとして設定する構成例について説明したが、外部装置のタイマをグランドマスタクロックとして設定してもよい。
【００６０】
＜Ｄ．データ通信処理＞
図３は、本実施の形態に従う制御システム１のデータ通信処理を示す模式図である。図３を参照して、フィールドネットワーク１１０に接続される制御装置１００Ａと複数のフィールド機器２００Ａ〜２００Ｃとの間では、予め定められたシステム周期に従って、データが遣り取りされる。
【００６１】
制御装置１００Ｂと複数のフィールド機器２００Ｄ〜２００Ｆとの間、および、制御装置１００Ｃと複数のフィールド機器２００Ｇ〜２００Ｉとの間においても、システム周期に従って、データが遣り取りされる。このようなデータの遣り取りによって、制御装置１００およびフィールド機器の制御動作が実現される。以下の説明では、フィールドネットワーク１１０上の通信を「下位ネットワーク（ＮＷ）通信」とも称する。
【００６２】
上位ネットワーク１１に接続される制御装置１００Ａ〜１００Ｃの間では、予め定められたシステム周期に従って、各制御装置が入力処理によってフィールド機器２００から収集したデータ、演算処理によって生成した出力データなどが遣り取りされる。このようなデータの遣り取りによって、制御装置１００Ａに接続されるフィールド機器２００、制御装置１００Ｂに接続されるフィールド機器２００および制御装置１００Ｃに接続されるフィールド機器２００を連係して動作させることができる。以下の説明では、ネットワーク１１上の通信を「上位ネットワーク（ＮＷ）通信」とも称する。
【００６３】
本実施の形態に従う制御システム１においては、下位ネットワーク通信におけるデータの伝送を開始すべきタイミングは、複数の制御装置１００Ａ〜１００Ｃの間で互いに時刻同期されているタイマ（第１のタイマ）の時刻に基づいて決定される。これにより、複数の制御装置１００Ａ〜１００Ｃの間では、フィールド機器２００との間でデータを遣り取りするタイミングなどを互いに一致させることができるため、結果的にフィールド機器２００の制御タイミングを同期させることができる。
【００６４】
＜Ｅ．制御装置のハードウェア構成例＞
次に、本実施の形態に従う制御装置１００のハードウェア構成について説明する。
【００６５】
図４は、本実施の形態に係る制御装置１００のハードウェア構成例を示すブロック図である。制御装置１００は、典型的には、ＰＬＣ（プログラマブルコントローラ）をベースとして構成されてもよい。
【００６６】
図４を参照して、制御装置１００は、主たるコンポーネントとして、プロセッサ１０３と、メモリ１０４と、ストレージ１０６と、ネットワークコントローラ１３０と、フィールドネットワークコントローラ１４０とを含む。
【００６７】
プロセッサ１０３は、ストレージ１０６に格納されているシステムプログラム１０７およびユーザアプリケーションプログラム１０８を読出して実行することにより、後述するような処理を含む各種処理を実現する。メモリ１０４は、ＤＲＡＭ（Dynamic Random Access Memory）やＳＲＡＭ（Static Random Access Memory）などの揮発性記憶装置からなる。ストレージ１０６は、制御装置１００の各部を制御するためのシステムプログラム１０７に加えて、制御対象などに応じて設計されるユーザアプリケーションプログラム１０８が格納される。
【００６８】
ネットワークコントローラ１３０は、制御装置１００がネットワーク１１を介して他の装置との間でデータを遣り取りするためのインターフェイスを提供する。ネットワークコントローラ１３０は、主たるコンポーネントとして、送受信コントローラ１３１と、送受信バッファ１３２と、タイマ１０１とを含む。
【００６９】
送受信コントローラ１３１は、ネットワーク１１上を定周期で伝送されるパケットの生成および受信に関する処理を行なう。具体的には、送受信コントローラ１３１は、ネットワーク１１から受信したパケットに格納されているデータを送受信バッファ１３２に書込む。送受信コントローラ１３１は、送受信バッファ１３２に書込まれた受信パケットを順次読出すとともに、当該読出したデータのうち制御装置１００での処理に必要なデータのみをプロセッサ１０３へ出力する。送受信コントローラ１３１は、プロセッサ１０３からの指令に従って、他の装置へ送信すべきデータあるいはパケットを送受信バッファ１３２へ順次書込む。送受信バッファ１３２に格納されているデータは、ネットワークコントローラ１３０上をパケットが転送される周期に応じて順次送出される。
【００７０】
タイマ１０１は、送受信コントローラ１３１からデータの送信などを指示するタイミングの基準となるパルスを発生する。タイマ１０１としては、リアルタイムクロック、または、所定周期でカウントアップ（インクリメント）するフリーランカウンタを用いることができる。フリーランカウンタが出力するカウント値をある時点からの経過時間として扱うことで現在時刻を計算でき、これによってタイマとして機能させることができる。
【００７１】
フィールドネットワークコントローラ１４０は、制御装置１００がフィールドネットワーク１１０を介してフィールド機器２００との間でデータを遣り取りするためのインターフェイスを提供する。フィールドネットワークコントローラ１４０は、主たるコンポーネントとして、送受信コントローラ１４１と、送受信バッファ１４２と、タイマ１０２とを含む。これらのコンポーネントの機能は、ネットワークコントローラ１３０の対応するコンポーネントの機能と同様であるので、詳細な説明は繰返さない。
【００７２】
フィールド機器２００は、制御システム１による様々な機械や設備の制御を実現する。典型的には、フィールド機器２００の各々は、制御対象の機械や設備などからのフィールド情報の収集や、制御対象の機械や設備への指令信号の出力などを司る。フィールド機器２００は、主たるコンポーネントとして、フィールドネットワークコントローラ２１０と、フィールドネットワーク１１０上でのデータ転送を管理するための制御ロジック２１４とを含む。
【００７３】
フィールドネットワークコントローラ２１０は、フィールド機器２００がフィールドネットワーク１１０を介して制御装置１００との間でデータを遣り取りするためのインターフェイスを提供する。フィールドネットワークコントローラ２１０は、主たるコンポーネントとして、送受信コントローラ２１２と、タイマ２０１とを含む。送受信コントローラ２１２は、フィールドネットワーク１１０上を転送される通信フレームに対するデータ書込みおよびデータ読出しを行なう。タイマ２０１は、送受信コントローラ２１２に対する指令出力やフィールド機器２００での処理実行などのタイミングの基準となるクロックを発生する。タイマ２０１としては、リアルタイムクロックまたがフリーランカウンタが用いられる。
【００７４】
ネットワークコントローラ１３０は、本発明における「上位通信手段」の一実施例に対応する。ネットワークコントローラ１３０のタイマ１０１は、図２で示したように、他の制御装置１００のネットワークコントローラ１３０のタイマ１０１と時刻同期している。すなわち、タイマ１０１は本発明における「第１のタイマ」の一実施例に対応する。
【００７５】
フィールドネットワークコントローラ１４０は、本発明における「下位通信手段」の一実施例に対応する。フィールドネットワークコントローラ１４０のタイマ１０２は、図２で示したように、フィールド機器２００のタイマ２０１と時刻同期している、すなわち、タイマ１０２は本発明における「第２のタイマ」の一実施例に対応する。
【００７６】
＜Ｆ．ソフトウェア構成＞
次に、本実施の形態に従う制御処理を実現するためのソフトウェア構成の一例について説明する。図５は、本実施の形態に従う制御処理を実現するための制御装置１００のソフトウェア構成の一例を示す模式図である。
【００７７】
図５を参照して、制御装置１００のプロセッサ１０３ではスケジューラ１７０が実行される。スケジューラ１７０は、予め定められたシステム周期に従って、複数の処理の実行順序や実行中断などを決定する。より具体的には、スケジューラ１７０は、ユーザアプリケーション実行処理１７１と、各種処理を含む周辺処理１７２と、上位ネットワーク通信処理１７３と、下位ネットワーク通信処理１７４と、時刻同期処理１７５とに対して、予め定められた優先度およびシステム周期などに従って、処理リソース（プロセッサ時間およびメモリなど）を割り当てる。
【００７８】
ユーザアプリケーション実行処理１７１は、ユーザアプリケーションプログラム１０８（図４参照）の実行に係る処理を含む。
【００７９】
上位ネットワーク通信処理１７３は、上位ネットワーク通信に関わるデータに係る処理、例えば、データ作成、エンコーディング、デコーディング、抽出、加工編集などを含む。同様に、下位ネットワーク通信処理１７４は、下位ネットワーク通信に関わるデータに係る処理を含む。
【００８０】
時刻同期処理１７５は、時刻同期に係る処理を含む。例えば、自身の制御装置１００のタイマ１０１がグランドマスタクロックに設定された場合、時刻同期処理１７５は、他の制御装置１００およびフィールド機器２００との間で時刻同期をとるために、タイマ１０１を基準として、他の制御装置１００およびフィールド機器２００のタイマを調整する処理などを含む。あるいは、他の制御装置１００のタイマ１０１がグランドマスタクロックに設定された場合、時刻同期処理１７５は、他の制御装置１００のタイマ１０１を基準として自身のタイマ１０１およびフィールド機器２００のタイマ２０１を調整する処理を含む。
【００８１】
さらに、制御装置１００のプロセッサ１０３には、通信ドライバ１７６が実装されており、通信ドライバ１７６がネットワークコントローラ（図４参照）などを制御する。
【００８２】
＜Ｇ．制御処理のスケジューリング＞
次に、本実施の形態に従う制御装置１００における制御処理のスケジューリングについて説明する。
【００８３】
図６は、本実施の形態に従う制御装置１００における制御処理のスケジューリングを説明するための模式図である。図６においては、ネットワーク１１に接続される複数の制御装置１００Ａ〜１００Ｃにおける制御処理の実行タイミングが示されている。
【００８４】
図６を参照して、制御装置１００Ａ〜１００Ｃの各々においては、予め定められたシステム周期Ｔｓに従って、上位ネットワーク通信処理、下位ネットワーク通信処理、シーケンス処理、およびモーション処理が実行される。
【００８５】
上位ネットワーク通信処理は、図３に示したように、複数の制御装置１００Ａ〜１００Ｃの間で、上位ネットワーク１１を介してデータを遣り取りする処理である。上位ネットワーク通信処理では、入力データおよび出力データを更新する入出力リフレッシュ処理が実行される。入出力リフレッシュ処理においては、他の制御装置１００から入力データが収集されるとともに、直前のシステム周期Ｔｓにおいて演算された出力データが他の制御装置１００へ与えられる。
【００８６】
下位ネットワーク通信処理は、図３に示したように、制御装置１００とフィールド機器２００との間で、フィールドネットワーク１１０を介してデータを遣り取りする処理である。下位ネットワーク通信処理では、入力データおよび出力データを更新する入出力リフレッシュ処理が実行される。入出力リフレッシュ処理においては、フィールド機器２００から入力データが収集されるとともに、直前のシステム周期Ｔｓにおいてモーション処理により演算された出力データがフィールド機器２００へ与えられる。
【００８７】
シーケンス処理は、基本的には、入力値、出力値、内部値などを演算する１または複数の論理回路により記述されるプログラム（シーケンスプログラム）を実行する処理である。なお、シーケンスプログラムは、電気回路を表現するプログラムでもよい。
【００８８】
モーション処理は、サーボモータなどのアクチュエータに対して、位置、速度、加速度、加加速度、角度、角速度、角加速度、角加加速度などの数値を指令として演算する処理である。
【００８９】
図６の例では、制御装置１００Ａ〜１００Ｃの各々において、まず、下位ネットワーク通信処理が優先的に割り当てられる。具体的には、システム周期Ｔｓに対して、下位ネットワーク通信処理に要する処理時間（以下、「下位ネットワーク通信処理時間」とも称す。）ｔ１が割り当てられる。システム周期Ｔｓのうち、下位ネットワーク通信処理時間ｔ１を除いた残り時間に対して、上位ネットワーク通信処理に要する処理時間、シーケンス処理に要する処理時間、およびモーション処理に要する処理時間が順次割り当てられる。
【００９０】
本実施の形態に従うスケジューリングにおいては、下位ネットワーク通信処理を開始すべきタイミング（図中のタイミングＴ１に相当）を、複数の制御装置１００Ａ〜１００Ｃの間で互いに一致させる。本実施の形態に従うスケジューリングにおいては、さらに、上位ネットワーク通信処理を開始すべきタイミング（図中のタイミングＴ２に相当）を、複数の制御装置１００Ａ〜１００Ｃの間で互いに一致させる。これにより、複数の制御装置１００Ａ〜１００Ｃの間で、入力データの取得タイミングおよび出力データの出力タイミングを互いに一致させることができる。
【００９１】
なお、上位ネットワーク通信は、すべてのシステム周期で発生するものではないので、複数の制御装置１００Ａ〜１００Ｃのいずれかの制御装置においては、システム周期のうち下位ネットワーク通信処理時間を除いた残り時間でシーケンス処理およびモーション処理が行なわれることもある。この場合、当該制御装置を除いた残りの制御装置の間で、上位ネットワーク通信処理を開始すべきタイミングを一致させる。
【００９２】
あるいは、複数の制御装置１００Ａ〜１００Ｃの間で上位ネットワーク通信処理を開始すべきタイミングを一致させたことで、いずれかの制御装置においては、上位ネットワーク通信処理時間を除いた残り時間が少なくなり、システム周期内にシーケンス処理およびモーション処理を実行するのに必要な時間を確保できなくなる場合が生じる。このような場合、当該制御装置においては、上位ネットワーク通信の対象となるデータを、各システム周期において利用可能な通信時間に応じたデータサイズに分割した上で、分割後のそれぞれのデータを複数のシステム周期に割り当てる。
【００９３】
図８は、図６に示した制御処理のスケジューリングにおける、通信処理の開始タイミングを決定する処理を説明するためのフローチャートである。図８に示す処理は、典型的には、典型的には、サポート装置４００（図７参照）を用いて実行される。
【００９４】
図７に示すように、制御装置１００には、サポート装置４００が接続可能になっている。サポート装置４００は、制御装置１００が制御対象を制御するために必要な準備を支援する装置である。具体的には、サポート装置４００は、制御装置１００で実行されるプログラムの開発環境（プログラム作成編集ツール、パーサ、コンパイラなど）、制御装置１００および制御装置１００に接続される各種デバイスのパラメータ（コンフィギュレーション）を設定するための設定環境、生成したユーザプログラムを制御装置１００へ出力する機能、制御装置１００上で実行されるユーザプログラムなどをオンラインで修正・変更する機能、などを提供する。サポート装置４００は設定ツールがインストールされたＰＣ（パーソナルコンピュータ）などにより構成される。
【００９５】
なお、図７に示す制御システム１においては、制御装置１００とサポート装置４００とが別体として構成されているが、サポート装置４００の機能を制御装置１００に搭載するような構成を採用してもよい。
【００９６】
図８を参照して、最初に、上位ネットワーク１１における時刻同期プロトコルにより、複数の制御装置１００の間で、ネットワークコントローラ１３０のタイマ１０１を互いに時刻同期させる（ステップＳ１０）。時刻同期プロトコルとしては、ＩＥＥＥ（Institute of Electrical and Electronics Engineers）１５８、ＩＥＥＥ８０２．１ＡＳ、ＩＥＥＥ８０２．１ＡＳなどの高精度時間同期プロトコルを採用することで、時刻同期を実現することができる。
【００９７】
図２の例では、複数の制御装置１００Ａ〜１００Ｃのうちのいずれか（例えば制御装置１００Ａ）のタイマ１０１をグランドマスタクロックに設定するとともに、他の制御装置（例えば制御装置１００Ｂ，１００Ｃ）のタイマ１０１をこのグランドマスタクロックに時刻同期させる。ステップＳ１０の処理により、図２に示すように、複数の制御装置１００Ａ〜１００Ｃの間では、ネットワークコントローラ１３０のタイマ１０１が互いに時刻同期されることになる（図２の時刻同期（１）に相当）。
【００９８】
次に、複数の制御装置１００の各々においては、他の制御装置１００との間で時刻同期させたネットワークコントローラ１３０のタイマ１０１に、フィールドネットワークコントローラ１４０のタイマ１０２を時刻同期させる（ステップＳ２０）。
【００９９】
このような制御装置１００内部における複数のタイマ間の時刻同期を実現するために、ネットワークコントローラ１３０のタイマ１０１に同期機能が実装され、フィールドネットワークコントローラ１４０のタイマ１０２にラッチ機能が実行される。タイマ１０１の同期機能は、自身のタイマを基準としてタイマ１０２を調整する機能である。タイマ１０２のラッチ機能は、タイマ１０１を基準として自身のタイマを調整する機能である。タイマ１０１の同期機能は、指定されたタイミングでタイマ１０１が同期信号をアサートすると、その同期信号がアサートされた時刻を通知する。ラッチ機能は、タイマ１０１からの同期信号を検知すると、自身が保持している時刻と先に通知された時刻との差分に基づいて、タイマ１０２の時刻を補正する。ステップＳ２０の処理により、図２に示すように、制御装置１００Ａ〜１００Ｃの各々において、タイマ１０１とタイマ１０２との間の時刻同期が実現される（図２の時刻同期（２）に相当）。各制御装置１００ではさらに、フィールドネットワークコントローラ１４０のタイマ１０２にフィールド機器２００が有するタイマ２０１を時刻同期させる（図２の時刻同期（３）に相当）。この結果、複数の制御装置１００の各々に接続されるフィールド機器２００はいずれも、グランドマスタクロックであるタイマ１０１に時刻同期することになる。
【０１００】
次に、グランドマスタクロックであるタイマ１０１が管理する時刻を基準として、複数の制御装置１００の各々の通信処理のスケジュールが決定される。図６の例では、最初に、下位ネットワーク通信処理を開始すべきタイミングＴ１が決定される（ステップＳ３０）。ステップＳ３０では、上述した時刻同期処理が完了した後の最初のシステム周期ＴｓにおけるタイミングＴ１は、時刻同期処理を開始したタイミングＴ０から所定の時間αが経過したタイミングに設定される（Ｔ１＝Ｔ０＋α）。この所定の時間αは、時刻同期処理に要する時間を含むように設定されている。
【０１０１】
なお、図６に示したように、下位ネットワーク通信処理は、システム周期Ｔｓ毎に実行される。第２回目以降のシステム周期ＴｓにおけるタイミングＴ１は、前回のシステム周期ＴｓにおけるタイミングＴ１に対して、システム周期Ｔｓに相当する時間を加算したタイミングに設定される（Ｔ１（今回のシステム周期）＝Ｔ１（前回のシステム周期）＋Ｔｓ）。
【０１０２】
次に、複数の制御装置１００の各々について、下位ネットワーク通信処理に要する時間（以下、「下位ネットワーク通信処理時間ｔ１」とも称す。）が算出される（ステップＳ４０）。下位ネットワーク通信処理時間ｔ１は、制御装置１００とフィールド機器２００との間の通信状況に依存するため、図６に示すように、制御装置１００ごとに異なる長さとなり得る。制御装置１００とフィールド機器２００との間の通信状況には、制御装置１００とフィールド機器２００との間で遣り取りされるデータサイズ、データを伝送するための通信帯域、フィールドネットワーク１１０上に送出されたデータがフィールド機器２００まで伝送されるのに要する時間、および、各フィールド機器２００がデータを受信してから該受信データに対応する信号がフィールド機器２００から出力可能になるまでに要する時間などが含まれる。これらの要素の少なくとも一部は、サポート装置４００に実装されている設定ツールを用いて、ユーザが設定することができる。複数の制御装置１００の各々について、ユーザにより設定された要素に基づいて、下位ネットワーク通信処理時間ｔ１が算出される。
【０１０３】
次に、ステップＳ４０により制御装置１００ごとに算出された下位ネットワーク通信処理時間ｔ１のうち、その値が最も大きなものが「最大下位ネットワーク通信処理時間ｔ１＿ｌｏｗ」として算出される（ステップＳ５０）。
【０１０４】
次に、複数の制御装置１００の各々における、フィールドネットワーク１１０に接続されるフィールド機器２００の制御タイミングが決定される。フィールドネットワーク１１０に複数のフィールド機器２００が接続されている場合、該複数のフィールド機器２００の制御タイミングは、複数のフィールド機器２００のうち、データを受信するタイミングが最も遅いフィールド機器２００がデータを受信するタイミングに基づいて決定される。
【０１０５】
次に、複数の制御装置１００の各々において、上位ネットワーク通信処理を開始すべきタイミングＴ２が決定される（ステップＳ７０）。上位ネットワーク通信処理を開始すべきタイミングＴ２は、ステップＳ３０で決定された、下位ネットワーク通信処理を開始すべきタイミングＴ１を基準として、最大下位ネットワーク通信処理時間ｔ１＿ｌｏｗに基づいて決定される。図６の例では、タイミングＴ２は、タイミングＴ１に最大下位ネットワーク通信処理時間ｔ１＿ｌｏｗを加算したタイミングに設定されている（Ｔ２＝Ｔ１＋ｔ１＿ｌｏｗ）。
【０１０６】
このように、下位ネットワーク通信を開始すべきタイミングＴ１を複数の制御装置１００の間で一致させることで、複数の制御装置１００の間で、フィールド機器２００に対する入出力リフレッシュ処理のタイミングを互いに同期させることができる。さらに、上位ネットワーク通信を開始すべきタイミングＴ２を複数の制御装置１００の間で一致させることで、互いに独立した制御を実行する複数の制御装置１００の間で入出力リフレッシュ処理のタイミングを互いに同期させることができる。これにより、複数の制御装置１００の間でフィールド機器２００の制御タイミングを同期させることができる。この結果、互いに異なる制御装置１００に接続される複数のフィールド機器２００の協調制御が可能となる。
【０１０７】
＜Ｈ．応用例＞
図９は、本実施の形態に係る制御システム１の応用例を示す模式図である。図９には、ロボット組立システムに本実施の形態に係る制御システム１を適用した例が示されている。
【０１０８】
図９を参照して、ロボット組立システムは、多関節ロボット７００と、ワークＷを保持するＸＹステージ７５０とを含む。図９には、多関節ロボット７００の先端に把持された部品をワークＷに設けられた孔に挿入するようなアプリケーション例を示す。
【０１０９】
制御装置１００Ａは、フィールドネットワーク１１０を介して各種のフィールド機器２００と接続されている。制御装置１００Ａは、典型的には、ＰＬＣとして具現化されてもよい。フィールド機器２００は、リモートＩ／Ｏ（Input/Output）装置５１０と、サーボドライバ５２０，５３０とを含む。
【０１１０】
リモートＩ／Ｏ装置５１０は、典型的には、フィールドネットワーク１１０を介して通信を行なう通信カプラと、入力データの取得および出力データの出力を行なうための入出力部とを含む。リモートＩ／Ｏ装置５１０には、入力リレーや各種センサなどの入力データを収集する装置、および、出力リレー、コンタクタ、サーボドライバ、および、その他任意のアクチュエータなどのフィールドに対して何らかの作用を与える装置が接続される。
【０１１１】
サーボドライバ５２０は、制御装置１００Ａ（ＰＬＣ）からの出力データ（例えば、位置指令や速度指令など）に従って、ＸＹステージ７５０のＸ軸を駆動するサーボモータ７５２を駆動する。サーボドライバ５３０は、制御装置１００Ａからの出力データに従って、ＸＹステージ７５０のＹ軸を駆動するサーボモータ７５４を駆動する。
【０１１２】
制御装置１００Ｂは、フィールドネットワーク１１０を介してフィールド機器２００と接続されている。フィールド機器２００は、多関節ロボット７００を含む。制御装置１００Ｂは、典型的には、ロボットコントローラとして具現化されてもよい。
【０１１３】
すなわち、ロボット組立システムにおいて、多関節ロボット７００は制御装置１００Ｂ（ロボットコントローラ）によって駆動され、ＸＹステージ７５０は制御装置１００Ａ（ＰＬＣ）によって駆動される。多関節ロボット７００およびＸＹステージ７５０は連係させる必要があるので、制御装置１００Ａおよび制御装置１００Ｂは、いずれも上位ネットワーク１１を介して上位コントローラ１９５と接続されている。上位コントローラ１９５は、制御装置１００Ａおよび制御装置１００Ｂに対して指令を与える。
【０１１４】
制御装置１００Ａは、リモートＩ／Ｏ装置５１０を介して取得される入力データおよび内部データを用いて、シーケンス制御に従って出力データを演算し、演算した出力データをリモートＩ／Ｏ装置５１０から出力する。制御装置１００Ａは、モーション制御において演算される指令値をそれぞれのサーボドライバ５２０に与えることで、ＸＹステージ７５０上に配置されたワークＷを適切な位置に位置決めする。
【０１１５】
一方、多関節ロボット７００に対する制御は、制御装置１００Ａ（ＰＬＣ）とは別に配置された制御装置１００Ｂ（ロボットコントローラ）によって実現される。制御装置１００Ｂは、ロボットプログラムに記述された命令を逐次実行することで、多関節ロボット７００に予め定められた挙動を行なわせる。
【０１１６】
制御装置１００Ａおよび制御装置１００Ｂは、それぞれ独立した制御処理を実行するので、ＸＹステージ７５０と多関節ロボット７００とを連係して動作させるために、それぞれの装置の情報を上位ネットワーク１１上で遣り取りする。
【０１１７】
本実施の形態に従うロボット組立システムにおいては、制御装置１００Ａは、リモートＩ／Ｏ装置５１０およびサーボドライバ５２０との間で互いに時刻同期されたタイマを有しており、制御装置１００Ｂは、多関節ロボット７００との間で互いに時刻同期されたタイマを有している。そして、制御装置１００Ａおよび制御装置１００Ｂのいずれかにあるタイマを、制御システム１全体のマスタ（グランドマスタクロック）として機能させることにより、制御装置１００Ａと制御装置１００Ｂとを時刻同期させる。
【０１１８】
この同期した時刻に基づいた通信処理のスケジューリングを行なうことによって、制御装置１００ＡとリモートＩ／Ｏ装置５１０およびサーボドライバ５２０との間でデータを送受信する処理を開始すべきタイミングと、制御装置１００Ｂと多関節ロボット７００との間でデータを送受信する処理を開始すべきタイミングとを互いに一致させる。さらに、制御装置１００Ａと制御装置１００Ｂとの間でデータを送受信する処理を開始すべきタイミングを一致させる。
【０１１９】
このような構成を採用することにより、リモートＩ／Ｏ装置５１０およびサーボドライバ５２０と多関節ロボット７００との間で、データが出力されるタイミングまたはデータが更新されるタイミングを互いに同期させることができる。その結果、例えば、加工前のワークＷを所定位置に配置し、あるいは、組立済みのワークＷを取り出す際において、多関節ロボット７００とＸＹステージ７５０との間で、制御タイミングを同期させることができる。これにより、多関節ロボット７００とＸＹステージ７５０との間では、処理の待ち合わせが不要となるため、処理時間を短縮することができる。また、ＸＹステージ７５０の動作と多関節ロボット７００の動作とが同期するため、ＸＹステージ７５０を動作させつつ、多関節ロボット７００を動作させる際に、動作タイミングを一致させることができるため、組立精度を向上させることが可能となる。
【０１２０】
＜Ｉ．利点＞
本実施の形態に従う制御システム１によれば、同一の上位ネットワークに接続される複数の制御装置の各々は、他の制御装置と互いに時刻同期されたタイマ（第１のタイマ）を有しているため、このタイマの時刻を基準として、下位ネットワークを介して１または複数のフィールド機器との間でデータを送受信するタイミングを決定することができる。これにより、複数の制御装置の間で、入力データを収集するタイミングまたは出力データを送信するタイミングを互いに同期させることができる。また、複数の制御装置は互いに時刻同期しているため、それぞれの機器のデータを遣り取りするタイミングを互いに同期させることができる。この結果、互いに異なる制御装置に接続される複数の機器の協調制御を行なうことが可能となる。
【０１２１】
これにより、互いに異なる制御装置に接続される複数の機器の間で、制御タイミングを同期させることができるため、当該複数の機器の間では処理の待ち合わせが不要となり、処理時間を短縮することができる。また、複数の機器の動作が互いに同期するため、動作タイミングを一致させることができ、結果的に処理精度を向上させることができる。
【０１２２】
［付記］
以上のように、本実施形態は以下のような開示を含む。
【０１２３】
（１）本実施形態では、第１のネットワーク（１１）に接続される複数の制御装置（１００）と、第１のネットワーク（１１）よりも下位の第２のネットワーク（１１０）を介して、複数の制御装置（１００）の各々に接続される１または複数の機器（２００）とを備える制御システム（１）が提供される。複数の制御装置（１００）の各々は、第１のネットワーク（１１）を介して他の制御装置（２００）との間で第１のデータを送受信する上位通信手段と、第２のネットワーク（１１０）を介して１または複数の機器（２００）との間で第２のデータを送受信する下位通信手段とを含む。上位通信手段は、複数の制御装置（１００）の間で互いに時刻同期された第１のタイマ（１０１）を有している。下位通信手段は、第１のタイマ（１０１）の時刻に基づいて、１または複数の機器（２００）に対して第２のデータを伝送する処理を開始すべきタイミング（図６のタイミングＴ１）を決定する。
【０１２４】
（２）上記制御システム（１）において好ましくは、上位通信手段は、第２のデータを伝送する処理を開始すべきタイミング（図６のタイミングＴ１）を基準として、複数の制御装置（１００）の各々における下位通信手段が第２のデータの送受信に要する時間（図６の時間ｔ１）の最大値に基づいて、第１のデータを伝送する処理を開始すべきタイミング（図６のタイミングＴ２）を決定する。
【０１２５】
（３）上記制御システム（１）において好ましくは、複数の制御装置（１００）の各々は、予め定められた周期において、第２のデータを伝送する処理および第１のデータを伝送する処理を実行した後に、ユーザプログラムを実行する。
【０１２６】
（４）上記制御システム（１）において好ましくは、下位通信手段は、１または複数の機器（２００）との間で互いに時刻同期された第２のタイマ（１０２）を有する。複数の制御装置（１００）の各々は、第１のタイマ（１０１）と第２のタイマ（１０２）との間で時刻同期するための同期手段をさらに含む。
【０１２７】
（５）上記制御システム（１）において好ましくは、上位通信手段は、第１のプロトコルに従って第１のデータを送受信する。下位通信手段は、第１のプロトコルとは異なる第２のプロトコルに従って第２のデータを送受信する。同期手段は、第１のタイマ（１０１）を基準として、第２のタイマ（１０２）を時刻補正する。
【０１２８】
（６）上記制御システム（１）において好ましくは、下位通信手段は、第２のデータを予め定められた周期毎に更新する。上位通信手段は、第１のデータを、各周期において利用可能な時間に応じたデータサイズに分割した上で、分割後のそれぞれのデータを複数の周期に割り当てる。
【０１２９】
（７）本実施形態では、第１のネットワーク（１１）に接続されるとともに、第１のネットワーク（１１）よりも下位の第２のネットワーク（１１０）を介して１または複数の機器（２００）と接続される制御装置（１００）が提供される。制御装置（１００）は、第１のネットワーク（１１）を介して他の制御装置（１００）との間で第１のデータを送受信する上位通信手段と、第２のネットワーク（１１０）を介して１または複数の機器（２００）との間で第２のデータを送受信する下位通信手段とを備える。上位通信手段は、他の制御装置（１００）の間で互いに時刻同期された第１のタイマ（１０１）を有している。下位通信手段は、第１のタイマ（１０１）の時刻に基づいて、１または複数の機器（２００）に対して第２のデータを伝送する処理を開始すべきタイミングを決定する。
【０１３０】
今回開示された実施の形態はすべての点で例示であって制限的なものではないと考えられるべきである。本発明の範囲は、上記した説明ではなく、特許請求の範囲によって示され、特許請求の範囲と均等の意味および範囲内でのすべての変更が含まれることが意図される。
【符号の説明】
【０１３１】
１  制御システム、２，１１〜１４  ネットワーク、１０１（１０１Ａ〜１０１Ｃ）  タイマ（第１のタイマ）、１０２（１０２Ａ〜１０２Ｃ）  タイマ（第２のタイマ）、２０１（２０１Ａ〜２０１Ｉ）  タイマ、１０３  プロセッサ、１０４  メモリ、１０６  ストレージ、１０７  システムプログラム、１０８  ユーザアプリケーションプログラム、１１０  フィールドネットワーク、１３０  ネットワークコントローラ、１３１，１４１，２１２  送受信コントローラ、１３２，１４２  送受信バッファ、１４０，２１０  フィールドネットワークコントローラ、１７０  スケジューラ、１７１  ユーザアプリケーション実行処理、１７２  周辺処理、１７３  上位ネットワーク通信処理、１７４  下位ネットワーク通信処理、１７５  時刻同期処理、１７６  通信ドライバ、１８０  表示装置、１９０  ライン管理装置、１９５  上位コントローラ、２００（２００Ａ〜２００Ｉ）  フィールド機器（機器）、２１４  制御ロジック、３００  製造管理装置、３１２０  データベース装置、３５０  生産管理装置、４００  サポート装置、５１０  リモートＩ／Ｏ装置、５２０，５３０  サーボドライバ、７００  多関節ロボット、７５０  ステージ、７５２，７５４  サーボモータ。
【図１】
2019062288.tif 000003
【図２】
2019062288.tif 000004
【図３】
2019062288.tif 000005
【図４】
2019062288.tif 000006
【図５】
2019062288.tif 000007
【図６】
2019062288.tif 000008
【図７】
2019062288.tif 000009
【図８】
2019062288.tif 000010
【図９】
2019062288.tif 000011