説明

デバッグ装置

【課題】 デバッグ対象機器内のメモリを監視する監視タスクをデバッグ対象機器で動作させてデバッグを行っていたので、デバッグ時と実稼働時とでプログラムの動作順序や動作タイミングが異なる。そのため、リアルタイム性を求められる機能のデバッグができなかったという課題を解決する。
【解決手段】 デバッグ対象機器で動作し、通信路で結ばれた外部機器との通信を行うと共に、デバッグ対象機機内部のメモリにアクセスする機能を有する通信部と、前記通信路でデバッグ対象機器と結ばれたPC上で動作する監視アプリケーションを有し、この監視アプリケーションは前記通信部を経由してデバッグ対象機機内部のメモリを監視するようにした。監視アプリケーションがデバッグ対象機器の外部で動作するためにデバッグ時と実稼働時でプログラムの実行順序やタイミングが変わることがない。

【発明の詳細な説明】
【技術分野】
【0001】
本発明は、プログラムをデバッグする装置に関し、特にリアルタイム性が要求される組み込みシステムのデバッグに用いて好適なデバッグ装置に関するものである。
【背景技術】
【0002】
組み込みシステムをデバッグする代表的な手法としては、エミュレータを用いる手法と監視タスクを利用した手法がある。エミュレータを用いた手法は、マイクロプロセッサのソケットに接続用コネクタを接続し、このマイクロプロセッサの機能をホストコンピュータから模擬してデバッグを行う手法である。アプリケーションをエミュレータのメモリに格納して動作できるため、効率よくデバッグを行うことができる。
【0003】
図3および図4を用いて、監視タスクを用いたデバッグ手法を説明する。図3において、20はデバッガ21がインストールされているPC(Personal Computer)、30はデバッグ対象機器であるFCS(Field Control Station)である。PC20とFCS30はケーブルS1で接続されている。FCS30は、バルブやセンサ等を操作監視し、プラントを制御する装置である。
【0004】
FCS30には、カーネル31,少なくとも1つのドライバ32とタスク33、監視タスク35およびこれらによってアクセスされるメモリ34が置かれている。カーネル31,ドライバ32およびタスク33がデバッグの対象であるプログラムである。
【0005】
監視タスク35は、デバッガ21の指令によりカーネル31,ドライバ32,タスク33の動作を監視し、その結果をデバッガ21に通知する。デバッガ21は通知された監視結果を表示する。開発者10は、この表示に基づいてカーネル31,ドライバ32、タスク33が正常に動作しているかどうかを判断し、必要な変更を加える。
【0006】
図4はデバッグの手順を示したフローチャートである。図4において、工程(4−1)で開発者10は監視タスク35を動作させる。次に、工程(4−2)でPC20とデバッグ対象機器であるFCS30を接続し、工程(4−3)でデバッガ21を起動する。そして、工程(4−4)で開発者10はデバッガ21を経由して、FCS30上で動作するプログラム、すなわちカーネル31,ドライバ32,タスク33をデバッグする。
【0007】
なお、この実施例ではFCSについて説明したが、バルブやセンサの操作監視を行い、プラント異常時にプラントを安全に停止させる装置であるSCS(Safety Control Station)でも同様にしてデバッグを行うことができる。
【0008】
【特許文献1】特開2000−330821号公報
【特許文献2】特開2003−005999号公報
【発明の開示】
【発明が解決しようとする課題】
【0009】
しかし、このような監視タスク35を用いたデバッグ手法には、次のような課題があった。監視タスク35はデバッグを行うFCS30で動作させなければならない。監視タスク35はデバッグを行うためのタスクであり、FCS30が実稼働するときは動作しない。そのため、デバッグするときと実稼働するときとでは、プログラムの動作順序や動作タイミングが異なるため、リアルタイム性が求められるプログラムの動作をデバッグすることができないという課題があった。
【0010】
特に、FCSやSCSのようにプラントの制御を行う機器ではリアルタイム性が重要な要素になるが、監視タスクを用いたデバッグ手法では、デバッグ時に動作を十分に検証することができないという課題もあった。
【0011】
従って本発明が解決しようとする課題は、デバッグ対象プログラムの動作順序や動作タイミングに影響を与えることがないデバッグ装置を提供することにある。
【課題を解決するための手段】
【0012】
このような課題を達成するために、本発明のうち請求項1記載の発明は、プログラムの所定の位置にブレークポイントを設定し、このプログラムの動作をチェックすることにより、プログラムをデバッグするデバッグ装置において、
デバッグを行うプログラムが動作するデバッグ対象機器内に配置され、通信路を介して外部機器と通信すると共に、該デバッグ対象機器内に配置されたメモリにアクセスすることができる通信部と、
前記デバッグ対象機器と通信路で接続されるデバッグ端末と、
このデバッグ端末内に配置され、前記通信部を経由して前記デバッグ対象機器内のメモリを監視する監視部と、
前記デバッグ端末内に配置され、前記監視部を経由して前記デバッグ対象機器で動作するプログラムのデバッグを行うデバッガと、
を具備したものである。デバッグ時と実稼働時でプログラムの順序やタイミングが変わることがない。
【0013】
請求項2記載の発明は、請求項1記載の発明において、
前記通信部をASIC(Application Specific Integrated Circuit)で構成するようにしたものである。通信部を小型化できる。
【0014】
請求項3記載の発明は、請求項1若しくは請求項2記載の発明において、
前記デバッグ対象機器は、FCS(Field Control Station)またはSCS(Safety Control Station)であることを特徴としたものである。リアルタイム性が要求されるこれらの機器に用いて好適である。
【発明の効果】
【0015】
以上説明したことから明らかなように、本発明によれば次のような効果がある。
請求項1,2および請求項3の発明によれば、デバッグ対象機器とデバッグ端末を通信路で接続し、デバッグ対象機器内で通信機能と内部のメモリにアクセスする機能を有する通信部を動作させて、デバッグ端末で動作する監視部が前記通信部を経由してデバッグ対象機器内のメモリを監視するようにした。
【0016】
デバッグ時のみに使用する監視部をデバッグ端末で動作させ、デバッグ対象機器で動作させないようにしたので、デバッグ時と実稼働時でプログラムの動作順序や動作タイミングが変わることがなくなるという効果がある。そのため、リアルタイム性が要求されるプログラムでも、デバッグ時に実稼働状態を正確に再現できる。
【0017】
FCSやSCSはセンサ等の出力を用いてプラントを制御する機器であり、高度なリアルタイム性が要求される。本発明はデバッグ時と実稼働時でプログラムの動作環境が変わることがないので、このような機器に用いて好適である。
【発明を実施するための最良の形態】
【0018】
以下本発明を図面を用いて詳細に説明する。図1は本発明に係るデバッグ装置の一実施例を示す構成図である。なお、図3と同じ要素には同一符号を付し、説明を省略する。図1において、40はPC(Personal Computer)であり、デバッガ21および監視アプリケーション41がインストールされている。監視アプリケーション41は、後述する通信部51を経由してFCS50内のメモリにアクセスする機能を有する。
【0019】
50はFCS(Field Control Station)であり、通信路S1によってPC40と接続されている。51はFCS50に内蔵されている通信部であり、通信路S1を介してPC40と通信し、またメモリ34にアクセスすることができる。監視アプリケーション41は、この通信部51のメモリアクセス機能を用いて、メモリ34にアクセスできる。この通信部51は、ASIC(Application Specific Integrated Circuit)で構成される場合もある。
【0020】
52はデバッグインターフェイスであり、通信部51およびカーネル31に接続されている。デバッグインターフェイス52は必要に応じてメモリを内蔵し、デバッグのためのインターフェイス機能を提供する。カーネル31,ドライバ32およびタスク33はソフトウエアであり、共にメモリ34をアクセスして所定の動作を実現する。このカーネル31,ドライバ32およびタスク33がデバッグの対象になる。また、カーネル31はデバッグ機能を提供し、このデバッグ機能はメモリ34経由でデバッガ21からコントロールすることができる。
【0021】
図3従来例では、デバッグ時のみ監視タスク35をFCS30で動作させていたので、デバッグ時と実稼働時でソフトウエアの動作環境が異なっていた。そのため、デバッグ時と実稼働時でデバッグ対象ソフトウエアの動作順序や動作タイミングが異なってしまうという課題があった。
【0022】
本実施例では監視タスク35に相当する監視アプリケーション41をデバッグ対象機器であるFCS50の外部で動作させ、通信部51を介してメモリ34にアクセスするようにしたので、デバッグ時と実稼働時でFCS50の動作環境が変わることはない。そのため、リアルタイム性が要求されるソフトウエアのデバッグを行うことができるという効果がある。なお、実稼働時には、通信部51は外部との通信インターフェイスとして動作する。
【0023】
次に、図2フローチャートを用いてデバッグの具体的な動作を説明する。なお、このフローチャートはブレークポイントを設定する場合について説明したものである。図2において、工程(2−1)で開発者10は監視アプリケーション41を起動し、続いて工程(2−2)でデバッガ21を起動する。デバッガ21と監視アプリケーション41は通信を開始する(工程(2−3))。これによってデバッグを行う環境が整い、開発者10はデバッグを開始する。
【0024】
工程(2−4)で開発者10はデバッガ21にブレークポイントを設定する。デバッガ21は、監視アプリケーション41にブレークポイントの設定を依頼する(工程(2−5))。
【0025】
ブレークポイントの設定を依頼された監視アプリケーション41は、工程(2−6)で通信部51を経由してメモリ34にアクセスし、メモリ34上の対象箇所にブレークポイントを設定する。
【0026】
FCS50でデバッグ対象のソフトウエアを動作させると、工程(2−7)でプログラムがブレークポイント上で停止する。監視アプリケーション41は通信部51を経由して定周期でメモリ34にアクセスし、メモリの内容に変化がないか監視している。そのため、ブレークポイントでプログラムが停止したことを検出することができる(工程(2−8))。
【0027】
ブレークポイントでプログラムが停止したことを検出すると、監視アプリケーション41はデバッガ21にプログラムが停止したことを通知する(工程(2−9))。デバッガ21は、プログラムが停止した旨の通知を受けると、表示器等にその旨を表示する。その結果、開発者10はプログラムがブレークポイントで停止したことを確認できる(工程(2−10))。開発者10はメモリ34の内容等を調べ、プログラムが意図した動作をしているかをチェックする。
【0028】
なお、この実施例ではデバッグ対象機器としてFCSを用いたが、SCS(Safety Control Station)であってもよい。また、制御機器に限らず、任意の機器に用いることができる。なお、本発明のデバッグ装置はリアルタイム性が要求されるプログラムのデバッグに適しているが、リアルタイム性が重要視されないプログラムのデバッグに用いることもできる。
【図面の簡単な説明】
【0029】
【図1】本発明の一実施例を示す構成図である。
【図2】本発明の一実施例の動作を示すフローチャートである。
【図3】従来のデバッグ装置の構成図である。
【図4】従来のデバッグ装置の動作を示すフローチャートである。
【符号の説明】
【0030】
10 開発者
21 デバッガ
31 カーネル
32 ドライバ
33 タスク
34 メモリ
40 PC
41 監視アプリケーション
50 FCS
51 通信部
52 デバッグインターフェイス

【特許請求の範囲】
【請求項1】
プログラムの所定の位置にブレークポイントを設定し、このプログラムの動作をチェックすることにより、プログラムをデバッグするデバッグ装置において、
デバッグを行うプログラムが動作するデバッグ対象機器内に配置され、通信路を介して外部機器と通信すると共に、該デバッグ対象機器内に配置されたメモリにアクセスすることができる通信部と、
前記デバッグ対象機器と通信路で接続されるデバッグ端末と、
このデバッグ端末内に配置され、前記通信部を経由して前記デバッグ対象機器内のメモリを監視する監視部と、
前記デバッグ端末内に配置され、前記監視部を経由して前記デバッグ対象機器で動作するプログラムのデバッグを行うデバッガと、
を具備したことを特徴とするデバッグ装置。
【請求項2】
前記通信部は、ASIC(Application Specific Integrated Circuit)で構成されていることを特徴とする請求項1記載のデバッグ装置。
【請求項3】
前記デバッグ対象機器は、FCS(Field Control Station)またはSCS(Safety Control Station)であることを特徴とする請求項1若しくは請求項2記載のデバッグ装置。

【図1】
image rotate

【図2】
image rotate

【図3】
image rotate

【図4】
image rotate


【公開番号】特開2006−201872(P2006−201872A)
【公開日】平成18年8月3日(2006.8.3)
【国際特許分類】
【出願番号】特願2005−10697(P2005−10697)
【出願日】平成17年1月18日(2005.1.18)
【出願人】(000006507)横河電機株式会社 (4,443)
【Fターム(参考)】