(57)【要約】【課題】互いに異なるプロトコル間での時刻同期を実現するための新たな構成を提供する。【解決手段】機械または設備を制御するための制御システムを構成する制御装置が提供される。制御装置は、第１のプロトコルに従ってデータを送受信する第１の通信手段を含む。第１の通信手段は、データ伝送のタイミングを規定する、データが送受信される主体の間で互いに時刻同期された第１のタイマを有している。制御装置は、第１のプロトコルとは異なる第２のプロトコルに従ってデータを送受信する第２の通信手段を含む。第２の通信手段は、データ伝送のタイミングを規定する、データが送受信される主体の間で互いに時刻同期された第２のタイマを有している。制御装置は、第１のタイマと第２のタイマとの間で時刻同期するための同期手段を含む。【選択図】図２
2018064219.tif 000002
【特許請求の範囲】
【請求項１】
機械または設備を制御するための制御システムを構成する制御装置であって、
第１のプロトコルに従ってデータを送受信する第１の通信手段を備え、前記第１の通信手段は、データ伝送のタイミングを規定する、データが送受信される主体の間で互いに時刻同期された第１のタイマを有しており、
前記第１のプロトコルとは異なる第２のプロトコルに従ってデータを送受信する第２の通信手段を備え、前記第２の通信手段は、データ伝送のタイミングを規定する、データが送受信される主体の間で互いに時刻同期された第２のタイマを有しており、
前記第１のタイマと前記第２のタイマとの間で時刻同期するための同期手段を備える、制御装置。
【請求項２】
前記同期手段は、前記第１のタイマを基準として、前記第２のタイマを時刻補正する、請求項１に記載の制御装置。
【請求項３】
前記同期手段は、前記第２の通信手段との間で時刻同期された主体の各々は、時刻補正後の前記第２のタイマに時刻同期する、請求項２に記載の制御装置。
【請求項４】
前記同期手段は、
予め指定した一定周期毎に同期信号を前記第２のタイマへ出力するように前記第１のタイマを設定する手段と、
前記第１のタイマに設定した前記同期信号を出力すべきタイミングを示す第１のタイマでの第１の時刻を前記第２のタイマへ通知する手段と、
前記第１のタイマが出力した前記同期信号が前記第２のタイマで検知されたときの前記第２のタイマでの第２の時刻と前記第１の時刻との差分に基づいて、前記第２のタイマを時刻補正する手段とを含む、請求項２または３に記載の制御装置。
【請求項５】
第３のタイマを有する外部装置に接続するためのインターフェイスをさらに備え、
前記同期手段は、前記外部装置の前記第３のタイマを基準として、前記第１のタイマおよび前記第２のタイマを時刻補正する、請求項１〜４のいずれか１項に記載の制御装置。
【請求項６】
前記外部装置は、前記第１の通信手段および前記第２の通信手段とは独立した通信手段を介して前記制御装置に接続される、請求項５に記載の制御装置。
【請求項７】
前記外部装置は、前記第１の通信手段および前記第２の通信手段のいずれかとデータを送受信する主体を介して、前記制御装置に接続される、請求項５に記載の制御装置。
【請求項８】
前記同期手段は、
指定された第３の時刻になると同期信号を前記第１のタイマへ出力するように前記第３のタイマを設定する手段と、
前記第３のタイマが出力した前記同期信号が前記第１のタイマで検知されたときに格納された前記第１のタイマでの第４の時刻を前記第１のタイマから読出す手段と、
前記第３の時刻と前記第４の時刻との差分に基づいて、前記第１のタイマに対して時刻補正を指示する手段とを含む、請求項５〜７のいずれか１項に記載の制御装置。
【請求項９】
前記同期手段は、前記第１のタイマに含まれるノイズフィルタについての設定を与える手段を含み、
前記第１のタイマは、前記ノイズフィルタについての設定に基づいて、前記ノイズフィルタにより生じる時間遅れを補償した上で前記第４の時刻を格納する、請求項８に記載の制御装置。
【請求項１０】
第１のプロトコルに従ってデータを送受信する第１の通信手段を備え、前記第１の通信手段は、データ伝送のタイミングを規定する、データが送受信される主体の間で互いに時刻同期された第１のタイマを有しており、
前記第１のプロトコルとは異なる第２のプロトコルに従ってデータを送受信する第２の通信手段を備え、前記第２の通信手段は、データ伝送のタイミングを規定する、データが送受信される主体の間で互いに時刻同期された第２のタイマを有しており、
前記第１のタイマと前記第２のタイマとの間で時刻同期するための同期手段を備える、通信装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、機械または設備を制御するための制御システムを構成する制御装置および通信装置に関する。
【背景技術】
【０００２】
様々なＦＡ（Factory Automation）を実現するための主たるコンポーネントとして、ＰＬＣ（プログラマブルコントローラ）などの制御装置が普及している。このような制御装置は、１または複数の機能ユニットとの間でバスまたはネットワークを介してデータを送受信する。
【０００３】
複数の機能ユニットがバスまたはネットワークを介して接続される場合、データが伝送されることによる遅延が生じる。このような伝送遅延の大きさは機能ユニットが接続されている位置に応じてばらつく。このような遅延時間のばらつきに依存して、機能ユニットが入力データを取得する、および、出力データを出力するタイミングもばらつく可能性がある。
【０００４】
このような課題に対して、特開２０１４−１２０８８４号公報（特許文献１）は、マスタ装置とネットワークを介して接続される１つまたは複数のスレーブ装置とを備える制御システムにおける同期タイミングを容易に決定できる環境を開示する。特許文献１に開示される制御システムは、関係する装置またはユニットの間で時刻同期を行って、指定されたタイミングで必要な処理を行う。
【先行技術文献】
【特許文献】
【０００５】
【特許文献１】特開２０１４−１２０８８４号公報
【発明の概要】
【発明が解決しようとする課題】
【０００６】
制御システムの高機能化に伴って、互いに異なるバスまたはネットワークを介して送受信を送受信するような構成も実現しつつある。このような構成においては、互いに異なるプロトコルに従う通信によってデータが送受信される。
【０００７】
制御システムに含まれる機能ユニットの間で入力または出力のタイミングを同期させることが好ましく、それを実現するためには、互いに異なるプロトコルの間でも、時刻同期を行う技術が必要となる。特許文献１は、このような互いに異なるプロトコル間での時刻同期については何ら開示していない。
【０００８】
本発明は、互いに異なるプロトコル間での時刻同期を実現するための新たな構成を提供することを目的とする。
【課題を解決するための手段】
【０００９】
本発明のある局面に従えば、機械または設備を制御するための制御システムを構成する制御装置が提供される。制御装置は、第１のプロトコルに従ってデータを送受信する第１の通信手段を含む。第１の通信手段は、データ伝送のタイミングを規定する、データが送受信される主体の間で互いに時刻同期された第１のタイマを有している。制御装置は、第１のプロトコルとは異なる第２のプロトコルに従ってデータを送受信する第２の通信手段を含む。第２の通信手段は、データ伝送のタイミングを規定する、データが送受信される主体の間で互いに時刻同期された第２のタイマを有している。制御装置は、第１のタイマと第２のタイマとの間で時刻同期するための同期手段を含む。
【００１０】
好ましくは、同期手段は、第１のタイマを基準として、第２のタイマを時刻補正する。
好ましくは、同期手段は、第２の通信手段との間で時刻同期された主体の各々は、時刻補正後の第２のタイマに時刻同期する。
【００１１】
好ましくは、同期手段は、予め指定した一定周期毎に同期信号を第２のタイマへ出力するように第１のタイマを設定する手段と、第１のタイマに設定した同期信号を出力すべきタイミングを示す第１のタイマでの第１の時刻を第２のタイマへ通知する手段と、第１のタイマが出力した同期信号が第２のタイマで検知されたときの第２のタイマでの第２の時刻と第１の時刻との差分に基づいて、第２のタイマを時刻補正する手段とを含む。
【００１２】
好ましくは、制御装置は、第３のタイマを有する外部装置に接続するためのインターフェイスをさらに含む。同期手段は、外部装置の第３のタイマを基準として、第１のタイマおよび第２のタイマを時刻補正する。
【００１３】
好ましくは、外部装置は、第１の通信手段および第２の通信手段とは独立した通信手段を介して制御装置に接続される。
【００１４】
好ましくは、外部装置は、第１の通信手段および第２の通信手段のいずれかとデータを送受信する主体を介して、制御装置に接続される。
【００１５】
好ましくは、同期手段は、指定された第３の時刻になると同期信号を第１のタイマへ出力するように第３のタイマを設定する手段と、第３のタイマが出力した同期信号が第１のタイマで検知されたときに格納された第１のタイマでの第４の時刻を第１のタイマから読出す手段と、第３の時刻と第４の時刻との差分に基づいて、第１のタイマに対して時刻補正を指示する手段とを含む。
【００１６】
好ましくは、同期手段は、第１のタイマに含まれるノイズフィルタについての設定を与える手段を含む。第１のタイマは、ノイズフィルタについての設定に基づいて、ノイズフィルタにより生じる時間遅れを補償した上で第４の時刻を格納する。
【００１７】
本発明の別の局面に従う通信装置は、第１のプロトコルに従ってデータを送受信する第１の通信手段を含む。第１の通信手段は、データ伝送のタイミングを規定する、データが送受信される主体の間で互いに時刻同期された第１のタイマを有している。通信装置は、第１のプロトコルとは異なる第２のプロトコルに従ってデータを送受信する第２の通信手段を含む。第２の通信手段は、データ伝送のタイミングを規定する、データが送受信される主体の間で互いに時刻同期された第２のタイマを有している。通信装置は、第１のタイマと第２のタイマとの間で時刻同期するための同期手段を含む。
【発明の効果】
【００１８】
本発明に従えば、互いに異なるプロトコル間での時刻同期を実現することができる。
【図面の簡単な説明】
【００１９】
【図１】本実施の形態に係る制御システムの要部構成を示す模式図である。
【図２】本実施の形態に係る制御システムが提供する時刻同期機能について説明するための模式図である。
【図３】本実施の形態に係る制御システムが提供する時刻同期機能について説明するための模式図である。
【図４】本実施の形態に係る制御システムの構成例１における各タイマの機能を示す模式図である。
【図５】本実施の形態に係る制御システムの構成例１における通信制御回路のタイマとバスマスタ回路のタイマとの間の時刻同期手順の一例を示すシーケンス図である。
【図６】本実施の形態に係る制御システムの構成例２における各タイマの機能を示す模式図である。
【図７】図６に示すＣＰＵユニットおよび外部装置の要部を示す模式図である。
【図８】本実施の形態に係る制御システムの構成例２における外部装置のタイマと通信制御回路のタイマとの間の時刻同期手順の一例を示すシーケンス図である。
【図９】タイマのラッチ機能にノイズフィルタが実装される場合における検知誤差を補正する方法を説明するための模式図である。
【図１０】本実施の形態に係る制御システムの構成例３における各タイマの機能を示す模式図である。
【図１１】図１０に示すＣＰＵユニットおよび外部装置の要部を示す模式図である。
【図１２】本実施の形態に係る制御システムの構成例３における通信制御回路のタイマと外部装置のタイマとの間の時刻同期手順の一例を示すシーケンス図である。
【図１３】図１２のシーケンスＳＱ３０２において設定されるパラメータとアサートされる同期信号との関係を示すタイムチャートである。
【図１４】本実施の形態に係る制御システムの構成例４における各タイマの機能を示す模式図である。
【図１５】本実施の形態に係る制御システムの構成例５における各タイマの機能を示す模式図である。
【発明を実施するための形態】
【００２０】
本発明の実施の形態について、図面を参照しながら詳細に説明する。なお、図中の同一または相当部分については、同一符号を付してその説明は繰返さない。
【００２１】
以下の説明においては、ＰＬＣ（プラグラマブルコントローラ）を中心とするシステム（以下では「制御システム」とも称する）を具体例として説明するが、ＰＬＣとの名称に限定されることなく、本明細書に開示された技術的思想は、任意の制御装置に対して適用可能である。
【００２２】
＜Ａ．システム構成＞
次に、本実施の形態に係る制御システム１の装置構成について説明する。図１は、本実施の形態に係る制御システム１の要部構成を示す模式図である。
【００２３】
図１を参照して、本実施の形態に係る制御システム１は、主として、機械または設備を制御する。制御システム１は、１または複数の通信手段を有しており、各通信手段を介してデータが送受信される。本明細書において、「通信手段」は、複数の主体（例えば、装置やユニット）の間で、何らかのプロトコルに従ってデータを送受信するためのフレームワーク全般を包含する。例えば、「通信手段」は、パラレル通信方式およびシリアル通信方式のいずれであってもよく、また、バスおよびネットワークのいずれであってもよい。
【００２４】
一例として、制御システム１は、ＰＬＣを構成するＣＰＵユニット１００と、フィールドネットワーク３を介して接続されている１または複数の通信カプラユニット２００−１，２００−２，…（以下、「通信カプラユニット２００」とも総称する。）とを含む。ＣＰＵユニット１００または通信カプラユニット２００の各々には、１または複数の機能ユニットが装着されてもよい。通信カプラユニット２００と１または複数の機能ユニットとの集合は、リモートＩ／Ｏ装置と称されることもある。
【００２５】
図１に示す制御システム１においては、ＣＰＵユニット１００には、ローカルバス２を介して機能ユニット１５０−１，１５０−２，…が接続されている。また、通信カプラユニット２００−１には、ローカルバス４−１を介して機能ユニット１５０−１１，１５０−１２，１５０−１３，…が接続されており、通信カプラユニット２００−２には、ローカルバス４−２を介して機能ユニット１５０−２１，１５０−２２，１５０−２３，…が接続されている。なお、これらの機能ユニットを「機能ユニット１５０」とも総称し、ローカルバス４−１，４−２，…を「ローカルバス４」とも総称する。
【００２６】
本実施の形態に係る制御システム１において、ローカルバス２と、フィールドネットワーク３と、ローカルバス４−１と、ローカルバス４−２とは、フィールドデータの遣り取りに適した通信方式が採用される。典型的には、通信周期またはデータ伝送時間などが予測可能な通信方式が採用されることが好ましい。このような通信方式の一例として、データの伝送時間が保証される通信方式を採用してもよい。このような通信方式には、一種の定周期バスまたは一種の定周期ネットワークが採用される。
【００２７】
定周期バスとしては、任意のバス通信方式を採用できる。定周期ネットワークとしては、ＥｔｈｅｒＣＡＴ（登録商標）、ＥｔｈｅｒＮｅｔ／ＩＰ（登録商標）、ＤｅｖｉｃｅＮｅｔ（登録商標）、ＣｏｍｐｏＮｅｔ（登録商標）などの公知のプロトコルに係るネットワークを採用してもよい。
【００２８】
また、データの伝送時間を保証できない通信方式を採用した場合には、伝送時間のゆらぎに応じたマージンを考慮した上で、データ伝送タイミングをスケジューリングするようにすることで、定周期バスまたは定周期ネットワークと同様の機能を実現できる。
【００２９】
このようなフィールドデータの転送を実現するにあたって、データ転送に関係する各部が互いに時刻同期されたタイマを有する構成を想定する。すなわち、それぞれのバスまたはそれぞれのネットワークにおいて、各部は、互いに時刻同期されたタイマを用いて指定されるタイミングで、データの送信または受信を行う。
【００３０】
本実施の形態に係る制御システム１においては、ローカルバス２と、フィールドネットワーク３と、ローカルバス４とは、互いに同一のプロトコルを採用してもよいし、互いに独立したプロトコルを採用してもよい。但し、いずれのプロトコルを採用した場合であっても、データ転送の基準となるタイマが配置されるとする。
【００３１】
タイマとしては、リアルタイムクロックを採用することもできるが、本実施の形態においては、所定周期でカウントアップ（インクリメント）するフリーランカウンタ（Free Run Counter：以下「ＦＲＣ」とも称する。）が用いられる。フリーランカウンタが出力するカウンタ値をある時点からの経過時間として扱うことで、現在時刻を計算でき、これによってタイマとして機能させることができる。
【００３２】
なお、ローカルバス２、フィールドネットワーク３、および、ローカルバス４といった名称は、説明の便宜上ものであり、本発明の技術的範囲はこれらの名称によって限定されるものではない。
【００３３】
以下、制御システム１を構成する各ユニットの構成について説明する。
（ａ１：ＣＰＵユニット１００）
ＣＰＵユニット１００は、ＰＬＣを含む制御システム１を構成する一要素であり、制御システム１での処理を制御する制御装置に相当する。ＣＰＵユニット１００と１または複数の機能ユニット１５０との間は、通信手段の一例であるローカルバス２を介して接続されている。そのため、ＣＰＵユニット１００は、一種の通信装置としても機能する。
【００３４】
ＣＰＵユニット１００は、プロセッサ１０２と、メモリ１０４と、通信制御回路１１０と、ネットワークインターフェイスカード（Network Interface Card；以下、「ＮＩＣ」とも略称する。）１２０と、バスマスタ回路１３０と、外部インターフェイス１４０とを含む。
【００３５】
プロセッサ１０２は、メモリ１０４などに格納されているプログラムを実行する。説明の便宜上、図１には、１つのプロセッサ１０２のみを描くが、複数のプロセッサを実装してもよい。なお、各プロセッサは、複数のコアを有していてもよい。
【００３６】
メモリ１０４は、プロセッサ１０２でのプログラムの実行に必要なワーク領域を提供する部位（典型的には、揮発性メモリ）と、プロセッサ１０２で実行されるプログラム自体を格納する部位（典型的には、不揮発性メモリ）とを含む。揮発性メモリとしては、ＤＲＡＭ（Dynamic Random Access Memory）やＳＲＡＭ（Static Random Access Memory）などを用いることができ、不揮発性メモリとしては、フラッシュメモリやハードディスクなどを用いることができる。
【００３７】
メモリ１０４は、ユーザプログラム１０６およびシステムプログラム１０８などを格納する。システムプログラム１０８は、プロセッサ１０２においてユーザプログラム１０６を実行するためのＯＳ（Operating System）およびライブラリなどを含む。ユーザプログラム１０６は、典型的には、１または複数の機能ユニットが収集したデータ（入力データ）の取得処理や、１または複数の機能ユニットへ送信するデータ（出力データ）の生成処理を実行するための指令を含み、制御対象の機械や設備に応じて任意に作成される。
【００３８】
通信制御回路１１０は、プロセッサ１０２とＮＩＣ１２０およびバスマスタ回路１３０との間で要求を仲介する機能を有しており、例えば、プロセッサ１０２からの通信要求に応答して、ＮＩＣ１２０および／またはバスマスタ回路１３０に対して、出力データの送信を要求する。通信制御回路１１０は、制御ロジック１１２およびタイマ１１４を有している。制御ロジック１１２は、通信制御回路１１０に課された責務を果たす部位であり、ソフトウエア実装および／またはハードウェア実装により実現される。タイマ１１４は、制御ロジック１１２における制御タイミングの基準となるパルス（クロック）を発生するフリーランカウンタを含む。
【００３９】
通信制御回路１１０の少なくとも主要部については、ハードワイヤードな構成を有することで、プロセッサ１０２より高速な処理を実現することが好ましい。すなわち、通信制御回路１１０は、ハードウェアロジックを用いて実現される。例えば、通信制御回路１１０は、ＰＬＤ（Programmable Logic Device）の一例であるＦＰＧＡ（Field-Programmable Gate Array）や、ＩＣ（Integrated Circuit）の一例であるＡＳＩＣ（Application Specific Integrated Circuit）などを用いて実装されてもよい。
【００４０】
図１に示す構成においては、一例として、プロセッサ１０２と、通信制御回路１１０と、ＮＩＣ１２０とが同一のチップ上に実装されたＳｏＣ（System on Chip）１０１として構成される。但し、このような構成に限定されるものではなく、各部を別々のチップ上に実装してもよいし、あるいは、全体をまとめて同一のチップ上に実装してもよい。このような実装形態については、要求される性能やコストなどを考慮して適宜選択される。
【００４１】
ＮＩＣ１２０は、フィールドネットワーク３上のデータ転送を管理する通信マスタとして機能する。すなわち、ＮＩＣ１２０は、通信手段の一例であるフィールドネットワーク３を介して、リモートＩ／Ｏ装置（通信カプラユニット２００および通信カプラユニット２００に装着される機能ユニット）との間でデータを送受信する。
【００４２】
ＮＩＣ１２０は、フィールドネットワーク３上でのデータ転送を管理するための制御ロジック１２２を含む。より具体的には、制御ロジック１２２は、フィールドネットワーク３上を転送されるデータの伝送時間を保証するための時間管理および送受信タイミング管理などを行う。後述するように、ＮＩＣ１２０の制御ロジック１２２は、通信制御回路１１０のタイマ１１４が管理する時刻に基づいて制御タイミングを決定する。
【００４３】
バスマスタ回路１３０は、ローカルバス２上のデータ転送を管理する通信マスタとして機能する。すなわち、バスマスタ回路１３０は、通信手段の一例であるローカルバス２を介して、ＣＰＵユニット１００に装着される機能ユニット１５０との間でデータを送受信する。
【００４４】
バスマスタ回路１３０は、ローカルバス２上でのデータ転送を管理するための制御ロジック１３２と、制御ロジック１３２における制御タイミングを決定するタイマ１３４とを含む。制御ロジック１３２は、ローカルバス２上を転送されるデータの伝送時間を保証するための時間管理および送受信タイミング管理などを行う。
【００４５】
外部インターフェイス１４０は、任意の外部装置３００とのデータの送受信を仲介する。外部インターフェイス１４０は、一例として、ＰＣＩ  ＥｘｐｒｅｓｓやＵＳＢ（Universal Serial Bus）といった汎用的なインターフェイス規格のものを採用できる。すなわち、外部装置３００は、ローカルバス２またはフィールドネットワーク３とは独立した通信手段を介してＣＰＵユニット１００に接続されてもよい。後述するように、外部装置３００としては、時刻同期の基準となるタイマを有する外部装置を採用できる。外部装置３００が有するタイマを利用する構成については、後述する。
【００４６】
（ａ２：機能ユニット１５０）
機能ユニット１５０は、制御システム１による様々な機械や設備の制御を実現するために必要な各種機能を提供する。典型的には、機能ユニット１５０の各々は、制御対象の機械や設備などからのフィールド情報の収集や、制御対象の機械や設備などへの指令信号の出力などを司る。
【００４７】
機能ユニット１５０の各々は、ＣＰＵユニット１００のバスマスタ回路１３０の管理下でデータ転送を行うバススレーブとして機能する。より具体的には、ローカルバス２上のデータ転送に関連して、機能ユニット１５０の各々は、ローカルバス２上でのデータ転送を管理するための制御ロジック１５２と、制御ロジック１５２における制御タイミングを決定するタイマ１５４とを含む。制御ロジック１５２は、バスマスタ回路１３０の指令に従って、ローカルバス２上を転送されるデータの送信または受信のタイミングを管理する。また、制御ロジック１５２は、バスマスタ回路１３０のタイマ１３４と時刻同期するように、タイマ１５４がパルスを発生するタイミングを監視および調整する。
【００４８】
また、後述するように、ローカルバス４を介して通信カプラユニット２００に装着される場合も同様である。
【００４９】
（ａ３：通信カプラユニット２００）
通信カプラユニット２００は、ローカルバス４を介して通信カプラユニット２００に装着される１または複数の機能ユニット１５０とＣＰＵユニット１００との間でのデータの送受信を仲介する中継装置として機能する。より具体的には、通信カプラユニット２００は、ネットワークインターフェイス回路２１０と、バスマスタ回路２２０とを含む。
【００５０】
ネットワークインターフェイス回路２１０は、ＣＰＵユニット１００のＮＩＣ１２０の管理下で、フィールドネットワーク３上でデータ転送を行うネットワークスレーブとして機能する。より具体的には、ネットワークインターフェイス回路２１０は、フィールドネットワーク３上でのデータ転送を管理するための制御ロジック２１２と、制御ロジック２１２における制御タイミングを決定するタイマ２１４とを含む。制御ロジック２１２は、ＮＩＣ１２０の指令に従って、フィールドネットワーク３上を転送されるデータの送信または受信のタイミングを管理する。また、制御ロジック２１２は、ＮＩＣ１２０のタイマと時刻同期するように、タイマ２１４がパルスを発生するタイミングを監視および調整する。
【００５１】
バスマスタ回路２２０は、ＣＰＵユニット１００のバスマスタ回路１３０と同様の機能を有しており、ローカルバス４上のデータ転送を管理する通信マスタとして機能する。すなわち、バスマスタ回路２２０は、通信手段の一例であるローカルバス４を介して、通信カプラユニット２００に装着される機能ユニット１５０との間でデータを送受信する。
【００５２】
バスマスタ回路２２０は、ローカルバス４上でのデータ転送を管理するための制御ロジック２２２と、制御ロジック２２２における制御タイミングを決定するタイマ２２４とを含む。制御ロジック２２２は、ローカルバス４上を転送されるデータの伝送時間を保証するための時間管理および送受信タイミング管理などを行う。
【００５３】
＜Ｂ．概要＞
次に、本実施の形態に係る制御システム１が提供する時刻同期機能について説明する。図２および図３は、本実施の形態に係る制御システム１が提供する時刻同期機能について説明するための模式図である。
【００５４】
図２（Ａ）には、互いに異なる２つのプロトコル（プロトコル１およびプロトコル２）にそれぞれ従ってデータ通信を行う構成を示す。具体的には、プロトコル１に従う構成例として、通信マスタＡと、複数の通信スレーブＡ１，Ａ２，…とが接続されており、プロトコル２に従う構成例として、通信マスタＢと、複数の通信スレーブＢ１，Ｂ２，…とが接続されている。
【００５５】
通信マスタＡおよび通信マスタＢは、それぞれバウンダリークロック（Boundary Clock）として機能するタイマを有しており、各プロトコルにおける同期手順に従って、バス／ネットワーク接続されている通信スレーブが有するタイマを時刻同期する。複数の通信スレーブＡ１，Ａ２，…および複数の通信スレーブＢ１，Ｂ２，…は、オーディナリークロック（Ordinary Clock）として機能するタイマを有している。
【００５６】
すなわち、通信マスタＡは、プロトコル１に従って、および複数の通信スレーブＡ１，Ａ２，…との間でデータを送受信する通信手段に相当する。通信手段である通信マスタＡは、データ伝送のタイミングを規定する、データが送受信される主体（すなわち、通信スレーブＡ１，Ａ２，…）の間で互いに時刻同期されたタイマを有している。同様に、通信マスタＢは、プロトコル１とは異なるプロトコル２に従って、および複数の通信スレーブＢ１，Ｂ２，…との間でデータを送受信する通信手段に相当する。通信手段である通信マスタＢは、データ伝送のタイミングを規定する、データが送受信される主体（すなわち、通信スレーブＢ１，Ｂ２，…）の間で互いに時刻同期されたタイマを有している。
【００５７】
図２（Ａ）に示す構成では、プロトコル１に従う構成とプロトコル２に従う構成との間で時刻同期をとる手段が実装されていない。そのため、通信マスタＡおよび通信マスタＢが同一のＣＰＵユニット１００に実装される場合であっても、通信スレーブＡ１，Ａ２，…と通信スレーブＢ１，Ｂ２，…との間は時刻同期することができない。その結果、接続先のプロトコルが異なることで、入力データの取得タイミングや出力データの出力タイミングが一致しない場合が生じ得る。
【００５８】
そこで、本実施の形態に係る制御システム１においては、図２（Ｂ）に示すように、通信マスタＡおよび通信マスタＢのいずれかにあるタイマを、制御システム１全体のマスタとして機能させる。以下、このようなシステム全体のマスタを「グランドマスタクロック（Grand Master Clock）」とも称す。なお、図２には、２つの通信マスタのみを描くが、３つ以上の通信マスタが存在する場合もある。この場合には、いずれか１つの通信マスタが有するタイマをグランドマスタクロックに設定すればよい。
【００５９】
一例として、図２（Ｂ）には、通信マスタＡのタイマがグランドマスタクロックに設定され、通信マスタＢがこのグランドマスタクロックに時刻同期する。このような構成によって、プロトコル１に従う構成とプロトコル２に従う構成との間で、互いに時刻同期させることができる。すなわち、本実施の形態に係る制御システム１は、通信マスタＡおよび通信スレーブＡ１，Ａ２，…の間で時刻同期されたタイマと、通信マスタＢおよび通信スレーブＢ１，Ｂ２，…の間で時刻同期されたタイマとの間で時刻同期するための同期機能を有している。
【００６０】
この場合、通信マスタＡのタイマは、グランドマスタクロックとして機能するとともに、プロトコル１に従う構成におけるバウンダリークロックとしても機能する。すなわち、本実施の形態に係る制御システム１の同期機能は、プロトコル１に従う構成でのタイマを基準として、プロトコル２に従う構成におけるタイマを時刻補正する。より具体的には、通信スレーブＡ１，Ａ２，…は、通信マスタＡのタイマに時刻同期するとともに、通信スレーブＢ１，Ｂ２，…は、通信マスタＢのタイマに時刻同期する。このとき、通信マスタＢは、通信マスタＡのタイマに時刻同期しているので、結果的に、通信スレーブＢ１，Ｂ２，…についても通信マスタＡのタイマに時刻同期することになる。このように、通信マスタＢとの間で時刻同期された主体（通信スレーブＢ１，Ｂ２，…）の各々は、時刻補正後の通信マスタＢのタイマに時刻同期することになる。
【００６１】
図２には、いずれかの通信マスタのタイマをグランドマスタクロックとして設定する構成例について説明したが、外部装置のタイマをグランドマスタクロックとして設定してもよい。図３（Ａ）には、図２（Ａ）と同様に、２つのプロトコル（プロトコル１およびプロトコル２）にそれぞれ従ってデータ通信を行う構成を示す。
【００６２】
本実施の形態に係る制御システム１においては、図３（Ｂ）に示すように、通信マスタＡおよび通信マスタＢ以外の外部装置にあるタイマを制御システム１全体のマスタ（すなわち、グランドマスタクロック）として機能させる。そして、通信マスタＡおよび通信マスタＢは、グランドマスタクロックに時刻同期する。すなわち、通信マスタＡおよび通信マスタＢとは独立したタイマを有する外部装置に接続することで、当該外部装置のタイマを基準として、通信マスタＡのタイマおよび通信マスタＢのタイマに対する時刻補正が行われる。
【００６３】
この場合、通信マスタＡのタイマはプロトコル１に従う構成におけるバウンダリークロックとしても機能し、通信マスタＢのタイマはプロトコル２に従う構成におけるバウンダリークロックとしても機能するので、通信スレーブＡ１，Ａ２，…は、通信マスタＡのタイマに時刻同期し、通信スレーブＢ１，Ｂ２，…は、通信マスタＢのタイマに時刻同期する。通信マスタＡおよび通信マスタＢはグランドマスタクロックに時刻同期しているので、結果的に、通信スレーブＡ１，Ａ２，…および通信スレーブＢ１，Ｂ２，…についても、外部装置にあるグランドマスタクロックに時刻同期することになる。
【００６４】
上述の図２（Ｂ）において、通信マスタＡは、通信マスタＢとの間で時刻同期をするために、自身の有するタイマを基準（以下、「リファレンスクロック」と称する場合もある。）として通信マスタＢのタイマを調整するための機能を有している。図２（Ｂ）における通信マスタＡが有する機能を、以下では「同期機能」と称する。また、図２（Ｂ）において、通信マスタＢは、通信マスタＡのタイマを基準（リファレンスクロック）として自身のタイマを調整するための機能を有している。図２（Ｂ）における通信マスタＢが有する機能を、以下では「ラッチ機能」と称する。すなわち、グランドマスタクロックとして機能するタイマを有する主体に「同期機能」が実装され、当該グランドマスタクロックに時刻同期する主体に「ラッチ機能」が実装される。「同期機能」と「ラッチ機能」との組み合わせによって、図２（Ｂ）に示すような機構が実現される。
【００６５】
また、上述の図３（Ｂ）においては、外部装置のタイマがグランドマスタクロックとして機能するので、外部装置に「同期機能」が実装され、グランドマスタクロックに時刻同期する通信マスタＡおよび通信マスタＢには、それぞれ「ラッチ機能」が実装される。
【００６６】
以下、このような「同期機能」および「ラッチ機能」を含むいくつかのシステム構成の例について説明する。
【００６７】
なお、図２および図３に示す機能の両方を実装する必要はなく、少なくともいずれか一方のみを実装するような構成であればよい。
【００６８】
以下、図１に示す本実施の形態に係る制御システム１が提供する時刻同期機能のいくつかの実装例いついて説明する。
【００６９】
＜Ｃ．制御システムの構成例１＞
まず、図１に示す制御システム１において、通信制御回路１１０のタイマ１１４をグランドマスタクロックとして機能させる構成例について説明する。
【００７０】
図４は、本実施の形態に係る制御システム１の構成例１における各タイマの機能を示す模式図である。図４を参照して、ＣＰＵユニット１００の通信制御回路１１０は、グランドマスタクロックとして機能するタイマ１１４を有している。図４に示す構成例１においては、通信制御回路１１０およびＮＩＣ１２０は、同一のＳｏＣ１０１上に実装されているので、タイマ１１４は、ＮＩＣ１２０のタイマ１２４を兼ねている。すなわち、ＮＩＣ１２０のタイマ１２４は、仮想的なものであり、実体は、通信制御回路１１０のタイマ１１４と同一である。そのため、通信制御回路１１０のタイマ１１４は、フィールドネットワーク３のバウンダリークロックとしても機能する。
【００７１】
バスマスタ回路１３０のタイマ１３４は、ローカルバス２のバウンダリークロックとして機能するとともに、グランドマスタクロックとして機能する通信制御回路１１０のタイマ１１４に時刻同期する。
【００７２】
このようなＣＰＵユニット１００内部における複数のタイマ間の時刻同期（図４の参照符号４０２）を実現するために、通信制御回路１１０のタイマ１１４に同期機能１１６が実装され、バスマスタ回路１３０のタイマ１３４にラッチ機能１３８が実装される。タイマ１１４の同期機能１１６は、指定されたタイミングでタイマ１１４が同期信号をアサートすると、その同期信号がアサートされた時刻を通知する。ラッチ機能１３８は、バスマスタ回路１３０がタイマ１１４からの同期信号を検知すると、その時刻（バスマスタ回路１３０が保持している）と先に通知された時刻との差を時刻補正値としてタイマ１３４にセットする。
【００７３】
図５は、本実施の形態に係る制御システム１の構成例１における通信制御回路１１０のタイマ１１４とバスマスタ回路１３０のタイマ１３４との間の時刻同期手順の一例を示すシーケンス図である。図５に示すシーケンス図においては、プロセッサ１０２と、通信制御回路１１０のタイマ１１４と、バスマスタ回路１３０のタイマ１３４とが連係することで、通信制御回路１１０のタイマ１１４とバスマスタ回路１３０のタイマ１３４との間の時刻同期が実現される。なお、タイマ１１４およびタイマ１３４の各々は、それぞれフリーランカウンタと、各フリーランカウンタが出力するカウンタ値からローカル時刻を計算するロジックとを有しているとする。
【００７４】
本実施の形態において、通信制御回路１１０のタイマ１１４は、プロセッサ１０２により指定された一定周期毎に同期信号（以下、「ＳＹＮＣ」とも略称する。）をアサートする。バスマスタ回路１３０のタイマ１３４は、この同期信号に基づいて基準クロックとタイマ１３４のフリーランカウンタとの差分値を計算し、フリーランカウンタを順次補正する。フリーランカウンタに対する１回あたりの補正量は上限が定められている。フリーランカウンタの補正量が予め定められた所定値以下になったことが検知されると、バスマスタ回路１３０のタイマ１３４は、通信制御回路１１０のタイマ１１４へ時刻同期完了を通知する。時刻同期完了の通知は、割込みによって行われてもよい。
【００７５】
より具体的な手順として、図５に示すように、まず、プロセッサ１０２は、通信制御回路１１０のタイマ１１４に対して、同期信号の出力周期（ＳＣＹＣＬＥ１）を設定する（シーケンスＳＱ１００）。また、プロセッサ１０２は、バスマスタ回路１３０のタイマ１３４に対して、必要な初期値を設定するとともに、非同期状態であることを示す状態レジスタをセットする（シーケンスＳＱ１０２）。シーケンスＳＱ１０２は、バスマスタ回路１３０が保持するレジスタ値を設定または変更することで実現されてもよい。ここで、時刻同期の機能として、プロセッサ１０２は、予め指定した一定周期毎に同期信号をバスマスタ回路１３０のタイマ１３４へ出力するように、通信制御回路１１０のタイマ１１４を設定する。
【００７６】
続いて、プロセッサ１０２は、通信制御回路１１０のタイマ１１４に含まれるフリーランカウンタの値をリードし（シーケンスＳＱ１０４）、フリーランカウンタの現在のカウンタ値を取得する（シーケンスＳＱ１０６）。そして、プロセッサ１０２は、タイマ１１４のローカル時刻をバスマスタ回路１３０のタイマ１３４へ通知する（シーケンスＳＱ１０８）。この通知は時刻同期の機能の一部であり、プロセッサ１０２は、通信制御回路１１０のタイマ１１４に設定した同期信号を出力すべきタイミングを示す、通信制御回路１１０のタイマ１１４でのローカル時刻をバスマスタ回路１３０のタイマ１３４へ通知する。タイマ１３４は、この最初の同期信号がアサートされる予定の時刻と、実際に同期信号を検知したローカル時刻との差分に基づいて、フリーランカウンタを順次補正する。
【００７７】
より具体的には、プロセッサ１０２は、最初の同期信号がアサートされる（予定の）時刻をバスマスタ回路１３０のタイマ１３４へ通知する（シーケンスＳＱ１１０）。すなわち、後述のシーケンスＳＱ１１２において、タイマ１１４に対して同期信号の出力開始を指示することになるが、その出力開始の指示タイミングから計算される、最初の同期信号が出力される予定の時刻がタイマ１３４へ通知される。
【００７８】
そして、プロセッサ１０２は、タイマ１１４に対して、同期信号の出力開始時刻（ＳＹＮＴＩＭＥ１）および同期起動指令を設定する（シーケンスＳＱ１１２）。これらの設定に応答して、タイマ１１４は、同期信号の出力を有効化して、指定されたＳＹＮＴＩＭＥ１までカウントアップすると、同期信号をタイマ１３４へアサートする（シーケンスＳＱ１１６）。タイマ１１４は、同期信号の出力が有効化されている間、指定された出力周期（ＳＣＹＣＬＥ１）で同期信号を繰返しアサートするので、ＳＹＮＴＩＭＥ１にＳＣＹＣＬＥ１を加算して、新たなＳＹＮＴＩＭＥ１を計算する（ＳＹＮＴＩＭＥ１←ＳＹＮＴＩＭＥ１＋ＳＣＹＣＬＥ１）。新たなＳＹＮＴＩＭＥ１の計算の詳細については、後述の図１３などを参照されたい。
【００７９】
タイマ１３４は、同期信号の出力開始時刻（ＳＹＮＴＩＭＥ１）との差分とタイマ１１４からの出力周期を検知したローカル時刻との差分に基づいて、フリーランカウンタを補正することで時刻補正を行う（シーケンスＳＱ１１８）。このように、通信制御回路１１０のタイマ１１４が出力した同期信号がバスマスタ回路１３０のタイマ１３４で検知されたときのタイマ１３４での時刻（ローカル時刻）と、予め通知されていたアサートされる予定の時刻との差分に基づいて、タイマ１３４が時刻補正される。
【００８０】
シーケンスＳＱ１１４〜ＳＱ１１８の処理は、シーケンスＳＱ１１８での補正量が予め定められた所定値以下になるまで繰返される。なお、フリーランカウンタに対する補正量は予め上限が設定されていてもよい。
【００８１】
補正量が予め定められた所定値以下になり、タイマ１３４での同期が完了したと判断されると、タイマ１３４は、時刻同期の完了をタイマ１１４へ通知する（シーケンスＳＱ１２２）。この時刻同期の完了通知は、タイマ１３４からタイマ１１４への割込みによって実行される。タイマ１１４は、タイマ１３４からの時刻同期の完了通知を検知すると、タイマ１３４の状態レジスタをリードし（シーケンスＳＱ１２４）、タイマ１３４の状態レジスタの値を取得する（シーケンスＳＱ１２６）。そして、タイマ１１４は、取得したタイマ１３４の状態レジスタの値をプロセッサ１０２へ通知する（シーケンスＳＱ１２８）。
【００８２】
プロセッサ１０２は、タイマ１１４からタイマ１３４の状態レジスタの値を検知すると、タイマ１３４の状態レジスタをリードし（シーケンスＳＱ１３０）、タイマ１３４の状態レジスタの値を取得する（シーケンスＳＱ１３２）。そして、シーケンスＳＱ１２８において通知された状態レジスタの値とシーケンスＳＱ１３２において取得された状態レジスタの値とが一致すると、プロセッサ１０２は、タイマ１３４の状態レジスタをクリアする（シーケンスＳＱ１３４）。
【００８３】
以上のような手順によって、通信制御回路１１０のタイマ１１４とバスマスタ回路１３０のタイマ１３４との間の時刻同期が実現される。なお、通信制御回路１１０のタイマ１１４とバスマスタ回路１３０のタイマ１３４との間の時刻同期が外れた場合には、シーケンスＳＱ１１４〜ＳＱ１１８の処理が再度繰返し実行されることで、再度の時刻同期が実現される。
【００８４】
本実施の形態に係る制御システム１の構成例１においては、同一のＣＰＵユニット１００に実装される複数のプロトコルにそれぞれ従う構成の間で、各種処理や制御のタイミングを同期させることができる。
【００８５】
＜Ｄ．制御システムの構成例２＞
上述の制御システムの構成例１においては、通信制御回路１１０のタイマ１１４がグランドマスタクロックとして機能する例について説明したが、通信制御回路１１０のタイマ１１４を他のクロックに時刻同期させるようにしてもよい。このとき、他のクロックがグランドマスタクロックとして機能する。例えば、図１に示す制御システム１において、ＣＰＵユニット１００に接続される外部装置３００のタイマ３０４をグランドマスタクロックとして機能させる構成例について説明する。
【００８６】
図６は、本実施の形態に係る制御システム１の構成例２における各タイマの機能を示す模式図である。図６を参照して、ＣＰＵユニット１００には、外部装置３００が接続されており、外部装置３００はグランドマスタクロックとして機能するタイマ３０４を有している。
【００８７】
図６に示す構成例２において、外部装置３００のタイマ３０４は、通信制御回路１１０のタイマ１１４のリファレンスクロックである。すなわち、通信制御回路１１０のタイマ１１４は、フィールドネットワーク３のバウンダリークロックとしても機能するとともに、グランドマスタクロックとして機能する外部装置３００のタイマ３０４に同期する。さらに、バスマスタ回路１３０のタイマ１３４は、ローカルバス２のバウンダリークロックとして機能するとともに、バウンダリークロックとしても機能する通信制御回路１１０のタイマ１１４に同期する。なお、バスマスタ回路１３０のタイマ１３４と通信制御回路１１０のタイマ１１４との間の時刻同期の手順などについては、上述の制御システムの構成例１において説明したので、詳細な説明は繰返さない。
【００８８】
図６に示す構成例２においては、外部装置３００は、ＣＰＵユニット１００のＮＩＣ１２０と同様の機能を有しており、フィールドネットワーク５の通信マスタとして機能する。フィールドネットワーク５には、任意のスレーブ装置３１０が接続されていてもよい。この場合、フィールドネットワーク５に接続されるスレーブ装置３１０は、自装置のタイマ３１４を外部装置３００のタイマ３０４に時刻同期させる。
【００８９】
図７は、図６に示すＣＰＵユニット１００および外部装置３００の要部を示す模式図である。図６を参照して、外部装置３００のタイマ３０４をリファレンスクロックとした時刻同期（図６の参照符号４０４）を実現するために、通信制御回路１１０のタイマ１１４にラッチ機能１１８が実装され、外部装置３００のタイマ３０４に同期機能３０６が実装される。タイマ１１４のラッチ機能１１８は、外部装置３００から入力された同期信号（ＳＹＮＣ）がアサートされたローカル時刻をラッチする。そして、外部装置３００が同期信号をアサートした時刻と、通信制御回路１１０のタイマ１１４が同期信号を検知した時刻との差に基づいて、タイマ１１４に対する時刻補正が実施される。
【００９０】
図８は、本実施の形態に係る制御システム１の構成例２における外部装置３００のタイマ３０４と通信制御回路１１０のタイマ１１４との間の時刻同期手順の一例を示すシーケンス図である。図８に示すシーケンス図においては、外部装置３００のタイマ３０４と、プロセッサ１０２と、通信制御回路１１０のタイマ１１４とが連係することで、外部装置３００のタイマ３０４と通信制御回路１１０のタイマ１１４との間の時刻同期が実現される。なお、タイマ３０４およびタイマ１１４の各々は、それぞれフリーランカウンタと、各フリーランカウンタが出力するカウンタ値からローカル時刻を計算するロジックとを有しているとする。
【００９１】
本実施の形態において、外部装置３００のタイマ３０４は、プロセッサ１０２により指定されたトリガ時刻（ＴＲＧＴＴＭＬ）に同期信号（ＳＹＮＣ）をアサートする。タイマ１１４のラッチ機能１１８は、外部装置３００から入力された同期信号（ＳＹＮＣ）を検知したローカル時刻（以下、「ラッチ時刻」とも称す。）をラッチする。そして、外部装置３００により同期信号がアサートされたトリガ時刻と、通信制御回路１１０のタイマ１１４のラッチ機能１１８によりラッチされたラッチ時刻との差（時刻差分値）に基づいて、タイマ１１４に対する時刻補正が実施される。
【００９２】
より具体的な手順として、図８に示すように、まず、プロセッサ１０２は、外部装置３００のタイマ３０４に対して、必要な初期設定を行う（シーケンスＳＱ２００）。この初期設定には、最初に同期信号を発生すべき時刻（トリガ時刻）の設定が含まれる。つまり、時刻同期の機能の一部として、プロセッサ１０２は、指定されたトリガ時刻になると同期信号を通信制御回路１１０のタイマ１１４へ出力するように、外部装置３００のタイマ３０４を設定する。
【００９３】
付加的な処理として、プロセッサ１０２は、通信制御回路１１０のタイマ１１４に対して、ノイズフィルタによる検知誤差を補正するためのパラメータの初期設定を行う（シーケンスＳＱ２０２）。この検知誤差の補正については、後に詳述する。この検知誤差の補正は、タイマ１１４のラッチ機能１１８にノイズフィルタが実装されている場合に必要であり、ノイズフィルタを実装しない場合には、シーケンスＳＱ２０２の処理を省略してもよい。
【００９４】
外部装置３００のタイマ３０４は、指定されたトリガ時刻までカウントアップすると、同期信号をタイマ１１４へアサートする（シーケンスＳＱ２０６）。タイマ１１４は、外部装置３００のタイマ３０４によりアサートされた同期信号を検知すると、その検知したタイミングを示すローカル時刻をレジスタにラッチする。
【００９５】
同期信号のアサート後、プロセッサ１０２は、自身の内部トリガを発生させ（シーケンスＳＱ２０８）、通信制御回路１１０のタイマ１１４のレジスタにラッチされているローカル時刻（ラッチ時刻）の値をリードし（シーケンスＳＱ２１０）、ラッチ時刻を取得する（シーケンスＳＱ２１２）。このように、時刻同期の機能の一部として、プロセッサ１０２は、外部装置３００のタイマ３０４が出力した同期信号が通信制御回路１１０のタイマ１１４で検知されたときに格納されたタイマ１１４でのローカル時刻（ラッチ時刻）をタイマ１１４から読出す。
【００９６】
そして、プロセッサ１０２は、トリガ時刻と取得したラッチ時刻との間の差分（時刻差分値）を計算し、その時間差分値をタイマ１１４のレジスタへライトする（シーケンスＳＱ２１４）。すると、通信制御回路１１０のタイマ１１４は、自身のレジスタにライトされた時間差分値に基づいて時刻補正を実施する（シーケンスＳＱ２１６）。このように、時刻同期の機能の一部として、プロセッサ１０２は、同期信号を発生すべき時刻（トリガ時刻）と同期信号がタイマ１１４で検知されたときに格納されたタイマ１１４でのローカル時刻（ラッチ時刻）との差分に基づいて、タイマ１１４に対して時刻補正を指示する。
【００９７】
一方、プロセッサ１０２は、外部装置３００のタイマ３０４に対して、次に同期信号を発生すべき時刻（トリガ時刻）を設定する（シーケンスＳＱ２１８）。このシーケンスＳＱ２０４〜ＳＱ２１８の処理は、シーケンスＳＱ２１６での補正量が予め定められた所定値以下になるまで繰返される。
【００９８】
以上のような手順によって、外部装置３００のタイマ３０４と通信制御回路１１０のタイマ１１４との間の時刻同期が実現される。なお、外部装置３００のタイマ３０４と通信制御回路１１０のタイマ１１４との間の時刻同期が外れた場合には、シーケンスＳＱ２０４〜ＳＱ２１８の処理が再度繰返し実行されることで、再度の時刻同期が実現される。
【００９９】
本実施の形態に係る制御システム１の構成例２によれば、プロトコルに従う既存の１または複数の構成に対して、任意のリファレンスクロックを新たに配置した上で、当該リファレンスクロックに制御システム１の全体を同期させることができる。
【０１００】
次に、通信制御回路１１０のタイマ１１４のラッチ機能１１８にノイズフィルタが実装される場合に、そのノイズフィルタによる検知誤差を補正する方法について説明する。
【０１０１】
図９は、タイマのラッチ機能にノイズフィルタが実装される場合における検知誤差を補正する方法を説明するための模式図である。図９を参照して、タイマのラッチ機能のノイズフィルタは、ノイズフィルタ値（ＬＡＴＣＨＮＦ）によって規定される。通信制御回路１１０へ入力される同期信号が活性化すると、ラッチ信号の変化（立下り）が検知されて、その活性化されたときのローカル時刻がラッチされる。ノイズフィルタ後の同期信号の変化が生じるタイミングにおけるフリーランカウンタのカウンタ値がＴ１であるとすると、外部装置３００のタイマ３０４から実際に同期信号がアサートされたタイミング（すなわち、本来格納すべきラッチ時刻）は、以下の式に従って計算できる。
【０１０２】
本来のラッチ時刻＝カウンタ値Ｔ１−伝搬遅延値（ＬＡＴＣＨＰＤ）−ノイズフィルタ値（ＬＡＴＣＨＮＦ）
すなわち、図８に示すシーケンスＳＱ２０６において、外部装置３００のタイマ３０４が同期信号を通信制御回路１１０のタイマ１１４へアサートすると、タイマ１１４は、ノイズフィルタ通過後の同期信号に変化が生じたタイミングで、内部のフリーランカウンタのカウンタ値Ｔ１を取得し、その取得したカウンタ値Ｔ１から伝搬遅延値（ＬＡＴＣＨＰＤ）およびノイズフィルタ値（ＬＡＴＣＨＮＦ）を減じた値をラッチ時刻としてレジスタに格納する。
【０１０３】
このように、時刻同期機能を実現するプロセッサ１０２は、タイマ１１４に含まれるノイズフィルタについての設定を与える。タイマ１１４は、ノイズフィルタについての設定に基づいて、ノイズフィルタにより生じる時間遅れを補償した上で、ラッチ時刻を格納（ラッチ）する。
【０１０４】
以上のとおり、タイマ１１４のラッチ機能１１８にノイズフィルタ機能を実装した場合には、同期信号に含まれるノイズの影響を低減できるが、そのノイズフィルタによる応答遅れによって時刻同期の精度が低下する可能性がある。これに対して、本実施の形態に従う制御システム１においては、ノイズフィルタの特性に応じた補正を行うことで、時刻同期の精度を維持することができる。
【０１０５】
＜Ｅ．制御システムの構成例３＞
上述の制御システム１の構成例２においては、外部装置３００のタイマ３０４がグランドマスタクロックとして機能する例について説明したが、逆に、外部装置３００のタイマ３０４に対しても、通信制御回路１１０のタイマ１１４をグランドマスタクロックとして機能させるようにしてもよい。
【０１０６】
図１０は、本実施の形態に係る制御システム１の構成例３における各タイマの機能を示す模式図である。図１０に示す構成例３は、通信制御回路１１０のタイマ１１４をグランドマスタクロックとして機能させ、外部装置３００のタイマ３０４がバウンダリークロックとして機能する点を除いて、上述の図６に示す構成例２と同様である。つまり、図１０に示す構成例３においては、ＣＰＵユニット１００内のバスマスタ回路１３０のタイマ１３４に加えて、ＣＰＵユニット１００外の外部装置３００のタイマ３０４についても、通信制御回路１１０のタイマ１１４をリファレンスクロックとして時刻同期を行う。さらに、フィールドネットワーク５に接続されるスレーブ装置３１０のタイマ３１４は、外部装置３００のタイマ３０４をリファレンスクロックとして時刻同期を行う。その結果、ＣＰＵユニット１００とローカルバスまたはフィールドネットワークを介して接続される機能ユニット１５０だけではなく、他の通信手段を介して接続される機能ユニットなどとの間でも、時刻同期を行うことができる。
【０１０７】
図１１は、図１０に示すＣＰＵユニット１００および外部装置３００の要部を示す模式図である。図１１を参照して、通信制御回路１１０のタイマ１１４をリファレンスクロックとした時刻同期（図１０の参照符号４０６）を実現するために、通信制御回路１１０のタイマ１１４に同期機能１１６が実装され、外部装置３００のタイマ３０４にラッチ機能３０８が実装される。タイマ１１４の同期機能１１６は、一定周期毎に同期信号（ＳＹＮＣ）をアサートする。そして、通信制御回路１１０のタイマ１１４が同期信号をアサートした時刻と、外部装置３００のタイマ３０４が同期信号を検知した時刻との差に基づいて、タイマ３０４に対する時刻補正が実施される。
【０１０８】
図１２は、本実施の形態に係る制御システム１の構成例３における通信制御回路１１０のタイマ１１４と外部装置３００のタイマ３０４との間の時刻同期手順の一例を示すシーケンス図である。図１２に示すシーケンス図においては、外部装置３００のタイマ３０４と、プロセッサ１０２と、通信制御回路１１０のタイマ１１４とが連係することで、通信制御回路１１０のタイマ１１４と外部装置３００のタイマ３０４との間の時刻同期が実現される。なお、タイマ１１４およびタイマ３０４の各々は、それぞれフリーランカウンタと、各フリーランカウンタが出力するカウンタ値からローカル時刻を計算するロジックとを有しているとする。
【０１０９】
本実施の形態において、通信制御回路１１０のタイマ１１４は、プロセッサ１０２により指定された一定周期（すなわち、同期信号の出力期間（ＳＣＹＣＬＥ））毎に同期信号（ＳＹＮＣ）をアサートする。外部装置３００のラッチ機能３０８は、通信制御回路１１０から入力された同期信号（ＳＹＮＣ）を検知したローカル時刻（以下、「外部時刻」とも称す。）をラッチする。そして、外部装置３００のタイマ３０４のラッチ機能３０８によりラッチされた外部時刻と通信制御回路１１０により同期信号がアサートされた出力開始時刻との差（時刻差分値）に基づいて、タイマ３０４に対する時刻補正が実施される。
【０１１０】
より具体的な手順として、図１２に示すように、まず、プロセッサ１０２は、外部装置３００のタイマ３０４に対して、必要な初期設定を行う（シーケンスＳＱ３００）。また、プロセッサ１０２は、通信制御回路１１０のタイマ１１４に対して、時刻同期に必要なパラメータとして、同期信号の出力開始時刻（ＳＹＮＴＩＭＥ）と、同期信号の出力周期（ＳＣＹＣＬＥ）と、同期信号の出力時間（ＳＡＴＩＭＥ）とを設定する（シーケンスＳＱ３０２）。
【０１１１】
図１３は、図１２のシーケンスＳＱ３０２において設定されるパラメータとアサートされる同期信号との関係を示すタイムチャートである。図１３を参照して、出力開始時刻（ＳＹＮＴＩＭＥ）において、最初の同期信号がアサートされる。この同期信号のアサートは、出力開始時刻から出力時間（ＳＡＴＩＭＥ）の間継続する。そして、次周期が到来、すなわち次の出力周期（ＳＹＮＴＩＭＥ←ＳＹＮＴＩＭＥ＋ＳＣＹＣＬＥ）が到来すると、次の同期信号がアサートされる。なお、出力周期（ＳＣＹＣＬＥ）から出力時間（ＳＡＴＩＭＥ）を除いた期間において、同期振動は非活性化された状態になっている。
【０１１２】
再度図１２を参照して、通信制御回路１１０のタイマ１１４は、指定された出力開始時刻（ＳＹＮＴＩＭＥ）までカウントアップすると（シーケンスＳＱ３０４）、同期信号をタイマ１１４へアサートする（シーケンスＳＱ３０６）。タイマ３０４は、通信制御回路１１０のタイマ１１４によりアサートされた同期信号を検知すると、その検知したタイミングを示すローカル時刻（外部時刻）をレジスタにラッチする。
【０１１３】
また、通信制御回路１１０のタイマ１１４は、次周期の出力開始時刻を計算する（シーケンスＳＱ３０８）。
【０１１４】
同期信号のアサート後、プロセッサ１０２は、自身の内部トリガを発生させ（シーケンスＳＱ３１０）、外部装置３００のタイマ３０４のレジスタにラッチされているローカル時刻（外部時刻）の値をリードし（シーケンスＳＱ３１２）、外部時刻を取得する（シーケンスＳＱ３１４）。そして、プロセッサ１０２は、取得した外部時刻と出力開始時刻との間の差分（時刻差分値）を計算し（シーケンスＳＱ３１６）、その時間差分値をタイマ３０４のレジスタへライトする（シーケンスＳＱ３１８）。すると、外部装置３００のタイマ３１４は、自身のレジスタにライトされた時間差分値に基づいて時刻補正を実施する（シーケンスＳＱ３２０）。
【０１１５】
このシーケンスＳＱ３０４〜ＳＱ３２０の処理は、シーケンスＳＱ３２０での補正量が予め定められた所定値以下になるまで繰返される。
【０１１６】
以上のような手順によって、通信制御回路１１０のタイマ１１４と外部装置３００のタイマ３０４との間の時刻同期が実現される。なお、通信制御回路１１０のタイマ１１４と外部装置３００のタイマ３０４との間の時刻同期が外れた場合には、シーケンスＳＱ３０４〜ＳＱ３２０の処理が再度繰返し実行されることで、再度の時刻同期が実現される。
【０１１７】
本実施の形態に係る制御システム１の構成例３によれば、任意のプロトコルに従う既存の構成に対して、クロックを含む任意の構成を新たに配置した場合であっても、当該新たに配置された構成に含まれるクロックを既存構成のクロックに同期させることができるので、制御システム１の全体を同期させることができる。
【０１１８】
＜Ｆ．制御システムの構成例４＞
上述の制御システム１の構成例２においては、ＣＰＵユニット１００と外部装置３００と直接的に接続されている構成について説明したが、ローカルバス２またはフィールドネットワークを介して、タイマ３０４を有する外部装置３００をＣＰＵユニット１００に接続するようにしてもよい。このようにＣＰＵユニット１００に間接的に接続される外部装置３００が有するクロックをグランドマスタクロックとして機能させてもよい。
【０１１９】
図１４は、本実施の形態に係る制御システム１の構成例４における各タイマの機能を示す模式図である。図１４に示す構成例４において、機能ユニット１５０−１の下位に外部装置３００が接続されている。機能ユニット１５０−１は、制御ロジック１５２およびタイマ１５４に加えて、外部装置３００を接続するためのフィールドネットワーク６のバウンダリークロックとして機能する別のタイマ１５６を有している。
【０１２０】
外部装置３００のタイマ３０４は、通信制御回路１１０のタイマ１１４のリファレンスクロックである。すなわち、通信制御回路１１０のタイマ１１４は、グランドマスタクロックとして機能する外部装置３００のタイマ３０４に同期する。外部装置３００のタイマ３０４をリファレンスクロックとした時刻同期（図６の参照符号４０８）を実現するために、通信制御回路１１０のタイマ１１４にラッチ機能１１８が実装され、外部装置３００のタイマ３０４に同期機能３０６が実装される。
【０１２１】
図１４に示す構成例４においては、外部装置３００は、バスマスタ回路１３０とデータを送受信する主体（機能ユニット１５０−１，１５０−２，…）を介して、ＣＰＵユニット１００に接続される。ＣＰＵユニット１００の通信制御回路１１０のタイマ１１４は、ローカルバス２、機能ユニット１５０−１、フィールドネットワーク６を介して、外部装置３００のタイマ３０４に接続されるので、上述の図８および図１２に示すような時刻同期手順を組み合わせて実行することで、通信制御回路１１０のタイマ１１４とバスマスタ回路１３０のタイマ１３４との間の時刻同期が実現される。それぞれの時刻同期手順については詳述したので、ここでは繰返さない。
【０１２２】
本実施の形態に係る制御システム１の構成例４によれば、既存の制御システムを構成する機能ユニットから分岐した新たなバスまたはネットワークを介して接続される外部装置であっても、グランドマスタクロックとして機能させることができる。これによって、制御システム１の全体を同期させるためのクロックを配置する際の制約を低減できる。
【０１２３】
＜Ｇ．制御システムの構成例５＞
上述の制御システム１の構成例４においては、ＣＰＵユニット１００と外部装置３００とが間接的に接続されている構成について説明したが、このような間接的な接続の別構成も想定し得る。
【０１２４】
図１５は、本実施の形態に係る制御システム１の構成例５における各タイマの機能を示す模式図である。図１５に示す構成例５において、機能ユニット１５０−１１の下位に外部装置３００が接続されている。機能ユニット１５０−１１は、制御ロジック１５２およびタイマ１５４に加えて、外部装置３００を接続するためのフィールドネットワーク７のバウンダリークロックとして機能する別のタイマ１５６を有している。
【０１２５】
外部装置３００のタイマ３０４は、通信制御回路１１０のタイマ１１４のリファレンスクロックである。すなわち、通信制御回路１１０のタイマ１１４は、グランドマスタクロックとして機能する外部装置３００のタイマ３０４に同期する。外部装置３００のタイマ３０４をリファレンスクロックとした時刻同期（図６の参照符号４１０）を実現するために、通信制御回路１１０のタイマ１１４にラッチ機能１１８が実装され、外部装置３００のタイマ３０４に同期機能３０６が実装される。
【０１２６】
図１５に示す構成例５においては、外部装置３００は、ＮＩＣ１２０とデータを送受信する主体（機能ユニット１５０−１１，１５０−１２，…）を介して、ＣＰＵユニット１００に接続される。ＣＰＵユニット１００の通信制御回路１１０のタイマ１１４は、フィールドネットワーク３、通信カプラユニット２００−１、ローカルバス４−１、機能ユニット１５０−１１、フィールドネットワーク７を介して、外部装置３００のタイマ３０４に接続されるので、上述の図８および図１２に示すような時刻同期手順を組み合わせて実行することで、通信制御回路１１０のタイマ１１４とバスマスタ回路１３０のタイマ１３４との間の時刻同期が実現される。それぞれの時刻同期手順については詳述したので、ここでは繰返さない。
【０１２７】
本実施の形態に係る制御システム１の構成例５によれば、既存の制御システムを構成する機能ユニットから分岐した新たなバスまたはネットワークを介して接続される外部装置であっても、グランドマスタクロックとして機能させることができる。これによって、制御システム１の全体を同期させるためのクロックを配置する際の制約を低減できる。
【０１２８】
＜Ｈ．制御システムの構成例６＞
上述の制御システム１の構成例５および構成例６においては、外部装置３００のタイマ３０４をグランドマスタクロックとして機能させる構成について説明したが、上述の制御システム１の構成例３（図１０など参照）に示されるように、外部装置３００のタイマ３０４に対しても、通信制御回路１１０のタイマ１１４をグランドマスタクロックとして機能させるようにしてもよい。すなわち、外部装置３００のタイマ３０４が通信制御回路１１０のタイマ１１４をリファレンスクロックとして動作するようにしてもよい。これらの例については、上述の構成例３と同様であるので、詳細な説明は繰返さない。
【０１２９】
＜Ｉ．変形例＞
上述の実施の形態においては、機械または設備を制御するための制御システム１に適用した場合について例示したが、本件発明は、一般的なネットワーク構成についても適用可能である。このようなネットワーク構成としては、例えば、複数のＰＬＣに接続される上位ネットワークといった、データの伝送時間や到着時間の保証が要求され構成に適用できる。但し、本件発明の適用先はこのような構成に限定されるものではない。
【０１３０】
＜Ｊ．利点＞
本実施の形態に係る制御システム１においては、互いに異なるプロトコルに従う通信手段の間で時刻同期することができるので、ＣＰＵユニットと機能ユニットとを接続するバスまたはネットワークのプロトコルに依存することなく、制御システム全体として時刻同期を実現できる。これにより、互いに異なるプロトコルに従う通信手段によって接続される複数のスレーブユニット（典型的には、機能ユニット）の間で、入力タイミングおよび／または出力タイミングを同期させることができ、制御精度を高めることができる。
【０１３１】
従前の技術によれば、複数のスレーブユニット（典型的には、機能ユニット）の間で、入力タイミングおよび／または出力タイミングを同期させる同期制御を実現するためには、対象となるすべてのスレーブユニットを同一のプロトコルに従う通信手段を介して接続するように統一する必要があり、導入工数や導入コストの増大が負担であったが、本実施の形態によれば、このような負担を軽減できる。
【０１３２】
本実施の形態に係る制御システム１においては、グランドマスタクロックとして機能するクロックを任意の装置またはユニットに配置できる。そのため、例えば、既存の制御システムに対して、新たなＣＰＵユニットや機能ユニットなどを追加した場合であっても、既存システムと新規システムとの間で時刻同期を容易に実現できる。これにより、既存の制御システムに対して何らかの追加や変更などの改造を行った場合であっても、システム全体の時刻同期を維持することができる。これにより、既存の制御システムの拡張や、複数の制御システムを新たに構築するような場合であっても、時刻同期を行うために特別な考慮などをする必要はなく、より自由度が高い状態で、制御システムを展開できる。
【０１３３】
今回開示された実施の形態はすべての点で例示であって制限的なものではないと考えられるべきである。本発明の範囲は、上記した説明ではなく、特許請求の範囲によって示され、特許請求の範囲と均等の意味および範囲内でのすべての変更が含まれることが意図される。
【符号の説明】
【０１３４】
１  制御システム、２，４  ローカルバス、３，５，６，７  フィールドネットワーク、１００  ＣＰＵユニット、１０２  プロセッサ、１０４  メモリ、１０６  ユーザプログラム、１０８  システムプログラム、１１０  通信制御回路、１１２，１２２，１３２，１５２，２１２，２２２  制御ロジック、１１４，１２４，１３４，１５４，１５６，２１４，２２４，３０４，３１４  タイマ、１１６，３０６  同期機能、１１８，１３８，３０８  ラッチ機能、１２０  ＮＩＣ、１３０，２２０  バスマスタ回路、１４０  外部インターフェイス、１５０  機能ユニット、２００  通信カプラユニット、２１０  ネットワークインターフェイス回路、３００  外部装置、３１０  スレーブ装置。
【図１】
2018064219.tif 000003
【図２】
2018064219.tif 000004
【図３】
2018064219.tif 000005
【図４】
2018064219.tif 000006
【図５】
2018064219.tif 000007
【図６】
2018064219.tif 000008
【図７】
2018064219.tif 000009
【図８】
2018064219.tif 000010
【図９】
2018064219.tif 000011
【図１０】
2018064219.tif 000012
【図１１】
2018064219.tif 000013
【図１２】
2018064219.tif 000014
【図１３】
2018064219.tif 000015
【図１４】
2018064219.tif 000016
【図１５】
2018064219.tif 000017