(57)【要約】【課題】  機能単位の位置のみならず、機能単位が必要としているパラメータなどの属性までも読み取れるような図形式プログラムを表示するプログラム表示方法を提供する。【解決手段】  属性情報記憶部１０４が、機能単位ブロックに対応する機能単位が必要とする属性の情報である属性情報を記憶し、図形式プログラム管理部１０１が属性情報記憶部１０４に記憶されている属性情報を読み出し、また、位置関係情報記憶部１０２から対応する機能単位ブロックを読み出して、機能単位ブロックに対応づけてモニタ１１１に出力する。【選択図】  図１
2007041846.tif 000002
【特許請求の範囲】
【請求項１】
機能単位を表す機能単位ブロックを組み合わせた図形式プログラムを表示するプログラム表示方法において、
属性情報記憶手段が、前記機能単位ブロックに対応する機能単位が必要とする属性の情報である属性情報を記憶する属性情報記憶ステップと、
表示手段が、前記図形式プログラムを表示するとともに、対応する機能単位ブロックに対応づけて前記属性情報を表示する属性情報表示ステップと、
を含むことを特徴とするプログラム表示方法。
【請求項２】
入力手段が、前記属性情報を入力する属性情報入力ステップをさらに含むことを特徴とする請求項１記載のプログラム表示方法。
【請求項３】
前記属性情報入力ステップでは、前記属性情報として入力された変数が外部参照であるか、自単位内部に存在するかを示す有効範囲情報をも入力し、
前記属性情報表示ステップでは、前記有効範囲情報に基づいて、前記変数の有効範囲を図形で示す有効範囲情報をも表示することを特徴とする請求項２記載のプログラム表示方法。
【請求項４】
ライブラリ情報読出手段が、プログラムを作成するときに必要となる機能単位に関する情報が記憶されているライブラリから、前記機能単位が必要とする属性である変数の型を表す変数型表記を読み出すステップをさらに含むことを特徴とする請求項１記載のプログラム表示方法。
【請求項５】
前記属性情報表示ステップでは、前記変数型表記を前記属性情報とともに表示することを特徴とする請求項４記載のプログラム表示方法。
【請求項６】
機能単位を表す機能単位ブロックを組み合わせた図形式プログラムを表示するプログラム表示装置において、
前記機能単位ブロックに対応する機能単位が必要とする属性の情報である属性情報を記憶する属性情報記憶手段と、
前記図形式プログラムを表示するとともに、対応する機能単位ブロックに対応づけて前記属性情報を表示する表示手段と、
を有することを特徴とするプログラム表示装置。
【請求項７】
前記属性情報を入力する入力手段をさらに有することを特徴とする請求項６記載のプログラム表示装置。
【請求項８】
前記入力手段は、前記属性情報として入力された変数が外部参照であるか、自単位内部に存在するかを示す有効範囲情報をも入力する機能を有し、
前記表示手段は、前記有効範囲情報に基づいて、前記変数の有効範囲を図形で示す有効範囲情報をも表示する機能を有することを特徴とする請求項７記載のプログラム表示装置。
【請求項９】
プログラムを作成するときに必要となる機能単位に関する情報が記憶されているライブラリをさらに有し、
前記表示手段は、前記ライブラリに記憶されている前記機能単位が必要とする属性である変数の型を表す変数型表記を表示する機能を有することを特徴とする請求項６記載のプログラム表示装置。
【請求項１０】
機能単位を表す機能単位ブロックを組み合わせた図形式プログラムからプログラムを生成するプログラム生成装置において、
前記機能単位ブロックに対応する機能単位が必要とする属性の情報である属性情報を記憶する属性情報記憶手段と、
前記図形式プログラムを表示するとともに、対応する機能単位ブロックに対応づけて前記属性情報を表示する表示手段と、
プログラムを作成するときに必要となる機能単位に関する情報が記憶されているライブラリと、
前記図形式プログラムから前記機能単位ブロックの種類と接続関係を読み出し、前記ライブラリから前記図形式プログラムに用いられている前記機能単位の処理内容を読み出し、前記属性情報記憶手段から前記属性情報を読み出してプログラムを生成するプログラム生成手段と、
を有することを特徴とするプログラム生成装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、プログラム表示方法および装置に関し、特に機能単位を表す機能単位ブロックを組み合わせた図形式プログラムを表示するプログラム表示方法および装置に関する。
【背景技術】
【０００２】
従来から、各種製造プラントなどに適用する産業向けの制御装置や、組み込み機器などを動作させるための部品である情報処理装置のプログラムを記述するために、図形表示を用いていた。図形表示とは、機能単位をブロックで表現し、各ブロック間の関係を線で表現して、プログラムがどのような機能単位で構成されているか、およびそれぞれの機能単位がどのようにつながっているかを表すものである。
【０００３】
たとえば、図形表示としてＦＢ（Function Block）図やデータフローダイアグラム（ＤＦＤ）と呼ばれる表示形式が用いられている（たとえば、特許文献１参照）。プログラムをＦＢ図形式で表示したときの機能単位を表す機能単位ブロック部分を抜き出して表記したものを図１５に示す。
【０００４】
図１５は、プログラムをＦＢ図形式で表示したときの機能単位ブロックの拡大図である。図１５に示すとおり、機能単位ブロック８００は、ＰＩ（Proportional Integral）制御の機能を表す機能単位ブロックである。機能単位ブロック８００に向けられた矢印と、機能単位ブロック８００から出ている矢印はそれぞれ、機能単位ブロック８００が表す機能であるＰＩ制御の入力と出力を表している。つまり、ＰＩ制御は、入力が１つで、出力が１つであることがわかる。
【０００５】
ＦＢ図のような図形表示によるプログラムの表現方法は、事務処理用プログラムや、ＧＵＩ（Graphical User Interface）の制御を行うプログラムなどの分野で使われているようなフローチャートによる処理順序の記述では内容を表現するのに不便な分野で使用される。つまり、信号処理のようにデータの流れを記述した方が便利な分野で使用されるものである。
【０００６】
ところで、このようなＦＢ図で書かれたプログラムは、人の手によりアセンブリ言語やＣ言語のようなプログラム言語を用いて書き直され、コンパイラなどのプログラミングツールを使用してコンピュータが直接実行できる形態に変換していた。しかし、ＦＢ図によるプログラムからプログラム言語によるプログラムへの変換は機械的に実行可能である。そこで、ＦＢ図によるプログラムを自動的にＣ言語などのプログラムに変換し、プログラミングツールを使用してコンピュータで直接実行可能な形態を得るといったプログラムの自動生成装置が提案されている。また、変換作業を自動化することによってＦＢ図によるプログラムを直接コンピュータで実行可能な形態に変換するプログラムの自動生成装置も提案されている。
【０００７】
ところで、ＦＢ図で用いられる機能単位ブロックの代表的なものとしては、ＰＩ制御やＰＩＤ（Proportional Integral Differential）制御などがある。たとえば、ＰＩ制御は、入力をｕ（ｔ）、出力をｙ（ｔ）、時間をｔとすると、以下のようなアルゴリズムで計算を行うことができる。
【０００８】
ｙ（ｔ）＝Ｋｐ＊（ｕ（ｔ）＋（１／Ｔｉ）＊∫ｕ（ｔ）ｄｔ）          ……（１）
上記式（１）において、ＫｐとＴｉはＰＩ制御のパラメータである。また、式（１）は連続系において用いられる式である。ＰＩ制御を実際に行うときにはマイクロプロセッサで行うことが多いので、入力をｕ（ｋ）、出力をｙ（ｋ）、ワークメモリの値をｗ（ｋ）、離散化された時間をｋ、演算間隔をＴｓとして式（１）を離散系で表すと、たとえば以下のようなアルゴリズムで計算を行うことができる。このとき、実時間ｔは、ｔ＝Ｔｓ＊ｋとなる。
【０００９】
ｗ（ｋ）＝（Ｋｐ＊Ｔｓ／Ｔｉ）＊ｕ（ｋ）＋ｗ（ｋ−１）              ……（２）
ｙ（ｋ）＝Ｋｐ＊ｕ（ｋ）＋ｗ（ｋ）                                  ……（３）
上記式（２）、式（３）は、式（１）からよく知られたオイラー法のような離散積分の近似方法を用いて得ることができる。
【００１０】
このように、ＰＩ制御は、属性としてＫｐ、Ｔｉのようなパラメータを持っている。また、一般的に数値演算を行うアルゴリズムにおいては、ほとんどの場合パラメータが必要とされている（たとえば、特許文献２、３参照）。
【特許文献１】特開平８−１０６３８０号公報
【特許文献２】特許第２９２７４８４号公報
【特許文献３】特開２００２−３０４２９５号公報
【発明の開示】
【発明が解決しようとする課題】
【００１１】
しかし、従来のプログラム生成装置においては、図１５に示した通り、機能単位ブロックとともに、機能単位が必要とする属性情報が表示されていないのが常であった。その一方で、ＦＢ図のような形式で記述された可読性の高いプログラムは、各種の製造プラントなどに適用する産業向けの制御装置に適用された場合、プラントを調整するときに必要とされる制御系の図面として使用されることが多い。
【００１２】
プラントを調整するときには、パラメータを調整して動きを調整することになるので、パラメータが記載されている一覧表と、パラメータの位置を示すＦＢ図の両方を見比べながら調整作業を行う必要があるという問題があった。
【００１３】
また、プログラムの作成時においても、機能単位が必要とするパラメータの名称などが直接見えない場合には、プログラムの見通しがよくなく、プログラムの作成に時間がかかるなどの問題点があった。
【００１４】
本発明はこのような点に鑑みてなされたものであり、機能単位の位置のみならず、機能単位が必要としているパラメータなどの属性までも読み取れるような図形式プログラムを表示するプログラム表示方法を提供することを目的とする。
【００１５】
また、本発明の他の目的は、機能単位の位置のみならず、機能単位が必要としているパラメータなどの属性までも読み取れるような図形式プログラムを表示するプログラム表示装置を提供することである。
【課題を解決するための手段】
【００１６】
本発明では上記問題を解決するために、機能単位を表す機能単位ブロックを組み合わせた図形式プログラムを表示するプログラム表示方法において、属性情報記憶手段が、前記機能単位ブロックに対応する機能単位が必要とする属性の情報である属性情報を記憶する属性情報記憶ステップと、表示手段が、前記図形式プログラムを表示するとともに、対応する機能単位ブロックに対応づけて前記属性情報を表示する属性情報表示ステップとを含むことを特徴とするプログラム表示方法が提供される。
【００１７】
このようなプログラム表示方法によれば、属性情報記憶手段により記憶された機能単位ブロックに対応する機能単位が必要とする属性の情報である属性情報が、表示手段により図形式プログラムが表示されるとともに、図形式プログラム内の属性情報に対応する機能単位ブロックに対応づけて表示される。
【００１８】
また、本発明では、機能単位を表す機能単位ブロックを組み合わせた図形式プログラムを表示するプログラム表示装置において、前記機能単位ブロックに対応する機能単位が必要とする属性の情報である属性情報を記憶する属性情報記憶手段と、前記図形式プログラムを表示するとともに、対応する機能単位ブロックに対応づけて前記属性情報を表示する表示手段とを有することを特徴とするプログラム表示装置が提供される。
【００１９】
このようなプログラム表示装置によれば、属性情報記憶手段に記憶されている機能単位ブロックに対応する機能単位が必要とする属性の情報である属性情報を、表示手段が図形式プログラムを表示するとともに、対応する機能単位ブロックに対応づけて表示する。
【発明の効果】
【００２０】
本発明のプログラム表示方法によれば、機能単位ブロックに対応する機能単位が必要とする属性の情報である属性情報が、対応する機能単位ブロックに対応づけて表示されるので、図形式プログラムによって表されるプログラムの視認性がよりよくなる。
【００２１】
また、本発明のプログラム表示装置によれば、機能単位ブロックに対応する機能単位が必要とする属性の情報である属性情報が、対応する機能単位ブロックに対応づけて表示されるので、図形式プログラムによって表されるプログラムの視認性がよりよくなる。
【発明を実施するための最良の形態】
【００２２】
以下、本発明の実施の形態を図面を参照して詳細に説明する。
〔第１の実施の形態〕
図１は、本実施の形態に係るプログラム生成装置の処理機能を示す図である。図１に示すとおり、プログラム生成装置１００は、図形式プログラム管理部１０１、位置関係情報記憶部１０２、ライブラリ１０３、属性情報記憶部１０４、プログラム自動生成部１０５、生成プログラム１０６、属性情報変更部１０７、入力部１１０、およびモニタ１１１を備えている。
【００２３】
図形式プログラム管理部１０１は、入力部１１０から入力された機能単位ブロックおよび各機能単位ブロック間の接続関係を指定する位置関係情報が入力されると、位置関係情報として設定されている機能単位ブロックの位置と関係に基づいて、モニタ１１１に図形式プログラムを表示例１１１ａのように表示する。また、位置関係情報記憶部１０２に位置関係情報を記憶する。
【００２４】
ライブラリ１０３には、プログラム生成装置１００を用いてプログラムをするときに必要となるすべての機能単位に関する情報が記憶されている。このすべての機能単位に関する情報とは、たとえば、図形の種類、名称、機能単位が必要とするパラメータなどの属性、および機能単位が機能を実現するためのアルゴリズムである。具体的には、ＰＩ制御を例に説明すると、ＰＩ制御を表す図形、ＰＩ制御という機能単位ブロックの機能を表す名称、ＰＩ制御が必要とする属性である比例定数と積分定数とワーク変数、およびＰＩ制御の機能を実現するためのアルゴリズムである。
【００２５】
属性情報記憶部１０４は、機能単位が必要とする属性の属性情報を記憶している。ＰＩ制御の場合の属性情報は、比例定数、積分定数、およびワーク変数としてどんな値が設定されているかを記憶している。プログラム自動生成部１０５は、図形式プログラム管理部１０１から受け取った図形式プログラムに関する情報からプログラムの自動生成を行う。具体的には、位置関係情報記憶部１０２から位置関係情報を受け取り、ライブラリ１０３から図形式プログラムを構成する機能単位のアルゴリズムを受け取り、属性情報記憶部１０４から属性情報として設定された変数や値を受け取り、受け取った情報、アルゴリズム、および属性情報からプログラムを自動生成する。
【００２６】
生成プログラム１０６は、プログラム自動生成部１０５が生成したプログラムである。属性情報変更部１０７は、入力部１１０から入力される指示信号を受けて、属性情報記憶部１０４に記憶されている属性情報を変更、もしくはまだ記憶されていない属性情報を記憶させる。
【００２７】
図２は、本実施の形態に係るプログラム生成装置のハードウェア構成例を示す図である。プログラム生成装置１００は、ＣＰＵ（Central Processing Unit）１２１によって装置全体が制御されている。ＣＰＵ１２１には、バス１２７を介してＲＡＭ（Random Access Memory）１２２、ハードディスクドライブ（ＨＤＤ:Hard Disk Drive）１２３、グラフィック処理装置１２４、入力インタフェース１２５、および通信インタフェース１２６が接続されている。
【００２８】
ＲＡＭ１２２には、ＣＰＵ１２１に実行させるＯＳ（Operating System）のプログラムやアプリケーションプログラムの少なくとも一部が一時的に格納される。また、ＲＡＭ１２２には、ＣＰＵ１２１による処理に必要な各種データが格納される。ＨＤＤ１２３には、ＯＳやアプリケーションプログラムが格納される。
【００２９】
グラフィック処理装置１２４には、モニタ１１１が接続されている。グラフィック処理装置１２４は、ＣＰＵ１２１からの命令に従って、画像をモニタ１１１の画面に表示させる。入力インタフェース１２５には、キーボード１１０ａとマウス１１０ｂとが接続されている。入力インタフェース１２５は、キーボード１１０ａやマウス１１０ｂから送られてくる信号を、バス１２７を介してＣＰＵ１２１に送信する。
【００３０】
通信インタフェース１２６は、ネットワーク１０に接続されている。通信インタフェース１２６は、ネットワーク１０を介して、他のコンピュータとの間でデータの送受信を行う。以上のようなハードウェア構成によって、本実施の形態のプログラム生成装置の処理機能を実現することができる。
【００３１】
図３は、ＰＩ制御の機能単位ブロックを示す図である。図３に示すとおり、機能単位ブロック２００内には、機能単位の名称を示す機能単位名称表記２０１と機能単位の属性を示す属性情報表記２０２が表示されている。図形式プログラム管理部１０１は、ライブラリ１０３からＰＩ制御が必要とする属性に関する表示に必要な情報を読み取る。つまり、機能を表す名称、および属性情報を読み取る。そして、読み取った情報が機能単位ブロック内に現れるように機能単位ブロックを表示する。
【００３２】
しかし、ライブラリ１０３に機能単位が必要とする属性情報が記録されておらず、情報を読み取ることができなかった場合には、属性情報表記２０２に示すように“−”が表示される。このときには、属性情報記憶部１０４に属性情報を入力することにより、機能単位ブロック内に属性情報を表示することができる。
【００３３】
図形式プログラム管理部１０１は、図形式プログラムの機能単位ブロックが選択されると、属性情報を入力するための属性情報入力ウィンドウを生成し、モニタ１１１に出力する。次に、属性情報入力ウィンドウについて説明する。
【００３４】
図４は、属性情報入力ウィンドウを示す図である。図４に示す属性情報入力ウィンドウ３００は、ＰＩ制御が必要とする属性の名称の表記である属性名称表記３１０、属性情報を入力するための入力欄３２０、入力した属性情報を属性情報記憶部１０４に送信するための入力ボタン３３０、および入力欄３２０に入力した属性情報を取り消すための取消ボタン３４０を備えている。
【００３５】
図形式プログラム管理部１０１は、入力部１１０から属性情報入力・変更信号を受けとると、ライブラリ１０３に記憶されているＰＩ制御の属性に関する情報を読み取る。図形式プログラム管理部１０１は、ＰＩ制御が比例定数、積分定数、およびワーク変数を属性として必要とすることがわかると、比例定数という属性名称表記３１１と積分定数という属性名称表記３１２とワーク変数という属性名称表記３１３、および比例定数を入力するための入力欄３２１と積分定数を入力するための入力欄３２２とワーク変数を入力するための入力欄３２３を設けた属性情報入力ウィンドウ３００を生成し、モニタ１１１に出力する。
【００３６】
ユーザは、属性情報入力ウィンドウ３００がモニタ１１１に表示されると、属性名称表記３１０を見て、対応する入力欄３２０に所望の属性情報を記入し、入力ボタン３３０を押す。すると、属性情報変更部１０７は、入力欄３２０に入力された属性情報を受け取り、属性情報記憶部１０４に送信して記憶させる。そして、図形式プログラム管理部１０１は、新たに属性情報が記憶された属性情報記憶部１０４から属性情報を読み出し、機能単位ブロック内に属性情報が現されるようにＰＩ制御の機能単位ブロックを表示する。
【００３７】
また、図形式プログラム管理部１０１は、プログラム自動生成部１０５に対して図形式プログラムの情報を送信するときに、属性情報記憶部１０４から属性情報を読み出して、図形式プログラムとともに属性情報を送信する。図形式プログラムとともに属性情報を送信したときにプログラム自動生成部１０５が生成する生成プログラム１０６のソースを図５に示す。
【００３８】
図５は、属性情報が記録されている場合に生成される生成プログラムのソースを示す図である。図５に示すとおり、生成プログラムソース４００は、Ｃ言語形式で出力された生成プログラム１０６のソースの一部を示したものである。実際にプログラム自動生成部１０５が生成する生成プログラムソース４００は、関数や変数の定義部なども付随して生成されるが、ここでは、説明を簡単にするために、説明と関係の深い部分のみを取り出して示している。
【００３９】
ＰＩ制御のアルゴリズムは、Ｃ言語の関数ＰＩを呼び出すことにより処理が実行される。機能単位ブロック２００は、ＰＩ制御には入力と出力が１つずつ存在することを示しているが、生成プログラムソース４００には、入力と出力が１つずつ存在することに対応して、入力変数ｉｎが関数ＰＩに引き渡され、関数ＰＩの戻り値が出力として変数ｏｕｔに書き出されている。
【００４０】
また、属性の一部であるパラメータとして、ＫｐＡＶＲとＫｔＡＶＲが設定されているが、関数ＰＩの第２、第３の引数として関数ＰＩに引き渡されている。また、ワーク変数として設定されているｂｕｆｆｅｒは、関数ＰＩの第４引数として関数ＰＩに引き渡されている。なお、ワーク領域は、前回値保持領域として動作しなければならないため、ポインタを用いて変数のアドレスを渡すことによってこの機能動作を実現するようにしている。
【００４１】
図６は、属性情報が記録されている場合の機能単位ブロックを示す図である。図６に示すとおり、機能単位ブロック２１０には、属性情報入力ウィンドウ３００から入力された機能単位の属性が表示されている。属性情報表記２０３は、入力欄３２１から入力された比例定数である。以下同様に、属性情報表記２０４は、入力欄３２２から入力された積分定数であり、属性情報表記２０５は、入力欄３２３から入力されたワーク変数である。
【００４２】
以上のように、属性情報入力ウィンドウ３００から入力された属性情報は、属性情報変更部１０７によって属性情報記憶部１０４に格納される。そして、図形式プログラム管理部１０１によって図形式プログラムの機能単位ブロック内に表示されるとともに、プログラムの変数として設定される。
【００４３】
したがって、ユーザにとって、図形式プログラムにおける所望の機能単位の位置がわかるのみならず、機能単位が必要としているパラメータなどの属性が設定されているか否かや、どのような値に設定されているかまでも読み取ることができるので、可読性がより高まりプログラム作成が容易になる。
【００４４】
なお、入力欄３２０から入力する属性情報は、変数とは限らず、比例定数などのパラメータの数値を直接入力してもよい。図７に入力欄３２０に数値を直接入力したときの機能単位ブロックを示す。
【００４５】
図７は、属性情報が記録されている場合の機能単位ブロックを示す図である。図７に示すとおり、機能単位ブロック２２０には、数値表記２０３ａ、２０４ａが表示されている。数値表記２０３ａは、比例定数の入力欄３２１に入力された数値であり、数値表記２０４ａは、積分定数の入力欄３２２に入力された数値である。
【００４６】
また、入力欄３２０から入力する属性情報は、属性の意味がわかるように属性の種別を併記してもよい。図８に入力欄３２０に属性の種別を併記した属性情報を入力したときの機能単位ブロックを示す。
【００４７】
図８は、属性情報が記録されている場合の機能単位ブロックを示す図である。図８に示すとおり、機能単位ブロック２３０には、属性情報表記２０３ｂ、２０４ｂが表示されている。属性情報表記２０３ｂは、比例定数の入力欄３２１に入力された属性情報であり、属性情報表記２０４ｂは、積分定数の入力欄３２２に入力された属性情報である。
【００４８】
また、機能単位ブロックに識別番号を付して、それを機能単位ブロックとともに表示してもよい。図９に属性として識別番号を併記した機能単位ブロックを示す。
図９は、識別番号が付されている場合の機能単位ブロックを示す図である。図９に示すとおり、機能単位ブロック２１１には、識別番号表記２０６が表示されている。識別番号表記２０６として表示される識別番号は、たとえば、機能単位ブロックが指定されるとともに図形式プログラム管理部１０１内のカウンタに１加算し、そのカウンタの数値を読み出して位置関係情報とともに位置関係情報記憶部１０２に記憶しておくことにより実現される。
【００４９】
このように、機能単位ブロックに識別番号を併記することによって、たとえば、ＰＩ制御の機能単位ブロックが複数あり、それぞれの機能単位ブロックを区別することができる。すると、プログラム生成装置１００は、プログラムの記述不備でプログラムの生成に失敗した場合に、プログラムの記述不備の箇所を特定してレポートするために、この識別番号を使用することができる。したがって、この識別番号は、テキストベースのプログラム作成手法における行番号に相当する概念と捉えることができ、デバッグ時などにとても有用である。
【００５０】
また、機能単位ブロック内に表示されている各属性の表記に加えて、各変数の型を図によって表記してもよい。なお、変数の型とは、Ｃ言語においては、ｃｈａｒ型、ｓｈｏｒｔ型、ｌｏｎｇ型、ｆｌｏａｔ型などのようなものである。図１０に各変数の型を表記した機能単位ブロックを示す。
【００５１】
図１０は、変数型表記が表示される場合の機能単位ブロックを示す図である。図１０に示すとおり、機能単位ブロック２１２には、変数型表記２０７、２０８が表示されている。変数型表記２０７は、ｓｈｏｒｔ型を表す変数型表記であり、変数型表記２０８は、ｌｏｎｇ型を表す変数型表記である。このような変数型表記２０７、２０８を図表示することによって、ＫｐＡＶＲとＫｔＡＶＲがｓｈｏｒｔ型であり、ｂｕｆｆｅｒがｌｏｎｇ型であることが一目でわかる。
【００５２】
このように変数型表記を表示することにより、併記されているパラメータに対してどのような値や変数を設定すればよいか直感的にわかりやすくなる。したがって、プログラム作成時やプラントなどの調整時に見通しがよくなるので利便性が向上する。なお、変数型表記に装飾を行って表現を拡張してもよい。変数型表記に装飾を行った場合を図１１に示す。
【００５３】
図１１は、変数型表記に装飾を行った場合の表示例の拡大図である。図１１に示すとおり、変数型表記２０７ａには、右上に変数の型を表す“ｄｏｕｂｌｅ”という文字が付されている。変数型表記において、図形表示のみでは型の識別に限界がある場合には、型を表す図形表示に文字などで装飾を行って、図形表示のみによる記述表現の限界を拡張してもよい。
【００５４】
また、変数型表記を用いて変数の有効範囲を示すようにしてもよい。
図１２は、変数型表記を用いて有効範囲を示す場合の機能単位ブロックを示す図である。図１２に示すとおり、機能単位ブロック２１３には、変数型表記２０７ｂが表示されている。変数型表記２０７ｂは、変数型表記２０７ｂが付されている変数が参照であるか、自単位内部に存在するかを、色を変えることにより図表示したものである。
【００５５】
機能単位ブロック２１３においては、ＫｐＡＶＲとＫｔＡＶＲは参照であることを示す白色の変数型表記２０７ｂが付されており、ｂｕｆｆｅｒは自単位内部に存在することを示す黒色の変数型表記２０８が付されている。変数が参照であるか、自単位内部に存在するかは、たとえば、属性情報入力ウィンドウ３００の入力欄３２０にチェックボックスを設け、チェックボックスがチェックされているか否かを図形式プログラム管理部１０１が判断する。
【００５６】
なお、自単位内部に存在するとは、たとえばＣ言語の場合には、単位をコンパイル単位と捉えるとよい。すなわち、Ｃ言語におけるコンパイル単位は、ファイルスコープであるから、同一ファイルスコープ内にある変数は、自単位内部に存在する変数であり、他のファイルスコープ内にある変数は、外部の参照である変数である。このように変数の所在を図表示することにより、変数のメモリ内での所在を見通しよく表現することができるようになる。具体的には、自単位内部に存在する変数の数を数えることによってメモリのリソースを知ることができるので、図形式プログラムとともに表示されている黒色の変数型表記２０８の数を数えることによってメモリのリソースを知ることができる。
【００５７】
以上のように、図形式プログラムとともに図形式プログラムを構成する機能単位の属性に関する様々な情報を表示することによって、より視認性がよくなり大変有用である。
〔第２の実施の形態〕
次に、本発明の第２の実施の形態について説明する。本実施の形態は、プログラム生成装置１００によって生成された生成プログラム１０６を制御装置に適用してプラントを制御する場面を想定している。
【００５８】
図１３は、生成プログラムを用いてプラントの調整を行う場合の原理的な構成を示す説明図である。図１３には、プラント５００を制御するための制御装置６００が設置されている様子を示している。制御装置６００は、演算装置６１０、補助記憶装置６２０、外部インタフェース６３０、主記憶装置６４０を備えており、お互いがバス６５０により接続される。生成プログラム１０６は、補助記憶装置６２０に格納されており、主記憶装置６４０に読み出されて演算装置６１０により実行される。
【００５９】
また、制御装置６００には、ローダ装置７００が外部インタフェース６３０を介して接続されており、ローダ装置７００には、モニタ７１０や、入力装置７２０が接続されている。ここで、ローダ装置７００に接続されたモニタ７１０には、制御装置６００の内部の主記憶装置６４０の内部の様子がウィンドウの形式で表示されている。主記憶装置６４０の内部の様子を表示したウィンドウを図１４に示す。
【００６０】
図１４は、主記憶装置の内部の様子を表示する内部表示ウィンドウを示す図である。主記憶装置６４０の内部には、演算装置６１０で実行されているプログラムの変数領域が確保されている。そのため、主記憶装置６４０の内部を表示する内部表示ウィンドウ７３０には、変数名（ラベル）が表示され、その位置に該当する変数の内容が可読形式で表示されている。
【００６１】
つまり、属性情報入力ウィンドウ３００から入力され、プログラムの変数として設定された属性情報が内部表示ウィンドウ７３０に表示されることになる。これにより、主記憶装置６４０の内部の変数の様子をユーザが設定したわかりやすい変数として視認することができる。
【００６２】
さらに、入力装置７２０を用いてこのウィンドウ上で変数の値を変更することも可能である。つまり、内部表示ウィンドウ７３０の所望の欄の入力内容を変更することにより、プログラムに設定された変数や値を変更することができる。具体的には、たとえば、主記憶装置６４０で実行されているプログラムの内容を表示している表示欄７３１の２段目に表示されているＫｐＡＶＲという変数に対応づけられて設定されている１．５という数値を２に変更したい場合、入力装置７２０から１．５という数値を２に書き換え、送信ボタン７４０を選択することによって主記憶装置６４０内部のプログラムが書き換えられる。また、入力を失敗した場合には、取消ボタン７５０を選択することにより取り消すことができる。なお、補助記憶装置６２０内のプログラムが書き換えられ、書き換えられたプログラムが主記憶装置６４０にロードされ、演算装置６１０で実行されるようにしてもよい。
【００６３】
以上のことにより、プログラム生成装置１００で作成された図形式プログラムの機能単位ブロック内に表示されている変数は、ローダ装置７００に接続されたモニタ７１０上に表示された内部表示ウィンドウ７３０上にも表示される。したがって、モニタ１１１上に図形式プログラムとして表示されている情報を用いて、相当するパラメータをローダ装置７００を用いて操作しながらプラント５００を効率よく調整することが可能となる。なお、調整時にモニタ１１１を参照することが困難である場合には、図示されない外部出力装置を接続し、それを介して図形式プログラムを印字して紙に印刷した図面として参照しながら調整作業をしてもよい。
【００６４】
また、補助記憶装置６２０は、パーソナルコンピュータやサーバなどのコンピュータとは異なり、補助記憶装置としてハードディスクではなく、フラッシュＲＯＭ（Read Only Memory）、マスクＲＯＭ、ＰＲＯＭ（Programmable Read Only Memory）、ＥＰＲＯＭ（Erasable Programmable Read Only Memory）、ＥＥＰＲＯＭ（Electrically Erasable Programmable Read Only Memory）などの不揮発性メモリを用いてもよい。
【００６５】
また、主記憶装置６４０や、外部インタフェース６３０なども含めて、制御装置６００全体を１つにまとめた、ワンチップマイコンなどと呼称されるＬＳＩ（Large Scale Integration）を使用して構成してもよい。
【００６６】
制御装置６００がワンチップマイコンの場合には、ローダ装置７００は、たとえば、パーソナルコンピュータなどを用いる。そして、ローダ装置７００と制御装置６００をシリアルケーブルで接続して主記憶装置６４０にロードされているプログラムの内容をモニタ７１０に表示するような構成とすると上記のような処理が実現できる。
【図面の簡単な説明】
【００６７】
【図１】本実施の形態に係るプログラム生成装置の処理機能を示す図である。
【図２】本実施の形態に係るプログラム生成装置のハードウェア構成例を示す図である。
【図３】ＰＩ制御の機能単位ブロックを示す図である。
【図４】属性情報入力ウィンドウを示す図である。
【図５】属性情報が記録されている場合に生成される生成プログラムのソースを示す図である。
【図６】属性情報が記録されている場合の機能単位ブロックを示す図である。
【図７】属性情報が記録されている場合の機能単位ブロックを示す図である。
【図８】属性情報が記録されている場合の機能単位ブロックを示す図である。
【図９】識別番号が付されている場合の機能単位ブロックを示す図である。
【図１０】変数型表記が表示される場合の機能単位ブロックを示す図である。
【図１１】変数型表記に装飾を行った場合の表示例の拡大図である。
【図１２】変数型表記を用いて有効範囲を示す場合の機能単位ブロックを示す図である。
【図１３】生成プログラムを用いてプラントの調整を行う場合の原理的な構成を示す説明図である。
【図１４】主記憶装置の内部の様子を表示する内部表示ウィンドウを示す図である。
【図１５】プログラムをＦＢ図形式で表示したときの機能単位ブロックの拡大図である。
【符号の説明】
【００６８】
１００  プログラム生成装置
１０１  図形式プログラム管理部
１０２  位置関係情報記憶部
１０３  ライブラリ
１０４  属性情報記憶部
１０５  プログラム自動生成部
１０６  生成プログラム
１０７  属性情報変更部
１１０  入力部
１１１  モニタ
１１１ａ  表示例
【図１】
2007041846.tif 000003
【図２】
2007041846.tif 000004
【図３】
2007041846.tif 000005
【図４】
2007041846.tif 000006
【図５】
2007041846.tif 000007
【図６】
2007041846.tif 000008
【図７】
2007041846.tif 000009
【図８】
2007041846.tif 000010
【図９】
2007041846.tif 000011
【図１０】
2007041846.tif 000012
【図１１】
2007041846.tif 000013
【図１２】
2007041846.tif 000014
【図１３】
2007041846.tif 000015
【図１４】
2007041846.tif 000016
【図１５】
2007041846.tif 000017