(57)【要約】【課題】  マスタとスレーブの時刻合わせを簡単かつ正確に行うこと【解決手段】  マスタとなるＣＰＵユニット２０と、スレーブを構成するユニット３０，４０がシステムバス１１にデジチェーン接続されて構成される。ＣＰＵユニットは、定期的に内部時計２６の時刻を時間同期フレームに載せて各スレーブに通知する。時間同期フレームを受信したスレーブユニットは、新たなデータを追加することなく次のユニットに送信することで、各ユニットでの当該フレームの伝搬に要する時間ｔ０を一定にする。レジスタ３２，４２に格納する補正時間は、Ｎ×ｔ０と簡単に設定でき、スレーブユニットは、時間同期フレームに格納された時刻情報と補正時間から現在の時刻情報を求め、自己の内部時計を補正する。【選択図】        図１
2011216085.tif 000002
【特許請求の範囲】
【請求項１】
複数のユニットがシステムバスにデジチェーン接続されて構成されるプログラマブルコントローラであって、
その複数のユニットのうちの少なくとも２つは計時手段を備え、その計時手段を備えたユニットの１つはマスタとなり、他のユニットはスレーブとなり、
前記マスタは、自己の計時手段の時刻情報を格納した時間同期フレームを送信する機能を備え、
前記時間同期フレームを受信した前記マスタ以外の前記複数のユニットは、新たなデータを追加することなく次のユニットに送信し、
前記スレーブは、前記マスタから何番目に配置されたユニットであるかの接続位置に対応して決定される伝搬遅延時間を特定する補正値を記憶する記憶手段と、前記時間同期フレームを受信した場合には、その時間同期フレームに格納された時刻情報と前記補正値から現在の時刻情報を求め、自己の計時手段を補正する補正手段と、
を備えることを特徴とするプログラマブルコントローラ。
【請求項２】
前記補正値は、前記マスタが前記複数のユニットから取得した情報から求めたプログラマブルコントローラのユニット構成情報に基づき、設定対象のスレーブが何番目に配置しているかから算出し、前記マスタが、そのスレーブに設定することを特徴とする請求項１に記載のプログラマブルコントローラ。
【請求項３】
前記補正値は、前記スレーブの前記時間同期フレームを伝搬するために要する伝搬遅延時間と、前記マスタで前記時間同期フレームを作成して送信するのに要する処理時間に基づき設定されることを特徴とする請求項１または２に記載のプログラマブルコントローラ。
【請求項４】
前記ユニットが前記時間同期フレームを伝搬するために要する伝搬遅延時間は、各ユニットで一定の時間とするとともに、
前記マスタと一体に連結されるＮ番目の前記スレーブに設定される補正値は、前記一定の時間×Ｎで求めることを特徴とする請求項１または２に記載のプログラマブルコントローラ。
【請求項５】
システムバスにデジチェーン接続される複数のユニットからなるブロック体を複数備え、その複数のブロック体のうちの１つは前記ＣＰＵユニットを含み、前記複数のユニットの１つは、前記ＣＰＵユニットを含まないブロック体を構成する各ユニットと前記ＣＰＵユニットとを接続するための延長ユニットであり、それら延長ユニット同士が延長ケーブルで接続されることで前記プログラマブルコントローラが構成され、
前記延長ユニット以外のユニットにおける前記時間同期フレームを伝搬するために要する伝搬遅延時間は、各ユニットで一定の時間とし、
前記マスタが実装されるブロックに存在するＮ番目の前記スレーブに設定される補正値は、前記一定の時間×Ｎとし、
前記延長ケーブル以降のブロックに装着されたスレーブの記憶手段に格納される補正値は、前記延長ケーブルにおける伝搬遅延時間と、マスタとの間に存在する延長ユニットでかかる伝搬遅延時間も加味して設定されることを特徴とする請求項１から３のいずれかに記載のプログラマブルコントローラ。
【請求項６】
前記延長ケーブルの長さを一定にすることで、その延長ケーブルでの伝搬遅延時間を固定値として前記補正値を設定することを特徴とする請求項５に記載のプログラマブルコントローラ。
【請求項７】
前記マスタは、自己の計時手段から時刻情報をラッチして前記時間同期フレームを作成した場合、送信待ちの他の送信フレームの有無にかかわらず前記時間同期フレームを最優先で送信することを特徴とする請求項１から６のいずれか１項に記載のプログラマブルコントローラ。
【請求項８】
前記システムバスは、前記マスタから前記スレーブに向けて送信するフレームを伝送する下り系統と、前記スレーブから前記マスタに向けて送信するフレームを伝送する上り系統が別々に構成され、前記時間同期フレームは、下り系統のシステムバスを用いて伝送されるようにしたことを特徴とする請求項１から７のいずれかに記載のプログラマブルコントローラ。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、プログラマブルコントローラに関するもので、特に、同期制御等を行うために必要な各ユニット間で時刻を合わる技術に関する。
【背景技術】
【０００２】
ＦＡ（Factory Automation）におけるネットワークシステムは、生産工場内に配備された産業ロボットその他の生産設備の入力機器及び出力機器の制御を司る１または複数のＰＬＣ（Programmable Logic Controller）と、そのＰＬＣにより動作が制御される機器とが、制御系のネットワークに接続される。制御系のネットワークに接続される複数の制御装置が同期制御を行う場合、それぞれの制御装置は、定期的に内部時計の時刻合わせを行う。つまり、マスタユニットとなる１台の制御装置が、自己の内部時計が示す時刻情報を他の制御装置に送り、他の制御装置は受け取った時刻情報に基づいて自己の内部時計を修正する。これにより、複数の制御装置の内部時計が示す時刻が一致し、その時刻に基づいて同期運転が行われる。この種の時刻合わせの技術は、例えば特許文献１に開示されている。従来の同期運転や時刻合わせは、もっぱらネットワークに接続される複数の制御装置間で行われている。
【０００３】
一方、特許文献２に開示されるように、ＰＬＣを構成する複数のユニット間で、時刻合わせを行う技術も提案されている。すなわち、ＰＬＣは、複数のユニットを連結して構成される。各ユニットは、時計を内蔵し、その時計に合わせて指定された動作（制御値の出力，データの取得等）を行なう。各ユニットの内部時計の時刻を合わせは、基本的には、特許文献１と同様に、いずれか１つのユニット（マスタユニット）の内部時計の時刻情報を、他のユニット（スレーブユニット）に送り、スレーブユニットは、取得した時刻情報にあわせて自己の内部時計の時刻を修正する。特許文献２は、この修正の際に、内部時計の時刻をいきなり取得した時刻情報に上書きして更新するのではなく、時間の進み方を増減することで、マスタユニットの内部時計とのずれを徐々になくすように修正するものである。
【０００４】
マスタユニットから送信したフレームは、伝送路を伝わってスレーブユニットで受信されるので、受信した時点では、送信時から一定の遅れが生じている。そのため、時刻合わせのために現在時刻“Ｔ”を格納したフレームをマスタユニットが送信したとしても、各スレーブユニットがそのフレームを受信したときには、すでに時刻“Ｔ”から所定時間経過しているため、各スレーブユニットは、かかる遅れ時間も考慮して時刻合わせをする必要がある。そのため、初期処理として、マスタユニットとスレーブユニットとの間で実際にメッセージを送受して伝搬遅延時間Ｔ０を求め、各スレーブユニットは、その求めた伝搬遅延時間Ｔ０を記憶保持する。そして、運転中に適宜のタイミングでマスタユニットから送られてくる現在時刻Ｔを格納したフレームをスレーブユニットが受信すると、その受信した時刻は、時刻Ｔに伝搬遅延時間Ｔ０を加算した時刻となる。各スレーブユニットは、この伝搬遅延時間も考慮して、時刻合わせを行う。
【先行技術文献】
【特許文献】
【０００５】
【特許文献１】特開２００１−２７９０４号
【特許文献２】特開２００９−１５７９１３号
【発明の概要】
【発明が解決しようとする課題】
【０００６】
従来の時刻合わせは、実際にメーセージの送受を行い、通信に要した時間を計測することで伝搬遅延時間を求めているため、スレーブユニットの数が増加するほどその伝搬遅延時間を求める処理に時間がかかり煩雑となる。
また、通常のメッセージ送信を利用した通信ではネットワーク通信の混雑の程度により伝搬遅延時間も変動する。従って、初期設定により予め求めた伝搬遅延時間と、実際の動作中に時刻あわせのために時刻情報を格納したメッセージを送信した際に要する伝搬遅延時間がずれる可能性もある。特に、スレーブユニットの数が多くなると、各スレーブユニットの時刻合わせの精度が低下する。そこで、より高精度な時刻合わせの方式を開発したいという課題がある。
【課題を解決するための手段】
【０００７】
上記の課題を解決するために、本発明のプログラマブルコントローラは、（１）複数のユニットがシステムバスにデジチェーン接続されて構成されるプログラマブルコントローラであって、その複数のユニットのうちの少なくとも２つは、計時手段を備え、その計時手段を備えたユニットの１つはマスタとなり、他のユニットはスレーブとなる。マスタは、自己の計時手段の時刻情報を格納した時間同期フレームを送信する機能を備える。この時間同期フレームを受信したユニットは、新たなデータを追加することなく次のユニットに送信する。スレーブは、マスタから何番目に配置されたユニットであるかの接続位置に対応して決定される伝搬遅延時間を特定する補正値を記憶する記憶手段と、時間同期フレームを受信した場合には、その時間同期フレームに格納された時刻情報と前記補正値から現在の時刻情報を求め、自己の計時手段を補正する補正手段と、を備えるようにした。
【０００８】
時間同期フレームは、実施形態の時間同期フレームに対応する。計時手段は、実施形態の内部時計２６，３２，４２，６２に対応する。記憶手段は、実施形態ではレジスタに対応する。計時手段の時刻情報は、具体的な日時情報のように絶対的なものでも良いし、電源ＯＮからの経過時間のような相対的なものでもよい。相対的なものの場合、何時間・何分・何秒のように人間が容易に理解できるものでも良いし、定時でカウントアップするカウンタのカウンタ値などでもよい。時間同期フレームを受信した各ユニットは、内部でデータの追加等することなくそのまま次のユニットに向けて出力する。よって、その時間同期フレームが各ユニット内を伝搬する時間は、各ユニットでほぼ一定となるので、補正値も各ユニットの接続位置（マスタから何番目のユニット等）から簡単に求めることができる。また、実際の時刻合わせの補正の際も、マスタから送信された時間同期フレームが各スレーブで受信されるまでの伝搬遅延時間は、大きくぶれることもなく、補正値に従って高精度な時刻合わせを行うことができる。
【０００９】
（２）補正値は、マスタが複数のユニットから取得した情報から求めたプログラマブルコントローラのユニット構成情報に基づき、設定対象のスレーブが何番目に配置しているかに基づいて算出し、マスタが、そのスレーブに設定するとよい。補正値は設定ツール装置などを用いて個々に設定しても良いが、マスタが設定することで間違いなく設定できる。このマスタにおける設定は、例えば、以下のようにする。マスタは、電源投入時に、プログラマブルコントローラを構成する各ユニットと通信を行い、各ユニットに設定された機種情報その他の属性情報を取得することで、デジチェーン接続されている各ユニットが、どの順番で配置されているかを検知する。各ユニットは、自己内での伝搬遅延（局遅延）時間を記憶保持しており、かかる伝搬遅延時間も併せてマスタに送る。マスタは、補正値の設定対象のスレーブまでの間に存在する各ユニットの伝搬遅延時間を取得しているため、補正値の設定対象となるスレーブまでに存在しているユニットでの伝搬遅延時間の総和を求め、求めた総和に基づいて補正値を算出する。マスタは、補正値の設定対象のスレーブが何番目に存在しているかを認識している。従って、各ユニットでの伝搬遅延時間が一定とし、係る１個あたりのユニット出かかる伝搬遅延時間（予め設定した固定値）に補正値の設定対象となるスレーブまでに存在しているユニットの数を乗算し、求めた値に基づいて補正値を算出するようにしてもよい。
【００１０】
（３）補正値は、スレーブの時間同期フレームを伝搬するために要する伝搬遅延時間と、マスタで時間同期フレームを作成して送信するのに要する処理時間に基づき設定するとよい。このようにすると、より正確に補正値を求めることができる。
【００１１】
（４）ユニットが時間同期フレームを伝搬するために要する伝搬遅延時間は、基準時間ｔ０で一定とするとともに、マスタと一体に連結されるＮ番目のレーブに設定される補正値は、前記一定の時間×Ｎから求めることができる。このように、各ユニットの伝搬遅延時間を固定値にすることで、各補正値を簡単に求めることができる。
【００１２】
（５）システムバスにデジチェーン接続される複数のユニットからなるブロック体を複数備え、その複数のブロック体のうちの１つはＣＰＵユニットを含み、複数のユニットの１つは、ＣＰＵユニットを含まないブロック体を構成する各ユニットとＣＰＵユニットとを接続するための延長ユニットであり、それら延長ユニット同士が延長ケーブルで接続されることでプログラマブルコントローラが構成され、延長ユニット以外のユニットにおける時間同期フレームを伝搬するために要する伝搬遅延時間は、各ユニットで一定の時間とした。そして、マスタが実装されるブロックに存在するＮ番目の前記スレーブに設定される補正値は、前記一定の時間×Ｎとし、延長ケーブル以降のブロックに装着されたスレーブの記憶手段に格納される補正値は、延長ケーブルにおける伝搬遅延時間と、マスタとの間に存在する延長ユニットの伝搬遅延時間も加味して設定されるようにすると良い。この発明は、第２実施形態で実現される。
【００１３】
（６）上記の（５）の発明を前提とし、延長ケーブルの長さを一定にすることで、その延長ケーブルでの伝搬遅延時間を固定値として補正値を設定するとよい。このようにすると、延長ケーブルでの伝搬遅延を実測することなく、精度良く求めることができるので、簡単な処理で適切な補正値を求めることができる。
【００１４】
（７）マスタは、自己の計時手段から時刻情報をラッチして時間同期フレームを作成した場合、送信待ちの他の送信フレームの有無にかかわらず時間同期フレームを最優先で送信するようにするとよい。マスタからは、各種のフレームが作成され、適宜の順で送信されるので、仮に、マスタの計時手段から時刻情報をラッチし、時間同期フレームを作成した状態で当該時間同期フレームの送信がされずに待機状態が長く続くと、実際に送信されたときには時刻情報から大きく遅れた時刻となり、時刻合わせの精度が低下する。そこで、最優先にすることで、係る問題の発生を抑制する。
【００１５】
（８）システムバスは、前記マスタから前記スレーブに向けて送信するフレームを伝送する下り系統と、前記スレーブから前記マスタに向けて送信するフレームを伝送する上り系統が別々に構成され、時間同期フレームは、下り系統のシステムバスを用いて伝送されるようにするとよい。このようにすると、時間同期フレームが、上りフレームと衝突して送信エラーとなることが無い。時間同期フレームは、マスタがスレーブに対して送信するため、その送信タイミングはマスタで管理できる。時間同期フレームを受信したスレーブ型のスレーブに転送する場合も下り系統を利用する。よって、下り系統を用いて時間同期フレームを送信することで、設定された補正値に対応した伝搬遅延時間で、より確実かつ早くに各スレーブに時間同期フレームを送信できる。
【発明の効果】
【００１６】
本発明は、プログラマブルコントローラを構成するシステムバスで連結されたマスタとスレーブの時刻合わせを簡単かつ正確に行うことができる。
【図面の簡単な説明】
【００１７】
【図１】本発明に係るプログラマブルコントローラの好適な第１実施形態を示す図である。
【図２】時刻合わせ機能を説明する図である。
【図３】時刻合わせ機能を説明する図である。
【図４】時刻合わせ機能を説明する図である。
【図５】変形例を示す図である。
【図６】変形例を示す図である。
【図７】本発明に係るプログラマブルコントローラの好適な第２実施形態を示す図である。
【発明を実施するための形態】
【００１８】
［第１実施形態］
図１は、本発明のプログラマブルコントローラ（以下、「ＰＬＣ」）１０の第１実施形態を示している。このＰＬＣ１０は、各種の機能を実現するための複数のユニットを連結して構成される。この複数のユニットは、少なくとも１つのＣＰＵユニット２０を有する。更に、本実施形態のＰＬＣ１０は、Ｉ／Ｏユニット３０（入力ユニット、出力ユニット、入出力ユニットなど），高機能Ｉ／Ｏユニット４０（高機能入力ユニット、高機能出力ユニット、高機能入出力ユニットなど），エンドユニット５０を備えている。さらに、図示省略するが、ＰＬＣ１０を構成する各ユニットに対して電源供給を行うための電源ユニットも備えている。もちろん、ＰＬＣ１０を構成するユニットは、上記のものに限ることはなく、実行したい制御に応じて必要なものを適宜取捨選択して構成する。
【００１９】
これらの各ユニットは、ケースの側面にコネクタ１５を備える。各ユニットは、コネクタ１５同士を連結することで、電気的に接続される。すなわち、コネクタ１５には、高速シリアル通信線の一端が接続され、高速シリアル通信線の他端は、ユニットの内部回路（本実施形態ではＡＳＩＣ）に接続される。また、電源線もコネクタ１５に接続される。これにより、隣接するユニットのコネクタ１５同士を連結することで、電源ユニットからのユニットへの電源供給が行えるとともに、ユニット間でデータ通信が行える。さらにＰＬＣ１０のユニット間の通信は、ＡＳＩＣを用いて行い、高速化を図っている。
【００２０】
本実施形態のプログラマブルコントローラを構成するシステムバスは、下り用システムバス１１と上り用システムバス１２の２系統で構成される。このように、各システムバス１１，１２を流れるフレームの方向を固定することで、通信時のフレームの衝突の発生確率を抑制し、より確実かつスムーズに伝送できるようにしている。なお、本発明では、システムバスとして、このように下り用と上り用の２つを設けることは、必須ではない。
【００２１】
ＣＰＵユニット２０は、ＦＡネットワークを構成する各機器の動作を制御するもので、「共通処理」，「ＩＮリフレッシュ」（マスタがスレーブのＩＮデータを読み出す処理），「ユーザプログラムの演算実行」，「ＯＵＴリフレッシュ」（マスタからスレーブへ出力データを書き込む処理），「周辺サービス」をサイクリックに実行する。本発明との関係で言うと、ＣＰＵユニット２０は、マスタユニットとなり、ＰＬＣ１０を構成する他のユニットとの間で時刻合わせを行う。
【００２２】
ＣＰＵユニット２０は、ＭＰＵ２１と、ＥＥＰＲＯＭ２２と、ＲＡＭ２３と、ＡＳＩＣ２４と、通信回路２５と、内部時計２６と、を備えている。ＥＥＰＲＯＭ２２は、ＣＰＵユニット用のシステムプログラムや、ユーザプログラムが格納される。ＭＰＵ２１は、ＣＰＵユニット用のマイクロプロセッサユニットであり、ＥＥＰＲＯＭ２２に格納されているシステムプログラムやユーザプログラムを実行することによってＰＬＣ全体を統括制御する。ＲＡＭ２３は、ＭＰＵ２１が動作する際にワークメモリとして使用されるメモリである。
【００２３】
ＡＩＳＣ２４は、ユーザプログラムの一部を実行する機能を有する。また、本発明との関係で言うと、ＡＳＩＣ２４は、他のユニットとの間でマスタ−スレーブ通信を行う機能を有する。すなわち、ＡＳＩＣ２４は、具体的な内部構造の図示は省略するが、ＭＰＵ２１と通信するためのＭＰＵインタフェース部や、スレーブユニットとの間で送受するＩＯデータ等を格納する共有メモリ部や、スレーブユニットとの間でマスタ−スレーブ通信を管理する通信コントローラ部や、下り用システムバス１１に接続され、実際にデータの送受を行う送信制御部２４ａ並びに受信制御部２４ｂを備えている。上述したように、システムバス１１，１２の伝送方向を一方向に固定したため、送信制御部２４ａは下り用システムバス１１に接続し、受信制御部２４ｂは上り用システムバス１２に接続する。
【００２４】
ＡＳＩＣ２４は、ＭＰＵ２１からの指示に従い、スレーブユニットに対して時刻合わせのための時間同期フレームを送信したり、ＰＬＣのユニット構成を調査するメッセージフレームを送信したりする。また、ＡＳＩＣ２４は、そのメッセージフレームに対するレスポンスとして、各ユニットの構成情報を受信すると、受信した構成情報をＭＰＵ２１に送る。時刻合わせのための具体的な機能は、後述する。
【００２５】
通信回路２５は、フィールドネットワークに接続されたリモートＩ／Ｏ等の機器との間で通信する。内部時計２６は、ＰＬＣ１０を構成する各ユニットの動作の基準となる時刻を示すもので、具体的な時刻を示すものでも良いし、電源投入からの経過時間（カウンタのカウンタ値）を示すものでも良い。この内部時計２６は、水晶発振器に基づいて動作する。
【００２６】
Ｉ／Ｏユニット３０や高機能Ｉ／Ｏユニット４０は、センサやスイッチなどの入力機器を接続してそれらのオン・オフ信号を入力信号として取り込む入力ユニットやアクチュエータやリレーなどの出力機器を接続してそれらに対して出力信号を送り出す出力ユニット等である。それらのユニット３０，４０は、スレーブユニットとなる。
【００２７】
Ｉ／Ｏユニット３０は、ＡＳＩＣ３１、内部時計３２並びに時刻情報補正用の補正時間を格納するレジスタ３３を備える。レジスタ３３はＡＳＩＣ３１内部に組み込んでも良い。内部時計３２は、内部時計２６と同様に具体的な時刻を示すものでも良いし、電源投入からの経過時間（カウンタのカウンタ値）でも良い。Ｉ／Ｏユニット３０のＡＳＩＣ３１は、ＰＬＣ１０を構成する各ユニットが動作タイミングを合わせる同期運転をする場合、この内部時計３２の時刻情報に基づいて動作する。ここで、動作タイミングを合わせるとは、例えば複数のＩ／Ｏユニットがともに出力ユニットとした場合に、その出力ユニットに接続された出力機器が同時に動作を開始したり、ある出力機器が動作開始後設定された時間経過後に別の出力機器が動作したりするものがある。
【００２８】
ＡＳＩＣ３１は、具体的な内部構造の図示は省略するが、マスタ−スレーブ通信を管理する通信コントローラ部や、システムバス１１，１２に接続されて実際にデータの送受を行う送信制御部３１ａ，３１ｃ並びに受信制御部３１ｂ，３１ｄを備えている。そしてこのＡＳＩＣ３１は、ＣＰＵユニット２０との間でＩＯデータの送受を行い、接続された外部機器との間で図示省略のＩＯ機器用インタフェースを介してＩＯ信号の送受を行う。ＡＳＩＣ３１は、システムバス１１，１２に対してデジチェーン接続されている。そして、ＡＳＩＣ３１の通信コントローラ部は、下り用システムバス１１を伝送されてくるフレームを受信制御部３１ｂで受信すると、所定の処理を実行し、対となる送信制御部３１ａから下流側のスレーブユニットへ送信する。同様にＡＳＩＣ３１の通信コントローラ部は、上り用システムバス１２を伝送されてくるフレームを受信制御部３１ｄで受信すると、所定の処理を実行し、対となる送信制御部３１ｃから上流側の隣のユニットへ送信する。もちろん、下り用システムバス１１で送られてきたフレームが自己宛のもので、その処理結果としてＣＰＵユニット２０にレスポンスを返す場合、係るレスポンスは、送信制御部３１ｃから上り用システムバス１２に送信する。
【００２９】
高機能Ｉ／Ｏユニット４０は、上記のＩ／Ｏユニット３０と同様にＡＳＩＣ４１、内部時計４２並びに時刻情報補正用の補正時間を格納するレジスタ４３を備えるとともに、ＭＰＵ４４を備える。このＭＰＵ４４が、より複雑な処理を実行する。そして高機能Ｉ／Ｏユニット４０は、演算処理，ＩＯリフレッシュ，共通処理，周辺サービス等の一連の処理をサイクリックに実行する。つまり、高機能Ｉ／Ｏユニット４０は、自ら接続された出力機器の動作を制御するなどの機能を備え、特殊ユニットと称しても良い。演算処理は、予め設定されたプログラムを実行するものでも良いし、ユーザプログラムを実行するものでもよい。
【００３０】
また、高機能Ｉ／Ｏユニット４０のＡＳＩＣ４１は、ＰＬＣを構成する各ユニットと同期運転する場合、この内部時計４２の時刻情報に基づいて動作する。ＡＳＩＣ４１は、システムバス１１，１２に対してデジチェーン接続されている。よって、ＡＳＩＣ４１は、送信制御部４１ａ，４１ｃと受信制御部４１ｂ，４１ｄを備え、送信制御部並びに受信制御部は、それぞれ対応する下り／上り用のシステムバス１１，１２に接続され、他のユニットと通信する。また、高機能Ｉ／Ｏユニット４０はＭＰＵ４４を備えることから、ＡＳＩＣ４１にはＭＰＵインタフェース部を備える。さらに、本実施形態では、この高機能Ｉ／Ｏユニット４０がＣＰＵユニット２０から最も離れた最終のユニットであるため、その後にエンドユニット５０が装着される。そして、高機能Ｉ／Ｏユニット４０のＡＳＩＣ４１の送信制御部４１ａは、エンドユニット５０内の終端抵抗５１に接続される。
【００３１】
＊時刻合わせ機能
各スレーブユニットのレジスタ３３，４３に格納される下り用システムバス１１の伝搬遅延時間を考慮した補正時間は、以下のようになっている。この補正時間のレジスタ３３，４３への格納処理は、後述するように、設定ツール装置やユニットに設けた設定スイッチをユーザがマニュアル操作して個々に行ったり、マスタが自動的に行ったりする。
【００３２】
ＣＰＵユニット２０（ＡＳＩＣ２１）から送信された時刻合わせのための時間同期フレームは、下り用システムバス１１を用いて伝送される。各スレーブユニットは、この時間同期フレームを受信した場合、そのフレームにデータを追加したりすることなくそのまますぐに送信制御部にて次のユニットに向けて送信する。これにより、１つのユニットの受信制御部で時間同期フレームを受信してから送信制御部から送信されるまでに要する時間はほぼ一定となり、さらに、フレームがユニット内部の線路や、ユニット間のシステムバス１１を移動する時間も、線路長から一意に規定され一定となる。よって、次のユニットにフレームを転送するための要する時間は、スレーブユニットであればほぼ等しいと言える。
【００３３】
従って、あるユニットの送信制御部からフレームが送信されたときから、そのフレームが次のユニットのＡＳＩＣで受信されるとともに当該次のユニットの送信制御部から出力されるまでに要する時間は、各ユニットとも等しく一定とみなせる。係る一定の時間を基準時間と称してｔ０とすると、図１に示す実施形態の場合、ＣＰＵユニット２０の送信制御部２４ａから時間同期フレームが送信されたときから、その時間同期フレームがＣＰＵユニット２０に隣接する１番目のＩ／Ｏユニット３０の送信制御部３１ａから出力されるまでに要する伝搬遅延時間は、ｔ０となる。
【００３４】
同様に、その１番目のＩ／Ｏユニット３０の送信制御部３１ａから時間同期フレームが送信されたときから、その時間同期フレームが隣接する２番目のＩ／Ｏユニット３０のＡＳＩＣ３１で受信され、送信制御部３１ａから出力されるまでに要する伝搬遅延時間は、ｔ０となる。従って、ＣＰＵユニット２０の送信制御部２４ａから時間同期フレームが送信されたときから、その時間同期フレームが２番目のＩ／Ｏユニット３０の送信制御部３１ａから送信されるまでに要する伝搬遅延時間は、２×ｔ０となる。同様に、ＣＰＵユニット２０の送信制御部２４ａから時間同期フレームが送信されたときから、その時間同期フレームがＮ番目のスレーブユニットの送信制御部から送信されるまでに要する伝搬遅延時間は、Ｎ×ｔ０となる。なお、各ユニットの内部処理、すなわち、受信制御部で受信してから送信制御部から出力するまでに要する時間に比べて、ユニット間のシステムバス１１条を伝送する時間は非常に短く無視することもできる。よって、係るｔ０は、ユニットの内部処理に要する時間としてもよい。
【００３５】
このように、各スレーブの接続位置で、ほぼ固定的な伝搬遅延時間となるので、Ｎ番目のユニットのレジスタには、伝搬遅延時間に基づく補正時間として、“Ｎ×ｔ０”を格納する。図１の例では、１番目のＩ／Ｏユニット３０のレジスタ３２には、“ｔ０”が格納され、２番目のＩ／Ｏユニット３０のレジスタ３２には、“２×ｔ０”が格納され、３番目のスレーブユニットとなる高機能Ｉ／Ｏユニット４０のレジスタ４２には、“３×ｔ０”が格納される。
【００３６】
このように、各ユニットのレジスタに格納する補正時間は、ＣＰＵユニット２０に近いユニットから順にｔ０ずつ加算した時間（Ｎ番目のスレーブユニットは“Ｎ×ｔ０”）となる。従って、ユーザがマニュアル操作で補正時間をレジスタに格納する場合、ユーザは設定対象のユニットがＣＰＵユニットから何番目のユニットであるかを確認し、設定ツール装置を用いて対応する補正時間を個々に設定したり、各スレーブユニットに補正時間の設定用のスイッチなどを設け、ユーザがそのスイッチを操作してユニットごとに設定したりすることもできる。このスイッチは、例えばＮ番目であることを特定するスイッチとする。すると、各ユニットのＡＳＩＣは、予め記憶保持しておいた補正の基準時間ｔ０とスイッチで特定されるＮを乗算して補正時間を求めレジスタに格納する。
【００３７】
また、マスタであるＣＰＵユニット２０が、各レジスタに対して補正時間を自動的に設定するようにしても良い。すなわち、電源投入時やシステム立ち上げ時の初期処理として、ＣＰＵユニット２０が、ＰＬＣを構成する各ユニットの接続位置情報を取得し、補正時間の設定対象の各スレーブユニットの補正時間を算出すると共に、その算出した補正時間をそれぞれのスレーブユニットに通知する。そして、係る通知を受けたスレーブユニットは、送られてきた補正時間をレジスタに格納する。すなわち、ＣＰＵユニット２０のＡＳＩＣ２４は、通信に先立ち、下り用システムバス１１を用いて、各スレーブユニットに対し、プロファイル要求メッセージを送信する。各スレーブユニットは、自己のプロファイル（機種情報等）を上り用システムバス１２を用いて送る。これにより、ＣＰＵユニット２０は、受信した各ノードを構成するユニットのプロファイル情報から各ノードに何のユニットがセットされているのかの構成情報を認識する。そこでＣＰＵユニット２０のＭＰＵ２１は、その収集した構成情報に基づき、各スレーブユニットが何番目に接続されているのかを求めるとともに、基準時間ｔ０を乗算して補正時間を求めることができる。
【００３８】
次に、実際の制御実行時の時刻合わせについて説明する。ＣＰＵユニット２０（マスタ）のＡＳＩＣ２４は、自発的或いはＭＰＵ２１からの指示に従い、内部時計２６の時刻情報を時間同期フレームのデータ部に格納し、ブロードキャスト配信する。すなわち、図２〜図４に示すように、ＡＳＩＣ２４内の送信コントローラ部２４ｃは、時刻合わせの条件を満たすと、時間同期フレームのための送信データ（時刻情報）を送信制御部２４ａに与えるように制御し、時間同期フレーム送信要求フラグをＯＮにする。なお、送信条件は、本実施形態では、送信タイマのタイムアップである。よって、時間同期フレームの送信処理は、送信タイマで設定される時間間隔で定時処理されることになる。この時間同期フレームは、最優先で送信される。
【００３９】
送信制御部２４ａの符号化部は、その時間同期フレーム送信要求フラグの立ち上がりを検知し、マスタ時刻となる内部時計２６の時刻情報をラッチする。そして符号化部は、ラッチした時刻情報を、時間同期フレームのデータ部内に格納する。このようにして生成された時間同期フレームは、送信部からＳＥＲ部（SERializer）を経由して、パラレル−シリアル変換され、伝送路である下り用システムバス１１に出力される。ＡＳＩＣは、時刻情報をラッチしたならば、時間同期フレームを最優先で遅滞なく送信される。つまり、ラッチした際に複数のフレームが送信待ちをしていた場合でも、ＡＳＩＣは、現在送信処理中のフレームの送信処理が完了後、次の送信タイミングで時間同期フレームを送信する。
【００４０】
そして、下り用システムバス１１を伝送されてきた時間同期フレーム（シリアル）は、１段目のスレーブユニット（ここでは、Ｉ／Ｏユニット３０）のＡＳＩＣ３１の受信制御部３１ｂに受信される。受信制御部３１ｂでは、ＤＥＳ部（DESerializer）にてシリアル−パラレル変換され、受信部を経由して復号部に渡され、復号化される。ＡＳＩＣ３１は、時間同期フレームに格納されたマスタ時刻を取得できる。そして、復号部は、復号化された時間同期フレームのフレームチェックを行い、チェックが正常と判定されると復号化処理が正常完了したとして、受信完了フラグをＯＮにする。なお、チェックが異常と判定された場合、ＡＳＩＣ３１は受信したデータを破棄し、送信コントローラ３１ｅはエラーレスポンスを作成する。そして、送信制御部３１ｃは、その作成したエラーレスポンスを上り用システムバス１２を用いてＣＰＵユニット２０に送る。なお、このようにエラーレスポンスを送らないようにしても良い。
【００４１】
ＡＳＩＣ３１は、この受信完了フラグがＯＮになる立ち上がりで受信した時間同期フレームで送られてきたマスタ時刻をラッチし、当該マスタ時刻にレジスタ３４に格納された補正時間を加算することで現在の時刻を求め、その求めた時刻に基づいて自己の内部時計３２を補正する。
【００４２】
求めた現在時刻に基づく内部時計３２の補正は、例えば、内部時計３２の時刻を、上記の求めた現在の時刻によって上書きすることにより更新する処理を行うことで実現できる。また、このように上書きにより更新すると、補正前後で内部時計３２の示す値が離散的に飛んでしまう。それを防ぐために、ＡＳＩＣ３１は、特許文献２に開示された補正アルゴリズム等を用い内部時計３２の時間の進む速度を速めたり遅らせたりすることで、時刻を連続的に徐々にマスタ時刻に合わせるように修正するようにしてもよい。
【００４３】
また、復号部で復号化された時間同期フレームは、送信コントローラ３１ｅの制御により送信制御部３１ａに与えられ、最終的に、送信制御部２４ａのＳＥＲ部（SERializer）にてパラレル−シリアル変換され、伝送路である下り用システムバス１１に出力される。
【００４４】
このようにしてデジチェーン方式で送信された時間同期フレームは、次段に隣接するスレーブユニット（ここでは、２番目のＩ／Ｏユニット３０）にて受信される。そして、上記と同様にフレームの受信チェックが正常の場合、ＡＳＩＣ３１は、受信した時間同期フレームに格納されていたマスタ時刻を取得し、補正時間（２×ｔ０）を加算した値を現在時刻となるように内部時計３２を補正する。そして、送信コントローラは、受信した時間同期フレームを送信制御部２４ａを用いて下り用システムバス１１に送信する。
【００４５】
このようにすることで、各スレーブユニットは、ＣＰＵユニット２０から送られてきた時間同期フレームをデジチェーン方式で順次隣接するスレーブユニットに転送する。さらに、Ｎ番目のスレーブユニットの時刻は、マスタ時刻に対してＣＰＵユニット２０との間に存在するＮ−１個分のスレーブユニットの局遅延（（Ｎ−１）×ｔ０）だけ加算することで補正する（図４参照）。
【００４６】
なお、スレーブユニットは、多くの場合その外形寸法形状は等しいため、隣接するユニット間をつなぐシステムバス１１，１２の長さや、ユニット内での配線の長さもほぼ等しく、フレームがその伝送経路を伝搬される時間も等しい。また、ユニットの種類によっては、幅寸法が倍になるなど、ユニット内の配線の長さが通常のものよりも長く、それに伴いそこを伝搬される時間が長くなるが、係る伝送路を伝搬される時間はＡＳＩＣ内での処理時間に比べて十分に短いので、上記のように、１つのユニットでの伝搬遅延時間は、一律に基準時間ｔ０としても実用上問題がない。そして、そのように伝搬遅延時間を一律に設定することで、簡単に補正時間の設定が行える。もちろん、より正確にするためには、各ユニットにプロファイル情報としてそのユニットでの伝搬遅延時間を記憶保持しておき、ＣＰＵユニット２０が構成情報を取得する際に、係る各ユニットの伝搬遅延時間も取得し、それに基づいてＣＰＵユニット２０のＭＰＵ２１が、個々のノード（スレーブユニット）ごとにＣＰＵユニット２０からの伝搬遅延時間を求めるようにしても良い。
【００４７】
なお、１つのユニットを通過するのに必要とする時間を基準時間ｔ０とした場合に、ＣＰＵユニット２０の送信制御部２４ａから送信された時間同期フレームが、ＣＰＵユニット２０に隣接する１番目のＩ／Ｏユニット３０の送信制御部３１ａから送信されるまでに要する伝搬遅延時間は、ｔ０となり、同様に、Ｎ−１番目のスレーブユニットの送信制御部から送信された時間同期フレームが、Ｎ番目のスレーブユニットのＡＳＩＣの送信制御部から出力されるまでに要する伝搬遅延時間は、ｔ０となる。しかし、時間同期フレームに、送信制御部から送信された時刻を格納することはできない。そこで、マスタ時刻をラッチして時間同期フレームにマスタ時刻を格納し、実際に送信されるまでの処理が、ＣＰＵユニット２０のＡＳＩＣ２４の送信制御部２４ａで行われることから、係る送信制御部２４ａでの処理時間と、１番目のＩ／Ｏユニット３０の送信制御部３１ａでの処理時間がほぼ等しいとみなせる。同様に、同一のユニットの受信制御部での処理時間と送信制御部での処理時間を合わせた当該ユニットの処理時間は、前段のユニットの送信制御部での処理時間と、自己の受信制御部での処理時間を合わせたものと等しいとみなせる。そこで、図３，図４に示すように、ＣＰＵユニット２０のＡＳＩＣ２４の送信制御部２４ａにてマスタ時刻データをラッチした時点を基準に、各レジスタに設定された補正時間を加算することで、その時点での各内部時計の時刻を合わせることができる。
【００４８】
マスタユニット２０における送信制御部２４ａは、時間同期フレームのための時刻データを取得するとともに、ヘッダ部やエラーチェック用の訂正符号部などを付加して時間同期フレームを作成するとともに符号化するが、スレーブユニットにおける送信制御部３１ａ，４１ａの符号化部では、対となる受信制御部３１ｂ，４１ｂの復号化部で復号化したフレームを再度符号化する処理を行うことになり、マスタユニットにおける復号化部に比べるとその処理時間は短い。ただし、この処理時間の差は、各ユニットを伝搬する際の要する時間に比べると十分短いために、本実施形態のように、Ｎ番目のユニットの補正時間をＮ×ｔ０で求めても問題はない。なお、高速化がさらに進むなど、その差が無視できなくなったり、より正確に求めたりするためには、マスタユニットの処理時間を考慮し、Ｎ番目のユニットの補正時間は、
Ｎ×ｔ０＋Ｃ
により求めるようにしても良い。ここで、Ｃは、マスタユニットの送信処理にかかる時間（マスタ時刻をラッチしてから出力されるまでの時間）と、スレーブユニットで送信処理にかかる時間の差である。
【００４９】
ＣＰＵユニット２０に直結された１番目のスレーブユニットに設定する補正時間（図３に示す１段目の補正時間）は上記のマスタとしての送信処理時間を考慮して決定する時間ｔ０′とし、２番目以降のユニットに対する補正時間としては、
（Ｎ−１）×ｔ０＋ｔ０′
としてもよい。
【００５０】
［変形例］
デジチェーン接続された各スレーブユニットにおけるフレームの転送のための仕組みは、上述したものに限ることはなく、各種のもので実現できる。一例としては、例えば図５に示すようなものがある。すなわち、受信制御部３１ｂ（図では、Ｉ／Ｏユニット３０の部分のみ示しているが、その後段に続く高機能Ｉ／Ｏユニット４０でも同じ）で受信した時間同期フレームは、受信制御部３１ｂのＤＥＳ部ａでシリアル−パラレル変換され、フォワード部ｂに転送される。フォワード部ｂは、符号のアライメント処理、つまり、時間同期フレームの先頭位置等を正確に認識し、復号化する。そして、フォワード部ｂは、復号化したフレームを受信部ｃに渡すとともに、バッファに格納する。そのバッファに格納されたフレームは、復号化処理された後、ＳＥＤ部ｄにてパラレル−シリアル変換され、次のユニットに向けて送信される。  
【００５１】
この例では、復号化したフレームを受信部に渡し、所定の受信処理を行うとともに、それと平行してＳＥＤ部ｄに渡して次のユニットへの転送を行うようにしている。このとき、受信部ｃで正常受信したか否かの確認を待つことなく転送を行うことで、より高速に各スレーブユニットへの伝送が行える。
【００５２】
なお、受信部ｃで受信したフレームは、すでにフォワード部ｂにより復号化されているので、上述した実施形態のように受信部ｃによる受信処理の後で復号化する必要はなく、受信部で受信正常完了したタイミングで、上記の実施形態と同様の内部時計の補正処理をすることになる。
【００５３】
この例と、上記の第１実施形態の対応関係を示すと、フォワード部ｂは、受信制御部３１ｂの機能と送信制御部３１ａの機能を兼ねているといえる。そして、このように構成することで、各ユニットでの転送の速度が増し、高速通信が図れるが、それに伴い、マスタユニットにおける送信制御部２４ａでの処理時間と、各スレーブユニットにおける送信制御部３１（フォワード部（バッファ格納・符号化）とＳＥＲ部）での処理時間の差が、大きくなる。この場合でも、上述した第１の実施形態と同様に、Ｎ番目の補正時間をＮ×ｔ０と行った概略の簡易な処理で求めることができる。そして、より正確な補正時間を設定する場合には、上述した変形例のようにマスタユニットでの処理時間を考慮して、各ユニットの補正時間を求めると良い。
【００５４】
［変形例］
また、別の例としては、図６に示すようなものとすることもできる。この例では、さらに高速に転送することができる。すなわち、フォワード部ｂ′では、符号のアライメント処理を行った後、復号化することなく受信部ｃに渡すとともにバッファに格納する処理を実行する。これにより、下流側のスレーブへの転送は、ＤＥＳ部ａでシリアル−パラレル変換後、符号アライメント処理をして先頭位置を正確に特定後バッファに格納し、ＳＥＲ部ｄで出力されるので、図５に示す例よりもさらに高速に送信フレームを伝送できる。
【００５５】
また、時刻合わせは、第１実施形態と同様に受信部で受信後、復号部ｅで復号化し、正常受信完了のタイミングで、取得したマスタ時刻と補正時間に基づき補正処理を行い、内部時計を修正する。
【００５６】
この図６に示す例でも、簡易的な補正時間の設定は、Ｎ×ｔ０で行うことができるが、マスタユニットにおける送信制御部の処理時間と、各スレーブユニットでの送信制御部での処理時間の差がさらに広がるため、より正確に補正時間を求めるためには、マスタユニットにおける送信制御部の処理時間を考慮した上記の各種の設定方法を採用すると良い。
【００５７】
［第２実施形態］
図７は、第２実施形態を示している。本実施形態のＰＬＣ１０は、複数のユニットを連結して構成されるブロック体を複数用意し、それらを延長ケーブル１４で連結して構成される。つまり、ＣＰＵユニット２０と複数のユニットを連結して構成されるブロック体の最終段に延長ユニット６０を取り付けるとともに、その延長ユニット６０に延長ケーブル１４の一方のコネクタを接続する。一方、複数のスレーブユニットを連結するともに少なくとも一方の端部に延長ユニット６０′を連結して構成される延長ブロック体を用意し、その延長ユニット６０′に上記の延長ケーブル１４の他端を連結することで、２つのブロック体を連結する。延長ユニット６０，６０′は、ＣＰＵユニット２０が含まれていないブロック体を構成する各ユニットと、ＣＰＵユニット２０とをシステムバス１１，１２で接続するためのものである。特に、スレーブユニットをベースユニットに設けたスロットに装着するタイプでは、ベースユニットのスロット数以上のユニットを用いてＰＬＣを構成しようとした場合、複数のベースユニットと延長ユニットを用いる。また、本実施形態のように、ユニットの側面同士を直接接続する場合でも、例えば、多数のユニットを連結する場合に、それら全てを連結すると１つのブロックが大きくなり過ぎることがあるため、本実施形態のように複数のブロックに分けるとともに、それら複数のブロック体を延長ユニット６０，６０′及び延長ケーブル１４にて連結して構成する。延長ブロック体は、１または複数個用いることができ、最終段の延長ブロック体の端部にエンドユニット５０を接続する。
【００５８】
延長ユニット６０，６０′は、ＡＳＩＣ６１と、内部時計６２と、補正時間を格納するレジスタ６３と、を備えている。ＡＳＩＣ６１は、上述したＩ／Ｏユニット３０のＡＳＩＣ３１や高機能Ｉ／Ｏユニット４０のＡＳＩＣ４１と同様に、下り用システムバス１１に接続する送信制御部６１ａ，受信制御部６１ｂや、上り用システムバス１２に接続する送信制御部６１ｃ，受信制御部６１ｄを備えている。さらにＡＳＩＣ６１は、受信したフレームに対し、波形整形処理を行う波形整形部も備えている。図示省略するが、この波形整形部は、例えば下流側に位置する受信制御部と送信制御部の間に組み込まれることになる。すなわち、下り用システムバス１１に接続される延長ユニット６０′の受信制御部６１ｂと送信制御部６１ａの間と、上り用システムバス１２に接続される延長ユニット６０の受信制御部６１ｄと送信制御部６１ｃの間に配置される。上流側と下流側に配置しても良い。
【００５９】
そして、ＡＳＩＣ６１は、他のスレーブユニットと同様に、ＣＰＵユニット（ＡＳＩＣ２４）から送られてきた補正時間を受信すると、それをレジスタ６２に格納し、時間同期フレームを正式受信すると、そこに格納されていたマスタ時刻を取得し、レジスタ６２に格納されていた補正時間に基づき内部時計６３の時刻を補正する。さらに、ＡＳＩＣ６１は、下り用システムバス１１の受信制御部６１ｂで時間同期フレームを受信すると、データを追加することなく送信制御部６１ａからその時間同期フレームを送信するが、このとき、波形整形部にて波形整形処理などを行う。そのため、下り用システムバス１１で隣接するスレーブユニットから送信された時間同期フレームが、延長ユニット６０，６０′の送信制御部６１ａから送信されるまでの伝搬遅延時間は、少なくとも係る波形整形処理等に要する時間だけ他の一般のスレーブユニットにおける伝搬遅延時間よりも長くなる。
【００６０】
なお、この波形整形処理は、時間同期フレームに限ることなく、全てのフレームに対して行う。また、上り用システムバス１２に接続する受信制御部６１ｄがフレームを受信すると、波形整形処理をした後、送信制御部６１ｃから送信する。
【００６１】
また、時間同期フレームが延長ケーブル１４を伝送される際にも、伝搬遅延時間が発生する。この伝搬遅延時間は、延長ケーブル１４の長さに比例する。本実施形態では、各延長ユニット同士を接続するために使用する延長ケーブル１４の長さを等しくし、延長ケーブル１４で生じる伝搬遅延時間も固定値ｔ２となるようにしている。
【００６２】
図１に示すように、ＰＬＣが延長ケーブルなど用いることなく単一のブロック体から構成されている場合、上述したように各スレーブユニットの補正時間は、単純にＮ番目のスレーブユニットがＮ×ｔ０となる。これに対し、本実施形態のように、延長ケーブル１４が介在されることで、延長ケーブル１４以降のスレーブユニットの補正時間は、延長ケーブル１４での伝搬遅延時間ｔ２を考慮する必要がある。さらに、延長ユニット６０，６０′での伝搬遅延時間ｔ１も一般のスレーブユニットで遅延する基準時間ｔ０よりも長い。
【００６３】
そこで、ＣＰＵユニット２０のＭＰＵ２１は、システム立ち上げ時に取得した構成情報から、延長ユニットの有無を判断し、延長ユニットがある場合には、対となる延長ユニットの間に延長ケーブル１４が存在していると判断して各ユニットについての補正時間を求め、その求めた補正時間を各ユニットに通知する。
【００６４】
具体的には、ＣＰＵユニット２０を含むブロック体に連結されたスレーブユニットに対しては、上記の第１の実施形態と同様にＮ番目のスロットであれば、補正時間はＮ×ｔ０となる。また、第１実施形態でも説明した通り、補正時間は、ＣＰＵユニット２０のＡＳＩＣ２４の送信制御部２４ａにてマスタ時刻データをラッチした時点を基準に、スレーブユニットの受信制御部で正常に受信されるまでの時間である。従って、延長ユニット６０における波形整形処理が、受信制御部における正常受信された後で行われるとすると、当該延長ユニットで受信処理が完了するまでの伝搬遅延時間は、波形処理等の影響を受けないので、当該延長ユニット６０の補正値は、補正時間はＮ×ｔ０となる。
【００６５】
この延長ユニット６０と延長ケーブル１４で接続された別の延長ブロック体を構成する延長ユニット６０′についての補正時間は、延長ユニット６０での伝搬遅延時ｔ１と延長ケーブル１４での伝搬遅延時間ｔ２を考慮して求める。具体的には、当該延長ユニット６０′がＮ番目であるとすると、
補正時間＝（Ｎ−１）×ｔ０＋ｔ１＋ｔ２
となる。さらに、この延長スロット６０′の後段に続くスレーブユニットの補正時間は、係る延長スロット６０′での伝搬遅延時間ｔ１も考慮して求める。
【００６６】
なお、本実施形態では、延長ケーブル１４の長さを固定にしたことで、延長ケーブル１４での伝搬遅延時間ｔ２も固定値となり、システム立ち上げ時に構成情報を取得することで、簡単な演算処理で各ユニットに対する補正時間を求め、設定することができるが、本発明は延長ケーブル１４の長さを固定にしなくてももちろん良い。その場合には、特許文献２等に開示された伝搬時間の算出アルゴリズムを利用し、延長ケーブル１４の両端に接続された延長ユニット６０，６０′のそれぞれに対する伝搬時間を求め、その差分から延長ケーブルでの遅延時間を算出することができる。また、ユーザは、使用する延長ケーブルの長さがわかっているので、設定ツール装置を用いて、使用する延長ケーブルの長さに対応する伝搬遅延時間をＣＰＵユニットに設定しても良い。
【００６７】
［変形例］
上述した実施形態では、いずれも全てのユニットに内部時計を持たせ、時刻合わせを行うように説明したが、本発明は必ずしも全てのユニットと時刻合わせを行う必要はなく、同期運転等が必要な一部のユニットの内部時計をマスタの時刻に合わせるものでも良い。
【００６８】
また、システムバスとして下り用システムバス１１と上り用システムバス１２の２系統に分けた構成を採ったが、上りと下りの伝送路を共通化した１系統のものでも良い。その場合でも、時間同期フレームを受信した場合には、自己でデータの追加等をすることなく転送することで、各ユニットでの伝搬時間を一定にすることができる。但し、上り信号のフレームと衝突する可能性があるため、本実施形態のように２系統或いはそれ以上に分け、少なくとも、時間同期フレームを送信しているときは、それが優先処理され衝突することなくデジチェーン接続された全てのスレーブユニットに伝達されるようにするのが好ましい。
【００６９】
さらにまた、上述した各実施形態では、ユニットの側面同士をコネクタで接続するタイプのものとしたが、本発明はこれに限ることはなく、例えば、各スレーブユニットをベースユニットに設けたスロットに装着するものでも良い。
【符号の説明】
【００７０】
１０  ＰＬＣ
１１  下り用システムバス
１２  上り用システムバス
１４  延長ケーブル
２０  ＣＰＵユニット
２１  ＭＰＵ
２４  ＡＳＩＣ
２６   内部時計
３０  Ｉ／Ｏユニット
３１  ＡＳＩＣ
３２   内部時計
３３  レジスタ
４０  高機能Ｉ／Ｏユニット
４１  ＡＳＩＣ
４２   内部時計
４３  レジスタ
４４  ＭＰＵ
５０  エンドユニット
６０  延長ユニット
【図１】
2011216085.tif 000003
【図２】
2011216085.tif 000004
【図３】
2011216085.tif 000005
【図４】
2011216085.tif 000006
【図５】
2011216085.tif 000007
【図６】
2011216085.tif 000008
【図７】
2011216085.tif 000009