(57)【要約】【課題】  ソフトウェアに関する知識が無いユーザであっても、容易にマイコン用のプログラムを生成できるプログラム生成装置、プログラム生成方法及びプログラムを提供すること。【解決手段】  本発明にかかるプログラム生成装置１００は、入力部と処理部と出力部とを有するマイコン２０１のプログラムを生成するプログラム生成装置であって、入力部と処理部と出力部のそれぞれの動作に対応した複数のアイコンを表示するＧＵＩ処理部１１１と、ユーザによるアイコンの操作に基づいて、プログラムを生成するプログラム生成部１１６とを有するものである。【選択図】  図３
2006344076.tif 000002
【特許請求の範囲】
【請求項１】
入力信号が入力される入力部と、前記入力信号に対し所定の処理を行う処理部と、前記処理の結果を出力する出力部とを有するマイクロコンピュータ用のプログラムを生成するプログラム生成装置であって、
前記入力部と前記処理部と前記出力部のそれぞれの動作に対応した複数のＧＵＩ部品を表示するＧＵＩ表示部と、
ユーザによる前記複数のＧＵＩ部品の操作に基づいて、前記プログラムを生成するプログラム生成部とを有する、
プログラム生成装置。
【請求項２】
前記ＧＵＩ表示部は、前記複数のＧＵＩ部品とともに、ユーザが前記複数のＧＵＩ部品を配置する編集領域を表示し、
前記プログラム生成部は、ユーザによって前記編集領域に配置された前記複数のＧＵＩ部品の位置に基づいて、前記プログラムを生成するプログラム生成部とを有する、
請求項１に記載のプログラム生成装置。
【請求項３】
複数の命令によって所定の処理が記述された命令ブロックを前記複数のＧＵＩ部品ごとに格納する命令ブロック格納部をさらに有し、
前記プログラム生成部は、前記編集領域に配置された前記複数のＧＵＩ部品ごとに対応する前記命令ブロックを用いて前記プログラムを生成する、
請求項２に記載のプログラム生成装置。
【請求項４】
前記プログラム生成部は、
ユーザによって前記編集領域に配置された前記複数のＧＵＩ部品の位置情報を生成する位置情報生成部と、
前記生成された位置情報を前記プログラムに変換するコンパイラとを有する、
請求項２又は３に記載のプログラム生成装置。
【請求項５】
前記コンパイラは、
前記生成された位置情報を、前記複数のＧＵＩ部品間の接続関係を示す接続情報に変換し、
前記接続情報によって決定する前記ＧＵＩ部品の入力情報とともに、前記ＧＵＩ部品を前記プログラムに変換する、
請求項４に記載のプログラム生成装置。
【請求項６】
前記接続情報は、前記複数のＧＵＩ部品ごとに入力側の接続関係を示す情報であり、
前記コンパイラは、前記接続情報によって前記ＧＵＩ部品の入力側に接続された前記ＧＵＩ部品を繰り返し参照し、前記ＧＵＩ部品の入力情報を決定する、
請求項５に記載のプログラム生成装置。
【請求項７】
前記生成されたプログラムを、前記マイクロコンピュータで実行可能な機械語プログラムにアセンブルするアセンブラをさらに備える、
請求項１乃至６のいずれか一つに記載のプログラム生成装置。
【請求項８】
前記アセンブルされた機械語プログラムを、前記マイクロコンピュータへ書き込む書き込み部をさらに備える、
請求項７に記載のプログラム生成装置。
【請求項９】
入力信号が入力される入力部と、前記入力信号に対し所定の処理を行う処理部と、前記処理の結果を出力する出力部とを有するマイクロコンピュータ用のプログラムを生成するプログラム生成方法であって、
前記入力部と前記処理部と前記出力部のそれぞれの動作に対応した複数のＧＵＩ部品を表示し、
ユーザによる前記複数のＧＵＩ部品の操作に基づいて、前記プログラムを生成する、
プログラム生成方法。
【請求項１０】
入力信号が入力される入力部と、前記入力信号に対し所定の処理を行う処理部と、前記処理の結果を出力する出力部とを有するマイクロコンピュータ用のプログラムを生成するプログラム生成処理をコンピュータに実行させるプログラムであって、
前記プログラム生成処理は、
前記入力部と前記処理部と前記出力部のそれぞれの動作に対応した複数のＧＵＩ部品を表示し、
ユーザによる前記複数のＧＵＩ部品の操作に基づいて、前記プログラムを生成する、
プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、プログラム生成装置、プログラム生成方法及びプログラムに関し、特に、マイクロコンピュータで実行されるプログラムを生成するプログラム生成装置、プログラム生成方法及びプログラムに関する。
【背景技術】
【０００２】
従来からマイクロコンピュータ（以下、マイコンという）は、様々な装置に組み込まれ、各装置の動作を制御する制御部として広く利用されている。
【０００３】
マイコンは、内部のメモリに格納されたプログラムにしたがって動作し、各種の制御処理を実現している。このため、マイコンを用いたシステムを構築する場合、マイコンを動作させるソフトウェアを作成する必要がある。マイコン用のソフトウェア開発には、Ｃ言語やＢＡＳＩＣ言語等の高級言語や、より機械語に近いアセンブリ言語などのプログラム言語が利用されている。マイコン用のプログラムを作成するためには、このプログラム言語に精通している必要がある。しかし、これらのプログラム言語は、その言語に特有な英単語や数式等の組み合わせで構成されており複雑である。したがって、ユーザが学習してプログラムが作成できるようになるまで多くの時間が必要であり、ユーザの負担が重いという問題があった。
【０００４】
また、マイコン用のプログラムを記述する場合、原則としてユーザが手で入力するため、スペルミスや数式、論理の記述間違い等の誤入力によるバグが発生する。これらのバグを除去するため、机上デバッグを行ったり、ソフトウェアシミュレータやハードウェアシミュレータ等を用いてマシンデバッグを実施する必要がある。このため、マイコンシステムを構築するまでに多くの工数がかかるとともに、プログラムの品質が低下するという問題があった。
【０００５】
これらの問題を解決するため、状態遷移図を入力してプログラムを生成する装置や、フローチャートを入力してプログラムを生成する装置が提案されている（例えば、特許文献１や特許文献２参照）。しかしながら、これらの従来のプログラム生成装置では、ソフトウェア開発の経験があるユーザを前提に考えられており、ソフトウェアの流れを理解し、自ら状態遷移図やフローチャートを作成できなければソフトウェアを作成することができない。
【特許文献１】特開平８−６３３４５号公報
【特許文献２】特開平１１−３５３１６４号公報
【発明の開示】
【発明が解決しようとする課題】
【０００６】
このように、従来のプログラム生成装置では、プログラム言語の記述やプログラムの動作の流れを理解できる程度のソフトウェアの知識が必要であり、そのような知識の無いユーザがマイコン用のプログラムを作成することは困難であった。
【課題を解決するための手段】
【０００７】
本発明にかかるプログラム生成装置は、入力信号が入力される入力部と、前記入力信号に対し所定の処理を行う処理部と、前記処理の結果を出力する出力部とを有するマイクロコンピュータ用のプログラムを生成するプログラム生成装置であって、前記入力部と前記処理部と前記出力部のそれぞれの動作に対応した複数のＧＵＩ部品を表示するＧＵＩ表示部と、ユーザによる前記複数のＧＵＩ部品の操作に基づいて、前記プログラムを生成するプログラム生成部とを有するものである。このプログラム生成装置によれば、入力部、処理部、出力部に対応したＧＵＩ部品を操作することによりマイコン用のプログラムを生成することができるため、ソフトウェアに関する知識が無いユーザであっても、容易にマイコン用のプログラムを生成することができる。
【０００８】
本発明にかかるプログラム生成方法は、入力信号が入力される入力部と、前記入力信号に対し所定の処理を行う処理部と、前記処理の結果を出力する出力部とを有するマイクロコンピュータ用のプログラムを生成するプログラム生成方法であって、前記入力部と前記処理部と前記出力部のそれぞれの動作に対応した複数のＧＵＩ部品を表示し、ユーザによる前記複数のＧＵＩ部品の操作に基づいて、前記プログラムを生成するものである。このプログラム生成方法によれば、入力部、処理部、出力部に対応したＧＵＩ部品を操作することによりマイコン用のプログラムを生成することができるため、ソフトウェアに関する知識が無いユーザであっても、容易にマイコン用のプログラムを生成することができる。
【０００９】
本発明にかかるプログラムは、入力信号が入力される入力部と、前記入力信号に対し所定の処理を行う処理部と、前記処理の結果を出力する出力部とを有するマイクロコンピュータ用のプログラムを生成するプログラム生成処理をコンピュータに実行させるプログラムであって、前記プログラム生成処理は、前記入力部と前記処理部と前記出力部のそれぞれの動作に対応した複数のＧＵＩ部品を表示し、ユーザによる前記複数のＧＵＩ部品の操作に基づいて、前記プログラムを生成するものである。このプログラム生成方法によれば、入力部、処理部、出力部に対応したＧＵＩ部品を操作することによりマイコン用のプログラムを生成することができるため、ソフトウェアに関する知識が無いユーザであっても、容易にマイコン用のプログラムを生成することができる。
【発明の効果】
【００１０】
本発明によれば、ソフトウェアに関する知識が無いユーザであっても、容易にマイコン用のプログラムを生成できるプログラム生成装置、プログラム生成方法及びプログラムを提供することができる。
【発明を実施するための最良の形態】
【００１１】
発明の実施の形態１．
まず、本発明の実施の形態１にかかるプログラム生成装置について説明する。本実施形態にかかるプログラム生成装置は、ＧＵＩ（Ｇｒａｐｈｉｃａｌ  Ｕｓｅｒ  Ｉｎｔｅｒｆａｃｅ）の操作によってマイコンの動作をユーザに入力させ、この操作に基づいてマイコン用のプログラムを生成することを特徴としている。
【００１２】
図１を用いて、本実施形態にかかるプログラム生成装置を有するシステムについて説明する。このシステムは、マイコン用プログラムを生成するプログラム生成装置１００と、マイコンを搭載するマイコンボード２００とを備えている。プログラム生成装置１００とマイコンボード２００は、書き込み用ケーブルで接続されている。例えば、プログラム生成装置１００で生成されたプログラムをマイコンボード２００のマイコン２０１に書き込み、マイコン２０１でそのプログラムを実行することにより、ユーザは、プログラムの動作の学習や評価を行なうことができる。
【００１３】
マイコンボード２００は、マイコン２０１、マイコン入力部２０２、マイコン出力部２０３を有している。
【００１４】
マイコン２０１は、書き込まれたＨＥＸファイルのプログラムを実行し、プログラムにしたがって各種の処理を行う処理部である。例えば、マイコン２０１は、フラッシュメモリを内蔵したワンチップのマイコンであり、このフラッシュメモリに、プログラム生成装置１００からプログラムが書き込まれる。
【００１５】
マイコン入力部２０２は、マイコン２０１の入力ポートに接続されており、入力機器等によって入力信号をマイコン２０１へ入力する。例えば、マイコン入力部２０２に、スイッチやデジタル信号入力端子、アナログ信号入力端子、シリアルデータ入力端子、その他、ユーザ所望の機器を設け、マイコン２０１の入力ポートに接続することができる。尚、マイコン２０１において入力ポート及び出力ポートとなるポートは、常に固定のポート番号（ポート位置）であってもよいし、ユーザが選択した任意のポート番号であってもよい。
【００１６】
マイコン出力部２０３は、マイコン２０１の出力ポートに接続されており、出力機器等によってマイコン２０１の出力信号を外部へ出力する。例えば、マイコン出力部２０３に、ＬＥＤ（ランプ）やブザー、デジタル信号出力端子、シリアルデータ出力端子、その他、ユーザ所望の機器を設け、マイコン２０１の出力ポートに接続することができる。
【００１７】
プログラム生成装置１００は、ユーザのＧＵＩ操作に応じてマイコン２０１の動作を所定のプログラム言語で記述したソースファイルを生成する。また、プログラム生成装置１００は、生成したソースファイルをアセンブルしてＨＥＸファイルを生成し、生成したＨＥＸファイルをマイコン２０１へ書き込む。このプログラム生成装置１００は、例えば、パーソナルコンピュータやサーバコンピュータ等のコンピュータにより構成されている。
【００１８】
図２は、プログラム生成装置１００を実現するためのハードウェア構成の例を示している。例えば、プログラム生成装置１００は、中央処理装置（ＣＰＵ）１０１とメモリ１０４とを含んでいる。ＣＰＵ１０１とメモリ１０４は、バスを介して補助記憶装置としてのハードディスク装置（ＨＤＤ）１０５に接続される。プログラム生成装置１００は、典型的には、ユーザ・インターフェース・ハードウェアを備える。ユーザ・インターフェース・ハードウェアとしては、例えば、ユーザが入力するためのポインティング・デバイス（マウス、ジョイスティック等）やキーボード等の入力装置１０２や、視覚データをユーザに提示するためのＣＲＴや液晶ディスプレイなどの表示装置１０３がある。ＨＤＤ１０５等の記憶媒体にはオペレーティングシステムと協働してＣＰＵ１０１等に命令を与え、プログラム生成装置１００の機能を実施するためのプログラムを記憶することができる。このプログラムは、メモリ１０４にロードされることによって実行される。また、プログラム生成装置１００は、外部装置等に接続する入出力インタフェース（Ｉ／Ｏ）１０６を有している。例えば、Ｉ／Ｏ１０６はマイコン接続用のアダプタであり、Ｉ／Ｏ１０６を介してマイコンボード２００と接続される。尚、プログラム生成装置１００は、単一のコンピュータでなくとも、複数のコンピュータによって構成することも可能である。
【００１９】
次に、図３のブロック図を用いて、本実施形態にかかるプログラム生成装置１００の構成について説明する。図に示されるように、このプログラム生成装置１００は、制御処理部１１０、情報格納部１２０、表示部１３０、入力部１４０及び出力部１５０を備えている。尚、図３中の各ブロックは、図２で示したハードウェアもしくはハードウェア上で実行されるソフトウェアによって構成される。
【００２０】
制御処理部１１０は、プログラム生成装置１００の各処理を実行する。例えば、制御処理部１１０は、ＣＰＵ等の制御処理装置からなり、情報格納部１２０に予め記憶されたＯＳプログラムやアプリケーションプログラムに基づき、各種の処理を実行する。
【００２１】
制御処理部１１０は、ＧＵＩ処理部１１１、ロケーションファイル生成部１１２、ロケーションファイルコンパイル部１１３、アセンブル部１１４及びマイコン書き込み部１１５を有している。例えば、これら各部の処理を記述したプログラムが情報格納部１２０に格納されており、このプログラムがメモリ上に展開され、ＣＰＵがプログラムに従って処理を行い、他のハードウェア構成と協働することによって、各部を構成することができる。
【００２２】
情報格納部１２０は、ハードディスクやメモリ等の内部記憶手段や光ディスク等の外部記憶手段により構成され、ＯＳプログラムやアプリケーションプログラム、各プログラムの処理に必要な各種データ等が格納される。情報格納部１２０は、ＧＵＩ情報格納部１２１、ロケーションファイル格納部１２２、コンパイルテーブル格納部１２３、マクロ情報格納部１２４、ソースファイル格納部１２５、ＨＥＸファイル格納部１２６を有している。
【００２３】
ＧＵＩ情報格納部１２１は、表示部１３０にＧＵＩを表示するためのＧＵＩ情報を格納する。例えば、ＧＵＩ情報は、後述するプログラム生成ウィンドウや入出力パレット、処理パネルやアイコン等のＧＵＩ部品のイメージデータであり、あらかじめＧＵＩ情報格納部１２１に格納されている。
【００２４】
ロケーションファイル格納部１２２は、ユーザがＧＵＩによって操作したＧＵＩ部品の位置を示すロケーションファイルを格納する。例えば、ロケーションファイルは、ウィンドウ（編集パネル）上に配置されたアイコンやパネルの位置（座標）情報である。
【００２５】
コンパイルテーブル格納部１２３は、ロケーションファイルのコンパイルに用いるコンパイルテーブルを格納する。例えば、コンパイルテーブルには、後述する配線テーブルや機能テーブル等が含まれる。
【００２６】
マクロ情報格納部１２４は、複数のプログラム命令によって所定の処理を記述したマクロ情報を格納する。マクロ情報は、ＧＵＩ情報格納部１２１のマイコンの入出力や処理を示すアイコンごとに設けられる。例えば、マクロ情報は、アセンブリ言語で記述されたマクロであるが、Ｃ言語等で記述された関数など、その他の命令ブロックでもよい。
【００２７】
ソースファイル格納部１２５は、マイコンの動作を記述したマイコン用プログラムであるソースファイルを格納する。例えば、ソースファイルは、Ｃ言語やＢＡＳＩＣ言語等の高級言語のほかアセンブリ言語で記述されている。尚、以下では、ソースファイルをＣ言語で記述した例を説明するが、プログラムを実行するマイコンやアセンブラ（コンパイラ）等の環境に適した言語（アセンブリ言語等）であることが好ましい。
【００２８】
ＨＥＸファイル格納部１２６は、マイコンでそのまま実行可能な機械語プログラムであるＨＥＸファイルを格納する。
【００２９】
ＧＵＩ処理部（ＧＵＩ表示部）１１１は、ＧＵＩの表示や操作等のＧＵＩ表示処理を実行する。すなわち、ＧＵＩ処理部１１１は、ＧＵＩ情報格納部１２１に格納されたＧＵＩ情報を入力として、表示部１３０にＧＵＩを表示する。後述するように、ＧＵＩ処理部１１１は、マイコン入力部２０２やマイコン２０１（処理部）、マイコン出力部２０３の動作に対応した複数のアイコンや、これらのアイコンを配置する編集パネルを表示する。また、ＧＵＩ処理部１１１は、ユーザが入力部１４０のマウス等によって入力した操作に応じてＧＵＩを表示する。
【００３０】
ロケーションファイル生成部１１２とロケーションファイルコンパイル部１１３は、ユーザのＧＵＩ操作に基づいてマイコン用のプログラムを生成するプログラム生成部１１６である。プログラム生成部１１６は、ロケーションファイル、すなわち、ユーザの配置したアイコンの位置に基づいてプログラムを生成する。また、プログラム生成部１１６は、ユーザの配置したアイコンに対応するマクロを用いてプログラムを生成する。
【００３１】
ロケーションファイル生成部（位置情報生成部）１１２は、アイコンの位置情報であるロケーションファイルの生成処理を実行する。すなわち、ロケーションファイル生成部１１２は、ユーザの操作に応じてＧＵＩ処理部１１１が表示したＧＵＩの位置を取得し、ロケーションファイルを生成してロケーションファイル格納部１２２に格納する。
【００３２】
ロケーションファイルコンパイル部（コンパイラ）１１３は、ロケーションファイルをソースファイルに変換するコンパイル処理を実行する。すなわち、ロケーションファイルコンパイル部１１３は、ロケーションファイル格納部１２２に格納されたロケーションファイルと、マクロ情報格納部１２４に格納されたマクロ情報を入力として、ソースファイルを生成してソースファイル格納部１２５に格納する。このとき、ロケーションファイルコンパイル部１１３は、ロケーションファイルに基づいて、コンパイルテーブルを生成してコンパイルテーブル格納部１２３に格納した後、コンパイルテーブルとマクロ情報に基づいて、ソースファイルを生成する。後述するように、ロケーションファイルコンパイル部１１３は、ロケーションファイルをアイコン接続関係を示す配線テーブル（接続情報）に変換し、この配線テーブルからマクロの入力パラメータを決定する。
【００３３】
アセンブル部（アセンブラ）１１４は、ソースファイルを機械語プログラムに変換するアセンブル処理を実行する。すなわち、アセンブル部１１４は、ソースファイル格納部１２５に格納されたソースファイルを入力として、ソースファイルをＨＥＸファイルに変換し、ＨＥＸファイル格納部１２６に格納する。
【００３４】
マイコン書き込み部１１５は、機械語プログラムをマイコン２０１へ書き込む処理を実行する。すなわち、マイコン書き込み部１１５は、ＨＥＸファイル格納部１２６に格納されたＨＥＸファイルを出力部１５０を介して、マイコン２０１へ書き込む。
【００３５】
表示部１３０は、プログラム生成装置１００の処理に関する情報を表示する。例えば、表示部１３０は、ＧＵＩ等をＧＵＩ処理部１１１から受け付け、当該情報をＣＲＴやＬＣＤ等の表示装置に表示する。
【００３６】
入力部１４０は、プログラム生成装置１００の処理に必要な情報をユーザから受け付ける。例えば、入力部１４０は、キーボードやマウス等の入力装置を介して、ユーザからＧＵＩの操作を受け付け、ＧＵＩ処理部１１１等に入力する。
【００３７】
出力部１５０は、マイコンボード２００と接続されるインタフェースである。例えば、出力部１５０は、ＨＥＸファイルをマイコン書き込み部１１５から受け付け、マイコンボード２００のマイコン２０１へ書き込む。
【００３８】
次に、ＧＵＩ情報格納部１２１及びマクロ情報格納部１２４に格納されているＧＵＩ情報及びとマクロ情報について説明する。これらの情報は、プログラム生成処理が実行される前に、あらかじめ格納されている。
【００３９】
図４〜図８は、ＧＵＩ情報格納部１２１のＧＵＩ情報に基づいてＧＵＩ処理部１１１が表示する表示画面の例である。図４に示すプログラム生成ウィンドウ５００は、ＧＵＩ処理部１１１によって表示される。ユーザは、このプログラム生成ウィンドウ５００中のアイコン等を操作することにより、マイコンの動作の入力や、プログラム生成装置の各処理の実行を行う。図に示されるように、プログラム生成ウィンドウ５００は、入出力パレット５１０、処理パレット５２０、編集パネル５３０を有している。
【００４０】
入出力パレット５１０と処理パレット５２０には、あらかじめ決められたアイコンが表示される。後述するように、これらのアイコンには、それぞれの動作を示す簡単な絵が表示されており、ユーザは、アイコンの動作を視覚的に容易に理解することができる。
【００４１】
入出力パレット５１０は、マイコン入力部２０２やマイコン出力部２０３の動作を設定するための複数のアイコンを有している。処理パレット５２０は、マイコン２０１で実行される処理の動作を設定するための複数のアイコンを有している。尚、入出力パレット５１０と処理パレット５２０の表示位置は、図の位置に限らず、ユーザが操作し易いようなその他の位置にあってもよい。例えば、編集パネル５３０の両側に限らず上側や下側に配置してもよい。編集パネル５３０の構成に合わせて、入出力パレット５１０の入力用アイコンを編集パネル５３０の左側に配置し、出力用のアイコンを編集パネル５３０の右側に配置し、処理パレット５２０を編集パネル５３０の下側に配置してもよい。
【００４２】
編集パネル５３０は、表示される内容をユーザが任意に編集できる領域である。編集パネル５３０は、入出力パレット５１０と処理パレット５２０のアイコンを用いて、マイコン２０１の入出力や一連の処理を設定する。例えば、ユーザは、入出力パレット５１０や処理パレット５２０の所望のアイコンをドラッグ・アンド・ドロップすることにより、編集パネル５３０の任意の位置にアイコンを配置する。編集パネル５３０に一度配置したアイコンをドラッグして、さらに位置を変更することもできる。また、編集パネル５３０に配置したアイコンのパラメータ等（入出力ポート番号やタイマー値、最大カウンタ値等）の設定を、右クリックなどの操作により変更することもできる。
【００４３】
さらに、プログラム生成ウィンドウ５００は、ツールバー５４０を有しており、ユーザがツールバー５４０のアイコンを選択（クリック）することにより、プログラム生成装置１００の各処理を実行することができる。例えば、ツールバー５４０のアイコンによって、ロケーションファイルの書き込みや読み出し、コンパイルや、アセンブル、マイコンへの書き込み等の処理を実行することができる。尚、ツールバーに限らず、複数のコマンドを有するメニューを表示し、各処理に対応したコマンドを選択するようにしてもよい。
【００４４】
図５は、入出力パレット５１０に表示されるアイコンの例を示している。アイコン６０１〜６０５は、マイコン入力部２０２の動作設定用であり、マイコン２０１の入力ポートに入力される信号を設定するために用いられる。例えば、アイコン６０１〜６０５は、マイコン入力部２０２に設けられた入力機器に対応して設けられている。
【００４５】
アイコン６０１は押しボタンスイッチ用、アイコン６０２はスライドスイッチ用である。アイコン６０１や６０２を編集パネル５３０に配置すると、マイコン入力部２０２のスイッチの操作に応じた信号が、マイコン２０１の所定の入力ポートに入力される。アイコン６０３は、デジタル信号入力用である。アイコン６０３を編集パネル５３０に配置すると、マイコン入力部２０２のデジタル信号入力端子から入力した信号が、マイコン２０１の所定の入力ポートに入力される。
【００４６】
アイコン６０４は、アナログ信号入力用である。アイコン６０４を編集パネル５３０に配置すると、マイコン入力部２０２のアナログ信号入力端子から入力した信号が、マイコン２０１のＡ／Ｄコンバータが内蔵された所定の入力ポートに入力される。アイコン６０５は、ＵＡＲＴのシリアルデータ入力用である。アイコン６０５を編集パネル５３０に配置すると、マイコン入力部２０２のシリアルデータ入力端子から入力したシリアルデータが、マイコン２０１の所定の入力ポートに入力される。
【００４７】
アイコン６０６〜６１１は、マイコン出力部２０３の動作設定用であり、マイコン２０１の出力ポートから出力される信号を設定するために用いられる。例えば、アイコン６０６〜６１１は、マイコン出力部２０３に設けられた出力機器に対応して設けられている。
【００４８】
アイコン６０６は、ＬＥＤ（ランプ）出力用である。アイコン６０６を編集パネル５３０に配置すると、マイコン２０１の出力に応じて、マイコン出力部２０３のＬＥＤが点灯する。アイコン６０７は、ブザー出力用である。アイコン６０７を編集パネル５３０に配置すると、マイコン２０１の出力に応じて、マイコン出力部２０３のブザーが鳴動する。
【００４９】
アイコン６０８は、ＰＷＭ信号出力用である。アイコン６０８を編集パネル５３０に配置すると、マイコン２０１から出力されるＰＷＭ信号が、マイコン出力部２０３のＰＷＭ信号出力端子から出力される。アイコン６０９は、デジタル信号出力用である。アイコン６０９を編集パネル５３０に配置すると、マイコン２０１から出力されるデジタル信号が、マイコン出力部２０３のデジタル信号出力端子から出力される。
【００５０】
アイコン６１０は、ＵＡＲＴのシリアルデータ出力のトリガ用である。アイコン６１０を編集パネル５３０に配置すると、マイコン２０１からシリアルデータを出力する際のトリガが生成される。このトリガに基づいて、シリアルデータ出力の処理（後述のアイコン７１０）からシリアルデータが出力される。アイコン６１１は７セグメントＬＥＤ出力用である。アイコン６１１を編集パネル５３０に配置すると、マイコン２０１からの出力に応じて、マイコン出力部２０３の７セグメントＬＥＤの所定のＬＥＤが点灯し、７セグメントＬＥＤに所望の数字が表示される。
【００５１】
図６は、処理パレット５２０に表示されるアイコンの例を示している。アイコン７０１〜７１５は、マイコンで実行される処理の動作設定用であり、これらの複数のアイコンを組み合わせることで、マイコン２０１で実行される一連の処理を可能にする。尚、これらのアイコンの各処理は、オン／オフのデジタル値（２値情報）を入出力する。
【００５２】
アイコン７０１は、各処理を接続する配線用である。アイコン７０１を編集パネル５３０に配置すると、アイコンの各矢印の方向へオン／オフを伝達する。すなわち、アイコン７０１は、アイコンの上側もしくは左側から入力されたデジタル値を、下側もしくは右側へ出力する。
【００５３】
アイコン７０２，７０３は、ジャンパ入口／出口用である。アイコン７０２，７０３を編集パネル５３０に配置すると、ジャンパ入口用アイコン７０２からジャンパ出口用アイコン７０３へオン／オフを伝達する。すなわち、アイコン７０２，７０３は、ジャンパ入口に入力されたデジタル値を、離れた位置のジャンパ出口へ出力する。
【００５４】
アイコン７０４〜７０７は、論理演算用である。アイコン７０４〜７０７を編集パネル５３０に配置すると、入力されたデジタル値に対し、それぞれＡＮＤ演算、ＯＲ演算、ＮＯＴ演算、ＸＯＲ演算を行い、その結果を出力する。
【００５５】
アイコン７０８，７０９は、一定レベルの信号出力用である。アイコン７０８，７０９を編集パネル５３０に配置すると、常時オンまたは常時オフを出力する。
【００５６】
アイコン７１０は、ＵＡＲＴのシリアルデータ出力用である。アイコン７１０を編集パネル５３０に配置すると、入力されたオン／オフを、直接、マイコン出力部２０３のシリアルデータ出力端子へ出力する。
【００５７】
アイコン７１１は、７セグメントＬＥＤ出力用である。アイコン７１１を編集パネル５３０に配置すると、入力されたオン／オフに応じて、直接、マイコン出力部２０３の７セグメントＬＥＤの所定のＬＥＤが点灯する。
【００５８】
アイコン７１２は、フリップフロップ処理用である。アイコン７１２を編集パネル５３０に配置すると、入力されたデジタル値に対しフリップフロップ種別に応じた動作を行い、その結果を出力する。例えば、アイコン７１２は、ＲＳ−ＦＦやＤ−ＦＦ、Ｔ−ＦＦ等と同様の動作を行う。
【００５９】
アイコン７１３は、タイマ処理用である。アイコン７１３を編集パネル５３０に配置すると、入力のデジタル値が変化した時点から設定時間（タイマー時間）経過後に所定のデジタル値を出力する。例えば、入力がオフからオンに変化した時点から設定時間経過後にオンを出力する。
【００６０】
アイコン７１４は、カウンタ処理用である。アイコン７１４を編集パネル５３０に配置すると、入力のデジタル値の変化をカウントし、カウンタ値が設定値に達した場合に所定のデジタル値を出力する。例えば、入力がオフからオンに変化する毎にカウントし、カウンタ値が設定値に達した場合にオンを出力し、さらに、カウントアップするとカウンタ値が０にリセットされる。
【００６１】
アイコン７１５は、ディレイ処理用である。アイコン７１５を編集パネル５３０に配置すると、入力されたデジタル値を、入力から設定時間経過後に出力する。
【００６２】
図７は、編集パネル５３０にアイコンが配置されていない状態の表示例を示している。編集パネル５３０は、入力パネル８１０、出力パネル８２０、処理パネル８３０を有している。入力パネル８１０、出力パネル８２０、処理パネル８３０は、それぞれ、アイコンを配置するための複数のパネルに区切られている。尚、各パネルに示されたＩ＿０、Ｏ＿０、Ｆ＿００は、パネルの位置を示すパネル番号である。パネルの数は、この例に限らず任意の数でもよい。
【００６３】
入力パネル８１０は、一方向に配列されたＩ＿０〜Ｉ＿９の１０個のパネルを有し、このパネルに入出力パレット５１０の入力動作設定用のアイコン（６０１〜６０５）を配置することができる。
【００６４】
出力パネル８２０は、一方向に配列されたＯ＿０〜Ｏ＿９の１０個のパネルを有し、このパネルに入出力パレット５１０の出力動作設定用のアイコン（６０６〜６１１）を配置することができる。
【００６５】
処理パネル８３０は、格子状、２次元配列状に配列されたＦ＿００〜Ｆ＿９９の１００個のパネルを有している。このパネルの番号は、数字の一桁目が行番号、二桁目が列番号を示している。このパネルに処理パレット５２０の処理動作設定用のアイコン（７０１〜７１５）を配置することができる。
【００６６】
ここでは、処理パネル８３０の一方の側（左側）に入力パネル８１０、他方の側（右側）に出力パネル８２０を設けている。これにより、入力信号が入力部から処理部を介して出力部へ出力するまでの動作を、ユーザが容易に把握することができる。
【００６７】
図８は、編集パネル５３０にアイコンを配置した具体的な表示例を示している。図８は、扇風機の制御処理の例である。この例では、マイコン入力部２０２に設けられた運転キーやスリープキーの押下に基づいて、マイコン２０１で処理を行い、マイコン出力部２０３に設けられたデジタルリレーによって扇風機を動作させたり、ＬＥＤを点灯させたりする。
【００６８】
図のようにアイコンを配置した場合の各動作について説明する。入力パネル８１０のＩ＿１に配置された運転キー９０１を押す毎に、処理パネル８３０のＦ＿０１〜Ｆ＿０３に配置されたカウンタ９０３のカウンタ値が、２、１、０と切り替わる。尚、ここでは、カウンタ９０３とカウンタ９０４は、カウンタ値をデクリメントするダウンカウンタとして説明するが、これに限らず、カウンタ値をインクリメントするアップカウンタとしてもよい。
【００６９】
カウンタ９０３のカウンタ値が２の場合、出力パネル８２０のＯ＿１に配置されたデジタル強リレー９１０へオンが出力される。デジタル強リレー９１０は、デジタル信号出力端子に大出力のリレーが接続され、扇風機を強い風量で動作させる。
【００７０】
カウンタ９０３のカウンタ値が１の場合、出力パネル８２０のＯ＿２に配置されたデジタル弱リレー９１１へオンが出力される。デジタル弱リレー９１１は、デジタル信号出力端子に小出力のリレーが接続され、扇風機を弱い風量で動作せる。
【００７１】
カウンタ９０３のカウンタ値が０の場合、デジタル強リレー９１０とデジタル弱リレー９１１にはオフが出力され、扇風機の動作が停止する。さらにこのとき、カウンタ９０４へオンを出力し、カウンタ９０４のカウンタ値をリセットして、タイマー動作も停止する。
【００７２】
入力パネル８１０のＩ＿４に配置されたスリープキー９０２を押す毎に、処理パネル８３０のＦ＿１４〜Ｆ＿１５に配置されたカウンタ９０４のカウンタ値が、２、１と切り替わる。
【００７３】
カウンタ９０４のカウンタ値が２の場合、出力パネル８２０のＯ＿４に配置された２Ｈ  ＬＥＤランプ９１２へオンが出力され、このＬＥＤが点灯する。さらに、このとき、１２０Ｍタイマー９０５へオンが出力される。１２０Ｍタイマー９０５は、オンが入力された後、１２０分経過後にＯＲ９０７、ジャンパ９０８、ジャンパ９０９を介してカウンタ９０３へオンを出力し、カウンタ９０３のカウンタ値をリセットする。したがって、スリープキー９０２の押下後、１２０分後に扇風機の動作が停止する。
【００７４】
カウンタ９０４のカウンタ値が１の場合、出力パネル８２０のＯ＿５に配置された１Ｈ  ＬＥＤランプ９１３へオンが出力され、このＬＥＤが点灯する。さらに、このとき、６０Ｍタイマー９０６へオンが出力される。６０Ｍタイマー９０６は、オンが入力された後、６０分経過後にＯＲ９０７、ジャンパ９０８、ジャンパ９０９を介してカウンタ９０３へオンを出力し、カウンタ９０３のカウンタ値をリセットする。したがって、スリープキー９０２の押下後、６０分後に扇風機の動作が停止する。
【００７５】
すなわち、図のようにアイコンを配置することで、運転キーを押す毎に、強→弱→オフと扇風機の風量が切り替わり、スリープキーを押す毎に、スリープオン（２時間）→スリープオン（１時間）→スリープオフと扇風機の動作が切り替わるという動作を、容易に設定することができる。
【００７６】
図９は、マクロ情報格納部１２４に格納されるマクロ情報の例を示している。図９は、ソースファイルと同様にアセンブリ言語で記述された、ＡＮＤＦマクロの定義例である。例えば、メインプログラムで、マクロ名のＡＮＤＦとパラメータのＦｏｕｔ，Ｆｉｎ１，Ｆｉｎ２を記述すると、プログラムの実行時には、図９のマクロ内の複数の命令が実行される。この例では、ＡＮＤＦマクロにＦｉｎ１とＦｉｎ２に値を入力すると、ＦｏｕｔにＦｉｎ１とＦｉｎ２をＡＮＤ演算した結果が与えられる。本実施形態では、入出力パレット５１０の入力部用アイコン、出力部用アイコン、処理パレット５２０の処理用アイコンのそれぞれに対応してマクロが設けられ、マクロ情報格納部１２４に格納されている。これにより、アイコンに対応したマクロをメインプログラムに記述することで、プログラムを生成することができるため、効率よくかつ正確にプログラムを生成することができる。
【００７７】
次に、図１０のフローチャートを用いて、本実施形態にかかるプログラム生成処理について説明する。このプログラム生成処理は、プログラム生成装置１００の制御処理部１１０によって実行される処理である。
【００７８】
まず、ＧＵＩ処理部１１１は、ＧＵＩを表示する（Ｓ１０１）。例えば、ユーザが、コンピュータ上でプログラム生成処理用のプログラムを起動すると、ＧＵＩ処理部１１１は、ＧＵＩ情報格納部１２１からＧＵＩ情報を読み出し、図４のプログラム生成ウィンドウ５００を表示する。このとき、プログラム生成ウィンドウ５００の編集パネル５３０には、例えば、アイコンも配置されていない初期状態であるが、その他、所定のアイコンがあらかじめ配置されるようにしてもよい。マイコン入力部２０２やマイコン出力部２０３に設けられた機器に対応したアイコンを、編集パネル５３０の入力パネル８１０と出力パネル８２０に配置しておいてもよい。これにより、入力部や出力部の設定ミスを防止することができる。
【００７９】
次いで、ユーザは、ＧＵＩを操作し編集パネル５３０を編集する（Ｓ１０２）。例えば、ユーザがプログラム生成ウィンドウ５００のアイコンをドラッグ・アンド・ドロップすると、ＧＵＩ処理部１１１は、このユーザ操作に応じて編集パネル５３０にアイコンを配置する。
【００８０】
図１１は、このときユーザが編集パネル５３０にアイコンを配置した例である。入力パネル８１０では、Ｉ＿１にスイッチ９２１、Ｉ＿２にスイッチ９２２、Ｉ＿３にスイッチ９２３が配置され、出力パネル８２０では、Ｏ＿３にランプ９２６が配置されている。処理パネル８３０では、Ｆ＿１２にＡＮＤ９２４、Ｆ＿２３にＯＲ９２５が配置され、スイッチ９２１，９２２，９２３とＡＮＤ９２４，ＯＲ９２５とランプ９２６を接続するように配線用のアイコンが配置されている。この処理をマイコンで実行すると、スイッチ９２１とスイッチ９２２の両方のスイッチを押した場合、又は、スイッチ９２３を押した場合に、ランプが点灯する。
【００８１】
次いで、ロケーションファイル生成部１１２は、ロケーションファイルを生成する（Ｓ１０３）。例えば、ユーザが、プログラム生成ウィンドウ５００のツールバー５４０に設けられた所定のアイコンをクリックすると、ロケーションファイル生成部１１２は、Ｓ１０２でユーザによって編集された編集パネル５３０から、配置されたアイコンの位置に基づいてロケーションファイルを生成し、ロケーションファイル格納部１２２に格納する。
【００８２】
図１２は、このとき生成されたロケーションファイルの例であり、図１１で示した編集パネル５３０をロケーションファイルに変換した例である。図１２中（ａ）は、入力パネル８１０を変換した部分、図１２中（ｂ）は、処理パネル８３０を変換した部分、図１２中（ｃ）は、出力パネル８２０を変換した部分である。
【００８３】
例えば、入力パネル８１０をＩ＿０からＩ＿９まで順に選択し、パネルにアイコンが配置されていた場合、そのパネルの情報をロケーションファイルに記述する。同様に、処理パネル８３０をＦ＿００からＦ＿９９まで順に選択し、出力パネル８２０をＯ＿０からＯ＿９まで順に選択し、アイコンが配置されているパネルの情報をロケーションファイルに記述する。
【００８４】
入力パネル８１０と出力パネル８２０の各パネルは、アイコンが配置されているパネル番号、アイコンに対応するマクロ名、パネルに設定されたマクロのパラメータに変換される。例えば、図１２中（ａ）では、入力パネル８１０のスイッチ９２１が、パネル番号「Ｉ＿１」、マクロ名「ＳＷ」、パラメータ「Ｈ，Ｐ４．０」に変換されている。図１２中（ｃ）では、出力パネル８２０のスイッチ９２６が、パネル番号「Ｏ＿３」、マクロ名「ＬＡＭＰ」、パラメータ「Ｈ，Ｐ４．３」に変換されている。
【００８５】
処理パネル８３０の各パネルは、アイコンが配置されているパネル番号、アイコンに対応するマクロ名、パネルの入出力関係に変換される。例えば、図１２中（ｂ）では、Ｆ＿０１の配線用アイコンが、パネル番号「Ｆ＿０１」、マクロ名「ＬＩＮＥ」、入出力関係「ＬＲ」に変換されている。ＡＮＤ９２４は、パネル番号「Ｆ＿１２」、マクロ名「ＡＮＤ」、入出力関係「Ｒ」に変換されている。ＯＲ９２５は、パネル番号「Ｆ＿２３」、マクロ名「ＯＲ」、入出力関係「Ｒ」に変換されている。
【００８６】
次いで、Ｓ１０４とＳ１０５において、ソースファイルの生成が行われる。例えば、ユーザが、プログラム生成ウィンドウ５００のツールバー５４０に設けられた所定のアイコンをクリックすると、Ｓ１０４、Ｓ１０５の処理が実行され、ソースファイルが生成される。
【００８７】
ソースファイルの生成する際、まず、ロケーションファイルコンパイル部１１３は、コンパイルテーブル生成処理を実行する（Ｓ１０４）。後述するように、ロケーションファイルコンパイル部１１３は、Ｓ１０３で生成されたロケーションファイルに基づいて、機能テーブルや配線テーブル等のコンパイルテーブルを生成する。
【００８８】
次いで、ロケーションファイルコンパイル部１１３は、ソースファイル生成処理を実行する（Ｓ１０５）。後述するように、ロケーションファイルコンパイル部１１３は、Ｓ１０４で生成されたコンパイルテーブルに基づいて、ソースファイルを生成し、ソースファイル格納部１２５に格納する。
【００８９】
図１３は、このとき生成されたソースファイルの例であり、図１２で示したロケーションファイルをソースファイルに変換した例である。ここでは、図１３のソースファイルは、Ｃ言語で記述されている。
【００９０】
図１３中（ａ）は、ロケーションファイルのうち入力パネル８１０の部分を変換したマイコン入力部のプログラム、図１３中（ｂ）は、ロケーションファイルのうち処理パネル８３０の部分を変換したマイコン処理部のプログラム、図１３中（ｃ）は、ロケーションファイルのうち出力パネル８２０の部分を変換したマイコン出力部のプログラムである。
【００９１】
例えば、図１３中（ａ）では、マイコンの入力ポート４０〜４２のＳＷマクロの出力が変数Ｉ＿１〜Ｉ＿３に与えられる。図１３中（ｂ）では、入力をＩ＿１，Ｉ＿２とするＡＮＤマクロの出力が変数Ｆ＿１２に与えられ、さらに入力をＦ＿１２，Ｉ＿３とするＯＲマクロの出力が変数Ｆ＿２３に与えられる。図１３中（ｃ）では、入力をＦ＿２３として出力ポート４３のＬＡＭＰマクロから出力される。したがって、図１１のように配置したイメージ通り、ポート４０のスイッチとポート４１のスイッチの両方のスイッチを押した場合、又は、ポート４２のスイッチを押した場合に、ポート４３のランプが点灯するプログラムが生成される。
【００９２】
次いで、アセンブル部１１４は、ソースファイルをアセンブルしＨＥＸファイルを生成する（Ｓ１０６）。例えば、ユーザが、プログラム生成ウィンドウ５００のツールバー５４０に設けられた所定のアイコンをクリックすると、アセンブル部１１４は、Ｓ１０５で生成されたソースファイルをソースファイル格納部１２５から読み出し、アセンブルしてＨＥＸファイルを生成し、ＨＥＸファイル格納部１２６に格納する。
【００９３】
次いで、マイコン書き込み部１１５は、ＨＥＸファイルをマイコンへ書き込む（Ｓ１０７）。例えば、例えば、ユーザが、プログラム生成ウィンドウ５００のツールバー５４０に設けられた所定のアイコンをクリックすると、マイコン書き込み部１１５は、Ｓ１０６で生成されたＨＥＸファイルをＨＥＸファイル格納部１２６から読み出し、マイコンへ書き込みを行う。
【００９４】
次に、図１４のフローチャートを用いて、図１０のＳ１０４のコンパイルテーブル生成処理について説明する。このコンパイルテーブル生成処理は、上述のとおり、ロケーションファイルコンパイル部１１３によって実行される処理である。
【００９５】
まず、ロケーションファイルコンパイル部１１３は、ロケーションファイルを読み出す（Ｓ２０１）。例えば、ロケーションファイルコンパイル部１１３は、ロケーションファイル生成部１１２によりロケーションファイルの生成が完了後、ロケーションファイル格納部１２２からロケーションファイルを読み出す。
【００９６】
次いで、ロケーションファイルコンパイル部１１３は、Ｓ２０２〜Ｓ２０４においてロケーションファイルを生成する。すなわち、ロケーションファイルコンパイル部１１３は、ロケーションファイルのうち入力パネル８１０の部分を変換する（Ｓ２０２）。例えば、ロケーションファイルコンパイル部１１３は、Ｓ２０１で読み出したロケーションファイルのうち入力パネルに対応する部分を参照し、入力パネル用機能テーブルを生成する。入力パネル用機能テーブルは、入力パネル８１０に配置されたアイコンに対応するマクロを格納する。
【００９７】
図１５（ａ）は、このとき生成された入力パネル用機能テーブルの例であり、図１２に示したロケーションファイルをもとに生成した例である。入力パネル用機能テーブルは、行単位すなわちアイコン（マクロ）単位のデータ（行データ）を複数格納することができ、各行データには、パネル番号とマクロ、パラメータが含まれている。これらの行データは、ロケーションファイルの行ごとに、ロケーションファイルの行順、すなわち、パネルの番号順に生成される。
【００９８】
例えば、図１２のロケーションファイルの「Ｉ＿１：ＳＷ  Ｈ，Ｐ４．０」は、入力パネル用機能テーブルに、パネル番号「Ｉ＿１」、マクロ名「ＳＷ」、パラメータ「Ｈ，Ｐ４．０」として格納される。
【００９９】
次いで、ロケーションファイルコンパイル部１１３は、ロケーションファイルのうち処理パネルの部分を変換する（Ｓ２０３）。例えば、ロケーションファイルコンパイル部１１３は、Ｓ２０１で読み出したロケーションファイルのうち処理パネルに対応する部分を参照し、配線テーブルと処理パネル用機能テーブルを生成する。配線テーブルは、処理パネル８３０に配置されたアイコンの接続関係を示す情報が格納し、処理パネル用機能テーブルは、処理パネル８３０に配置されたアイコンに対応するマクロを格納する。
【０１００】
図１６は、このとき生成された配線テーブルの例であり、図１５（ｂ）は、このとき生成された処理パネル用機能テーブルの例である。これらの図は、図１２に示したロケーションファイルをもとに生成した例である。
【０１０１】
配線テーブルは、処理パネルの行と列に対応して２次元配列の構造を有し、個々の配列データには、機能インデックスと上側パネル番号、左側パネル番号が含まれている。機能インデックスは、処理パネル用機能テーブルのインデックスである。例えば、機能インデックスが「０」の場合は、処理の無い配線等のアイコンを意味している。上側パネル番号は上側に接続するパネルの番号、左側パネル番号は左側に接続するパネルの番号である。例えば、上側もしくは左側パネル番号が「−１」の場合は、上側もしくは左側に隣接して接続するパネルが存在しないことを意味している。
【０１０２】
処理パネル用機能テーブルは、入力パネル用機能テーブルと同様に、複数の行データを格納することができ、各行データには、パネル番号、マクロ、パラメータが含まれ、さらに、データの生成順にインデックスが付される。これらの行データは、処理パネルの処理ごとに生成される。
【０１０３】
配線テーブルと処理パネル用機能テーブルの生成は、ロケーションファイルの記述順、すなわち、パネルの番号順に行われる。例えば、図１２のロケーションファイルでは、Ｆ＿０１〜Ｆ＿０３を処理し、Ｆ＿１１〜Ｆ＿１３を処理し、Ｆ＿２２〜Ｆ＿２３を処理し、Ｆ＿３３〜Ｆ＿９３を処理し、配線テーブルとともに処理パネル機能テーブルを生成する。
【０１０４】
例えば、ロケーションファイルの「Ｆ＿０１：ＬＩＮＥ  ＬＲ」は、配線であり処理が無いため機能インデックス「０」、上側に接続するパネルが無いため上側パネル番号「−１」、左側に接続するパネルが無いため左側パネル番号「−１」となる。ロケーションファイルの「Ｆ＿１２：ＡＮＤ  Ｒ」は、ＡＮＤ演算する処理が有る。この場合、処理パネル用機能テーブルと配線テーブルの両方にデータが格納される。まず、処理パネル用機能テーブルにインデックス「１」、パネル番号「Ｆ＿１２」、マクロ名「ＡＮＤ」として格納される。このときマクロの入力が確定しないため、パラメータは設定されない。そして、配線テーブルは、処理パネル用機能テーブルと同じ機能インデックス「１」、上側に接続するパネルが有るため上側パネル番号「１１」、左側に接続するパネルが有るため左側パネル番号「０２」となる。
【０１０５】
ロケーションファイルの「Ｆ＿２３：ＯＲ  Ｒ」は、ＯＲ演算する処置が有るため、処理パネル用機能テーブルにインデックス「２」、パネル番号「Ｆ＿２３」、マクロ名「ＯＲ」として格納され、配線テーブルには、機能インデックス「２」、上側に接続するパネルがあるため上側パネル番号「２２」、左側に接続するパネルがあるため左側パネル番号「１３」となる。
【０１０６】
次いで、ロケーションファイルコンパイル部１１３は、ロケーションファイルのうち出力パネルの部分を変換する（Ｓ２０４）。例えば、ロケーションファイルコンパイル部１１３は、Ｓ２０１で読み出したロケーションファイルのうち出力パネルに対応する部分を参照し、出力パネル用機能テーブルを生成する。出力パネル用機能テーブルは、出力パネル８２０に配置されたアイコンに対応するマクロを格納する。
【０１０７】
図１５（ｃ）は、このとき生成された出力パネル用機能テーブルの例であり、図１２に示したロケーションファイルをもとに生成した例である。出力パネル用機能テーブルは、入力パネル用機能テーブルと同様に、複数の行データがロケーションファイルの行順に生成され、各行データには、パネル番号とマクロ、パラメータが含まれる。
【０１０８】
例えば、図１２のロケーションファイルの「Ｏ＿３：ＬＡＭＰ  Ｈ，Ｐ４．３」は、出力パネル用機能テーブルに、パネル番号「Ｏ＿３」、マクロ名「ＬＡＭＰ」、パラメータ「Ｈ，Ｐ４．３」として格納される。
【０１０９】
次に、図１７のフローチャートを用いて、図１０のＳ１０５のソースファイル生成処理について説明する。このソースファイル生成処理は、上述のとおり、ロケーションファイルコンパイル部１１３によって実行される処理である。
【０１１０】
まず、ロケーションファイルコンパイル部１１３は、Ｓ３０１〜Ｓ３０３において、コンパイルテーブル格納部１２３からコンパイルテーブルを取得し、コンパイルテーブルに基づいて図１３に示したようなソースファイルを生成する。ソースファイルの生成では、各テーブルをもとにマクロ命令が記述されるが、このとき、必要なマクロ情報（マクロ定義）をマクロ情報格納部１２４から取得し記述する。
【０１１１】
ソースファイルを生成する際、まず、ロケーションファイルコンパイル部１１３は、マイコンの入力部のプログラムを生成する（Ｓ３０１）。例えば、ロケーションファイルコンパイル部１１３は、入力パネル用機能テーブルを参照しマイコンの入力部のソースファイルを生成する。このとき、入力パネル用機能テーブルの行データごとに１行の命令が生成される。パネル番号を変数とし、パラメータを付したマクロの結果がこの変数に与えられるように記述する。例えば、図１５（ａ）の入力パネル用機能テーブルのパネル番号「Ｉ＿１」、マクロ名「ＳＷ」、パラメータ「Ｈ，Ｐ４．０」は、「Ｉ＿１＝ＳＷ＿Ｈ（Ｐ４．０）」となる。
【０１１２】
次いで、ロケーションファイルコンパイル部１１３は、マイコンの処理部のプログラムを生成する（Ｓ３０２）。例えば、ロケーションファイルコンパイル部１１３は、処理パネル用機能テーブルと配線テーブルを参照しマイコンの処理部のソースファイルを生成する。図１４のコンパイルテーブル生成処理では、処理パネル用機能テーブルにマクロのパラメータが格納されていないため、このマクロのパラメータを、配線テーブルを探索することで決定する。このとき、配線テーブルを現在のマクロからマイコン入力部へ向かって探索する。すなわち、配線テーブルにおいて、入力側のパネルの参照を繰り返し、参照したパネルが、マイコンの入力部、もしくは、他の処理の場合に、これを現在のマクロのパラメータとする。パラメータが決定すると、Ｓ３０１と同様に、処理パネル用機能テーブルの行データごとに、マクロの結果がパネル番号の変数に与えられるように記述する。
【０１１３】
例えば、図１５（ｂ）の処理パネル用機能テーブルのＦ＿１２のＡＮＤマクロの場合、図１６で、Ｆ＿１２に対応する配線テーブルの配列データを参照すると、上側パネル番号「１１」、左側パネル番号「０２」である。そして、矢印６１のように、上側のパネルのＦ＿１１を参照し、Ｆ＿１１の左側パネル番号が「０１」であり、Ｆ＿０１を参照すると、Ｆ＿０１の上側パネル番号及び左側パネル番号は「−１」である。したがって、Ｆ＿０１に入力する入力部のＩ＿１が、Ｆ＿１２の一方の入力となる。また、矢印６２のように、Ｆ＿１２の左側のパネルＦ＿０２を参照すると、Ｆ＿０２の上側パネル番号及び左側パネル番号は「−１」である。したがって、Ｆ＿０２に入力する入力部のＩ＿２が、Ｆ＿１２の他方の入力となる。よって、Ｆ＿１２のＡＮＤマクロのパラメータは、Ｉ＿１，Ｉ＿２と決定する。そして、処理パネル用機能テーブルのインデックス「１」、パネル番号「Ｆ＿１２」、マクロ名「ＡＮＤ」は、決定したパラメータ「Ｉ＿１，Ｉ＿２」とともに、「Ｆ＿１２＝ＡＮＤ（Ｉ１，Ｉ＿２）」となる。
【０１１４】
図１５（ｂ）の処理パネル用機能テーブルのＦ＿２３のＯＲマクロの場合、図１６で、Ｆ＿２３に対応する配線テーブルの配列データを参照すると、上側パネル番号「２２」、左側パネル番号「１３」である。そして、矢印６３のように、上側のパネルのＦ＿２２を参照すると、Ｆ＿２２の左側パネル番号が「１２」であり、Ｆ＿１２を参照すると、Ｆ＿１２は機能インデックスが「１」である。したがって、Ｆ＿１２が、Ｆ＿２３の一方の入力となる。また、矢印６４のように、Ｆ＿２３の左側のパネルのＦ＿１３を参照すると、Ｆ＿２３の左側パネル番号が「０３」であり、Ｆ＿０３を参照すると、Ｆ＿０３の上側パネル番号及び左側パネル番号は「−１」である。したがって、Ｆ＿０３に入力する入力部のＩ＿３が、Ｆ＿２３の他方の入力となる。よって、Ｆ＿２３のＯＲマクロのパラメータは、Ｆ＿１２，Ｉ＿３と決定する。そして、処理パネル用機能テーブルのインデックス「２」、パネル番号「Ｆ＿２３」、マクロ名「ＯＲ」は、決定したパラメータ「Ｆ＿１２，Ｉ＿３」とともに、「Ｆ＿２３＝ＯＲ（Ｆ１２，Ｉ＿３）」となる。
【０１１５】
次いで、ロケーションファイルコンパイル部１１３は、マイコンの出力部のプログラムを生成する（Ｓ３０３）。例えば、ロケーションファイルコンパイル部１１３は、出力パネル用機能テーブルと配線テーブルを参照しマイコンの出力部のソースファイルを生成する。このとき、Ｓ３０２と同様に、出力パネル用機能テーブルのマクロのパラメータを、配線テーブルを探索して決定し、出力パネル用機能テーブルの行データごとに命令を記述する。
【０１１６】
例えば、図１５（ｃ）の出力パネル用機能テーブルのＯ＿３のＬＡＭＰマクロの場合、図１６で、Ｏ＿３へ出力するパネルに対応するＦ＿９３を参照すると、Ｆ＿９３の左側パネル番号は「８３」である。そして、矢印６５のように、Ｆ＿８３の左側パネル番号が「７３」であり、同様にパネルの参照を繰り返すと、Ｆ＿２３の機能インデックスが「２」である。したがって、Ｆ＿２３が、Ｏ＿３の入力となる。よって、Ｏ＿３のＬＡＭＰマクロのパラメータは、Ｆ＿２３と決定する。そして、出力パネル用機能テーブルのパネル番号「Ｏ＿３」、マクロ名「ＬＡＭＰ」、パラメータ「Ｈ，Ｐ４．３」は、決定したパラメータ「Ｆ＿２３」とともに、「ＬＡＭＰ＿Ｈ（Ｐ４．３，Ｆ２３）」となる。
【０１１７】
次いで、ロケーションファイルコンパイル部１１３は、生成したソースファイルを出力する（Ｓ３０４）。例えば、ロケーションファイルコンパイル部１１３は、Ｓ３０１〜Ｓ３０３で生成したソースファイルをソースファイル格納部１２５へ格納する。
【０１１８】
このように、本実施形態では、ＧＵＩをユーザに操作させてマイコンの動作を入力させ、ＧＵＩに基づいてマイコン用のプログラムを自動的に生成する。このＧＵＩには、広く一般に知られているような、配線や論理回路、フリップフロップなどマイコン周辺回路の素子を示すアイコンを用いているため、ユーザは、各動作を容易に理解することができる。さらに、マイコンの入力から出力までの動作を、これらのアイコンをパズルのように組み合わせることでプログラムが生成できるため、ソフトウェアの知識の無いユーザ、例えば、プログラム言語習得前の技術者や技術者以外の学生等でも、容易にプログラムを作成することができる。
【０１１９】
また、設定されたＧＵＩに基づいて、自動的にプログラムを生成することにより、人的ミスを防止できるため、デバッグの工数を削減することができるとともに、プログラムの品質向上を図ることができる。
【０１２０】
さらに、プログラムの生成では、編集パネルにアイコンが配置された位置を示すロケーションファイルに基づいてプログラムを生成する。このとき、アイコンの接続関係を示す配線テーブルを生成することにより、ロケーションファイルから無駄な配線情報を除いて、必要な命令のみのプログラムを効率よく生成することができる。
【０１２１】
尚、上述の例に限らず、このほか本発明の要旨を逸脱しない範囲で種々の変形、実施が可能である。
【図面の簡単な説明】
【０１２２】
【図１】本発明にかかるプログラム生成装置を有するシステムの構成図である。
【図２】本発明にかかるプログラム生成装置のハードウェアの構成図である。
【図３】本発明にかかるプログラム生成装置の構成を示すブロック図である。
【図４】本発明にかかるプログラム生成装置の画面表示例である。
【図５】本発明にかかるプログラム生成装置の画面表示例である。
【図６】本発明にかかるプログラム生成装置の画面表示例である。
【図７】本発明にかかるプログラム生成装置の画面表示例である。
【図８】本発明にかかるプログラム生成装置の画面表示例である。
【図９】本発明にかかるプログラム生成装置に格納されるマクロの例である。
【図１０】本発明にかかるプログラム生成装置の動作を示すフローチャートである。
【図１１】本発明にかかるプログラム生成装置の画面表示例である。
【図１２】本発明にかかるプログラム生成装置に格納されるロケーションファイルの例である。
【図１３】本発明にかかるプログラム生成装置に格納されるソースファイルの例である。
【図１４】本発明にかかるプログラム生成装置の動作を示すフローチャートである。
【図１５】本発明にかかるプログラム生成装置に格納されるコンパイルテーブルの例である。
【図１６】本発明にかかるプログラム生成装置に格納される配線テーブルの例である。
【図１７】本発明にかかるプログラム生成装置の動作を示すフローチャートである。
【符号の説明】
【０１２３】
１００  プログラム生成装置
１１０  制御処理部
１１１  ＧＵＩ処理部
１１２  ロケーションファイル生成部
１１３  ロケーションファイルコンパイル部
１１４  アセンブル部
１１５  マイコン書き込み部
１１６  プログラム生成部
１２０  情報格納部
１２１  ＧＵＩ情報格納部
１２２  ロケーションファイル格納部
１２３  コンパイルテーブル格納部
１２４  マクロ情報格納部
１２５  ソースファイル格納部
１２６  ＨＥＸファイル格納部
１３０  表示部
１４０  入力部
１５０  出力部
２００  マイコンボード
２０１  マイコン
２０２  マイコン入力部
２０３  マイコン出力部
５００  プログラム生成ウィンドウ
５１０  入出力パレット
５２０  処理パレット
５３０  編集パネル
５４０  ツールバー
【図１】
2006344076.tif 000003
【図２】
2006344076.tif 000004
【図３】
2006344076.tif 000005
【図４】
2006344076.tif 000006
【図５】
2006344076.tif 000007
【図６】
2006344076.tif 000008
【図７】
2006344076.tif 000009
【図８】
2006344076.tif 000010
【図９】
2006344076.tif 000011
【図１０】
2006344076.tif 000012
【図１１】
2006344076.tif 000013
【図１２】
2006344076.tif 000014
【図１３】
2006344076.tif 000015
【図１４】
2006344076.tif 000016
【図１５】
2006344076.tif 000017
【図１６】
2006344076.tif 000018
【図１７】
2006344076.tif 000019