JP3326713B2 - 図的プログラミング方法 - Google Patents

図的プログラミング方法

Info

Publication number
JP3326713B2
JP3326713B2 JP22656296A JP22656296A JP3326713B2 JP 3326713 B2 JP3326713 B2 JP 3326713B2 JP 22656296 A JP22656296 A JP 22656296A JP 22656296 A JP22656296 A JP 22656296A JP 3326713 B2 JP3326713 B2 JP 3326713B2
Authority
JP
Japan
Prior art keywords
block
name
function block
function
functional
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired - Fee Related
Application number
JP22656296A
Other languages
English (en)
Other versions
JPH1069379A (ja
Inventor
恒夫 村手
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Azbil Corp
Original Assignee
Azbil Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Azbil Corp filed Critical Azbil Corp
Priority to JP22656296A priority Critical patent/JP3326713B2/ja
Publication of JPH1069379A publication Critical patent/JPH1069379A/ja
Application granted granted Critical
Publication of JP3326713B2 publication Critical patent/JP3326713B2/ja
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Landscapes

  • Stored Programmes (AREA)

Description

【発明の詳細な説明】
【0001】
【発明の属する技術分野】本発明は、コンピュータのプ
ログラミング方法に属し、詳しくはグラフィカルな手法
を用いた図的プログラミング方法において、特にシステ
ム制御用プログラム等のソースコードを生成する際のソ
フトウェア部品の再利用を考慮した図的プログラミング
方法に関する。
【0002】
【従来の技術】図的プログラミングは、コンピュータデ
ィスプレイ上でブロック図を用いてグラフィカルに接続
し、その接続関係からプログラムをコーディングするプ
ログラミング手法である。このような図的プログラミン
グを、制御設計用コンフィギュレーション・ツールを例
に説明すると以下のようになる。制御設計用コンフィギ
ュレーション・ツールのハードウェア構成を示す模式図
を図1に示す。図的プログラミング環境は、ディスプレ
イ11、CPUや記憶装置等からなる本体12、キーボ
ード13およびマウス14からなるパーソナルコンピュ
ータ(PC)またはワークステーション(WS)上に構
築される。
【0003】この制御設計用コンフィギュレーション・
ツールのユーザー、すなわち制御用プログラムのプログ
ラマは、制御システムにおける入出力(I/O)ポイン
トや、PID部品といった制御ポイントなどに対応する
基本機能部品をコンピュータディスプレイ11上のブロ
ックメニュー16から選択して、これを編集画面15上
にアイコンとして表示する。このとき、編集画面15上
にアイコンとして表示される基本機能部品を機能ブロッ
クといい、編集画面15上に表示することを「張り付け
る」という。そしてユーザーは、これら編集画面15上
に張り付けられた機能ブロック17、19間の接続関係
をリンク18を用いて定義する。この制御設計用コンフ
ィギュレーション・ツールは、編集画面15上に張り付
けられた機能ブロックとユーザーによって定義された接
続関係とから制御用プログラムのソースコードを生成す
る。したがって、ユーザーは編集画面上で機能ブロック
の接続関係をグラフィカルに定義するだけで、各機能ブ
ロックが包含するプログラムを意識することなく、制御
用プログラムのソースコードを生成することができる。
【0004】ここで機能ブロックは、その機能に対応し
た設定項目とそれに与えられた設定値、およびその機能
を実現するための手続、すなわちプログラムコードを含
むオブジェクトである。したがって、各機能ブロックは
図的プログラミングにおけるソフトウェア部品というこ
とができる。したがって、アプリケーションに合わせて
任意の機能持つ新たな機能ブロックをユーザーが定義で
き、さらに、ユーザーが一度定義した機能ブロックをソ
フトウェア部品として再利用することができれば、プロ
グラムの可搬性およびツールの汎用性を高め、ひいては
ソフトウェアの生産性向上を図ることができる。
【0005】
【発明が解決しようとする課題】しかしながら、従来の
図的プログラミング環境においては、利用できる機能ブ
ロックは、入出力(I/O)、ロジック演算、調節制御
機能などのように、標準部品としてあらかじめシステム
に定義された特定の機能のものに限られており、上述の
ようなプログラムの再利用を考慮した図的プログラミン
グ環境は存在していなかった。図的プログラミング環境
においてアプリケーションに合わせて任意の機能を持つ
新たな機能ブロックをユーザーが定義でき、かつそのよ
うな新しい機能ブロックをソフトウェア部品として再利
用できるようにするためには、各ブロックが参照するデ
ータの整合性をどのように担保するかが問題となる。通
常のプログラミングにおいては、ソフトウェア部品とし
て再利用を目的としたプログラムは、使用言語によるも
のの、一般的には関数(ファンクション)を定義すると
いう形式で記述され、ライブラリとして登録しておかな
ければならない。このような関数形式のプログラミング
方法においては、関数を定義する際にそのプログラムで
使用する入出力データの型(タイプ)等のパラメータを
宣言し、この関数を呼び出す側ではこのパラメータ、す
なわちインターフェース条件を考慮して適切なコーディ
ングを行わなければならない。
【0006】これに対し、図的プログラミングにおいて
は、変数名やデータタイプ等のパラメータは機能ブロッ
ク内に包含されていてユーザーには陽に示されない。し
たがって、ソフトウェア部品を呼び出す側でインターフ
ェース条件を考慮したコーディングを行う関数形式とは
異なり、データの整合性を担保することが困難となる。
そのため、ユーザーが新たに作成したプログラムを機能
ブロックに割り付けることができたとしても、その機能
ブロックは特定のアプリケーションにのみに利用するこ
とができるだけで、プログラムの可搬性はあってもソフ
トウェア部品としての汎用性を欠いていた。
【0007】また、編集画面上で機能ブロックを接続し
ていく過程で、属性の一致しない機能ブロック同士を誤
って接続してしまうことも有り得る。このような場合で
も、従来の図的プログラミング環境においてはこれを即
座に指摘する機能がなかった。その結果、このような不
適切な接続に基づいて生成されるソースコードは、デー
タタイプが一致しないなどのバグを持ったものになり、
プログラムの信頼性を損なう結果となる。
【0008】上述のような問題に鑑み、本発明の目的
は、ソフトウェア部品となるプログラムの可搬性および
汎用性を高め、かつ生成されたプログラムの信頼性を担
保するために、データの整合性を考慮してソフトウェア
部品の再利用を可能とする図的プログラミング環境を提
供することにある。
【0009】
【課題を解決するための手段】上述の目的を達成するた
めに、本発明は、図的プログラミング方法において、ア
プリケーションに合わせて任意の機能を持った新しい機
能ブロックを生成する方法が、当該機能ブロックと接続
できる他の機能ブロックの属性を表す論理名称と、当該
機能ブロックとデータの授受をする他の機能ブロックが
論理名称を用いて記述された前記任意の機能を表すプロ
グラムコードとを包含しており、前記新しい機能ブロッ
クが他の機能ブロックと前記コンピュータディスプレイ
上でリンクによって接続されたときに、接続された前記
他の機能ブロックが前記新しい機能ブロックにおいてあ
らかじめ明示された前記論理名称を有するか否かを確認
する接続関係確認手順と、前記接続関係が定義された前
記新しい機能ブロックと前記他の機能ブロックを実体化
するときに前記新しい機能ブロックが包含するプログラ
ムコード中の前記論理名称を実際に接続された前記他の
機能ブロックの物理名称に自動的に置き換える名称置換
手順とを備えることを特徴とする。
【0010】ここで、機能ブロックの属性とは、その機
能ブロックのプログラムコードによって表される機能と
それに対応した設定項目をさす。したがって、機能ブロ
ックの属性を特定することによって、その機能ブロック
の入出力データのタイプを特定することができる。ま
た、機能ブロックは、論理名称と物理名称の少なくとも
2つの名称を持つことができる。論理名称とは、機能ブ
ロックの属性を示す名称であって、同一の設定項目およ
び同一のプログラムコードを有する機能ブロックは同一
の論理名称を有する。これに対し、物理名称は、特定の
アプリケーションの中で用いられる機能ブロックを特定
するために与えられる名称である。したがって、あるア
プリケーション中で同一の属性を有する機能ブロックは
共通の論理名称を持つが、それらはそれぞれ異なった物
理名称を有する。具体的には編集画面上に表示された機
能ブロックは、論理名称で特定される属性を持ったデー
タ本体を参照する見かけデータであり、この見かけデー
タに与えられる独自の名称が物理名称である。このと
き、物理名称はそのアプリケーションで使用される見か
けデータの格納場所を示すポインタとしての機能を有す
る。
【0011】したがって、本発明においては、新しい機
能ブロックとデータの授受を行うことのできる他の機能
ブロック、すなわちその新しい機能ブロックと接続する
ことができる他の機能ブロックを、論理名称によって特
定しておき、その新しい機能ブロックをコンピュータデ
ィスプレイ上で他の機能ブロックと接続しようとしたと
きに、接続確認手順において、この他の機能ブロックの
論理名称とあらかじめ宣言した論理名称との照合を行っ
ている。これによって、属性の不一致を検知することが
できる。
【0012】さらに、プログラマが新しい機能ブロック
が包含するプログラムコードにおいて、特定のアプリケ
ーションでデータの授受を行う他の機能ブロックを物理
名称ではなく論理名称を用いることを認めている。そし
て、新しい機能ブロックと他の機能ブロックとの接続関
係を定義した後にこれらの機能ブロック群を実体化する
ときに、プログラムコード中の論理名称を実際に接続さ
れた他の機能ブロックの物理名称に自動的に置き換える
名称置換手順とを備えることによって、そのアプリケー
ションに対応したソースコードが生成されるようにし
た。これによって、プログラムの可搬性と同時に汎用性
を持たせ、新しい機能ブロックのソフトウェア部品とし
ての再利用性を高めている。なお、ここで実体化とは、
複数の機能ブロックに包含された複数のプログラムコー
ドをこれら機能ブロック間の接続関係から統合して一連
のソースコードを生成することをいう。
【0013】また、請求項2に記載された発明は、新し
い機能ブロックと他の機能ブロックとをコンピュータデ
ィスプレイ上でリンクによって接続しようとしたとき
に、前記接続関係確認手順が、前記接続された他の機能
ブロックが新しい機能ブロックにおいてあらかじめ明示
された前記論理名称を有することが確認されたときにの
み前記リンクを成立させることを特徴とする。これによ
って、不一致が検知されたときにはリンクが成立できな
いようにして、データタイプの不一致となる接続関係が
定義できないようにしている。なお、ここでリンクが成
立するとは、二つの機能ブロックがコンピュータディス
プレイ上でグラフィカルに接続されるのみならず、これ
らの機能ブロック間の入出力関係、すなわちデータの流
れが規定されることを意味する。したがって、リンクが
成立しないとは、コンピュータディスプレイ上で接続関
係が図示されないとともに、二つの機能ブロック間での
データの授受が行われないことを意味する。
【0014】また、コンピュータディスプレイ上でリン
クを用いて機能ブロック間のデータの流れを記述する際
に本発明の接続関係確認手順において属性の不一致が検
出された場合、リンクを成立させないようにするだけで
もよいが、請求項3に記載された発明は、ユーザーに属
性の不一致を積極的に知らせるように警告メッセージを
前記コンピュータディスプレイ上に表示することを特徴
とする。
【0015】また、請求項4に記載された発明は、リン
クによって接続された機能ブロックの属性に整合性があ
った場合に、リンクを成立させると共に、接続された二
つの機能ブロックおよび/またはそのリンクの表示を変
化させて接続関係が定義されたことを表示することを特
徴とする。これによって、属性の一致した適切な接続が
明示され、図的プログラミングにおける作業効率を向上
させることができる。
【0016】また、たとえば新しい機能ブロックに関連
づけられたプロパティ・シートにおいてその機能ブロッ
クの設定値とともにその新しい機能ブロックが参照可能
な機能ブロックの論理名称を指定(宣言)することも可
能であるが、請求項5に記載された発明は、新しい機能
ブロックが参照することができる他の機能ブロックの論
理名称を前記新しい機能ブロックに包含されるプログラ
ムコードの一部においてあらかじめ明示することを特徴
とする。その結果、新しい機能ブロックに包含されるプ
ログラムコードは、たとえば宣言文のような行を有する
ことが考えられる。これによって、その新しい機能ブロ
ックが担う機能を表すプログラムコードを論理名称を用
いて記述することが容易になり、コーディングミスを減
らすことができる。なお、本発明において機能ブロック
に包含されるプログラムコードを記述するのに使用され
るコンピュータ言語の種類は問わない。したがって、た
とえばFORTRAN、BASIC、PASCAL、C
言語などの従来のコンピュータ言語で記述されていても
よく、また新たに開発された言語であってもよい。
【0017】
【発明の実施の形態】以下、本発明の実施の形態につい
て図面を参照しながら詳述する。本発明の第1の実施の
形態は、ユーザーがアプリケーションに合わせて新しい
機能ブロックを作ることができ、かつその機能ブロック
をソフトウェア部品として再利用することができる図的
プログラミング方法を備えた制御設計用コンフィギュレ
ーション・ツール(以下、コンフィギュレーション・ツ
ールという)である。本実施の形態にかかるコンフィギ
ュレーション・ツールのハードウェア構成は、図1に示
すように、ディスプレイ11、CPUや記憶装置等から
なる本体12、キーボード13およびマウス14からな
るパーソナルコンピュータ(PC)またはワークステー
ション(WS)である。
【0018】図2は、上述のようなハードウェア上に構
築される本実施の形態にかかるコンフィギュレーション
・ツールの基本的な機能構成を示すブロック図である。
インターフェース21はディスプレイ11、キーボード
13およびマウス14からなる。設計部22は、リンク
によって機能ブロック間の接続関係を定義する設計環境
を提供する。ユーザーはブロックメニュー16を介して
機能ブロックデータベース24から必要な機能ブロック
を編集画面15に張り付ける。編集画面15に張り付け
られた機能ブロックのデータはワーキングメモリ23に
格納され、ユーザーはインターフェース21を介してワ
ーキングメモリ23上のデータに対してパラメータの変
更やリンクの接続などの加工をおこなう。また、後述す
るようにユーザー自身が生成した新しい機能ブロックを
ソフトウェア部品として機能ブロックデータベース24
に格納・保存することも可能である。
【0019】設計作業の結果、ワーキングメモリ23上
で構築された設計用プログラムは、設計情報格納部25
に格納される。ユーザーは、実体化前の複数の機能ブロ
ックからなるデータ、実体化後のソースコードのいずれ
をも設計情報格納部25に格納することができる。さら
にユーザーは、設計情報格納部25に格納されているデ
ータをワーキングメモリ23に読み込み、設計作業を継
続したり、過去の設計データに変更を加えたりすること
ができる。
【0020】次に、このコンフィギュレーション・ツー
ルにおける図的プログラミングの基本的な操作と機能を
図3を用いて説明する。設計作業中の編集画面15の表
示の例を図3(a)に示す。このコンフィギュレーショ
ン・ツールのユーザー、すなわち制御用プログラムのプ
ログラマは、ブロックメニュー16(図1参照)から制
御用プログラムを作成するのに必要な機能ブロックをマ
ウス14を使って選択し、編集画面15に張り付けてい
く。これによって制御用プログラムのソフトウェア部品
が選ばれたことになる。これをハードウェアとの関連で
説明するとすれば、編集画面15に張り付けることによ
ってこの機能ブロックに関するデータがシステムのワー
キングメモリ23上に呼び出されたことになる。これに
よって、ワーキングメモリ23上の機能ブロックとして
まとまったデータ、すなわちオブジェクトに対して接続
関係の定義や実体化等の処理を施すことができるように
なる。
【0021】本実施の形態において編集画面15上に張
り付けられた機能ブロックを表すアイコンを図3(b)
に示す。ここに示すように、機能ブロックを表すアイコ
ンは、ブロック名36、機能名37およびタグ名38を
表示する部分と、リンクを接続する接続端子39からな
っている。ここでブロック名は、仮想タグ名とも呼ば
れ、機能ブロックの論理名称に相当する。例として「温
度調節計01」、「温度指示計01」、「温度指示計0
2」、「流量調節計01」、「タイマー01」などがあ
る。
【0022】ユーザーは、ブロックメニューから同一の
メニューを繰り返し選択することによって、同一のブロ
ック名を持った複数の機能ブロックを編集画面15に張
り付けることができる。このときでも、機能ブロックに
包含された設定項目やプログラムコードが同一である限
り、すなわち機能ブロックの属性が同一であるかぎり、
複数の機能ブロックは同一のブロック名を持つ。また、
後述する機能名が同一でも、ブロック名が異なれば、機
能ブロックは異なる属性を持つ。たとえば、ブロック名
「温度指示計01」を持つ機能ブロックと「温度指示計
02」を持つ機能ブロックは、共に温度調節計であるこ
とを示唆し、また機能名「アナログ入力」を持つ点で共
通するが、適用対象に合わせてそこに包含された設定値
やプログラムコードが異なるなど、異なる属性を持つこ
とを示している。
【0023】機能名37は、ユーザーの便宜を図るため
にその機能ブロックが持つ機能を示すものである。この
ような機能名には例えば「PID」、「アナログ入
力」、「ボックスタイマー」などがある。また、機能ブ
ロックのタグ名38は、特定のアプリケーションの中の
特定の機能ブロックを識別するための物理名称に相当す
る。したがって、同一のブロック名を持つ機能ブロック
であっても、アプリケーションの中では異なるタグ名を
持つ。例えば機能ブロックアイコンの3段目に表示され
た「TIC001」、「TI001」、「FIC00
1」、「TIM002」などはタグ名である。これら
は、ワーキングメモリ上に存在する個々の機能ブロック
(オブジェクト)に与えられた名称である。したがっ
て、タグ名は、機能ブロックを編集画面15上に張り付
けた後ユーザーによって個々の機能ブロックに与えら
れ、これらはワーキングメモリ上の機能ブロックデータ
を示すポインタとして機能する。
【0024】ユーザーはマウスを用いて編集画面15上
に表示された機能ブロックの接続端子39をリンクとよ
ぶ線で接続することにより二つの機能ブロック間のデー
タの流れをグラフィカルに記述し、これらの機能ブロッ
クの接続関係を定義する。そして、全ての接続関係を定
義し終えた後、これを実体化することにより、目的とす
る制御用プログラムのソースコードが生成される。
【0025】次に、本発明にかかる図的プログラミング
方法を用いて、このコンフィギュレーション・ツールの
ユーザーがアプリケーションに合わせて任意の機能を持
った新しい機能ブロックをソフトウェア部品として生成
する方法について説明する。アプリケーションに合わせ
て任意の機能を持った新しい機能ブロックを生成するに
は、ユーザー自身がその機能を実現するプログラムコー
ドを書き、それを新しい機能ブロックに包含させる必要
がある。そのために、ユーザーはまず、プログラムコー
ドを含まない機能ブロックを編集画面15上に張り付け
る。このような機能ブロックをブランク機能ブロックま
たはCL(Control Language)ブロックと呼ぶ。本実施
の形態においては、CLブロックを他の機能ブロックと
同様、ブロックメニュー16から選択し、編集画面15
上に張り付けることができるものとする。
【0026】CLブロックを張り付けたら、次はアプリ
ケーションに合った機能を実現するプログラムコードを
書く。このとき、ソフトウェア部品の再利用性を高める
ために、ユーザーは以下に述べる属性宣言手順とプログ
ラムコード作成手順に対応したシンタックスでプログラ
ムコードを作成する必要がある。本実施の形態において
は、CL(Control Language)と呼ばれる言語を用いて
属性の宣言およびプログラムコードの作成を行うように
なっている。
【0027】CLを用いて書かれたプログラムコードの
例を図4に示す。CLブロックに包含されるCLプログ
ラムコードは、このCLブロックと接続可能な機能ブロ
ックのブロック名(論理名称)を明示する宣言部分と、
新しい機能ブロックの機能を記述するプログラムコード
本体とからなる。すなわち、本実施の形態における属性
宣言手順は、CLブロックに包含させるプログラムコー
ド内に宣言部分を設け、そこで新しい機能ブロックと接
続できる他の機能ブロック、詳しくは新しい機能ブロッ
クがデータを参照することができる他の機能ブロックの
論理名称を明示する方法をとっている。
【0028】図4に示したプログラムリストにおいて
は、2行目が上述の宣言部分に相当する。「EXTERNAL」
に続く文字列が、このプログラムコードを包含する新し
い機能ブロックとデータの整合がとれた、すなわちこの
新しい機能ブロックと接続できる機能ブロックのブロッ
ク名(論理名称)である。ここで、「@」がそれに続く
文字列がブロック名(論理名称)であることを示すため
に付加されている。
【0029】また、新しい機能を表現するプログラムコ
ード本体は、図4に示したプログラムリストの8行目
「STEP SETUP」以降に記述されている。ここで重要なこ
とは、新しい機能ブロックとデータの授受をする他の機
能ブロックが、先に上述の宣言部分において明示された
ブロック名(論理名称、「@」に続く文字列)を用いて
表されていることである(例えば、図4の9〜12行
目)。このように、特定のアプリケーションで実際に接
続される機能ブロックのタグ名(物理名称)の代わり
に、属性宣言手順において宣言されたブロック名(論理
名称)を用いてプログラムコード本体を作成することに
より、後述する属性確認手順と合わせて、データの整合
性とソフトウェア部品としての汎用性を同時に担保して
いる。
【0030】上述のようなプログラムコードを作成する
ために、本実施の形態では、編集画面15上に張り付け
たCLブロック32にマウス14を用いてカーソルを合
わせクリックすることによってエディタが起動し、プロ
グラムコードの生成、編集ができるようになってきる。
また、外部のエディタで作成したコードをCLブロック
32内にインポートすることも可能である。また、本実
施の形態ではユーザーは、このようにして生成された新
しい機能ブロックを機能ブロックデータベース24に保
存し、再利用に備えることができることはいうまでもな
い。
【0031】以上のようなプログラムコード作成手順を
踏んで作成したプログラムコードをCLブロックに包含
させ、このCLブロックに独自のブロック名(論理名
称)を与えれば新しい機能ブロックの完成となる。本実
施の形態においては、このように作成された新しい機能
ブロックの機能名は自動的に「CL」が与えられ、それ
がユーザーによって作成されたものであることを示すよ
うになっている。図3(a)のCLブロック32(ブロ
ック名「温度パターン制御」)がこれに相当する。
【0032】なお、図4に示したプログラムリストのシ
ンタックスは、新しい機能ブロックの機能を記述する例
にすぎない。したがって、論理名称を宣言してこの新し
い機能ブロックに適応する属性をあらかじめ指定するこ
と、およびプログラムコードの本体を記述する際にこの
論理名称を用いることという二つの要件を満たしていれ
ば、どのような言語を用いてどのようなシンタックスで
プログラムコードを記述したかは問題ではない。
【0033】また、宣言部分を設けず、実際の接続され
る機能ブロックの物理名称を用いてプログラムコードを
作成し、それをCLブロックに包含させて、新しい機能
ブロックを生成することも可能である。しかし、その場
合はその新しい機能ブロックは特定のアプリケーション
のみに利用することができるだけで、ソフトウェア部品
としての汎用性、再利用性を欠くことになる。
【0034】次に、上述のようにして生成された新しい
機能ブロックを利用する際の接続関係確認手順と実体化
における名称置換手順について説明する。新しい機能ブ
ロックはアプリケーションを開発するために、編集画面
15上において他の機能ブロックと接続される。このと
き、図的プログラミングシステムは、この他の機能ブロ
ックのブロック名(論理名称)と上述の属性宣言手順に
おいて新しい機能ブロック内であらかじめ宣言されたブ
ロック名(論理名称)とのマッチングを行う。
【0035】この接続関係確認手順を図3(a)を例に
説明する。なお、以下の説明においては、機能ブロック
を特定するのにタグ名を用いることとする。図3(a)
に示した例においては、タグ名「PMDP001」(ブ
ロック名「温度パターン制御」、機能名「CL」)を持
つ機能ブロック32が新しい機能ブロックである。この
新しい機能ブロック32が他の機能ブロック、たとえば
タグ名「TI001」を持ったアナログ入力機能ブロッ
ク33(ブロック名「温度指示計01」)のデータを参
照する場合には、その接続関係を定義するためにユーザ
ーはマウス14を用いてこれら二つの機能ブロックの接
続端子をリンク31で接続する。
【0036】このとき、図的プログラミングシステム
は、機能ブロック「PMDP001」32に包含された
プログラムコードの宣言部分(図4、3行目)にリスト
アップされたブロック名が、接続された機能ブロックの
ブロック名として存在するか否かを調べる。このような
接続関係確認手順は、ハードウェアとの関係において次
のようなものである。すなわち、タグ名「PMDP00
1」で特定されるオブジェクトデータに含まれたプログ
ラムコードのうち「EXTERNAL」と「@」で示されたブロ
ック名のリスト(図4、3行目)と、ワーキングメモリ
23上におかれたタグ名「TI001」で特定されるオ
ブジェクトデータのうち論理名称に対応したスロットに
格納されているブロック名「温度指示計01」との間で
マッチングを行うことによって実現される。
【0037】図4に示した機能ブロック「PMDP00
1」32に包含されたプログラムコードの宣言部分(図
4、3行目)には、先の属性宣言手順においてあらかじ
めブロック名「温度指示計01」が宣言されており、機
能ブロック「TI001」33のブロック名もまた「温
度指示計01」である。したがって、このような接続は
適切なもの認定され、その結果、機能ブロック「TI0
01」33と機能ブロック「PMDP001」32との
間のリンク31が成立する。リンクが成立したとき、編
集画面15上で適切なリンク31を示す線の表示はそれ
までの破線から実線に変わり、適切な接続関係が適宜さ
れたことを示す。
【0038】これに対し、不適切な接続を試みた場合の
例として、図5に示すように、機能ブロック「TI00
2」34を機能ブロック「PMDP001」32に接続
しようとした場合について説明する。ここで、機能ブロ
ック「TI002」34は、上述の例に挙げた機能ブロ
ック「TI001」33とは異なる属性を有しており、
機能ブロック「PMDP001」32とはデータの整合
性が取れていないものとする。これは、機能ブロック
「PMDP001」32のプログラムコードを作成した
ときに、宣言部分には機能ブロック「TI002」34
のブロック名(論理名称)「温度指示計02」が加えら
れていないことに反映されている。
【0039】ユーザーが機能ブロック「TI002」3
4と機能ブロック「PMDP001」32とをリンクし
ようとすると、図的プログラミングシステムは上述のよ
うなマッチングを実行する。このとき、機能ブロック
「PMDP001」32のプログラムコード内の宣言部
分(図4、3行目)には機能ブロック「TI002」の
ブロック名(論理名称)が含まれていない。したがっ
て、このような接続は不適切であると判断され、図的プ
ログラミングシステムは不適切なリンク51の成立を認
めない。このとき、本実施の形態においては、編集画面
15上のリンク51を示す線は表示されないとともに、
図6に示すような警告メッセージ61を表示し、ユーザ
ーの注意を促す。
【0040】以上のように接続関係を確認することによ
って、機能ブロック「PMDP001」32の機能に対
してこれと接続される機能ブロックの属性が適切である
か否かが判断され、あらかじめ宣言された属性を持つ機
能ブロックのみとの間で接続関係が定義される。その結
果、機能ブロック「PMDP001」32に接続された
機能ブロックのデータと機能ブロック「PMDP00
1」32に包含されたプログラムコードとの間の整合性
を保証することができる。
【0041】次に、実体化における名称置換手順につい
て説明する。上述のような接続関係確認手順を経て接続
関係が定義された複数の機能ブロックから実体化を行う
ことによって制御用プログラムのソースコードを生成す
る際に、図的プログラミングシステムは、ユーザーが作
成したプログラムコード本体の中のブロック名(論理名
称)をタグ名(物理名称)に置き換える名称置換手順を
実行する。すなわち、先のプログラムコード作成手順に
おいては、機能ブロック「PMDP001」32の機能
を記述したプログラムコード本体において、データの参
照先を「@」付きのブロック名(論理名称)を用いて表
した(図4)。名称置換手順においては、ワーキングメ
モリ上に存在する機能ブロックに関して、このプログラ
ムコード本体の「@」付きブロック名の部分が、実際に
接続された機能ブロックのタグ名に自動的に名称置換さ
れる。
【0042】このような名称置換手順を経た後の機能ブ
ロック「PMDP001」32に包含されたプログラム
コードの一部を図7に示す。これを図4と比較すると、
図7は、名称置換前においては「@」付きのブロック名
で表されていたデータの参照先(例えば「@温度指示計
01」)は、名称置換後においては実際に接続された機
能ブロックのタグ名(「TI001」)に置き換えられ
ていることを示している。
【0043】したがって、機能ブロック「PMDP00
1」のようなユーザーによって作成された新しい機能ブ
ロックは特定のアプリケーションに特化されたプログラ
ムコードを有することになる。その後は従来の図的プロ
グラミング方法と同じく実体化をすれば、そのアプリケ
ーションのソースコードが生成される。これによって、
ユーザーによって作成された機能ブロック「PMDP0
01」32は、異なるタグ名が用いられる異なるアプリ
ケーションを設計する際においてもソフトウェア部品と
して再利用することができる。
【0044】以上のように、これまで述べた属性宣言手
順、プログラムコード作成手順にしたがって作成した新
しい機能ブロック「PMDP001」32は、図的プロ
グラミング方法によるプログラムの可搬性を実現すると
同時に、汎用性、再利用性を有するソフトウェア部品と
なることができる。
【0045】さらに、新しい機能ブロック「PMDP0
01」32を単独のソフトウェア部品として再利用でき
ることはいうにおよばず、機能ブロック「PMDP00
1」32と他の機能ブロックとを接続し、特定の機能を
果たすようにした機能ブロック群全体をソフトウェア部
品として再利用することもできる。これは、機能ブロッ
ク群の構成要素となる各機能ブロックにおいて、ブロッ
ク名による接続関係の確認および名称置換が行われるか
らである。
【0046】
【発明の効果】以上のように、本発明によれば、任意の
機能を持った新しい機能ブロックをユーザーが作成でき
るのでプログラムの可搬性を高めることができる。この
とき、新しい機能ブロックは、物理名称ではなく、特定
のアプリケーションに左右されない論理名称を用いてプ
ログラムコードを作成しているので、ソフトウェア部品
としての汎用性を有する。そして、実体化を行う際に名
称置換手段が実行されるので、異なるアプリケーション
を開発する場合にもこの新しい機能ブロックをソフトウ
ェア部品として再利用することができる。
【0047】このとき、ユーザーによって作成された新
しい機能ブロックを単独のソフトウェア部品として再利
用できることはいうにおよばず、この新しい機能ブロッ
クを含む複数の機能ブロックから構成されて特定の機能
を有する機能ブロック群を実体化する前に保存しておく
ことによって、このような機能ブロック群をもソフトウ
ェア部品として再利用することが可能となる。したがっ
て、使用頻度の高い機能ブロックや機能ブロック群を再
利用することによってソフトウェアの生産性が向上す
る。
【0048】また、論理名称をあらかじめ宣言し、これ
によって接続される機能ブロックの属性の一致・不一致
を判断しているので、不適切な機能ブロックと接続され
ることを避けることができる。したがって、データの整
合性を保証することができ、ひいては図的プログラミン
グによって完成したプログラムの信頼性を高めることも
できる。
【0049】また、請求項2に記載された発明によれ
ば、上述の効果に加えて、属性の不一致が検知されたと
きにはリンクが成立できないようにして、データタイプ
の不一致となる接続関係が定義できないようにしてい
る。したがって、図的プログラミングのプログラミング
プロセスにおけるミスを減らすことができ、プログラム
の信頼性とともに生産性の向上に寄与することができ
る。
【0050】また、請求項3に記載された発明によれ
ば、属性の一致しない機能ブロック同士を接続しようと
した場合、警告メッセージを前記コンピュータディスプ
レイ上に表示することによって、ユーザーに属性の不一
致を積極的に知らせるようにしている。これによって、
図的プログラミング方法の使い勝手を向上させることが
できる。
【0051】また、請求項4に記載された発明は、リン
クによって接続された機能ブロックの属性に整合性があ
った場合に、リンクを成立させると共に、接続された二
つの機能ブロックおよび/またはそのリンクの表示を変
化させて接続関係が定義されたことを表示することによ
って、図的プログラミング方法の使い勝手を向上させる
ことができる。
【0052】また、請求項5に記載された発明によれ
ば、新しい機能ブロックが参照することができる他の機
能ブロックの論理名称をその新しい機能ブロックに包含
されるプログラムコードの一部として明示的に記述する
ので、ユーザーが新しい機能ブロックが担う機能を表す
プログラムコードを論理名称を用いて記述することが容
易になる。これによって、コーディングミスを減らすこ
とができ、プログラムコードを作成する際の効率を向上
させることができる。
【図面の簡単な説明】
【図1】 図的プログラミング方法を用いたコンフィギ
ュレーション・ツールのハードウェア構成を示す模式図
である。
【図2】 コンフィギュレーション・ツールの基本的な
機能構成を示すブロック図である。
【図3】 図的プログラミングの基本的な操作と機能を
説明する模式図である。
【図4】 新しい機能ブロックに包含されるプログラム
コードの例を示す図である。
【図5】 不適切な機能ブロックの接続を試みた場合を
説明する模式図である。
【図6】 不適切な機能ブロックの接続を試みた場合に
表示される警告メッセージの例を示す図である。
【図7】 実体化後のプログラムコードの例を示す図で
ある。
【符号の説明】
11…ディスプレイ、12…本体、13…キーボード、
14…マウス、15…編集画面、16…ブロックメニュ
ー、17、19、33、34…機能ブロック、18…リ
ンク、21…インターフェース、22…設計部、23…
ワーキングメモリ、24…機能ブロックデータベース、
25…設計情報格納部、31…適切なリンク、32…C
Lブロック、36…ブロック名、37…機能名、38…
タグ名、51…不適切なリンク、61…警告メッセー
ジ。
───────────────────────────────────────────────────── フロントページの続き (56)参考文献 特開 平3−282733(JP,A) 特開 平7−210393(JP,A) 特開 平8−137680(JP,A) 特開 平7−114462(JP,A) 杉尾 他,NBSGによる要求仕様定 義における部品について,情報処理学会 第30回(昭和60年前期)全国大会講演論 文集,1985年,P.711−712 鍋島,部品再利用による生産性向上へ の取り組み,情報処理学会第42回(平成 3年前期)全国大会講演論文集(5), 1991年,P.5−281〜5−282 (58)調査した分野(Int.Cl.7,DB名) G06F 9/06 G06F 9/44

Claims (5)

    (57)【特許請求の範囲】
  1. 【請求項1】 特定の機能を表すプログラムコードを包
    含し、その属性を示す論理名称とアプリケーションごと
    に異なる物理名称とを少なくとも有する機能ブロックを
    コンピュータディスプレイ上に表示し、複数の機能ブロ
    ックの接続関係を前記コンピュータディスプレイ上でリ
    ンクを用いて図的に定義することによって前記複数の機
    能ブロック間のデータの流れを記述し、前記リンクによ
    り接続関係が定義された前記複数の機能ブロックを実体
    化することによって目的とするソースコードを生成する
    図的プログラミング方法において、 アプリケーションに合わせて任意の機能を持った新しい
    機能ブロックが、当該機能ブロックと接続できる他の機
    能ブロックの属性を表す論理名称と、当該機能ブロック
    とデータの授受をする他の機能ブロックが論理名称を用
    いて記述された前記任意の機能を表すプログラムコード
    とを包含しており、 前記新しい機能ブロックが他の機能ブロックと前記コン
    ピュータディスプレイ上でリンクによって接続されたと
    きに、接続された前記他の機能ブロックが前記新しい機
    能ブロックにおいてあらかじめ明示された前記論理名称
    を有するか否かを確認する接続関係確認手順と、 前記接続関係が定義された前記新しい機能ブロックと前
    記他の機能ブロックを実体化するときに前記新しい機能
    ブロックが包含するプログラムコード中の前記論理名称
    を実際に接続された前記他の機能ブロックの物理名称に
    自動的に置き換える名称置換手順とを備えることを特徴
    とする図的プログラミング方法。
  2. 【請求項2】 請求項1に記載された図的プログラミン
    グ方法において、 前記接続関係確認手順は、 前記新しい機能ブロックが他の機能ブロックと前記コン
    ピュータディスプレイ上でリンクによって接続されたと
    きに、前記接続された他の機能ブロックが前記新しい機
    能ブロックにおいてあらかじめ明示された前記論理名称
    を有することが確認されたときにのみ前記リンクを成立
    させることを特徴とする図的プログラミング方法。
  3. 【請求項3】 請求項1または請求項2に記載された図
    的プログラミング方法において、 前記接続関係確認手順は、 前記新しい機能ブロックに接続された他の機能ブロック
    が前記新しい機能ブロックにおいてあらかじめ明示され
    た前記論理名称を有していない場合に、警告メッセージ
    を前記コンピュータディスプレイ上に表示することを特
    徴とする図的プログラミング方法。
  4. 【請求項4】 請求項1乃至請求項3のいずれかに記載
    された図的プログラミング方法において、 前記接続関係確認手順は、 前記新しい機能ブロックに接続された他の機能ブロック
    が前記新しい機能ブロックにあらかじめ明示された前記
    論理名称を有する場合に、接続された二つの機能ブロッ
    クおよび/またはその接続関係を表すリンクの表示を変
    化させて接続関係が定義されたことを表示することを特
    徴とする図的プログラミング方法。
  5. 【請求項5】 請求項1乃至請求項4のいずれかに記載
    された図的プログラミング方法において、前記新 しい機能ブロックが参照することができる他の機
    能ブロックの論理名称は、当該機能ブロックに包含され
    るプログラムコードの一部においてあらかじめ明示され
    ていることを特徴とする図的プログラミング方法。
JP22656296A 1996-08-28 1996-08-28 図的プログラミング方法 Expired - Fee Related JP3326713B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP22656296A JP3326713B2 (ja) 1996-08-28 1996-08-28 図的プログラミング方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP22656296A JP3326713B2 (ja) 1996-08-28 1996-08-28 図的プログラミング方法

Publications (2)

Publication Number Publication Date
JPH1069379A JPH1069379A (ja) 1998-03-10
JP3326713B2 true JP3326713B2 (ja) 2002-09-24

Family

ID=16847110

Family Applications (1)

Application Number Title Priority Date Filing Date
JP22656296A Expired - Fee Related JP3326713B2 (ja) 1996-08-28 1996-08-28 図的プログラミング方法

Country Status (1)

Country Link
JP (1) JP3326713B2 (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2009116434A (ja) * 2007-11-02 2009-05-28 Yamatake Corp 制御プログラム作成コンバータおよび制御プログラム変換方法

Families Citing this family (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7299419B2 (en) * 2001-09-28 2007-11-20 Business Objects, S.A. Apparatus and method for combining discrete logic visual icons to form a data transformation block
JP2003167734A (ja) 2001-11-29 2003-06-13 Hitachi Ltd 名前対応付け方法及び装置
JP5099839B2 (ja) * 2008-02-14 2012-12-19 三十四 日野 バグレスソフトウェアシステム設計支援装置、方法及びプログラム
JP6566151B2 (ja) 2017-03-30 2019-08-28 三菱電機株式会社 システム設計支援装置およびシステム設計支援方法
JP6579637B1 (ja) 2018-12-31 2019-09-25 株式会社コンシェルジュ 対話型サービス提供システム、シナリオ生成編集システム及びプログラム

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
杉尾 他,NBSGによる要求仕様定義における部品について,情報処理学会第30回(昭和60年前期)全国大会講演論文集,1985年,P.711−712
鍋島,部品再利用による生産性向上への取り組み,情報処理学会第42回(平成3年前期)全国大会講演論文集(5),1991年,P.5−281〜5−282

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2009116434A (ja) * 2007-11-02 2009-05-28 Yamatake Corp 制御プログラム作成コンバータおよび制御プログラム変換方法

Also Published As

Publication number Publication date
JPH1069379A (ja) 1998-03-10

Similar Documents

Publication Publication Date Title
US10963317B2 (en) System and method for non-programmatically constructing software solutions
Mørch Three levels of end-user tailoring: Customization, integration, and extension
US10606562B2 (en) Method and system for generating PLC code with a connectivity model
US6678716B1 (en) System and method for managing processes
US5295222A (en) Computer-aided software engineering facility
US6170081B1 (en) Method and system for interfacing to a variety of software development tools
US5301270A (en) Computer-assisted software engineering system for cooperative processing environments
Wasserman et al. The future of programming
US7844952B2 (en) Grouping threads in a debugger display
US20060074737A1 (en) Interactive composition of workflow activities
Reiss The Field programming environment: A friendly integrated environment for learning and development
US7159209B1 (en) Inter-application validation tool for use in enterprise architecture modeling
JP2006504156A (ja) リアルタイム・システム制御のためのコンポーネント・モデル
JP4302146B2 (ja) プログラム作成支援装置
CN112328229A (zh) 一种快速创建Jenkins流水线的方法
CN110765028B (zh) 验证环境的可视化搭建方法、装置及存储介质
JP3326713B2 (ja) 図的プログラミング方法
US20060107220A1 (en) Method and system for displaying an annotated file
CN107562464A (zh) 一种命令行接口的调用方法、装置及设备
US8700374B1 (en) System and method of using an active link in a state programming environment to locate an element in a graphical programming environment
US5835918A (en) Method-management system and process based on a single master message file
Gutz et al. Personal development systems for the professional programmer
WO2001008007A1 (en) Method and system of automated generation of program code from an object oriented model
CN112764637A (zh) 一种智慧农业物联网设备描述文件生成方法
CN116431142B (zh) 一种可快速构建且不易出错的高效率编程方法

Legal Events

Date Code Title Description
LAPS Cancellation because of no payment of annual fees