(57)【特許請求の範囲】
【請求項１】
制御ユニットと第１の周辺ユニットとマスタユニットとを含む基本ブロックと、
スレーブユニットと第２の周辺ユニットとを含む増設ブロックと、
前記マスタユニットと前記スレーブユニットとを接続する所定の芯数からなる接続ケーブルと、を備え、
前記制御ユニットと前記第１の周辺ユニットと前記マスタユニットは、共通するユニットバスで接続されており、
前記制御ユニットは、前記第１の周辺ユニットを制御するとともに、前記マスタユニットと前記スレーブユニットを介して前記第２の周辺ユニットを制御し、
前記マスタユニットは、前記スレーブユニットに差動信号を送信する複数の第１送信回路と、前記制御ユニットから出力される前記第２の周辺ユニットを指定するアドレス信号を含む複数ビットの制御信号を前記接続ケーブルの芯数に応じて所定ビット単位で分割した複数のブロックデータを、前記複数の第１送信回路を用いて前記スレーブユニットに順次送信するマスタ制御回路を備え、
前記スレーブユニットは、前記差動信号を受信する複数の第１受信回路と、前記第１受信回路にて順次受信した前記複数のブロックデータに基づいて複数ビットの制御信号を生成して前記第２の周辺ユニットに出力するスレーブ制御回路を備えること、
を特徴とするプログラマブルコントローラ。
【請求項２】
前記制御ユニットは、前記第２の周辺ユニットに対するライトデータを前記マスタ制御回路に出力し、
前記マスタ制御回路は、前記アドレス信号を受信して前記制御ユニットに対して第１レベルのレディ信号を出力し、前記制御信号に応じた複数のブロックデータを送信した後、前記ライトデータを前記所定ビット単位で分割した複数のブロックデータを前記複数の第１送信回路を用いて前記スレーブユニットに順次送信し、
前記スレーブ制御回路は、前記第１受信回路にて順次受信した複数のブロックデータに基づいてライトデータを生成し、前記第２の周辺ユニットに出力した後、オペレーション信号を出力し、
前記マスタ制御回路は、前記オペレーション信号に基づいて第２レベルの前記レディ信号を出力し、
前記制御ユニットは、前記レディ信号が第１レベルの期間、待機状態となること、
を特徴とする請求項１に記載のプログラマブルコントローラ。
【請求項３】
前記マスタユニットは、前記マスタ制御回路の動作電圧より高い第２電圧が供給される第２送信回路を備え、前記第２送信回路は、前記マスタ制御回路の出力信号に基づいて前記第２電圧に基づいたレベルのシングルエンド信号を前記スレーブユニットに送信し、
前記スレーブユニットは、前記第２電圧に基づく基準電圧と前記シングルエンド信号とを比較して受信信号を出力する第２受信回路を備えること、
を特徴とする請求項１または２に記載のプログラマブルコントローラ。
【請求項４】
複数の前記増設ブロックを備え、
前記マスタユニットと複数の前記増設ブロックの前記スレーブユニットは、複数の前記接続ケーブルにより直列に接続されること、
を特徴とする請求項１〜３のいずれか一項に記載のプログラマブルコントローラ。
【請求項５】
前記マスタユニットは、前記スレーブユニットに差動のクロック信号を送信し、
前記スレーブユニットは、前記接続ケーブルが接続される前記マスタユニット側の第１コネクタと、前記マスタユニットと逆側の第２コネクタと、前記クロック信号を受信する第３受信回路とを有し、
前記第１コネクタの第１端子には、高電位電圧が供給され、
前記スレーブ制御回路は、前記第２コネクタにおいて、前記第１コネクタの第１端子に対応する第１端子のレベルにより自ユニットが末端か否かを判定し、末端と判定した場合に、前記第３受信回路の入力端子を終端抵抗により終端すること、
を特徴とする請求項４に記載のプログラマブルコントローラ。
【請求項６】
前記スレーブ制御回路は、末端と判定した場合に、差動のオペレーション信号を送信する送信回路の出力端子を終端抵抗により終端すること、を特徴とする請求項５に記載のプログラマブルコントローラ。
【請求項７】
前記スレーブユニットは、前記第１コネクタの第２端子をプルダウンする第１抵抗と、
前記第２コネクタの第２端子をプルアップする第２抵抗と、前記第２コネクタの第２端子のレベルに応じて前記第１コネクタの第２端子を駆動する駆動回路を備え、
前記マスタユニットは、前記スレーブユニットの前記第１コネクタの第２端子が接続される端子を介して入力する信号のレベルに基づいて、接続された全ての前記スレーブユニットの電源起動を判定すること、
を特徴とする請求項５または６に記載のプログラマブルコントローラ。
【請求項８】
前記マスタユニットは、前記スレーブユニットをイニシャルモードに設定し、複数ビットの局番設定信号に初期値を設定して送信し、所定時間経過後にラッチ信号を送信し、
前記スレーブユニットは、前記第１コネクタから受信した前記局番設定信号の値に所定値を加算して前記第２コネクタを介して送信し、前記ラッチ信号に基づいて前記受信した局番設定信号の値を自ユニットの局番として記憶すること、
を特徴とする請求項５〜７のいずれか一項に記載のプログラマブルコントローラ。
【請求項９】
前記マスタユニットと前記スレーブユニットとの間、２つの前記スレーブユニットの間の接続には、両端のコネクタの第３端子と第４端子とが互いに接続された第１の接続ケーブル、または両端のコネクタの第３端子と第４端子とが交差して接続された第２の接続ケーブルが用いられ、
前記スレーブユニットは、各コネクタにおいて、第３端子はグランドに接続され、第４端子はプルアップされ、
前記マスタユニットは、前記スレーブユニットの第３端子に接続される端子はプルダウンされ、前記スレーブユニットの第４端子に接続される端子のレベルに応じて伝送速度を設定すること、
を特徴とする請求項５〜８のいずれか一項に記載のプログラマブルコントローラ。
【請求項１０】
制御ユニットと第１の周辺ユニットとマスタユニットとを含む基本ブロックと、第２の周辺ユニットと前記マスタユニットに所定の芯数からなる接続ケーブルを介して接続されたスレーブユニットとを含む増設ブロックと、を備えたプログラマブルコントローラの制御方法であって、
前記制御ユニットと前記第１の周辺ユニットと前記マスタユニットは、共通するユニットバスで接続されており、
前記制御ユニットは、前記第１の周辺ユニットを制御するとともに、前記マスタユニットと前記スレーブユニットを介して前記第２の周辺ユニットを制御し、
前記マスタユニットは、前記スレーブユニットに差動信号を送信する複数の第１送信回路を備え、前記制御ユニットから出力される前記第２の周辺ユニットを指定するアドレス信号を含む複数ビットの制御信号を前記接続ケーブルの芯数に応じて所定ビット単位で分割した複数のブロックデータを、前記複数の第１送信回路を用いて前記スレーブユニットに順次送信し、
前記スレーブユニットは、前記差動信号を受信する複数の第２受信回路により順次受信した前記複数のブロックデータに基づいて複数ビットの制御信号を生成して前記第２の周辺ユニットに出力すること、
を特徴とするプログラマブルコントローラの制御方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、プログラマブルコントローラ、プログラマブルコントローラの制御方法に関する。
【背景技術】
【０００２】
プログラマブルコントローラは、たとえば工場などにおいて、製造装置などの外部機器をシーケンス制御する。このようなプログラマブルコントローラは、外部機器が接続される複数の入出力ユニット（Ｉ／Ｏユニット）と、複数の入出力ユニットを制御する制御ユニット（ＣＰＵユニット）を有している。そして、入出力ユニットが増設可能なプログラマブルコントローラが提案されている（たとえば、特許文献１参照）。たとえば、ビルディングブロックタイプのプログラマブルコントローラは、制御ユニットと入出力ユニットが、たとえばマザーボード等のバックプレーンを介して互いに接続される。また、スタッキング（積み重ね）タイプのプログラマブルコントローラは、接続コネクタが隣接するユニットに直接接続される。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開２０１１−７０４４４号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
ところで、上記のようなプログラマブルコントローラでは、制御ユニットに接続可能な入出力ユニットの数が制限されている場合がある。このような場合、制御する外部機器に応じて容易に入出力ユニットの増設することが難しい。また、工場などの使用環境において、ユニット間の通信信号に混入するノイズによって誤動作が生じるおそれがある。また、信号に混入するノイズは、ユニット間の高速な通信を妨げる要因となる。
【０００５】
本発明は、上記課題を解決するためになされたものであって、その目的は、ユニットの増設を容易にし、対ノイズ性能に優れ高速な信号伝送が可能なプログラマブルコントローラを提供することにある。
【課題を解決するための手段】
【０００６】
上記課題を解決するプログラマブルコントローラは、制御ユニットと第１の周辺ユニットとマスタユニットとを含む基本ブロックと、スレーブユニットと第２の周辺ユニットとを含む増設ブロックと、前記マスタユニットと前記スレーブユニットとを接続する所定の芯数からなる接続ケーブルと、を備え、前記制御ユニットと前記第１の周辺ユニットと前記マスタユニットは、共通するユニットバスで接続されており、前記制御ユニットは、前記第１の周辺ユニットを制御するとともに、前記マスタユニットと前記スレーブユニットを介して前記第２の周辺ユニットを制御し、前記マスタユニットは、前記スレーブユニットに差動信号を送信する複数の第１送信回路と、前記制御ユニットから出力される前記第２の周辺ユニットを指定するアドレス信号を含む複数ビットの制御信号を前記接続ケーブルの芯数に応じて所定ビット単位で分割した複数のブロックデータを、前記複数の第１送信回路を用いて前記スレーブユニットに順次送信するマスタ制御回路を備え、前記スレーブユニットは、前記差動信号を受信する複数の第１受信回路と、前記第１受信回路にて順次受信した前記複数のブロックデータに基づいて複数ビットの制御信号を生成して前記第２の周辺ユニットに出力するスレーブ制御回路を備える。
【０００７】
この構成によれば、マスタユニットとスレーブユニットを用いることで、スレーブユニットに連結された第２の周辺ユニットを制御ユニットにより制御することが可能となる。このため、制御ユニットにより制御するユニットを容易に増設される。そして、制御信号を所定ビット単位で分割したブロックデータを伝送することにより、接続ケーブルの芯数よりビット数が多いデータが容易に伝送される。また、差動信号を用いてマスタユニットとスレーブユニットの間の信号を伝送することにより、ノイズ等の混入による誤動作を抑制した高速な信号伝送が可能となる。
【０００８】
上記のプログラマブルコントローラにおいて、前記制御ユニットは、前記第２の周辺ユニットに対するライトデータを前記マスタ制御回路に出力し、前記マスタ制御回路は、前記アドレス信号を受信して前記制御ユニットに対して第１レベルのレディ信号を出力し、前記制御信号に応じた複数のブロックデータを送信した後、前記ライトデータを前記所定ビット単位で分割した複数のブロックデータを前記複数の第１送信回路を用いて前記スレーブユニットに順次送信し、前記スレーブ制御回路は、前記第１受信回路にて順次受信した複数のブロックデータに基づいてライトデータを生成し、前記第２の周辺ユニットに出力した後、オペレーション信号を出力し、前記マスタ制御回路は、前記オペレーション信号に基づいて第２レベルの前記レディ信号を出力し、前記制御ユニットは、前記レディ信号が第１レベルの期間、待機状態となることが好ましい。
【０００９】
この構成によれば、マスタユニット及びスレーブユニットを介して制御ユニットに接続される第２の周辺ユニットを動作させるときに、基本ブロックの動作を待機状態とすることにより処理の同期を保つことが可能となる。
【００１０】
上記のプログラマブルコントローラにおいて、前記マスタユニットは、前記マスタ制御回路の動作電圧より高い第２電圧が供給される第２送信回路を備え、前記第２送信回路は、前記マスタ制御回路の出力信号に基づいて前記第２電圧に基づいたレベルのシングルエンド信号を前記スレーブユニットに送信し、前記スレーブユニットは、前記第２電圧に基づく基準電圧と前記シングルエンド信号とを比較して受信信号を出力する第２受信回路を備えることが好ましい。
【００１１】
この構成によれば、シングルエンド信号を伝送することにより、接続ケーブルの芯数の増加が抑制される。また、動作電圧より高い第２電圧のシングルエンド信号を伝送することにより、接続ケーブルにおける電圧降下やノイズの混入による誤動作が抑制される。
【００１２】
上記のプログラマブルコントローラにおいて、複数の前記増設ブロックを備え、前記マスタユニットと複数の前記増設ブロックの前記スレーブユニットは、複数の前記接続ケーブルにより直列に接続されることが好ましい。
【００１３】
この構成によれば、マスタユニットに対して直列に接続された複数のスレーブユニットそれぞれに第２の周辺ユニットを接続することにより、制御ユニットにより制御するユニットを容易に増設される。
【００１４】
上記のプログラマブルコントローラにおいて、前記マスタユニットは、前記スレーブユニットに差動のクロック信号を送信し、前記スレーブユニットは、前記接続ケーブルが接続される前記マスタユニット側の第１コネクタと、前記マスタユニットと逆側の第２コネクタと、前記クロック信号を受信する第３受信回路とを有し、前記第１コネクタの第１端子には、高電位電圧が供給され、前記スレーブ制御回路は、前記第２コネクタにおいて、前記第１コネクタの第１端子に対応する第１端子のレベルにより自ユニットが末端か否かを判定し、末端と判定した場合に、前記第３受信回路の入力端子を終端抵抗により終端する。
【００１５】
この構成によれば、末端のスレーブユニットのスレーブ制御回路は、クロック信号を受信する第３受信回路の入力端子を終端抵抗により終端する。これにより、マスタユニットに接続するスレーブユニットの数が容易に変更され、制御ユニットにより制御するユニットの数が容易に変更される。また、信号の反射によるノイズの発生が低減され、誤動作が防止される。
【００１６】
上記のプログラマブルコントローラにおいて、前記スレーブ制御回路は、末端と判定した場合に、差動のオペレーション信号を送信する送信回路の出力端子を終端抵抗により終端することが好ましい。
【００１７】
この構成によれば、信号の反射によるノイズの発生が低減され、誤動作が防止される。
上記のプログラマブルコントローラにおいて、前記スレーブユニットは、前記第１コネクタの第２端子をプルダウンする第１抵抗と、前記第２コネクタの第２端子をプルアップする第２抵抗と、前記第２コネクタの第２端子のレベルに応じて前記第１コネクタの第２端子を駆動する駆動回路を備え、前記マスタユニットは、前記スレーブユニットの前記第１コネクタの第２端子が接続される端子を介して入力する信号のレベルに基づいて、接続された全ての前記スレーブユニットの電源起動を判定することが好ましい。
【００１８】
この構成によれば、マスタユニットは、全てのスレーブユニットの電源が起動された後に各スレーブユニットを初期化することができる。そして、信号のレベルに基づいて電源が起動されていないユニットが存在すると判定して待機状態とし、この待機状態においてエラーを報知することで、電源が起動されていないユニットの存在を把握することが可能となる。
【００１９】
上記のプログラマブルコントローラにおいて、前記マスタユニットは、前記スレーブユニットをイニシャルモードに設定し、複数ビットの局番設定信号に初期値を設定して送信し、所定時間経過後にラッチ信号を送信し、前記スレーブユニットは、前記第１コネクタから受信した前記局番設定信号の値に所定値を加算して前記第２コネクタを介して送信し、前記ラッチ信号に基づいて前記受信した局番設定信号の値を自ユニットの局番として記憶することが好ましい。
【００２０】
この構成によれば、マスタユニット及び複数のスレーブユニットは、局番設定信号に基づいて初期設定時に自動的に自ユニットの局番を設定するため、設定ミスによる誤動作が防止される。
【００２１】
上記のプログラマブルコントローラにおいて、前記マスタユニットと前記スレーブユニットとの間、２つの前記スレーブユニットの間の接続には、両端のコネクタの第３端子と第４端子とが互いに接続された第１の接続ケーブル、または両端のコネクタの第３端子と第４端子とが交差して接続された第２の接続ケーブルが用いられ、前記スレーブユニットは、各コネクタにおいて、第３端子はグランドに接続され、第４端子はプルアップされ、前記マスタユニットは、前記スレーブユニットの第３端子に接続される端子はプルダウンされ、前記スレーブユニットの第４端子に接続される端子のレベルに応じて伝送速度を設定することが好ましい。
【００２２】
この構成によれば、マスタユニットと複数のスレーブユニットの接続状態に応じて伝送速度（伝送レート）を変更することにより、信号を確実に伝送することが可能となる。
上記課題を解決するプログラマブルコントローラの制御方法は、制御ユニットと第１の周辺ユニットとマスタユニットとを含む基本ブロックと、第２の周辺ユニットと前記マスタユニットに所定の芯数からなる接続ケーブルを介して接続されたスレーブユニットとを含む増設ブロックと、を備えたプログラマブルコントローラの制御方法であって、前記制御ユニットと前記第１の周辺ユニットと前記マスタユニットは、共通するユニットバスで接続されており、前記制御ユニットは、前記第１の周辺ユニットを制御するとともに、前記マスタユニットと前記スレーブユニットを介して前記第２の周辺ユニットを制御し、前記マスタユニットは、前記スレーブユニットに差動信号を送信する複数の第１送信回路を備え、前記制御ユニットから出力される前記第２の周辺ユニットを指定するアドレス信号を含む複数ビットの制御信号を前記接続ケーブルの芯数に応じて所定ビット単位で分割した複数のブロックデータを、前記複数の第１送信回路を用いて前記スレーブユニットに順次送信し、前記スレーブユニットは、前記差動信号を受信する複数の第２受信回路により順次受信した前記複数のブロックデータに基づいて複数ビットの制御信号を生成して前記第２の周辺ユニットに出力する。
【００２３】
この構成によれば、マスタユニットとスレーブユニットを用いることで、スレーブユニットに連結された第２の周辺ユニットを制御ユニットにより制御することが可能となる。このため、制御ユニットにより制御するユニットを容易に増設される。そして、制御信号を所定ビット単位で分割したブロックデータを伝送することにより、接続ケーブルの芯数よりビット数が多いデータが容易に伝送される。また、差動信号を用いてマスタユニットとスレーブユニットの間の信号を伝送することにより、ノイズ等の混入による誤動作を抑制した高速な信号伝送が可能となる。
【発明の効果】
【００２４】
本発明によれば、容易にユニットを増設することができるとともに、対ノイズ性能に優れ、簡易的なケーブルでも高速な信号伝送を長距離においても可能とすることができる。
【図面の簡単な説明】
【００２５】
【図１】プログラマブルコントローラの概略図である。
【図２】（ａ）（ｂ）はユニット間の接続の説明図、（ｃ）は接続ケーブルの説明図である。
【図３】プログラマブルコントローラにおける接続の概略を示すブロック図である。
【図４】増設ユニット間の接続を示す概略ブロック図である。
【図５】増設ユニットにおける終端の説明図である。
【図６】増設されたユニットに対するデータリードを示すタイミング図である。
【図７】増設されたユニットに対するデータライトを示すタイミング図である。
【図８】シングルエンド信号方式の説明図である。
【図９】（ａ）〜（ｃ）は終端認識の説明図である。
【図１０】（ａ）〜（ｃ）は電源起動の説明図である。
【図１１】（ａ）〜（ｃ）は局番設定の説明図である。
【図１２】（ａ）（ｂ）はケーブル認識の説明図である。
【図１３】（ａ）（ｂ）は接続ケーブルの説明図である。
【発明を実施するための形態】
【００２６】
以下、一実施形態を説明する。
図１に示すように、プログラマブルコントローラ１は、複数（図１では４つ）のユニットブロック２ａ，２ｂ，２ｃ，２ｄを備えている。
【００２７】
第１のユニットブロック２ａは、ＣＰＵユニット（制御ユニット）１０と、複数のＩ／Ｏユニット（周辺ユニット）１１と、エンドユニット（終端ユニット）１２とを備えている。これらのユニットは、ＣＰＵユニット１０から順に図において右側に向かって、複数のＩ／Ｏユニット１１、エンドユニット１２の順番で連結されている。
【００２８】
また、第１のユニットブロック２ａは、第２のユニットブロック２ｂを接続するための増設ユニット２０を備えている。増設ユニット２０は、ＣＰＵユニット１０に対して、Ｉ／Ｏユニット１１と反対側の面、つまり図においてＣＰＵユニット１０の左側に連結されている。
【００２９】
ＣＰＵユニット１０は、プログラマブルコントローラの全体を制御する制御装置（ＣＰＵ）を有する。このＣＰＵユニット１０には、仕様により設定された最大ユニット数のＩ／Ｏユニット１１を連結することができる。たとえば、最大ユニット数は「１６」である。つまり、第１のユニットブロック２ａは、最大１６台のＩ／Ｏユニット１１を含む。
【００３０】
Ｉ／Ｏユニット１１は、信号の入力，出力，入出力を行うユニットである。信号は、温度センサの出力電圧等のアナログ信号、エンコーダ等のパルス信号、シリアル通信などの信号である。Ｉ／Ｏユニット１１は、信号の入出力のための端子台やコネクタを備えている。なお、図１では、複数のＩ／Ｏユニット１１が異なるように描かれているが、これは、種類が異なる、つまり機能が異なるＩ／Ｏユニット１１を連結することが可能であることを示すものである。
【００３１】
図２（ａ）に示すように、ＣＰＵユニット１０は、側面にスタッキング接続用コネクタ１０ａを備えている。一方の側面（図２（ａ）では右側面）に備えられたスタッキング接続用コネクタ１０ａは側面から突出し、他方の側面（図２（ａ）では左側面）に備えられたコネクタ（図示略）は、隣接するユニットの側面から突出するスタッキング接続用コネクタを挿入可能に形成されている。同様に、Ｉ／Ｏユニット１１は、側面にスタッキング接続用コネクタ１１ａを備えている。そして、ＣＰＵユニット１０のスタッキング接続用コネクタ１０ａと、Ｉ／Ｏユニット１１のスタッキング接続用コネクタとを互いに接続し、ＣＰＵユニット１０とＩ／Ｏユニット１１を連結する。
【００３２】
同様に、増設ユニット２０は側面にスタッキング接続用コネクタ２０ａを備えている。一方の側面（右側面）に備えられたスタッキング接続用コネクタ２０ａは側面から突出し、他方の側面（左側面）に備えられたコネクタ（図示略）は、隣接するユニットの側面から突出するスタッキング接続用コネクタを挿入可能に形成されている。そして、増設ユニット２０のスタッキング接続用コネクタ２０ａとＣＰＵユニット１０のスタッキング接続用コネクタを互いに接続し、増設ユニット２０をＣＰＵユニット１０に連結する。
【００３３】
なお、図１に示すエンドユニット１２は、Ｉ／Ｏユニット１１の側面から突出するスタッキング接続用コネクタ１１ａ（図２（ａ）参照）を挿入可能なスタッキング接続用コネクタを備えている。そして、エンドユニット１２のスタッキング接続用コネクタとＩ／Ｏユニット１１のスタッキング接続用コネクタ１１ａ（図２（ａ）参照）とを互いに接続し、Ｉ／Ｏユニット１１にエンドユニット１２を連結する。
【００３４】
図１に示すように、第２のユニットブロック２ｂは、増設ユニット２１と、複数のＩ／Ｏユニット１１と、エンドユニット１２とから構成されている。これらのユニットは、図において左側から、増設ユニット２１、複数のＩ／Ｏユニット１１、エンドユニット１２の順番で連結されている。
【００３５】
図２（ｂ）に示すように、増設ユニット２１は側面にスタッキング接続用コネクタ２１ａを備えている。一方の側面（右側面）に備えられたスタッキング接続用コネクタ２１ａは側面から突出し、他方の側面（左側面）に備えられたコネクタ（図示略）は、隣接するユニットの側面から突出するスタッキング接続用コネクタを挿入可能に形成されている。そして、増設ユニット２１のスタッキング接続用コネクタ２１ａとＩ／Ｏユニット１１のスタッキング接続用コネクタを互いに接続し、増設ユニット２１にＩ／Ｏユニット１１を連結する。
【００３６】
図１に示すように、第３のユニットブロック２ｃは、増設ユニット２２と、複数のＩ／Ｏユニット１１と、エンドユニット１２とから構成されている。これらのユニットは、図において左側から、増設ユニット２２、複数のＩ／Ｏユニット１１、エンドユニット１２の順番で連結されている。第４のユニットブロック２ｄは、増設ユニット２３と、複数のＩ／Ｏユニット１１と、エンドユニット１２とから構成されている。これらのユニットは、図において左側から、増設ユニット２３、複数のＩ／Ｏユニット１１、エンドユニット１２の順番で連結されている。増設ユニット２２，２３は、増設ユニット２２と同様にスタッキング接続用コネクタをそれぞれ備えている。増設ユニット２２，２３とＩ／Ｏユニット１１との接続は、増設ユニット２２と同様であるため、図２（ｂ）に対応する図面を省略する。なお、図３に概略的に示すように、増設ユニット２２，２３は、スタッキング接続用コネクタ２２ａ，２３ａを備えている。
【００３７】
そして、各増設ユニット２１，２２，２３には、仕様により設定された最大ユニット数のＩ／Ｏユニット１１の連結が可能である。増設ユニット２１，２２，２３における最大ユニット数は、たとえばＣＰＵユニット１０の最大ユニット数と同じ値（「１６」）に設定されている。
【００３８】
第１のユニットブロック２ａの増設ユニット２０は、１つのコネクタ２０ｂを備えている。第２のユニットブロック２ｂの増設ユニット２１は２つのコネクタ２１ｂ，２１ｃを備えている。同様に、第３のユニットブロック２ｃの増設ユニット２２は２つのコネクタ２２ｂ，２２ｃを備えている。第４のユニットブロック２ｄの増設ユニット２３は２つのコネクタ２３ｂ，２３ｃを備えている。
【００３９】
各増設ユニット２０，２１，２２，２３は、接続ケーブル３１，３２，３３を介して直列に接続される。詳述すると、増設ユニット２０のコネクタ２０ｂには接続ケーブル３１の一端が接続され、接続ケーブル３１の他端は増設ユニット２１のコネクタ２１ｂに接続される。この増設ユニット２１のコネクタ２１ｃには接続ケーブル３２の一端が接続され、接続ケーブル３２の他端は増設ユニット２２のコネクタ２２ｂに接続される。さらに、増設ユニット２２のコネクタ２２ｃには接続ケーブル３３の一端が接続され、接続ケーブル３３の他端は増設ユニット２３のコネクタ２３ｂに接続される。
【００４０】
図２（ｃ）に示すように、接続ケーブル３１は、ケーブル３１ａと、ケーブル３１ａの両端のコネクタ３１ｂ，３１ｃを有している。ケーブル３１ａは、所定数（たとえば４０芯）のツイストペアシールドケーブルである。なお、接続ケーブル３２，３３は接続ケーブル３１と同様であるため、図面及び説明を省略する。
【００４１】
図１に示すように、第１のユニットブロック２ａの増設ユニット２０はＣＰＵユニット１０に連結されている。この増設ユニット２０は、他の増設ユニット２１〜２３をＣＰＵユニット１０に接続する。そして、増設ユニット２１〜２３にはそれぞれ複数のＩ／Ｏユニット１１が連結される。つまり、増設ユニット２０〜２３は、ＣＰＵユニット１０に対してＩ／Ｏユニット１１を接続する。以下の説明において、この増設ユニット２０を増設マスタユニットまたは単にマスタユニットと呼び、他の増設ユニット２１，２２，２３を増設スレーブユニットまたは単にスレーブユニットと呼ぶことがある。
【００４２】
マスタユニット２０には、仕様により、接続可能な増設スレーブユニットの数が設定されている。この接続数はたとえば「３」である。つまり、マスタユニット２０は、１〜３台の増設スレーブユニットをＣＰＵユニット１０に接続する。増設ユニットにはＩ／Ｏユニット１１が連結される。したがって、スレーブユニット２１〜２３は、ＣＰＵユニット１０に対するＩ／Ｏユニット１１の接続数を、ＣＰＵユニット１０単体の場合より多くする。
【００４３】
そして、第１のユニットブロック２ａは接続ケーブル３１を介して第２のユニットブロック２ｂに接続されている。第２のユニットブロック２ｂは接続ケーブル３２を介して第３のユニットブロック２ｃに接続され、第３のユニットブロック２ｃは接続ケーブル３３を介して第４のユニットブロック２ｄに接続されている。したがって、このプログラマブルコントローラ１は、接続ケーブル３１〜３３によって各ユニットブロックを分散して配置することが可能である。
【００４４】
［プログラマブルコントローラの接続の概要］
次に、プログラマブルコントローラ１における接続の概要を説明する。
図３に示すように、互いに連結されたマスタユニット２０とＣＰＵユニット１０とＩ／Ｏユニット１１は、ユニットバスＵＢＵを形成する。ユニットバスＵＢＵは、アドレスバスＵＢＡとデータバスＵＢＤと制御バスＵＢＣとを備えている。アドレスバスＵＢＡのビット数はたとえば２６ビットである。データバスＵＢＤのビット数はたとえば１６ビットである。制御バスＵＢＣは、後述するリード信号ＲＤ、ライト信号ＷＲ、マスタクロック信号ＭＣＬＫ、等の制御信号を伝達する複数の信号線により形成される。
【００４５】
ＣＰＵユニット１０は、ユニットバスＵＢＵに接続されたＣＰＵ１０ｂを備えている。Ｉ／Ｏユニット１１は、ユニットバスＵＢＵに接続された制御回路１１ｂを備えている。ＣＰＵ１０ｂは、ユニットバスＵＢＵを介してＩ／Ｏユニット１１の制御回路１１ｂをアクセスする。マスタユニット２０は、ユニットバスＵＢＵに接続された制御回路４１を備えている。
【００４６】
同様に、互いに連結されたスレーブユニット２１とＩ／Ｏユニット１１は、ユニットバスＵＢＵを形成する。ユニットバスＵＢＵは、アドレスバスＵＢＡとデータバスＵＢＤと制御バスＵＢＣを備えている。また、互いに連結されたスレーブユニット２２，２３とＩ／Ｏユニット１１は、それぞれユニットバスＵＢＵを形成する。
【００４７】
スレーブユニット２１〜２３と接続ケーブル３１〜３３に含まれる複数の配線は、増設バスＥＢＵを形成する。増設バスＥＢＵは、複合バスＥＡＤと制御バスＥＢＣを備えている。複合バスＥＡＤはたとえば８ビットのパラレルバスである。複合バスＥＡＤは、アドレス信号とデータ信号の送受信に利用される。制御バスＥＢＣは、増設バスＥＢＵによる通信のために利用される各種信号（イネーブル信号、クロック信号、等）の送受信に利用される。
【００４８】
また、接続ケーブル３１〜３３は、接続する増設ユニット間において信号を伝達する配線を含む。この配線は、増設ユニットの接続状態（接続数、末端のユニット、等）の判定に利用される。
【００４９】
［増設ユニットの概要］
次に、増設ユニット（マスタユニット，スレーブユニット）の概要を説明する。
図４に示すように、マスタユニット（MASTER）２０は、制御回路４１、アイソレータ４２ａ〜４２ｅ、送受信回路４３、送信回路４４ａ，４４ｂ、受信回路４５を備えている。
【００５０】
制御回路４１は、ＣＰＵユニット１０から出力されるアドレス信号（Address）、データ信号（Data）、リード信号ＲＤ、ライト信号ＷＲ、選択信号ＣＳを受信する。また、制御回路４１は、ＣＰＵユニット１０に対してデータ信号とレディ信号ＲＤＹを出力する。アドレス信号（Address）は２６ビット、データ信号（Data）は１６ビットのパラレル信号である。リード信号ＲＤ、ライト信号ＷＲ、選択信号ＣＳ、レディ信号ＲＤＹはそれぞれ１ビットの信号である。ＣＰＵユニット１０は、レディ信号ＲＤＹにより待機状態（ＷＡＩＴ状態）となる。
【００５１】
制御回路４１は、アドレス信号、リード信号ＲＤ、ライト信号ＷＲと、増設ユニット間の通信情報（通信速度等）を含む３２ビットのデータを、４個のブロックデータに分解する。各ブロックデータは、８ビットの情報を含む。制御回路４１は、４個のブロックデータを順次出力する。
【００５２】
制御回路４１は、データライト時、ＣＰＵユニット１０から受信したデータ信号を２個のブロックデータに分解し、順次出力する。また、制御回路４１は、データリード時、スレーブユニット２１から順次受信する２個のブロックデータを１６ビットのデータ信号に変換してＣＰＵユニット１０に出力する。
【００５３】
制御回路４１から出力されるブロックデータは、アイソレータ４２ａを介して送受信回路４３に供給される。また、制御回路４１は、送受信回路４３から出力されるブロックデータを、アイソレータ４２ｂを介して入力する。アイソレータ４２ａ，４２ｂは、それぞれ８ビットのデジタルアイソレータである。
【００５４】
送受信回路４３は、８ビットの複合バスＥＡＤに対して、差動信号を出力する出力回路と、差動信号を入力する入力回路を含む。送受信回路４３は、制御回路４１から供給されるブロックデータに応じた８組の差動信号ＣＡＤ［７：０］を出力する。また、送受信回路４３は、８組の差動信号ＣＡＤ［７：０］に応じたブロックデータを制御回路４１に出力する。
【００５５】
制御回路４１は、マスタイネーブル信号ＭＥＮ、マスタクロック信号ＭＣＬＫを出力する。マスタイネーブル信号ＭＥＮとマスタクロック信号ＭＣＬＫは、それぞれアイソレータ４２ｃ，４２ｄを介して送信回路４４ａ，４４ｂに供給される。アイソレータ４２ｃ，４２ｄは、それぞれ１ビットのデジタルアイソレータである。送信回路４４ａは、制御バスＥＢＣに対して、マスタイネーブル信号ＭＥＮに応じた差動信号を出力する。送信回路４４ｂは、制御バスＥＢＣに対して、マスタクロック信号ＭＣＬＫに応じた差動信号を出力する。
【００５６】
受信回路４５は、制御バスＥＢＣから差動信号を入力し、スレーブオペレーション信号ＳＯＰを出力する。制御回路４１は、アイソレータ４２ｅを介してスレーブオペレーション信号ＳＯＰを入力する。アイソレータ４２ｅは、１ビットのデジタルアイソレータである。制御回路４１は、スレーブオペレーション信号ＳＯＰに基づいて、上記の２個のブロックデータをラッチし、ラッチしたデータに基づいて１６ビットのデータ信号を出力する。
【００５７】
スレーブユニット（SLAVE）２１は、制御回路６１、アイソレータ６２ａ〜６２ｅ、送受信回路６３、受信回路６４ａ，６４ｂ、送信回路６５を備えている。
送受信回路６３は、接続ケーブル３１（複合バスＥＡＤ）により受信した８組の差動信号ＣＡＤ［７：０］に応じたブロックデータを出力する。制御回路６１は、アイソレータ６２ａを介して送受信回路６３から出力されるブロックデータを順次入力する。受信回路６４ａは、制御バスＥＢＣから差動信号を入力し、マスタイネーブル信号ＭＥＮを出力する。受信回路６４ｂは、制御バスＥＢＣから差動信号を入力し、マスタクロック信号ＭＣＬＫを出力する。
【００５８】
制御回路６１は、アイソレータ６２ｃ，６２ｄを介して、マスタイネーブル信号ＭＥＮとマスタクロック信号ＭＣＬＫを入力する。そして、制御回路６１は、マスタクロック信号ＭＣＬＫに基づいて４個のブロックデータを順次ラッチし、ラッチした信号に基づいてアドレス信号（Address）、リード信号ＲＤ、ライト信号ＷＲ、選択信号ＣＳを生成し、それらをＩ／Ｏユニット１１に出力する。また、制御回路６１は、マスタクロック信号ＭＣＬＫに基づいて２個のブロックデータを順次ラッチし、ラッチした信号に基づいてデータ信号（Data）を生成し、Ｉ／Ｏユニット１１に出力する。
【００５９】
また、制御回路６１は、Ｉ／Ｏユニット１１から受信したデータ信号を２個のブロックデータに変換（分割）し、順次出力する。そして、制御回路６１は、スレーブオペレーション信号ＳＯＰを出力する。ブロックデータは、アイソレータ６２ｂを介して送受信回路６３に供給される。送受信回路６３は、制御回路６１から供給されるブロックデータに応じた８組の差動信号ＣＡＤ［７：０］を接続ケーブル３１（複合バスＥＡＤ）に出力する。
【００６０】
また、制御回路６１は、スレーブオペレーション信号ＳＯＰを出力する。スレーブオペレーション信号ＳＯＰは、アイソレータ６２ｅを介して送信回路６５に供給される。送信回路６５は、スレーブオペレーション信号ＳＯＰに応じた１組の差動信号を接続ケーブル３１により形成される制御バスＥＢＣに出力する。
【００６１】
図５に示すように、マスタユニット２０は、終端回路４６ａ，４６ｂを備えている。終端回路４６ａは、差動信号の伝送路のインピーダンスに応じた抵抗値の終端抵抗Ｒ１１，Ｒ１２，Ｒ１３を有している。なお、図では、１つの終端抵抗Ｒ１１，Ｒ１２が示されているが、８組の差動信号の伝送路にそれぞれ接続されている。終端回路４６ｂは、送信回路４４ｂから出力される差動信号の伝送路に接続された終端抵抗Ｒ１４と、受信回路４５に対する差動信号の伝送路に接続された終端抵抗Ｒ１５とを有している。
【００６２】
スレーブユニット２１は、終端回路６６ａ，６６ｂと、リレー６７を備えている。終端回路６６ａは、差動信号の伝送路のインピーダンスに応じた抵抗値の終端抵抗Ｒ２１，Ｒ２２，Ｒ２３を有している。なお、図では、１つの終端抵抗Ｒ２１，Ｒ２２を１つのみ示しているが、８組の差動信号の伝送路にそれぞれ接続されている。
【００６３】
終端回路６６ｂは、受信回路６４ｂに対する差動信号の伝送路に接続された終端抵抗Ｒ２４と、送信回路６５から出力される差動信号の伝送路に接続された終端抵抗Ｒ２５とを有している。
【００６４】
リレー６７は、終端制御信号ＴＥＲＭに基づいてオンオフするスイッチＳ１，Ｓ２を備えている。スイッチＳ１は伝送路に対して終端抵抗Ｒ２４を接離し、スイッチＳ２は伝送路に対して終端抵抗Ｒ２５を接離する。
【００６５】
差動信号を用いることで、接続ケーブル３１〜３３を用いた増設ユニット２０〜２３（図１参照）の信号伝達における耐ノイズ性が向上する。差動信号は５Ｖ（ｐ−ｐ）（ピーク・ツー・ピーク）（信号の振幅）である。したがって、１０Ｖ（ｐ−ｐ）のシングルエンド信号を伝送することと等価である。このため、たとえば５Ｖ（ｐ−ｐ）のシングルエンドの信号伝達に比べ、接続ケーブルによる信号の振幅減少に対する誤りの発生を抑制し、長距離伝送が可能である。また、差動信号を伝送することにより、シングルエンド信号を伝送する場合と比べ、信号の変化に要する時間が短く、高速な信号伝送が可能である。
【００６６】
［データリード］
次に、図６にしたがって、プログラマブルコントローラにおけるアクセス（データリード）について説明する。ここでは、図３に示すＣＰＵユニット１０、マスタユニット２０、スレーブユニット２１、Ｉ／Ｏユニット１１の間のアクセスについて説明する。
【００６７】
なお、図６において、マスタユニット２０を含むユニットブロックにおける信号には「−Ｍ」を、スレーブユニット２１を含むユニットブロックにおける信号には「−Ｓ」を付してそれぞれを区別する。そして、「−Ｍ」「−Ｓ」を用いて各ユニットの動作を説明する。
【００６８】
先ず、ＣＰＵユニット１０は、ユニットバスＵＢＵにアドレス信号Ａ（ＡＤ−Ｍ）を出力する。ＣＰＵユニット１０は、Ｌレベルの選択信号ＣＳ−Ｍを出力する。また、ＣＰＵユニット１０は、一定期間Ｌレベルのストローブ信号ＳＴＢ−Ｍと、アドレス信号の有効期間を示すアドレスサイクル信号ＡＤＣＹＣ−Ｍを出力する。そして、ＣＰＵユニット１０は、たとえばストローブ信号ＳＴＢ−Ｍの立ち上がりと同じタイミングでＬレベルのＩＯ選択信号ＩＯＣＳ−Ｍを出力する。
【００６９】
マスタユニット２０は、アドレス信号Ａを受け取ると、Ｌレベルのレディ信号ＲＤＹ−Ｍを出力する。ＣＰＵユニット１０は、Ｌレベルのレディ信号ＲＤＹ−Ｍに基づいて、待機状態（Ｗａｉｔ）となる。
【００７０】
マスタユニット２０は、Ｌレベルのマスタイネーブル信号ＭＥＮ−Ｍを出力する。
マスタユニット２０は、アドレス信号Ａと制御信号（図４に示すリード信号ＲＤ，ライト信号ＷＲ）とに基づいて、４つのブロックデータＣＰ，ＡＰ１，ＡＰ２，ＡＰ３を順次出力する。また、マスタユニット２０は、ブロックデータＣＰ，ＡＰ１〜ＡＰ３をスレーブユニット２１が受け取るためのマスタクロック信号ＭＣＬＫ−Ｍを出力する。
【００７１】
スレーブユニット２１は、マスタイネーブル信号ＭＥＮ−ＭがＬレベルになると、マスタクロック信号ＭＣＬＫ−Ｍに基づいて、たとえばマスタクロック信号ＭＣＬＫ−Ｍの立ち下がりエッジに基づいて各ブロックデータＣＰ，ＡＰ１〜ＡＰ３を順次受け取る。
【００７２】
そして、スレーブユニット２１は、所定のタイミング（たとえば、ブロックデータＣＰを受け取るタイミング）にてＬレベルの選択信号ＣＳ−Ｓを出力する。そして、スレーブユニット２１は、スレーブオペレーション信号ＳＯＰ−Ｓをハイインピーダンス（Ｈｉ−Ｚ）からＬレベルへと遷移させる。
【００７３】
スレーブユニット２１は、ブロックデータＣＰ，ＡＰ１〜ＡＰ３に基づいて、ユニットバスにアドレス信号ＡＤ−Ｓを出力する。スレーブユニット２１は、Ｌレベルの選択信号ＣＳ−Ｓを出力する。また、スレーブユニット２１は、一定期間Ｌレベルのストローブ信号ＳＴＢ−Ｓと、アドレス信号の有効期間を示すアドレスサイクル信号ＡＤＣＹＣ−Ｓを出力する。
【００７４】
Ｉ／Ｏユニット１１は、ストローブ信号ＳＴＢ−Ｓに基づいてアドレス信号Ａ（ＡＤ−Ｓ）を受け取る。そして、Ｉ／Ｏユニット１１は、アドレスサイクル信号ＡＤＣＹＣ−Ｓに基づいて、Ｌレベルのレディ信号ＲＤＹ−Ｓを出力する。スレーブユニット２１は、ＬレベルのＬレベルのレディ信号ＲＤＹ−Ｍに基づいて、待機状態（Ｗａｉｔ）となる。
【００７５】
Ｉ／Ｏユニット１１は、リードデータの準備が完了すると、レディ信号ＲＤＹ−ＳをＨレベルと、データ信号Ｄ（ＡＤ−Ｓ）を出力する。
スレーブユニット２１は、データ信号Ｄを受け取り、Ｈレベルの選択信号ＣＳ−Ｓを出力する。
【００７６】
そして、スレーブユニット２１は、データ信号に応じた２つのブロックデータＤＰ０，ＤＰ１を順次出力する。また、スレーブユニット２１は、ブロックデータＤＰ０，ＤＰ１をマスタユニット２０が受け取るためのスレーブオペレーション信号ＳＯＰ−Ｓを出力する。
【００７７】
マスタユニット２０は、スレーブオペレーション信号ＳＯＰ−Ｍに基づいて、ブロックデータＤＰ０，ＤＰ１を順次受け取る。そして、マスタユニット２０は、Ｈレベルのマスタイネーブル信号ＭＥＮ−ＭとＬレベルのマスタクロック信号ＭＣＬＫ−Ｍを出力する。
【００７８】
スレーブユニット２１は、Ｈレベルのマスタイネーブル信号ＭＥＮ−Ｓに基づいて、Ｈレベルの選択信号ＣＳ−Ｓを出力し、スレーブオペレーション信号ＳＯＰ−Ｓをハイインピーダンス（Ｈｉ−Ｚ）とする。
【００７９】
次に、マスタユニット２０は、ブロックデータＤＰ０，ＤＰ１に応じたデータ信号Ｄ（ＡＤ−Ｍ）を出力する。さらに、マスタユニット２０は、Ｈレベルのレディ信号ＲＤＹ−Ｍを出力する。
【００８０】
ＣＰＵユニット１０は、Ｈレベルのレディ信号ＲＤＹ−Ｍに基づいて、データ信号Ｄを受け取る。そして、ＣＰＵユニット１０は、Ｈレベルの選択信号ＣＳ−ＭとＩＯ選択信号ＩＯＣＳ−Ｍを出力する。
【００８１】
［データライト］
次に、図７にしたがって、プログラマブルコントローラにおけるアクセス（データライト）について説明する。上記のデータリードと同様に、図３に示すＣＰＵユニット１０、マスタユニット２０、スレーブユニット２１、Ｉ／Ｏユニット１１の間のアクセスについて説明する。
【００８２】
なお、図７において、図６と同様に、マスタユニット２０を含むユニットブロックにおける信号には「−Ｍ」を、スレーブユニット２１を含むユニットブロックにおける信号には「−Ｓ」を付してそれぞれを区別する。そして、「−Ｍ」「−Ｓ」を用いて各ユニットの動作を説明する。
【００８３】
先ず、ＣＰＵユニット１０は、ユニットバスＵＢＵにアドレス信号Ａ（ＡＤ−Ｍ）を出力し、次いでデータ信号Ｄ（ＡＤ−Ｍ）を出力する。ＣＰＵユニット１０は、Ｌレベルの選択信号ＣＳ−Ｍを出力する。また、ＣＰＵユニット１０は、一定期間Ｌレベルのストローブ信号ＳＴＢ−Ｍと、アドレス信号の有効期間を示すアドレスサイクル信号ＡＤＣＹＣ−Ｍを出力する。そして、ＣＰＵユニット１０は、たとえばストローブ信号ＳＴＢ−Ｍの立ち上がりと同じタイミングでＬレベルのＩＯ選択信号ＩＯＣＳ−Ｍを出力する。
【００８４】
マスタユニット２０は、アドレス信号Ａを受け取ると、Ｌレベルのレディ信号ＲＤＹ−Ｍを出力する。ＣＰＵユニット１０は、Ｌレベルのレディ信号ＲＤＹ−Ｍに基づいて、待機状態（Ｗａｉｔ）となる。
【００８５】
マスタユニット２０は、Ｌレベルのマスタイネーブル信号ＭＥＮ−Ｍを出力する。
マスタユニット２０は、アドレス信号Ａと制御信号（図４に示すリード信号ＲＤ，ライト信号ＷＲ）とに基づいて、４つのブロックデータＣＰ，ＡＰ１，ＡＰ２，ＡＰ３を順次出力する。さらに、マスタユニット２０は、データ信号Ｄに基づいて、２つのブロックデータＤＰ０，ＤＰ１を順次出力する。また、マスタユニット２０は、ブロックデータＣＰ，ＡＰ１〜ＡＰ３、ＤＰ０，ＤＰ１をスレーブユニット２１が受け取るためのマスタクロック信号ＭＣＬＫ−Ｍを出力する。
【００８６】
スレーブユニット２１は、マスタイネーブル信号ＭＥＮ−ＭがＬレベルになると、マスタクロック信号ＭＣＬＫ−Ｍに基づいて、たとえばマスタクロック信号ＭＣＬＫ−Ｍの立ち下がりエッジに基づいて各ブロックデータＣＰ，ＡＰ１〜ＡＰ３を順次受け取る。
【００８７】
そして、スレーブユニット２１は、所定のタイミング（たとえば、ブロックデータＣＰを受け取るタイミング）にてＬレベルの選択信号ＣＳ−Ｓを出力する。そして、スレーブユニット２１は、スレーブオペレーション信号ＳＯＰ−Ｓをハイインピーダンス（Ｈｉ−Ｚ）からＨレベルへと遷移させる。
【００８８】
スレーブユニット２１は、ブロックデータＣＰ，ＡＰ１〜ＡＰ３を受け取ると、Ｌレベルのアドレスサイクル信号ＡＤＣＹＣ−Ｓを出力し、ユニットバスにアドレス信号Ａ（ＡＤ−Ｓ）を出力する。スレーブユニット２１は、Ｌレベルの選択信号ＣＳ−Ｓを出力する。また、スレーブユニット２１は、一定期間Ｌレベルのストローブ信号ＳＴＢ−Ｓを出力する。そして、スレーブユニット２１は、Ｌレベルのスレーブオペレーション信号ＳＯＰ−Ｓを出力する。
【００８９】
さらに、スレーブユニット２１は、ブロックデータＤＰ０，ＤＰ１を受け取ると、Ｈレベルのアドレスサイクル信号ＡＤＣＹＣ−Ｓを出力し、ユニットバスにデータ信号Ｄ（ＡＤ−Ｓ）を出力する。スレーブユニット２１は、Ｌレベルの選択信号ＣＳ−Ｓを出力する。また、スレーブユニット２１は、一定期間Ｌレベルのストローブ信号ＳＴＢ−Ｓを出力する。
【００９０】
Ｉ／Ｏユニット１１は、ストローブ信号ＳＴＢ−Ｓに基づいてアドレス信号Ａ（ＡＤ−Ｓ）を受け取る。そして、Ｉ／Ｏユニット１１は、Ｈレベルのアドレスサイクル信号ＡＤＣＹＣ−Ｓに基づいて、Ｌレベルのレディ信号ＲＤＹ−Ｓを出力する。スレーブユニット２１は、ＬレベルのＬレベルのレディ信号ＲＤＹ−Ｍに基づいて、待機状態（Ｗａｉｔ）となる。
【００９１】
Ｉ／Ｏユニット１１は、Ｈレベルのアドレスサイクル信号ＡＤＣＹＣ−Ｓに基づいて、データ信号Ｄ（ＡＤ−Ｓ）を受け取ると、Ｈレベルのレディ信号ＲＤＹ−Ｓを出力する。
スレーブユニット２１は、Ｈレベルのレディ信号ＲＤＹ−Ｓに基づいて、Ｈレベルのスレーブオペレーション信号ＳＯＰ−Ｓを出力する。
【００９２】
マスタユニット２０は、Ｈレベルのスレーブオペレーション信号ＳＯＰ−Ｍに基づいて、Ｈレベルのレディ信号ＲＤＹ−Ｍを出力する。
ＣＰＵユニット１０は、Ｈレベルのレディ信号ＲＤＹ−Ｍに基づいて、データ信号Ｄを受け取る。そして、ＣＰＵユニット１０は、Ｈレベルの選択信号ＣＳ−ＭとＩＯ選択信号ＩＯＣＳ−Ｍを出力する。
【００９３】
スレーブユニット２１は、Ｈレベルのマスタイネーブル信号ＭＥＮ−Ｓに基づいて、Ｈレベルの選択信号ＣＳ−Ｓを出力し、スレーブオペレーション信号ＳＯＰ−Ｓをハイインピーダンス（Ｈｉ−Ｚ）とする。
【００９４】
［シングルエンド信号伝送］
図８に示すように、マスタユニット２０は、リセット信号ＲＥＳＥＴを送信するための送信回路５１と、起動完了信号ＰＳＲを受信するための受信回路５５を備えている。
【００９５】
送信回路５１は、バッファ回路５２、インバータ回路５３、トランジスタＴ１１〜Ｔ１３、抵抗Ｒ１６を備えている。
送信回路５１のバッファ回路５２とインバータ回路５３には、制御回路４１とアイソレータ４２ｆを介して、リセット信号ＲＥＳＥＴが供給される。バッファ回路５２の出力端子はトランジスタＴ１１の制御端子に接続されている。トランジスタＴ１１は、たとえばＮチャネルＭＯＳトランジスタである。トランジスタＴ１１のドレイン端子はトランジスタＴ１２の制御端子に接続され、トランジスタＴ１１のソース端子はグランドＧＮＤに接続されている。なお、以下の説明に用いる図面において、符号「ＧＮＤ」を省略することがある。トランジスタＴ１２はたとえばＰチャネルＭＯＳトランジスタである。トランジスタＴ１２のソース端子には高電位電圧ＶＤｍが供給されている。また、トランジスタＴ１２の制御端子（ゲート端子）は、抵抗Ｒ１６の一端に接続され、抵抗Ｒ１６の他端には高電位電圧ＶＤｍが供給される。高電位電圧ＶＤｍは、たとえば１２［Ｖ］（ボルト）であり、マスタユニット２０に備えられた電源回路（図示略）により生成される。
【００９６】
インバータ回路５３の出力端子はトランジスタＴ１３の制御端子に接続されている。トランジスタＴ１３はたとえばＮチャネルＭＯＳトランジスタである。トランジスタＴ１３のソース端子はグランドＧＮＤに接続され、トランジスタＴ１３のドレイン端子はトランジスタＴ１２のドレイン端子に接続されている。そして、トランジスタＴ１２とトランジスタＴ１３との間のノードから、高電位電圧ＶＤｍとグランドＧＮＤの電位に応じた振幅のリセット信号ＲＳＴを出力する。このリセット信号ＲＳＴはシングルエンド信号であり、振幅はたとえば１２Ｖ（ｐ−ｐ）である。このように、シングルエンドのリセット信号ＲＳＴを伝送することにより、接続ケーブル３１の芯数の増加を抑制することができる。
【００９７】
なお、バッファ回路５２とインバータ回路５３は、電源端子に供給される高電位電圧ＶＣｍ（図示略）にて動作する。高電位電圧ＶＣｍはたとえば５［Ｖ］であり、図示しない電源回路により生成される。また、ＣＰＵユニット１０から出力されるリセット信号ＲＥＳＥＴは、高速な伝送に適した振幅レベル、たとえば３．３Ｖ（ｐ−ｐ）である。このように、マスタユニット２０は、リセット信号ＲＥＳＥＴの振幅を大きくして接続ケーブル３１に対して出力する。
【００９８】
スレーブユニット２１は、リセット信号ＲＥＳＥＴを受信するための受信回路７１と、起動完了信号ＰＳＲを送信するための送信回路７５を備えている。
受信回路７１は、コンパレータ７２、抵抗Ｒ２６ａ，Ｒ２６ｂ，Ｒ２７を備えている。受信回路７１のコンパレータ７２の非反転入力端子に、接続ケーブル３１により伝送されたリセット信号ＲＳＴが供給される。コンパレータ７２の反転入力端子は抵抗Ｒ２６ａの一端に接続され、抵抗Ｒ２６ａの他端には高電位電圧ＶＤｓが供給される。また、コンパレータ７２の反転入力端子は抵抗Ｒ２６ｂの一端に接続され、抵抗Ｒ２６ｂの他端はグランドＧＮＤに接続されている。したがって、コンパレータ７２の反転入力端子には、抵抗Ｒ２６ａ，Ｒ２６ｂの抵抗値に応じて高電位電圧ＶＤｓを分圧した分圧電圧が供給される。高電位電圧ＶＤｓは、たとえば１２［Ｖ］（ボルト）であり、スレーブユニット２１に備えられた電源回路（図示略）により生成される。抵抗Ｒ２６ａ，Ｒ２６ｂの抵抗値はたとえば互いに等しい値に設定されている。この場合、コンパレータ７２の反転入力端子には、高電位電圧ＶＤｓの１／２（２分の１）の分圧電圧が供給される。コンパレータ７２の出力端子は抵抗Ｒ２７の一端に接続され、抵抗Ｒ２７の他端には高電位電圧ＶＣｓが供給される。高電位電圧ＶＣｓはたとえば５［Ｖ］であり、図示しない電源回路により生成される。
【００９９】
接続ケーブル３１により伝送されるリセット信号ＲＳＴは１２Ｖ（ｐ−ｐ）のシングルエンド信号である。受信回路７１のコンパレータ７２は、１２Ｖ（ｐ−ｐ）のリセット信号ＲＳＴと、高電位電圧ＶＤｓ（１２［Ｖ］）の１／２（２分の１）の分圧電圧（６［Ｖ］）の基準電圧Ｖｒ２とを比較し、比較結果に応じたリセット信号ＲＥＳＥＴを出力する。このリセット信号ＲＥＳＥＴは、コンパレータ７２の出力端子に接続された抵抗Ｒ２７とその抵抗Ｒ２７に供給される高電位電圧ＶＣｓ（５［Ｖ］）により、５Ｖ（ｐ−ｐ）となる。リセット信号ＲＥＳＥＴは、アイソレータ６２ｆと制御回路６１を介してＩ／Ｏユニット１１に供給される。
【０１００】
このように基準電圧Ｖｒ１を設定することにより、耐ノイズ性が向上する。つまり、マスタユニット２０における高電位電圧ＶＤｍの電圧変動や、伝送路における電圧降下、伝送路に混入するノイズにより、リセット信号ＲＳＴのレベルが変動する。しかし、リセット信号ＲＳＴの振幅（１２Ｖ（ｐ−ｐ））の１／２に基準電圧Ｖｒ２を設定すると、リセット信号ＲＳＴの最大電圧、最小電圧と基準電圧Ｖｒ２の差の電圧まで電圧変動が許容される。つまり、マスタユニット２０は、振幅を拡大したリセット信号ＲＳＴを出力する。スレーブユニット２１は、リセット信号ＲＳＴの中間の基準電圧Ｖｒ２によりリセット信号ＲＳＴを判定してリセット信号ＲＥＳＥＴを出力する。これにより、ノイズ等により伝送路のリセット信号ＲＳＴのレベルが変動しても、コンパレータ７２から出力されるリセット信号ＲＥＳＥＴにおける誤りを抑制することができる。
【０１０１】
スレーブユニット２１の送信回路７５は、マスタユニット２０の送信回路５１と同様に構成されている。
送信回路７５は、バッファ回路７６、インバータ回路７７、トランジスタＴ２１〜Ｔ２３、抵抗Ｒ２８を備えている。送信回路７５のバッファ回路７６とインバータ回路７７には、制御回路６１とアイソレータ６２ｇを介して起動完了信号ＰＳＲが供給される。バッファ回路７６の出力端子はトランジスタＴ２１の制御端子に接続されている。トランジスタＴ２１はたとえばＮチャネルＭＯＳトランジスタである。トランジスタＴ２１のドレイン端子はトランジスタＴ２２の制御端子に接続され、トランジスタＴ２１のソース端子はグランドＧＮＤに接続されている。トランジスタＴ２２はたとえばＰチャネルＭＯＳトランジスタである。トランジスタＴ２２のソース端子には高電位電圧ＶＤｓが供給されている。また、トランジスタＴ２２の制御端子（ゲート端子）は抵抗Ｒ２８の一端に接続され、抵抗Ｒ２８の他端には高電位電圧ＶＤｓが供給される。
【０１０２】
インバータ回路７７の出力端子はトランジスタＴ２３の制御端子に接続されている。トランジスタＴ２３はたとえばＮチャネルＭＯＳトランジスタである。トランジスタＴ２３のソース端子はグランドＧＮＤに接続され、トランジスタＴ２３のドレイン端子はトランジスタＴ２２のドレイン端子に接続されている。そして、トランジスタＴ２２とトランジスタＴ２３の間のノードから、高電位電圧ＶＤｓとグランドＧＮＤの電位に応じた振幅の起動完了信号ＰＳを出力する。この起動完了信号ＰＳはシングルエンド信号であり、振幅はたとえば１２Ｖ（ｐ−ｐ）である。
【０１０３】
マスタユニット２０の受信回路５５は、コンパレータ５６、抵抗Ｒ１７ａ，Ｒ１７ｂ，Ｒ１８を備えている。受信回路５５のコンパレータ５６の非反転入力端子に、接続ケーブル３１により伝送されたリセット信号ＲＳＴが供給される。コンパレータ５６の反転入力端子は抵抗Ｒ１７ａの一端に接続され、抵抗Ｒ１７ａの他端には高電位電圧ＶＤｍが供給される。また、コンパレータ５６の反転入力端子は抵抗Ｒ１７ｂの一端に接続され、抵抗Ｒ１７ｂの他端はグランドＧＮＤに接続されている。したがって、コンパレータ５６の反転入力端子には、抵抗Ｒ１７ａ，Ｒ１７ｂの抵抗値に応じて高電位電圧ＶＤｍを分圧した分圧電圧が供給される。抵抗Ｒ１７ａ，Ｒ１７ｂの抵抗値はたとえば互いに等しい値に設定されている。この場合、コンパレータ５６の反転入力端子には、高電位電圧ＶＤｍの１／２（２分の１）の分圧電圧が供給される。コンパレータ５６の出力端子は抵抗Ｒ１８の一端に接続され、抵抗Ｒ１８の他端には高電位電圧ＶＣｍが供給される。
【０１０４】
接続ケーブル３１により伝送される起動完了信号ＰＳは１２Ｖ（ｐ−ｐ）のシングルエンド信号である。受信回路５５のコンパレータ５６は、１２Ｖ（ｐ−ｐ）の起動完了信号ＰＳと、高電位電圧ＶＤｍ（１２［Ｖ］）の１／２（２分の１）の分圧電圧（６［Ｖ］）の基準電圧Ｖｒ１とを比較し、比較結果に応じた起動完了信号ＰＳＲを出力する。この起動完了信号ＰＳＲは、コンパレータ５６の出力端子に接続された抵抗Ｒ１８とその抵抗Ｒ１８に供給される高電位電圧ＶＣｍ（５［Ｖ］）により、５Ｖ（ｐ−ｐ）となる。起動完了信号ＰＳＲは、アイソレータ４２ｇと制御回路４１を介してＣＰＵユニット１０に出力される。
【０１０５】
起動完了信号ＰＳＲについても、リセット信号ＲＥＳＥＴと同様に、接続ケーブル３１の芯数の増加を抑制することができる。また、ノイズ等により伝送路の起動完了信号ＰＳのレベルが変動しても、コンパレータ５６から出力される起動完了信号ＰＳＲにおける誤りを抑制することができる。
【０１０６】
［終端認識］
次に、スレーブユニットにおける終端認識を説明する。
図９（ａ）に示すように、スレーブユニット２１は、２つのコネクタ２２ｂ、２２ｃを有し、一方のコネクタ２１ｂは接続ケーブル３１によりマスタユニット２０のコネクタ２０ｂに接続される。図９（ｂ）（ｃ）に示すように、スレーブユニット２１の２つのコネクタのうち他方のコネクタ２１ｃは、接続ケーブル３２を介してスレーブユニット２２に接続される。スレーブユニット２２のコネクタ２２ｂは、接続ケーブル３２を介してマスタユニット２０側のスレーブユニット２１のコネクタ２１ｃに接続される。そして、スレーブユニット２２のコネクタ２２ｃは、接続ケーブル３３を介してスレーブユニット２３のコネクタ２３ｂに接続される。
【０１０７】
つまり、各スレーブユニット２１，２２，２３は、マスタユニット側のコネクタ２１ｂ，２２ｂ，２３ｂと、マスタユニット２０とは反対側（反マスタユニット側）のコネクタ２１ｃ，２２ｃ，２３ｃを備えている。マスタユニット側のコネクタ２１ｂ，２２ｂ，２３ｂを上流側コネクタと呼び、反マスタユニット側のコネクタ２１ｃ，２２ｃ，２３ｃを下流側コネクタと呼ぶ。
【０１０８】
図９（ａ）に示すように、スレーブユニット２１において、下流側コネクタ２１ｃの１つの端子（たとえば、４０番目の端子）Ｐｂは、抵抗Ｒ３１を介してアイソレータ８１に接続されている。アイソレータ８１は、たとえばフォトカプラである。アイソレータ８１には高電位電圧ＶＣｓ（たとえば５［Ｖ］）が供給され、出力端子は制御回路６１に接続されている。制御回路６１は、アイソレータ８１の出力端子のレベルに応じた終端判定信号を入力する。そして、端子Ｐｂと対応する上流側コネクタ２１ｂの端子（たとえば、４０番目の端子）Ｐａには、高電位電圧ＶＤｓ（たとえば１２［Ｖ］）が供給される。
【０１０９】
図９（ｃ）に示すように、スレーブユニット２２，２３は、スレーブユニット２１と同様に、上流側コネクタ２１ｂの端子Ｐａに高電位電圧ＶＤｓが供給され、下流側コネクタ２１ｃの端子Ｐｂは抵抗Ｒ３１を介してアイソレータ８１に接続され、そのアイソレータ８１の出力端子は制御回路６１に接続されている。制御回路６１は、アイソレータ８１の出力端子のレベルに応じた終端判定信号を入力する。
【０１１０】
図９（ｂ）に示すように、スレーブユニット２１のコネクタ２１ｃを、接続ケーブル３２を介してスレーブユニット２２のコネクタ２２ｂを接続する。すると、スレーブユニット２１の下流側コネクタ２１ｃの端子Ｐｂは、接続ケーブル３２を介して接続されたスレーブユニット２２により高電位電圧ＶＤｓにプルアップされる。このとき、アイソレータ８１の出力端子はＨレベルとなる。したがって、制御回路６１は、Ｈレベルの終端判定信号を入力する。そして、図９（ａ）に示すように、スレーブユニット２１の下流側コネクタ２１ｃが未接続の場合、アイソレータ８１の出力端子、つまり終端判定信号はＬレベルとなる。したがって、制御回路６１は、終端判定信号のレベルに応じて、自ユニットが末端のユニットであるか否かを判定する。制御回路６１は、Ｌレベルの終端判定信号に基づいて自ユニットが末端のユニットであると判定し、Ｈレベルの終端判定信号に基づいて自ユニットが末端のユニットではないと判定する。
【０１１１】
図９（ｂ）に示すように、２台のスレーブユニット２１，２２を含むプログラマブルコントローラの場合、マスタユニット２０に直接接続されたスレーブユニット２１の制御回路は、Ｈレベルの終端判定信号に基づいて、自ユニットが末端のユニットではないと判定する。そのスレーブユニット２１に接続されたスレーブユニット２２の制御回路６１は、Ｌレベルの終端判定信号に基づいて自ユニットが末端のユニットであると判定する。
【０１１２】
図９（ｃ）に示すように、３台のスレーブユニット２１〜２３を含むプログラマブルコントローラの場合、マスタユニット２０に直接接続されたスレーブユニット２１の制御回路は、Ｈレベルの終端判定信号に基づいて、自ユニットが末端のユニットではないと判定する。そのスレーブユニット２１に接続されたスレーブユニット２２の制御回路６１は、Ｈレベルの終端判定信号に基づいて、自ユニットが末端のユニットではないと判定する。そして、スレーブユニット２２に接続されたスレーブユニット２３の制御回路６１は、Ｌレベルの終端判定信号に基づいて自ユニットが末端のユニットであると判定する。
【０１１３】
末端のユニットと判定した制御回路は、図５に示す終端制御信号により、リレー６７のスイッチＳ１，Ｓ２をオンし、マスタクロック信号ＭＣＬＫとスレーブオペレーション信号ＳＯＰをそれぞれ伝送する伝送路を終端する。たとえば、図９（ｃ）に示すように接続された各スレーブユニット２１，２２，２３の制御回路は、マスタクロック信号ＭＣＬＫに基づいて、マスタユニット２０から順次送信される複数のブロックデータをラッチしてアドレス信号やデータ信号等を生成する。たとえば、制御回路は、マスタクロック信号ＭＣＬＫの立ち上がりに同期してブロックデータをラッチする。したがって、信号の反射によってマスタクロック信号ＭＣＬＫにパルス状のノイズが発生し、そのノイズによって誤ったデータをラッチするおそれがある。このため、マスタクロック信号ＭＣＬＫの伝送路を末端のスレーブユニットにおいて終端し、誤動作を防止する。
【０１１４】
一方、マスタユニット２０の制御回路は、スレーブオペレーション信号ＳＯＰに基づいて各スレーブユニット２１，２２，２３から送信されるブロックデータをラッチしてデータ信号を生成する。したがって、マスタクロック信号ＭＣＬＫと同様に、スレーブオペレーション信号ＳＯＰの伝送路を末端のスレーブユニットにて終端し、誤動作を防止する。
【０１１５】
［起動判定］
次に、各スレーブユニットの電源起動の判定について説明する。
図１０（ａ）に示すように、各スレーブユニット２１，２２，２３は、それぞれ起動完了信号ＰＳＲを送信する送信回路７５を備えている。なお、図１０（ａ）では、図８に示す送信回路７５を簡略化して示している。また、マスタユニット２０及びスレーブユニット２１，２２，２３は、図８に示す受信回路４５を備えているが、図ではこれを省略している。
【０１１６】
図１０（ａ）に示すように、スレーブユニット２１において、送信回路７５の出力端子が接続されたコネクタ２１ｂの端子Ｐｃは、スレーブユニット２１内の抵抗Ｒ３２によりグランドＧＮＤにプルダウンされている。そして、この送信回路７５に対して起動完了信号ＰＳＲが入力されるコネクタ２１ｃの端子Ｐｄは、スレーブユニット２１内の抵抗Ｒ３３により所定電圧（たとえば、高電位電圧ＶＤｓ）にプルアップされている。抵抗Ｒ３３の抵抗値は、抵抗Ｒ３２の抵抗値よりも大きく設定されている。たとえば、抵抗Ｒ３３の抵抗値は１００ｋΩ、抵抗Ｒ３２の抵抗値は１０ｋΩである。スレーブユニット２２，２３についてもスレーブユニット２１と同様である。
【０１１７】
スレーブユニット２３において、電源が供給されると、抵抗Ｒ３３は送信回路７５の入力端子をプルアップする。すると、送信回路７５は、Ｈレベルの起動完了信号ＰＳ３を出力する。スレーブユニット２２は、Ｈレベルの起動完了信号ＰＳ３に基づいて、Ｈレベルの起動完了信号ＰＳ２を出力する。スレーブユニット２１は、Ｈレベルの起動完了信号ＰＳ２に基づいてＨレベルの起動完了信号ＰＳ１を出力する。マスタユニット２０は、Ｈレベルの起動完了信号ＰＳ１に基づいて、接続された全てのスレーブユニット２１，２２，２３の電源が起動されたと判定し、イニシャルモードとなり、各スレーブユニット２１，２２，２３の初期化を行う。
【０１１８】
たとえば、図１０（ｂ）に示すように、スレーブユニット２３に駆動電源が供給されていない（電源が起動していない）場合、このスレーブユニット２３の抵抗Ｒ３２は、接続ケーブル３３を介してスレーブユニット２２の端子Ｐｄをプルダウンする。この端子Ｐｄは、抵抗Ｒ３３によりプルアップされている。したがって、端子Ｐｄの電位（レベル）は、抵抗Ｒ３３の抵抗値と抵抗Ｒ３２の抵抗値に応じて、所定電圧（たとえば、高電位電圧ＶＤｓ）とグランドＧＮＤの間の電位差を分圧した値となる。抵抗Ｒ３３の抵抗値は、抵抗Ｒ３２の抵抗値より大きい。スレーブユニット２２の送信回路７５は、端子Ｐｄの電位に基づいて、Ｌレベルの起動完了信号ＰＳ２を出力する。スレーブユニット２１は、Ｌレベルの起動完了信号ＰＳ２に基づいて、Ｌレベルの起動完了信号ＰＳ１を出力する。
【０１１９】
マスタユニット２０は、Ｌレベルの起動完了信号ＰＳ１に基づいて、接続されたスレーブユニット２１〜２３のうちに、電源が起動されていないユニットが存在すると判定し、待機状態となる。この待機状態において、マスタユニット２０はたとえば電源起動のエラーを報知する。たとえば、図１において、マスタユニット２０は、前面上部に表示部２０ｃを備えている。表示部２０ｃは、たとえば、液晶表示装置（ＬＣＤ）や発光素子（ＬＥＤ）等を備えている。マスタユニット２０は、表示部２０ｃに電源起動のエラーを表示する。表示部２０ｃの表示により、操作者（作業者）は、電源起動にエラーが発生していることを把握することができる。
【０１２０】
また、図１０（ｃ）に示すように、スレーブユニット２２に駆動電源が供給されていない（電源が起動していない）場合、このスレーブユニット２２の抵抗Ｒ３２は、接続ケーブル３２を介してスレーブユニット２１の端子Ｐｄをプルダウンする。スレーブユニット２１の送信回路７５は、端子Ｐｄの電位に基づいて、Ｌレベルの起動完了信号ＰＳ１を出力する。マスタユニット２０は、Ｌレベルの起動完了信号ＰＳ１に基づいて、接続されたスレーブユニット２１〜２３のうちに、電源が起動されていないユニットが存在すると判定し、待機状態となる。
【０１２１】
なお、スレーブユニット２１に駆動電源が供給されていない（電源が起動していない）場合も上記と同様に、マスタユニット２０は、Ｌレベルの起動完了信号ＰＳ１に基づいて、電源が起動されていないユニットが存在すると判定し、待機状態となる。また、複数のスレーブユニットに駆動電源が供給されていない場合も同様である。また、マスタユニット２０に対して１台または２台のスレーブユニットが接続された場合も同様である。
【０１２２】
［局番設定］
たとえば、図１０（ａ）に示すように、マスタユニット２０は、Ｈレベルの起動完了信号ＰＳ１に基づいて、接続された全てのスレーブユニット２１，２２，２３の電源が起動されたと判定すると、初期化を行う。
【０１２３】
たとえば、図１１（ａ）に示すように、マスタユニット２０は、Ｌレベルのリセット信号ＳＲＥＳＥＴとＬレベルのマスタイネーブル信号ＭＥＮを出力する。リセット信号ＳＲＥＳＥＴとマスタイネーブル信号ＭＥＮは、マスタユニット２０とスレーブユニット２１，２２，２３と接続ケーブル３１，３２，３３により形成される増設バスにより、各スレーブユニット２１〜２３の制御回路６１に供給される。各スレーブユニット２１〜２３の制御回路６１は、Ｌレベルのリセット信号ＳＲＥＳＥＴに基づいて初期化処理を行う。
【０１２４】
マスタユニット２０は、３ビットの局番設定信号ＳＮ２，ＳＮ１，ＳＮ０を出力する。マスタユニット２０は、Ｌレベルの局番設定信号ＳＮ２，ＳＮ１とＨレベルの局番設定信号ＳＮ０を出力する。上記レベルの局番設定データＳＮ［２：０］のレベルは「ＬＬＨ」であり、「１」を示す。つまり、スレーブユニット２１の制御回路６１は、マスタユニット２０から出力される局番設定信号ＳＮ２〜ＳＮ０の値「１」に「１」を加算した結果に応じた局番設定信号ＳＮ２〜ＳＮ０を出力する。つまり、制御回路６１は、Ｌレベルの局番設定信号ＳＮ２、Ｈレベルの局番設定信号ＳＮ１、Ｌレベルの局番設定信号ＳＮ０を出力する。
【０１２５】
スレーブユニット２１の制御回路６１は、スレーブユニット２１から出力される局番設定信号ＳＮ２〜ＳＮ０の値に「１」を加算した値の局番設定信号ＳＮ２〜ＳＮ０を出力する。スレーブユニット２１から出力される局番設定信号ＳＮ２〜ＳＮ０のレベルは「ＬＨＬ」であり、「２」を示す。したがって、制御回路６１は、Ｌレベルの局番設定信号ＳＮ２、Ｈレベルの局番設定信号ＳＮ１，ＳＮ０を出力する。
【０１２６】
スレーブユニット２１の制御回路６１は、スレーブユニット２１から出力される局番設定信号ＳＮ２〜ＳＮ０の値に「１」を加算した値の局番設定信号ＳＮ２〜ＳＮ０を出力する。スレーブユニット２１から出力される局番設定信号ＳＮ２〜ＳＮ０のレベルは「ＬＨＬ」であり、「３」を示す。したがって、制御回路６１は、Ｈレベルの局番設定信号ＳＮ２、Ｌレベルの局番設定信号ＳＮ１，ＳＮ０を出力する。
【０１２７】
図１１（ｂ）に示すように、マスタユニット２０は、出力するマスタクロック信号ＭＣＬＫのレベルを、ＬレベルかれＨレベルへと変更する。各スレーブユニット２１〜２３の制御回路６１は、マスタクロック信号ＭＣＬＫの立ち上がりに基づいて局番設定信号ＳＮ２〜ＳＮ０をラッチし、局番設定データＳＮ［２：０］を記憶する。つまり、各スレーブユニット２１〜２３の制御回路６１は、マスタユニット２０側から順に、「１」、「２」、「３」の局番を設定する。
【０１２８】
たとえば、各スレーブユニット２１，２２，２３は、図１に示すように、前面上端に表示部２１ｄ，２２ｄ，２３ｄを有している。各スレーブユニット２１，２２，２３の制御回路６１はそれぞれ、表示部２１ｄ，２２ｄ，２３ｄに局番を表示する。
【０１２９】
局番をディップスイッチやレジスタに設定する場合、同じ局番のスレーブユニットが接続されることがある。このような設定ミスにより誤動作が発生する。これに対し、本実施形態のマスタユニット２０及びスレーブユニット２１，２２，２３は、初期設定時に自動的に自ユニットの局番を設定する。これにより、設定ミスにより誤動作を防止することができる。
【０１３０】
なお、スレーブユニットの制御回路は、初期設定のときに、Ｈレベルの局番設定信号ＳＮ２に基づいて、設定を行わないように構成されている。本実施形態のプログラマブルコントローラは、最大で３台のスレーブユニットの接続が可能な仕様である。このため、４台以上のスレーブユニットを接続した場合、マスタユニットから数えて４台目以降のスレーブユニットが初期設定を行わずに動作を停止することで、誤動作を防止する。
【０１３１】
図１１（ｃ）に示すように、マスタユニット２０はＨレベルのリセット信号ＳＲＥＳＥＴを出力する。各スレーブユニット２１〜２３の制御回路６１は、Ｈレベルのリセット信号ＳＲＥＳＥＴに基づいて初期化処理（イニシャルモード）を終了する。
【０１３２】
そして、マスタユニット２０は、局番設定信号ＳＮ０〜ＳＮ２に替えて、制御信号を出力する。たとえば、マスタユニット２０は、エラー信号ＥＲＲ、プログラム／起動信号ＲＵＮ、クリア信号ＣＬＲを出力する。スレーブユニット２１の制御回路６１は、各信号ＥＲＲ，ＲＵＮ，ＣＬＲを、透過的（スルー）に下流側のスレーブユニット２２に出力する。同様に、スレーブユニット２２，２３の制御回路６１は、各信号ＥＲＲ，ＲＵＮ，ＣＬＲを、透過的（スルー）に出力する。
【０１３３】
このように、マスタユニット２０及びスレーブユニット２１〜２３は、初期設定時（イニシャルモード）と、初期設定後とで、異なる信号を伝送する。これにより、マスタユニット２０，スレーブユニット２１〜２３を接続する接続ケーブル３１〜３３におけるケーブル数の増加、コネクタ３１ｂ，３１ｃ（図２（ｃ）参照）の大型化を抑制することができる。
【０１３４】
図１３（ａ）に示すように、接続ケーブル３４は、コネクタ３４ａ，３４ｂ間の長さ（ケーブル長）がＬ１のケーブルである。この接続ケーブル３４は、コネクタ３４ａ，３４ｂにおいて、対応する端子を互いに接続したストレートケーブルである。図において、コネクタ３４ａ，３４ｂの近傍に記載した数字は、端子の順番を示す。たとえば、コネクタ３４ａの１番目の端子Ｐ１はコネクタ３４ｂの１番目の端子Ｐ４１に接続され、２番目の端子Ｐ２は２番目の端子Ｐ４２に接続されている。
【０１３５】
図１３（ｂ）に示すように、接続ケーブル３５は、コネクタ３５ａ，３５ｂ間の長さ（ケーブル長）がＬ２のケーブルである。この接続ケーブル３５は、図１３（ａ）に示す接続ケーブル３４より長い（Ｌ２＞Ｌ１）。この接続ケーブル３５は、所定の２つの端子をクロスして接続したクロスケーブルである。詳述すると、コネクタ３５ａの１番目の端子Ｐ１は、ケーブル３５ｃによりコネクタ３５ｂの２番目の端子Ｐ４２に接続されている。また、コネクタ３５ａの２番目の端子Ｐ２は、ケーブル３５ｄによりコネクタ３５ｂの１番目の端子Ｐ４１に接続されている。そして、３番目〜４０番目の端子は、対応する３番目から４０番目の端子にそれぞれ接続されている。
【０１３６】
図１２（ａ）に示すように、マスタユニット２０のコネクタ２０ｂにおいて、１番目の端子Ｐ１はグランドＧＮＤに接続されている。マスタユニット２０は、２番目の端子Ｐ２のレベルに基づいて、接続ケーブルを判定する。
【０１３７】
スレーブユニット２１において、コネクタ２１ｂの１番目の端子Ｐ１と、コネクタ２１ｃの１番目の端子Ｐ４１は、それぞれグランドＧＮＤに接続されている。コネクタ２１ｂの２番目の端子Ｐ２と、コネクタ２１ｃの２番目の端子Ｐ４２は、互いに信号の伝達が可能に接続されている。なお、図では省略しているが、コネクタ２１ｂの各端子とコネクタ２１ｃの各端子は、アイソレータにより、分離されている。
【０１３８】
また、スレーブユニット２１において、コネクタ２１ｂの端子Ｐ２と、コネクタ２１ｃの端子Ｐ４２との間の伝送路９１は、所定電圧（たとえば、高電位電圧ＶＤｓ（１２［Ｖ］））にプルアップされている。そして、スレーブユニット２１の制御回路６１は、その伝送路９１のレベルを監視可能に接続されている。たとえば、スレーブユニット２１は、アイソレータ８２と抵抗Ｒ３４を備えている。アイソレータ８２は、たとえばフォトカプラである。抵抗Ｒ３４の一端には高電位電圧ＶＤｓが供給され、抵抗Ｒ３４の他端はアイソレータ８２を介して伝送路９１に接続されている。伝送路９１は、アイソレータ８２と抵抗Ｒ３４を介して高電位電圧ＶＤｓにプルアップされている。制御回路６１は、アイソレータの出力端子に接続されている。スレーブユニット２２，２３は、スレーブユニット２１と同様に、伝送路９１、アイソレータ８２、抵抗Ｒ３４を備えている。
【０１３９】
マスタユニット２０とスレーブユニット２１は、図１３（ａ）に示す接続ケーブル３４により接続される。同様に、スレーブユニット２１とスレーブユニット２２、スレーブユニット２２とスレーブユニット２３は、図１３（ａ）に示す接続ケーブル３４により接続される。この場合、各スレーブユニット２１，２２，２３において、伝送路９１はプルアップされている。したがって、マスタユニット２０は、端子Ｐ２がＨレベルであるため、図１３（ａ）に示す接続ケーブル３４により、各ユニット２０，２１，２２，２３が接続されていると判定する。そして、マスタユニット２０は、その判定結果に基づいて、伝送速度（伝送レート）を第１の設定値に設定する。各スレーブユニット２１〜２３の制御回路６１は、たとえば、Ｈレベルの信号を入力する。制御回路６１はＨレベルの信号に基づいて、ユニット間の接続に、図１３（ａ）に示す接続ケーブル３４が用いられていると判定する。
【０１４０】
図１２（ｂ）に示すように、スレーブユニット２１とスレーブユニット２１とを、図１３（ｂ）に示す接続ケーブル３５により接続する。この場合、スレーブユニット２１の伝送路９１は、接続ケーブル３５を介してスレーブユニット２２の端子Ｐ１に接続され、この端子Ｐ１はグランドＧＮＤに接続されている。したがって、マスタユニット２０の端子Ｐ２は、Ｌレベルとなる。マスタユニット２０は、端子Ｐ２がＬレベルであるため、ユニット間の接続に図１３（ｂ）に示す接続ケーブル３５が用いられていると判定する。そして、マスタユニット２０は、その判定結果に基づいて、伝送速度（伝送レート）を、第１の設定値より遅い第２の設定値に設定する。スレーブユニット２１の制御回路６１は、Ｌレベルの信号を入力し、ユニット間の接続に図１３（ｂ）に示す接続ケーブル３５が用いられていると判定する。
【０１４１】
同様に、スレーブユニット２２の伝送路９１は、接続ケーブル３５を介してスレーブユニット２１の端子Ｐ４１に接続され、この端子Ｐ４１はグランドＧＮＤに接続されている。したがって、スレーブユニット２２，２３の制御回路６１は、ユニット間の接続に図１３（ｂ）に示す接続ケーブル３５が用いられていると判定する。
【０１４２】
このように、マスタユニット２０は、端子Ｐ２のレベルに基づいて、接続ケーブルの種類（長さ）を判定する。そして、マスタユニット２０は、接続ケーブルの種類（長さ）に応じて伝送レートを変更することにより、信号を確実に伝送することが可能となる。
【０１４３】
以上記述したように、本実施形態によれば、以下の効果を奏する。
（１）プログラマブルコントローラ１は、複数のユニットブロック２ａ，２ｂ，２ｃ，２ｄを備えている。
【０１４４】
第１のユニットブロック２ａは、ＣＰＵユニット（制御ユニット）１０と、複数のＩ／Ｏユニット（周辺ユニット）１１と、エンドユニット（終端ユニット）１２とを備えている。第１のユニットブロック２ａは、第２のユニットブロック２ｂを接続するための増設ユニット２１を備えている。
【０１４５】
第２のユニットブロック２ｂは、増設ユニット２１と、複数のＩ／Ｏユニット１１と、エンドユニット１２とから構成されている。第３のユニットブロック２ｃは、増設ユニット２２と、複数のＩ／Ｏユニット１１と、エンドユニット１２とから構成されている。第４のユニットブロック２ｄは、増設ユニット２３と、複数のＩ／Ｏユニット１１と、エンドユニット１２とから構成されている。
【０１４６】
増設ユニット（マスタユニット）２０は接続ケーブル３１を介して増設ユニット（スレーブユニット）２１に接続される。増設ユニット２１は接続ケーブル３２を介して増設ユニット（スレーブユニット）２２に接続され、増設ユニット２２は接続ケーブル３３を介して増設ユニット（スレーブユニット）２３に接続される。
【０１４７】
マスタユニット２０には、仕様により、接続可能な増設スレーブユニットの数が設定されている。この接続数はたとえば「３」である。つまり、マスタユニット２０は、１〜３台の増設スレーブユニットをＣＰＵユニット１０に接続する。増設ユニットにはＩ／Ｏユニット１１が連結される。したがって、スレーブユニット２１〜２３は、ＣＰＵユニット１０に対するＩ／Ｏユニット１１の接続数を、ＣＰＵユニット１０単体の場合より多くする。このように、増設ユニット２０〜２３を用いることにより、ＣＰＵユニット１０により制御可能なＩ／Ｏユニット１１を容易に増設することができる。
【０１４８】
（２）第１のユニットブロック２ａは接続ケーブル３１を介して第２のユニットブロック２ｂに接続されている。第２のユニットブロック２ｂは接続ケーブル３２を介して第３のユニットブロック２ｃに接続され、第３のユニットブロック２ｃは接続ケーブル３３を介して第４のユニットブロック２ｄに接続されている。したがって、このプログラマブルコントローラ１は、接続ケーブル３１〜３３によって各ユニットブロック２ａ〜２ｄを分散して配置することができる。
【０１４９】
（３）マスタユニット２０は、データリード時、データライト時に、アドレス信号Ａを受け取ると、Ｌレベルのレディ信号ＲＤＹ−Ｍを出力する。ＣＰＵユニット１０は、Ｌレベルのレディ信号ＲＤＹ−Ｍに基づいて、待機状態（Ｗａｉｔ）となる。したがって、マスタユニット２０とスレーブユニット２１〜２３により構成される増設バスＥＢＵにおいて信号を伝送するとき、スレーブユニット２１〜２３に接続されたＩ／Ｏユニット１１の処理に対して、ＣＰＵユニット１０の動作や、ＣＰＵユニット１０に直接的に接続されたＩ／Ｏユニット１１の動作の同期を容易に保つことができる。
【０１５０】
（４）マスタユニット２０の制御回路４１は、アドレス信号、リード信号ＲＤ、ライト信号ＷＲと、増設ユニット間の通信情報（通信速度等）を含む３２ビットのデータを、４個のブロックデータに分解する。そして、制御回路４１は、４個のブロックデータＣＰ，ＡＰ１〜ＡＰ３を順次出力する。また、データライト時に、制御回路４１は、データ信号を２個のブロックデータに分解し、ブロックデータＤＰ０，ＤＰ１を順次出力する。このように、アドレス信号Ａ，データ信号Ｄ、制御信号等を、所定ビット数のブロックデータに分割してスレーブユニット２１〜２３に送信することで、接続ケーブル３１〜３３の芯数よりビット数が多いデータを容易に伝送することができる。
【０１５１】
（５）マスタユニット２０の送受信回路４３は、８ビットの複合バスＥＡＤに対して、差動信号を出力する出力回路と、差動信号を入力する入力回路を含む。送受信回路４３は、制御回路４１から供給されるブロックデータに応じた８組の差動信号ＣＡＤ［７：０］を出力する。また、送受信回路４３は、８組の差動信号ＣＡＤ［７：０］に応じたブロックデータを制御回路４１に出力する。差動信号を用いることで、接続ケーブル３１〜３３を用いた増設ユニット２０〜２３の信号伝達における耐ノイズ性を向上することができる。
【０１５２】
（６）マスタユニット２０の送信回路５１は、リセット信号ＲＥＳＥＴの振幅を大きくしたリセット信号ＲＳＴを接続ケーブル３１に対して出力する。スレーブユニット２１の受信回路７１は、コンパレータ７２、抵抗Ｒ２６ａ，Ｒ２６ｂを備えている。コンパレータ７２は、リセット信号ＲＳＴと、高電位電圧ＶＤｓを抵抗Ｒ２６ａ，Ｒ２６ｂにより分圧した電圧の基準電圧Ｖｒ２とを比較し、比較結果に応じたリセット信号ＲＥＳＥＴを出力する。これにより、電圧変動や、伝送路（接続ケーブル）における電圧降下、伝送路に混入するノイズに対する誤動作を抑制することができる。
【０１５３】
（７）終端判定信号に基づいて自ユニットが末端と判定したスレーブユニットのスレーブ制御回路は、マスタクロック信号ＭＣＬＫを受信する受信回路６４ｂの入力端子を終端抵抗Ｒ２４により終端する。これにより、マスタユニット２０に接続するスレーブユニットの数を容易に変更し、ユニットにより制御するユニットの数を容易に変更することができる。また、信号の反射によるノイズの発生を低減し、誤動作を防止することができる。
【０１５４】
（８）スレーブ制御回路は、末端と判定した場合に、差動のスレーブオペレーション信号ＳＯＰを送信する送信回路６５の出力端子を終端抵抗Ｒ２５により終端する。マスタユニット２０の制御回路は、スレーブオペレーション信号ＳＯＰに基づいて、スレーブユニット２１〜２３から送信されるブロックデータをラッチしてデータ信号を生成する。このため、終端抵抗Ｒ２５により信号の反射によるノイズの発生を低減し、誤動作を防止することができる。
【０１５５】
（９）マスタユニット２０は、Ｌレベルの起動完了信号ＰＳ１に基づいて、接続されたスレーブユニット２１〜２３のうちに、電源が起動されていないユニットが存在すると判定し、待機状態となる。この待機状態において、マスタユニット２０はたとえば電源起動のエラーを報知する。たとえば、図１において、マスタユニット２０は、前面上部に表示部２０ｃを備えている。表示部２０ｃは、たとえば、液晶表示装置（ＬＣＤ）や発光素子（ＬＥＤ）等を備えている。マスタユニット２０は、表示部２０ｃに電源起動のエラーを表示する。表示部２０ｃの表示により、操作者（作業者）は、電源起動にエラーが発生していることを把握することができる。
【０１５６】
（１０）マスタユニット２０は、スレーブユニット２１〜２３をイニシャルモードに設定する。そして、マスタユニット２０は、３ビットの局番設定信号ＳＮ２，ＳＮ１，ＳＮ０を出力する。各スレーブユニット２１〜２３は、局番設定信号ＳＮ２，ＳＮ１，ＳＮ０に基づいて自ユニットの局番を設定する。したがって、設定ミスによる誤動作を防止することができる。
【０１５７】
（１１）マスタユニット２０において、接続ケーブルが接続されるコネクタ２０ｂの端子Ｐ１，Ｐ２におけるレベルは、ストレートケーブルが接続されている場合と、クロスケーブルが接続されている場合で異なる。つまり、マスタユニット２０は、端子Ｐ１，Ｐ２のレベルにより、使用されている接続ケーブルの種類を判定する。クロスケーブルは、ストレートケーブルより長い。マスタユニット２０は、接続ケーブルの種類（長さ）に応じて伝送レートを変更する。これにより、信号を確実に伝送することができる。
【０１５８】
（別例）
尚、上記実施形態は、以下の態様で実施してもよい。
・上記実施形態に対し、４台以上のスレーブユニットを接続可能とするように変更してもよい。
【０１５９】
・上記実施形態に対し、各スレーブユニット２１〜２３に対して接続可能なＩ／Ｏユニット１１の数を変更してもよい。
・上記実施形態に対し、接続ケーブル３１〜３３の芯数を適宜変更してもよい。
【０１６０】
・上記実施形態に対し、ＣＰＵユニット１０により制御可能なユニットとして、演算ユニットや通信ユニットを周辺ユニットとして接続するようにしてもよい。
次に、上記実施形態及び別例から把握できる技術的思想を以下に記載する。
【０１６１】
（イ）制御ユニットと第１の周辺ユニットとマスタユニットとを含む基本ブロックと、
スレーブユニットと第２の周辺ユニットとを含む複数の増設ブロックと、
を備え、
前記マスタユニットと複数の前記増設ブロックの前記スレーブユニットは、複数の接続ケーブルにより直列に接続され、
前記マスタユニットは、前記スレーブユニットに差動のクロック信号を送信し、
前記スレーブユニットは、前記接続ケーブルが接続される前記マスタユニット側の第１コネクタと、前記マスタユニットと逆側の第２コネクタと、前記クロック信号を受信する受信回路と、前記マスタユニットからの受信信号に基づいて生成した制御信号を前記第２の周辺ユニットに出力するスレーブ制御回路とを有し、
前記第１コネクタの第１の端子は第１抵抗によりプルダウンされ、
前記スレーブ制御回路は、前記第２コネクタにおいて、前記第１コネクタの第１の端子に対応する第２の端子のレベルにより自ユニットが末端か否かを判定し、末端と判定した場合に、前記受信回路の入力端子を終端抵抗により終端すること、
を特徴とするプログラマブルコントローラ。
【符号の説明】
【０１６２】
１…プログラマブルコントローラ、２ａ…ユニットブロック（基本ブロック）、２ｂ〜２ｄ…ユニットブロック（増設ブロック）、１０…ＣＰＵユニット（制御ユニット）、１１…Ｉ／Ｏユニット（周辺ユニット）、２０…増設ユニット（マスタユニット）、２１〜２３…増設ユニット（スレーブユニット）、４１…マスタ制御回路、４３…送受信回路（第１送信回路）、５１…送信回路（第２送信回路）、６１…スレーブ制御回路、６３…送受信回路（第１受信回路）、６４ｂ…受信回路（第３受信回路）、６５…送信回路、７１…受信回路（第２受信回路）、ＣＰ…ブロックデータ、ＡＰ１〜ＡＰ３…ブロックデータ、ＤＰ０．ＤＰ１…ブロックデータ、Ａ…アドレス信号、Ｄ…データ信号。
【図１】
0006482800.tif 000002
【図２】
0006482800.tif 000003
【図３】
0006482800.tif 000004
【図４】
0006482800.tif 000005
【図５】
0006482800.tif 000006
【図６】
0006482800.tif 000007
【図７】
0006482800.tif 000008
【図８】
0006482800.tif 000009
【図９】
0006482800.tif 000010
【図１０】
0006482800.tif 000011
【図１１】
0006482800.tif 000012
【図１２】
0006482800.tif 000013
【図１３】
0006482800.tif 000014