(57)【要約】【課題】  デバッグ対象機器内のメモリを監視する監視タスクをデバッグ対象機器で動作させてデバッグを行っていたので、デバッグ時と実稼働時とでプログラムの動作順序や動作タイミングが異なる。そのため、リアルタイム性を求められる機能のデバッグができなかったという課題を解決する。【解決手段】  デバッグ対象機器で動作し、通信路で結ばれた外部機器との通信を行うと共に、デバッグ対象機機内部のメモリにアクセスする機能を有する通信部と、前記通信路でデバッグ対象機器と結ばれたＰＣ上で動作する監視アプリケーションを有し、この監視アプリケーションは前記通信部を経由してデバッグ対象機機内部のメモリを監視するようにした。監視アプリケーションがデバッグ対象機器の外部で動作するためにデバッグ時と実稼働時でプログラムの実行順序やタイミングが変わることがない。【選択図】                    図１
2006201872.tif 000002
【特許請求の範囲】
【請求項１】
プログラムの所定の位置にブレークポイントを設定し、このプログラムの動作をチェックすることにより、プログラムをデバッグするデバッグ装置において、
デバッグを行うプログラムが動作するデバッグ対象機器内に配置され、通信路を介して外部機器と通信すると共に、該デバッグ対象機器内に配置されたメモリにアクセスすることができる通信部と、
前記デバッグ対象機器と通信路で接続されるデバッグ端末と、
このデバッグ端末内に配置され、前記通信部を経由して前記デバッグ対象機器内のメモリを監視する監視部と、
前記デバッグ端末内に配置され、前記監視部を経由して前記デバッグ対象機器で動作するプログラムのデバッグを行うデバッガと、
を具備したことを特徴とするデバッグ装置。
【請求項２】
前記通信部は、ＡＳＩＣ(Application Specific Integrated Circuit)で構成されていることを特徴とする請求項１記載のデバッグ装置。
【請求項３】
前記デバッグ対象機器は、ＦＣＳ(Field Control Station)またはＳＣＳ(Safety Control Station)であることを特徴とする請求項１若しくは請求項２記載のデバッグ装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、プログラムをデバッグする装置に関し、特にリアルタイム性が要求される組み込みシステムのデバッグに用いて好適なデバッグ装置に関するものである。
【背景技術】
【０００２】
組み込みシステムをデバッグする代表的な手法としては、エミュレータを用いる手法と監視タスクを利用した手法がある。エミュレータを用いた手法は、マイクロプロセッサのソケットに接続用コネクタを接続し、このマイクロプロセッサの機能をホストコンピュータから模擬してデバッグを行う手法である。アプリケーションをエミュレータのメモリに格納して動作できるため、効率よくデバッグを行うことができる。
【０００３】
図３および図４を用いて、監視タスクを用いたデバッグ手法を説明する。図３において、２０はデバッガ２１がインストールされているＰＣ(Personal Computer)、３０はデバッグ対象機器であるＦＣＳ(Field Control Station)である。ＰＣ２０とＦＣＳ３０はケーブルＳ１で接続されている。ＦＣＳ３０は、バルブやセンサ等を操作監視し、プラントを制御する装置である。
【０００４】
ＦＣＳ３０には、カーネル３１，少なくとも１つのドライバ３２とタスク３３、監視タスク３５およびこれらによってアクセスされるメモリ３４が置かれている。カーネル３１，ドライバ３２およびタスク３３がデバッグの対象であるプログラムである。
【０００５】
監視タスク３５は、デバッガ２１の指令によりカーネル３１，ドライバ３２，タスク３３の動作を監視し、その結果をデバッガ２１に通知する。デバッガ２１は通知された監視結果を表示する。開発者１０は、この表示に基づいてカーネル３１，ドライバ３２、タスク３３が正常に動作しているかどうかを判断し、必要な変更を加える。
【０００６】
図４はデバッグの手順を示したフローチャートである。図４において、工程（４−１）で開発者１０は監視タスク３５を動作させる。次に、工程（４−２）でＰＣ２０とデバッグ対象機器であるＦＣＳ３０を接続し、工程（４−３）でデバッガ２１を起動する。そして、工程（４−４）で開発者１０はデバッガ２１を経由して、ＦＣＳ３０上で動作するプログラム、すなわちカーネル３１，ドライバ３２，タスク３３をデバッグする。
【０００７】
なお、この実施例ではＦＣＳについて説明したが、バルブやセンサの操作監視を行い、プラント異常時にプラントを安全に停止させる装置であるＳＣＳ(Safety Control Station)でも同様にしてデバッグを行うことができる。
【０００８】
【特許文献１】特開２０００−３３０８２１号公報
【特許文献２】特開２００３−００５９９９号公報
【発明の開示】
【発明が解決しようとする課題】
【０００９】
しかし、このような監視タスク３５を用いたデバッグ手法には、次のような課題があった。監視タスク３５はデバッグを行うＦＣＳ３０で動作させなければならない。監視タスク３５はデバッグを行うためのタスクであり、ＦＣＳ３０が実稼働するときは動作しない。そのため、デバッグするときと実稼働するときとでは、プログラムの動作順序や動作タイミングが異なるため、リアルタイム性が求められるプログラムの動作をデバッグすることができないという課題があった。
【００１０】
特に、ＦＣＳやＳＣＳのようにプラントの制御を行う機器ではリアルタイム性が重要な要素になるが、監視タスクを用いたデバッグ手法では、デバッグ時に動作を十分に検証することができないという課題もあった。
【００１１】
従って本発明が解決しようとする課題は、デバッグ対象プログラムの動作順序や動作タイミングに影響を与えることがないデバッグ装置を提供することにある。
【課題を解決するための手段】
【００１２】
このような課題を達成するために、本発明のうち請求項１記載の発明は、プログラムの所定の位置にブレークポイントを設定し、このプログラムの動作をチェックすることにより、プログラムをデバッグするデバッグ装置において、
デバッグを行うプログラムが動作するデバッグ対象機器内に配置され、通信路を介して外部機器と通信すると共に、該デバッグ対象機器内に配置されたメモリにアクセスすることができる通信部と、
前記デバッグ対象機器と通信路で接続されるデバッグ端末と、
このデバッグ端末内に配置され、前記通信部を経由して前記デバッグ対象機器内のメモリを監視する監視部と、
前記デバッグ端末内に配置され、前記監視部を経由して前記デバッグ対象機器で動作するプログラムのデバッグを行うデバッガと、
を具備したものである。デバッグ時と実稼働時でプログラムの順序やタイミングが変わることがない。
【００１３】
請求項２記載の発明は、請求項１記載の発明において、
前記通信部をＡＳＩＣ(Application Specific Integrated Circuit)で構成するようにしたものである。通信部を小型化できる。
【００１４】
請求項３記載の発明は、請求項１若しくは請求項２記載の発明において、
前記デバッグ対象機器は、ＦＣＳ(Field Control Station)またはＳＣＳ(Safety Control Station)であることを特徴としたものである。リアルタイム性が要求されるこれらの機器に用いて好適である。
【発明の効果】
【００１５】
以上説明したことから明らかなように、本発明によれば次のような効果がある。
請求項１，２および請求項３の発明によれば、デバッグ対象機器とデバッグ端末を通信路で接続し、デバッグ対象機器内で通信機能と内部のメモリにアクセスする機能を有する通信部を動作させて、デバッグ端末で動作する監視部が前記通信部を経由してデバッグ対象機器内のメモリを監視するようにした。
【００１６】
デバッグ時のみに使用する監視部をデバッグ端末で動作させ、デバッグ対象機器で動作させないようにしたので、デバッグ時と実稼働時でプログラムの動作順序や動作タイミングが変わることがなくなるという効果がある。そのため、リアルタイム性が要求されるプログラムでも、デバッグ時に実稼働状態を正確に再現できる。
【００１７】
ＦＣＳやＳＣＳはセンサ等の出力を用いてプラントを制御する機器であり、高度なリアルタイム性が要求される。本発明はデバッグ時と実稼働時でプログラムの動作環境が変わることがないので、このような機器に用いて好適である。
【発明を実施するための最良の形態】
【００１８】
以下本発明を図面を用いて詳細に説明する。図１は本発明に係るデバッグ装置の一実施例を示す構成図である。なお、図３と同じ要素には同一符号を付し、説明を省略する。図１において、４０はＰＣ(Personal Computer)であり、デバッガ２１および監視アプリケーション４１がインストールされている。監視アプリケーション４１は、後述する通信部５１を経由してＦＣＳ５０内のメモリにアクセスする機能を有する。
【００１９】
５０はＦＣＳ(Field Control Station)であり、通信路Ｓ１によってＰＣ４０と接続されている。５１はＦＣＳ５０に内蔵されている通信部であり、通信路Ｓ１を介してＰＣ４０と通信し、またメモリ３４にアクセスすることができる。監視アプリケーション４１は、この通信部５１のメモリアクセス機能を用いて、メモリ３４にアクセスできる。この通信部５１は、ＡＳＩＣ(Application Specific Integrated Circuit)で構成される場合もある。
【００２０】
５２はデバッグインターフェイスであり、通信部５１およびカーネル３１に接続されている。デバッグインターフェイス５２は必要に応じてメモリを内蔵し、デバッグのためのインターフェイス機能を提供する。カーネル３１，ドライバ３２およびタスク３３はソフトウエアであり、共にメモリ３４をアクセスして所定の動作を実現する。このカーネル３１，ドライバ３２およびタスク３３がデバッグの対象になる。また、カーネル３１はデバッグ機能を提供し、このデバッグ機能はメモリ３４経由でデバッガ２１からコントロールすることができる。
【００２１】
図３従来例では、デバッグ時のみ監視タスク３５をＦＣＳ３０で動作させていたので、デバッグ時と実稼働時でソフトウエアの動作環境が異なっていた。そのため、デバッグ時と実稼働時でデバッグ対象ソフトウエアの動作順序や動作タイミングが異なってしまうという課題があった。
【００２２】
本実施例では監視タスク３５に相当する監視アプリケーション４１をデバッグ対象機器であるＦＣＳ５０の外部で動作させ、通信部５１を介してメモリ３４にアクセスするようにしたので、デバッグ時と実稼働時でＦＣＳ５０の動作環境が変わることはない。そのため、リアルタイム性が要求されるソフトウエアのデバッグを行うことができるという効果がある。なお、実稼働時には、通信部５１は外部との通信インターフェイスとして動作する。
【００２３】
次に、図２フローチャートを用いてデバッグの具体的な動作を説明する。なお、このフローチャートはブレークポイントを設定する場合について説明したものである。図２において、工程（２−１）で開発者１０は監視アプリケーション４１を起動し、続いて工程（２−２）でデバッガ２１を起動する。デバッガ２１と監視アプリケーション４１は通信を開始する（工程（２−３））。これによってデバッグを行う環境が整い、開発者１０はデバッグを開始する。
【００２４】
工程（２−４）で開発者１０はデバッガ２１にブレークポイントを設定する。デバッガ２１は、監視アプリケーション４１にブレークポイントの設定を依頼する（工程（２−５））。
【００２５】
ブレークポイントの設定を依頼された監視アプリケーション４１は、工程（２−６）で通信部５１を経由してメモリ３４にアクセスし、メモリ３４上の対象箇所にブレークポイントを設定する。
【００２６】
ＦＣＳ５０でデバッグ対象のソフトウエアを動作させると、工程（２−７）でプログラムがブレークポイント上で停止する。監視アプリケーション４１は通信部５１を経由して定周期でメモリ３４にアクセスし、メモリの内容に変化がないか監視している。そのため、ブレークポイントでプログラムが停止したことを検出することができる（工程（２−８））。
【００２７】
ブレークポイントでプログラムが停止したことを検出すると、監視アプリケーション４１はデバッガ２１にプログラムが停止したことを通知する（工程（２−９））。デバッガ２１は、プログラムが停止した旨の通知を受けると、表示器等にその旨を表示する。その結果、開発者１０はプログラムがブレークポイントで停止したことを確認できる（工程（２−１０））。開発者１０はメモリ３４の内容等を調べ、プログラムが意図した動作をしているかをチェックする。
【００２８】
なお、この実施例ではデバッグ対象機器としてＦＣＳを用いたが、ＳＣＳ(Safety Control Station)であってもよい。また、制御機器に限らず、任意の機器に用いることができる。なお、本発明のデバッグ装置はリアルタイム性が要求されるプログラムのデバッグに適しているが、リアルタイム性が重要視されないプログラムのデバッグに用いることもできる。
【図面の簡単な説明】
【００２９】
【図１】本発明の一実施例を示す構成図である。
【図２】本発明の一実施例の動作を示すフローチャートである。
【図３】従来のデバッグ装置の構成図である。
【図４】従来のデバッグ装置の動作を示すフローチャートである。
【符号の説明】
【００３０】
１０  開発者
２１  デバッガ
３１  カーネル
３２  ドライバ
３３  タスク
３４  メモリ
４０  ＰＣ
４１  監視アプリケーション
５０  ＦＣＳ
５１  通信部
５２  デバッグインターフェイス
【図１】
2006201872.tif 000003
【図２】
2006201872.tif 000004
【図３】
2006201872.tif 000005
【図４】
2006201872.tif 000006