JP2000112737A - Program generating device - Google Patents
Program generating deviceInfo
- Publication number
- JP2000112737A JP2000112737A JP10280375A JP28037598A JP2000112737A JP 2000112737 A JP2000112737 A JP 2000112737A JP 10280375 A JP10280375 A JP 10280375A JP 28037598 A JP28037598 A JP 28037598A JP 2000112737 A JP2000112737 A JP 2000112737A
- Authority
- JP
- Japan
- Prior art keywords
- program
- block
- created
- subsystem
- execution
- 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
Links
Landscapes
- Control By Computers (AREA)
- Programmable Controllers (AREA)
- Stored Programmes (AREA)
Abstract
Description
【0001】[0001]
【発明の属する技術分野】本発明は、複数のタスクを単
一、あるいは複数のマイクロプロセッサによって並列処
理させるための実時間ソフトウエアを作成するためのプ
ログラム作成装置に関するものである。[0001] 1. Field of the Invention [0002] The present invention relates to a program creating apparatus for creating real-time software for causing a plurality of tasks to be processed in parallel by a single or a plurality of microprocessors.
【0002】[0002]
【従来の技術】制御機器制御、通信制御などの目的で搭
載されるソフトウエアは、概念的にいえば、ソフトウエ
アの内側と制御対象となる外界とが必ず存在し、外界に
対して何らかの相互関係を保ちながら動作を行うもので
ある。そして、外界に何らかの変化が起きたときには、
ある限られた時間の中でそれに対応する処理を行う必要
がある。このように規定された時間内に所定の処理を遂
行しなければならない性格のソフトウエアを実時間ソフ
トウエアを呼んでいる。このような実時間ソフトウエア
のうち、外界からの入力としてある刺激を受け、これに
対して処理を行うという系列で処理を実行していくソフ
トウエアは、離散的事象駆動型実時間ソフトウエアと呼
ばれており、いわゆるマイクロプロセッサが組み込まれ
ている制御機器のソフトウエアは、通常、この範疇に入
るものである。2. Description of the Related Art Software installed for the purpose of control device control, communication control, and the like conceptually includes, in concept, the inside of the software and the outside world to be controlled. The operation is performed while maintaining the relationship. And when something changes in the outside world,
It is necessary to perform corresponding processing within a limited time. Real-time software refers to software that has the property of performing a predetermined process within the time specified as described above. Among such real-time software, software that receives a stimulus as an input from the outside world and performs processing in a series of performing processing on the stimulus is a discrete event-driven real-time software. The so-called, so-called microprocessor embedded control software is usually in this category.
【0003】近年、ソフトウエア工学の発展により、構
造化プログラミング言語、高水準言語等を利用して効率
よくソフトウエアを作成する手法が提案されており、こ
れらはソフトウエア全般にわたって適用可能な手法であ
る。しかしながら、上記の離散的事象駆動型実時間ソフ
トウエアは、その他のソフトウエアに比べて特別な性格
を有しており、ソフトウエア全般にわたって適用可能な
作成方法の他にも、かかるソフトウエアの作成を簡単に
行うための改良の余地が依然として残っている。In recent years, with the development of software engineering, techniques for efficiently creating software using a structured programming language, a high-level language, and the like have been proposed, and these are techniques applicable to all software. is there. However, the discrete event-driven real-time software described above has a special feature compared to other software, and in addition to the creation method applicable to the whole software, the creation of such software There is still room for improvement to make it easier.
【0004】すなわち、離散的事象駆動型実時間ソフト
ウエアは、製造ライン上に配置された複数の産業用ロボ
ットの駆動用ソフトウエアに代表されるように、ローカ
ルエリアネットワーク上で並列して動作する複数のプロ
セスを記述する必要がある。しかしながら、いままで行
われているこのようなソフトウエアの作成は、ある1つ
のプログラミング言語を用いてCRT上で1ステップず
つ記述することによってプログラムされるため、このよ
うな作成方法では、並列動作する複数のプロセスをそれ
ぞれ個別に作成し、しかる後に、作成したプロセスが各
マイクロプロセッサ上で並列動作状態で実行されるよう
に、これら個別作成したプロセスを合成する必要があ
る。かといって、並列処理される複数のプロセスを一括
してプログラミングしていたのでは、プログラム作成者
は、制御の全体的な流れと、個別的にマイクロプロセッ
サによって実行される制御の流れとを正確に認識するこ
とが困難であり、これらの整合性をとることが困難であ
る。このために、効率よく目標とするプログラムを作成
することが困難な場合が多い。That is, discrete event-driven real-time software operates in parallel on a local area network as represented by software for driving a plurality of industrial robots arranged on a production line. You need to describe multiple processes. However, such software creation that has been performed so far is programmed by describing one step at a time on a CRT using a certain programming language, and thus such a creation method operates in parallel. It is necessary to individually create a plurality of processes, and thereafter to synthesize these individually created processes so that the created processes are executed in a parallel operation state on each microprocessor. However, by programming a plurality of processes that are executed in parallel at the same time, the program creator needs to accurately control the overall flow of control and the flow of control executed individually by the microprocessor. It is difficult to recognize these, and it is difficult to ensure their consistency. For this reason, it is often difficult to efficiently create a target program.
【0005】そこで、本願出願人は、離散的事象駆動型
実時間ソフトウエアの記述に適した言語(この言語を、
以下、プラネット(PLANET)と呼ぶ。)、および
そのための開発支援環境を発明し、それを特願平2−3
37781号として出願した。この発明は、特開平4−
205423号公報に開示されているとおり、プロセス
の並列動作、同期などの諸要件をペトリネットに基づく
記述形式で実現可能としている。また、プログラミング
の全てにわたって図式を導入可能とし、処理要件の記述
性、了解性の向上を図っているものである。Therefore, the applicant of the present application has proposed a language suitable for describing discrete event-driven real-time software (this language is
Hereinafter, it is referred to as a planet (PLANET). ), And a development support environment for it, and invented it in Japanese Patent Application Hei 2-3
No. 37781. This invention is disclosed in
As disclosed in Japanese Patent Publication No. 205423, various requirements such as parallel operation and synchronization of processes can be realized in a description format based on Petri nets. In addition, a diagram can be introduced throughout the entire programming to improve the description and understanding of the processing requirements.
【0006】詳細は、前記公開特許公報に開示されてい
るが、たとえば、図42(A)に示すフローチャートで
表される処理は、手続き型言語(たとえばBASICラ
イクな言語やC言語)でプログラミングすると、図42
(B)に示すようになるところ、プラネットを用いれ
ば、図42(C)に示すように、画面表示手段によって
表示されているプログラム作成用の一枚の画面に対し
て、パターン選択手段により、処理要件を示す図形パタ
ーンと、有向枝あるいは分岐有向枝とを交互に選択する
という操作を繰り返して、プログラムを同一画面上に作
成していくことができる。従って、プログラミングの全
てにわたって図式を導入することで、処理要件の記述
性、了解性の向上を図ってあるので、離散的事象駆動型
実時間ソフトウエアの作成を効率良く簡単に行うことが
できる。Although the details are disclosed in the above-mentioned published patent publication, for example, the processing represented by the flow chart shown in FIG. 42 (A) is performed by programming in a procedural language (for example, a BASIC-like language or C language). 42
As shown in FIG. 42 (B), if a planet is used, as shown in FIG. 42 (C), a single screen for program creation displayed by the screen display means is displayed by the pattern selection means. The program can be created on the same screen by repeating the operation of alternately selecting the graphic pattern indicating the processing requirement and the directional branch or the directional branch. Therefore, by introducing a diagram throughout programming, the descriptiveness and intelligibility of processing requirements are improved, so that discrete event-driven real-time software can be created efficiently and easily.
【0007】また、プラネットでは、プログラム中で、
このプログラムと下位のプログラムとの階層化を指定し
ておくだけで、ブロック毎にプログラムを作成した後、
それを編集する際には下位階層処理列が自動的に作成さ
れる。[0007] In Planet, in a program,
Just specify the layering of this program and the lower-level program, create a program for each block,
When editing it, a lower hierarchy processing column is automatically created.
【0008】[0008]
【発明が解決しようとする課題】しかしながら、従来の
プラネットのように、プログラムを階層化すると、下位
階層のプログラムについてデバッグする際には上位階層
のプログラムについても実行する必要があるため、上位
階層のプログラムが作成できていない段階で下位階層の
プログラムを実行させるには、ダミープログラムを別途
作成する必要がある。また、上位階層のプログラムの作
成が済んでいるときでも、この上位階層のプログラムに
おいて、動作ストロークの長い機械体が移動したり、加
工、組立て、薬剤処理、検査などいった処理が行われる
と、下位階層のプログラムのみについてデバッグしたい
ときでも、上位階層のプログラムの実行が完了するま
で、デバッグ対象となった下位階層のプログラムが実行
されないことになるので、デバッグに時間がかかるとい
う問題点がある。さらにまた、大規模で複雑な機械制御
プログラムを作成する際には、複数人が分担してプログ
ラミングを行うことが多いが、このようなプログラムに
ついてデバッグするには、分担して作成したプログラム
を最後に結合しないと、デバッグできないとう問題点が
ある。However, when a program is hierarchized like a conventional planet, when debugging a program in a lower hierarchy, it is necessary to execute a program in an upper hierarchy as well. In order to execute a lower layer program at a stage where a program has not been created, a dummy program must be separately created. In addition, even when the program of the upper hierarchy has been created, if a machine body with a long operation stroke moves, processing, assembling, chemical processing, inspection, etc. are performed in the program of the upper hierarchy, Even when it is desired to debug only the lower layer program, the lower layer program to be debugged is not executed until the execution of the upper layer program is completed. Furthermore, when a large-scale and complicated machine control program is created, it is often the case that a plurality of individuals share the programming, but to debug such a program, the shared program must be created last. If you don't combine with, there is a problem that you can not debug.
【0009】以上の問題点に鑑みて、本発明の課題は、
ネットワーク上の複数の制御主体によって並列処理され
る各々のプログラムを、各プログラム上で各ブロックが
階層関係をもつように作成するためのプログラム作成装
置において、バグ修正または実行確認を簡単に行うこと
のできる構成を提供することにある。[0009] In view of the above problems, an object of the present invention is to provide:
A program creation device for creating each program that is processed in parallel by a plurality of control entities on a network so that each block has a hierarchical relationship on each program. It is to provide a possible configuration.
【0010】[0010]
【課題を解決するための手段】上記課題を解決するため
に、本発明では、ネットワーク上の複数の制御主体によ
って並列処理される各々のプログラムを、各プログラム
上で各ブロックが階層関係をもつように作成するための
プログラム作成装置において、表示画面上でプログラム
をブロック毎に作成するプログラム作成手段と、該プロ
グラム作成手段により作成されたプログラムをブロック
毎に格納しておく格納手段と、作成されたプログラムを
デバッグするためのデバッグ手段とを有し、該デバッグ
手段は、デバッグ時に、作成されたプログラムをその作
成時と同一の形態でブロック毎に再生表示する再生表示
手段と、再生されたプログラムのうちデバッグすべき任
意のブロックを指定するブロック指定手段と、該ブロッ
ク指定手段により指定されたブロックのプログラム実行
開始を指令する開始指令手段とを有することを特徴とす
る。In order to solve the above-mentioned problems, in the present invention, each program to be processed in parallel by a plurality of control entities on a network is arranged such that each block has a hierarchical relationship on each program. A program creating device for creating a program for each block on a display screen, a storage device for storing a program created by the program creating device for each block, Debugging means for debugging the program, wherein the debugging means reproduces and displays the created program block by block in the same form as that at the time of debugging; A block designating means for designating an arbitrary block to be debugged, and And having a start command means for instructing the program execution start of the constant-block.
【0011】本発明では、再生されたプログラムのうち
デバッグすべき任意のブロックを指定した後、開始指令
するだけで、指定されたブロックおよび該ブロックの下
位階層ブロックのプログラムのみが実行され、上位階層
ブロックのプログラムについてまではデバッガあるいは
実行が行われない。従って、上位階層のブロックの作成
が済んでいないときでも、下位階層ブロックを走行させ
るためのダミープログラムが不要である。また、指定し
たブロック以外のブロックにおいて動作ストロークの長
い機械体が移動したり、加工、組立て、薬剤処理、検査
などいった処理が行われるとしても、このような対象外
のブロックは実行されない。すなわち、指定したブロッ
クのみにおいて、バグ修正あるいは実行確認が行われる
ので、バグ修正あるいは実行確認に手間がかからない。
しかも、対象外のブロックが実行されないので、バグ修
正済みあるいは実行確認済みのブロックについては実行
させずに、指定したブロックのみにおいてバグ修正ある
いは実行確認を行えるという点でも、バグ修正あるいは
実行確認に手間がかからない。さらにまた、上位階層の
ブロックが存在しなくても、個々の下位階層のブロック
のみについて、バグ修正あるいは実行確認をできるとい
うことは、大規模で複雑な機械制御プログラムを作成す
るのに適している。すなわち、大規模で複雑な機械制御
プログラムを作成する際には、複数人が分担してプログ
ラミングを行い、それを最後に結合してから総合デバッ
グする方法が採用されているが、本形態のプログラム作
成装置では、上位階層のブロックが存在しなくても、個
々の下位階層のブロックのみについてバグ修正あるいは
実行確認をできるので、これらを終えてから、個々のブ
ロックを結合することができる。In the present invention, after designating an arbitrary block to be debugged out of the reproduced program, only a start command is issued, and only the program of the designated block and the lower layer block of the specified block are executed, and the upper layer is executed. No debugger or execution is performed for the block program. Therefore, a dummy program for running the lower hierarchical block is not required even when the upper hierarchical block has not been created. Further, even if a machine body having a long operation stroke moves in a block other than the designated block, or processing such as processing, assembly, chemical processing, and inspection is performed, such a block that is not a target is not executed. That is, the bug correction or the execution confirmation is performed only on the designated block, so that the bug correction or the execution confirmation does not require much trouble.
In addition, since blocks that are not targeted are not executed, bug correction or execution confirmation can be performed only on designated blocks without executing bug-fixed or execution-confirmed blocks. It does not take. Furthermore, even if there is no higher-level block, the ability to correct bugs or confirm execution of individual lower-level blocks alone is suitable for creating large-scale and complicated machine control programs. . In other words, when creating a large-scale and complicated machine control program, a method is used in which a plurality of persons share programming and perform final debugging after combining the programs. Even if there is no block in the upper layer, the creation device can correct a bug or confirm execution of only the block in each lower layer. Therefore, after completing these, individual blocks can be combined.
【0012】プログラム作成装置において、下位階層の
プログラムについてバグ修正または実行確認するときに
は、このプログラムだけでなく上位階層のプログラムで
使用される変数を用いることがある。このような場合で
も、本発明において、前記プログラム作成手段は、各ブ
ロック毎にプログラムを作成する際にいずれか1つのブ
ロック上において、該ブロックが属するプログラム群内
で共通使用可能な変数を宣言しておく。従って、本発明
では、指定したブロックの上位階層のブロックについて
プログラム実行することなく、指定したブロックおよび
当該ブロックの下位階層ブロックについてのみプログラ
ム実行することができる。In the program creating apparatus, when correcting a bug or confirming execution of a program in a lower hierarchy, variables used in an upper hierarchy program as well as this program may be used. Even in such a case, in the present invention, the program creating means declares, on one of the blocks, a variable that can be commonly used in a program group to which the block belongs when creating a program for each block. Keep it. Therefore, according to the present invention, it is possible to execute the program only for the specified block and the lower hierarchical block of the specified block without executing the program for the upper layer block of the specified block.
【0013】[0013]
【発明の実施の形態】以下に、本発明の実施の形態を説
明する。Embodiments of the present invention will be described below.
【0014】[プラネットの概略説明]ネットワーク上
の複数の制御主体によって並列処理されるプログラムを
作成するために、表示画面上においてプログラムの時系
列に処理される各処理の内容を表す複数種類の図形パタ
ーンを用いてプログラムを作成するプログラム作成装置
については、本願出願人による先の出願(特願平2−3
37781号/特開平4−205423号公報)に開示
されているので、ここでは詳細な説明を省略するが、本
発明に係るプログラム作成装置はプラネットを基本にし
てそれに改良を加えたものなので、その概略についてま
ず説明する。[Outline of Planet] A plurality of types of graphics representing the contents of each process processed in chronological order on the display screen in order to create a program which is processed in parallel by a plurality of control entities on the network. Regarding a program creating apparatus for creating a program using a pattern, a prior application filed by the present applicant (Japanese Patent Application No. Hei 2-3
37781 / Japanese Patent Application Laid-Open No. Hei 4-205423), so a detailed description is omitted here. However, since the program creation device according to the present invention is based on planets and is an improvement, The outline will be described first.
【0015】本形態に係るプログラム作成装置は、開発
環境として以下の構成 制御本体側 マイクロプロセッサ(エディタ、コンパイラ) 主記憶装置 ディスプレイ コンソール(マウス) ターゲット側 駆動系 プロセッサ 通信装置 記憶装置 I/O を有している。また、本発明を適用したプログラム作成
装置も、制御実体(外界からの入力事象と内部処理を規
定して分割されたタスク)群と制御手段との相互関係で
ソフトウエアを構成しているもので、制御実体の内部処
理に含まれるプロセスの並列動作、同期などの諸要件を
ペトリネットに基づく記述形式で表現し、処理要件の記
述性、了解性の向上を図っている点でプラネットと共通
する。The program creation device according to the present embodiment has the following configuration as a development environment. Control body side microprocessor (editor, compiler) Main storage device Display console (mouse) Target side drive system processor Communication device Storage device I / O are doing. Also, the program creating apparatus to which the present invention is applied also constitutes software by a correlation between a control entity (a task divided by defining an input event from the outside world and an internal process) and the control means. , Which expresses various requirements such as parallel operation and synchronization of processes included in the internal processing of the control entity in a description format based on Petri nets, and is common to Planet in that it improves the description and intelligibility of processing requirements. .
【0016】プラネットが適用される実時間制御システ
ムには、入力群(各種センサ群)/出力(アクチュエー
タ群)、並びに通信路が結合されている。多数の入出力
をもつ比較的大規模なシステムでは、機能ごとに入出力
群が分割されている。分割された各入出力群ごとに制御
を行うモジュール(タスク)がシステム内に複数存在
し、これらのモジュールのやり取りでシステムを記述す
るという手法が従来から適用されている。従って、プラ
ネットでは、システム中に存在する機能モジュールを制
御実体あるいはサブシステムと称している。さらに制御
実体同士のやり取りをメッセージ送受信で行うものとし
ている。これに対して、制御しなければならない機械お
よび実現させるシステム全体をここではプロジェクト
(実世界)と定義する。実世界では複数の機械が同時に
働き、データの収集なども同時に行われる。従って、こ
れらを1つのプログラムで実現するのは、複雑、かつ、
膨大なプログラムとなり、メンテナンスが困難になる。
そこで、実世界を管理しやすいレベルに抽出し、分割し
てブログラムを作成することになる。この分割したもの
が前記のサブシステム(制御実体)である。In a real-time control system to which the planet is applied, an input group (various sensor groups) / an output (actuator group) and a communication path are connected. In a relatively large-scale system having many inputs / outputs, an input / output group is divided for each function. Conventionally, a method has been applied in which a system has a plurality of modules (tasks) for controlling each divided input / output group, and the system is described by exchanging these modules. Therefore, in Planet, the function modules existing in the system are called control entities or subsystems. Further, the exchange between the control entities is performed by transmitting and receiving messages. On the other hand, the machine to be controlled and the whole system to be realized are defined here as a project (real world). In the real world, multiple machines work simultaneously, and data is collected at the same time. Therefore, realizing these with one program is complicated and
It becomes a huge program and maintenance becomes difficult.
Therefore, the real world is extracted to a level that can be easily managed, and divided into a program. This division is the above-mentioned subsystem (control entity).
【0017】たとえば、図1に示すような産業機械から
なる制御機械には、いくつもの動作箇所(センサ、ソレ
ノイド等)があるので、それら個々をサブシステムとし
て扱うことも可能であるが、それではサブシステムの数
が多すぎて管理が困難になる。そこで、管理しやすい程
度の纏まった処理群をサブシステムとして抽出する。た
とえば、図1に示す機械が、コンピュータからの指示に
より、AまたはBの部品をパレットに組み込む機械とす
ると、この機械には制御盤11、給材ユニット12、組
み込みユニット13のユニット群で構成されているの
で、これらのユニット群をサブシステムとする。ここ
で、制御盤11、給材ユニット12、組み込みユニット
13がサブシステムとして動作するには、何らかの事象
がきっかけとなって動作する。このきっかけを初期事象
と定義すると、初期事象の後に実行される処理体系は、
その初期事象を評価、加工するように動作する。そし
て、処理系列を終了すると、再び初期事象を検出するよ
うに動作する。For example, a control machine including an industrial machine as shown in FIG. 1 has a number of operating points (sensors, solenoids, etc.), and it is possible to treat each of them as a subsystem. Too many systems make management difficult. Therefore, a group of processes that can be easily managed is extracted as a subsystem. For example, assuming that the machine shown in FIG. 1 is a machine that incorporates A or B parts into a pallet according to an instruction from a computer, this machine includes a control panel 11, a material supply unit 12, and a unit group of an incorporation unit 13. Therefore, these groups of units are referred to as subsystems. Here, in order for the control panel 11, the supply unit 12, and the built-in unit 13 to operate as subsystems, the operation is triggered by some event. If this trigger is defined as an initial event, the processing system executed after the initial event is
It operates to evaluate and process the initial event. Then, when the processing sequence ends, the operation is performed to detect the initial event again.
【0018】たとえば、図1に示した機械では、制御盤
11は、外部コンピュータからの部品の指示を受けて
(初期事象)、給材ユニット12に部品の指示を出す
(処理内容)。給材ユニット12は、部品がなくなると
(初期事象)、部品を供給する(処理内容)。組み込み
ユニット13は、パレットと部品が用意されると(初期
事象)、部品をパレットに組み込む(処理内容)。従っ
て、前工程、および後工程で結合されたサブシステム間
で何らかのやり取りが必要であり、それをソフトウエア
的に行うことをメッセージ通信と定義する。For example, in the machine shown in FIG. 1, the control panel 11 receives a component instruction from an external computer (initial event) and issues a component instruction to the material supply unit 12 (processing content). When the parts run out (initial event), the material supply unit 12 supplies the parts (processing content). When the pallet and parts are prepared (initial event), the incorporating unit 13 incorporates the parts into the pallet (processing contents). Therefore, some kind of exchange is required between the subsystems connected in the pre-process and the post-process, and performing this in software is defined as message communication.
【0019】従って、図1に示す機械では、制御盤1
1、給材ユニット12、組み込みユニット13の間で
は、図2に示すようなメッセージ通信が行われることに
なる。この図において、矢印の向きがメッセージの方向
を意味する。Therefore, in the machine shown in FIG.
1, message communication as shown in FIG. 2 is performed between the supply unit 12 and the built-in unit 13. In this figure, the direction of the arrow indicates the direction of the message.
【0020】まず、サブシステム「制御盤」とサブシス
テム「組み込みユニット」との間では、メッセージ「部
品情報」と「組み込み終了」のやり取りを行い、サブシ
ステム「給材ユニット」からサブシステム「組み込みユ
ニット」へはメッセージ「部品有無」が送信される。First, between the subsystem "control panel" and the subsystem "embedded unit", messages "part information" and "installation end" are exchanged, and the subsystem "supply unit" is exchanged with the subsystem "embedded unit". The message "component presence / absence" is transmitted to the "unit".
【0021】従って、プログラムがスタートすると、サ
ブシステム「制御盤」から”スタート”メッセージがサ
ブシステム「給材ユニット」「組み込みユニット」に送
信される。そして、サブシステム「制御盤」では、外部
からユーザI/O”A””B”を通してA、Bどちらの
部品を組み込むかの部品情報が来る。この部品情報に基
づき、サブシステム「組み込みユニット」に「部品情
報」を送信し、サブシステム「組み込みユニット」から
組み込み終了を受信すると、次の情報を受け取る準備を
行う。Therefore, when the program is started, a "start" message is transmitted from the subsystem "control panel" to the subsystems "supply unit" and "embedded unit". Then, in the subsystem “control panel”, component information indicating which component, A or B, is to be incorporated from outside through the user I / O “A”, “B”. Based on this component information, the “component information” is transmitted to the subsystem “embedded unit”, and when the completion of the installation is received from the subsystem “embedded unit”, preparation for receiving the next information is made.
【0022】これらの処理系列は極く単純なものであ
り、容易に実現することが可能である。しかし、実時間
制御ソフトウエアの性格上、入力事象は非同期に複数発
生し、内部状態によって検出すべき事象が刻々と変化す
るので、複雑に入り組み、このことが手続き型言語で処
理を記述する際のネックとなる。These processing sequences are extremely simple and can be easily realized. However, due to the nature of real-time control software, multiple input events occur asynchronously, and the events to be detected change every moment depending on the internal state. It becomes a bottleneck at the time.
【0023】そこで、各処理列を素直に表現するため
に、プラネットでは、文字列により一次元的な処理系列
ではなく、ペトリネットに基づいた有向グラフ構造を用
いた記述形式を採用している。Therefore, in order to express each processing sequence in a straightforward manner, the planet employs a description format using a directed graph structure based on Petri nets instead of a one-dimensional processing sequence using character strings.
【0024】すなわち、プラネットでは、サブシステム
「制御盤」での処理列は、図3に示すような図形パター
ンを言語要素として用いて作成される。ここで、図形パ
ターンは、処理内容を示す複数種類の図形パターンと、
処理要件の時系列的な流れ方向を示す有向枝と、少なく
とも二股に分岐し、時系列的に後続する処理要件が並列
処理されるべきものであることを示す第1の矢印(分岐
有向枝)と、少なくとも二股に分岐した分岐枝が纏まっ
て後続の処理要件が複数の先行する処理要件終了の同期
をとって処理される処理動作であることを示す第2の矢
印(分岐有向枝)などを含んでいる。処理内容を示す各
種の図形パターンのうち、長円形セルはメッセージ入力
セルであり、矢印が出力しているものは処理系列の始端
を表し、ここには「BEGIN」と記される。矢印が入
力しているメッセージ入力セルは、処理系列の終端を表
し、ここには「END」と記入される。二重の長方形で
囲まれたセルは事象待ちセルであり、事象検出で、記入
された事象が発生するとその処理を終了する。長方形で
囲まれたセルは活動処理セルであり、活動要件を示し、
駆動されると、直ちに処理を行う。長方形2つに三角形
が下についたセルは、条件分岐のセルである。左の四角
の中に条件を記入し、条件を満たすと、下の矢印に従っ
て実行される。That is, in the planet, the processing sequence in the subsystem "control panel" is created using a graphic pattern as shown in FIG. 3 as a language element. Here, the graphic pattern includes a plurality of types of graphic patterns indicating processing contents,
A directed branch indicating the time-dependent flow direction of the processing requirement, and a first arrow (branch-directed) indicating that the processing requirement that branches at least into two branches and that follows in time series is to be processed in parallel. Branch) and a second arrow (branching directed branch) indicating that the subsequent processing requirement is a processing operation in which at least two branch branches are processed in synchronization with the end of a plurality of preceding processing requirements. ). Of the various graphic patterns indicating the processing contents, the oval cells are message input cells, and those output by arrows indicate the beginning of the processing sequence, and are described here as "BEGIN". The message input cell to which the arrow is input indicates the end of the processing sequence, and “END” is written here. The cell surrounded by a double rectangle is an event waiting cell, and when an entered event occurs in event detection, the processing is terminated. The cells surrounded by rectangles are activity processing cells, indicating activity requirements,
When it is driven, it performs processing immediately. A cell with two rectangles and a triangle below is a conditional branch cell. Fill in the condition in the left square, and if it meets the condition, it will be executed according to the arrow below.
【0025】また、給材ユニットは、プラネットで作成
した処理列を図4に示すように、サブシステム「制御
盤」からの”スタート()”メッセージを受信すること
により動作する。まず、センサにより部品の有無を検知
し、給材の動作をする。実際の給材の動作は、さらに下
位階層ブロック「給材」により動作する。給材が終了す
ると、サブシステム「組み込みユニットに「部品有無」
のメッセージを送信する。部品がなくなると下位階層ブ
ロック「欠品処理」により欠品処理を行う。As shown in FIG. 4, the material supply unit operates by receiving a "start ()" message from the subsystem "control panel" as shown in FIG. First, the presence or absence of a component is detected by a sensor, and the supply operation is performed. The actual operation of the supply is further performed by the lower-layer block “supply”. When the supply is completed, the subsystem "Equipment presence / absence"
Send a message. When there are no more parts, the stockout processing is performed by the lower layer block "Stockout processing".
【0026】組み込みユニットも、プラネットで作成し
た処理列を図5に示すように、サブシステム「制御盤」
からの”スタート()”メッセージを受信することによ
り動作する。まず、パレットと部品がセットされると、
部品の組み込みを行う。A、Bどちらの部品を組み込む
かは、サブシステム「制御盤」からのメッセージ「部品
情報」の変数「種類」に指示される。組み込みが終わる
と、サブシステム「制御盤」にメッセージ「組み込み終
了」を送信し、次の情報を得る準備を行う。なお、”D
IM 種類 AS REAL”との記述は、後述する変
数の宣言である。As shown in FIG. 5, the built-in unit also includes the processing sequence created by the planet as shown in FIG.
It operates by receiving a “start ()” message from. First, when the pallet and parts are set,
Install components. Which component A or B is to be incorporated is specified by the variable “type” of the message “component information” from the subsystem “control panel”. When the installation is completed, a message "installation end" is transmitted to the subsystem "control panel" to prepare for obtaining the next information. Note that "D
The description "IM type AS REAL" is a declaration of a variable described later.
【0027】このようなプログラムは、その規模が大き
くなると、図式が巨大になるし煩雑になり、わかり難く
なる。そこで、プラネットは、ひとまとまりの処理を1
枚の図式に収め、それを上位抽象レベルの図式中の一処
理要件として呼び出すことができるようにしている。When such a program becomes large in scale, the diagram becomes huge and complicated, and it becomes difficult to understand. Therefore, Planet has set one process.
It is stored in a single diagram, which can be called as one processing requirement in the higher-level abstract level diagram.
【0028】[階層化構造]図6にはこの関係を示して
ある。この関係を手続きの階層化という。ここで、下位
階層の処理は、上位階層の処理要件に制御が到達したと
きに駆動される。すなわち、上位階層ブロックの処理が
下位階層ブロックの活動処理セルに至ると、下位階層ブ
ロックのBEGIN端子に制御が渡され、下位階層処理
系列が実行を開始する。そして、下位階層処理の処理が
進行し、END端子に至ると、下位階層中の全ての制御
が破棄されて、上位階層に制御が返される。そして、返
された制御は上位階層中の処理要件を継続する。要する
に、一枚の画面上においては、その上下方向が処理の時
系列方向を意味し、左右の広がりが処理の並行性を意味
している。すなわち、画面のいわゆる深み方向が階層性
を意味している。このような手続きの階層化は、上記階
層処理列で階層化を指定すると、自動的に下位階層処理
列が作成され、その状態は、後述するようにツリービュ
ーで表される。このように構成することにより、上位階
層では、抽象度の高い処理の流れだけを記述することに
なるので、プログラムの手続き列をすべて記述する手続
き型言語に比較して、簡潔で分かりやすいものとなる。[Hierarchical Structure] FIG. 6 shows this relationship. This relationship is called a hierarchical procedure. Here, the processing of the lower layer is driven when the control reaches the processing requirement of the upper layer. That is, when the processing of the upper hierarchical block reaches the activity processing cell of the lower hierarchical block, control is transferred to the BEGIN terminal of the lower hierarchical block, and the lower hierarchical processing sequence starts executing. Then, when the processing of the lower layer processing proceeds and reaches the END terminal, all controls in the lower layer are discarded, and control is returned to the upper layer. Then, the returned control continues the processing requirements in the upper layer. In short, on one screen, the up-down direction means the time-series direction of the processing, and the spread left and right means the parallelism of the processing. That is, the so-called depth direction of the screen means the hierarchy. In such a procedure hierarchization, when hierarchy is designated by the above-mentioned hierarchy processing sequence, a lower hierarchy processing sequence is automatically created, and its state is represented by a tree view as described later. With this configuration, the upper layer describes only the flow of processing with a high level of abstraction, so that it is simpler and easier to understand than a procedural language that describes all the procedure sequences of a program. Become.
【0029】このようにして手続きを階層化したとき、
上位階層プログラムに制御要件として記述されたひとか
たまりの副手続きプログラムをブロックと呼んでいる。
ブロックには名前が付されており、その上位階層ブロッ
クの処理要件に記入することにより下位階層ブロックを
呼び出すことになる。下位階層ブロックの呼出しには、
再帰、間接再帰が許可されている。When the procedures are hierarchized in this way,
A group of subprocedure programs described as control requirements in an upper layer program is called a block.
The block is given a name, and the lower hierarchical block is called by filling in the processing requirements of the upper hierarchical block. To call the lower hierarchical block,
Recursion and indirect recursion are allowed.
【0030】[変数の扱い]ここで、各ブロックを走行
させるのに必要な変数は、ローカル変数、グローバル変
数、バックアップ変数からなる型の異なる3種類の変数
からなる。いずれの型の変数であるかは、使用する前に
型宣言することになる。また、各変数には変数名をつけ
ることになる。[Handling of Variables] Here, the variables required to run each block are composed of three different types of variables including local variables, global variables, and backup variables. You must declare the type of the variable before using it. Each variable is given a variable name.
【0031】これらの変数のうち、ブロック内のみで共
通なのがローカル変数、サブシステム内で共通なのがグ
ローバル変数、プロジェクト全体で共通で、かつバック
アップ(不揮発という意味)されるのがバックアップ変
数である。この様子を図7に示す。これらの変数を使用
するためには、ブロック内に以下のステートメント ローカル変数 DIM 変数名・・・ AS変数型 グローバル変数 GLOBAL 変数名・・・ AS変数型 バックアップ変数 SYS 変数名・・・ AS変数型 で宣言する。Of these variables, local variables are common only in blocks, global variables are common in subsystems, and backup variables are common in the entire project and are backed up (meaning non-volatile). . This is shown in FIG. To use these variables, use the following statement in the block: Local variable DIM variable name ... AS variable type Global variable GLOBAL variable name ... AS variable type Backup variable SYS variable name ... AS variable type declare.
【0032】また、数値変数としては整数型と実数型と
があり、それぞれ以下のステートメント 書式:[変数宣言][変数名]{,[変数名]nAS
[型宣言] で定義する。ここで、整数型でも、−128〜127ま
での整数、および−2147483648〜21474
83648までの整数の場合には、それぞれの使用バイ
ト数が1、4と相違するので、それぞれ[BYTE]、
[INTEGER]との型宣言文を用いる。また、実数
型でも、7桁の実数、および14桁の実数とでは、それ
ぞれの使用バイト数が4、8と相違するので、それぞれ
[REAL]、[DOUBLE]との型宣言文を用い
る。Numeric variables are classified into integer types and real types. The following statement formats are used: [variable declaration] [variable name] 名, [variable name] nAS
Defined in [Type declaration]. Here, even in the integer type, an integer from -128 to 127, and -2147483648 to 21474
In the case of an integer up to 83648, the number of used bytes is different from 1 or 4, so that [BYTE],
Use a type declaration statement with [INTEGER]. Further, even in the case of a real number type, since the number of bytes used is different between 4 and 8 for a 7-digit real number and a 14-digit real number, type declaration statements of [REAL] and [DOUBLE] are used, respectively.
【0033】また、文字列変数も、以下のステートメン
ト 書式:[変数宣言][文字列変数名]{,[文字列変数
名]nAS STRING]} で定義する。A character string variable is also defined by the following statement format: [variable declaration] [character string variable name] {, [character string variable name] nAS STRING]}.
【0034】配列変数は同じ型の変数の集まりで、数値
変数、文字列変数とも、以下のステートメント 書式:[変数宣言][変数名][a{,{,c}][型
宣言文] 但し、a、b、cは各次元の配列数でそれぞれは0〜2
54の整数 a*b*c(a、b、cの積)≦32767 で配列変数にすることができる。An array variable is a group of variables of the same type. Numeric variables and character string variables have the following statement format: [variable declaration] [variable name] [a {, {, c}] [type declaration statement] , A, b, and c are the numbers of arrays in each dimension, each of which is 0 to 2
An integer variable of 54 * a * b * c (product of a, b, c) ≦ 32767 can be used as an array variable.
【0035】[プログラム例]図8および図9を参照し
て、このような構成のプラネットで作成したプログラム
の一例を説明する。[Example of Program] An example of a program created by a planet having such a configuration will be described with reference to FIGS.
【0036】ここに示すプログラムは、ツリービューに
表示されているように、2つのサブシステム(操作パネ
ル、ユニット)の各々に対応する制御プログラム(操作
パネル制御プログラム、ユニット制御プログラム)を有
し、いずれも階層化構造を有する。The program shown here has control programs (operation panel control program, unit control program) corresponding to each of the two subsystems (operation panel, unit), as shown in the tree view. Each has a hierarchical structure.
【0037】すなわち、図8に示すように、操作パネル
制御プログラム、ユニット制御プログラムは、それぞれ
上位階層ブロックとしてのルートブロックRootBl
kを有し、たとえば、ユニット制御プログラムは、その
下位階層ブロックとして、自動運転ブロック、原点復帰
ブロック、ティーチングブロック、および手動操作ブロ
ックを有する。That is, as shown in FIG. 8, the operation panel control program and the unit control program each include a root block RootBl as an upper hierarchical block.
For example, the unit control program has an automatic operation block, a home position return block, a teaching block, and a manual operation block as its lower hierarchical blocks.
【0038】これら下位階層のブロックのうち、たとえ
ば、ユニット制御/原点復帰ブロックは、さらに下位階
層のブロックとして、2種のマニピュレータ設定(L側
およびR側)ブロックを有している。また、ユニット制
御/自動運転ブロックは、図9に示すように、さらに下
位階層のブロックとして、ユニット制御左給材位置移動
ブロックなどを有している。Of these lower hierarchical blocks, the unit control / origin return block, for example, has two types of manipulator setting (L side and R side) blocks as lower hierarchical blocks. Further, as shown in FIG. 9, the unit control / automatic operation block has a unit control left supply position moving block and the like as further lower hierarchical blocks.
【0039】ここに示す例は、プログラミングの全てに
わたって、図式を用いたものである。但し、ユニット制
御/自動運転ブロックの下位階層のブロックとしてのユ
ニット制御左給材位置移動ブロックは、図10に示すよ
うに、手続き型言語でも作成可能であり、このブロック
については手続き型言語で作成した方が簡潔な場合もあ
る。The example shown here uses diagrams throughout programming. However, the unit control left feeding position moving block as a lower layer block of the unit control / automatic operation block can also be created in a procedural language as shown in FIG. 10, and this block is created in a procedural language. Sometimes it is more concise.
【0040】そこで、本形態では、以下に説明するよう
に、従来のプラネットではプログラミングの全てにわた
って図式を導入可能としているのに対して、本発明を適
用した改良プラネット(以下、プラネット95とい
う。)では、手続き型言語で作成した下位階層プログラ
ムも連係させて実行プログラムに編集するように構成し
てある。たとえば、ユニット制御左給材位置移動ブロッ
クについては、図10に示すように、手続き型言語によ
るプログラミングツールで作成し、その他のプログラム
あるいはその上位階層のプログラムについてはプラネッ
ト95上で作成した後、上位階層のブロックにおいて、
下位階層のブロックを指定するだけで、それがプラネッ
ト上で作成したもか、あるいは手続き型言語で作成した
ものかにかかわらず、連係、編集して、1つの実行プロ
グラムを作成することができる。それ故、ベテランと呼
ばれているエンジニアには、使い慣れている手続き型言
語を用いてのプログラム作成作業を担当させ、プラネッ
トなどといった新たなプロラミング言語を柔軟に受け入
れた若手のエンジニアなどには、このPLANETの様
な新たなプログラミング言語を用いてのプログラム作成
作業を担当させながら、1つのプログラムを完成させる
方法を達成できる。また、これまで手続き型言語により
作成したプログラム資産をそのまま活用することができ
るという利点もある。Therefore, in the present embodiment, as will be described below, the conventional planet allows the introduction of a diagram throughout the entire programming, whereas the improved planet to which the present invention is applied (hereinafter, referred to as a planet 95). In this example, a lower-layer program created in a procedural language is linked to be edited into an execution program. For example, as shown in FIG. 10, the unit control left supply position moving block is created by a programming tool in a procedural language, and other programs or programs of a higher hierarchy are created on the planet 95, In the blocks of the hierarchy,
By simply specifying a lower-level block, regardless of whether it is created on the planet or in a procedural language, one execution program can be created by linking and editing. For this reason, engineers called veterans are responsible for creating programs using a familiar procedural language, and young engineers who have flexibly accepted new programming languages such as planets have this A method of completing one program can be achieved while being in charge of a program creation operation using a new programming language such as PLANET. In addition, there is an advantage that a program asset created by a procedural language can be used as it is.
【0041】[連係編集例1]図11は、本発明を適用
したプログラム作成装置において行うプログラムの連
係、編集動作を示す機能ブロック図である。[Linked Editing Example 1] FIG. 11 is a functional block diagram showing program linking and editing operations performed in the program creating apparatus to which the present invention is applied.
【0042】図11において、本発明を適用したプログ
ラム作成装置には、プログラムの時系列に処理される各
処理の内容を表す複数種類の図形パターンを用いて表示
画面上でプログラムを作成する図形プログラム(以降に
おいてはPLANETプログラム)作成用のエディタ2
1が第1のプログラム作成手段として用意されており、
このエディタ21によってPLANETのソースファイ
ル212がサブシステム毎にブロック単位で作成され
る。また、第1のプログラム作成手段21により作成さ
れたプログラムにおいて図形パターンによって表示され
る処理要素の下位階層プログラムを手続型言語を用いて
作成する手続型プログラム用エディタ31が第2のプロ
グラム作成手段として用意されており、このエディタ3
1によって手続型プログラムのソースファイル312が
ブロック単位で作成される。第2のプログラム作成手段
31は、このプラネット95自身に実装されているテキ
ストエディタ、あるいは汎用テキストエディタを用いる
ことができる。第2のプログラム作成手段31として、
プラネット95自身に実装されているテキストエディタ
を用いた場合には、プラネット95上で自動的にファイ
ル名が付されて保存される。これに対して、第2のプロ
グラム作成手段31として、汎用エディタを用いた場合
には、所定の拡張子をもつファイル名で保存しておくこ
とになる。Referring to FIG. 11, a program creating apparatus to which the present invention is applied has a graphic program for generating a program on a display screen using a plurality of types of graphic patterns representing the contents of each processing performed in chronological order of the program. Editor 2 for creating (hereafter, a PLANET program)
1 is prepared as a first program creating means,
The editor 21 creates a PLANET source file 212 in block units for each subsystem. Also, a procedural program editor 31 for creating, using a procedural language, a lower layer program of a processing element displayed by a graphic pattern in the program created by the first program creating means 21 as a second program creating means. It is prepared and this editor 3
1 creates a procedural program source file 312 in block units. As the second program creating means 31, a text editor mounted on the planet 95 itself or a general-purpose text editor can be used. As the second program creating means 31,
When a text editor mounted on the planet 95 itself is used, the file name is automatically added and saved on the planet 95. On the other hand, when a general-purpose editor is used as the second program creation means 31, the file is saved with a file name having a predetermined extension.
【0043】本例のプラネット95においては、PLA
NETソースファイル312のソースコードで手続型言
語で作成されたプログラムを下位階層プログラムとして
参照することが許されている。このため、以下に述べる
コンパイルあるいはインタプリタの処理においては、ソ
ースコードで宣言され、その後、リンク情報として残さ
れた手続型プログラムの情報を識別し、手続型プログラ
ムをリンクできるようになっている。エディタ21にお
いては、図12に示すような方法で手続型プログラムと
のリンクが宣言される。先ず、あるサブシステムの処理
を記述したPLANETソース「SUBMAIN」中
に、SUB1およびSUB2という下位階層のブロック
が記述されているとする。通常、下位階層のブロックも
図形プログラムであり、「SUB1」を開くとPLAN
ETソースコードがあり、SUB1のプロパティはPL
ANETが選択されている。これに対し、「SUB2」
を開くと空のブロックとなっており、プロパティは手続
型プログラムが選択されている。さらに、このブロック
SUB2としてリンクする手続型プログラムのファイル
名称(SUB2.PRG)が記載されている。このよう
に、本例の図形プログラム用エディタ21は、ブロック
のプロパティとして図形プログラム(PLANET)と
手続型プログラムとが選択できるようになっており、そ
の情報がコンパイラおよびインタプリタでリンク情報と
して参照される。In the planet 95 of this embodiment, the PLA
The source code of the NET source file 312 allows a program created in a procedural language to be referred to as a lower-layer program. For this reason, in the compiling or interpreter processing described below, information of the procedural program declared in the source code and thereafter left as link information can be identified, and the procedural program can be linked. In the editor 21, a link to the procedural program is declared by a method as shown in FIG. First, it is assumed that lower-level blocks called SUB1 and SUB2 are described in a PLANET source “SUBMAIN” that describes the processing of a certain subsystem. Normally, the lower-level blocks are also graphic programs, and when "SUB1" is opened, the PLAN
ET1 source code, SUB1 property is PL
ANET is selected. On the other hand, "SUB2"
When you open, it is an empty block, and the property is procedural program selected. Further, the file name (SUB2.PRG) of the procedural program linked as the block SUB2 is described. As described above, the graphic program editor 21 according to the present embodiment can select a graphic program (PLANET) or a procedural program as a property of a block, and the information is referred to as link information by a compiler and an interpreter. .
【0044】本例のPLANET95のプログラム作成
システムは、第1および第2のプログラム作成手段21
および31の各々に続くコンパイラ22および32を備
えており、図形プログラムのコンパイラ22が連係編集
手段としての機能を果たすようになっている。本例にお
いては、第1および第2のプログラム作成手段21およ
び31で作成されたブロック(プログラム)からターゲ
ットCPU(プロセッサ)毎に1つの実行用プログラム
が編集される。コンパイラ22は、まず、第1のプログ
ラム手段21で図形パターンを用いて作成されたブロッ
ク毎のプログラムを、その図形情報に基づいて、制御機
器上で直接、実行可能なプログラムに変換する。この際
には、ペトリネットの実行規則をプログラム解析のとき
に導入し、グラフ理論におけるDFS、BFS、DAG
等のような手法を用いて、コントロールフロー、データ
フローを解析し、図形で得られるプラネットプログラム
構造を並列に動作する複数の逐次プロセスに展開する。
このように生成された各プロセスに対して、マイクロプ
ロセッサのコード選択、生成コードの最適化を適用し、
併せて、第2のプログラム作成手段31で手続き型言語
で作成されたブロックをリンクさせながら、実走行コー
ドを生成している。The program creation system of the PLANET 95 according to the present embodiment includes first and second program creation means 21.
And 31, each of which has a compiler 22 and 32, so that the graphic program compiler 22 functions as a cooperative editing means. In this example, one execution program is edited for each target CPU (processor) from the blocks (programs) created by the first and second program creation means 21 and 31. First, the compiler 22 converts the program for each block created by the first program means 21 using the graphic pattern into a program that can be directly executed on the control device based on the graphic information. In this case, the execution rules of Petri net are introduced at the time of program analysis, and DFS, BFS, DAG in graph theory are introduced.
The control flow and the data flow are analyzed by using a method such as that described above, and the planet program structure obtained by the graphic is developed into a plurality of sequential processes operating in parallel.
Applying microprocessor code selection and generated code optimization to each process generated in this way,
At the same time, the actual running code is generated while linking the blocks created in the procedural language by the second program creating means 31.
【0045】このような処理をさらに詳細に説明する
と、以下のようになる。The above processing will be described in more detail as follows.
【0046】まず、パーサ221は、エディタ21で作
成されたプラネットプログラム(ソールファイル)の図
形情報ファイル212を解析し、仮想機械の走行コード
を生成し、ソースファイル212に対応するブロック単
位の中間コードファイルに格納する。パーサ221は、
ブロック毎のプログラム枠毎に解析を行う。生成された
ブロック毎のプログラム情報は、以降の操作でまとめら
れて大きなプログラムを構成することになる。First, the parser 221 analyzes the graphic information file 212 of the planet program (sole file) created by the editor 21, generates a running code of the virtual machine, and generates a block-based intermediate code corresponding to the source file 212. Store it in a file. The parser 221
Analysis is performed for each program frame of each block. The generated program information for each block is combined by the subsequent operations to form a large program.
【0047】次に、ソータ222は、パーサ221が出
力するブロック毎の解析結果を中間コードレベルでリン
クする。すなわち、プロセッサの名前が一致するブロッ
クを指定された入力ファイル群の中から検索してそのブ
ロックの中間コードをファイルに格納し、このブロック
において下位階層ブロックを呼び出している場合には、
その下位階層ブロックを検索してファイルに追加する。
また、これらのブロックで起動している全ての制御実体
のブロックも同様に検索してファイルに追加する。この
ようにして必要とされる全てのブロックをファイルに格
納するとき、そのプロセッサがもっているI/Oポート
とビットのアドレス、名前の情報を検索して、ブロック
中で、I/Oポートおよびビットを使用している場合に
は、アドレスをファイルに書き込む。また、下位階層ブ
ロックがアクセスしているグローバル変数をリンクす
る。この結果、ソータ222により、プロセッサ毎の中
間コードファイル232と、その中間コードファイル2
32による処理を行う上で必要なリンク情報が記載され
たリンク情報ファイル233が形成される。このリンク
情報ファイル233は、中間コードファイル232と別
の名称のファイルとして形成されても良く、あるいは、
中間コードファイル232中にリンク情報として含まれ
るようにしても良いことはもちろんである。Next, the sorter 222 links the analysis results for each block output by the parser 221 at an intermediate code level. That is, if a block with the same processor name is searched from the specified input file group and the intermediate code of the block is stored in the file, and a lower hierarchical block is called in this block,
The lower-level block is searched and added to the file.
Similarly, the blocks of all control entities activated in these blocks are searched and added to the file. When all necessary blocks are stored in the file in this manner, the address and name information of the I / O port and bit of the processor are searched, and the I / O port and bit in the block are searched. If you are using, write the address to a file. Also, the global variables accessed by the lower hierarchical blocks are linked. As a result, the sorter 222 causes the intermediate code file 232 for each processor and the intermediate code file 2
A link information file 233 is described in which link information necessary for performing the processing by the H.32 is described. The link information file 233 may be formed as a file having a different name from the intermediate code file 232, or
It goes without saying that the intermediate code file 232 may be included as link information.
【0048】次に、コードジェネレータ223は、ソー
タ222が出力する仮想機械の中間コードを入力とし
て、それと等価なマシンコードを生成し、マシンコード
のファイル234を出力する。また、コードジェネレー
タ223は、ソータ222が出力する仮想機械の中間コ
ードに含まれる情報をもとに、マシンコードだけでな
く、ネットワーク上のリンク情報、アセンブラとのリン
ク情報、および手続型言語とのリンク情報などを含んだ
リンク情報ファイル235も生成する。Next, the code generator 223 receives the intermediate code of the virtual machine output by the sorter 222 as input, generates a machine code equivalent to the intermediate code, and outputs a machine code file 234. Further, the code generator 223, based on the information included in the intermediate code of the virtual machine output by the sorter 222, not only the machine code, but also the link information on the network, the link information with the assembler, and the procedural language. A link information file 235 including link information and the like is also generated.
【0049】一方、第2のプログラム手段31により、
手続き型言語で下位階層ブロックとして作成されたプロ
グラムは、コンパイラ32のパーサ321で中間コード
に翻訳され、さらに、コードジェネレータ323によっ
て、制御機器上で直接、実行可能なプログラムに変換さ
れ、ブロック毎のマシンコードのファイル334が作成
される。On the other hand, the second program means 31
A program created as a lower layer block in a procedural language is translated into an intermediate code by a parser 321 of a compiler 32, and further converted by a code generator 323 into a program that can be directly executed on a control device. A machine code file 334 is created.
【0050】プラネット用のコンパイラ22のリンカ2
24は、コードジェネレータ223が生成したネットワ
ーク上のリンク情報、アセンブラとのリンク情報、およ
び手続き型言語とのリンク情報など全ての要件をリンク
して、機械が実際に動作可能なマシンコードを生成し、
実行プログラム41を出力する。例えば、リンク情報フ
ァイル235で供給されたリンク情報に基づき、指定さ
れたライブラリファイル50からアセンブラで記述され
たモジュールを検索し、走行モードを追加する。また、
手続型言語で生成されたブロックをリンクするための情
報をもとに、指定されたファイルからそのブロックを検
索し、走行モードを追加する。このようにして得られた
走行コードを実走行コードファイル41として出力す
る。したがって、プラネットプログラム中に複数のプロ
セッサが記述されているときには、全てのプロセッサ毎
にそのままで実行可能な状態、すなわち、関連するライ
ブラリあるいは全ての下層階層プログラムの実行モジュ
ールを組み込んだ状態の比較的大きな実走行コードファ
イルが生成される。Linker 2 of Compiler 22 for Planet
24 links all the requirements, such as link information on the network, link information with the assembler, and link information with the procedural language, generated by the code generator 223, to generate machine code that can be actually operated by the machine. ,
An execution program 41 is output. For example, based on the link information supplied in the link information file 235, a module described by an assembler is searched from the designated library file 50, and a driving mode is added. Also,
Based on the information for linking the blocks generated in the procedural language, the specified file is searched for the blocks and the driving mode is added. The travel code thus obtained is output as the actual travel code file 41. Therefore, when a plurality of processors are described in a planet program, a relatively large state in which all the processors can be executed as they are, that is, a state in which an associated library or an execution module of all lower-layer programs is incorporated. An actual running code file is generated.
【0051】このようにして、第1のプログラム作成手
段21で作成されたプログラムと第2のプログラム作成
手段31で作成されたプログラムとを関連付けて実行プ
ログラム41を編集する連係編集手段が構成されてい
る。そして、各ターゲットCPUは、この実行プログラ
ム41をロードし、各サブシステムを所定の手順で駆動
する。さらに、PLANETシステムには各々の実行プ
ログラム41をデバックするためのデバッガ61が用意
されており、個々の実行プログラム41をデバックでき
るようになっている。このデバッガ61については、さ
らに以下で説明する。In this manner, the link editing means for editing the execution program 41 by associating the program created by the first program creation means 21 with the program created by the second program creation means 31 is constituted. I have. Then, each target CPU loads the execution program 41 and drives each subsystem according to a predetermined procedure. Further, a debugger 61 for debugging each execution program 41 is provided in the PLANET system, and each execution program 41 can be debugged. This debugger 61 will be further described below.
【0052】[連係編集の例2]図13は、本発明を適
用したプログラム作成装置において行うプログラムの別
の連係、編集動作を示す機能ブロック図である。[Second Example of Linkage Editing] FIG. 13 is a functional block diagram showing another linkage and editing operation of a program performed by the program creating apparatus to which the present invention is applied.
【0053】図13においては、まず、図11に示した
PLANETシステムと同様にエディタ21および31
によってそれぞれのソースファイル212および312
が作成される。次に、PLANETソースファイル21
2は、コンパイラ22において上記と同様に、パーサ2
21で図形パターンを用いて作成されたブロック毎のプ
ログラム212から仮想機械の走行コードが生成され、
中間コードファイルに格納される。次に、ソータは、パ
ーサ221が出力するブロック毎の解析結果を中間コー
ドレベルでリンクする。すなわち、プロセッサの名前が
一致するブロックを指定された入力ファイル群の中から
検索してそのブロックの中間コードをファイルに格納
し、このブロックにおいて下位階層ブロックを呼び出し
ている場合には、その下位階層ブロックを検索してファ
イルに追加する。また、これらのブロックで起動してい
る全ての制御実体のブロックも同様に検索してファイル
に追加する。このようにして必要とされる全てのブロッ
クをファイルに格納するとき、そのプロセッサがもって
いるI/Oポートとビットのアドレス、名前の情報を検
索して、ブロック中で、I/Oポートおよびビットを使
用している場合には、アドレスをファイルに書き込む。
また、下位階層ブロックがアクセスしているグローバル
変数をリンクする。また、コードジェネレータは、ソー
タが出力する仮想機械の中間コードを入力として、それ
と等価なマシンコードを生成する。また、ジェネレータ
は、ソータが出力する仮想機械の中間コードに含まれる
情報をもとに、マシンコードだけでなく、ネットワーク
上のリンク情報、アセンブラとのリンク情報、および手
続き型言語とのリンク情報を生成する。このコンパイラ
22の構成は上記の例と同様であるので、図面には省略
して示してある。In FIG. 13, first, editors 21 and 31 are used in the same manner as in the PLANET system shown in FIG.
Source files 212 and 312 respectively
Is created. Next, the PLANET source file 21
2 is the parser 2 in the compiler 22 as described above.
In 21, a running code of the virtual machine is generated from the program 212 for each block created using the graphic pattern,
Stored in the intermediate code file. Next, the sorter links the analysis result for each block output by the parser 221 at an intermediate code level. That is, a block having the same processor name is searched from the specified input file group, the intermediate code of the block is stored in the file, and if a lower layer block is called in this block, the lower layer is called. Find the block and add it to the file. Similarly, the blocks of all control entities activated in these blocks are searched and added to the file. When all necessary blocks are stored in the file in this manner, the address and name information of the I / O port and bit of the processor are searched, and the I / O port and bit in the block are searched. If you are using, write the address to a file.
Also, the global variables accessed by the lower hierarchical blocks are linked. The code generator receives the intermediate code of the virtual machine output by the sorter as input and generates a machine code equivalent thereto. In addition, based on the information contained in the intermediate code of the virtual machine output by the sorter, the generator not only outputs the machine code but also the link information on the network, the link information with the assembler, and the link information with the procedural language. Generate. Since the configuration of the compiler 22 is the same as that of the above example, it is omitted in the drawing.
【0054】このようにして、上記の例と同様にコード
ジェネレータによって各CPU毎にマシンコードのファ
イルとリンク情報のファイルが生成される。本例のシス
テムにおいては、これらのファイルを用いてリンカ22
4が、ライブラリ50などから実行モジュールを取り込
むが、手続型プログラムの実行モジュールは取り込まな
い状態の実行プログラムファイル42と、手続型プログ
ラムへのリンク情報を備えたリンク情報ファイル43と
を生成する。本例のシステムでは、手続型言語で生成さ
れたブロックをリンクするためのヘッダファイルという
形式でリンク情報ファイル43が作成される。このリン
ク情報は実行プログラムファイル内に格納することもも
ちろん可能である。In this way, a file of machine code and a file of link information are generated for each CPU by the code generator in the same manner as in the above example. In the system of this example, the linker 22 is used by using these files.
4 fetches an execution module from the library 50 or the like, but generates an execution program file 42 in a state where the execution module of the procedural program is not fetched, and a link information file 43 including link information to the procedural program. In the system of this example, the link information file 43 is created in the form of a header file for linking blocks generated in the procedural language. This link information can of course be stored in the execution program file.
【0055】一方、第2のプログラム作成手段であるエ
ディタ31で手続型言語を用いて作成された下位階層ブ
ロックのソースファイル312は、パーサ321によっ
てインタプリタ34に解釈可能な中間コードに変換(翻
訳)され、中間コードファイル331として出力され
る。On the other hand, the source file 312 of the lower hierarchical block created by using the procedural language by the editor 31 as the second program creating means is converted (translated) into an intermediate code which can be interpreted by the interpreter 34 by the parser 321. And output as an intermediate code file 331.
【0056】この結果、ターゲットCPU39は、図形
型プログラム(PLANETプログラム)で記述された
部分は、マシンコードに翻訳された実行プログラム42
をロードして処理を行い、手続型プログラムで記述され
た部分は、リンク情報43に基づいてインタプリタ34
が機械語に翻訳したマシンコードに基づいて処理を行
う。従って、インタプリタ34がPLANETプログラ
ムと手続型プログラムをリンク情報に基づいてリンクさ
せてプロセッサで実行可能なプログラムを提供する連係
編集手段としての機能を果たす。As a result, the target CPU 39 determines that the portion described in the graphic type program (PLANET program) is the execution program 42 translated into machine code.
Is loaded and processed, and the portion described in the procedural program is interpreted by the interpreter 34 based on the link information 43.
Performs processing based on the machine code translated into the machine language. Accordingly, the interpreter 34 functions as a link editing unit that provides a program executable by the processor by linking the PLANET program and the procedural program based on the link information.
【0057】[連係編集の例3]図14は、本発明を適
用したプログラム作成システムのさらに異なった例を示
すブロック図である。図14においても、まず、図11
に示したPLANETシステムと同様にエディタ21お
よび31によってそれぞれのソースファイル212およ
び312が作成される。次に、PLANETソースファ
イル212は、コンパイラ22において上記と同様に、
パーサ221でブロック毎の中間コードファイルとな
り、ソータ222によりプロセッサ毎の中間コードファ
イル232が作成される。この中間コードファイル23
2と同時に、そのプロセッサが持っているI/Oポート
とビットのアドレス、下位階層ブロックがアクセスして
いるグローバル変数、ネットワーク上のリンク情報、ア
センブラとのリンク情報、および手続型言語とのリンク
情報が含まれたリンク情報ファイル233が作成され
る。そして、本例では、この状態でマシンコードに変換
されずにコンパイラ22から出力される。[Example 3 of Linked Editing] FIG. 14 is a block diagram showing still another example of a program creation system to which the present invention is applied. In FIG. 14, first, FIG.
The source files 212 and 312 are created by the editors 21 and 31 in the same manner as in the PLANET system shown in FIG. Next, the PLANET source file 212 is stored in the compiler 22 in the same manner as described above.
The parser 221 creates an intermediate code file for each block, and the sorter 222 creates an intermediate code file 232 for each processor. This intermediate code file 23
At the same time, the I / O port and bit address of the processor, the global variables accessed by the lower hierarchical block, the link information on the network, the link information with the assembler, and the link information with the procedural language The link information file 233 including the is created. In this example, the output is output from the compiler 22 without being converted into the machine code in this state.
【0058】一方、第2のプログラム作成手段であるエ
ディタ31で手続型言語を用いて作成された下位階層ブ
ロックのソースファイル312は、パーサ321によっ
てインタプリタ34に解釈可能な中間コードに翻訳さ
れ、中間コードファイル331として出力される。On the other hand, the source file 312 of the lower hierarchical block created by using the procedural language by the editor 31, which is the second program creating means, is translated by the parser 321 into an intermediate code which can be interpreted by the interpreter 34. It is output as a code file 331.
【0059】この結果、図形型プログラム(PLANE
Tプログラム)で記述された部分、および手続型プログ
ラムで記述された部分が中間コードの状態でターゲット
CPU39に提供される。ターゲットCPU39には、
既にインタープリタ34が実装されており、実行時には
中間コードを一行ずつ解釈して実行される。さらに、ラ
イブラリ50が参照されている場合は、インタプリタ3
4によって、その実行モジュールが取り込まれてCPU
39に供給される。したがって、インタプリタ34がP
LANETプログラムと手続型プログラムをリンク情報
に基づきリンクさせてプロセッサで実行可能なプログラ
ムを供給する連係編集手段としての機能を果たす。本例
のシステムでは、図形型プログラムおよび手続型プログ
ラムが中間コードまで翻訳された段階でメモリに収納さ
れるので、プログラム全てがマシンコードに翻訳された
後のすぐに実行可能なマシンコードの状態でメモリに収
納される場合よりもメモリ容量は少なくて済む。さら
に、中間コードまで翻訳されているので、インタプリタ
34の処理時間は短くて済み、プログラムの実行速度を
確保することができる。As a result, the graphic program (PLANE
The part described in the T program) and the part described in the procedural program are provided to the target CPU 39 in an intermediate code state. In the target CPU 39,
The interpreter 34 is already mounted, and at the time of execution, the intermediate code is interpreted line by line and executed. Further, when the library 50 is referred to, the interpreter 3
4, the execution module is loaded and the CPU
39. Therefore, if the interpreter 34
The LANET program and the procedural program are linked on the basis of the link information and function as a link editing means for supplying a program executable by the processor. In the system of this example, since the graphic type program and the procedural type program are stored in the memory at the stage when the intermediate code is translated, the machine code can be executed immediately after all the programs are translated into the machine code. The memory capacity may be smaller than when stored in the memory. Further, since the intermediate code is translated, the processing time of the interpreter 34 can be reduced, and the execution speed of the program can be secured.
【0060】[デバッガ/実行確認]このようにして得
られた実行可能なマシンコードが正しく動作するか否か
は、図11ないし図14を参照して説明したいずれの形
態でも、デバックモニタを用いて検証する。このデバッ
グモニタプログラムは、各種コンピュータ上で実行可能
である。このデバッガ61(デバッグ手段)の内容は、
プログラムのダウンロード、プログラムのトレース、I
/Oポートのモニタリングである。このデバッガ61の
作用により、ターゲットプロセッサの動作をソースレベ
ルで監視することができる。従って、ソースレベルでデ
バック可能なので、デバッグ作業を効率よく行うことが
できる。[Debugger / Confirmation of Execution] Whether or not the executable machine code obtained in this way operates correctly can be determined by using a debug monitor in any of the embodiments described with reference to FIGS. To verify. This debug monitor program can be executed on various computers. The contents of this debugger 61 (debugging means)
Download program, trace program, I
Monitoring of the / O port. By the operation of the debugger 61, the operation of the target processor can be monitored at the source level. Therefore, since debugging can be performed at the source level, debugging can be performed efficiently.
【0061】また、本形態では、再生されたプログラム
のうちデバッグすべき任意のブロックを指定した後、開
始指令するだけで、指定されたブロック、およびこのブ
ロックの下位階層ブロックのプログラムのみが実行され
るように、図15(A)、(B)に示すように、制御フ
レームをツリー化してある。すなわち、図15(A)、
(B)において、最も上位階層のブロックフレームAの
ブロックフレームコントロールブロック(BFCB)F
A、その一階層下位のブロックフレームB,Cのブロッ
クフレームコントロールブロックFB、FC、およびさ
らに一階層下位のブロックフレームDのブロックフレー
ムコントロールブロックFDには、それぞれの一階層下
位のブロックフレーム(ChildFremes)がリ
ストされている。このため、ブロックCについてデバッ
グ操作を行なうためにブロックCを実行させた際には、
このブロックフレームコントロールブロックFCには,
このブロックフレームのTCBに加えて、上位階層のブ
ロックフレームA(ParentFreme)、先のブ
ロックフレームB(PreFreme),その一階層下
位のブロックフレームD(ChiidFremes)が
リストされているので、その上位のブロックフレームA
を実行しなくても、下位階層のブロックフレームDのス
レッドをサブルーチンとしてプログラムを実行した後、
戻りアドレスによって再びジャンプし、スレッドを継続
することができる。Further, in this embodiment, after designating an arbitrary block to be debugged out of the reproduced program, only a start command is executed to execute only the designated block and the program of the lower hierarchical block of this block. As shown in FIGS. 15A and 15B, the control frames are tree-structured. That is, FIG.
In (B), the block frame control block (BFCB) F of the highest-order block frame A
A, the block frame control blocks FB and FC of the block frames B and C one level lower than it, and the block frame control block FD of the block frame D one layer lower than it, respectively, the one lower layer block frame (ChildFrames) Are listed. For this reason, when block C is executed to perform a debugging operation on block C,
In this block frame control block FC,
In addition to the TCB of this block frame, an upper layer block frame A (ParentFrame), a preceding block frame B (PreFrame), and a block frame D (ChildFrames) one layer lower than that are listed. Frame A
Without executing the program, the thread of the lower-layer block frame D is executed as a subroutine,
The return address allows the user to jump again and continue the thread.
【0062】さらに、図15(B)に示すように、各ブ
ロックフレームA,B,C,DのTCBには、前後のT
CB(NextTCB,PreTCB)に加えて、それ
自身の中間コード列がブロックフレームパラメ―タとし
て格納されている。Further, as shown in FIG. 15B, the TCB of each of the block frames A, B, C, and D includes
In addition to CB (NextTCB, PreTCB), its own intermediate code string is stored as a block frame parameter.
【0063】(デバッグ:Breakのポイントの設
定)このように構成したプログラム作成装置において、
ブレイクポイントの設定を行うには、図16に示すよう
に、ツールバー内の”Break”を選択する。ブレイ
クポイントの設定するセルにマウスを合わせ、クリック
する。ブレークポイントを解除する場合も設定と同様の
手順で行う。(Debug: Setting of Break Points) In the program creating apparatus thus configured,
To set a breakpoint, select "Break" in the toolbar as shown in FIG. Move the mouse to the cell where you want to set a breakpoint and click. The procedure for setting a breakpoint is the same as that for setting a breakpoint.
【0064】(デバッグ:サブシステムの実行)プログ
ラムの実行を行うには、ツールバーより”Run”を選
択する。すると、図17に示すように、プログラムの実
行が開始され、出力ウインドウにメッセージが現れる。
プログラム中にブレイクポイントが設定されている場合
には、赤玉がその場所で停止し、プログラムが”一時停
止中”であることがわかる。一時停止中の赤玉を進める
には、赤玉が次に通過すべき箇所をクリックする(st
ep実行)。なお、指定されたファンクションキー(た
とえば、F5)を押すと、ブレイクポイントに関係な
く、プログラムを再スタートできる。(Debug: Execution of Subsystem) To execute the program, select "Run" from the toolbar. Then, as shown in FIG. 17, the execution of the program is started, and a message appears in the output window.
If a breakpoint is set during the program, the red ball will stop at that location, indicating that the program is "paused". To advance the suspended red ball, click on the point where the red ball should pass next (st
ep). When the designated function key (for example, F5) is pressed, the program can be restarted regardless of the break point.
【0065】(プログラムの強制終了)プログラムの実
行を停止する場合には、図18に示すように、ツールバ
ー内より”Abt(Stop)”を選択する。(Forced termination of program) When the execution of the program is stopped, "Abt (Stop)" is selected from the toolbar as shown in FIG.
【0066】なお、デバッグ作業は、実行確認と同様、
エディタによるプログラム作成と同様、マウスとキーボ
ードを使用して、マルチウインドウ上で行うことがで
き、これらのマルチウインドウ、マウスおよびキーボー
ドにより、実行すべきブロックを指定するブロック指定
手段が構成されている。The debugging work is performed in the same manner as the execution confirmation.
Like the program creation by the editor, the program can be performed on a multi-window using a mouse and a keyboard. The multi-window, the mouse and the keyboard constitute a block designating means for designating a block to be executed.
【0067】たとえば、図9に示した例で説明すると、
まず、ツリービュー上で対象ブロックをクリックしてブ
ロックを選択する。なお、対象ブロックの選択方法とし
ては、ツリビュー上での指定だけでなく、画面上に開か
れているプログラムのウインドウを直接、指定する方法
でもよい。その結果、目標とするブロックが指定された
ことになり、対応するソースプログラムがソースファイ
ル(格納手段)から呼び出され、表示される。ポップア
ップメニューの中から”実行”を選ぶと(開始指令手
段)、ターゲットプロセッサの任意のブロックにおいて
BEGIN端子から実行が開始され、END端子に制御
が到達するまで実行し、終了する。なお、実行開始の指
示方法としては、ポップアップメニューだけからではな
く、プルダウンメニューやショートカットキーあるいは
ファンクションキーなどで実行指示を行ってもよい。ま
た、ドラッグアンドドロップで実行指示を行ってもよ
い。For example, referring to the example shown in FIG.
First, a target block is clicked on the tree view to select a block. As a method of selecting the target block, not only the specification on the tree view but also a method of directly specifying the window of the program opened on the screen may be used. As a result, the target block is specified, and the corresponding source program is called from the source file (storage means) and displayed. When "execute" is selected from the pop-up menu (start command means), execution is started from the BEGIN terminal in an arbitrary block of the target processor, executed until control reaches the END terminal, and terminated. In addition, as an instruction method of the execution start, the execution instruction may be performed not only from the pop-up menu but also from a pull-down menu, a shortcut key, a function key, or the like. The execution instruction may be given by drag and drop.
【0068】この際に、対象となったブロックにその下
位階層ブロックを含む際には、この下位階層ブロックも
実行される。すなわち、図6に示す階層化構造におい
て、ブロックB1を対象に指定すると、その下位階層ブ
ロックであるブロックB2も実行される。このような実
行には変数が必要であるが、本形態では、図7を参照し
て説明したように、該当するブロックのみで使用する変
数についてはローカル変数として設定され、サブシステ
ム内で共通な変数のうち、下位階層ブロックがアクセス
しているグローバル変数については、いずれかのブロッ
クを作成する際にこのブロック内でグローバル変数であ
ることを宣言しておけば良い。At this time, when the target block includes the lower hierarchical block, the lower hierarchical block is also executed. That is, in the hierarchical structure shown in FIG. 6, when the block B1 is designated as a target, the block B2 which is a lower hierarchical block is also executed. Variables are necessary for such execution, but in the present embodiment, as described with reference to FIG. 7, variables used only in the corresponding block are set as local variables and shared in the subsystem. Of the variables, a global variable accessed by a lower hierarchical block may be declared to be a global variable in this block when any block is created.
【0069】図11ないし図14を参照して説明したよ
うに、コンパイラ22のパーサ221が出力するブロッ
ク毎の解析結果を中間コードレベルでリンクする際に、
ソータ222が他のリンク情報と共にリンク情報ファイ
ル233としてグローバル変数についての情報も出力す
る。このため、それらのグローバル変数について適当な
値を設定するなどの処理を施すことができる。従って、
任意のブロックを選択して、このブロック単体、または
それに含まれる下位階層ブロックと合わせて実行させる
ことができるので、ある特定のブロックのみを実行させ
ることができる。As described with reference to FIGS. 11 to 14, when linking the analysis result for each block output by the parser 221 of the compiler 22 at the intermediate code level,
The sorter 222 also outputs information about the global variables as a link information file 233 along with other link information. Therefore, processing such as setting appropriate values for these global variables can be performed. Therefore,
Since an arbitrary block can be selected and executed together with this block alone or a lower-level block included therein, it is possible to execute only a specific block.
【0070】従って、上位階層ブロックについてまで、
デバッガあるいは実行を行わせる必要がないので、上位
階層ブロックを走行させるためのダミープログラムが不
要である。また、指定したブロック以外のブロックにお
いて動作ストロークの長い機械体が移動したり、加工、
組立て、薬剤処理、検査などいった処理が行われるとし
ても、このような対象外のブロックは実行されない。す
なわち、指定したブロックのみにおいて、バグ修正ある
いは実行確認が行われるので、バグ修正あるいは実行確
認に手間がかからない。しかも、対象外のブロックが実
行されないので、バグ修正済みあるいは実行確認済みの
ブロックについては実行させずに、指定したブロックの
みにおいてバグ修正あるいは実行確認を行えるという点
でも、バグ修正あるいは実行確認に手間がかからない。
さらにまた、上位階層のブロックが存在しなくても、個
々の下位階層のブロックのみについて、バグ修正あるい
は実行確認をできるということは、大規模で複雑な機械
制御プログラムを作成するのに適している。すなわち、
大規模で複雑な機械制御プログラムを作成する際には、
複数人が分担してプログラミングを行い、それを最後に
結合してから総合デバッグする方法が採用されている
が、本形態のプログラム作成装置では、上位階層のブロ
ックが存在しなくても、個々の下位階層のブロックのみ
についてバグ修正あるいは実行確認をできるので、これ
らを終えてから、個々のブロックを結合することができ
る。Therefore, up to the upper hierarchical block,
Since there is no need for a debugger or execution, there is no need for a dummy program for running the upper hierarchical block. In addition, a machine body with a long operation stroke moves, blocks,
Even if processes such as assembly, drug processing, and inspection are performed, such non-target blocks are not executed. That is, the bug correction or the execution confirmation is performed only on the designated block, so that the bug correction or the execution confirmation does not require much trouble. In addition, since blocks that are not targeted are not executed, bug correction or execution confirmation can be performed only on designated blocks without executing bug-fixed or execution-confirmed blocks. It does not take.
Furthermore, even if there is no higher-level block, the ability to correct bugs or confirm execution of individual lower-level blocks alone is suitable for creating large-scale and complicated machine control programs. . That is,
When creating large and complex machine control programs,
A method is adopted in which multiple people share programming and combine them last, and then perform comprehensive debugging.However, in the program creation device of this embodiment, even if there is no higher-level block, individual Bug correction or execution confirmation can be performed only on the lower-level blocks, and after these steps are completed, individual blocks can be combined.
【0071】[操作方法]図19ないし図41を参照
し、プラネット95の操作方法を説明しながら、全体的
な機能を説明する。[Operation Method] With reference to FIGS. 19 to 41, the overall function will be described while explaining the operation method of the planet 95.
【0072】(プラネット95の起動)デスクトップ上
にある”PLANET.EXE”をダブルクリックす
る。(Activation of Planet 95) Double-click "PLANET.EXE" on the desktop.
【0073】(新規プロジェクトの作成)図19に示す
ように、プログラムを記入するため、新しいプロジェク
トを作成する。次に、新規プロジェクト名(N)にプロ
ジェクト名を入力し、”OK”ボタンを押すと、プロジ
ェクト名が作成される。ここでは、プロジェクト名「s
ample」としてある。ここでいうプロジェクトと
は、1つの装置を構成するファイルのことをいう。(Creation of a New Project) As shown in FIG. 19, a new project is created for writing a program. Next, when a project name is input to the new project name (N) and an "OK" button is pressed, a project name is created. Here, the project name "s
sample ". Here, the project refers to a file constituting one device.
【0074】(ターゲット定義)1つのコントローラ
(FA/PCなど)単位をターゲットといい、ここで
は、そのターゲットの名称などを定義する。それには、
図20に示すように、ハードウエアのタブを選択後、ツ
リービュー内のハードウエアを右クリックし、更にプロ
パティをクリックする。(Target Definition) One controller (FA / PC or the like) unit is called a target. Here, the name of the target is defined. To do that,
As shown in FIG. 20, after selecting the hardware tab, right-click the hardware in the tree view, and then click Properties.
【0075】すると、図21に示すように”ターゲット
定義”ウインドウが表示される。ターゲットを定義する
場合は、”追加”ボタンを押す。Then, a "target definition" window is displayed as shown in FIG. To define a target, press the "Add" button.
【0076】すると、図22に示すように、”ターゲッ
トプロパティ”ウインドウが表示される。ターゲット名
の入力、および各種の設定を行い、”OK”ボタンを押
すと、ターゲットが定義される。ここに示す例では、”
Target1”というターゲット名をつける。Then, a “target property” window is displayed as shown in FIG. After inputting the target name and making various settings, and pressing the "OK" button, the target is defined. In the example shown here,
Target name “Target1”.
【0077】このようにしてターゲット定義を行うと、
図23に示すように、ハードウエアの下にターゲット
名”Target1”が表示される。When the target is defined as described above,
As shown in FIG. 23, a target name “Target1” is displayed below the hardware.
【0078】(サブシステムの定義)サブシステムを定
義する際には、図24に示すように、プログラムタブを
クリックし、ツリービュー内に作成されたプロジェクト
名(この例では”sample”)をダブルクリックす
る。すると、サブシステム構成ウインドウが開かれる。(Definition of Subsystem) When defining a subsystem, as shown in FIG. 24, click on the program tab and double-click the project name (“sample” in this example) created in the tree view. click. Then, the subsystem configuration window is opened.
【0079】次に、図25に示すように、ツールバーの
中から”subsystem”アイコンを選択すると、
サブシステム作成のモードになる。Next, as shown in FIG. 25, when the “subsystem” icon is selected from the toolbar,
Enter subsystem creation mode.
【0080】サブシステム構成ウインドウ内でマウスの
左ボタンを押しながら、任意の大きさにドラッグし、矩
形を描く。すると、図26に示すように、”サブシステ
ムプロパティ”ダイアログが表れる。”サブシステムプ
ロパティ”ダイアログに、サブシステム名称を入力
し、”OK”ボタンを押すと、この例ではサブシステム
1”というサブシステム名を入力する。While pressing the left mouse button in the subsystem configuration window, drag to an arbitrary size to draw a rectangle. Then, as shown in FIG. 26, a “subsystem property” dialog box appears. When the subsystem name is entered in the “subsystem property” dialog and the “OK” button is pressed, the subsystem name “subsystem 1” is entered in this example.
【0081】すると、図27に示すように、”サブシス
テム1”というサブシステムが作成され、サブシステム
の定義が完了する。Then, as shown in FIG. 27, a subsystem called “subsystem 1” is created, and the definition of the subsystem is completed.
【0082】(ツリービューへの反映を確認)同様に、
図28に示すように、2つ目のサブシステムとして”サ
ブシステム2”を作成する。そして、左側のツリービュ
ー内に、作成した”サブシステム1”と”サブシステム
2”が反映されていることを確認する。(Confirmation of reflection in tree view) Similarly,
As shown in FIG. 28, “subsystem 2” is created as a second subsystem. Then, it is confirmed that the created “subsystem 1” and “subsystem 2” are reflected in the left tree view.
【0083】(メッセージ定義)メッセージ作成を行う
には、図29に示すように、ツールバー内の”edi
t”を選択する。(Message definition) To create a message, as shown in FIG.
t ".
【0084】そして、メッセージ送信側となるサブシス
テムの上でマウスを右クリックする。すると、図30に
示すように、ポップアップメニューが現れる。ポップア
ップメニューより、”新規メッセージタップ(N)”を
選択する。Then, the mouse is right-clicked on the subsystem that is the message transmitting side. Then, a pop-up menu appears as shown in FIG. From the pop-up menu, select "New Message Tap (N)".
【0085】”新規メッセージタップ(N)”をクリッ
クすると、図31に示すように、メッセージプロパティ
が現れる。メッセージ名、引数の設定を行う。この例で
はメッセージ名を”メッセージ1”、メッセージにつけ
る引数の型を”INTGER”、引数名を”引数1”と
設定する。When "new message tap (N)" is clicked, a message property appears as shown in FIG. Set the message name and arguments. In this example, the message name is set to "message 1", the type of the argument attached to the message is set to "INTGER", and the argument name is set to "argument 1".
【0086】(受信側サブシステムの設定)図32に示
すように、メッセージプロパティの”受信設定”ボタン
を押すと、”受信側サブシステム”ウインドウが現れ
る。受信側のサブシステム名をクリックする。そして、
選択欄に二重丸が付いたことを確認する。この図に示す
例では、サブシステム1から送信されたメッセージをサ
ブシステム2で受信するので、”サブシステム2”をク
リックし二重丸を付ける。受信側サブシステムの選択が
終了したら、”OK”ボタンを押す。(Setting of Reception Subsystem) As shown in FIG. 32, when the “Reception Setting” button of the message property is pressed, a “Reception Subsystem” window appears. Click the name of the receiving subsystem. And
Check that the selection field has a double circle. In the example shown in this figure, since the message transmitted from the subsystem 1 is received by the subsystem 2, "subsystem 2" is clicked and a double circle is added. When the selection of the receiving subsystem is completed, press the "OK" button.
【0087】(メッセージ定義の終了)これまでの手順
が終了したら、メッセージプロパティダイアログの”O
K”ボタンを押す。以上の手順によりメッセージ定義が
完了する。一度定義したメッセージを再編集するには、
図33に示すように、編集したい送信側のメッセージ端
子上で右クリックする。すると、ポップアップメニュー
が現れるので、その中のメッセージタップ編集”を選択
する。(End of Message Definition) When the procedure up to now is completed, “O”
Press the "K" button. Message definition is completed by the above procedure. To re-edit the message once defined,
As shown in FIG. 33, right-click on the message terminal on the transmitting side to be edited. Then, a pop-up menu appears. Select "Tap message edit" in the pop-up menu.
【0088】(マニピュレータ・I/Oラベルの設定)
ハードウエアのタブを選択する。ツリービューのターゲ
ット名の上で右クリックすると、図34に示すように、
ポップアップメニューが開かれる。ポップアップメニュ
ー中の”開く”を選択すると、I/Oラベルを定義する
ウインドウが表示されるので、各々の設定を行うことが
できる。(Setting of manipulator / I / O label)
Select the Hardware tab. Right click on the target name in the tree view, as shown in Fig. 34,
A pop-up menu opens. When "open" is selected in the pop-up menu, a window for defining an I / O label is displayed, so that each setting can be performed.
【0089】(ブロックの作成)次に、ブロックの作成
を行う。ツリービューウインドウ内のサブシステム1”
RootBlk”をダブルクリックする。すると、図3
5に示すように、”サブシステム1:RootBlk”
ウインドウが開かれるので、ツールバーから入力したい
セルのアイコンを選択し、プログラムを記述していく。(Creation of Block) Next, block creation is performed. Subsystem 1 "in the tree view window
Double-click “RootBlk”.
As shown in FIG. 5, “Subsystem 1: RootBlk”
A window opens. Select the icon of the cell you want to input from the toolbar and write the program.
【0090】[下位階層の呼出し]記述の際に、Roo
tBlkウインドウ内の下位階層を作成したときには、
図36に示すように、ツリービューにも反映されてい
く。ここに示す例では、”動作終了()”という下位階
層を作成する。When calling [lower hierarchy],
When the lower hierarchy in the tBlk window is created,
As shown in FIG. 36, it is also reflected on the tree view. In the example shown here, a lower hierarchy “operation end ()” is created.
【0091】[メッセージ送信端子の設定]図37に示
すように、メッセージ端子の設定は、BEGINと同じ
長楕円の中に表す。[Setting of Message Transmission Terminal] As shown in FIG. 37, the setting of the message terminal is represented by the same ellipse as BEGIN.
【0092】[アーク(矢印)の結線]図形セルの描画
が終了した後は、図38に示すように、セルとセルとの
間をアークで結線する。アーク結線の操作手順は、ま
ず、出力側のセル内にマウスを合わせて1回クリック
し、次に入力側のセル内に合わせて1回クリックする
と、アークが結線される。結線に失敗したときには、接
続点が赤色に変わるので、DELボタンで削除してから
再度、結線を行う。[Connection of Arc (Arrow)] After the drawing of the graphic cells is completed, as shown in FIG. 38, the cells are connected by arcs. The operation procedure of the arc connection is as follows. First, the mouse is placed in the cell on the output side and clicked once, and then, once in the cell on the input side, the arc is connected. If the connection fails, the connection point turns red, so delete it with the DEL button and reconnect.
【0093】処理の分岐/合流点を表すようなアーク同
士の結線は、それぞれの線が垂直または水平である場合
にのみ可能である。このときSiftキーを押しながら
アークを描くと、線が垂直または水平となる。PLAN
ET95(PLANET)では、全ての出力節からアー
クを出力する必要がある。The connection of the arcs, which represents the branch / confluence point of the processing, is possible only when the respective lines are vertical or horizontal. At this time, if an arc is drawn while pressing the Shift key, the line becomes vertical or horizontal. PLAN
In ET95 (PLANET), it is necessary to output arcs from all output nodes.
【0094】[メッセージ受信]図39に示すように、
メッセージ受信側となる”サブシステムのRootBl
k”を開き、記述する。ここに示す例では、サブシステ
ム2の方で受信するので、サブシステム2の”Root
Blk”を開く。メッセージ受信の記述は、シングルウ
エイトの中にメッセージ名と()に引数を書く。引数が
ない場合には()のみとなる。[Message Reception] As shown in FIG.
RootBl of the "subsystem that will be the message receiver"
k ”is opened and described. In the example shown here, since“ Subsystem 2 ”receives the data,“ Root ”of the subsystem 2 is used.
Blk "is opened. In the description of message reception, an argument is written in the message name and () in the single weight. If there is no argument, only () is displayed.
【0095】[コンパイル]プログラムの記述が全て終
了したら、ツールバーよりcompileを選択し、実
行する。コンパイルエラーがなく終了した場合には、図
40に示すように、出力ウインドウに”コンパイル終
了”のメッセージが出る。エラー発生などでコンパイル
が通らなかった場合には、出力ウインドウ内にエラー箇
所と内容が表示される。出力ウインドウ内のエラー表示
をダブルクリックすると、エラー表示箇所のウインドウ
が開く。[Compile] When the description of all the programs is completed, select "compile" from the toolbar and execute. When the processing is completed without a compile error, a message of "compilation completed" appears in the output window as shown in FIG. If compilation fails due to an error or the like, the location and content of the error are displayed in the output window. Double-click the error display in the output window to open the window of the error display location.
【0096】[デバッグ:EXEモードへの以降、シス
テムモニタ]コンパイル終了後、ツールバーより”EX
E(実行ボタン)”を選択する。すると、図41に示す
ように、システムモニタが表示され、各変数やI/Oの
状態が表示される。[Debug: System mode after execution in EXE mode] After compiling, "EX
E (execute button) ". Then, as shown in FIG. 41, the system monitor is displayed, and the status of each variable and I / O are displayed.
【0097】(デバッグ:Breakのポイントの設
定)ブレイクポイントの設定を行うには、図16に示す
ように、ツールバー内の”Break”を選択する。す
なわち、ブレイクポイントの設定するセルにマウスを合
わせ、クリックする。ブレークポイントを解除する場合
も設定と同様の手順で行う。(Debug: Setting Break Point) To set a break point, select "Break" in the toolbar as shown in FIG. That is, the mouse is moved to a cell where a breakpoint is to be set, and clicked. The procedure for setting a breakpoint is the same as that for setting a breakpoint.
【0098】(デバッグ:サブシステムの実行)プログ
ラムの実行を行うには、ツールバーより”Run”を選
択する。すると、図17に示すように、プログラムの実
行が開始され、出力ウインドウにメッセージが現れる。
プログラム中にブレイクポイントが設定されている場合
には、赤玉がその場所で停止し、プログラムが”一時停
止中”であることがわかる。一時停止中の赤玉を進める
には、赤玉が次に通過すべき箇所をクリックする(st
ep実行)。なお、指定されたファンクションキー(た
とえば、F5)を押すと、ブレイクポイントに関係な
く、プログラムを再スタートできる。(Debug: Execution of Subsystem) To execute a program, "Run" is selected from the toolbar. Then, as shown in FIG. 17, the execution of the program is started, and a message appears in the output window.
If a breakpoint is set during the program, the red ball will stop at that location, indicating that the program is "paused". To advance the suspended red ball, click on the point where the red ball should pass next (st
ep). When the designated function key (for example, F5) is pressed, the program can be restarted regardless of the break point.
【0099】(プログラムの強制終了)プログラムの実
行を停止する場合には、図18に示すように、ツールバ
ー内より”Abt(stop)”を選択する。(Forced termination of program) To stop the execution of the program, select "Abt (stop)" from the toolbar as shown in FIG.
【0100】[0100]
【発明の効果】以上説明したように、本発明に係るプロ
グラム作成装置では、再生されたプログラムのうちデバ
ッグすべき任意のブロックを指定し、指定されたブロッ
クおよび該ブロックの下位階層ブロックのプログラムの
みを実行するので、上位階層ブロックのプログラムにつ
いてまで、デバッガあるいは実行を行わせる必要がな
い。従って、上位階層のブロックの作成が済んでいない
ときでも、下位階層ブロックを走行させるためのダミー
プログラムが不要である。また、指定したブロックのみ
において、バグ修正あるいは実行確認が行われるので、
バグ修正あるいは実行確認に手間がかからない。さら
に、上位階層のブロックが存在しなくても、個々の下位
階層のブロックのみについて、バグ修正あるいは実行確
認をできるということは、大規模で複雑な機械制御プロ
グラムを作成するのに適している。すなわち、大規模で
複雑な機械制御プログラムを作成する際には、複数人が
分担してプログラミングを行い、それを最後に結合して
から総合デバッグする方法が採用されているが、本形態
のプログラム作成装置では、上位階層のブロックが存在
しなくても、個々の下位階層のブロックのみについてバ
グ修正あるいは実行確認をできるので、これらを終えて
から、個々のブロックを結合することができる。As described above, in the program creating apparatus according to the present invention, an arbitrary block to be debugged among the reproduced programs is designated, and only the designated block and the program of the lower hierarchical block of the designated block are designated. Is executed, there is no need to execute a debugger or execution even for the program in the upper hierarchical block. Therefore, a dummy program for running the lower hierarchical block is unnecessary even when the upper hierarchical block has not been created. Also, bug fixes or execution confirmations are performed only on the specified blocks,
There is no need to fix bugs or confirm execution. Further, the ability to correct a bug or confirm the execution of only the individual lower-layer blocks even if there is no upper-layer block is suitable for creating a large-scale and complicated machine control program. In other words, when creating a large-scale and complicated machine control program, a method is employed in which a plurality of persons share programming and perform final debugging after combining the programs. Even if there is no block in the upper layer, the creation device can correct a bug or confirm execution of only the block in each lower layer. Therefore, after completing these, individual blocks can be combined.
【図1】本発明を適用したプログラム作成装置における
プロジェクトおよびサブシステムを説明するための説明
図である。FIG. 1 is an explanatory diagram for explaining a project and a subsystem in a program creation device to which the present invention is applied.
【図2】図1に示すサブシステム間で行うメッセージ通
信の説明図である。FIG. 2 is an explanatory diagram of message communication performed between subsystems shown in FIG. 1;
【図3】図1に示す制御盤(サブシステム)のルートブ
ロックを示す説明図である。FIG. 3 is an explanatory diagram showing a route block of a control panel (subsystem) shown in FIG. 1;
【図4】図1に示す給材ユニット(サブシステム)のル
ートブロックを示す説明図である。FIG. 4 is an explanatory diagram illustrating a route block of the material supply unit (sub system) illustrated in FIG. 1;
【図5】図1に示す組み込みユニット(サブシステム)
のルートブロックを示す説明図である。FIG. 5 is an installation unit (subsystem) shown in FIG. 1;
FIG. 4 is an explanatory diagram showing a route block of FIG.
【図6】本発明を適用したプログラム作成装置における
ブロックの階層化を示す説明図である。FIG. 6 is an explanatory diagram showing hierarchization of blocks in a program creation device to which the present invention is applied.
【図7】本発明を適用したプログラム作成装置における
変数の取扱いを示す説明図である。FIG. 7 is an explanatory diagram showing handling of variables in a program creation device to which the present invention is applied.
【図8】本発明を適用したプログラム作成装置で作成し
たプログラムの一例を示す説明図である。FIG. 8 is an explanatory diagram showing an example of a program created by a program creating apparatus to which the present invention is applied.
【図9】本発明を適用したプログラム作成装置で作成し
たプログラムにおいて、別のブロックを表示させた状態
を示す説明図である。FIG. 9 is an explanatory diagram showing a state where another block is displayed in a program created by the program creating apparatus to which the present invention is applied.
【図10】図9に示すプログラムにおいて、下位階層ブ
ロックを手続き型言語で作成した例を示す説明図であ
る。FIG. 10 is an explanatory diagram showing an example in which lower-level blocks are created in a procedural language in the program shown in FIG. 9;
【図11】本発明を適用したプログラム作成装置で、図
形パターンを用いて作成したプログラムと、その下位階
層プログラムを手続き型言語を用いて作成したプログラ
ムとを連係、編集するための構成を示すブロック図であ
る。FIG. 11 is a block diagram showing a configuration for linking and editing a program created by using a graphic pattern and a program created by using a procedural language as a lower layer program in the program creating apparatus to which the present invention is applied. FIG.
【図12】ブロックのプロパティを設定する例を示す図
である。FIG. 12 is a diagram illustrating an example of setting a property of a block.
【図13】本発明を適用したプログラム作成装置で、図
形パターンを用いて作成したプログラムと、その下位階
層プログラムを手続き型言語を用いて作成したプログラ
ムとを連係、編集するための別の構成を示すブロック図
である。FIG. 13 shows another configuration for linking and editing a program created by using a graphic pattern and a program created by using a procedural language as a lower layer program in the program creating apparatus to which the present invention is applied. FIG.
【図14】本発明を適用したプログラム作成装置の異な
るシステムの概要を示すブロック図である。FIG. 14 is a block diagram showing an outline of a different system of a program creating apparatus to which the present invention is applied.
【図15】本発明を適用したプログラム作成装置のさら
に異なるシステムの概要を示すブロック図である。FIG. 15 is a block diagram showing an outline of still another system of the program creating apparatus to which the present invention is applied.
【図16】本発明を適用したプログラム作成装置におけ
るブロックフレームの構成を示すブロック説明図であ
る。FIG. 16 is an explanatory block diagram showing a configuration of a block frame in a program creating apparatus to which the present invention is applied.
【図17】本発明を適用したプログラム作成装置におい
て、デバッグの実行を行うための操作を示す説明図であ
る。FIG. 17 is an explanatory diagram showing an operation for executing debugging in the program creation device to which the present invention is applied.
【図18】本発明を適用したプログラム作成装置におい
て、プログラムの強制終了するための操作を示す説明図
である。FIG. 18 is an explanatory diagram showing an operation for forcibly terminating a program in a program creating apparatus to which the present invention is applied.
【図19】本発明を適用したプログラム作成装置におけ
る新規プロジェクトの作成操作を示す説明図である。FIG. 19 is an explanatory diagram showing an operation for creating a new project in the program creating apparatus to which the present invention is applied.
【図20】本発明を適用したプログラム作成装置におい
てターゲット定義を行うためのウインドウを表示させる
操作を示す説明図である。FIG. 20 is an explanatory diagram showing an operation of displaying a window for defining a target in the program creation device to which the present invention is applied.
【図21】本発明を適用したプログラム作成装置におい
て、ウインドウ上でターゲット定義を行う操作を示す説
明図である。FIG. 21 is an explanatory diagram showing an operation of defining a target on a window in a program creation device to which the present invention is applied.
【図22】本発明を適用したプログラム作成装置におい
て、ウインドウ上でターゲット定義を行うためのターゲ
ットプロパティウインドウを示す説明図である。FIG. 22 is an explanatory diagram showing a target property window for performing a target definition on a window in the program creation device to which the present invention is applied.
【図23】本発明を適用したプログラム作成装置におい
て、ターゲット定義を行った後のウインドウを示す説明
図である。FIG. 23 is an explanatory diagram showing a window after target definition is performed in the program creation device to which the present invention is applied.
【図24】本発明を適用したプログラム作成装置におい
て、サブシステムを定義するためのウインドウを示す説
明図である。FIG. 24 is an explanatory diagram showing a window for defining a subsystem in the program creation device to which the present invention is applied.
【図25】本発明を適用したプログラム作成装置におい
て、サブシステムを定義する際のサブシステム作成モー
ドのウインドウの説明図である。FIG. 25 is an explanatory diagram of a subsystem creation mode window when a subsystem is defined in the program creation device to which the present invention is applied.
【図26】本発明を適用したプログラム作成装置におい
て、サブシステムを定義する際のサブシステムプロパテ
ィダイアログの説明図である。FIG. 26 is an explanatory diagram of a subsystem property dialog when defining a subsystem in the program creation device to which the present invention is applied.
【図27】本発明を適用したプログラム作成装置におい
て、1つのサブシステムを定義した後のウインドウの説
明図である。FIG. 27 is an explanatory diagram of a window after one subsystem is defined in the program creation device to which the present invention is applied.
【図28】本発明を適用したプログラム作成装置におい
て、2つのサブシステムを定義した後のウインドウの説
明図である。FIG. 28 is an explanatory diagram of a window after two subsystems are defined in the program creation device to which the present invention is applied.
【図29】本発明を適用したプログラム作成装置におい
て、メッセージ定義を行うための操作を示す説明図であ
る。FIG. 29 is an explanatory diagram showing an operation for defining a message in a program creation device to which the present invention is applied.
【図30】本発明を適用したプログラム作成装置におい
て、メッセージ定義を行うための操作を示す説明図であ
る。FIG. 30 is an explanatory diagram showing an operation for defining a message in the program creation device to which the present invention is applied.
【図31】本発明を適用したプログラム作成装置におい
て、メッセージ定義を行う際に表示されるメッセージプ
ロパティを示す説明図である。FIG. 31 is an explanatory diagram showing message properties displayed when defining a message in the program creation device to which the present invention is applied.
【図32】本発明を適用したプログラム作成装置におい
て、受信側サブシステムウインドウの説明図である。FIG. 32 is an explanatory diagram of a receiving-side subsystem window in the program creation device to which the present invention is applied.
【図33】本発明を適用したプログラム作成装置におい
て、送信側のメッセージタップ編集を選択するための操
作を示す説明図である。FIG. 33 is an explanatory diagram showing an operation for selecting message tap editing on the transmission side in the program creation device to which the present invention is applied.
【図34】本発明を適用したプログラム作成装置におい
て、I/Oラベルの設定を行うためのウインドウの説明
図である。FIG. 34 is an explanatory diagram of a window for setting an I / O label in the program creation device to which the present invention is applied.
【図35】本発明を適用したプログラム作成装置におい
て、ツールバーから入力したいセルのアイコンを選択し
てプログラムを記述していく様子を示す説明図である。FIG. 35 is an explanatory view showing a state in which a program is described by selecting an icon of a cell to be input from a toolbar in a program creating apparatus to which the present invention is applied.
【図36】本発明を適用したプログラム作成装置におい
て、下位階層を作成したときのツリービューを示す説明
図である。FIG. 36 is an explanatory diagram showing a tree view when a lower hierarchy is created in the program creation device to which the present invention is applied.
【図37】本発明を適用したプログラム作成装置におい
て、メッセージ端子の設定を行うためのウインドウの説
明図である。FIG. 37 is an explanatory diagram of a window for setting a message terminal in the program creation device to which the present invention is applied.
【図38】本発明を適用したプログラム作成装置におい
て、アーク(矢印)の結線方法を示す説明図である。FIG. 38 is an explanatory diagram showing a method of connecting arcs (arrows) in a program creation device to which the present invention is applied.
【図39】本発明を適用したプログラム作成装置におい
て、メッセージ受信の記述を行うための説明図である。FIG. 39 is an explanatory diagram for describing message reception in the program creation device to which the present invention is applied.
【図40】本発明を適用したプログラム作成装置におい
て、プログラムの記述後に行うコンパイル結果のメッセ
ージを示す説明図である。FIG. 40 is an explanatory diagram showing a message of a compile result performed after writing a program in the program creating apparatus to which the present invention is applied.
【図41】本発明を適用したプログラム作成装置におい
て、デバッグを行うための操作を示す説明図である。FIG. 41 is an explanatory diagram showing an operation for performing debugging in a program creation device to which the present invention is applied.
【図42】(A)、(B)、(C)はそれぞれ、ある処
理をフローチャートで表した説明図、プログラムを手続
き型言語で作成した例を示す説明図、およびプログラム
をプラネットで作成した例を示す説明図である。42 (A), 42 (B), and 42 (C) are an explanatory diagram showing a process in a flowchart, an explanatory diagram showing an example in which a program is created in a procedural language, and an example in which a program is created in a planet. FIG.
21 第1のプログラム作成手段(エディタ) 22、32 コンパイラ 31 第2のプログラム作成手段(エディタ) 34 インタプリタ 41 実行プログラム 50 ライブラリファイル 61 デバッガ 211、311 エディタ 212、312 ソースファイル 221 パーサ 222 ソータ 223 コードジェネレータ 224 リンカ 21 first program creating means (editor) 22, 32 compiler 31 second program creating means (editor) 34 interpreter 41 executable program 50 library file 61 debugger 211, 311 editor 212, 312 source file 221 parser 222 sorter 223 code generator 224 linker
フロントページの続き (72)発明者 金井 裕之 長野県諏訪市大和3丁目3番5号 セイコ ーエプソン株式会社内 Fターム(参考) 5B076 DD03 EC01 5H215 AA07 BB10 CC07 CX02 GG04 GG20 JJ14 5H220 AA05 BB12 CC07 CX02 DD10 EE08 JJ02 JJ12 JJ13 JJ29 JJ53 JJ60 KK08 LL04 Continued on the front page (72) Inventor Hiroyuki Kanai 3-3-5 Yamato, Suwa-shi, Nagano F-term in Seiko Epson Corporation (reference) 5B076 DD03 EC01 5H215 AA07 BB10 CC07 CX02 GG04 GG20 JJ14 5H220 AA05 BB12 CC07 CX02 DD10 EE08 JJ02 JJ12 JJ13 JJ29 JJ53 JJ60 KK08 LL04
Claims (2)
制御主体によって並列処理される各々のプログラムを、
各プログラム上で各ブロックが階層関係をもつように作
成するためのプログラム作成装置において、表示画面上
でプログラムをブロック毎に作成するプログラム作成手
段と、該プログラム作成手段により作成されたプログラ
ムをブロック毎に格納しておく格納手段と、作成された
プログラムをデバッグするためのデバッグ手段とを有
し、該デバッグ手段は、デバッグ時に、作成されたプロ
グラムをその作成時と同一の形態でブロック毎に再生表
示する再生表示手段と、再生されたプログラムのうちデ
バッグすべき任意のブロックを指定するブロック指定手
段と、該ブロック指定手段により指定されたブロックの
プログラム実行開始を指令する開始指令手段とを有する
ことを特徴とするプログラム作成装置。1. Each program, which is processed in parallel by at least one or more control entities on a network,
In a program creating apparatus for creating each block in each program so as to have a hierarchical relationship, a program creating means for creating a program for each block on a display screen, and a program created by the program creating means for each block. And debugging means for debugging the created program. The debugging means reproduces the created program for each block at the time of debugging in the same form as when the program was created. A display unit for displaying, a block designating unit for designating an arbitrary block to be debugged out of the reproduced program, and a start instruction unit for instructing a start of program execution of the block designated by the block designating unit A program creation device characterized by the above-mentioned.
手段は、各ブロック毎にプログラムを作成する際にいず
れか1つのブロック上において、該ブロックが属するプ
ログラム群内で共通使用可能な変数を宣言しておくこと
により、前記デバッグ手段は、指定したブロックの上位
階層のブロックについてプログラム実行することなく、
指定したブロックおよび当該ブロックの下位階層ブロッ
クについてのみプログラム実行できることを特徴とする
プログラム作成装置。2. The program creation means according to claim 1, wherein the program creation means declares, on one of the blocks, a variable that can be commonly used in a program group to which the block belongs when creating a program for each block. By doing so, the debugging means does not execute a program for a block in a higher layer of the designated block,
A program creating apparatus capable of executing a program only for a specified block and a lower hierarchical block of the block.
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP10280375A JP2000112737A (en) | 1998-10-01 | 1998-10-01 | Program generating device |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP10280375A JP2000112737A (en) | 1998-10-01 | 1998-10-01 | Program generating device |
Publications (1)
Publication Number | Publication Date |
---|---|
JP2000112737A true JP2000112737A (en) | 2000-04-21 |
Family
ID=17624148
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP10280375A Withdrawn JP2000112737A (en) | 1998-10-01 | 1998-10-01 | Program generating device |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP2000112737A (en) |
Cited By (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2002351509A (en) * | 2001-05-25 | 2002-12-06 | Mitsubishi Electric Corp | Programming tool and programming method |
JP2007011507A (en) * | 2005-06-28 | 2007-01-18 | Fuji Electric Holdings Co Ltd | Display method of program tree and program generation system |
CN100375955C (en) * | 2004-02-26 | 2008-03-19 | 三菱电机株式会社 | Program compiling device using computor |
JP2009282788A (en) * | 2008-05-22 | 2009-12-03 | Fuji Electric Systems Co Ltd | Software generation supporting device |
JP2010066846A (en) * | 2008-09-09 | 2010-03-25 | Meidensha Corp | Embedded software development support system, support method, and program |
US7757209B2 (en) | 2003-03-14 | 2010-07-13 | Omron Corporation | Display and edit device, display method and program product |
JP2011175482A (en) * | 2010-02-24 | 2011-09-08 | Nec Corp | Information processing apparatus, information processing method and program |
JP2011192085A (en) * | 2010-03-15 | 2011-09-29 | Omron Corp | Device for supporting development of plc |
JP2016154049A (en) * | 2008-09-29 | 2016-08-25 | フィッシャー−ローズマウント システムズ,インコーポレイテッド | Method and system for managing process control |
CN111954854A (en) * | 2018-05-31 | 2020-11-17 | 欧姆龙株式会社 | Support device and support program |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH04205423A (en) * | 1990-11-30 | 1992-07-27 | Seiko Epson Corp | Program forming device |
JPH07219810A (en) * | 1994-02-04 | 1995-08-18 | Canon Inc | Module testing method and device therefor |
-
1998
- 1998-10-01 JP JP10280375A patent/JP2000112737A/en not_active Withdrawn
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH04205423A (en) * | 1990-11-30 | 1992-07-27 | Seiko Epson Corp | Program forming device |
JPH07219810A (en) * | 1994-02-04 | 1995-08-18 | Canon Inc | Module testing method and device therefor |
Cited By (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2002351509A (en) * | 2001-05-25 | 2002-12-06 | Mitsubishi Electric Corp | Programming tool and programming method |
US7757209B2 (en) | 2003-03-14 | 2010-07-13 | Omron Corporation | Display and edit device, display method and program product |
CN100375955C (en) * | 2004-02-26 | 2008-03-19 | 三菱电机株式会社 | Program compiling device using computor |
JP2007011507A (en) * | 2005-06-28 | 2007-01-18 | Fuji Electric Holdings Co Ltd | Display method of program tree and program generation system |
JP2009282788A (en) * | 2008-05-22 | 2009-12-03 | Fuji Electric Systems Co Ltd | Software generation supporting device |
JP2010066846A (en) * | 2008-09-09 | 2010-03-25 | Meidensha Corp | Embedded software development support system, support method, and program |
JP2016154049A (en) * | 2008-09-29 | 2016-08-25 | フィッシャー−ローズマウント システムズ,インコーポレイテッド | Method and system for managing process control |
JP2011175482A (en) * | 2010-02-24 | 2011-09-08 | Nec Corp | Information processing apparatus, information processing method and program |
JP2011192085A (en) * | 2010-03-15 | 2011-09-29 | Omron Corp | Device for supporting development of plc |
CN111954854A (en) * | 2018-05-31 | 2020-11-17 | 欧姆龙株式会社 | Support device and support program |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US8856667B2 (en) | Graphical state machine based programming for a graphical user interface | |
JP3234077B2 (en) | Plant operation simulator and plant operation simulation method using artificial intelligence | |
US6275956B1 (en) | Integrated dynamic-visual parallel debugging apparatus and method thereof | |
US6369836B1 (en) | Cause effect diagram program | |
KR100314262B1 (en) | Method and apparatus for developing interactive computer program using multiple tools in graphic language technology process | |
US6026362A (en) | Tool and method for diagnosing and correcting errors in a computer program | |
US7543281B2 (en) | Disabling and conditionally compiling graphical code in a graphical program | |
US6173246B1 (en) | Method and system for a unified process automation software system | |
US20100058292A1 (en) | Automatically Correcting Problems Found During Programmatic Analysis of a Graphical Program | |
EP0869433A2 (en) | A test development system and method for software with a graphical user interface | |
CN103150249A (en) | Automatic testing method and system | |
US20050268173A1 (en) | Programmatically analyzing a graphical program by traversing objects in the graphical program | |
CN111708530A (en) | Industrial robot graphical programming system | |
JP2000112737A (en) | Program generating device | |
US4914567A (en) | Design system using visual language | |
JP2000112736A (en) | Program generating device | |
CN117234480B (en) | Ontology-based multi-programming language component specification and workflow system and use method | |
EP3035139A2 (en) | Systems and methods that facilitate management of add-on instruction generation, selection, and/or monitoring during execution | |
CN110442520B (en) | Cross debugging system and method based on PLC programming language | |
JPH04205423A (en) | Program forming device | |
EP0801348A1 (en) | Method of monitoring the operation of a computer | |
Lewis et al. | Code generators | |
CA1298915C (en) | Design system using visual language | |
Navarre et al. | An approach integrating two complementary model-based environments for the construction of multimodal interactive applications | |
JPH0950371A (en) | Device and method for program generation support |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20050426 |
|
A761 | Written withdrawal of application |
Free format text: JAPANESE INTERMEDIATE CODE: A761 Effective date: 20050614 |