JP2000112736A - プログラム作成装置 - Google Patents

プログラム作成装置

Info

Publication number
JP2000112736A
JP2000112736A JP10280374A JP28037498A JP2000112736A JP 2000112736 A JP2000112736 A JP 2000112736A JP 10280374 A JP10280374 A JP 10280374A JP 28037498 A JP28037498 A JP 28037498A JP 2000112736 A JP2000112736 A JP 2000112736A
Authority
JP
Japan
Prior art keywords
program
block
created
subsystem
file
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.)
Withdrawn
Application number
JP10280374A
Other languages
English (en)
Inventor
Kazuhiko Miyasaka
一彦 宮坂
Kazuhiro Gomi
一博 五味
Hiroyuki Kanai
裕之 金井
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.)
Seiko Epson Corp
Original Assignee
Seiko Epson 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 Seiko Epson Corp filed Critical Seiko Epson Corp
Priority to JP10280374A priority Critical patent/JP2000112736A/ja
Publication of JP2000112736A publication Critical patent/JP2000112736A/ja
Withdrawn legal-status Critical Current

Links

Abstract

(57)【要約】 【課題】 手続き型言語を使い慣れているエンジニア
と、新たなプログラミング言語を受け入れたエンジニア
にプログラム作業を分担させることができ、かつ、これ
まで手続き型言語により作成したプログラム資産を十分
に活用しながら離散的事象駆動型実時間ソフトウエアを
作成することのできるプログラム作成装置を実現するこ
と。 【解決手段】 ネットワーク上の複数の制御主体によっ
て並列処理されるプログラムを作成するためのプログラ
ム作成装置において、プログラムの時系列に処理される
各処理の内容を表す複数種類の図形パターンを用いて第
1のプログラム作成手段21で作成したプログラムに対
して、第2のプログラム作成手段31で手続き型言語を
用いて作成したプログラムを下位階層プログラムとして
連係、編集して実行プログラム41を形成する。

Description

【発明の詳細な説明】
【0001】
【発明の属する技術分野】本発明は、実時間ソフトウエ
アの記述を効率よく行うことの可能なプログラム作成装
置に関するものである。さらに詳しくは、本発明は、複
数のタスクを単一、あるいは複数のマイクロプロセッサ
によって並列処理させるための並列処理プログラムを同
一画面上において効率よく簡単に作成可能なプログラム
作成装置に関するものである。
【0002】
【従来の技術】制御機器制御、通信制御などの目的で搭
載されるソフトウエアは、概念的にいえば、ソフトウエ
アの内側と制御対象となる外界とが必ず存在し、外界に
対して何らかの相互関係を保ちながら動作を行うもので
ある。そして、外界に何らかの変化が起きたときには、
ある限られた時間の中でそれに対応する処理を行う必要
がある。このように規定された時間内に所定の処理を遂
行しなければならない性格のソフトウエアを実時間ソフ
トウエアを呼んでいる。このような実時間ソフトウエア
のうち、外界からの入力としてある刺激を受け、これに
対して処理を行うという系列で処理を実行していくソフ
トウエアは、離散的事象駆動型実時間ソフトウエアと呼
ばれており、いわゆるマイクロプロセッサが組み込まれ
ている制御機器のソフトウエアは、通常、この範疇に入
るものである。
【0003】近年、ソフトウエア工学の発展により、構
造化プログラミング言語、高水準言語等を利用して効率
よくソフトウエアを作成する手法が提案されており、こ
れらはソフトウエア全般にわたって適用可能な手法であ
る。しかしながら、上記の離散的事象駆動型実時間ソフ
トウエアは、その他のソフトウエアに比べて特別な性格
を有しており、ソフトウエア全般にわたって適用可能な
作成方法の他にも、かかるソフトウエアの作成を簡単に
行うための改良の余地が依然として残っている。
【0004】すなわち、離散的事象駆動型実時間ソフト
ウエアでは、製造ライン上に配置された複数の産業用ロ
ボットの駆動用ソフトウエアに代表されるように、ロー
カルエリアネットワーク上で並列して動作する複数のプ
ロセスを記述する必要がある。しかしながら、いままで
行われているこのようなソフトウエアの作成は、ある1
つのプログラミング言語を用いてCRT上で1ステップ
ずつ記述することによってプログラムされるため、この
ような作成方法では、並列動作する複数のプロセスをそ
れぞれ個別に作成し、しかる後に、作成したプロセスが
各マイクロプロセッサ上で並列動作状態で実行されるよ
うに、これら個別作成したプロセスを合成する必要があ
る。かといって、並列処理される複数のプロセスを一括
してプログラミングしていたのでは、プログラム作成者
は、制御の全体的な流れと、個別的にマイクロプロセッ
サによって実行される制御の流れとを正確に認識するこ
とが困難であり、これらの整合性をとることが困難であ
る。このために、効率よく目標とするプログラムを作成
することが困難な場合が多い。
【0005】そこで、本願出願人は、離散的事象駆動型
実時間ソフトウエアの記述に適した言語(この言語を、
以下、プラネット(PLANET)と呼ぶ。)、および
そのための開発支援環境を発明し、それを特願平2−3
37781号として出願した。この発明は、特開平4−
205423号公報に開示されているとおり、プロセス
の並列動作、同期などの諸要件をペトリネットに基づく
記述形式で実現可能としている。また、プログラミング
の全てにわたって図式を導入可能とし、処理要件の記述
性、了解性の向上を図っているものである。
【0006】詳細は、前記公開特許公報に開示されてい
るが、たとえば、図41(A)に示すフローチャートで
表される処理は、手続き型言語でプログラミングする
と、図41(B)に示すようになるところ、プラネット
を用いれば、図41(C)に示すように、画面表示手段
によって表示されているプログラム作成用の一枚の画面
に対して、パターン選択手段により、処理要件を示す図
形パターンと、有向枝あるいは分岐有向枝とを交互に選
択するという操作を繰り返して、プログラムを同一画面
上に作成していくことができる。従って、プログラミン
グの全てにわたって図式を導入することで、処理要件の
記述性、了解性の向上を図ってあるので、離散的事象駆
動型実時間ソフトウエアの作成を効率良く簡単に行うこ
とができる。
【0007】
【発明が解決しようとする課題】しかしながら、エンジ
ニアリングメーカにおいて、いわゆるベテランと呼ばれ
ているエンジニアは、図41(B)に示した手続き型言
語(たとえばBASICライクな言語やC言語)が使い
慣れているとして手続き型言語を使い続ける傾向にあ
る。これに対して、若手のエンジニアは、PLANET
の様な新たなプログラミング言語を柔軟に受け入れて有
効に活用する傾向にある。従って、新たなプログラムを
作成する場合には一方のエンジニアのみを集めて、プロ
グラム作成作業を分担させることになり、不便である。
また、新たなプログラミング言語を用いてプログラムを
作成する場合に、これまで手続き型言語により作成した
プログラム資産を活用できないという問題点がある。
【0008】以上の問題点に鑑みて、本発明の課題は、
手続き型言語を使い慣れているエンジニアと、新たなプ
ログラミング言語を受け入れたエンジニアにプログラム
作業を分担させることができ、かつ、これまで手続き型
言語により作成したプログラム資産を十分に活用して、
離散的事象駆動型実時間ソフトウエアを作成することの
できるプログラム作成装置を実現することにある。
【0009】
【課題を解決するための手段】上記課題を解決するた
め、本発明者は、特開平4−205423号公報に開示
された言語(プラネット)のように、プロセスの並列動
作、同期などの諸要件をペトリネットに基づく記述形式
で実現したプログラム作成装置において、その利便性を
高めることを目的に、手続き型言語で作成したプログラ
ムを連係、編集することができるようにしたことを特徴
とする。
【0010】すなわち、本発明は、ネットワーク上の複
数の制御主体によって並列処理されるプログラムを作成
するためのプログラム作成装置において、前記プログラ
ムの時系列に処理される各処理の内容を表す複数種類の
図形パターンを用いて表示画面上でプログラムを作成す
る第1のプログラム作成手段と、該第1のプログラム作
成手段により作成されたプログラムにおいて図形パター
ンによって表示される処理要素の下位階層プログラムを
手続き型言語を用いて作成する第2のプログラム作成手
段と、前記第1のプログラム作成手段で作成されたプロ
グラムと前記第2のプログラム作成手段で作成されたプ
ログラムとを関連付けて実行プログラムを編集する連係
編集手段とを有することを特徴とする。
【0011】本発明に係るプログラム作成装置では、図
形パターンを用いて作成したプログラムと、手続き型言
語を用いて作成した下位階層プログラムとを連係、編集
できるので、手続き型言語に熟練したエンジニアと新た
なプロラミング言語を受け入れたエンジニアとにプログ
ラム作成作業を分担させて1つのプラグラムを完成させ
ることができる。また、これまで手続き型言語により作
成したプログラム資産をそのまま活用することができる
という利点もある。
【0012】
【発明の実施の形態】以下に、本発明の実施の形態を説
明する。
【0013】[プラネットの概略説明]ネットワーク上
の複数の制御主体によって並列処理されるプログラムを
作成するために、表示画面上においてプログラムの時系
列に処理される各処理の内容を表す複数種類の図形パタ
ーンを用いてプログラムを作成するプログラム作成装置
については、本願出願人による先の出願(特願平2−3
37781号/特開平4−205423号公報)に開示
されているので、ここでは詳細な説明を省略するが、本
発明に係るプログラム作成装置はプラネットを基本にし
てそれに改良を加えたものなので、その概略についてま
ず説明する。
【0014】本形態に係るプログラム作成装置は、開発
環境として以下の構成 制御本体側 マイクロプロセッサ(エディタ、コンパイラ) 主記憶装置 ディスプレイ コンソール(マウス) ターゲット側 駆動系 プロセッサ 通信装置 記憶装置 I/O を有している。また、本発明を適用したプログラム作成
装置も、制御実体(外界からの入力事象と内部処理を規
定して分割されたタスク)群と制御手段との相互関係で
ソフトウエアを構成しているもので、制御実体の内部処
理に含まれるプロセスの並列動作、同期などの諸要件を
ペトリネットに基づく記述形式で表現することにより、
処理要件の記述性、了解性の向上を図っている点で、プ
ラネットと共通する。
【0015】プラネットが適用される実時間制御システ
ムには、入力群(各種センサ群)/出力(アクチュエー
タ群)、並びに通信路が結合されている。多数の入出力
をもつ比較的大規模なシステムでは、機能ごとに入出力
群が分割されている。分割された各入出力群ごとに制御
を行うモジュール(タスク)がシステム内に複数存在
し、これらのモジュールのやり取りでシステムを記述す
るという手法が従来から適用されている。従って、プラ
ネットでは、システム中に存在する機能モジュールを制
御実体あるいはサブシステムと称している。さらに制御
実体同士のやり取りをメッセージ送受信で行うものとし
ている。これに対して、制御しなければならない機械お
よび実現させるシステム全体をここではプロジェクト
(実世界)と定義する。実世界では複数の機械が同時に
働き、データの収集なども同時に行われる。従って、こ
れらを1つのプログラムで実現するのは、複雑、かつ、
膨大なプログラムとなり、メンテナンスが困難になる。
そこで、実世界を管理しやすいレベルに抽出し、分割し
てブログラムを作成することになる。この分割したもの
が前記のサブシステム(制御実体)である。
【0016】たとえば、図1に示すような産業機械から
なる制御機械には、いくつもの動作箇所(センサ、ソレ
ノイド等)があるので、それら個々をサブシステムとし
て扱うことも可能であるが、それではサブシステムの数
が多すぎて管理が困難になる。そこで、管理しやすい程
度の纏まった処理群をサブシステムとして抽出する。た
とえば、図1に示す機械が、コンピュータからの指示に
より、AまたはBの部品をパレットに組み込む機械とす
ると、この機械には制御盤11、給材ユニット12、組
み込みユニット13のユニット群で構成されているの
で、これらのユニット群をサブシステムとする。ここ
で、制御盤11、給材ユニット12、組み込みユニット
13がサブシステムとして動作するには、何らかの事象
がきっかけとなって動作する。このきっかけを初期事象
と定義すると、初期事象の後に実行される処理体系は、
その初期事象を評価、加工するように動作する。そし
て、処理系列を終了すると、再び初期事象を検出するよ
うに動作する。
【0017】たとえば、図1に示した機械では、制御盤
11は、外部コンピュータからの部品の指示を受けて
(初期事象)、給材ユニット12に部品の指示を出す
(処理内容)。給材ユニット12は、部品がなくなると
(初期事象)、部品を供給する(処理内容)。組み込み
ユニット13は、パレットと部品が用意されると(初期
事象)、部品をパレットに組み込む(処理内容)。従っ
て、前工程、および後工程で結合されたサブシステム間
で何らかのやり取りが必要であり、それをソフトウエア
的に行うことをメッセージ通信と定義する。
【0018】従って、図1に示す機械では、制御盤1
1、給材ユニット12、組み込みユニット13の間で
は、図2に示すようなメッセージ通信が行われることに
なる。この図において、矢印の向きがメッセージの方向
を意味する。
【0019】まず、サブシステム「制御盤」とサブシス
テム「組み込みユニット」との間では、メッセージ「部
品情報」と「組み込み終了」のやり取りを行い、サブシ
ステム「給材ユニット」からサブシステム「組み込みユ
ニット」へはメッセージ「部品有無」が送信される。
【0020】従って、プログラムがスタートすると、サ
ブシステム「制御盤」から”スタート”メッセージがサ
ブシステム「給材ユニット」「組み込みユニット」に送
信される。そして、サブシステム「制御盤」では、外部
からユーザI/O”A””B”を通してA、Bどちらの
部品を組み込むかの部品情報が来る。この部品情報に基
づき、サブシステム「組み込みユニット」に「部品情
報」を送信し、サブシステム「組み込みユニット」から
組み込み終了を受信すると、次の情報を受け取る準備を
行う。
【0021】これらの処理系列は極く単純なものであ
り、容易に実現することが可能である。しかし、実時間
制御ソフトウエアの性格上、入力事象は非同期に複数発
生し、内部状態によって検出すべき事象が刻々と変化す
るので、複雑に入り組み、このことが手続き型言語で処
理を記述する際のネックとなる。
【0022】そこで、各処理列を素直に表現するため
に、プラネットでは、文字列により一次元的な処理系列
ではなく、ペトリネットに基づいた有向グラフ構造を用
いた記述形式を採用している。
【0023】すなわち、プラネットでは、サブシステム
「制御盤」での処理列は、図3に示すような図形パター
ンを言語要素として用いて作成される。ここで、図形パ
ターンは、処理内容を示す複数種類の図形パターンと、
処理要件の時系列的な流れ方向を示す有向枝と、少なく
とも二股に分岐し、時系列的に後続する処理要件が並列
処理されるべきものであることを示す第1の矢印(分岐
有向枝)と、少なくとも二股に分岐した分岐枝が纏まっ
て後続の処理要件が複数の先行する処理要件終了の同期
をとって処理される処理動作であることを示す第2の矢
印(分岐有向枝)などを含んでいる。処理内容を示す各
種の図形パターンのうち、長円形セルはメッセージ入力
セルであり、矢印が出力しているものは処理系列の始端
を表し、ここには「BEGIN」と記される。矢印が入
力しているメッセージ入力セルは、処理系列の終端を表
し、ここには「END」と記入される。二重の長方形で
囲まれたセルは事象待ちセルであり、事象検出で、記入
された事象が発生するとその処理を終了する。長方形で
囲まれたセルは活動処理セルであり、活動要件を示し、
駆動されると、直ちに処理を行う。長方形2つに三角形
が下についたセルは、条件分岐のセルである。左の四角
の中に条件を記入し、条件を満たすと、下の矢印に従っ
て実行される。
【0024】また、給材ユニットは、プラネットで作成
した処理列を図4に示すように、サブシステム「制御
盤」からの”スタート()”メッセージを受信すること
により動作する。まず、センサにより部品の有無を検知
し、給材の動作をする。実際の給材の動作は、さらに下
位階層ブロック「給材」により動作する。給材が終了す
ると、サブシステム「組み込みユニットに「部品有無」
のメッセージを送信する。ここで、部品がなくなると、
下位階層ブロック「欠品処理」により欠品処理を行う。
【0025】組み込みユニットも、プラネットで作成し
た処理列を図5に示すように、サブシステム「制御盤」
からの”スタート()”メッセージを受信することによ
り動作する。まず、パレットと部品がセットされると、
部品の組み込みを行う。A、Bどちらの部品を組み込む
かは、サブシステム「制御盤」からのメッセージ「部品
情報」の変数「種類」に指示される。組み込みが終わる
と、サブシステム「制御盤」にメッセージ「組み込み終
了」を送信し、次の情報を得る準備を行う。なお、”D
IM 種類 AS REAL”との記述は、後述する変
数の宣言である。
【0026】このようなプログラムは、その規模が大き
くなると、図式が巨大になるし煩雑になり、わかり難く
なる。そこで、プラネットは、ひとまとまりの処理を1
枚の図式に収め、それを上位抽象レベルの図式中の一処
理要件として呼び出すことができるようにしている。
【0027】[階層化構造]図6にはこの関係を示して
ある。この関係を手続きの階層化という。ここで、下位
階層の処理は、上位階層の処理要件に制御が到達したと
きに駆動される。すなわち、上位階層ブロックの処理が
下位階層ブロックの活動処理セルに至ると、下位階層ブ
ロックのBEGIN端子に制御が渡され、下位階層処理
系列が実行を開始する。そして、下位階層処理の処理が
進行し、END端子に至ると、下位階層中の全ての制御
が破棄されて、上位階層に制御が返される。そして、返
された制御は上位階層中の処理要件を継続する。要する
に、一枚の画面上においては、その上下方向が処理の時
系列方向を意味し、左右の広がりが処理の並行性を意味
している。すなわち、画面のいわゆる深み方向が階層性
を意味している。このような手続きの階層化は、上記階
層処理列で階層化を指定すると、自動的に下位階層処理
列が作成され、その状態は、後述するようにツリービュ
ーで表される。このように構成することにより、上位階
層では、抽象度の高い処理の流れだけを記述することに
なるので、プログラムの手続き列をすべて記述する手続
き型言語に比較して、簡潔で分かりやすいものとなる。
【0028】このようにして手続きを階層化したとき、
上位階層プログラムに制御要件として記述されたひとか
たまりの副手続きプログラムをブロックと呼んでいる。
ブロックには名前が付されており、その上位階層ブロッ
クの処理要件に記入することにより下位階層ブロックを
呼び出すことになる。下位階層ブロックの呼出しには、
再帰、間接再帰が許可されている。
【0029】[変数の扱い]ここで、各ブロックを走行
させるのに必要な変数は、ローカル変数、グローバル変
数、バックアップ変数からなる型の異なる3種類の変数
からなる。いずれの型の変数であるかは、使用する前に
型宣言することになる。また、各変数には変数名をつけ
ることになる。
【0030】これらの変数のうち、ブロック内のみで共
通なのがローカル変数、サブシステム内で共通なのがグ
ローバル変数、プロジェクト全体で共通で、かつバック
アップ(不揮発という意味)されるのがバックアップ変
数である。この様子を図7に示す。これらの変数を使用
するためには、ブロック内に以下のステートメント ローカル変数 DIM 変数名・・・ AS変数型 グローバル変数 GLOBAL 変数名・・・ AS変数型 バックアップ変数 SYS 変数名・・・ AS変数型 で宣言する。
【0031】また、数値変数としては整数型と実数型と
があり、それぞれ以下のステートメント 書式:[変数宣言][変数名]{,[変数名]nAS
[型宣言] で定義する。ここで、整数型でも、−128〜127ま
での整数、および−2147483648〜21474
83648までの整数の場合には、それぞれの使用バイ
ト数が1、4と相違するので、それぞれ[BYTE]、
[INTEGER]との型宣言文を用いる。また、実数
型でも、7桁の実数、および14桁の実数とでは、それ
ぞれの使用バイト数が4、8と相違するので、それぞれ
[REAL]、[DOUBLE]との型宣言文を用い
る。
【0032】また、文字列変数も、以下のステートメン
ト 書式:[変数宣言][文字列変数名]{,[文字列変数
名]nAS STRING]} で定義する。
【0033】配列変数は同じ型の変数の集まりで、数値
変数、文字列変数とも、以下のステートメント 書式:[変数宣言][変数名][a{,{,c}][型
宣言文] 但し、a、b、cは各次元の配列数でそれぞれは0〜2
54の整数 a*b*c(a、b、cの積)≦32767 で配列変数にすることができる。
【0034】[プログラム例]図8および図9を参照し
て、このような構成のプラネットで作成したプログラム
の一例を説明する。
【0035】ここに示すプログラムは、ツリービューに
表示されているように、2つのサブシステム(操作パネ
ル、ユニット)の各々に対応する制御プログラム(操作
パネル制御プログラム、ユニット制御プログラム)を有
し、いずれも階層化構造を有する。
【0036】すなわち、図8に示すように、操作パネル
制御プログラム、ユニット制御プログラムは、それぞれ
上位階層ブロックとしてのルートブロックRootBl
kを有し、たとえば、ユニット制御プログラムは、その
下位階層ブロックとして、自動運転ブロック、原点復帰
ブロック、ティーチングブロック、および手動操作ブロ
ックを有する。
【0037】これら下位階層のブロックのうち、たとえ
ば、ユニット制御/原点復帰ブロックは、さらに下位階
層のブロックとして、2種のマニピュレータ設定(L側
およびR側)ブロックを有している。また、ユニット制
御/自動運転ブロックは、図9に示すように、さらに下
位階層のブロックとして、ユニット制御左給材位置移動
ブロックなどを有している。
【0038】ここに示す例は、プログラミングの全てに
わたって、図式を用いたものである。但し、ユニット制
御/自動運転ブロックの下位階層のブロックとしてのユ
ニット制御左給材位置移動ブロックは、図10に示すよ
うに、手続き型言語でも作成可能であり、このブロック
については手続き型言語で作成した方が簡潔な場合もあ
る。
【0039】そこで、本形態では、以下に説明するよう
に、従来のプラネットではプログラミングの全てにわた
って図式を導入可能としているのに対して、本発明を適
用した改良プラネット(以下、プラネット95とい
う。)では、手続き型言語で作成した下位階層プログラ
ムも連係させて実行プログラムに編集するように構成し
てある。たとえば、ユニット制御左給材位置移動ブロッ
クについては、図10に示すように、手続き型言語によ
るプログラミングツールで作成し、その他のプログラム
あるいはその上位階層のプログラムについてはプラネッ
ト95上で作成した後、上位階層のブロックにおいて、
下位階層のブロックを指定するだけで、それがプラネッ
ト上で作成したもか、あるいは手続き型言語で作成した
ものかにかかわらず、連係、編集して、1つの実行プロ
グラムを作成することができる。それ故、ベテランと呼
ばれているエンジニアには、使い慣れている手続き型言
語を用いてのプログラム作成作業を担当させ、プラネッ
トなどといった新たなプロラミング言語を柔軟に受け入
れた若手のエンジニアなどには、このPLANETの様
な新たなプログラミング言語を用いてのプログラム作成
作業を担当させながら、1つのプログラムを完成させる
方法を達成できる。また、これまで手続き型言語により
作成したプログラム資産をそのまま活用することができ
るという利点もある。
【0040】[連係編集例1]図11は、本発明を適用
したプログラム作成装置において行うプログラムの連
係、編集動作を示す機能ブロック図である。
【0041】図11において、本発明を適用したプログ
ラム作成装置には、プログラムの時系列に処理される各
処理の内容を表す複数種類の図形パターンを用いて表示
画面上でプログラムを作成する図形プログラム(以降に
おいてはPLANETプログラム)作成用のエディタ2
1が第1のプログラム作成手段として用意されており、
このエディタ21によってPLANETのソースファイ
ル212がサブシステム毎にブロック単位で作成され
る。また、第1のプログラム作成手段21により作成さ
れたプログラムにおいて図形パターンによって表示され
る処理要素の下位階層プログラムを手続型言語を用いて
作成する手続型プログラム用エディタ31が第2のプロ
グラム作成手段として用意されており、このエディタ3
1によって手続型プログラムのソースファイル312が
ブロック単位で作成される。第2のプログラム作成手段
31は、このプラネット95自身に実装されているテキ
ストエディタ、あるいは汎用テキストエディタを用いる
ことができる。第2のプログラム作成手段31として、
プラネット95自身に実装されているテキストエディタ
を用いた場合には、プラネット95上で自動的にファイ
ル名が付されて保存される。これに対して、第2のプロ
グラム作成手段31として、汎用エディタを用いた場合
には、所定の拡張子をもつファイル名で保存しておくこ
とになる。
【0042】本例のプラネット95においては、PLA
NETソースファイル312のソースコードで手続型言
語で作成されたプログラムを下位階層プログラムとして
参照することが許されている。このため、以下に述べる
コンパイルあるいはインタプリタの処理においては、ソ
ースコードで宣言され、その後、リンク情報として残さ
れた手続型プログラムの情報を識別し、手続型プログラ
ムをリンクできるようになっている。エディタ21にお
いては、図12に示すような方法で手続型プログラムと
のリンクが宣言される。先ず、あるサブシステムの処理
を記述したPLANETソース「SUBMAIN」中
に、SUB1およびSUB2という下位階層のブロック
が記述されているとする。通常、下位階層のブロックも
図形プログラムであり、「SUB1」を開くとPLAN
ETソースコードがあり、SUB1のプロパティはPL
ANETが選択されている。これに対し、「SUB2」
を開くと空のブロックとなっており、プロパティは手続
型プログラムが選択されている。さらに、このブロック
SUB2としてリンクする手続型プログラムのファイル
名称(SUB2.PRG)が記載されている。このよう
に、本例の図形プログラム用エディタ21は、ブロック
のプロパティとして図形プログラム(PLANET)と
手続型プログラムとが選択できるようになっており、そ
の情報がコンパイラおよびインタプリタでリンク情報と
して参照される。
【0043】本例のPLANET95のプログラム作成
システムは、第1および第2のプログラム作成手段21
および31の各々に続くコンパイラ22および32を備
えており、図形プログラムのコンパイラ22が連係編集
手段としての機能を果たすようになっている。本例にお
いては、第1および第2のプログラム作成手段21およ
び31で作成されたブロック(プログラム)からターゲ
ットCPU(プロセッサ)毎に1つの実行用プログラム
が編集される。コンパイラ22は、まず、第1のプログ
ラム手段21で図形パターンを用いて作成されたブロッ
ク毎のプログラムを、その図形情報に基づいて、制御機
器上で直接、実行可能なプログラムに変換する。この際
には、ペトリネットの実行規則をプログラム解析のとき
に導入し、グラフ理論におけるDFS、BFS、DAG
等のような手法を用いて、コントロールフロー、データ
フローを解析し、図形で得られるプラネットプログラム
構造を並列に動作する複数の逐次プロセスに展開する。
このように生成された各プロセスに対して、マイクロプ
ロセッサのコード選択、生成コードの最適化を適用し、
併せて、第2のプログラム作成手段31で手続き型言語
で作成されたブロックをリンクさせながら、実走行コー
ドを生成している。
【0044】このような処理をさらに詳細に説明する
と、以下のようになる。
【0045】まず、パーサ221は、エディタ21で作
成されたプラネットプログラム(ソールファイル)の図
形情報ファイル212を解析し、仮想機械の走行コード
を生成し、ソースファイル212に対応するブロック単
位の中間コードファイルに格納する。パーサ221は、
ブロック毎のプログラム枠毎に解析を行う。生成された
ブロック毎のプログラム情報は、以降の操作でまとめら
れて大きなプログラムを構成することになる。
【0046】次に、ソータ222は、パーサ221が出
力するブロック毎の解析結果を中間コードレベルでリン
クする。すなわち、プロセッサの名前が一致するブロッ
クを指定された入力ファイル群の中から検索してそのブ
ロックの中間コードをファイルに格納し、このブロック
において下位階層ブロックを呼び出している場合には、
その下位階層ブロックを検索してファイルに追加する。
また、これらのブロックで起動している全ての制御実体
のブロックも同様に検索してファイルに追加する。この
ようにして必要とされる全てのブロックをファイルに格
納するとき、そのプロセッサがもっているI/Oポート
とビットのアドレス、名前の情報を検索して、ブロック
中で、I/Oポートおよびビットを使用している場合に
は、アドレスをファイルに書き込む。また、下位階層ブ
ロックがアクセスしているグローバル変数をリンクす
る。この結果、ソータ222により、プロセッサ毎の中
間コードファイル232と、その中間コードファイル2
32による処理を行う上で必要なリンク情報が記載され
たリンク情報ファイル233が形成される。このリンク
情報ファイル233は、中間コードファイル232と別
の名称のファイルとして形成されても良く、あるいは、
中間コードファイル232中にリンク情報として含まれ
るようにしても良いことはもちろんである。
【0047】次に、コードジェネレータ223は、ソー
タ222が出力する仮想機械の中間コードを入力とし
て、それと等価なマシンコードを生成し、マシンコード
のファイル234を出力する。また、コードジェネレー
タ223は、ソータ222が出力する仮想機械の中間コ
ードに含まれる情報をもとに、マシンコードだけでな
く、ネットワーク上のリンク情報、アセンブラとのリン
ク情報、および手続型言語とのリンク情報などを含んだ
リンク情報ファイル235も生成する。
【0048】一方、第2のプログラム手段31により、
手続き型言語で下位階層ブロックとして作成されたプロ
グラムは、コンパイラ32のパーサ321で中間コード
に翻訳され、さらに、コードジェネレータ323によっ
て、制御機器上で直接、実行可能なプログラムに変換さ
れ、ブロック毎のマシンコードのファイル334が作成
される。
【0049】プラネット用のコンパイラ22のリンカ2
24は、コードジェネレータ223が生成したネットワ
ーク上のリンク情報、アセンブラとのリンク情報、およ
び手続き型言語とのリンク情報など全ての要件をリンク
して、機械が実際に動作可能なマシンコードを生成し、
実行プログラム41を出力する。例えば、リンク情報フ
ァイル235で供給されたリンク情報に基づき、指定さ
れたライブラリファイル50からアセンブラで記述され
たモジュールを検索し、走行モードを追加する。また、
手続型言語で生成されたブロックをリンクするための情
報をもとに、指定されたファイルからそのブロックを検
索し、走行モードを追加する。このようにして得られた
走行コードを実走行コードファイル41として出力す
る。したがって、プラネットプログラム中に複数のプロ
セッサが記述されているときには、全てのプロセッサ毎
にそのままで実行可能な状態、すなわち、関連するライ
ブラリあるいは全ての下層階層プログラムの実行モジュ
ールを組み込んだ状態の比較的大きな実走行コードファ
イルが生成される。
【0050】このようにして、第1のプログラム作成手
段21で作成されたプログラムと第2のプログラム作成
手段31で作成されたプログラムとを関連付けて実行プ
ログラム41を編集する連係編集手段が構成されてい
る。そして、各ターゲットCPUは、この実行プログラ
ム41をロードし、各サブシステムを所定の手順で駆動
する。さらに、PLANETシステムには各々の実行プ
ログラム41をデバックするためのデバッガ61が用意
されており、個々の実行プログラム41をデバックでき
るようになっている。このデバッガ61については、さ
らに以下で説明する。
【0051】[連係編集の例2]図13は、本発明を適
用したプログラム作成装置において行うプログラムの別
の連係、編集動作を示す機能ブロック図である。
【0052】図13においては、まず、図11に示した
PLANETシステムと同様にエディタ21および31
によってそれぞれのソースファイル212および312
が作成される。次に、PLANETソースファイル21
2は、コンパイラ22において上記と同様に、パーサ2
21で図形パターンを用いて作成されたブロック毎のプ
ログラム212から仮想機械の走行コードが生成され、
中間コードファイルに格納される。次に、ソータは、パ
ーサ221が出力するブロック毎の解析結果を中間コー
ドレベルでリンクする。すなわち、プロセッサの名前が
一致するブロックを指定された入力ファイル群の中から
検索してそのブロックの中間コードをファイルに格納
し、このブロックにおいて下位階層ブロックを呼び出し
ている場合には、その下位階層ブロックを検索してファ
イルに追加する。また、これらのブロックで起動してい
る全ての制御実体のブロックも同様に検索してファイル
に追加する。このようにして必要とされる全てのブロッ
クをファイルに格納するとき、そのプロセッサがもって
いるI/Oポートとビットのアドレス、名前の情報を検
索して、ブロック中で、I/Oポートおよびビットを使
用している場合には、アドレスをファイルに書き込む。
また、下位階層ブロックがアクセスしているグローバル
変数をリンクする。また、コードジェネレータは、ソー
タが出力する仮想機械の中間コードを入力として、それ
と等価なマシンコードを生成する。また、ジェネレータ
は、ソータが出力する仮想機械の中間コードに含まれる
情報をもとに、マシンコードだけでなく、ネットワーク
上のリンク情報、アセンブラとのリンク情報、および手
続き型言語とのリンク情報を生成する。このコンパイラ
22の構成は上記の例と同様であるので、図面には省略
して示してある。
【0053】このようにして、上記の例と同様にコード
ジェネレータによって各CPU毎にマシンコードのファ
イルとリンク情報のファイルが生成される。本例のシス
テムにおいては、これらのファイルを用いてリンカ22
4が、ライブラリ50などから実行モジュールを取り込
むが、手続型プログラムの実行モジュールは取り込まな
い状態の実行プログラムファイル42と、手続型プログ
ラムへのリンク情報を備えたリンク情報ファイル43と
を生成する。本例のシステムでは、手続型言語で生成さ
れたブロックをリンクするためのヘッダファイルという
形式でリンク情報ファイル43が作成される。このリン
ク情報は実行プログラムファイル内に格納することもも
ちろん可能である。
【0054】一方、第2のプログラム作成手段であるエ
ディタ31で手続型言語を用いて作成された下位階層ブ
ロックのソースファイル312は、パーサ321によっ
てインタプリタ34に解釈可能な中間コードに変換(翻
訳)され、中間コードファイル331として出力され
る。
【0055】この結果、ターゲットCPU39は、図形
型プログラム(PLANETプログラム)で記述された
部分は、マシンコードに翻訳された実行プログラム42
をロードして処理を行い、手続型プログラムで記述され
た部分は、リンク情報43に基づいてインタプリタ34
が機械語に翻訳したマシンコードに基づいて処理を行
う。従って、インタプリタ34がPLANETプログラ
ムと手続型プログラムをリンク情報に基づいてリンクさ
せてプロセッサで実行可能なプログラムを提供する連係
編集手段としての機能を果たす。
【0056】[連係編集の例3]図14は、本発明を適
用したプログラム作成システムのさらに異なった例を示
すブロック図である。図14においても、まず、図11
に示したPLANETシステムと同様にエディタ21お
よび31によってそれぞれのソースファイル212およ
び312が作成される。次に、PLANETソースファ
イル212は、コンパイラ22において上記と同様に、
パーサ221でブロック毎の中間コードファイルとな
り、ソータ222によりプロセッサ毎の中間コードファ
イル232が作成される。この中間コードファイル23
2と同時に、そのプロセッサが持っているI/Oポート
とビットのアドレス、下位階層ブロックがアクセスして
いるグローバル変数、ネットワーク上のリンク情報、ア
センブラとのリンク情報、および手続型言語とのリンク
情報が含まれたリンク情報ファイル233が作成され
る。そして、本例では、この状態でマシンコードに変換
されずにコンパイラ22から出力される。
【0057】一方、第2のプログラム作成手段であるエ
ディタ31で手続型言語を用いて作成された下位階層ブ
ロックのソースファイル312は、パーサ321によっ
てインタプリタ34に解釈可能な中間コードに翻訳さ
れ、中間コードファイル331として出力される。
【0058】この結果、図形型プログラム(PLANE
Tプログラム)で記述された部分、および手続型プログ
ラムで記述された部分が中間コードの状態でターゲット
CPU39に提供される。ターゲットCPU39には、
既に、インタープリタ34が実装されており、実行時は
中間コードを一行ずつ解釈して実行される。さらに、ラ
イブラリ50が参照されている場合は、インタプリタ3
4によって、その実行モジュールが取り込まれてCPU
39に供給される。したがって、インタプリタ34がP
LANETプログラムと手続型プログラムをリンク情報
に基づきリンクさせてプロセッサで実行可能なプログラ
ムを供給する連係編集手段としての機能を果たす。本例
のシステムでは、図形型プログラムおよび手続型プログ
ラムが中間コードまで翻訳された段階でメモリに収納さ
れるので、プログラム全てがマシンコードに翻訳された
後のすぐに実行可能なマシンコードの状態でメモリに収
納される場合よりもメモリ容量は少なくて済む。さら
に、中間コードまで翻訳されているので、インタプリタ
34の処理時間は短くて済み、プログラムの実行速度を
確保することができる。
【0059】[デバッガ/実行確認]このようにして得
られた実行可能なマシンコードが正しく動作するか否か
は、図11ないし図14を参照して説明したいずれの形
態でも、デバックモニタを用いて検証する。このデバッ
グモニタプログラムは、各種コンピュータ上で実行可能
である。このデバッガ61(デバッグ手段)の内容は、
プログラムのダウンロード、プログラムのトレース、I
/Oポートのモニタリングである。このデバッガ61の
作用により、ターゲットプロセッサの動作をソースレベ
ルで監視することができる。従って、ソースレベルでデ
バック可能なので、デバッグ作業を効率よく行うことが
できる。
【0060】(デバッグ:Breakのポイントの設
定)ブレイクポイントの設定を行うには、図38に示す
ように、ツールバー内の”Break”を選択する。ブ
レイクポイントの設定するセルにマウスを合わせ、クリ
ックする。ブレークポイントを解除する場合も設定と同
様の手順で行う。
【0061】(デバッグ:サブシステムの実行)プログ
ラムの実行を行うには、ツールバーより”Run”を選
択する。すると、図39に示すように、プログラムの実
行が開始され、出力ウインドウにメッセージが現れる。
プログラム中にブレイクポイントが設定されている場合
には、赤玉がその場所で停止し、プログラムが”一時停
止中”であることがわかる。一時停止中の赤玉を進める
には、赤玉が次に通過すべき箇所をクリックする(st
ep実行)。なお、指定されたファンクションキー(た
とえば、F5)を押すと、ブレイクポイントに関係な
く、プログラムを再スタートできる。
【0062】(プログラムの強制終了)プログラムの実
行を停止する場合には、図40に示すように、ツールバ
ー内より”Abt”を選択する。
【0063】なお、デバッグ作業は、実行確認と同様、
エディタによるプログラム作成と同様、マウスとキーボ
ードを使用して、マルチウインドウ上で行うことがで
き、これらのマルチウインドウ、マウスおよびキーボー
ドにより、実行すべきブロックを指定するブロック指定
手段が構成されている。
【0064】たとえば、図9示した例で説明すると、ま
ず、ツリービュー上で対象ブロックをクリックしてブロ
ックを選択する。なお、対象ブロックの選択方法として
は、ツリビュー上での指定だけでなく、画面上に開かれ
ているプログラムのウインドウを直接、指定する方法で
もよい。その結果、目標とするブロックが指定されたこ
とになり、対応するソースプログラムがソースファイル
(格納手段)から呼び出され、表示される。ポップアッ
プメニューの中から”実行”を選ぶと(開始指令手
段)、ターゲットプロセッサの任意のブロックにおいて
BEGIN端子から実行が開始され、END端子に制御
が到達するまで実行し、終了する。なお 実行開始の指
示方法としては、ポップアップメニューだけからではな
く、プルダウンメニューやショートカットキーあるいは
ファンクションキーなどで実行指示を行ってもよい。さ
らに、ドラッグアンドドロップで実行指示を行ってもよ
い。
【0065】この際に、対象となったブロックにその下
位階層ブロックを含む際には、この下位階層ブロックも
実行される。すなわち、図6に示す階層化構造におい
て、ブロックB1を対象に指定すると、その下位階層ブ
ロックであるブロックB2も実行される。このような実
行には変数が必要であるが、本形態では、図7を参照し
て説明したように、該当するブロックのみで使用する変
数についてはローカル変数として設定され、サブシステ
ム内で共通な変数のうち、下位階層ブロックがアクセス
しているグローバル変数については、いずれかのブロッ
クを作成する際にこのブロック内でグローバル変数であ
ることを宣言しておけば良い。
【0066】図11ないし図14を参照して説明したよ
うに、コンパイラ22のパーサ221が出力するブロッ
ク毎の解析結果を中間コードレベルでリンクする際に、
ソータ222が他のリンク情報と共にリンク情報ファイ
ル233としてグローバル変数についての情報も出力す
る。このため、それらのグローバル変数について適当な
値を設定するなどの処理を施すことができる。従って、
任意のブロックを選択して、このブロック単体、または
それに含まれる下位階層ブロックと合わせて実行させる
ことができるので、ある特定のブロックのみを実行させ
ることができる。
【0067】従って、上位階層ブロックについてまで、
デバッガあるいは実行を行わせる必要がないので、上位
階層ブロックを走行させるためのダミープログラムが不
要である。また、指定したブロック以外のブロックにお
いて動作ストロークの長い機械体が移動したり、加工、
組立て、薬剤処理、検査などいった処理が行われるとし
ても、このような対象外のブロックは実行されない。す
なわち、指定したブロックのみにおいて、バグ修正ある
いは実行確認が行われるので、バグ修正あるいは実行確
認に手間がかからない。しかも、対象外のブロックが実
行されないので、バグ修正済みあるいは実行確認済みの
ブロックについては実行させずに、指定したブロックの
みにおいてバグ修正あるいは実行確認を行えるという点
でも、バグ修正あるいは実行確認に手間がかからない。
さらにまた、上位階層のブロックが存在しなくても、個
々の下位階層のブロックのみについて、バグ修正あるい
は実行確認をできるということは、大規模で複雑な機械
制御プログラムを作成するのに適している。すなわち、
大規模で複雑な機械制御プログラムを作成する際には、
複数人が分担してプログラミングを行い、それを最後に
結合してから総合デバッグする方法が採用されている
が、本形態のプログラム作成装置では、上位階層のブロ
ックが存在しなくても、個々の下位階層のブロックのみ
についてバグ修正あるいは実行確認をできるので、これ
らを終えてから、個々のブロックを結合することができ
る。
【0068】[操作方法]図15ないし図40を参照
し、プラネット95の操作方法を説明しながら、全体的
な機能を説明する。
【0069】(プラネット95の起動)デスクトップ上
にある”PLANET.EXE”をダブルクリックす
る。
【0070】(新規プロジェクトの作成)図15に示す
ように、プログラムを記入するため、新しいプロジェク
トを作成する。次に、新規プロジェクト名(N)にプロ
ジェクト名を入力し、”OK”ボタンを押すと、プロジ
ェクト名が作成される。ここでは、プロジェクト名「s
ample」としてある。ここでいうプロジェクトと
は、1つの装置を構成するファイルのことをいう。
【0071】(ターゲット定義)1つのコントローラ
(FA/PCなど)単位をターゲットといい、ここで
は、そのターゲットの名称などを定義する。それには、
図16に示すように、ハードウエアのタブを選択後、ツ
リービュー内のハードウエアを右クリックし、更にプロ
パティをクリックする。
【0072】そうすると、図17に示すように、”ター
ゲット定義”ウインドウが表示される。ターゲットを定
義する場合は、”追加”ボタンを押す。
【0073】すると、図18に示すように、”ターゲッ
トプロパティ”ウインドウが表示される。ターゲット名
の入力、および各種の設定を行い、”OK”ボタンを押
すと、ターゲットが定義される。ここに示す例では、”
Target1”というターゲット名をつける。
【0074】このようにしてターゲット定義を行うと、
図19に示すように、ハードウエアの下にターゲット
名”Target1”が表示される。
【0075】(サブシステムの定義)サブシステムを定
義する際には、図20に示すように、プログラムタブを
クリックし、ツリービュー内に作成されたプロジェクト
名(この例では”sample”)をダブルクリックす
る。すると、サブシステム構成ウインドウが開かれる。
【0076】次に、図21に示すように、ツールバーの
中から”subsystem”アイコンを選択すると、
サブシステム作成のモードになる。
【0077】サブシステム構成ウインドウ内でマウスの
左ボタンを押しながら、任意の大きさにドラッグし、矩
形を描く。すると、図22に示すように、”サブシステ
ムプロパティ”ダイアログが表れる。”サブシステムプ
ロパティ”ダイアログに、サブシステム名称を入力
し、”OK”ボタンを押すと、この例ではサブシステム
1”というサブシステム名を入力する。
【0078】すると、図23に示すように、”サブシス
テム1”というサブシステムが作成され、サブシステム
の定義が完了する。
【0079】(ツリービューへの反映を確認)同様に、
図24に示すように、2つ目のサブシステムとして”サ
ブシステム2”を作成する。そして、左側のツリービュ
ー内に、作成した”サブシステム1”と”サブシステム
2”が反映されていることを確認する。
【0080】(メッセージ定義)メッセージ作成を行う
には、図25に示すように、ツールバー内の”edi
t”を選択する。
【0081】そして、メッセージ送信側となるサブシス
テムの上でマウスを右クリックする。すると、図26に
示すように、ポップアップメニューが現れる。ポップア
ップメニューより、”新規メッセージタップ(N)”を
選択する。
【0082】”新規メッセージタップ(N)”をクリッ
クすると、図27に示すように、メッセージプロパティ
が現れる。メッセージ名、引数の設定を行う。この例で
はメッセージ名を”メッセージ1”、メッセージにつけ
る引数の型を”INTGER”、引数名を”引数1”と
設定する。
【0083】(受信側サブシステムの設定)図28に示
すように、メッセージプロパティの”受信設定”ボタン
を押すと、”受信側サブシステム”ウインドウが現れ
る。受信側のサブシステム名をクリックする。そして、
選択欄に二重丸が付いたことを確認する。この図に示す
例では、サブシステム1から送信されたメッセージをサ
ブシステム2で受信するので、”サブシステム2”をク
リックし二重丸を付ける。受信側サブシステムの選択が
終了したら、”OK”ボタンを押す。
【0084】(メッセージ定義の終了)これまでの手順
が終了したら、メッセージプロパティダイアログの”O
K”ボタンを押す。以上の手順によりメッセージ定義が
完了する。一度定義したメッセージを再編集するには、
図29に示すように、編集したい送信側のメッセージ端
子上で右クリックする。すると、ポップアップメニュー
が現れるので、その中のメッセージタップ編集”を選択
する。
【0085】(マニピュレータ・I/Oラベルの設定)
ハードウエアのタブを選択する。ツリービューのターゲ
ット名の上で右クリックすると、図30に示すように、
ポップアップメニューが開かれる。ポップアップメニュ
ー中の”開く”を選択すると、I/Oラベルを定義する
ウインドウが表示されるので、各々の設定を行うことが
できる。
【0086】(ブロックの作成)次に、ブロックの作成
を行う。ツリービューウインドウ内のサブシステム1”
RootBlk”をダブルクリックする。すると、図3
1に示すように、”サブシステム1:RootBlk”
ウインドウが開かれるので、ツールバーから入力したい
セルのアイコンを選択し、プログラムを記述していく。
【0087】[下位階層の呼出し]記述の際に、Roo
tBlkウインドウ内の下位階層を作成したときには、
図32に示すように、ツリービューにも反映されてい
く。ここに示す例では、”動作終了()”という下位階
層を作成する。
【0088】[メッセージ送信端子の設定]図33に示
すように、メッセージ端子の設定は、BEGINと同じ
長楕円の中に表す。
【0089】[アーク(矢印)の結線]図形セルの描画
が終了した後は、図34に示すように、セルとセルとの
間をアークで結線する。アーク結線の操作手順は、ま
ず、出力側のセル内にマウスを合わせて1回クリック
し、次に入力側のセル内に合わせて1回クリックする
と、アークが結線される。結線に失敗したときには、接
続点が赤色に変わるので、DELボタンで削除してから
再度、結線を行う。
【0090】処理の分岐/合流点を表すようなアーク同
士の結線は、それぞれの線が垂直または水平である場合
にのみ可能である。このときSiftキーを押しながら
アークを描くと、線が垂直または水平となる。PLAN
ET95(PLANET)では、全ての出力節からアー
クを出力する必要がある。
【0091】[メッセージ受信]図35に示すように、
メッセージ受信側となる”サブシステムのRootBl
k”を開き、記述する。ここに示す例では、サブシステ
ム2の方で受信するので、サブシステム2の”Root
Blk”を開く。メッセージ受信の記述は、シングルウ
エイトの中にメッセージ名と()に引数を書く。引数が
ない場合には()のみとなる。
【0092】[コンパイル]プログラムの記述が全て終
了したら、ツールバーよりcompileを選択し、実
行する。コンパイルエラーがなく終了した場合には、図
36に示すように、出力ウインドウに”コンパイル終
了”のメッセージが出る。エラー発生などでコンパイル
が通らなかった場合には、出力ウインドウ内にエラー箇
所と内容が表示される。出力ウインドウ内のエラー表示
をダブルクリックすると、エラー表示箇所のウインドウ
が開く。
【0093】[デバッグ:EXEモードへの以降、シス
テムモニタ]コンパイル終了後、ツールバーより”EX
E(実行ボタン)”を選択する。すると、図37に示す
ように、システムモニタが表示され、各変数やI/Oの
状態が表示される。
【0094】(デバッグ:Breakのポイントの設
定)ブレイクポイントの設定を行うには、図38に示す
ように、ツールバー内の”Break”を選択する。ブ
レイクポイントの設定するセルにマウスを合わせ、クリ
ックする。ブレークポイントを解除する場合も設定と同
様の手順で行う。
【0095】(デバッグ:サブシステムの実行)プログ
ラムの実行を行うには、ツールバーより”Run”を選
択する。すると、図39に示すように、プログラムの実
行が開始され、出力ウインドウにメッセージが現れる。
プログラム中にブレイクポイントが設定されている場合
には、赤玉がその場所で停止し、プログラムが”一時停
止中”であることがわかる。一時停止中の赤玉を進める
には、赤玉が次に通過すべき箇所をクリックする(st
ep実行)。なお、指定されたファンクションキー(た
とえば、F5)を押すと、ブレイクポイントに関係な
く、プログラムを再スタートできる。
【0096】(プログラムの強制終了)プログラムの実
行を停止する場合には、図40に示すように、ツールバ
ー内より”Abt”を選択する。
【0097】
【発明の効果】以上説明したように、本発明に係るプロ
グラム作成装置では、図形パターンを用いて作成したプ
ログラムと、手続き型言語を用いて作成した下位階層プ
ログラムとを連係、編集できるので、手続き型言語に熟
練したエンジニアと新たなプロラミング言語を受け入れ
たエンジニアとにプログラム作成作業を分担させて1つ
のプラグラムを完成させることができる。また、これま
で手続き型言語により作成したプログラム資産をそのま
ま活用することができるという利点もある。
【図面の簡単な説明】
【図1】本発明を適用したプログラム作成装置における
プロジェクトおよびサブシステムを説明するための説明
図である。
【図2】図1に示すサブシステム間で行うメッセージ通
信の説明図である。
【図3】図1に示す制御盤(サブシステム)のルートブ
ロックを示す説明図である。
【図4】図1に示す給材ユニット(サブシステム)のル
ートブロックを示す説明図である。
【図5】図1に示す組み込みユニット(サブシステム)
のルートブロックを示す説明図である。
【図6】本発明を適用したプログラム作成装置における
ブロックの階層化を示す説明図である。
【図7】本発明を適用したプログラム作成装置における
変数の取扱いを示す説明図である。
【図8】本発明を適用したプログラム作成装置で作成し
たプログラムの一例を示す説明図である。
【図9】本発明を適用したプログラム作成装置で作成し
たプログラムにおいて、別のブロックを表示させた状態
を示す説明図である。
【図10】図9に示すプログラムにおいて、下位階層ブ
ロックを手続き型言語で作成した例を示す説明図であ
る。
【図11】本発明を適用したプログラム作成装置で、図
形パターンを用いて作成したプログラムと、その下位階
層プログラムを手続き型言語を用いて作成したプログラ
ムとを連係、編集するための構成を示すブロック図であ
る。
【図12】ブロックのプロパティを設定する例を示す図
である。
【図13】本発明を適用したプログラム作成装置で、図
形パターンを用いて作成したプログラムと、その下位階
層プログラムを手続き型言語を用いて作成したプログラ
ムとを連係、編集するための別の構成を示すブロック図
である。
【図14】本発明を適用したプログラム作成装置の皿に
異なるシステムの概要を示すブロック図である。
【図15】本発明を適用したプログラム作成装置におけ
る新規プロジェクトの作成操作を示す説明図である。
【図16】本発明を適用したプログラム作成装置におい
てターゲット定義を行うためのウインドウを表示させる
操作を示す説明図である。
【図17】本発明を適用したプログラム作成装置におい
て、ウインドウ上でターゲット定義を行う操作を示す説
明図である。
【図18】本発明を適用したプログラム作成装置におい
て、ウインドウ上でターゲット定義を行うためのターゲ
ットプロパティウインドウを示す説明図である。
【図19】本発明を適用したプログラム作成装置におい
て、ターゲット定義を行った後のウインドウを示す説明
図である。
【図20】本発明を適用したプログラム作成装置におい
て、サブシステムを定義するためのウインドウを示す説
明図である。
【図21】本発明を適用したプログラム作成装置におい
て、サブシステムを定義する際のサブシステム作成モー
ドのウインドウの説明図である。
【図22】本発明を適用したプログラム作成装置におい
て、サブシステムを定義する際のサブシステムプロパテ
ィダイアログの説明図である。
【図23】本発明を適用したプログラム作成装置におい
て、1つのサブシステムを定義した後のウインドウの説
明図である。
【図24】本発明を適用したプログラム作成装置におい
て、2つのサブシステムを定義した後のウインドウの説
明図である。
【図25】本発明を適用したプログラム作成装置におい
て、メッセージ定義を行うための操作を示す説明図であ
る。
【図26】本発明を適用したプログラム作成装置におい
て、メッセージ定義を行うための操作を示す説明図であ
る。
【図27】本発明を適用したプログラム作成装置におい
て、メッセージ定義を行う際に表示されるメッセージプ
ロパティを示す説明図である。
【図28】本発明を適用したプログラム作成装置におい
て、受信側サブシステムウインドウの説明図である。
【図29】本発明を適用したプログラム作成装置におい
て、送信側のメッセージタップ編集を選択するための操
作を示す説明図である。
【図30】本発明を適用したプログラム作成装置におい
て、I/Oラベルの設定を行うためのウインドウの説明
図である。
【図31】本発明を適用したプログラム作成装置におい
て、ツールバーから入力したいセルのアイコンを選択し
てプログラムを記述していく様子を示す説明図である。
【図32】本発明を適用したプログラム作成装置におい
て、下位階層を作成したときのツリービューを示す説明
図である。
【図33】本発明を適用したプログラム作成装置におい
て、メッセージ端子の設定を行うためのウインドウの説
明図である。
【図34】本発明を適用したプログラム作成装置におい
て、アーク(矢印)の結線方法を示す説明図である。
【図35】本発明を適用したプログラム作成装置におい
て、メッセージ受信の記述を行うための説明図である。
【図36】本発明を適用したプログラム作成装置におい
て、プログラムの記述後に行うコンパイル結果のメッセ
ージを示す説明図である。
【図37】本発明を適用したプログラム作成装置におい
て、デバッグを行うための操作を示す説明図である。
【図38】本発明を適用したプログラム作成装置におい
て、デバッグを行う際のブレークポイントの設定方法を
示す説明図である。
【図39】本発明を適用したプログラム作成装置におい
て、デバッグの実行を行うための操作を示す説明図であ
る。
【図40】本発明を適用したプログラム作成装置におい
て、プログラムの強制終了するための操作を示す説明図
である。
【図41】(A)、(B)、(C)はそれぞれ、ある処
理をフローチャートで表した説明図、プログラムを手続
き型言語で作成した例を示す説明図、およびプログラム
をプラネットで作成した例を示す説明図である。
【符号の説明】
21 第1のプログラム作成手段(エディタ) 22、32 コンパイラ 31 第2のプログラム作成手段(エディタ) 34 インタプリタ 41 実行プログラム 50 ライブラリファイル 61 デバッガ 211、311 エディタ 212、312 ソースファイル 221 パーサ 222 ソータ 223 コードジェネレータ 224 リンカ
───────────────────────────────────────────────────── フロントページの続き (72)発明者 金井 裕之 長野県諏訪市大和3丁目3番5号 セイコ ーエプソン株式会社内 Fターム(参考) 5B076 DE02 DE06 5H215 AA06 BB10 CC05 CX02 JJ04 JJ14

Claims (1)

    【特許請求の範囲】
  1. 【請求項1】 ネットワーク上の少なくとも1つ以上の
    制御主体によって並列処理されるプログラムを作成する
    ためのプログラム作成装置において、前記プログラムの
    時系列に処理される各処理の内容を表す複数種類の図形
    パターンを用いて表示画面上でプログラムを作成する第
    1のプログラム作成手段と、該第1のプログラム作成手
    段により作成されたプログラムにおいて図形パターンに
    よって表示される処理要素の下位階層プログラムを、手
    続き型言語を用いて作成する第2のプログラム作成手段
    と、前記第1のプログラム作成手段で作成されたプログ
    ラムと前記第2のプログラム作成手段で作成されたプロ
    グラムとを関連付けて実行プログラムを編集する連係編
    集手段とを有することを特徴とするプログラム作成装
    置。
JP10280374A 1998-10-01 1998-10-01 プログラム作成装置 Withdrawn JP2000112736A (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP10280374A JP2000112736A (ja) 1998-10-01 1998-10-01 プログラム作成装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP10280374A JP2000112736A (ja) 1998-10-01 1998-10-01 プログラム作成装置

Publications (1)

Publication Number Publication Date
JP2000112736A true JP2000112736A (ja) 2000-04-21

Family

ID=17624133

Family Applications (1)

Application Number Title Priority Date Filing Date
JP10280374A Withdrawn JP2000112736A (ja) 1998-10-01 1998-10-01 プログラム作成装置

Country Status (1)

Country Link
JP (1) JP2000112736A (ja)

Cited By (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2007041846A (ja) * 2005-08-03 2007-02-15 Fuji Electric Holdings Co Ltd プログラム表示方法および装置
JP2007183785A (ja) * 2006-01-06 2007-07-19 Fuji Electric Holdings Co Ltd プログラムツリー表示方法、プログラム生成装置、およびプログラム生成プログラム
US7269820B2 (en) 2001-12-06 2007-09-11 Denso Corporation Program code generator and program
JP2008299763A (ja) * 2007-06-01 2008-12-11 Hitachi Ltd 分散オブジェクト開発ツール
JP2009123070A (ja) * 2007-11-16 2009-06-04 Keyence Corp 検査支援システム及び画像処理コントローラ
JP2013178606A (ja) * 2012-02-28 2013-09-09 Sumitomo Heavy Ind Ltd 組み込みシステムの制御装置
JP2019160074A (ja) * 2018-03-15 2019-09-19 オムロン株式会社 プログラム開発支援システム、プログラム開発支援方法及びプログラム開発支援プログラム

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH04205423A (ja) * 1990-11-30 1992-07-27 Seiko Epson Corp プログラム作成装置
JPH06332689A (ja) * 1993-05-21 1994-12-02 Hitachi Ltd プログラムの表示方法およびプログラムの編集受付け方法

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH04205423A (ja) * 1990-11-30 1992-07-27 Seiko Epson Corp プログラム作成装置
JPH06332689A (ja) * 1993-05-21 1994-12-02 Hitachi Ltd プログラムの表示方法およびプログラムの編集受付け方法

Cited By (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7269820B2 (en) 2001-12-06 2007-09-11 Denso Corporation Program code generator and program
JP2007041846A (ja) * 2005-08-03 2007-02-15 Fuji Electric Holdings Co Ltd プログラム表示方法および装置
JP2007183785A (ja) * 2006-01-06 2007-07-19 Fuji Electric Holdings Co Ltd プログラムツリー表示方法、プログラム生成装置、およびプログラム生成プログラム
JP2008299763A (ja) * 2007-06-01 2008-12-11 Hitachi Ltd 分散オブジェクト開発ツール
JP2009123070A (ja) * 2007-11-16 2009-06-04 Keyence Corp 検査支援システム及び画像処理コントローラ
JP2013178606A (ja) * 2012-02-28 2013-09-09 Sumitomo Heavy Ind Ltd 組み込みシステムの制御装置
JP2019160074A (ja) * 2018-03-15 2019-09-19 オムロン株式会社 プログラム開発支援システム、プログラム開発支援方法及びプログラム開発支援プログラム
CN110275480A (zh) * 2018-03-15 2019-09-24 欧姆龙株式会社 程序开发支援系统、方法以及计算机可读记录介质

Similar Documents

Publication Publication Date Title
EP1872209B1 (en) Programming for a graphical user interface
US6275956B1 (en) Integrated dynamic-visual parallel debugging apparatus and method thereof
US8327280B2 (en) Programmatic analysis of graphical sub-programs within a graphical program
US6026362A (en) Tool and method for diagnosing and correcting errors in a computer program
KR100228938B1 (ko) 데이타 프로세싱 시스템 및 프로그램 생성방법
CA2211478C (en) Systems, methods and apparatus for generating and controlling display of medical images
US20050268288A1 (en) Graphical program analyzer with framework for adding user-defined tests
US8250537B2 (en) Flexible horizontal stack display and editor
US7543281B2 (en) Disabling and conditionally compiling graphical code in a graphical program
US6901535B2 (en) Information processing apparatus, defect analysis program, and defect analysis method
US20010011367A1 (en) Windows-based flowcharting and code generation system
US20060200806A1 (en) Apparatus, system, and method for trace insertion
WO2000038040A1 (en) Cause effect diagram program maintenance development and test system
JPH05224911A (ja) 動的命令修正制御装置
US6707469B1 (en) Synchronous execution in a medical imaging system
CN101739333A (zh) 应用程序的调试方法、调试工具及调试装置
KR20040111141A (ko) 플러그 가능한 컴포넌트들에서의 브레이크 포인트 디버깅
Grechanik et al. Creating GUI testing tools using accessibility technologies
US20050268173A1 (en) Programmatically analyzing a graphical program by traversing objects in the graphical program
US20080163184A1 (en) System for creating parallel applications
JP2000112737A (ja) プログラム作成装置
JP2000112736A (ja) プログラム作成装置
JPH06332689A (ja) プログラムの表示方法およびプログラムの編集受付け方法
EP0801348A1 (en) Method of monitoring the operation of a computer
Lewis et al. Code generators

Legal Events

Date Code Title Description
A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20050419

A761 Written withdrawal of application

Free format text: JAPANESE INTERMEDIATE CODE: A761

Effective date: 20050608