(57)【特許請求の範囲】
【請求項１】
プログラマブル表示器とシミュレータ装置とが接続されたシステムであって、
前記プログラマブル表示器は、
各種マクロブロックより成るマクロデータが付随された画面データを記憶する画面データ記憶手段と、
該画面データを用いて任意のイベントに応じた処理を実行し、該処理に係わり前記マクロブロックのプログラムを実行する際、１行毎にその行番号を前記シミュレータ装置に通知し、実行許可が返信されてくると当該行のプログラムを実行する処理実行手段とを有し、
前記シミュレータ装置は、
前記画面データ記憶手段に記憶されているマクロデータと同じマクロデータを記憶する記憶手段と、
該記憶手段に記憶されているマクロデータのマクロブロックのプログラムの任意の行をブレークポイントに設定させて、該設定内容をブレーク位置情報として記憶するブレークポイント設定支援手段と、
前記処理実行手段から前記行番号の通知がある毎に、前記ブレーク位置情報を参照して、該行番号の行が前記ブレークポイントであるか否かを判定し、ブレークポイントではない場合には前記実行許可を返信し、ブレークポイントである場合には前記実行許可を返信せずに実行再開待ち状態とすると共にその後に所定の指示があった場合に前記実行許可を返信するマクロ実行制御手段と、
を有することを特徴とする表示／制御・シミュレートシステム。
【請求項２】
前記シミュレータ装置は、前記実行再開待ち状態におけるシミュレート結果を表示するシミュレート結果表示手段を更に有することを特徴とする請求項１記載の表示／制御・シミュレートシステム。
【請求項３】
前記マクロ実行制御手段は、前記所定の指示としてステップ実行があった場合には、前記通知された行番号の行の次の行をブレークポイントに設定したうえで、前記実行許可を返信することを特徴とする請求項１または２記載の表示／制御・シミュレートシステム。
【請求項４】
前記プログラマブル表示器は、プログラマブル表示器の実機、または該実機の動作をエミュレートするエミュレート装置であることを特徴とする請求項１〜３の何れかに記載の表示／制御・シミュレートシステム。
【請求項５】
プログラマブル表示器とシミュレータ装置とが接続されたシステムにおける該プログラマブル表示器であって、
各種マクロブロックより成るマクロデータが付随された画面データを記憶する画面データ記憶手段と、
該画面データを用いて任意のイベントに応じた処理を実行し、該処理に係わり前記マクロブロックのプログラムを実行する際、１行毎にその行番号を前記シミュレータ装置に通知し、実行許可が返信されてくると当該行のプログラムを実行する処理実行手段と、
を有することを特徴とするプログラマブル表示器。
【請求項６】
プログラマブル表示器とシミュレータ装置とが接続されたシステムにおける該シミュレータ装置であって、
前記プログラマブル表示器側に記憶されているマクロデータと同じマクロデータを記憶する記憶手段と、
該記憶手段に記憶されているマクロデータのマクロブロックのプログラムの任意の行をブレークポイントに設定させて、該設定内容をブレーク位置情報として記憶するブレーク
ポイント設定支援手段と、
任意のマクロブロックを実行中の前記プログラマブル表示器からこれから実行する行の行番号の通知がある毎に、前記ブレーク位置情報を参照して、該行番号の行が前記ブレークポイントであるか否かを判定し、ブレークポイントではない場合には実行許可をプログラマブル表示器へ返信し、ブレークポイントである場合には前記実行許可を返信せずに実行再開待ち状態とすると共にその後に所定の指示があった場合に前記実行許可を返信するマクロ実行制御手段と、
を有することを特徴とするシミュレータ装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、プログラマブル表示器に関するシミュレータ装置を有するシステムに関する。
【背景技術】
【０００２】
従来より、例えば、ＰＬＣ（プログラマブル・ロジック・コントローラ）本体等である外部機器と、プログラマブル表示器とが接続された表示／制御システム構成が知られている。この様なシステムでは、一般的に、プログラマブル表示器は、外部機器のメモリからデータを読み出して表示したり、外部機器のメモリにデータを書き込むことで外部機器に対して任意の指令を与えたり、自己の画面の表示内容の制御やスクリーン切換え等を行う。
【０００３】
上記プログラマブル表示器の処理は、予め記憶される基本プログラムが、ダウンロードされた画面データを用いて行う。画面データには、各種マクロデータ（マクロブロック）が含まれている。マクロデータ（マクロブロック）は、例えば、画面上に配置される各アイテム（スイッチ、メータ、ボタン等）に対応付けられて、このアイテムに応じた処理を実行するプログラム等である。あるいは、アイテムに対応付けられておらず、例えば定期的に実行されるプログラム等である。
【０００４】
上記表示／制御システムにおいて、更に、作画エディタを有するパソコン等（作画エディタ装置という）が、プログラマブル表示器に接続された構成となっている場合がある。上記画面データは、この作画エディタ装置上でユーザが任意に作成して、プログラマブル表示器にダウンロードする。
【０００５】
プログラマブル表示器では、上記マクロデータにより、独自の演算処理を行う機能としてのマクロ機能を有することになる。このマクロ機能によって、演算処理以外にもプログラマブル表示器の動作や外部機器のメモリ操作を任意のタイミングで行うことができる。このマクロ機能は、上記画面データ（マクロデータ）を変更することで、容易に変更（カスタマイズ）できる。このように容易にカスタマイズできる点から、プログラマブル表示器に複雑な動作を行わせたい場合に、マクロデータが多用される傾向にある。
【０００６】
ここで、画面データ（各種マクロデータ含む）は、上記の通りユーザが作成するものであり、当然何らかのミスが生じる可能性があり、特にマクロデータに関してミスや勘違い等によりユーザが望んだ動作とならない場合が有り得る。よって、新たな画面データを作成してプログラマブル表示器にダウンロードした後、実際に運用を開始する前に、特にマクロデータ（プログラム）に関する動作確認を行うことが望ましい。
【０００７】
この為、従来より、シミュレータ装置により画面データの動作確認を行うことが提案されている。このシミュレータ装置は、上記ＰＬＣ等である外部機器の機能・動作を模擬するものである。このシミュレータ装置は、上記作画エディタ装置に、当該作画エディタ装置の機能の１つとして搭載されている場合が少なくないが、この例に限るものではない。
【０００８】
何れにしても、シミュレータ装置は、少なくとも上記動作確認の際にはプログラマブル表示器に接続されて、プログラマブル表示器と通信を行いながら、擬似的な外部機器として動作する。また、シミュレーション結果の表示等を行う。
【０００９】
すなわち、従来の上記シミュレータ装置は、例えば以下に記す機能を有する。
まず、外部機器の機能・動作をシミュレートする機能を有する。この機能は、例えばプログラマブル表示器からのメモリの読み込み／書き込み要求に応じて、シミュレータ装置上に擬似的に構築している外部機器メモリ（以下、擬似メモリと表記）について応答／書き換えを行なうことで、外部機器をシミュレートしている。
【００１０】
また、シミュレート中に擬似メモリの内容を一覧で表示し、シミュレータ装置上のＧＵＩにてユーザが任意に指定した擬似メモリ・アドレスの読み込み／書き込みを行う機能を有する。更に、ユーザが任意に指定した擬似メモリ・アドレスに関して任意に指定した単位／範囲／時間でインクリメント／デクリメントする機能等も有している。
【００１１】
ここで、たとえば、特許文献１、特許文献２には、プログラマブル・ロジック・コントローラー（以下ＰＬＣと表記）内の動作をシミュレートする方法が提示されている。
上記のシミュレータ装置によると、ＰＬＣのシーケンスをシミュレートすることによりＰＬＣのデバッグ効率を向上させることができる。
【００１２】
また、特許文献３には、プログラマブル表示器とシミュレータ装置間の汎用的なＩ／Ｆと、シミュレータ装置内部に持つ擬似メモリの制御方法について開示されている。
上記のシミュレータ装置によると、プログラマブル表示器とのＩ／Ｆ部分をシミュレートすることで、実際の外部機器を接続していなくても、プログラマブル表示器の動作を確認することができる。
【００１３】
また、特許文献４には、グラフィック操作パネル（表示器）が、制御用ホストコンピュータとＰＬＣとに接続された構成で、画面データ実行時に、制御用ホストコンピュータ上でＰＬＣの模擬動作を行うこと等が開示されている。更に、グラフィック操作パネル（表示器）に接続することなく、スタンドアロンの状態にある制御用ホストコンピュータ上で、画面データのテスト表示・デバッグを行えることも開示されている。
【００１４】
また、特許文献５には、パソコン上にて、表示器のシミュレータ装置と、ＰＬＣのシミュレータ装置とを用いて、ＰＬＣの表示器のハードウェアを用いずに、表示器の表示画面データのシミュレーションを行えることが開示されている。
【００１５】
この様に、従来のシミュレータ装置としては、ＰＬＣの模擬動作のみを行って表示器に関しては実機に接続するタイプと、ＰＬＣ、表示器の両方の模擬動作を行うことによりスタンドアローンでデバッグ実現可能なタイプとが存在する。尚、表示器の動作の模擬機能に関しては、表示器をエミュレートするエミュレート装置という場合もある。本説明では、この様なエミュレート装置もシミュレータ装置に含まれるものとする。
【００１６】
また、特許文献６には、シミュレータ装置に係わり、シミュレーション用画面の表示例等が開示されている。
【先行技術文献】
【特許文献】
【００１７】
【特許文献１】特開平４−２１５１０５号公報
【特許文献２】特開平５−２９７９１５号公報
【特許文献３】特許第３５６２７８３号公報
【特許文献４】特開２００１−７５６３４号公報
【特許文献５】特開２００６−１５５１５８号公報
【特許文献６】特開平１１−１３４２１８号公報
【発明の概要】
【発明が解決しようとする課題】
【００１８】
しかしながら、上記特許文献１〜３に記載の方法においては、主な目的がＰＬＣのデバッグ効率の向上であり、マクロブロックのデバッグ効率の向上に関しては不十分というのが実情であった。
【００１９】
上述した通り、上記画面データ（各種マクロブロックが付随されている）を変更することで、上記マクロ機能を容易に変更（カスタマイズ）でき、便利である。
しかしながら、一方で、従来のプログラマブル表示器用の外部機器シミュレータ装置では、カスタマイズしたマクロデータの設定に何らかの問題がある為にユーザが望んだ通りの動作とならない場合に、各種マクロデータのうち問題があるマクロデータを特定することは容易であるが、当該マクロブロック内において問題がある箇所（行）を特定する為の作業が、非常に手間が掛かるという問題があった。つまり、マクロブロックのデバッグ効率が悪いという問題があった。
【００２０】
これについて、以下、より詳しく説明する。
まず、任意のマクロデータ（マクロブロックともいう）は、例えば「ｍｏｖ」、「Fill」等のマクロコマンドを用いた複数行のプログラムリスト（例えば後に図５等に一例を示す）となっている。各行は、例えば、上記マクロコマンドと、このマクロコマンドの実行対象（例えばリード／ライトするメモリアドレス等）から成る。
【００２１】
このマクロブロックの内容は、ユーザが任意に作成するものであるため、当然、ミスが生じる可能性はある。また、ミスがなくても、ユーザが望んだ通りの動作とならない場合も有り得る。
【００２２】
何れにしても、何らかの問題が生じた場合でも、マクロブロック全体に問題があるわけではなく、その一部に問題がある場合が殆どである。よって、複数行から成るマクロブロックの何行目に問題があるのかを特定することで、問題がある行を修復する必要がある。
【００２３】
ここで、上記何らかの問題があるか否かは、ユーザが判断するものである。これは、上記のようにシミュレータ装置の機能としてシミュレート中の擬似メモリとその値を一覧で表示する機能がある。ユーザは、この表示されるメモリ値を見ることで、問題があるか否かを判断することができる。
【００２４】
しかしながら、このメモリ値は、マクロブロック単位で処理実行した結果しか表示することができない。例えば、仮に、１００行から成るマクロブロックを例にするならば、１００行全てを実行した結果としてのメモリ値が表示されることになる。
【００２５】
この為、このメモリ値が期待した値ではない等の判断理由で、このマクロブロックに問題があると分かった場合でも、このマクロブロック内のどの行に問題があるのか分からなかった。これより、従来では、例えば以下に説明する作業を行って問題の行を特定していた。
【００２６】
すなわち、上記のように処理実行はマクロブロック単位で行われ、途中で処理を止める
ことができないので、問題となるマクロブロックの内容を修正して処理実行して結果（メモリ値）を確認する作業を繰り返し行っていた。例えば、上記１００行から成るマクロブロックの例の場合、例えばまず上記作画エディタ装置上でユーザが、１行目〜１０行目までを残して残り（１１行〜１００行）は削除したマクロブロックを作成する。そして、作成した（修正した）マクロブロックをプログラマブル表示器にダウンロードする。その後、シミュレーションを行う。
【００２７】
この例の場合、上記修正したマクロブロックを実行すると、１行目〜１０行目のみが実行されることになり、その結果がメモリ値として反映されることになり、ユーザは表示されるメモリ値を参照することで、１行目〜１０行目に問題があるか否かを判断できる。
【００２８】
そして、１行目〜１０行目に問題がなければ、今度は１行目〜２０行目のみから成るマクロブロックを作成して、上記１行目〜１０行目のマクロブロックと同様の処理を行う。これを、１００行目まで繰り返し行うことになる。
【００２９】
上記の例では、仮に、１行目〜２０行目のマクロブロックのときに問題有りと判断したならば、１１行目〜２０行目の何れかの行に問題があることになる。よって、今度は、１行単位でマクロブロックを作成して検証していく。最初は、１行目〜１１行目までのマクロブロック、次は１行目〜１２行目のマクロブロックというように、順次、“修正したマクロブロック”を作成して検証していく。
【００３０】
上記マクロブロックの修正方法は、一例であり、この例に限るものではない。例えば、最初に１行目〜５０行目のマクロブロックを作成して検証すれば、１００行のマクロブロックの前半と後半のどちらに問題があるのか分かり、そこから更に対象を狭めていく等という方法も考えられる。あるいは、最初から１行単位で検証していく方法も考えられる。つまり、最初は１行目のみ、次は１〜２行目、次は１〜３行目というように、１行ずつ増やしていくようにしてもよい。
【００３１】
あるいは、上記のような規則的な方法ではなく、デバッグ作業者が、経験や勘等により、例えば怪しいと思う行を推測して検証する等という、試行錯誤を繰り返して行うことも考えられる。しかし、デバッグ作業者の経験や勘に頼る部分が大きく、また作業効率が悪いものであった。あるいは、マクロブロック中にパッチコマンドを挿入する方法等もあるいが、これも作業効率が悪いものであった。
【００３２】
何れにしても、従来では、問題があるマクロブロックに関して当該マクロブロック内の問題箇所を特定する為に、試行錯誤を繰り返し、逐一マクロブロックを修正してこれを表示器にダウンロードしてシミュレーションを掛けるという、非常に手間が掛かる作業が必要であった。この為、作業効率が悪いものであり、デバッグ作業に非常に時間が掛かっていた。
【００３３】
尚、この問題は、上記特許文献４，５のようなエミュレート装置も含むシミュレータ装置の場合でも、同様に生じるものである。
本発明の課題は、プログラマブル表示器用のシミュレータ装置において、任意のマクロブロック実行中に任意のタイミングで実行を一旦停止する機能を備えさせたことで、手間が掛からず短時間でマクロブロック内の問題箇所を特定することができ、以ってマクロブロックのデバッグ効率の向上を図ることができる表示／制御・シミュレートシステム、そのプログラマブル表示器、シミュレータ装置等を提供することである。
【課題を解決するための手段】
【００３４】
本発明の表示／制御・シミュレートシステムは、プログラマブル表示器とシミュレータ
装置とが接続されたシステムであって、前記プログラマブル表示器は、各種マクロブロックより成るマクロデータが付随された画面データを記憶する画面データ記憶手段と、該画面データを用いて任意のイベントに応じた処理を実行し、該処理に係わり前記マクロブロックのプログラムを実行する際、１行毎にその行番号を前記シミュレータ装置に通知し、実行許可が返信されてくると当該行のプログラムを実行する処理実行手段とを有し、前記シミュレータ装置は、前記画面データ記憶手段に記憶されているマクロデータと同じマクロデータを記憶する記憶手段と、該記憶手段に記憶されているマクロデータのマクロブロックのプログラムの任意の行をブレークポイントに設定させて、該設定内容をブレーク位置情報として記憶するブレークポイント設定支援手段と、前記処理実行手段から前記行番号の通知がある毎に、前記ブレーク位置情報を参照して、該行番号の行が前記ブレークポイントであるか否かを判定し、ブレークポイントではない場合には前記実行許可を返信し、ブレークポイントである場合には前記実行許可を返信せずに実行再開待ち状態とすると共にその後に所定の指示があった場合に前記実行許可を返信するマクロ実行制御手段とを有する。
【００３５】
また、上記構成の表示／制御・シミュレートシステムにおいて、前記シミュレータ装置は、前記実行再開待ち状態におけるシミュレート結果を表示するシミュレート結果表示手段を更に有する。
【００３６】
上記構成の表示／制御・シミュレートシステムによれば、マクロブロック実行中に、ユーザが任意に設定したブレークポイントの行で一時停止させることができる。これによって、マクロブロック実行の途中までのシミュレート結果を表示することができ、ユーザは、この表示を見ることで一時停止時点までの処理に問題があったか否かを判断できる。
【００３７】
従来では、マクロブロックを最後まで実行した時点でシミュレート結果を表示するので、途中までのシミュレート結果を表示したい場合には上述したように、マクロブロックを修正（任意の途中の行まで記述されたもの）し、修正する毎に修正したマクロブロックを表示器に転送・格納させて実行させるという、非常に手間・時間が掛かる作業が必要であった。本手法では特に修正・転送が必要なくなることから、手間が掛からず短時間でマクロブロック内の問題箇所を特定することができる。
【発明の効果】
【００３８】
本発明の表示／制御・シミュレートシステム、そのプログラマブル表示器、シミュレータ装置等によれば、任意のマクロブロック実行中に任意のタイミングで実行を一旦停止する機能を備えさせたことで、手間が掛からず短時間でマクロブロック内の問題箇所を特定することができ、以ってマクロブロックのデバッグ効率の向上を図ることができる。
【図面の簡単な説明】
【００３９】
【図１】本例の表示／制御システムの概略構成図である。
【図２】プログラマブル表示器のハードウェア構成図である。
【図３】図１に示す表示／制御システムのソフトウェア構成図である。
【図４】本例の表示／制御システムの処理フローチャート図である。
【図５】マクロデータの一例を示す図である。
【図６】マクロビューアによるブレークポイント設定画面の一例である。
【発明を実施するための形態】
【００４０】
以下、図面を参照して、本発明の実施の形態について説明する。
図１に、本例の表示／制御システム（プログラマブル表示器を含むＰＬＣシステム等）の概略構成図を示す。
【００４１】
図１において、表示／制御システムは、プログラマブル表示器１と、プログラマブル・ロジック・コントローラ本体（以下、ＰＬＣ本体と表記）等である外部機器４と、作画エディタ装置５を有する。
【００４２】
ＰＬＣ本体（外部機器４）には、従来と同様に、プログラマブル表示器１と、各種制御対象機器（モータ、温調器等）が接続されている。ＰＬＣ本体は、一般的なものであってよく、特に詳細には説明しないが、よく知られているように、汎用的なワークメモリや、各制御情報等をデバイス名とアドレス等で識別するメモリ（制御用メモリと呼ぶものとする）と、それらを制御する機能（マイコン）等によって実現されるのが一般的である。
【００４３】
また、本例では、シミュレータ装置の機能が作画エディタ装置５に搭載されている例を用いるものとする。
プログラマブル表示器１には、従来で説明したように、作画エディタ装置５上で任意に作成された画面データ（各種マクロブロックが付随されている）が、作画エディタ装置５からダウンロードされて、これを表示器１内の記憶部（メモリ等）に格納する。そして、表示器１内の基本プログラムが、この画面データを用いて各種処理を実行する。その際、例えば後述するマクロデータ２６（マクロブロック）を実行することで、上記制御用メモリの特定のアドレスのデータを読み出して表示したり、特定のアドレスにデータを書き込む。ＰＬＣ本体は、書き込まれたデータに基づいて、このアドレスに対応する制御対象機器（またはＰＬＣ本体自身）を制御する。
【００４４】
尚、上記外部機器４は、ＰＬＣ本体だけでなく制御対象機器も含まれてもよい。そして、プログラマブル表示器１は、マクロブロックを実行することで、この様な外部機器４の状態を表示したり、外部機器４を制御するものである。
【００４５】
また、作画エディタ装置５は、上記プログラマブル表示器１用の画面データを、ユーザに任意に作成させる作画エディタ機能を有する、例えばパソコン等である。また、本例では、作画エディタ装置５は、シミュレータ装置としての機能も有する。このシミュレータ装置としての機能は、上述した従来の機能も有するが、更に後述する新たな機能も備える。尚、この例に限らず、作画エディタ装置５とは別にシミュレータ装置を設けるようにしてもよい。
【００４６】
尚、従来のシミュレータ装置の機能は、既に説明してあり、ここでは特に詳細には説明しないが、簡単に説明するならば、例えば、作画エディタ装置５内のメモリを、擬似的な上記制御用メモリとし、プログラマブル表示器１に上記制御用メモリではなくこの擬似メモリにアクセスさせる。そして、この擬似メモリの内容を読み出して表示する等の処理を行うものである。
【００４７】
プログラマブル表示器１は、複数の通信インタフェース２を有し、各通信インタフェース２には各通信ライン３が接続されている。プログラマブル表示器１は、各通信ライン３を介して、外部機器４、作画エディタ装置５と通信可能となっている。例えば、プログラマブル表示器１は、通信インタフェース２と通信ライン３を介して外部機器４と接続することにより、例えば上記制御用メモリにアクセスしてデータのリード／ライトを行うことで、外部機器４の制御や外部機器４の状態を表示することが出来る。
【００４８】
この様な外部機器４の制御の為の操作（スイッチ操作等）をユーザに行わせたり状態表示を行う為の操作／表示用画面が、プログラマブル表示器１のディスプレイに表示される。この画面表示は、画面データに基づいて行われる。この操作／表示用画面上には各種アイテム画像（スイッチ、ランプ、グラフ、数値等）が表示される。ユーザは、所望のアイテム画像の表示位置をタッチする等して、このアイテム画像のアイテムに予め割り当てられている機能（マクロブロック）を実行させることで、外部機器４の制御等が行われる。
【００４９】
あるいは、グラフ、数値等に関しては、ユーザが操作しなくても、例えば定周期で実行されるマクロブロックによって、上記制御用メモリの所定アドレスのデータが読み出されることで、外部機器４の状態をグラフ表示／数値表示等することになる。
【００５０】
尚、画面データは、どのような表示を行うか、どのような制御を行うか、どのような接続機種かといったプログラマブル表示器の動作を規定するデータである。
例えば、作画エディタ装置５における画面データの作成においては、表示器１においてユーザによるオペレーションを受け付ける為のスイッチや、データの表示を行う数値表示などの各種部品のシンボル画を含む部品リストが、不図示の画面データ作成支援画面上に表示される。ユーザは、この中から所望の部品を選択して、支援画面上の任意位置に配置する。更に、ユーザは、配置した部品に対して、任意の制御対象機器のデバイス名とアドレス（上記制御用メモリにおけるアドレス）等を対応付ける。また、各部品には、予め所定のマクロブロックが割り当てられている。あるいは、ユーザが、各部品に、任意のマクロブロックを割り当てる。また、マクロブロックの内容は、ユーザが任意に編集可能であり、更に例えば従来の課題で説明したように１００行のマクロブロックを１０行とするような修正を行うこともできる。
【００５１】
この様にして作成された画面データを、表示器１にダウンロードする。そして、後述するように表示器１における基本プログラムである本体プログラム２１が、この画面データを用いた表示／制御処理を行う。これによって、例えば、グラフ、数値等の部品に関しては、自動的に、外部機器４の状態をグラフ表示／数値表示等することになる。また、スイッチ等の部品に関しては、ユーザが操作した部品に応じた制御処理が実行されることになる。何れにしても、上記各部品に対応付けられたアドレス等に基づいて、上記制御用メモリにおける所定アドレスにアクセスして、そのデータをリード／ライトすることになる。
【００５２】
この様な表示／制御処理は、上記マクロブロック実行によって実現されることになる。
そして、この様な表示器１の処理を、実機（ＰＬＣ本体）に実際にアクセスすることなく擬似的に実行させる為に、シミュレータ装置が設けられている。
【００５３】
本手法は、シミュレータ装置に係わるものであり、シミュレーション動作中は外部機器４と接続（アクセス）することはないので、外部機器４に関してはこれ以上説明しない。
本例のシミュレータ装置に係わるシミュレーション動作については、後に図３、図４等を参照して説明する。
【００５４】
図２は、プログラマブル表示器１のハードウェア構成図である。尚、ハードウェア構成自体は、従来と同様であってよい。また、作画エディタ装置５は、ハードウェア的には一般的な汎用パソコンを用いればよく、ここでは図示・説明は行わない。
【００５５】
図２において、プログラマブル表示器１は、制御ユニット１０と、上記通信インタフェース２と、タッチパネル１８及びディスプレイ１９を有する。
制御ユニット１０は、グラフィックコントローラ１１、ＲＯＭ１２、ＲＡＭ１３、通信コントローラ１４、ＣＰＵ１５、タッチパネルコントローラ１６等から成り、これらが内
部バス１７に接続している。
【００５６】
グラフィックコントローラ１１は、ディスプレイ１９に接続しており、ディスプレイ１９上に例えば上記操作／表示用画面を表示する。この操作／表示用画面の画面データは、上記のように作画エディタ装置５上で作成されたものが、通信ライン３を介してプログラマブル表示器１にダウンロードされたものであり、例えばＲＯＭ１２に格納される。
【００５７】
ＲＯＭ１２には、各種プログラム（本体プログラム２１等）や上記画面データ等が格納される。尚、ＲＯＭ１２は、例えばリード／ライト可能なタイプ（ＥＥＰＲＯＭやフラッシュメモリ等）である。ＲＡＭ１３には、任意の様々なデータ（例えば、外部機器４から収集した機器の状態データ等）が記憶される。ＲＡＭ１３は、基本的に、ワークメモリとして用いられる。
【００５８】
通信コントローラ１４は、上記通信インタフェース２に接続しており、上述した通信ライン３を介した外部機器４や作画エディタ装置５との通信を実現する。タッチパネルコントローラ１６は、タッチパネル１８に接続しており、タッチパネル１８上におけるユーザ操作（押下位置座標等）を検出する。
【００５９】
ＣＰＵ１５は、制御ユニット１０全体を制御する中央処理装置である。ＣＰＵ１５は、例えば、ＲＯＭ１２に格納されている上記各種プログラムを読出し・実行することにより、プログラマブル表示器１の各種処理機能を実現する。この各種処理には、例えば後述する図４に示す処理等も含まれる。
【００６０】
尚、作画エディタ装置５に関しては、上記汎用パソコンは、よく知られているように例えば、ＣＰＵ、ハードディスク等や、メモリ、ユーザ操作部（キーボード、マウス等）、ディスプレイ、通信インタフェース等から成る。ハードディスク等には、所定のアプリケーションプログラム等が格納されている。ＣＰＵは、このプログラムを読出し・実行することにより、上記従来の作画エディタとしての機能や、シミュレータ装置としての機能を実現する。このシミュレータ装置としての機能には、上述した従来の機能に加えて、後述する各種機能（図４で説明する機能等）が含まれる。
【００６１】
図３は、上記図１に示す表示／制御システムのソフトウェア構成図である。
まず、プログラマブル表示器１における上記ＲＯＭ１２には、図３に示す各種プログラムや各種データが格納される。すなわち、図示の本体プログラム２１、通信プログラム２２、シミュレータ通信プログラム２３等の各種プログラムや、シミュレータ動作判定情報２４、画面データ２５、マクロデータ２６等の各種データが、ＲＯＭ１２に記憶される。
【００６２】
マクロデータ２６は、上記従来や課題で説明した各種マクロデータ（各種マクロブロック）である。よって、特に詳細には説明しないが、その一例は図５に示し後に説明する。尚、既に説明したように、マクロデータ２６は、画面データ２５に付随するものである。
【００６３】
画面データ２５は、既に説明したようにプログラマブル表示器１の操作／表示用画面の画面データである。よって、特に詳細には説明しないが、例えば各種アイテム（スイッチ、メータ、ランプ、ボタン等）がスクリーン上の任意の位置に配置されたものである。また、任意のアイテムに、任意のマクロブロックが対応付けられている。例えば、スイッチアイテムを例にすると、任意のスイッチがユーザによってＯＮ／ＯＦＦ操作された場合に、このスイッチに対応するマクロブロックが実行されることになる。
【００６４】
本体プログラム２１は、プログラマブル表示器１全体動作を実現する基本的なプログラムであり、例えば表示／入力制御といった基本的な機能に関するプログラムである。例え
ば画面データ２５を用いてディスプレイ１９上に表示／制御用画面を表示する。そして、この表示／制御用画面上でのユーザによるアイテム操作に応じてマクロブロックを実行したり、あるいは定周期でマクロブロックを実行する。つまり、任意のイベントが発生する毎に、このイベントに応じたマクロブロックの処理を実行することになる。
【００６５】
尚、図には、本体プログラム２１が実現する各種機能のうち、通信選択部２１ａとマクロ実行部２１ｂとを示している。上記マクロブロックの実行は、マクロ実行部２１ｂが行う。また、通信相手の選択は、通信選択部２１ａが行う。選択された通信相手との通信処理は、通信プログラム２２またはシミュレータ通信プログラム２３を実行することで行われる。
【００６６】
ここで、上記通信プログラム２２及びシミュレータ通信プログラム２３は、接続機種毎のそれぞれ固有のプロトコルに対応した通信制御に関するプログラムである。つまり、通信プログラム２２は、外部機器４に対応した通信制御に関するプログラムである。一方、シミュレータ通信プログラム２３は、作画エディタ装置５に対応した通信制御に関するプログラムである。
【００６７】
また、例えばプログラマブル表示器１においては、ユーザが任意にモード変更できる。つまり、表示器１においては、外部機器４に接続して上述した処理を行う通常モードと、作画エディタ装置５（シミュレータ装置）に接続して擬似的な動作を行うシミュレーションモードとがあり、ユーザは、これらモードを選択できる。
【００６８】
そして、通常モードにおいては、本体プログラム２１は、通信プログラム２２を用いて、外部機器４との通信を行う。一方、シミュレーションモードにおいては、シミュレータ通信プログラム２３を用いて通信を行う。尚、上記ユーザによるモード選択結果は、図示のシミュレータ動作判定情報２４として記憶され、本体プログラム２１はシミュレータ動作判定情報２４を参照することで、現在のモードを認識できる。
【００６９】
尚、上記本体プログラム２１や、各通信プログラム２２、２３は、予め（出荷時等に）プログラマブル表示器１に記憶されていてもよいし、任意のときに作画エディタ装置５等からプログラマブル表示器１にダウンロードされて記憶するものであってもよい。尚、これらプログラム２１，２２，２３や、画面データ２５（マクロデータ２６含む）は、ＲＯＭ１２に記憶される。
【００７０】
また、図３に示すように、作画エディタ装置（パソコン；ＰＣ）５は、プログラマブル表示器用作画ソフト３０を有する。プログラマブル表示器用作画ソフト３０は、作画エディタ装置５内の不図示の記憶装置（ハードディスク等）に、予め記憶されている。作画エディタ装置５内の不図示のＣＰＵ等は、このアプリケーションプログラムを読出し・実行することにより、例えば図示のシミュレータ３１、マクロビューア３２、通信処理部３６の各種機能部の処理を実現する。また、図示していないが、作画ソフト３０によって、上述した画面データ作成支援機能等も実現される。これによって、上述した画面データ作成支援画面を表示して、ユーザに任意の画面データ（マクロデータ含む）を作成させる。
【００７１】
本例では、作画エディタ装置５は、作画エディタ機能だけでなく、シミュレータ装置の機能も備える。そして、本例のシミュレータ装置を構成する機能として、図示のシミュレータ３１、マクロビューア３２、通信処理部３６を示している。
【００７２】
上記画面データ作成支援機能によって任意に作成された画面データ（マクロデータ含む）は、上記ハードディスク等に記憶され、これが図示の画面データ３３及びマクロデータ３４である。そして、ユーザによるダウンロード指示に応じて、これら画面データ３３及
びマクロデータ３４が、プログラマブル表示器１にダウンロードされて記憶される。これが、図示の画面データ２５及びマクロデータ２６である。
【００７３】
つまり、表示器１側が保持する画面データ２５及びマクロデータ２６と同じものを、作画エディタ装置５側でも保持している。そして、後述するように、本手法では特にマクロデータ３４（各種マクロブロック）を用いて、ユーザに任意のブレークポイントの設定を行わせる。
【００７４】
シミュレータ３１は、上述したシミュレータ装置としての機能を実現する機能部であり、基本的には上述した既存のシミュレーション処理を実行するものであるが、本手法では更に後述するブレーク位置情報３５を用いた処理（図４に示す処理等）を実行する。また、プログラマブル表示器１においても、このシミュレータ３１の処理と連携して、後述する図４の処理等を実行する。
【００７５】
また、マクロビューア３２は、マクロデータ３４等に基づいて、ユーザに後述するブレークポイントの設定を行わせる。そして、この設定に応じてブレーク位置情報３５を生成する。詳しくは後述する。尚、ブレーク位置情報３５は、作画エディタ装置５内のハードディスク等に記憶される。
【００７６】
上記マクロビューア３２と、シミュレータ３１（及び、これに連携するプログラマブル表示器１の処理）が、本手法の主な特徴部分である。
尚、本例のシミュレータ装置は、シミュレータ３１とマクロビューア３２とから成るものと考えても良い。
【００７７】
図４は、本例の表示／制御システムの処理フローチャート図である。つまり、上記プログラマブル表示器１及び作画エディタ装置５の処理フローチャート図である。
まず、プログラマブル表示器１側においては、本体プログラム２１が、画面データ２５を用いて、上述した状態表示や制御等を行っている。そして、任意のマクロブロックを実行する毎に、マクロ実行部２１ｂがこのマクロブロックの処理を実行する。
【００７８】
マクロ実行部２１ｂは、まず、シミュレータ動作判定情報２４を参照して、現在、通常の動作（上記通常モード）であるか、シミュレータ装置と連動して動作しているか（上記シミュレーションモードであるか）を判定する（ステップＳ１１）。
【００７９】
通常の動作（シミュレータ装置と連動していない）の場合（ステップＳ１１，ＮＯ）、既存の一般的な処理を行うことになる。すなわち、任意に設定したタイミングに従い、実行対象のマクロブロック（複数行から成る）を、当該マクロブロックの先頭行から順番に１行ずつ実行していき（ステップＳ１１，ＮＯでステップＳ１４実行後ステップＳ１５，ＮＯによるループ処理）、最終行まで処理を実行したら（ステップＳ１５，ＹＥＳ）、当該マクロブロックの処理を終了する。そして、例えば、次のマクロブロックの処理に遷移する。
【００８０】
尚、図では、ステップＳ１５の判定がＮＯの場合（未だ、最終行まで実行していない場合）、ステップＳ１１に戻るが、この例に限らず、ステップＳ１４に移行するようにしてもよい。
【００８１】
一方、上記シミュレーションモードの場合すなわちシミュレータ装置と連動して動作している場合（ステップＳ１１、ＹＥＳ）、任意に設定したタイミングに従い、基本的には上記通常の動作と同様に当該マクロブロックの先頭行から順番に１行ずつ実行していくことになるが、１行毎に、その行の処理（マクロコマンド等）を実行する前に、作画エディ
タ装置５のシミュレータ３１に対して、今から実行するマクロブロックのブロック番号と行番号を通知する（ステップＳ１２）。
【００８２】
尚、ブロック番号は、各マクロブロックを識別する為に各マクロブロックに予め割り当てた識別番号である。行番号は、マクロブロック内の先頭から何番目の行であるかを示すものである。
【００８３】
シミュレータ３１は、通知されたブロック番号に対応するマクロブロックのブレーク位置情報３５を取得する。そして、このブレーク位置情報３５と通知された行番号とに基づいて、通知された行番号の行が、ブレーク対象であるか否かを判定する（ステップＳ２１）。
【００８４】
ここで、上記ブレーク位置情報３５について説明する。
上記の通り、ブレーク位置情報３５は、マクロビューア３２によってユーザが任意にブレークポイントの設定を行うことで作成される。
【００８５】
上記の通り作画エディタ装置５側では、プログラマブル表示器１側で保持・実行する画面データ２５及びマクロデータ２６と同じデータを保持している。すなわち、画面データ３３及びマクロデータ３４を保持している。
【００８６】
これより、本例のシミュレータ装置の１機能（アプリケーション）であるマクロビューア３２は、例えばシミュレーション開始前の任意のときにユーザが任意に指定したマクロブロックの内容を、作画エディタ装置５のディスプレイに表示する。あるいは、上記ステップＳ１２による通知があったときに、通知されたブロック番号のマクロブロックの内容を表示する。何れにしても、例えば、図６に示すようなブレークポイント設定画面４０内に、マクロブロックの内容（全ての行）が表示される。
【００８７】
ここで、図５に、マクロデータ３４（２６）の一例を示す。図示の通り、マクロデータ３４（２６）は、複数のマクロブロック（１〜ｎ）より成るものである。そして、各マクロブロックは、複数行のプログラム（例えばマクロコマンドを用いたプログラム文）より成る。図示のマクロブロック１の例の場合、行番号が‘０’〜‘ｍ’までの“ｍ＋１”行のプログラムとなっている。
【００８８】
マクロビューア３２は、例えば図６に示すブレークポイント設定画面４０を、ディスプレイ上に表示する。このブレークポイント設定画面４０には、任意のマクロブロックの内容（プログラムリスト）が表示される。図示の例では、上記図５に示すマクロブロック１の内容が表示されている。
【００８９】
ユーザは、このブレークポイント設定画面４０上において、表示されるマクロブロックのプログラムリストにおける任意の“行”を指定することができる。例えば、マウス操作等により所望の“行”の表示位置をクリックすることで、指定することができる。
【００９０】
また、ブレークポイント設定画面４０上には、図示の「ブレークポイント設定」ボタン４１、「ブレークポイント解除」ボタン４２、「実行」ボタン４３の３種類の操作ボタンが表示される。
【００９１】
ユーザは、所望の“行”をブレークポイントとして設定したい場合には、まず上記のように所望の“行”を指定した後、「ブレークポイント設定」ボタン４１を操作する。この設定結果は、マクロビューア３２によって、ブレーク位置情報３５に反映される。ブレーク位置情報３５は、例えば各マクロブロックのブロック番号に対応付けて、そのマクロブ
ロックに関して上記ブレークポイントとして設定された“行”の行番号が記憶されるものである。
【００９２】
ここで、ブレークポイントとは、マクロブロックの実行を一旦停止する位置（行）を示すものである。
また、ブレークポイント設定画面４０上においては、上記ブレークポイントとして設定された“行”がユーザに分かるような表示が行われる。図示の例では設定された“行”の左側に黒丸が表示される。図示の例では、３行目（行番号＝２）の行が、ブレークポイントとして設定されていることが分かる。尚、ブレークポイントとして設定する行の数は、図示の例では１つだけだが、複数の行をブレークポイントとして設定してもよい。極端な例では全ての行をブレークポイントとして設定することも可能である。
【００９３】
また、ユーザは、ブレークポイントとして設定された“行”のなかで任意の行の設定を解除したい（取り消したい）場合には、設定済みの“行”のなかで所望の“行”を指定した後、「ブレークポイント解除」ボタン４２を操作する。これによって、この“行”の上記黒丸表示が消えると共に、ブレーク位置情報３５においてこの“行”の行番号が削除される。
【００９４】
上記ブレークポイント設定画面４０は、ユーザが任意のときにマクロビューア３２を起動して表示させることもできるが、シミュレータ３１が動作しているときには（図４の処理を実行中）自動的に表示される。ユーザは、予めブレークポイント設定画面４０上で任意のマクロブロックに関して上記ブレークポイントを設定してもよいし、シミュレーション動作中にブレークポイントを設定してもよい。尚、シミュレーション動作中は、基本的に、上記ステップＳ１２で通知されたブロック番号のマクロブロックの内容が、ブレークポイント設定画面４０上に表示されることになる。
【００９５】
尚、図６には示していないが、任意のマクロブロック実行中にその内容がブレークポイント設定画面４０上に表示されている場合には、更に、どの行まで実行されたのかがユーザが分かるような何らかの表示を行うようにしてもよい。
【００９６】
ここで、図４のフローチャートの説明に戻る。
上記の通り、ステップＳ２１の説明に関して、図５、図６を参照して、ブレークポイントの設定と、この設定に応じたブレーク位置情報３５について説明した。この説明により、ステップＳ２１の処理は、ブレーク位置情報３５において上記通知されたブロック番号のマクロブロックに関するブレークポイントの情報を参照することで行われる。つまり、上記の通り、ブレークポイントとして設定された１または複数の“行”の行番号が登録されているので、その中に上記通知された行番号があるか否かを判定する。
【００９７】
例えば、図６に示す例では、ブレーク位置情報３５においてマクロブロック１に関しては、行番号＝‘２’が登録されているので、もし、表示器１側で実行中のマクロブロックがマクロブロック１であったならば、ステップＳ１２の処理により通知された行番号が‘２’のときに、ステップＳ２１の判定がＹＥＳとなることになる。
【００９８】
最初は、先頭行の行番号（‘０’）が通知されるので、ステップＳ２１の判定はＮＯとなり、表示器１のマクロ実行部２１ｂに対して所定の返信を行う（ステップＳ２３）。ここでは、実行許可を返信するものとする。
【００９９】
表示器１のマクロ実行部２１ｂは、上記ステップＳ１２の通知を行った後は、実行許可待ち状態（待機状態）となっている（ステップＳ１３）。そして、上記ステップＳ２３により実行許可が返信されてきたら（ステップＳ１３，ＹＥＳ）、ステップＳ１２で通知し
た“行”の処理を実行する（ステップＳ１４）。最初は、先頭行の処理を実行することになる。
【０１００】
そして、ステップＳ１４の処理を実行完了したら、当該実行した“行”が最終行であるか否かを判定する（ステップＳ１５）。最終行であれば（ステップＳ１５，ＹＥＳ）、本処理を終了する。最終行でなければ（ステップＳ１５，ＮＯ）、ステップＳ１１の処理に戻る。尚、図ではステップＳ１１に戻るが、ステップＳ１２に戻るようにしてもよい。
【０１０１】
そして、ステップＳ１２において、次の実行すべき“行”の行番号等を、シミュレータ３１に通知する。今度は、行番号＝‘１’が通知されるので、上記の例ではステップＳ２１の判定はＮＯとなり、上記行番号＝‘０’の場合と同様の処理が実行されることになる。
【０１０２】
続いて、行番号＝‘２’が通知されると、上記の例では今度はステップＳ２１の判定はＹＥＳとなり、マクロ実行再開待ち状態となる（ステップＳ２２）。そして、ユーザが上記ブレークポイント設定画面４０上で「実行」ボタン４３を操作すると、ステップＳ２３の処理に移行する。この場合も、ステップＳ２３で実行許可を返信することになる。
【０１０３】
ここで、上記ステップＳ２２のマクロ実行再開待ち状態において、シミュレータ装置は、上述した従来の既存機能により（よって、特に図示や説明はしない）、上記擬似メモリの内容をディスプレイ上に表示する。ユーザは、シミュレート装置中の擬似メモリの内容を一覧表示で確認することにより、マクロが期待した通りの動作を行っているかを判断することが出来る。つまり、ユーザは、上記ブレークポイントまでの処理に異常があるか否かを判断できる。
【０１０４】
上記の例において、ユーザが異常ありと判定したならば、それまでに実行した行の中に（本例では行番号＝‘０’〜‘１’の２行の中に）、問題がある行が存在することになる。これより、ユーザは、上記マクロビューア３２の機能により、今度は例えば行番号＝‘０’〜‘１’の２行全てを、ブレークポイントとして設定する。そして、ユーザは、表示器１側で所定の操作を行う等して、上記マクロブロックを、再度、先頭行から順次実行させる。これによって、問題がある行を特定することができる。
【０１０５】
一方、ユーザは、上記確認作業によって問題が無いと判断した場合には、「実行」ボタン４３を操作する。これによって、ステップＳ２２のマクロ実行再開待ち状態が解除され、ステップＳ２３によって実行許可を返信することで、表示器１側では上記行番号＝‘２’の行の処理を実行することになる。そして、４行目以降についても、最終行の処理を実行するまで、各行毎に上述した処理を実行していくことになる。図６には示していないが、４行目以降にもブレークポイント行があったならば、一時的に実行停止して、ユーザが上記一覧表示に基づいて異常判断を行うことになる。
【０１０６】
また、図６には示していないが、上記ブレークポイント設定画面４０上に更に不図示の「ステップ実行」ボタンを設けるようにしてもよい。この場合、ユーザは、上記ステップＳ２２のマクロ実行再開待ち状態において、再開すべきと判断した場合、上記「実行」ボタン４３と「ステップ実行」ボタンの何れか一方を操作する。
【０１０７】
そして、「ステップ実行」ボタンが操作された場合には、シミュレータ装置は、上記通知された行の次の行に対して、ブレークポイントの設定を行ったうえで、上記ステップＳ２３の返信処理を行う。これによって、ユーザによる設定内容に関係なく、必ず次の行においてもステップＳ２１の判定がＹＥＳとなり、マクロ実行が一時停止することになる。
【０１０８】
この様に、「ステップ実行」ボタンを設けたことにより、ユーザは、デバッグ中に問題がありそうな部分を見つけたならば（経験や勘に基づき判断する）、「ステップ実行」ボタンを操作することで、この部分を集中的に検証することが可能となる。
【０１０９】
以上説明したように、本手法によれば、ユーザは予めまたはデバッグ作業中に、任意の１または複数の行をブレークポイントとして設定する作業を行うだけで、マクロブロック内における問題となる行を見つけて修正する作業（デバッグ作業）を実現することができ、効率的なデバッグ作業を行えるようになる。これによって、デバッグ作業に掛かる時間を、従来よりも短縮することができる。また、ユーザのデバッグ作業負担を軽減することができる。
【０１１０】
この様な本手法の時間短縮効果について、以下、具体的な一例を用いて説明する。
ここでは、例えば、１００行から成るマクロブロックを例にして、１００行目に何らかの問題があるものとする。
【０１１１】
この例の場合、従来のシステムでは、例えば以下に述べる手順によりデバッグ作業を行う。
マクロブロックの修正→画面転送→確認を、１〜１００行目まで繰り返し行う。
【０１１２】
すなわち、既に従来の課題で一例を述べた通り、作画エディタ装置５において、ユーザが、マクロブロックの内容を修正する。修正方法は、既に述べた通り様々であってよいが、ここでは分かり易いように、先頭行から１行ずつ検証していく方法を例にする。よって、ここでは、最初はマクロブロックの内容が先頭の１行目のみと成るように修正し、次は１〜２行目のみとなるように修正し、その次は１〜３行目のみと成るように修正する。これを問題の行が見つかるまで、繰り返し行うが、上記の通り本例では１００行目に問題があるので、結局、１〜１００行から成るマクロブロックを作成して検証するまで、終わらないことになる。
【０１１３】
尚、実際には、まず、複数のマクロブロックのなかで問題があるマクロブロックを抽出し、その後に問題があるマクロブロック毎に問題がある行を特定する作業を行うことになる場合が多いと考えられる。つまり、元のマクロブロック（１００行から成るもの）について動作確認したら、異常があった為に、上記問題行を特定する為のデバッグ作業を行うことになる場合が多いと考えられる。よって、上記の例では、１〜９９行から成るマクロブロックを作成して検証して異常が無いことを確認できた時点で、１００行目に問題があることは推定可能である。しかし、これは推定であるので、ここでは、１〜１００行から成るマクロブロックを作成して検証するまでは、問題の行を特定できないものとして説明する。
【０１１４】
そして、既に従来の課題で述べた通り、上記マクロブロックの修正を行う毎に、修正したマクロブロックをプログラマブル表示器１にダウンロード（転送）して、プログラマブル表示器１側で保持するマクロブロックを更新させる。そして、プログラマブル表示器１において、このマクロブロックを実行させる。
【０１１５】
そして、このマクロブロックが最後まで実行された時点で、ユーザは、擬似メモリの内容を一覧表示させる等して実行結果を参照することができるので、問題があるか否かを確認する。問題がなければ、マクロブロックを修正して、再び上記転送、実行、確認を行うことになる。
【０１１６】
ここで、上記マクロブロック修正、画面転送、確認に掛かる時間を、それぞれ以下の通りと仮定する。
（ａ）画面作画（マクロブロック修正）：20秒
（ｂ）画面転送：20秒
（ｃ）動作確認：20秒
よって、この例では、デバッグ作業に掛かる時間（ここでは問題の行を特定するまでに掛かる時間）は、以下の通りとなる。
【０１１７】
（（ａ）＋（ｂ）＋（ｃ））×100（行） ＝ 6000秒（約100分）
一方、本例のシステムによれば、上記（ａ）画面作画と（ｂ）画面転送が必要なくなり、（ｃ）動作確認に掛かる時間と、ブレークポイント設定に掛かる時間だけで済む。上記の例の場合、全ての行をブレークポイントとする設定を行うことになる。あるいは、先頭行のみブレークポイント設定しておき、デバッグ作業中は必ず上記「ステップ実行」ボタンを操作するようにしてもよい。何れの方法でも、先頭行から１行ずつ動作確認を行うことになる。また、特に上記の例の場合、ブレークポイントとすべき行をどこにすべきか考える必要がなく、先頭行または全行指定で設定が完了するので、設定作業に掛かる時間は極めて短くて済む（例えば、数十秒程度）。
【０１１８】
（ｃ）動作確認に掛かる時間は、従来と同じである。
すなわち、マクロのステップ実行による１行毎の動作確認に掛かる時間は２０秒であるので、
20秒×100行 ＝ 2000秒（約33分）
となる。これに、上記設定作業に掛かる時間を加えたとしても、従来（１００分）に比べて、非常に短い時間で済む（ほぼ１／３程度で済む）。
【０１１９】
このように、画面作画及び画面転送が不要になるため、作業効率が非常に向上し、デバッグ作業に掛かる時間が大きく短縮できる（１／３程度）。
画面データのサイズが大きい場合や、マクロブロック内の行数が多いほど／マクロブロックの数が多いほど、作業効率の向上（時間短縮）の効果は更に大きくなるものと考えられる。
【０１２０】
また、以上説明した一例は、プログラマブル表示器に関しては実機を用いるが、ＰＬＣ等に関しては実機を用いずにパソコン上でシミュレータ装置によって擬似的な動作を行う場合を前提にしたものであるが、この例に限るものではない。
【０１２１】
上述したように、従来技術において、パソコン上等において、プログラマブル表示器の機能・動作を擬似的に実現することも行われている。つまり、プログラマブル表示器の動作をエミュレートするエミュレート装置が、従来より存在している。そして、既に述べた通り、従来より、パソコン上等において上記シミュレータ装置とエミュレート装置の両方を動作させることで、プログラマブル表示器の画面データのデバッグを行うことが知られている。
【０１２２】
本手法は、この様な構成に対しても適用可能である。この場合、図３には示さないが、作画エディタ装置５のプログラマブル表示器用作画ソフト３０に、更に上記エミュレート装置の機能を備えさせるようにする。そして、このエミュレート装置と上記シミュレータ装置とで連携処理を行って、上述したデバッグ作業を実現させる。尚、この場合、エミュレート装置には、従来の処理機能に加えて更に、例えば図４に示すマクロ実行部２１ｂの処理と略同様の処理を行う機能も備えるようにする。勿論、この場合には、シミュレータ装置とエミュレート装置は、同じパソコン上（作画エディタ装置５）に構築されているので、通信プログラムによる通信ライン２を介した通信処理等は必要ない。
【０１２３】
また、この場合、上記モードの設定や設定モードに応じたステップＳ１１の処理は、行
ってもよいし、行わなくてもよい。モード設定を行う場合は、作画エディタ装置５上でユーザが設定する。例えば、シミュレータ装置と連携動作させずにエミュレート装置単独で動作させたい場合には、上記通常モードに設定することで、ステップＳ１１の判定がＮＯとなる処理を実行させることになる。
【０１２４】
この様に、本手法は、プログラマブル表示器が実機のケース、その動作を模擬するエミュレート装置のケースの何れのケースに対しても、適用可能であり、上述した効果を奏するものとなる。
【０１２５】
尚、上記表示／制御システムにおいて、プログラマブル表示器１の通信処理部は、作画エディタで設定された外部機器によりそれぞれ固有の通信プログラムに差し替えて動作するような汎用的な構成にしておくことが実用的である。この場合、本体プログラム２１と通信プログラム２２間のインタフェースは、外部機器固有の通信プロトコルに依存しない汎用的な共通インタフェースにしておくことが理想的である。
【０１２６】
最後に、上記表示／制御システムにおいて、既存技術に関することについて、以下に捕捉説明しておく。
＊従来のシミュレータ機能の概要
表示器１の動作を確認する場合、表示器１と実際の外部機器（実機；外部機器４）を接続して動作確認する方法と、例えば特許文献３のように、表示器とシミュレータ装置（パーソナルコンピュータ等によって構成される、外部機器（実機）をシミュレートするシミュレータ装置）を接続して、動作確認する方法が提案されている。また、パーソナルコンピュータ等によって構成される、表示器をエミュレートするエミュレート装置と、同パーソナルコンピュータ上に構成されるシミュレータソフトとの連動により、動作確認する方法が考えられる。
【０１２７】
上記表示／制御システムにおいて、表示器１−外部機器４間の連携は、通信ライン３を介して行うコマンドによって構築され、外部機器４の制御はコマンドによるデバイスメモリの操作によって行われる。これは通信ラインを介して行うコマンドで連携できれば外部機器は実機（外部機器４）である必要がないとも考えられる。
【０１２８】
プログラマブル表示器１のシミュレータ装置は、上記の様な考え方に基づき、シミュレートするデバイスメモリを擬似的に用意し、シミュレータ専用のコマンドで表示器１との連携を行う。この様にすることで、表示器１が擬似的に外部機器を接続した状態にして、表示器１の動作を確認することができるようにしたものである。尚、表示器１の動作とは、主に本体プログラム２１が画面データ２５を用いて実行する処理のことであり、シミュレータ装置を用いることで画面データの動作確認を行うものである。そして、特に画面データ２５に付随する各マクロブロックの動作確認を行うものである。
【０１２９】
例えば従来の技術では、図３のように表示器１とシミュレータ装置によって画面データの動作を確認する場合、表示器１の通信プログラム２２をシミュレータ通信用の通信プログラム２３に切換え、実際に表示器１と通信する外部機器をシミュレータ装置に変更することで、あたかも実機（外部機器４）に接続しているように表示器１の動作を確認できる。エミュレータ装置と連動する場合にも同様の方法により、シミュレータソフトは表示器１と通信する場合とエミュレータと連動する場合とで、通信インタフェースの経路を差し替えることで、容易に双方と通信可能な構造になっている。
【０１３０】
また、既に述べた通り、従来より、シミュレータ装置上に構築された擬似メモリの内容を表示／編集するＧＵＩ手段が存在している。これにより、ユーザは、擬似メモリの内容を参照することで上記表示器の動作に異常があるか否か判断できたり、あるいは擬似メモ
リの内容を容易に変更することができる。
【０１３１】
シミュレータ装置は、シミュレート対象の画面データファイルと実際に表示器が表示している画面により、どのような擬似メモリを表示するのかを解析し、その画面で使用するメモリを一覧で表示する等の機能も有する。
【０１３２】
また、以下に既存のマクロデータ（各種マクロブロック）の具体的を列挙しておく。
尚、マクロデータは、図５で示す通り画面データの一部であり、プログラマブル表示器内とシミュレータソフト内に同じ内容のデータを持つ。各種マクロブロックを実行することによって、演算処理や、プログラマブル表示器の動作や外部機器のメモリ操作等を、任意のタイミングで行うことができる。この任意のタイミングについても、具体例を以下に示している。尚、以下の具体例では、各種マクロブロック（オープンマクロ、ＯＮマクロ等）を、例えば[スクリーン]、[スイッチ]等のようにグループ分けしたうえで示している。また、具体的なマクロブロック名称を示さず、概略的な説明のみとしている場合もある。
【０１３３】
[スクリーン]
- オープンマクロ：スクリーンを表示したとき1回実行
- クローズマクロ：スクリーンを切り替えたとき1回実行
- サイクルマクロ：スクリーンを表示中繰り返し実行
[マルチオーバーラップ]
- オープンマクロ：マルチオーバーラップを表示したとき1回実行
- クローズマクロ：マルチオーバーラップを消したとき1回実行
[スイッチ]
- ＯＮマクロ：スイッチを押したとき1回実行
- ＯＦＦマクロ：スイッチから指が離れたとき1回実行
[ファンクションスイッチ]
- ＯＮマクロ：ファンクションスイッチを押したとき1回実行
- ＯＦＦマクロ：ファンクションスイッチから指が離れたとき1回実行
[初期マクロ]
コントローラと通信を開始する前にマクロブロックのマクロを1回実行。
【０１３４】
[グローバルマクロ]
読込エリアのマクロ実行ビットが0 →1（エッジ）でマクロブロックのマクロを1回実行。
【０１３５】
[イベントタイママクロ]
表示している画面に関係なく、常時設定時間ごとにマクロブロックのマクロを実行。
[インターバルタイマ]
インターバルタイマを設定したスクリーンを表示中、設定内容に従ってタイマが起動。
【０１３６】
タイムアップする度に、マクロブロックのマクロを実行。
[マクロモード]
マクロモードが設定されている画面を表示中、設定メモリの状態によってマクロを実行。
【０１３７】
- ONマクロ：メモリのビットが0 → 1（エッジ）で実行
- OFFマクロ：メモリのビットが1 → 0（エッジ）で実行
【符号の説明】
【０１３８】
１  プログラマブル表示器
２  通信インタフェース
３  通信ライン
４  外部機器
５  作画エディタ装置
１０  制御ユニット
１１  グラフィックコントローラ
１２  ＲＯＭ
１３  ＲＡＭ
１４  通信コントローラ
１５  ＣＰＵ
１６  タッチパネルコントローラ
１７  内部バス
１８  タッチパネル
１９  ディスプレイ
２１  本体プログラム
２１ａ  通信選択部
２１ｂ  マクロ実行部
２２  通信プログラム
２３  シミュレータ通信プログラム
２４  シミュレータ動作判定情報
２５  画面データ
２６  マクロデータ
３０  プログラマブル表示器用作画ソフト
３１  シミュレータ
３２  マクロビューア
３３  画面データ
３４  マクロデータ
３５  ブレーク位置情報
４０  ブレークポイント設定画面
４１  「ブレークポイント設定」ボタン
４２  「ブレークポイント解除」ボタン
４３  「実行」ボタン
【図１】
0005384306.tif 000002
【図２】
0005384306.tif 000003
【図３】
0005384306.tif 000004
【図４】
0005384306.tif 000005
【図５】
0005384306.tif 000006
【図６】
0005384306.tif 000007