(57)【要約】【課題】  ネットワークシステムの種類に依存しないネットワークシステム二重化を実現するプログラマブルコントローラを提供すること【解決手段】  ＣＰＵユニット１２と、別系統の伝送路３０，３１に接続される第１通信ユニット１３，第２通信ユニット１４を備え、第１，第２通信ユニットは、それぞれ第１，第２伝送路３０，３１に接続されたノードの加入状態を収集する。ＣＰＵユニットは、メッセージ送信をするに際し、まず第１通信ユニットに依頼する。第１通信ユニットは、メッセージの送信依頼を受けると、第１伝送路に接続されるネットワークの加入状態に基づき送信先のノードに対して送信可能か否かを判断し、送信可能であればそのまま送信し、送信不可であれば、第２通信ユニットで送信すべくＣＰＵユニットに依頼する。ＣＰＵユニットは、その依頼に基づき第２通信ユニットに送信依頼をし、第２通信ユニットは第２伝送路のノード加入状態から送信可能な場合に当該メッセージを送信する。【選択図】        図１
2005094505.tif 000002
【特許請求の範囲】
【請求項１】
ＣＰＵユニットと、別系統のネットワークに接続されるプライマリ通信ユニットおよびセカンダリ通信ユニットを備えたプログラマブルコントローラであって、
前記プライマリ通信ユニットは、自己が接続される前記ネットワークに接続されたノードの加入状態を収集する機能を有し、
前記ＣＰＵユニットは、前記プライマリ通信ユニット，前記セカンダリ通信ユニットに対して通信コマンドの送信依頼を発行するに際し、前記プライマリ通信ユニットを優先するようにし、
前記プライマリ通信ユニットは、前記ＣＰＵユニットから通信コマンドの送信依頼を受けた際に、そのプライマリ通信ユニットに接続されるネットワークの前記加入状態に基づき送信先のノードに対して送信可能か否かを判断し、送信可能であれば、前記通信コマンドを送信し、送信不可であれば、セカンダリ通信ユニットに通信コマンドの送信を依頼する機能を備えたことを特徴とするプログラマブルコントローラ。
【請求項２】
前記セカンダリ通信ユニットは、
自己が接続される前記ネットワークに接続されたノードの加入状態を収集する機能と、
前記ＣＰＵユニットから通信コマンドの送信依頼を受けた際に、そのセカンダリ通信ユニットに接続されるネットワークの前記加入状態に基づき送信先のノードに対して送信可能か否かを判断し、送信可能であれば、前記通信コマンドを送信し、送信不可であれば、所定のエラー処理を行う機能を備えたことを特徴とする請求項１に記載のプログラマブルコントローラ。
【請求項３】
前記セカンダリ通信ユニットは、前記セカンダリ通信ユニットに接続されたノードの加入状態を前記プライマリ通信ユニットに通知する機能を持ち、
前記プライマリ通信ユニットは、自己が接続されたネットワークの加入状態と、前記セカンダリ通信ユニットが接続されたネットワークの加入状態から、前記送信依頼を受けた通信コマンドを送信する際に利用するネットワークを決定する機能を備えたことを特徴とする請求項２に記載のプログラマブルコントローラ。
【請求項４】
前記ＣＰＵユニットは、前記プライマリ通信ユニットが正常に通信できる正常状態か否かについての情報をもち、
前記プライマリ通信ユニットが正常の場合には、前記プライマリ通信ユニットに対して通信コマンドの送信依頼を発行し、正常でない場合には前記セカンダリ通信ユニットに対して通信コマンドの送信依頼を発行するようにしたことを特徴とする請求項１〜３のいずれか１項に記載のプログラマブルコントローラ。
【請求項５】
ＣＰＵユニットと、別系統のネットワークに接続されるプライマリ通信ユニットおよびセカンダリ通信ユニットを備えたプログラマブルコントローラであって、
前記プライマリ通信ユニット並びに前記セカンダリ通信ユニットは、それぞれ接続される前記ネットワークに接続されたノードの加入状態を収集する機能を有し、
データリンクのためのデータ送信は、前記プライマリ通信ユニット並びに前記セカンダリ通信ユニットが、それぞれ一斉同報で前記ＣＰＵユニット内の同一のデータを送信し、
前記データリンクのためのデータ受信は、
（１）前記プライマリ通信ユニットが正常であれば、プライマリ通信ユニット側で受信したデータをＣＰＵユニットに渡し、
（２）プライマリ通信ユニットが通信不可の場合は、セカンダリ通信ユニット側で受信したデータすべてを前記ＣＰＵユニットに渡すように構成したことを特徴とするプログラマブルコントローラ。
【請求項６】
前記プライマリ通信ユニット並びに前記セカンダリ通信ユニットに接続された各ネットワークの加入状態から、前記プライマリ側で非加入状態で前記セカンダリ側で加入状態の他ノードの受信データについては、前記セカンダリ通信ユニットで受信した前記他ノードの受信データをＣＰＵユニットに渡すように構成したことを特徴とする請求項５に記載のプログラマブルコントローラ。
【請求項７】
請求項１〜６に記載の複数のプログラマブルコントローラと、
別系統の２つのネットワークを有し、
前記プログラマブルコントローラの前記プライマリ通信ユニットと、前記セカンダリ通信ユニットは、前記別系統の２つのネットワークに対して、別々に接続されたことを特徴とする二重化ネットワークシステム。
【請求項８】
前記複数のプログラマブルコントローラの前記プライマリ通信ユニットは、前記別系統の２つのネットワークのうち一方の系統のネットワークに接続され、
前記複数のプログラマブルコントローラの前記セカンダリ通信ユニットは、前記別系統の２つのネットワークのうち他方のネットワークに接続されたことを特徴とする請求項７に記載の二重化ネットワークシステム。
【請求項９】
二重化非対応のプログラマブルコントローラその他の機器は、前記プライマリ通信ユニットが接続された前記一方の系統のネットワークに接続されることを特徴とする請求項８に記載の二重化ネットワークシステム。
【発明の詳細な説明】
【技術分野】
【０００１】
この発明は、プログラマブルコントローラおよび二重化ネットワークシステムに関するもので、より具体的には、プログラマブルコントローラに接続されるネットワークの二重化方式に関するものである。
【背景技術】
【０００２】
生産工場（製造現場）に設置されるファクトリーオートメーション（ＦＡ）の制御装置として、プログラマブルコントローラ（ＰＬＣ）が用いられている。このＰＬＣは、複数のユニットから構成される。すなわち、電源供給源の電源ユニット，ＰＬＣ全体の制御を統率するＣＰＵユニット，ＦＡの生産装置や設備装置の適所に取り付けたスイッチやセンサの信号を入力する入力ユニット，アクチュエータなどに制御出力を出す出力ユニット，通信ネットワークに接続するための通信ユニットなどの各種のユニットを適宜組み合わせて構成される。
【０００３】
ＰＬＣのＣＰＵユニットにおける制御は、入力ユニットで入力した信号をＣＰＵユニットのＩ／Ｏメモリに取り込み（ＩＮリフレッシュ）、予め登録されたユーザプログラム記述言語（例えばラダー言語）で組まれたユーザプログラムに基づき論理演算をし（演算実行）、その演算実行結果をＩ／Ｏメモリに書き込んで出力ユニットに送り出し（ＯＵＴリフレッシュ）、その後、通信ユニットを介して通信ネットワーク上の他のＰＬＣとデータ送受信を行ったり、ＣＰＵユニットに備えられた通信ポートを介して外部の機器とデータ送受信などを行ったりする（周辺処理）ことをサイクリックに繰り返し処理するようになる。なお、ＩＮリフレッシュとＯＵＴリフレッシュと一括して行なう（Ｉ／Ｏリフレッシュ）場合もある。
【０００４】
ところで、システムの安全性，信頼性を向上するため、ネットワークシステムの二重化を図ることがある。このネットワークシステムの二重化の一例としては、例えば特許文献１に開示された発明がある。この発明は、光ケーブルをリング状に配線した伝送路二重化リング型伝送システムを構成している。これにより、そのリング状の伝送路に接続したＰＬＣ等のノードは、たとえ、伝送路の一箇所が断線したとしても、伝送路を介して各ノード同士が接続された状態を保持できるので、断線による通信途絶を防ぐことができる。これにより、ネットワークの信頼性が向上する。
【特許文献１】特開２００１−１５６８１８号公報
【発明の開示】
【発明が解決しようとする課題】
【０００５】
ＰＬＣは、上記ネットワークに対して通信ユニット（ネットワークユニット）を介して接続され、その通信ユニットを介して他のＰＬＣその他のノードとデータ交換（情報の送受）を行うようになっている。従って、上記した従来の伝送路二重化リング型伝送路システムにより、伝送路断線時の通信途絶を防ぐことは可能であるものの、通信ユニット自体が異常を起こした場合には、係る異常を起こした通信ユニットを介してネットワークに加入しているノード（ＰＬＣ）は通信ができなくなってしまうと言う問題を有している。
【０００６】
また、光ケーブルをリング状に配線させたネットワーク構成を前提としているため、係るネットワーク構成以外には適用できない。すなわち、現在一般に使用されているワイヤケーブルを用いたネットワークや、バス状配線を使用したネットワークでは二重化できないという問題も有する。さらに、光ケーブルを使用するため、ケーブルのコストがワイヤケーブルよりも大きくなる。さらにまた、光ケーブルのリング状配線においても、２箇所以上の断線が発生した場合、ネットワークが分断されてしまい、通信が継続できなくなる。
【０００７】
この発明は、1つの通信ユニットが故障しても通信を継続することができるとともに、ネットワークシステムの種類に依存しないネットワークシステム二重化を実現することができるプログラマブルコントローラおよび二重化ネットワークシステムを提供することを目的とする。
【課題を解決するための手段】
【０００８】
本発明に係るプログラマブルコントローラは、ＣＰＵユニットと、別系統のネットワークに接続されるプライマリ通信ユニットおよびセカンダリ通信ユニットを備えたプログラマブルコントローラであって、前記プライマリ通信ユニットは、自己が接続される前記ネットワークに接続されたノードの加入状態を収集する機能を有し、前記ＣＰＵユニットは、前記プライマリ通信ユニット，前記セカンダリ通信ユニットに対して通信コマンドの送信依頼を発行するに際し、前記プライマリ通信ユニットを優先するようにし、前記プライマリ通信ユニットは、前記ＣＰＵユニットから通信コマンドの送信依頼を受けた際に、そのプライマリ通信ユニットに接続されるネットワークの前記加入状態に基づき送信先のノードに対して送信可能か否かを判断し、送信可能であれば、前記通信コマンドを送信し、送信不可であれば、セカンダリ通信ユニットに通信コマンドの送信を依頼する機能を備えた。係るセカンダリ通信ユニットに対する依頼は、実施の形態ではＣＰＵユニットを介して行うようにしたが、プライマリ通信ユニットがセカンダリ通信ユニットに対して直接通知するようにしてもよい。
【０００９】
この発明では、各通信ユニットは、基本機能としてＣＰＵユニットから通信コマンドの送信依頼を受けると、その通信コマンドを指定された送信先に向けて送信するための処理を実行する機能を有する。そして、ＣＰＵユニットは、まずプライマリ通信ユニットに対して通信コマンドの送信依頼をすると、プライマリ通信ユニットは、自己が接続されるネットワークの加入状態からその通信コマンドの送信先が送信可能か否か（当該ネットワークに加入しているか否か等）を判断し、送信可能であれば送信することにより確実に送信先のノードへ通信コマンドを伝達することができる。また、送信先の通信ユニットの故障や、ネットワーク回線の切断その他の理由から、送信先が送信不可の状態の場合には、セカンダリ通信ユニットを用いて通信コマンドの送信を実行するようにする。これにより、その送信先がセカンダリ通信ユニットに接続されている場合には、当該送信先に対して通信コマンドを伝達可能となる。よって、ネットワークの二重化が構築できる。また、このネットワークは、リング状，バス状等任意の形態をとることができる。
【００１０】
さらに、前記セカンダリ通信ユニットは、自己が接続される前記ネットワークに接続されたノードの加入状態を収集する機能と、前記ＣＰＵユニットから通信コマンドの送信依頼を受けた際に、そのセカンダリ通信ユニットに接続されるネットワークの前記加入状態に基づき送信先のノードに対して送信可能か否かを判断し、送信可能であれば、前記通信コマンドを送信し、送信不可であれば、所定のエラー処理を行う機能を備えるとよい。
【００１１】
係る構成によれば、セカンダリ通信ユニット側でも送信前に送信先の加入状態をサーチし、送信可能な場合のみ実際に送信し、送信不可であれば、送信処理を行なわず、所定のエラー処理を行なうことにより、無駄な送信処理や、送信後レスポンスを待つといった無駄な時間経過が不要となる。さらに送信依頼をしたＣＰＵユニットひいてはＣＰＵユニットに対して送信依頼をしたアプリケーション等に、迅速に送信先が未加入等で送信できないことを通知すること等ができる。
【００１２】
前記セカンダリ通信ユニットは、前記セカンダリ通信ユニットに接続されたノードの加入状態を前記プライマリ通信ユニットに通知する機能を持ち、前記プライマリ通信ユニットは、自己が接続されたネットワークの加入状態と、前記セカンダリ通信ユニットが接続されたネットワークの加入状態から、前記送信依頼を受けた通信コマンドを送信する際に利用するネットワークを決定する機能を備えるようにしてもよい。
【００１３】
このようにすると、プライマリ通信ユニット側でセカンダリ通信ユニットで送信が可能か否かの判断も行えるので、例えば自己に接続されたネットワークでは送信先に通信コマンドを送信できない場合に、セカンダリ通信ユニットで送信可能な場合のみセカンダリ通信ユニットで送信する旨の依頼をすればよく、無駄な依頼の要求がなくなる。
【００１４】
前記ＣＰＵユニットは、前記プライマリ通信ユニットが正常に通信できる正常状態か否かについての情報をもち、前記プライマリ通信ユニットが正常の場合には、前記プライマリ通信ユニットに対して通信コマンドの送信依頼を発行し、正常でない場合には前記セカンダリ通信ユニットに対して通信コマンドの送信依頼を発行するようにしてもよい。直、正常に通信できない状態とは、例えば、通信ユニットの異常や、オンライン交換により通信ユニットが取り外された場合などがある。
【００１５】
別の解決手段としては、ＣＰＵユニットと、別系統のネットワークに接続されるプライマリ通信ユニットおよびセカンダリ通信ユニットを備えたプログラマブルコントローラであって、前記プライマリ通信ユニット並びに前記セカンダリ通信ユニットは、それぞれ接続される前記ネットワークに接続されたノードの加入状態を収集する機能を有し、データリンクのためのデータ送信は、前記プライマリ通信ユニット並びに前記セカンダリ通信ユニットが、それぞれ一斉同報で前記ＣＰＵユニット内の同一のデータを送信し、前記データリンクのためのデータ受信は、
（１）前記プライマリ通信ユニットが正常であれば、プライマリ通信ユニット側で受信したデータをＣＰＵユニットに渡し、
（２）プライマリ通信ユニットが通信不可の場合は、セカンダリ通信ユニット側で受信したデータすべてを前記ＣＰＵユニットに渡すように構成することもできる。
【００１６】
前記プライマリ通信ユニット並びに前記セカンダリ通信ユニットに接続された各ネットワークの加入状態から、前記プライマリ側で非加入状態で前記セカンダリ側で加入状態の他ノードの受信データについては、前記セカンダリ通信ユニットで受信した前記他ノードの受信データをＣＰＵユニットに渡すように構成することもできる。
【００１７】
係る構成をとると、ネットワークに接続された他ノードの状態が不明でも、自己のデータは２つの通信ユニットを用い、別系統のネットワークを介してそれぞれ送信するため、データ送信に関してネットワーク二重化が図れ、データリンク処理を行なうに際し、自ノードのデータを他ノードに伝達する可能性が可及的に向上する。また、他ノードから送られてきたデータを受信した場合には、２つの通信ユニットの少なくても一方が受信できれば、その受信データをＣＰＵユニットに格納することができる。よって、データ受信についてもネットワークの二重化が図れる。
【００１８】
本発明に係るネットワークシステムでは、上記したプログラマブルコントローラを複数個と、別系統の２つのネットワークを有し、前記プログラマブルコントローラの前記プライマリ通信ユニットと、前記セカンダリ通信ユニットは、前記別系統の２つのネットワークに対して、別々に接続されるようにした。これにより、ネットワークの二重化が図れ、しかも、２つのネットワークの種別は任意のものとすることができる。
【００１９】
そして、前記複数のプログラマブルコントローラの前記プライマリ通信ユニットは、前記別系統の２つのネットワークのうち一方の系統のネットワークに接続され、前記複数のプログラマブルコントローラの前記セカンダリ通信ユニットは、前記別系統の２つのネットワークのうち他方のネットワークに接続されるようにした。係る場合に、二重化非対応のプログラマブルコントローラその他の機器は、前記プライマリ通信ユニットが接続された前記一方の系統のネットワークに接続されるようにするとよい。係る構成をとると、二重化非対応の機器と本発明に係る二重化対応したプログラマブルコントローラを混在させたネットワークシステムを構築することができる。
【発明の効果】
【００２０】
本発明では、リング状のネットワークでなくても、通信ユニットを含めたネットワークの二重化が可能になる。
【発明を実施するための最良の形態】
【００２１】
図１は、本発明に係るプログラマブルコントローラを用いて構築されるネットワークシステムの一例を示している。すなわち、本発明の一実施の形態であるプログラマブルコントローラ（ＰＬＣ）１０が、リング方式で配線された第１，第２伝送路（通信回線）３０，３１に接続された構成となっている。第１伝送路３０が主系統（プライマリネットワーク）であり、第２伝送路３１が副系統（セカンダリネットワーク）である。このように、２系統のネットワークで構成している。そして、図示の例では、リング方式で配線したが、バス型その他各種の形式をとることができる。さらに、使用するケーブルも、光ケーブル，ワイヤケーブルなど、各種のものを用いることができる。
【００２２】
ＰＬＣ１０は、複数のユニットから構成されている。本実施の形態では、ＰＬＣ１０を構成する各ユニットに対して電源供給をする電源ユニット１１と、ユーザプログラムを演算実行したり、Ｉ／Ｏリフレッシュや周辺処理をサイクリックに実行するＣＰＵユニット１２と、他のノードと通信を行う第１，第２通信ユニット１３，１４と、入出力機器を接続するＩ／Ｏユニット１５等がある。これらのユニットは、システムバスを介して接続される。もちろん、これらの他にもユニットは存在し、必要に応じて連結するユニットを増減する。
【００２３】
このように、本実施の形態のＰＬＣ１０は、通信ユニットを２台装着し、通信二重化された装置となる。そして、本実施の形態では、ネットワークに接続される全てのＰＬＣ１０の第１通信ユニット（プライマリ通信ユニット）１３を主系統である第１伝送路３０に接続し、第２通信ユニット（セカンダリ通信ユニット）１４を副系統である第２伝送路３１に接続するようにした。但し、本発明では、必ずしも係る構成をとる必要はなく、１つの伝送路上に、プライマリ通信ユニットたる第１通信ユニット１３とセカンダリ通信ユニットたる第２通信ユニット１４が混在しても良い。
【００２４】
そして、ＣＰＵユニット１２と第１，第２通信ユニット１３，１４は、各通信ユニットの状態並びに各ネットワーク（第１，第２伝送路３０，３１およびそれに接続された他ノード）の状態の情報を共有し、ＣＰＵユニットのユーザプログラム等のアプリケーションで使用する通信データの送信を、プライマリネットワークを使用するか、セカンダリネットワークを使用するかを判別するようにしている。なお、パソコン３５は、ＣＰＵユニット１２に対して通信二重化設定情報や、エラー状態を通知する機能をもつ。
【００２５】
次に、本発明の要部となるＣＰＵユニット１２並びに第１，第２通信ユニット１３，１４の内部構造に付いて、実際の動作・作用を説明しつつ、その構成を詳述する。図２に示すように、ＣＰＵユニット１２には、ユーザプログラムの実行や、Ｉ／Ｏリフレッシュ並びに周辺処理などを行うＭＰＵ１２ａと、ＩＯデータ等を格納するＩＯメモリ１２ｂとを備え、それらＭＰＵ１２ａ並びにＩＯメモリ１２ｂは、バスインタフェース１２ｃを介してシステムバス１０ａに接続され、そのシステムバス１０ａを介して他のユニットとデータの送受が行える。さらに、データリンクするために必要なメモリ割付情報などのパラメータからなるデータリンク設定を記憶保持するパラメータ記憶部１２ｄも備えている。なお、データリンクエリアはＩＯメモリ１２ｂ上の所定のエリアに設けられる。係るハードウェア構成は従来と同様であるので、その詳細な説明を省略する。
【００２６】
第１，第２通信ユニット１３，１４は、同一のハードウェア構成を採っている。具体的には、ネットワーク（第１，第２伝送路３０，３１）に接続し、通信の制御を司る通信部インタフェース１３ａ，１４ａと、各種の処理を実行するＭＰＵ１３ｂ，１４ｂと、メモリ１３ｃ，１４ｃと、システムバスに接続され、データの送受を行うインタフェースＡＳＩＣ１３ｄ，１４ｄを備えている。
【００２７】
メモリ１３ｃ，１４ｃには、通信部インタフェース１３ａ，１４ａを介して受信したメッセージを記憶するメッセージ受信メモリエリアと、ＣＰＵユニット１２からシステムバス１０ａを介して取得した送信メッセージを記憶するメッセージ送信メモリエリアと、データリンクするデータを一時的に格納するためのデータリンクメモリエリアと、インタフェースの制御情報を格納するエリアなどを備えている。
【００２８】
インタフェース制御情報エリアは、例えば、メモリ１３ｃ，１４ｃや、データ交換するＩＯメモリ１２ｂ内のメモリアドレスの割り付けデータなどがある。このインタフェース制御情報にしたがって、ＩＯメモリ１２ｂ中の自分用のデータが格納される領域などを知得できる。
【００２９】
ここで、ＭＰＵ１３ｂ，１４ｂの機能について説明する。まず、パソコン３５の設定ツールを操作することにより、ＣＰＵユニット１２の所定メモリエリアに存在する通信二重化設定フラグを有効とした場合、プライマリ通信ユニットである第１通信ユニット１３ｂ（ＭＰＵ１３ｂ）は、正常時においては通常の通信ユニットとしての動作（データリンク処理、メッセージ送受信処理）を行う。さらに、第１通信ユニット１３は、ＣＰＵユニット１２に対して自己の通信ステータス（異常の有無）を通知する機能と、第１伝送路３０に接続されたノードのネットワーク加入状態を示すネットワーク加入ステータスを収集して第１伝送路３０のネットワーク加入リストを作成するとともに、セカンダリ通信ユニットである第２通信ユニット１４へ収集結果（ネットワーク加入リスト）を通知する機能を有する。
【００３０】
一方、セカンダリ通信ユニットである第２通信ユニット１４は、メッセージ送受信処理は、プライマリとは別系統の第２伝送路３１に対して、通常の通信ユニットと同様の動作を行う。また、データリンク処理は、データ送信については、ＣＰＵユニット１２からデータを読み出し、ネットワーク中に一斉同報で通信するが、データ受信については、受信したデータを第２通信ユニット内で廃棄する。さらに、第２通信ユニット１４はＣＰＵユニット１２に対して自己の通信ステータス（異常の有無）を通知する機能と、第２伝送路３１に接続されたノードの根差とワーク加入状態を示すネットワーク加入ステータスを収集して第２伝送路３１のネットワーク加入リストを作成するとともに、プライマリ通信ユニットである第１通信ユニット１３へ収集結果（ネットワーク加入リスト）を通知する機能を有する。
次に、異常時の動作を説明する。まず、本実施の形態が対象とする異常は、
（１）通信ユニット自体の異常発生
（２）通信ユニットのオンライン交換発生（電源ＯＮの状態で通信ユニットが取り外される）
（３）ネットワークの異常発生（他ノード故障、ケーブル断線）
の３種類がある。なお、上記（１），（２）が発生した場合には、通信二重化異常としてユーザに通知され、（３）が発生した場合には、一般的な通信異常としてユーザに通知される。
【００３１】
そして、通信ユニットの異常は、通信ユニットのＷＤＴＵＰ（ウオッチドックタイマアップ）や、通信ユニット送信部の異常や、通信ユニットのハード異常などがある。これらは、バスインタフェース制御情報から認識される。
【００３２】
また、通信ユニットのオンライン交換は、保守点検や定期交換のために通信ユニットを交換する場合に発生する。通信ユニット（特に、プライマリ通信ユニットである第１通信ユニット１３）に対してオンライン交換を実行する場合、ユーザが設定ツール等を使用してオンライン脱着開始をＣＰＵユニット１２へ通知することによりＣＰＵユニット１２は、通信二重化状態を維持できない状態になることを認識する。そして、ＣＰＵユニット１２は、電源ＯＮ状態でのユニットの脱着時に発生するバス異常が通信ユニットの脱着時にはバス異常とならないように動作する。
【００３３】
そして、第１通信ユニット１３側で上記した通信ユニットの異常並びにオンライン交換発生に基づく異常が発生した場合、ＣＰＵユニット１２からプライマリネットワークで指定したメッセージ送受信は第２通信ユニット１４を経由して行われる。また、データリンク送受信は、完全に第２通信ユニット１４がデータ送受信を行うようになる。なお、本実施の形態では、第１通信ユニット１３並びに第１伝送路３０が正常であれば、データの送受を正しく行えるため、第２通信ユニット１４，第２伝送路３１側で異常が発生しても、データ送受並びにデータリングに関して特に切替等を行うことなく、第１通信ユニット１３，第１伝送路３０を用いてメッセージ送信やデータリンクを行うことになる。
【００３４】
そして、上記した処理を行なうためのＣＰＵユニット１２の具体的な処理アルゴリズムは、図３に示すフローチャートを実行する機能を有する。係る機能は、メッセージ送信処理についてのものである。
【００３５】
まず、アプリケーションからメッセージ送信の要求を受けると（ＳＴ１）、プライマリ通信ユニット（第１通信ユニット１３）に異常等があるか否かを判断する（ＳＴ２）。ここで、異常等とは、第１通信ユニット１３の異常とオンライン交換がある。ＣＰＵユニット１２は、第１通信ユニット１３から通信ステータスを受けているので、係る情報に基づき異常を生じているか否の判断を行なう。また、オンライン交換を行なう場合にも上記したごとく取り外す際にＣＰＵユニット１２は通知を受けるので、現在オンライン交換中であるか否かの判断ができる。
【００３６】
そして、異常等がない場合には、プライマリ通信ユニット（第１通信ユニット１３）からメッセージ送信を図るべく、第１通信ユニット１３に対して送信すべきメッセージを渡し、送信依頼をする。つまり、このステップ１から３までの処理は、第１通信ユニット１３が正常時におけるＣＰＵユニット１２の動作となる。
【００３７】
一方、第１通信ユニット１３が異常の場合には、ステップ４に飛び、セカンダリ通信ユニット（第２通信ユニット）が異常等（ユニット異常，オンライン交換中）か否かを判断し、異常なければ、第２通信ユニット１４を用いてメッセージ送信をすべく、メッセージを第２通信ユニット１４に渡す。第２通信ユニット１４は、正常であるため、ＣＰＵユニット１２から受け取ったメッセージを所定の送信先アドレスに向けてメッセージ送信を行なう。また、第２通信ユニット１４も異常等の場合には、通信処理ができないので、アプリケーションに対してエラー応答をする（ＳＴ６）。
【００３８】
一方、データリンク処理については、第１通信ユニット１３については、正常時は通常のデータリンク処理を行い、通信ユニットの故障やオンライン交換をする場合には、当然データ交換処理を行なうことができなくなるので、データリンク処理対応の従来の一般的な通信ユニットと同様であるので、ここでは詳細な説明を省略する。
【００３９】
そして、第２通信ユニット１４は、第１通信ユニット１３が故障等を生じた場合に第１通信ユニット１３に変わりデータリング処理によるＣＰＵユニット１２内のメモリの書き込みを行なう必要があるため、図４に示すフローチャートを実行するアルゴリズを有する。
【００４０】
すなわち、まず、バスインタフェースを介して送信データをＣＰＵユニット１２のＩＯメモリ１２ｂのデーリンクに割り当てられた領域から抽出する（ＳＴ１１）。そして、通信回線（第２伝送路３１）に対し、データリンクデータ送信を行なう（ＳＴ１２）。もちろん、第１通信ユニット１３も正常であればデータリンクデータを送信する。従って、第１，第２通信ユニット１３，１４がいずれも正常で動作している場合には、他ノード側では、第１，第２伝送路３０，３１を介して同一のデータリンクデータが送られてくる。従って、係る他ノード側では、第１，第２通信ユニットの少なくとも一方が正常に動作していると、当該データリンクデータを受信し、係る他ノードのＣＰＵユニットのＩＯメモリに受信したデータを書き込むことができる。つまり、送信側では、ネットワークに接続された受信側（他のノード）の状態はわからないものの、第１，第２通信ユニット１３，１４が、それぞれ同一のデータリンクデータを送信することにより、相手先にデータリンクデータを伝達できるようになる。
【００４１】
次に、通信回線（第２伝送路３１）を介して他ノードの第２通信ユニット１４から送られてきたデータリンクデータを受信する（ＳＴ１３）。そして、プライマリ通信ユニットである第１通信ユニット１３に異常等（異常，オンライン交換）があるか否かを確認する（ＳＴ１４）。これは、第１通信ユニット１３並びに第２通信ユニット１４はそれぞれユニット異常を生じた場合に互いに相手に通知する機能を備えているため、係る異常通知の有無により、判断できる。
【００４２】
そして、第１通信ユニット１３が正常の場合にはステップ１４の分岐判断がＮｏとなるので、データを破棄し（ＳＴ１５）、ステップ１１に戻り次のデータリンクデータの送受信を行なう。つまり、第１通信ユニット１３側が正常な場合、その第１通信ユニット１３側でもデータリンクデータを受信し、ＣＰＵユニット１２のＩＯメモリに受信したデータを格納するため、第２通信ユニット１４では受信したデータを破棄する。
【００４３】
一方、第１通信ユニット１３が異常等を生じている場合には、ステップ１４の分岐判断はＹｅｓとなるので、ステップ１６に飛び、第２通信ユニット１４が受信したデータリンクデータを、バスインタフェースを介してＣＰＵユニット１２のＩＯメモリ１２ｂの所定領域にコピーする（ＳＴ１６）。その後、ステップ１１に戻り、次のデータリンク処理を行なう。
【００４４】
従って、第１通信ユニット１３が正常な場合には係る第１通信ユニット１３を用いてデータリンク処理ができるのは従来と同様であるが、たとえ第１通信ユニット１３が故障などを生じたとしても、第２通信ユニット１４がデータリンク処理を実行するので、第１，第２通信ユニット１３，１４の少なくとも一方が正常動作している場合には、データリンク処理が行える。
【００４５】
次に、ネットワークの異常発生（他ノード故障，ケーブル断線など）が生じた場合に対応する機能について説明する。まず、メッセージ送信処理は、図５に示すフローチャートを実行するようになっている。すなわち、ＣＰＵユニット１２がアプリケーションからメッセージ送信の要求を受けた場合（ＳＴ２１）、プライマリ通信ユニット（第１通信ユニット１３）に異常等があるか否かを判断する（ＳＴ２２）。そして、異常がない場合には、プライマリ通信ユニット（第１通信ユニット１３）からメッセージ送信を図るべき、第１通信ユニット１３に対して送信すべきメッセージを渡し、送信依頼をする（ＳＴ２３）。係る処理は、図３に示したものと同様である。
【００４６】
プライマリ通信ユニットたる第１通信ユニット１３は、ＣＰＵユニット１２からメッセージ送信の依頼を受け取ると（ＳＴ２４）、プライマリ側（第１伝送路３０側）のネットワーク加入リストを確認し（ＳＴ２５）、依頼を受けたメッセージの送信先（他ノード）が、第１伝送路３０のネットワークに加入しているか否かを判断する（ＳＴ２６）。係る判断は、第１通信ユニット１３が収集した第１伝送路３０のネットワーク加入ステータス状況から行える。そして、加入している場合には、第１通信ユニット１３が自らプライマリネットワーク、つまり第１伝送路３０を使用してメッセージ送信を行なう（ＳＴ２７）。
【００４７】
一方、メッセージ送信先が第１伝送路３０のネットワークから離脱状態であった場合には、第１通信ユニット１３は、セカンダリ通信ユニットである第２通信ユニット１４から通知されたセカンダリネットワーク（第２伝送路３１）のネットワーク加入ステータスを確認し（ＳＴ２８）、送信先が加入しているか否かを判断する（ＳＴ２９）。そして、第２伝送路３１側のセカンダリネットワークにおいてもメッセージ送信先が離脱・未加入の場合には、送信できないため、メッセージ送信要求したアプリケーションに対してエラー応答する（ＳＴ３９）。
【００４８】
また、メッセージ送信先が第２伝送路３１のセカンダリネットワーク側で加入状態であった場合、ステップ２９の分岐判断にてＹｅｓとなるので、第１通信ユニット１３は、第２通信ユニット１４から送信すると決定し（ＳＴ３０）、送信すべきデータを、セカンダリ通信ユニットを経由して送信するようにＣＰＵユニット１２に依頼する（ＳＴ３１）。
【００４９】
ＣＰＵユニット１２は、係る依頼を第１通信ユニット１３から受けると、第２通信ユニット１４に異常等（異常，オンライン交換）があるか否かを判断する（ＳＴ３２，ＳＴ３３）。そして、第２通信ユニット１４が異常等でない場合には、セカンダリ通信ユニット（第２通信ユニット１４）からメッセージ送信をする旨を決定し、第２通信ユニット１４に対して送信すべきメッセージを渡し、送信依頼をする（ＳＴ３４）。
【００５０】
そして、セカンダリ通信ユニットたる第２通信ユニット１４は、ＣＰＵユニット１２からメッセージ送信の依頼を受け取ると（ＳＴ３５）、セカンダリ側（第２伝送路３１側）のネットワーク加入リストを確認し（ＳＴ３６）、依頼を受けたメッセージの送信先（他ノード）が、第２伝送路３１のネットワークに加入しているか否かを判断する（ＳＴ３７）。係る判断は、第２通信ユニット１４が収集した第２伝送路３１のネットワーク加入ステータス状況から行える。そして、加入している場合には、第２通信ユニット１４が自らセカンダリネットワーク、つまり第２伝送路３１を使用してメッセージ送信を行なう（ＳＴ３８）。
【００５１】
そして、送信先が加入していない場合には、ステップ３９に飛び、アプリケーションにエラー応答する。また、ステップ３３の分岐判断でＹｅｓ、つまり、第２通信ユニット１４も異常があった場合には、送信できないためステップ３９に飛びエラー応答をする。
【００５２】
一方、データリンクの場合は、図６に示すように、第１通信ユニット１３は、バスインタフェースを介して送信データをＣＰＵユニット１２のＩＯメモリ１２ｂのデーリンクに割り当てられた領域から抽出する（ＳＴ４１）。そして、プライマリ通信回線（第１伝送路３１）に対し、データリンクデータ送信を行なう（ＳＴ４２）。
【００５３】
次いで、プライマリ通信回線（第１伝送路３０）を介して他ノードの第１通信ユニット１３から送られてきたデータリンクデータを受信する（ＳＴ４３）。そして、第１通信ユニット１３が受信したデータリンクデータを、バスインタフェースを介してＣＰＵユニット１２のＩＯメモリ１２ｂの所定領域にコピーする（ＳＴ４４）。その後、ステップ４１に戻り、次のデータリンク処理を行なう。
【００５４】
一方、第２通信ユニット１４は、プライマリネットワーク（第１伝送路３０）側でネットラーク異常を生じた場合に第１通信ユニット１３に変わりデータリング処理によるＣＰＵユニット１２内のメモリの書き込みを行なう必要があるため、図７に示すフローチャートを実行するアルゴリズを有する。
【００５５】
すなわち、まず、バスインタフェースを介して送信データをＣＰＵユニット１２のＩＯメモリ１２ｂのデーリンクに割り当てられた領域から抽出する（ＳＴ５１）。そして、通信回線（第２伝送路３１）に対し、データリンクデータ送信を行なう（ＳＴ５２）。
【００５６】
次に、セカンダリ通信回線（第２伝送路３１）を介して他ノードの第２通信ユニット１４から送られてきたデータリンクデータを受信する（ＳＴ５３）。そして、プライマリ通信ユニットである第１通信ユニット１３に異常等（異常，オンライン交換）があるか否かを確認する（ＳＴ５４）。これは、第１通信ユニット１３並びに第２通信ユニット１４はそれぞれユニット異常を生じた場合に互いに相手に通知する機能（例えば、ＣＰＵユニットが第１通信ユニットおよび第２通信ユニットの状態を監視し、一方の通信ユニットで異常が発生した場合は、その情報を他方の通信ユニットへ通知することで実現できる）を備えているため、係る異常通知の有無により、判断できる。
【００５７】
そして、第１通信ユニット１３が正常の場合にはステップ５４の分岐判断がＮｏとなるので、送信先ノードがプライマリネットワークのネットワーク加入リストに加入されているか否かを判断する（ＳＴ５５）。そして、加入している場合には、第１通信ユニット１３から第１伝送路３０を使用したデータリンクが行えるので、第２通信ユニット１４が受信したデータを破棄し（ＳＴ５６）、ステップ５１に戻り次のデータリンクデータの送受信を行なう。
【００５８】
一方、第１通信ユニット１３が異常等を生じている場合や、送信先ノードがプライマリネットワークに加入していない場合には、第２通信ユニット１４が受信したデータリンクデータを、バスインタフェースを介してＣＰＵユニット１２のＩＯメモリ１２ｂの所定領域にコピーする（ＳＴ５７）。その後、ステップ５１に戻り、次のデータリンク処理を行なう。
【００５９】
また、具体的なフローチャートは図示省略するが、以下のような処理を行なうようにしても良い。すなわち、第１通信ユニット１３側でプライマリ／セカンダリ双方のネットワーク加入ステータスを比較し、程度の良いネットワークを選択する。プライマリ側の第１伝送路３０の程度が良ければ、通常動作と同じく、第１通信ユニット１３でデータリンクの送受信を行う。このとき、第２通信ユニット１４はデータリンクの送信のみで、受信データは廃棄する。一方、セカンダリ側の程度が良ければ、Ｉ／Ｆ制御情報を使用し、データリンク送受信をセカンダリ側で行うように、ＣＰＵユニット１２、第２通信ユニット１４に通知する。この通知を受けた第２通信ユニット１４は、データリンクの送受信を行う。このとき、第１通信ユニット１３はデータリンクの送信のみで、受信データは廃棄するように機能する。
【００６０】
さらに、上記した実施の形態では、ネットワークに接続された全てのＰＬＣ１０は、第１，第２通信ユニット１３，１４を備え、二重化対応したものを用いたが、本発明はこれに限ることはなく、例えば図８に示すように、二重化対応していないＰＬＣ１０′や、図示省略する表示器（ＰＴ）その他各種の機器を接続することができる。
【００６１】
但し、この場合には、ＰＬＣ１０′のように二重化対応していない機器（ＰＬＣ１０′の場合、通信ユニット１７）は、プライマリネットワークである第１伝送路３０に接続するとともに、ＰＬＣ１０のプライマリ通信ユニットである第１通信ユニット１３も第１伝送路３０に接続する。
【図面の簡単な説明】
【００６２】
【図１】本発明が適用されるネットワークシステムの一例を示す図である。
【図２】本発明の一実施の形態の要部を示す図である。
【図３】通信ユニット異常等に対応する通信ユニットのメッセージ送信機能を示すフローチャートである。
【図４】通信ユニット異常等に対応する第２通信ユニット（セカンダリ通信ユニット）のメッセージ送信機能を示すフローチャートである。
【図５】ネットワーク異常に対応する各ユニットのメッセージ送信機能を示すフローチャートである。
【図６】ネットワーク異常に対応する第１通信ユニット（プライマリ通信ユニット）のデータリンク処理機能を示すフローチャートである。
【図７】ネットワーク異常に対応する第２通信ユニット（セカンダリ通信ユニット）のデータリンク処理機能を示すフローチャートである。
【図８】本発明が適用されるネットワークシステムの一例を示す図である。
【符号の説明】
【００６３】
１０，１０′  ＰＬＣ
１０ａ  システムバス
１１  電源ユニット
１２  ＣＰＵユニット
１２ａ  ＭＰＵ
１２ｂ  ＩＯメモリ
１２ｃ  バスインタフェース
１２ｄ  パラメータ記憶部
１３  第１通信ユニット（プライマリ通信ユニット）
１３ａ  通信部インタフェース
１３ｂ  ＭＰＵ
１３ｃ  メモリ
１４  第２通信ユニット（セカンダリ通信ユニット）
１４ａ  通信部インタフェース
１４ｂ  ＭＰＵ
１４ｃ  メモリ
１５  Ｉ／Ｏユニット
１７  通信ユニット
２０  ＰＬＣ
２１  電源ユニット
２２  ＣＰＵユニット
２３  通信ユニット
２５  Ｉ／Ｏユニット
３０  第１伝送路（プライマリネットワーク）
３１  第２伝送路（セカンダリネットワーク）
３５  パソコン（設定ツール）
【図１】
2005094505.tif 000003
【図２】
2005094505.tif 000004
【図３】
2005094505.tif 000005
【図４】
2005094505.tif 000006
【図５】
2005094505.tif 000007
【図６】
2005094505.tif 000008
【図７】
2005094505.tif 000009
【図８】
2005094505.tif 000010