(57)【要約】【課題】ＣＰＵが暴走等の異常状態となった場合、その原因を解明可能とすること。【解決手段】シーケンス制御に関わる同一のプログラムを実行する少なくとも２つのＣＰＵ５ａ，６ａと、両ＣＰＵ５，６のプログラム実行動作が相違するときにそのプログラム実行動作を記録する記録メモリと、を備え、両ＣＰＵ５，６は、相互のプログラム実行動作を監視し、自己のプログラム実行動作と相手ＣＰＵのプログラムの実行動作とが相違するときは、少なくとも相手ＣＰＵのプログラム実行動作を記録メモリ３に記録する。【選択図】図１
2010039738.tif 000002
【特許請求の範囲】
【請求項１】
シーケンス制御に関わる同一のプログラムを実行する少なくとも２つのＣＰＵと、上記両ＣＰＵの上記プログラム実行動作が相違するときにプログラム実行動作を記録する記録メモリと、を備え、各ＣＰＵは、相互のプログラム実行動作を監視し、相手ＣＰＵのプログラム実行動作が自己のプログラム実行動作と相違するときは、上記相違以降のプログラマブルコントローラ制御状態を上記記録メモリに記録する、プログラマブルコントローラ。
【請求項２】
上記プログラマブルコントローラ制御状態として少なくとも上記相違以降における相手ＣＰＵのプログラム実行動作を上記記録メモリに記録する、請求項１に記載のプログラマブルコントローラ。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、各種機械・装置やそれらの周辺機器の動作をシーケンス制御するプログラマブルコントローラに関するものである。
【背景技術】
【０００２】
プログラマブルコントローラは、一般に、ファクトリーオートメーション（ＦＡ）等で用いられるものであり、例えば、スイッチ、センサ等の各種入力機器からのＯＮ／ＯＦＦ信号を入力し、その入力信号から、ラダー言語などで書かれたシーケンスプログラムに沿って論理演算を実行して、その演算結果により、リレー、モータ等の各種出力機器をＯＮ／ＯＦＦ制御する。
【０００３】
図５を参照してこのようなプログラマブルコントローラにおいては、ＣＰＵモジュール１０は、ＣＰＵを内蔵している。そのＣＰＵは、プログラム命令に従い、Ｉ／Ｏモジュール２０から制御対象機器の状態を示す信号を取り込み、また、Ｉ／Ｏモジュール２０に制御対象機器を制御する信号を出力することで制御対象機器を制御する。ＣＰＵは、上記制御状態のデータを通信モジュール３０を制御して、データロガ４０に記録させることで、制御状態を管理することができるようにしている。
【０００４】
上記構成のプログラマブルコントローラでは、データロガ４０により制御状態を記録するとしても、ＣＰＵモジュール１０内のＣＰＵが例えばノイズやその他の原因により暴走して、シーケンスプログラムを正常に実行できなくなると、制御の状態が所定外となる。そのような場合、通信モジュール３０はＣＰＵ暴走により制御データをデータロガ４０に送信することができなくなるので、ＣＰＵ暴走以後からはデータロガ４０には制御状態を記録することができなくなる。そのため、プログラマブルコントローラの制御状態が所定外となった原因が、何によるのかなどを、判定、分析し、解明することができない。そのため、プログラム設計上、トラブル原因を再現できる技術の開発が望まれていた。なお、プログラマブルコントローラの分野において、ＣＰＵの暴走に関する特許文献１を下記する。
【特許文献１】特開平０９−１７９６６５号公報
【発明の開示】
【発明が解決しようとする課題】
【０００５】
したがって、本発明においては、トラブルを再現可能とすることで、そのトラブル原因の分析、解明を可能として、制御対象機器を高信頼で制御できるプログラマブルコントローラを構築できるようにすることである。
【課題を解決するための手段】
【０００６】
本発明にかかるプログラマブルコントローラは、シーケンス制御に関わる同一のプログラムを実行する少なくとも２つのＣＰＵと、上記両ＣＰＵの上記プログラム実行動作が相違するときにプログラム実行動作を記録する記録メモリと、を備え、各ＣＰＵは、相互のプログラム実行動作を監視し、相手ＣＰＵのプログラム実行動作が自己のプログラム実行動作と相違するときは、上記相違以降のプログラマブルコントローラ制御状態を上記記録メモリに記録することを特徴とするものである。
【０００７】
このプログラマブルコントローラ制御状態としては、少なくとも上記相違以降における相手ＣＰＵのプログラム実行動作を上記記録メモリに記録することが好ましい。
【０００８】
本発明を説明すると、一方のＣＰＵは相手ＣＰＵとのプログラム実行動作を比較し相違しているか否かを監視しており、この監視により当該一方のＣＰＵは、相手ＣＰＵとのプログラム実行動作が相違しているときには、そのときのプログラマブルコントローラ制御状態として例えば相手ＣＰＵのプログラム実行動作を記録メモリに記録する。この記録により、プログラマブルコントローラのトラブルを再現し、そのトラブルの原因を分析したりして解明することができるようになる。その結果、制御対象機器の制御上において、信頼性が高いプログラマブルコントローラを設計構築することができる。
【発明の効果】
【０００９】
本発明によれば、少なくとも２つのＣＰＵのうち、一方のＣＰＵが相手ＣＰＵとのプログラム実行動作の相違を監視し、プログラム実行動作に相違が有るとき以降のプログラマブルコントローラ制御状態の１つとして例えば相手ＣＰＵのプログラム実行動作を記録メモリに記録するので、相手ＣＰＵのトラブル原因を記録メモリの記録データから解明することが可能となり、この結果、制御対象機器を高信頼で制御できるプログラマブルコントローラを設計し、構築することができるようになる。
【発明を実施するための最良の形態】
【００１０】
以下、添付した図面を参照して、本発明の実施の形態に係るプログラマブルコントローラを説明する。図１は、実施の形態にかかるプログラマブルコントローラの概略構成を示す。図１を参照して、１はＣＰＵモジュール、２はＩ／Ｏモジュール、３は記録メモリ、４はモジュールバスを示す。
【００１１】
ＣＰＵモジュール１は、シーケンス制御に関わる同一のプログラム（シーケンスプログラム）を実行するもので互いに接続された少なくとも２つのＣＰＵ５，６と、プログラマブルコントローラの基本性能等を定めるプログラムであるシステムプログラムを格納するシステムメモリ７と、シーケンス制御に関わるプログラムであるシーケンスプログラムと実施の形態の特徴プログラムである相手ＣＰＵのシーケンスプログラム実行動作監視／記録処理プログラムを格納するプログラムメモリ８と、各ＣＰＵ５，６が自己のプログラム実行作業に用いるワークメモリ９とを有する。これらメモリ７−９は上記のように両ＣＰＵ５，６で共有される共有メモリ１０の形態にしてもよいし、各ＣＰＵ５，６は上記メモリ７−９を個別に備えてもよい。
【００１２】
両ＣＰＵ５，６は、プログラムメモリ８に格納されている同一のシーケンスプログラムを同時実行することができるようになっている。この場合、このシーケンスプログラムを同時実行するための詳細な説明は略するが、例えば、プログラムメモリ８内に２つの同一のシーケンスプログラムが異なる第１、第２アドレス領域に格納されていて、両ＣＰＵ５，６のうちの一方は第１アドレス領域のシーケンスプログラムにアクセスし、他方は第２アドレス領域のシーケンスプログラムにアクセスすることで同一のシーケンスプログラムを同時実行することができる。また、両ＣＰＵ５，６は、相互接続されることで後述するような相互監視を可能とされている。
【００１３】
Ｉ／Ｏモジュール２は、両ＣＰＵ５，６にモジュールバス４を介して接続され、図示略の制御対象機器の制御に関わる信号を両ＣＰＵ５，６に入出力する。各ＣＰＵ５，６におけるプログラム実行動作とは、プログラムメモリ８に格納されたプログラムの命令の羅列を、フェッチし、順次、解析し、その結果に基づき演算を実行することである。各ＣＰＵ５，６は、上記命令の実行に際して、Ｉ／Ｏモジュール２から制御対象機器の状態を示す信号を取り込み、また、Ｉ／Ｏモジュール２に制御対象機器を制御する信号を出力することで制御対象機器を制御する。
【００１４】
記録メモリ３は、両ＣＰＵ５，６それぞれのプログラム実行動作上の相違を記録するために設けたメモリである。この記録メモリ３は、上記ワークメモリ９の一部アドレス領域に設けてもよい。
【００１５】
図２を参照して、両ＣＰＵ５，６の構成を本発明の説明の理解のため、ハードウエア的に説明すると、両ＣＰＵ５，６は、シーケンスプログラム実行部５ａ，６ａと、相手ＣＰＵのプログラム実行動作を監視する相手ＣＰＵ動作監視部５ｂ，６ｂと、記録メモリ３へのプログラム実行動作データの記録制御を行う記録メモリ制御部５ｃ，６ｃと、を備える。シーケンスプログラム実行部５ａ，６ａは、プログラムメモリ８の各アドレス領域に格納してあるシーケンスプログラムを実行する。相手ＣＰＵ動作監視部５ｂ，６ｂは、両ＣＰＵ５，６間でシーケンスプログラムの実行動作に相違が発生したか否かを監視する。記録メモリ制御部５ｃ，６ｃは、相手ＣＰＵ動作監視部５ｂ，６ｂから相違が有るとの監視結果を入力すると、そのとき以降の相手ＣＰＵのプログラム実行動作を記録する。両ＣＰＵ５，６は、上記ハードウエア構成をシーケンスプログラムと、相手ＣＰＵのシーケンスプログラム実行動作監視／記録処理プログラムによりソフトウエア上で実行するようになっている。
【００１６】
上記相手ＣＰＵのプログラム実行動作監視は、例えば、図３で示すように１スキャン実行を複数のプログラム実行動作単位に分け、各プログラム実行動作単位ごとに実施するようになっている。なお、実施の形態では１スキャンをシーケンスプログラム実行として説明しているが、各ＣＰＵ５，６のデータ入力処理からプログラムの実行、そしてプログラムからの結果出力処理までを含めて1スキャンとすることができる。そして、図４のフローチャートを参照して説明するように、ステップｎ１で、各ＣＰＵ５，６はシーケンスプログラム実行部５ａ，６ａでシーケンスプログラムを実行していると共に、相手ＣＰＵ動作監視部５ｂ，６ｂでプログラム実行動作単位ごとに相手ＣＰＵのプログラム実行動作を監視し、ステップｎ２でプログラム実行動作に相違があると判断すると、ステップｎ３で記録メモリ制御部５ｃ，６ｃで相手ＣＰＵのプログラム実行動作を記録メモリ３に記録する動作を開始する。
【００１７】
こうして、本実施の形態では、相手ＣＰＵが暴走して異常になって、そのプログラム実行動作が自己ＣＰＵのそれと相違し、そのプログラム実行動作が相違した以降から相手ＣＰＵのプログラム実行動作を記録メモリに記録するので、その時点以降での自己と相手それぞれのプログラム実行動作を分析することで、相手ＣＰＵのトラブル原因を解明することができるようになる。その結果、制御対象機器の制御上において、その解明に基づいて信頼性が高いプログラマブルコントローラを構築ないし設計することができるようになる。
【図面の簡単な説明】
【００１８】
【図１】図１は本発明の実施形態に係るプログラマブルコントローラの構成を示す図である。
【図２】図２は図１のＣＰＵの内部ブロック構成を示す図である。
【図３】図３はプログラム実行動作単位を示す図である。
【図４】図４は動作説明に供するフローチャートである。
【図５】図５は従来例に係るプログラマブルコントローラの構成を示す図である。
【符号の説明】
【００１９】
１  ＣＰＵモジュール
５，６  ＣＰＵ
２  Ｉ／Ｏモジュール
３  記録メモリ
【図１】
2010039738.tif 000003
【図２】
2010039738.tif 000004
【図３】
2010039738.tif 000005
【図４】
2010039738.tif 000006
【図５】
2010039738.tif 000007