(57)【要約】【課題】図形言語プログラムの作成効率を、一層に向上する技術を提供する【解決手段】本発明による図形言語プログラム作成装置（１０）は、第１マクロ要素が登録された記憶装置（２）と、第１マクロ要素を含む第２マクロ要素を作成し、前記記憶装置（２）に登録するマクロ要素作成手段（３）と、第２マクロ要素を含むファンクションブロックダイアグラム（１１）を作成するロジック作成手段（３）とを備えている。当該図形言語プログラム作成装置（１０）は、マクロ要素を階層的に使用することが可能であり、これにより、図形言語プログラムの作成効率を、一層に向上することができる。【選択図】　図１
2004005047.tif 000002
【特許請求の範囲】
【請求項１】
第１マクロ要素が登録された記憶装置と、
前記第１マクロ要素を含む第２マクロ要素を作成し、前記記憶装置に登録するマクロ要素作成手段と、
前記第２マクロ要素を含むファンクションブロックダイアグラムを作成するロジック作成手段
とを備えた
図形言語プログラム作成装置。
【請求項２】
請求項１に記載の図形言語プログラム作成装置において、
更に、
前記第１マクロ要素と、前記第１マクロ要素に含まれる第１マクロ演算要素と、前記第２マクロ要素と、前記第２マクロ要素に含まれる第２マクロ演算要素と、前記ファンクションブロックダイアグラムに含まれるＦＢＤ演算要素とにそれぞれ対応したインスタンス群を含む演算要素データを作成する演算要素データ作成手段を備え、
前記第１マクロ演算要素と、前記第２マクロ演算要素と、前記ＦＢＤ演算要素の属性は、前記インスタンス群のプロパティとして前記演算要素データに保存され、
前記演算要素データは、前記インスタンス群が、前記ファンクションブロックダイアグラムの構造と対応した木構造を構成するように作成される
図形言語プログラム作成装置。
【請求項３】
請求項２に記載の図形言語プログラム作成装置において、
前記第１マクロ要素に含まれる演算要素に対応したオブジェクトを有する第１マクロクラスと、前記第１マクロ要素と前記第２マクロ要素に含まれる演算要素とに対応したオブジェクトを有する第２マクロクラスとを作成し、前記記憶装置に登録するクラス作成手段と、
前記第１マクロ要素と前記第１マクロ演算要素とに対応する第１インスタンスを前記第１マクロクラスから生成し、前記第２マクロ要素と前記第２マクロ演算要素とに対応する第２インスタンスを前記第２マクロクラスから生成して、前記第１インスタンスと前記第２インスタンスを、前記インスタンス群の一部とするインスタンス生成手段
とを備えた
図形言語プログラム作成装置。
【請求項４】
（ａ）第１マクロ要素を記憶装置に登録するステップと、
（ｂ）前記第１マクロ要素を含む第２マクロ要素を作成し、前記記憶装置に登録するステップと、
（ｃ）前記第２マクロ要素を含むファンクションブロックダイアグラムを作成するステップ
とをコンピュータに実行させる
図形言語プログラム作成プログラム。
【請求項５】
請求項４に記載の図形言語プログラム作成プログラムにおいて、
更に、
（ｄ）前記第１マクロ要素と、前記第１マクロに含まれる第１マクロ演算要素と、前記第２マクロ要素と、前記第２マクロ要素に含まれる第２マクロ演算要素と、前記ファンクションブロックダイアグラムに含まれるＦＢＤ演算要素とにそれぞれ対応したインスタンス群を含む演算要素データを作成するステップ
を前記コンピュータに実行させ、
前記第１マクロ演算要素と、前記第２マクロ演算要素と、前記ＦＢＤ演算要素の属性は、前記インスタンス群のプロパティとして前記演算要素データに保存され、
前記演算要素データは、前記インスタンス群が前記ファンクションブロックダイアグラムの構造に対応した木構造を構成するように作成される
図形言語プログラム作成プログラム。
【請求項６】
請求項５に記載の図形言語プログラム作成プログラムにおいて、
（ｅ）前記第１マクロ要素に含まれる演算要素に対応したオブジェクトを有する第１マクロクラスと、前記第１マクロ要素と前記第２マクロ要素に含まれる演算要素とに対応したオブジェクトを有する第２マクロクラスとを作成し、前記記憶装置に登録するステップと、
（ｆ）前記第１マクロ要素と前記第１マクロ演算要素とに対応する第１インスタンスを前記第１マクロクラスから生成し、前記第２マクロ要素と前記第２マクロ演算要素とに対応する第２インスタンスを前記第２マクロクラスから生成して、前記第１インスタンスと前記第２インスタンスとを、前記インスタンス群の一部とするように前記演算要素データを作成するステップ
とを前記コンピュータに実行させる
図形言語プログラム作成プログラム。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、図形言語プログラム作成装置に関する。本発明は、特に、マクロを用いて図形言語で記述されたプログラムを作成する図形言語プログラム作成プログラムに関する。
【０００２】
【従来の技術】
プログラムのロジックを図形的に表現するために、図形言語が広く使用されている。図形言語プログラムでは、ロジックが、図形要素とそれらを接続するリンクとによって表現される。図形言語で記述されたロジックを示す図は、ファンクションブロックダイアグラム（ＦＢＤ）と呼ばれる。図形要素は、それぞれがある演算を示していることから、演算要素と呼ばれることがあり、以下では、演算要素と記述することにする。図形言語で記述されたプログラムは、プログラムに記述されたロジックを視覚的に直感的に把握することが可能であり、ユーザフレンドリ性に優れている。
【０００３】
図形言語プログラムの作成には、プログラムを効率よく作成するためにマクロ要素が使用されることがある。マクロ要素は、ある特定の機能が集約されたブロックであり、複数の演算要素で構成される。マクロ要素は、プログラムと同様に、ＦＢＤによって表現される。マクロ要素を使用することにより、作成されたロジックを再利用することが可能であり、これにより、図形言語プログラムの作成効率を向上することができる。更に、マクロ要素を使用することにより、複雑なロジックを簡略に表現することが可能である。
【０００４】
マクロ要素を使用して図形言語プログラムを作成する技術が、公開特許公報（特開平１１−２０２９０８）に開示されている。該公開特許公報に開示された技術では、図形言語が、装置の制御に使用される制御プログラムを記述するために使用されている。該公開特許公報には、マクロ要素が登録されたマクロライブラリを使用して、制御プログラムを作成する制御ドローイング装置が開示されている。
【０００５】
図形言語プログラムの作成効率は、一層に向上されることが望まれる。
【０００６】
更に、図形言語プログラムに使用されるマクロ要素に関する情報が体系的に整理され、該マクロ要素に関する情報の抽出と使用とが容易化されることが望まれる。
【０００７】
【発明が解決しようとする課題】
本発明の目的は、図形言語プログラムの作成効率を、一層に向上する技術を提供することにある。
【０００８】
本発明の他の目的は、図形言語プログラムに使用されるマクロ要素に関する情報を体系的に整理して保存し、該マクロ要素に関する情報の抽出と使用とを容易化する技術を提供することにある。
【０００９】
【課題を解決するための手段】
以下に、［発明の実施の形態］で使用される番号・符号を用いて、課題を解決するための手段を説明する。これらの番号・符号は、［特許請求の範囲］の記載と［発明の実施の形態］の記載との対応関係を明らかにするために付加されている。但し、付加された番号・符号は、［特許請求の範囲］に記載されている発明の技術的範囲の解釈に用いてはならない。
【００１０】
本発明による図形言語プログラム作成装置（１０）は、第１マクロ要素（”ＣＣＣ”）が登録された記憶装置（２）と、第１マクロ要素（”ＣＣＣ”）を含む第２マクロ要素（”ＢＢＢ”）を作成し、前記記憶装置（２）に登録するマクロ要素作成手段（３）と、第２マクロ要素（”ＢＢＢ”）を含むファンクションブロックダイアグラム（１１）を作成するロジック作成手段（３）とを備えている。当該図形言語プログラム作成装置（１０）は、マクロ要素を階層的に使用することが可能であり、これにより、図形言語プログラムの作成効率を、一層に向上することができる。
【００１１】
当該図形言語プログラム作成装置（１０）が、更に、第１マクロ要素（”ＣＣＣ”）と、第１マクロ要素（”ＣＣＣ”）に含まれる第１マクロ演算要素と、第２マクロ要素（”ＢＢＢ”）と、第２マクロ要素（”ＢＢＢ”）に含まれる第２マクロ演算要素と、ファンクションブロックダイアグラム（１１）に含まれるＦＢＤ演算要素とにそれぞれ対応したインスタンス群を含む演算要素データ（１４）を作成する演算要素データ作成手段（３）を備え、前記第１マクロ演算要素と、前記第２マクロ演算要素と、前記ＦＢＤ演算要素の属性は、前記インスタンスのプロパティとして前記演算要素データ（１４）に保存され、演算要素データ（１４）は、前記インスタンス群が、ファンクションブロックダイアグラム（１１）の構造と対応した木構造を構成するように作成されることが好ましい。かかるデータ構造を演算要素データ（１４）には、ファンクションブロックダイアグラム（１１）に関連したすべての演算要素及びマクロ要素の属性が体系的に整理されて保存され、演算要素及びマクロ要素に関する情報の抽出と利用が容易化される。
【００１２】
当該図形言語プログラム作成装置は、第１マクロ要素（”ＣＣＣ”）に含まれる演算要素に対応したオブジェクトを有する第１マクロクラスと、第２マクロ要素（”ＢＢＢ”）に含まれる演算要素と第１マクロ要素（”ＣＣＣ”）とにそれぞれ対応したオブジェクト群を有する第２マクロクラスとを作成し、前記記憶装置（２）に登録するクラス作成手段（３）と、第１マクロ要素（”ＣＣＣ”）と前記第１マクロ演算要素とに対応する第１インスタンスを第１マクロクラス（１５１）から生成し、第２マクロ要素（”ＢＢＢ”）と前記第２マクロ演算要素とに対応する第２インスタンスを第２マクロクラス（１５２）から生成して、前記第１インスタンスと前記第２インスタンスを、前記インスタンス群の一部とするインスタンス生成手段（３）とを備えていることが好ましい。第１マクロクラス（１５１）と第２マクロクラス（１５２）との使用は、ロジックデータ（１４）の作成を容易化する。
【００１３】
本発明による図形言語プログラム作成プログラムは、
（ａ）第１マクロ要素（”ＣＣＣ”）を記憶装置（２）に登録するステップと、
（ｂ）第１マクロ要素（”ＣＣＣ”）を含む第２マクロ要素（”ＢＢＢ”）を作成し、前記記憶装置（２）に登録するステップと、
（ｃ）第２マクロ要素（”ＢＢＢ”）を含むファンクションブロックダイアグラム（１１）を作成するステップ
とをコンピュータ（１０）に実行させる。
【００１４】
当該図形言語プログラム作成プログラムが
（ｄ）第１マクロ要素（”ＣＣＣ”）と、第１マクロ要素に含まれる第１マクロ演算要素と、第２マクロ要素（”ＢＢＢ”）と、第２マクロ要素（”ＢＢＢ”）に含まれる第２マクロ演算要素と、ファンクションブロックダイアグラム（１１）に含まれるＦＢＤ演算要素とにそれぞれ対応したインスタンス群を含む演算要素データ（１４）を作成するステップをコンピュータ（１０）に更に実行させ、前記第１マクロ演算要素と、前記第２マクロ演算要素と、前記ＦＢＤ演算要素の属性は、前記インスタンスのプロパティとして前記演算要素データ（１４）に保存され、前記演算要素データ（１４）は、前記インスタンス群がファンクションブロックダイアグラム（１１）の構造と対応した木構造を構成するように作成されることが好ましい。
【００１５】
このとき、当該図形言語プログラム作成プログラムは、
（ｅ）第１マクロ要素（”ＣＣＣ”）に含まれる演算要素に対応したオブジェクトを有する第１マクロクラス（１５１）と、第１マクロ要素（”ＣＣＣ”）と第２マクロ要素（”ＢＢＢ”）に含まれる演算要素とに対応したオブジェクトを有する第２マクロクラス（１５２）とを作成し、前記記憶装置（２）に登録するステップと、
（ｆ）第１マクロ要素（”ＣＣＣ”）と前記第１マクロ演算要素とに対応する第１インスタンスを前記第１マクロクラスから生成し、第２マクロ要素（”ＢＢＢ”）と前記第２マクロ演算要素とに対応する第２インスタンスを前記第２マクロクラス（１５２）から生成して、前記第１インスタンスと前記第２インスタンスとを、前記インスタンス群の一部とするように前記演算要素データ（１４）を作成するステップ
とをコンピュータ（１９）に実行させることが好ましい。
【００１６】
【発明の実施の形態】
以下、添付図面を参照しながら、本発明による図形言語プログラム作成装置の実施の一形態を説明する。
【００１７】
図１は、本発明の実施の一形態の図形言語プログラム作成装置１０を示す。図形言語プログラム作成装置１０は、入力装置１、記憶装置２、ＣＰＵ３、及び表示装置４を備えている。
【００１８】
入力装置１は、ユーザから図形言語プログラム作成装置１０に与えられる指示を受け取るためのユーザインターフェースである。入力装置１は、典型的には、キーボードとマウスとから構成される。
【００１９】
記憶装置２は、作成対象ロジックファンクションブロックダイアグラム１１（以下、「作成対象ロジックＦＢＤ１１」という。）と、マクロシェイプ１２１、１２２…と、ＯＲＣＡデータベース１３とを記憶する。作成対象ロジックＦＢＤ１１と、マクロシェイプ１２１、１２２…と、ＯＲＣＡデータベース１３とは、いずれも図形言語によりロジックを記述するときに作成されるデータで構成される。これらの詳細な内容は後述される。
【００２０】
記憶装置２は、更に、ＣＰＵ３によって実行されるプログラム群を記憶する。より詳細には、記憶装置２は、マクロエディタ１６、ロジッククリエーター１７、及びＯＲＣＡアシスタント１８を記憶する。
【００２１】
マクロエディタ１６は、マクロ要素を作成するために使用されるプログラムである。ユーザは、マクロエディタ１６を起動することにより、マクロ要素を作成することができる。
【００２２】
ロジッククリエータ１７は、作成対象ロジックＦＢＤ１１を作成するために使用されるプログラムである。ロジッククリエータ１７は、更に、作成対象ロジックＦＢＤ１１に対してビルド処理（コンパイル）を行う機能を有している。既述のマクロシェイプ１２１、１２２…とＯＲＣＡデータベース１３とは、該ビルド処理の実行の際に使用される。ビルド処理によって生成された実行プログラムを実行することにより、ユーザは、コンピュータに所望の動作を実行させることができる。
【００２３】
ＯＲＣＡアシスタント１８は、マクロ要素の作成のとき、及び図形言語プログラムのロジックの作成の間に、ＯＲＣＡデータベース１３にアクセスするために使用されるプログラムである。マクロエディタ１６とロジッククリエータ１７とは、それらがユーザによって起動されると、ＯＲＣＡアシスタント１８をコールする。ＯＲＣＡアシスタント１８をコールすることにより、マクロエディタ１６及びロジッククリエータ１７からＯＲＣＡデータベース１３へのアクセスが可能になる。
【００２４】
ＣＰＵ３は、マクロエディタ１６、ロジッククリエーター１７、ＯＲＣＡアシスタント１８を実行する。これらのプログラムを実行することにより、ユーザは、マクロ要素を作成し、又は図形言語を用いたロジックの作成を行うことができる。
【００２５】
表示装置４は、図形言語プログラム作成装置１０からユーザに情報を出力するユーザインターフェースである。表示装置４としては、例えば、ＣＲＴディスプレイが使用される。
【００２６】
続いて、記憶装置２に記憶されているデータをより詳細に説明する。上述のとおり、記憶装置２は、作成対象である作成対象ロジックファンクションブロックダイアグラム（作成対象ロジックＦＢＤ）１１と、マクロシェイプ１２１、１２２…と、ＯＲＣＡデータベース１３とを記憶する。
【００２７】
作成対象ロジックＦＢＤ１１は、ユーザが作成しようとするロジックが記述されたファンクションブロックダイアグラムである。ユーザは、作成しようとするロジックを作成対象ロジックＦＢＤ１１に作画する。
【００２８】
マクロシェイプ１２１、１２２、…は、作成対象ロジックＦＢＤ１１の編集のために使用可能であるマクロ要素のファンクションブロックダイアグラムである。マクロシェイプ１２１、１２２、…は、作成対象ロジックＦＢＤ１１の編集のために使用可能であるマクロ要素のそれぞれについて、一つずつ用意されている。
【００２９】
図２（ａ）、図３（ａ）は、マクロシェイプの一例を示す。図２（ａ）に示されているマクロシェイプ１２１は、マクロ要素”ＣＣＣ”のファンクションブロックダイアグラムであり、図３（ａ）に示されているマクロシェイプ１２２は、マクロ要素”ＢＢＢ”のファンクションブロックダイアグラムである。マクロ要素は、演算要素とそれらを接続するリンクにより構成される。例えば、マクロシェイプ１２１に示されるマクロ要素”ＣＣＣ”は、演算要素”ＡＯ”、”Ｆｘ１”、及び”ＡＩ”と、これらを相互に接続するリンクで構成されている。
【００３０】
マクロ要素には、他のマクロ要素を含むことが許される。例えば、図３（ａ）に示されているように、マクロ要素”ＢＢＢ”は、演算要素”ＡＯ”、”Ｆｘ２”、”ＡＩ”と、マクロ要素”ＣＣＣ”と、これらを相互に接続するリンクとで構成され、マクロ要素”ＣＣＣ”を含んでいる。マクロ要素が他のマクロ要素を含むことを許されていることにより、作成対象ロジックＦＢＤ１１の記述を一層に簡略に表現することができ、また、作成対象ロジックＦＢＤ１１の作成効率を一層に向上することができる。
【００３１】
ＯＲＣＡデータベース１３には、演算要素データ１４及びマクロクラス１５１、１５２、…が保存される。
【００３２】
演算要素データ１４には、作成対象ロジックＦＢＤ１１に含まれる演算要素の属性が記録される。演算要素データ１４のデータ構造は、オブジェクト指向プログラミングに適合するように定められている。より詳細には、演算要素データ１４は、作成対象ロジックＦＢＤ１１に含まれる演算要素及びマクロ要素のそれぞれに対応するインスタンスを有している。例えば、図４（ａ）に示されているように、作成対象ロジックＦＢＤ１１が、演算要素”ＡＩ”、”Ｆｘ３”、”ＡＯ”と、マクロ要素”ＢＢＢ”と、これらを接続するリンクで構成されている場合、図４（ｂ）に示されているように、演算要素データ１４は、インスタンス”ＡＯ”、”Ｆｘ３”、”ＡＯ”、”ＢＢＢ”を有する。ここで、インスタンス”ｘｘｘ”とは、演算要素又はマクロ要素”ｘｘｘ”に対応するインスタンスを示している。以下でも、同様の記述方法が使用される。
【００３３】
作成対象ロジックＦＢＤ１１に含まれる演算要素の属性は、該演算要素に対応するインスタンスのプロパティとして保存される。例えば、演算要素”ＡＩ”が有する名称、ＩＤは、インスタンス”ＡＩ”のプロパティとして保存される。更に、演算要素によって表現される演算に使用されるパラメータも、インスタンスのプロパティとして保存される。例えば、図５を参照して、演算要素”Ｆｘ３”が、折線関数の演算を表現している場合を考える。該折線関数は、屈曲点Ｐ１及びＰ２の座標を与えることにより一義的に定義される。このような場合、屈曲点Ｐ１の座標（ｘ１，ｙ１）と、屈曲点Ｐ２の座標（ｘ２，ｙ２）とが、インスタンス”Ｆｘ３”のプロパティとして保存される。
【００３４】
マクロ要素が他のマクロ要素を含む場合には、演算要素データ１４のデータ構造が階層化される。演算要素データ１４のデータ構造の階層化は、オブジェクト指向プログラミングにおいて、インスタンスが他のインスタンスを有することが許されていることを利用して行われる。図３（ｂ）に示されているように、あるマクロ要素に対応するインスタンスは、該マクロ要素に含まれる演算要素とマクロ要素とに対応するインスタンスを有する。例えば、図２（ｂ）に示されているように、演算要素”ＡＯ”、”Ｆｘ２”、”ＡＩ”と、マクロ要素”ＣＣＣ”とを含むマクロ要素”ＢＢＢ”が作成対象ロジックＦＢＤ１１に使用されている場合には、オブジェクト”ＢＢＢ”は、オブジェクト”ＡＯ”、”Ｆｘ１”、”ＡＩ”、及び”ＣＣＣ”を有する。更に、マクロ要素”ＢＢＢ”が演算要素”ＡＯ”、”Ｆｘ１”、”ＡＩ”を含むマクロ要素”ＣＣＣ”を含むことに対応して、オブジェクト”ＣＣＣ”はインスタンス”ＡＯ”、”Ｆｘ１”、及び”ＡＩ”を有している。
【００３５】
このように、演算要素データ１４は、それに含まれるインスタンス群が、作成対象ロジックＦＢＤ１１の階層構造に対応した木構造を有するように構築されている。これにより、演算要素データ１４には、作成対象ロジックＦＢＤ１１に含まれる演算要素及びマクロ要素、並びに、該マクロ要素に含まれる演算要素の属性を示すデータが階層化されて保存され、該データは、利用しやすい形態で演算要素データ１４に集約される。
【００３６】
マクロクラス１５１、１５２、…は、演算要素データ１４に含まれるマクロ要素に対応するインスタンスを生成するために用意されているクラスである。マクロクラス１５１、１５２、…は、作成対象ロジックＦＢＤ１１の編集のために使用可能であるマクロ要素のそれぞれについて、一つずつ用意されている。あるマクロ要素に対応して用意されているマクロクラスは、該マクロ要素に含まれている演算要素及び、該マクロ要素に含まれている他のマクロ要素にそれぞれ対応するオブジェクトから構成される。作成対象ロジックＦＢＤ１１にマクロ要素がドロップされて配置されると、該マクロ要素に対応するマクロクラスを用いて該マクロ要素に対応するインスタンスが生成され、演算要素データ１４に追加される。
【００３７】
図２（ｂ）は、マクロ要素”ＣＣＣ”に対応して用意されているマクロクラス１５１を示している。マクロ要素”ＣＣＣ”に含まれる演算要素”ＡＩ”、”Ｆｘ１”、及び”ＡＯ”にそれぞれ対応して、マクロクラス１５１は、オブジェクト”ＡＩ”、”Ｆｘ１”、及び”ＡＯ”を有している。ここで、オブジェクト”ｘｘｘ”とは、演算要素又はマクロ要素”ｘｘｘ”に対応するオブジェクトを示している。以下でも、同様の記述方法が使用される。
【００３８】
マクロクラス１５１、１５２、…は、マクロ要素が、他のマクロ要素を含む場合でも階層化されない。例えば、図３（ｂ）に示されているように、演算要素”ＡＩ”、”Ｆｘ２”、及び”ＡＯ”、並びにマクロ要素”ＣＣＣ”を含むマクロ要素”ＢＢＢ”に対応して設けられたマクロクラス１５２は、オブジェクト”ＡＩ”、”Ｆｘ２”、”ＡＯ”、及び”ＣＣＣ”を有している。しかし、オブジェクト”ＣＣＣ”は、マクロ要素”ＣＣＣ”が有する演算要素に対応するオブジェクトを有しているわけではない。
【００３９】
マクロクラス１５１、１５２、…に含まれるオブジェクトは、演算要素データ１４に含まれるインスタンスと同様にプロパティを有している。但し、マクロクラス１５１、１５２、…に含まれるオブジェクトのプロパティは、演算要素データ１４に含まれるインスタンスのプロパティのひな型である。作成した作成対象ロジックＦＢＤ１１に含まれる演算要素及びマクロ要素の属性は、演算要素データ１４に含まれるインスタンスのプロパティとして保存され、マクロクラス１５１、１５２、…に含まれるオブジェクトのプロパティは、作成した作成対象ロジックＦＢＤ１１に含まれる演算要素及びマクロ要素の属性に対応するわけではない。
【００４０】
図６は、図形言語プログラム作成装置１０によりマクロ要素が作成されるプロセスを示している。ユーザがマクロエディタ１６を起動すると（Ｓ０１）、マクロエディタ１６は、ＯＲＣＡアシスタント１８を呼び出す（Ｓ０２）。これにより、ＯＲＣＡデータベース１３へのアクセスが可能になる。
【００４１】
マクロエディタ１６は、マクロシェイプを作成するためのＧＵＩ（Ｇｒａｐｈｉｃａｌ　Ｕｓｅｒ　Ｉｎｔｅｒｆａｃｅ）環境の提供を開始する。マクロエディタ１６は、ユーザが入力装置１に行った操作に応じて、マクロシェイプに演算要素及びマクロ要素を配置し、更に、演算要素及びマクロ要素を結ぶリンクを配置し、マクロシェイプを作画する（Ｓ０３）。
【００４２】
入力装置１を介してユーザからマクロ登録指示を受け取ると（Ｓ０４）、マクロエディタ１６は、ＯＲＣＡアシスタント１８にマクロクラス生成指示を出す（Ｓ０５）。ＯＲＣＡアシスタント１８は、マクロクラス生成指示に応答して、作画されたマクロシェイプに含まれる演算要素及びマクロ要素にそれぞれ対応したオブジェクトを有するマクロクラスを生成して、ＯＲＣＡデータベース１３に登録する（Ｓ０６）。
【００４３】
マクロ登録指示を受け取ったマクロエディタ１６は、更に、作画されたマクロシェイプを記憶装置２に登録する（Ｓ０７）。
【００４４】
ユーザから終了指示を受け取ると（Ｓ０８）、マクロエディタ１６は、ＯＲＣＡアシスタント１８を開放した後（Ｓ０９）、終了する。以上で、マクロ要素の作成が終了する。
【００４５】
図７は、図形言語プログラム作成装置１０によりロジックが作成されるプロセスを示している。ユーザがロジッククリエータ１７を起動すると（Ｓ１１）、ロジッククリエータ１７は、ＯＲＣＡアシスタント１８を呼び出す（Ｓ１２）。これにより、ＯＲＣＡデータベース１３へのアクセスが可能になる。
【００４６】
ロジッククリエータ１７は、作成対象ロジックＦＢＤ１１を作成するためのＧＵＩ環境の提供を開始する。ロジッククリエータ１７は、ユーザが入力装置１に行った操作に応じて、作成対象ロジックＦＢＤ１１に演算要素及びマクロ要素を配置し、更に、演算要素及びマクロ要素を結ぶリンクを配置し、作成対象ロジックＦＢＤ１１を作画する（Ｓ１３）。
【００４７】
作成対象ロジックＦＢＤ１１に演算要素が配置されると、ロジッククリエータ１７は、インスタンス生成指示をＯＲＣＡアシスタント１８に出す（Ｓ１４）。ＯＲＣＡアシスタント１８は、インスタンス生成指示を受け取ると、該インスタンス生成指示に応答して、配置された演算要素に対応するインスタンスを演算要素データ１４に追加する（Ｓ１５）。
【００４８】
例えば図８に示されているように、作成対象ロジックＦＢＤ１１に、演算要素”ＡＩ”、及び”Ｆｘ３”が配置されると、演算要素データ１４には、インスタンス”ＡＩ”及び”Ｆｘ３”が追加される。演算要素”ＡＩ”、及び”Ｆｘ３”の属性は、インスタンス”ＡＩ”及び”Ｆｘ３”のプロパティとして演算要素データ１４に記述される。
【００４９】
一方、作成対象ロジックＦＢＤ１１にマクロ要素がドロップされて配置されると、ロジッククリエータ１７は、表示装置４に所定の表示画面を表示して、ドロップしたマクロ要素を配置するか否かの確認を行うようにユーザに要求する（Ｓ１７）。ユーザが入力装置１を操作して、ドロップしたマクロ要素を配置することを確認すると（Ｓ１８）、ロジッククリエータ１７は、インスタンス生成指示をＯＲＣＡアシスタント１８に出す（Ｓ１９）。
【００５０】
ＯＲＣＡアシスタント１８は、インスタンス生成指示を受け取ると、該インスタンス生成指示に応答して、配置されたマクロ要素に対応するインスタンスを生成して演算要素データ１４に追加する（Ｓ２０）。
【００５１】
マクロ要素に対応するインスタンスの生成には、マクロクラス１５１、１５２、…が使用される。図９（ａ）に示されているように、マクロ要素”ＢＢＢ”が作成対象ロジックＦＢＤ１１にドロップされたとする。ＯＲＣＡアシスタント１８は、マクロ要素”ＢＢＢ”に対応して用意されているマクロクラス１５２から、マクロ要素”ＢＢＢ”に対応するインスタンスを生成して演算要素データ１４に追加する。
【００５２】
ドロップされたマクロ要素が、他のマクロ要素を含む場合には、ＯＲＣＡアシスタント１８は、該他のマクロ要素に対応するインスタンスを生成した後、ドロップされたマクロ要素に対応するインスタンスを生成する。この場合、ドロップされたマクロ要素に対応するインスタンスは、該他のマクロ要素に対応するインスタンスを有するように生成される。
【００５３】
図９（ａ）〜（ｃ）を参照して、マクロ要素”ＣＣＣ”を含むマクロ要素”ＢＢＢ”がドロップされた場合、マクロクラス１５２からマクロ要素”ＢＢＢ”に対応するインスタンス”ＢＢＢ”が生成される（図９（ｂ））。このとき、マクロ要素”ＢＢＢ”に含まれるマクロ要素”ＣＣＣ”のインスタンス”ＣＣＣ”が、マクロ要素”ＣＣＣ”に対応して用意されているマクロクラス１５１から事前に生成され、生成されたインスタンス”ＣＣＣ”がインスタンス”ＢＢＢ”に組み込まれる。このようにして、演算要素データ１４には、作成対象ロジックＦＢＤ１１が有する階層構造に対応した木構造が構築される。
【００５４】
ドロップされたマクロ要素に対応するインスタンスの生成が完了すると、ＯＲＣＡアシスタント１８は、設定値入力リストを表示装置４に表示する（Ｓ２１）。設定値入力リストとは、該マクロ要素に含まれる演算要素が有する属性のうち、ユーザから設定値が与えられるべき属性のリストである。ユーザが入力装置１を使用して、該設定値を入力すると（Ｓ２２）、ＯＲＣＡアシスタント１８は、入力された設定値を該インスタンスのプロパティとして設定する。これにより、演算要素が有する属性が、ユーザが所望する設定値に設定される。
【００５５】
上記の過程により演算要素とマクロ要素とが作成対象ロジックＦＢＤ１１に配置され、更に、演算要素とマクロ要素とを結ぶリンクが配置されて、作成対象ロジックＦＢＤ１１が作画される。作成対象ロジックＦＢＤ１１の作画の間、ＯＲＣＡアシスタント１８は、作成対象ロジックＦＢＤ１１が有する階層構造に対応した木構造を有するように演算要素データ１４を構築し、更に、作成対象ロジックＦＢＤ１１に含まれる演算要素及びマクロ要素の属性を示すデータを演算要素データ１４に集約する。
【００５６】
作成対象ロジックＦＢＤ１１の作画が完了した後、作成したロジックに沿ってコンピュータを動作させるためには、作成対象ロジックＦＢＤ１１は、実行プログラムの形態にコンパイルされる必要がある。ユーザから、ビルド処理（コンパイル）の実行の指示がなされると（Ｓ２３）、ロジッククリエータ１７は、作成対象ロジックＦＢＤ１１と演算要素データ１４とを用いてビルド処理（Ｓ２４）を行う。ビルド処理（Ｓ２４）では、作成対象ロジックＦＢＤ１１に示された演算要素及びマクロ要素の接続関係と、演算要素データ１４に示された該演算要素及び該マクロ要素の属性とに基づいて、実行プログラムに記述されるべきロジックが生成され、実行プログラムが生成される。
【００５７】
ユーザから終了指示を受け取ると（Ｓ２５）、ロジッククリエータ１７は、ＯＲＣＡアシスタント１８を開放した後（Ｓ２６）、終了する。以上で、ロジックの作成が終了する。
【００５８】
以上に説明されているように、本実施の形態の図形言語プログラム作成装置１０は、マクロ要素を含むマクロ要素を用いて図形言語プログラミングを実行することができる。これにより、当該図形言語プログラム作成装置１０は、作成対象ロジックＦＢＤ１１を一層に簡略に記述することができ、また、作成対象ロジックＦＢＤ１１の作成効率を一層に向上することができる。
【００５９】
更に、本実施の形態の図形言語プログラム作成装置１０では、マクロ要素に関する情報が、演算要素データ１４に集約されて保存される。演算要素データ１４は、作成対象ロジックＦＢＤ１１が有する階層構造に対応した木構造を有するようなデータ構成を持つように生成される。これにより、マクロ要素に関する情報が体系的に整理して保存され、該マクロ要素に関する情報の抽出と使用とが容易化される。
【００６０】
【発明の効果】
本発明により、図形言語プログラムの作成効率を、一層に向上する技術が提供される。
【００６１】
また、本発明により、図形言語プログラムに使用されるマクロ要素に関する情報を体系的に整理して保存し、該マクロ要素に関する情報の抽出と使用とを容易化する技術が提供される。
【図面の簡単な説明】
【図１】図１は、本発明による実施の一形態の図形言語プログラム作成装置を示す。
【図２】図２（ａ）は、マクロシェイプ１２１を示し、図２（ｂ）は、マクロシェイプ１２１に対応して生成されるマクロクラス１５１を示している。
【図３】図３（ａ）は、マクロシェイプ１２２を示し、図２（ｂ）は、マクロシェイプ１２２に対応して生成されるマクロクラス１５２を示している。
【図４】図４（ａ）は、作成対象ロジックＦＢＤ１１を示し、図４（ｂ）は、作成対象ロジックＦＢＤ１１に対応して生成される演算要素データ１４を示す。
【図５】図５は、演算要素に設定される関数の一例を示す。
【図６】図６は、マクロ要素を登録する手順を示すフローチャートである。
【図７】図７は、マクロ要素を使用して作成対象ロジックＦＢＤ１１を作成し、更に実行プログラムを作成する手順を示すフローチャートであり、
【図８】図８（ａ）は、作成対象ロジックＦＢＤ１１が作成される過程を示し、図８（ｂ）は、演算要素データ１４が作成される過程を示す。
【図９】図９（ａ）は、作成対象ロジックＦＢＤ１１が作成される過程を示し、図９（ｂ）、（ｃ）は、演算要素データ１４が作成される過程を示す。
【符号の説明】
１：入力装置
２：記憶装置
３：ＣＰＵ
４：表示装置
１０：図形言語プログラム作成装置
１１：作成対象ロジックＦＢＤ
１２１、１２２、…：マクロシェイプ
１３：ＯＲＣＡデータベース
１４：演算要素データ
１５１、１５２、…：マクロクラス
【図１】
2004005047.tif 000003
【図２】
2004005047.tif 000004
【図３】
2004005047.tif 000005
【図４】
2004005047.tif 000006
【図５】
2004005047.tif 000007
【図６】
2004005047.tif 000008
【図７】
2004005047.tif 000009
【図８】
2004005047.tif 000010
【図９】
2004005047.tif 000011