(57)【特許請求の範囲】
【請求項１】
ＦＡ用のコントローラや、リモートターミナルなどのＩ／Ｏ機器を接続可能なＩ／Ｏシステムであって、
前記Ｉ／Ｏ機器を接続するためのＩ／Ｏ部と、
そのＩ／Ｏ部と通信するマスタ機能部と、
フィールドバスによる拡張ネットワークを接続する拡張機能部と、を有し、
前記Ｉ／Ｏシステム内の内部バスと前記フィールドバスとは、同じ通信プロトコルとし、
前記拡張機能部は、内部バス用の物理層と、フィールドバス用の物理層と、それら両物理層間の変換を行なう変換部と、を備えた
ことを特徴とするＩ／Ｏシステム。
【請求項２】
前記Ｉ／Ｏシステムは、複数のユニットを連結して構成されるビルディングブロックタイプのものであり、
前記拡張機能部は、拡張ユニットとして実現されることを特徴とする請求項１に記載のＩ／Ｏシステム。
【請求項３】
前記Ｉ／Ｏシステムは、リモートターミナルであって、
上位の通信回線に接続するための通信ユニットを備えたことを特徴とする請求項２に記載のＩ／Ｏシステム。
【請求項４】
前記マスタ機能部は、隣接する前記Ｉ／Ｏ部に対して、初期値のアドレスを設定する機能を持ち、
前記Ｉ／Ｏ部は、自己に設定されたアドレスに１加算した値を次のＩ／Ｏ部に対するアドレスとして通知する機能と、自己が最終と判断した場合に前記マスタ機能部に対してアドレス設定が完了したことを伝える機能を備えた
ことを特徴とする請求項１から３のいずれか１項に記載のＩ／Ｏシステム。
【請求項５】
前記拡張機能部には、前記フィールドバスに接続されるＩ／Ｏスレーブの数を設定するスイッチを備え、
前記マスタ機能部は、前記スイッチで設定されたＩ／Ｏスレーブの数を取得し、その取得した数に基づき前記Ｉ／Ｏ部に対する初期値のアドレスを決定し、その決定した初期値のアドレスを隣接するＩ／Ｏ部に設定する機能を持ち、
前記Ｉ／Ｏ部は、自己に設定されたアドレスに１加算した値を次のＩ／Ｏ部に対するアドレスとして通知する機能を備えた
ことを特徴とする請求項１から３のいずれか１項に記載のＩ／Ｏシステム。
【発明の詳細な説明】
【技術分野】
【０００１】
この発明は、リモートターミナルやＰＬＣ等のＩ／Ｏ機器を接続可能なＩ／Ｏシステムに関するものである。
【背景技術】
【０００２】
ＦＡ（Ｆａｃｔｏｒｙ  Ａｕｔｏｍａｔｉｏｎ）におけるネットワークシステムは、生産設備内の入力機器及び出力機器の制御を司る１または複数のＰＬＣ（Programmable Logic Controller）と、そのＰＬＣにより動作が制御される機器とが、制御系のネットワークに接続される。それらＰＬＣと機器は、その制御系のネットワークを介してサイクリックに通信を行なうことで、ＩＮデータ及びＯＵＴデータ（以下Ｉ／Ｏデータという）の送受を行ない、生産設備を制御する。
【０００３】
ＰＬＣは、制御プログラムに基づいて演算実行するＣＰＵユニット、センサやスイッチなどの入力機器を接続してそれらのオン・オフ信号を入力信号として取り込む入力ユニット、アクチュエータやリレーなどの出力機器を接続してそれらに対して出力信号を送り出す出力ユニット、ネットワークに接続された他の装置とデータの送受を行なう通信ユニット、マスタスレーブ通信をするためのマスタユニット、各ユニットに電源を供給する電源ユニット、などの複数のユニットを組み合わせることにより構成されている。これらのユニットは、内部バスにより電気的に接続され、その内部バスを介して所定のユニット間でデータの送受を行なう。この内部バスは、通常、多数の信号線を用いたパラレルＩ／Ｏバスが用いられ、高速にデータの送受を行えるようにしている。
【０００４】
また、ＦＡにおけるネットワークシステムでは、入力機器や出力機器等のＩ／Ｏ機器は、制御対象の装置の付近に配置する必要から、ＰＬＣとＩ／Ｏ機器との設置位置は、互いに離れた位置となることが多々ある。この場合に、図１に示すように、ＰＬＣ１とＩ／Ｏ機器２との接続形態は、ＰＬＣ１に接続されたフィールドバス３に、個々のＩ／Ｏ機器２をそれぞれ接続したり、当該フィールドバス３に接続されたリモートターミナル（“リモートＩ／Ｏ”，“Ｉ／Ｏターミナル”等と称されることもある）５に１または複数のＩ／Ｏ機器２を接続したりするようになっている。Ｉ／Ｏ機器２を個々に接続する場合、通常、ＰＬＣ１との間で通信を行なうスレーブ４を介してフィールドバス３に接続される。
【０００５】
ＰＬＣ１とそれらリモートターミナル５やスレーブ４との接続は、シリアル回線を用いる。このように、ＰＬＣ１と、リモートターミナル５等との間を、シリアル回線（シリアルＩ／Ｏバス）にて接続することで、接続距離を長くすることができるようにしたシステムは、たとえば、特許文献１等に開示されている。
【０００６】
なお、特許文献１においても示されているとおり、ＰＬＣの内部バスで用いられる多数の信号線を用いたパラレルＩ／Ｏバスは、短距離だけ延長することはあるが、リモートターミナルのようにＰＬＣから長距離離れた箇所に設置する場合には用いることはできなかった。
【０００７】
また、リモートターミナルのように拡張部分が長距離になる場合、上述したように、信号線の少ないシリアルＩ／Ｏバスに対応した通信プロトコルを採用する。そのため、ＰＬＣには、内部バス（パラレルＩ／Ｏバス）を伝送されるデータを、シリアルデータに変換してシリアルＩ／Ｏバスを経由してリモートターミナルへ送信し、これに応答してリモートターミナルから送信されてくるシリアルデータを受信し、パラレルＩ／Ｏバス上に復元する拡張ユニットを設ける。
【０００８】
同様に、リモートターミナルにも、ＰＬＣから送られてくる上記のシリアルデータを受信し、リモートターミナル側の内部バス（パラレルＩ／Ｏバス）上に復元すると共に、リモートターミナル側のデータをリアルデータに変換してＰＬＣ側へ送信する機能を実装する。
【特許文献１】特開平７−２８１７１９号公報
【発明の開示】
【発明が解決しようとする課題】
【０００９】
上述した従来のシステムでは、ＰＬＣとリモートターミナルとの間で、Ｉ／Ｏデータの送信や受信といったＩ／Ｏ通信を行なう場合、ＰＬＣやリモートターミナルにおいて、パラレル−シリアル変換等のデータ変換が必要となり、その内部変換処理時間によってＩ／Ｏ通信に遅延が生じ、高速にＩ／Ｏデータを送信する必要がある用途には対応できなかった。
【００１０】
また、生産設備においては、複数のＩ／Ｏ機器の集合により、１つの機能が実現される。ここで、１つの機能とは、例えば、搬送装置，検査装置，各種の組み立て装置のように製品の製造に寄与するものや、自動倉庫等の製品・部品の保管を管理するものなど各種のものがある。そして、例えば同じ自動倉庫が複数台設置されているというように、同一の機能のものが、複数個存在する場合もある。
【００１１】
そして、図１に示すように、ＦＡのネットワークシステムでは、Ｉ／Ｏ機器２をフィールドバス３に接続したり、フィールドバス３に接続されたリモートターミナル５に接続したりすることから、複数の機能単位を構成するＩ／Ｏ機器２，リモートターミナル５が同一ネットワーク（フィールドバス５）上に混在する状態となり、機能単位でのまとまった敷設ができない。
【００１２】
さらに、図１から明らかなように、ＰＬＣ１に対して、リモートターミナル５と、単体のＩ／Ｏ機器２（スレーブ４）とが、同一のフィールドバス３に接続されることから、フィールドバス５の通信プロトコルは、ユーザが生産設備にて個々のＩ／Ｏ機器２を接続するために使用するものに規定されてしまう。
【００１３】
本発明は、フィールドバスを介して接続された拡張ネットワークのＩ／Ｏスレーブとの間でも高速に通信することができるＩ／Ｏシステムを提供することにある。
【課題を解決するための手段】
【００１４】
上記の目的を達成するため、本発明に係るＩ／Ｏシステムは、（１）ＦＡ用のコントローラや、リモートターミナルなどのＩ／Ｏ機器を接続可能なＩ／Ｏシステムであって、Ｉ／Ｏ機器を接続するためのＩ／Ｏ部と、そのＩ／Ｏ部と通信するマスタ機能部と、フィールドバスによる拡張ネットワークを接続する拡張機能部を有し、Ｉ／Ｏシステム内の内部バスとフィールドバスとは、同じ通信プロトコルとし、拡張機能部は、内部バス用の物理層と、フィールドバス用の物理層と、それら両物理層間の変換を行なう変換部と、を備えて構成した。
【００１５】
Ｉ／Ｏ部は、実施形態ではＩ／Ｏユニット２２，１０ｃ等に対応する。マスタ機能部は、実施形態では通信ユニット２１やＣＰＵユニット１０ｂ等に対応する。拡張機能部は、実施形態では、拡張ユニット２３，１０ｅ等に対応する。本発明は、拡張部分のフィールドバスとＩ／Ｏシステムの内部バスにおける物理層より上（データリンク層以上）のプロトコルを同一のものとしたので、拡張機能部にて物理層の違いを変換するだけで、Ｉ／Ｏシステム（マスタ機能部）は、フィールドバスに接続された外部のＩ／Ｏスレーブと通信が行なえる。よって、拡張ユニットは、外部との通信のための内部処理が不要となり、Ｉ／Ｏシステム（マスタ機能部）は、Ｉ／Ｏ部と同じ１サイクルで、拡張ネットワーク側の処理（Ｉ／Ｏスレーブとの間でのデータ送受）を行うことができる。拡張ネットワーク側は、フィールドバスであるので、信号線が少なく長距離伝送ができる。Ｉ／Ｏシステムが、リモートターミナルの場合、１つの機能単位を構成するＩ／Ｏ機器を、リモートターミナルのＩ／Ｏ部（Ｉ／Ｏユニット）や、拡張機能部に接続されたフィールドバスに接続されたＩ／Ｏスレーブに接続することで、機能単位でのブロック化が可能となる。よって、リモートターミナルと、ＰＬＣを接続する上位のネットワークは、フィールドバスの通信プロトコルの制約を受けないので、それぞれを自由に設計することができる。
【００１６】
（２）Ｉ／Ｏシステムは、複数のユニットを連結して構成されるビルディングブロックタイプのものであり、拡張機能部は、拡張ユニットとして実現されるようにするとよい。もちろん、本発明は、１つの筐体の内部に必要な機能を組み込んだ一体型のもので実現しても良い。
【００１７】
（３）上記（２）の発明を前提とし、Ｉ／Ｏシステムは、リモートターミナルであって、上位の通信回線に接続するための通信ユニットを備えるとよい。このようにすると、上位の通信回線の通信プロトコルが相違する場合、その通信プロトコルに適する通信ユニットに交換するだけで対応できる。つまり、リモートターミナルを構成するＩ／Ｏユニットや拡張ユニット、さらには、拡張ユニットに接続される拡張ネットワーク側のシステム構成は、上位の通信プロトコルに依存せず、どのような通信回線であっても、共通のものを使用でき、通信ユニットよりも下位側の修正は不要となる。
【００１８】
（４）マスタ機能部は、隣接する前記Ｉ／Ｏ部に対して、初期値のアドレスを設定する機能を持ち、Ｉ／Ｏ部は、自己に設定されたアドレスに１加算した値を次のＩ／Ｏ部に対するアドレスとして通知する機能と、自己が最終と判断した場合にマスタ機能部に対してアドレス設定が完了したことを伝える機能を備えるとよい。
【００１９】
（５）拡張機能部には、フィールドバスに接続されるＩ／Ｏスレーブの数を設定するスイッチを備え、マスタ機能部は、スイッチで設定されたＩ／Ｏスレーブの数を取得し、その取得した数に基づき前記Ｉ／Ｏ部に対する初期値のアドレスを決定し、その決定した初期値のアドレスを隣接するＩ／Ｏ部に設定する機能を持ち、Ｉ／Ｏ部は、自己に設定されたアドレスに１加算した値を次のＩ／Ｏ部に対するアドレスとして通知する機能を備えるようにすることもできる。
【００２０】
（４），（５）の発明によれば、Ｉ／Ｏ部に対して簡単に、かつ相互に重複することなくアドレスの設定を行なうことができる。さらに、本発明では、Ｉ／Ｏシステムを構成するＩ／Ｏ部と、外部の拡張ネットワークを構成するＩ／Ｏスレーブとが、同じネットワーク上に存在することになるが、（５）の発明によれば、それらＩ／Ｏ部とＩ／Ｏスレーブとの間でのアドレスの重複の発生を防止できる。また、（４）の発明でも、Ｉ／Ｏスレーブの使用するアドレスの範囲を予め設定しておくことで、Ｉ／Ｏ部とＩ／Ｏスレーブとの間でのアドレスの重複の発生を防止できる。
【発明の効果】
【００２１】
本発明では、拡張機能部にて物理層の変換を行なうだけでフィールドバスに接続された外部のＩ／Ｏスレーブと通信が行なえるので、高速にデータ通信が行なえ、内部のＩ／Ｏ部の通信と同様に1サイクルでの通信が可能となる。
【発明を実施するための最良の形態】
【００２２】
図２は、本発明の好適な一実施形態のリモートターミナルを用いて構成されるＦＡにおけるネットワークシステムの一例を示している。図２に示すように、この例では、ＰＬＣ１０と、リモートターミナル２０とが、第１フィールドバス１１を介して接続される。このリモートターミナル２０には、１または複数のＩ／Ｏ機器１４が接続される。さらに、このリモートターミナル２０には、第２フィールドバス１２が接続される。第２フィールドバス１２には、Ｉ／Ｏスレーブ１３が接続され、そのＩ／Ｏスレーブ１３にＩ／Ｏ機器１４が接続される。また、第２フィールドバス１２の先端には、終端装置１５が接続されている。
【００２３】
リモートターミナル２０を基準として、第１フィールドバス１１は、上位の通信ラインとなり、第２フィールドバス１２は、下位の通信ラインとなる。また、ＰＬＣ１０を基準とした場合、第２フィールドバス１２は、第１フィールドバス１１からリモートターミナル２０を介して拡張した通信ラインとなり、その第２フィールドバス１２側が、拡張ネットワークとなる。
【００２４】
第１フィールドバス１１と第２フィールドバス１２の通信プロトコルは、同じでも良いし、異ならせてもよい。これにより、第２フィールドバス１２の通信プロトコルは、ユーザが生産設備にて個々のＩ／Ｏ機器１４を接続するために使用するものとなるが、第１フィールドバス１１の通信プロトコルは、それと異ならせることができるので、ネットワークの設計に自由度が高くなると共に、第２フィールドバス１２の通信プロトコルが確定される前に、第１フィールドバス１１を含む上位のネットワークの設計を行なうことができる。なお、フィールドバスの通信プロトコルは、たとえば、ＣＯＭＰＯＮＥＴ（コンポネット），イーサネット（登録商標），ＤＥＶＩＣＥＮＥＴ（デバイスネット：登録商標），ＰＲＯＦＩＮＥＴ（プロフィネット）など各種のものを用いることかできる。本実施形態では、第２フィールドバス１２の通信プロトコルは、ＣＯＭＰＯＮＥＴ（コンポネット）を用いている。
【００２５】
図３，図４に示すように、リモートターミナル２０は、複数のユニットを連結して構成されるビルディングブロックタイプのＩ／Ｏシステムであり、１つの通信ユニット２１と、１または複数のＩ／Ｏユニット２２と、１つの拡張ユニット２３と、を備えている。このビルディングブロックタイプのリモートターミナル２０は、たとえば、特開２００７−６６０８５公報に開示されたリモートターミナル装置の技術を利用して実現することができるし、その他各種の構成のものを用いることができる。ビルディングブックタイプであるため、各ユニットは、それぞれ個々の筐体内に必要な回路等が組み込まれて、側面に設けられた信号線や電源線などを接続するためのコネクタ同士を連結することで、一体化される。なお、この公報に開示されたリモートターミナル装置は、通信ユニットとＩ／Ｏユニットの組み合わせから構成されているが、適宜位置に、後述する機能を備えた拡張ユニット２３を連結することで、本実施形態のリモートターミナル２０が実現できる。
【００２６】
各ユニット２１，２２，２３は、内部バス２５により接続され、その内部バス２５を経由してＩ／Ｏデータ等の送受を行なう。この内部バス２５は、従来のリモートターミナルでは信号線の多いパラレルＩ／Ｏバスを用いて構成しているが、本実施形態では、信号線の少ないシリアルＩ／Ｏバスを用いて実現している。そして、その内部バス２５における通信プロトルコは、リモートターミナル２０に接続された拡張部分の第２フィールドバス１２と同じものとした。すなわち、よく知られているように、ＯＳＩ（Open Systems Interconnection）の参照モデルでは、通信機器の持つべき通信機能を７階層に分けている。この７つの層は、上位層から順に、“アプリケーション層”，“プレゼンテーション層”，“セッション層”，“トランスポート層”，“ネットワーク層”，“データリンク層”，“物理層”となっている。そして、本実施形態では、拡張部分の第２フィールドバス１２と内部バス２５のデータリンク層以上のプロトコルを同一のものとした。換言すると、データを通信回線に送出するための電気的な変換や機械的な作業を受け持つ物理層（第１層）のみ、それぞれの特性に合わせるべく異ならせた。これにより、リモートターミナル２０は、物理層の違いを変換するだけで、拡張部分のネットワークである第２フィールドバス１２に接続されたＩ／Ｏスレーブ１３（Ｉ／Ｏ機器１４）との間でＩ／Ｏデータの送受を行なえる。よって、物理層の変換だけで良く、従来のように内部処理が不要となるので、高速なデータ転送が行なえ、リモートターミナル２０内のＩ／Ｏユニット２２と同じ１サイクルで、拡張ネットワーク側の処理を行うことができる。
【００２７】
通信ユニット２１は、第１フィールドバス１１を経由して上位の装置（ＰＬＣ１０等）から送られてくる入出力情報（Ｉ／Ｏデータ）や、メッセージを、Ｉ／Ｏユニット２２に向けて変換を施して伝達したり、その逆の処理を行なったりする。Ｉ／Ｏユニット２２は、通信ユニット２１からの入出力情報やメッセージに基づき動作する。拡張ユニット２３は、リモートターミナル２０の内部バス２５用の物理層であるターミナル物理層とＣｏｍｐｏＮｅｔに対応するＣｏｍｐｏＮｅｔ物理層とを変換する。また、拡張ユニット２３は、波形整形等のリピータ機能も備えている。なお、各ユニットには、ノードアドレスを設定する必要があるが、このノードアドレスは、アドレス設定線２６により通信ユニット２１から自動で割り振られる。このアドレス割付けの具体的な処理機能は、後述する。
【００２８】
図４に示すように、通信ユニット２１は、上位通信ラインである第１フィールドバス１１と通信を行なう上位通信制御部２１′と、リモートターミナル２０内の制御を行なうターミナル制御部２１″と、を備える。これら上位通信制御部２１′と、ターミナル制御部２１″とは、互いにデータの送受を行ない、第１フィールドバス１１経由で取得したデータを、所定のＩ／Ｏユニット２２に転送したり、リモートターミナル２０が持つＩ／Ｏデータを第１フィールドバス１１側へ送信したりする。
【００２９】
この通信ユニット２１の具体的な構成は、図５に示すようになっている。つまり、上位通信制御部２１′は、上位通信制御回路２１ａと、上位通信制御用ＭＰＵ２１ｂと、ＭＡＣＩＤ設定スイッチ２１ｃと、ＬＥＤ２１ｄと、を備える。ターミナル制御部２１″は、ターミナル制御用ＭＰＵ２１ｆと、ＦＲＯＭ（フラッシュＲＯＭ）２１ｇと、ＳＲＡＭ（スタティックＲＡＭ）２１ｈと、ＬＥＤ２１ｉと、ＣｏｍｐｏＮｅｔマスタ用ＡＳＩＣ２１ｊと、ターミナル物理層２１ｋと、を備える。上位通信制御用ＭＰＵ２１ｂと、ターミナル制御用ＭＰＵ２１ｆは、ともに同じデュアルポートＲＡＭ２１ｅにアクセス可能としている。これにより、このデュアルポートＲＡＭ２１ｅを介して上位通信制御用ＭＰＵ２１ｂと、ターミナル制御用ＭＰＵ２１ｆとが、データ転送を行なう。
【００３０】
上位通信制御回路２１ａは、第１フィールドバス１１の通信プロトコルに適応する通信インターフェースでもあり、第１フィールドバス１１上を伝送される自己宛のフレームを取得し、必要なデータを上位通信制御用ＭＰＵ２１ｂに渡したり、上位通信制御用ＭＰＵ２１ｂから受け取ったデータに宛先等のヘッダを付加するなどの処理を行なって送信フレームを作成後、所定のタイミングでその送信フレームを第１フィールドバス１１に向けて送信したりする機能を備える。上位通信制御回路２１ａは、実際のデータの送受信を受け持ち、上記のヘッダ部に対する処理は、上位通信制御用ＭＰＵ２１ｂが受け持つようにしても良い。上位通信制御用ＭＰＵ２１ｂは、上位通信制御回路２１ａから転送されてきたフレーム内のデータ（メッセージやＩ／Ｏデータ）を認識し、リモートターミナル内部に転送すべく必要な処理を行ないデュアルポートＲＡＭ２１ｅ内の所定領域にデータを書き込む。また、上位通信制御用ＭＰＵ２１ｂは、デュアルポートＲＡＭ２１ｅ内に格納された所定のデータを読み出し、上位通信制御回路２１ａに渡す処理等を実行する。ＭＡＣＩＤ設定スイッチ２１ｃは、上位側の通信ライン（第１フィールドバス１１）のためのリモートターミナル２０のＭＡＣＩＤを設定するためのスイッチであり、ディップスイッチやロータリースイッチなどで構成される。ＬＥＤ２１ｄは、動作状態を通知するための光報知手段である。これらの上位通信制御部２１′を構成する各処理部等は、基本的に従来のものと同様の構成で実現できる。
【００３１】
ターミナル制御用ＭＰＵ２１ｆは、上位から送られてきてデュアルポートＲＡＭ２１ｅに格納されたメッセージやＩ／Ｏデータを読み出し、Ｉ／Ｏユニット２２や、第２フィールドバス１２に接続されたＩ／Ｏスレーブ１３等に転送したり、それらＩ／Ｏユニット２２やＩ／Ｏスレーブ１３等のリモートターミナル２０が管理するＩ／Ｏデータを上位側に送信すべく、デュアルポートＲＡＭ２１ｅに書き込んだりする処理等を行なう。さらに、Ｉ／Ｏユニット２２は、アドレスを設定するためのスイッチを備えていないので、ターミナル制御用ＭＰＵ２１ｆは、Ｉ／Ｏユニット２２に対してアドレス設定を行なう機能も持つ。ＦＲＯＭ２１ｇは、ターミナル制御用ＭＰＵ２１ｆが上記の処理を実行するための設定データや、異常履歴データ等のデータを記憶保持する。ＳＲＡＭ２１ｈは、ターミナル制御用ＭＰＵ２１ｆか演算実行中に用いるワークエリア等に利用される。ＬＥＤ２１ｉは、動作状態を通知するための光報知手段である。これらも、基本的には、従来のものと同様の構成で実現できる。
【００３２】
また、ターミナル制御用ＭＰＵ２１ｆは、自己が管理するＩ／Ｏユニット２２等との間でマスタ−スレーブ通信方式にてデータの送受を行なう。そこで、通信ユニット２１は、係る通信を行なうためのマスタ用のＡＳＩＣを用意し、ターミナル制御用ＭＰＵ２１ｆは、当該ＡＳＩＣを介して所定のＩ／Ｏユニット２２との間で通信を行なう。ここで、本実施形態では、内部バス２５における通信プロトルコを、第２フィールドバス１２と同じＣｏｍｐｏＮｅｔを採用したため、上記のマスタ用のＡＳＩＣもＣｏｍｐｏＮｅｔに対応するＣｏｍｐｏＮｅｔマスタ用ＡＳＩＣ２１ｊにて構成する。このＣｏｍｐｏＮｅｔマスタ用ＡＳＩＣ２１ｊは、ターミナル制御用ＭＰＵ２１ｆから送られてきた送信データをＣｏｍｐｏＮｅｔ用に符号化し、復号化したデータをターミナル物理層２１ｋに渡したり、ターミナル物理層２１ｋを介して取得した受信データ中の不要なデータを削除したり、その他必要な処理を実行して復号化してターミナル制御用ＭＰＵ２１ｆに受信データを渡す。ターミナル物理層２１ｋは、内部バス２５に接続され、ＣｏｍｐｏＮｅｔマスタ用ＡＳＩＣ２１ｊから受け取った送信データを内部バス２５に出力したり、内部バス２５を転送されてくる受信データを取得し、その受信データをＣｏｍｐｏＮｅｔマスタ用ＡＳＩＣ２１ｊに渡す機能を持つ。これらのターミナル制御部２１″を構成する各処理部等は、基本的に従来のものと同様に実現でき、異なる点は、リモートターミナル２０の内部バス２５の通信プロトコルが、パラレル通信ではなく、シリアル通信（本実施形態では、ＣｏｍｐｏＮｅｔ）としたため、その通信プロトコルに対応するために物理層やマスタＡＳＩＣを変更する点である。但し、内部バス２５に用いられる通信プロトコルは、第２フィールドバス側では既存の通信プロトコルとして存在していたものであるので、当該通信プロトコルに対応するためのマスタＡＳＩＣ（ＣｏｍｐｏＮｅｔマスタ用ＡＳＩＣ）等も既存のものを流用したり、それを基本として一部変更したりすることで対応できる。
【００３３】
図６に示すように、リモートターミナル２０のＩ／Ｏユニット２２は、制御用ＭＰＵ２２ａと、ＣｏｍｐｏＮｅｔスレーブ用ＡＳＩＣ２２ｂと、ターミナル物理層２２ｃと、ＬＥＤ２２ｄと、Ｉ／Ｏ駆動回路２２ｅと、を備えている。制御用ＭＰＵ２２ａには、アドレス設定線２６が２本接続されている。図４に示すように、この２本のアドレス設定線６は、それぞれ隣接するユニットに接続される。これにより、隣接するＩ／Ｏユニット２２の制御用ＭＰＵ２２ａは、アドレス設定線６により順次接続された構造を採り、各Ｉ／Ｏユニット２２の上位側（通信ユニット２１側）のアドレス設定線２６が、自己宛のアドレスを受信するためのラインであり、下位側のアドレス設定線２６は、次のＩ／Ｏユニットへ設定するアドレスを送信するためのラインである。
【００３４】
ターミナル物理層２２ｃは、内部バス２５に接続され、マスタとなる通信ユニット２１との間でＩ／Ｏデータや各種メッセージ等の送受を行なう。ＣｏｍｐｏＮｅｔスレーブ用ＡＳＩＣ２２ｂは、ターミナル物理層２２ｃを介してマスタスレーブ間通信をし、Ｉ／Ｏデータの送受を行なったり、所定のコマンドの受信並びにそれに基づくレスポンスの送信を行なったりする。制御用ＭＰＵ２２ａは、ＣｏｍｐｏＮｅｔスレーブ用ＡＳＩＣ２２ｂを介して取得したメッセージを受けて、所定の処理を実行し、レポンスを生成・返信したり、接続されたＩ／Ｏ機器に対する制御命令等を発したり、アドレスの設定処理をするなどの各種の制御を実行する。
【００３５】
Ｉ／Ｏ駆動回路２２ｅは、入力機器や出力機器等の外部のＩ／Ｏ機器と接続しＩ／Ｏデータの送受を行なう。Ｉ／Ｏ機器が、ＯＮ／ＯＦＦの２値を採るものであるため、Ｉ／Ｏ機器が出力機器の場合には、Ｉ／Ｏ駆動回路２２ｅは、制御用ＭＰＵ２２ａからの指示に従い、出力機器の動作のＯＮ／ＯＦＦを制御する。また、Ｉ／Ｏ機器が入力機器の場合には、Ｉ／Ｏ駆動回路２２ｅは、そのＩ／Ｏ機器の状態を制御ＭＰＵ２２ａに伝える機能を持つ。電気回路に開閉スイッチを設け、その開閉スイッチを開閉することにより、出力機器の動作を制御するようにすることもできる。ＬＥＤ２２ｄは、Ｉ／Ｏユニット２２の動作状態（通信状態）や異常／正常などを示すものである。
【００３６】
図７に示すように、拡張ユニット２３は、制御用ＭＰＵ２３ａと、ＣｏｍｐｏＮｅｔスレーブ用ＡＳＩＣ２３ｂと、ターミナル物理層２３ｃと、ＬＥＤ２３ｄと、ディップスイッチ２３ｅと、ＣｏｍｐｏＮｅｔ物理層２３ｆと、を備えている。ターミナル物理層２３ｃは、Ｉ／Ｏユニット２２に実装されたターミナル物理層２２ｃと同様に、内部バス２５に接続され、その内部バス２５に対する通信を行なう。ＣｏｍｐｏＮｅｔ物理層２３ｆは、第２フィールドバス１２に接続され、その第２フィールドバス１２に対する通信を行なう。これら両物理層２３ｃ，２３ｆの間に、ＣｏｍｐｏＮｅｔスレーブ用ＡＳＩＣ２３ｂが実装される。このＣｏｍｐｏＮｅｔスレーブ用ＡＳＩＣ２３ｂは、Ｉ／Ｏユニット２２におけるＣｏｍｐｏＮｅｔスレーブ用ＡＳＩＣ２２ｂと同様に、通信ユニット２１のＣｏｍｐｏＮｅｔマスタ用ＡＳＩＣ２１ｉに対するスレーブとして機能を備えると共に、ターミナル物理層２３ｃと、ＣｏｍｐｏＮｅｔ物理層２３ｆとの間における物理層の相違に伴う変換処理を行なう機能を備える。さらに、ＣｏｍｐｏＮｅｔスレーブ用ＡＳＩＣ２３ｂは、物理層の変換を行なう際に、波形整形を行なうといった、リピータ機能も備えている。
【００３７】
ただし、上述したように、内部バス２５と第２フィールドバス１２の通信プロトコルは、物理層のみ相違し、それより上位の層は同じにしたので、物理層レベルの変換を行なうだけで、通信ユニット２１から内部バス２５経由で送られてきた送信データは、ヘッダ情報中に含まれる送信先に従い、所定のＩ／Ｏスレーブ１３に向けて送信することができ、また、第２フィールドバス１２上を送られてきたＩ／Ｏスレーブ１３からのデータは、内部バス２５経由で通信ユニット２１（ＣｏｍｐｏＮｅｔマスタ用ＡＳＩＣ２１ｊ）へ送ることができる。つまり、ＣｏｍｐｏＮｅｔマスタ用ＡＳＩＣ２１ｊ（ターミナル制御用ＭＰＵ２１ｆ）は、Ｉ／Ｏユニット２２とＩ／Ｏスレーブ１３に対して、ともに同じように扱う（マスタ−スレーブ通信を行なう）ことができる。
【００３８】
ディップスイッチ２３ｅは、拡張ネットワークに接続されたスレーブ（ノード）の数を設定する。制御用ＭＰＵ２３ａは、通信ユニット２１に対するスレーブとしての所定の処理（レスポンスの返信等）を実行する。本実施形態との関係でいうと、通信ユニットからの拡張ネットワークにおけるスレーブの数の通知要求に対し、ディップスイッチ２３ｅで設定されている数を認識し、それをレスポンスとして返す機能を備える。
【００３９】
ＬＥＤ２３ｄは、他のユニットと同様に、拡張ユニット２３の動作状態（通信状態）や異常／正常などを示すものである。また、拡張ユニット２３のアドレスは、固定値（たとえば、＃６４）としている。この固定値は、たとえば、接続可能な最大ノード数に対応する値（最大のアドレス番号）にするとよい。
【００４０】
図８に示すように、拡張ネットワークを構成する第２フィールドバス１２に接続されるＩ／Ｏスレーブ１３は、制御用ＭＰＵ１３ａと、ＣｏｍｐｏＮｅｔスレーブ用ＡＳＩＣ１３ｂと、ＣｏｍｐｏＮｅｔ物理層１３ｃと、ＬＥＤ１３ｄと、ＭＡＣＩＤ設定スイッチ１３ｅと、Ｉ／Ｏ駆動回路１３ｆと、を備えている。
【００４１】
ＣｏｍｐｏＮｅｔ物理層１３ｃは、第２フィールドバス１２に接続され、マスタとなる通信ユニット２１との間でＩ／Ｏデータや各種メッセージ等の送受を行なう。ＣｏｍｐｏＮｅｔスレーブ用ＡＳＩＣ１３ｂは、ＣｏｍｐｏＮｅｔ物理層１３ｃを介してマスタスレーブ間通信をし、Ｉ／Ｏデータの送受を行なったり、所定のコマンドの受信並びにそれに基づくレスポンスの送信を行なったりする。制御用ＭＰＵ１３ａは、ＣｏｍｐｏＮｅｔスレーブ用ＡＳＩＣ１３ｂを介して取得したメッセージを受けて、所定の処理を実行し、レポンスを生成・返信したり、接続されたＩ／Ｏ機器に対する制御命令等を発したりする。Ｉ／Ｏ駆動回路１３ｆは、入力機器や出力機器等の外部のＩ／Ｏ機器と接続しＩ／Ｏデータの送受を行なう。この点は、Ｉ／ＯユニットのＩ／Ｏ駆動回路２２ｅと同様である。
【００４２】
ＬＥＤ１３ｄは、Ｉ／Ｏスレーブ１３の動作状態（通信状態）や異常／正常などを示すものである。さらに、ＭＡＣＩＤ設定スイッチ１３ｅは、拡張側の通信ライン（第２フィールドバス１２）のためのＭＡＣＩＤを設定するためのスイッチであり、ディップスイッチやロータリースイッチなどで構成される。Ｉ／Ｏユニット２２とＩ／Ｏスレーブ１３は、同じ通信プロトコルを用い、通信ユニット２１から見た場合に同じ通信ライン上に設置されるノードとなるので、Ｉ／Ｏユニット２２とＩ／Ｏスレーブ１３との間においてもアドレス（ＭＡＣＩＤ）の重複を避ける必要がある。そこで、本実施形態では、システム起動時に、以下に示すルール・アルゴリズムに従い、アドレスの設定を行なうようにした。
【００４３】
図９に示すように、通信ユニット２１，Ｉ／Ｏユニット２２の制御用ＭＰＵ２１ｆにおける送信側のアドレス設定線２６の接続部位Ｔｘを、電源電圧ラインに接続する。そして、拡張ユニット２３側では、アドレス設定線２６をアースに落としている。これにより、通信ユニット２１並びにＩ／Ｏユニット２２のアドレス設定線の接続端子（ポート）ＴｘはＨｉｇｈとなり、拡張ユニット２３の制御用ＭＰＵ２３ａの接続端子（ポート）ＴｘはＬｏｗとなる。
【００４４】
図９は、通信ユニット２１が、拡張ユニット２３から収集した情報に基づいて、Ｉ／Ｏユニット２２に対してアドレスを設定する例を示している。まず、前提として、ユーザは、各Ｉ／Ｏスレーブ１３に対し、ＭＡＣＩＤ設定スイッチ１３ｅを操作し、アドレスを設定するとともに、Ｉ／Ｏスレーブ１３の数を拡張ユニット２３のディップスイッチ２３ｅにて設定する。Ｉ／Ｏスレーブ１３のアドレスは、＃１から順番に昇順するように設定する（図４参照）。これにより、Ｉ／Ｏスレーブ１３の最大アドレスは、Ｉ／Ｏスレーブ１３の数となる。なお、図４では、終端装置１５側からＩ／Ｏスレーブ１３の並んだ順にアドレスを昇順するように設定しているが、Ｉ／Ｏスレーブ１３の並び順と、アドレスの昇順する順番（設定順）は異なっていても良い。
【００４５】
通信ユニット２１は、拡張ユニット２３のディップスイッチ２３ｅで設定されている拡張ネットワークのＩ／Ｏスレーブ１３のスレーブ接続数ｎを、メッセージで読み込む。これにより、通信ユニット２１は、取得したスレーブ接続数ｎだけオフセットして、Ｉ／Ｏユニット２２に設定する最初のアドレスを決定する。上述したように、本実施形態では、Ｉ／Ｏスレーブ１３のアドレスの最大値は、ｎとなっており、ｎ以下の数値はＩ／Ｏスレーブ１３のアドレスとして使用されていることがわかるので、Ｉ／Ｏユニット２２のアドレスは、ｎより大きい数値を用いると、Ｉ／Ｏスレーブ１３とＩ／Ｏユニット２２との間でのアドレスドレスの重複は生じない。そこで、通信ユニット２１（ターミナル制御用ＭＰＵ２１ｆ）は、ｎだけオフセットし、“ｎ＋１”をＩ／Ｏユニット２２の初期アドレス（最小値）とする。図４に示す例では、Ｉ／Ｏスレーブ１３は４個存在しているので、１番目のＩ／Ｏユニット２２のアドレスは、“＃５”となる。
【００４６】
次いで、通信ユニット２１（ターミナル制御用ＭＰＵ２１ｆ）は、Ａ−Ｓｅｔフレームを使って、隣接するＩ／Ｏユニット２２のアドレスを設定する。つまり、通信ユニット２１のターミナル制御用ＭＰＵ２１ｆは、Ａ−Ｓｅｔ  ＴｘをＲｅａｄし、Ｈｉｇｈ（Ｐｕｌｌ  Ｕｐ）であればＡ−Ｓｅｔ  Ｔｘポートを出力に切り替え、１つ目のＩ／Ｏユニット２２に対して決定した初期値のノードアドレス（＃（ｎ＋１））のデータを送信する。
【００４７】
このターミナル制御用ＭＰＵ２１ｆから出力されたアドレス（＃（ｎ＋１））は、ターミナル制御用ＭＰＵ２１ｆとアドレス設定線２６が接続された隣接するＩ／Ｏユニット２２の制御用ＭＰＵ２２ａに伝えられる。すなわち、係るＩ／Ｏユニット２２の制御用ＭＰＵ２２ａは、Ａ−Ｓｅｔ信号をＡ−Ｓｅｔ  Ｒｘで受け取るので、受け取ったアドレス（＃（ｎ＋１））を自己のアドレスとして記憶する。つまり、制御用ＭＰＵ２２ａは、ＣｏｍｐｏＮｅｔスレーブ用ＡＳＩＣに対してレジスタを通じてノードアドレスを設定する。
【００４８】
次いで、アドレスを受け取ったＩ／Ｏユニット２２の制御用ＭＰＵ２２ａは、Ａ−Ｓｅｔ  ＴｘをＲｅａｄしてＨｉｇｈであれば、Ａ−Ｓｅｔ  Ｔｘポートを出力に切り替え次のユニット（隣接する下位側のＩ／Ｏユニット）に対して「自アドレス＋１」のデータを送信する。これにより、２番目のＩ／Ｏユニット２２のアドレスは、“＃（ｎ＋２）”となる。上記の処理を繰り返すことで、Ｉ／Ｏユニット２２には、通信ユニット２１側から順に１つずつ昇順するアドレスが設定される。
【００４９】
そして、拡張ユニット２３の制御用ＭＰＵ２３ａは、自己に連結されている最終のＩ／Ｏユニット２２からＡ−Ｓｅｔ信号をＡ−Ｓｅｔ  Ｒｘで受け取ると、通信ユニット２１に対しアドレス設定が完了したことを通知する。
【００５０】
この完了通知を受けた通信ユニット２１（ターミナル制御用ＭＰＵ２１ｆ）は、Ｉ／Ｏユニット２２を加入させるとともに、２３拡張ユニットのリピート動作を許可する。更に、通信ユニット２１（ターミナル制御用ＭＰＵ２１ｆ）は、拡張ネットワークに接続される各Ｉ／Ｏスレーブを加入させる。よって、各Ｉ／Ｏユニット２２並びにＩ／Ｏスレーブ１３には、重複することなくアドレスが設定されるため、以後、そのアドレスを用いてマスタ−スレーブ通信が可能となる。
【００５１】
図１０は、通信ユニット２１が、拡張ユニットからの情報を得ることなく、各Ｉ／Ｏユニット２２に対してアドレスを設定する例を示している。図１０に示すように、通信ユニット２１，Ｉ／Ｏユニット２２の制御用ＭＰＵ２１ｆにおける送信側のアドレス設定線２６の接続部位Ｔｘを、電源電圧ラインに接続する。そして、拡張ユニット２３側では、アドレス設定線２６をアースに落としている。これにより、通信ユニット２１並びに拡張ユニット２３に直接連結されていないＩ／Ｏユニット２２のアドレス設定線２６の接続端子（ポート）ＴｘはＨｉｇｈとなり、拡張ユニット２３に接続されたＩ／Ｏユニット２２のアドレス設定線２６の接続端子（ポート）ＴｘはＬｏｗとなる。
【００５２】
そして、前提として、拡張ネットワークを構成する第２フィールドバス１２に接続されるＩ／Ｏスレーブ１３に設定するアドレス領域を決めておく。例えば、アドレスの最大値を＃Ｎとした場合、拡張ユニットのアドレスを＃Ｎとし、Ｉ／Ｏスレーブ１３のアドレスは、＃（Ｎ−ｍ）から＃（Ｎ−１）とする。これにより、Ｉ／Ｏユニット２２のアドレスは、＃０から順に設定しておくと、＃（Ｎ−ｍ−１）までは、各Ｉ／Ｏユニット２２並びにＩ／Ｏスレーブ１３には、重複することなくアドレスが設定される。
【００５３】
まず、通信ユニット２１のターミナル制御用ＭＰＵ２１ｆは、Ａ−Ｓｅｔフレームを使って、隣接するＩ／Ｏユニット２２のアドレスを設定する。つまり、通信ユニット２１のターミナル制御用ＭＰＵ２１ｆは、Ａ−Ｓｅｔ  ＴｘをＲｅａｄし、Ｈｉｇｈ（Ｐｕｌｌ  Ｕｐ）であればＡ−Ｓｅｔ  Ｔｘポートを出力に切り替え、１つ目のＩ／Ｏユニット２２に対して初期値のノードアドレス（＃０）のデータを送信する。
【００５４】
このターミナル制御用ＭＰＵ２１ｆから出力されたアドレス（＃０）は、ターミナル制御用ＭＰＵ２１ｆとアドレス設定線２６が接続された隣接するＩ／Ｏユニット２２の制御用ＭＰＵ２２ａに伝えられる。すなわち、係るＩ／Ｏユニット２２の制御用ＭＰＵ２２ａは、Ａ−Ｓｅｔ信号をＡ−Ｓｅｔ  Ｒｘで受け取るので、受け取ったアドレス（＃０）を自己のアドレスとして記憶する。
【００５５】
次いで、アドレスを受け取ったＩ／Ｏユニット２２の制御用ＭＰＵ２２ａは、Ａ−Ｓｅｔ  ＴｘをＲｅａｄしてＨｉｇｈであれば、Ａ−Ｓｅｔ  Ｔｘポートを出力に切り替え次のユニット（隣接する下位側のＩ／Ｏユニット）に対して「自アドレス＋１」のデータを送信する。これにより、２番目のＩ／Ｏユニット２２のアドレスは、“＃１”となる。上記の処理を繰り返すことで、Ｉ／Ｏユニット２２には、通信ユニット２１側から順に１つずつ昇順するアドレスが設定される。
【００５６】
拡張ユニット２３に接続された最終のＩ／Ｏユニット２２（制御用ＭＰＵ２２ａ）は、Ａ−Ｓｅｔ  ＴｘをＲｅａｄするとＬｏｗとなるので、自局をＥＮＤ局に設定する。ＥＮＤ局は、通信ユニット２１に対してアドレス設定が完了したことを伝える。この完了通知を受けた通信ユニット２１（ターミナル制御用ＭＰＵ２１ｆ）は、Ｉ／Ｏユニット２２を加入させる。よって、各Ｉ／Ｏユニット２２並びにＩ／Ｏスレーブ１３には、重複することなくアドレスが設定されるため、以後、そのアドレスを用いてマスタ−スレーブ通信が可能となる。
【００５７】
上述した実施形態は、Ｉ／Ｏシステムとしてビルディングタイプのリモートターミナルに適用した例を説明したが、本発明はこれに限ることはなく、一体型のリモートターミナルにおいて、拡張ユニットの機能を組み込むようにしてもよい。さらには、リモートターミナルに限ることはなく、例えば図１１に示すように、Ｉ／ＯシステムとしてＰＬＣ１０に適用することもできる。すなわち、例えば、ビルディングタイプのＰＬＣ１０は、電源ユニット１０ａ，ＣＰＵユニット１０ｂ，Ｉ／Ｏユニット１０ｃ，通信ユニット１０ｄ等を備えて構成される。このＰＬＣ１０に、拡張ユニット１０ｅを連結する。これら各ユニットは、シリアルＩ／Ｏバスからなる内部バス１０ｆにて連結される。また、この拡張ユニット１０ｅは、第３フィールドバス１６が接続され、この第３フィールドバス１６には、１または複数のＩ／Ｏスレーブ１３が接続される。
【００５８】
内部バス１０ｆと第３フィールドバス１６の通信プロトコルは、物理層よりも上位層で同じにする。そして、ＣＰＵユニット１０ｂとＩ／Ｏユニット１０ｃと、拡張ユニット１０ｅが、上記の実施形態における通信ユニット２１，Ｉ／Ｏユニット２２，拡張ユニット２３と同様の機能を組み込む。これにより、Ｉ／Ｏスレーブ１３は、ＰＬＣ（ＣＰＵユニット）の１サイクルでＩ／Ｏデータの読み書きを行なうことができる。
【００５９】
もちろん、ＰＬＣにおいても、ビルディングブロックタイプに限ることはなく、一体型のものにも適用することができるのはもちろんである。
【図面の簡単な説明】
【００６０】
【図１】従来例を示す図である。
【図２】本発明の好適な一実施形態を示す図である。
【図３】本発明の好適な一実施形態を示す図である。
【図４】本発明の好適な一実施形態を示す図である。
【図５】通信ユニットの内部構成を示す図である。
【図６】Ｉ／Ｏユニットの内部構成を示す図である。
【図７】拡張ユニットの内部構成を示す図である。
【図８】Ｉ／Ｏスレーブの内部構成を示す図である。
【図９】アドレス設定のアルゴリズムを説明する図である。
【図１０】アドレス設定のアルゴリズムを説明する図である。
【図１１】本発明の別の実施形態を示す図である。
【符号の説明】
【００６１】
１０  ＰＬＣ
１１  第１フィールドバス
１２  第２フィールドバス
１３  Ｉ／Ｏスレーブ
１４  Ｉ／Ｏ機器
１６  第３フィールドバス
２０  リモートターミナル（Ｉ／Ｏシステム）
２１  通信ユニット
２１″  ターミナル制御部（マスタ機能部）
２２  Ｉ／Ｏユニット
２３  拡張ユニット
２３ｂ  ＡＳＩＣ
２３ｃ  ターミナル物理層（内部バス用の物理層）
２３ｆ  ＣｏｍｐｏＮｅｔ物理層（フィールドバス用の物理層）
２５  内部バス
【図１】
0005029906.tif 000002
【図２】
0005029906.tif 000003
【図３】
0005029906.tif 000004
【図４】
0005029906.tif 000005
【図５】
0005029906.tif 000006
【図６】
0005029906.tif 000007
【図７】
0005029906.tif 000008
【図８】
0005029906.tif 000009
【図９】
0005029906.tif 000010
【図１０】
0005029906.tif 000011
【図１１】
0005029906.tif 000012