説明

プログラマブルコントローラ

【課題】CPUが暴走等の異常状態となった場合、その原因を解明可能とすること。
【解決手段】シーケンス制御に関わる同一のプログラムを実行する少なくとも2つのCPU5a,6aと、両CPU5,6のプログラム実行動作が相違するときにそのプログラム実行動作を記録する記録メモリと、を備え、両CPU5,6は、相互のプログラム実行動作を監視し、自己のプログラム実行動作と相手CPUのプログラムの実行動作とが相違するときは、少なくとも相手CPUのプログラム実行動作を記録メモリ3に記録する。

【発明の詳細な説明】
【技術分野】
【0001】
本発明は、各種機械・装置やそれらの周辺機器の動作をシーケンス制御するプログラマブルコントローラに関するものである。
【背景技術】
【0002】
プログラマブルコントローラは、一般に、ファクトリーオートメーション(FA)等で用いられるものであり、例えば、スイッチ、センサ等の各種入力機器からのON/OFF信号を入力し、その入力信号から、ラダー言語などで書かれたシーケンスプログラムに沿って論理演算を実行して、その演算結果により、リレー、モータ等の各種出力機器をON/OFF制御する。
【0003】
図5を参照してこのようなプログラマブルコントローラにおいては、CPUモジュール10は、CPUを内蔵している。そのCPUは、プログラム命令に従い、I/Oモジュール20から制御対象機器の状態を示す信号を取り込み、また、I/Oモジュール20に制御対象機器を制御する信号を出力することで制御対象機器を制御する。CPUは、上記制御状態のデータを通信モジュール30を制御して、データロガ40に記録させることで、制御状態を管理することができるようにしている。
【0004】
上記構成のプログラマブルコントローラでは、データロガ40により制御状態を記録するとしても、CPUモジュール10内のCPUが例えばノイズやその他の原因により暴走して、シーケンスプログラムを正常に実行できなくなると、制御の状態が所定外となる。そのような場合、通信モジュール30はCPU暴走により制御データをデータロガ40に送信することができなくなるので、CPU暴走以後からはデータロガ40には制御状態を記録することができなくなる。そのため、プログラマブルコントローラの制御状態が所定外となった原因が、何によるのかなどを、判定、分析し、解明することができない。そのため、プログラム設計上、トラブル原因を再現できる技術の開発が望まれていた。なお、プログラマブルコントローラの分野において、CPUの暴走に関する特許文献1を下記する。
【特許文献1】特開平09−179665号公報
【発明の開示】
【発明が解決しようとする課題】
【0005】
したがって、本発明においては、トラブルを再現可能とすることで、そのトラブル原因の分析、解明を可能として、制御対象機器を高信頼で制御できるプログラマブルコントローラを構築できるようにすることである。
【課題を解決するための手段】
【0006】
本発明にかかるプログラマブルコントローラは、シーケンス制御に関わる同一のプログラムを実行する少なくとも2つのCPUと、上記両CPUの上記プログラム実行動作が相違するときにプログラム実行動作を記録する記録メモリと、を備え、各CPUは、相互のプログラム実行動作を監視し、相手CPUのプログラム実行動作が自己のプログラム実行動作と相違するときは、上記相違以降のプログラマブルコントローラ制御状態を上記記録メモリに記録することを特徴とするものである。
【0007】
このプログラマブルコントローラ制御状態としては、少なくとも上記相違以降における相手CPUのプログラム実行動作を上記記録メモリに記録することが好ましい。
【0008】
本発明を説明すると、一方のCPUは相手CPUとのプログラム実行動作を比較し相違しているか否かを監視しており、この監視により当該一方のCPUは、相手CPUとのプログラム実行動作が相違しているときには、そのときのプログラマブルコントローラ制御状態として例えば相手CPUのプログラム実行動作を記録メモリに記録する。この記録により、プログラマブルコントローラのトラブルを再現し、そのトラブルの原因を分析したりして解明することができるようになる。その結果、制御対象機器の制御上において、信頼性が高いプログラマブルコントローラを設計構築することができる。
【発明の効果】
【0009】
本発明によれば、少なくとも2つのCPUのうち、一方のCPUが相手CPUとのプログラム実行動作の相違を監視し、プログラム実行動作に相違が有るとき以降のプログラマブルコントローラ制御状態の1つとして例えば相手CPUのプログラム実行動作を記録メモリに記録するので、相手CPUのトラブル原因を記録メモリの記録データから解明することが可能となり、この結果、制御対象機器を高信頼で制御できるプログラマブルコントローラを設計し、構築することができるようになる。
【発明を実施するための最良の形態】
【0010】
以下、添付した図面を参照して、本発明の実施の形態に係るプログラマブルコントローラを説明する。図1は、実施の形態にかかるプログラマブルコントローラの概略構成を示す。図1を参照して、1はCPUモジュール、2はI/Oモジュール、3は記録メモリ、4はモジュールバスを示す。
【0011】
CPUモジュール1は、シーケンス制御に関わる同一のプログラム(シーケンスプログラム)を実行するもので互いに接続された少なくとも2つのCPU5,6と、プログラマブルコントローラの基本性能等を定めるプログラムであるシステムプログラムを格納するシステムメモリ7と、シーケンス制御に関わるプログラムであるシーケンスプログラムと実施の形態の特徴プログラムである相手CPUのシーケンスプログラム実行動作監視/記録処理プログラムを格納するプログラムメモリ8と、各CPU5,6が自己のプログラム実行作業に用いるワークメモリ9とを有する。これらメモリ7−9は上記のように両CPU5,6で共有される共有メモリ10の形態にしてもよいし、各CPU5,6は上記メモリ7−9を個別に備えてもよい。
【0012】
両CPU5,6は、プログラムメモリ8に格納されている同一のシーケンスプログラムを同時実行することができるようになっている。この場合、このシーケンスプログラムを同時実行するための詳細な説明は略するが、例えば、プログラムメモリ8内に2つの同一のシーケンスプログラムが異なる第1、第2アドレス領域に格納されていて、両CPU5,6のうちの一方は第1アドレス領域のシーケンスプログラムにアクセスし、他方は第2アドレス領域のシーケンスプログラムにアクセスすることで同一のシーケンスプログラムを同時実行することができる。また、両CPU5,6は、相互接続されることで後述するような相互監視を可能とされている。
【0013】
I/Oモジュール2は、両CPU5,6にモジュールバス4を介して接続され、図示略の制御対象機器の制御に関わる信号を両CPU5,6に入出力する。各CPU5,6におけるプログラム実行動作とは、プログラムメモリ8に格納されたプログラムの命令の羅列を、フェッチし、順次、解析し、その結果に基づき演算を実行することである。各CPU5,6は、上記命令の実行に際して、I/Oモジュール2から制御対象機器の状態を示す信号を取り込み、また、I/Oモジュール2に制御対象機器を制御する信号を出力することで制御対象機器を制御する。
【0014】
記録メモリ3は、両CPU5,6それぞれのプログラム実行動作上の相違を記録するために設けたメモリである。この記録メモリ3は、上記ワークメモリ9の一部アドレス領域に設けてもよい。
【0015】
図2を参照して、両CPU5,6の構成を本発明の説明の理解のため、ハードウエア的に説明すると、両CPU5,6は、シーケンスプログラム実行部5a,6aと、相手CPUのプログラム実行動作を監視する相手CPU動作監視部5b,6bと、記録メモリ3へのプログラム実行動作データの記録制御を行う記録メモリ制御部5c,6cと、を備える。シーケンスプログラム実行部5a,6aは、プログラムメモリ8の各アドレス領域に格納してあるシーケンスプログラムを実行する。相手CPU動作監視部5b,6bは、両CPU5,6間でシーケンスプログラムの実行動作に相違が発生したか否かを監視する。記録メモリ制御部5c,6cは、相手CPU動作監視部5b,6bから相違が有るとの監視結果を入力すると、そのとき以降の相手CPUのプログラム実行動作を記録する。両CPU5,6は、上記ハードウエア構成をシーケンスプログラムと、相手CPUのシーケンスプログラム実行動作監視/記録処理プログラムによりソフトウエア上で実行するようになっている。
【0016】
上記相手CPUのプログラム実行動作監視は、例えば、図3で示すように1スキャン実行を複数のプログラム実行動作単位に分け、各プログラム実行動作単位ごとに実施するようになっている。なお、実施の形態では1スキャンをシーケンスプログラム実行として説明しているが、各CPU5,6のデータ入力処理からプログラムの実行、そしてプログラムからの結果出力処理までを含めて1スキャンとすることができる。そして、図4のフローチャートを参照して説明するように、ステップn1で、各CPU5,6はシーケンスプログラム実行部5a,6aでシーケンスプログラムを実行していると共に、相手CPU動作監視部5b,6bでプログラム実行動作単位ごとに相手CPUのプログラム実行動作を監視し、ステップn2でプログラム実行動作に相違があると判断すると、ステップn3で記録メモリ制御部5c,6cで相手CPUのプログラム実行動作を記録メモリ3に記録する動作を開始する。
【0017】
こうして、本実施の形態では、相手CPUが暴走して異常になって、そのプログラム実行動作が自己CPUのそれと相違し、そのプログラム実行動作が相違した以降から相手CPUのプログラム実行動作を記録メモリに記録するので、その時点以降での自己と相手それぞれのプログラム実行動作を分析することで、相手CPUのトラブル原因を解明することができるようになる。その結果、制御対象機器の制御上において、その解明に基づいて信頼性が高いプログラマブルコントローラを構築ないし設計することができるようになる。
【図面の簡単な説明】
【0018】
【図1】図1は本発明の実施形態に係るプログラマブルコントローラの構成を示す図である。
【図2】図2は図1のCPUの内部ブロック構成を示す図である。
【図3】図3はプログラム実行動作単位を示す図である。
【図4】図4は動作説明に供するフローチャートである。
【図5】図5は従来例に係るプログラマブルコントローラの構成を示す図である。
【符号の説明】
【0019】
1 CPUモジュール
5,6 CPU
2 I/Oモジュール
3 記録メモリ

【特許請求の範囲】
【請求項1】
シーケンス制御に関わる同一のプログラムを実行する少なくとも2つのCPUと、上記両CPUの上記プログラム実行動作が相違するときにプログラム実行動作を記録する記録メモリと、を備え、各CPUは、相互のプログラム実行動作を監視し、相手CPUのプログラム実行動作が自己のプログラム実行動作と相違するときは、上記相違以降のプログラマブルコントローラ制御状態を上記記録メモリに記録する、プログラマブルコントローラ。
【請求項2】
上記プログラマブルコントローラ制御状態として少なくとも上記相違以降における相手CPUのプログラム実行動作を上記記録メモリに記録する、請求項1に記載のプログラマブルコントローラ。

【図1】
image rotate

【図2】
image rotate

【図3】
image rotate

【図4】
image rotate

【図5】
image rotate


【公開番号】特開2010−39738(P2010−39738A)
【公開日】平成22年2月18日(2010.2.18)
【国際特許分類】
【出願番号】特願2008−201502(P2008−201502)
【出願日】平成20年8月5日(2008.8.5)
【出願人】(000167288)光洋電子工業株式会社 (354)
【Fターム(参考)】