メモリを含む記憶部とプログラムの演算を行う演算部とを有する第1のCPUモジュールと、前記第1のCPUモジュールから入出力される出力信号、または入力信号を通信手段を介して通信する第1の通信モジュールと、少なくとも前記第1のCPUモジュール、前記第1の通信モジュールに電力を供給する第1の電源モジュールとを有し、前記第1のCPUモジュール、前記第1の通信モジュールに前記第1の電源モジュールからの電力を供給する電源接続部、及び前記第1のCPUモジュール、前記第1の通信モジュール、前記第1の電源モジュールを支持、固定する筐体を有する第1のベースを備えた構成を第1のプログラマブルコントローラとし、前記第1のCPUモジュールと前記第2のCPUモジュールとを接続線で接続し、第2のCPUモジュールと、第2の通信モジュールと、第2の電源モジュール、第2のベースとを備えた構成を第2のプログラマブルコントローラとし、前記第1のプログラマブルコントローラと前記第2のプログラマブルコントローラとを一対として動作させるプログラマブルコントローラステーションにおいて、前記第1の通信モジュールが第1の通信手段に接続され、前記第2の通信モジュールが第2の通信手段に接続され、前記第1のプログラマブルコントローラの前記第1のCPUモジュールが正常動作している場合には、前記プログラマブルコントローラステーションに接続された機器に対して、前記第1のCPUモジュールからの入力信号、出力信号を入力、または出力処理し、前記第1のCPUモジュールが正常動作しなくなった場合には、前記第2のプログラマブルコントローラの前記第2のCPUモジュールに切り換えて、前記第2のCPUモジュールからの入力信号、出力信号を入力、または出力処理することを特徴とするプログラマブルコントローラステーション。請求項1記載のプログラマブルコントローラステーションにおいて、前記第1のCPUモジュールは、前記第1のCPUモジュールから前記接続線を介して前記第2のCPUモジュールにデータを転送する第1のデータ転送手段と、前記第1のデータ転送手段によってデータが前記第1のCPUモジュールから前記接続線を介して前記第2のCPUモジュールに転送後に、始動される第1のタイマーとを有し、前記第1のタイマーの始動後に、前記第2のCPUモジュールから前記接続線を介して前記第1のCPUモジュールにデータが転送されると、前記第1のタイマーを停止し、前記第1のタイマーの値が所定の値よりも大きくなった場合に、前記第2のCPUモジュールの動作の異常を検出することを特徴とするプログラマブルコントローラステーション。請求項1記載のプログラマブルコントローラステーションにおいて、前記第2のCPUモジュールは、前記第1のCPUモジュールから前記接続線を介して前記第2のCPUモジュールにデータが転送されると、停止される第2のタイマーと、前記第2のCPUモジュールから前記接続線を介して前記第1のCPUモジュールにデータを転送する第2のデータ転送手段と、を有し、前記第2のタイマーの始動後に、前記第1のCPUモジュールから前記接続線を介して前記第2のCPUモジュールにデータが転送されると、前記第2のタイマーを停止し、前記第2のタイマーの値が所定の値よりも大きくなった場合に、前記第1のCPUモジュールの動作の異常を検出することを特徴とするプログラマブルコントローラステーション。メモリを含む記憶部とプログラムの演算を行う演算部とを有する第1のCPUモジュールと、前記第1のCPUモジュールから入出力される出力信号、または入力信号を通信手段を介して通信する第1の通信モジュールと、少なくとも前記第1のCPUモジュール、前記第1の通信モジュールに電力を供給する第1の電源モジュールとを有し、前記第1のCPUモジュール、前記第1の通信モジュールに前記第1の電源モジュールからの電力を供給する電源接続部、及び前記第1のCPUモジュール、前記第1の通信モジュール、前記第1の電源モジュールを支持、固定する筐体を有する第1のベースを備えた構成を第1のプログラマブルコントローラとし、第2のCPUモジュールと、第2の通信モジュールと、第2の電源モジュール、第2のベースとを備えた構成を第2のプログラマブルコントローラとし、前記第1のCPUモジュールと前記第2のCPUモジュールとを接続線で接続し、前記第1のプログラマブルコントローラと前記第2のプログラマブルコントローラとを一対として動作させるプログラマブルコントローラステーションにおいて、前記第1の通信モジュールが第1の通信手段に接続され、前記第2の通信モジュールが第2の通信手段に接続され、前記第1のプログラマブルコントローラの前記第1の通信モジュールが正常動作している場合には、前記プログラマブルコントローラステーションに接続された機器に対して、前記第1の通信モジュールによって通信し、前記第1の通信モジュールが正常動作しなくなった場合には、前記第1のCPUモジュールと前記第2のCPUモジュールとの間で前記接続線を介して出力信号、または入力信号を通信し、前記第2のプログラマブルコントローラの前記第2の通信モジュールに切り換えて、前記第2のCPUモジュールからの入力信号、出力信号を前記第2の通信モジュールによって通信することを特徴とするプログラマブルコントローラステーション。請求項1記載のプログラマブルコントローラステーションにおいて、前記第1の通信モジュール、前記第2の通信モジュールに他のプログラマブルコントローラステーションの状態を管理する管理テーブルを設け、前記管理テーブルには、前記第1の通信モジュール、前記第2の通信モジュールからデータを送信する送信先の動作状態を識別する識別情報を記憶し、また、前記第1の通信モジュール、前記第2の通信モジュールへデータを送信する送信元の動作状態を識別する識別情報を記憶することを特徴とするプログラマブルコントローラステーション。メモリを含む記憶部とプログラムの演算を行う演算部とを有する第1のCPUモジュールと、前記第1のCPUモジュールから入出力される出力信号、または入力信号を通信手段を介して通信する第1の通信モジュールと、少なくとも前記第1のCPUモジュール、前記第1の通信モジュールに電力を供給する第1の電源モジュールとを有し、前記第1のCPUモジュール、前記第1の通信モジュールに前記第1の電源モジュールからの電力を供給する電源接続部、及び前記第1のCPUモジュール、前記第1の通信モジュール、前記第1の電源モジュールを支持、固定する筐体を有する第1のベースを備えた構成を第1のプログラマブルコントローラとし、第2のCPUモジュールと、第2の通信モジュールと、第2の電源モジュール、第2のベースとを備えた構成を第2のプログラマブルコントローラとし、前記第1のCPUモジュールと前記第2のCPUモジュールとを接続線で接続し、前記第1のプログラマブルコントローラと前記第2のプログラマブルコントローラとを一対として動作させるプログラマブルコントローラステーションにおいて、前記第1の通信モジュールが第1の通信手段に接続され、前記第2の通信モジュールが第2の通信手段に接続され、前記第1の通信手段が正常動作している場合には、前記プログラマブルコントローラステーションに接続された機器に対して、前記第1の通信モジュールによって前記第1の通信手段を介して通信し、前記第1の通信手段が正常動作しなくなった場合には、前記第1のCPUモジュールと前記第2のCPUモジュールとの間で前記接続線を介して出力信号、または入力信号を通信し、前記第2のプログラマブルコントローラの前記第2の通信モジュールによって前記第2の通信手段も介して通信することを特徴とするプログラマブルコントローラステーション。請求項6記載のプログラマブルコントローラステーションにおいて、前記第1の通信手段によって前記第1の通信モジュールが送信することが出来ない場合は、前記第1のCPUモジュールと前記第2のCPUモジュールとの間で前記接続線を介して出力信号、または入力信号を通信し、前記第2の通信手段によって前記第2の通信モジュールから送信することを特徴とするプログラマブルコントローラステーション。請求項6記載のプログラマブルコントローラステーションにおいて、前記第1の通信手段によって前記第1の通信モジュールが受信することが出来ない場合は、前記第2の通信手段によって前記第2の通信モジュールから受信し、前記第1のCPUモジュールと前記第2のCPUモジュールとの間で前記接続線を介して出力信号、または入力信号を通信し、前記第1のCPUモジュールが前記第2の通信モジュールから受信した入力信号を得ることを特徴とするプログラマブルコントローラステーション。メモリを含む記憶部とプログラムの演算を行う演算部とを有する第1のCPUモジュールと、前記第1のCPUモジュールから入出力される出力信号、または入力信号を通信手段を介して通信する第1の通信モジュールと、少なくとも前記第1のCPUモジュール、前記第1の通信モジュールに電力を供給する第1の電源モジュールとを有し、前記第1のCPUモジュール、前記第1の通信モジュールに前記第1の電源モジュールからの電力を供給する電源接続部、及び前記第1のCPUモジュール、前記第1の通信モジュール、前記第1の電源モジュールを支持、固定する筐体を有する第1のベースを備えた構成を第1のプログラマブルコントローラとし、前記第1のCPUモジュールと前記第2のCPUモジュールとを接続線で接続し、第2のCPUモジュールと、第2の通信モジュールと、第2の電源モジュール、第2のベースとを備えた構成を第2のプログラマブルコントローラとし、前記第1のプログラマブルコントローラと前記第2のプログラマブルコントローラとを一対として動作させるプログラマブルコントローラステーションを複数備え、各々のプログラマブルコントローラステーションの前記第1の通信モジュール同士が第1の通信手段にリング状に接続され、各々のプログラマブルコントローラステーションの前記第2の通信モジュール同士が第2の通信手段にリング状に接続されることを特徴とする二重化ネットワークシステム。前記特許文献1には、ネットワークを二重化したPLCの構成が記載されている。しかし、特許文献1の構成では通信モジュールの故障やケーブルの断線といった通信路の異常が発生した場合においては通信を継続させることが可能となるが、その他の構成要素、特に電源モジュール、CPUモジュール、ベースが故障した際には通信を継続させることはできない。設備の安全性を確保するためには、システム全体の安全性、信頼性をいかに向上させるかが課題となっている。上記課題を解決するために、例えば特許請求の範囲に記載の構成を採用する。本願は上記課題を解決する手段を複数含んでいるが、その一例を挙げるならば、それぞれ異なるベース上にあってケーブル接続された制御系CPUと待機系CPUと、制御系CPUと同一ベース上に配置された第1通信モジュールと、待機系CPUと同一ベース上に配置された第2通信モジュールとから成る一対のプログラマブルコントローラを一ステーションとした複数のステーションがリング状に接続された二重化ネットワークシステムであって、ステーション内ではCPUの演算結果などといった制御情報を制御系CPUと待機系CPUとで定期的にやり取りするデータ授受機能を有し、また、CPUは同一ベース上に配置された通信モジュールとのデータ授受機能を有して、さらに、通信モジュールはネットワーク接続された通信相手の状態に関するデータ取得機能を有するプログラマブルコントローラを用いた二重化ネットワークシステムを特徴とする。また、本発明を更に異なる表現にて、以下に説明する。メモリを含む記憶部とプログラムの演算を行う演算部とを有する第1のCPUモジュールと、前記第1のCPUモジュールから入出力される出力信号、または入力信号を通信手段を介して通信する第1の通信モジュールと、少なくとも前記第1のCPUモジュール、前記第1の通信モジュールに電源を供給する第1の電源モジュールとを有し、前記第1のCPUモジュール、前記第1の通信モジュールに前記第1の電源モジュールからの電力を供給する電源接続部、及び前記第1のCPUモジュール、前記第1の通信モジュール、前記第1の電源モジュールを支持、固定する筐体を有する第1のベースを備えた構成を第1のプログラマブルコントローラとし、前記第1のCPUモジュールと前記第2のCPUモジュールとを接続線で接続し、第2のCPUモジュールと、第2の通信モジュールと、第2の電源モジュール、第2のベースとを備えた構成を第2のプログラマブルコントローラとし、前記第1のプログラマブルコントローラと前記第2のプログラマブルコントローラとを一対として動作させるプログラマブルコントローラステーションにおいて、前記第1の通信モジュールが第1の通信手段に接続され、前記第2の通信モジュールが第2の通信手段に接続され、前記第1のプログラマブルコントローラの前記第1のCPUモジュールが正常動作している場合には、前記プログラマブルコントローラステーションに接続された機器に対して、前記第1のCPUモジュールからの入力信号、出力信号を入力、または出力処理し、前記第1のCPUモジュールが正常動作しなくなった場合には、前記第2のプログラマブルコントローラの前記第2のCPUモジュールに切り換えて、前記第2のCPUモジュールからの入力信号、出力信号を入力、または出力処理するようにする。また、前記第1のCPUモジュールは、前記第1のCPUモジュールから前記接続線を介して前記第2のCPUモジュールにデータを転送する第1のデータ転送手段と、前記第1のデータ転送手段によってデータが前記第1のCPUモジュールから前記接続線を介して前記第2のCPUモジュールに転送後に、始動される第1のタイマーとを有し、前記第1のタイマーの始動後に、前記第2のCPUモジュールから前記接続線を介して前記第1のCPUモジュールにデータが転送されると、前記第1のタイマーを停止し、前記第1のタイマーの値が所定の値よりも大きくなった場合に、前記第2のCPUモジュールの動作の異常を検出するようにする。また、前記第2のCPUモジュールは、前記第1のCPUモジュールから前記接続線を介して前記第2のCPUモジュールにデータが転送されると、停止される第2のタイマーと、前記第2のCPUモジュールから前記接続線を介して前記第1のCPUモジュールにデータを転送する第2のデータ転送手段とを有し、前記第2のタイマーの始動後に、前記第1のCPUモジュールから前記接続線を介して前記第2のCPUモジュールにデータが転送されると、前記第2のタイマーを停止し、前記第2のタイマーの値が所定の値よりも大きくなった場合に、前記第1のCPUモジュールの動作の異常を検出するようにする。また、メモリを含む記憶部とプログラムの演算を行う演算部とを有する第1のCPUモジュールと、前記第1のCPUモジュールから入出力される出力信号、または入力信号を通信手段を介して通信する第1の通信モジュールと、少なくとも前記第1のCPUモジュール、前記第1の通信モジュールに電源を供給する第1の電源モジュールとを有し、前記第1のCPUモジュール、前記第1の通信モジュールに前記第1の電源モジュールからの電力を供給する電源接続部、及び前記第1のCPUモジュール、前記第1の通信モジュール、前記第1の電源モジュールを支持、固定する筐体を有する第1のベースを備えた構成を第1のプログラマブルコントローラとし、第2のCPUモジュールと、第2の通信モジュールと、第2の電源モジュール、第2のベースとを備えた構成を第2のプログラマブルコントローラとし、前記第1のCPUモジュールと前記第2のCPUモジュールとを接続線で接続し、前記第1のプログラマブルコントローラと前記第2のプログラマブルコントローラとを一対として動作させるプログラマブルコントローラステーションにおいて、前記第1の通信モジュールが第1の通信手段に接続され、前記第2の通信モジュールが第2の通信手段に接続され、前記第1のプログラマブルコントローラの前記第1の通信モジュールが正常動作している場合には、前記プログラマブルコントローラステーションに接続された機器に対して、前記第1の通信モジュールによって通信し、前記第1の通信モジュールが正常動作しなくなった場合には、前記第1のCPUモジュールと前記第2のCPUモジュールとの間で前記接続線を介して出力信号、または入力信号を通信し、前記第2のプログラマブルコントローラの前記第2の通信モジュールに切り換えて、前記第2のCPUモジュールからの入力信号、出力信号を前記第2の通信モジュールによって通信するようにする。また、前記第1の通信モジュール、前記第2の通信モジュールに他のプログラマブルコントローラステーションの状態を管理する管理テーブルを設け、前記管理テーブルには、前記第1の通信モジュール、前記第2の通信モジュールからデータを送信する送信先の動作状態を識別する識別情報を記憶し、また、前記第1の通信モジュール、前記第2の通信モジュールへデータを送信する送信元の動作状態を識別する識別情報を記憶するようにする。また、メモリを含む記憶部とプログラムの演算を行う演算部とを有する第1のCPUモジュールと、前記第1のCPUモジュールから入出力される出力信号、または入力信号を通信手段を介して通信する第1の通信モジュールと、少なくとも前記第1のCPUモジュール、前記第1の通信モジュールに電源を供給する第1の電源モジュールとを有し、前記第1のCPUモジュール、前記第1の通信モジュールに前記第1の電源モジュールからの電力を供給する電源接続部、及び前記第1のCPUモジュール、前記第1の通信モジュール、前記第1の電源モジュールを支持、固定する筐体を有する第1のベースを備えた構成を第1のプログラマブルコントローラとし、第2のCPUモジュールと、第2の通信モジュールと、第2の電源モジュール、第2のベースとを備えた構成を第2のプログラマブルコントローラとし、前記第1のCPUモジュールと前記第2のCPUモジュールとを接続線で接続し、前記第1のプログラマブルコントローラと前記第2のプログラマブルコントローラとを一対として動作させるプログラマブルコントローラステーションにおいて、前記第1の通信モジュールが第1の通信手段に接続され、前記第2の通信モジュールが第2の通信手段に接続され、前記第1の通信手段が正常動作している場合には、前記プログラマブルコントローラステーションに接続された機器に対して、前記第1の通信モジュールによって前記第1の通信手段を介して通信し、前記第1の通信手段が正常動作しなくなった場合には、前記第1のCPUモジュールと前記第2のCPUモジュールとの間で前記接続線を介して出力信号、または入力信号を通信し、前記第2のプログラマブルコントローラの前記第2の通信モジュールによって前記第2の通信手段も介して通信するようにする。また、前記第1の通信手段によって前記第1の通信モジュールが送信することが出来ない場合は、前記第1のCPUモジュールと前記第2のCPUモジュールとの間で前記接続線を介して出力信号、または入力信号を通信し、前記第2の通信手段によって前記第2の通信モジュールから送信するようにする。また、前記第1の通信手段によって前記第1の通信モジュールが受信することが出来ない場合は、前記第2の通信手段によって前記第2の通信モジュールから受信し、前記第1のCPUモジュールと前記第2のCPUモジュールとの間で前記接続線を介して出力信号、または入力信号を通信し、前記第1のCPUモジュールが前記第2の通信モジュールから受信した入力信号を得るようにする。また、メモリを含む記憶部とプログラムの演算を行う演算部とを有する第1のCPUモジュールと、前記第1のCPUモジュールから入出力される出力信号、または入力信号を通信手段を介して通信する第1の通信モジュールと、少なくとも前記第1のCPUモジュール、前記第1の通信モジュールに電源を供給する第1の電源モジュールとを有し、前記第1のCPUモジュール、前記第1の通信モジュールに前記第1の電源モジュールからの電力を供給する電源接続部、及び前記第1のCPUモジュール、前記第1の通信モジュール、前記第1の電源モジュールを支持、固定する筐体を有する第1のベースを備えた構成を第1のプログラマブルコントローラとし、前記第1のCPUモジュールと前記第2のCPUモジュールとを接続線で接続し、第2のCPUモジュールと、第2の通信モジュールと、第2の電源モジュール、第2のベースとを備えた構成を第2のプログラマブルコントローラとし、前記第1のプログラマブルコントローラと前記第2のプログラマブルコントローラとを一対として動作させるプログラマブルコントローラステーションを複数備え、各々のプログラマブルコントローラステーションの前記第1の通信モジュール同士が第1の通信手段にリング状に接続され、各々のプログラマブルコントローラステーションの前記第2の通信モジュール同士が第2の通信手段にリング状に接続して、二重化ネットワークシステムを構成するようにする。本発明によれば、通信モジュールおよび通信路に異常が発生した場合だけでなく、電源モジュール、CPUモジュール、ベースに故障が発生した場合においても構成されるシステムは停止することなく稼動し続けることができ、従来よりもより安全性、信頼性の高いプログラマブルコントローラを有するシステムが構築される。上記した以外の課題、構成及び効果は、以下の実施形態の説明により明らかにされる。以下、実施例を図面を用いて説明する。本実施例では、CPUモジュール以下、CPUおよび電源モジュール以下、電源、ベースに異常が発生した場合の例、特にCPU異常を例として説明する。図1は、本実施例におけるプログラマブルコントローラ以下、PLCを用いたネットワークシステムの構成図の例である。PLC1は電源モジュール2とCPUモジュール3と入出力モジュール4と通信モジュール5と上記モジュールを接続したり、上記モジュールを支持、固定するベース6とで構成される。ここで、CPUモジュールは、各種メモリと、シーケンスプログラムなどの演算を行なう演算部であるマイクロプロセッサユニットを少なくとも備えたモジュールである。また、通信モジュールは、通信線などの通信手段が接続されて、外部のプログラミングツールと通信を行なう周辺装置インタフェースと、外部からの入力信号の取込みと演算結果の外部への出力を行なう外部バスとのインタフェースを実施する外部バスインタフェースを備えたモジュールである。また、入出力モジュールは、外部機器からの入力信号を前記CPUモジュールに伝える外部入力信号処理部と、前記CPUモジュールでの演算結果などの出力データを保持して外部機器に出力する外部出力信号処理部とを備えたモジュールである。本実施例ではプログラマブルコントローラであるPLCを制御系用、待機系用として、2つ用いるものとする。そして、前記PLCに対応するように、CPUモジュールとして、制御系CPU3aと待機系CPU3bとを用いて、制御系には第1通信モジュール5aを、待機系には第2通信モジュール5bを配置する。制御系CPU3aと待機系CPU3bとはベース6aとベース6bの異なるベース上に配置されるため、制御系CPU3aと待機系CPU3bとを接続する接続線、通信線として、ケーブル7で接続することによって、互いの状態を監視することが可能となる。上記ケーブル7は専用線、LAN、シリアル、USBなどの接続が考えられる。上記制御系CPU3aを含むPLC1aと待機系CPU3bを含むPLC1bの対をステーションと呼ぶ。従って、ステーションには、2つのPLCで構成されるので、各々のPLCは単独であっても動作、処理出来るように、I/O、電源等も備わっている。例えば、I/Oは、図1では、インターフェース4で例示され、電源は、図1では、電源1aで例示されている。ステーションを構成する2台のCPUに対する系の決定方法としては、システム立上げ時に予めユーザからそれぞれのCPUに対して系を指定する方法が考えられる。ユーザからの設定を受けて、各々のCPUは内部ステータスとして制御系あるいは待機系の動作モードを記憶する。その後の処理においては、各々のCPUは自分が記憶している内部ステータスを参照して、制御系あるいは待機系の動作を行う。前記内部ステータスとしては、制御系あるいは待機系を判断、識別可能とするステータス情報、フラグ情報、識別情報、識別子であってよい。なお、図1の構成ではステーション数は3であるが、このステーション数は必要に応じて増減させることも可能である。ステーション間は通信ケーブル8によって各ステーション内の第1通信モジュール同士が接続される第1通信系統と、通信ケーブル9によって各ステーション内の第2通信モジュール同士が接続される第2通信系統との2系統でネットワーク接続される。このとき上記通信ケーブル8および9としては光ケーブルや同軸ケーブル、LANケーブルなどがある。このような特徴を備えた本発明の実施例における制御系CPUと待機系CPUの作動について、図2のシーケンス図を用いて詳細を説明する。図2に示すように、各ステーションにおいて正常稼動時は制御系待機系ともにCPUは各種演算処理P1、P’1を実行するが、ここではその結果は制御系のものを優先するものとする。したがって入出力処理P2は制御系CPUのみが実行する処理となる。制御系CPUからの演算結果などのデータは同期シーケンスS1のデータ授受の処理によって周期的に制御系から待機系へ転送される。これによって両者CPUの内部処理の同期をとることができ、さらに互いの状態を監視することが可能となる。同期シーケンスS1では待機系CPUは演算処理P’1実行後に通信モジュール状態読出しR’1を行い、生存確認用のタイマT’1を起動し、制御系CPUからのデータ転送D1を受信するとタイマT’1を停止し、制御系CPUに対してデータ転送D’1を実行して演算処理P’1を再開する。上記同期シーケンスS1における待機系CPU内の処理を図10のフローチャートを用いて説明する。まず、同期シーケンス処理を開始ST200すると、待機系CPUは演算処理P’1実行後に通信モジュール状態読出しR’1を行い、生存確認用のタイマT’1を始動、起動し、制御系CPUからのデータ転送D1受信待ちST210とする。ここでデータ転送D1を受信するとST210-YES、タイマT’1を停止し、制御系CPUに対してデータ転送D’1を実行後、受信データD1に系の切り替え要求が付加されていた場合ST260-YESには、制御系動作を開始するST250。これによって、系切り替え前には制御系CPUにて実行されていた入出力処理P2は待機系CPUにて実行されるようになる。このとき、通信も第1通信モジュールから第2通信モジュールへと移行される。また、ST260にて受信データD1に系の切り替え要求が付加されていなかった場合ST260-NOには演算処理P’1を再開する。一方、データ転送D1受信待ちST210において、データ転送D1を受信しなかった場合ST210-NOには、タイマT’1がタイムアウトしたかを判定し、タイムアウトしていない場合ST220-NOには、再度データ転送D1受信待ちST210とする。一方、タイマT’1がタイムアウトした場合ST220-YESには、待機系CPUは制御系CPUに異常が発生したものと判断し、内部ステータスを待機系から制御系に自ら変更するST230。制御系CPUの異常により系の切り替えが実行されるとシステムの二重化が崩れるため、エラー表示などのユーザ報知を行いST240、ユーザにシステムの復旧を促した上で、それまで待機系であったCPUは制御系動作を開始するST250。タイマT’1にタイムアウトが発生する要因としては、制御系CPU自体の異常の他、制御系を構成する電源およびベースに異常が発生した場合が挙げられる。一方、制御系CPUは演算処理P1実行後、入出力処理P2と通信モジュール状態読出しR1を行い、待機系CPUに対してデータ転送D1し、生存確認用タイマT1を起動する。待機系CPUからのデータ転送D’1を受信するとタイマT1を停止し、演算処理P1を再開する。上記同期シーケンスS1における制御系CPU内の処理を図9のフローチャートを用いて説明する。上記の通り同期シーケンス処理を開始ST100すると、制御系CPUは演算処理P1実行後に入出力処理P2を行い、通信モジュール状態読出しR1を実行してデータ転送D1を行った後に、生存確認用のタイマT1を起動し、待機系CPUからのデータ転送D’1受信待ちST110とする。ここでデータ転送D’1を受信するとST110-YES、タイマT1を停止した後に、送信データD1に系の切り替え要求を付加した場合ST140-YESには、制御系CPUが待機系動作を開始するST150。送信データD1に系の切り替え要求を付加しなかった場合ST140-NOには、制御系CPUは演算処理P1を再開する。なお、ST140の判定内容としては、系の切り替え要求が付加されたデータD1を受信した待機系CPUが返信D’1にて系の切り替え要求受付を付加するものとした場合、D’1に系の切り替え要求受付が付加されているか否かを判定する方法も考えられる。一方、データ転送D’1受信待ちST110において、データ転送D’1を受信しなかった場合ST110-NOには、タイマT1がタイムアウトしたかを判定し、タイムアウトしていない場合ST120-NOには、再度データ転送D’1受信待ちST110とする。一方、タイマT1がタイムアウトした場合ST120-YESには、制御系CPUは待機系CPUに異常が発生したものと判断し、エラー表示などのユーザ報知を行いST130、ユーザにシステムの復旧を促した上で演算処理P1を再開する。タイマT1にタイムアウトが発生する要因としては、待機系CPU自体の異常の他、待機系を構成する電源およびベースに異常が発生した場合が挙げられる。ここで、第1通信モジュールから第2通信モジュールへの移行について説明する。各々の通信モジュールは自身が接続するネットワーク内における他の通信モジュールの動作状態、動作状況をステータスとして内部メモリ内に保持しており、このデータは逐次最新の状態に更新されている。前記ステータスを示すステータスデータは、たとえばテーブルで管理する方法などが考えられる。通信モジュールが管理するステータスデータテーブルの例として図3を説明する。自局状態21と自局アドレス22には本テーブルを保持する通信モジュール自体の情報が格納される。自局状態21にはエラーが発生している場合にそのエラー内容が格納される。自局アドレス22にはステーション番号やIPアドレスといったユニークなIDが格納される。受信元局状態23と受信元局アドレス24には本テーブルを保持する通信モジュールに対してデータを送信してくる通信モジュールの情報が格納される。受信元局状態23にはエラー情報が、受信元局アドレス24にはユニークなIDが格納される。送信先局状態25と送信先局26には本テーブルを保持する通信モジュールがデータを送信する相手となる通信モジュールの情報が格納される。送信先局状態25にはエラー情報が、送信先局アドレス26にはユニークなIDが格納される。CPUは通信モジュール状態読出しR1またはR’1にて図3の管理テーブル20を参照することによって同一ベース上に配置された通信モジュールとその通信相手の状態を管理することができ、いずれかに発生した異常を検知することが可能となる。制御系CPUにおける通信モジュール状態の読出し結果によって使用する通信モジュールの変更を実行するための処理を図4のフローチャートで説明する。まず、図3の管理テーブル20を参照することによって、自局状態21にて異常の有無を参照するST10。自局状態21のステータスデータの参照によって、異常があると判断された場合ST10-YESには、データ転送D1に系切り替え要求を追加してST20、入出力処理P2の後、系切り替え要求付きのデータ転送D1を送信し、D’1受信待ちとする。一方、自局状態21のステータスデータの参照によって、異常がないと判断された場合ST10-NOには、次に受信元局状態23のステータスデータを参照するST-30。ここで異常があった場合ST30-YESには、データ転送D1に第2通信モジュールの受信データ要求を追加するST40。ここで、受信元局状態23に異常がないと判断された場合ST30-NOには上記ST40の処理は実行しない。次に送信先局状態25を参照し、異常があると判断された場合ST50-YESには、データ転送D1に第2通信モジュールから送信するデータを追加するST60。ここでも、送信先局状態25に異常がないと判断された場合ST50-NOには、上記ST60の処理は実行しない。以上の処理の後に入出力処理P2を行い、ST30およびST50の判定結果に従って第2通信モジュールの受信データ要求およびまたは第2通信モジュールから送信するデータ付きのデータ転送D1を送信し、データ転送D’1受信待ちとする。したがって、自局、受信元局、送信先局のすべてが正常である場合ST-10かつST30-NOかつST50-NOには使用する通信モジュールに変更はない。このように自局通信モジュールの接続相手の状態によっても使用する通信モジュールを変更することによって、システム内の特定のPLCにて系の切り替えが実行された後も、システム全体の通信は継続することができる。以上の系の切り替え処理によって変更されるネットワークの通信経路について図5を用いて説明する。図5はステーション100の制御系CPUに異常が発生した場合に、新たに使用されるネットワークの通信経路を示している。ここで通信データはステーション100→ステーション200→ステーション300→ステーション100の順で伝播されるものとする。まず、ステーション100の制御系CPU103aに異常が生じると、演算処理は待機系CPU103bに引き継がれ、ステーション100の第1通信モジュール105aはアクティブでなくなり、第2通信モジュール105bがアクティブとなる。したがってステーション100からステーション200への通信は通信路109にて行われ、ステーション200の第2通信モジュール205bが受信したデータは待機系CPU203bからケーブル207を介して制御系CPU203aへと転送される。次に、ステーション200からステーション300への通信は切り替え前と変わらず、ステーション200の第1通信モジュール205aから通信路208を通ってステーション300の第1通信モジュール305aの間で行われる。最後にステーション300からステーション100への通信は第2通信モジュールを使用するため、ステーション300の第1通信モジュール305aで受信したデータは制御系CPU303aからケーブル307を介して待機系CPU303bへと転送され、通信路309を介して、ステーション300の第2通信モジュール305bからステーション100の第2通信モジュール105bへと伝播される。さらに、ネットワーク経路の変更については、図4ではST30およびST50にて異常があった場合にST40およびST60にて使用する通信モジュールを変更するための処理を実行しているが、これをST20同様に系を切り替える処理にすることによって、図6のようにすべてのステーションでCPUの系を切り替えることも可能である。また、図5および図6では制御系CPUに異常が発生した場合を例にとっているが、この切り替え動作は上述の通り、電源およびベースに異常が発生した場合においても同様である。なお、図3の管理テーブル20は、前記通信モジュールが保持するものであって良いし、前記制御系CPU、待機系CPUにおいても、保持するものとしても良い。本実施例では、通信モジュールに異常が発生した場合の例を説明する。本実施例におけるネットワークシステムの構成例は図1と同様であるとし、本実施例における制御系CPUと待機系CPUの作動については図2および図4のフローチャートに従うものとする。実施例1は、CPUモジュールに異常が発生した場合の例であったが、本実施例では、CPUモジュールは正常であるが、通信モジュールが異常である場合である。自局の通信モジュールに異常が発生した場合には、図4のフローチャート中ST10にて、自局異常を検出しST10-YES、データ転送D1に系切り替え要求を追加するST20ことによってCPUの系の切り替えが実行されるため、本動作によって変更されるネットワークの通信経路については、実施例1に示した図5と同様となる。ただし、このとき制御系CPU自体は動作可能であることから、図4のST20にて系の切り替え要求ではなく通信の送受信に第2通信モジュールを使用することを待機系CPUに報知するための処理ST40およびST60に相当とすることによって、演算処理は制御系CPUが実行し、通信は第2通信モジュールを介して行うという場合もある。その際のネットワーク経路について図7を用いて説明する。図7はステーション100の第1通信モジュールに異常が発生した場合に、新たに使用されるネットワークの通信経路を示している。ここでも図5同様、通信データはステーション100→ステーション200→ステーション300→ステーション100の順で伝播されるものとする。図7では通信モジュールが使用する通信経路は図5と同様に109、208、309であるが、ステーション100内でのデータの流れが異なる。第2通信モジュール105bが受信したデータはケーブル107を介して待機系CPU103bから制御系CPU103aに転送され、そのデータを用いて制御系CPU103aは演算処理を実行する。さらにその演算結果はケーブル107を介して待機系CPU105bへ転送され、第2通信モジュール105bから通信路109を経由してステーション200へと伝播される。ステーション200からステーション300へは、通信路208を経由してデータが流れ、ステーション300からステーション100へは、通信路309を経由してデータが流れる。さらに、実施例1と同様に、図4のST40およびST60の処理内容を系の切替要求ST20に相当に変更することによって、図6のようにすべてのステーションでCPUの系を切り替えることも可能である。以上のように通信モジュールに異常が発生した場合においても通信を継続することが可能となる。本実施例では、通信経路に異常が発生した場合の例を説明する。本実施例におけるネットワークシステムの構成例は図1と同様であるとし、本実施例における制御系CPUと待機系CPUの作動については、図2および図4のフローチャートに従うこととする。各ステーションの通信モジュールが接続される通信経路に断線のような異常が発生した場合、断線箇所の両端に配置された二つの通信モジュールは互いに接続先がなくなったことを検出し、図3の管理テーブル20にて一方は受信元局状態23が他方は送信先局常態25が異常となる。断線箇所の両端に配置された二つの通信モジュールと同一ベース上に配置された各々のCPUは図4のフローチャート中のST30またはST50にて通信モジュールの受信元局または送信先局の異常を検出しST30-YESまたはST50-YES、データ受信に使用する通信モジュールまたはデータ送信に使用する通信モジュールを変更するST40およびST60。その際のネットワーク経路について図8を用いて説明する。図8はステーション100の第1通信モジュールとステーション200の第1通信モジュールを接続する通信路108に断線が生じた場合に、新たに使用されるネットワークの通信経路を示している。ここでも図5同様、通信データはステーション100→ステーション200→ステーション300→ステーション100の順で伝播されるものとする。図8では通信モジュールが使用する通信経路は109、208、308となる。ステーション100の第1通信モジュール105aは通信路308での受信は可能であるが、通信路108での送信は不能となる。従って第1通信モジュール105aの受信データはケーブル107を介して制御系CPU103aから待機系CPU103bへ転送され、第2通信モジュール105bからステーション200の第2通信モジュール205bへ、通信路109を経由して伝播される。第2通信モジュール205bが受信したデータはケーブル207を介して待機系CPU203bから制御系CPU203aへと転送され、そのデータを用いて制御系CPU203aは演算処理を実行する。ステーション200の第1通信モジュール205aは、通信路108での受信が不能で、通信路208での送信は可能であるので、ステーション300へのデータ送信は第1通信モジュール205aから通信路208を介してステーション300の第1通信モジュール305aへと伝播されることとなる。ステーション300からステーション100へのデータは第1通信モジュール間で、通信路308を経由して行うことができる。さらに、実施例1、2同様に、図4のST40およびST60の処理内容を系の切替要求ST20に相当に変更することによって、図6のようにすべてのステーションでCPUの系を切り替えることも可能である。図8では、通信路108が断線した為に、ステーション100の第1通信モジュール105aは通信路308での受信は可能であるが、通信路108での送信は不能となる場合の実施例を例示している。そして、第1通信モジュール105aでデータを受信し、データの送信は、第2通信モジュール105bからステーション200の第2通信モジュール205bへ、通信路109を経由して送信する実施例としている。しかしながら、この実施例に限定されるものではない。例えば、通信路308が断線した為に、ステーション100の第1通信モジュール105aは通信路108での送信は可能であるが、通信路308での受信は不能となる場合であっても、本実施例は有効である。その場合には、通信路309からの第2通信モジュール105bの受信データはケーブル107を介して待機系CPU103bから制御系CPU103aへ転送され、第1通信モジュール105aからステーション200の第1通信モジュール205aへ、通信路108を経由して伝播されるようにする。以上のように通信路に断線といった異常が発生した場合においても通信を継続することが可能となる。本実施例では、手動による系の切り替えを行う場合の例を説明する。実施例1、2および3においてはシステムを構成する装置のいずれかに異常が発生した場合に継続稼動するための例を示したが、設備保守のためにユーザが意図的に特定ステーションの系を切り替える必要に迫られる場合が考えられる。この場合においても、ユーザ操作を受けて図2のデータ転送D1にて系の切り替え要求を発行させることによって、設備を停止することなくPLCの運転および通信を継続稼動させることが可能である。本動作によって変更されるネットワークの通信経路については、実施例1に示した図5と同様となり、実施例1、2および3同様、図6のようにすべてのステーションでCPUの系を切り替えることも可能である。なお、本発明は上記した実施例に限定されるものではなく、様々な変形例が含まれる。例えば、上記した実施例は本発明を分かりやすく説明するために詳細に説明したものであり、必ずしも説明した全ての構成を備えるものに限定されるものではない。また、ある実施例の構成の一部を他の実施例の構成に置き換えることが可能であり、また、ある実施例の構成に他の実施例の構成を加えることも可能である。また、各実施例の構成の一部について、他の構成の追加削除置換をすることが可能である。また、上記の各構成、機能、処理部、処理手段等は、それらの一部又は全部を、例えば集積回路で設計する等によりハードウェアで実現してもよい。また、上記の各構成、機能等は、プロセッサがそれぞれの機能を実現するプログラムを解釈し、実行することによりソフトウェアで実現してもよい。各機能を実現するプログラム、テーブル、ファイル等の情報は、メモリや、ハードディスク、SSDSolidStateDrive等の記録装置、または、ICカード、SDカード、DVD等の記録媒体に置くことができる。また、制御線や情報線は説明上必要と考えられるものを示しており、製品上必ずしも全ての制御線や情報線を示しているとは限らない。例えば、殆ど全ての構成が相互に接続されていると考えてもよい。