(57)【特許請求の範囲】
【請求項１】
ＰＬＣのＭＰＵが、ユーザプログラムに含まれたステップのうち停止ステップの識別情報及びファイル情報をデータ格納部にバックアップし、当該停止ステップのコンパイルコード領域に例外割込みコードを置換して、デバッグのための前記停止ステップを設定する段階と、
前記ＭＰＵが、前記ＰＬＣの運転中に前記ユーザプログラムをステップ毎に実行している中に、前記例外割込みコードのあるステップで前記ＰＬＣの運転を停止する段階と、を含み、
前記ＭＰＵが、前記デバッグが完了すると前記ＰＬＣの運転を再開する段階をさらに含み、
前記ＰＬＣの運転を停止する段階は、
前記デバッグのための割込み処理ルーチンを実行し、前記ＭＰＵが、前記ＰＬＣの運転中に前記ユーザプログラムをステップ毎に処理する段階と、
前記ＭＰＵが、それぞれの前記ステップに該当する前記コンパイルコード領域を読み取り、前記コンパイルコード領域に前記例外割込みコードが含まれているか否かに応じて例外割込みの発生の有無を判断する段階と、
前記例外割込みが発生し、且つ、ステップ番号及び割込みステップのコンパイルコードが臨時格納領域に存在する場合には、現在のモードがデバッグモードであると前記ＭＰＵが判断する段階と、
前記デバッグモードであると判断すると、前記ＭＰＵが前記デバッグのために前記ＰＬＣの運転を停止し、ＰＣと通信する段階と、を含む、
汎用マイクロプロセッサを用いたＰＬＣのデバッグ方法。
【請求項２】
前記ＭＰＵが、前記ＰＬＣの運転を再開するために、ＰＣから前記ＰＬＣの運転再開命令を受信する段階をさらに含む、請求項１に記載の汎用マイクロプロセッサを用いたＰＬＣのデバッグ方法。
【請求項３】
前記デバッグのための前記停止ステップを設定する段階は、
前記ＭＰＵがＰＣから前記停止ステップの設定指令を受信すると、前記停止ステップの番号、及び前記停止ステップのコンパイルコードを前記データ格納部の臨時格納領域にバックアップする段階と、
前記ＭＰＵが、前記コンパイルコード領域で前記停止ステップの前記コンパイルコードを前記例外割込みコードで置換する段階と、を含む、請求項１に記載の汎用マイクロプロセッサを用いたＰＬＣのデバッグ方法。
【請求項４】
前記ＭＰＵが、前記デバッグが完了すると運転を再開し、当該停止ステップに相応して前記データ格納部の臨時格納領域にバックアップされたコンパイルコードを復元する段階をさらに含む、請求項１に記載の汎用マイクロプロセッサを用いたＰＬＣのデバッグ方法。
【請求項５】
前記ＭＰＵが、現在のモードが前記デバッグモードであるかを判断した結果、前記デバッグモードではないと判断すると、一般例外割込み処理を行う段階をさらに含む、請求項１に記載の汎用マイクロプロセッサを用いたＰＬＣのデバッグ方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、汎用マイクロプロセッサを用いたＰＬＣ（Ｐｒｏｇｒａｍｍａｂｌｅ  Ｌｏｇｉｃ  Ｃｏｎｔｒｏｌｌｅｒ）のデバッグ方法に関し、より詳細には、専用ＡＳＩＣと異なって別のトレース機能を有していない汎用ＭＰＵ（Ｍａｉｎ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ）を用いて、ユーザが設定したステップで運転を一時停止できるようにすることで、効果的なデバッグ機能が可能な、汎用マイクロプロセッサを用いたプログラマブルロジックコントローラのデバッグ方法に関する。
【背景技術】
【０００２】
ＰＬＣ（Ｐｒｏｇｒａｍｍａｂｌｅ  Ｌｏｇｉｃ  Ｃｏｎｔｒｏｌｌｅｒ）のデバッグ機能は、ユーザが作成したシーケンスプログラムを実行している途中に、ユーザの所望のプログラムステップでＰＬＣの動作を一時停止し、その時までの運転情報をユーザが確認できるようにすることで、ユーザプログラムのエラー、または特定時点におけるデータを簡単に確認できるようにする機能である。
【０００３】
ＰＣは、ユーザが任意に選択できるデバッグ停止ステップを含むデバッグ命令を通信によりＰＬＣに伝達し、ＰＬＣから各種データを読み取る動作を行う。
【０００４】
ＰＬＣは、ＰＬＣの動作自体に必要な基本処理を行い、コンパイルコードを実行する動作を繰り返して行っている中に、ＰＣから伝達された運転ステップになると運転を一時停止し、またＰＣの指令に基づいて運転を再開するように動作する。
【０００５】
ＰＬＣは、ＰＣからデバッグ停止ステップを受信すると、該当する停止すべきステップ番号をＰＬＣ内部のバッファに格納する。ＰＬＣは、ユーザプログラムを実行する時に、ステップ毎にデバッグチェック関数を行う。デバッグチェック関数では、現在の運転ステップとバッファに格納された停止ステップとを比較して、停止ステップの場合には運転を一時停止する。任意の関数で一時停止した場合、ＰＬＣは、ＰＣから運転再開指令を受信するまで待機し、運転再開指令を受信すると、停止していたステップから運転を再開する。
【０００６】
通常、ＰＬＣ専用のＡＳＩＣを設計する場合は、ユーザプログラムの特定ステップで演算を中止し、これをＰＬＣに報知するトレース（ＴＲＡＣＥ）機能をＨ／Ｗ的に含ませて適用していた。
【発明の概要】
【発明が解決しようとする課題】
【０００７】
しかしながら、汎用ＭＰＵを用いる場合はこのような機能がないため、ＰＬＣは、ステップ毎にデバッグチェックルーチンを実行するようにアルゴリズムを設計する。したがって、従来の場合、デバッグ処理ルーチンでは、現在のＰＬＣの運転モードがデバッグモードであるかを確認した後、現在のステップが設定したデバッグステップと一致すると運転を一時停止し、ＰＣから次の指令が伝達されるまで待機する。ＰＬＣは、ＰＣから運転再開指令を受信すると、現在停止していたステップの次のステップから運転を再開する。
【０００８】
従来は、ユーザプログラムの運転ステップ毎にデバッグ停止の処理条件を確認するデバッグ処理ルーチンを実行していたため、分岐とデバッグ処理動作を行うためにＰＬＣの処理時間が長くなる。
【０００９】
また、ＰＬＣがデバッグモードで運転する時に、正常運転モードでは行わないデバッグチェックルーチンが繰り返して実行されるため、これにより不測の不具合が発生し、ＰＬＣが運転モードで動作する時と同様に動作しなくなる可能性がある。
【００１０】
本発明が解決しようとする課題は、汎用ＭＰＵを用いてＰＬＣのデバッグ動作を行う時に、運転ステップ毎にデバッグ処理ルーチンを実行するのではなく、ユーザが指定した運転ステップでのみデバッグ処理動作を行うようにすることで、ＰＬＣのデバッグ処理を単純化し、且つ性能を向上させることができる、汎用マイクロプロセッサを用いたＰＬＣのデバッグ方法を提供することにある。
【００１１】
本発明が解決しようとする課題は上述の課題に制限されず、言及されていない他の課題は、以下の記載により提案される実施形態が属する技術分野において通常の知識を有する者に明確に理解されるであろう。
【課題を解決するための手段】
【００１２】
本発明の一側面によると、ＰＬＣのＭＰＵが、ユーザプログラムに含まれたステップのうち停止ステップの識別情報及びファイル情報をデータ格納部にバックアップし、当該停止ステップのコンパイルコード領域に例外割込みコードを置換して、デバッグのための前記停止ステップを設定する段階と、前記ＭＰＵが、前記ＰＬＣの運転中に前記ユーザプログラムをステップ毎に実行している中に、前記例外割込みコードのあるステップで前記ＰＬＣの運転を停止する段階と、を含む、汎用マイクロプロセッサを用いたＰＬＣのデバッグ方法が提供される。
【００１３】
前記汎用マイクロプロセッサを用いたＰＬＣのデバッグ方法は、前記ＭＰＵが、前記デバッグが完了すると前記ＰＬＣの運転を再開する段階をさらに含むことができる。
【００１４】
前記汎用マイクロプロセッサを用いたＰＬＣのデバッグ方法は、前記ＭＰＵが、前記ＰＬＣの運転を再開するために、ＰＣから前記ＰＬＣの運転再開命令を受信する段階をさらに含むことができる。
【００１５】
前記デバッグのための前記停止ステップを設定する段階は、前記ＭＰＵがＰＣから前記停止ステップの設定指令を受信すると、前記停止ステップの番号、及び前記停止ステップの前記コンパイルコードをデータ格納部の臨時格納領域にバックアップする段階と、前記ＭＰＵが、コンパイルコード領域で前記停止ステップの前記コンパイルコードを前記例外割込みコードで置換する段階と、を含むことができる。
【００１６】
前記ＰＬＣの運転を停止する段階は、前記デバッグのための割込み処理ルーチンを実行し、前記ＭＰＵが、前記ＰＬＣの運転中に前記ユーザプログラムをステップ毎に処理する段階と、前記ＭＰＵが、前記各ステップに該当する前記コンパイルコード領域を読み取り、前記例外割込みコードが含まれているか否かに応じて例外割込みの発生の有無を判断する段階と、前記例外割込みが発生した場合には、前記ＭＰＵが現在のモードがデバッグモードであるかを判断する段階と、前記デバッグモードであると判断すると、前記ＭＰＵが前記デバッグのために前記ＰＬＣの運転を停止する段階と、を含むことができる。
【００１７】
前記汎用マイクロプロセッサを用いたＰＬＣのデバッグ方法は、前記ＭＰＵが、前記デバッグが完了すると運転を再開し、当該停止ステップに相応して前記データ格納部の臨時格納領域にバックアップされたコンパイルコードを復元する段階をさらに含むことができる。
【００１８】
前記汎用マイクロプロセッサを用いたＰＬＣのデバッグ方法は、前記ＭＰＵが、現在のモードが前記デバッグモードであるかを判断した結果、前記デバッグモードではないと、一般例外割込み処理を行う段階をさらに含むことができる。
【発明の効果】
【００１９】
本発明によると、ＰＬＣの運転中に、デバッグのための停止ステップが設定された任意のステップに到達すると、該当コンパイルコードがＭＰＵの例外割込みを発生させるコードで置換されているため、ＭＰＵの例外割込みを発生し、割込み処理ルーチンに分岐することができる。したがって、現在のステップがデバッグ設定ステップであるかを確認する必要がなく、デバッグモードであるかのみを確認した後、ＰＬＣの運転を無条件に一時停止させることになる。
【００２０】
このようにすることで、従来のように、デバッグモードで毎ステップを運転する度にデバッグステップであるかを確認する関数を行うことによりＰＬＣの処理速度が遅くなる問題や、デバッグステップ確認関数を行うことによる問題を解決することができる。
【００２１】
本発明によると、例外割込みが発生するまでは一般の運転モードと同一の動作を行うため、ＰＬＣデバッグの速度と正確性を改善することができる。
【図面の簡単な説明】
【００２２】
【図１】本発明の一実施形態による汎用マイクロプロセッサを用いたプログラマブルロジックコントローラのデバッグ方法を行うためのシステム構成のブロック図である。
【図２】本発明の一実施形態による汎用マイクロプロセッサを用いたプログラマブルロジックコントローラのデバッグ方法を説明するためのフローチャートである。
【図３】本発明の一実施形態による汎用マイクロプロセッサを用いたプログラマブルロジックコントローラのデバッグ方法において、停止ステップを設定することを説明するための図である。
【図４】本発明の一実施形態による汎用マイクロプロセッサを用いたプログラマブルロジックコントローラのデバッグ方法において、コンパイルコードをバックアップし、例外割込みコードで置換することを説明するための図である。
【図５】本発明の一実施形態による汎用マイクロプロセッサを用いたプログラマブルロジックコントローラのデバッグ方法において、割込み処理ルーチンを実行することを説明するための図である。
【発明を実施するための形態】
【００２３】
本発明は、様々な変更が可能であって、様々な実施形態を有することができるため、特定の実施形態を図面に例示するとともに、詳細な説明に詳細に説明する。しかし、これは、本発明を特定の実施形態に限定するためのものではなく、本発明の思想及び技術範囲に含まれる全ての変更、均等物乃至代替物を含むと理解するべきである。
【００２４】
以下、添付図面を参照して、本発明による好ましい一実施形態を詳細に説明する。
【００２５】
図１は、本発明の一実施形態による汎用マイクロプロセッサを用いたプログラマブルロジックコントローラ（ＰＬＣ）のデバッグ方法を行うためのシステム構成のブロック図である。
【００２６】
図１を参照すると、ＰＣ１００は、ＰＬＣ２００と通信を行って、ユーザが任意に選択できるデバッグ停止ステップを含むデバッグ命令を通信（ＵＳＢ、シリアルなど）によりＭＰＵ２１０に伝達し、ＭＰＵ２１０から状態情報を受信してＰＬＣ２００の各種データを読み取る動作を行う。
【００２７】
ＰＣ１００は、ユーザプログラムのエラー、または特定時点におけるデータを確認するために、ＰＬＣのデバッグを行うことができる。そのために、ＰＣ１００は、ＰＬＣ２００内でユーザにより作成されたシーケンスプログラムを実行する途中に、ユーザの所望のプログラムステップでＰＬＣ２００の動作を一時停止させ、その時までの運転情報をユーザが確認できるようにする。
【００２８】
ＰＬＣ２００は、ＭＰＵ２１０及びデータ格納部２２０を備えている。ＭＰＵ２１０は、ＰＣ１００と通信を行って、停止ステップの番号及びコンパイルコードをデータ格納部２２０にバックアップし、当該停止ステップのコンパイルコードに例外割込みコードを置換して、デバッグのための停止ステップを設定する。
【００２９】
ＭＰＵ２１０は、ＰＬＣの運転中にユーザプログラムをステップ毎に実行している中に、例外割込みコードが含まれているステップでは割込み処理ルーチンを実行して、デバッグのためにＰＬＣの運転を停止する。ＭＰＵ２１０は、ＰＣ１００との通信により、デバッグが完了するとＰＬＣ２００の運転をさらに再開する。
【００３０】
データ格納部２２０は、ユーザが入力したシーケンスプログラムをＭＰＵ２１０で動作するための機械語に翻訳したコンパイルコードと運転データを格納している。データ格納部２２０はＲＡＭを含むことができる。データ格納部２２０は、各ステップ毎のコンパイルコードを格納しているコンパイルコード領域２２１と、臨時格納領域２２２と、を含むことができる。
【００３１】
図２は、本発明の一実施形態による汎用マイクロプロセッサを用いたプログラマブルロジックコントローラのデバッグ方法を説明するためのフローチャートである。
【００３２】
図２を参照すると、ＰＬＣ２００は、ＰＣ１００と通信を行って、停止ステップの設定指令がある場合に、停止ステップの番号及びコンパイルコードをデータ格納部２２０の臨時格納領域２２２にバックアップし、停止ステップに例外割込みコードを置換して、デバッグのための停止ステップを設定する（Ｓ１０）。
【００３３】
デバッグのための停止ステップが設定された状態で、ＰＬＣ２００は、ＰＬＣの運転中にユーザプログラムをステップ毎に実行している中に、例外割込みコードが含まれているステップでは割込み処理ルーチンを実行して、デバッグのためにＰＬＣの運転を停止し、デバッグを完了するとＰＬＣの運転をさらに再開する（Ｓ２０）。
【００３４】
図３は、本発明の一実施形態による汎用マイクロプロセッサを用いたプログラマブルロジックコントローラのデバッグ方法において、停止ステップを設定することを説明するための図である。図４は、本発明の一実施形態による汎用マイクロプロセッサを用いたプログラマブルロジックコントローラのデバッグ方法において、コンパイルコードをバックアップして例外割込みコードで置換することを説明するための図である。
【００３５】
図３を参照すると、ＰＬＣ２００のＭＰＵ２１０はＰＣ１００と通信を行う（Ｓ１１）。これにより、ＭＰＵ２１０はＰＣ１００から停止ステップの設定を受信することができる。
【００３６】
したがって、ＭＰＵ２１０は、ＰＣ１００から停止ステップの設定のための停止ステップ設定指令が受信されたか否かを判断する（Ｓ１２）。
【００３７】
判断の結果、ＰＣ１００から停止ステップ設定指令が受信された場合、ＭＰＵ２１０は、当該停止ステップの番号及び停止ステップの位置に該当するコンパイルコードをデータ格納部２２０の臨時格納領域２２２にバックアップする（Ｓ１３）。
【００３８】
ＭＰＵ２１０は、停止ステップ要請を受けた停止ステップの番号のみを臨時格納領域２２２に格納するのではなく、停止すべきステップに位置するコンパイルコード自体も共に臨時格納領域２２２に格納する。
【００３９】
例えば、図４は、２番目のステップに対してデバッグ停止設定指令を受信した例であって、２番目のステップのコンパイルコードである「ＳＵＢ」をデータ格納部２２０の臨時格納領域２２２に格納する。
【００４０】
図３に戻ると、ＭＰＵ２１０は、データ格納部２２０のコンパイルコード領域２２１で、停止ステップの位置に該当するコンパイルコードを例外割込みコードで置換する（Ｓ１４）。すなわち、停止ステップの位置に該当するコンパイルコードは、ＭＰＵ２１０の例外割込みを発生させる例外割込みコードで置換する。例えば、例外割込みコードは、ＮＭＩ（Ｎｏｎ  Ｍａｓｋａｂｌｅ  Ｉｎｔｅｒｒｕｐｔ）、またはＩｎｓｔｒｕｃｔｉｏｎ  Ｅｘｃｅｐｔｉｏｎを発生させる機械語コードを含むことができる。しかし、本実施形態はこれに制限されず、各汎用ＭＰＵで用いられる例外割込みコードを用いることができる。
【００４１】
図４は、２番目のステップに対してデバッグのための停止設定指令を受信した例であるため、ＭＰＵ２１０は、データ格納部２２０のコンパイルコード領域２２１で、２番目のステップのコンパイルコードである「ＳＵＢ」を「ＥＸＣＥＰＴＩＯＮ」コードで置換する。その後、ＭＰＵ２１０は正常なＰＬＣ運転を行う。
【００４２】
図５は、本発明の一実施形態による汎用マイクロプロセッサを用いたプログラマブルロジックコントローラのデバッグ方法において、割込み処理ルーチンを実行することを説明するための図である。
【００４３】
図５を参照すると、ＰＬＣ２００のＭＰＵ２１０はユーザプログラムをステップ毎に処理する（Ｓ２１）。ＰＬＣ２００は、毎ステップを実行しながら毎ステップのコンパイルコードを読み取って、例外割込みが発生したか否かを判断する（Ｓ２２）。
【００４４】
判断の結果、任意のステップで例外割込みが発生した場合、ＭＰＵ２１０はデバッグモードであるか否かを判断する（Ｓ２３）。ここで、デバッグモードであるか否かの判断は、例外割込みに対して、臨時格納領域２２２に格納されている停止ステップの番号及びそれに該当するコンパイルコードがあるか否かに応じて判断できる。例えば、例外割込みが発生した状態で、臨時格納領域２２２に停止ステップの番号及びそれに該当するコンパイルコードが格納されている場合には、デバッグモードであると判断することができる。
【００４５】
判断の結果、デバッグモードである場合には、ＭＰＵ２１０は運転を一時停止し、デバッグのためにＰＣ１００と通信を行う（Ｓ２４）。これにより、ＰＣ１００は、ＰＬＣ２００の運転が停止された状態で、該当するステップでのデバッグ作業を行う。
【００４６】
ＭＰＵ２１０は、ＰＣ１００から運転再開指令が受信されたかを判断する（Ｓ２５）。
【００４７】
判断の結果、ＰＣ１００から運転再開指令が受信されると、臨時格納領域２２２に格納されているコンパイルコードを復元し（Ｓ２６）、次のステップに移動する（Ｓ２７）。
【００４８】
一方、Ｓ２３の判断結果、デバッグモードではない場合には、一般例外割込みが発生したとみなし、一般例外割込みで処理する（Ｓ２８）。すなわち、臨時格納領域２２２に停止ステップの番号及びそれに該当するコンパイルコードが格納されていない場合には、一般例外割込みが発生したとみなして一般例外割込み処理を行う。
【００４９】
このように、運転中に二番目のステップに到達すると、該当コンパイルコードがＭＰＵ２１０の例外割込みを発生させるコードで置換されているため、ＭＰＵ例外割込みが発生し、割込み処理ルーチンに分岐することになる。
【００５０】
したがって、現在のステップがデバッグ設定ステップであるかを確認する必要がなく、デバッグモードであるかのみを確認した後、ＰＬＣ２００の運転を無条件に一時停止させる。その後、ＭＰＵ２１０は、ＰＣ１００との通信処理を行いながら待機し、運転再開指令が受信されると、該当ステップのコンパイルコードをバックアップしていた元の命令語コードに復元させてから運転を再開する。
【００５１】
このように、従来は、デバッグモードで毎ステップを運転する度にデバッグステップであるかを確認する関数を行うため、ＰＬＣの処理速度が遅くなる問題や、デバッグステップ確認関数を行うことによる問題が発生する恐れがあったが、本発明によると、例外割込みが発生するまでは一般の運転モードと同一の動作を行うため、かかる問題を改善することができる。
【００５２】
以上、本発明による実施形態を説明したが、これは例示に過ぎず、当該分野において通常の知識を有する者であれば、これらから多様な変形及び均等な範囲の実施形態が可能であるということを理解できるであろう。したがって、本発明の真の技術的保護の範囲は、添付の特許請求の範囲によって決められるべきである。
【符号の説明】
【００５３】
２００    ＰＬＣ
２１０    ＭＰＵ
２２０    データ格納部
２２１    コンパイルコード領域
２２２    臨時格納領域
【図１】
0006318214.tif 000002
【図２】
0006318214.tif 000003
【図３】
0006318214.tif 000004
【図４】
0006318214.tif 000005
【図５】
0006318214.tif 000006