(57)【特許請求の範囲】
【請求項１】
制御ＭＰＵと通信するためＩＯリンクに接続される稼働側および待機側という二重化された伝送制御モジュールと、
一方の伝送制御モジュールに二線共に接続され、かつ他方の伝送制御モジュールにも二線共に接続される二重化されたＩＯバスと、
二重化されたＩＯバスとプロセスにそれぞれ接続されるとともに、稼働／待機切替え回路により切替え可能になされた稼働側および待機側という二重化ペアの出力用ＩＯモジュールと、
二重化されたＩＯバスとプロセスとにそれぞれ接続されるとともに、稼働／待機切替え回路により切替え可能になされた稼働側および待機側という二重化ペアの入力用ＩＯモジュールと、
を備えるプロセス入出力装置であって、
二重化ペアの伝送制御モジュールでは、待機状態の伝送制御モジュールは稼働側の伝送制御モジュールがアクセスするＩＯバスのスレーブとして動作するものであり、稼働側の伝送制御モジュールはアクセスするＩＯバス経由で待機側の伝送制御モジュールに対し必要なデータを送信して稼働側および待機側の伝送制御モジュール間でデータの等値化を行い、
稼働側および待機側という二重化ペアの出力用ＩＯモジュールは二重化されたＩＯバスから送信された信号を両者が処理して稼働側の出力用ＩＯモジュールだけがプロセスへの出力を行い、
稼働側および待機側という二重化ペアの入力用ＩＯモジュールはプロセスからの入力を両者が処理して二重化されたＩＯバスを介して二重化ペアの伝送制御モジュールへ共に出力を行って二重化ペアの伝送制御モジュールは稼働側のＩＯモジュールからの出力だけを制御ＭＰＵへ出力を行う、
ことを特徴とするプロセス入出力装置。
【請求項２】
請求項１記載のプロセス入出力装置において、
一のＩＯモジュールを搭載する一のスロットと、
スロットを複数収容するＩＯシェルフと、
を備え、
前記複数のスロットに対し、稼働側および待機側という二重化ペアのＩＯモジュールのスロットでは連続させつつ、一連のスロット番号を付すことを特徴とするプロセス入出力装置。
【請求項３】
請求項２記載のプロセス入出力装置において、
伝送制御モジュールおよびＩＯモジュールはそれぞれハードウェアにより構成された伝送制御手段を備え、
これらの伝送制御手段は、ＩＯモジュールの各二重化ペアに送られるデータの等値化を行うとともに、スロット番号順にデータ伝送を行うことを特徴としたプロセス入出力装置。
【請求項４】
請求項２または請求項３に記載のプロセス入出力装置において、
ＩＯモジュールが装着されたスロットをそのスロット番号の奇数、偶数により二分し、電源投入時に前記ＩＯモジュールの一方を稼働、他方を待機として設定することを特徴としたプロセス入出力装置。
【請求項５】
請求項２から請求項４のいずれか１項に記載のプロセス入出力装置において、
各ＩＯモジュールを二重化ペア単位で二重化する設定手段を、各ＩＯモジュールごとに設けたことを特徴とするプロセス入出力装置。
【請求項６】
請求項２から請求項４のいずれか１項に記載のプロセス入出力装置において、
各ＩＯモジュールを二重化ペア単位で二重化する設定手段を、ＩＯシェルフ上に設けたことを特徴とするプロセス入出力装置。
【請求項７】
請求項２から請求項４のいずれか１項に記載のプロセス入出力装置において、
稼働／待機切替え用スイッチを各ＩＯモジュールごとに設置するとともに、このスイッチの操作を各ＩＯモジュールにより検出して二重化ペアとなっているＩＯモジュール間で稼働／待機の設定を切替えることを特徴としたプロセス入出力装置。
【請求項８】
請求項２から請求項４のいずれか１項に記載のプロセス入出力装置において、
稼働／待機切替え用スイッチを伝送制御モジュールごとに設置するとともに、このスイッチの操作をそれぞれの伝送制御モジュールにより検出し、次いでその伝送制御モジュールからＩＯバスを経由して各ＩＯモジュールへ切り替え指令を送り、それにより各ＩＯモジュール間の稼働／待機をＩＯシェルフ単位で切替えることを特徴としたプロセス入出力装置。
【請求項９】
請求項２から請求項４のいずれか１項に記載のプロセス入出力装置において、
稼働／待機切替え用スイッチをＩＯシェルフ上に設置するとともに、このスイッチの操作を伝送制御モジュールにより検出し、次いで伝送制御モジュールからＩＯバスを経由して各ＩＯモジュールへ切り替え指令を送り、それにより各ＩＯモジュール間の稼働／待機をＩＯシェルフ単位で切替えることを特徴としたプロセス入出力装置。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、分散形制御システムのコントローラにＩＯリンクを介して直接インタフェースするプロセス入出力装置の二重化方法に関する。
【０００２】
【従来の技術】
従来の分散形制御システムは、図１８のように構成されている。図において、１はマンマシンインタフェース装置、２は制御用ＬＡＮ、３１〜３ｎはコントローラである。この図のように分散形制御システムは、分散設置された複数台（大規模の場合は数十台）のコントローラ３１〜３ｎを制御用ＬＡＮ２で結合し、これらを１台〜数台のマンマシンインタフェース装置１で管理するシステムである。図１９に図１８におけるコントローラ３１〜３ｎの構成例を示す。図１９において、４は制御ＭＰＵ、５はＩＯリンク、６１〜６ｎはプロセス入出力装置である。
【０００３】
制御ＭＰＵ４は、プロセス制御のための演算を行い、分散設置された複数台（例えば３２台）のプロセス入出力装置６１〜６ｎとＩＯリンク５経由でデータ交換を行う。プロセス入出力装置６１〜６ｎは、プロセスの各種センサやアクチュエータと接続され、プロセスのアナログ量を制御ＭＰＵ４で演算可能なディジタル量に変換する。これらのコントローラ３１〜３ｎは、一般的に信頼性の高いことが要求される。そこで信頼性向上のために、図２０に示されるようにコントローラ３１〜３ｎを二重化することがある。図において、４Ａ，４Ｂは制御ＭＰＵ、５Ａ，５ＢはＩＯリンク、６１〜６ｎはプロセス入出力装置である。ここで、制御ＭＰＵ４Ａ，４ＢとＩＯリンク５Ａ，５Ｂが二重化され、ＩＯリンク５Ａ，５Ｂにそれぞれプロセス入出力装置６１〜６ｎが接続されている。
【０００４】
図２１に、制御ＭＰＵ４Ａ，４ＢとＩＯリンク５Ａ，５Ｂの二重化に対応するプロセス入出力装置６１〜６ｎの構成例を示す。図において、５Ａ，５ＢはＩＯリンク、７Ａ，７Ｂは伝送制御モジュール、８はＩＯバス、９１〜９ｎはＩＯモジュールである。ここで、伝送制御モジュール７Ａ，７Ｂは、ＩＯリンク５Ａ，５Ｂ及びＩＯバス８とインタフェースし、制御ＭＰＵ４Ａ，４ＢとＩＯモジュール９１〜９ｎと間のデータ交換を中継している。一方、ＩＯモジュール９１〜９ｎは、プロセスと直接インタフェースし、アナログ量とディジタル量の変換を行っている。図２１の例では、制御ＭＰＵ４Ａ，４ＢとＩＯリンク５Ａ，５Ｂの二重化に対応して、伝送制御モジュール７Ａ，７Ｂが二重化され、制御ＭＰＵ４Ａ，４ＢとＩＯリンク５Ａ，５Ｂの稼働／待機の切り替えに対応して、伝送制御モジュール７Ａ，７Ｂが切り替わるようになっている。
【０００５】
【発明が解決しようとする課題】
しかしながら、これらの従来技術には、次のような問題がある。
（１）図２１における伝送制御モジュールは二重化されているが、ＩＯモジュールは二重化されていない。そのため、いずれかのＩＯモジュールに異常が発生した場合、そのＩＯモジュールに接続されているプロセスの監視、制御が不能となり、システムによっては、大きな欠点となることがある。
（２）同じく、ＩＯバスも二重化されていない。そのため、ＩＯバスに異常が発生した場合、そのＩＯバスに接続されている全ＩＯモジュールが使用不可となり、これもまた、システムによっては、大きな欠点となることがある。
【０００６】
【課題を解決するための手段】
そこで上記課題を解決するために、請求項１の発明は、
制御ＭＰＵと通信するためＩＯリンクに接続される稼働側および待機側という二重化された伝送制御モジュールと、
一方の伝送制御モジュールに二線共に接続され、かつ他方の伝送制御モジュールにも二線共に接続される二重化されたＩＯバスと、
二重化されたＩＯバスとプロセスにそれぞれ接続されるとともに、稼働／待機切替え回路により切替え可能になされた稼働側および待機側という二重化ペアの出力用ＩＯモジュールと、
二重化されたＩＯバスとプロセスとにそれぞれ接続されるとともに、稼働／待機切替え回路により切替え可能になされた稼働側および待機側という二重化ペアの入力用ＩＯモジュールと、
を備えるプロセス入出力装置であって、
二重化ペアの伝送制御モジュールでは、待機状態の伝送制御モジュールは稼働側の伝送制御モジュールがアクセスするＩＯバスのスレーブとして動作するものであり、稼働側の伝送制御モジュールはアクセスするＩＯバス経由で待機側の伝送制御モジュールに対し必要なデータを送信して稼働側および待機側の伝送制御モジュール間でデータの等値化を行い、
稼働側および待機側という二重化ペアの出力用ＩＯモジュールは二重化されたＩＯバスから送信された信号を両者が処理して稼働側の出力用ＩＯモジュールだけがプロセスへの出力を行い、
稼働側および待機側という二重化ペアの入力用ＩＯモジュールはプロセスからの入力を両者が処理して二重化されたＩＯバスを介して二重化ペアの伝送制御モジュールへ共に出力を行って二重化ペアの伝送制御モジュールは稼働側のＩＯモジュールからの出力だけを制御ＭＰＵへ出力を行う、
ことを特徴とするプロセス入出力装置とした。
【０００７】
請求項２の発明は、
請求項１記載のプロセス入出力装置において、
一のＩＯモジュールを搭載する一のスロットと、
スロットを複数収容するＩＯシェルフと、
を備え、
前記複数のスロットに対し、稼働側および待機側という二重化ペアのＩＯモジュールのスロットでは連続させつつ、一連のスロット番号を付すことを特徴とするプロセス入出力装置とした。
【０００８】
請求項３の発明は、
請求項２記載のプロセス入出力装置において、
伝送制御モジュールおよびＩＯモジュールはそれぞれハードウェアにより構成された伝送制御手段を備え、
これらの伝送制御手段は、ＩＯモジュールの各二重化ペアに送られるデータの等値化を行うとともに、スロット番号順にデータ伝送を行うことを特徴としたプロセス入出力装置とした。
【０００９】
請求項４の発明は、
請求項２または請求項３に記載のプロセス入出力装置において、
ＩＯモジュールが装着されたスロットをそのスロット番号の奇数、偶数により二分し、電源投入時に前記ＩＯモジュールの一方を稼働、他方を待機として設定することを特徴としたプロセス入出力装置とした。
【００１０】
請求項５の発明は、
請求項２から請求項４のいずれか１項に記載のプロセス入出力装置において、
各ＩＯモジュールを二重化ペア単位で二重化する設定手段を、各ＩＯモジュールごとに設けたことを特徴とするプロセス入出力装置とした。
【００１１】
請求項６の発明は、
請求項２から請求項４のいずれか１項に記載のプロセス入出力装置において、
各ＩＯモジュールを二重化ペア単位で二重化する設定手段を、ＩＯシェルフ上に設けたことを特徴とするプロセス入出力装置とした。
【００１２】
請求項７の発明は、
請求項２から請求項４のいずれか１項に記載のプロセス入出力装置において、
稼働／待機切替え用スイッチを各ＩＯモジュールごとに設置するとともに、このスイッチの操作を各ＩＯモジュールにより検出して二重化ペアとなっているＩＯモジュール間で稼働／待機の設定を切替えることを特徴としたプロセス入出力装置とした。
【００１３】
請求項８の発明は、
請求項２から請求項４のいずれか１項に記載のプロセス入出力装置において、
稼働／待機切替え用スイッチを伝送制御モジュールごとに設置するとともに、このスイッチの操作をそれぞれの伝送制御モジュールにより検出し、次いでその伝送制御モジュールからＩＯバスを経由して各ＩＯモジュールへ切り替え指令を送り、それにより各ＩＯモジュール間の稼働／待機をＩＯシェルフ単位で切替えることを特徴としたプロセス入出力装置とした。
【００１４】
請求項９の発明は、
請求項２から請求項４のいずれか１項に記載のプロセス入出力装置において、
稼働／待機切替え用スイッチをＩＯシェルフ上に設置するとともに、このスイッチの操作を伝送制御モジュールにより検出し、次いで伝送制御モジュールからＩＯバスを経由して各ＩＯモジュールへ切り替え指令を送り、それにより各ＩＯモジュール間の稼働／待機をＩＯシェルフ単位で切替えることを特徴としたプロセス入出力装置とした。
【００１６】
【発明の実施の形態】
以下、図に沿って本発明の実施形態を説明する。
図１は本発明にかかるプロセス入出力装置の二重化方法の第１の実施例を示す。図において、６１はＩＯシェルフであり、２枚の伝送制御モジュール７Ａ，７Ｂと１６枚のＩＯモジュール９１Ａ，９１Ｂ〜９８Ａ，９８Ｂを装着するための実装スロットを有しており、ＩＯシェルフ１台で１台のプロセス入出力装置を構成している。
【００１７】
また、５Ａ，５ＢはＩＯリンク、８Ａ，８ＢはＩＯバスであり、図中のＩＯモジュール９１Ａ，９１Ｂ〜９８Ａ，９８Ｂには、順にスロット番号００と０１，０２と０３，・・・１４と１５が記されており、それぞれのＡ，Ｂのペアごとに同一種のＩＯモジュール９１，９２，・・・９８を実装して二重化される。ＩＯモジュールＡ，Ｂのペアは、一方を稼働、もう一方を待機とし、双方がプロセスに接続される。プロセスからの入力信号は稼働、待機の双方へ入力し、プロセスヘの信号出力は稼働側のみが行う。
【００１８】
次に、プロセスヘの信号出力の例を、図２をもとに説明する。図２は、アナログ出力モジュールの二重化例であり、図中の１０１Ａ，１０１ＢはＩＯバスインタフェース、１０２Ａ，１０２Ｂはマイクロプロセッサ、１０３Ａ，１０３ＢはＤＡ変換器、１０４Ａ，１０４Ｂは稼働／待機の制御信号、１０５Ａ，１０５Ｂは稼働／待機の切替え回路、１０６Ａ，１０６Ｂは出力切替え信号、１０７Ａ，１０７Ｂは出力切替えスイッチである。
【００１９】
二重化ペアのアナログ出力モジュール９１Ａ，９１Ｂは、伝送制御モジュール７Ａ，７ＢよりＩＯバス８Ａ，８Ｂ経由で、同一のディジタル出力値を受信する。二重化ペアのアナログ出力モジュール９１Ａ，９１Ｂは、それぞれＤＡ変換を行い、同一のアナログ出力値を発生するが、プロセスヘ出力するのは、稼働／待機の切替え回路１０５Ａ，１０５Ｂによって決定される稼働側のモジュールのみである。即ち、稼働／待機の切替え回路１０５Ａ，１０５Ｂによってアナログ出力モジュール９１Ａ，９１Ｂの稼働／待機が決定され、その出力切替え信号１０６Ａ，１０６Ｂによって稼働モジュール側となる出力切替えスイッチ１０７Ａ，１０７Ｂの一方がオンとなる。
【００２０】
待機側のモジュールは、前述したように、稼働側と同一のアナログ出力値を常時発生しており、稼働側に異常が発生した場合は、稼働／待機切替え回路１０５Ａ，１０５Ｂが動作し、待機側のモジュールが稼働となって、プロセスヘの出力を継続する。稼働側の異常とは、例えばＩＯバス８Ａ，８Ｂのリードバックチェックエラー、アナログ出力のリードバックチェックエラー、プロセッサ異常（＝ウオッチドッグタイマのオーバフロー）などの定期的自己診断異常である。
次に、プロセスからの信号入力の例を、図３をもとに説明する。
【００２１】
図３は、アナログ入力モジュールの二重化例であり、図において、１０３Ａ，１０３ＢはＡＤ変換回路、１０８Ａ，１０８Ｂは定電流回路であり、その他は図２と同じである。図中のプロセスからのアナログ入力信号は、アナログ入力モジュールペア９２Ａ，９２Ｂの双方に入力されＡＤ変換される。ここで、例えば熱電対の入力のように、プロセス側で測定用の定電流を必要とする場合は、稼働／待機の切替え回路１０５Ａ，１０５Ｂによって決定された稼働側のモジュールのみが定電流を供給する。このようにアナログ入力モジュールペアは常時同一のディジタル値を発生させ、伝送制御モジュールはこれらのディジタル値をＩＯバス８Ａ，８Ｂ経由で読み込み、稼働側のモジュールのディジタル値のみを、ＩＯリンク経由で制御ＭＰＵに伝送する。
【００２２】
次に、第２の実施形態について説明する。図４は第２の実施形態を示し、図中の７Ａは伝送制御モジュール、８Ａ，８ＢはＩＯバス、９１Ａ，９１Ｂは二重化ペアのＩＯモジュール（アナログ出力モジュール）である。伝送制御モジュール７Ａは、ＩＯリンク５Ａ経由で制御ＭＰＵ４Ａより出力データ（ディジタル値）を受信する。この場合、例えばＩＯシェルフ内に、ＩＯモジュールの実装スロットが１６個あるものとし、すべて出力モジュールで二重化されているとすれば、制御ＭＰＵ４Ａは８枚分のディジタルデータを定周期で常時伝送制御モジュール７Ａに伝送することになる。
【００２３】
それらを受信した伝送制御モジュール７Ａのマイクロプロセッサ７３Ａは、受信データが二重化ペアに対して同一のデータとなるように１６枚分に拡張し、メモリ７２Ａにスロット番号順に並べて格納し、ＩＯバスマスタ制御部７１Ａを起動する。ＩＯバス８Ａ，８Ｂは、高速シリアルのマスタ／スレーブ方式のバスであり、ＩＯバスマスタ制御部７１Ａは、アナログ出力モジュール９１Ａ，９１ＢのＩＯバススレーブ制御部１００Ａ，１００Ｂと連動して、スロット番号順にディジタルデータをメモリ１０９Ａ，１０９Ｂに転送する。
【００２４】
この時のデータの流れを図５に示す。ここで、ＩＯバス８Ａ，８Ｂの伝送速度を２Ｍｂｐｓ程度とし、前述したようにハードウェアでデータ伝送を行えば、隣接するスロット間で二重化されたアナログ出力モジュール９１Ａ，９１Ｂ間のデータ等値化の遅れ時間は数十μｓ以内にすることができる。また、二重化ペアのアナログ出力モジュール９１Ａ，９１Ｂは、同一のデータを受信し、同一の動作（ＤＡ変換他）を行うので、その同期化の遅れ時間は、ほぼ前記等値化の遅れ時間とみなすことができる。
【００２５】
次に、第３の実施形態について説明する。図６は第３の実施形態を示し、各部の構成は、図１と同一であるが、二重化ペアの伝送制御モジュール７Ａ，７Ｂ間及びＩＯモジュール９１Ａ，９１Ｂ〜９８Ａ，９８Ｂ間に、それぞれ二重化設定並びに稼働／待機切替え信号Ｄが接続されている。この切替え信号Ｄにより作動する稼働／待機切替え回路の具体例を図７に示し、そのタイムチャートを図８に示す。図７は、ＩＯモジュール９１Ａ，９１Ｂについて示したが、伝送制御モジュール７Ａ，７Ｂもほぼ同様に構成されている。
【００２６】
図７における＊ＭＳＴＣ信号は各ＩＯモジュール９１Ａ，９１Ｂのマイクロプロセッサ１０２Ａ，１０２Ｂが制御する稼働／待機の制御信号であり、＊ＷＤＴＥ信号は各ＩＯモジュール９１Ａ，９１Ｂのハードウェアで実現されるウオッチドッグタイマ監視回路１２９Ａ，１２９Ｂのオーバフロー信号であり、それぞれＯＲゲート１１０Ａ，１１０Ｂに入力される。＊ＲＳＴ信号は、電源投入時に、各ＩＯモジュール９１Ａ，９１Ｂのリセットパルス発生回路１１１Ａ，１１１Ｂで生成されるリセット信号であり、ＪＫ・ＦＦ１１２Ａ，１１２Ｂ，１１３Ａ，１１３Ｂに入力される。
【００２７】
また、ＳＬＴ０，ＳＬＴ１は、ＩＯモジュール９１Ａ，９１Ｂが実装されるスロットの番号を示す信号であり、ＩＯシェルフ６１のマザーボード上に設置されているＩＯモジュール接続コネクタ１２０Ａ，１２０Ｂの所定のピンを、０Ｖにショートあるいは＋５Ｖにプルアップして実装位置毎に設定されている。図示例ではスロット番号を認識するための信号線は２本になっているが、ＩＯシェルフ６１のスロット数が１６の場合は、４本の信号線が必要となる。図７では、簡単な例としてスロット数を４とし信号線を２本とした場合を示している。
【００２８】
次に、この回路の動作を、図８のタイムチャートに従って説明する。ＩＯモジュール９１Ａ，９１Ｂに電源が投入され、リセット信号＊ＲＳＴが解除された後、ＩＯモジュール９１Ａ，９１Ｂのマイクロプロセッサ１０２Ａ，１０２Ｂはスロット番号を認識し、ＩＯモジュール９１Ａの場合はスロット番号が偶数（図示例では、ＳＬＴ０＝“０”，ＳＬＴ１＝“０”）であるので、直ちに＊ＭＳＴＣ信号をＨｉｇｈ（＝“１”）にする。ＩＯモジュール９１Ｂの場合は、スロット番号が奇数（図示例では、ＳＬＴ０＝“１”，ＳＬＴ１＝“０”）であるので１００ｍｓ後に、＊ＭＳＴＣ信号をＨｉｇｈ（＝“１”）にする。
【００２９】
また、なおこの時、電源投入後、リセット信号＊ＲＳＴの解除（＝“１”）までの、ＩＯモジュール９１Ａ，９１Ｂ間の時間差は、２０ｍｓ以内とした。またこの時、ウオッチドッグタイマのオーバフローは発生していないものとする。このように図８のタイムチャートからは、＊ＭＳＴＣ信号を出力する時間差により、スロット番号が偶数のスロットに実装されているＩＯモジュールが、電源投入時には必ず稼働することが分かる。次に、ＩＯモジュールペアが稼働／待機で動作中に、稼働側の異常その他で稼働／待機を切り換える場合のタイムチャートを図９に示す。
【００３０】
図９は、＊ＭＳＴＣ信号の制御による稼働／待機の切り換えの例である。図７および図９において、稼働側のＩＯモジュール９１Ａで＊ＭＳＴＣ信号がＬに反転されると、ＪＫ・ＦＦ１１２Ａから出力されるＭＳＴＳ信号もＬとなり、ＮＡＮＤゲート１１４Ａに入力されて、信号ＤをＨに反転する。信号Ｄは、接続コネクタ１２０Ａを介して他方のＩＯモジュール９１Ｂの接続コネクタ１２０Ｂへ送られる。次いで、信号Ｄが入力されたＩＯモジュール９１ＢにおけるＭ／Ｓ信号はＨレベルに反転され、図示しないが、マイクロプロセッサ１０２Ｂに入力されてＩＯモジュール９１Ｂを稼働状態に切り替える。
【００３１】
また、ＩＯモジュール９１Ａでは、信号ＤをＨに反転した後にＭ／Ｓ信号がＬレベルに反転されて、マイクロプロセッサ１０２Ａに入力されて待機状態に切り替えられる。また、＊ＷＤＴＥ信号の場合も同様であるが、＊ＷＤＴＥ信号の場合は、マイクロプロセッサは関与せず、ハードウェアにより直接、稼働／待機の切替えが行われる。このような稼働／待機の切替え回路は、ＩＯモジュールをシングルで使用するか、二重化で使用するかの設定にも使用することができる。即ち、ＩＯモジュールペアの稼働／待機の切替え回路間を接続すれば二重化となり、開放すればシングルとなる。
【００３２】
次に、第４の実施形態について説明する。図１０は第４の実施形態を示し、基本的構成は図７と共通である。この実施形態では、ＩＯモジュール９１Ａ，９１Ｂの稼働／待機切替え信号の出力部に設定ピン１２１Ａ，１２１Ｂを設けている。この設定ピン１２１Ａ，１２１Ｂを双方接続すれば二重化の設定であり、図７と同一になる。一方この設定ピン１２１Ａ，１２１Ｂを双方開放にすれば、シングルの設定となる。
【００３３】
この実施形態は、ＩＯモジュールのシングル／二重化の設定を、ＩＯモジュールペア単位で設定できるという利点があるが、設定の誤りによる誤動作を引き起こす危険性もある。即ち、ＩＯモジュールペアの片方だけこの設定ピンを接続しても、シングル動作であり二重化にはならない。これらの誤動作を回避するためには、二重化／シングルの設定即ち稼働／待機の切替え回路を使用するか否かの設定を、ＩＯシェルフ上で行えば良い。即ちＩＯシェルフをシングル用と二重化用で２種類用意することにより、誤動作を解消できる。
【００３４】
次に、第５の実施形態について説明する。図１１は第５の実施形態を示し、基本的構成は図７と共通である。この実施形態は、ＩＯモジュールをシングルで使用する場合のＩＯシェルフ６１の例であり、図ではＩＯモジュールの１ペア分のみを示し、また、図７における信号線Ｄを削除している。この実施形態の方法は、ＩＯモジュール９１Ａ，９１Ｂのシングル／二重化の設定を、ＩＯシェルフ単位でしか出来ないという欠点はあるが、設定ピンは排除されているので誤設定による誤動作の危険性がない。また、設定ピンの設定作業も不要となる。なお、伝送制御モジュールがＩＯモジュールの動作状態を知るためには、前述した２つの実施形態に対応して次のような２つの方法のいずれかを用いれば良い。
【００３５】
ＩＯモジュールペア単位で稼働／待機を設定する場合は、伝送制御モジュールがＩＯバス経由でＩＯモジュールの稼働／待機の状態をリードすることにより、ＩＯモジュールのシングル／二重化の設定状態を知ることができる。即ち電源投入時に、偶数／奇数の隣接するスロット番号のＩＯモジュールが双方共稼働の場合はシングル動作であり、一方が稼働でもう一方が待機の場合は二重化動作である。また、ＩＯモジュールのシングル／二重化の設定をＩＯシェルフ単位で行う場合は、ＩＯシェルフ上の伝送制御モジュールの接続コネクタに、シングル／二重化の設定端子を設け、二重化用のＩＯシェルの場合はその端子を０Ｖに短絡し、シングル用の場合は＋５Ｖにプルアップしておき、それを伝送制御モジュールのプロセッサが認識するようにしても良い。
【００３６】
次に、第６の実施形態について説明する。図１２は第６の実施形態を示し、基本的構成は図７と共通であり、図７の構成に、マイクロプロセッサ１０２Ａ，１０２Ｂにより認識することができるスイッチＳＷＡ，ＳＷＢを追加したものである。これまで説明してきたように、二重化ペアのＩＯモジュール９１Ａ，９１Ｂは、電源投入時、ＩＯシェルフ６１上のスロット番号の偶数スロットに実装されているモジュールが稼働となる。また、ＩＯモジュール９１Ａ，９１Ｂには、図示されていないが稼働／待機を表示するＬＥＤが設けられており、図１で説明すれば、ＩＯモジュールペアの、挿入方向からみて左側のモジュール群の稼働表示ＬＥＤが一斉に点灯する。
【００３７】
このような状態で運転中に、いずれかのＩＯモジュールが故障した場合、例えば１台のＩＯシェルフ上の８ペアのＩＯモジュール中１ペアのみ、挿入方向からみて右側のモジュールの稼働表示ＬＥＤが点灯した状態となる。故障モジュールを良品と交換した後も、この状態は変化しない。この状態はシステムとしては何の異常もない状態であるが、ＩＯモジュールペアが双方共正常の場合に、挿入方向から見て左側のモジュールの稼働表示ＬＥＤが常時点灯するように設定すると、システムをメンテナンスする上で確認が容易になる。これは、故障モジュールを良品と交換した後に、意図的に稼働／待機の切替えを行いたいというユーザ要求に対応したものである。
【００３８】
図１２のスイッチＳＷＡ，ＳＷＢは、故障モジュールを良品と交換した後に、稼働／待機の状態を意図的に電源投入直後と同一の状態に戻すために設けられている。即ち図１２で、ＩＯモジュール９１Ｂが稼働でＩＯモジュール９１Ａが待機の時、スイッチＳＷＢを操作すれば、これをＩＯモジュール９１Ｂのマイクロプロセッサが認識し、＊ＭＳＴＣ信号をリセット（＝“０”）することにより、ＩＯモジュール９１Ｂを待機にＩＯモジュール９１Ａを稼働にすることができる。また、この実施形態では、故障モジュールの良品との交換を、活線でも可能とする。なお、この実施形態の方法は、各ＩＯモジュール毎に稼働／待機を切替えるためのスイッチが必要であり、その分がコストアップになる。
【００３９】
次に、第７の実施形態について説明する。図１３は第７の実施形態を示し、基本的構成は図６と共通であり、図６の伝送制御モジュール７Ａ，７ＢにスイッチＳＷＡ，ＳＷＢを追加したものである。このスイッチＳＷＡ，ＳＷＢは稼働／待機の切替え用のスイッチであり、稼働側の伝送制御モジュールのスイッチを操作することで、伝送制御モジュールがＩＯバス経由でＩＯモジュールペアの稼働／待機の切替えを行う。なお、伝送制御モジュールの稼働／待機の状態は、モジュールの前面にＬＥＤ表示される。
【００４０】
伝送制御モジュールは前述のように、ＩＯモジュールの稼働／待機の状態を常時把握しており、前記スイッチの操作時、ＩＯモジュールペアが双方共正常で、かつ奇数スロット番号に実装されているＩＯモジュールが稼働の場合のみ、そのＩＯモジュールに対して、稼働／待機の切り替え指令をＩＯバス経由で発信する。指令を受信したＩＯモジュールは、前記の＊ＭＳＴＣ信号を制御して稼働／待機を切り替える。図１２では、例えば８ペアのＩＯモジュールで１６個のスイッチが必要であったが、図１３の場合は２個で済むことになる。
【００４１】
次に、第８の実施形態について説明する。図１４は第８の実施形態を示す。この実施形態は、ＩＯシェルフ６１上に１個のスイッチＳＷを用意し、これをＩＯシェルフ６１上の伝送制御モジュール７Ａ，７Ｂの実装コネクタ経由で、伝送制御モジュール７Ａ，７Ｂ内のプロセッサ（図示せず）に接続する。このスイッチＳＷを操作すると、伝送制御モジュール７Ａ，７Ｂのプロセッサがこれを認識し、図１３の場合と同様にＩＯバス８Ａ，８Ｂを経由してＩＯモジュール９１Ａ，９１Ｂ〜９８Ａ，９８Ｂに稼働／待機の切替え指令を発信する。この時、スイッチ操作は、稼働／待機双方の伝送制御モジュール７Ａ，７Ｂのプロセッサにより認識されるが、ＩＯモジュール９１Ａ，９１Ｂ〜９８Ａ，９８Ｂに指令を発信するのは、稼働側の伝送制御モジュールだけである。指令を受信したＩＯモジュール９１Ａ，９１Ｂ〜９８Ａ，９８Ｂは前記＊ＭＳＴＣ信号を制御して、稼働／待機を切り換える。
【００４２】
次に、第９の実施形態について説明する。図１５は第９の実施形態を示し、図において、７Ａ，７Ｂは伝送制御モジュールペア、８Ａ，８ＢはＩＯバス、９１Ａ，９１ＢはＩＯモジュールペアである。この図示例では、ＩＯモジュールペアを１ペアのみ示している。また、ＴＲはＩＯバスのドライバ／レシーバ、ＸＣはＩＯバスの伝送制御ＬＳＩである。また、ＩＯバスが二重化されており、伝送制御モジュール、ＩＯモジュール共にＩＯバスインタフェース部に２つのドライバ／レシーバを有する。
【００４３】
この実施形態では、稼働／待機の切替え方法を、前述した各実施形態のＩＯモジュールの切替え方法と同一とする。図１５において、二重化されたペアの伝送制御モジュール７Ａ，７Ｂの稼働側が、二重化されたＩＯバス８Ａ，８Ｂのどちらか一方を使用してＩＯモジュール９１Ａ，９１Ｂとのデータ交換を行う。この時、伝送制御モジュール７Ａ，７Ｂがマスタ、ＩＯモジュール９１Ａ，９１Ｂがスレーブとなる。ＩＯモジュール９１Ａ，９１Ｂは、伝送制御モジュール７Ａ，７Ｂのポーリングアクセスに対して応答し、二重化ペアの伝送制御モジュール７Ａ，７Ｂの稼働／待機が切り替わった時、アクセスされるＩＯバス８Ａ，８Ｂも切り替わることになる。
【００４４】
即ちＩＯモジュール９１Ａ，９１Ｂは、ＩＯバス８Ａ，８Ｂのどちらからアクセスされたかを検出し、アクセスされた方のＩＯバス８Ａ，８Ｂに対して応答する。図１６に、ＩＯモジュール９１Ａ，９１Ｂの、ＩＯバスインタフェース部の詳細ブロック図を示す。ＩＯモジュール９１Ａ，９１Ｂの応答動作を説明すると、先ず、ＩＯモジュールのマイクロプロセッサ１４２は、２つのドライバ／レシーバ１４６Ａ，１４６Ｂを、常時はレシーブ状態に設定しておき、伝送制御モジュールよりＩＯバス８Ａ，８Ｂのいずれかでアクセスされると、それをキャリア検出回路１４５Ａ，１４５Ｂで検出する。
【００４５】
なお、ＩＯバス８Ａ，８Ｂは前述したように高速のシリアルバスである。また、このキャリア検出回路１４５Ａ，１４５Ｂは、一般的なカウンタで簡単に構成できるので具体的な内部構成は図示しないが、伝送制御モジュールより送信されるシリアルパルスをカウントし、所定のパルスをカウントした時点でラッチ信号ＬＡ，ＬＢを出力する。このラッチ信号ＬＡ，ＬＢは、トランシーバ１４４Ａ，１４４Ｂのゲート信号となり、また状態信号として、マイクロプロセッサ１４２にも入力される。例えば、今ＩＯバス８Ａよりアクセスされたとすれば、キャリア検出回路１４５Ａの出力ＬＡが有効となり、トランシーバ１４４Ａのゲートが駆動される。
【００４６】
ＩＯバス８Ａの信号は、ドライバ／レシーバ１４６Ａ、トランシーバ１４４Ａを経由して伝送制御ＬＳＩ１４３へ入力され、送信データがメモリ１４１ヘ格納される。マイクロプロセッサ１４２はこれを解読して伝送制御モジュールに応答データを返送するが、その場合、状態信号ＬＡが有効なので、ドライバ／レシーバ１４６Ａ側をドライブ状態に設定して、伝送制御ＬＳＩ１４３を起動し、メモリ１４１上の応答データをＩＯバス８Ａ経由で伝送する。伝送終了後は、キャリア検出回路１４５Ａをリセットし、状態信号ＬＡを無効状態にすると共に、ドライバ／レシーバ１４６Ａ，１４６Ｂを再びレシーブ状態に設定する。
【００４７】
次に、第１０の実施形態について説明する。図１７は第１０の実施形態を示し、図において、伝送制御モジュール７Ａ，７Ｂは二重化ペアであり、この伝送制御モジュール７Ａ，７ＢもまたＩＯモジュールと同様に、実装スロット番号がＩＯシェルフのマザーボード上で設定されている。今、伝送制御モジュール７Ａが偶数スロットに、伝送制御モジュール７Ｂが奇数スロットに実装されているとする。この状態で電源投入されると、伝送制御モジュール７Ａ，７Ｂ間で稼働／待機が決定されるが、この場合は前述したように、伝送制御モジュール７Ａが稼働となる。
【００４８】
このとき、伝送制御モジュール７Ａは、ドライバ／レシーバ１５１を有効にし、ＩＯバス８Ａを使用してＩＯモジュールとのデータ交換を行う。伝送制御モジュール７Ａに何らかの異常が発生すると、前述の稼働／待機の切替え回路により、伝送制御モジュール７Ｂが稼働、伝送制御モジュール７Ａが待機となるが、伝送制御モジュール７Ｂはこの時、ドライバ／レシーバ１５４を有効にし、ＩＯバス８Ｂを使用してＩＯモジュールとのデータ交換を行う。
【００４９】
次に、二重化プロセス入出力装置の第１１の実施形態について、同様に、図１７を用いて説明する。電源投入時、伝送制御モジュール７Ａが稼働となった時、伝送制御モジュール７Ｂもまた、ドライバ／レシーバ１５３を有効とする。ただしこの場合、伝送制御モジュール７Ｂは待機状態なので、ＩＯバス８Ａのスレーブとして動作する。伝送制御モジュール７Ａは、ＩＯバス８Ａのマスタとして動作し、伝送制御モジュール７Ｂに必要なデータを送信し、データの等値化を行う。
【００５０】
伝送制御モジュール７Ａが何らかの異常を発生した場合は稼働／待機が入れ代わるが、伝送制御モジュール７Ａ側を良品と交換した場合は、今度は伝送制御モジュール７Ａは待機状態として立ち上がるので、伝送制御モジュール７Ａのドライバ／レシーバ１５２が有効となり、伝送制御モジュール７Ａは、ＩＯバス８Ｂのスレーブとして動作し、伝送制御モジュール７Ｂから伝送制御モジュール７Ａに対して、データの等値化が行われる。
【００５１】
【発明の効果】
以上述べたように本発明によれば、制御ＭＰＵにＩＯリンクで接続されるプロセス入出力装置において、そのＩＯモジュールとＩＯバスの二重化を実現したことにより、コントローラ内の制御ＭＰＵからプロセスまでの間を完全に二重化することが可能となり、プロセス制御システムの信頼性をより一層向上させることができる。
【図面の簡単な説明】
【図１】本発明の第１の実施形態の構成と動作を示す説明図である。
【図２】図１の要部を拡大して示した図である。
【図３】図１の要部を拡大して示した図である。
【図４】本発明の第２の実施形態の構成と動作を示す説明図である。
【図５】図４におけるデータの流れを示す説明図である。
【図６】本発明の第３の実施形態の構成と動作を示す説明図である。
【図７】図６の要部を拡大して示した図である。
【図８】図６の動作を示すタイムチャートである。
【図９】図６の動作を示すタイムチャートである。
【図１０】本発明の第４の実施形態の構成と動作を示す説明図である。
【図１１】本発明の第５の実施形態の構成と動作を示す説明図である。
【図１２】本発明の第６の実施形態の構成と動作を示す説明図である。
【図１３】本発明の第７の実施形態の構成と動作を示す説明図である。
【図１４】本発明の第８の実施形態の構成と動作を示す説明図である。
【図１５】本発明の第９の実施形態の構成と動作を示す説明図である。
【図１６】図１５の要部を拡大して示した図である。
【図１７】本発明の第１０および第１１の実施形態の構成と動作を示す説明図である。
【図１８】本発明が適用される分散形制御システムの構成例を示す図である。
【図１９】図１８の要部を拡大して示した図である。
【図２０】従来例を示す図である。
【図２１】図２０の要部を拡大して示した図である。
【符号の説明】
４Ａ  制御ＭＰＵ
５Ａ，５Ｂ  ＩＯリンク
７Ａ，７Ｂ  伝送制御モジュール
８Ａ，８Ｂ  ＩＯバス
６１  ＩＯシェルフ
７１Ａ  ＩＯバスマスタ制御部
７２Ａ  メモリ
７３Ａ  マイクロプロセッサ
９１Ａ，９１Ｂ〜９８Ａ，９８Ｂ  ＩＯモジュール
１００Ａ，１００Ｂ  ＩＯバススレーブ制御部
１０１Ａ，１０１Ｂ  ＩＯバスインタフェース
１０２Ａ，１０２Ｂ  マイクロプロセッサ
１０３Ａ，１０３Ｂ  ＤＡ変換器／ＡＤ変換回路
１０４Ａ，１０４Ｂ  稼働／待機の制御信号
１０５Ａ，１０５Ｂ  稼働／待機の切替え回路
１０６Ａ，１０６Ｂ  出力切替え信号
１０７Ａ，１０７Ｂ  出力切替えスイッチ
１０８Ａ，１０８Ｂ  定電流回路
１０９Ａ，１０９Ｂ  メモリ
【図１】
0003794088.tif 000002
【図２】
0003794088.tif 000003
【図３】
0003794088.tif 000004
【図４】
0003794088.tif 000005
【図５】
0003794088.tif 000006
【図６】
0003794088.tif 000007
【図７】
0003794088.tif 000008
【図８】
0003794088.tif 000009
【図９】
0003794088.tif 000010
【図１０】
0003794088.tif 000011
【図１１】
0003794088.tif 000012
【図１２】
0003794088.tif 000013
【図１３】
0003794088.tif 000014
【図１４】
0003794088.tif 000015
【図１５】
0003794088.tif 000016
【図１６】
0003794088.tif 000017
【図１７】
0003794088.tif 000018
【図１８】
0003794088.tif 000019
【図１９】
0003794088.tif 000020
【図２０】
0003794088.tif 000021
【図２１】
0003794088.tif 000022