(57)【要約】【課題】外部機器を制御する制御アプリケーションの開発時において、制御対象である外部機器と接続せずに、制御信号の送受信まで考慮したデバッグが可能な、デバッグ支援装置を提供する。【解決手段】本発明に係るデバッグ支援装置３００は、通常動作モードとデバッグ動作モードとを有する信号伝達部３１０を備える。通常動作モードにおいて、信号伝達部３１０は、管理プロセス２２４から外部機器２８０へ送信される外部機器２８０への動作指示を、制御コマンドとして外部機器２８０へ伝達し、外部機器２８０から管理プロセス２２４へ送信される応答信号を、管理プロセス２２４へ伝達する。また、デバッグ動作モードにおいて、信号伝達部３１０は、管理プロセス２２４から外部機器２８０へ送信される外部機器２８０への動作指示を受信した場合に、外部機器２８０が動作した結果を示す応答信号を管理プロセス２２４へ送信する。【選択図】図３
2011221772.tif 000002
【特許請求の範囲】
【請求項１】
外部機器を制御する制御アプリケーションのデバッグを支援するデバッグ支援装置であって、
前記制御アプリケーションは、前記外部機器の動作を制御する管理プロセスを含み、
前記管理プロセスから前記外部機器へ送信される、前記外部機器の動作を指示する第１の制御信号を前記外部機器へ伝達し、前記外部機器から前記管理プロセスへ送信される、前記第１の制御信号に応答して前記外部機器が動作した結果を示す第１の応答信号を前記管理プロセスへ伝達する通常動作モードと、
前記第１の制御信号を受信した場合に、前記第１の応答信号を生成し、生成した前記第１の応答信号を前記管理プロセスへ送信することにより、前記外部機器が接続されている場合と同じ動作を前記管理プロセスに擬似的に行わせるデバック動作モードと、を有する信号伝達部を備える
デバッグ支援装置。
【請求項２】
前記デバッグ支援装置は、さらに、
前記第１の制御信号の第１種別と、当該第１種別に対応する前記第１の応答信号の第２種別とを示す検証条件を保持する検証条件保持部を備え、
前記信号伝達部は、前記デバック動作モードにおいて、前記検証条件に示される第１種別の前記第１の制御信号を前記管理プロセスから受信した場合、当該第１種別に対応する前記第２種別の前記第１の応答信号を生成し、生成した前記第１の応答信号を前記管理プロセスへ送信する
請求項１記載のデバック支援装置。
【請求項３】
前記検証条件は、待機時間を含み、
前記信号伝送部は、前記デバック動作モードにおいて、前記検証条件に示される第１種別の前記第１の制御信号を前記管理プロセスから受信した場合、当該第１種別に対応する前記第２種別の前記第１の応答信号を生成し、前記第１種別の第１の制御信号を受信してから前記待機時間分待機した後、生成した前記第２種別の前記第１の応答信号を前記管理プロセスへ送信する
請求項２記載のデバック支援装置。
【請求項４】
前記デバック支援装置は、さらに、
前記信号伝達部が伝達した前記第１の制御信号及び前記第１の応答信号の履歴を記録する伝達履歴記録部と、
前記伝達履歴記録部に記録された前記履歴から、前記履歴に含まれる第１の制御信号及び前記第１の応答信号の送受信のパターンを再現するように前記検証条件を生成する検証条件生成部とを備える
請求項２又は３に記載のデバッグ支援装置。
【請求項５】
前記検証条件生成部は、前記制御アプリケーションの実行に不具合が生じた時刻に応じた第１期間の前記履歴から、前記履歴に含まれる第１の制御信号及び前記第１の応答信号の送受信のパターンを再現するように前記検証条件を生成する
請求項４記載のデバッグ支援装置。
【請求項６】
前記検証条件生成部は、ユーザにより指定された前記第１期間を取得し、取得した前記第１期間の前記履歴から、前記履歴に含まれる第１の制御信号及び前記第１の応答信号の送受信のパターンを再現するように前記検証条件を生成する
請求項５記載のデバック支援装置。
【請求項７】
前記検証条件は、さらに、前記第１の制御信号及び前記第１の応答信号の送受信のパターンを示す異常条件を含み、
前記信号伝達部は、前記第１の制御信号及び前記第１の応答信号を送受信したパターンが前記異常条件に一致する場合に、異常が発生したことをユーザに通知する
請求項２〜６のいずれか１項に記載のデバッグ支援装置。
【請求項８】
前記検証条件は、さらに、前記第１の制御信号又は前記第１の応答信号の第３種別と、当該第３種別に対応する受信回数とを含み、
前記信号伝達部は、前記検証条件に含まれる第３種別の、前記第１の制御信号又は前記第１の応答信号を、前記受信回数分受信した場合に、異常が発生したことをユーザに通知する
請求項２〜６のいずれか１項に記載のデバック支援装置。
【請求項９】
前記検証条件は、さらに、前記第１の制御信号及び前記第１の応答信号の送受信のパターンを示す正常条件を含み、
前記信号伝達部は、前記第１の制御信号及び前記第１の応答信号を送受信したパターンが前記正常条件に一致しない場合に、異常が発生したことをユーザに通知する
請求項２〜６のいずれか１項に記載のデバッグ支援装置。
【請求項１０】
前記制御アプリケーションは、前記管理プロセスを含む複数の第１のプロセスを含み、
前記複数の第１のプロセスは、互いに前記信号伝達部を介して信号の送受信を行う、
請求項１〜９のいずれか１項に記載のデバッグ支援装置。
【請求項１１】
前記信号伝達部は、
通常動作モード時には、前記複数の第１のプロセスに含まれる第２のプロセスから、前記複数の第１のプロセスに含まれる第３のプロセスへ送信される、前記第３のプロセスの処理を指示する第２の制御信号を前記第３のプロセスへ伝達し、前記第３のプロセスから前記第２のプロセスへ送信される、前記第２の制御信号に応答して前記第３のプロセスが処理した結果を示す第２の応答信号を前記第２のプロセスへ伝達し、
デバッグモード時には、前記第２の制御信号を受信した場合に、前記第２の応答信号を生成し、生成した前記第２の応答信号を前記第２のプロセスへ送信することにより、前記第３のプロセスが停止している場合であっても、前記第３のプロセスが実行されている場合と同じ動作を前記第２のプロセスに擬似的に行わせる、
請求項１０に記載のデバッグ支援装置。
【請求項１２】
前記複数の第１のプロセスは、前記外部機器と通信する通信プロセスを含み、
前記通常動作モードにおいて、
前記信号伝達部は、前記管理プロセスから送信された前記第１の制御信号を前記通信プロセスへ伝達し、
前記通信プロセスは、伝達された前記第１の制御信号を、前記外部機器が解釈可能な形式に変換し、変換された前記第１の制御信号を前記外部機器へ送信し、
前記通信プロセスは、前記外部機器から送信される前記変換された第１の制御信号に応答して前記外部機器が動作した結果を示す第１の応答信号を、前記管理プロセスが解釈可能な形式に変換し、変換された前記第１の応答信号を前記信号伝達部へ送信し、
前記信号伝達部は、前記通信プロセスから送信された前記変換された第１の応答信号を前記管理プロセスへ伝達する、
請求項１０又は１１に記載のデバック支援装置。
【請求項１３】
前記複数の第１のプロセスは、ユーザが入力操作を行うための画面処理プロセスを含む、
請求項１０〜１２のいずれか１項に記載のデバック支援装置。
【請求項１４】
外部機器を制御する制御アプリケーションのデバッグを支援するデバッグ支援方法であって、
前記制御アプリケーションは、前記外部機器の動作を制御する管理プロセスを含み、
前記管理プロセスから前記外部機器へ送信される、前記外部機器の動作を指示する第１の制御信号を前記外部機器へ伝達し、前記外部機器から前記管理プロセスへ送信される、前記第１の制御信号に応答して前記外部機器が動作した結果を示す第１の応答信号を前記管理プロセスへ伝達する通常動作モードと、
前記第１の制御信号を受信した場合に、前記第１の応答信号を生成し、生成した前記第１の応答信号を前記管理プロセスへ送信することにより、前記外部機器が接続されている場合と同じ動作を前記管理プロセスに擬似的に行わせるデバック動作モードと、を有する信号伝達ステップを含む、
デバッグ支援方法。
【請求項１５】
外部機器を制御する制御アプリケーションのデバッグを支援するデバッグ支援方法のプログラムであって、
前記制御アプリケーションは、前記外部機器の動作を制御する管理プロセスを含み、
前記管理プロセスから前記外部機器へ送信される、前記外部機器の動作を指示する第１の制御信号を前記外部機器へ伝達し、前記外部機器から前記管理プロセスへ送信される、前記第１の制御信号に応答して前記外部機器が動作した結果を示す第１の応答信号を前記管理プロセスへ伝達する通常動作モードと、
前記第１の制御信号を受信した場合に、前記第１の応答信号を生成し、生成した前記第１の応答信号を前記管理プロセスへ送信することにより、前記外部機器が接続されている場合と同じ動作を前記管理プロセスに擬似的に行わせるデバック動作モードと、を有する信号伝達ステップを、
コンピュータに実行させるためのプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、デバッグ支援装置、デバッグ支援方法及びデバッグ支援プログラムに関し、特に、外部機器を制御する制御アプリケーションのデバッグを支援するデバッグ支援装置に関する。
【背景技術】
【０００２】
製造装置や検査装置等を制御する制御アプリケーションの多くは、受注生産品である。
よって、客先の生産ラインを構成する前記装置にあわせて、受注を受けたプログラマが制御アプリケーションを開発する。
【０００３】
その場合、客先のラインを停止させることが困難である場合が多い。そのため、プログラマは制御対象となる装置を用いて開発中の前記制御アプリケーションを検証することが困難であった。
【０００４】
また、客先に前記制御アプリケーションを導入した後に不具合が発生した場合であっても、生産ラインを停止させることは損失となるため、いち早く不具合を解決する必要がある。さらに、多くの装置とアプリケーションが組み合わされた制御アプリケーションは動作が非決定的となるため、不具合要因の切り分けが困難であった。
【０００５】
従来、非決定的なプログラム向けのデバッグ装置による、デバッグ作業の効率化が試みられてきた。
【０００６】
例えば特許文献１では、不具合発生時にデバッグ対象プログラムで発生した「イベント」の発生順序を、再現することが試みられている。
【先行技術文献】
【特許文献】
【０００７】
【特許文献１】特開平９−２１２３８５号公報
【発明の概要】
【発明が解決しようとする課題】
【０００８】
しかしながら、特許文献１に記載のデバッグ装置は、計算機内で生成されたタスクについて、各タスク内で事前に定められた発生順序に従ってイベントが発生することを確認できるに留まる。
【０００９】
また、アプリケーションが制御対象である外部機器と制御信号を送受信するような機械制御システムのデバッグにおいては、送受信された制御信号の内容及び時刻によってアプリケーションの挙動が変わる。こうした場合、特許文献１のデバッグ装置では、デバッグを効率化することができないという問題があった。
【００１０】
さらに、前述の通り、制御アプリケーションが制御の対象とする外部機器は一般に客先にしかなく、アプリケーションと外部機器とをつないで長期間のデバッグを行うことが困難であるという問題があった。
【００１１】
本発明は、上述の問題点を解決するためになされたものであり、外部機器を制御する制御アプリケーションの開発時において、制御対象である外部機器と接続せずに、制御信号の送受信まで考慮したデバッグが可能な、デバッグ支援装置を提供することを目的とする。
【課題を解決するための手段】
【００１２】
上記問題点を解決するために、本発明の一態様であるデバッグ支援装置は、外部機器を制御する制御アプリケーションのデバッグを支援するデバッグ支援装置であって、前記制御アプリケーションは、前記外部機器の動作を制御する管理プロセスを含み、前記管理プロセスから前記外部機器へ送信される、前記外部機器の動作を指示する第１の制御信号を前記外部機器へ伝達し、前記外部機器から前記管理プロセスへ送信される、前記第１の制御信号に応答して前記外部機器が動作した結果を示す第１の応答信号を前記管理プロセスへ伝達する通常動作モードと、前記第１の制御信号を受信した場合に、前記第１の応答信号を生成し、生成した前記第１の応答信号を前記管理プロセスへ送信することにより、前記外部機器が接続されている場合と同じ動作を前記管理プロセスに擬似的に行わせるデバック動作モードと、を有する信号伝達部を備える。
【００１３】
この構成によると、本発明の一態様であるデバッグ支援装置は、デバッグ動作モードを使用することで、制御アプリケーション内の管理プロセスと外部機器との信号の送受信を模擬することができる。従って、本発明の一態様であるデバッグ支援装置は、制御アプリケーションを外部機器と接続せずに、制御アプリケーションが行う制御信号の送受信処理までを考慮したデバッグを行うことができる。
【００１４】
また、前記デバッグ支援装置は、さらに、前記第１の制御信号の第１種別と、当該第１種別に対応する前記第１の応答信号の第２種別とを示す検証条件を保持する検証条件保持部を備え、前記信号伝達部は、前記デバック動作モードにおいて、前記検証条件に示される第１種別の前記第１の制御信号を前記管理プロセスから受信した場合、当該第１種別に対応する前記第２種別の前記第１の応答信号を生成し、生成した前記第１の応答信号を前記管理プロセスへ送信してもよい。
【００１５】
この構成によると、事前に検証条件を与えることにより、本発明の一態様であるデバッグ支援装置は、制御アプリケーションと外部機器との間で送受信される信号のうち特定の信号の送受信を模擬することができる。したがって、例えば、外部機器と制御アプリケーションを実際に接続してデバッグを行う場合において、複数回の信号のうち、不具合が発生する信号と発生しない信号を容易に切り分けることができる。
【００１６】
また、前記検証条件は待機時間を含み、前記信号伝送部は前記デバック動作モードにおいて、前記検証条件に示される第１種別の前記第１の制御信号を前記管理プロセスから受信した場合、当該第１種別に対応する前記第２種別の前記第１の応答信号を生成し、前記第１種別の第１の制御信号を受信してから前記待機時間分待機した後、生成した前記第２種別の前記第１の応答信号を前記管理プロセスへ送信してもよい。
【００１７】
この構成によると、本発明の一態様であるデバッグ支援装置は、制御アプリケーションと外部機器との間で送受信される信号のうち特定の信号の送受信を模擬する際に、模擬信号の送信タイミングを変更することができる。
【００１８】
また前記デバック支援装置は、さらに、前記信号伝達部が伝達した前記第１の制御信号及び前記第１の応答信号の履歴を記録する伝達履歴記録部と、前記伝達履歴記録部に記録された前記履歴から、前記履歴に含まれる第１の制御信号及び前記第１の応答信号の送受信のパターンを再現するように前記検証条件を生成する検証条件生成部とを備えてもよい。
【００１９】
この構成によると、制御アプリケーションと外部機器との間で過去に送受信された信号を模擬することができる。したがって、例えば制御アプリケーションや外部機器を変更した場合に、過去の稼働状態に基づいた動作テストを行うことができる。
【００２０】
また、前記検証条件生成部は、前記制御アプリケーションの実行に不具合が生じた時刻に応じた第１期間の前記履歴から、前記履歴に含まれる第１の制御信号及び前記第１の応答信号の送受信のパターンを再現するように前記検証条件を生成してもよい。
【００２１】
この構成によると、本発明の一態様であるデバッグ支援装置は、制御アプリケーションと外部機器との間で過去に送受信された信号のうち前記制御アプリケーションの実行に不具合が生じた時刻に応じて選択された信号のみを、模擬することができる。
【００２２】
また、前記検証条件生成部は、ユーザにより指定された前記第１期間を取得し、取得した前記第１期間の前記履歴から、前記履歴に含まれる第１の制御信号及び前記第１の応答信号の送受信のパターンを再現するように前記検証条件を生成してもよい。
【００２３】
この構成によると、本発明の他の一態様であるデバッグ支援装置は、ユーザにより指定された時刻に絞って、制御アプリケーションと外部機器との間で過去に送受信された信号を容易に模擬することができる。
【００２４】
また、前記検証条件は、さらに、前記第１の制御信号及び前記第１の応答信号の送受信のパターンを示す異常条件を含み、前記信号伝達部は、前記第１の制御信号及び前記第１の応答信号を送受信したパターンが前記異常条件に一致する場合に、異常が発生したことをユーザに通知してもよい。
【００２５】
この構成によると、本発明の一態様であるデバッグ支援装置は、制御アプリケーションと外部機器との間で特定の異常パターンに一致する信号が送受信された場合には、ユーザに通知することができる。したがって、異常な信号の発生パターンを監視し、不具合要因の解明を効率化することができる。
【００２６】
また、前記検証条件は、さらに、前記第１の制御信号又は前記第１の応答信号の第３種別と、当該第３種別に対応する受信回数とを含み、前記信号伝達部は、前記検証条件に含まれる第３種別の、前記第１の制御信号又は前記第１の応答信号を、前記受信回数分受信した場合に、異常が発生したことをユーザに通知してもよい。
【００２７】
この構成によると、本発明の他の一態様であるデバッグ支援装置は、例えば制御アプリケーションから制御信号を指定回数以上受信した場合に、ユーザに通知することができる。
【００２８】
また、前記検証条件は、さらに、前記第１の制御信号及び前記第１の応答信号の送受信のパターンを示す正常条件を含み、前記信号伝達部は、前記第１の制御信号及び前記第１の応答信号を送受信したパターンが前記正常条件に一致しない場合に、異常が発生したことをユーザに通知してもよい。
【００２９】
この構成によると、本発明の他の一態様であるデバッグ支援装置は、事前に定められた、正常な制御信号の送信及び応答信号の受信パターンから逸脱した信号の送受信が生じた場合に、ユーザに通知することができる。
【００３０】
また、前記制御アプリケーションは、前記管理プロセスを含む複数の第１のプロセスを含み、前記複数の第１のプロセスは、互いに前記信号伝達部を介して信号の送受信を行ってもよい。
【００３１】
これにより、制御アプリケーションを構成するプロセス毎に独立したプログラム開発を行うことができる。その結果、長期間にわたる開発及び保守作業を行っても、制御アプリケーションが、プログラム内の構造が複雑に入り組んだ「スパゲッティプログラム」となりにくい、という利点が生じる。
【００３２】
また、前記信号伝達部は、通常動作モード時には、前記複数の第１のプロセスに含まれる第２のプロセスから、前記複数の第１のプロセスに含まれる第３のプロセスへ送信される、前記第３のプロセスの処理を指示する第２の制御信号を前記第３のプロセスへ伝達し、前記第３のプロセスから前記第２のプロセスへ送信される、前記第２の制御信号に応答して前記第３のプロセスが処理した結果を示す第２の応答信号を前記第２のプロセスへ伝達し、デバッグモード時には、前記第２の制御信号を受信した場合に、前記第２の応答信号を生成し、生成した前記第２の応答信号を前記第２のプロセスへ送信することにより、前記第３のプロセスが停止している場合であっても、前記第３のプロセスが実行されている場合と同じ動作を前記第２のプロセスに擬似的に行わせてもよい。
【００３３】
これにより、制御アプリケーションが有する一部のプロセスがプログラムとして未実装であっても、そのプログラムが完成したものとして、制御アプリケーションのデバッグを行うことができるという利点が生じる。
【００３４】
また、前記複数の第１のプロセスは、前記外部機器と通信する通信プロセスを含み、前記通常動作モードにおいて、前記信号伝達部は、前記管理プロセスから送信された前記第１の制御信号を前記通信プロセスへ伝達し、前記通信プロセスは、伝達された前記第１の制御信号を、前記外部機器が解釈可能な形式に変換し、変換された前記第１の制御信号を前記外部機器へ送信し、前記通信プロセスは、前記外部機器から送信される前記変換された第１の制御信号に応答して前記外部機器が動作した結果を示す第１の応答信号を、前記管理プロセスが解釈可能な形式に変換し、変換された前記第１の応答信号を前記信号伝達部へ送信し、前記信号伝達部は、前記通信プロセスから送信された前記変換された第１の応答信号を前記管理プロセスへ伝達してもよい。
【００３５】
この構成によると、本発明の他の一態様であるデバッグ支援装置は、制御アプリケーションが外部機器との通信機能を別プロセスで実現している場合であっても、デバッグ動作モードにおいて、制御アプリケーションと外部機器との間で送受信される信号を模擬することができる。
【００３６】
また、前記複数の第１のプロセスは、ユーザが入力操作を行うための画面処理プロセスを含んでもよい。
【００３７】
この構成によると、本発明の他の一態様であるデバッグ支援装置は、制御アプリケーションが操作用ＧＵＩ画面を別プロセスで実現している場合であっても、デバッグ動作モードにおいて、制御アプリケーションと外部機器との間で送受信される信号を模擬することができる。
【発明の効果】
【００３８】
本発明は、外部機器を制御する制御アプリケーションの開発時において、制御対象である外部機器と接続せずに、制御信号の送受信まで考慮した効率的なデバッグが可能な、デバッグ支援装置を提供できる。
【図面の簡単な説明】
【００３９】
【図１】本発明の実施の形態１における、機械制御システムの概要を示す図である。
【図２】本発明の実施の形態１における、制御装置が有するハードウェア構成の概要を示す図である。
【図３】本発明の実施の形態１における、制御アプリケーション及びデバッグ支援装置が有する機能の概要を示したブロック図である。
【図４】本発明の実施の形態１における機械制御システムの処理の概要を示したフローチャートである。
【図５】本発明の実施の形態１における、通常動作時の制御信号の流れを示すシーケンス図である。
【図６ａ】本発明の実施の形態１において、要送信信号を送信するためのＡＰＩを示す図である。
【図６ｂ】本発明の実施の形態１において、要受信信号を送信ためのＡＰＩを示す図である。
【図７】本発明の実施の形態１における、デバッグ動作時の制御信号の流れを示すシーケンス図である。
【図８】本発明の実施の形態１における、伝達モードファイルのデータ構造の一例を示す図である。
【図９】本発明の実施の形態１における、検証条件ファイルのデータ構造の一例を示す図である。
【図１０】本発明の実施の形態１における、検証条件ファイルのデータ構造の他の一例を示す図である。
【図１１】本発明の実施の形態１における、図１０に示した検証条件ファイルに対応する、信号伝達部の処理を示すフローチャートである。
【図１２】本発明の他の実施の形態２における、処理の流れを示すフローチャートである。
【図１３】本発明の実施の形態２における履歴ファイルの一例を示す図である。
【図１４】本発明の実施の形態２における検証条件ファイルの雛形の一例を示す図である。
【図１５】本発明の実施の形態２における、検証条件ファイルの雛形を修正するためのＧＵＩ画面を示す図である。
【発明を実施するための形態】
【００４０】
以下、本発明の実施の形態について図面を用いて説明する。
図１は、本発明に係るデバッグ支援装置を有する機械制御システム１００の外観を示す。
【００４１】
機械制御システム１００は、制御装置２００及び外部機器２８０を備えている。
例えば、機械制御システム１００は、半導体基板の生産ラインにおいて、組み付け作業を行う外部機器２８０を、制御装置２００が所定の作業目標に従って制御することにより、半導体基板を生産するシステムである。
【００４２】
制御装置２００は計算機であり、例えば汎用のＰＣ（Personal Computer）又は、制御装置の専用コントロール装置等である。
【００４３】
また、制御装置２００は、制御アプリケーション２２０及びデバッグ支援装置３００を含む。
【００４４】
例えば、制御装置２００は、外部機器２８０の一部であるロボットアーム２６０に対して、制御信号を送信する。さらに、制御装置２００は、ロボットアーム２６０から応答信号を受信する。このように、制御装置２００は、外部機器２８０と信号の送受信を繰り返し行うことで、機械制御システム１００の機能を実現する。
【００４５】
外部機器２８０は、例えば半導体の生産ラインや、基板の実装ラインを構成する１台以上の生産装置等である。外部機器２８０は、ロボットアーム２６０や、ベルトコンペア２７０等、制御装置２００との間で制御信号の送受信を行う機能を有する。
【００４６】
図２は、制御装置２００が有するハードウェアの構成を示す概要図である。
制御装置２００は、ＣＰＵ２０１、メモリ２０２、表示装置２０３、ストレージ２０４、入力装置２０５及び通信Ｉ／Ｆ２０６を備えている。
【００４７】
ＣＰＵ２０１は、通常の計算機処理に用いられる数値演算装置等である。ＣＰＵ２０１は、制御アプリケーション２２０及びデバッグ支援装置３００の実行に必要な計算を行う。
【００４８】
メモリ２０２は、ＲＡＭ（Random Access Memory）等の記憶装置である。メモリ２０２は、ＣＰＵの作業領域として使われる。具体的には、制御アプリケーション２２０及びデバッグ支援装置３００を実行する際にＣＰＵ２０１が用いる他、後に述べるような、制御アプリケーション２２０とデバッグ支援装置３００との間で行われるプロセス間通信においてＣＰＵ２０１が用いる。
【００４９】
なお、メモリ２０２には、制御アプリケーション２２０やデバッグ支援装置３００のプログラム等、書き換え不要なデータについて保持するためのＲＯＭ（Read Only Memory）を含んでも良い。
【００５０】
表示装置２０３は、例えばＬＣＤ（Liquid Crystal Display）等であり、ＣＰＵ２０１は、ユーザに対して制御アプリケーション２２０及びデバッグ支援装置３００の動作状況を出力する。また、制御アプリケーション２２０及びデバッグ支援装置３００を操作するＧＵＩ画面を表示するためにＣＰＵ２０１が使用する。
【００５１】
ストレージ２０４は、外部記憶装置であり、例えばハードディスクやＣＤ−ＲＯＭドライブ等である。ストレージ２０４には、例えば制御アプリケーション２２０及びデバッグ支援装置３００が使用するプログラムが記録されている。ＣＰＵ２０１は、制御アプリケーション２２０及びデバッグ支援装置３００の機能を実現するプログラムを実行する際には、ストレージ２０４から前記プログラムを読み込んだ後、メモリ２０２中のＲＡＭ領域に書き込み、前記ＲＡＭ領域から前記プログラムを実行することができる。また、ＣＰＵ２０１は、制御アプリケーション２２０やデバッグ支援装置３００が生成するファイルの読み書きを行う場所として、ストレージ２０４を使用する。
【００５２】
入力装置２０５は、制御アプリケーション２２０やデバッグ支援装置３００に対して、ユーザが指示を行うための入力装置であり、例えばマウスやキーボード、タッチパネル等である。
【００５３】
通信Ｉ／Ｆ２０６は、制御アプリケーション２２０と外部機器２８０との間で制御信号の送信や応答信号の受信を行うための通信インタフェースである。通信Ｉ／Ｆ２０６は、例えばＬＡＮ（Local Area Network）や、シリアルポート等である。
【００５４】
なお、制御装置２００が有するＣＰＵ２０１の数が１の場合は、制御アプリケーション２２０とデバッグ支援装置３００は、ＣＰＵ２０１の計算時間を時分割して行うマルチタスク処理で動作することになる。また、ＣＰＵ２０１が複数ある場合には、各ＣＰＵを制御アプリケーション２２０及びデバッグ支援装置３００にそれぞれ割り当ててもよい。
【００５５】
なお、本発明に係るデバッグ支援装置３００は、制御装置２００と異なる計算機が実行してもよい。その場合は、ＬＡＮ等の通信インタフェースにより制御装置２００と本発明に係るデバッグ支援装置３００とを接続することで、制御装置２００上で動作する制御アプリケーション２２０のデバッグを行うことになる。
【００５６】
図３は、本実施の形態に係る、制御アプリケーション２２０及びデバッグ支援装置３００が有する機能の概要を示したブロック図である。
【００５７】
制御アプリケーション２２０は、画面処理プロセス２２２、管理プロセス２２４及び通信プロセス２２６を有する。また、デバッグ支援装置３００は、信号伝達部３１０、伝達モード切替部３２０、伝達履歴記録部３４０、検証条件生成部３６０及び検証条件保持部３８０を有する。
【００５８】
画面処理プロセス２２２は、ＧＵＩ（Graphical User Interface）等の、ユーザが制御アプリケーション２２０を操作するための操作画面を表示装置２０３に表示するとともに、入力装置２０５からのユーザの入力を受け取る。例えば、ロボットアーム２６０のアーム位置を原点に戻すための「原点復帰ボタン」を表示装置２０３に表示するとともに、ユーザが前記原点復帰ボタンをマウスでクリックした場合には、前記クリック信号を受け取り、管理プロセス２２４に通知する。
【００５９】
管理プロセス２２４は、制御アプリケーション２２０の動作ロジックを処理する。例えば、画面処理プロセス２２２から、前記原点復帰ボタンがクリックされた旨を通知する信号を受け取った場合には、ロボットアーム２６０のアーム位置を原点に戻すために必要な処理として、通信プロセスを介してロボットアーム２６０へ、原点復帰コマンドを送信する。
【００６０】
通信プロセス２２６は、制御アプリケーション２２０から外部機器２８０への制御信号の送信及び、外部機器２８０から制御アプリケーション２２０への応答信号の受信を行う。なお、制御アプリケーション２２０から外部機器２８０への制御信号及び外部機器２８０から制御アプリケーション２２０への応答信号の内容は、制御対象である外部機器２８０ごとに異なる。よって、通信プロセス２２６は、制御信号及び応答信号に関する情報を外部機器２８０ごとに保持している。
【００６１】
そのため、通信プロセス２２６は、信号伝達部３１０から伝達された制御信号である要受信信号３２００を、必要に応じて外部機器２８０が解釈可能な制御コマンドに変換し、変換した制御コマンドを外部機器２８０へ送信する。
【００６２】
さらに、通信プロセス２２６は、送信した制御コマンドに応答して外部機器２８０が動作した結果を示す応答コマンドを、必要に応じて管理プロセス２２４が解釈可能な応答信号に変換し、変換した応答信号を信号伝達部３１０へ要送信信号３１００として送信する。
【００６３】
さらに、信号伝達部３１０は、通信プロセス２２６から送信された応答信号を、要受信信号３２００として管理プロセス２２４へ伝達する。
【００６４】
なお、画面処理プロセス２２２、管理プロセス２２４及び通信プロセス２２６は、必ずしも個別のプロセスである必要はなく、１つのプロセス内で処理される複数のスレッドとして実行されてもよい。また、画面処理プロセス２２２、管理プロセス２２４及び通信プロセス２２６は、１つの制御装置２００内で実行される必要はなく、ネットワーク接続された複数の制御装置２００内で分散して実行されてもよい。
【００６５】
信号伝達部３１０は、制御アプリケーション２２０が有する複数のプロセス間での信号の送受信を行う。制御アプリケーション２２０が有する各プロセスが他のプロセスと通信を行う場合には、必ず信号伝達部３１０を介して通信を行う。
【００６６】
信号伝達部３１０は、制御信号送信部３１１と制御信号受信部３１２とを有する。
制御信号受信部３１２は、制御アプリケーション２２０が有する一のプロセスから、要送信信号３１００を受信する。要送信信号３１００は、宛先として指定された別プロセスの名前及び伝達すべき制御信号の内容を含む。
【００６７】
制御信号送信部３１１は、前記宛先として指定された前記別プロセスに対して、要受信信号３２００を送信する。要受信信号３２００は、前記要送信信号３１００に含まれる、前記制御信号の内容を含む。
【００６８】
例えば、画面処理プロセス２２２が原点復帰ボタンのクリック信号を受け取った場合には、画面処理プロセス２２２は、管理プロセス２２４を宛先とし、原点復帰ボタンが押されたことを内容とする要送信信号３１００を信号伝達部３１０へ送る。前記要送信信号３１００を受け取った信号伝達部３１０は、宛先として指定された管理プロセス２２４に対して、原点復帰ボタンが押されたことを内容とする要受信信号３２００を送る。
【００６９】
以上の説明から明らかなように、制御アプリケーション２２０を実行する場合には、必ずデバッグ支援装置３００も実行される。制御アプリケーション２２０の実行には、信号伝達部３１０が不可欠なためである。
【００７０】
なお、制御信号受信部３１２及び制御信号送信部３１１は、例えば共有メモリや、ネットワーク経由での遠隔関数呼び出し等により、実現することができる。
【００７１】
伝達モード切替部３２０は、伝達モードファイル３２２を読み込み、その内容に従って、デバッグ支援装置３００の伝達モードを設定する。
【００７２】
前記伝達モードには、通常動作モードとデバッグ動作モードの２種類があり、モードが違うと信号伝達部３１０の動作が異なる。詳細は後述する。
【００７３】
伝達履歴記録部３４０は、信号伝達部３１０が行った処理を履歴ファイル３４２へと記録する。信号伝達部３１０が行った処理とは、例えば、要送信信号３１００を受信した時刻、要受信信号３２００を送信した時刻、及び、その内容等である。また、信号伝達部３１０が通信プロセス２２６を介さずに外部機器２８０へコマンドを送信し、又はコマンドの実行結果を受信した場合には、当該コマンドの送受信の時刻や内容等も、信号伝達部３１０が行った処理に含まれる。
【００７４】
検証条件生成部３６０は、伝達履歴記録部３４０から取得した履歴ファイル３４２を元に、履歴に含まれる信号伝達部３１０が行った信号の送受信を再現するように検証条件ファイル３８２を生成し、検証条件保持部３８０へ書き込む。信号伝達部３１０が行った信号の送受信とは、例えば要送信信号３１００の受信と、その要送信信号３１００に対応する要受信信号３２００の送信、又は、外部機器２８０へのコマンドの送信と、そのコマンドの送信に対応する外部機器２８０からのコマンド処理結果通知等である。
【００７５】
詳細は後述するが、例えば制御アプリケーション２２０を使用中に不具合が発生した場合、当該不具合の原因を解明するために、検証条件生成部３６０により生成された検証条件ファイル３８２を用いることができる。
【００７６】
図４は、本発明の実施の形態における、デバッグ支援装置３００の処理の概要を示したフローチャートである。
【００７７】
開始後、伝達モード切替部３２０は、デバッグ支援装置３００の動作モードとして、通常動作モード又はデバッグ動作モードのいずれかの伝達モードを決定する（Ｓ３１２）。
【００７８】
信号伝達部３１０は、前記伝達モード切替部３２０の決定結果が通常動作モードであれば（Ｓ３１４でＹｅｓ）、通常動作を行う（Ｓ３１６）。一方、デバッグ動作モードであれば（Ｓ３１４でＮｏ）、信号伝達部３１０は対応する検証条件ファイル３８２を読み込み（Ｓ３１７）、検証条件ファイル３８２に従ったデバッグ動作を行う（Ｓ３１８）。
【００７９】
図５は、通常動作（Ｓ３１６）における制御信号の伝達の流れの一例を示したシーケンス図である。
【００８０】
図５を用いて、画面処理プロセス２２２、信号伝達部３１０、管理プロセス２２４、通信プロセス２２６及び外部機器２８０の間における、通常動作モード時の制御信号の流れを説明する。
【００８１】
今、「原点復帰ボタン」が押されたことを画面処理プロセス２２２が検知したとする。画面処理プロセス２２２は、原点復帰ボタンが押されたことを示す「復帰ボタン要求」を、要送信信号３１００として信号伝達部３１０に送る（Ｓ５１１）。要送信信号３１００を受信した信号伝達部３１０は、「復帰ボタン要求」を要受信信号３２００として管理プロセス２２４に送る（Ｓ５１２）。これにより、管理プロセス２２４は、原点復帰ボタンがおされたことを知る。
【００８２】
次に、管理プロセス２２４は、外部機器の原点復帰を指示する「原点復帰要求」を、要送信信号３１００として信号伝達部３１０に送信する（Ｓ５１３）。要送信信号３１００を受信した信号伝達部３１０は、「原点復帰要求」を要受信信号３２００として通信プロセス２２６に送る（Ｓ５１４）。これにより、通信プロセス２２６は、外部機器を原点復帰させなければならないことを知る。
【００８３】
次に、通信プロセス２２６は、外部機器２８０に対して、原点復帰コマンドに相当する「原点復帰コマンド要求」を送る（Ｓ５１５）。「原点復帰コマンド要求」を受けた外部機器２８０は、原点復帰動作を行う（Ｓ５１６）。外部機器２８０は、前記動作を完了した後、通信プロセス２２６に対して、原点復帰コマンドが完了したことを通知する「原点復帰コマンド応答」を送信する（Ｓ５１７）。
【００８４】
次に、通信プロセス２２６は、原点復帰完了を通知する「原点復帰応答」を要送信信号３１００として信号伝達部３１０に送る（Ｓ５２０）。要送信信号３１００を受信した信号伝達部３１０は、原点復帰完了を通知する「原点復帰応答」を要受信信号３２００として管理プロセス２２４に送る（Ｓ５２１）。これにより、管理プロセス２２４は、外部機器が原点復帰したことを知る。
【００８５】
次に、管理プロセス２２４は、原点復帰ボタン処理の完了を通知する「復帰ボタン応答」を要送信信号３１００として信号伝達部３１０に送る（Ｓ５２２）。要送信信号３１００を受信した信号伝達部３１０は、原点復帰ボタン処理の完了を通知する「復帰ボタン応答」を要受信信号３２００として画面処理プロセス２２２に送る（Ｓ５２３）。これにより、画面処理プロセス２２２は、原点復帰ボタンが押されたことに対する処理が完了したことを知り、例えばその旨を表示装置２０３に表示する。
【００８６】
以上が、通常動作モードにおける信号伝達部３１０の伝達処理である。
なお、実際には、管理プロセス２２４は複数の原点復帰要求（Ｓ５１３）を発行する場合がある。例えば、Ｘ軸用原点復帰要求、Ｙ軸用原点復帰要求、Ｚ軸用原点復帰要求等を発行する場合が考えられる。
【００８７】
また、上記の信号伝達部３１０を介した制御信号のプロセス間通信の仕組みを、制御アプリケーション２２０に簡単に組み込む方法として、例えば、ＡＰＩ（Application Programming Interface）としてメッセージを送受信する仕組みを提供することが考えられる。
【００８８】
図６ａは、要送信信号３１００及び要受信信号３２００を実装する、前記「復帰ボタン要求」及び前記「原点復帰要求」のＡＰＩの例である、ＲｅｑＡｐｉ３１０１を示す。
【００８９】
このＲｅｑＡｐｉ３１０１は、引数としてイベント種別３１０２、発行元ＩＤ３１０４、最終発行先ＩＤ３１０６及びイベント種別による引数３１０８（可変長）をとる。
【００９０】
イベント種別３１０２は、「ボタンが押された」「外部機器にコマンドを発行せよ」など、制御信号を用いて伝達したい内容を示す。
【００９１】
発行元ＩＤ３１０４は、制御信号の送り元である。発行元ＩＤ３１０４は、制御アプリケーション２２０内の一プロセスを示すＩＤである。
【００９２】
最終発行先ＩＤ３１０６は、制御信号の最終的な宛先である。最終発行先ＩＤ３１０６は、制御アプリケーション２２０内の別プロセスを示すＩＤである。
【００９３】
イベント種別による引数３１０８は、必要に応じて、イベント種別３１０２固有の引数を指定する。例えば、「ボタンが押された」というイベント種別３１０２に対して、そのボタンが原点復帰ボタンであることを特定する場合等に用いる。
【００９４】
図６ｂは、要送信信号３１００及び要受信信号３２００を実装する、前記「復帰ボタン応答」及び前記「原点復帰応答」のＡＰＩの例である、ＡｎｓＡｐｉ３２０１を示す。
【００９５】
このＡｎｓＡｐｉ３２０１は、引数としてイベント種別３２０２、発行元ＩＤ３２０４、最終発行先ＩＤ３２０６及びイベント種別による引数３２０８をとる。イベント種別３２０２、発行元ＩＤ３２０４、最終発行先ＩＤ３２０６及びイベント種別による引数３２０８は、ＲｅｑＡｐｉ３１０１における、イベント種別３１０２、発行元ＩＤ３１０４、最終発行先ＩＤ３１０６及びイベント種別による引数３１０８と、それぞれ同じ意味を示す。
【００９６】
図７は、外部機器２８０が存在しない場合におけるデバッグ動作時（図４におけるＳ３１８）の制御信号の流れを示すシーケンス図である。
【００９７】
図７の動作シーケンスには、外部機器２８０が存在しない。よって、通常動作モードを用いると、信号伝達部３１０は通信プロセス２２６を介して外部機器２８０に対し原点復帰コマンドを発行することができない。そこで、制御アプリケーション２２０の開発者は、デバッグ動作モードを使用してデバッグを行うことができる。
【００９８】
図５同様に、「原点復帰ボタン」が押されたことを画面処理プロセス２２２が検知したとする。
【００９９】
画面処理プロセス２２２は、原点復帰ボタンが押されたことを通知する「復帰ボタン要求」を要送信信号３１００として信号伝達部３１０に送る（Ｓ５１１）。要送信信号３１００を受信した信号伝達部３１０は、原点復帰ボタンがおされたことを通知する「復帰ボタン要求」を要受信信号３２００として管理プロセス２２４に送る（Ｓ５１２）。これにより、管理プロセス２２４は、原点復帰ボタンがおされたことを知る。
【０１００】
次に、管理プロセス２２４は、外部機器の原点復帰を指示する「原点復帰要求」を、要送信信号３１００として信号伝達部３１０に送信する（Ｓ５１３）。  ここまでは、図５に示した通常動作モード同様の処理である。
【０１０１】
しかし、これ以降の通信プロセス２２６や外部機器２８０との通信はスキップされ（Ｓ５１４ａ、Ｓ５１５ａ、Ｓ５１７ａ、Ｓ５２０ａ）、従って外部機器２８０も原点復帰動作を行わない（Ｓ５１６）。
【０１０２】
その後、信号伝達部３１０は、管理プロセス２２４に対して、原点復帰の完了を通知する「原点復帰応答」要受信信号３２００として送る（Ｓ５２１）。以後、デバッグ支援装置３００は、再び通常動作モードと同様の処理を行う（Ｓ５２２、Ｓ５２３）。
【０１０３】
以上のように、デバッグ動作モードでは、外部機器２８０と管理プロセス２２４との制御信号の送受信をスキップすることで、制御アプリケーション２２０の開発者は、手元に外部機器２８０が無くとも、制御アプリケーション２２０のプログラムを実行することができる。また必要があれば、制御アプリケーション２２０の開発者は、汎用のデバッガによる通常のデバッグ手法により、制御アプリケーション２２０をデバッグすることができる。
【０１０４】
デバッグ支援装置３００は、伝達モードファイル３２２を参照し、通常動作モードとデバッグ動作モードの切り替えを行う。
【０１０５】
図８は、本実施の形態における伝達モードファイル３２２のデータ構造の一例を示す図である。伝達モードファイル３２２の１列目には、検証条件ファイル３８２のファイル名が記載されている。伝達モードファイル３２２の２列目には、前記ファイル名が記載された検証条件ファイル３８２をデバッグ動作モードで用いるか否かを指定する。
【０１０６】
本実施の形態では、検証条件ファイル名「第１ファイル」について、デバッグ動作モードが「１」と指定されている。よってデバッグ支援装置３００は、「第１ファイル」をデバッグ動作モードの動作を決定するためのファイルとして使用する。具体的には、信号伝達部３１０が「第１ファイル」を読み込み（Ｓ３１７）使用する。なお、「デバッグ動作モード」の列が全て０に設定されていれば、デバッグ支援装置３００は通常動作モードとして動作する。
【０１０７】
図９は、検証条件ファイル３８２のデータ構造の一例を示す図である。検証条件ファイル３８２の各行には、要送信信号３１００及び要受信信号３２００のいずれか１つに対応するパターンが記載されている。
【０１０８】
なお、信号伝達部３１０は通信プロセス２２６を介さずに外部機器２８０と通信を行っても良いが、その場合には、検証条件ファイル３８２の各行には、要送信信号３１００及び要受信信号３２００に加え、信号伝達部３１０から外部機器２８０へ送信される制御信号及び、信号伝達部３１０が外部機器２８０から受信する制御信号の、いずれか１つに対応するパターンが記載される。
【０１０９】
トリガ３８２２は、デバッグ動作モードにおける「トリガメッセージ」であるか否かを示す。トリガ３８２２に「１」が指定されれば、当該行はトリガメッセージのパターンを示す。
【０１１０】
一方、応答３８２３には、デバッグ動作モードにおける「応答メッセージ」であるか否かを指定する。具体的には、応答３８２３に「１」が設定されれば、当該行は応答メッセージのパターンを示す。
【０１１１】
デバッグ動作モードでは、信号伝達部３１０が管理プロセス２２４から要送信信号３１００を受信した場合、受信した要送信信号３１００がトリガメッセージのパターンに一致するかを信号伝達部３１０は確認する。
【０１１２】
もし一致した場合には、トリガメッセージに対応する応答メッセージのパターンに相当する要受信信号３２００を生成し、生成した要受信信号３２００を管理プロセス２２４へ送信する。なお、一致しない場合には、信号伝達部３１０は、通常動作モードと同じ通常動作を行う。
【０１１３】
なお、トリガメッセージに対応する応答メッセージとは、例えば検証条件ファイル３８２において、1以上の連続したトリガメッセージの記載の直後に記載された、1以上の連続した応答メッセージのことである。
【０１１４】
すなわち、トリガメッセージは要送信信号３１００であり、応答メッセージは要受信信号３２００である。
【０１１５】
種別３８２５は、該当する行が、要求信号であるか応答信号であるかを示す。
第１引数３８２４は、制御信号の送信元を示す。第２引数３８２６は、制御信号の送信先を示す。当該送信先には、制御信号の最終的な送り先を指定する。第３引数３８２８は、制御信号の内容を示す。例えば、図９の一行目は、管理プロセス２２４から信号伝達部３１０への、原点復帰の要求を内容とする要送信信号３１００を示すパターンである。当該パターンは、トリガメッセージとして指定されている。
【０１１６】
Ｌｏｇ３８３０は、伝達履歴記録部３４０が信号の送受信履歴を記録するか否かを指定する。
【０１１７】
Ｌｏｇ３８３０に「１」が指定された場合には、「１」が指定された行以降の信号伝達部３１０が送受信する全ての要送信信号３１００及び要受信信号３２００について伝達履歴記録部３４０は、信号の送受信履歴を記録する。
【０１１８】
また、Ｌｏｇ３８３０に「１」が指定された行以降で、Ｌｏｇ３８３０に「２」が指定された場合には、「２」が指定された行以降の信号伝達部３１０が送受信する全ての要送信信号３１００及び要受信信号３２００について伝達履歴記録部３４０は、信号の送受信履歴の記録は行わない。
【０１１９】
Ｌｏｇ３８３０に「３」が設定された場合、当該「３」が設定された行に記載されたパターンに一致する要送信信号３１００を信号伝達部３１０が受信した場合には、信号伝達部３１０は、その時刻等を伝達履歴記録部３４０に記録する。信号伝達部３１０が前記パターンに一致する要受信信号３２００を送信した場合も同様に、信号伝達部３１０は、その時刻等を伝達履歴記録部３４０に記録する。
【０１２０】
なお、Ｌｏｇ３８３０に「４」以上の数を指定することで、信号伝達部３１０が送受信する要送信信号３１００及び要受信信号３２００のうち伝達履歴記録部３４０が記録するものを、ユーザがプログラマブルに指定することも考えられる。
【０１２１】
なお、Ｌｏｇ３８３０に空白又は「０」を指定すると、伝達履歴記録部３４０は記録を行わない。
【０１２２】
実行３８３２は、デバッグ動作モードにおける制御信号の伝達可否を指定する。
トリガメッセージであれば、信号伝達部３１０が通常の処理を行うか（「１」が指定する）否か（「０」を指定する）を指定する。
【０１２３】
応答メッセージであれば、要受信信号３２００を生成するか（「１」を指定する）否か（「０」を指定する）を指定する。
【０１２４】
Ｗａｉｔ３８３４は、応答メッセージについて指定した場合には、トリガメッセージに一致する要送信信号３１００を受信してから、対応する応答メッセージを要受信信号３２００として送信するまでの待機時間を指定する。
【０１２５】
一方、Ｗａｉｔ３８３４をトリガメッセージについて指定した場合には、指定した時間以上待ってもトリガメッセージを受信しなかった場合には、信号伝達部３１０にデバッグイベントを発生させるために用いる。
【０１２６】
図９の例では、デバッグ動作モードにおいて、信号伝達部３１０がトリガメッセージに一致する要送信信号３１００を管理プロセス２２４から受信した場合、信号伝達部３１０は、通信プロセス２２６から管理プロセス２２４への要受信信号３２００を生成する。さらに、要送信信号３１００を受信してから３秒間待機した後、信号伝達部３１０は生成した要受信信号３２００を管理プロセス２２４へ送信する。
【０１２７】
Ｄｅｂｕｇ３８３６から、第３比較３８４６については、引き続き、図１０を用いて説明する。
【０１２８】
図１０は、図９と同様、検証条件ファイル３８２の記載例を示す。図１０の各列の意味は、同じ符号が付けられた図９と同一である。なお、説明のために識別子３８２１を再左列に追加している。
【０１２９】
Ｄｅｂｕｇ３８３６は、当該行に記載のデバッグパターンに一致した場合に、ユーザにデバッグイベントの発生を通知するか（「１」を指定する）、否か（「０」を指定する）を指定する。また、「２」を指定すると、引数の内容を修正するダイアログボックスが表示される。デバッグパターンは、順序３８３７から第３比較３８４６を用いて指定する。
【０１３０】
順序３８３７は、トリガメッセージの順序を指定する。順序の指定の仕方としては、正常条件として指定する方法と、異常条件として指定する方法の２つが考えられる。
【０１３１】
正常条件として順序を指定した場合には、信号伝達部３１０が、指定した正常条件に一致しない順序で信号を送受信した場合には、ユーザに異常が発生したことをデバッグイベントとして知らせる。
【０１３２】
一方、異常条件として順序を指定した場合には、信号伝達部３１０が、指定した異常条件に一致する順序で信号を送受信した場合には、ユーザに異常が発生したことをデバッグイベントとして知らせる。なお、「＊」が指定されている場合には、順序は考慮されない。
【０１３３】
連続性３８３８は、正常条件として、指定された信号の送受信が連続して行われるべきか（「１」を指定）否か（空欄）を指定する。
【０１３４】
回数３８４０は、当該行の制御信号の送受信回数を指定する。具体的には、当該欄に指定された回数以上、信号伝達部３１０が信号の送受信を行った場合には、ユーザにデバッグイベントを通知する。
【０１３５】
第１比較３８４２から第３比較３８４６は、比較方法及び比較内容を指定することで、要送信信号３１００又は要受信信号３２００にオプションとして指定されうる補足的引数と比較される。比較方法として「１」が指定されれば同値を、「２」が指定されれば小なりを、「３」が指定されれば大なりを、「４」が指定されれば以下を、「５」が指定されれば以上を、「６」が指定されれば不一致を、それぞれ表す。
【０１３６】
上記のように数字で指定された比較方法により、信号伝達部３１０は、第１比較３８４２から第３比較３８４６に記載された比較内容と、要送信信号３１００又は要受信信号３２００にオプションとして指定されうる第４引数から第６引数とを、それぞれ比較する。条件を満たした場合には、ユーザにデバッグイベントを通知する。
【０１３７】
なお、デバッグイベントの発生時には、ユーザに通知することに加え、信号伝達部３１０が事前に定められた内部処理や外部の関数を呼び出すことで付加的な処理を行うことも考えられる。例えば、デバッグパターンに一致した要送信信号３１００に、第４引数としてポインタ情報（メモリ内のアドレス値）が含まれていた場合を考える。ポインタ情報はプログラムを実行時に動的に定まる値であるため、デバッグ目的で再実行した場合、前回のポインタ情報は意味をなさない。よって、デバッグイベントの発生時に、信号伝達部３１０が付加的な処理を実行することで、ポインタ情報で示されたアドレスに格納されているデータの実体（具体的には、画像データや測定データ）を、別途静的なメモリ領域やファイルに保存することが考えられる。
【０１３８】
図１１は、図１０に示した検証条件ファイル３８２に対応する、信号伝達部３１０の処理の流れを示すフローチャートである。なお、検証条件ファイル３８２は外部から設定することができる。
【０１３９】
まず、Ｌｏｇ３８３０欄に１が指定されているため、伝達履歴記録部３４０は信号の送受信の記録を開始する（Ｓ６０４）。
【０１４０】
次に、信号伝達部３１０は、トリガメッセージのパターンを待ち受ける。
仮に、識別子ａのパターンをもつトリガメッセージを信号伝達部３１０が受信したとする（Ｓ６０８）。ここで、トリガメッセージａ及びｂの順序３８３７には、それぞれ１及び２が指定されている。また、トリガメッセージａ及びｂの連続性３８３８には、いずれも１が指定されている。よって、トリガメッセージａの次に、必ずトリガメッセージｂが受信されなければならない。
【０１４１】
従って、トリガメッセージａの次に、識別子ｂのトリガメッセージを信号伝達部３１０が受信すれば（Ｓ６１０でＹｅｓ）、信号伝達部３１０は管理プロセス２２４を最終的な宛先として、応答メッセージｃを送信する（Ｓ６１６）。さらに、信号伝達部３１０は管理プロセス２２４を最終的な宛先として、応答メッセージｄを送信する（Ｓ６１８）。
【０１４２】
その際、応答メッセージｃ及びｄのＷａｉｔ３８３４に「３」が指定されているため、信号伝達部３１０は、応答メッセージｃ及びｄの送信前に３秒間待つ（Ｓ６１４）。
【０１４３】
また、トリガメッセージａの次に、トリガメッセージｂを信号伝達部３１０が受信しなければ（Ｓ６１０でＮｏ）、トリガメッセージｂのＤｅｂｕｇ３８３６に「１」が指定されているため、信号伝達部３１０はユーザにデバッグイベントの発生を通知する（Ｓ６１２）。
【０１４４】
なお、トリガメッセージａ及びｂの実行３８３２には、いずれも「０」が指定されている。従って、信号伝達部３１０は、トリガメッセージａ及びｂを、その第２引数で指定された最終的な宛先である通信プロセス２２６へ送らない。
【０１４５】
また、応答メッセージｃ及びｄの実行３８３２には、いずれも「１」が指定されている。従って、信号伝達部３１０は、応答メッセージｃ及びｄを、その第２引数で指定された最終的な宛先である管理プロセス２２４へ、要受信信号３２００として送る。
【０１４６】
以上説明したように、本実施の形態によると、デバッグ動作モードを使用することで、制御アプリケーション２２０内の管理プロセス２２４と外部機器２８０との信号の送受信を模擬することができる。従って、制御アプリケーション２２０を外部機器２８０と接続せずに、制御アプリケーション２２０が行う制御信号の送受信処理までを考慮したデバッグを行うことができる。
【０１４７】
さらに、事前に検証条件を与えることにより、制御アプリケーション２２０と外部機器２８０との間で送受信される信号のうち、特定の信号の送受信を模擬することができる。したがって、例えば、外部機器２８０と制御アプリケーション２２０を実際に接続してデバッグを行う場合に、複数回の信号のうち、不具合が発生する信号と発生しない信号を容易に切り分けることができる。
【０１４８】
また、制御アプリケーション２２０と外部機器２８０との間で特定の異常パターンに一致する信号が送受信された場合には、ユーザに通知することができる。したがって、異常な信号の発生パターンを監視し、不具合要因の解明を効率化することができる。
【０１４９】
次に、本発明の第２の実施の形態について図面を用いて説明する。
図１２は、本発明に係るデバッグ支援装置３００の他の実施の形態における処理の流れを示すフローチャートである。
【０１５０】
本実施の形態では、通常動作モードであっても常に伝達履歴記録部３４０に信号伝達部３１０の処理を記録する（Ｓ７０４）。
【０１５１】
また、制御アプリケーション２２０からの不具合発生を通知するイベントである「例外イベント」が通知されたか否かを、デバッグ支援装置３００は定期的に判定する（Ｓ７０６）。
【０１５２】
今、制御アプリケーション２２０の実行に不具合が発生したため、制御アプリケーション２２０からデバッグ支援装置３００へ例外イベントが通知されたとする（Ｓ７０６でＹｅｓ）。その場合、検証条件生成部３６０は、例外イベントが通知された時刻を取得し（Ｓ７０８）、伝達履歴記録部３４０から履歴ファイル３４２を読み込む（Ｓ７１０）。
【０１５３】
さらに、検証条件生成部３６０は、履歴ファイル３４２から、前記例外イベントが通知された時刻の前後適切な付近の履歴を切り出し、検証条件ファイル３８２の雛形を作成する（Ｓ７１１）。
【０１５４】
その結果、検証条件ファイル３８２の雛形は、例えば、信号伝達部３１０による要送信信号３１００の受信と、その要送信信号３１００に対応する要受信信号３２００の送信のパターンを再現するように生成される。
【０１５５】
また、検証条件生成部３６０は表示装置２０３にＧＵＩ画面を表示し、ユーザから検証条件ファイル３８２の修正条件を取得する（Ｓ７１２）。
【０１５６】
最後に、前記取得した修正条件を元に、前記検証条件ファイル３８２の雛形を修正し、最終的な検証条件ファイル３８２を生成する（Ｓ７１４）。
【０１５７】
これにより、ユーザは自ら検証条件ファイル３８２を作成せずとも、不具合発生後直ちに作成される上記検証条件ファイル３８２を使用することで、不具合の効率的な再現及びデバッグを行うことができる。
【０１５８】
図１３は、本発明の実施の形態における履歴ファイル３４２の一例を示す図である。
履歴ファイル３４２は、時刻８０２、第１引数８０６、第２引数８０８及び第３引数８１０を含む。
【０１５９】
時刻８０２は、信号伝達部３１０によって要送信信号３１００又は要受信信号３２００が処理された時刻を示す。時刻の表記形式は、例えば特定時刻からの経過時間又は日時等を用いることが考えられる。
【０１６０】
第１引数８０６、第２引数８０８及び第３引数８１０は、それぞれ送信元、最終的な送信先、及び要送信信号３１００又は要受信信号３２００の内容を示す。
【０１６１】
例えば、図１３の第一行目は、デバッグ支援装置３００の起動時から１００秒経過後に、信号伝達部３１０が要送信信号３１００を受信したことを示す。又、その送信元は画面処理プロセス２２２であり、最終的な宛先は管理プロセス２２４であり、内容は復帰ボタンが押されたことを通知するものである。
【０１６２】
なお、要送信信号３１００及び要受信信号３２００が追加の引数をとった際には、履歴ファイル３４２も追加の引数を記録する。引数として想定されるものは、例えば、実行時の変数や関数の先頭アドレスを示すメモリ上のアドレス値や、プログラムの内部状態を示す変数値等が考えられる。
【０１６３】
図１４は、本発明の実施の形態における検証条件ファイル３８２の雛形（図１２、Ｓ７１１で作成されるもの）の一例を示す図である。
【０１６４】
当該雛形のうち、第１引数８０６から第３引数８１０の列は、図１３に示した履歴ファイル３４２の同符号を付した列と同一である。
【０１６５】
例えば、デバッグ支援装置３００が起動して３００秒経過後に不具合が発生し、発生時刻から３００秒前までの履歴ファイル３４２から検証条件ファイルの雛形が作成されるとする。
【０１６６】
検証条件生成部３６０は、まず図１３に示す履歴ファイル３４２のうち、時刻８０２が３００秒から０秒までに含まれる履歴を取り出す。
【０１６７】
次に、履歴ファイル３４２を検証条件ファイル３８２の形式に整形する。具体的には、時刻８０２を削除し、トリガ３８２２、応答３８２３、及びＬｏｇ３８３０から第３比較３８４６までを追加する。
【０１６８】
こうして生成されたファイルが、図１４に示す、検証条件ファイル３８２の雛形である。
【０１６９】
図１５は、検証条件ファイル３８２の雛形の修正条件をユーザから取得する（Ｓ７１２）ＧＵＩ画面の一例である。
【０１７０】
画面には、不具合の発生時刻を用いて履歴ファイル３４２から自動生成された（図１２、Ｓ７１１）検証条件ファイル３８２の雛形が表示される。
【０１７１】
これに加え、最左列に選択３８２０欄と時刻８０２が表示される。
【０１７２】
選択３８２０欄は例えばチェックボックスとなっており、選択３８２０欄にチェックを付け、右下の出力ボタン３８４７を押すと、選択された行のデバッグパターンのみを含む検証条件ファイル３８２が生成される（Ｓ７１４）。
【０１７３】
こうして、履歴ファイル３４２に記録された履歴のうち、ユーザにより指定された期間に含まれる履歴から、その履歴に含まれる、信号伝達部３１０による要送信信号３１００及び要受信信号３２００の送受信のパターンを再現するように、検証条件ファイル３８２を生成することができる。
【０１７４】
時刻８０２は、前記雛形を作成する際、履歴ファイル３４２を検証条件ファイル３８２の形式にあわせるために削除した（Ｓ７１１）時刻を再度追加したものである。具体的には、信号伝達部３１０によって要送信信号３１００又は要受信信号３２００が処理された時刻である。
【０１７５】
トリガ３８２２欄から第３引数３８４６欄までは、例えばマウスで選択することにより、その内容を修正することができる。例えば、順序３８３７、連続性３８３８、回数３８４０等を各送受信パターンに指定し、又変更することができる。
【０１７６】
以上の操作により、制御アプリケーション２２０の開発者は信号伝達部３１０における信号の送受信パターンを特定した検証条件ファイル３８２を容易に作成することができる。また制御アプリケーション２２０の開発者は、前記検証条件ファイル３８２を使用し、デバッグ支援装置３００をデバッグモードで動作させることで、不具合箇所の特定を容易に行うことができる。
【０１７７】
以上説明したように、本実施の形態に係るデバッグ支援装置３００は、不具合発生時における制御アプリケーション２２０と外部機器２８０との間で送受信された信号に基づき、異常パターンを記載した検証条件ファイルを作成することができる。したがって、制御アプリケーション２２０の開発者は不具合の発生原因を効率的に切り分けることができる。
【０１７８】
以上、本発明に係るデバッグ支援装置について、実施の形態を用いて説明したが、本発明は、本実施の形態に限定されるものではない。
【０１７９】
例えば、第１及び第２の実施の形態において、制御アプリケーション２２０上で動作する、管理プロセス２２４と、管理プロセス２２４以外の任意の１以上のプロセスとの通信を、信号伝達部３１０を介した要送信信号３１００及び要受信信号３２００を用いて行うこともできる。さらに、管理プロセス２２４以外の任意の２以上のプロセス間の通信を、信号伝達部３１０を介した要送信信号３１００及び要受信信号３２００を用いて行うこともできる。
【０１８０】
これにより、制御アプリケーション２２０を構成するプロセス毎に独立したプログラム開発を行うことができる。その結果、長期間にわたる開発及び保守作業を行っても、制御アプリケーション２２０が、プログラム内の構造が複雑に入り組んだ「スパゲッティプログラム」となりにくい、という利点が生じる。
【０１８１】
また、第２の実施形態では伝達履歴記録部３４０から読み込んだ履歴ファイル３４２を修正して検証条件ファイル３８２を生成したが、読み込んだ履歴ファイル３４２をそのまま使用して、検証条件ファイル３８２を生成（図１２において、Ｓ７０４、Ｓ７０６、Ｓ７１０、Ｓ７１４のみを実行）しても良い。その場合、制御アプリケーション２２０と外部機器２８０との間で過去に送受信された信号を模擬することができる。したがって、例えば制御アプリケーション２２０や外部機器２８０を変更した場合に、過去の稼働状態に基づいた動作テストを行うことができる。
【０１８２】
また第２の実施形態では、履歴ファイル３４２から検証条件ファイル３８２を生成するために、ユーザはGUI画面に表示された選択用チェックボックスを用いて時刻を入力した（図１５）。しかし、チェックボックスに替わり、ユーザがマウスによるドラッグ操作やキーボードによる数値入力を行うことにより、履歴ファイル３４２の一部を選択してもよい。
【０１８３】
また、履歴ファイル３４２からではなく別の方法で検証条件ファイル３８２を作成してもよい。
【０１８４】
なお、検証条件生成部３６０が、制御アプリケーション２２０の実行に不具合が生じた時刻に応じて、履歴から検証条件ファイルを生成する方法には、不具合が生じた時刻の前後を切り出す方法の他に、例えば、不具合が発生した時刻より一定時間前のみを切り出す方法や、不具合が発生した時刻より一定時間後のみを切り出す方法等が考えられる。
【０１８５】
なお、検証条件ファイル３８２に記載するトリガメッセージ及びトリガメッセージに対応する応答メッセージの組は、１の検証条件ファイル３８２に１組のみ記載してもよく、複数記載してもよい。１の検証条件ファイル３８２に１組のみ記載する場合には、トリガメッセージに一致する要送信信号３１００を受信した信号伝達部３１０は、指定時間が経過するか、別途指定したパターンの制御信号を受信するまで処理を停止してもよい。この場合、指定時間が経過した場合には、信号伝達部３１０はその旨をユーザに通知する。
【０１８６】
なお、デバッグ動作モードは、制御アプリケーション２２０内の、異なるプロセス間で行う信号の送受信に対して適用しても良い。例えば、原点復帰ボタンが押されていなくとも、当該ボタンが押されたことを内容とする要送信信号３１００が画面処理プロセス２２２からあったものとして、信号伝達部３１０から管理プロセス２２４へ要受信信号３２００を送っても良い。この場合、画面処理プロセス２２２が未完成であっても、管理プロセス２２４や通信プロセス２２６の動作検証を行うことができる。  
【０１８７】
また、上記実施の形態１から２に係るデバッグ支援装置３００に含まれる各処理部は集積回路であるＬＳＩとして実現されてもよい。これらは個別に１チップ化されてもよいし、一部又はすべてを含むように１チップ化されてもよい。
【０１８８】
ここでは、ＬＳＩとしたが、集積度の違いにより、ＩＣ、システムＬＳＩ、スーパーＬＳＩ、ウルトラＬＳＩと呼称されることもある。
【０１８９】
また、集積回路化はＬＳＩに限るものではなく、専用回路又は汎用プロセッサで実現してもよい。ＬＳＩ製造後にプログラムすることが可能なＦＰＧＡ（Ｆｉｅｌｄ  Ｐｒｏｇｒａｍｍａｂｌｅ  Ｇａｔｅ  Ａｒｒａｙ）、又はＬＳＩ内部の回路セルの接続や設定を再構成可能なリコンフィギュラブル・プロセッサを利用してもよい。
【０１９０】
さらには、半導体技術の進歩又は派生する別技術によりＬＳＩに置き換わる集積回路化の技術が登場すれば、当然、その技術を用いて各処理部の集積化を行ってもよい。バイオ技術の適用等が可能性として考えられる。
【０１９１】
さらに、本発明はプログラムであってもよいし、上記プログラムが記録された記録媒体であってもよい。また、上記プログラムは、インターネット等の伝送媒体を介して流通させることができるのは言うまでもない。
【０１９２】
また、上記実施の形態１から２に係る、デバッグ支援装置及びその変形例の機能のうち少なくとも一部を組み合わせてもよい。
【０１９３】
また、上記で用いた数字は、すべて本発明を具体的に説明するために例示するものであり、本発明は例示された数字に制限されない。また、構成要素間の接続関係は、本発明を具体的に説明するために例示するものであり、本発明の機能を実現する接続関係はこれに限定されない。
【０１９４】
さらに、以下の実施の形態は、ハードウェア及び／又はソフトウェアを用いて構成されるが、ハードウェアを用いる構成は、ソフトウェアを用いても構成可能であり、ソフトウェアを用いる構成は、ハードウェアを用いても構成可能である。
【０１９５】
また、上記デバッグ支援装置の構成は、本発明を具体的に説明するために例示するためのものであり、本発明に係るデバッグ支援装置は、上記構成の全てを必ずしも備える必要はない。言い換えると、本発明に係るデバッグ支援装置３００は、本発明の効果を実現できる最小限の構成のみを備えればよい。
【０１９６】
例えば、第１及び第２の実施形態で、制御アプリケーション２２０は画面処理プロセス２２２を有さずとも良い。その場合、管理プロセス２２４は事前に定められたバッチファイルに従って、外部機器２８０の制御を行う。
【０１９７】
さらに、制御アプリケーション２２０は通信プロセス２２６を有さずとも良い。その場合、信号伝達部３１０は外部機器２８０と直接制御信号の送受信を行う。
【０１９８】
具体的には、信号伝達部３１０は、通常動作モードでは、管理プロセス２２４から外部機器２８０へ送信される、外部機器２８０の動作を指示する要送信信号３１００を、原点復帰コマンドに相当する制御信号として外部機器２８０へ伝達する。
【０１９９】
次に、信号伝達部３１０は、外部機器２８０から管理プロセス２２４へ送信される、外部機器２８０による原点復帰コマンドの完了通知を、外部機器２８０の原点復帰完了を通知する要受信信号３２００として管理プロセス２２４へ伝達する。
【０２００】
一方、デバッグ動作モードは、信号伝達部３１０は、管理プロセス２２４から外部機器２８０へ送信される、外部機器２８０の動作を指示する要送信信号３１００を受信した場合に、外部機器２８０の原点復帰完了を通知する要受信信号３２００を信号伝達部３１０は生成し、生成した要受信信号３２００を管理プロセス２２４へ送信することにより、外部機器２８０が接続されている場合と同じ動作を信号伝達部３１０は管理プロセス２２４に擬似的に行わせることができる。
【０２０１】
なお、デバッグ支援装置３００は、さらに、伝達履歴記録部３４０、検証条件生成部３６０及び検証条件保持部３８０を有さずとも良い。その場合、デバッグ動作モード時に、外部機器２８０の制御を目的とする信号を管理プロセス２２４から信号伝達部３１０が受信した場合は常に、信号伝達部３１０は、当該信号を外部機器２８０には送らずに、当該信号に対応する外部機器２８０からの応答信号を、管理プロセス２２４に送信すること等が考えられる。
【０２０２】
さらに、デバッグ支援装置３００は、伝達モード切替部３２０を有さずとも良い。その場合、デバッグ支援装置３００は常に通常動作モード又はデバッグ動作モードで起動することが考えられる。
【０２０３】
同様に、上記のデバッグ支援装置によるデバッグ支援方法は、本発明を具体的に説明するために例示するためのものであり、本発明に係るデバッグ支援装置によるデバッグ支援方法は、上記ステップの全てを必ずしも含む必要はない。言い換えると、本発明に係るデバッグ支援方法は、本発明の効果を実現できる最小限のステップのみを含めばよい。また、上記のステップが実行される順序は、本発明を具体的に説明するために例示するためのものであり、上記以外の順序であってもよい。また、上記ステップの一部が、他のステップと同時（並列）に実行されてもよい。
【０２０４】
更に、本発明の主旨を逸脱しない限り、本実施の形態に対して当業者が思いつく範囲内の変更を施した各種変形例も本発明に含まれる。
【産業上の利用可能性】
【０２０５】
本発明は、外部機器と制御用信号を送受信するアプリケーションにおけるデバッグ支援装置等に適用できる。
【符号の説明】
【０２０６】
１００      機械制御システム
２００      制御装置
２０１      ＣＰＵ
２０２      メモリ
２０３      表示装置
２０４      ストレージ
２０５      入力装置
２０６      通信Ｉ／Ｆ
２２０      制御アプリケーション
２２２      画面処理プロセス
２２４      管理プロセス
２２６      通信プロセス
２８０      外部機器
３００      デバッグ支援装置
３１０      信号伝達部
３２０      伝達モード切替部
３２２      伝達モードファイル
３４０      伝達履歴記録部
３４２      履歴ファイル
３６０      検証条件生成部
３８０      検証条件保持部
３８２      検証条件ファイル
３１００    要送信信号
３２００    要受信信号
【図１】
2011221772.tif 000003
【図２】
2011221772.tif 000004
【図３】
2011221772.tif 000005
【図４】
2011221772.tif 000006
【図５】
2011221772.tif 000007
【図６ａ】
2011221772.tif 000008
【図６ｂ】
2011221772.tif 000009
【図７】
2011221772.tif 000010
【図８】
2011221772.tif 000011
【図９】
2011221772.tif 000012
【図１０】
2011221772.tif 000013
【図１１】
2011221772.tif 000014
【図１２】
2011221772.tif 000015
【図１３】
2011221772.tif 000016
【図１４】
2011221772.tif 000017
【図１５】
2011221772.tif 000018
【手続補正書】
【提出日】平成22年7月23日(2010.7.23)
【手続補正１】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項１】
外部機器を制御する制御アプリケーションのデバッグを支援するデバッグ支援装置であって、
前記制御アプリケーションは、前記外部機器の動作を制御する管理プロセスと、前記外部機器に対してユーザが入力操作を行うための画面処理プロセスとを含む複数の第１のプロセスを含み、
前記デバッグ支援装置は、前記管理プロセスから前記外部機器へ送信される、前記外部機器の動作を指示する第１の制御信号を前記外部機器へ伝達し、前記外部機器から前記管理プロセスへ送信される、前記第１の制御信号に応答して前記外部機器が動作した結果を示す第１の応答信号を前記管理プロセスへ伝達する通常動作モードと、
前記第１の制御信号を受信した場合に、前記第１の応答信号を生成し、生成した前記第１の応答信号を前記管理プロセスへ送信することにより、前記外部機器が接続されている場合と同じ動作を前記管理プロセスに擬似的に行わせるデバッグ動作モードと、を有する信号伝達部を備えており、
前記複数の第１のプロセスは、互いに前記信号伝達部を介して信号の送受信を行い、
前記信号伝達部は、
通常動作モード時には、前記管理プロセス及び前記画面処理プロセスの一方である第２のプロセスから、前記管理プロセス及び前記画面処理プロセスの他方である第３のプロセスへ送信される、前記第３のプロセスの処理を指示する第２の制御信号を前記第３のプロセスへ伝達し、前記第３のプロセスから前記第２のプロセスへ送信される、前記第２の制御信号に応答して前記第３のプロセスが処理した結果を示す第２の応答信号を前記第２のプロセスへ伝達し、
デバッグ動作モード時には、前記第２の制御信号を受信した場合に、前記第２の応答信号を生成し、生成した前記第２の応答信号を前記第２のプロセスへ送信することにより、前記第３のプロセスが停止している場合であっても、前記第３のプロセスが実行されている場合と同じ動作を前記第２のプロセスに擬似的に行わせる
デバッグ支援装置。
【請求項２】
前記デバッグ支援装置は、さらに、
前記第１の制御信号及び前記第２の制御信号のいずれかの第１種別と、当該第１種別に対応する前記第１の応答信号及び前記第２の応答信号のいずれかの第２種別と、当該第１種別について、前記通常動作モード及び前記デバッグ動作モードのうちいずれかの動作モードを指定する実行種別とを示す検証条件を保持する検証条件保持部を備え、
前記信号伝達部は、
前記検証条件に示される第１種別の前記第１の制御信号を前記管理プロセスから受信した場合であって、前記第１種別に対応する前記実行種別に前記デバッグ動作モードが指定されている場合には、当該第１種別に対応する前記第２種別の前記第１の応答信号を生成し、生成した前記第１の応答信号を前記管理プロセスへ送信する前記デバッグ動作モードとして動作し、
前記検証条件に示される第１種別の前記第２の制御信号を前記第２プロセスから受信した場合であって、前記第１種別に対応する前記実行種別に前記デバッグ動作モードが指定されている場合には、当該第１種別に対応する前記第２種別の前記第２の応答信号を生成し、生成した前記第２の応答信号を前記第２プロセスへ送信する前記デバッグ動作モードとして動作し、
前記検証条件に示される第１種別の前記第１の制御信号を前記管理プロセスから受信した場合であって、前記第１種別に対応する前記実行種別に前記通常動作モードが指定されている場合には、前記第１の制御信号を前記外部機器へ伝達する前記通常動作モードとして動作し、
前記検証条件に示される第１種別の前記第２の制御信号を前記第２プロセスから受信した場合であって、前記第１種別に対応する前記実行種別に前記通常動作モードが指定されている場合には、前記第２の制御信号を前記第３プロセスへ伝達する前記通常動作モードとして動作する
請求項１記載のデバッグ支援装置。
【請求項３】
前記検証条件は、待機時間を含み、
前記信号伝送部は、前記デバッグ動作モードにおいて、前記検証条件に示される第１種別の前記第１の制御信号を前記管理プロセスから受信した場合、当該第１種別に対応する前記第２種別の前記第１の応答信号を生成し、前記第１種別の第１の制御信号を受信してから前記待機時間分待機した後、生成した前記第２種別の前記第１の応答信号を前記管理プロセスへ送信する
請求項２記載のデバッグ支援装置。
【請求項４】
前記デバッグ支援装置は、さらに、
前記信号伝達部が伝達した前記第１の制御信号及び前記第１の応答信号の履歴を記録する伝達履歴記録部と、
前記伝達履歴記録部に記録された前記履歴から、前記履歴に含まれる第１の制御信号及び前記第１の応答信号の送受信のパターンを再現するように前記検証条件を生成する検証条件生成部とを備える
請求項２又は３に記載のデバッグ支援装置。
【請求項５】
前記検証条件生成部は、前記制御アプリケーションの実行に不具合が生じた時刻に応じた第１期間の前記履歴から、前記履歴に含まれる第１の制御信号及び前記第１の応答信号の送受信のパターンを再現するように前記検証条件を生成する
請求項４記載のデバッグ支援装置。
【請求項６】
前記検証条件生成部は、ユーザにより指定された前記第１期間を取得し、取得した前記第１期間の前記履歴から、前記履歴に含まれる第１の制御信号及び前記第１の応答信号の送受信のパターンを再現するように前記検証条件を生成する
請求項５記載のデバッグ支援装置。
【請求項７】
前記検証条件は、さらに、前記第１の制御信号及び前記第１の応答信号の送受信のパターンを示す異常条件を含み、
前記信号伝達部は、前記第１の制御信号及び前記第１の応答信号を送受信したパターンが前記異常条件に一致する場合に、異常が発生したことをユーザに通知する
請求項２に記載のデバッグ支援装置。
【請求項８】
前記検証条件は、さらに、前記第１の制御信号又は前記第１の応答信号の第３種別と、当該第３種別に対応する受信回数とを含み、
前記信号伝達部は、前記検証条件に含まれる第３種別の、前記第１の制御信号又は前記第１の応答信号を、前記受信回数分受信した場合に、異常が発生したことをユーザに通知する
請求項２に記載のデバッグ支援装置。
【請求項９】
前記検証条件は、さらに、前記第１の制御信号及び前記第１の応答信号の送受信のパターンを示す正常条件を含み、
前記信号伝達部は、前記第１の制御信号及び前記第１の応答信号を送受信したパターンが前記正常条件に一致しない場合に、異常が発生したことをユーザに通知する
請求項２に記載のデバッグ支援装置。
【請求項１０】
前記複数の第１のプロセスは、前記外部機器と通信する通信プロセスを含み、
前記通常動作モードにおいて、
前記信号伝達部は、前記管理プロセスから送信された前記第１の制御信号を前記通信プロセスへ伝達し、
前記通信プロセスは、伝達された前記第１の制御信号を、前記外部機器が解釈可能な形式に変換し、変換された前記第１の制御信号を前記外部機器へ送信し、
前記通信プロセスは、前記外部機器から送信される前記変換された第１の制御信号に応答して前記外部機器が動作した結果を示す第１の応答信号を、前記管理プロセスが解釈可能な形式に変換し、変換された前記第１の応答信号を前記信号伝達部へ送信し、
前記信号伝達部は、前記通信プロセスから送信された前記変換された第１の応答信号を前記管理プロセスへ伝達する、
請求項１に記載のデバッグ支援装置。
【請求項１１】
外部機器を制御する制御アプリケーションのデバッグを支援するデバッグ支援方法であって、
前記制御アプリケーションは、前記外部機器の動作を制御する管理プロセスと、前記外部機器に対してユーザが入力操作を行うための画面処理プロセスとを含む複数の第１のプロセスを含み、
前記デバッグ支援方法は、前記管理プロセスから前記外部機器へ送信される、前記外部機器の動作を指示する第１の制御信号を前記外部機器へ伝達し、前記外部機器から前記管理プロセスへ送信される、前記第１の制御信号に応答して前記外部機器が動作した結果を示す第１の応答信号を前記管理プロセスへ伝達する通常動作モードと、
前記第１の制御信号を受信した場合に、前記第１の応答信号を生成し、生成した前記第１の応答信号を前記管理プロセスへ送信することにより、前記外部機器が接続されている場合と同じ動作を前記管理プロセスに擬似的に行わせるデバッグ動作モードと、を有する信号伝達ステップを含んでおり、
前記複数の第１のプロセスは、互いに前記信号伝達ステップを介して信号の送受信を行い、
前記信号伝達ステップは、
通常動作モード時には、前記管理プロセス及び前記画面処理プロセスの一方である第２のプロセスから、前記管理プロセス及び前記画面処理プロセスの他方である第３のプロセスへ送信される、前記第３のプロセスの処理を指示する第２の制御信号を前記第３のプロセスへ伝達し、前記第３のプロセスから前記第２のプロセスへ送信される、前記第２の制御信号に応答して前記第３のプロセスが処理した結果を示す第２の応答信号を前記第２のプロセスへ伝達し、
デバッグモード時には、前記第２の制御信号を受信した場合に、前記第２の応答信号を生成し、生成した前記第２の応答信号を前記第２のプロセスへ送信することにより、前記第３のプロセスが停止している場合であっても、前記第３のプロセスが実行されている場合と同じ動作を前記第２のプロセスに擬似的に行わせる
デバッグ支援方法。
【請求項１２】
請求項１１に記載のデバッグ支援方法をコンピュータに実行させる
プログラム。
【手続補正２】
【補正対象書類名】明細書
【補正対象項目名】０１１５
【補正方法】変更
【補正の内容】
【０１１５】
種別３８２５は、該当する行が、要求信号であるか応答信号であるかを示す。
第１引数３８２４は、制御信号の送信元を示す。第２引数３８２６は、制御信号の送信先を示す。当該送信先には、制御信号の最終的な送り先を指定する。第３引数３８２８は、制御信号の内容を示す。例えば、図９の一行目は、管理プロセス２２４から通信プロセス２２６への、原点復帰の要求を内容とする要送信信号３１００を示すパターンである。当該パターンは、トリガメッセージとして指定されている。