"複数のユニットがシステムバスにデジチェーン接続されて構成されるプログラマブルコントローラであって、その複数のユニットのうちの少なくとも2つは計時手段を備え、その計時手段を備えたユニットの1つはマスタとなり、他のユニットはスレーブとなり、前記マスタは、自己の計時手段の時刻情報を格納した時間同期フレームを送信する機能を備え、前記時間同期フレームを受信した前記マスタ以外の前記複数のユニットは、新たなデータを追加することなく次のユニットに送信し、前記スレーブは、前記マスタから何番目に配置されたユニットであるかの接続位置に対応して決定される伝搬遅延時間を特定する補正値を記憶する記憶手段と、前記時間同期フレームを受信した場合には、その時間同期フレームに格納された時刻情報と前記補正値から現在の時刻情報を求め、自己の計時手段を補正する補正手段と、を備えることを特徴とするプログラマブルコントローラ。前記補正値は、前記マスタが前記複数のユニットから取得した情報から求めたプログラマブルコントローラのユニット構成情報に基づき、設定対象のスレーブが何番目に配置しているかから算出し、前記マスタが、そのスレーブに設定することを特徴とする請求項1に記載のプログラマブルコントローラ。前記補正値は、前記スレーブの前記時間同期フレームを伝搬するために要する伝搬遅延時間と、前記マスタで前記時間同期フレームを作成して送信するのに要する処理時間に基づき設定されることを特徴とする請求項1または2に記載のプログラマブルコントローラ。前記ユニットが前記時間同期フレームを伝搬するために要する伝搬遅延時間は、各ユニットで一定の時間とするとともに、前記マスタと一体に連結されるN番目の前記スレーブに設定される補正値は、前記一定の時間×Nで求めることを特徴とする請求項1または2に記載のプログラマブルコントローラ。システムバスにデジチェーン接続される複数のユニットからなるブロック体を複数備え、その複数のブロック体のうちの1つは前記CPUユニットを含み、前記複数のユニットの1つは、前記CPUユニットを含まないブロック体を構成する各ユニットと前記CPUユニットとを接続するための延長ユニットであり、それら延長ユニット同士が延長ケーブルで接続されることで前記プログラマブルコントローラが構成され、前記延長ユニット以外のユニットにおける前記時間同期フレームを伝搬するために要する伝搬遅延時間は、各ユニットで一定の時間とし、前記マスタが実装されるブロックに存在するN番目の前記スレーブに設定される補正値は、前記一定の時間×Nとし、前記延長ケーブル以降のブロックに装着されたスレーブの記憶手段に格納される補正値は、前記延長ケーブルにおける伝搬遅延時間と、マスタとの間に存在する延長ユニットでかかる伝搬遅延時間も加味して設定されることを特徴とする請求項1から3のいずれかに記載のプログラマブルコントローラ。前記延長ケーブルの長さを一定にすることで、その延長ケーブルでの伝搬遅延時間を固定値として前記補正値を設定することを特徴とする請求項5に記載のプログラマブルコントローラ。前記マスタは、自己の計時手段から時刻情報をラッチして前記時間同期フレームを作成した場合、送信待ちの他の送信フレームの有無にかかわらず前記時間同期フレームを最優先で送信することを特徴とする請求項1から6のいずれか1項に記載のプログラマブルコントローラ。前記システムバスは、前記マスタから前記スレーブに向けて送信するフレームを伝送する下り系統と、前記スレーブから前記マスタに向けて送信するフレームを伝送する上り系統が別々に構成され、前記時間同期フレームは、下り系統のシステムバスを用いて伝送されるようにしたことを特徴とする請求項1から7のいずれかに記載のプログラマブルコントローラ。従来の時刻合わせは、実際にメーセージの送受を行い、通信に要した時間を計測することで伝搬遅延時間を求めているため、スレーブユニットの数が増加するほどその伝搬遅延時間を求める処理に時間がかかり煩雑となる。また、通常のメッセージ送信を利用した通信ではネットワーク通信の混雑の程度により伝搬遅延時間も変動する。従って、初期設定により予め求めた伝搬遅延時間と、実際の動作中に時刻あわせのために時刻情報を格納したメッセージを送信した際に要する伝搬遅延時間がずれる可能性もある。特に、スレーブユニットの数が多くなると、各スレーブユニットの時刻合わせの精度が低下する。そこで、より高精度な時刻合わせの方式を開発したいという課題がある。上記の課題を解決するために、本発明のプログラマブルコントローラは、1複数のユニットがシステムバスにデジチェーン接続されて構成されるプログラマブルコントローラであって、その複数のユニットのうちの少なくとも2つは、計時手段を備え、その計時手段を備えたユニットの1つはマスタとなり、他のユニットはスレーブとなる。マスタは、自己の計時手段の時刻情報を格納した時間同期フレームを送信する機能を備える。この時間同期フレームを受信したユニットは、新たなデータを追加することなく次のユニットに送信する。スレーブは、マスタから何番目に配置されたユニットであるかの接続位置に対応して決定される伝搬遅延時間を特定する補正値を記憶する記憶手段と、時間同期フレームを受信した場合には、その時間同期フレームに格納された時刻情報と前記補正値から現在の時刻情報を求め、自己の計時手段を補正する補正手段と、を備えるようにした。時間同期フレームは、実施形態の時間同期フレームに対応する。計時手段は、実施形態の内部時計26,32,42,62に対応する。記憶手段は、実施形態ではレジスタに対応する。計時手段の時刻情報は、具体的な日時情報のように絶対的なものでも良いし、電源ONからの経過時間のような相対的なものでもよい。相対的なものの場合、何時間何分何秒のように人間が容易に理解できるものでも良いし、定時でカウントアップするカウンタのカウンタ値などでもよい。時間同期フレームを受信した各ユニットは、内部でデータの追加等することなくそのまま次のユニットに向けて出力する。よって、その時間同期フレームが各ユニット内を伝搬する時間は、各ユニットでほぼ一定となるので、補正値も各ユニットの接続位置マスタから何番目のユニット等から簡単に求めることができる。また、実際の時刻合わせの補正の際も、マスタから送信された時間同期フレームが各スレーブで受信されるまでの伝搬遅延時間は、大きくぶれることもなく、補正値に従って高精度な時刻合わせを行うことができる。2補正値は、マスタが複数のユニットから取得した情報から求めたプログラマブルコントローラのユニット構成情報に基づき、設定対象のスレーブが何番目に配置しているかに基づいて算出し、マスタが、そのスレーブに設定するとよい。補正値は設定ツール装置などを用いて個々に設定しても良いが、マスタが設定することで間違いなく設定できる。このマスタにおける設定は、例えば、以下のようにする。マスタは、電源投入時に、プログラマブルコントローラを構成する各ユニットと通信を行い、各ユニットに設定された機種情報その他の属性情報を取得することで、デジチェーン接続されている各ユニットが、どの順番で配置されているかを検知する。各ユニットは、自己内での伝搬遅延局遅延時間を記憶保持しており、かかる伝搬遅延時間も併せてマスタに送る。マスタは、補正値の設定対象のスレーブまでの間に存在する各ユニットの伝搬遅延時間を取得しているため、補正値の設定対象となるスレーブまでに存在しているユニットでの伝搬遅延時間の総和を求め、求めた総和に基づいて補正値を算出する。マスタは、補正値の設定対象のスレーブが何番目に存在しているかを認識している。従って、各ユニットでの伝搬遅延時間が一定とし、係る1個あたりのユニット出かかる伝搬遅延時間予め設定した固定値に補正値の設定対象となるスレーブまでに存在しているユニットの数を乗算し、求めた値に基づいて補正値を算出するようにしてもよい。3補正値は、スレーブの時間同期フレームを伝搬するために要する伝搬遅延時間と、マスタで時間同期フレームを作成して送信するのに要する処理時間に基づき設定するとよい。このようにすると、より正確に補正値を求めることができる。4ユニットが時間同期フレームを伝搬するために要する伝搬遅延時間は、基準時間t0で一定とするとともに、マスタと一体に連結されるN番目のレーブに設定される補正値は、前記一定の時間×Nから求めることができる。このように、各ユニットの伝搬遅延時間を固定値にすることで、各補正値を簡単に求めることができる。5システムバスにデジチェーン接続される複数のユニットからなるブロック体を複数備え、その複数のブロック体のうちの1つはCPUユニットを含み、複数のユニットの1つは、CPUユニットを含まないブロック体を構成する各ユニットとCPUユニットとを接続するための延長ユニットであり、それら延長ユニット同士が延長ケーブルで接続されることでプログラマブルコントローラが構成され、延長ユニット以外のユニットにおける時間同期フレームを伝搬するために要する伝搬遅延時間は、各ユニットで一定の時間とした。そして、マスタが実装されるブロックに存在するN番目の前記スレーブに設定される補正値は、前記一定の時間×Nとし、延長ケーブル以降のブロックに装着されたスレーブの記憶手段に格納される補正値は、延長ケーブルにおける伝搬遅延時間と、マスタとの間に存在する延長ユニットの伝搬遅延時間も加味して設定されるようにすると良い。この発明は、第2実施形態で実現される。6上記の5の発明を前提とし、延長ケーブルの長さを一定にすることで、その延長ケーブルでの伝搬遅延時間を固定値として補正値を設定するとよい。このようにすると、延長ケーブルでの伝搬遅延を実測することなく、精度良く求めることができるので、簡単な処理で適切な補正値を求めることができる。7マスタは、自己の計時手段から時刻情報をラッチして時間同期フレームを作成した場合、送信待ちの他の送信フレームの有無にかかわらず時間同期フレームを最優先で送信するようにするとよい。マスタからは、各種のフレームが作成され、適宜の順で送信されるので、仮に、マスタの計時手段から時刻情報をラッチし、時間同期フレームを作成した状態で当該時間同期フレームの送信がされずに待機状態が長く続くと、実際に送信されたときには時刻情報から大きく遅れた時刻となり、時刻合わせの精度が低下する。そこで、最優先にすることで、係る問題の発生を抑制する。8システムバスは、前記マスタから前記スレーブに向けて送信するフレームを伝送する下り系統と、前記スレーブから前記マスタに向けて送信するフレームを伝送する上り系統が別々に構成され、時間同期フレームは、下り系統のシステムバスを用いて伝送されるようにするとよい。このようにすると、時間同期フレームが、上りフレームと衝突して送信エラーとなることが無い。時間同期フレームは、マスタがスレーブに対して送信するため、その送信タイミングはマスタで管理できる。時間同期フレームを受信したスレーブ型のスレーブに転送する場合も下り系統を利用する。よって、下り系統を用いて時間同期フレームを送信することで、設定された補正値に対応した伝搬遅延時間で、より確実かつ早くに各スレーブに時間同期フレームを送信できる。本発明は、プログラマブルコントローラを構成するシステムバスで連結されたマスタとスレーブの時刻合わせを簡単かつ正確に行うことができる。[第1実施形態]図1は、本発明のプログラマブルコントローラ以下、PLC10の第1実施形態を示している。このPLC10は、各種の機能を実現するための複数のユニットを連結して構成される。この複数のユニットは、少なくとも1つのCPUユニット20を有する。更に、本実施形態のPLC10は、I/Oユニット30入力ユニット、出力ユニット、入出力ユニットなど,高機能I/Oユニット40高機能入力ユニット、高機能出力ユニット、高機能入出力ユニットなど,エンドユニット50を備えている。さらに、図示省略するが、PLC10を構成する各ユニットに対して電源供給を行うための電源ユニットも備えている。もちろん、PLC10を構成するユニットは、上記のものに限ることはなく、実行したい制御に応じて必要なものを適宜取捨選択して構成する。これらの各ユニットは、ケースの側面にコネクタ15を備える。各ユニットは、コネクタ15同士を連結することで、電気的に接続される。すなわち、コネクタ15には、高速シリアル通信線の一端が接続され、高速シリアル通信線の他端は、ユニットの内部回路本実施形態ではASICに接続される。また、電源線もコネクタ15に接続される。これにより、隣接するユニットのコネクタ15同士を連結することで、電源ユニットからのユニットへの電源供給が行えるとともに、ユニット間でデータ通信が行える。さらにPLC10のユニット間の通信は、ASICを用いて行い、高速化を図っている。本実施形態のプログラマブルコントローラを構成するシステムバスは、下り用システムバス11と上り用システムバス12の2系統で構成される。このように、各システムバス11,12を流れるフレームの方向を固定することで、通信時のフレームの衝突の発生確率を抑制し、より確実かつスムーズに伝送できるようにしている。なお、本発明では、システムバスとして、このように下り用と上り用の2つを設けることは、必須ではない。CPUユニット20は、FAネットワークを構成する各機器の動作を制御するもので、共通処理,INリフレッシュマスタがスレーブのINデータを読み出す処理,ユーザプログラムの演算実行,OUTリフレッシュマスタからスレーブへ出力データを書き込む処理,周辺サービスをサイクリックに実行する。本発明との関係で言うと、CPUユニット20は、マスタユニットとなり、PLC10を構成する他のユニットとの間で時刻合わせを行う。CPUユニット20は、MPU21と、EEPROM22と、RAM23と、ASIC24と、通信回路25と、内部時計26と、を備えている。EEPROM22は、CPUユニット用のシステムプログラムや、ユーザプログラムが格納される。MPU21は、CPUユニット用のマイクロプロセッサユニットであり、EEPROM22に格納されているシステムプログラムやユーザプログラムを実行することによってPLC全体を統括制御する。RAM23は、MPU21が動作する際にワークメモリとして使用されるメモリである。AISC24は、ユーザプログラムの一部を実行する機能を有する。また、本発明との関係で言うと、ASIC24は、他のユニットとの間でマスタ-スレーブ通信を行う機能を有する。すなわち、ASIC24は、具体的な内部構造の図示は省略するが、MPU21と通信するためのMPUインタフェース部や、スレーブユニットとの間で送受するIOデータ等を格納する共有メモリ部や、スレーブユニットとの間でマスタ-スレーブ通信を管理する通信コントローラ部や、下り用システムバス11に接続され、実際にデータの送受を行う送信制御部24a並びに受信制御部24bを備えている。上述したように、システムバス11,12の伝送方向を一方向に固定したため、送信制御部24aは下り用システムバス11に接続し、受信制御部24bは上り用システムバス12に接続する。ASIC24は、MPU21からの指示に従い、スレーブユニットに対して時刻合わせのための時間同期フレームを送信したり、PLCのユニット構成を調査するメッセージフレームを送信したりする。また、ASIC24は、そのメッセージフレームに対するレスポンスとして、各ユニットの構成情報を受信すると、受信した構成情報をMPU21に送る。時刻合わせのための具体的な機能は、後述する。通信回路25は、フィールドネットワークに接続されたリモートI/O等の機器との間で通信する。内部時計26は、PLC10を構成する各ユニットの動作の基準となる時刻を示すもので、具体的な時刻を示すものでも良いし、電源投入からの経過時間カウンタのカウンタ値を示すものでも良い。この内部時計26は、水晶発振器に基づいて動作する。I/Oユニット30や高機能I/Oユニット40は、センサやスイッチなどの入力機器を接続してそれらのオンオフ信号を入力信号として取り込む入力ユニットやアクチュエータやリレーなどの出力機器を接続してそれらに対して出力信号を送り出す出力ユニット等である。それらのユニット30,40は、スレーブユニットとなる。I/Oユニット30は、ASIC31、内部時計32並びに時刻情報補正用の補正時間を格納するレジスタ33を備える。レジスタ33はASIC31内部に組み込んでも良い。内部時計32は、内部時計26と同様に具体的な時刻を示すものでも良いし、電源投入からの経過時間カウンタのカウンタ値でも良い。I/Oユニット30のASIC31は、PLC10を構成する各ユニットが動作タイミングを合わせる同期運転をする場合、この内部時計32の時刻情報に基づいて動作する。ここで、動作タイミングを合わせるとは、例えば複数のI/Oユニットがともに出力ユニットとした場合に、その出力ユニットに接続された出力機器が同時に動作を開始したり、ある出力機器が動作開始後設定された時間経過後に別の出力機器が動作したりするものがある。ASIC31は、具体的な内部構造の図示は省略するが、マスタ-スレーブ通信を管理する通信コントローラ部や、システムバス11,12に接続されて実際にデータの送受を行う送信制御部31a,31c並びに受信制御部31b,31dを備えている。そしてこのASIC31は、CPUユニット20との間でIOデータの送受を行い、接続された外部機器との間で図示省略のIO機器用インタフェースを介してIO信号の送受を行う。ASIC31は、システムバス11,12に対してデジチェーン接続されている。そして、ASIC31の通信コントローラ部は、下り用システムバス11を伝送されてくるフレームを受信制御部31bで受信すると、所定の処理を実行し、対となる送信制御部31aから下流側のスレーブユニットへ送信する。同様にASIC31の通信コントローラ部は、上り用システムバス12を伝送されてくるフレームを受信制御部31dで受信すると、所定の処理を実行し、対となる送信制御部31cから上流側の隣のユニットへ送信する。もちろん、下り用システムバス11で送られてきたフレームが自己宛のもので、その処理結果としてCPUユニット20にレスポンスを返す場合、係るレスポンスは、送信制御部31cから上り用システムバス12に送信する。高機能I/Oユニット40は、上記のI/Oユニット30と同様にASIC41、内部時計42並びに時刻情報補正用の補正時間を格納するレジスタ43を備えるとともに、MPU44を備える。このMPU44が、より複雑な処理を実行する。そして高機能I/Oユニット40は、演算処理,IOリフレッシュ,共通処理,周辺サービス等の一連の処理をサイクリックに実行する。つまり、高機能I/Oユニット40は、自ら接続された出力機器の動作を制御するなどの機能を備え、特殊ユニットと称しても良い。演算処理は、予め設定されたプログラムを実行するものでも良いし、ユーザプログラムを実行するものでもよい。また、高機能I/Oユニット40のASIC41は、PLCを構成する各ユニットと同期運転する場合、この内部時計42の時刻情報に基づいて動作する。ASIC41は、システムバス11,12に対してデジチェーン接続されている。よって、ASIC41は、送信制御部41a,41cと受信制御部41b,41dを備え、送信制御部並びに受信制御部は、それぞれ対応する下り/上り用のシステムバス11,12に接続され、他のユニットと通信する。また、高機能I/Oユニット40はMPU44を備えることから、ASIC41にはMPUインタフェース部を備える。さらに、本実施形態では、この高機能I/Oユニット40がCPUユニット20から最も離れた最終のユニットであるため、その後にエンドユニット50が装着される。そして、高機能I/Oユニット40のASIC41の送信制御部41aは、エンドユニット50内の終端抵抗51に接続される。時刻合わせ機能各スレーブユニットのレジスタ33,43に格納される下り用システムバス11の伝搬遅延時間を考慮した補正時間は、以下のようになっている。この補正時間のレジスタ33,43への格納処理は、後述するように、設定ツール装置やユニットに設けた設定スイッチをユーザがマニュアル操作して個々に行ったり、マスタが自動的に行ったりする。CPUユニット20ASIC21から送信された時刻合わせのための時間同期フレームは、下り用システムバス11を用いて伝送される。各スレーブユニットは、この時間同期フレームを受信した場合、そのフレームにデータを追加したりすることなくそのまますぐに送信制御部にて次のユニットに向けて送信する。これにより、1つのユニットの受信制御部で時間同期フレームを受信してから送信制御部から送信されるまでに要する時間はほぼ一定となり、さらに、フレームがユニット内部の線路や、ユニット間のシステムバス11を移動する時間も、線路長から一意に規定され一定となる。よって、次のユニットにフレームを転送するための要する時間は、スレーブユニットであればほぼ等しいと言える。従って、あるユニットの送信制御部からフレームが送信されたときから、そのフレームが次のユニットのASICで受信されるとともに当該次のユニットの送信制御部から出力されるまでに要する時間は、各ユニットとも等しく一定とみなせる。係る一定の時間を基準時間と称してt0とすると、図1に示す実施形態の場合、CPUユニット20の送信制御部24aから時間同期フレームが送信されたときから、その時間同期フレームがCPUユニット20に隣接する1番目のI/Oユニット30の送信制御部31aから出力されるまでに要する伝搬遅延時間は、t0となる。同様に、その1番目のI/Oユニット30の送信制御部31aから時間同期フレームが送信されたときから、その時間同期フレームが隣接する2番目のI/Oユニット30のASIC31で受信され、送信制御部31aから出力されるまでに要する伝搬遅延時間は、t0となる。従って、CPUユニット20の送信制御部24aから時間同期フレームが送信されたときから、その時間同期フレームが2番目のI/Oユニット30の送信制御部31aから送信されるまでに要する伝搬遅延時間は、2×t0となる。同様に、CPUユニット20の送信制御部24aから時間同期フレームが送信されたときから、その時間同期フレームがN番目のスレーブユニットの送信制御部から送信されるまでに要する伝搬遅延時間は、N×t0となる。なお、各ユニットの内部処理、すなわち、受信制御部で受信してから送信制御部から出力するまでに要する時間に比べて、ユニット間のシステムバス11条を伝送する時間は非常に短く無視することもできる。よって、係るt0は、ユニットの内部処理に要する時間としてもよい。このように、各スレーブの接続位置で、ほぼ固定的な伝搬遅延時間となるので、N番目のユニットのレジスタには、伝搬遅延時間に基づく補正時間として、N×t0を格納する。図1の例では、1番目のI/Oユニット30のレジスタ32には、t0が格納され、2番目のI/Oユニット30のレジスタ32には、2×t0が格納され、3番目のスレーブユニットとなる高機能I/Oユニット40のレジスタ42には、3×t0が格納される。このように、各ユニットのレジスタに格納する補正時間は、CPUユニット20に近いユニットから順にt0ずつ加算した時間N番目のスレーブユニットはN×t0となる。従って、ユーザがマニュアル操作で補正時間をレジスタに格納する場合、ユーザは設定対象のユニットがCPUユニットから何番目のユニットであるかを確認し、設定ツール装置を用いて対応する補正時間を個々に設定したり、各スレーブユニットに補正時間の設定用のスイッチなどを設け、ユーザがそのスイッチを操作してユニットごとに設定したりすることもできる。このスイッチは、例えばN番目であることを特定するスイッチとする。すると、各ユニットのASICは、予め記憶保持しておいた補正の基準時間t0とスイッチで特定されるNを乗算して補正時間を求めレジスタに格納する。また、マスタであるCPUユニット20が、各レジスタに対して補正時間を自動的に設定するようにしても良い。すなわち、電源投入時やシステム立ち上げ時の初期処理として、CPUユニット20が、PLCを構成する各ユニットの接続位置情報を取得し、補正時間の設定対象の各スレーブユニットの補正時間を算出すると共に、その算出した補正時間をそれぞれのスレーブユニットに通知する。そして、係る通知を受けたスレーブユニットは、送られてきた補正時間をレジスタに格納する。すなわち、CPUユニット20のASIC24は、通信に先立ち、下り用システムバス11を用いて、各スレーブユニットに対し、プロファイル要求メッセージを送信する。各スレーブユニットは、自己のプロファイル機種情報等を上り用システムバス12を用いて送る。これにより、CPUユニット20は、受信した各ノードを構成するユニットのプロファイル情報から各ノードに何のユニットがセットされているのかの構成情報を認識する。そこでCPUユニット20のMPU21は、その収集した構成情報に基づき、各スレーブユニットが何番目に接続されているのかを求めるとともに、基準時間t0を乗算して補正時間を求めることができる。次に、実際の制御実行時の時刻合わせについて説明する。CPUユニット20マスタのASIC24は、自発的或いはMPU21からの指示に従い、内部時計26の時刻情報を時間同期フレームのデータ部に格納し、ブロードキャスト配信する。すなわち、図2~図4に示すように、ASIC24内の送信コントローラ部24cは、時刻合わせの条件を満たすと、時間同期フレームのための送信データ時刻情報を送信制御部24aに与えるように制御し、時間同期フレーム送信要求フラグをONにする。なお、送信条件は、本実施形態では、送信タイマのタイムアップである。よって、時間同期フレームの送信処理は、送信タイマで設定される時間間隔で定時処理されることになる。この時間同期フレームは、最優先で送信される。送信制御部24aの符号化部は、その時間同期フレーム送信要求フラグの立ち上がりを検知し、マスタ時刻となる内部時計26の時刻情報をラッチする。そして符号化部は、ラッチした時刻情報を、時間同期フレームのデータ部内に格納する。このようにして生成された時間同期フレームは、送信部からSER部SERializerを経由して、パラレル-シリアル変換され、伝送路である下り用システムバス11に出力される。ASICは、時刻情報をラッチしたならば、時間同期フレームを最優先で遅滞なく送信される。つまり、ラッチした際に複数のフレームが送信待ちをしていた場合でも、ASICは、現在送信処理中のフレームの送信処理が完了後、次の送信タイミングで時間同期フレームを送信する。そして、下り用システムバス11を伝送されてきた時間同期フレームシリアルは、1段目のスレーブユニットここでは、I/Oユニット30のASIC31の受信制御部31bに受信される。受信制御部31bでは、DES部DESerializerにてシリアル-パラレル変換され、受信部を経由して復号部に渡され、復号化される。ASIC31は、時間同期フレームに格納されたマスタ時刻を取得できる。そして、復号部は、復号化された時間同期フレームのフレームチェックを行い、チェックが正常と判定されると復号化処理が正常完了したとして、受信完了フラグをONにする。なお、チェックが異常と判定された場合、ASIC31は受信したデータを破棄し、送信コントローラ31eはエラーレスポンスを作成する。そして、送信制御部31cは、その作成したエラーレスポンスを上り用システムバス12を用いてCPUユニット20に送る。なお、このようにエラーレスポンスを送らないようにしても良い。ASIC31は、この受信完了フラグがONになる立ち上がりで受信した時間同期フレームで送られてきたマスタ時刻をラッチし、当該マスタ時刻にレジスタ34に格納された補正時間を加算することで現在の時刻を求め、その求めた時刻に基づいて自己の内部時計32を補正する。求めた現在時刻に基づく内部時計32の補正は、例えば、内部時計32の時刻を、上記の求めた現在の時刻によって上書きすることにより更新する処理を行うことで実現できる。また、このように上書きにより更新すると、補正前後で内部時計32の示す値が離散的に飛んでしまう。それを防ぐために、ASIC31は、特許文献2に開示された補正アルゴリズム等を用い内部時計32の時間の進む速度を速めたり遅らせたりすることで、時刻を連続的に徐々にマスタ時刻に合わせるように修正するようにしてもよい。また、復号部で復号化された時間同期フレームは、送信コントローラ31eの制御により送信制御部31aに与えられ、最終的に、送信制御部24aのSER部SERializerにてパラレル-シリアル変換され、伝送路である下り用システムバス11に出力される。このようにしてデジチェーン方式で送信された時間同期フレームは、次段に隣接するスレーブユニットここでは、2番目のI/Oユニット30にて受信される。そして、上記と同様にフレームの受信チェックが正常の場合、ASIC31は、受信した時間同期フレームに格納されていたマスタ時刻を取得し、補正時間2×t0を加算した値を現在時刻となるように内部時計32を補正する。そして、送信コントローラは、受信した時間同期フレームを送信制御部24aを用いて下り用システムバス11に送信する。このようにすることで、各スレーブユニットは、CPUユニット20から送られてきた時間同期フレームをデジチェーン方式で順次隣接するスレーブユニットに転送する。さらに、N番目のスレーブユニットの時刻は、マスタ時刻に対してCPUユニット20との間に存在するN-1個分のスレーブユニットの局遅延N-1×t0だけ加算することで補正する図4参照。なお、スレーブユニットは、多くの場合その外形寸法形状は等しいため、隣接するユニット間をつなぐシステムバス11,12の長さや、ユニット内での配線の長さもほぼ等しく、フレームがその伝送経路を伝搬される時間も等しい。また、ユニットの種類によっては、幅寸法が倍になるなど、ユニット内の配線の長さが通常のものよりも長く、それに伴いそこを伝搬される時間が長くなるが、係る伝送路を伝搬される時間はASIC内での処理時間に比べて十分に短いので、上記のように、1つのユニットでの伝搬遅延時間は、一律に基準時間t0としても実用上問題がない。そして、そのように伝搬遅延時間を一律に設定することで、簡単に補正時間の設定が行える。もちろん、より正確にするためには、各ユニットにプロファイル情報としてそのユニットでの伝搬遅延時間を記憶保持しておき、CPUユニット20が構成情報を取得する際に、係る各ユニットの伝搬遅延時間も取得し、それに基づいてCPUユニット20のMPU21が、個々のノードスレーブユニットごとにCPUユニット20からの伝搬遅延時間を求めるようにしても良い。なお、1つのユニットを通過するのに必要とする時間を基準時間t0とした場合に、CPUユニット20の送信制御部24aから送信された時間同期フレームが、CPUユニット20に隣接する1番目のI/Oユニット30の送信制御部31aから送信されるまでに要する伝搬遅延時間は、t0となり、同様に、N-1番目のスレーブユニットの送信制御部から送信された時間同期フレームが、N番目のスレーブユニットのASICの送信制御部から出力されるまでに要する伝搬遅延時間は、t0となる。しかし、時間同期フレームに、送信制御部から送信された時刻を格納することはできない。そこで、マスタ時刻をラッチして時間同期フレームにマスタ時刻を格納し、実際に送信されるまでの処理が、CPUユニット20のASIC24の送信制御部24aで行われることから、係る送信制御部24aでの処理時間と、1番目のI/Oユニット30の送信制御部31aでの処理時間がほぼ等しいとみなせる。同様に、同一のユニットの受信制御部での処理時間と送信制御部での処理時間を合わせた当該ユニットの処理時間は、前段のユニットの送信制御部での処理時間と、自己の受信制御部での処理時間を合わせたものと等しいとみなせる。そこで、図3,図4に示すように、CPUユニット20のASIC24の送信制御部24aにてマスタ時刻データをラッチした時点を基準に、各レジスタに設定された補正時間を加算することで、その時点での各内部時計の時刻を合わせることができる。マスタユニット20における送信制御部24aは、時間同期フレームのための時刻データを取得するとともに、ヘッダ部やエラーチェック用の訂正符号部などを付加して時間同期フレームを作成するとともに符号化するが、スレーブユニットにおける送信制御部31a,41aの符号化部では、対となる受信制御部31b,41bの復号化部で復号化したフレームを再度符号化する処理を行うことになり、マスタユニットにおける復号化部に比べるとその処理時間は短い。ただし、この処理時間の差は、各ユニットを伝搬する際の要する時間に比べると十分短いために、本実施形態のように、N番目のユニットの補正時間をN×t0で求めても問題はない。なお、高速化がさらに進むなど、その差が無視できなくなったり、より正確に求めたりするためには、マスタユニットの処理時間を考慮し、N番目のユニットの補正時間は、N×t0Cにより求めるようにしても良い。ここで、Cは、マスタユニットの送信処理にかかる時間マスタ時刻をラッチしてから出力されるまでの時間と、スレーブユニットで送信処理にかかる時間の差である。CPUユニット20に直結された1番目のスレーブユニットに設定する補正時間図3に示す1段目の補正時間は上記のマスタとしての送信処理時間を考慮して決定する時間t0′とし、2番目以降のユニットに対する補正時間としては、N-1×t0t0′としてもよい。[変形例]デジチェーン接続された各スレーブユニットにおけるフレームの転送のための仕組みは、上述したものに限ることはなく、各種のもので実現できる。一例としては、例えば図5に示すようなものがある。すなわち、受信制御部31b図では、I/Oユニット30の部分のみ示しているが、その後段に続く高機能I/Oユニット40でも同じで受信した時間同期フレームは、受信制御部31bのDES部aでシリアル-パラレル変換され、フォワード部bに転送される。フォワード部bは、符号のアライメント処理、つまり、時間同期フレームの先頭位置等を正確に認識し、復号化する。そして、フォワード部bは、復号化したフレームを受信部cに渡すとともに、バッファに格納する。そのバッファに格納されたフレームは、復号化処理された後、SED部dにてパラレル-シリアル変換され、次のユニットに向けて送信される。この例では、復号化したフレームを受信部に渡し、所定の受信処理を行うとともに、それと平行してSED部dに渡して次のユニットへの転送を行うようにしている。このとき、受信部cで正常受信したか否かの確認を待つことなく転送を行うことで、より高速に各スレーブユニットへの伝送が行える。なお、受信部cで受信したフレームは、すでにフォワード部bにより復号化されているので、上述した実施形態のように受信部cによる受信処理の後で復号化する必要はなく、受信部で受信正常完了したタイミングで、上記の実施形態と同様の内部時計の補正処理をすることになる。この例と、上記の第1実施形態の対応関係を示すと、フォワード部bは、受信制御部31bの機能と送信制御部31aの機能を兼ねているといえる。そして、このように構成することで、各ユニットでの転送の速度が増し、高速通信が図れるが、それに伴い、マスタユニットにおける送信制御部24aでの処理時間と、各スレーブユニットにおける送信制御部31フォワード部バッファ格納符号化とSER部での処理時間の差が、大きくなる。この場合でも、上述した第1の実施形態と同様に、N番目の補正時間をN×t0と行った概略の簡易な処理で求めることができる。そして、より正確な補正時間を設定する場合には、上述した変形例のようにマスタユニットでの処理時間を考慮して、各ユニットの補正時間を求めると良い。[変形例]また、別の例としては、図6に示すようなものとすることもできる。この例では、さらに高速に転送することができる。すなわち、フォワード部b′では、符号のアライメント処理を行った後、復号化することなく受信部cに渡すとともにバッファに格納する処理を実行する。これにより、下流側のスレーブへの転送は、DES部aでシリアル-パラレル変換後、符号アライメント処理をして先頭位置を正確に特定後バッファに格納し、SER部dで出力されるので、図5に示す例よりもさらに高速に送信フレームを伝送できる。また、時刻合わせは、第1実施形態と同様に受信部で受信後、復号部eで復号化し、正常受信完了のタイミングで、取得したマスタ時刻と補正時間に基づき補正処理を行い、内部時計を修正する。この図6に示す例でも、簡易的な補正時間の設定は、N×t0で行うことができるが、マスタユニットにおける送信制御部の処理時間と、各スレーブユニットでの送信制御部での処理時間の差がさらに広がるため、より正確に補正時間を求めるためには、マスタユニットにおける送信制御部の処理時間を考慮した上記の各種の設定方法を採用すると良い。[第2実施形態]図7は、第2実施形態を示している。本実施形態のPLC10は、複数のユニットを連結して構成されるブロック体を複数用意し、それらを延長ケーブル14で連結して構成される。つまり、CPUユニット20と複数のユニットを連結して構成されるブロック体の最終段に延長ユニット60を取り付けるとともに、その延長ユニット60に延長ケーブル14の一方のコネクタを接続する。一方、複数のスレーブユニットを連結するともに少なくとも一方の端部に延長ユニット60′を連結して構成される延長ブロック体を用意し、その延長ユニット60′に上記の延長ケーブル14の他端を連結することで、2つのブロック体を連結する。延長ユニット60,60′は、CPUユニット20が含まれていないブロック体を構成する各ユニットと、CPUユニット20とをシステムバス11,12で接続するためのものである。特に、スレーブユニットをベースユニットに設けたスロットに装着するタイプでは、ベースユニットのスロット数以上のユニットを用いてPLCを構成しようとした場合、複数のベースユニットと延長ユニットを用いる。また、本実施形態のように、ユニットの側面同士を直接接続する場合でも、例えば、多数のユニットを連結する場合に、それら全てを連結すると1つのブロックが大きくなり過ぎることがあるため、本実施形態のように複数のブロックに分けるとともに、それら複数のブロック体を延長ユニット60,60′及び延長ケーブル14にて連結して構成する。延長ブロック体は、1または複数個用いることができ、最終段の延長ブロック体の端部にエンドユニット50を接続する。延長ユニット60,60′は、ASIC61と、内部時計62と、補正時間を格納するレジスタ63と、を備えている。ASIC61は、上述したI/Oユニット30のASIC31や高機能I/Oユニット40のASIC41と同様に、下り用システムバス11に接続する送信制御部61a,受信制御部61bや、上り用システムバス12に接続する送信制御部61c,受信制御部61dを備えている。さらにASIC61は、受信したフレームに対し、波形整形処理を行う波形整形部も備えている。図示省略するが、この波形整形部は、例えば下流側に位置する受信制御部と送信制御部の間に組み込まれることになる。すなわち、下り用システムバス11に接続される延長ユニット60′の受信制御部61bと送信制御部61aの間と、上り用システムバス12に接続される延長ユニット60の受信制御部61dと送信制御部61cの間に配置される。上流側と下流側に配置しても良い。そして、ASIC61は、他のスレーブユニットと同様に、CPUユニットASIC24から送られてきた補正時間を受信すると、それをレジスタ62に格納し、時間同期フレームを正式受信すると、そこに格納されていたマスタ時刻を取得し、レジスタ62に格納されていた補正時間に基づき内部時計63の時刻を補正する。さらに、ASIC61は、下り用システムバス11の受信制御部61bで時間同期フレームを受信すると、データを追加することなく送信制御部61aからその時間同期フレームを送信するが、このとき、波形整形部にて波形整形処理などを行う。そのため、下り用システムバス11で隣接するスレーブユニットから送信された時間同期フレームが、延長ユニット60,60′の送信制御部61aから送信されるまでの伝搬遅延時間は、少なくとも係る波形整形処理等に要する時間だけ他の一般のスレーブユニットにおける伝搬遅延時間よりも長くなる。なお、この波形整形処理は、時間同期フレームに限ることなく、全てのフレームに対して行う。また、上り用システムバス12に接続する受信制御部61dがフレームを受信すると、波形整形処理をした後、送信制御部61cから送信する。また、時間同期フレームが延長ケーブル14を伝送される際にも、伝搬遅延時間が発生する。この伝搬遅延時間は、延長ケーブル14の長さに比例する。本実施形態では、各延長ユニット同士を接続するために使用する延長ケーブル14の長さを等しくし、延長ケーブル14で生じる伝搬遅延時間も固定値t2となるようにしている。図1に示すように、PLCが延長ケーブルなど用いることなく単一のブロック体から構成されている場合、上述したように各スレーブユニットの補正時間は、単純にN番目のスレーブユニットがN×t0となる。これに対し、本実施形態のように、延長ケーブル14が介在されることで、延長ケーブル14以降のスレーブユニットの補正時間は、延長ケーブル14での伝搬遅延時間t2を考慮する必要がある。さらに、延長ユニット60,60′での伝搬遅延時間t1も一般のスレーブユニットで遅延する基準時間t0よりも長い。そこで、CPUユニット20のMPU21は、システム立ち上げ時に取得した構成情報から、延長ユニットの有無を判断し、延長ユニットがある場合には、対となる延長ユニットの間に延長ケーブル14が存在していると判断して各ユニットについての補正時間を求め、その求めた補正時間を各ユニットに通知する。具体的には、CPUユニット20を含むブロック体に連結されたスレーブユニットに対しては、上記の第1の実施形態と同様にN番目のスロットであれば、補正時間はN×t0となる。また、第1実施形態でも説明した通り、補正時間は、CPUユニット20のASIC24の送信制御部24aにてマスタ時刻データをラッチした時点を基準に、スレーブユニットの受信制御部で正常に受信されるまでの時間である。従って、延長ユニット60における波形整形処理が、受信制御部における正常受信された後で行われるとすると、当該延長ユニットで受信処理が完了するまでの伝搬遅延時間は、波形処理等の影響を受けないので、当該延長ユニット60の補正値は、補正時間はN×t0となる。この延長ユニット60と延長ケーブル14で接続された別の延長ブロック体を構成する延長ユニット60′についての補正時間は、延長ユニット60での伝搬遅延時t1と延長ケーブル14での伝搬遅延時間t2を考慮して求める。具体的には、当該延長ユニット60′がN番目であるとすると、補正時間=N-1×t0t1t2となる。さらに、この延長スロット60′の後段に続くスレーブユニットの補正時間は、係る延長スロット60′での伝搬遅延時間t1も考慮して求める。なお、本実施形態では、延長ケーブル14の長さを固定にしたことで、延長ケーブル14での伝搬遅延時間t2も固定値となり、システム立ち上げ時に構成情報を取得することで、簡単な演算処理で各ユニットに対する補正時間を求め、設定することができるが、本発明は延長ケーブル14の長さを固定にしなくてももちろん良い。その場合には、特許文献2等に開示された伝搬時間の算出アルゴリズムを利用し、延長ケーブル14の両端に接続された延長ユニット60,60′のそれぞれに対する伝搬時間を求め、その差分から延長ケーブルでの遅延時間を算出することができる。また、ユーザは、使用する延長ケーブルの長さがわかっているので、設定ツール装置を用いて、使用する延長ケーブルの長さに対応する伝搬遅延時間をCPUユニットに設定しても良い。[変形例]上述した実施形態では、いずれも全てのユニットに内部時計を持たせ、時刻合わせを行うように説明したが、本発明は必ずしも全てのユニットと時刻合わせを行う必要はなく、同期運転等が必要な一部のユニットの内部時計をマスタの時刻に合わせるものでも良い。また、システムバスとして下り用システムバス11と上り用システムバス12の2系統に分けた構成を採ったが、上りと下りの伝送路を共通化した1系統のものでも良い。その場合でも、時間同期フレームを受信した場合には、自己でデータの追加等をすることなく転送することで、各ユニットでの伝搬時間を一定にすることができる。但し、上り信号のフレームと衝突する可能性があるため、本実施形態のように2系統或いはそれ以上に分け、少なくとも、時間同期フレームを送信しているときは、それが優先処理され衝突することなくデジチェーン接続された全てのスレーブユニットに伝達されるようにするのが好ましい。さらにまた、上述した各実施形態では、ユニットの側面同士をコネクタで接続するタイプのものとしたが、本発明はこれに限ることはなく、例えば、各スレーブユニットをベースユニットに設けたスロットに装着するものでも良い。"