(57)【要約】【課題】本発明は、ラダープログラムを編集し直すことなく、着目した回路に限定して動作を確認することの出来るデバッグ装置およびプログラム確認方法を実現することを目的とする。【解決手段】本発明は、自身の記憶部に格納されたラダープログラムを実行するプログラマブルコントローラのラダープログラムの動作確認を行うデバッグ装置において、前記記憶部に格納されたラダープログラムの命令書き換え対象と書き換え内容を指定する入力部と、この入力部で指定された命令書き換え対象と書き換え内容により、前記記憶部のラダープログラムの命令文を書き換える命令書き換え手段とを設けたことを特徴とする。【選択図】図１
2011022838.tif 000002
【特許請求の範囲】
【請求項１】
自身の記憶部に格納されたラダープログラムを実行するプログラマブルコントローラのラダープログラムの動作確認を行うデバッグ装置において、
前記記憶部に格納されたラダープログラムの命令書き換え対象と書き換え内容を指定する入力部と、
この入力部で指定された命令書き換え対象と書き換え内容により、前記記憶部のラダープログラムの命令文を書き換える命令書き換え手段と
を設けたことを特徴とするデバッグ装置。
【請求項２】
前記命令書き換え手段は、前記記憶部のラダープログラムを元の命令文に戻すことを特徴とする請求項１記載のデバッグ装置。
【請求項３】
前記記憶部は、コンパイルされたラダープログラムを格納することを特徴とする請求項１または２記載のデバッグ装置。
【請求項４】
前記入力部の指定を表示部に表示する表示処理手段を備えたことを特徴とする請求項１〜３のいずれかに記載のデバッグ装置。
【請求項５】
記憶部に格納されたラダープログラムの確認を行うラダープログラム確認方法において、
入力部により、前記記憶部のラダープログラムの命令書き換え対象と書き換え内容を指定し、
この指定により、前記記憶部のラダープログラムの命令文を書き換え、
この書き換えられたラダープログラムを、ラダープログラム実行部が実行することを特徴とするラダープログラム確認方法。
【請求項６】
前記記憶部のラダープログラムを元の命令文に戻すことを特徴とする請求項５記載のラダープログラム確認方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ラダープログラム上の着目した回路に限定して動作を変更・確認することの出来るデバッグ装置およびラダープログラム確認方法に関する。
【背景技術】
【０００２】
プログラマブルコントローラ（ＰＬＣ）は、工場等で用いられる制御装置で、外部にはバルブやモータ等の被制御対象機器が接続されており、それら被制御対象機器の制御はラダープログラムを使用して行う。ラダープログラムとは、接続された被制御対象機器に関する入出力接点（デバイス）の論理を視覚的にイメージした電気回路図であり、ラダーチャートととも呼ばれる。
【０００３】
ＰＬＣでラダープログラムを実行させた際に、被制御対象機器の動作がユーザの所望したものと異なる等、何らかの不具合が発生した際には、その原因を調査するために、ラダープログラムのデバッグが行われる。デバッグの一つの方法として、ラダープログラムに記述されているデバイスに着目し、その命令を強制的に書き換えて、ラダープログラムを実行させたい場合がある。
【０００４】
このような装置の構成を、図面を用いて説明する。図４において、入力部１は、キーボードやポインティングデバイス等で、入力を行う。表示部２は、モニタ等の画面で、ラダープログラムの表示等を行う。コンピュータ３は、パーソナルコンピュータ等で、記憶部３１、デバッガ３２を備え、入力部１と表示部２に接続されている。記憶部３１は、ラダープログラムを格納する。デバッガ３２は、記憶部３１に接続され、表示処理手段３２１を備え、表示処理手段３２１は、記憶部３１のラダープログラムに基づいて表示部２に表示する。
【０００５】
ＰＬＣ４は、記憶部４１、ラダープログラム実行部４２、制御部４３を有し、コンピュータ３と接続されており、また、外部には図示しない被制御対象機器を接続している。記憶部４１は、プログラム領域４１１を有し、このプログラム領域４１１には、記憶部３１に格納されているラダープログラムをコンパイルした実行形式（命令文）があらかじめダウンロードされている。ラダープログラム実行部４２は、記憶部４１のプログラム領域４１１のラダープログラムの命令文を実行し、また、強制実行手段４２１を有している。制御部４３は、コンピュータ３と、記憶部４１と、ラダープログラム実行部４２とに接続されている。
【０００６】
次に、図５を用いて、デバッグ対象となるラダープログラムについて説明する。Ａ〜Ｃは入力接点、Ｄ、Ｅは出力接点、Ｆ、Ｇは、入力条件が真（入力接点がＯＮ）であれば演算を実行する演算回路である。
【０００７】
回路ａにおいて、入力接点Ａ”Ｉ００１”は、外部からアクションがあったときに回路がＯＮとなる接点をあらわしており、また、出力接点Ｄ”Ｉ００２”は、入力条件（入力接点Ａ”Ｉ００１”）がＯＮの場合にＯＮを出力し、入力条件がＯＦＦの場合にＯＦＦを出力する出力接点を表している。
【０００８】
回路ｂにおいて、入力接点Ｂ”Ｉ００２”は前述の回路ａの出力接点Ｄ”Ｉ００２”を入力条件として評価する接点である。つまり、回路ａの出力接点Ｄ”Ｉ００２”がＯＮあるいはＯＦＦあれば、回路ｂの入力接点Ｂ”Ｉ００２”は、それぞれＯＮあるいはＯＦＦとなる。そして、回路ｂの入力条件つまり”Ｉ００２”がＯＮであれば、レジスタＦ”Ｄ００１”についての演算を行う。
【０００９】
回路ｃにおいて、入力接点Ｃ”Ｉ００２”の入力条件を評価し、ＯＮであれば、レジスタＧ”Ｄ００２”についての演算を行う。
【００１０】
次に、図６を用いて、プログラム領域４１１にダウンロードされている実行形式（命令文）について、アドレス順に簡単に説明する。尚、図６における回路ａ〜ｃは、既に説明した図５におけるの回路ａ〜ｃにそれぞれ対応している。
【００１１】
アドレス０ｘ１００〜０ｘ１０４は、回路ａの命令文である。アドレス０ｘ１００で、回路ａの入力接点”Ｉ００１”の読み込みを行う。アドレス０ｘ１０４で回路ａの出力接点”Ｉ００２”の出力を行う。
【００１２】
アドレス０ｘ１０８〜０ｘ１１８は、回路ｂの命令文である。アドレス０ｘ１０８で回路ｂの入力接点”Ｉ００２”の読み込みを行う。アドレス０ｘ１０Ｃで回路ｂの入力条件の退避を行う。アドレス０ｘ１１０で回路ｂの出力接点”Ｉ００３”の出力を行う。アドレス０ｘ１１４では、退避した回路ｂの入力条件を復元する。アドレス０ｘ１１８では、復元した回路ｂの入力条件に基づき、入力条件がＯＮであればレジスタ”Ｄ００１”に対する演算を行う。
【００１３】
アドレス０ｘ１１Ｃ〜０ｘ１２０は、回路ｃの命令文である。アドレス０ｘ１１Ｃで回路ｃの入力接点”Ｉ００２”の読み込みを行う。アドレス０ｘ１２０では、回路ｃの入力条件がＯＮならばレジスタ”Ｄ００２”に対する演算を行う。
【００１４】
このような装置の動作例を、図４〜７を用いて説明する。
【００１５】
ユーザは、ラダープログラムをデバッグする際には、入力部１を介してコンピュータ３のデバッガ３２を操作する。これによりデバッガ３２の表示処理手段３２１は、記憶部３１のラダープログラムに記述されているデバイスを表示部２に表示させる。ユーザは入力部１を操作し、特定のデバイスを指定して、そのデバイスに対して強制的に実行したい命令を選択する。例えば、図７の例では、デバイス”Ｉ００２”に対してＯＮ（強制的に導通）を指定している。
【００１６】
デバッガ３２は、ユーザが入力部１で指定した、デバイスに対しての指示を、ＰＬＣ４の制御部４３に出力する。制御部４３は、当該指示を、ラダープログラム実行部４２に備えられている強制実行手段４２１に通知する。
【００１７】
強制実行手段４２１は、当該指示に基づいて、ラダープログラム実行部４２が実行する命令文を監視し、命令文にユーザが指定したデバイスが含まれる場合には、例外処理に移り、命令文のデバイスの値をユーザが指定した値、たとえばＯＮに置き換えて実行して、例外処理から戻る。このように、指定したデバイスに対する値を所望の値に置き換えてラダープログラムを実行させることが出来る。
【先行技術文献】
【特許文献】
【００１８】
【特許文献１】特開平８−２２３１０号公報
【発明の概要】
【発明が解決しようとする課題】
【００１９】
しかしながら、このような装置では、指定したデバイスに対する値を強制的に置き換えて実行できるものの、デバイスに対しての指示が、ラダープログラム上の全てに及んでしまうため、着目した回路のみに限定して動作を変更・確認することが出来ない。例えば、図６の例で、回路ｂに着目して、入力接点”Ｉ００２”の状態を強制的にＯＮ状態とするために、回路ａの「ＯＵＴ  Ｉ００２」（０ｘ１０４）実行後にデバイスＩ００２を強制的にＯＮすることを意味している。図５のラダープログラムで表現すれば、入力接点”Ｉ００２”は回路ｂ、回路ｃにも出現しているので、たとえ回路ｂの”Ｉ００２”に着目したつもりでも、結果的に回路ｃの動作も変わってしまうということになる。
【００２０】
したがって、どうしても、着目した回路のみに限定して動作を変更・確認するためには、元のラダープログラムを編集し、回路ｂのデバイス”Ｉ００２”と命令を別のデバイスと命令に置き換え、コンパイルし、命令文を記憶部４１のプログラム領域４１１にダウンロードし、ラダープログラムを実行しなければならず、デバッグの効率が悪かった。
【００２１】
そこで、本発明の目的は、ラダープログラムを編集し直すことなく、着目した回路に限定して動作を確認することの出来るデバッグ装置およびプログラム確認方法を実現することにある。
【課題を解決するための手段】
【００２２】
このような課題を達成するために、本発明のうち請求項１記載の発明は、
自身の記憶部に格納されたラダープログラムを実行するプログラマブルコントローラのラダープログラムの動作確認を行うデバッグ装置において、
前記記憶部に格納されたラダープログラムの命令書き換え対象と書き換え内容を指定する入力部と、
この入力部で指定された命令書き換え対象と書き換え内容により、前記記憶部のラダープログラムの命令文を書き換える命令書き換え手段と
を設けたことを特徴とする。
請求項２記載の発明は、請求項１記載の発明であって、
前記命令書き換え手段は、前記記憶部のラダープログラムを元の命令文に戻すことを特徴とする。
請求項３記載の発明は、請求項１または２記載の発明であって、
前記記憶部は、コンパイルされたラダープログラムを格納することを特徴とする。
請求項４記載の発明は、請求項１〜３のいずれかに記載の発明であって、
前記入力部の指定を表示部に表示する表示処理手段を備えたことを特徴とする。
請求項５記載の発明は、
記憶部に格納されたラダープログラムの確認を行うラダープログラム確認方法において、
入力部により、前記記憶部のラダープログラムの命令書き換え対象と書き換え内容を指定し、
この指定により、前記記憶部のラダープログラムの命令文を書き換え、
この書き換えられたラダープログラムを、ラダープログラム実行部が実行することを特徴とする。
請求項６記載の発明は、請求項５記載の発明であって、
前記記憶部のラダープログラムを元の命令文に戻すことを特徴とする。
【発明の効果】
【００２３】
本発明によれば以下の効果がある。
請求項１〜４によれば、入力部により、記憶部に格納されたラダープログラムの命令書き換え対象と書き換え内容を指定し、この指定により、命令書き換え手段が、記憶部のラダープログラムの命令文を書き換えるので、ラダープログラムの編集を行うことなく、ラダープログラムの着目したい箇所に限定して動作確認を行うことが出来る。
【００２４】
請求項３によれば、命令書き換え手段が、記憶部のラダープログラムの命令文を元の命令文に戻すので、容易に元のラダープログラムが復元でき、元のラダープログラムの動作が再現出来る。
【００２５】
請求項５，６によれば、入力部により、記憶部のラダープログラムの命令書き換え対象と書き換え内容を指定し、この指定により、記憶部のラダープログラムの命令文を書き換えるので、ラダープログラムの編集を行うことなく、ラダープログラムの着目したい箇所に限定して動作確認を行うことが出来る。
請求項６によれば、記憶部のラダープログラムの命令文を元の命令文に戻すので、容易に元のラダープログラムが復元でき、元のラダープログラムの動作が再現出来る。
【図面の簡単な説明】
【００２６】
【図１】本発明の一実施例を示した構成図である。
【図２】図１に示した表示部２の表示例を示した図である。
【図３】図１に示した記憶部５１のプログラム領域５１１と命令退避領域５１２のイメージを示した図である。
【図４】従来のＰＬＣの構成図である。
【図５】デバッグ対象となるラダープログラムを表示した図である。
【図６】ラダープログラムをコンパイルした命令文を図４のプログラム領域４１１に格納したイメージ図である。
【図７】図４に示す装置の表示部２のデバイス一覧の表示例である。
【発明を実施するための形態】
【００２７】
以下本発明を、図面を用いて詳細に説明する。図１は本発明の一実施例を示した構成図である。図４と同一のものは同一符号を付し、説明を省略する。
【００２８】
図１において、デバッガ３３はデバッガ３２の代わりにコンピュータ３に設けられ、記憶部３１に接続し、表示処理手段３３１を備えている。表示処理手段３３１は、記憶部３１のラダープログラムを表示部２に表示する。ＰＬＣ５は、記憶部５１、ラダープログラム実行部５２、制御部５３を有し、コンピュータ３と接続されており、また、外部には図示しない被制御対象機器を接続している。記憶部５１は、プログラム領域５１１と命令退避領域５１２を有する。プログラム領域５１１は、記憶部３１に格納されたラダープログラムをコンパイルした実行形式（命令文）が格納される領域である。命令退避領域５１２は、プログラム領域５１１の指定されたアドレスの命令文を退避しておく領域である。ラダープログラム実行部５２は、記憶部５１のプログラム領域５１１に格納されている命令文を実行する。制御部５３は、命令書き換え手段５３１を有し、コンピュータ３と、記憶部５１と、ラダープログラム実行部５２とに接続されている。命令書き換え手段５３１は、デバッガ３３からの指示により、記憶部５１のプログラム領域５１１のラダープログラムの命令文を別の命令文に書き換える。
【００２９】
このような装置の動作例を、図１〜３を用いて説明する。デバッグ対象となるラダープログラムは、命令文にコンパイルされ、記憶部５１のプログラム領域５１１に格納されている。ユーザは、デバッガ３３を用いて記憶部３１のラダープログラムを表示部２に表示させ、入力部１により命令位置を選択し、置き換えたい命令を指定する。図２は、回路ｂの”Ｉ００２”の命令位置をカーソル２１により選択し、置き換えたい命令を”常時ＯＮ”と指定した例である。
【００３０】
デバッガ３３は、ＰＬＣ５の制御部５３に含まれる命令書き換え手段５３１に、ユーザの指定した命令位置および置き換えたい命令に関する指示を出力する。命令書き換え手段５３１は、当該指示に基づき、指定された命令位置に相当するプログラム領域５１１上のアドレスに存在する命令文を、命令退避領域５１２に退避し、指定された命令文（常時ＯＮもしくは常時ＯＦＦ）に強制的に書き換える。
【００３１】
図３の例では、プログラム領域５１１のアドレス０ｘ１０８の元の命令文である「ＬＤ  Ｉ００２」が、特殊な命令文である「ＬＤ  Ｍ３３」に書き換えられる。（「ＬＤ  Ｍ３３」は「結果が常時ＯＮ」となる命令文である。）ラダープログラム実行部５２は、この書き換えられた命令文を実行するので、ユーザが着目した回路に限定してデバッグすることが出来る。たとえば、図３の例では命令文の強制的な書き換えを回路ｂの入力接点”Ｉ００２”の位置に限定して行う。したがって、回路ｃの入力接点”Ｉ００２”に関しては書き換えを行わない。
【００３２】
一方、命令文の書き換えを元の状態に戻すには、入力部１により表示部２に表示されるラダープログラムの命令位置を選択し、強制命令を解除するよう指定する。この指定に基づき、デバッガ３３は、命令書き換え手段５３１に、指定された命令位置と強制命令の解除に関する指示を出力し、この指示に基づき、命令書き換え手段５３１が、命令退避領域５１２に退避されていた命令文をプログラム領域５１１の該当アドレスに復帰させる。こうして、ラダープログラム実行部５２は、再び元のラダープログラムの命令文を実行する。
【００３３】
このように、デバッガ３３の表示処理手段３３１がデバッグ対象となるラダープログラムを表示部２に表示し、入力部により、命令位置を選択するとともにその命令位置（命令置き換え対象）に対して所望の命令（書き換え内容）を指定し、命令書き換え手段５３１が、当該指示に基づき、プログラム領域５１１の該当するアドレスの命令文を、命令退避領域５１２に退避するとともに、指定した命令文に書き換え、ラダープログラム実行部５２が、この書き換えられた命令文を実行することで、ラダープログラムを編集し直すことなく、動作の変更および確認を、着目した回路に限定して実行することが出来る。
【００３４】
また、入力部１により、表示部２に表示されているラダープログラムの命令位置を選択し、その命令位置に対して強制命令を解除するよう指定し、この指定により、命令書き換え手段５３１が、命令退避領域５１２に退避されていた命令文をプログラム領域５１１の該当アドレスに復帰させ、その後、ラダープログラム実行部５２が、再び元のラダープログラムの命令文を実行することで、簡単に元のラダープログラムの動作を再現することが出来る。
【００３５】
なお、本発明はこれに限定されるものではなく、プログラム領域の命令文を、指定された命令文（常時ＯＮや常時ＯＦＦ）に強制的に書き換えるとしたが、結果的に入力条件が常時ＯＮや常時ＯＦＦとなる命令であれば、全く別の命令文に書き換えても、命令を追加しても、良い。または、命令文を書き換えるのではなく、命令文にフラグを設け、変更したい命令位置に対応するアドレスの命令文に対してフラグをセットしておき、ラダープログラム実行部４４が、命令文を実行する際に、このフラグによって、命令文を変更するのか否かの判断と、変更する場合には、常時ＯＮとするのか常時ＯＦＦとするのかの判断を行っても良い。
【００３６】
そして、入力部１による命令位置および命令の選択を、表示部２に表示されたラダープログラム上でカーソルにより選択するのではなく、コマンドラインから命令位置および命令を指定してもよい。
【００３７】
さらに、命令書き換え手段５３１は、制御部５３に設ける構成を示したが、コンピュータ３に設ける構成でも良い。
【符号の説明】
【００３８】
１  入力部
２  表示部
３  コンピュータ
３１  記憶部
３３  デバッガ
３３１  表示処理手段
５  ＰＬＣ
５１  記憶部
５１１  プログラム領域
５１２  命令退避領域
５２  ラダープログラム実行部  
５３  制御部
５３１  命令書き換え手段
【図１】
2011022838.tif 000003
【図２】
2011022838.tif 000004
【図３】
2011022838.tif 000005
【図４】
2011022838.tif 000006
【図５】
2011022838.tif 000007
【図６】
2011022838.tif 000008
【図７】
2011022838.tif 000009