(57)【要約】【課題】より簡素な構成であっても装置間で同期をとることのできる構成が要望される。【解決手段】第１の制御装置と、通信ラインを介して第１の制御装置に接続された複数の第２の制御装置とを備える制御システムが提供される。第１の制御装置は、複数の第２の制御装置に対して応答を要求する第１のデータを送信する手段と、第１のデータの送信に連動して、内部的なデータの受信動作を開始するとともに、内部的にデータを受信した第１のタイミングを格納する手段と、第１のデータに応答して、複数の第２の制御装置からそれぞれ送信される応答を受信するとともに、それぞれを受信した第２のタイミングをそれぞれ格納する手段と、第１のタイミングを基準にして、第２のタイミングの１つまたは複数から、第１の制御装置といずれかの第２の制御装置との間の通信に係る遅延時間、および、第２の制御装置の間の通信に係る遅延時間、のうち少なくとも一方を決定する手段とを含む。【選択図】図４
2015176366.tif 000002
【特許請求の範囲】
【請求項１】
第１の制御装置と、通信ラインを介して前記第１の制御装置に接続された複数の第２の制御装置とを備える制御システムであって、
前記複数の第２の制御装置の各々は、通信ラインの少なくとも一部を他の第２の制御装置と共有するように構成されており、
前記第１の制御装置は、
前記複数の第２の制御装置に対して応答を要求する第１のデータを送信する手段と、
前記第１のデータの送信に連動して、内部的なデータの受信動作を開始するとともに、内部的にデータを受信した第１のタイミングを格納する手段と、
前記第１のデータに応答して、前記複数の第２の制御装置からそれぞれ送信される応答を受信するとともに、それぞれを受信した第２のタイミングをそれぞれ格納する手段と、
前記第１のタイミングを基準にして、前記第２のタイミングの１つまたは複数から、前記第１の制御装置といずれかの第２の制御装置との間の通信に係る遅延時間、および、第２の制御装置の間の通信に係る遅延時間、のうち少なくとも一方を決定する手段とを含む、制御システム。
【請求項２】
前記第１の制御装置は、前記受信動作として、前記第２の制御装置が前記第１のデータを受信して応答を送信する動作と同等な動作を実行するように構成されている、請求項１に記載の制御システム。
【請求項３】
前記第１の制御装置は、
第２の制御装置からのデータを受信するための受信部と、
第２の制御装置へデータを送信するための送信部とを含み、
前記受信動作は、前記送信部から前記受信部へ内部的にデータを出力する処理を含む、請求項２に記載の制御システム。
【請求項４】
前記第１の制御装置は、
第２の制御装置からのデータを受信するための受信部と、
第２の制御装置へデータを送信するための送信部と、
前記送信部および前記受信部で共有される記憶部とを含み、
前記受信動作は、前記受信部が前記記憶部へ内部的にデータを格納する処理を含む、請求項２に記載の制御システム。
【請求項５】
前記第１の制御装置は、決定された遅延時間に基づいて、前記複数の第２の制御装置の各々の計時手段を補正するための情報を前記複数の第２の制御装置へそれぞれ送信する手段をさらに含む、請求項１〜４のいずれか１項に記載の制御システム。
【請求項６】
通信ラインを介して複数のスレーブ装置に接続可能な制御装置であって、前記複数のスレーブ装置の各々は、通信ラインの少なくとも一部を他のスレーブ装置と共有するように構成されており、
前記複数のスレーブ装置に対して応答を要求する第１のデータを送信する手段と、
前記第１のデータの送信に連動して、内部的なデータの受信動作を開始するとともに、内部的にデータを受信した第１のタイミングを格納する手段と、
前記第１のデータに応答して、前記複数のスレーブ装置からそれぞれ送信される応答を受信するとともに、それぞれを受信した第２のタイミングをそれぞれ格納する手段と、
前記第１のタイミングを基準にして、前記第２のタイミングの１つまたは複数から、自装置といずれかのスレーブ装置との間の通信に係る遅延時間、および、スレーブ装置の間の通信に係る遅延時間、のうち少なくとも一方を決定する手段とを備える、制御装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、通信ラインを介して接続された複数の制御装置からなる制御システム、およびその制御システムに向けられた制御装置に関する。
【背景技術】
【０００２】
多くの生産現場で使用される機械や設備は、典型的には、プログラマブルコントローラ（Programmable Logic Controller；以下「ＰＬＣ」とも称す）などからなる制御システムによって制御される。演算処理能力の向上や設備の合理化などの観点から、単一の主制御装置に複数のＩＯ（Input Output）装置などが通信ラインを介して接続された制御システムが採用されることも多い。
【０００３】
このような制御システムにおいては、装置間で同期をとる必要があるが、通信ラインが相対的に長くなるほど、伝搬遅延時間の影響が顕在化し得る。そのため、装置間で同期をとるための技術が提案されている。
【０００４】
例えば、特開２０１１−２１６０８５号公報（特許文献１）は、複数のユニットがシステムバスにデジチェーン接続されて構成された、マスタおよびスレーブが計時手段を備えているプログラマブルコントローラを開示する。このプログラマブルコントローラにおいて、マスタは時間同期フレームを送信するとともに、スレーブは同期フレームに格納された時刻情報と補正値から自己の計時手段を補正する。
【先行技術文献】
【特許文献】
【０００５】
【特許文献１】特開２０１１−２１６０８５号公報
【発明の概要】
【発明が解決しようとする課題】
【０００６】
上述の特許文献１に開示されるプログラマブルコントローラは、何らかの要因によって伝搬遅延時間に変動が生じるような場合であっても、装置間で正確に同期をとることができて好適であるが、マスタおよびスレーブに計時手段が必要になる。そのため、より簡素な構成であっても、装置間で同期をとることのできる構成が要望されている。
【課題を解決するための手段】
【０００７】
本発明のある局面によれば、第１の制御装置と、通信ラインを介して第１の制御装置に接続された複数の第２の制御装置とを備える制御システムが提供される。複数の第２の制御装置の各々は、通信ラインの少なくとも一部を他の第２の制御装置と共有するように構成されている。第１の制御装置は、複数の第２の制御装置に対して応答を要求する第１のデータを送信する手段と、第１のデータの送信に連動して、内部的なデータの受信動作を開始するとともに、内部的にデータを受信した第１のタイミングを格納する手段と、第１のデータに応答して、複数の第２の制御装置からそれぞれ送信される応答を受信するとともに、それぞれを受信した第２のタイミングをそれぞれ格納する手段と、第１のタイミングを基準にして、第２のタイミングの１つまたは複数から、第１の制御装置といずれかの第２の制御装置との間の通信に係る遅延時間、および、第２の制御装置の間の通信に係る遅延時間、のうち少なくとも一方を決定する手段とを含む。
【０００８】
好ましくは、第１の制御装置は、受信動作として、第２の制御装置が第１のデータを受信して応答を送信する動作と同等な動作を実行するように構成されている。
【０００９】
さらに好ましくは、第１の制御装置は、第２の制御装置からのデータを受信するための受信部と、第２の制御装置へデータを送信するための送信部とを含む。受信動作は、送信部から受信部へ内部的にデータを出力する処理を含む。
【００１０】
あるはさらに好ましくは、第１の制御装置は、第２の制御装置からのデータを受信するための受信部と、第２の制御装置へデータを送信するための送信部と、送信部および受信部で共有される記憶部とを含む。受信動作は、受信部が記憶部へ内部的にデータを格納する処理を含む。
【００１１】
好ましくは、第１の制御装置は、決定された遅延時間に基づいて、第２の制御装置の各々の計時手段を補正するための情報を複数の第２の制御装置へそれぞれ送信する手段をさらに含む。
【００１２】
本発明の別の局面によれば、通信ラインを介して複数のスレーブ装置に接続可能な制御装置が提供される。複数のスレーブ装置の各々は、通信ラインの少なくとも一部を他のスレーブ装置と共有するように構成されている。制御装置は、複数のスレーブ装置に対して応答を要求する第１のデータを送信する手段と、第１のデータの送信に連動して、内部的なデータの受信動作を開始するとともに、内部的にデータを受信した第１のタイミングを格納する手段と、第１のデータに応答して、複数のスレーブ装置からそれぞれ送信される応答を受信するとともに、それぞれを受信した第２のタイミングをそれぞれ格納する手段と、第１のタイミングを基準にして、第２のタイミングの１つまたは複数から、自装置といずれかのスレーブ装置との間の通信に係る遅延時間、および、スレーブ装置の間の通信に係る遅延時間、のうち少なくとも一方を決定する手段とを含む。
【発明の効果】
【００１３】
本発明のある局面に係る制御システムおよび制御装置によれば、より簡素な構成を維持しつつ、装置間で同期をとることができる。
【図面の簡単な説明】
【００１４】
【図１】本実施の形態の制御システムのネットワーク構成を示す模式図である。
【図２】本実施の形態の制御システムにおける伝搬遅延時間の計測方法を概略する模式図である。
【図３】本実施の形態の制御システムにおける装置構成を示す模式図である。
【図４】本実施の形態の制御システムでのマスタ装置での自己折り返し受信を実現するための装置構成を示す模式図である。
【図５】本実施の形態の制御システムにおける各装置を伝搬するフレームのタイムチャートの一例を示す模式図である。
【図６】本実施の形態の制御システムのマスタ装置が実行する伝搬遅延時間の計測に係る処理手順である。
【発明を実施するための形態】
【００１５】
本発明の実施の形態について、図面を参照しながら詳細に説明する。なお、図中の同一または相当部分については、同一符号を付してその説明は繰返さない。
【００１６】
本実施の形態においては、制御システムの一例として、ＰＬＣを中心とするシステムについて例示する。但し、このような制御システムとしては、ＰＬＣだけではなく、各種の産業用コンピュータを中心として構成を採用することもできる。さらに、技術の進展によって、新たな処理装置（演算装置）が開発された場合には、そのような新たな処理装置を採用することもできる。
【００１７】
＜Ａ．制御システムの構成＞
図１は、本実施の形態の制御システム１のネットワーク構成を示す模式図である。図１（ａ）を参照して、制御システム１は、マスタ装置１０と、通信ラインを介してマスタ装置１０に接続された複数のスレーブ装置２０＿１，２０＿２，２０＿３，２０＿４（以下、「スレーブ装置２０」とも総称する。）とを含む。マスタ装置１０は、典型的には、ＰＬＣの主演算装置（第１の制御装置）に相当し、１つ以上のスレーブ装置２０は、ＩＯ装置などの各種フィールド装置（第２の制御装置）に相当する。マスタ装置１０と複数のスレーブ装置２０とは、デジチェーン接続されており、各装置は、ダウンリンク（以下、「ＤＬ」とも記載する。）およびアップリンク（以下、「ＵＬ」とも記載する。）を介して隣接する装置と通信可能に接続されている。すなわち、スレーブ装置２０の各々は、通信ラインの少なくとも一部を他のスレーブ装置２０と共有するように構成されている。
【００１８】
制御システム１では、主として、マスタ装置１０が装置間の伝搬遅延時間ΔＴ２（ｎ）（ｎ＝１〜４）を計測し、各伝搬遅延時間に応じたオフセット値などを各スレーブ装置２０へ指示することで、マスタ装置１０および複数のスレーブ装置２０の間で同期をとることができる。
【００１９】
例えば、図１（ｂ）に示すように、スレーブ装置２０＿１とスレーブ装置２０＿２との間が相対的に長い通信ケーブルを用いて接続されると、図１（ａ）における構成での伝搬遅延時間ΔＴ２（２）は、伝搬遅延時間ΔＴ２（２）’まで延びることになる。このような伝搬遅延時間の変動を考慮して、制御システム１内の装置間で同期をとれるように、各種オフセット値などが調整される。
【００２０】
＜Ｂ．概要＞
各スレーブ装置２０は、制御システム１のネットワークを伝搬する時刻配信パケット（以下、「同期フレーム」とも称する。）を受信してその中に格納されている時刻を予め指定されている補正値で補正した上で、自局の計時手段（タイマ）を補正する。この補正値として必要な時間について説明する。
【００２１】
まず、以下のように、時刻ｔｓ０〜ｔｓ４を定義すると、必要な補正値は、ｔｓ４−ｔｓ０で定義される。
【００２２】
ｔｓ０：同期フレームにマスタ装置の時刻がラッチされる時刻
ｔｓ１：同期フレームが送信され始める時刻
ｔｓ２：同期フレームが目的のスレーブ装置で受信され始める時刻
ｔｓ３：同期フレームが目的のスレーブ装置で受信完了された時刻
ｔｓ４：スレーブ装置で同期フレームに格納されている時刻がラッチされる時刻
この補正値について、ｔｓ４−ｔｓ０＝（ｔｓ１−ｔｓ０）＋（ｔｓ２−ｔｓ１）＋（ｔｓ３−ｔｓ２）＋（ｔｓ４−ｔｓ３）と分解できる。各要素の値は、以下のようになる。
【００２３】
（ｔｓ１−ｔｓ０）は、マスタ装置１０での送信処理（マスタ送信処理）に相当し、これは一定の内部処理ということで固定値とみなすことができる。また、（ｔｓ３−ｔｓ２）および（ｔｓ４−ｔｓ３）は、スレーブ装置２０での受信処理（スレーブ受信処理）に相当し、これらについても一定の内部処理ということでいずれも固定値とみなすことができる。
【００２４】
すなわち、マスタ装置１０での自己折り返し受信、および、スレーブ装置２０での受信処理がＡＳＩＣ（Application Specific Integrated Circuit）などの集積回路やハードワイヤード回路を用いて実装されている場合には、これらの受信処理に要する時間は一定値とみなすことができる。
【００２５】
一方、（ｔｓ２−ｔｓ１）は、通信ケーブル長およびスレーブ装置での局遅延による遅延時間に相当する。この値は、通信ケーブル長および局遅延に依存して変化するので、本方法による計測の対象となる。この（ｔｓ２−ｔｓ１）が後述の伝搬遅延時間ΔＴ２に相当する。
【００２６】
次に、次に実際のコマンドの送信によって計測されるタイミングについて説明する。以下のように、時刻ｔｍ０〜ｔｍ３を計測し得る。
【００２７】
ｔｍ０：コマンドの送信が起動された時刻
ｔｍ１：コマンドが送信され始めた時刻
ｔｍ２：コマンドが目的のスレーブで受信され始められた時刻
ｔｍ３：コマンドが目的のスレーブで受信完了された時刻
これらの時刻ｔｍ０〜ｔｍ３を用いて、遅延時間ΔＴ１，ΔＴ２，ΔＴ３を以下のように算出できる。
【００２８】
送信処理に係る遅延時間ΔＴ１＝ｔｍ１−ｔｍ０
伝搬遅延時間ΔＴ２＝通信ケーブルとスレーブ装置２０での局遅延＝ｔｍ２−ｔｍ１
受信処理に係る遅延時間ΔＴ３＝ｔｍ３−ｔｍ２
図２は、本実施の形態の制御システム１における伝搬遅延時間の計測方法を概略する模式図である。図２を参照して、制御システム１では、マスタ装置１０が複数のスレーブ装置２０の全部または一部に対して、レスポンスを要求するコマンドを送信する。全部のスレーブ装置２０に対してコマンドを送信する場合には、ブロードキャストまたはマルチキャストが用いられる。このコマンドは、伝搬遅延時間を計測するための専用のものであってもよいが、別の用途に用いられるものであってもよい。例えば、マスタ装置１０がスレーブ装置２０のステータスを問い合わせるコマンドであってもよいし、マスタ装置１０がスレーブ装置２０に対して何らかのデータを送信する、あるいはスレーブ装置２０から何らかのデータを取得するコマンドであってもよい。
【００２９】
当該コマンドを受信したスレーブ装置２０の各々は、レスポンスをマスタ装置１０へ送信する。各レスポンスは、送信元のスレーブ装置２０を特定するための情報を含む。例えば、各レスポンスは、対応するコマンドを特定するための識別子（トランザクションＩＤ）と、送信元のスレーブ装置２０を特定するための識別子（ユニットＩＤ）とを含む。
【００３０】
マスタ装置１０は、スレーブ装置２０からのレスポンスを受信すると、その受信した時刻をその送信元のスレーブ装置２０を特定する情報と関連付けて格納する。
【００３１】
コマンドの送信併せて、マスタ装置１０は、内部的なデータの受信動作を開始する。すなわち、マスタ装置１０は、各スレーブ装置２０での受信動作を模擬して、内部的にレスポンスを生成および受信する。典型的には、マスタ装置１０は、コマンドの送信に対して、自己折り返し受信を行う。このとき、マスタ装置１０は、受信動作として、スレーブ装置２０がコマンドを受信して応答を送信する動作と同等な動作を実行するように構成されることが好ましい。
【００３２】
図２に示すように、例えば、マスタ装置１０の自己折り返し受信によって内部的にレスポンスを受信した時刻をｔ０とし、スレーブ装置２０＿１，２０＿２，２０＿３，２０＿４からそれぞれレスポンス１，２，３，４を受信した時刻をそれぞれｔ１，ｔ２，ｔ３，ｔ４とする。マスタ装置１０は、内部的にレスポンスを受信した時刻ｔ０からそれぞれのレスポンスを受信した時刻ｔ１，ｔ２，ｔ３，ｔ４との差である受信遅れ時間ＴＤ１，ＴＤ２，ＴＤ３，ＴＤ４をそれぞれ計測する。なお、マスタ装置１０では、絶対的な時刻を格納するようにしてもよいが、ネットワークで管理している同期カウンタの値などを格納するようにしてもよい。
【００３３】
マスタ装置１０でコマンドの送信が起動された時刻をｔｍ０とし、マスタ装置１０からコマンドが送信され始めた時刻をｔｍ１とする。そして、コマンドがスレーブ装置２０＿１で受信され始められた時刻をｔｍ２とし、コマンドがスレーブ装置２０＿１で受信完了された時刻をｔｍ３とする。すなわち、スレーブ装置２０＿１での受信処理（スレーブ受信処理）に要する時間は、（ｔｍ３−ｔｍ２）となる。
【００３４】
コマンドの送信に併せて、マスタ装置１０は自己折り返し受信を実施する。自己折り返し受信は、スレーブ装置２０での受信処理（スレーブ受信処理）と同等であるので、これに要する時間も（ｔｍ３−ｔｍ２）となる。この自己折り返し受信により内部的に生成されたデータを受信し、その受信時刻がラッチされるまでの処理（マスタ受信処理）に要する時間をΔＴＲとする。
【００３５】
一方、スレーブ装置２０＿１は、スレーブ受信処理が完了すると、レスポンスを生成しマスタ装置１０へ送信する。このレスポンスの送信が開始されてから、マスタ装置１０で当該レスポンスの受信が開始されるまでの時間は、コマンドの送信に係る伝搬遅延時間ΔＴ２と等しく、（ｔｍ２−ｔｍ１）と見積もることができる。また、マスタ装置１０がスレーブ装置２０＿１からのレスポンスを受信し、その受信時刻（時刻ｔ１）がラッチされるまでの処理（マスタ受信処理）に要する時間はΔＴＲ（一定値）である。
【００３６】
時刻ｔ１と時刻ｔ０と時間差は、スレーブ装置２０＿１との間のコマンドの送信およびレスポンスに要する時間である、（ｔｍ１−ｔｍ０）＋（ｔｍ２−ｔｍ１）＋（ｔｍ３−ｔｍ２）＋（ｔｍ２−ｔｍ１）＋ΔＴＲと、マスタ装置１０の自己折り返し受信に要する時間である、（ｔｍ１−ｔｍ０）＋（ｔｍ３−ｔｍ２）＋ΔＴＲとの差に相当する。実際に計算すれば、「（ｔｍ１−ｔｍ０）＋（ｔｍ３−ｔｍ２）＋ΔＴＲ」の項は共通であるのでお互いにキャンセルし、受信遅れ時間ＴＤ１＝ｔ１−ｔ０＝２×（ｔｍ２−ｔｍ１）の関係が成立する。つまり、受信遅れ時間ＴＤ１の１／２が目的とする伝搬遅延時間ΔＴ２となる。
【００３７】
以下同様にして、受信遅れ時間ＴＤ２，ＴＤ３，ＴＤ４からスレーブ装置２０＿２，２０＿３，２０＿４についての伝搬遅延時間ΔＴ２を決定できる。なお、受信遅れ時間ＴＤ１と受信遅れ時間ＴＤ２との時間差は、スレーブ装置２０＿１とスレーブ装置２０＿２との間の伝搬遅延時間の２倍に相当するので、（ＴＤ２−ＴＤ１）／２をスレーブ装置２０＿１とスレーブ装置２０＿２との間の伝搬遅延時間として算出してもよい。以下、受信遅れ時間ＴＤ３およびＴＤ４についても同様である。
【００３８】
なお計測誤差を生じ得るので、統計処理を行うことが好ましい。このような統計処理としては、例えば、平均化処理や、異常値（例えば、平均値から大きく外れた外れ値）の除外処理を含む。
【００３９】
その他にも、図２に示すような関係に基づいて、マスタ装置１０が自己折り返し受信およびレスポンス受信を行ったそれぞれ時刻を用いて、制御システム１における必要な部分の伝搬遅延時間を算出することができる。
【００４０】
上述したように、マスタ装置１０（第１の制御装置）は、複数のスレーブ装置２０（第２の制御装置）に対してレスポンス（応答）を要求するコマンド（第１のデータ）を送信する機能を有している。マスタ装置１０は、さらに、コマンドの送信に連動して、内部的なデータの受信動作を開始するとともに、内部的にデータを受信した時刻ｔ０（第１のタイミング）を格納するとともに、コマンドに応答して、複数のスレーブ装置２０からそれぞれ送信されるレスポンスを受信するとともに、それぞれを受信した時刻ｔ１，ｔ２，ｔ３，ｔ４（第２のタイミング）をそれぞれ格納する機能を有している。そして、マスタ装置１０は、内部的にデータを受信した時刻ｔ０を基準にして、時刻ｔ１，ｔ２，ｔ３，ｔ４の１つまたは複数から、マスタ装置１０といずれかのスレーブ装置２０との間の通信に係る遅延時間、および／または、スレーブ装置２０間の通信に係る遅延時間を決定する機能を有している。
【００４１】
＜Ｃ．装置構成＞
図３は、本実施の形態の制御システム１における装置構成を示す模式図である。図３には、マスタ装置１０およびスレーブ装置２０の通信に関する要部のみを示す。
【００４２】
マスタ装置１０は、制御部１１と、逆シリアル変換回路（de-serializer：以下「ＤＥＳ回路」とも称す。）１２と、受信部１３と、共有メモリ１４と、送信部１５と、シリアル変換回路（ＳＥＲ：serializer：以下「ＳＥＲ回路」とも称す。）１６と、記憶部１７とを含む。
【００４３】
ＤＥＳ回路１２、受信部１３および共有メモリ１４は、データ受信に関する処理を実現する。より具体的には、ＤＥＳ回路１２は、スレーブ装置２０からアップリンクを介して送信されるデータフレーム（シリアル化されたデータ列）に対して逆シリアル変換して受信部１３へ出力する。受信部１３は、スレーブ装置２０から受信したデータを共有メモリ１４に書き込む。共有メモリ１４は、アップリンクを介してスレーブ装置２０から受信したデータを格納する。共有メモリ１４は、制御部１１などからアクセス可能に構成されている。
【００４４】
共有メモリ１４、送信部１５およびＳＥＲ回路１６は、データ送信に関する処理を実現する。より具体的には、送信部１５は、制御部１１からの指示に従って共有メモリ１４に格納されているデータなどをＳＥＲ回路１６へ出力する。ＳＥＲ回路１６は、送信部１５からのデータをシリアル化してデータフレームを生成し、ダウンリンクを介してスレーブ装置２０へ送出する。
【００４５】
制御部１１は、共有メモリ１４に格納されているデータの内容を解釈して必要な処理を実行する。上述したように、いずれかのスレーブ装置２０からレスポンスを受信すると、レスポンスを受信したタイミングとそのレスポンスの送信元の情報とを記憶部１７へ格納する。制御部１１は、また、図示しない上位コントローラや予め定められた設定に従って、送信部１５から必要なデータを送信させるための指示を与える。制御部１１は、カウンタ１８を有している。カウンタ１８は、各種タイミングを計測するための計時手段の一例である。
【００４６】
いずれかのスレーブ装置２０についての伝搬遅延時間の計測が必要になると（例えば、システム立ち上げ時、予め定められた周期毎や、伝送エラーの発生回数または発生頻度が予め定められたしきい値を超えたタイミングなど）、制御部１１は、送信部１５に対して、レスポンスを要求するコマンドを送信するように指示を与える。そして、後述するような自己折り返し受信により内部的に生成されたレスポンスが受信されると、制御部１１は、伝搬遅延計測用のカウンタ１８を起動、すなわちカウントを開始する。さらに、制御部１１は、送信部１５からのコマンドの送信後、受信部１３がいずれかのスレーブ装置２０からレスポンスを受信すると、受信したレスポンスを共有メモリ１４に格納する。制御部１１は、共有メモリ１４にレスポンスが書き込まれると、その書き込みがなされたタイミングにおけるカウンタ１８が示すカウント値とともに、受信されたレスポンスの送信元のスレーブ装置２０を特定する情報を記憶部１７に格納する。このような処理によって、記憶部１７には、受信部１３が受信したレスポンス毎に、送信元のスレーブ装置２０を特定する情報と、受信したタイミングを示すカウント値とが対応付けて格納されることになる。
【００４７】
なお、カウンタ１８が通信ラインを介して接続されている複数のスレーブ装置２０の間で共通に保持されるカウント値の管理を行っている場合には、自己折り返し受信により内部的に生成されたレスポンスおよび各スレーブ装置２０からのレスポンスをそれぞれ受信したタイミングで、そのときのカウンタ１８が示すカウント値を格納するようにしてもよい。
【００４８】
本明細書において、「レスポンスを受信したタイミング」は、受信部１３が受信したレスポンスを共有メモリ１４に書き込んだタイミング、すなわち制御部１１が受信されたレスポンスにアクセス可能になったタイミングを含み得る。あるいは、「レスポンスを受信したタイミング」は、受信部１３がレスポンスを含むフレームの先頭の受信を開始したタイミング、および、受信部１３がレスポンスを含むフレームのすべての受信を完了した（但し、共有メモリ１４への書き込みは完了していない）タイミングをも含み得る。
【００４９】
記憶部１７には、制御システム１のネットワークに関する各種設定が格納されていてもよい。
【００５０】
制御部１１は、さらに、計測された伝搬遅延時間に基づいて、スレーブ装置２０の各々の計時手段を補正するための情報であるオフセット値をそれぞれのスレーブ装置２０に対して与える。この機能については、後述する。
【００５１】
一方、スレーブ装置２０は、制御部２１と、ＤＥＳ回路２２，３０と、受信部２３と、共有メモリ２４と、送信部２５と、ＳＥＲ回路２６，２８と、リピート回路２７，２９とを含む。
【００５２】
ダウンリンクを介してマスタ装置１０から送信されたデータフレームは、ＤＥＳ回路２２によって逆シリアル変換されて、受信部２３およびリピート回路２７へ与えられる。リピート回路２７は、ＤＥＳ回路２２からのデータを成形した上で、ＳＥＲ回路２８へ出力する。ＳＥＲ回路２８は、リピート回路２７からのデータをシリアル化してデータフレームを再生成し、ダウンリンクを介してさらに下流側のスレーブ装置２０へ送出する。つまり、リピート回路２７およびＳＥＲ回路２８は、ダウンリンクを介して送信されるデータフレームを順次転送するための回路に相当する。
【００５３】
一方、受信部２３は、ダウンリンクを介して送信されるデータを共有メモリ２４に書き込む。すなわち、ＤＥＳ回路２２、受信部２３および共有メモリ２４は、データ受信に関する処理を実現する。
【００５４】
各スレーブ装置２０では、ダウンリンクを介して送信されたデータを、さらに下流側へ転送するための回路（リピート回路２７およびＳＥＲ回路２８）と、当該データを受信して自装置で処理する回路（受信部２３および共有メモリ２４）とを含む。
【００５５】
アップリンクを介して下流側のスレーブ装置２０から送信されたデータフレームは、ＤＥＳ回路３０によって逆シリアル変換されてリピート回路２９へ与えられる。リピート回路２９は、ＤＥＳ回路３０からのデータを成形した上で、ＳＥＲ回路２６へ出力する。
【００５６】
また、共有メモリ２４、送信部２５およびＳＥＲ回路２６は、データ送信に関する処理を実現する。より具体的には、送信部２５は、制御部２１からの指示に従って共有メモリ２４に格納されているデータなどをＳＥＲ回路２６へ出力する。このとき、送信部２５は、リピート回路２９からＳＥＲ回路２６へ与えられるデータと衝突しないように、データの出力タイミングを調整する。
【００５７】
ＳＥＲ回路２６は、送信部２５からのデータおよびリピート回路２９からのデータをシリアル化してデータフレームを生成し、アップリンクを介してマスタ装置１０または上流側のスレーブ装置２０へ送出する。
【００５８】
制御部２１は、受信部２３からの情報に従って共有メモリ２４にアクセスするとともに、共有メモリ２４に格納されたデータの内容を解釈して必要な処理を実行する。上述したように、共有メモリ２４にマスタ装置１０からのレスポンスを要求するコマンドが格納されると、レスポンスを送信するように、送信部２５へ指示を与える。また、制御部２１は、予め定められた設定やプログラムに従って、送信部２５から必要なデータを送信させるための指示を与える。
【００５９】
マスタ装置１０およびスレーブ装置２０の通信に係る機能については、その全部または一部をＡＳＩＣやＦＰＧＡ（Field-Programmable Gate Array）などのハードウェア回路を用いて実現してもよい。あるいは、その一部または全部の機能を、プロセッサでプログラムを実行させることで実現されるソフトウェアコンポーネントとして実装してもよい。さらに、複数のコンポーネントを単一の回路にまとめて実装してもよい。本明細書において説明する機能および処理が実現できれば、どのような構成で実装されてもよい。
【００６０】
＜Ｄ．スレーブ装置での受信処理に要する時間および局遅延時間＞
各スレーブ装置２０での受信処理に要する時間（図２参照）は、主として、受信部２３がデータを受信して共有メモリ２４に書き込む処理に要する時間と、送信部２５が共有メモリ２４からデータを読み出してデータフレームを生成して出力する処理に要する時間とからなる（図３参照）。
【００６１】
なお、ダウンリンクについての伝搬遅延時間としては、ＤＥＳ回路２２、リピート回路２７、ＳＥＲ回路２８による一連のフレーム転送に係る遅延時間（以下「局遅延時間」とも称す。）を含み得る。同様に、アップリンクについての伝搬遅延時間としては、ＤＥＳ回路３０、リピート回路２９、ＳＥＲ回路２６による一連のフレーム転送に係る遅延時間（局遅延時間）を含み得る。
【００６２】
＜Ｅ．マスタ装置での自己折り返し受信＞
マスタ装置１０は、マスタ装置１０での受信動作として、スレーブ装置２０がコマンドを受信して応答を送信する動作と同等な動作を実行するように構成されている。すなわち、マスタ装置１０は、レスポンスを要求するコマンドを送信するとともに、自己折り返し受信を実施する。以下、自己折り返し受信を行うための構成の一例について説明する。
【００６３】
図４は、本実施の形態の制御システム１でのマスタ装置１０での自己折り返し受信を実現するための装置構成を示す模式図である。
【００６４】
図４（ａ）に示すマスタ装置１０では、送信部１５は、制御部１１からの指示に従って、レスポンスを要求するコマンドを生成してＳＥＲ回路１６へ出力する。送信部１５は、スレーブ装置２０へデータを送信する。さらに、送信部１５は、コマンドの出力とともに、疑似的なレスポンスを生成して受信部１３へ出力する。受信部１３は、スレーブ装置２０からのデータを受信するための構成であるとともに、疑似的なレスポンスを受信すると共有メモリ１４へ格納する。制御部１１は、共有メモリ１４に格納された疑似的なレスポンスを検出して、内部的にレスポンスを受信したと判断する。このように、マスタ装置１０での内部的なデータの受信動作は、送信部１５から受信部１３へ内部的にデータを出力する処理を含む。
【００６５】
図４（ｂ）に示すマスタ装置１０では、送信部１５は、制御部１１からの指示に従って、レスポンスを要求するコマンドを生成してＳＥＲ回路１６へ出力するとともに、疑似的なレスポンスを生成して共有メモリ１４へ直接的に格納する。共有メモリ１４は、送信部１５および受信部１３で共有される記憶部に相当する。制御部１１は、共有メモリ１４に格納された疑似的なレスポンスを検出して、内部的にレスポンスを受信したと判断する。このように、マスタ装置１０での内部的なデータの受信動作は、受信部１３が共有メモリ１４へ内部的にデータを格納する処理を含む。
【００６６】
＜Ｆ．レスポンスのフレーム長さ＞
次に、レスポンスのフレーム長さについて説明する。
【００６７】
図５は、本実施の形態の制御システム１における各装置を伝搬するフレームのタイムチャートの一例を示す模式図である。図５を参照して、基準時刻において、マスタ装置１０からレスポンスを要求するコマンドの送信が開始されたとする。すなわち、マスタ装置１０のダウンリンクの送信ポートからコマンドの送出が開始される。このコマンドは、スレーブ装置２０＿１の受信ポートまで伝搬し、スレーブ装置２０＿１内部でのフレーム転送処理が実行されて、スレーブ装置２０＿１の送信ポートから再送出される。
【００６８】
スレーブ装置２０＿１から再送出されたコマンドがスレーブ装置２０＿２の受信ポートまで伝搬し、スレーブ装置２０＿１と同様の処理が実行される。
【００６９】
一方、スレーブ装置２０＿１では、マスタ装置１０からのコマンドを受信すると、レスポンス１を生成し、アップリンクの送信ポートから当該レスポンス１の送出が開始される。
【００７０】
同様に、スレーブ装置２０＿２では、スレーブ装置２０＿１から再送出されたコマンドを受信すると、レスポンス２を生成し、アップリンクの送信ポートから当該レスポンス２の送出が開始される。さらに、レスポンス２は、アップリンクをスレーブ装置２０＿１の受信ポートまで伝搬し、スレーブ装置２０＿１内部でのフレーム転送処理が実行されて、スレーブ装置２０＿１の送信ポートから再送出される。
【００７１】
したがって、スレーブ装置２０＿１のアップリンクの送信ポートにおいて、レスポンス１の送出が開始されてから、後続のレスポンス１の送出が開始されるまでの時間差は、伝搬遅延時間ΔＴ２×２となる。言い換えれば、レスポンスのフレーム長さは、この時間差以内になるようにすることが好ましい。
【００７２】
但し、伝搬遅延時間ΔＴ２がわずかである場合には、例えば、スレーブ装置２０＿２におけるスレーブ受信処理に要する時間を意図的に長くするようにしてもよい。例えば、マスタ装置１０からのコマンドを受信してから、受信処理を開始するまでの遅延タイマを設けてもよい。遅延タイマの値を予め適切な値に設定しておくことで、レスポンスに含めるべき情報を格納するだけのフレーム長さを確保することができる。
【００７３】
＜Ｇ．遅延時間計測およびオフセット設定＞
本実施の形態の制御システム１においては、各スレーブ装置２０は、マスタ装置１０からのコマンドに従ってレスポンスを送信する。そのため、マスタ装置１０は、任意のタイミングで、伝搬遅延時間を計測することができる。また、マスタ装置１０がスレーブ装置２０からのデータ伝送を完全に制御できる構成においては、ダウンリンクおよびアップリンクのいずれにおいても、他のデータフレームが伝送されることを停止した上で、伝搬遅延時間の計測に必要なコマンドを送出することができる。
【００７４】
また、伝搬遅延時間を計測するために専用のコマンドを用意する必要はなく、例えば、各スレーブ装置２０のステータスや保持しているデータなどの送信を要求するようなものを利用してもよい。この場合には、マスタ装置１０に接続されているすべてのスレーブ装置２０からのレスポンスを受信する必要はなく、対象となるスレーブ装置２０からのレスポンスを受信して、当該スレーブ装置２０についての伝搬遅延時間を計測するようにしてもよい。
【００７５】
マスタ装置１０の記憶部１７には、レスポンスを受信したタイミングとそのレスポンスの送信元の情報とが対応付けて格納される。記憶部１７に格納されるタイミングと送信元の情報とを用いて、伝搬遅延時間を都度計測してもよいし、必要に応じて事後的に計測してもよい。また、伝搬遅延時間を計測する処理主体としても、マスタ装置１０そのものであってもよいし、マスタ装置１０に接続された外部装置（例えば、ＰＬＣのサポート装置）であってもよい。
【００７６】
なお、レスポンスの受信時にノイズなどの各種外乱によって、コマンドの送出およびレスポンスの受信が適切に行われない場合も想定し得る。このような場合には、伝搬遅延時間を適切に計測できない。このような伝搬遅延時間を適切に計測できないケースを除外するために、例えば、レスポンスを要求するコマンドをブロードキャストまたはマルチキャストし、すべてのスレーブ装置２０からレスポンスを受信できた場合に限って、伝搬遅延時間を計測するようにしてもよい。つまり、いずれかのスレーブ装置２０からレスポンスを受信できなかった場合には、伝搬遅延時間を計測しないようにしてもよい。
【００７７】
また、マスタ装置１０からコマンドを送出した後、各スレーブ装置２０からのレスポンスを受信するまでの時間は予め予想できるので、この予想された時間内にすべてのレスポンスを受信できない場合などには、何らかの異常が生じたと判断し、伝搬遅延時間を計測しないようにしてもよい。
【００７８】
以上のように、マスタ装置１０（あるいは、マスタ装置１０に接続された外部装置）が伝搬遅延時間を計測した後、制御システム１を構成する各スレーブ装置２０に対して、それぞれの伝搬遅延時間に応じたオフセット値を与えることが好ましい。このオフセット値は、ネットワークで管理している同期カウンタでのカウント値として定義される。各スレーブ装置２０は、自局に設定されたオフセット値を用いて、通信タイミングや入出力の更新タイミングなどを制御する。このように、マスタ装置１０は、決定された遅延時間に基づいて、スレーブ装置２０の各々の計時手段（同期タイマ）を補正するための情報を複数のスレーブ装置２０へそれぞれ送信する機能を有している。
【００７９】
各スレーブ装置２０は、制御システム１のネットワークを伝搬する同期フレームを受信するとともに、その同期フレームに格納された時刻情報を取得する。その上で、各スレーブ装置２０は、予めマスタ装置１０から与えられている補正値と当該取得した時刻情報とから自己の計時手段（タイマ）を補正する。
【００８０】
＜Ｈ．制御手順＞
図６は、本実施の形態の制御システム１のマスタ装置１０が実行する伝搬遅延時間の計測に係る処理手順である。図６を参照して、伝搬遅延時間の計測が必要になると（ステップＳ２においてＹＥＳ）、マスタ装置１０は、レスポンスを要求するコマンドを送信する（ブロードキャストまたはマルチキャストする）（ステップＳ４）。併せて、マスタ装置１０は、自己折り返しによって内部的にレスポンスを生成し、自装置が生成したレスポンスを受信する（ステップＳ６）。自装置が生成したレスポンスの受信後、マスタ装置１０は、伝搬遅延計測用のタイマを起動する（カウントを開始する）（ステップＳ８）。
【００８１】
各スレーブ装置２０は、マスタ装置１０からのコマンドを受信すると、アップリンクを介してレスポンスを送信する（ステップＳ１０）。マスタ装置１０は、各スレーブ装置２０からのレスポンスを受信すると、レスポンスを受信したタイミングとそのレスポンスの送信元の情報とを格納する（ステップＳ１２）。
【００８２】
すべてのスレーブ装置２０からのレスポンスの受信が完了すると（ステップＳ１４においてＹＥＳの場合）、マスタ装置１０は、格納したそれぞれのレスポンスを受信したタイミングを示すカウント値を用いて、それぞれの伝搬遅延時間を計測する（ステップＳ１６）。さらに、マスタ装置１０は、各スレーブ装置２０に対して、計測した各伝搬遅延時間に応じたオフセット値を指示する（ステップＳ１８）。以上の処理によって、制御システム１においてマスタ装置１０およびスレーブ装置２０の間で同期をとるための設定が完了する。そして、処理は終了する。
【００８３】
＜Ｉ．利点＞
本実施の形態によれば、より簡素な構成を維持しつつ、装置間で同期をとることができる。すなわち、本実施の形態の制御システム１においては、マスタ装置１０から各スレーブ装置２０に対してレスポンスを要求するコマンドを送信するとともに、マスタ装置１０自身においてもコマンドの送信に対して、自己折り返し受信を行う。そして、マスタ装置１０が内部的にデータを受信した（自己折り返しにより生じた疑似的なレスポンスを内部的に受信した）タイミングを基準にして、１または複数のスレーブ装置２０からそれぞれの受信したレスポンスのタイミングを計測し、マスタ装置１０といずれかのスレーブ装置２０との間の通信に係る遅延時間、および／または、スレーブ装置２０間の通信に係る遅延時間を決定する。
【００８４】
このような構成を採用することで、基本的には、スレーブ装置２０側に特別な機能を追加する必要はなく、かつ、マスタ装置１０に付加される機能も最小限で済む。また、レスポンスを要求するコマンドなどは、マスタ装置１０とスレーブ装置２０との間で各種情報を遣り取りするための命令と兼用することもできるので、既存の命令群に対して大幅な改編なども必要ない。
【００８５】
また、マスタ装置１０での内部的なデータの受信動作に係るタイミングを基準とすることで、遅延時間をより適切かつ正確に計測できる。
【００８６】
今回開示された実施の形態はすべての点で例示であって制限的なものではないと考えられるべきである。本発明の範囲は、上記した説明ではなく、特許請求の範囲によって示され、特許請求の範囲と均等の意味および範囲内でのすべての変更が含まれることが意図される。
【符号の説明】
【００８７】
１  制御システム、１０  マスタ装置、１１，２１  制御部、１２，２２，３０  ＤＥＳ回路、１３，２３  受信部、１４，２４  共有メモリ、１５，２５  送信部、１６，２６，２８  ＳＥＲ回路、１７  記憶部、１８  カウンタ、２０  スレーブ装置、２７，２９  リピート回路。
【図１】
2015176366.tif 000003
【図２】
2015176366.tif 000004
【図３】
2015176366.tif 000005
【図４】
2015176366.tif 000006
【図５】
2015176366.tif 000007
【図６】
2015176366.tif 000008