(57)【要約】【課題】多重化システムを短時間で構築が可能なプログラマブルコントローラ及びこれを用いたプログラマブルコントローラの多重化システムを得ること。【解決手段】外部との通信を制御する通信ユニットと、自局プログラマブルコントローラが制御系／待機系のいずれの系で動作しているかの情報と、他局プログラマブルコントローラの動作状況情報とを有し、外部との通信内容と制御系／待機系のいずれの系で動作しているかの情報と、他局プログラマブルコントローラの動作状況情報とにより自局プログラマブルコントローラが制御系／待機系のいずれの系で動作するかを自動的に判断し、その判断した系のプログラマブルコントローラに応じた処理、またはその判断した系への切り替え処理を実行する制御／待機判定ユニットと、プログラマブルコントローラ内の各種処理の制御を行うアプリケーションとを備える。【選択図】        図１
2004326531.tif 000002
【特許請求の範囲】
【請求項１】
プログラマブルコントローラに対して指示情報を与えるコントローラとネットワークを介して相互に通信可能に接続されてプログラマブルコントローラの多重化システムを構成し、制御系プログラマブルコントローラまたは待機系プログラマブルコントローラのいずれかとして動作するプログラマブルコントローラであって、
外部との通信を制御する通信ユニットと、
自局プログラマブルコントローラが前記制御系プログラマブルコントローラまたは前記待機系プログラマブルコントローラのいずれのプログラマブルコントローラとして動作しているかの情報である制御系／待機系識別情報と、他局プログラマブルコントローラの動作状況情報である他局状況情報とを有し、外部との通信内容と前記制御系／待機系識別情報と前記他局状況情報とにより自局プログラマブルコントローラが前記制御系プログラマブルコントローラまたは前記待機系プログラマブルコントローラのいずれのプログラマブルコントローラとして動作するかを自動的に判断し、その判断した系のプログラマブルコントローラに応じた処理、またはその判断した系への切り替え処理を実行する制御／待機判定ユニットと、
プログラマブルコントローラ内の各種処理の制御を行うアプリケーションと
を備えることを特徴とするプログラマブルコントローラ。
【請求項２】
ユーザの要求に応じた処理を実行するとともにプログラマブルコントローラに対する指示通知を形成するユーザアプリケーションと、外部との通信を制御するとともに前記指示通知を前記プログラマブルコントローラに送出する通信ユニットとを備え、プログラマブルコントローラに対して指示情報を与えるコントローラと、
外部との通信を制御する通信ユニットと、自局プログラマブルコントローラが制御系プログラマブルコントローラまたは待機系プログラマブルコントローラのいずれのプログラマブルコントローラとして動作しているかの情報である制御系／待機系識別情報と、他局プログラマブルコントローラの動作状況情報である他局状況情報とを有し、外部との通信内容と前記制御系／待機系識別情報と前記他局状況情報とにより自局プログラマブルコントローラが制御系プログラマブルコントローラまたは待機系プログラマブルコントローラのいずれのプログラマブルコントローラとして動作するかを自動的に判断し、その判断した系のプログラマブルコントローラに応じた処理、またはその判断した系への切り替え処理を実行する制御／待機判定ユニットと、プログラマブルコントローラ内の各種処理の制御を行うアプリケーションとを備えて構成される複数のプログラマブルコントローラとを備え、
前記コントローラと前記プログラマブルコントローラとの通信ユニットがネットワークを介して相互に通信可能に接続されることを特徴とするプログラマブルコントローラの多重化システム。
【請求項３】
前記待機系プログラマブルコントローラは、定期的に動作確認通知を形成して制御系プログラマブルコントローラに対して送信し、該動作確認通知に対する応答通知が前記制御系プログラマブルコントローラから前記待機系プログラマブルコントローラに返信されない場合には、前記待機系プログラマブルコントローラの制御／待機判定ユニットが前記制御系プログラマブルコントローラに異常があると判断して該プログラマブルコントローラを制御系プログラマブルコントローラに自動的に切り替えること
を特徴とする請求項２に記載のプログラマブルコントローラの多重化システム。
【請求項４】
前記コントローラは、前記制御系プログラマブルコントローラ宛のデータ交信のみを行い、該コントローラからのデータ交信を受信した前記制御系プログラマブルコントローラは自局プログラマブルコントローラが制御系プログラマブルコントローラである旨の通知を前記コントローラ及び前記待機系プログラマブルコントローラに送信すること
を特徴とする請求項２に記載のプログラマブルコントローラの多重化システム。
【請求項５】
前記プログラマブルコントローラの多重化システムに参入していない前記プログラマブルコントローラが前記制御系プログラマブルコントローラに対して前記プログラマブルコントローラの多重化システムへ参入する旨の参入通知を送信すると、前記制御系プログラマブルコントローラが該プログラマブルコントローラを前記多重化システムの待機系プログラマブルコントローラとして認識すること
を特徴とする請求項２に記載のプログラマブルコントローラの多重化システム。
【請求項６】
前記待機系プログラマブルコントローラが前記制御系プログラマブルコントローラに対して前記プログラマブルコントローラの多重化システムから離脱する旨の離脱通知を送信すると、前記制御系プログラマブルコントローラが該待機系プログラマブルコントローラを前記多重化システムの待機系プログラマブルコントローラとして認識しないこと
を特徴とする請求項２に記載のプログラマブルコントローラの多重化システム。
【請求項７】
前記待機系プログラマブルコントローラの前記通信ユニットが、該待機系プログラマブルコントローラの状態情報および該通信ユニットの状態情報を定期的に前記コントローラ及び他局プログラマブルコントローラに対して通知すること
を特徴とする請求項２に記載のプログラマブルコントローラの多重化システム。
【請求項８】
前記制御系プログラマブルコントローラが、前記プログラマブルコントローラの多重化システム内の他のプログラマブルコントローラの各種情報を収集した情報テーブルを作成し、他のプログラマブルコントローラに対して送信すること
を特徴とする請求項２に記載のプログラマブルコントローラの多重化システム。
【請求項９】
前記プログラマブルコントローラが、制御系プログラマブルコントローラに切り替わる際の優先順位を示す固有の番号を有し、前記待機系プログラマブルコントローラは該番号に基づいて制御系プログラマブルコントローラに切り替わるプログラマブルコントローラを自動的に判断すること
を特徴とする請求項２に記載のプログラマブルコントローラの多重化システム。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、プログラマブルコントローラ及びこれを用いたプログラマブルコントローラの多重化システムに関し、特にコントローラとプログラマブルコントローラとを備えて構成され、コントローラのプログラミングにかかる負担や作成時間を軽減可能なプログラマブルコントローラ及びプログラマブルコントローラの多重化システムに関する。
【０００２】
【従来の技術】
従来、プログラマブルコントローラを用いたシステムにおいてはシステムの高信頼化を図るためにシステムの多重化、すなわち多重化システムが使用されている。このような信頼性の高い多重化システムを実現するために、例えば制御系システムのシステムダウンを検知し、待機系システムの制御系システムへの切り替えを自動的に行うシステムが使用されている。
【０００３】
この様な待機系システムへの自動切り替え技術としては、例えば以下のような二重化システムが開示されている（特許文献１参照）。この待機系システムへの切り替え方法について簡単に説明する。
【０００４】
この二重化システムは、制御系の中央処理部と、待機系の中央処理部と、入出力部と、各中央処理部に設けられた入出力制御部としての上位入出力制御部と、前記入出力部に接続された入出力制御部としての下位入出力制御部と、各中央処理部に設けられた通信部制御側としての上位通信部制御側と、各中央処理部に設けられた通信部伝送路側としての上位通信部伝送路側とを備える。
【０００５】
また、下位入出力制御部には通信部制御側としての下位通信部制御側が接続され、下位通信部制御側には通信部伝送路側としての下位通信部伝送路側が接続されている。そして、各上位通信部伝送路側と下位通信部伝送路側とがデータ伝送路により接続され、制御系の中央処理部には、上位通信部制御側の自己診断ループが設けられている。
【０００６】
さらに、二つの上位入出力制御部間では上位入出力制御部切り替え信号がやりとりされる。そして、二つの上位入出力制御部間には、データ伝送路を介して上位入出力制御部相互を結ぶ通信部伝送路側の自己診断ループが設けられている。
【０００７】
以上のように構成された通信制御システムおいては、制御側の入出力制御部がトークンを獲得後、一定時間内に出力データを出力しないときは、待機系の上位入出力制御部は自身の監視タイマを起動させる。一定時間内に運転側、すなわち制御側の上位入出力制御部から出力が無い場合には、運転側が異常であると判断する。
【０００８】
そして、待機系の上位入出力制御部はこの判断結果に従って、上位入出力制御部切り替え信号により切り替え要求を出し、運転側、すなわち制御側の入出力制御部の動作を停止させるとともに、自身が運転側となってデータの送出を行う。これにより、システムへの影響を与えることなく、二重化構成の目的を達成することができる。
【０００９】
【特許文献１】
特開平５−３２４３８１号公報（第１頁−第２頁、第１図）
【００１０】
【発明が解決しようとする課題】
しかしながら、上述したような従来の多重化システムの技術では、例えば上位コントローラとプログラマブルコントローラとにより構成される多重化システムの場合、制御系プログラマブルコントローラとなっている機器と通信を行う際には、上位コントローラで動作するユーザプログラムにより制御系プログラマブルコントローラとなっている機器を判別して通信を行わなければならない。
【００１１】
また、制御系プログラマブルコントローラの異常を検出した場合には、待機系プログラマブルコントローラから制御系プログラマブルコントローラへの切り替え処理を上位コントローラで動作するユーザプログラムにより行なわなければならないという煩わしさがある。すなわち、上位コントローラで動作するユーザプログラムにおいては、このような待機系プログラマブルコントローラから制御系プログラマブルコントローラへの切り替え処理を可能とするプログラミングをしなければならず、プログラミングにかかる負担や作成時間が膨大となり、多重化システムの構築期間が長くなるという問題がある。
【００１２】
また、制御系プログラマブルコントローラに異常が生じて待機系プログラマブルコントローラから制御系プログラマブルコントローラへの切り替えが必要となったときに、待機系プログラマブルコントローラが不在である場合や故障中である場合には全体的なシステムダウンに陥り、上位コントローラとの通信が継続できなくなる問題がある。
【００１３】
この発明は、この様な問題を解消するためになされたもので、多重化システムを短時間で構築が可能なプログラマブルコントローラ及びこれを用いたプログラマブルコントローラの多重化システムを得ることを目的としている。
【００１４】
さらに、短時間で構築が可能であるとともに稼働中のプログラマブルコントローラに異常が生じた場合にも安定して且つ確実に動作可能な多重化システムを実現するプログラマブルコントローラ及びこれを用いたプログラマブルコントローラの多重化システムを得ることを目的としている。
【００１５】
【課題を解決するための手段】
上記目的を達成するため、この発明にかかるプログラマブルコントローラは、プログラマブルコントローラに対して指示情報を与えるコントローラとネットワークを介して相互に通信可能に接続されてプログラマブルコントローラの多重化システムを構成し、制御系プログラマブルコントローラまたは待機系プログラマブルコントローラのいずれかとして動作するプログラマブルコントローラであって、外部との通信を制御する通信ユニットと、自局プログラマブルコントローラが前記制御系プログラマブルコントローラまたは前記待機系プログラマブルコントローラのいずれのプログラマブルコントローラとして動作しているかの情報である制御系／待機系識別情報と、他局プログラマブルコントローラの動作状況情報である他局状況情報とを有し、外部との通信内容と制御系／待機系識別情報と他局状況情報とにより自局プログラマブルコントローラが前記制御系プログラマブルコントローラまたは前記待機系プログラマブルコントローラのいずれのプログラマブルコントローラとして動作するかを自動的に判断し、その判断した系のプログラマブルコントローラに応じた処理、またはその判断した系への切り替え処理を実行する制御／待機判定ユニットと、プログラマブルコントローラ内の各種処理の制御を行うアプリケーションとを備えることを特徴とする。
【００１６】
この発明によれば、このプログラマブルコントローラとコントローラとを用いて多重化システムを構成した際に、各プログラマブルコントローラ自身が制御系プログラマブルコントローラまたは待機系プログラマブルコントローラのいずれのプログラマブルコントローラとして動作するかを自動的に判断することができる。そして、各プログラマブルコントローラでは、その判断した系に応じた処理、またはその判断した系への切り替え処理を実行する。
【００１７】
これにより、コントローラにおいては、各プログラマブルコントローラの制御系／待機系の判断や、その系に応じた処理の実行指示などを行う必要がない。その結果、コントローラにおけるユーザアプリケーションにおいては予め各プログラマブルコントローラの判断や、実行処理をプログラミングする必要が無く、コントローラにおけるユーザアプリケーションプログラムの簡略化が可能である。そして、コントローラにおけるユーザアプリケーションのプログラミングにかかる負担や作成時間を大幅に削減し、多重化システムの構築期間を短縮することが可能である。
【００１８】
【発明の実施の形態】
以下に添付図面を参照して、この発明に係るプログラマブルコントローラの好適な実施の形態を詳細に説明する。なお、本発明は、以下の記述に限定されるものではなく、本発明の要旨を逸脱しない範囲において適宜変更可能である。
【００１９】
図１はこの発明によるプログラマブルコントローラの多重化システムのネットワーク構成を示すブロック図である。まず、図１を参照しながらこの発明によるプログラマブルコントローラの多重化システムの構成について説明する。この多重化システムは、図１に示すように上位コントローラ１１０と、複数台のプログラマブルコントローラ２１３と、これらの機器を相互に接続するデータ通信線１４０を具備して構成されている。
【００２０】
上位コントローラ１１０は、ユーザの要求に応じた処理を実行するとともにプログラマブルコントローラに対する指示通知を形成するなど上位コントローラでの各種処理の制御を行うためのユーザアプリケーション１１１と、外部との通信を制御するとともに前記指示通知を前記プログラマブルコントローラに送出するなどプログラマブルコントローラ２１３との通信の制御を行う通信ユニット１１２を有している。
【００２１】
プログラマブルコントローラ２１３は、上位コントローラ１１０及び他のプログラマブルコントローラ２１３との通信の制御を行う通信ユニット２１０と、自局プログラマブルコントローラ２１３が制御系プログラマブルコントローラまたは待機系プログラマブルコントローラ（以下、制御系／待機系と略称する場合がある）のいずれであるかをプログラマブルコントローラ２１３内において自動で判断する制御／待機判定ユニット２１１と、プログラマブルコントローラ２１３での各種処理の制御を行うためのアプリケーション２１２を有している。また、プログラマブルコントローラ２１３は、生存確認タイマ、生存確認インターバルタイマ、応答監視タイマなどの各種のタイマ（図示せず）を内蔵している。さらに、プログラマブルコントローラ２１３には、各プログラマブルコントローラ２１３には待機系プログラマブルコントローラから制御系プログラマブルコントローラに切り替わる際の優先順位を示す固有のプログラマブルコントローラ番号２１６が定義されている。
【００２２】
制御／待機判定ユニット２１１は、アプリケーション２１２及び通信ユニット２１０へのインタフェースデータとして、制御系／待機系識別フラグ２１４と、他局状況テーブル２１５とを有している。ここで、制御系／待機系識別フラグ２１４は自局プログラマブルコントローラ２１３が、制御系／待機系のいずれのプログラマブルコントローラとして動作しているかを記憶しておくためのフラグである。また、他局状況テーブル２１５とは、ユーザもしくは、プログラマブルコントローラ２１３が、他局のプログラマブルコントローラ２１３が正常に動作しているか否かを判断するためのデータを格納するものである。
【００２３】
また、上位コントローラ１１０と制御系プログラマブルコントローラ２１３間の通信においては、通信が正常に行われている事を通知するために、他の全てのプログラマブルコントローラ２１３宛てに伝文、すなわち情報が送信される。これにより、待機系プログラマブルコントローラ２１３は、上位コントローラ１１０と制御系プログラマブルコントローラ２１３間の通信状況を常時把握することが可能となる。また、待機系プログラマブルコントローラ２１３同士の通信は、回線上の負荷、すなわちデータ通信線１４０上の負荷を減少させるために、全てのプログラマブルコントローラ２１３宛てに伝文を送信するのではなく、１対１の通信を行う。
【００２４】
そして、上位コントローラ１１０の通信ユニット１１２からプログラマブルコントローラ２１３へ送信された伝文は、プログラマブルコントローラ２１３の通信ユニット２１０において受信され、制御／待機判定ユニット２１１に渡される。制御／待機判定ユニット２１１では、受信した伝文を解析、判断する。
【００２５】
次に、プログラマブルコントローラ２１３の制御／待機判定ユニット２１１において実行される具体的な処理について、図２〜図７を参照しながら説明する。
【００２６】
図２は全てのプログラマブルコントローラ２１３の制御／待機判定ユニット２１１において実行される処理の主な処理のフローについて示したフローチャートである。制御／待機判定ユニット２１１における処理フローは、制御／待機判定ユニット２１１の動作開始時に開始される。
【００２７】
制御／待機判定ユニット２１１では、まず、制御系／待機系識別フラグ２１４を参照して、自局プログラマブルコントローラ２１３が制御系のプログラマブルコントローラ２１３（以下、単に制御系と称する場合がある。）であるか、待機系のプログラマブルコントローラ２１３（以下、単に待機系と称する場合がある。）であるかを判断し（Ｓ１００）、この後は、判断結果に応じた処理を実行する。すなわち、自局プログラマブルコントローラが制御系であれば制御系の処理ステップ（Ｓ１０１）に進み、逆に待機系であれば待機系の処理ステップ（Ｓ１０５）に進む。
【００２８】
自身が制御系である場合には、まず制御系のプログラマブルコントローラ２１３が進む処理ステップ（Ｓ１０１）において、通信ユニット２１０が受信した上位コントローラ１１０から送信された伝文の要求コード６００を解析することにより、次に実行する処理の振り分けを行う。
【００２９】
ここで、上位コントローラからプログラマブルコントローラへの伝文の送信は、制御系プログラマブルコントローラ２１３または待機系プログラマブルコントローラの区別なく一様に送信される。
【００３０】
そして、上位コントローラでは、制御系プログラマブルコントローラ２１３または待機系プログラマブルコントローラの区別なく全てのプログラマブルコントローラ２１３に対して制御系プログラマブルコントローラ２１３宛の伝文のみを送信する。
【００３１】
この多重化システムにおいては、上位コントローラから送信された伝文の内容を後述するように各プログラマブルコントローラ自体が解析して所定の判断を行い、自身の系に応じた処理を行う。すなわち、この多重化システムにおいては、各プログラマブルコントローラ２１３において、自身が制御系であるか、待機系であるかを判断し、また、上位コントローラから送信された伝文の内容を解析して制御系プログラマブルコントローラ２１３への切り替えなどの所定の処理を自動的に行う。
【００３２】
そして、上位コントローラから制御系プログラマブルコントローラ２１３宛の伝文を受信したプログラマブルコントローラ２１３は、自身の系に応じた処理を自動的に行う。
【００３３】
これにより、このプログラマブルコントローラの多重化システムにおいては、上位コントローラにおいて、プログラマブルコントローラ２１３における制御系／待機系の判断や、その系に応じた処理を行う必要がない。このため、上位コントローラにおけるユーザアプリケーションにおいて予めプログラマブルコントローラ２１３の判断処理をプログラミングする必要が無く、上位コントローラにおけるユーザアプリケーションプログラムの簡略化が可能である。また、これに伴い、上位コントローラにおけるユーザアプリケーションのプログラミングにかかる負担や作成時間を大幅に削減し、多重化システムの構築期間を短縮することが可能である。
【００３４】
また、上位コントローラが制御系／待機系の区別をすることなく、制御系プログラマブルコントローラ２１３宛の伝文のみを送信することで、データ通信線１４０全体のデータ量を大幅に削減することができ、伝送スループットの向上を図ることができる。
【００３５】
上位コントローラ１１０からプログラマブルコントローラ２１３に送信される伝文であるパケットの詳細を図３に示す。図３に示すように、パケットには要求コード６００と、要求／応答判定ビット６０１と、コントローラ番号６０２と、データ６０３とが含まれている。
【００３６】
また、要求コード６００には、上位コントローラ１１０からの通信開始と制御系プログラマブルコントローラ２１３を確認するための制御系／待機系確認要求６０４と、待機系プログラマブルコントローラ２１３が制御系プログラマブルコントローラ２１３の生存を確認するための生存確認要求６０５と、通常処理に使用する通常要求６０６のいずれかが含まれている。
【００３７】
そして、制御系プログラマブルコントローラ２１３は、受信した上位コントローラからの伝文に含まれる要求コードの種類によって、制御系処理ステップ（Ｓ１０２）、生存確認処理ステップ（Ｓ１０３）、通常処理ステップ（Ｓ１０４）のうちのいずれかを選択し、実行する。すなわち、上位コントローラからの伝文に含まれる要求コードが制御系／待機系確認要求６０４である場合には、制御系処理ステップ（Ｓ１０２）に進む。また、上位コントローラからの伝文に含まれる要求コードが生存確認要求６０５である場合には、生存確認処理ステップ（Ｓ１０３）に進む。そして、上位コントローラからの伝文に含まれる要求コードが通常要求６０６である場合には、通常処理ステップ（Ｓ１０４）に進む。
【００３８】
図４は、制御系プログラマブルコントローラ２１３における制御系処理（Ｓ１０２）のフローを示したフローチャートである。プログラマブルコントローラ２１３が制御系、待機系のどちらで立ち上がるかは、自己のプログラマブルコントローラ２１３内の制御系／待機系識別フラグ２１４の設定による。制御／待機判定ユニット２１１は、制御系／待機系識別フラグ２１４の設定値をプログラマブルコントローラの立ち上がり時にアプリケーション２１２から受け取る。
【００３９】
制御系処理ステップ（Ｓ１０２）では、まず、処理ステップ（Ｓ２００）において制御系／待機系確認要求６０４が、要求伝文であるか、応答伝文であるかの判定を行う。制御系／待機系確認要求６０４が要求伝文であるか、応答伝文であるかの判定は、図３に示すパケット上の要求／応答判定ビット６０１を使用して行う。すなわち、要求／応答判定ビット６０１が「ＯＮ」に設定されている場合には、制御系／待機系確認要求６０４には応答データが含まれており、制御系／待機系確認要求６０４は応答伝文であると判断される。また、要求／応答判定ビット６０１が「ＯＦＦ」に設定されている場合には、制御系／待機系確認要求６０４には要求データが含まれており、制御系／待機系確認要求６０４は要求伝文であると判断される。
【００４０】
そして、要求／応答判定ビット６０１が「ＯＦＦ」に設定されている場合、すなわち制御系／待機系確認要求６０４が要求伝文である場合には、処理ステップ（Ｓ２０１）に進む。ここで、制御系プログラマブルコントローラ２１３は、自身のプログラマブルコントローラ２１３が制御系プログラマブルコントローラ２１３である旨を上位コントローラへ通知し、また、自身のプログラマブルコントローラ２１３と上位コントローラ１１０との通信が正常に実施できている旨を他のプログラマブルコントローラ２１３、すなわち待機系のプログラマブルコントローラ２１３へ通知するために、上位コントローラ１１０への応答伝文の作成を実行する（Ｓ２０１）。そして、作成した応答伝文を上位コントローラ１１０へ送信する（Ｓ２０２）。
【００４１】
待機系プログラマブルコントローラ２１３では、この応答伝文を受信することにより、制御系プログラマブルコントローラ２１３が正常に動作していると判断することができる。これにより、待機系プログラマブルコントローラ２１３は、制御系プログラマブルコントローラ２１３に対して生存確認処理を行わなくとも、制御系プログラマブルコントローラ２１３の存在、すなわち制御系プログラマブルコントローラ２１３が正常に動作していることを確認できる。
【００４２】
また、待機系プログラマブルコントローラ２１３が制御系プログラマブルコントローラ２１３に対して生存確認処理を行う必要がないため、データ通信線１４０全体のデータ量を大幅に削減することができ、伝送スループットの向上を図ることができる。この効果は、待機系プログラマブルコントローラ２１３の数が多いほど顕著となる。
【００４３】
要求／応答判定ビット６０１が「ＯＮ」に設定されている場合、すなわち制御系／待機系確認要求６０４が応答伝文である場合には、処理ステップ（Ｓ２０４）に進む。ここで、制御系プログラマブルコントローラ２１３は、ここで、他のプログラマブルコントローラ２１３から受信した応答伝文が上述したような上位コントローラ１１０への応答伝文であった場合には、ネットワーク上に制御系プログラマブルコントローラ２１３が存在している事が分かるので、制御系プログラマブルコントローラ２１３の重複を避けるために待機系降格処理（Ｓ２０４）を実行する。すなわち、制御系プログラマブルコントローラ２１３は、制御系／待機系識別フラグ２１４を「待機系」に設定し、自身は待機系プログラマブルコントローラ２１３に切り替わる。
【００４４】
そして、処理ステップ（Ｓ２０５）において、制御系プログラマブルコントローラ２１３を監視するための生存確認要求伝文を作成して制御系プログラマブルコントローラ２１３に対して送信する。また、これと同時に、内蔵する生存確認タイマを起動する（Ｓ２０６）。
【００４５】
また、待機系プログラマブルコントローラ２１３が多重化されている場合、待機系から制御系への移行や制御系から待機系への降格処理が重複する場合が考えられるが、その場合は図４のステップ（Ｓ２０３）で伝文中のコントローラ番号６０２と自身に割り振られているプログラマブルコントローラ番号２１６を比較し、番号が小さいものに優先権が与えられる。これにより、待機系から制御系への移行の重複を防止し、制御系プログラマブルコントローラ２１３の重複を避けることができる。
【００４６】
図５は待機系プログラマブルコントローラ２１３における待機系処理（Ｓ１０５）の処理フローを示したフローチャートである。待機系処理ステップ（Ｓ１０５）では、まず、処理ステップ（Ｓ３００）において制御系処理と同様に、通信ユニット２１０が受信した上位コントローラ１１０から送信された伝文の要求コード６００を解析することにより、該伝文が要求伝文であるか、応答伝文であるかの判定を行う。判定方法は上述した制御系処理（Ｓ２００）の場合と同様である。
【００４７】
ここで、伝文が要求伝文である場合には、自局プログラマブルコントローラ２１３が制御系プログラマブルコントローラ２１３からの応答待ち状態であるかどうかをチェックする（Ｓ３０１）。自局プログラマブルコントローラ２１３が制御系プログラマブルコントローラ２１３からの応答待ち状態でない場合には（Ｎｏ）、制御系プログラマブルコントローラ２１３の生存を確認するための応答監視タイマを起動して制御系プログラマブルコントローラ２１３からの応答伝文の監視を開始し、応答待ちの状態へ移行する（Ｓ３０２）。
【００４８】
また、自局プログラマブルコントローラ１２３が制御系プログラマブルコントローラ２１３からの応答待ち状態である場合には（Ｙｅｓ）、無処理で終了する。
【００４９】
一方、伝文が応答伝文である場合には、制御系プログラマブルコントローラ２１３が正常に動作していると判断できるため、一旦、全タイマを停止させ（Ｓ３０３）、一定時間経過後に制御系プログラマブルコントローラ２１３の生存確認を実施するための生存確認インターバルタイマを起動する（Ｓ３０４）。
【００５０】
図６は待機系プログラマブルコントローラ２１３における各種タイマのタイムアップした場合の処理フローを示したフローチャートである。最初に、タイムアップしたタイマ種別を確認する（Ｓ４００）。
【００５１】
ここで、タイムアップしたタイマが生存確認タイマ、または応答監視タイマである場合は、制御系プログラマブルコントローラ２１３からの応答伝文を受信できなかった場合であるので、待機系プログラマブルコントローラ２１３が制御系プログラマブルコントローラ２１３に何らかの異常が発生したと判断できる。このため、待機系プログラマブルコントローラ２１３は、制御系プログラマブルコントローラ２１３への昇格処理として、制御／待機判定ユニット２１１が制御系／待機系識別フラグ２１４を「制御系」に変更する（Ｓ４０２）。これにより、この待機系プログラマブルコントローラ２１３は、制御系プログラマブルコントローラ２１３へと切り替わり、制御系プログラマブルコントローラとして動作することになる。
【００５２】
これにより、制御系プログラマブルコントローラ２１３に異常が発生した場合においても、待機系プログラマブルコントローラ２１３が自動的にその異常を検出、判断して制御系プログラマブルコントローラ２１３に切り替わるため、制御系プログラマブルコントローラに異常が生じた場合にも確実に動作可能な多重化システムが実現されている。また、制御系プログラマブルコントローラ２１３の異常による待機系プログラマブルコントローラ２１３の制御系への移行が迅速に行われるため、系切換時間の短縮を実現でき、安定して動作可能な多重化システムが実現されている。その結果、制御系プログラマブルコントローラに異常が発生した場合においても全体的なシステムダウンに陥り、上位コントローラとの通信が継続できなくなるなどの問題の発生が防止することができる。
【００５３】
ここで、待機系プログラマブルコントローラ２１３は、自身のプログラマブルコントローラ２１３の有する他局状況テーブル２１５を参照し、制御系プログラマブルコントローラに切り替わる際の優先順位を示すプログラマブルコントローラ番号２１６が自局プログラマブルコントローラ２１３のプログラム番号より小さい待機系プログラマブルコントローラ２１３が同一ネットワーク上に存在しないことを確認し（Ｓ４０１）、昇格処理（Ｓ４０２）を実施する。これにより、制御系への移行を迅速に行うための無駄な制御系昇格処理を防ぐことが可能となり、迅速且つ確実に制御系昇格処理を行うことができる。
【００５４】
また、タイムアップしたタイマが生存確認インターバルタイマである場合には、制御系プログラマブルコントローラ２１３に対して生存確認要求伝文を送信し（Ｓ４０３）、さらに制御系プログラマブルコントローラ２１３の生存を確認するための生存確認タイマを起動する（Ｓ４０４）。
【００５５】
また、待機系プログラマブルコントローラ２１３の内部データは、常時、制御系プログラマブルコントローラ２１３の内部データ６０３との同期を取る処理を実行し、待機系から制御系への移行が問題なく行われるように動作する。これにより、制御系プログラマブルコントローラ２１３に異常が生じ、待機系プログラマブルコントローラ２１３が制御系プログラマブルコントローラ２１３に切り替わった場合においても、問題なくシステムを制御することができる。
【００５６】
また、それぞれの待機系プログラマブルコントローラ２１３は、常時、制御系プログラマブルコントローラ２１３に対して生存確認、すなわち動作確認を行う。待機系プログラマブルコントローラ２１３側で制御系プログラマブルコントローラ２１３を監視することにより、待機系プログラマブルコントローラ２１３が常に制御系プログラマブルコントローラ２１３の状態を把握することが可能である。これにより、異常時における自動的に待機系プログラマブルコントローラ２１３から制御系プログラマブルコントローラ２１３への切り替えをスムーズに行うことができるため、システムダウンを防止し、上位コントローラ１１０との通信を中断することなくシステムの制御を継続することができる。
【００５７】
図７は制御系プログラマブルコントローラ２１３が待機系プログラマブルコントローラ２１３からの生存確認伝文を受信した場合の処理フローを示したフローチャートである。
【００５８】
待機系プログラマブルコントローラ２１３からの生存確認を受信した制御系プログラマブルコントローラ２１３は制御／待機判定ユニット２１１の有する他局状況テーブル２１５を正常局として作成する（Ｓ５００）。この他局状況テーブル２１５の更新処理が一定時間実施されないプログラマブルコントローラ２１３は何らかの異常が発生したと判断できるため、他局状況テーブル２１５上で異常局扱いとし、待機系プログラマブルコントローラ２１３としての認識を取り消す。
【００５９】
また、プログラマブルコントローラの多重化システムに参入していないプログラマブルコントローラ、すなわち制御系プログラマブルコントローラ２１３に待機系プログラマブルコントローラ２１３として認識されていないプログラマブルコントローラがプログラマブルコントローラの多重化システムへ参入する場合には、その旨の参入通知を制御系プログラマブルコントローラ２１３に対して送信する。参入通知を受信した制御系プログラマブルコントローラ２１３では、このプログラマブルコントローラを新たなプログラマブルコントローラ２１３として認識して他局状況テーブル２１５にこのプログラマブルコントローラ２１３を登録する。これにより、このプログラマブルコントローラ２１３は、待機系プログラマブルコントローラ２１３として認識され、待機系プログラマブルコントローラ２１３として動作を開始する。
【００６０】
また、待機系プログラマブルコントローラ２１３が多重化システムから離脱する場合には、その旨の離脱通知を制御系プログラマブルコントローラ２１３に対して送信する。離脱通知を受信した制御系プログラマブルコントローラ２１３では、この待機系プログラマブルコントローラ２１３では該待機系プログラマブルコントローラ２１３を多重化システムの待機系プログラマブルコントローラとして認識することをやめ、制御系プログラマブルコントローラ２１３の他局状況テーブル２１５が更新されなかったとしても異常局扱いとはしない。
【００６１】
また、待機系プログラマブルコントローラ２１３の通信ユニットは、該待機系プログラマブルコントローラ２１３の状態情報、および該通信ユニットの状態情報を定期的に上記コントローラ及び制御系プログラマブルコントローラ２１３に対して通知する。制御系プログラマブルコントローラ２１３では、この通知を受信した場合、他局状況テーブル２１５を更新する。これにより、制御系プログラマブルコントローラ２１３においても待機系プログラマブルコントローラ２１３の状態を自動的に把握することができる。
【００６２】
制御系プログラマブルコントローラ２１３では、他局状況テーブル２１５の作成後、制御系プログラマブルコントローラ２１３が正常に動作している旨の通知、および他局状況テーブル２１５を配信するために応答伝文を作成し（Ｓ５０１）、要求を受けた待機系プログラマブルコントローラ２１３に対して応答伝文を送信する（Ｓ５０２）。待機系プログラマブルコントローラ２１３では、この応答伝文を受信することにより制御系プログラマブルコントローラ２１３が正常に動作していることを確認する。以上により、生存確認処理が終了する。
【００６３】
制御系プログラマブルコントローラ２１３では、上記のようにして全待機系プログラマブルコントローラ２１３の情報を収集し、他局状況テーブル２１５を交信して、集めた情報を全待機系プログラマブルコントローラ２１３へ配信する。そして、待機系プログラマブルコントローラ２１３では、制御系プログラマブルコントローラ２１３から配信された他局状況テーブル２１５を参照することにより、直接全てのプログラマブルコントローラ２１３を確認することなく、他のプログラマブルコントローラ２１３の状況を知ることが可能となる。これにより、この多重化システムにおいては、制御系プログラマブルコントローラ２１３、待機系プログラマブルコントローラ２１３相互の状態をそれぞれのプログラマブルコントローラ２１３で確認することができるため、異常時のプログラマブルコントローラ２１３の切り替え処理を確実に行うことができる。したがって、制御系プログラマブルコントローラ２１３に異常が生じた場合にも安定して且つ確実に動作可能な多重化システムが実現されている。
【００６４】
この多重化システムにおいては、制御系プログラマブルコントローラ２１３、待機系プログラマブルコントローラ２１３相互の状態をそれぞれのプログラマブルコントローラ２１３で確認することができるため、システムの保守作業を還元且つ効率的に行うことができ、保守作業の軽減が可能である。
【００６５】
以上において説明したように、このプログラマブルコントローラの多重化システムにおいては、安定して且つ確実に動作可能な多重化システムを短時間で構築可能とされている。そして、稼働中のプログラマブルコントローラに異常が生じた場合にも安定して且つ確実に動作可能な多重化システムが実現されている。
【００６６】
【発明の効果】
以上説明したように、この発明によれば、各プログラマブルコントローラ自身が制御系プログラマブルコントローラまたは待機系プログラマブルコントローラのいずれのプログラマブルコントローラとして動作するかを自動的に判断することが可能であり、さらにその判断した系に応じた処理、またはその判断した系への切り替え処理を実行することが可能である。これにより、このプログラマブルコントローラとコントローラとを用いて多重化システムを構成した場合に、コントローラにおいては、各プログラマブルコントローラの制御系／待機系の判断や、その系に応じた処理の実行指示などを行う必要がなく、コントローラにおけるユーザアプリケーションにおいては予め各プログラマブルコントローラの判断や実行処理のプログラミングが不要となる。その結果、コントローラにおけるユーザアプリケーションプログラムの簡略化が可能であり、ユーザアプリケーションのプログラミングにかかる負担や作成時間を大幅に削減し、多重化システムの構築期間を短縮することができるという効果を奏する。
【図面の簡単な説明】
【図１】この発明によるプログラマブルコントローラを用いた高信頼システムの構成を示すブロック図である。
【図２】この発明によるプログラマブルコントローラの制御／待機判定ユニットにおける処理フローを説明するフローチャートである。
【図３】この発明によるプログラマブルコントローラが上位コントローラから受信するデータの構成を説明する図である。
【図４】この発明によるプログラマブルコントローラが制御系プログラマブルコントローラとして動作する場合の処理フローを説明するフローチャートである。
【図５】この発明によるプログラマブルコントローラが待機系プログラマブルコントローラとして動作する場合の処理フローを説明するフローチャートである。
【図６】この発明によるプログラマブルコントローラに内蔵する各種タイマのタイムアップ処理フローを説明するフローチャートである。
【図７】この発明によるプログラマブルコントローラが制御系プログラマブルコントローラとして動作する場合における生存確認伝文を受信した際の処理フローを説明するフローチャートである。
【符号の説明】
１１０  上位コントローラ、１１１  ユーザアプリケーション、１１２  通信ユニット、１４０  データ通信線、２１０  通信ユニット、２１１  制御／待機判定ユニット、２１２  アプリケーション、２１３  プログラマブルコントローラ、２１４  制御系／待機系識別フラグ、２１５  他局状況テーブル、２１６  プログラマブルコントローラ番号。
【図１】
2004326531.tif 000003
【図２】
2004326531.tif 000004
【図３】
2004326531.tif 000005
【図４】
2004326531.tif 000006
【図５】
2004326531.tif 000007
【図６】
2004326531.tif 000008
【図７】
2004326531.tif 000009