(57)【要約】  【課題】  アプリケーションプログラムの命令実体を変更することなく、アプリケーションプログラムの任意の命令ステップにてトレースデータを収集できるようにする。  【解決手段】  擬似命令挿入手段３ａは、ソースプログラムから実行プログラムが生成される時に、各命令単位に擬似命令を実行プログラムに挿入し、擬似命令抽出手段７は、実行プログラムのトレース実行位置に挿入された擬似命令を抽出し、その抽出された擬似命令をトレースデータ収集処理へのジャンプ命令に置き換え、トレース処理起動手段８は、実行プログラムが実行されている時にジャンプ命令を検出すると、そのジャンプ命令に対応してトレースデータ収集処理を起動し、トレース処理手段９は、トレースデータ収集処理の割り込み処理を行うことにより、擬似命令の挿入位置に対応したタイミングでトレースデータを収集する。  【選択図】      図１
2006236088.tif 000002
【特許請求の範囲】
【請求項１】
実行プログラム上で指定されたトレース実行位置を抽出するトレース実行位置抽出手段と、
前記指定されたトレース実行位置においてトレースデータ収集処理を起動するトレース処理起動手段と、
前記トレース処理起動手段にて起動されたトレースデータ収集処理を実行するトレース処理手段とを備えることを特徴とするトレースデータ収集装置。
【請求項２】
実行プログラム上で指定された複数のトレース実行位置を抽出するトレース実行位置抽出手段と、
前記指定された複数のトレース実行位置においてトレースデータ収集処理をそれぞれ起動するトレース処理起動手段と、
前記トレース処理起動手段にて起動されたトレースデータ収集処理を実行するトレース処理手段とを備えることを特徴とするトレースデータ収集装置。
【請求項３】
前記トレース実行位置抽出手段は、
前記トレース実行位置に挿入された擬似命令を抽出する擬似命令抽出手段と、
前記抽出された擬似命令を前記トレースデータ収集処理へのジャンプ命令に置き換える命令置換手段とを備えることを特徴とする請求項１または２記載のトレースデータ収集装置。
【請求項４】
トレース実行位置を実行プログラム上で設定するトレース実行位置設定手段と、
前記トレース実行位置においてトレースを行わせる変数をトレースデータとして設定するトレース情報設定手段とを備えることを特徴とするトレースデータ収集支援装置。
【請求項５】
複数のトレース実行位置を実行プログラム上で設定するトレース実行位置設定手段と、
前記複数のトレース実行位置においてトレースを行わせるための互いに異なる変数をトレースデータとして設定するトレース情報設定手段とを備えることを特徴とするトレースデータ収集支援装置。
【請求項６】
前記トレース実行位置設定手段は、
前記トレース実行位置に擬似命令を挿入する擬似命令挿入手段を備えることを特徴とする請求項４または５記載のトレースデータ収集支援装置。
【請求項７】
トレースデータの収集が行われる命令ステップを実行プログラム上で指定するステップと、
前記命令ステップにてトレースされる変数を前記トレースデータとして指定するステップと、
前記実行プログラム上で指定された命令ステップおよび前記トレースデータとして指定された変数をトレース設定情報として支援ツールからコントローラにダウンロードさせるステップと、
前記指定された命令ステップの実行タイミングにおいて、前記コントローラ上でトレースデータ収集処理を起動させるステップと、
前記トレースデータ収集処理において、前記トレースデータとして指定された変数の収集を行わせるステップとを備えることを特徴とするトレースデータ収集方法。
【請求項８】
トレースデータの収集が行われる複数の命令ステップを実行プログラム上で指定するステップと、
前記複数の命令ステップにてトレースされる互いに異なる変数を前記トレースデータとして指定するステップと、
前記実行プログラム上で指定された複数の命令ステップおよび前記トレースデータとして指定された互いに異なる変数をトレース設定情報として支援ツールからコントローラにダウンロードさせるステップと、
前記指定された複数の命令ステップの実行タイミングにおいて、前記コントローラ上でトレースデータ収集処理をそれぞれ起動させるステップと、
前記トレースデータ収集処理において、前記トレースデータとして指定された互いに異なる変数の収集を行わせるステップとを備えることを特徴とするトレースデータ収集方法。
【請求項９】
前記トレースデータの収集が行われる命令ステップに擬似命令を前記支援ツール上で挿入させるステップと、
前記コントローラ上において前記擬似命令を前記トレースデータ収集処理へのジャンプ命令に置換させるステップとを備えることを特徴とする請求項７または８記載のトレースデータ収集方法。
【請求項１０】
実行プログラム上で指定されたトレース実行位置を抽出するステップと、
前記指定されたトレース実行位置においてトレースデータ収集処理を起動するステップと、
前記起動されたトレースデータ収集処理を実行するステップとをコンピュータに実行させることを特徴とするトレースデータ収集プログラム。
【請求項１１】
トレース実行位置を実行プログラム上で設定するステップと、
前記トレース実行位置においてトレースを行わせる変数をトレースデータとして設定するステップとをコンピュータに実行させることを特徴とするトレースデータ収集支援プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明はトレースデータ収集装置、トレースデータ収集支援装置、トレースデータ収集方法、トレースデータ収集プログラムおよびトレースデータ収集支援プログラムに関し、特に、アプリケーションプログラムを実行するプログラマブルコントローラにおけるトレースデータ収集方法に適用して好適なものである。
【背景技術】
【０００２】
プログラマブルコントローラでは、シーケンスプログラムをデバックするために、プログラマブルコントローラで実行されるシーケンスプログラムをトレースし、トレースデータを収集することが行われている。
図１０は、従来のトレースデータ収集装置の概略構成を示すブロック図である。
図１０において、ＣＰＵ支援ツール２１には、グラフィカルユーザインターフェース２２が設けられ、グラフィカルユーザインターフェース２２には、コントローラ２５にて実行される実行プログラムを生成する実行プログラム生成手段２３およびコントローラ２５にて収集されるトレース情報を特定するためのトレース情報設定手段２４が設けられている。また、コントローラ２５には、アプリケーションプログラム２６が保持されるとともに、コントローラ２５で実行されるシーケンスプログラムのトレース処理を行うトレース処理手段２９が設けられている。
【０００３】
そして、トレースデータの収集をコントローラ２５に行わせる場合、トレース情報設定手段２４は、トレースデータおよびトレース実行プログラムをトレース設定情報として設定する。そして、トレース設定情報が設定されると、ＣＰＵ支援ツール２１は、そのトレース設定情報をトレース設定情報ファイル３０としてコントローラ２５にダウンロードする。
【０００４】
例えば、ユーザが、定周期プログラムＢの実行後に変数ａ、ｂ、ｃをトレースバッファにコピーするように指定すると、レース情報設定手段２４は、それらの変数ａ、ｂ、ｃをトレースデータとして設定するとともに、定周期プログラムＢをトレース実行プログラムとして設定する。
そして、コントローラ２５は、トレース設定情報ファイル３０をＣＰＵ支援ツール２１から受け取ると、トレース処理手段２９は、そのトレース設定情報ファイル３０に含まれるトレース設定情報に従って、指定されたアプリケーションプログラム２６の終了タイミングにおいて指定されたトレースデータを収集する。
【０００５】
図１１は、従来のトレース実行タイミングを示すシーケンス図である。
図１１において、図１０のアプリケーションプログラム２６として、定周期プログラムＡ、Ｂがコントローラ２５に保持されているものとする。そして、トレース設定情報ファイル３０において、トレースデータとして変数ａ、ｂ、ｃが指定され、トレース実行プログラムとして定周期プログラムＢが指定されているものとする。そして、定周期プログラムＡ、Ｂの優先順位がＡ＞Ｂであるものとすると、コントローラ２５は、時刻ｔ31において、定周期プログラムＡの起動要求を行う。そして、コントローラ２５は、定周期プログラムＡの起動要求に基づいて定周期プログラムＡを起動し、定周期プログラムＡの入力処理、プログラム演算および出力処理を実行する。
【０００６】
次に、時刻ｔ32において、定周期プログラムＡの出力処理が終了すると、コントローラ２５は、定周期プログラムＢの起動要求を行う。そして、コントローラ２５は、定周期プログラムＢの起動要求に基づいて定周期プログラムＢを起動し、定周期プログラムＢの入力処理、プログラム演算および出力処理を実行する。そして、時刻ｔ33において、定周期プログラムＢの出力処理が終了すると、コントローラ２５は、トレースデータ収集処理Ｔにジャンプする。そして、図１２に示すように、トレースデータとして指定された変数ａ、ｂ、ｃをユーザデータ領域３１から収集し、その変数ａ、ｂ、ｃをトレースバッファ領域３２にコピーする。
【０００７】
次に、時刻ｔ34において、トレースデータ収集処理Ｔが終了すると、コントローラ２５は、定周期プログラムＡの起動要求を行う。そして、コントローラ２５は、定周期プログラムＡの起動要求に基づいて定周期プログラムＡを起動し、定周期プログラムＡの入力処理、プログラム演算および出力処理を実行する。
次に、時刻ｔ35において、定周期プログラムＡの出力処理が終了すると、コントローラ２５は、定周期プログラムＢの起動要求を行う。そして、コントローラ２５は、定周期プログラムＢの起動要求に基づいて定周期プログラムＢを起動し、定周期プログラムＢの入力処理、プログラム演算および出力処理を実行する。そして、時刻ｔ36において、定周期プログラムＢの出力処理が終了すると、コントローラ２５は、トレースデータ収集処理Ｔにジャンプし、トレースデータ収集処理Ｔを行う。
【０００８】
図１３は、図１１の時刻ｔ32〜ｔ34に実行される処理の詳細を示すシーケンス図である。
図１３において、定周期プログラムＢには、複数の命令１、・・・、ｎ、ｎ＋１、ｎ＋２、・・・が含まれている。そして、これらのすべての命令１、・・・、ｎ、ｎ＋１、ｎ＋２、・・・が終了した後に、トレースデータ収集処理Ｔが起動される。
また、例えば、特許文献１には、プログラマブルコントローラで実行されるシーケンスプログラムのトレースを行うシーケンスプログラムのデバック方式において、サブプログラムの実行順序のデータを容易に確認できるようにするため、シーケンスプログラムの実行状態を読み取り、サブプログラムへの実行の移行時に、その移行の変化状態およびトレース指定されている特定の信号のデータ状態などの移行状態データを読み取り、表示画面に表示させる方法が開示されている。
【特許文献１】特開平７−２６１８１１号公報
【発明の開示】
【発明が解決しようとする課題】
【０００９】
しかしながら、従来のトレースデータ収集方法では、図１０のアプリケーションプログラム２６が終了した時にトレースデータ収集処理Ｔが起動されるため、例えば、図１３の命令ｎ＋１が終了した直後にトレースを行わせることができないという問題があった。
そこで、本発明の目的は、アプリケーションプログラムの命令実体を変更することなく、アプリケーションプログラムの任意の命令ステップにてトレースデータを収集することが可能なトレースデータ収集装置、トレースデータ収集支援装置、トレースデータ収集方法、トレースデータ収集プログラムおよびトレースデータ収集支援プログラムを提供することである。
【課題を解決するための手段】
【００１０】
上述した課題を解決するために、請求項１に係るトレースデータ収集装置によれば、実行プログラム上で指定されたトレース実行位置を抽出するトレース実行位置抽出手段と、前記指定されたトレース実行位置においてトレースデータ収集処理を起動するトレース処理起動手段と、前記トレース処理起動手段にて起動されたトレースデータ収集処理を実行するトレース処理手段とを備えることを特徴とする。
【００１１】
また、請求項２に係るトレースデータ収集装置によれば、実行プログラム上で指定された複数のトレース実行位置を抽出するトレース実行位置抽出手段と、前記指定された複数のトレース実行位置においてトレースデータ収集処理をそれぞれ起動するトレース処理起動手段と、前記トレース処理起動手段にて起動されたトレースデータ収集処理を実行するトレース処理手段とを備えることを特徴とする。
【００１２】
また、請求項３に係るトレースデータ収集装置によれば、前記トレース実行位置抽出手段は、前記トレース実行位置に挿入された擬似命令を抽出する擬似命令抽出手段と、前記抽出された擬似命令を前記トレースデータ収集処理へのジャンプ命令に置き換える命令置換手段とを備えることを特徴とする。
また、請求項４に係るトレースデータ収集支援装置によれば、トレース実行位置を実行プログラム上で設定するトレース実行位置設定手段と、前記トレース実行位置においてトレースを行わせる変数をトレースデータとして設定するトレース情報設定手段とを備えることを特徴とする。
【００１３】
また、請求項５に係るトレースデータ収集支援装置によれば、複数のトレース実行位置を実行プログラム上で設定するトレース実行位置設定手段と、前記複数のトレース実行位置においてトレースを行わせるための互いに異なる変数をトレースデータとして設定するトレース情報設定手段とを備えることを特徴とする。
また、請求項６に係るトレースデータ収集支援装置によれば、前記トレース実行位置設定手段は、前記トレース実行位置に擬似命令を挿入する擬似命令挿入手段を備えることを特徴とする。
【００１４】
また、請求項７に係るトレースデータ収集方法によれば、トレースデータの収集が行われる命令ステップを実行プログラム上で指定するステップと、前記命令ステップにてトレースされる変数を前記トレースデータとして指定するステップと、前記実行プログラム上で指定された命令ステップおよび前記トレースデータとして指定された変数をトレース設定情報として支援ツールからコントローラにダウンロードさせるステップと、前記指定された命令ステップの実行タイミングにおいて、前記コントローラ上でトレースデータ収集処理を起動させるステップと、前記トレースデータ収集処理において、前記トレースデータとして指定された変数の収集を行わせるステップとを備えることを特徴とする。
【００１５】
また、請求項８に係るトレースデータ収集方法によれば、トレースデータの収集が行われる複数の命令ステップを実行プログラム上で指定するステップと、前記複数の命令ステップにてトレースされる互いに異なる変数を前記トレースデータとして指定するステップと、前記実行プログラム上で指定された複数の命令ステップおよび前記トレースデータとして指定された互いに異なる変数をトレース設定情報として支援ツールからコントローラにダウンロードさせるステップと、前記指定された複数の命令ステップの実行タイミングにおいて、前記コントローラ上でトレースデータ収集処理をそれぞれ起動させるステップと、前記トレースデータ収集処理において、前記トレースデータとして指定された互いに異なる変数の収集を行わせるステップとを備えることを特徴とする。
【００１６】
また、請求項９に係るトレースデータ収集方法によれば、前記トレースデータの収集が行われる命令ステップに擬似命令を前記支援ツール上で挿入させるステップと、前記コントローラ上において前記擬似命令を前記トレースデータ収集処理へのジャンプ命令に置換させるステップとを備えることを特徴とする。
また、請求項１０に係るトレースデータ収集プログラムによれば、実行プログラム上で指定されたトレース実行位置を抽出するステップと、前記指定されたトレース実行位置においてトレースデータ収集処理を起動するステップと、前記起動されたトレースデータ収集処理を実行するステップとをコンピュータに実行させることを特徴とする。
また、請求項１１に係るトレースデータ収集支援プログラムによれば、トレース実行位置を実行プログラム上で設定するステップと、前記トレース実行位置においてトレースを行わせる変数をトレースデータとして設定するステップとをコンピュータに実行させることを特徴とする。
【発明の効果】
【００１７】
以上説明したように、本発明によれば、実行プログラム上でトレース実行位置を指定することで、その指定されたタイミングに合わせてトレースデータ収集処理を起動することが可能となる。このため、アプリケーションプログラムの命令実体を変更することなく、アプリケーションプログラムの任意の命令ステップにてトレースデータを収集することが可能となり、ユーザに作成した固有なアプリケーションプログラムの都合に合わせてトレースを実行させることができる。この結果、トレースデータの収集タイミングの精度を向上させることが可能となり、アプリケーションプログラムの検証効率を向上させることができる。
【発明を実施するための最良の形態】
【００１８】
以下、本発明の実施形態に係るトレースデータ収集装置およびその方法について図面を参照しながら説明する。
図１は、本発明の一実施形態に係るトレースデータ収集装置の概略構成を示すブロック図である。
図１において、ＣＰＵ支援ツール１には、グラフィカルユーザインターフェース２が設けられ、グラフィカルユーザインターフェース２には、コントローラ５にて実行される実行プログラムを生成する実行プログラム生成手段３およびコントローラ５にて収集されるトレース情報を特定するためのトレース情報設定手段４が設けられている。ここで、実行プログラム生成手段３には、実行プログラムのトレース実行位置に擬似命令を挿入する擬似命令挿入手段３ａが設けられている。なお、この擬似命令は、実行プログラムの各命令ステップの区切りに配置することができ、ＮＯＰ命令と同様に処理が行われないようにすることができる。
【００１９】
また、コントローラ５には、アプリケーションプログラム６が保持されるとともに、コントローラ５で実行されるシーケンスプログラムのトレース処理を行うトレース処理手段９が設けられている。また、コントローラ５には、実行プログラムのトレース実行位置に挿入された擬似命令を抽出する擬似命令抽出手段７および指定されたトレース実行位置においてトレースデータ収集処理を起動するトレース処理起動手段８が設けられている。
【００２０】
そして、トレースデータの収集をコントローラ５に行わせる場合、擬似命令挿入手段３ａは、ソースプログラムから実行プログラムが生成される時に、各命令単位に擬似命令を実行プログラムに挿入する。そして、実行プログラム生成手段３にて擬似命令が挿入された実行プログラムが生成されると、トレース情報設定手段４は、トレースデータおよびトレース実行位置に擬似命令が挿入された実行プログラムをトレース設定情報として設定する。そして、トレース設定情報が設定されると、ＣＰＵ支援ツール１は、そのトレース設定情報をトレース設定情報ファイル１０としてコントローラ５にダウンロードする。
【００２１】
例えば、ユーザが、定周期プログラムＢの命令ステップｎ＋１の実行後に変数ａ、ｂ、ｃをトレースバッファにコピーするように指定すると、擬似命令挿入手段３ａは、ソースプログラムから実行プログラムが生成される時に、命令ステップｎ＋１の直後に擬似命令を定周期プログラムＢに挿入する。そして、実行プログラム生成手段３にて命令ステップｎ＋１の直後に擬似命令が挿入された定周期プログラムＢが生成されると、トレース情報設定手段４は、それらの変数ａ、ｂ、ｃをトレースデータとして設定するとともに、命令ステップｎ＋１の直後に擬似命令が挿入された定周期プログラムＢをトレース設定情報ファイル１０に設定する。
【００２２】
そして、コントローラ５は、トレース設定情報ファイル１０をＣＰＵ支援ツール１から受け取ると、擬似命令抽出手段７は、実行プログラムのトレース実行位置に挿入された擬似命令を抽出し、その抽出された擬似命令をトレースデータ収集処理へのジャンプ命令に置き換える。そして、トレース処理起動手段８は、実行プログラムが実行されている時にジャンプ命令を検出すると、そのジャンプ命令に対応してトレースデータ収集処理を起動する。そして、トレース処理手段９は、トレース処理起動手段８にてトレースデータ収集処理が起動されると、トレースデータ収集処理の割り込み処理を行うことにより、擬似命令の挿入位置に対応したタイミングでトレースデータを収集する。
【００２３】
これにより、アプリケーションプログラム６上でトレース実行位置を指定することが可能となり、その指定されたタイミングに合わせてトレースデータ収集処理を起動することが可能となる。このため、アプリケーションプログラム６の命令実体を変更することなく、アプリケーションプログラム６の任意の命令ステップにてトレースデータを収集することが可能となり、ユーザに作成した固有なアプリケーションプログラム６の都合に合わせてトレースを実行させることができる。この結果、トレースデータの収集タイミングの精度を向上させることが可能となり、アプリケーションプログラム６の検証効率を向上させることができる。
【００２４】
図２は、本発明の第１実施形態に係るトレース実行タイミングを示すシーケンス図である。
図２において、図１のアプリケーションプログラム６として、定周期プログラムＡ、Ｂがコントローラ５に保持されているものとする。そして、トレース設定情報ファイル１０において、トレースデータとして変数ａ、ｂ、ｃが指定され、トレース実行プログラムとして定周期プログラムＢが指定されているものとする。そして、定周期プログラムＡ、Ｂの優先順位がＡ＞Ｂであるものとすると、コントローラ５は、時刻ｔ1において、定周期プログラムＡの起動要求を行う。そして、コントローラ５は、定周期プログラムＡの起動要求に基づいて定周期プログラムＡを起動し、定周期プログラムＡの入力処理、プログラム演算および出力処理を実行する。
【００２５】
次に、時刻ｔ2において、定周期プログラムＡの出力処理が終了すると、コントローラ５は、定周期プログラムＢの起動要求を行う。そして、コントローラ５は、定周期プログラムＢの起動要求に基づいて定周期プログラムＢを起動し、定周期プログラムＢの入力処理およびプログラム演算を実行する。そして、時刻ｔ3において、定周期プログラムＢのプログラム演算中にジャンプ命令を検出すると、コントローラ５は、トレースデータ収集処理Ｔにジャンプする。そして、トレースデータとして指定された変数ａ、ｂ、ｃをユーザデータ領域から収集し、その変数ａ、ｂ、ｃをトレースバッファ領域にコピーする。そして、時刻ｔ4において、トレースデータ収集処理Ｔが終了すると、定周期プログラムＢのプログラム演算を再開する。そして、時刻ｔ5において、定周期プログラムＢの出力処理が終了すると、コントローラ５は、定周期プログラムＡの起動要求を行う。そして、コントローラ５は、定周期プログラムＡの起動要求に基づいて定周期プログラムＡを起動し、定周期プログラムＡの入力処理、プログラム演算および出力処理を実行する。
【００２６】
次に、時刻ｔ6において、定周期プログラムＡの出力処理が終了すると、コントローラ５は、定周期プログラムＢの起動要求を行う。そして、コントローラ５は、定周期プログラムＢの起動要求に基づいて定周期プログラムＢを起動し、定周期プログラムＢの入力処理およびプログラム演算を実行する。そして、時刻ｔ7において、定周期プログラムＢのプログラム演算中にジャンプ命令を検出すると、コントローラ５は、トレースデータ収集処理Ｔにジャンプする。そして、トレースデータとして指定された変数ａ、ｂ、ｃをユーザデータ領域から収集し、その変数ａ、ｂ、ｃをトレースバッファ領域にコピーする。そして、時刻ｔ8において、トレースデータ収集処理Ｔが終了すると、定周期プログラムＢのプログラム演算を再開する。
【００２７】
図３は、図２の時刻ｔ2〜ｔ5に実行される処理の詳細を示すシーケンス図である。
図３において、定周期プログラムＢには、複数の命令１、・・・、ｎ、ｎ＋１、ｎ＋２、・・・が含まれている。そして、例えば、命令ステップｎ＋１の直後に擬似命令が挿入されているものとすると、この擬似命令がトレースデータ収集処理へのジャンプ命令に置換される。そして、定周期プログラムＢの実行中にこのジャンプ命令を検出すると、命令ステップｎ＋１が実行された直後に、トレースデータ収集処理Ｔが起動され、トレースデータ収集処理Ｔに移行する。そして、トレースデータ収集処理Ｔが終了すると、命令ステップｎ＋２に戻り、命令ステップｎ＋２から定周期プログラムＢの実行を再開する。
【００２８】
図４は、本発明の一実施形態に係る実行プログラムの生成方法を示す図である。
図４において、ソースプログラムＰ１には複数の命令１、・・・、ｎ、ｎ＋１、ｎ＋２、・・・が含まれているものとする。そして、ソースプログラムＰ１が入力されると、実行プログラム生成手段３は、ソースプログラムＰ１の命令１、・・・、ｎ、ｎ＋１、ｎ＋２、・・・を実体命令１、・・・、ｎ、ｎ＋１、ｎ＋２、・・・に変換することにより、実行プログラムＰ２を生成する。ここで、擬似命令挿入手段３ａは、ソースプログラムＰ１から実行プログラムＰ２が生成される時に、各実体命令１、・・・、ｎ、ｎ＋１、ｎ＋２、・・単位に擬似命令Ｇ1、・・・、Ｇn、Ｇn+1、Ｇn+2、・・を実行プログラＰ２ムに挿入することにより、実行プログラムＰ２上でトレース実行位置を指定する。
【００２９】
図５は、本発明の一実施形態に係る実行プログラムによるトレース処理の起動方法を示す図である。
図５において、実行プログラムＰ２において、各実体命令１、・・・、ｎ、ｎ＋１、ｎ＋２、・・単位に擬似命令Ｇ1、・・・、Ｇn、Ｇn+1、Ｇn+2、・・が挿入されているものとする。そして、例えば、トレース設定情報ファイル１０において、定周期プログラムＢの命令ステップｎ＋１の実行後に変数ａ、ｂ、ｃをトレースバッファにコピーするように指定されているものとすると、コントローラ５は、命令ステップｎ＋１の直後の擬似命令Ｇn+1がジャンプ命令Ｊn+1に置換する。そして、実行プログラムＰ２の実行中にこのジャンプ命令Ｊn+1を検出すると、実体命令ｎ＋１の実行直後に、トレース処理ＴＲを起動し、トレース処理ＴＲに移行する。そして、トレース処理ＴＲが終了すると、実体命令ｎ＋２に戻り、実体命令ｎ＋２から実行プログラムＰ２の実行を再開する。
【００３０】
次に、本発明の第２実施形態に係るトレースデータ収集方法について説明する。
図１において、トレースデータの収集をコントローラ５に行わせる場合、擬似命令挿入手段３ａは、ソースプログラムから実行プログラムが生成される時に、複数の擬似命令を各命令単位に実行プログラムに挿入する。そして、実行プログラム生成手段３にて複数の擬似命令が挿入された実行プログラムが生成されると、トレース情報設定手段４は、トレースデータおよびトレース実行位置に複数の擬似命令が挿入された実行プログラムをトレース設定情報として設定する。ここで、トレース情報設定手段４は、複数の命令ステップにてトレースされる互いに異なる変数をトレースデータとして設定することができる。そして、トレース設定情報が設定されると、ＣＰＵ支援ツール１は、そのトレース設定情報をトレース設定情報ファイル１０としてコントローラ５にダウンロードする。
【００３１】
例えば、ユーザが、定周期プログラムＢの命令ステップｎ＋１の実行後に変数ａ、ｂ、ｃをトレースバッファにコピーするとともに、定周期プログラムＡの命令ステップｍ＋１の実行後に変数ｄ、ｅ、ｆをトレースバッファにコピーするように指定すると、擬似命令挿入手段３ａは、ソースプログラムから実行プログラムが生成される時に、命令ステップｎ＋１の直後に擬似命令を定周期プログラムＢに挿入するとともに、命令ステップｍ＋１の直後に擬似命令を定周期プログラムＡに挿入する。そして、命令ステップｎ＋１の直後に擬似命令が挿入された定周期プログラムＢおよび命令ステップｍ＋１の直後に擬似命令が挿入された定周期プログラムＡが実行プログラム生成手段３にて生成されると、トレース情報設定手段４は、命令ステップｎ＋１、ｍ＋１にそれぞれ関連付けられた変数ａ、ｂ、ｃおよび変数ｄ、ｅ、ｆをトレースデータとして設定するとともに、命令ステップｎ＋１、ｍ＋１の直後に擬似命令がそれぞれ挿入された定周期プログラムＢ、Ａをトレース設定情報ファイル１０に設定する。
【００３２】
そして、コントローラ５は、トレース設定情報ファイル１０をＣＰＵ支援ツール１から受け取ると、擬似命令抽出手段７は、実行プログラムのトレース実行位置に挿入された複数の擬似命令を抽出し、その抽出された複数の擬似命令をトレースデータ収集処理へのジャンプ命令にそれぞれ置き換える。そして、トレース処理起動手段８は、実行プログラムが実行されている時にジャンプ命令を検出すると、そのジャンプ命令に対応してトレースデータ収集処理を起動する。そして、トレース処理手段９は、トレース処理起動手段８にてトレースデータ収集処理が起動されると、トレースデータ収集処理の割り込み処理を行うことにより、擬似命令の挿入位置に対応したタイミングでトレースデータをそれぞれ収集する。
【００３３】
図６は、本発明の第２実施形態に係るトレース情報の設定方法を示す図である。
図６において、トレース設定情報には、命令ステップ指定、トレース点数およびトレースデータアドレスを含むことができる。ここで、命令ステップ指定は、プログラム読み出し用のプログラムカウンタに対応し、コントローラ５内においてユニーク（唯一の数値）である。また、トレースデータアドレスには、トレースを行うためのトレース点数で指定される個数分の変数アドレスが登録される。
【００３４】
図７は、本発明の第２実施形態に係るトレース実行タイミングを示すシーケンス図である。
図７において、図１のアプリケーションプログラム６として、定周期プログラムＡ、Ｂがコントローラ５に保持されているものとする。そして、トレース設定情報ファイル１０において、命令ステップｎ＋１に対応して変数ａ、ｂ、ｃがトレースデータとして指定されるとともに、命令ステップｍ＋１に対応して変数ｄ、ｅ、ｆがトレースデータとして指定され、トレース実行プログラムとして定周期プログラムＡ、Ｂが指定されているものとする。
【００３５】
そして、定周期プログラムＡ、Ｂの優先順位がＡ＞Ｂであるものとすると、コントローラ５は、時刻ｔ11において、定周期プログラムＡの起動要求を行う。そして、コントローラ５は、定周期プログラムＡの起動要求に基づいて定周期プログラムＡを起動し、定周期プログラムＡの入力処理およびプログラム演算を実行する。そして、時刻ｔ12において、定周期プログラムＡの命令ステップｍ＋１の実行後にジャンプ命令を検出すると、コントローラ５は、トレースデータ収集処理Ｔにジャンプする。そして、トレースデータとして指定された変数ｄ、ｅ、ｆをユーザデータ領域から収集し、その変数ｄ、ｅ、ｆをトレースバッファ領域にコピーする。そして、時刻ｔ13において、トレースデータ収集処理Ｔが終了すると、定周期プログラムＡのプログラム演算を再開する。
【００３６】
次に、時刻ｔ14において、定周期プログラムＡの出力処理が終了すると、コントローラ５は、定周期プログラムＢの起動要求を行う。そして、コントローラ５は、定周期プログラムＢの起動要求に基づいて定周期プログラムＢを起動し、定周期プログラムＢの入力処理およびプログラム演算を実行する。そして、時刻ｔ15において、定周期プログラムＢの命令ステップｎ＋１の実行後にジャンプ命令を検出すると、コントローラ５は、トレースデータ収集処理Ｔにジャンプする。そして、トレースデータとして指定された変数ａ、ｂ、ｃをユーザデータ領域から収集し、その変数ａ、ｂ、ｃをトレースバッファ領域にコピーする。そして、時刻ｔ16において、トレースデータ収集処理Ｔが終了すると、定周期プログラムＢのプログラム演算を再開する。
【００３７】
そして、時刻ｔ17において、定周期プログラムＢの出力処理が終了すると、コントローラ５は、定周期プログラムＡの起動要求を行う。そして、コントローラ５は、定周期プログラムＡの起動要求に基づいて定周期プログラムＡを起動し、定周期プログラムＡの入力処理およびプログラム演算を実行する。そして、時刻ｔ18において、定周期プログラムＡの命令ステップｍ＋１の実行後にジャンプ命令を検出すると、コントローラ５は、トレースデータ収集処理Ｔにジャンプする。そして、トレースデータとして指定された変数ｄ、ｅ、ｆをユーザデータ領域から収集し、その変数ｄ、ｅ、ｆをトレースバッファ領域にコピーする。そして、時刻ｔ19において、トレースデータ収集処理Ｔが終了すると、定周期プログラムＡのプログラム演算を再開する。
【００３８】
次に、時刻ｔ20において、定周期プログラムＡの出力処理が終了すると、コントローラ５は、定周期プログラムＢの起動要求を行う。そして、コントローラ５は、定周期プログラムＢの起動要求に基づいて定周期プログラムＢを起動し、定周期プログラムＢの入力処理およびプログラム演算を実行する。そして、時刻ｔ21において、定周期プログラムＢの命令ステップｎ＋１の実行後にジャンプ命令を検出すると、コントローラ５は、トレースデータ収集処理Ｔにジャンプする。そして、トレースデータとして指定された変数ａ、ｂ、ｃをユーザデータ領域から収集し、その変数ａ、ｂ、ｃをトレースバッファ領域にコピーする。そして、時刻ｔ22において、トレースデータ収集処理Ｔが終了すると、定周期プログラムＢのプログラム演算を再開する。
【００３９】
図８は、図２の時刻ｔ11〜ｔ17に実行される処理の詳細を示すシーケンス図である。
図８において、定周期プログラムＡには、複数の命令１、・・・、ｍ、ｍ＋１、ｍ＋２、・・・が含まれ、定周期プログラムＢには、複数の命令１、・・・、ｎ、ｎ＋１、ｎ＋２、・・・が含まれている。そして、例えば、定周期プログラムＡでは、命令ステップｍ＋１の直後に擬似命令が挿入され、定周期プログラムＢでは、命令ステップｎ＋１の直後に擬似命令が挿入されているものとすると、これらの擬似命令がトレースデータ収集処理へのジャンプ命令にそれぞれ置換される。そして、定周期プログラムＡの実行中にこのジャンプ命令を検出すると、命令ステップｍ＋１が実行された直後に、トレースデータ収集処理Ｔが起動され、トレースデータ収集処理Ｔに移行する。そして、命令ステップｍ＋１でのトレースデータ収集処理Ｔにおいては、トレースデータとして指定された変数ｄ、ｅ、ｆをユーザデータ領域から収集し、その変数ｄ、ｅ、ｆをトレースバッファ領域にコピーする。
【００４０】
また、定周期プログラムＢの実行中にこのジャンプ命令を検出すると、命令ステップｎ＋１が実行された直後に、トレースデータ収集処理Ｔが起動され、トレースデータ収集処理Ｔに移行する。そして、命令ステップｎ＋１でのトレースデータ収集処理Ｔにおいては、トレースデータとして指定された変数ａ、ｂ、ｃをユーザデータ領域から収集し、その変数ａ、ｂ、ｃをトレースバッファ領域にコピーする。
【００４１】
これにより、アプリケーションプログラム６上で複数のトレース実行位置を指定することが可能となり、その指定されたタイミングに合わせてトレースデータ収集処理をそれぞれ起動することが可能となるとともに、各命令ステップにおいて互いに異なるトレースデータを収集することが可能となる。このため、アプリケーションプログラム６の命令実体を変更することなく、アプリケーションプログラム６の任意の命令ステップにて互いに異なるトレースデータを収集することが可能となり、ユーザに作成した固有なアプリケーションプログラム６の都合に合わせてトレースを効率よく実行させることができる。この結果、トレースデータの収集タイミングの精度を向上させることが可能となり、アプリケーションプログラム６の検証効率を向上させることができる。
【００４２】
図９は、本発明の一実施形態に係るトレース処理を示すフローチャートである。
図９において、トレースデータ収集処理Ｔが起動されると、ジャンプ元である命令ステップのプログラムカウンタを取得し（ステップＳ１）、トレース設定情報から命令ステップ指定と同一のトレース情報を検索する（ステップＳ２）。そして、トレース情報を検索すると、トレース点数Ｎで指定される回数分だけ、トレース変数アドレスで指定されるトレースデータをトレースバッファへコピーする（ステップＳ３〜Ｓ６）。
【産業上の利用可能性】
【００４３】
本発明のトレースデータ収集装置は、アプリケーションプログラムの命令実体を変更することなく、アプリケーションプログラムの任意の命令ステップにてトレースデータを収集することができ、プログラマブルコントローラで実行されるシーケンスプログラムのトレースなどに利用することができる。
【図面の簡単な説明】
【００４４】
【図１】本発明の一実施形態に係るトレースデータ収集装置の概略構成を示すブロック図である。
【図２】本発明の第１実施形態に係るトレース実行タイミングを示すシーケンス図である。
【図３】図２の時刻ｔ2〜ｔ5に実行される処理の詳細を示すシーケンス図である。
【図４】本発明の一実施形態に係る実行プログラムの生成方法を示す図である。
【図５】本発明の一実施形態に係る実行プログラムによるトレース処理の起動方法を示す図である。
【図６】本発明の一実施形態に係るトレース情報の設定方法を示す図である。
【図７】本発明の第２実施形態に係るトレース実行タイミングを示すシーケンス図である。
【図８】図２の時刻ｔ11〜ｔ17に実行される処理の詳細を示すシーケンス図である。
【図９】本発明の一実施形態に係るトレース処理を示すフローチャートである。
【図１０】従来のトレースデータ収集装置の概略構成を示すブロック図である。
【図１１】従来のトレース実行タイミングを示すシーケンス図である。
【図１２】トレースデータのコピー方法を示す図である。
【図１３】図１１の時刻ｔ32〜ｔ34に実行される処理の詳細を示すシーケンス図である。
【符号の説明】
【００４５】
１  ＣＰＵ支援ツール
２  グラフィカルユーザインターフェース
３  実行プログラム生成手段
３ａ  擬似命令挿入手段
４  トレース情報設定手段
５  コントローラ
６  アプリケーションプログラム
７  擬似命令抽出手段
８  トレース処理起動手段
９  トレース処理手段
【図１】
2006236088.tif 000003
【図２】
2006236088.tif 000004
【図３】
2006236088.tif 000005
【図４】
2006236088.tif 000006
【図５】
2006236088.tif 000007
【図６】
2006236088.tif 000008
【図７】
2006236088.tif 000009
【図８】
2006236088.tif 000010
【図９】
2006236088.tif 000011
【図１０】
2006236088.tif 000012
【図１１】
2006236088.tif 000013
【図１２】
2006236088.tif 000014
【図１３】
2006236088.tif 000015