説明

マン・マシン・インターフェイス機器用プログラムのデバッグ方法およびデバッグプログラム

【課題】ユーザが作成した通信マクロの送受信命令を含む動作プログラムをステップ実行させるデバッグ方法およびデバッグプログラムを提供する。
【解決手段】
デバッグ方法の一実施形態では、実行ステップが通信マクロ命令の場合、デバッグ装置aは、「次に実行すべきステップ」と読出デバイス情報というデバッグコマンドをマン・マシン・インターフェイス機器bへ送信し、マン・マシン・インターフェイス機器bは、通信マクロの送信命令を生成してデバッグ装置aに送信し、デバッグ装置aは、該当ステップの通信マクロの受信命令を生成してマン・マシン・インターフェイス機器bに送信し、マン・マシン・インターフェイス機器bは、該当ステップの読出データと「次に実行すべきステップ」の実行結果をデバッグ装置aに送信し、デバッグ装置aは、受信した実行結果をユーザに提示する。

【発明の詳細な説明】
【技術分野】
【0001】
本発明は、外部機器に接続されて使用されるマン・マシン・インターフェイス機器において実行される通信処理を含む動作プログラムをデバッグする方法およびデバッグプログラムに関する。
【背景技術】
【0002】
プログラマブル表示装置に接続された情報処理端末上において、プログラマブル表示装置の動作をエミュレートさせる技術が提案されている(例えば、特許文献1参照)。この特許文献1に記載のデバッグ支援システムは、情報処理端末が、プログラマブル表示装置内の状態データをプログラマブル表示装置から取得し、情報処理端末上においてプログラマブル表示装置と動作をエミュレートさせるものである。
【0003】
しかしながら、この様なエミュレーションは、実際のプログラマブル表示装置の動作と完全に一致させることはできない。また、情報処理端末が状態データを参照するタイミングと、プログラマブル表示装置が状態データを参照するタイミングとが異なることから、情報処理端末及びプログラマブル表示装置の動作を一致させることができない(特許文献2の段落[0009]参照)。
【0004】
情報処理端末が状態データを参照するタイミングと、プログラマブル表示装置が状態データを参照するタイミングとが異なる問題を解決するため、特許文献2に記載デバッグ支援システムは、ユーザが指定した停止条件より、画面処理が停止中であっても、PLCから受信した状態データ、PLCへ送信予定の状態データ、又は、プログラマブル表示装置の内部のみで使用される状態データを読み出すことができるプログラマブル表示装置を提供している。
【0005】
特許文献2の発明によるプログラマブル表示装置は、PLCが接続され、上記PLC内に保持されている状態データに基づいて画面表示が行われるプログラマブル表示装置であって、上記PLCから受信した状態データを保持する受信データメモリと、上記状態データの取得要求を生成し、この取得要求に基づいて上記PLCから送信される状態データを上記受信データメモリへ格納する上記受信データメモリの更新処理を繰り返し行う受信制御手段と、ユーザが指定した停止条件を記憶する停止条件記憶手段と、上記受信データメモリを参照し、上記受信データメモリ内の状態データに基づく表示処理を行うとともに、上記停止条件に基づいて上記表示処理を停止する表示制御手段と、上記受信データメモリ内の状態データをデバッグ装置へ送信するためのデバッグ用通信手段とを備えて構成される。この様な構成によれば、必要に応じて表示処理を停止させることができるとともに、表示処理の停止時における状態データを受信データメモリから読み出すことができるので、プログラマブル表示装置の動作状態を迅速かつ容易に把握することができる(特許文献2の段落[0015]参照)。
【0006】
しかし、特許文献2の構成では外部機器PLCの接続が必要なので、外部機器がなくてもデバッグできるように、外部機器に代えてデバッグ装置と接続する構成には適用することができない。
【0007】
なお、教示装置のプログラムデバッグ方法として、教示装置の動作プログラムをステップ実行させるデバッグ支援システムがあった(特許文献3)。複数のステップから構成されたプログラムであって、教示装置において実行されるプログラムについてのデバッグを行うためのデバッグ装置と、前記プログラムを実行して所定の制御装置に対して教示を行うための教示装置と、を用いて行うプログラムのデバッグ方法であって、前記制御装置に代えて前記デバッグ装置を前記教示装置に接続し、前記デバッグ装置は、ユーザによって指示されたステップとともに、前記教示装置が前記制御装置から読み出すべき読出データを教示装置に送信する行程を行い、前記教示装置は、前記デバッグ装置から受信した前記ステップを前記読出データを用いて実行し、当該教示装置が前記制御装置に対して書き込むべき書込データを決定するとともに「次に実行すべきステップ」を決定する行程と、決定した前記書込データおよび前記「次に実行すべきステップ」を、前記デバッグ装置に送信する行程を行い、前記デバッグ装置は、さらに、前記教示装置から受信した前記書込データおよび前記「次に実行すべきステップ」を、ユーザに提示する行程を行うことを特徴とする。したがって、教示装置において1ステップずつ実行したプログラムを、デバッグ装置において1ステップずつ実行結果を確認することができる。これにより、教示装置の実機による操作形態を用いて、効率よくトレースデバッグ作業を行うことができる(特許文献3の段落[0011]引用)。
【特許文献1】特許3621336号公報
【特許文献2】特開2007−109120号公報
【特許文献3】特開2006−343818号公報
【発明の開示】
【発明が解決しようとする課題】
【0008】
本願の出願人は、外部機器の機種に依存するインターフェイス基本コマンド、通信コマンド共通属性データと、外部機器の機種依存性の小さい動作プログラムとに分離することによって、異なる機種の外部機器への対応が容易となるマン・マシン・インターフェイス機器および作画装置を発明して既に特許出願している。この先願発明によれば、動作プログラムを簡単に作成することができる。すなわち、インターフェイス基本コマンド、通信コマンド共通属性データを記憶しておけば、ユーザが外部機器との通信シーケンスを動作プログラムに組み込むことができる。
【0009】
しかしながら、特許文献3には、外部機器とデータのやりとり(通信)を行うためのインターフェイス・プログラムをあらかじめ用意したが、ユーザによって作成された通信マクロの送受信命令を含む動作プログラムを解釈して、外部機器との通信を含む処理を実行することはできない。
【0010】
本発明の目的は、ユーザが作成する通信処理を含む動作プログラムをさらに容易にデバッグする方法およびデバッグプログラムを提供することであり、具体的には、上記先願発明における通信マクロの送受信命令を含む動作プログラムをステップ実行させるデバッグ方法およびデバッグプログラムを提供することである。
【課題を解決するための手段】
【0011】
本発明のマン・マシン・インターフェイス機器用プログラムのデバッグ方法は、デバイスを有する外部機器とデータ通信するマン・マシン・インターフェイス機器であって、外部機器との通信の基本処理を行うインターフェイス基本コマンドと通信コマンド共通属性データとを記録した記録部と、ユーザによって生成され前記記録部に記録された通信マクロの送受信命令を含む動作プログラムを解釈して、通信マクロの送受信命令に記述されたデバイスと通信コマンド共通属性データに基づいて外部機器と通信する通信手段とを備えたマン・マシン・インターフェイス機器において実行されるマン・マシン・インターフェイス機器用プログラムについてのデバッグを行うためのデバッグ装置を用いるマン・マシン・インターフェイス機器用プログラムのデバッグ方法であって、前記デバッグ装置は、実行ステップが通信マクロ命令の場合、「次に実行すべきステップ」と読出デバイス情報というデバッグコマンドをマン・マシン・インターフェイス機器へ送信し、前記マン・マシン・インターフェイス機器は、前記デバッグ装置から受信した前記ステップが動作プログラムの通信マクロ命令の場合、通信マクロの送信命令を生成し、前記デバッグ装置に送信し、前記デバッグ装置は、該当ステップの通信マクロの送信命令を受信してから、該当ステップの通信マクロの受信命令を生成し、前記マン・マシン・インターフェイス機器に送信し、前記マン・マシン・インターフェイス機器は、該当ステップの通信マクロの受信命令を受信してから、該当ステップの読出データと「次に実行すべきステップ」の実行結果を前記デバッグ装置に送信し、前記デバッグ装置は、さらに、前記マン・マシン・インターフェイス機器から受信した前記実行結果をユーザに提示することを特徴とする。 また、本発明のマン・マシン・インターフェイス機器用プログラムのデバッグ方法において、通信マクロの送信命令を受信する手段は、受信したフレームに対して、該当通信マクロの送信命令に記述されているデバイスと通信コマンド共通属性データとフレームフォーマットとに基づいて受信したフレームを解析し、送信命令に記述されているデバイスとデバイス値を取得して、ユーザによって入力され、あるいは予め用意されたデバイス値を取得し、該当受信命令に記述されているデバイスと通信コマンド共通属性データとフレームフォーマットとに基づいてフレームを生成して、マン・マシン・インターフェイス機器に送信することを特徴としてもよい。
【0012】
あるいは、本発明のデバッグプログラムは、コンピュータに上記のマン・マシン・インターフェイス機器用プログラムのデバッグ方法を実行させることを特徴とする。
【発明の効果】
【0013】
本発明のマン・マシン・インターフェイス機器用プログラムのデバッグ方法によれば、外部機器を代替するメリットを維持しながら、デバッグ装置が状態データ(デバイス値)を参照するタイミングと、マン・マシン・インターフェイス機器が状態データ(デバイス値)を参照するタイミングが同期するので、ユーザプログラムの細かなデバッグを可能にする。
【0014】
また、本発明のデバッグプログラムによれば、プログラムが実行可能なコンピュータ環境さえあれば、どのようなところでも本発明のデバッグ方法を実現することができる。さらに、このデバッグプログラムを汎用的なコンピュータで実行可能なものにしておけば、本発明のデバッグ方法を実現するために専用のコンピュータ環境を準備する必要もなくなり、本発明のデバッグプログラムの有用性が高まる。
【発明を実施するための最良の形態】
【0015】
以下、本発明の実施形態を、図面を参照して説明する。
【0016】
<機能ブロック図>
図1は、本発明の一実施形態に係るデバッグシステム1の機能ブロック図である。このデバッグシステム1は、デバッグ装置aおよびマン・マシン・インターフェイス機器bから構成され、各装置はケーブルまたはネットワーク等で相互に通信可能である。デバッグ装置aにおいて作成したプログラムをマン・マシン・インターフェイス機器b(例えば、教示装置)に転送した後、デバッグ装置aおよびマン・マシン・インターフェイス機器bを用いて、前記プログラムのデバッグ作業を行うことができる。
【0017】
なお、デバッグ後において、デバッグ装置aに代えてPLC(プログラマブル・ロジック・コントローラ)等の外部機器がマン・マシン・インターフェイス機器bと接続され、マン・マシン・インターフェイス機器bからの指令を受けて外部機器の制御を行う。すなわち、デバッグシステム1においてデバッグされたプログラムをマン・マシン・インターフェイス機器bにおいて実行することによって、マン・マシン・インターフェイス機器bは外部機器に対して各指令を出力する。
【0018】
デバッグ装置aは、プログラム記録手段a1、入力手段a2、デバッグコマンド送信手段a3、表示手段a4、読出データ記録手段a5、プログラム作成手段a6、プログラム転送手段a7、通信マクロ判定手段a31、送信命令受信解析手段a32および受信命令生成送信手段a33を備えている。
【0019】
プログラム記録手段a1は、作成されたプログラムを記録するためのものである。
【0020】
入力手段a2は、デバッグ対象となるプログラムステップおよび読出データに関してユーザからの指示を受け付け、これをデバッグ装置aに入力するためのものである。
【0021】
デバッグコマンド送信手段a3は、上記入力手段a2において入力したステップおよび読出データを、マン・マシン・インターフェイス機器bに送信するためのものである。
【0022】
表示手段a4は、マン・マシン・インターフェイス機器bから受信した読出データおよび「次に実行すべきステップ」を表示するためのものである。
【0023】
読出データ記録手段a5は、マン・マシン・インターフェイス機器bから読み出されたデバイス値を記憶するためのものである。
【0024】
プログラム作成手段a6は、マン・マシン・インターフェイス機器bにおいて実行するためのプログラムを、ステップ単位で作成するためのものである。プログラム記録手段a1は、プログラム作成手段a6において作成したプログラムを記録するためのものである。
【0025】
プログラム転送手段a7は、プログラム作成手段a6において作成したプログラムをマン・マシン・インターフェイス機器bに転送するためのものである。
【0026】
通信マクロ判定手段a31は、ステップ実行デバッグコマンドをマン・マシン・インターフェイス機器bに送信後、該当ステップが動作プログラムの通信マクロ命令であるかどうか判定する手段である。
【0027】
送信命令受信解析手段a32は、該当ステップが通信マクロ命令の場合、マン・マシン・インターフェイス機器bから通信マクロの送信命令を受信し、解析を行う手段である。
【0028】
受信命令生成送信手段a33は、該当ステップの通信マクロ受信命令を生成し、マン・マシン・インターフェイス機器bに送信する手段である。
【0029】
マン・マシン・インターフェイス機器bは、プログラム記録手段b1、デバッグコマンド受信手段b2、通信マクロ・ステップ実行手段b3、実行結果送信手段b4、操作手段b5およびデバッグモード設定手段b6を備えている。
【0030】
プログラム記録手段b1は、デバッグ装置aから転送されてきたプログラムを記録するためのものである。
【0031】
実行結果送信手段b4は、実行したステップの実行結果として、読出データおよび「次に実行すべきステップ」をデバッグ装置aに送信するためのものである。
【0032】
操作手段b5は、実行中のステップが取り扱う操作データを受け付けるためのものである。
【0033】
デバッグモード設定手段b6は、操作手段b5の外部キー押下より、メンテナンス画面上にデバッグモードを設定し、または、デバッグコマンド受信手段b2より、デバッグモードを設定する手段である。
【0034】
デバッグコマンドを受信後、通信マクロ・ステップ実行手段b3は通信マクロ命令を含む動作プログラムをステップに実行する。該当ステップが通信マクロ命令の場合、マン・マシン・インターフェイス機器bは通信マクロの送信命令を生成し、デバッグ装置に送信してから、デバッグ装置から送信された受信命令を受信し、解析を行う。次は、実行結果をデバッグ装置に送信する(実行結果送信手段b4)。
【0035】
<ハードウェア構成>
デバッグ装置aの具体的なハードウェア構成としては、CPUを用いて実現した汎用のコンピュータ装置を利用することができる。この場合、デバッグ装置aは、ディスプレイ、CPU、メモリ、キーボード/マウス、ハードディスク、CD−ROMドライブおよび通信回路などを備えている。
【0036】
ハードディスクは、デバッグプログラム、プログラムフォルダおよびプログラム作成プログラムなどを記録している。メモリは、読出データフォルダ、現在ステップカウンタおよび前回ステップカウンタなどを記録している。デバッグプログラムは、本明細書で説明しているデバッグ方法をコンピュータ装置に実行させるためのプログラムであって、例えば、CD−ROM等の記録媒体からインストールされる。
【0037】
プログラム記録手段a1は、プログラムフォルダおよびデバッグプログラムの実行によって実現される。入力手段a2は、キーボード/マウスおよびデバッグプログラムの実行によって実現される。デバッグコマンド送信手段a3は、デバッグプログラムの実行によって実現される。表示手段a4は、ディスプレイおよびデバッグプログラムの実行によって実現される。読出データ記録手段a5は、読出データフォルダおよびデバッグプログラムの実行によって実現される。プログラム作成手段a6およびプログラム転送手段a7は、プログラム作成プログラムの実行によって実現される。
【0038】
図2に、デバッグシステム1におけるマン・マシン・インターフェイス機器bのハードウェア構成を示す。CPU20には、液晶ディスプレイやタッチスクリーンなどの表示部22、入出力インターフェイス(I/F)24、入力キーなどの入力部26、メモリ28、P−ROM30、入出力インターフェイス(I/F)32が接続されている。入出力インターフェイス24は、外部機器4との接続を行うものである。入出力インターフェイス32は、インターフェイス・プログラム作成装置であるデバッグ装置5との接続を行うものである。
【0039】
タッチスクリーンなどの表示部22は、ディスプレイの画面上に透明電極が配置され、表示するだけでなくユーザが入力可能に構成されている。入力部26は、たとえばハードウェアとしての入力ボタンであるが、ソフトウエアと協働して動作するタッチスクリーンであってもよい。メモリ28は、CPU20のワークエリアとして機能する。
【0040】
プログラムROM(P−ROM)30には、システム処理プログラム34が記録されている。さらに、ユーザによって作成された画面データ36、インターフェイス基本コマンド12、通信コマンド共通属性データ14(共通属性データ)、デバイス情報テーブル16(デバイス情報データ)、動作プログラム42が記録されている。図2のデバイス情報テーブル16は、デバイスとの通信を行う際の、デバイスの種別などを記述したものである。
【0041】
<通信コマンド共通属性およびインターフェイス基本コマンド>
P−ROM30に記録された通信コマンド共通属性データ14の例を、図3に示す。
【0042】
送信デバイスデータ変換形式は、指定したデバイスの内容を変換タイプに従ってデータ変換を行い、データメモリに格納するデータ値と送信コマンドフレームにある該当データコードとの変換タイプを選択する。BIN→ASCII(値を16進数の文字列に変換)、BIN→BCD→ASCII(バイナリー→BCD→アスキー変換)、無変換を設定する。
【0043】
受信デバイスデータ変換形式は、メモリに格納するデータ値と受信コマンドフレームにある該当データコードとの変換タイプを選択する。ASCII→BIN(受信データを16進数表記の文字列として数値に変換)、ASCII→BCD→BIN(受信データを10進数表記の文字列として数値に変換)、無変換を設定する。
【0044】
また、外部機器の種類によっては、データの格納方法が上位バイトからであったり、下位バイトからであったりする。データ格納方法は、これを示している。
【0045】
BCC計算では、外部機器4との通信におけるブロックチェックコードの計算方法を記述している。
【0046】
P−ROM30に記録されたインターフェイス基本コマンド12の例を、図4に示す。これは、外部機器の機種毎に用意されたものから選択されたものである。なお、予め用意してあるコマンドを参考にして、ユーザがインターフェイス基本コマンドを作成することもできる。なお、基本コマンドの定義項目としては、定数、デバイス、BCC、スキップなどの項目が設けられている。
【0047】
通信マクロコマンドは通常、送信コマンドと受信コマンドからなる。外部機器に送信コマンドを送信してから、外部機器から受信コマンドを受信する。通信マクロ命令は送信コマンド、あるいは受信コマンドだけでも設定可能にする。
【0048】
送信コマンドの項目名には、定数、デバイス、BCC項が設定できる。
【0049】
受信コマンドの項目名には、定数、デバイス、BCC、スリップ項が設定できる。
【0050】
<デバッグ処理−1>
デバッグシステム1を利用するユーザは、まず、デバッグ装置aにおいて、画面データ36情報や動作プログラム42情報を含むプロジェクトデータを作成する。この作成方法については、例えば、特許文献3の段落[0048]〜[0051]にも記載されているが、次のようにして作成することができる。
【0051】
デバッグ装置aにおいて、ユーザがキーボード/マウスを操作することによりプログラム作成プログラムを起動させる(作画機能を選択する)と、デバッグ装置aのCPUは、作画画面をディスプレイに表示させる。その作画画面において、ユーザは、マン・マシン・インターフェイス機器bの表示部22において表示するための画面データ36を作成することができる。例えば、直線、矩形、円、所定画像等の固定描画図形、デバイス値に基づいてその表示を切り換えるためのメッセージ切り換え表示、数値表示または数値入力等の機能部品データ等を、作画画面上において任意に作成することができる。
【0052】
CPUは、ユーザがキーボード/マウスを操作することによって行った作画指示を受け付けて、作画画面に画面部品を配置する。さらに、CPUは、ユーザからの作画終了指示を受けると、作成された画面データ36をプログラムフォルダに記録する。このように、ユーザは上記処理を繰り返すことにより、マン・マシン・インターフェイス機器bにおいて表示させるための全ての画面データ36を作成できる。
【0053】
CPUは、図7に示すような動作プログラム画面53をディスプレイに表示させる。動作プログラム画面53においてユーザは、マン・マシン・インターフェイス機器bにおいて実行させるための複数のステップ(命令)から構成されるプログラムリストを作成することができる。すなわち、本実施形態において作成される動作プログラム42は、マン・マシン・インターフェイス機器bにおいて実行するための動作プログラムである。例えば、通信マクロ命令、画面表示命令、四則/論理演算命令、条件ジャンプ命令またはサブルーチン呼出命令等に基づくステップ命令から構成されるプログラムリストを、動作プログラム画面53上において任意に作成することができる。
【0054】
このようにして作成したものをマン・マシン・インターフェイス機器bに転送したユーザは、当該動作プログラム42のデバッグを行う。
【0055】
デバッグ装置aにおいて、ユーザがキーボード/マウスを操作することによりデバッグプログラムを起動させる(デバッグ機能を選択する)と、デバッグ装置aは、図5に示すようなデバッグ画面(デバッグダイアログ)51をディスプレイに表示させる。なお、デバッグ装置aのディスプレイには、図6に示すような画面1および図7に示すような動作プログラム画面53も表示されるが、これらについては後述する。
【0056】
図5に示すように、デバッグ画面51には、デバイス設定エリア510、ステップ実行ボタン511、停止ボタン513、リセットボタン512、ブレークポイントボタン515および連続実行ボタン517が表示される。デバイス設定エリア510は、実行中のステップにおいて使用されるデバイス番号およびデバイス値を表示または設定するためのものである。
【0057】
ステップ実行ボタン511は、動作プログラム画面53に表示されているプログラムステップを、マン・マシン・インターフェイス機器bにおいてステップごとに実行させるためのものである。停止ボタン513は、マン・マシン・インターフェイス機器bにおいて実行中のプログラムステップを停止させるためのものである。ブレークポイントボタン515は、動作プログラム画面53において表示されているプログラムステップに、プログラムを停止させるためのステップ位置であるブレークポイントを設定するためのものである。連続実行ボタン517は、所定のプログラムステップからブレークポイントの設定されたプログラムステップまでの各ステップを順次連続して実行させるためのものである。リセットボタン512は、デバッグの実行により変更されたマン・マシン・インターフェイス機器bのデバイス値やブレークポイント等の設定情報をリセットするためのものである。
【0058】
ステップNo.は、次に実行すべきステップ番号で、簡略に言えば実行ステップ番号である。通信マクロNo.は、実行ステップ番号に対応した動作プログラム42の通信マクロ命令の通信マクロNo.である。コメントは、該当通信マクロNo.に対応したコメントであり、図4に設定された通信マクロのコメントである。
【0059】
送信コマンドのフレームデータは、マン・マシン・インターフェイス機器bから受信した該当実行ステップの通信マクロの送信コマンドデータである。
【0060】
受信コマンドのフレームデータは、図4の定義された通信マクロ命令の受信コマンドフォーマットと動作プログラム42の該当ステップの通信マクロ命令のパラメータ及び図5のユーザによって入力されたデバイス書込値に基づいて生成された受信コマンドデータである。書込値が入力されていなければ、マン・マシン・インターフェイス機器bから受信したデバイス読出値を使用する。
【0061】
P−ROM30に記録された動作プログラム42の例を、図7に示す。動作プログラム42は、マン・マシン・インターフェイス機器bの表示画面の動作を決定するプログラムであり、ユーザが作成することができる。動作プログラム42は、図6に示すような表示動作をさせるためのものであり、外部機器4から生産個数データを受けて、これを表示する。
【0062】
なお、図6のような画面表示を行うためには、動作プログラム42とは別に画面データ36が必要であるが、これもP−ROM30に記録されている(図2参照)。
【0063】
<システム処理プログラム>
図8にマン・マシン・インターフェイス機器bにおけるシステム処理プログラムのフローチャートを示す。まず、ステップS11において、CPU20はシステムの初期化を行う。運転モードを通常モードに設定し、メモリ28のデバイステーブルのデバイスデータをクリアする。
【0064】
次に、ステップS12においてデバッグモード設定であるか判断し、設定していなければ、ステップS13に進んで通常モードを設定し、ステップS14の通常運転実行処理を行う(図9参照)。
【0065】
なお、デバッグモードの設定が以下の方法により実現できる。
【0066】
(1)システムプログラム上に、システム固有のデバッグコマンドヘッダを定義する。受信コマンドのヘッダより、デバッグコマンドを判断し、デバッグモードを設定する。
【0067】
(2)ユーザプログラム上に、通信マクロを判断できるように、デバッグコマンドのヘッダをプロジェクトデータ上で定義する(図12参照)。
【0068】
(3)外部キー押下より、メンテナンス画面上にデバッグモードを選択する。
【0069】
ステップS12において、上記のいずれ方法でデバッグモードが設定された場合、デバッグモードを設定する(ステップS15)。次は、ステップS16においてデバッグステップ実行処理を行う(図11参照)。
【0070】
次に、ステップS17においてデバッグが完了したか否かを判断し、完了していなければステップS16に戻り、完了していればステップS18に進んでデバッグモードをクリアする。
【0071】
なお、デバッグモードをクリアする方法は以下のように実現できる。
【0072】
(1)電源がONにする際、デバッグモードをクリアする。
【0073】
(2)デバッグ完了後、システムリセットモードをマン・マシン・インターフェイス機器bへ送信して、システムをリセットし、通常運転モードに切り換える。
【0074】
図9にマン・マシン・インターフェイス機器bにおける通常運転実行フローチャートを示す。
【0075】
CPU20は、動作プログラム画面53(図7参照)に表示されている動作プログラム42の1行目の命令を取得し、その命令内容に応じて処理内容を実行する。動作プログラム42の1行目は画面Start命令であるので、ステップS21以下を実行する。表示部22の画面をクリアする。続いて、ステップS22において、プロジェクトデータの画面1についての画面データ36を読み出して、表示部22に表示する。
【0076】
ステップS23は、画面データの機能部品の「数値入力器」を処理する。画面上に数値入力器を配置した場合、数値入力器が選択されれば、数値入力を促す入力カーソルが表示される。ユーザは数値キーを押下して、入力カーソルの位置にデータを入力する。入力されたデータをデバイステーブルに記録するとともに、所定の位置に表示する。ここでは、ユーザによる数値表示器は画面1に配置していないので、CPU20は、この処理を行わない。
【0077】
さらに、画面1データの機能部品の「数値表示器」を処理する。数値表示器としてD17が指定されており、読出デバイスD17の最初値が「0」であるので、画面上の「生産個数:」という文字の右側にある数値表示器位置に「0」を表示する(ステップS24)。
【0078】
次に、動作プログラム42の2行目の命令を取得して実行する。2行目の「D10=0017」は、デバイスD10に16進数「0017」をセットする演算命令である(ステップS26)。
【0079】
CPU20は、動作プログラム42の3行目の「D11=0200」命令を取得し、デバイスD11に16進数「0200」をセットする。
【0080】
次は、CPU20は、動作プログラム42の4行目の「XS1 通信1 D10,3,D17,2,CS1」 の命令を取得し、ステップS26においてフラグXS1が「1」であれば通信マクロ命令を解釈して実行する。通信マクロの送信コマンドを生成し、外部機器に送信してから、外部機器から受信した通信マクロの受信コマンドを解釈し実行する。
【0081】
通信マクロの形式は CD 通信No. SD, SL, RD, RL, CS である。
【0082】
起動条件デバイスCDがONになると、通信No.マクロを実行する。
【0083】
SDは図4の送信コマンドに定義された送信先頭デバイスで、SLはその送信デバイスのバイト数で、RDは図4の受信コマンドに定義された受信先頭デバイスで、RLは受信デバイスのバイト数である。
【0084】
CSは、通信状態(実行中、正常完了、異常終了フラグ)用デバイスである。
【0085】
送信コマンドを生成する。通信マクロ1の送信コマンドフォーマット(図4参照)に基づいて送信先頭デバイスD10から3バイトのデータを取得し、通信コマンド共通属性の設定(図3参照)によってデータ格納形式が上位バイトからであるので、送信デバイスのデータ順序が「001702」になる。送信デバイスデータ変換形式(図3参照)が「BIN→ASCII」であるので、値「001702」を16進数の文字列「303031373032」に変換する。送信コマンドフォーマットに基づいて(図4参照)送信コマンドデータが「053030305244303031373032 BCC 0D」となる。BCCの取得は通信コマンド共通属性のBCC計算方法(図3参照)によって、BCC値は「3237」となる。
【0086】
生成された送信コマンドのフレームデータ「05303030524430303137303232370D」を外部機器に送信してから、外部機器から受信したフレームデータ「063030303043323734300D」を解析する。通信マクロ1の受信コマンドフォーマット(図4参照)に基づいて受信先頭デバイスD17から2バイトのデータを取得し、通信コマンド共通属性(図3参照)によってデータ格納形式が上位バイトからであるので、受信デバイスのデータ順序が「30433237」になる。受信デバイスデータ変換形式(図3参照)は「ASCII →BIN」であるので、受信データ「30433237」を16進数表記の文字列として数値「0C27」に変換する。デバイステーブルのデバイスD17値が「0C27」を格納する。
【0087】
通信1マクロ命令を実行完了後、5行目の「画面End」命令を実行する(ステップS25)。画面End命令は該当「画面1Start」へ繰り返す。ステップS24において、数値表示器に指定されたデバイスD17の読出値「0C27」(16進数)をデバイステーブルから取得し、数値表示器位置に「3111」(16進数「0C27」を10進数形式に変換)を表示する(図6の画面1参照)。
【0088】
図10のデバッグ装置aのステップ実行について、説明する。
【0089】
デバッグ装置a上で、ユーザが作成した動作プログラム42(図7参照)の1行目「画面1Start」命令を指定し、図5のデバッグ画面上のステップ実行ボタン511を押下し、ステップ実行デバッグコマンドを生成し(ステップS31)、ステップ実行コマンドをマン・マシン・インターフェイス機器bに送信する(ステップS32)。
【0090】
次は、ステップS33において、該当ステップが通信マクロ命令ではないので、ステップS37へ進んで、マン・マシン・インターフェイス機器bから実行結果コマンドを受信し、数値表示器の指定デバイスD17の読出値が「0」が図5のデバッグ画面上に表示する。
【0091】
次は、2行目の「D10=0017」命令を指定し、図5のデバッグ画面上のステップ実行ボタン511を押下し、ステップ実行デバッグコマンドを生成し(ステップS31)、ステップ実行コマンドをマン・マシン・インターフェイス機器bに送信する(ステップS32)。
【0092】
次は、ステップS33において、該当ステップが通信マクロ命令ではないので、ステップS37へ進んで、マン・マシン・インターフェイス機器bから実行結果コマンドを受信し、次の実行ステップ番号が図5のデバッグ画面上に表示する。2行目の命令処理と同じように、3行目の命令をステップ実行させる。
【0093】
次は、4行目の「XS1 通信1 D10, 3, D17, 2, CS1」命令を指定し、次は、ステップS33において、該当ステップが通信マクロ命令を判定した場合、ステップS34へ進んで、該当ステップの通信マクロの送信コマンドを受信し(ステップS34)、次は、ステップS35において、通信マクロの受信コマンドを生成する。
【0094】
図4の通信マクロの受信コマンドフォーマットと該当通信マクロ命令の受信デバイスとバイト数と図5のデバッグ画面上でユーザが入力された外部機器側デバイス書込値及び図3の通信コマンド共通属性に基づいて、通信マクロの受信コマンドを生成し、生成された受信コマンドをマン・マシン・インターフェイス機器bに送信する(ステップS36)。
【0095】
次は、実行結果コマンドを受信する(ステップS37)。
【0096】
マン・マシン・インターフェイス機器b側デバイス読出値と次の実行すべきステップを更新表示する(ステップS38)。
【0097】
図11のマン・マシン・インターフェイス機器bのステップ実行デバッグ処理は、ステップS51において、デバッグ装置aからデバッグコマンドを受信する。デバッグコマンドのフォーマットは図13に示す。図13の画面No.とサブルーチンNo.およびステップNo.とも“FFF”の場合、図14のようにステップ実行せずデバイス(D17)読み出しコマンドの例であり、“FFF”以外の場合、図16のようにステップ(No.3)実行コマンドA(図13のリクエストコマンドフォーマットA)と該当ステップ実行結果コマンドB(図13のレスポンスコマンドフォーマットB)の例である。
【0098】
受信したデバッグコマンドを解析し、該当ステップが動作プログラム42の通信マクロ命令であるかどうか判断し(ステップS52)、通信マクロの場合は、図4の通信マクロの送信コマンドフォーマットと該当通信マクロ命令の送信デバイスとバイト数及び図3の通信コマンド共通属性に基づいて、通信マクロの送信コマンドを生成し、デバッグ装置aに送信する(ステップS53)。
【0099】
デバッグ装置aから通信マクロの受信コマンドを受信し(ステップS54)、図4の通信マクロの受信コマンドフォーマットと該当通信マクロ命令の受信デバイスとバイト数及び図3の通信コマンド共通属性に基づいて、該当通信マクロの受信コマンドを解析し、受信処理後、ステップS56へ進んでいく。実行結果コマンドを生成しデバッグ装置aに送信する。
【0100】
ステップS52において、該当ステップが動作プログラム42の通信マクロ命令でない場合は、四則演算などのマクロ命令を実行する(ステップS55)。
【0101】
<デバッグ処理−2>
デバッグしたとき、ユーザが作成された以上の画面データ36と通信コマンド共通属性及び動作プログラム42をマン・マシン・インターフェイス機器bへダウンロードし、図5のデバッグ画面(デバッグダイアログ)51を開いて、ステップ実行などのデバッグを行う。
【0102】
ステップ実行ボタン511は、選択したマクロコマンドよりステップデバッグを開始する。
【0103】
ブレークポイントボタン515は連続実行する動作プログラム42に対して、ブレークポイントを設定したマクロコマンド行でステップ実行を停止する。
【0104】
連続実行ボタン517は、マクロコマンドを1つずつ処理するステップ動作を行う。
【0105】
デバイス欄は、デバイスを選択して、マン・マシン・インターフェイス機器b内のデバイス値を読み出して、マン・マシン・インターフェイス機器b欄(読出)に表示する。
【0106】
外部機器欄は、ユーザより外部機器のデバイス値を入力し、通信マクロをステップ実行するとき、この外部機器デバイス値を参照して、通信マクロの受信コマンドを生成する。
【0107】
<デバッグ方法の例>
実施例として、ユーザは作成した表示画面(図6参照)と通信マクロ命令を含む動作プログラムを同期的にデバッグする方法を説明する。
【0108】
ユーザは図5のデバッグ画面51を開いて、マウスでデバイス欄をクリックして、選択したいデバイス(数値表示器デバイスD17)を入力して、入力完了後に、デバッグ装置aからデバイス読み出しリクエストデバッグコマンドA(図14参照)をマン・マシン・インターフェイス機器bへ送信し、デバッグ装置aからのレスポンスコマンドB(図14参照)を解析して、デバイス値をマン・マシン・インターフェイス機器b側(読出のみ)欄に表示する(最初値が0)。
【0109】
次は、ユーザが動作プログラム42(図7参照)の1行目の命令を指定して、ステップ実行ボタン511を押して、図13のリクエストコマンドフォーマットAを参照し、画面1 Startマクロステップ実行コマンドを生成して、マン・マシン・インターフェイス機器bへ送信し、マン・マシン・インターフェイス機器bはこのステップデバッグコマンドを受信して実行し、画面1(図6参照)上の「生産個数:」という文字の右側にある数値表示器位置に「0」を表示する。
【0110】
デバッグ装置aは実行結果コマンドを受信後、図13のレスポンスコマンドフォーマットBを参照し解釈して、次の実行ステップはステップNo.2になる。次に、ユーザは、動作プログラム42の2行目の「D10=0017」命令を指定して、図5のステップ実行ボタン511を押して、ステップNo.2を実行させる。同様に、3行目の命令を実行させる。
【0111】
ステップNo.3実行後、図5の次実行ステップNo.がステップNo.4 XS1 通信1 D10, 3, D17, 2, CS1という通信マクロ1命令が提示される。このとき、ユーザは外部機器側(書込)欄に数値表示したい生産個数デバイスD17のデバイス値16進数の0C27(10進数の3111)を書込値欄に入力して、さらに、ユーザはステップ実行ボタン511を押して、ステップNo.4を実行させる。
【0112】
このステップNo.4実行の通信シーケンスは図15に示すように、以下のようになる。
【0113】
(a)デバッグ装置aはステップNo.4のステップ実行コマンドA(図16参照)をマン・マシン・インターフェイス機器bへ送信する。
【0114】
0530304646414164 303031303030303033 3031 3930 30303137 3544 0D
(b)マン・マシン・インターフェイス機器bは通信マクロ1の送信コマンドをデバッグ装置aへ送信する。
【0115】
05303030524430303137303232370D
(c)デバッグ装置aは通信マクロ1の受信コマンドをマン・マシン・インターフェイス機器bへ送信する。通信マクロ1の受信コマンドは図3の通信共通属性、図4の通信マクロ1の受信コマンドフォーマット、図5のデバイス外部機器側(書込)のデバイスより生成する。
【0116】
063030303043323734300D
(d)デバッグ装置aはマン・マシン・インターフェイス機器bからのステップ実行結果コマンドB(図16参照)を受信し、図5のデバッグ画面51に表示する。
【0117】
0630304646414164 303031303030303034 30433237 3231 0D
このステップNo.4を実行した結果が図5のデバッグ画面51に反映される。
【0118】
次の実行ステップはステップNo.5に更新し、マン・マシン・インターフェイス機器b側欄のデバイスD17値が0からC27に更新された。
【0119】
デバッグ装置aから生成された通信マクロ1の受信コマンドが図5の受信コマンド行に表示された。
【0120】
マン・マシン・インターフェイス機器bからの通信マクロ1の送信コマンドが図5の送信コマンド行に表示された。
【0121】
次は、5行目の「画面End」命令を指定し、ステップ実行ボタン511を押下する。図5のステップ番号が「画面1Start」へ繰り返す。さらにステップボタンを押下すると、マン・マシン・インターフェイス機器bの表示部に「3111」(16進の0C27)数値が表示される。
【0122】
なお、本発明は、その主旨または主要な特徴から逸脱することなく、他のいろいろな形で実施することができる。そのため、上述の実施形態はあらゆる点で単なる例示にすぎず、限定的に解釈してはならない。本発明の範囲は特許請求の範囲によって示すものであって、明細書本文にはなんら拘束されない。さらに、特許請求の範囲の均等範囲に属する変形や変更は、全て本発明の範囲内のものである。
【図面の簡単な説明】
【0123】
【図1】本発明の一実施形態に係るデバッグシステム1の機能ブロック図である。
【図2】デバッグシステム1におけるマン・マシン・インターフェイス機器bのハードウェア構成を示す図である。
【図3】通信コマンド共通属性データ14の例を示す図である。
【図4】インターフェイス基本コマンド12の例を示す図である。
【図5】デバッグ画面(デバッグダイアログ)51の例を示す図である。
【図6】表示画面の例を示す図である。
【図7】動作プログラム画面53および動作プログラム42の例を示す図である。
【図8】マン・マシン・インターフェイス機器bにおけるシステム処理プログラムのフローチャートである。
【図9】マン・マシン・インターフェイス機器bにおける通常運転実行フローチャートである。
【図10】デバッグ装置aにおけるデバッグステップ実行処理フローチャートである。
【図11】マン・マシン・インターフェイス機器bにおけるデバッグステップ実行フローチャートである。
【図12】プロジェクトデータ上でデバッグコマンドヘッダの設定例である。
【図13】デバッグコマンドフォーマットの例である。
【図14】デバイス読み出しデバッグコマンドの例である。
【図15】通信マクロ命令のステップ実行通信シーケンスの説明図である。
【図16】図15のステップ実行通信シーケンスにおけるステップ実行コマンドおよびステップ実行結果コマンドの例である。
【符号の説明】
【0124】
1 デバッグシステム
a デバッグ装置
b マン・マシン・インターフェイス機器
4 外部機器
12 インターフェイス基本コマンド
14 通信コマンド共通属性データ
20 CPU
22 表示部
34 システム処理プログラム
42 動作プログラム
51 デバッグ画面

【特許請求の範囲】
【請求項1】
デバイスを有する外部機器とデータ通信するマン・マシン・インターフェイス機器であって、外部機器との通信の基本処理を行うインターフェイス基本コマンドと通信コマンド共通属性データとを記録した記録部と、ユーザによって生成され前記記録部に記録された通信マクロの送受信命令を含む動作プログラムを解釈して、通信マクロの送受信命令に記述されたデバイスと通信コマンド共通属性データに基づいて外部機器と通信する通信手段とを備えたマン・マシン・インターフェイス機器において実行されるマン・マシン・インターフェイス機器用プログラムについてのデバッグを行うためのデバッグ装置を用いるマン・マシン・インターフェイス機器用プログラムのデバッグ方法であって、
前記デバッグ装置は、実行ステップが通信マクロ命令の場合、「次に実行すべきステップ」と読出デバイス情報というデバッグコマンドをマン・マシン・インターフェイス機器へ送信し、
前記マン・マシン・インターフェイス機器は、前記デバッグ装置から受信した前記ステップが動作プログラムの通信マクロ命令の場合、通信マクロの送信命令を生成し、前記デバッグ装置に送信し、
前記デバッグ装置は、該当ステップの通信マクロの送信命令を受信してから、該当ステップの通信マクロの受信命令を生成し、前記マン・マシン・インターフェイス機器に送信し、
前記マン・マシン・インターフェイス機器は、該当ステップの通信マクロの受信命令を受信してから、該当ステップの読出データと「次に実行すべきステップ」の実行結果を前記デバッグ装置に送信し、
前記デバッグ装置は、さらに、前記マン・マシン・インターフェイス機器から受信した前記実行結果をユーザに提示することを特徴とするマン・マシン・インターフェイス機器用プログラムのデバッグ方法。
【請求項2】
請求項1のマン・マシン・インターフェイス機器用プログラムのデバッグ方法において、
前記デバッグ装置で通信マクロの送信命令を受信する手段は、
受信したフレームに対して、該当通信マクロの送信命令に記述されているデバイスと通信コマンド共通属性データとフレームフォーマットとに基づいて受信したフレームを解析し、送信命令に記述されているデバイスとデバイス値を取得して、
ユーザによって入力され、あるいは予め用意されたデバイス値を取得し、該当受信命令に記述されているデバイスと通信コマンド共通属性データとフレームフォーマットとに基づいてフレームを生成して、マン・マシン・インターフェイス機器に送信することを特徴とするマン・マシン・インターフェイス機器用プログラムのデバッグ方法。
【請求項3】
請求項1または2に記載のマン・マシン・インターフェイス機器用プログラムのデバッグ方法をコンピュータに実行させることを特徴とするデバッグプログラム。

【図1】
image rotate

【図2】
image rotate

【図3】
image rotate

【図4】
image rotate

【図5】
image rotate

【図6】
image rotate

【図7】
image rotate

【図8】
image rotate

【図9】
image rotate

【図10】
image rotate

【図11】
image rotate

【図12】
image rotate

【図13】
image rotate

【図14】
image rotate

【図15】
image rotate

【図16】
image rotate


【公開番号】特開2010−86303(P2010−86303A)
【公開日】平成22年4月15日(2010.4.15)
【国際特許分類】
【出願番号】特願2008−255021(P2008−255021)
【出願日】平成20年9月30日(2008.9.30)
【出願人】(000000309)IDEC株式会社 (188)
【Fターム(参考)】