(57)【要約】【課題】ユーザが作成した通信マクロの送受信命令を含む動作プログラムをステップ実行させるデバッグ方法およびデバッグプログラムを提供する。【解決手段】  デバッグ方法の一実施形態では、実行ステップが通信マクロ命令の場合、デバッグ装置ａは、「次に実行すべきステップ」と読出デバイス情報というデバッグコマンドをマン・マシン・インターフェイス機器ｂへ送信し、マン・マシン・インターフェイス機器ｂは、通信マクロの送信命令を生成してデバッグ装置ａに送信し、デバッグ装置ａは、該当ステップの通信マクロの受信命令を生成してマン・マシン・インターフェイス機器ｂに送信し、マン・マシン・インターフェイス機器ｂは、該当ステップの読出データと「次に実行すべきステップ」の実行結果をデバッグ装置ａに送信し、デバッグ装置ａは、受信した実行結果をユーザに提示する。【選択図】図１５
2010086303.tif 000002
【特許請求の範囲】
【請求項１】
デバイスを有する外部機器とデータ通信するマン・マシン・インターフェイス機器であって、外部機器との通信の基本処理を行うインターフェイス基本コマンドと通信コマンド共通属性データとを記録した記録部と、ユーザによって生成され前記記録部に記録された通信マクロの送受信命令を含む動作プログラムを解釈して、通信マクロの送受信命令に記述されたデバイスと通信コマンド共通属性データに基づいて外部機器と通信する通信手段とを備えたマン・マシン・インターフェイス機器において実行されるマン・マシン・インターフェイス機器用プログラムについてのデバッグを行うためのデバッグ装置を用いるマン・マシン・インターフェイス機器用プログラムのデバッグ方法であって、
前記デバッグ装置は、実行ステップが通信マクロ命令の場合、「次に実行すべきステップ」と読出デバイス情報というデバッグコマンドをマン・マシン・インターフェイス機器へ送信し、
前記マン・マシン・インターフェイス機器は、前記デバッグ装置から受信した前記ステップが動作プログラムの通信マクロ命令の場合、通信マクロの送信命令を生成し、前記デバッグ装置に送信し、
前記デバッグ装置は、該当ステップの通信マクロの送信命令を受信してから、該当ステップの通信マクロの受信命令を生成し、前記マン・マシン・インターフェイス機器に送信し、
前記マン・マシン・インターフェイス機器は、該当ステップの通信マクロの受信命令を受信してから、該当ステップの読出データと「次に実行すべきステップ」の実行結果を前記デバッグ装置に送信し、
前記デバッグ装置は、さらに、前記マン・マシン・インターフェイス機器から受信した前記実行結果をユーザに提示することを特徴とするマン・マシン・インターフェイス機器用プログラムのデバッグ方法。
【請求項２】
請求項１のマン・マシン・インターフェイス機器用プログラムのデバッグ方法において、
前記デバッグ装置で通信マクロの送信命令を受信する手段は、
受信したフレームに対して、該当通信マクロの送信命令に記述されているデバイスと通信コマンド共通属性データとフレームフォーマットとに基づいて受信したフレームを解析し、送信命令に記述されているデバイスとデバイス値を取得して、
ユーザによって入力され、あるいは予め用意されたデバイス値を取得し、該当受信命令に記述されているデバイスと通信コマンド共通属性データとフレームフォーマットとに基づいてフレームを生成して、マン・マシン・インターフェイス機器に送信することを特徴とするマン・マシン・インターフェイス機器用プログラムのデバッグ方法。
【請求項３】
請求項１または２に記載のマン・マシン・インターフェイス機器用プログラムのデバッグ方法をコンピュータに実行させることを特徴とするデバッグプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、外部機器に接続されて使用されるマン・マシン・インターフェイス機器において実行される通信処理を含む動作プログラムをデバッグする方法およびデバッグプログラムに関する。
【背景技術】
【０００２】
プログラマブル表示装置に接続された情報処理端末上において、プログラマブル表示装置の動作をエミュレートさせる技術が提案されている（例えば、特許文献１参照）。この特許文献１に記載のデバッグ支援システムは、情報処理端末が、プログラマブル表示装置内の状態データをプログラマブル表示装置から取得し、情報処理端末上においてプログラマブル表示装置と動作をエミュレートさせるものである。
【０００３】
しかしながら、この様なエミュレーションは、実際のプログラマブル表示装置の動作と完全に一致させることはできない。また、情報処理端末が状態データを参照するタイミングと、プログラマブル表示装置が状態データを参照するタイミングとが異なることから、情報処理端末及びプログラマブル表示装置の動作を一致させることができない（特許文献２の段落［０００９］参照）。
【０００４】
情報処理端末が状態データを参照するタイミングと、プログラマブル表示装置が状態データを参照するタイミングとが異なる問題を解決するため、特許文献２に記載デバッグ支援システムは、ユーザが指定した停止条件より、画面処理が停止中であっても、ＰＬＣから受信した状態データ、ＰＬＣへ送信予定の状態データ、又は、プログラマブル表示装置の内部のみで使用される状態データを読み出すことができるプログラマブル表示装置を提供している。
【０００５】
特許文献２の発明によるプログラマブル表示装置は、ＰＬＣが接続され、上記ＰＬＣ内に保持されている状態データに基づいて画面表示が行われるプログラマブル表示装置であって、上記ＰＬＣから受信した状態データを保持する受信データメモリと、上記状態データの取得要求を生成し、この取得要求に基づいて上記ＰＬＣから送信される状態データを上記受信データメモリへ格納する上記受信データメモリの更新処理を繰り返し行う受信制御手段と、ユーザが指定した停止条件を記憶する停止条件記憶手段と、上記受信データメモリを参照し、上記受信データメモリ内の状態データに基づく表示処理を行うとともに、上記停止条件に基づいて上記表示処理を停止する表示制御手段と、上記受信データメモリ内の状態データをデバッグ装置へ送信するためのデバッグ用通信手段とを備えて構成される。この様な構成によれば、必要に応じて表示処理を停止させることができるとともに、表示処理の停止時における状態データを受信データメモリから読み出すことができるので、プログラマブル表示装置の動作状態を迅速かつ容易に把握することができる（特許文献２の段落［００１５］参照）。
【０００６】
しかし、特許文献２の構成では外部機器ＰＬＣの接続が必要なので、外部機器がなくてもデバッグできるように、外部機器に代えてデバッグ装置と接続する構成には適用することができない。
【０００７】
なお、教示装置のプログラムデバッグ方法として、教示装置の動作プログラムをステップ実行させるデバッグ支援システムがあった（特許文献３）。複数のステップから構成されたプログラムであって、教示装置において実行されるプログラムについてのデバッグを行うためのデバッグ装置と、前記プログラムを実行して所定の制御装置に対して教示を行うための教示装置と、を用いて行うプログラムのデバッグ方法であって、前記制御装置に代えて前記デバッグ装置を前記教示装置に接続し、前記デバッグ装置は、ユーザによって指示されたステップとともに、前記教示装置が前記制御装置から読み出すべき読出データを教示装置に送信する行程を行い、前記教示装置は、前記デバッグ装置から受信した前記ステップを前記読出データを用いて実行し、当該教示装置が前記制御装置に対して書き込むべき書込データを決定するとともに「次に実行すべきステップ」を決定する行程と、決定した前記書込データおよび前記「次に実行すべきステップ」を、前記デバッグ装置に送信する行程を行い、前記デバッグ装置は、さらに、前記教示装置から受信した前記書込データおよび前記「次に実行すべきステップ」を、ユーザに提示する行程を行うことを特徴とする。したがって、教示装置において１ステップずつ実行したプログラムを、デバッグ装置において１ステップずつ実行結果を確認することができる。これにより、教示装置の実機による操作形態を用いて、効率よくトレースデバッグ作業を行うことができる（特許文献３の段落［００１１］引用）。
【特許文献１】特許３６２１３３６号公報
【特許文献２】特開２００７−１０９１２０号公報
【特許文献３】特開２００６−３４３８１８号公報
【発明の開示】
【発明が解決しようとする課題】
【０００８】
本願の出願人は、外部機器の機種に依存するインターフェイス基本コマンド、通信コマンド共通属性データと、外部機器の機種依存性の小さい動作プログラムとに分離することによって、異なる機種の外部機器への対応が容易となるマン・マシン・インターフェイス機器および作画装置を発明して既に特許出願している。この先願発明によれば、動作プログラムを簡単に作成することができる。すなわち、インターフェイス基本コマンド、通信コマンド共通属性データを記憶しておけば、ユーザが外部機器との通信シーケンスを動作プログラムに組み込むことができる。
【０００９】
しかしながら、特許文献３には、外部機器とデータのやりとり（通信）を行うためのインターフェイス・プログラムをあらかじめ用意したが、ユーザによって作成された通信マクロの送受信命令を含む動作プログラムを解釈して、外部機器との通信を含む処理を実行することはできない。
【００１０】
本発明の目的は、ユーザが作成する通信処理を含む動作プログラムをさらに容易にデバッグする方法およびデバッグプログラムを提供することであり、具体的には、上記先願発明における通信マクロの送受信命令を含む動作プログラムをステップ実行させるデバッグ方法およびデバッグプログラムを提供することである。
【課題を解決するための手段】
【００１１】
本発明のマン・マシン・インターフェイス機器用プログラムのデバッグ方法は、デバイスを有する外部機器とデータ通信するマン・マシン・インターフェイス機器であって、外部機器との通信の基本処理を行うインターフェイス基本コマンドと通信コマンド共通属性データとを記録した記録部と、ユーザによって生成され前記記録部に記録された通信マクロの送受信命令を含む動作プログラムを解釈して、通信マクロの送受信命令に記述されたデバイスと通信コマンド共通属性データに基づいて外部機器と通信する通信手段とを備えたマン・マシン・インターフェイス機器において実行されるマン・マシン・インターフェイス機器用プログラムについてのデバッグを行うためのデバッグ装置を用いるマン・マシン・インターフェイス機器用プログラムのデバッグ方法であって、前記デバッグ装置は、実行ステップが通信マクロ命令の場合、「次に実行すべきステップ」と読出デバイス情報というデバッグコマンドをマン・マシン・インターフェイス機器へ送信し、前記マン・マシン・インターフェイス機器は、前記デバッグ装置から受信した前記ステップが動作プログラムの通信マクロ命令の場合、通信マクロの送信命令を生成し、前記デバッグ装置に送信し、前記デバッグ装置は、該当ステップの通信マクロの送信命令を受信してから、該当ステップの通信マクロの受信命令を生成し、前記マン・マシン・インターフェイス機器に送信し、前記マン・マシン・インターフェイス機器は、該当ステップの通信マクロの受信命令を受信してから、該当ステップの読出データと「次に実行すべきステップ」の実行結果を前記デバッグ装置に送信し、前記デバッグ装置は、さらに、前記マン・マシン・インターフェイス機器から受信した前記実行結果をユーザに提示することを特徴とする。  また、本発明のマン・マシン・インターフェイス機器用プログラムのデバッグ方法において、通信マクロの送信命令を受信する手段は、受信したフレームに対して、該当通信マクロの送信命令に記述されているデバイスと通信コマンド共通属性データとフレームフォーマットとに基づいて受信したフレームを解析し、送信命令に記述されているデバイスとデバイス値を取得して、ユーザによって入力され、あるいは予め用意されたデバイス値を取得し、該当受信命令に記述されているデバイスと通信コマンド共通属性データとフレームフォーマットとに基づいてフレームを生成して、マン・マシン・インターフェイス機器に送信することを特徴としてもよい。
【００１２】
あるいは、本発明のデバッグプログラムは、コンピュータに上記のマン・マシン・インターフェイス機器用プログラムのデバッグ方法を実行させることを特徴とする。
【発明の効果】
【００１３】
本発明のマン・マシン・インターフェイス機器用プログラムのデバッグ方法によれば、外部機器を代替するメリットを維持しながら、デバッグ装置が状態データ（デバイス値）を参照するタイミングと、マン・マシン・インターフェイス機器が状態データ（デバイス値）を参照するタイミングが同期するので、ユーザプログラムの細かなデバッグを可能にする。
【００１４】
また、本発明のデバッグプログラムによれば、プログラムが実行可能なコンピュータ環境さえあれば、どのようなところでも本発明のデバッグ方法を実現することができる。さらに、このデバッグプログラムを汎用的なコンピュータで実行可能なものにしておけば、本発明のデバッグ方法を実現するために専用のコンピュータ環境を準備する必要もなくなり、本発明のデバッグプログラムの有用性が高まる。
【発明を実施するための最良の形態】
【００１５】
以下、本発明の実施形態を、図面を参照して説明する。
【００１６】
＜機能ブロック図＞
図１は、本発明の一実施形態に係るデバッグシステム１の機能ブロック図である。このデバッグシステム１は、デバッグ装置ａおよびマン・マシン・インターフェイス機器ｂから構成され、各装置はケーブルまたはネットワーク等で相互に通信可能である。デバッグ装置ａにおいて作成したプログラムをマン・マシン・インターフェイス機器ｂ（例えば、教示装置）に転送した後、デバッグ装置ａおよびマン・マシン・インターフェイス機器ｂを用いて、前記プログラムのデバッグ作業を行うことができる。
【００１７】
なお、デバッグ後において、デバッグ装置ａに代えてＰＬＣ（プログラマブル・ロジック・コントローラ）等の外部機器がマン・マシン・インターフェイス機器ｂと接続され、マン・マシン・インターフェイス機器ｂからの指令を受けて外部機器の制御を行う。すなわち、デバッグシステム１においてデバッグされたプログラムをマン・マシン・インターフェイス機器ｂにおいて実行することによって、マン・マシン・インターフェイス機器ｂは外部機器に対して各指令を出力する。
【００１８】
デバッグ装置ａは、プログラム記録手段ａ１、入力手段ａ２、デバッグコマンド送信手段ａ３、表示手段ａ４、読出データ記録手段ａ５、プログラム作成手段ａ６、プログラム転送手段ａ７、通信マクロ判定手段ａ３１、送信命令受信解析手段ａ３２および受信命令生成送信手段ａ３３を備えている。
【００１９】
プログラム記録手段ａ１は、作成されたプログラムを記録するためのものである。
【００２０】
入力手段ａ２は、デバッグ対象となるプログラムステップおよび読出データに関してユーザからの指示を受け付け、これをデバッグ装置ａに入力するためのものである。
【００２１】
デバッグコマンド送信手段ａ３は、上記入力手段ａ２において入力したステップおよび読出データを、マン・マシン・インターフェイス機器ｂに送信するためのものである。
【００２２】
表示手段ａ４は、マン・マシン・インターフェイス機器ｂから受信した読出データおよび「次に実行すべきステップ」を表示するためのものである。
【００２３】
読出データ記録手段ａ５は、マン・マシン・インターフェイス機器ｂから読み出されたデバイス値を記憶するためのものである。
【００２４】
プログラム作成手段ａ６は、マン・マシン・インターフェイス機器ｂにおいて実行するためのプログラムを、ステップ単位で作成するためのものである。プログラム記録手段ａ１は、プログラム作成手段ａ６において作成したプログラムを記録するためのものである。
【００２５】
プログラム転送手段ａ７は、プログラム作成手段ａ６において作成したプログラムをマン・マシン・インターフェイス機器ｂに転送するためのものである。
【００２６】
通信マクロ判定手段ａ３１は、ステップ実行デバッグコマンドをマン・マシン・インターフェイス機器ｂに送信後、該当ステップが動作プログラムの通信マクロ命令であるかどうか判定する手段である。
【００２７】
送信命令受信解析手段ａ３２は、該当ステップが通信マクロ命令の場合、マン・マシン・インターフェイス機器ｂから通信マクロの送信命令を受信し、解析を行う手段である。
【００２８】
受信命令生成送信手段ａ３３は、該当ステップの通信マクロ受信命令を生成し、マン・マシン・インターフェイス機器ｂに送信する手段である。
【００２９】
マン・マシン・インターフェイス機器ｂは、プログラム記録手段ｂ１、デバッグコマンド受信手段ｂ２、通信マクロ・ステップ実行手段ｂ３、実行結果送信手段ｂ４、操作手段ｂ５およびデバッグモード設定手段ｂ６を備えている。
【００３０】
プログラム記録手段ｂ１は、デバッグ装置ａから転送されてきたプログラムを記録するためのものである。
【００３１】
実行結果送信手段ｂ４は、実行したステップの実行結果として、読出データおよび「次に実行すべきステップ」をデバッグ装置ａに送信するためのものである。
【００３２】
操作手段ｂ５は、実行中のステップが取り扱う操作データを受け付けるためのものである。
【００３３】
デバッグモード設定手段ｂ６は、操作手段ｂ５の外部キー押下より、メンテナンス画面上にデバッグモードを設定し、または、デバッグコマンド受信手段ｂ２より、デバッグモードを設定する手段である。
【００３４】
デバッグコマンドを受信後、通信マクロ・ステップ実行手段ｂ３は通信マクロ命令を含む動作プログラムをステップに実行する。該当ステップが通信マクロ命令の場合、マン・マシン・インターフェイス機器ｂは通信マクロの送信命令を生成し、デバッグ装置に送信してから、デバッグ装置から送信された受信命令を受信し、解析を行う。次は、実行結果をデバッグ装置に送信する（実行結果送信手段ｂ４）。
【００３５】
＜ハードウェア構成＞
デバッグ装置ａの具体的なハードウェア構成としては、ＣＰＵを用いて実現した汎用のコンピュータ装置を利用することができる。この場合、デバッグ装置ａは、ディスプレイ、ＣＰＵ、メモリ、キーボード／マウス、ハードディスク、ＣＤ−ＲＯＭドライブおよび通信回路などを備えている。
【００３６】
ハードディスクは、デバッグプログラム、プログラムフォルダおよびプログラム作成プログラムなどを記録している。メモリは、読出データフォルダ、現在ステップカウンタおよび前回ステップカウンタなどを記録している。デバッグプログラムは、本明細書で説明しているデバッグ方法をコンピュータ装置に実行させるためのプログラムであって、例えば、ＣＤ−ＲＯＭ等の記録媒体からインストールされる。
【００３７】
プログラム記録手段ａ１は、プログラムフォルダおよびデバッグプログラムの実行によって実現される。入力手段ａ２は、キーボード／マウスおよびデバッグプログラムの実行によって実現される。デバッグコマンド送信手段ａ３は、デバッグプログラムの実行によって実現される。表示手段ａ４は、ディスプレイおよびデバッグプログラムの実行によって実現される。読出データ記録手段ａ５は、読出データフォルダおよびデバッグプログラムの実行によって実現される。プログラム作成手段ａ６およびプログラム転送手段ａ７は、プログラム作成プログラムの実行によって実現される。
【００３８】
図２に、デバッグシステム１におけるマン・マシン・インターフェイス機器ｂのハードウェア構成を示す。ＣＰＵ２０には、液晶ディスプレイやタッチスクリーンなどの表示部２２、入出力インターフェイス（Ｉ／Ｆ）２４、入力キーなどの入力部２６、メモリ２８、Ｐ−ＲＯＭ３０、入出力インターフェイス（Ｉ／Ｆ）３２が接続されている。入出力インターフェイス２４は、外部機器４との接続を行うものである。入出力インターフェイス３２は、インターフェイス・プログラム作成装置であるデバッグ装置５との接続を行うものである。
【００３９】
タッチスクリーンなどの表示部２２は、ディスプレイの画面上に透明電極が配置され、表示するだけでなくユーザが入力可能に構成されている。入力部２６は、たとえばハードウェアとしての入力ボタンであるが、ソフトウエアと協働して動作するタッチスクリーンであってもよい。メモリ２８は、ＣＰＵ２０のワークエリアとして機能する。
【００４０】
プログラムＲＯＭ（Ｐ−ＲＯＭ）３０には、システム処理プログラム３４が記録されている。さらに、ユーザによって作成された画面データ３６、インターフェイス基本コマンド１２、通信コマンド共通属性データ１４（共通属性データ）、デバイス情報テーブル１６（デバイス情報データ）、動作プログラム４２が記録されている。図２のデバイス情報テーブル１６は、デバイスとの通信を行う際の、デバイスの種別などを記述したものである。
【００４１】
＜通信コマンド共通属性およびインターフェイス基本コマンド＞
Ｐ−ＲＯＭ３０に記録された通信コマンド共通属性データ１４の例を、図３に示す。
【００４２】
送信デバイスデータ変換形式は、指定したデバイスの内容を変換タイプに従ってデータ変換を行い、データメモリに格納するデータ値と送信コマンドフレームにある該当データコードとの変換タイプを選択する。BIN→ASCII（値を１６進数の文字列に変換）、BIN→BCD→ASCII（バイナリー→BCD→アスキー変換）、無変換を設定する。
【００４３】
受信デバイスデータ変換形式は、メモリに格納するデータ値と受信コマンドフレームにある該当データコードとの変換タイプを選択する。ASCII→BIN（受信データを１６進数表記の文字列として数値に変換）、ASCII→BCD→BIN（受信データを１０進数表記の文字列として数値に変換）、無変換を設定する。
【００４４】
また、外部機器の種類によっては、データの格納方法が上位バイトからであったり、下位バイトからであったりする。データ格納方法は、これを示している。
【００４５】
ＢＣＣ計算では、外部機器４との通信におけるブロックチェックコードの計算方法を記述している。
【００４６】
Ｐ−ＲＯＭ３０に記録されたインターフェイス基本コマンド１２の例を、図４に示す。これは、外部機器の機種毎に用意されたものから選択されたものである。なお、予め用意してあるコマンドを参考にして、ユーザがインターフェイス基本コマンドを作成することもできる。なお、基本コマンドの定義項目としては、定数、デバイス、ＢＣＣ、スキップなどの項目が設けられている。
【００４７】
通信マクロコマンドは通常、送信コマンドと受信コマンドからなる。外部機器に送信コマンドを送信してから、外部機器から受信コマンドを受信する。通信マクロ命令は送信コマンド、あるいは受信コマンドだけでも設定可能にする。
【００４８】
送信コマンドの項目名には、定数、デバイス、ＢＣＣ項が設定できる。
【００４９】
受信コマンドの項目名には、定数、デバイス、ＢＣＣ、スリップ項が設定できる。
【００５０】
＜デバッグ処理−１＞
デバッグシステム１を利用するユーザは、まず、デバッグ装置ａにおいて、画面データ３６情報や動作プログラム４２情報を含むプロジェクトデータを作成する。この作成方法については、例えば、特許文献３の段落［００４８］〜［００５１］にも記載されているが、次のようにして作成することができる。
【００５１】
デバッグ装置ａにおいて、ユーザがキーボード／マウスを操作することによりプログラム作成プログラムを起動させる（作画機能を選択する）と、デバッグ装置ａのＣＰＵは、作画画面をディスプレイに表示させる。その作画画面において、ユーザは、マン・マシン・インターフェイス機器ｂの表示部２２において表示するための画面データ３６を作成することができる。例えば、直線、矩形、円、所定画像等の固定描画図形、デバイス値に基づいてその表示を切り換えるためのメッセージ切り換え表示、数値表示または数値入力等の機能部品データ等を、作画画面上において任意に作成することができる。
【００５２】
ＣＰＵは、ユーザがキーボード／マウスを操作することによって行った作画指示を受け付けて、作画画面に画面部品を配置する。さらに、ＣＰＵは、ユーザからの作画終了指示を受けると、作成された画面データ３６をプログラムフォルダに記録する。このように、ユーザは上記処理を繰り返すことにより、マン・マシン・インターフェイス機器ｂにおいて表示させるための全ての画面データ３６を作成できる。
【００５３】
ＣＰＵは、図７に示すような動作プログラム画面５３をディスプレイに表示させる。動作プログラム画面５３においてユーザは、マン・マシン・インターフェイス機器ｂにおいて実行させるための複数のステップ（命令）から構成されるプログラムリストを作成することができる。すなわち、本実施形態において作成される動作プログラム４２は、マン・マシン・インターフェイス機器ｂにおいて実行するための動作プログラムである。例えば、通信マクロ命令、画面表示命令、四則／論理演算命令、条件ジャンプ命令またはサブルーチン呼出命令等に基づくステップ命令から構成されるプログラムリストを、動作プログラム画面５３上において任意に作成することができる。
【００５４】
このようにして作成したものをマン・マシン・インターフェイス機器ｂに転送したユーザは、当該動作プログラム４２のデバッグを行う。
【００５５】
デバッグ装置ａにおいて、ユーザがキーボード／マウスを操作することによりデバッグプログラムを起動させる（デバッグ機能を選択する）と、デバッグ装置ａは、図５に示すようなデバッグ画面（デバッグダイアログ）５１をディスプレイに表示させる。なお、デバッグ装置ａのディスプレイには、図６に示すような画面１および図７に示すような動作プログラム画面５３も表示されるが、これらについては後述する。
【００５６】
図５に示すように、デバッグ画面５１には、デバイス設定エリア５１０、ステップ実行ボタン５１１、停止ボタン５１３、リセットボタン５１２、ブレークポイントボタン５１５および連続実行ボタン５１７が表示される。デバイス設定エリア５１０は、実行中のステップにおいて使用されるデバイス番号およびデバイス値を表示または設定するためのものである。
【００５７】
ステップ実行ボタン５１１は、動作プログラム画面５３に表示されているプログラムステップを、マン・マシン・インターフェイス機器ｂにおいてステップごとに実行させるためのものである。停止ボタン５１３は、マン・マシン・インターフェイス機器ｂにおいて実行中のプログラムステップを停止させるためのものである。ブレークポイントボタン５１５は、動作プログラム画面５３において表示されているプログラムステップに、プログラムを停止させるためのステップ位置であるブレークポイントを設定するためのものである。連続実行ボタン５１７は、所定のプログラムステップからブレークポイントの設定されたプログラムステップまでの各ステップを順次連続して実行させるためのものである。リセットボタン５１２は、デバッグの実行により変更されたマン・マシン・インターフェイス機器ｂのデバイス値やブレークポイント等の設定情報をリセットするためのものである。
【００５８】
ステップNo.は、次に実行すべきステップ番号で、簡略に言えば実行ステップ番号である。通信マクロNo.は、実行ステップ番号に対応した動作プログラム４２の通信マクロ命令の通信マクロNo.である。コメントは、該当通信マクロNo.に対応したコメントであり、図４に設定された通信マクロのコメントである。
【００５９】
送信コマンドのフレームデータは、マン・マシン・インターフェイス機器ｂから受信した該当実行ステップの通信マクロの送信コマンドデータである。
【００６０】
受信コマンドのフレームデータは、図４の定義された通信マクロ命令の受信コマンドフォーマットと動作プログラム４２の該当ステップの通信マクロ命令のパラメータ及び図５のユーザによって入力されたデバイス書込値に基づいて生成された受信コマンドデータである。書込値が入力されていなければ、マン・マシン・インターフェイス機器ｂから受信したデバイス読出値を使用する。
【００６１】
Ｐ−ＲＯＭ３０に記録された動作プログラム４２の例を、図７に示す。動作プログラム４２は、マン・マシン・インターフェイス機器ｂの表示画面の動作を決定するプログラムであり、ユーザが作成することができる。動作プログラム４２は、図６に示すような表示動作をさせるためのものであり、外部機器４から生産個数データを受けて、これを表示する。
【００６２】
なお、図６のような画面表示を行うためには、動作プログラム４２とは別に画面データ３６が必要であるが、これもＰ−ＲＯＭ３０に記録されている（図２参照）。
【００６３】
＜システム処理プログラム＞
図８にマン・マシン・インターフェイス機器ｂにおけるシステム処理プログラムのフローチャートを示す。まず、ステップＳ１１において、ＣＰＵ２０はシステムの初期化を行う。運転モードを通常モードに設定し、メモリ２８のデバイステーブルのデバイスデータをクリアする。
【００６４】
次に、ステップＳ１２においてデバッグモード設定であるか判断し、設定していなければ、ステップＳ１３に進んで通常モードを設定し、ステップＳ１４の通常運転実行処理を行う（図９参照）。
【００６５】
なお、デバッグモードの設定が以下の方法により実現できる。
【００６６】
（１）システムプログラム上に、システム固有のデバッグコマンドヘッダを定義する。受信コマンドのヘッダより、デバッグコマンドを判断し、デバッグモードを設定する。
【００６７】
（２）ユーザプログラム上に、通信マクロを判断できるように、デバッグコマンドのヘッダをプロジェクトデータ上で定義する（図１２参照）。
【００６８】
（３）外部キー押下より、メンテナンス画面上にデバッグモードを選択する。
【００６９】
ステップＳ１２において、上記のいずれ方法でデバッグモードが設定された場合、デバッグモードを設定する（ステップＳ１５）。次は、ステップＳ１６においてデバッグステップ実行処理を行う（図１１参照）。
【００７０】
次に、ステップＳ１７においてデバッグが完了したか否かを判断し、完了していなければステップＳ１６に戻り、完了していればステップＳ１８に進んでデバッグモードをクリアする。
【００７１】
なお、デバッグモードをクリアする方法は以下のように実現できる。
【００７２】
（１）電源がＯＮにする際、デバッグモードをクリアする。
【００７３】
（２）デバッグ完了後、システムリセットモードをマン・マシン・インターフェイス機器ｂへ送信して、システムをリセットし、通常運転モードに切り換える。
【００７４】
図９にマン・マシン・インターフェイス機器ｂにおける通常運転実行フローチャートを示す。
【００７５】
ＣＰＵ２０は、動作プログラム画面５３（図７参照）に表示されている動作プログラム４２の１行目の命令を取得し、その命令内容に応じて処理内容を実行する。動作プログラム４２の１行目は画面Start命令であるので、ステップＳ２１以下を実行する。表示部２２の画面をクリアする。続いて、ステップＳ２２において、プロジェクトデータの画面１についての画面データ３６を読み出して、表示部２２に表示する。
【００７６】
ステップＳ２３は、画面データの機能部品の「数値入力器」を処理する。画面上に数値入力器を配置した場合、数値入力器が選択されれば、数値入力を促す入力カーソルが表示される。ユーザは数値キーを押下して、入力カーソルの位置にデータを入力する。入力されたデータをデバイステーブルに記録するとともに、所定の位置に表示する。ここでは、ユーザによる数値表示器は画面１に配置していないので、ＣＰＵ２０は、この処理を行わない。
【００７７】
さらに、画面１データの機能部品の「数値表示器」を処理する。数値表示器としてＤ１７が指定されており、読出デバイスＤ１７の最初値が「０」であるので、画面上の「生産個数：」という文字の右側にある数値表示器位置に「０」を表示する（ステップＳ２４）。
【００７８】
次に、動作プログラム４２の２行目の命令を取得して実行する。２行目の「Ｄ１０＝００１７」は、デバイスＤ１０に１６進数「００１７」をセットする演算命令である（ステップＳ２６）。
【００７９】
ＣＰＵ２０は、動作プログラム４２の３行目の「Ｄ１１＝０２００」命令を取得し、デバイスＤ１１に１６進数「０２００」をセットする。
【００８０】
次は、ＣＰＵ２０は、動作プログラム４２の４行目の「ＸＳ１ 通信１ Ｄ１０，３，Ｄ１７，２，ＣＳ１」 の命令を取得し、ステップＳ２６においてフラグＸＳ１が「１」であれば通信マクロ命令を解釈して実行する。通信マクロの送信コマンドを生成し、外部機器に送信してから、外部機器から受信した通信マクロの受信コマンドを解釈し実行する。
【００８１】
通信マクロの形式は  CD  通信No.  SD, SL, RD, RL, CS  である。
【００８２】
起動条件デバイスCDがＯＮになると、通信No.マクロを実行する。
【００８３】
SDは図４の送信コマンドに定義された送信先頭デバイスで、SLはその送信デバイスのバイト数で、RDは図４の受信コマンドに定義された受信先頭デバイスで、RLは受信デバイスのバイト数である。
【００８４】
CSは、通信状態（実行中、正常完了、異常終了フラグ）用デバイスである。
【００８５】
送信コマンドを生成する。通信マクロ１の送信コマンドフォーマット（図４参照）に基づいて送信先頭デバイスＤ１０から３バイトのデータを取得し、通信コマンド共通属性の設定（図３参照）によってデータ格納形式が上位バイトからであるので、送信デバイスのデータ順序が「００１７０２」になる。送信デバイスデータ変換形式（図３参照）が「BIN→ASCII」であるので、値「００１７０２」を１６進数の文字列「３０３０３１３７３０３２」に変換する。送信コマンドフォーマットに基づいて（図４参照）送信コマンドデータが「０５３０３０３０５２４４３０３０３１３７３０３２  ＢＣＣ  ０Ｄ」となる。ＢＣＣの取得は通信コマンド共通属性のＢＣＣ計算方法（図３参照）によって、ＢＣＣ値は「３２３７」となる。
【００８６】
生成された送信コマンドのフレームデータ「０５３０３０３０５２４４３０３０３１３７３０３２３２３７０Ｄ」を外部機器に送信してから、外部機器から受信したフレームデータ「０６３０３０３０３０４３３２３７３４３００Ｄ」を解析する。通信マクロ１の受信コマンドフォーマット（図４参照）に基づいて受信先頭デバイスＤ１７から２バイトのデータを取得し、通信コマンド共通属性（図３参照）によってデータ格納形式が上位バイトからであるので、受信デバイスのデータ順序が「３０４３３２３７」になる。受信デバイスデータ変換形式（図３参照）は「ASCII →BIN」であるので、受信データ「３０４３３２３７」を１６進数表記の文字列として数値「０Ｃ２７」に変換する。デバイステーブルのデバイスＤ１７値が「０Ｃ２７」を格納する。
【００８７】
通信１マクロ命令を実行完了後、５行目の「画面End」命令を実行する（ステップＳ２５）。画面End命令は該当「画面１Start」へ繰り返す。ステップＳ２４において、数値表示器に指定されたデバイスＤ１７の読出値「０Ｃ２７」（１６進数）をデバイステーブルから取得し、数値表示器位置に「３１１１」（１６進数「０Ｃ２７」を１０進数形式に変換）を表示する（図６の画面１参照）。
【００８８】
図１０のデバッグ装置ａのステップ実行について、説明する。
【００８９】
デバッグ装置ａ上で、ユーザが作成した動作プログラム４２（図７参照）の１行目「画面１Start」命令を指定し、図５のデバッグ画面上のステップ実行ボタン５１１を押下し、ステップ実行デバッグコマンドを生成し（ステップＳ３１）、ステップ実行コマンドをマン・マシン・インターフェイス機器ｂに送信する（ステップＳ３２）。
【００９０】
次は、ステップＳ３３において、該当ステップが通信マクロ命令ではないので、ステップＳ３７へ進んで、マン・マシン・インターフェイス機器ｂから実行結果コマンドを受信し、数値表示器の指定デバイスＤ１７の読出値が「０」が図５のデバッグ画面上に表示する。
【００９１】
次は、２行目の「Ｄ１０＝００１７」命令を指定し、図５のデバッグ画面上のステップ実行ボタン５１１を押下し、ステップ実行デバッグコマンドを生成し（ステップＳ３１）、ステップ実行コマンドをマン・マシン・インターフェイス機器ｂに送信する（ステップＳ３２）。
【００９２】
次は、ステップＳ３３において、該当ステップが通信マクロ命令ではないので、ステップＳ３７へ進んで、マン・マシン・インターフェイス機器ｂから実行結果コマンドを受信し、次の実行ステップ番号が図５のデバッグ画面上に表示する。２行目の命令処理と同じように、３行目の命令をステップ実行させる。
【００９３】
次は、４行目の「XS1 通信1 D10, 3, D17, 2, CS1」命令を指定し、次は、ステップＳ３３において、該当ステップが通信マクロ命令を判定した場合、ステップＳ３４へ進んで、該当ステップの通信マクロの送信コマンドを受信し（ステップＳ３４）、次は、ステップＳ３５において、通信マクロの受信コマンドを生成する。
【００９４】
図４の通信マクロの受信コマンドフォーマットと該当通信マクロ命令の受信デバイスとバイト数と図５のデバッグ画面上でユーザが入力された外部機器側デバイス書込値及び図３の通信コマンド共通属性に基づいて、通信マクロの受信コマンドを生成し、生成された受信コマンドをマン・マシン・インターフェイス機器ｂに送信する（ステップＳ３６）。
【００９５】
次は、実行結果コマンドを受信する（ステップＳ３７）。
【００９６】
マン・マシン・インターフェイス機器ｂ側デバイス読出値と次の実行すべきステップを更新表示する（ステップＳ３８）。
【００９７】
図１１のマン・マシン・インターフェイス機器ｂのステップ実行デバッグ処理は、ステップＳ５１において、デバッグ装置ａからデバッグコマンドを受信する。デバッグコマンドのフォーマットは図１３に示す。図１３の画面Ｎｏ．とサブルーチンＮｏ．およびステップＮｏ．とも“ＦＦＦ”の場合、図１４のようにステップ実行せずデバイス（Ｄ１７）読み出しコマンドの例であり、“ＦＦＦ”以外の場合、図１６のようにステップ（Ｎｏ．３）実行コマンドＡ（図１３のリクエストコマンドフォーマットＡ）と該当ステップ実行結果コマンドＢ（図１３のレスポンスコマンドフォーマットＢ）の例である。
【００９８】
受信したデバッグコマンドを解析し、該当ステップが動作プログラム４２の通信マクロ命令であるかどうか判断し（ステップＳ５２）、通信マクロの場合は、図４の通信マクロの送信コマンドフォーマットと該当通信マクロ命令の送信デバイスとバイト数及び図３の通信コマンド共通属性に基づいて、通信マクロの送信コマンドを生成し、デバッグ装置ａに送信する（ステップＳ５３）。
【００９９】
デバッグ装置ａから通信マクロの受信コマンドを受信し（ステップＳ５４）、図４の通信マクロの受信コマンドフォーマットと該当通信マクロ命令の受信デバイスとバイト数及び図３の通信コマンド共通属性に基づいて、該当通信マクロの受信コマンドを解析し、受信処理後、ステップＳ５６へ進んでいく。実行結果コマンドを生成しデバッグ装置ａに送信する。
【０１００】
ステップＳ５２において、該当ステップが動作プログラム４２の通信マクロ命令でない場合は、四則演算などのマクロ命令を実行する（ステップＳ５５）。
【０１０１】
＜デバッグ処理−２＞
デバッグしたとき、ユーザが作成された以上の画面データ３６と通信コマンド共通属性及び動作プログラム４２をマン・マシン・インターフェイス機器ｂへダウンロードし、図５のデバッグ画面（デバッグダイアログ）５１を開いて、ステップ実行などのデバッグを行う。
【０１０２】
ステップ実行ボタン５１１は、選択したマクロコマンドよりステップデバッグを開始する。
【０１０３】
ブレークポイントボタン５１５は連続実行する動作プログラム４２に対して、ブレークポイントを設定したマクロコマンド行でステップ実行を停止する。
【０１０４】
連続実行ボタン５１７は、マクロコマンドを１つずつ処理するステップ動作を行う。
【０１０５】
デバイス欄は、デバイスを選択して、マン・マシン・インターフェイス機器ｂ内のデバイス値を読み出して、マン・マシン・インターフェイス機器ｂ欄（読出）に表示する。
【０１０６】
外部機器欄は、ユーザより外部機器のデバイス値を入力し、通信マクロをステップ実行するとき、この外部機器デバイス値を参照して、通信マクロの受信コマンドを生成する。
【０１０７】
＜デバッグ方法の例＞
実施例として、ユーザは作成した表示画面（図６参照）と通信マクロ命令を含む動作プログラムを同期的にデバッグする方法を説明する。
【０１０８】
ユーザは図５のデバッグ画面５１を開いて、マウスでデバイス欄をクリックして、選択したいデバイス（数値表示器デバイスＤ１７）を入力して、入力完了後に、デバッグ装置ａからデバイス読み出しリクエストデバッグコマンドＡ（図１４参照）をマン・マシン・インターフェイス機器ｂへ送信し、デバッグ装置ａからのレスポンスコマンドＢ（図１４参照）を解析して、デバイス値をマン・マシン・インターフェイス機器ｂ側（読出のみ）欄に表示する（最初値が０）。
【０１０９】
次は、ユーザが動作プログラム４２（図７参照）の１行目の命令を指定して、ステップ実行ボタン５１１を押して、図１３のリクエストコマンドフォーマットＡを参照し、画面１ Startマクロステップ実行コマンドを生成して、マン・マシン・インターフェイス機器ｂへ送信し、マン・マシン・インターフェイス機器ｂはこのステップデバッグコマンドを受信して実行し、画面１（図６参照）上の「生産個数：」という文字の右側にある数値表示器位置に「０」を表示する。
【０１１０】
デバッグ装置ａは実行結果コマンドを受信後、図１３のレスポンスコマンドフォーマットＢを参照し解釈して、次の実行ステップはステップNo.２になる。次に、ユーザは、動作プログラム４２の２行目の「D10＝００１７」命令を指定して、図５のステップ実行ボタン５１１を押して、ステップNo.２を実行させる。同様に、３行目の命令を実行させる。
【０１１１】
ステップNo.３実行後、図５の次実行ステップNo.がステップNo.４ XS1 通信1 D10, 3, D17, 2, CS1という通信マクロ１命令が提示される。このとき、ユーザは外部機器側(書込)欄に数値表示したい生産個数デバイスＤ１７のデバイス値１６進数の０Ｃ２７（１０進数の３１１１)を書込値欄に入力して、さらに、ユーザはステップ実行ボタン５１１を押して、ステップNo.４を実行させる。
【０１１２】
このステップNo.４実行の通信シーケンスは図１５に示すように、以下のようになる。
【０１１３】
（ａ）デバッグ装置ａはステップNo.４のステップ実行コマンドＡ（図１６参照）をマン・マシン・インターフェイス機器ｂへ送信する。
【０１１４】
0530304646414164 303031303030303033 3031 3930 30303137 3544 0D
（ｂ）マン・マシン・インターフェイス機器ｂは通信マクロ１の送信コマンドをデバッグ装置ａへ送信する。
【０１１５】
05303030524430303137303232370D
（ｃ）デバッグ装置ａは通信マクロ１の受信コマンドをマン・マシン・インターフェイス機器ｂへ送信する。通信マクロ１の受信コマンドは図３の通信共通属性、図４の通信マクロ１の受信コマンドフォーマット、図５のデバイス外部機器側（書込）のデバイスより生成する。
【０１１６】
063030303043323734300D
（ｄ）デバッグ装置ａはマン・マシン・インターフェイス機器ｂからのステップ実行結果コマンドＢ（図１６参照）を受信し、図５のデバッグ画面５１に表示する。
【０１１７】
0630304646414164 303031303030303034 30433237 3231 0D
このステップNo.４を実行した結果が図５のデバッグ画面５１に反映される。
【０１１８】
次の実行ステップはステップNo.５に更新し、マン・マシン・インターフェイス機器ｂ側欄のデバイスＤ１７値が０からＣ２７に更新された。
【０１１９】
デバッグ装置ａから生成された通信マクロ１の受信コマンドが図５の受信コマンド行に表示された。
【０１２０】
マン・マシン・インターフェイス機器ｂからの通信マクロ１の送信コマンドが図５の送信コマンド行に表示された。
【０１２１】
次は、５行目の「画面End」命令を指定し、ステップ実行ボタン５１１を押下する。図５のステップ番号が「画面１Start」へ繰り返す。さらにステップボタンを押下すると、マン・マシン・インターフェイス機器ｂの表示部に「３１１１」（１６進の０Ｃ２７）数値が表示される。
【０１２２】
なお、本発明は、その主旨または主要な特徴から逸脱することなく、他のいろいろな形で実施することができる。そのため、上述の実施形態はあらゆる点で単なる例示にすぎず、限定的に解釈してはならない。本発明の範囲は特許請求の範囲によって示すものであって、明細書本文にはなんら拘束されない。さらに、特許請求の範囲の均等範囲に属する変形や変更は、全て本発明の範囲内のものである。
【図面の簡単な説明】
【０１２３】
【図１】本発明の一実施形態に係るデバッグシステム１の機能ブロック図である。
【図２】デバッグシステム１におけるマン・マシン・インターフェイス機器ｂのハードウェア構成を示す図である。
【図３】通信コマンド共通属性データ１４の例を示す図である。
【図４】インターフェイス基本コマンド１２の例を示す図である。
【図５】デバッグ画面（デバッグダイアログ）５１の例を示す図である。
【図６】表示画面の例を示す図である。
【図７】動作プログラム画面５３および動作プログラム４２の例を示す図である。
【図８】マン・マシン・インターフェイス機器ｂにおけるシステム処理プログラムのフローチャートである。
【図９】マン・マシン・インターフェイス機器ｂにおける通常運転実行フローチャートである。
【図１０】デバッグ装置ａにおけるデバッグステップ実行処理フローチャートである。
【図１１】マン・マシン・インターフェイス機器ｂにおけるデバッグステップ実行フローチャートである。
【図１２】プロジェクトデータ上でデバッグコマンドヘッダの設定例である。
【図１３】デバッグコマンドフォーマットの例である。
【図１４】デバイス読み出しデバッグコマンドの例である。
【図１５】通信マクロ命令のステップ実行通信シーケンスの説明図である。
【図１６】図１５のステップ実行通信シーケンスにおけるステップ実行コマンドおよびステップ実行結果コマンドの例である。
【符号の説明】
【０１２４】
１    デバッグシステム
ａ    デバッグ装置
ｂ    マン・マシン・インターフェイス機器
４    外部機器
１２  インターフェイス基本コマンド
１４  通信コマンド共通属性データ
２０  ＣＰＵ
２２  表示部
３４  システム処理プログラム
４２  動作プログラム
５１  デバッグ画面
【図１】
2010086303.tif 000003
【図２】
2010086303.tif 000004
【図３】
2010086303.tif 000005
【図４】
2010086303.tif 000006
【図５】
2010086303.tif 000007
【図６】
2010086303.tif 000008
【図７】
2010086303.tif 000009
【図８】
2010086303.tif 000010
【図９】
2010086303.tif 000011
【図１０】
2010086303.tif 000012
【図１１】
2010086303.tif 000013
【図１２】
2010086303.tif 000014
【図１３】
2010086303.tif 000015
【図１４】
2010086303.tif 000016
【図１５】
2010086303.tif 000017
【図１６】
2010086303.tif 000018