JP2010238232A - 産業用コントローラ - Google Patents

産業用コントローラ Download PDF

Info

Publication number
JP2010238232A
JP2010238232A JP2010050817A JP2010050817A JP2010238232A JP 2010238232 A JP2010238232 A JP 2010238232A JP 2010050817 A JP2010050817 A JP 2010050817A JP 2010050817 A JP2010050817 A JP 2010050817A JP 2010238232 A JP2010238232 A JP 2010238232A
Authority
JP
Japan
Prior art keywords
instruction
asic
error
mpu
instruction error
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
JP2010050817A
Other languages
English (en)
Other versions
JP5365875B2 (ja
Inventor
Akio Ono
彰男 小野
Hiromi Yaoita
宏心 矢尾板
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Omron Corp
Original Assignee
Omron Corp
Omron Tateisi Electronics Co
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Omron Corp, Omron Tateisi Electronics Co filed Critical Omron Corp
Priority to JP2010050817A priority Critical patent/JP5365875B2/ja
Publication of JP2010238232A publication Critical patent/JP2010238232A/ja
Application granted granted Critical
Publication of JP5365875B2 publication Critical patent/JP5365875B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Programmable Controllers (AREA)

Abstract

【課題】 命令エラーが発生しても動作を停止することなく継続して演算実行するコントローラにおいて、命令エラーの発生及びその内容を簡単に知ることができるようにする。
【解決手段】 ユーザプログラムは、MPU11aとASIC11bとで実行する。ASICのレジスタ11b′には、実行対象の命令の命令アドレスとそのときの入力パラメータ値が格納される。命令エラーが発生すると、ASICが停止し、MPUがレジスタから停止している命令の命令アドレスと入力パラメータ値を取得すると共に、バックアップメモリ11g等の記憶メモリに格納する。その後、MPUはASICを再起動する。これにより、ASICは、命令エラーを発生した命令の次の命令から継続して演算実行する。記憶メモリに格納された情報は、ツール装置2で読み出して表示することでユーザが容易に認識できる。
【選択図】 図1

Description

本発明は、産業用コントローラに関し、ユーザプログラムの命令エラー発生時の処理機能の改良に関する。
FA(Factory Automation)におけるネットワークシステムは、生産工場内に配備された産業ロボットその他の生産設備の入力機器及び出力機器の制御を司る1または複数のPLC(Programmable Logic Controller)と、そのPLCにより動作が制御される機器とが、制御系のネットワークに接続される。それらPLCと機器は、その制御系のネットワークを介してサイクリックに通信を行うことで、INデータ及びOUTデータ(以下I/Oデータという)の送受を行い、生産設備を制御する。
より具体的には、PLCのCPUユニットにおける制御は、INデータである入力機器のON信号またはOFF信号を入力し、入力したON/OFF情報をユーザプログラムによって論理演算し、演算結果であるOUTデータを出力機器へ出力する。その出力が出力機器に対する動作指示となって出力機器が動作することにより、生産設備を制御する。
ところで、CPUユニットは、上記の論理演算を実行する際に、実行対象の命令の実行条件をチェックし、実行条件(例えば、命令のオペランドの値)が許容範囲外のときは、命令エラーフラグをONし、その命令処理を行わない。このように命令エラーフラグがONした場合でも、通常は演算対象を次の命令に移し、サイクリックな演算処理を継続する(例えば、特許文献1参照)。また、オプション設定として、命令エラーフラグがONしたときには、処理を停止するモードを備えたPLCもある。
これは、実際に生産設備を稼働させている場合、制御の途中で生産設備の動作が停止すると、たとえば、ワークを加熱・加工中で停止することになり、問題があるためである。また、このように実際の生産設備の動作中は、命令エラーがあってもPLCを停止するのは好ましくないが、実際の生産設備による運転開始前のチェック時等においては、係る問題がないので、上記のオプションを利用して命令エラーの発生に伴い動作を停止し、不具合の原因を確認し、修正をすることができる。
特開平07−191866
上述したように、命令エラーが発生したときにPLCの運転を停止させる機能はあるが、運転停止による外部環境への影響が大きいため、実稼動中に本機能が使用されることはない。そのため、PLCは、命令エラーが発生した場合、その命令エラーを生じている命令を実行せずに次の命令を実行するため、当該次の命令が正常とすると、命令フラグはOFFになる。よって、実稼動中においては、後で命令エラーを生じた箇所はもちろんのこと、稼動中のシステムが意図しない動作をしたときに、命令エラーが発生したか否かを確認することもできないという課題があった。
上記の課題を解決するために、本発明は、(1)ユーザプログラムを格納するユーザプログラム記憶手段と、そのユーザプログラム記憶手段に格納されたユーザプログラムを演算実行する演算手段と、その演算手段で前記ユーザプログラムを実行するに際し、そのユーザプログラム中の実行対象の出力系の命令が正常な演算実行のできない命令エラーか否か判断する判断手段と、その判断手段で命令エラーと判断された命令の位置と、そのときの入力パラメータ値とを記憶する命令エラー情報記憶手段と、を有し、演算手段は、命令エラーと判断された命令の次の命令から演算実行を継続して行う産業用コントローラである。産業用コントローラは、実施形態では、プログラマブルコントローラ(PLC)としたが、PAC(Programmable Automation Controller)と称されるパーソナルコンピュータが持つ高速性や高機能や機能拡張性に加え、PLCが持つ高精度や耐久性を備えたコントローラ等の他、各種のコントローラがある。命令エラー情報記憶手段は、実施形態では、記憶メモリやASIC内の特定エリアに対応する。出力系の命令には、算術演算に関する命令が含まれ、一例として“/命令”(除算命令)がある。正常な演算実行のできない命令エラーとは、0で割り算処理をするように演算として実行不可なものはもちろんのこと、入力パラメータ値として取り得る範囲以外の値が入力されるなど、各種のものがある、そして、命令エラーか否かの判断は、たとえば、命令ごとに命令エラーとなる要因(エラー条件)を設定しておき、判断手段は、演算対象の命令と入力パラメータ値が上記の要因に該当するか否かにより簡単に判断することができる。もちろんこれ以外の方法により実現することを妨げない。命令の位置は、実施形態では命令アドレスに対応し、入力パラメータ値はオペランドの値に対応する。
本発明は、実稼働時において、命令エラーが発生しても運転を続けることが重要な産業用コントローラにおいて、命令エラーが発生しても運転を続けることができるとともに、命令エラー発生時の状況はツール装置等を用いて命令エラー情報記憶手段に格納された命令エラーに関する情報(命令の位置と入力パラメータ値等)を読み出すことで知ることができる。
(2)演算手段は、予め決められた命令を実行するASICと、そのASICが実行できない命令を実行するMPUと、を備え、ASICは、演算実行対象の命令の位置と、そのときの入力パラメータ値を一時的に記憶するレジスタを有し、ASICは、命令エラーと判断された場合に停止し、MPUは、ASICが命令エラーを理由に停止した場合にレジスタに格納された命令の位置と入力パラメータ値を取得すると共に前記命令エラー情報記憶手段に格納し、その後、ASICを再起動させるように構成するとよい。これは、図3に示すフローチャートを実行する実施形態により実現されている。
(3)また、演算手段は、予め決められた命令を実行するASICと、そのASICが実行できない命令を実行するMPUと、を備え、前記ASICは、演算実行対象の命令の位置と、そのときの入力パラメータ値を一時的に記憶するレジスタを有し、ASICは、命令エラーと判断された場合に一時停止するとともに、レジスタに格納された命令の位置と入力パラメータ値を命令エラー情報記憶手段に格納し、その命令エラーと判断された命令の次の命令から演算実行を継続して行うようにしてもよい。これは、図10に示すフローチャートを実行する実施形態により実現されている。このようにすると、命令エラーが発生しても、ASIC内で処理できるので、MPUの負荷が軽減される。
(4)命令エラーが発生したことを外部に報知する手段を備えるとよい。外部への報知は、実施形態に示すように、直接または間接的に接続されたツール装置に通知したり、ランプの点灯やブザー等の警報を発し、周囲にいる作業員等に通知したりすることなどがある。
(5)命令エラーと判断された命令に対する入力条件を取得し、命令エラー情報記憶手段に格納する手段を備えるとよい。これは、図11以降に示す実施形態に対応する。このようにすると、命令エラーを発生させるようなプログラムミスや動作条件の不具合などを検証するのに必要な情報が容易かつ迅速に得ることができ、推察並びそれに対する対策の検討が容易に行える。入力条件は、命令実行条件とも称することができる。
本発明は、命令エラーが発生した場合、その命令エラーに関する情報を記憶保持すると共に、後で確認することができるので、命令エラーの発生の事実を並びにその内容を確実に知ることができる。そして、命令エラー発生時に停止させなくても上記の命令エラーを記憶保持することができるので、生産工場等のFAシステムのように、命令エラーを生じても運転を停止することが好ましくない産業用コントローラにおける命令エラーの解析・検証を行うことができる。
本発明に係るプログラマブルコントローラの好適な一実施形態を示す図である。 ASICの機能を示すフローチャートである。 主にMPUの機能を示すフローチャートである。 命令エラーに関する情報の記憶メモリへの格納処理機能を示すフローチャートである。 ユーザプログラムの一例を示す図である。 ユーザプログラムの一例を示す図である。 ASICのレジスタのデータ構造の一例を示す図である。 命令エラーに関する情報の記憶メモリへの格納する機能を説明する図である。 ツール装置の機能を説明する図である。 MPUとASICの機能を示すフローチャートである。 命令エラーに関する情報の記憶メモリへの格納処理機能を示すフローチャートである。 ツール装置の機能を説明する図である。 ツール装置の機能を説明する図である。 ツール装置の機能を説明する図である。
図1は、本発明に係るプログラマブルコントローラ(PLC)1の好適な一実施形態を示している。このPLC1は、ビルディングブロックタイプであり、図1では、通信ユニット10と、CPUユニット11と、I/Oユニット12と、を連結した構成を示しているが、他の各種のユニットが連結されることを妨げない。また、各ユニットの設置個数も任意である。各ユニットは内部バス(PLCバス)を介して接続され、CPUユニット11との間でバス通信をし、データをやり取りする。
通信ユニット10は、フィールドバス3に接続され、フィールドバス3に接続された外部機器・装置と通信する。本発明との関係でいうと、フィールドバス3に接続されたツール装置2と通信する機能を有する。I/Oユニット12は、CPUユニット12と、接続される入力機器や出力機器であるI/O機器との間でI/Oデータの送受を行う。
CPUユニット11は、PLC1全体の制御を司る。図1(b)は、CPUユニットの内部構成の一例を示している。CPUユニット11は、MPU11aと、ASIC11bと、ユーザプログラムを格納するユーザメモリ11cと、I/Oデータとパラメータを格納するI/Oメモリ11dと、MPU11aが演算実行する際に使用するワークメモリ11eと、システムソフトウェアを格納するシステムROM11fと、ユーザプログラムをバックアップするためのバックアップメモリ11gと、内部バス(PLCバス)と接続してデータの送受を行うバスインタフェース11hと、外部装置とデータの送受を行う外部インタフェース11iと、を備える。
バックアップメモリ11gは、フラッシュメモリで構成されるため、電源OFF時もその内容を保持する。このバックアップメモリ11gにユーザプログラムその他の設定パラメータが格納される。ユーザメモリ11cは、SRAMで構成され、電源OFF時は内容を保持することができないので、電源ON時にバックアップメモリ11gからデータを転送することでユーザプログラムを記憶保持する。I/Oメモリ11dは、SRAMで構成されるが、電源OFF時はバッテリにより内容が保持される。外部インタフェース11iは、本実施形態では、USBやイーサネット(登録商標)等のプロトコルに準拠し、ツール装置2を直接接続し、データの送受を行うためのものである。
MPU11aとASIC11bは、ユーザプログラムをサイクリックに演算実行し、ネットワークシステムを構成する各機器の制御等を司る。また、MPU11aは、ツール装置2からの要求(割り込み通知)に従い、各メモリに対してデータの読み書き等をする。ASIC11bは、ユーザプログラムを実行するためのハードウェアであり、ユーザメモリ11cに記載されているデータ(命令オブジェクトコード)を解析し、実行するものである。
ユーザプログラムの命令は、オブジェクトコードと呼ばれるバイナリデータに展開され、ASIC11bはオブジェクトコードを解釈して命令実行を行う。つまり、ASIC11bは、先頭から順に命令を読み出し、自己が実行可能な命令が続く間は、順次その命令を実行し、処理できない命令が出現すると、処理を停止してMPU11aがその命令を実行するのを待ち、実行後は、ASIC11bの実行に復帰する。通常、ユーザプログラムのうち、95%以上はASICで処理する命令で組まれており、これにより、PLCは高速な処理を行うことができるようになっている。
図2は、ユーザプログラムの実行を行うASIC11bの処理機能、すなわち、ASIC11bの基本的な命令実行時処理を示している。ASIC11bには実行開始アドレスが予め設定されているので(S1)、ASIC11bは、その開始アドレスの命令のオブジェクトコードを読み出す(S2)。ASIC11bは、読み出した命令の種類が自己が実行可能か否かを判断し(S3)、ASIC処理命令の場合には、処理ステップS6に飛び、その呼び出した命令をASIC11bが実行する(S6)。そして、処理ステップS2に戻り次の命令を読み出す。また、ASIC11bは、ユーザメモリ11cに格納された命令を順次実行していき、自己が処理できない命令に至ると、停止するとともに、その停止要因を「MPU命令発見」とする(S4)。
後述するように、MPU11aは、ASIC11bの停止を検出し、その停止した原因が、ASIC11bの実行できない「MPU命令発見」であることを認識すると、MPU11aは当該命令を実行した後、ASICの再起動を指示するので、当該指示を受けたASIC11bは再起動する(S5)。これに伴い、ASIC11bは、停止した命令の次の命令を読み出し(S2)、読み出した命令の種類が自己で実行可能か否かを判断する(S3)。
また、ASIC11bは、処理ステップS6の命令実行するに際し、命令エラーが発生しているか否かを判断する機能を備えている。そして、通常モード(基本モード)で実行されている場合には、命令エラーが検出された場合には、その命令を実行せず、次に命令の読み出しを行う。そして、後述するように、命令エラー記録モードで実行している場合、ASICは、命令エラー発生時に一時停止するとともに、命令エラーに関する情報をASIC11bのレジスタ11b′に保持する機能を備える。なお、この命令エラーか否かの判断は、従来公知のアルゴリズムを利用できる。一例を示すと、命令毎にエラー要因(除算命令の場合0で割ること,取り得る範囲を超えた値の入力等)を関連づけたテーブルを持ち、ASIC11bは、命令実行に先立ち関連づけられたエラー要因の有無を判断する。
図3は、命令実行中のMPU11aの機能を主に示している。なお、点線で示す処理ステップは、ASIC11bの内部処理を示している。まず、MPU11aは、ASIC11bに対して実行開始アドレスをセットする(S11)。このセットは、たとえばASIC11bのレジスタ11b′の所定位置に開始アドレスを格納することで行う。
次いで、MPU11aは、ASIC11bに起動命令を発する(S12)。ASIC11bは、起動すると図2に示すフローチャートを実行する(S13)。よって、ASIC11bは、自己が処理可能な命令が続く限り(S14でNo)、順次その命令を実行する。そして、MPU命令を発見したり、命令エラーが発生したりした場合(S14でYes)、ASIC11bは停止する(S15)。また、レジスタ11b′には、停止した要因(MPU命令発見/命令エラー)を特定する情報(アドレスやオペランドの値等の命令エラーに関係する情報)が格納される。
MPU11aは、ASIC11bが停止したのを検出すると、その停止要因を確認し、停止要因が「MPU命令発見」の場合(S16でYes)、その命令を実行する(S17)。また、停止要因が「命令エラー発生」の場合(S18でYes)、その命令エラーを記録する(S20)。この実施例では、ASIC11bにおけるASIC命令実行エラーならびにMPU11aにおけるMPU命令実行エラーはステップ20で記録される。
そして、現在の設定が、「命令エラー発生時に運転を停止させる」モードか否かを判断し(S21)、当該モードでない通常動作時であれば、処理ステップS19に戻り、ASIC11bを再起動する。一方、当該モードの場合、運転を停止する(S22)。
この実施形態でのASIC命令実行時の命令エラーの記録処理は、具体的には、図4に示すフローチャートを実行する。すなわち、MPU11aは、PLC1が内蔵する時計から現在時刻を取得し、記憶メモリにセットする(S20−a)。この記憶メモリは、たとえばワークメモリ11eを用いることができるし、不揮発性のバックアップメモリ11gを利用することもできる。
MPU11aは、ASIC11bのレジスタ11b′を参照し、命令エラーを発生している命令を特定する命令アドレスと、その命令エラーのオペランドの値をそれぞれ取得するとともに、記憶メモリにセットする(S20−b,S20−c)。これにより、今回の命令エラーを発生している命令に対する情報の記録処理が完了する。
また、処理ステップS17のMPU命令の実行中に命令エラーが発生した場合、MPU11aは、一旦処理を停止し、S18の分岐判断でYesとなり、S20の処理ステップでそのときの命令エラーに関する情報を取得すると共に、時刻情報と関連づけて所定のメモリ領域に格納する処理をする機能を付加すると良い。例えば、ステップS14でASIC11bがMPU命令を発見した場合に当該命令のアドレスやオペランドの値をレジスタ11b′に残しておくように構成した場合は、図4に示すフローチャートの処理で良い。
その後、図3に示したように、「命令エラー発生時に運転を停止させる」モードでない場合には、MPU11aは、再度ASIC11bに命令実行を継続して依頼することでPLCの運転を停止させずに命令エラーの発生有無並びに発生条件を記録することができる。なお、当該モードか否かの設定は、ツール装置を用いてCPUユニットが持つパラメータのフラグを書き込んだり、CPUユニット11に設けたモード設定スイッチを切り替えたりすることにより行える。
次に、具体例を示しつつ、命令エラーの記録処理を説明する。まず、実際のユーザプログラムがたとえば図5に示すようになっているとする。この場合に、例えば、命令アドレスnの第2オペランドD100の値が想定していた値と異なる場合、その原因の検証は、以下のように行われる。まず、命令アドレスnの第1オペランドD20の値をD100にコピーする“MOV命令”が実行されているので、D20に値を書き込む命令を探す。すると、命令アドレス10で、“/命令”(除算命令)が実行され、D20に値をセットしていることがわかり、この命令アドレス10でD20の値を決定するものはD0とD10の値であると考え、これらの命令が何らかの理由で正しく動作しなかった(命令エラー(0での割り算処理)が発生した)、や、意図しないタイミングで命令が動作して値を書き換えたことが推察できる。
また、図6(a)に示すラダー図で作成されたユーザプログラムは、ツール装置2によって一旦ニモニックに変換され(図6(b)参照)、その後ニモニックが「命令オブジェクト」と呼ばれるバイナリデータに変換されてPLC1(CPUユニット11)に転送され、CPUユニット11のバックアップメモリ11gに格納される。このバックアップメモリ11gに格納されたユーザプログラムが、起動時にユーザメモリ11cに格納される。
上述したように、ASIC11bは、ユーザプログラムエリアに格納された命令オブジェクトを逐次実行する。そして、読み出した命令オブジェクトをMPUで処理する命令(MPU命令)ならばASICは命令実行を停止し、MPU命令を発見したことをMPUに通知するし、ASIC命令による命令エラー発生を検知すると、命令実行を停止し、「命令エラーが発生した」ことをMPUに通知する。
さらにASIC11bは、現在実行している命令のアドレスや、命令で指定したオペランドの値をASIC11bのレジスタ11b′に格納している。従って、命令エラー発生時に命令実行を停止した場合、レジスタ11b′には、命令エラーを発生している命令についての情報、つまり、Addressレジスタには、命令エラー発生を生じている命令のアドレスが格納され、Operandレジスタにはその命令を実行するための入力パラメータたる各オペランドの値が格納されることになる(図7参照)。
そこで、ASIC11bが命令エラー発生により停止していると、MPU11aは、そのときのASIC11bのレジスタ11b′のAddressレジスタとOperandレジスタに格納されたデータを読み出すことで、命令エラーを生じている命令アドレスと、そのときのオペランドの値を取得できる。一例としては、たとえば図8(a)に示すように、命令アドレス10についての各オペランドの値が、D0=+100,D10=+0,D20=+50とすると、その命令アドレス10の命令を読み出したASIC11bのレジスタ11b′の値は、図8に示すようになっている。
この命令は、0(D10)での割り算処理であるので、命令エラーとなり、ASIC11aは処理を停止する。このときのASIC11bのレジスタ11b′に格納されているデータは、図8(b)に示すようになる。
従って、MPU11aは、処理ステップS20−aを実行することで、図8(c)に示すように、現在時刻、つまり、命令エラーが発生した時刻をCPUユニットの記憶メモリの所定位置にセットする。次いで、MPU11aは、処理ステップS20−bを実行することで、Addressレジスタのデータ(10)を読み出し、上記の時刻の次のメモリエリアにセットする。その後、MPU11aは、処理ステップS20−cを実行することで、各Operandレジスタのデータを読み出し、それぞれ対応するメモリエリアにセットする。なお、図8(c)から明らかなように、命令エラーに関する情報を格納する領域は、複数分用意され、命令エラーが発生する順に、各領域にセットする。図8(c)では、命令アドレス10の命令に関する情報が1番目の領域にセットされており、さらに、この後、命令の実行が進み、新たに命令エラーが発生した場合には、それについての情報は2番目の領域にセットされる。これにより、ユーザプログラムの実行により、複数箇所で命令エラーが発生したとしても、それら複数の命令エラーについての情報がすべて記録される。また、このように命令エラーに関する情報が記録されるので、その後に正常な命令が実行されて命令エラーフラグがOFFになったとしても、後で命令エラーが発生した事実とその内容を知ることができる。
次に、命令エラーに関する情報の報知について説明する。まず、本実施形態では、CPUユニット11は、CPUユニット11に対してネットワーク経由或いは直接接続されたツール装置2に対して命令エラーが発生したことを通知する機能を備える。
具体的には、CPUユニット11は、ツール装置2から通信コマンドを介してアクセス可能なメモリ領域(リレーエリアやカウンタエリアなど)を用いて命令エラーを通知することができる。つまり、CPUユニット11は、命令エラーを検知して記憶メモリにデータを格納している場合、CPUユニット11(MPU11a)は、予め設定した特定のリレーエリアのあるbitをONする。ツール装置2は、PLC1(CPUユニット11)と接続している間、常に通信コマンドを発行している。従って、ツール装置2が上記の命令エラー発生を示す該当するリレーエリアのbitを定期的に参照することでPLCの命令エラー発生の有無を知ることができる。
また、このようにリレーエリアを用いるのではなく、カウンタエリアを用いる方式としては、PLCが命令エラーを検知して記憶メモリにデータを格納している場合、「現時点で幾つの履歴を格納しているか」を示す数値を格納する特定のカウンタエリアを持つようにする。命令エラーが発生していない初期値は、“0”とする。上述したように、ツール装置2は、PLCと接続している間、常に通信コマンドを発行しているので、ツール装置2が該当するカウンタエリアの数値を定期的に参照することでPLCの命令エラー発生の有無、さらには、その発生数を知ることができる。
そして、上記の各種の方法により、ツール装置2が命令エラーの発生を検出すると、CPUユニット11の記憶メモリの該当するメモリ領域を読み出し、取得した情報を表形式で表示する(図9参照)。また、取得した命令アドレスとユーザプログラムから「命令エラーが発生した命令」を特定する。これにより、図9に(b)の「命令」の項目に示すように、具体的な“/命令”を表示する。このように、命令とオペランドの値を表示することで、ユーザは、命令エラーの原因(図示の場合は、0で割っていること)を容易に理解することができる。さらに、命令アドレスから、具体的なプログラムの場所を検証し、命令エラーが生じた原因の究明が迅速に行える。
また、PLCは、上記の特定のリレーエリアに連動し、PLCに接続したランプ等の警報報知する出力装置を動作させ、ユーザに知らせる機能を備えると良い。さらに、上記の特定のカウンタエリアを利用し、命令エラーの発生数を報知する機能を備えても良い。このようにすると、ツール装置2が未接続の場合でも、ユーザは命令エラーが発生したことを知ることができる。よって、ユーザは、その後に、ツール装置2をPLC1に接続し、具体的な命令エラーの内容を知ることができる。
また、上述した実施形態では、MPU11aが命令エラーに関する情報を記録するようにしたが、ASIC11bに係る記録機能を持たせることもできる。つまり、ASIC自身に、命令エラー発生時の命令アドレスや、命令で指定したオペランドの値を特定エリアに書き込む機能を設ける。すると、ASICが命令エラーを検知すると、一旦処理を停止し、レジスタ11b′に格納されている上記のデータを特定エリアに記録する。ASIC11bは、その後、次の命令を継続実行する。これによりPLCの運転を停止させずに命令エラーの発生有無並びに発生条件を記録することができる。この場合、ASIC命令に関しては全てASIC内で処理可能であるため、MPUに処理が渡らず、高速に処理ができる。
ユーザプログラム内にはわずかではあるがMPU命令も存在するため、MPU命令の実行中に命令エラーが発生した場合、MPU11aは、一旦処理を停止し、そのときの命令エラーに関する情報を取得すると共に、時刻情報と関連づけて所定のメモリ領域に格納する処理をする機能を付加すると良い。
図10は、ASIC11b側で命令エラーに関する情報を記録する機能を備えた場合のMPU11a,ASIC11bの機能を示すフローチャートである。図において、点線で囲む処理ステップがASICの処理機能である。
MPU11aは、ASIC11bに対して実行開始アドレスをセットする(S31)。このセットは、たとえばASIC11bのレジスタ11b′の所定位置に開始アドレスを格納することで行う。
次いで、MPU11aは、ASIC11bに起動命令を発する(S32)。ASIC11bは、起動すると自己が実行できる命令が続く限り、連続して順次命令を実行する(S33)。つまり、命令エラー並びにMPU命令を発見しない場合、S34とS35の分岐判断はいずれもNoとなるので、S33に戻りASIC命令を実行する。
そして、ASIC命令で命令エラーが発生した場合(S34でYes)、ASIC11bは、命令エラーを記録する(S41)。つまり、ASIC11bは、レジスタに格納されている命令エラー発生時の命令アドレスとオペランドの値を特定エリアに書き込む。
その後、現在の設定が、「命令エラー発生時に運転を停止させる」モードか否かを判断し(S42)、当該モードでない通常動作時であれば、処理ステップS33に戻り、ASIC11bは、次の命令に対する処理を実行する。一方、当該モードの場合、処理ステップS45に飛び、MPU11aは、運転を停止する(S45)。
一方、ASIC11bは、MPU命令を発見すると、S35でYesとなり、処理を停止する(S36)。また、レジスタ11b′には、停止した要因(MPU命令発見)を特定する情報が格納される。
MPU11aは、ASIC11bが停止したのを検出すると、その停止要因を確認し、停止要因が「MPU命令発見」の場合(S37でYes)、その命令を実行する(S38)。また、MPU命令エラーが発生した場合(S39でYes)、その命令エラーに関する情報を記憶メモリに記録する(S43)。
そして、現在の設定が、「命令エラー発生時に運転を停止させる」モードか否かを判断し(S44)、当該モードでない通常動作時であれば、処理ステップS40に戻り、ASIC11bを再起動する。一方、当該モードの場合、運転を停止する(S45)。もちろん、MPU命令を正常に実行した場合、S39はNoとなるので、処理ステップS40に進みASIC11bを再起動する。
図11以降は、別の実施形態を示している。この実施形態では、命令エラーに関する情報として、上述した命令とオペランドの値に加えて、その命令エラーが発生した命令に対する入力条件も記録し、表示できるようにしている。
まず命令エラーの記録処理は、図11に示すフローチャートを実行する。すなわち、MPU11aは、PLC1が内蔵する時計から現在時刻を取得し、記憶メモリにセットする(S20−a)。この記憶メモリは、たとえばワークメモリ11eを用いることができるし、不揮発性のバックアップメモリ11gを利用することもできる。
MPU11aは、ASIC11bのレジスタ11b′を参照し、命令エラーを発生している命令を特定する命令アドレスを取得するとともに、記憶メモリにセットする(S20−b)。さらに、ASIC11bは、ASIC11bのAddressレジスタから、命令エラーを生じている回路の先頭を検索する(S20−d)。そして、ASIC11bは、回路の先頭からエラーを発生された命令まで、命令オブジェクトを指定するアドレスを特定し(S20−e)、特定したアドレスのデータ値を特定し(S20−f)、その特定したデータ値を記憶メモリにセットする(S20−g)。これにより、今回の命令エラーを発生している命令に対する情報の記録処理が完了する。
上記の処理を、具体例を挙げて説明する。まず、図12(a)に示すように、3つの入力条件が、図示のように、W5.0=ON,W5.1=OFF,W5.2=ONであるとする。このラダー図の回路は、ニモニックで記載すると、図12(b)のようになっている。また、ASICのレジスタは、図12(c)に示すようになる。そこで、MPU11aは、処理ステップS20−aを実行することで、図12(d)に示すように、現在時刻、つまり、命令エラーが発生した時刻をCPUユニットの記憶メモリの所定位置にセットする。次いで、MPU11aは、処理ステップS20−bを実行することで、Addressレジスタのデータ(10)を読み出し、上記の時刻の次のメモリエリアにセットする。その後、MPU11aは、処理ステップS20−d以降を実行することで、回路に含まれるアドレスのデータ値を先頭から順に全て記憶メモリに書き込む。これにより、入力条件やオペランドの値がセットされる。なお、図12(d)から明らかなように、この例でも命令エラーに関する情報を格納する領域は、複数分用意され、命令エラーが発生する順に、各領域にセットする。また、回路は、左母線に接続された入力接点読出命令(LD命令)から繋がるひとかたまりである。
次に、命令エラーに関する情報の報知について説明する。この実施形態でも、上記と同様に、CPUユニット11は、リレー方式やカウンタ方式などにより、ツール装置2に対して命令エラーが発生したことを通知する機能を備える。そこで、ツール装置2は、命令エラーの発生を検出すると、CPUユニット11の記憶メモリの該当するメモリ領域を読み出し、取得した情報を表形式で表示する(図13(a)参照)。この図13(a)に示す表示形式は、上述した図9(b)に示すものと同様である。そして、本実施形態では、詳細ボタンを用意し、この詳細ボタンがクリック等されて選択されると、図13(b)に示すように、命令エラーが発生している命令アドレスから、回路を特定し該当回路のプログラム(ラダー図)と、データを表示する。データの表示は、命令エラーについてのCPUユニット11の記憶メモリを参照し、回路線等からデータ値を読み出すと共に、プログラムを構成する回路線等からデータ値を割り振ることで行う(図14参照)。これは、記憶メモリへのデータの格納が、該回路に含まれるアドレスの値を先頭から順に行ったので、表示の際も先頭から順に呼び出して各回路に割り振ることで対応できる。
図13(b)に示す詳細モードを見たユーザは、D10に値をセットするMOV命令が動作せずに命令が動作したため、結果的にゼロ割が発生して命令が命令エラーとなり、D20にあるべき値がセットできなかったことが分かる。よって、命令エラー発生時の解析がより迅速かつ簡単に行うことができる。
1 PLC
2 ツール装置
11 CPUユニット
11a MPU(演算手段)
11b ASIC(演算手段)
11b′ レジスタ

Claims (5)

  1. ユーザプログラムを格納するユーザプログラム記憶手段と、
    そのユーザプログラム記憶手段に格納されたユーザプログラムを演算実行する演算手段と、
    その演算手段で前記ユーザプログラムを実行するに際し、そのユーザプログラム中の実行対象の出力系の命令が正常な演算実行のできない命令エラーか否か判断する判断手段と、
    その判断手段で命令エラーと判断された命令の位置と、そのときの入力パラメータ値とを記憶する命令エラー情報記憶手段と、
    を有し、
    前記演算手段は、前記命令エラーと判断された命令の次の命令から演算実行を継続して行うものであることを特徴とする産業用コントローラ。
  2. 前記演算手段は、予め決められた命令を実行するASICと、そのASICが実行できない命令を実行するMPUと、を備え、
    前記ASICは、演算実行対象の命令の位置と、そのときの入力パラメータ値を一時的に記憶するレジスタを有し、
    前記ASICは、前記命令エラーと判断された場合に停止し、前記MPUは、前記ASICが命令エラーを理由に停止した場合に前記レジスタに格納された命令の位置と入力パラメータ値を取得すると共に前記命令エラー情報記憶手段に格納し、その後、前記ASICを再起動させるように構成したことを特徴とする請求項1に記載の産業用コントローラ。
  3. 前記演算手段は、予め決められた命令を実行するASICと、そのASICが実行できない命令を実行するMPUと、を備え、
    前記ASICは、演算実行対象の命令の位置と、そのときの入力パラメータ値を一時的に記憶するレジスタを有し、
    前記ASICは、前記命令エラーと判断された場合に一時停止するとともに、前記レジスタに格納された命令の位置と入力パラメータ値を前記命令エラー情報記憶手段に格納し、その命令エラーと判断された命令の次の命令から演算実行を継続して行うことを特徴とする請求項1に記載の産業用コントローラ。
  4. 前記命令エラーが発生したことを外部に報知する手段を備えたことを特徴とする請求項1〜3のいずれか1項に記載の産業用コントローラ。
  5. 前記命令エラーと判断された命令に対する入力条件を取得し、前記命令エラー情報記憶手段に格納する手段を備えたことを特徴とする請求項1〜4のいずれか1項に記載の産業用コントローラ。
JP2010050817A 2009-03-12 2010-03-08 産業用コントローラ Active JP5365875B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2010050817A JP5365875B2 (ja) 2009-03-12 2010-03-08 産業用コントローラ

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
JP2009060227 2009-03-12
JP2009060227 2009-03-12
JP2010050817A JP5365875B2 (ja) 2009-03-12 2010-03-08 産業用コントローラ

Publications (2)

Publication Number Publication Date
JP2010238232A true JP2010238232A (ja) 2010-10-21
JP5365875B2 JP5365875B2 (ja) 2013-12-11

Family

ID=43092441

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2010050817A Active JP5365875B2 (ja) 2009-03-12 2010-03-08 産業用コントローラ

Country Status (1)

Country Link
JP (1) JP5365875B2 (ja)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2014052673A (ja) * 2012-09-04 2014-03-20 Keyence Corp プログラマブルコントローラ、プログラム作成支援装置及びプログラム
JP5460928B1 (ja) * 2013-03-06 2014-04-02 三菱電機株式会社 プログラマブルコントローラ、プログラマブルコントローラシステムおよび実行エラー情報作成方法
WO2014167726A1 (ja) * 2013-04-12 2014-10-16 三菱電機株式会社 プログラマブルコントローラの周辺装置およびデバッグ支援プログラム

Citations (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH03222007A (ja) * 1990-01-26 1991-10-01 Matsushita Electric Works Ltd プログラマブルコントローラ
JPH06222803A (ja) * 1993-01-25 1994-08-12 Mitsubishi Electric Corp プログラマブルコントローラ
JPH07191866A (ja) * 1992-02-17 1995-07-28 Fuji Electric Co Ltd 演算実行エラー検出方式
JP2000298506A (ja) * 1999-04-13 2000-10-24 Toshiba Corp プログラマブルコントローラ
JP2001117608A (ja) * 1999-10-15 2001-04-27 Omron Corp プログラマブルロジックコントローラ
JP2002507303A (ja) * 1997-07-03 2002-03-05 シーメンス アクチエンゲゼルシヤフト プログラミング装置
JP2002358104A (ja) * 2001-03-30 2002-12-13 Omron Corp プログラマブルコントローラ及びその制御方法
JP2004220580A (ja) * 2002-12-27 2004-08-05 Omron Corp プログラマブルコントローラ用ユニット及びメモリ自動復旧方法
JP2007213341A (ja) * 2006-02-09 2007-08-23 Seiko Instruments Inc プログラマブルロジックコントローラ、情報処理装置、制御プログラム、およびテーブル作成プログラム

Patent Citations (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH03222007A (ja) * 1990-01-26 1991-10-01 Matsushita Electric Works Ltd プログラマブルコントローラ
JPH07191866A (ja) * 1992-02-17 1995-07-28 Fuji Electric Co Ltd 演算実行エラー検出方式
JPH06222803A (ja) * 1993-01-25 1994-08-12 Mitsubishi Electric Corp プログラマブルコントローラ
JP2002507303A (ja) * 1997-07-03 2002-03-05 シーメンス アクチエンゲゼルシヤフト プログラミング装置
JP2000298506A (ja) * 1999-04-13 2000-10-24 Toshiba Corp プログラマブルコントローラ
JP2001117608A (ja) * 1999-10-15 2001-04-27 Omron Corp プログラマブルロジックコントローラ
JP2002358104A (ja) * 2001-03-30 2002-12-13 Omron Corp プログラマブルコントローラ及びその制御方法
JP2004220580A (ja) * 2002-12-27 2004-08-05 Omron Corp プログラマブルコントローラ用ユニット及びメモリ自動復旧方法
JP2007213341A (ja) * 2006-02-09 2007-08-23 Seiko Instruments Inc プログラマブルロジックコントローラ、情報処理装置、制御プログラム、およびテーブル作成プログラム

Cited By (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2014052673A (ja) * 2012-09-04 2014-03-20 Keyence Corp プログラマブルコントローラ、プログラム作成支援装置及びプログラム
JP5460928B1 (ja) * 2013-03-06 2014-04-02 三菱電機株式会社 プログラマブルコントローラ、プログラマブルコントローラシステムおよび実行エラー情報作成方法
US9753444B2 (en) 2013-03-06 2017-09-05 Mitsubishi Electric Corporation Programmable controller, programmable controller system, and method of creating execution error information
WO2014167726A1 (ja) * 2013-04-12 2014-10-16 三菱電機株式会社 プログラマブルコントローラの周辺装置およびデバッグ支援プログラム
CN105103064B (zh) * 2013-04-12 2017-03-08 三菱电机株式会社 可编程控制器的周边装置以及调试辅助方法
US9740185B2 (en) 2013-04-12 2017-08-22 Mitsubishi Electric Corporation Peripheral device for programmable controller and debug support program

Also Published As

Publication number Publication date
JP5365875B2 (ja) 2013-12-11

Similar Documents

Publication Publication Date Title
KR100932057B1 (ko) 피엘씨
JP2006285758A (ja) 制御装置の表示システム
CN107885305B (zh) 控制装置、控制方法以及记录介质
TWI521340B (zh) 可程式邏輯控制器
JP6481267B2 (ja) プログラマブル表示器
JP2016197384A (ja) プログラマブルロジックコントローラ、プログラマブルロジックコントローラの制御方法、及び、制御プログラム
EP2733613B1 (en) Controller and program
JP5365875B2 (ja) 産業用コントローラ
JP5041290B2 (ja) プログラマブルコントローラおよびその異常時復旧方法
JP2011215814A (ja) プログラマブルコントローラ、設定値バックアップ・リストアシステム、及び設定値バックアップ・リストアユニット
JP2015103186A (ja) プログラマブルコントローラ
JP4993208B2 (ja) 産業用コントローラ用機器
JP5012548B2 (ja) プログラマブルコントローラ
JP6015068B2 (ja) 制御機器および制御機器の更新時間表示方法
JP6396084B2 (ja) エンジニアリング装置、エンジニアリングシステム、およびダウンロード処理方法
JP2016024798A (ja) 冗長化コントローラシステム、その待機系コントローラ
JP6051545B2 (ja) Plcシステム、状態表示方法、plc、およびプログラマブル表示器
JP6469330B1 (ja) モニタ支援装置、モニタ支援方法およびモニタ支援プログラム
JP2017162135A (ja) 情報処理装置、デバッグシステムおよびスタックオーバフロー検出方法
JPWO2021005691A1 (ja) 制御装置、プログラム監視方法及びプログラム
US11650571B2 (en) Control device, control method, and control program for executing a machining program using flag indications
US20210405597A1 (en) Engineering device, engineering method, and information storage medium
JP2017045303A (ja) パソコン機能異常時の要因検出が可能な制御装置
JP2012228734A (ja) 産業用ロボット
JP5506755B2 (ja) プログラマブル表示器およびそのデータ処理方法

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20120305

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20120319

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20130529

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20130729

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20130815

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20130828

R150 Certificate of patent or registration of utility model

Ref document number: 5365875

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

Free format text: JAPANESE INTERMEDIATE CODE: R150