JPS6393007A - Program type control method and apparatus for emulation of state diagram of equipment or process and for control of operating condition thereof - Google Patents

Program type control method and apparatus for emulation of state diagram of equipment or process and for control of operating condition thereof

Info

Publication number
JPS6393007A
JPS6393007A JP62138314A JP13831487A JPS6393007A JP S6393007 A JPS6393007 A JP S6393007A JP 62138314 A JP62138314 A JP 62138314A JP 13831487 A JP13831487 A JP 13831487A JP S6393007 A JPS6393007 A JP S6393007A
Authority
JP
Japan
Prior art keywords
program
state
active
block
blocks
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.)
Pending
Application number
JP62138314A
Other languages
Japanese (ja)
Inventor
デリク ワード
デイビッド ブライアン スチュワード
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Fisher and Paykel Appliances Ltd
Original Assignee
Fisher and Paykel Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Fisher and Paykel Ltd filed Critical Fisher and Paykel Ltd
Publication of JPS6393007A publication Critical patent/JPS6393007A/en
Pending legal-status Critical Current

Links

Abstract

(57)【要約】本公報は電子出願前の出願データであるた
め要約のデータは記録されません。
(57) [Abstract] This bulletin contains application data before electronic filing, so abstract data is not recorded.

Description

【発明の詳細な説明】 〔産業上の利用分野〕 本発明は装置またはプロセスの状態ダイヤグラムのエミ
ュレート用、および作動状態の制御用のプログラム式制
御装置、および該制御装置を使用る、方法に関る、。
DETAILED DESCRIPTION OF THE INVENTION [Industrial Application] The present invention relates to a programmable control device for emulating a state diagram of a device or process and for controlling operating conditions, and to a method of using the control device. Involved.

本発明による装置、方法2機械および/またはプロセス
の動作状態を制御る、有限状態のアプリケーションプロ
グラムを処理る、プログラマブル制御装置、方法として
用いることができる。
Apparatus and Method 2 According to the Invention Can be used as a programmable control apparatus and method for processing finite state application programs for controlling the operating state of machines and/or processes.

以下余白 〔従来技術、および発明が解決しようとる、問題点〕 1960年の初め頃、プログラマブル制御装置は種々な
工業用機械或いはプロセスの動作を制御る、ために電磁
リレーを用いたリレー制御システムに取って代るように
なった。これ等のプログラマブル制御装置は、リレー回
路を、これ等は実際にはコンピュータ内のプログラムで
あったが、備えているように設計された。これ等のプロ
グラマブル制御装置によりエミュレートされたリレー回
路の設計は、これ等の一般的な外観に由来して、ラグダ
イヤグラム(ladder diagram)と呼ばれ
た。これ等のラダダイヤグラムは、出力や動作が人力状
態或いは条件に直接依存る、組合わせ式の論理制御問題
の設計に優れた機能を発揮る、ものであった。しかしな
がら、制御動作が時間に依存る、シーケンシャルな制御
の場合、このラグダイヤグラム法はやっかいで、設計が
難しく、故障の発見は極度に大変であるという欠点があ
った。これ等の問題についてはロイド(Lloyd)に
よる[プログラマブル制御装置のグラフィカルファンク
ションチャートプログラミング」コントロール・エンジ
ニアリング(1985年8月)を参照されたい。
In the margins below [Prior Art and Problems to be Solved by the Invention] Around the beginning of the 1960s, programmable control devices were developed into relay control systems using electromagnetic relays to control the operation of various industrial machines or processes. It has come to take its place. These programmable controllers were designed to include relay circuits, which were actually programs in computers. The relay circuit designs emulated by these programmable controllers were called ladder diagrams because of their general appearance. These ladder diagrams have demonstrated excellent functionality in designing combinatorial logic control problems in which outputs and operations are directly dependent on human power states or conditions. However, in the case of sequential control where the control operation is time-dependent, the lag diagram method has the drawbacks of being cumbersome, difficult to design, and extremely difficult to discover failures. For a discussion of these issues, see Lloyd, "Graphical Function Chart Programming of Programmable Control Devices," Control Engineering (August 1985).

これ等のラグーダイヤグラムをエミュレートる、には、
プログラマはソフトウェアコマンドの形でプール式の長
いリストを配列している。各コマンドは内部或いは外部
信号を制御る、。このようなシステムにおけるデバッグ
或いは故障の発見には、普通は、予期されてない条件を
見出し、この条件を与える因子の幾つかの、或いは全て
の組合わせを直感的に逆探索しなければならなかった。
To emulate these Lagu diagrams,
Programmers are arranging long lists of pool expressions in the form of software commands. Each command controls an internal or external signal. Debugging or finding faults in such systems usually requires finding an unexpected condition and intuitively searching back for some or all combinations of factors that give rise to this condition. Ta.

また、このラダーダイヤグラムを用いた制御装置では、
予期できない条件の原因を決定る、ために系内の全ての
変化を記↑αしておかなければならないという欠点があ
った。この要件を満たすには異常な程大容量のメモリが
必要で、従って記憶したデータから必要なものを探すの
は非常に困難であった。
In addition, in a control device using this ladder diagram,
The drawback is that all changes in the system must be recorded in order to determine the cause of unpredictable conditions. Meeting this requirement required an unusually large amount of memory, making it extremely difficult to search for what was needed from the stored data.

更に、これ等のラグダイヤグラム式制御装置はプログラ
ムがやっかいであった。ラグダイヤグラムは、その性質
上、理解が困難であり、ラダダイヤグラムをエミュレー
トる、ソフトウェアのコマンドはラダダイヤグラムと同
じ論理およびシーケンスには従わないように構成されて
いた。ラダダイヤグラムに慣れていない機械、設計、お
よび製造技術者は彼等の機械或いはプロセスに用いる制
御システムを容易には開発できなかった、事実、これ等
の技術者は専門の制御技術者に頼って制御システムをプ
ログラムしなければならなかった。
Furthermore, these lag diagram control devices are cumbersome to program. Lag diagrams, by their very nature, are difficult to understand, and the software commands that emulate ladder diagrams have been structured so that they do not follow the same logic and sequence as ladder diagrams. Mechanical, design, and manufacturing engineers who were not familiar with ladder diagrams could not easily develop control systems for their machines or processes; in fact, these engineers relied on professional control engineers. The control system had to be programmed.

一方、プログラマブル制御装置を単純化る、努力の中で
、技術者が高水準言語を用いて「状態図」をエミュレー
トできるようなシステムが開発された。状態図というの
は、動作状態や、機械或いはプロセスにおける動作状態
のステータスを変化させる条件を図式で表わしたもので
ある。状態図を図の形で表わすと、接続円弧を持つ一連
のノードとして与えられる。この場合、それぞれのノー
ドは特定の動作状態を表わし、それぞれの接続円弧は、
状態のステータスを変化させる条件或いは遷移関数を表
わすものである。これ等の状態図は一般の技術者にとっ
て理解し易く、設計が容易である。しかしながら、これ
等の状態図をエミュレートる、システムはプログラムや
デバッグが難しく、また動作効率が非常に悪いので、マ
ルチタスク動作を適切に行うことができないという欠点
があった。
Meanwhile, in an effort to simplify programmable control devices, systems have been developed that allow engineers to emulate "state diagrams" using high-level languages. A state diagram is a graphical representation of an operating state or the conditions that change the status of an operating state in a machine or process. When represented in diagram form, a state diagram is given as a series of nodes with connecting arcs. In this case, each node represents a particular operating state, and each connecting arc is
It represents a condition or transition function that changes the status of a state. These state diagrams are easy to understand and design for the average engineer. However, systems that emulate these state diagrams are difficult to program and debug, and their operating efficiency is very low, so they cannot properly perform multitasking operations.

ドルモント (Drummond)の米国特許4,56
2,529にはかかるシステムの1例が示しである。即
ち、この特許では「状態論理変数」を用いて機械或いは
プロセスの動作状態を制御る、方法と装置について検討
している。「状態論理変数」は機械或いはプロセスのそ
れぞれの動作状態を独自に与えるものである。この「状
態論理変数」は、真か偽の2値の1つを与える。真は状
態がアクティブであることを意味し、偽はインアクティ
ブであることを意味る、。この方法によるドルモントの
システムの動作はラダダイヤグラム制御装置に非常に類
似しているが、若干の問題点があった。
Drummond US Patent 4,56
An example of such a system is shown in No. 2,529. That is, this patent discusses a method and apparatus for controlling the operating state of a machine or process using "state logic variables." A "state logic variable" uniquely gives the operating state of each machine or process. This "state logic variable" gives one of two values: true or false. True means the state is active, false means inactive. The operation of Dormont's system in this manner was very similar to a ladder diagram controller, but there were some problems.

先ず、全有限状態のアプリケーションプログラムは、ド
ルモントのシステムが「状rb IIN理変数」を適切
に処理る、ためには、クリティカルに走査される必要が
ある。機械或いはプロセスの特定の動作状態のステータ
スを評価る、には、ドルモントのシステムは、どの状態
論理変数が現在アクティブであるかを決定る、ためアプ
リケーションプログラム中の各ステートメントの評価を
必要とした。第2に、システム内の予測できない変化の
原因を決定る、ためにはシステムの全ての変化を記憶し
ておく必要があった。このため、メモリの大部分に大量
の情報を格納しなければならず、従って障害を発見でき
るように直ぐわかるパターンとして記憶しておくことが
できなかった。
First, all finite-state application programs need to be critically scanned in order for Dormont's system to properly handle the RB IIN physical variables. To evaluate the status of a particular operating state of a machine or process, Dormont's system required evaluation of each statement in the application program to determine which state logic variables were currently active. Second, it was necessary to remember all changes in the system in order to determine the causes of unpredictable changes in the system. For this reason, a large amount of information had to be stored in a large portion of the memory, and therefore it was not possible to store it as an easily recognizable pattern so that failures could be discovered.

第3に、状態図をエミュレートる、ようにドルモントの
制御装置をプログラムる、ことは面倒なプロセスであっ
た。ドルモントの特許に与えられた言語は状態図をプロ
グラムコードに容易に変換できない構成であった。これ
は、「状態論理変数」のステータスを与える条件ステー
トメントをプログラムコードの特定領域にまとめること
ができないことによるものであった。更に、コード中の
ほぼ全てのステートメントは、条件が存在る、か否か、
或いは動作が実行されるべきか否かを決定る、ために、
「状態論理変数」の評価を必要とした。
Third, programming Dormont's controller to emulate the state diagram was a tedious process. The language given to Dormont's patent was structured so that state diagrams could not be easily translated into program code. This was due to the inability to group conditional statements that give the status of "state logic variables" into specific areas of program code. Furthermore, almost every statement in the code states whether a condition exists or not.
or to determine whether an action should be performed;
Required evaluation of "state logical variables".

従って、H単な機能を行うだけでも多くの余分のコード
を用いる必要があった。
Therefore, it was necessary to use a lot of extra code just to perform a simple function.

最後に、状態論理変数のステータスを評価る、ためには
有限状態アプリケージジンプログラムにおける全てのス
テートメントを走査しなければならないので、システム
の動作効率は非常に悪かった。このため、システムをマ
ルチタスクで動作させることはほぼ不可能であった。即
ち、一連の動作タスクの間を迅速に切換えるには時間が
不足であった。更に、ドルモントには多重動作タスクの
トラックを同時に制御る、のに適した方法或いは構造は
示してない。
Finally, the operating efficiency of the system was very poor because evaluating the status of state logic variables required scanning every statement in a finite state application program. For this reason, it has been almost impossible to operate the system with multitasking. That is, there was insufficient time to quickly switch between a series of operational tasks. Further, Dormont does not provide a method or structure suitable for controlling multiple operational task tracks simultaneously.

本発明は、かかる状況に鑑み、以上の従来の方法の欠点
を低減或いは排除し、制御、製造、設計に従事る、多く
の技術者が迅速且つ自由に使用できる制御方法と装置を
提供る、ことを目的とる、。
In view of this situation, the present invention reduces or eliminates the drawbacks of the above-described conventional methods, and provides a control method and device that can be quickly and freely used by many engineers engaged in control, manufacturing, and design. The aim is to.

以下余白 〔用語の説明〕 次に、本明細書に記載した本発明の性質を十分理解でき
るようにる、ため用語について予め説明しておく。
Margin below [Explanation of Terms] Next, terms will be explained in advance so that the nature of the present invention described in this specification can be fully understood.

1、「動作状態」は、機械或いはプロセス中の有限な時
間区間にわたって存在る、条件や動作の特定の組合わせ
を意味る、。機械或いはプロセスに関る、信号或いは値
のサブセットだけが特別に定義される。機械或いはプロ
セスの「動作状態」とは機械或いはプロセスにより現在
実行されている特定のタスク或いはタスクのサブセット
である。
1. "Operating state" means a particular combination of conditions and operations that exist over a finite time interval in a machine or process. Only a subset of signals or values that are relevant to a machine or process are specifically defined. The "operating state" of a machine or process is the particular task or subset of tasks currently being performed by the machine or process.

2、「制御装置」とは、「動作状態」を識別る、手段を
含む、プロセス或いは機械或いはアクティビティにわた
って制御を行う装置を意味る、。
2. "Control device" means a device that provides control over a process or machine or activity, including means for identifying "operating conditions".

このため、この制御装置は機械或いはプロセスの諸値お
よび状態の変化を常に知ってなければならない。
For this reason, the control device must be constantly aware of changes in machine or process values and conditions.

3、「プログラム状態」とは「動作状態」の評価、維持
、制御に用いるプログラムコードの1つ以上のステート
メントの特定のブロックを意味る、。
3. "Program state" means a particular block of one or more statements of program code used to evaluate, maintain, and control "operating state."

4、用語「機械」或いは「プロセス」とは1つの特定の
動作状態から次の動作状態に実時間で進むシステムを意
味る、。次の動作状態は常に制御装置からの信号により
制御されるが、このような信号は、システムの動作モー
ドに条件の組が発生る、までは、発生しない。
4. The term "machine" or "process" means a system that progresses in real time from one particular operating state to the next. The next operating state is always controlled by a signal from the controller, but such a signal is not generated until a set of conditions occur in the operating mode of the system.

5、用語「マルチタスク動作」とは、全てのプログラム
が互いに関係して同時に実行状態にあるように1台の制
御装置で個別のプログラムを非同期式に実行る、方法を
意味る、。
5. The term "multitasking operation" refers to a method of executing individual programs asynchronously on one control device such that all programs are in execution at the same time in relation to each other.

〔問題点を解決る、ための手段〕[Means for solving problems]

本発明においては代表的な形態の1つとして、1つ以上
の状態図をエミュレートし、且つ少なくとも1つの、機
械或いはプロセスの動作状態を制御る、プログラム式制
御装置であって、該装置は、(a)複数のステートメン
トのブロックからなるアプリケーションプログラムを実
行る、手段であって、該ステートメントのブロックの各
々が前記機械−或いはプロセスの動作状態の1つに対応
し、更に前記ブロックの少なくとも幾つかが、前記ブロ
ックの次のものの実行を規定る、1つ以上の複合ステー
トメントと前記機械或いはプロセスによる対応る、動作
状態時に取られる動作とから構成され、前記ブロックの
少なくとも若干のものがその他のブロックの場合とは異
なる前記の取られる動作を規定し、前記アプリケーショ
ンプログラムが前記1つ以上の状態図の各々に対応る、
1つ以上のプログラムループからなり、該プログラムル
ープの各々が前記ブロックの少なくとも1つから構成さ
れてなる前記アプリケーションプログラムの実行手段、
および、 (b)前記プログラムループの少なくとも1つがその実
行のためにアクティブになることを可能にる、手段と、
前記ブロックの1つだけが、前記少なくともアクティブ
プログラムループの任意の1時間点においてアクティブ
になって実行されることを可能にる、手段、を具備し、 (c)前記実行手段は、前記アクティブプログラムルー
プ内の前記アクティブブロックの前記複合ステートメン
トを実行して、前記ブロックの実行シーケンスを制御し
且つ前記機械或いはプロセスの前記動作を制御る、手段
を具備る、、プログラム式制御装置が提供される。
One representative form of the present invention is a programmable control device that emulates one or more state diagrams and controls at least one operating state of a machine or process, the device comprising: (a) means for executing an application program consisting of a plurality of blocks of statements, each of the blocks of statements corresponding to one of the operating states of the machine or process, and further comprising at least some of the blocks; consists of one or more compound statements and corresponding actions to be taken by the machine or process when in an active state, specifying the execution of the next of said blocks, and at least some of said blocks are defining said actions to be taken differently than in the case of a block, said application program corresponding to each of said one or more state diagrams;
means for executing the application program, comprising one or more program loops, each of the program loops comprising at least one of the blocks;
and (b) means for enabling at least one of said program loops to be active for execution thereof;
(c) means for enabling only one of said blocks to be active and executed at any one time point in said at least active program loop; A programmable controller is provided comprising means for executing the compound statement of the active block in a loop to control the sequence of execution of the blocks and the operation of the machine or process.

本発明においては代表的な形態の他の1つとして、1つ
以上の状態図をエミュレートし、且つ少なくとも1つの
機械或いはプロセスの動作状態を制御る、プログラム式
制御装置を使用る、方法であって、 (a)複数のステートメントのブロックからなるアプリ
ケーションプログラムを実行る、ステップであって、前
記ステートメントのブロックの各々が前記機械或いはプ
ロセスの動作状態の1つに対応し、そして前記ブロック
の少なくとも若干のものが次の前記被実行ブロックと、
機械或いはプロセスにより対応る、動作状態時に取られ
る動作とを規定る、1つ以上の複合ステートメントから
なり、前記ブロックの少なくとも若干のものがその他の
ブロックとは異なる前記の取られる動作を規定し、前記
アプリケーションプログラムは少なくとも前記ブロック
の1つからなるプログラムループにより前記1つ以上の
状態図の各々を代表してなるステップ、 (b) 前記プログラムループの少なくとも1つがアク
ティブになって実行されることを可能にし、且つ前記ブ
ロックのうちの1つだけが、前記少なくとも1つのアク
ティブプログラムループの任意の1時間点においてアク
ティブになって実行されることを可能にる、ステップ、
そして、(c)前記アクティブプログラムループの各々
のうちの前記アクティブブロックの各々を実行して、前
記ブロックの実行シーケンスを制jnシ且つそれにより
前記機械或いはプロセスの動作を制御(lる、実行ステ
ップを具備る、、プログラム式制御装置を使用る、方法
が提供される。
Another exemplary embodiment of the present invention is a method of using a programmable controller to emulate one or more state diagrams and to control the operating state of at least one machine or process. (a) executing an application program consisting of a plurality of blocks of statements, each of said blocks of statements corresponding to one of the operating states of said machine or process; Some of the following are the executed blocks,
consisting of one or more compound statements specifying an action to be taken during a corresponding operating state by a machine or process, at least some of said blocks specifying said action to be taken different from other blocks; said application program represents each of said one or more state diagrams by a program loop comprising at least one of said blocks; (b) at least one of said program loops is activated and executed; enabling and allowing only one of said blocks to be active and executed at any one time point of said at least one active program loop;
and (c) executing each of said active blocks of each of said active program loops to control the execution sequence of said blocks and thereby control the operation of said machine or process. A method of using a programmable controller is provided.

本発明の好ましい実施例を簡単にまとめると、少なくと
も1つの機械或いはプロセスの動作状態を制御し、1つ
以上の状態図をエミュレートる、プログラム式制御装置
が提供される。この制御装置は複数のステートメントの
ブロックからなるアプリケーション式プログラムを実行
る、。これ等のステートメントのブロックの各々は、実
行時には、機械或いはプロセスの動作状態の1つに対応
る、プログラム状態である。これ等のステートメントの
各ブロックは次の被実行ステートメントのブロックと、
機械或いはプロセスによる対応る、動作状態の間に取ら
れる動作を規定る、。
Briefly summarizing the preferred embodiment of the present invention, a programmable controller is provided that controls the operating state of at least one machine or process and emulates one or more state diagrams. This controller executes an application-style program consisting of blocks of statements. Each of these blocks of statements, when executed, is a program state that corresponds to one of the operating states of the machine or process. Each block of these statements includes the next block of executed statements, and
Defining the actions taken during a corresponding operating state by a machine or process.

プログラム状態は1つ以上のプログラムループに編成さ
れ、これ等のループは全機械或いはプロセスに対る、或
いは機械或いはプロセスのサブセクションに対る、独立
した順次制御配列を与える。
Program states are organized into one or more program loops that provide independent sequential control over the entire machine or process, or over subsections of the machine or process.

各プログラムループは状態図をエミュレートる、。Each program loop emulates a state diagram.

この制御装置は1つ以上のプログラムループを同時に起
動できるが、各プログラムループはその内のプログラム
状態の1つをアクティブにできるだけである。アクティ
ブなプログラムループのトラックおよび関連る、アクテ
ィブプログラム状態のトラックを維持る、ため、各アク
ティブプログラムループに対してポインタが設けられる
。このポインタはアクティブプログラム状態の識別子或
いはアクティブプログラム状態の開始アドレスを格納る
、。更にこのポインタは、特定のプログラム状態がどの
アクティブプログラムループ内にあるかを示す識別子を
具備している。タスクテーブルは制御装置が幾つかのア
クティブプログラムループを非同期式に行うことを可能
にし、またアクティブプログラムループの実行シーケン
スを決定る、。このタスクテーブルは更に、プログラム
ループおよびプログラム状態が、各プログラム状態が進
行る、順序とシーケンスでアクティブであるトラックを
維持る、ように構成される。
The controller can activate more than one program loop at the same time, but each program loop can only activate one of its program states. A pointer is provided for each active program loop to maintain track of active program loops and associated active program states. This pointer stores the identifier of the active program state or the starting address of the active program state. Additionally, this pointer includes an identifier indicating within which active program loop a particular program state is located. The task table allows the controller to perform several active program loops asynchronously and also determines the sequence of execution of the active program loops. The task table is further configured to maintain a track of program loops and program states that are active in the order and sequence in which each program state progresses.

また、有限状態のアプリケーションプログラムの「デバ
ッグ」を容易にる、方法と装置が設けられる。更に、ア
クティブプログラム状態の各々のアクティビティに関る
、情報を記録る、手段が設けられる。特に、制御装置は
各プログラム状態の順序と発生ヒストリ、およびプログ
ラム状態の各発生に応じた1つ以上の条件ををトレース
る、。
Also provided are methods and apparatus that facilitate "debugging" finite state application programs. Furthermore, means are provided for recording information regarding the activity of each active program state. In particular, the controller traces the order and occurrence history of each program state and one or more conditions responsive to each occurrence of the program state.

また、プログラマ−による記録情報の評価を可能にる、
表示手段も設けられる。
It also enables programmers to evaluate recorded information.
Display means are also provided.

特に重要なのは、本発明は、制御、製造、或いは設計技
術者が状態図を表わす高水準アプリケーションプログラ
ムをより自由に設計る、ことを可能にる、点にある。ま
た、本発明は設計に関して特別な利点を与える。即ち、
プログラマは特定の動作状態に関係る、全てのプログラ
ムステートメントをステートメントのプログラムコード
或いはブロックの連続セグメントに編成る、ことができ
、またステートメントのいずれも他の動作状態には関係
しないように構成される。このようにして、プログラマ
は各動作状態に依存る、各種の条件の全てを他の動作状
態を気にせずに区画る、ことができる。この手順は「状
態論理変数」を除去る、もので、編成、構造化したフォ
ーマントでのプログラミング手法を容易にる、。更に、
全体にわたる状態図の構造を表わすプログラムループは
、区画したコードを、「コンテイショナル・ゴー・ツー
・ステートメント」などと共に、単に結合る、ことによ
り容易にコードに設計される。
Of particular importance, the present invention allows control, manufacturing, or design engineers more freedom in designing high-level application programs that represent state diagrams. The invention also offers special design advantages. That is,
A programmer can organize all program statements that pertain to a particular operating state into a contiguous segment of program code or block of statements, and so that none of the statements pertains to any other operating state. . In this way, the programmer can partition all of the various conditions that depend on each operating state without worrying about other operating states. This procedure eliminates ``state logical variables'' and facilitates programming techniques in organized, structured formants. Furthermore,
Program loops that represent the structure of an overall state diagram are easily designed into code by simply combining partitioned code, such as with "conversional go-to statements."

本発明は、アプリケーションプログラムにおける全ての
ステートメントを、特定の状態の動作の制御が必要にな
る毎に、走査る、必要がないので、従来のものに比べて
より効率的に動作る、。事実、動作状態に関係る、特定
のプログラム状態のステートメントだけが走査される。
The present invention operates more efficiently than conventional methods because it is not necessary to scan all the statements in an application program every time it is necessary to control the operation of a particular state. In fact, only statements of a particular program state that are relevant to the operating state are scanned.

この手法によれば、制御装置は非常に迅速に処理動作を
行うことができ、また本発明が多くのタスクを同時に、
より効率的に処理る、ことを可能にる、。更に、本発明
の好ましい実施例では、同時に行われるタスクの多くの
シーケンスのトラックを維持し、そして/またはタスク
の各シーケンスが行われる順序を決定る、テスクテーブ
ルが設けられる。
This approach allows the controller to perform processing operations very quickly and allows the invention to perform many tasks simultaneously.
Enables more efficient processing. Further, in preferred embodiments of the invention, a task table is provided that keeps track of many sequences of tasks that are performed simultaneously and/or determines the order in which each sequence of tasks is performed.

最後に、アプリケーションプログラムはプログラム状態
と共に設計されるので、プログラム中の予測されない条
件の正確な位置決めが非常に容易になる。また、各プロ
グラム状態の発生を記録し、1つのプログラム状態から
他のものへと生じる遷移に応じた1つ以上の条件を記録
る、手段が設けられる。これにより解析者は、プログラ
ム状態の各々の発生の表示を解析したり、遷移を生じさ
せる1つ以上の条件を解析る、ことにより、予測されな
い条件の位置と原因を迅速に決定る、ことが可能になる
Finally, since the application program is designed with program state, it is much easier to accurately locate unexpected conditions in the program. Means are also provided for recording the occurrence of each program state and for recording one or more conditions depending on the transition that occurs from one program state to another. This allows the analyst to quickly determine the location and cause of unexpected conditions by analyzing the representation of each occurrence of a program state, and by analyzing the condition or conditions that give rise to a transition. It becomes possible.

〔実施例〕〔Example〕

第1図は状態図をエミュレートる、プログラム式制御装
置10を形成る、プログラマブル制御装置とコンピュー
タプログラムを示したものである。
FIG. 1 illustrates a programmable controller and computer program forming a programmable controller 10 that emulates a state diagram.

このプログラム式制御装置10のメモリ部分10Aの1
4には有限状態アプリケーションプログラムが格納され
る。この有限状態アプリケーションプログラム(「アプ
リケーションプログラム」)の数学的、論理的機能は中
央処理装置(rcPUJ)70により実行される。タス
クテーブル或いはポインタ68の組はアクティブプログ
ラムループのトラックを維持る、。トレーステーブル7
2はアプリケーションプログラムのアクティビティの一
時ヒストリを収容る、。上記プログラマブル制御装置は
、ユーザがアプリケーションプログラム中の誤りを容易
に位置づけることを可能にる、デバッグモニタ74を具
備している。上記トレーステーブル72、タスクテーブ
ル68、およびデバッグモニタ74は全てメモリIOA
に格納される。プログラマブル制御装置の多くの特徴を
制御る、他の動作システムソフトウェアが76に格納さ
れる。
1 of the memory portion 10A of this programmable control device 10
4 stores a finite state application program. The mathematical and logical functions of this finite state application program (“application program”) are performed by a central processing unit (rcPUJ) 70. A set of task tables or pointers 68 keeps track of active program loops. Trace table 7
2 contains a temporary history of the application program's activities. The programmable controller includes a debug monitor 74 that allows the user to easily locate errors in the application program. The trace table 72, task table 68, and debug monitor 74 are all stored in the memory IOA.
is stored in Other operating system software is stored at 76 that controls many features of the programmable controller.

端子80が設けられ、これは、制御装置のユーザがアプ
リケーションプログラムをプログラムし、端子80のシ
ステムをデバッグる、ことを可能にる、。
A terminal 80 is provided, which allows the user of the control device to program application programs and debug the system at terminal 80.

第1図はエレベータ12などの機械或いはプロセスに接
続されたプログラム式制御装置10を示している。この
プログラム式制御装置10はエレベータ12の動作を制
御る、ため、14のアプリケーションプログラムをエミ
ュレ−1・る、。有限状態アプリケーションプログラム
は状態図を代表る、高水準プログラムである(第2図(
a)参照)。
FIG. 1 shows a programmable controller 10 connected to a machine or process, such as an elevator 12. This programmable control device 10 emulates 14 application programs to control the operation of the elevator 12. A finite state application program is a high-level program that represents a state diagram (see Figure 2 (
a)).

これ等の状態図は特定の被制御機械或いはプロセスの動
作状態を開式化したものである。プログラマは状態図に
より表わされた機械或いはプロセスを、先ず有限状態ア
プリケーションプログラムを計計し、次にこのプログラ
ムを制御装置で処理して、機械或いはプロセスが行う各
タスク或いは動作の発生の順序とシーケンスを制御る、
ことにより、エミュレートし、制御る、。
These state diagrams are open representations of the operating state of a particular controlled machine or process. A programmer can program a machine or process represented by a state diagram by first programming a finite-state application program and then processing this program with a control device to determine the order in which each task or operation performed by the machine or process occurs. control the sequence,
By emulating and controlling,.

このプログラム式制御装置10はエレベータ12の動作
のモニタ、評価、制御を簡単な用途として実施る、。エ
レベータ12はモータ16、プーリ20、およびエレベ
ータコンパートメント18により構成される。このエレ
ベータの基本的な原理は、エレベータの1つの動作状態
だけが任意の時間点で付勢できるという、ことにある。
The programmable control device 10 has a simple purpose of monitoring, evaluating and controlling the operation of the elevator 12. Elevator 12 is comprised of motor 16, pulley 20, and elevator compartment 18. The basic principle of this elevator is that only one operating state of the elevator can be activated at any time.

このエレベータの動作状態はrstoppedJ、rG
oingupJ、或いはrGotng downJであ
る。
The operating status of this elevator is rstoppedJ, rG
oingupJ or rGotng downJ.

エレベータコンパートメント18内のボタン22により
、エレベータは1つの動作状態から他の動作状態に変化
させる。例えば、rUpJボタンを閉路し、r Dow
n Jボタンを開路る、と、エレベータのコンパートメ
ント18が上昇る、。
A button 22 in the elevator compartment 18 causes the elevator to change from one operating state to another. For example, close the rUpJ button and press rDown
n When the J button is opened, the elevator compartment 18 will rise.

「Down Jボタンを閉路し、rUpjボタンを開路
る、と、エレベータのコンパートメント18は下降る、
。rUpJボタンとr Down Jボタンを共に開路
る、と、或いはrUpJボタンとrDownJボタンを
共に閉路る、と、エレベータのコンパートメント18は
停止る、。第2図(a)は、1つの状態から他の状態へ
変化した時の動作状態と条件の状態図或いは図式を示し
たものである。特に、状態図は一連のノード24 、2
6、および28とこれ等を接続る、円弧30 、32 
、34および36からなる。各ノードは特定の動作状態
を与え、各接続円弧は特定状態のステータスを変化させ
る条件或いは遷移機能を表わす。
``If you close the Down J button and open the rUpj button, the elevator compartment 18 will descend.
. When the rUpJ and rDownJ buttons are both opened, or when the rUpJ and rDownJ buttons are both closed, the elevator compartment 18 stops. FIG. 2(a) shows a state diagram or diagram of operating states and conditions when changing from one state to another. In particular, the state diagram is a series of nodes 24, 2
Arcs 30 and 32 connecting these with 6 and 28
, 34 and 36. Each node provides a particular operating state, and each connecting arc represents a condition or transition function that changes the status of the particular state.

特に、第2図(a)の状態図は、それぞれrGoing
 upJ、rstopped J 、およびrGoin
gdown Jの動作状態を代表る、ノード24 、2
6、および28を有る、。状態のステータスを与える条
件はノード間の円弧コネクタ30 、32 、34、お
よび36である。各円弧は、それ自身、条件と処置の組
を代表る、。
In particular, the state diagram in FIG. 2(a) shows that rGoing
upJ, rstoppedJ, and rGoin
Nodes 24 and 2 represent the operational state of gdown J.
6, and 28. The conditions that give the status of a state are the arc connectors 30, 32, 34, and 36 between the nodes. Each arc itself represents a condition and treatment set.

rUpJボタンをオフにし、r Down Jボタンを
オンにる、と、エレベータ18は下降る、。
If you turn off the rUpJ button and turn on the rDownJ button, the elevator 18 will descend.

円弧30はスイッチの条件と動作38を有る、。Arc 30 has switch conditions and operations 38.

r rUpJボタンとr Down Jボタンを共にオ
ンにし、或いはオフにる、と、エレベータコンパートメ
ント18は停止る、。」 条件および動作の残りは第2a図から明らかになる。
When the rUpJ and rDownJ buttons are turned on or off together, the elevator compartment 18 stops. ” The remainder of the conditions and operation become clear from FIG. 2a.

第2図(a)の状態図を表わすアプリケーションプログ
ラムは次のようになる。
An application program representing the state diagram of FIG. 2(a) is as follows.

rGoing upJ。rGoing upJ.

rUpJモータをオン。Turn on the rUpJ motor.

rUpJボタンをオフにし、r Down Jボタンを
オフにる、か、rUpJボタンをオンにし、r Dow
n Jボタンをオンにしたら、rstoppedJに進
む。
Turn off the rUpJ button and turn off the r Down J button, or turn on the rUpJ button and press r Down
n If you turn on the J button, proceed to rstoppedJ.

rStopped J。rStopped J.

Break 0ne rUpJボタンがオンでr Down Jボタンがオフ
の時はrGoing UpJに進む。
If the Break 0ne rUpJ button is on and the rDown J button is off, proceed to rGoing UpJ.

rUpJボタンがオフでr Down Jボタンがオン
の時はrGoing DownJに進む。
If the rUpJ button is off and the rDownJ button is on, proceed to rGoing DownJ.

rGoing DownJ rDownJモータオン rup」ボタンがオフでrDownJボタンがオフ、或
いはrUpJボタンがオンでr Doivn Jボタン
がオンの時は、rStopped Jに進む。
When the rGoing DownJ rDownJ motor on rup button is off and the rDownJ button is off, or when the rUpJ button is on and the rDoivn J button is on, proceed to rStopped J.

上記のステートメントの3つのブロックはプログラム状
態と呼ばれ、各ブロックはエレベータ12の特定の動作
状態および状態図中の特定のノードに対応る、(第2図
(a))。プログラム状態の各々は状態限定ステートメ
ント、rGoing upJ 。
The three blocks of statements above are called program states, each block corresponding to a particular operating state of the elevator 12 and a particular node in the state diagram (FIG. 2(a)). Each of the program states has a state-limiting statement, rGoing upJ.

rStopped J 、或いはrGoing Dow
nJからなり、これは制御装置に1つのプログラム状態
の終了と新しいプログラム状態の開始を知らせる。上記
の状態限定ステートメントは、何もないか、1つ以上の
複合ステートメントからなる一連のステートメントを伴
い、これ等のステートメントは現在処理中の、或いはア
クティブなプログラム状態から他のプログラム状態への
遷移を惹起し得るものである。複合ステートメントは条
件部分と動作部分により構成される。条件部分が満足さ
れると、動作部分が実行され、そして新しいプログラム
状態への遷移が生じる。換言る、と、複合ステートメン
トは、次の被実行プログラム状態が何であるか、また対
応る、動作状態の間に機械或いはプロセスが取る動作の
種類は何かを決定る、。上記の3つのプログラム状態の
全ては複合ステートメントrGo To Jを持ち、こ
れ等は当該プログラム状態の、他のプログラム状態への
シフト処理を与える。
rStopped J or rGoing Dow
nJ, which signals to the controller the end of one program state and the beginning of a new program state. The state-limiting statements above involve a sequence of none or one or more compound statements that effect a transition from the currently processing or active program state to another program state. It can be caused. A compound statement consists of a conditional part and an action part. When the condition part is satisfied, the action part is executed and a transition to a new program state occurs. In other words, the compound statement determines what the next executed program state will be and what type of action the machine or process will take during the corresponding active state. All three program states mentioned above have compound statements rGo To J, which provide a shift operation of the program state to another program state.

特定の動作状態に関係る、全てのステートメントを1つ
の連続る、コードセクメントにまとめることにより、シ
ステムはこれ等のステートメントを走査して、機械或い
はプロセスの現在の動作状態を評価し、また、新しい動
作状態を開始させるために条件の特定の組が満足された
か否かを決定る、。既に記載したドルモントのシステム
は、現在の動作状態を決定る、ために、即ち、どの「状
態論理変数」が真値を持つかを決定る、ために、また次
に動作状態を開始させるために特定の条件が満足された
か否かを決定る、ために、アプリケーションプログラム
中の全てのステートメントを評価しているが、プログラ
ム中の構造的な差異により本発明の方がはるかに効率的
に動作る、。
By grouping all statements related to a particular operating state into one continuous code section, the system scans these statements to evaluate the current operating state of the machine or process, and Determining whether a particular set of conditions are satisfied to initiate a new operating state. Dormont's system, already described, is used to determine the current operating state, i.e. which "state logical variables" have a true value, and then to initiate the operating state. Although all statements in an application program are evaluated to determine whether a particular condition is satisfied, the present invention works much more efficiently due to structural differences in the program. ,.

第2図(b)と2図(c)はプログラム状態の図式であ
る。両図のブロック48はプログラム状BrGoing
 UpJに対る、コードのシーケンスを示し、ブロック
50はプログラム状Br5topped Jに対る、コ
ードシーケンスを表わし、またブロック52はプログラ
ム状態rGoing DownJに対る、コードシーケ
ンスを表わす。円弧54 、56 、58、および60
は(第2b図と2部図)状態図の円弧30゜32 、3
4、および36(第2図(a))に対応る、。上記の円
弧54 、56 、58、および60は、アプリケーシ
ョンプログラム中のアクティビティの流れが複合ステー
トメントメントによりどのように影古されるかを示すも
のである。
FIGS. 2(b) and 2(c) are diagrams of the program state. Block 48 in both figures is the program BrGoing.
Block 50 represents the code sequence for the program state Br5topped J, and block 52 represents the code sequence for the program state rGoing DownJ. Arcs 54, 56, 58, and 60
(Fig. 2b and 2 parts) is the arc 30° 32 of the state diagram, 3
4, and 36 (FIG. 2(a)). Arcs 54, 56, 58, and 60 above illustrate how the flow of activities in an application program is influenced by compound statements.

第2図(b)の円弧58は、複合ステートメントの条件
部分: r rLIpJボタンがオンでr Down Jボタン
がオフ、或いはrUpJボタンがオンでr Down 
Jボタンもオンの時はrStopped Jに進む」が
真の時は、rGoing UpJのプログラム状態から
rStopped Jのプログラム状態への遷移が生じ
ることを示したものである。同様にして、円弧60は複
合ステートメントの条件部分が、 r rUpJボタンがオフで、rDoivnJボタンが
オンの時は、rGoing DownJに進む」が真の
時は、rstopped Jのプログラム状態からrG
oing DownJのプログラム状態への遷移が生じ
ることを示している。
The arc 58 in FIG. 2(b) is the conditional part of the compound statement: r rLIpJ button is on and r Down J button is off, or rUpJ button is on and r Down
When "When the J button is also on, proceed to rStopped J" is true, this indicates that a transition occurs from the rGoing UpJ program state to the rStopped J program state. Similarly, the conditional part of the compound statement in the arc 60 is: r If the rUpJ button is off and the rDoivnJ button is on, go to rGoing DownJ, then go from the program state of rstopped J to rG
This indicates that a transition to the oing DownJ program state occurs.

これ等のプログラム状g rGoing UpJ 。These program-like g rGoing UpJ.

rStopped J 、およびrGoing Dow
nJの間を結合る、と論理的にプログラムループが形成
される。
rStopped J, and rGoing Dow
By connecting nJ, a program loop is logically formed.

このプログラムループ46はエレベータ12が行う動作
のシーケンスを制御る、。本発明の好ましい実施例にお
いては、プログラムループは任意の1時点で1つのアク
ティブプログラム状態を持つことができる。このように
して、制御装置はタスクの個別配列の順次処理のトラッ
クを維持る、ことが可能になる。第2図(b)のプログ
ラムループ46は、状態図(第2a図参照)をエミュレ
ートし、エレベータ12を制御る、ために任意の1時点
でプログラム状態を1つだけアクティブにした場合の特
性を示したものである(即ち、エレベータのコンパート
メントは、単に、任意の1時間点で上昇る、か、下降る
、か、或いは停止る、かのいずれかを取ることができる
だけである。)。
This program loop 46 controls the sequence of operations performed by the elevator 12. In a preferred embodiment of the invention, a program loop can have one active program state at any one time. In this way, it is possible for the controller to keep track of the sequential processing of individual arrays of tasks. The program loop 46 of FIG. 2(b) emulates the state diagram (see FIG. 2a) and has the characteristics of having only one program state active at any one time to control the elevator 12. (i.e., the elevator compartment can simply either go up, go down, or stop at any one point in time).

機械が更に複雑な場合は、単一プログラムループは機械
或いはプロセスの特定の独立した小部分を単に表わすこ
とになる。アプリケーションプログラムが1つのプログ
ラムループを持つ時は、制御装置は機械或いはプロセス
の1部を制御る、ことになる。通常は、複雑な機械或い
はプロセスの幾つかの1部分を独立に制御る、ためには
、多重プログラムループが必要になる。第2図(d)は
、複数の相互接続した状態図62 、64および66に
より表わされたより複雑な機械を示したものである。
If the machine is more complex, a single program loop may simply represent a specific, independent subsection of the machine or process. When an application program has one program loop, the control device controls a part of the machine or process. Typically, multiple program loops are required to independently control several parts of a complex machine or process. FIG. 2(d) shows a more complex machine represented by a plurality of interconnected state diagrams 62, 64 and 66.

各状態図は機械或いはプロセスの1セクシヨンの順次制
御配列を示している。本発明は、機械の3つの仮想的な
小部分を制御る、プログラムループの処理によりこれ等
の状態図をエミュレ−1・る、(これはマルチタスクと
も呼ばれる。)。特定のプログラムループは上記プログ
ラムループの残りのものとは独立に処理る、ことができ
るか、或いは他のプログラムループ(第2図(d)の6
3 、65゜67、および69)と「ハンドシェーク」
および同期づけることができる。制御装置のこのマルチ
タスク機能はプログラマにとってはよく知られたもので
あり、従ってプログラマはそのアプリケーションプログ
ラムを設計る、時もそれにわずられされることはない。
Each state diagram depicts the sequential control arrangement of one section of a machine or process. The present invention emulates these state diagrams by processing program loops (also called multitasking) that control three virtual subsections of the machine. A particular program loop can be processed independently of the rest of the program loops, or can be processed independently of the rest of the program loops (6 in Figure 2(d)).
3, 65°67, and 69) and “handshake”
and can be synchronized. This multi-tasking capability of the control unit is well known to programmers and is therefore not a problem for programmers when designing their application programs.

プログラムループ内のプログラム状態の実行を容易にる
、ために、本好ましい実施例ではアクティブプログラム
ループの各々にプログラムポインタを設けている。第3
図(a)に示したように、このプログラムループポイン
タ90は単純変数を保持る、フィールド92と94を有
る、。第1の単純変数92は、現在アクティブなプログ
ラムループの識別子である。第2の単純変数94はアク
ティブプログラム状態の識別子或いはアクティブプログ
ラム状態の、メモリ中での開始アドレスである。これ等
のプログラム状態のアドレス或いは識別子は他のものに
容易に変換る、ことができる。
To facilitate the execution of program states within program loops, the preferred embodiment provides a program pointer for each active program loop. Third
As shown in Figure (a), this program loop pointer 90 has fields 92 and 94 that hold simple variables. The first simple variable 92 is the identifier of the currently active program loop. The second simple variable 94 is the identifier of the active program state or the starting address of the active program state in memory. These program state addresses or identifiers can be easily converted to other addresses or identifiers.

ポインタ90の残りの部分96プログラムループに関る
、、重要性の低い、他のステータス情報を収容る、。上
記プログラムポインタ90の実際の目的は、特定のプロ
グラムループ内のプログラム状態で任意の1時間点でア
クティブなもののトラックを維持る、ことにある。
The remaining portion 96 of pointer 90 contains other less important status information related to the program loop. The actual purpose of the program pointer 90 is to keep track of the program state that is active at any point in time within a particular program loop.

特定のプログラムループがアクティブになると、プログ
ラムループポインタ90はループに関係づけられる。プ
ログラムループ内で各種のプログラム状態がアクティブ
になると、単純変数94は新しいプログラム状態のアド
レス或いは識別子と重ねて書込まれるようになる。この
プログラムループポインタ90は、1つのプログラムル
ープが、システムが第2のプログラムループを通してど
こまで処理されたかを決定る、ために、第2のプログラ
ムループと「ハンドシェーク」或いは統合る、ことを可
能にる、。更に、このプログラムループポインタ90は
端子80によりアクセスされて、プログラマがプログラ
ム状態が生じた時のそれ等のシーケンスに注目る、こと
を可能にる、。
When a particular program loop becomes active, program loop pointer 90 is associated with the loop. As various program states become active within the program loop, the simple variable 94 becomes overwritten with the address or identifier of the new program state. This program loop pointer 90 allows one program loop to "handshake" or integrate with a second program loop to determine how far the system has processed through the second program loop. ,. Additionally, this program loop pointer 90 is accessed by terminal 80 to allow the programmer to note those sequences in which program conditions occur.

好ましい実施例では、プログラムループポインタは全て
第3図(b)のタスクテーブルに全て格納され、このタ
スクテーブルはメモリ10A(第1図)に格納される。
In the preferred embodiment, all program loop pointers are stored in the task table of FIG. 3(b), which is stored in memory 10A (FIG. 1).

このタスクテーブルは同時に幾つかのプログラムループ
の全ての処理を可能にる、ように主として機能る、。こ
のプログラムループのポインタは、全ての空でないポイ
ンタがテーブルの開始時にあるようにタスクテーブルに
パックされ、またそれ等のそれぞれのプログラムループ
の識別子(第3図(a)の92)の数値順に配列される
。第3図(b)を見ると、タスクテーブルの第1のプロ
グラムループポインタ100は最低のループ識別子(例
えば1)を、従って処理のための最高優先度を有る、。
This task table primarily functions to allow processing of all of several program loops at the same time. The program loop pointers are packed into the task table such that all non-empty pointers are at the beginning of the table, and arranged in numerical order of their respective program loop identifiers (92 in Figure 3(a)). be done. Referring to FIG. 3(b), the first program loop pointer 100 in the task table has the lowest loop identifier (eg, 1) and therefore the highest priority for processing.

ポインタ102はテーブル内に第2の最低のループ識別
子を有し、これは2番目に処理される。ポインタ104
はこれに関係る、第3の最低ループ識別子(例えば3)
を持ち、これは3番目に処理される。ポインタ106は
次に小さな識別子(例えば34)を持ち、4番目に処理
される。
Pointer 102 has the second lowest loop identifier in the table and is processed second. pointer 104
is the third lowest loop identifier (e.g. 3) associated with this
, which is processed third. Pointer 106 has the next lowest identifier (eg, 34) and is processed fourth.

更に、タスクテーブルと関係してタスクテーブルレジス
タ112(第3図(c))が設けられ、これは現在アク
ティブプログラムループを実行しているプログラムルー
プポインタを指示る、。タスクテーブル内のプログラム
ループを走査、処理る、ために、制御装置はアクティブ
プログラムループポインタ90のアドレスをタスクテー
ブルレジスタ112に書込む。
Additionally, associated with the task table is a task table register 112 (FIG. 3(c)), which points to the program loop pointer currently executing the active program loop. To scan and process program loops in the task table, the controller writes the address of the active program loop pointer 90 to the task table register 112.

制御装置がポインタ100に関係る、プログラムループ
を実行る、時は、プログラムループ100に関係る、プ
ログラム状態のステートメントの1つのブロックだけが
実行或いは起動される。次に、;Ill ?]Il装置
は次のプログラムループ(例えば2)を処理し、またこ
れに関係る、唯1つのプログラム状態が処理される。制
御装置はこの手順を全てのアクティブプログラムループ
に対して反復る、。
When the controller executes a program loop associated with pointer 100, only one block of program state statements associated with program loop 100 is executed or activated. Next, ;Ill? ]Il device processes the next program loop (e.g. 2), and only one program state related thereto is processed. The controller repeats this procedure for all active program loops.

タスクテーブルレジスタがループ識別子に関係して零を
有る、プログラムループポインタ108を指示る、と、
制御装置は、これが空のプログラムループポインタに達
した旨警告される。これが生じたら、制御装置の動作シ
ステムはタスクテーブルレジスタを元のタスクテーブル
の上部に指示し、テーブル内の第1プログラムループの
次のプログラム状態を実行る、。この手順は、端子の割
込みなどが生じなければエンドレスプロセスである。
The task table register has a zero associated with the loop identifier and points to the program loop pointer 108;
The controller is alerted that it has reached an empty program loop pointer. When this occurs, the operating system of the controller points the task table register to the top of the original task table and executes the next program state of the first program loop in the table. This procedure is an endless process unless there is a terminal interrupt or the like.

プログラムコードの2〜3ラインだけが各プログラム状
態に対して処理されるため、制′4′n装置は1つのプ
ログラムループから他のループに非常に迅速にジャンプ
る、ことができる。このようにして、制御装置は、これ
が同時に全ての多重プログラムループ或いはタスクを処
理しているように振舞うことになる。
Because only a few lines of program code are processed for each program state, the control system is able to jump from one program loop to another very quickly. In this way, the controller will behave as if it were processing all multiple program loops or tasks at the same time.

プログラムループが起動されたことを示すために、制御
装置はプログラムループポインタを起動されたプログラ
ムループに割当て、新しいプログラムループポインタ(
第3図(a)の90)をタスクテーブルにそう人る、。
To indicate that a program loop has been activated, the control unit assigns a program loop pointer to the activated program loop and assigns a new program loop pointer (
90) in Figure 3(a) is placed in the task table.

システムは新しいプログラムループ識別子(第3図(a
)の92)の数値を評価し、またプログラムループポイ
ンタをこの評価した数値に対応る、タスクテーブル内の
通常の位置に適合させる。例えば、数値が34以上の場
合は、新しいポインタがタスクテーブルのレコード10
8に置き換わる(第3図(b))。しかしながら、もし
新しいプログラムループの識別子が3と34の間にある
時は、プログラムループポインタ108は106のポイ
ンタと交換され、新しいプログラムループポインタが1
06にそう人される。
The system uses a new program loop identifier (Figure 3(a)
) and adapts the program loop pointer to its normal position in the task table corresponding to this evaluated value. For example, if the number is greater than or equal to 34, the new pointer will be at record 10 of the task table.
8 (Fig. 3(b)). However, if the new program loop's identifier is between 3 and 34, program loop pointer 108 is exchanged with pointer 106, and the new program loop pointer is 1.
That's what people say in 06.

タスクテーブルの本実施例では、タスクテーブルに最大
31のプログラムループポインタを持つことができるの
で、タスクテーブルの内容が評価されて、新しいポイン
タに用いられるスペースがあるように保証しなければな
らない。制御装置は、タスクテーブルが一杯になった時
、或いはタスクテーブルのオーバフロ条件が生じた時プ
ログラマに連絡る、ことになる。
In this embodiment of the task table, there can be up to 31 program loop pointers in the task table, so the contents of the task table must be evaluated to ensure that there is space available for new pointers. The controller will notify the programmer when the task table becomes full or when a task table overflow condition occurs.

ここで第4図を見ると、トレーステーブルの論理図が示
してあり、これは制御装置のメモリ部分10Aに格納さ
れ、またデバッグモニタ74 (第1図)の1部をなし
ている。トレーステーブルは、概念的には、「エンドレ
ステープ」記憶バッファの周りにラップとして格納され
たメモリ内の直線状テーブルである。このトレーステー
ブル82は飛行機のフライトレコーダと全く同様に動作
る、。
Turning now to FIG. 4, a logical diagram of the trace table is shown, which is stored in the controller's memory portion 10A and is part of the debug monitor 74 (FIG. 1). A trace table is conceptually a linear table in memory stored as a wrap around an "endless tape" storage buffer. This trace table 82 operates exactly like an airplane flight recorder.

このようなフライトレコーダは、飛行機が「墜落」した
時、その直前に飛行機に何が生じたか「プレーバンク」
してみせるものである。これと同様に、トレーステーブ
ルは、機械或いはプロセスの故障の直前に、それ等に何
が生じたか記録る、ものである。換言る、と、プレーバ
ックは、システムのエラーが生じた時点の直前に制御装
置によりどんな判定がなされたかを正確に見出すために
用いられる。
This kind of flight recorder is a "play bank" that records what happened to the plane immediately before it "crashed."
It's something I'll show you. Similarly, a trace table records what happened to a machine or process just before it failed. In other words, playback is used to find out exactly what decisions were made by the controller immediately before the system error occurred.

トレーステーブルレジスタ84はトレーステーブル84
内の最後の記録場所のアドレスを格納る、。第4図はト
レーステーブル82内で満たされるべき最後の場所とし
てのレコード79を指示る、レジスタ84を示したもの
である。トレーステーブルの86が満たされると、シス
テムは新しいデータを格納し続け、古いデータの上にそ
れ等を書込んで行く。
The trace table register 84 is the trace table register 84.
Stores the address of the last recorded location in,. FIG. 4 shows register 84 pointing to record 79 as the last location to be filled in trace table 82. Once the trace table 86 is filled, the system continues to store new data and write them over old data.

以下に、を限ステートアプリケーションプログラムを処
理し、有限状態のアプリケーションプログラムの予期し
ない条件の診断を容易にる、好ましい実施例の詳細を説
明る、ことにる、。
The following describes in detail a preferred embodiment that handles finite state application programs and facilitates diagnosing unexpected conditions in finite state application programs.

第5.6,7,8,9.lO,11,12、および13
図は、プログラマブル制御装置と共に、アプリケーショ
ンプログラムの処理を制御る、サブルーチンを表わす流
れ図である。特に、第5図においては、サフ゛ル−チン
5TART PROGRAMはプログラマブル制御装置
の各種のポインタとテーブルを初期化る、ものである。
Section 5.6, 7, 8, 9. lO, 11, 12, and 13
The figure is a flowchart representing a subroutine that, in conjunction with a programmable controller, controls the processing of an application program. In particular, in FIG. 5, subroutine 5TART PROGRAM initializes various pointers and tables of the programmable controller.

第6図においては、サブルーチンFIR5T 0PER
ATORはプログラム状態の最初のコマンドを評価しテ
ィる。第7図では、ADVANCED C0DEPOI
NTERは標準のアプリケーションプログラムポインタ
(Pコードポインタ)を制御る、。このポインタは制御
装置が実行る、現在のステートメントのメモリ内のアド
レスを指示る、。第8図のADVANCE TASK 
TABLEは、タスクチー7’ /しL/レジスタどの
レコードを指示る、かを与える。第9図では、サフ゛ル
−チンNEXT 0PERATORがプログラム状態の
第1ステートメント以外の全てのステートメントを評価
る、。第10図のGo Toと第11図の5TARTは
1プログラムループ内での処理を他のプログラムループ
にシフトさせるものである。第12図のGO5UBRO
UTINEおよび第13図のRETIJRNは特定のプ
ログラムループ内のプログラム状態の処理の順序に作用
る、。
In FIG. 6, the subroutine FIR5T 0PER
ATOR evaluates the first command in program state. In Figure 7, ADVANCED C0DEPOI
NTER controls the standard application program pointer (Pcode pointer). This pointer points to the address in memory of the current statement that the control unit is executing. Figure 8 ADVANCE TASK
TABLE specifies which record the task register 7' indicates. In FIG. 9, the subroutine NEXT 0PERATOR evaluates all statements in the program state except the first statement. Go To in FIG. 10 and 5TART in FIG. 11 shift the processing within one program loop to another program loop. GO5UBRO in Figure 12
UTINE and RETIJRN of FIG. 13 affect the order of processing of program states within a particular program loop.

第5図には、5TART PROGRAMに対る、フロ
ーブロック図が示しである。このルーチンはプログラム
制御装置を初期化る、。特に、ブロック122では、制
御装置はタスクテーブル(第4b図)、タスクテーブル
レジスタ(第4C図)、およびPコードポインタを初期
化る、。このタスクテーブルは、メモリ内で第1のアク
ティブプログラムループを指示る、プログラムループポ
インタと共に初期化される。更に、プログラムループポ
インタはそのプログラムループの第1プログラム状態に
初期化される。Pコードポインタは第1アクティブプロ
グラム状態の開始アドレスと共に初期化される。ここで
システムは第1アクテイブループを処理る、状態になる
。ブロック124では、システムはサブルーチンFIR
3T 0PERATORを呼出し、Pコードポインタに
より指示された第1ステートメントを評価る、。
FIG. 5 shows a flow block diagram for the 5TART PROGRAM. This routine initializes the program controller. In particular, at block 122, the controller initializes the task table (Figure 4b), the task table register (Figure 4C), and the Pcode pointer. The task table is initialized with a program loop pointer that points to the first active program loop in memory. Additionally, the program loop pointer is initialized to the first program state of that program loop. The Pcode pointer is initialized with the starting address of the first active program state. The system is now in a state where it processes the first active loop. At block 124, the system executes subroutine FIR
3T Call 0PERATOR to evaluate the first statement pointed to by the P code pointer.

第6図のブロック図はサブルーチンFIR5TOPER
ATORを示したものである。ブロック128では、制
御装置はPコードポインタにより指示されたステートメ
ントの種類を解析る、。そう遇した第1ステートメント
は「状態」ステートメントか、「ポーズ状態」ステート
メントか、或いは「ブレーク状態」ステートメントのい
ずれかである。状態ステートメントはプログラム状態の
始めを記号化したプログラム状態の区切記号である。ポ
ーズステートメントはアクティブプログラムループのポ
ーズまたは停止をもたらし、またタスクテーブルの次の
アクティブプログラムループの開始をもたらす。ブレー
ク状態ステートメントは全システムの実行停止をもたら
し、制御装置が処理を中止したことをプログラマに知ら
せるためにモニタに復帰させる。130で状態ステート
メントが得られると、制御装置は、132のサブルーチ
ンADVANCEP−CODf! POINTERを呼
出してプログラム状態の次のステートメントアドレスに
Pコードポインタを進める。プログラム状態でそう遇し
たステートメントが134のポーズ状態ステートメント
の場合は、システムは116の5UBROUTINE 
ADVANCE TASK TABLEREGISTE
Rを呼出して、次のアクティブプログラムループに処理
を進める。そう遇したステートメントがブレーク状態形
の場合は、138のサブルーチンGOTOMONITO
Rが呼出される。
The block diagram in Figure 6 shows the subroutine FIR5TOPER.
This shows ATOR. At block 128, the controller analyzes the type of statement pointed to by the P-code pointer. The first statement so encountered is either a "state" statement, a "pause state" statement, or a "break state" statement. A state statement is a program state delimiter that symbolizes the beginning of a program state. A pause statement causes a pause or stop of an active program loop and also causes the start of the next active program loop in the task table. A break state statement causes the entire system to halt execution and returns to the monitor to inform the programmer that the controller has ceased processing. Once the status statement is obtained at 130, the controller executes the subroutine ADVANCEP-CODf! at 132. Call POINTER to advance the Pcode pointer to the next statement address in the program state. If the statement encountered in the program state is 134 pause state statements, the system uses 116 5UBROUTINE
ADVANCE TASK TABLE REGISTE
Call R to proceed to the next active program loop. If the statement so encountered is of the break state type, subroutine GOTOMONITO of 138
R is called.

GOTOMONITORはメツセージを端子に与え、プ
ログラマブル制御装置のユーザに、ブレークステートメ
ントが得られ、プログラムコードの実行が停止された旨
が通知される。
GOTOMONITOR applies a message to the terminal to notify the user of the programmable controller that a break statement has been obtained and execution of the program code has been halted.

第7図を見ると、サブルーチンADVANCE P−C
ODEPOINTERの詳細ブロック図が示しである。
Looking at FIG. 7, the subroutine ADVANCE P-C
A detailed block diagram of ODEPOINTER is shown.

ブロック142では、Pコードポインタがアクティブプ
ログラム状態の次のステートメントに増分される。
At block 142, the Pcode pointer is incremented to the next statement in the active program state.

制′4B装置は144のサブルーチンNEXT 0PE
RATORを呼出すことにより次のステートメントを処
理る、。
The control '4B device is 144 subroutines NEXT 0PE
Process the next statement by calling RATOR.

FIRST 0PERATORがポーズ状態ステートメ
ントにそう遇る、と(第6図)、サブルーチンADVA
NCETASK Tへ肛E REGISTERが呼出さ
れる。このサブルーチンは次のプログラムループの処理
を初期化る、ことを目的とる、。第8図はこのサブルー
チンの詳細なブロック図を示している。ブロック148
では、タスクテーブルレジスタが、そのタスクテーブル
の次のプログラムループポインタのアドレスに進められ
る。サブルーチンFIR5T 0PERATOI?がブ
ロック150で呼出され、タスクテーブルの次のプログ
ラムループの第1アクテイブプログラム状態を処理る、
FIRST 0PERATOR encounters the pause state statement (Figure 6), subroutine ADVA
The REGISTER is called to NCETASKT. The purpose of this subroutine is to initialize the processing of the next program loop. FIG. 8 shows a detailed block diagram of this subroutine. block 148
Then the task table register is advanced to the address of the next program loop pointer for that task table. Subroutine FIR5T 0PERATIOI? is called at block 150 to process the first active program state of the next program loop in the task table.
.

128で状態形ステートメントが得られると(第6図)
、制御装置はサブプログラムADVANCEP−COD
E POINTER142(第8図)に進行る、。上記
のように、このサブルーチンがPコードポインタをプロ
グラム状態の次のステートメントに進め、144テサブ
)Lt −チアNEXT 0PERATORを呼出す。
When the state form statement is obtained at 128 (Figure 6)
, the control device uses the subprogram ADVANCEP-COD
Proceed to E POINTER 142 (Figure 8). As described above, this subroutine advances the P-code pointer to the next statement in the program state and calls 144 tes sub) Lt - CHI NEXT 0PERATOR.

プログラム状態の第1ステートメントはFIRSTOP
ERATOHにより常に評価される、第9図はサブルー
チンNEXT 0PERTORの概略ブロック図である
。このサブルーチンは、第1久テートメント以外のプロ
グラム状態にあるステートメントの任意の種類のものを
評価る、ことを目的としている。ブロック154では、
制御装置はPコードポインタにより指示された次のコマ
ンドを読取る。そう遇した次のステートメントが状態ス
テートメント、ポーズ状態ステートメント、またはブレ
ーク状態ステートメントのいずれかの場合、制御n装置
は15817)す7’/レ−チアADVANCE TA
SK TABLEREG l5TERを呼出す(第9図
)。そう遇したステートメントが上記3つのいずれでも
ない時は、制御装置は、このステートメントが160の
Go Toステートメントか否かを評価る、。ステート
メントがGo TOステートメントの時は、サブルーチ
ンGOTOが162で呼出される。このサブルーチンを
以下に詳述る、。
The first statement in program state is FIRSTOP
FIG. 9 is a schematic block diagram of the subroutine NEXT 0PERTOR, which is always evaluated by ERATOH. This subroutine is intended for evaluating any kind of statement in program state other than first-duration statements. At block 154,
The controller reads the next command pointed to by the P code pointer. If the next statement that occurs is either a state statement, a pause state statement, or a break state statement, the control unit is 15817)7'/RATIA ADVANCE TA
Call SK TABLEREG 15TER (Figure 9). If the statement encountered is not one of the three above, the controller evaluates whether the statement is a 160 Go To statement. If the statement is a Go TO statement, subroutine GOTO is called at 162. This subroutine is detailed below.

このステートメントがGo TOステートメントでない
時は、制御装置はブロック164に進み、ステートメン
トが開始ステートメントか否かを決定る、。このステー
トメントが開始ステートメントの場合は、制御装置は1
66のサブルーチン5TAl?Tを呼出す。このサブル
ーチンについては間もなく説明る、。
If the statement is not a Go TO statement, the controller proceeds to block 164 and determines whether the statement is a start statement. If this statement is a start statement, the controller is 1
66 subroutine 5TAL? Call T. This subroutine will be explained shortly.

上記ステートメントが開始ステートメントでない時は、
制御装置はブロック168に進み、ステートメントがG
Oサブルーチンステートメントか否かを決定る、。もし
このステートメントがGOサブルーチンステートメント
の場合は、制御装置は170のサブルーチンGo 5U
BI?0UTINEを呼出す。このステートメントがG
oサブルーチンステートメントでないとる、と、制御装
置は、ステートメントが172のReturnステート
メントか否かを決定る、ことになる。もし、それがRe
turnステートメントの場合は、制御装置は174の
サブルーチンRETURNを呼出す。
If the above statement is not a start statement,
The controller proceeds to block 168 where the statement G
O Determine whether it is a subroutine statement. If this statement is a GO subroutine statement, then the control unit 170 subroutine Go 5U
BI? Call 0UTINE. This statement is G
o If it is not a subroutine statement, the controller will determine whether the statement is a 172 Return statement. If it is Re
For a turn statement, the controller calls subroutine RETURN at 174.

このステートメントがGo To、 5tart、 G
This statement is Go To, 5tart, G
.

5ubroutine、またはReturn形でない時
は、制御装置はブロック174に進み、このステートメ
ントを正常の制御ステートメントと評価る、。正常な制
御ステートメントはプログラム状態のステータスには作
用しない。換言る、と、プログラム状態は同一の、或い
は異なるプログラムループの新しいプログラム状態にジ
ャンプせずに処理をwE続る、。
If it is not of type 5ubroutine or Return, the controller proceeds to block 174 and evaluates the statement as a normal control statement. Normal control statements do not affect the status of program state. In other words, the program state continues processing without jumping to a new program state of the same or a different program loop.

1方、ステートメントの種類、Go To、 5tar
t、 G。
On the other hand, statement type, Go To, 5tar
t, G.

5ubroutine、およびReturnの全てはプ
ログラム状態のステータスおよび/または対応る、アク
ティブプログラムループに潜在的に作用る、。初めに説
明したように、これ等の形のステートメントは複合ステ
ートメントと呼ばれ、或る条件の組が満たされる場合は
特定のプログラム状態のステータスを与える。制御装置
が176の正常な制御ステートメントを評価る、と(第
9図)、これはサブルーチ:/ADVANCE P−C
ODE POINTERを呼出して、アクティブプログ
ラム状態の次のステートメントを評価る、。
5ubroutine, and Return all potentially affect the status of the program state and/or the corresponding active program loop. As explained at the outset, these forms of statements are called compound statements and provide the status of a particular program state if a certain set of conditions is met. When the controller evaluates 176 successful control statements (Figure 9), this is the subroutine: /ADVANCE P-C
Call ODE POINTER to evaluate the next statement in the active program state.

第10図はGo TOと呼ばれるサブルーチンのブロッ
ク図である。このGo Toサブルーチンは動作状態の
現在のステータスを評価し、特定の組の条件が満足され
たか否かを決定し、満足された場合はタスクテーブルで
指示された次の次のプログラムループに対る、処理に進
む。このGo TOは1つのプログラムループがタスク
テーブルにより指示された次のプログラムループにわた
る制御を有効に開始させるものである。換言る、と、特
定の独立したタスクのシーケンスは、もし機械或いはプ
ロセスの特定の組の条件が満足されると、他の独立した
タスクのシーケンスの動作に影響を与えることができる
FIG. 10 is a block diagram of a subroutine called Go TO. This Go To subroutine evaluates the current status of the operating state, determines whether a particular set of conditions are satisfied, and if so, returns to the next program loop as directed by the task table. , proceed to processing. This Go TO effectively causes one program loop to begin control over the next program loop indicated by the task table. In other words, a particular sequence of independent tasks can influence the operation of other sequences of independent tasks if a particular set of machine or process conditions are satisfied.

第10図のブロック182では、制御装置はGOT。In block 182 of FIG. 10, the controller is connected to the GOT.

ステートメントの条件部分を評価る、。もしGOT。Evaluate the conditional part of the statement. If GOT.

ステートメントの条件の組が満足されない場合は、制御
装置は184のサブルーチアADVANCE P−CO
DEPOTNTERを呼出す。条件が満足された場合は
、制御装置は186のサブルーチン5TORE lll
5TOI?Yを呼出す。
If the statement set of conditions is not satisfied, the control unit 184 subroutine ADVANCE P-CO
Call DEPOTNTER. If the conditions are met, the controller executes subroutine 5TORE 186
5TOI? Call Y.

この5TORE lll5TORYは「判定点」アドレ
スとプログラムループ識別子をトレーステーブル(第3
図)に保管る、。この判定点は、プログラム状態がステ
ータスを変えることを惹起したため、Go TOステー
トメントのアドレスである。換言る、と、GOTOステ
ートメントはプログラム状態のステータスを変化させる
ために「判定」をなしたわけである。ブロック188で
は、タスクテーブルの次のプログラムループポインタが
、単純変数94(第3a図)が新しいプログラム状態の
アドレスを指示る、ように更新される。次に、ブロック
190 (7)ADVANCE TASK TABLE
 REGISTERが呼出されて、これがタスクテーブ
ルの次のプログラムループポインタを指示る、ようにタ
スクテーブルのレジスタを更新る、。
This 5TORE ll5TORY stores the "decision point" address and program loop identifier in the trace table (third
Figure). This decision point is the address of the Go TO statement because the program state caused the status to change. In other words, the GOTO statement makes a "determination" to change the status of the program state. At block 188, the next program loop pointer in the task table is updated such that simple variable 94 (Figure 3a) points to the address of the new program state. Next, block 190 (7) ADVANCE TASK TABLE
REGISTER is called, which updates the task table's registers so that it points to the task table's next program loop pointer.

第11図は5TARTと呼ぶサブルーチンのブロック図
である。この5TARTの目的は、アプリケーションプ
ログラムで予め特定されている任意のプログラムループ
の処理を初期化る、ことにある。1方、Go TOサブ
ルーチンはタスクテーブルに格納された次のプログラム
ループに対る、処理に単に進むだけである。
FIG. 11 is a block diagram of a subroutine called 5TART. The purpose of this 5TART is to initialize the processing of any program loop specified in advance in the application program. On the other hand, the Go TO subroutine simply proceeds to process the next program loop stored in the task table.

第11図のブロック194では、開始ステートメントの
条件部分が評価される。条件が真の場合は、制御装置は
196ノサブルーチ7ADVANCE P−CODEP
OINTERを実行る、。この条件が真でない時は、制
御装置はブロック198に進んで、サブルーチン5TO
RE lll5TORYを処理る、。この5TORE旧
5TOIIYは開始ステートメントのアドレスと、開始
ステートメントを含むプログラムループ識別子を保管る
、。ブロック200では、制御装置は、特定のプログラ
ムループが現在アクティブで、タスクテーブルに格納さ
れているか否かを決定る、。このプログラムループが既
にアクティブの時は、ブロック202で、制御装置は起
動されるべき新しいプログラム状態のアドレスと共にプ
ログラムループポインタ(第4a図)の単純変数94に
現在格納されているアドレスを上に書込む。しかしなが
ら、プログラムループが現在アクティブでない時は、シ
ステムは204のタスクテーブルに新しいプログラムル
ープポインタをスロットる、。この新しいプログラムル
ープポインタは、そのプログラムループの識別子の数値
に対応る、タスクテーブル内の通常位置に配置される。
In block 194 of FIG. 11, the conditional portion of the start statement is evaluated. If the condition is true, the controller
Execute OINTER. If this condition is not true, the controller proceeds to block 198 and executes subroutine 5TO.
Process REll5TORY. This 5TORE old 5TOIIY stores the address of the start statement and the program loop identifier containing the start statement. At block 200, the controller determines whether a particular program loop is currently active and stored in the task table. If this program loop is already active, in block 202 the controller writes over the address currently stored in the simple variable 94 of the program loop pointer (FIG. 4a) with the address of the new program state to be activated. It's crowded. However, when a program loop is not currently active, the system slots a new program loop pointer into the task table at 204. This new program loop pointer is placed in the normal position in the task table that corresponds to the numerical value of the program loop's identifier.

ブロック206では、新しいプログラム状態のアドレス
がプログラムループポインタに書込まれる。ブロック2
02では、制御′II装置は、特定のプログラムループ
が処理を始めることができるようにサブルーチアADV
ANCED P−CODEPOINTERを呼出す。
At block 206, the address of the new program state is written to the program loop pointer. Block 2
At 02, the control'II device activates the subroutine ADV so that a particular program loop can begin processing.
Call ANCED P-CODEPOINTER.

第12図はGO5UBROUTINEを示すブロック図
である。このGO5UBROUTINEはアクティブプ
ログラムループの処理に影響る、。特に、このサブルー
チンは、プログラムループ内の1つのプログラム状態を
して同じプログラムループ内でのみ新しいプログラム状
態を起動せしめるものである。1方、サブルーチンGo
 To(第1O図)および5TART (第11図)は
新いプログラムループにわたる制御を開始した。
FIG. 12 is a block diagram showing GO5UBROUTINE. This GO5UBROUTINE affects the processing of the active program loop. In particular, this subroutine causes one program state within a program loop to activate a new program state only within the same program loop. On the other hand, subroutine Go
To (Figure 1O) and 5TART (Figure 11) initiated control over a new program loop.

第10図のブロック210を見ると、GOサブルーチン
ステートメントの条件部分が評価される。
Referring to block 210 of FIG. 10, the conditional portion of the GO subroutine statement is evaluated.

条件が満足されない時は制御装置は214のサブルーチ
アADVANCE P−CODE POINTERを呼
出す。しかし、条件ステートメントが満足された時は、
制御装置は216のサブルーチン5TORE lll5
TORYを呼出す。
If the condition is not met, the controller calls subroutine ADVANCE P-CODE POINTER 214. However, when the conditional statement is satisfied,
The control device is 216 subroutines 5TORE llll5
Call TORY.

このサブルーチンはトレーステーブルに判定点とプログ
ラムループ識別子を保管る、。ブロック218では、制
御装置はメモリに、Pコードポインタに格納された現在
のアドレスと、現在アクティブなプログラム状態と、条
件フラグのステータスとを一時保管る、。上記条件フラ
グは、評価された条件が満足されたか否かを格納る、2
進変数である。ブロック220では、新しいプログラム
状態のアドレスがプログラムループポインタ90 (第
4a図)の単純変数94に書込まれ、このアドレスは更
にPコードポインタに格納される。制御装置は220の
サブルーチンFIRST 0PERATORを呼出して
新しいプログラム状態のアクティビティを開始させる。
This subroutine stores decision points and program loop identifiers in a trace table. At block 218, the controller buffers in memory the current address stored in the P-code pointer, the currently active program state, and the status of the condition flag. The condition flag stores whether the evaluated condition is satisfied or not.2
It is a hexadecimal variable. At block 220, the address of the new program state is written to simple variable 94 of program loop pointer 90 (Figure 4a), and this address is also stored in the P code pointer. The controller calls subroutine FIRST 0PERATOR at 220 to begin activity in a new program state.

第13図はサブルーチンRETUl?Nの詳細ブロック
図である。このReTurnステートメントの目的は、
制御装置を、GO5UBROUTINEと呼ばれるプロ
グラム状態に復帰させることにある。換言る、と、GO
SUBROUT INEにより呼出された特定のプログ
ラム状態(第12図)が実行を完了る、と、制御装置は
、GO5UBROUTINBが呼出された時アクティブ
であった古いプログラム状態に制御を復帰させる。これ
は、GO5UBI?0UTINEにより格納されたポイ
ンタおよびレジスタの値が復元されることを要求される
FIG. 13 shows the subroutine RETUl? FIG. 2 is a detailed block diagram of N. The purpose of this ReTurn statement is to
The purpose is to return the control device to the programmed state called GO5UBROUTINE. In other words, GO
When the particular program state called by SUBROUT INE (FIG. 12) completes execution, the controller returns control to the old program state that was active when GO5UBROUTINB was called. Is this GO5UBI? The values of pointers and registers stored by 0UTINE are required to be restored.

ブロック224で第13図を見ると、制御装置はRet
urnステートメントの条件部分を評価る、。この条件
が満足されない時は、制御装置はプロ・7り226テサ
ブルーチ7A[1VANCE P−CODE POIN
TERを呼出す。しかし、もし条件が満足された場合は
、制御装置はブロック222で5TORE lll5T
ORYを呼出す。
Referring to FIG. 13 at block 224, the controller
Evaluate the conditional part of the urn statement. If this condition is not satisfied, the control device
Call TER. However, if the condition is satisfied, the controller returns 5TORE lll5T at block 222.
Call ORY.

このルーチンは判定点のアドレスと、これが生じたルー
プ識別子を保管る、。ブロック230では、制御装置は
GO5UBRO[ITINEのブロック218に保管さ
れた値を復元る、。ブロック232のADVANCEP
−CODE POINTERが次に呼出されて古いプロ
グラム状態の処理を続行る、。
This routine saves the address of the decision point and the loop identifier in which it occurred. At block 230, the controller restores the value saved in block 218 of GO5UBRO[ITINE. ADVANCEP of block 232
- CODE POINTER is called next to continue processing the old program state.

第14 、15 、16 、17、および18図はアプ
リケーションプログラムのデバッグを容易にる、プログ
ラムのブロック図である。特に、第14図は、サブルー
チンGo To、 5TART、 GO5UBROtl
TINE、およびRETURNにより格納された情報と
共にトレーステーブル(第4図)を更新る、ためのユー
ティリティプログラムである5TORIli HIST
ORYのブロック図である。残る図は、プログラマが彼
自身のコマンドに基づいて、トレーステーブル、タスク
テーブル、或いはプログラム状態自体に格納された情報
を見ることを可能にる、ユーティリティプログラムを示
すものである。特に、第15図は、端子80上のトレー
ステーブルに格納された情報を表示る、DISPLAY
 HISTORYと呼ばれるプログラムのブロック図で
ある。第16図および17図はそれぞれサブルーチンD
ISPLAY LINEとDISPLAY PROGR
AM 5TATf!である。これ等のルーチンは特定の
プログラム状態のステートメントの全てを表示る、ため
に用いられ、またプログラム状態内のどのステートメン
トが判定点であったか、或いはプログラム状態のステー
タスを変化させたかを示すものである。第18図と19
図は、それぞれ、DISPLAY LOOPとFOUN
D LOOPで、これ等はタスクテーブルに格納された
アクティブプログラム状態と関連る、アクティブプログ
ラムループを表示る、。
Figures 14, 15, 16, 17, and 18 are block diagrams of programs that facilitate debugging of application programs. In particular, FIG. 14 shows the subroutines Go To, 5TART, GO5UBROtl.
5TORIli HIST is a utility program for updating the trace table (Figure 4) with information stored by TINE and RETURN.
It is a block diagram of ORY. The remaining figures show utility programs that allow the programmer, based on his own commands, to view information stored in trace tables, task tables, or the program state itself. In particular, FIG. 15 shows a DISPLAY
FIG. 2 is a block diagram of a program called HISTORY. 16 and 17 respectively show subroutine D.
ISPLAY LINE and DISPLAY PROGR
AM 5TATf! It is. These routines are used to display all of the statements in a particular program state, and to indicate which statements within the program state were decision points or changed the status of the program state. Figures 18 and 19
The diagrams show DISPLAY LOOP and FOUN, respectively.
D-- LOOP, these display the active program loops associated with the active program state stored in the task table.

5TORE HISTORYは、プログラム状態のステ
ータスが変化る、毎に呼出される。この5TORE H
ISTORYはサブルーチンGo TO(186の第1
0図)、GOStlBROUTINE(216の第12
図) 、5TART (198の第11図)、およびR
ETURN (228の第13図)で呼出される。上記
のように、5TORE HISTORYはトレーステー
ブルにアクティブプログラム状態の判定点のアドレスと
、この判定点が生じたループ識別子を保管る、。
5TORE HISTORY is called every time the status of the program state changes. This 5TORE H
ISTORY is the subroutine Go TO (first of 186
0 figure), GOStlBROUTINE (12th of 216
), 5TART (Figure 11 of 198), and R
ETURN (228, Figure 13). As mentioned above, 5TORE HISTORY stores in a trace table the address of a decision point in an active program state and the loop identifier in which this decision point occurred.

第14図のブロック236では、トレーステーブルポイ
ンタ84 (第3図)に格納されたアドレスが評価され
る。トレーステーブルポインタにより指示されたアドレ
スがトレーステーブルの最後にある時は、トレーステー
ブルポインタはブロック240でトレーステーブルの始
めに自動的にセットされる。このステップは、あたかも
l−レーステーブルがエンドレスループであるかのよう
にそれを出現させる(第4図参照)。ポインタがトレー
ステーブルの最後であるなしに関わらず、判定点のアド
レスはトレーステーブルポインタにより指示されたレコ
ードに書込まれることになる。更に、ブロック244で
、制御装置もアクティブプログラムループ識別子をレコ
ードに保管る、。ブロック248で、制御装置は呼出し
サブルーチンに戻る。
In block 236 of FIG. 14, the address stored in trace table pointer 84 (FIG. 3) is evaluated. If the address pointed to by the trace table pointer is at the end of the trace table, the trace table pointer is automatically set at block 240 to the beginning of the trace table. This step causes the l-race table to appear as if it were an endless loop (see Figure 4). Regardless of whether the pointer is at the end of the trace table, the address of the decision point will be written to the record pointed to by the trace table pointer. Additionally, at block 244, the controller also stores the active program loop identifier in a record. At block 248, the controller returns to the calling subroutine.

サブルーチン旧5PLAY lll5TQRYはプログ
ラマが、アプリケーションプログラムの処理中に生じた
プログラム状態のヒストリを評価る、ことを可能にる、
。プログラマは、彼がトレーステーブルにより格納され
たものの表示を見たい時このプログラムを開始る、。こ
のサブルーチンは2軸テーブルのトレーステーブルの内
容を表示る、。その場合、水平軸はプログラムループの
識別子と、アクティブプログラムループで生じたものと
は異なって実行され、或いは規定されたプログラム状態
を与える。垂直軸はプログラム状態とプログラムループ
の逐次順序を表わす。DISPLAY HTSTORY
は端末80 (第1図)でユーザが直接初期化したサブ
ルーチンである。このDISPLAY lll5TOR
Yの通常のフ。
The subroutine old 5PLAYllll5TQRY allows the programmer to evaluate the history of program states that occurred during the processing of an application program.
. The programmer starts this program when he wants to see a display of what has been stored by the trace table. This subroutine displays the contents of the trace table of the two-axis table. In that case, the horizontal axis gives the identifier of the program loop and the program state that is executed or defined differently than that occurring in the active program loop. The vertical axis represents the sequential order of program states and program loops. DISPLAY HTSTORY
is a subroutine initialized directly by the user at terminal 80 (FIG. 1). This DISPLAY lll5TOR
Y's normal fu.

リント出力を次に例示る、。The following is an example of the lint output.

DISPLAY lll5TORY ものλ コマンドDISPLAY HISTORYが先ずスクリ
ーン上に示しである点に注目されたい。第2に、上部に
「アクティブプログラム状態」と「アクティブプログラ
ムループ」が与えられる。これ等のステートメントの下
の2つの1閏はそれぞれアクテイフ゛フ。
DISPLAY 115TORY Note that the command DISPLAY HISTORY is first shown on the screen. Second, the top section provides "active program state" and "active program loop." The two leaps below each of these statements are actifs.

ログラム状態とアクティブプログラムループを示してい
る。スクリーンの右側には表示した各ラインに対る、短
いコメントが示しである。最後に生じたプログラム状態
はラインOに示しである。プログラム状態2とプログラ
ムループ2は最後にアクティブなものであった。初めの
アクティブプログラム状態と、それがあったプログラム
ループはライン7に示しである。ライン8はトレーステ
ーブルの終了を示している。
shows the program state and active program loop. The right side of the screen shows a short comment for each line displayed. The last resulting program state is shown on line O. Program state 2 and program loop 2 were the last active ones. The initial active program state and the program loop it was in is shown on line 7. Line 8 indicates the end of the trace table.

アプリケーションプログラムの流れの中に予期しない条
件が生じた場合は、プログラマは、処理中に生じたプロ
グラム状態のシーケンスを眺めることにより、どのプロ
グラム状態に予期しない条件が生じたかを容易に特定る
、ことができる。例えば、プログラム状態200はアプ
リケーションプログラム中に生じるべきではなかったと
仮定してみよう。この場合、予期しない条件がプログラ
ム状81に発生し、これがプログラム状態1のステータ
スがプログラム状8200へ変化させたに違いないと思
われる。プログラマは、DISPLAY LINE(第
16図)を呼出して、プログラム状態1と、この状態1
が状1200に変化させた条件をより緊密に検討る、こ
とができる。このプログラムについてはまもなく論じる
であろう。
When an unexpected condition occurs in the flow of an application program, the programmer can easily identify in which program state the unexpected condition occurred by looking at the sequence of program states that occurred during processing. Can be done. For example, assume that program state 200 should not have occurred during an application program. In this case, it appears that an unexpected condition must have occurred in program state 81 that caused the status of program state 1 to change to program state 8200. The programmer calls DISPLAY LINE (FIG. 16) to display program state 1 and this state 1.
It is possible to examine more closely the conditions under which the shape 1200 was changed. We will discuss this program shortly.

ここで第15図のブロック252のDISPLAYHI
STORYを参照る、と、制御装置は、上で示したよう
にスクリーンの上部に現われたヘッダを印刷る、。次に
、ブロック254で、トレーステーブルのコピーおよび
トレーステーブルプリンタのコピーがバッファに格納さ
れる。これ等のトレーステーブルとトレーステーブルポ
インタをバッファに格納る、ことにより、DISPLA
Y HISTORYのリクエストがなされた時トレース
テーブルに何が格納されたかのスナップショットが得ら
れる。このようなステップが得られる理由は、トレース
テーブルは動的に変化しているテーブルであり、絶えず
更新されており、リクエストがなされた時点でのテーブ
ルのステータスだけが解析のために要求されるというこ
とにある。ブロック256では、システムは格納された
最後のレコードのトレーステーブルポインタに格納され
たアドレスを得る。ブロック258では、制御装置はこ
のアドレスを評価して、バッファが空か否かを決定る、
。もし空の場合は、終了ステートメントが印刷され、制
御装置はブロック260のその元の処理に戻る。空でな
い時は、トレーステーブルが評価されて、それがブロッ
ク262のバッファの最後を指示したか否かを決定る、
。ポインタがバッファの最後にある時は、トレーステー
ブルポインタがブロック264のバッファの始めにセッ
トされる。このようにして、制御袋?iH:!、トレー
ステーブルがあたかもエンドレスループであるかのよう
にトレーステーブルの内容を処理る、ことになる。トレ
ーステーブルポインタがバッファの最後にあるか否かに
は係わりなく、ループ識別子と状態アドレスはブロン2
66のバッファから得られる。プログラム状態のステー
トメントの1つに予め格納されているプログラム状態数
を配置る、場合判定点アドレスが開始点として用いられ
る。ブロック268では、プログラム状態番号とプログ
ラムループ識別子が上に示したようにそれ等のそれぞれ
の欄に印刷される。ブロック270では、トレーステー
ブルポインタがバッファの次のレコードに増分され、ま
たルーチンがブロック258の処理を続行る、。プログ
ラムは、プログラム状態の全て、およびトレーステーブ
ルに格納された対応る、プログラムループが印刷される
までループ271を反復る、。
Here, DISPLAYHI in block 252 of FIG.
When viewing STORY, the controller prints the header that appeared at the top of the screen as shown above. Next, at block 254, a copy of the trace table and a copy of the trace table printer are stored in a buffer. By storing these trace tables and trace table pointers in a buffer, DISPLA
A snapshot of what was stored in the trace table when the Y_HISTORY request was made is obtained. The reason for such a step is that the trace table is a dynamically changing table, constantly updated, and only the status of the table at the time the request is made is required for analysis. There is a particular thing. At block 256, the system obtains the address stored in the trace table pointer of the last record stored. At block 258, the controller evaluates this address to determine whether the buffer is empty.
. If it is empty, a termination statement is printed and the control returns to its original processing at block 260. If not empty, the trace table is evaluated to determine whether it has pointed to the end of the buffer in block 262;
. When the pointer is at the end of the buffer, the trace table pointer is set to the beginning of the buffer at block 264. Control bags in this way? iH:! , processing the contents of the trace table as if it were an endless loop. Regardless of whether the trace table pointer is at the end of the buffer, the loop identifier and state address are
66 buffers. In the case of placing a pre-stored program state number in one of the program state statements, the decision point address is used as the starting point. At block 268, the program state number and program loop identifier are printed in their respective columns as shown above. At block 270, the trace table pointer is incremented to the next record in the buffer, and the routine continues processing at block 258. The program repeats loop 271 until all of the program states and corresponding program loops stored in the trace table have been printed.

上記の例では、プログラマは、プログラム状態200は
住しるべきではなかったということを予め知っていた。
In the above example, the programmer knew in advance that program state 200 was not to be populated.

プログラマは更に、予期しない条件がDISPLAY 
HISTORYのライン6のプログラム状態1の間に生
じたに違いないということも知っている。プログラマは
、サブルーチンDISI’LAY LINEを呼出すこ
とにより、プログラム状態1で何が生じたかを細かく分
析る、ことができ、また何がプログラム状態をプログラ
ム状態200に変化させたかを正確に決定る、ことがで
きる。DISPLAY LINEはプログラム状態のス
テートメントのリストおよびプログラム状態内のどのス
テートメントが判定点であったか、或いはプログラム状
態のステータスを変化させたかの表示を発生る、。
The programmer may also notice that unexpected conditions
We also know that it must have occurred during program state 1 on line 6 of HISTORY. By calling subroutine DISI'LAY LINE, the programmer can dissect what happened in program state 1 and determine exactly what caused the program state to change to program state 200. Can be done. DISPLAY LINE generates a list of statements in a program state and an indication of which statements within the program state were decision points or changed the status of the program state.

ここで第16図を見ると、サブルーチンDISPLAY
LINEの詳細なブロック図が示しである。このプログ
ラムは端末80 (第1図)からの呼出しを介してプロ
グラマにより直接開始される。ブロック274では、プ
ログラマはDISPLAY HISTORYのプリント
アウトのどのラインの拡大を彼が望んだかを指示る、。
Now, looking at FIG. 16, we see that the subroutine DISPLAY
A detailed block diagram of LINE is shown. This program is started directly by the programmer via a call from terminal 80 (FIG. 1). At block 274, the programmer indicates which lines of the DISPLAY HISTORY printout he wishes to enlarge.

例えば、彼はライン6からライン5までで何が生じたか
に関心があるので、DISPLAYLINEを介してラ
イン6を拡大る、。ブロック274では、DISPLA
Y HISTOPYの所望のライン番号が変数rLin
e CountJに等しくセントされる。ブロック27
6では、制御装置は、選択されたライン番号が有効な番
号の範囲内にあるか否かを決定る、。
For example, he is interested in what happened from line 6 to line 5, so he expands line 6 via DISPLAYLINE. At block 274, DISPLA
The desired line number of Y HISTOPY is the variable rLin.
Cents equal to e CountJ. block 27
At 6, the controller determines whether the selected line number is within a range of valid numbers.

もしない時は、制御装置はブロック278のその正常の
処理に戻る。ライン番号が有効範囲内にあると仮定る、
と、トレーステーブルの最後のデータエントリがブロッ
ク280のトレーステーブルポインタにより指示される
。次に、トレーステーブルポインタはブロック290で
1だけ増分される。ブロック292では、制御装置は、
トレーステーブルポインタがトレーステーブルバッファ
の最後を指示したか否かを決定る、。指示した場合は、
トレーステーブルポインタはブロック292のトレース
テーブルの初めにセットされる。制御装置は、トレース
テーブルポインタがバッファの最後を指示したか否かに
関わらず、rline counLJを評価して、ブロ
ック294でそれが零か否かを決定る、。
If not, the controller returns to its normal processing at block 278. Assuming the line number is within the valid range,
, the last data entry in the trace table is pointed to by the trace table pointer in block 280. The trace table pointer is then incremented by one at block 290. At block 292, the controller:
Determine whether the trace table pointer points to the end of the trace table buffer. If instructed,
The trace table pointer is set to the beginning of the trace table at block 292. The controller evaluates rline_countLJ to determine whether it is zero at block 294, regardless of whether the trace table pointer points to the end of the buffer.

このr 1ine countJが零の時は、所望のプ
ログラム状態がアンカバーされており、DISPLAY
 PROGRAMSTATEがブロック296で呼出さ
れる。rlinecount Jが零に等しくならない
時は、rlinecount Jはlだけ減分され、ト
レーステーブルポインタがブロック290で1だけ増分
される。ループ301は、r 1ine countJ
がブロック296で零になり、指示されたプログラム状
態が見出されるまで反復る、。
When this r1ine countJ is zero, the desired program state is uncovered and DISPLAY
PROGRAMSTATE is called at block 296. When rlinecount J is not equal to zero, rlinecount J is decremented by l and the trace table pointer is incremented by one at block 290. The loop 301 is r 1ine countJ
becomes zero at block 296 and repeats until the indicated program state is found.

第17図はサブルー + 7DISPLAY PROG
RAM 5TATEの詳細ブロック図である。ブロック
304では、制御装置は、トレーステーブルポインタに
より指示されたレコードが空か否かを決定る、。空の時
は、システムは、リクエストされたラインが無効である
というステートメントを端末80に印刷し、306のそ
の正常の処理に戻る。レコードが空でないとる、と、制
御装置はトレーステーブルから判定点のアドレスを抽出
し、308のプログラム状態に対る、開始アドレスを決
定る、。ブロック310では、制御装置はプログラム状
態のテキストを印字る、。ブロック312で、制御装置
は、印字されたステートメントのアドレスをトレーステ
ーブルに格納された判定点アドレスと比較る、ことによ
り、制御装置が「判定点」を印字したか否かをチェック
る、。印字された時は、ステートメントr”DECIS
ION POINT”Jがブロック314で印字される
。判定点が印字されてない時は、制′4B装置はブロッ
ク316のプログラム状態で次のステートメントに進む
。ブロック318で、制御装置は、次のステートメント
が状態区切ステートメントか、状態ステートメントか、
ポーズ状態ステートメントか、或いはブレーク状態ステ
ートメントかを決定る、。もし、これ等の3つのステー
トメントのいずれかが得られた時は、制御装置はブロッ
ク320のその正常処理に戻る。もし3つのステートメ
ントのどれも得られない時は、プログラム状態の全ての
ステートメントが印字されるまで、処理はループ322
を介して続行される。
Figure 17 shows subblue + 7DISPLAY PROG
It is a detailed block diagram of RAM 5TATE. At block 304, the controller determines whether the record pointed to by the trace table pointer is empty. When empty, the system prints a statement to terminal 80 that the requested line is invalid and returns to its normal processing at 306. If the record is not empty, the controller extracts the address of the decision point from the trace table and determines the starting address for the program state at 308. At block 310, the controller prints the text of the program status. At block 312, the controller checks whether the controller has printed a "decision point" by comparing the address of the printed statement with the decision point address stored in the trace table. When printed, the statement r”DECIS
ION POINT"J is printed at block 314. If no decision point is printed, the controller advances to the next statement in the program state of block 316. At block 318, the controller prints the next statement. is a state delimiter statement or a state statement,
Determine whether it is a pause state statement or a break state statement. If any of these three statements are obtained, the controller returns to its normal processing at block 320. If none of the three statements are available, processing loops 322 until all statements in the program state have been printed.
will continue through.

第18図はDISPLAY LOOPのブロック図であ
る。
FIG. 18 is a block diagram of DISPLAY LOOP.

このDISPLAY LOOPはタスクテーブルの中身
を表示る、サブルーチンである。以下に示すスクリーン
の表示例を見ると、ループ識別子が水平軸線内に与えら
れ、またプログラムループの各々内のアクティブプログ
ラム状態がプログラムループ識別子の各々の下方で垂直
方向に指示されている。以下に示したものはDISPL
AY LOOPの出力のスクリーン表示例である。
This DISPLAY LOOP is a subroutine that displays the contents of the task table. Referring to the example screen display shown below, the loop identifiers are provided in the horizontal axis and the active program state within each of the program loops is indicated vertically below each of the program loop identifiers. The ones shown below are DISPL
This is an example of a screen display of the output of AY LOOP.

プログラムループ識別子 12345  ・・−3031 プログラム状B識別子 第18図のブロック324では、制御装置は、上に示し
たように、スクリーン表示の第1ラインに示したように
ループ識別子を印字る、コマンドを受ける。ブロック3
26はタスクテーブルの第1プログラムループポインタ
にタスクテーブルレジスタをセットる、。rloop 
countJと呼ばれる変数がブロック328で零にセ
ットされる。ブロック330でrLoop count
Jが1だけ増分される。この時、制御装置は「1oop
 countJがプログラムループの最大数+テキスト
テーブルで格納できる数に等しいか否かを決定る、。こ
の条件が真の時は、制御装置はブロック334のその元
の処理に戻る。
PROGRAM LOOP IDENTIFIER 12345...-3031 PROGRAMMED B IDENTIFIER In block 324 of FIG. receive. block 3
26 sets the task table register to the first program loop pointer of the task table. rloop
A variable called countJ is set to zero at block 328. rLoop count at block 330
J is incremented by one. At this time, the control device
Determine whether countJ is equal to the maximum number of program loops + the number that can be stored in the text table. If this condition is true, the controller returns to its original processing at block 334.

ループカウントがプログラムループの最大数+1に等し
くない時は、制御装置は関連る、タスクテーブルポイン
タからループ識別子を得る。ブロック338では、ルー
プ識別子は、これが零に等しいか否かを決定る、ために
チェックされる。もしこのプログラムループ識別子が零
に等しい時は、システムはブロック340のその正常処
理に戻る。プログラムループ識別子が零に等しくないと
る、と、制御装置は、ブロック342で、ループ識別子
が「1oop countJに等しいか否かを決定る、
。もし、ループ識別子がr 1oop countJに
等しい時は、ブロック340でサブルーチンLOOP 
FOllNDが呼出される。もし、プログラムループ識
別子が「1oopcount Jに等しくない時は、制
御装置は348で次のループ位置へスクリーンを横切っ
て進む。
When the loop count is not equal to the maximum number of program loops plus one, the controller obtains the loop identifier from the associated task table pointer. At block 338, the loop identifier is checked to determine if it is equal to zero. If this program loop identifier is equal to zero, the system returns to its normal processing at block 340. If the program loop identifier is not equal to zero, the controller determines whether the loop identifier is "equal to 1oop countJ" at block 342.
. If the loop identifier is equal to r 1oop countJ, block 340 calls subroutine LOOP
FOllND is called. If the program loop identifier is not equal to ``1oopcount_J'', the controller advances across the screen to the next loop position at 348.

rLoop countJはブロック350で1だけ増
分され、またブロック328の後のブロックが、タスク
テーブルにこれ以上アクティブプログラムループがなく
なるまで、反復される。
rLoop countJ is incremented by one at block 350, and the blocks after block 328 are repeated until there are no more active program loops in the task table.

第19図はサブルーチンFOUND LOOPの詳細ブ
ロック図である。ブロック354では、プログラムポイ
ンタに格納されたアクティブプログラム状態の開始アド
レスがプログラム状態の予め格納されたステートメント
から抽出される。ブロック356では、タスクテーブル
ポインタが次のプログラムループポインタに増分され、
制御装置は第18図の364のルーチンDISPLAY
 LOOPに戻る。
FIG. 19 is a detailed block diagram of the subroutine FOUND LOOP. At block 354, the starting address of the active program state stored in the program pointer is extracted from the previously stored statement of the program state. At block 356, the task table pointer is incremented to the next program loop pointer;
The control device uses the routine DISPLAY of 364 in FIG.
Return to LOOP.

以上、本発明は例示として好ましい実施例により説明し
て来たが、本発明はこれに限定されるものではない。当
業者には明らかなように、本発明の精神と範囲から逸脱
せずに多くの変形、改良が可能である。例えば、本発明
の実施には幾つかの相異なるソフトウェア技法および任
意の数の相異なるソフトウェア言語が通る、可能性があ
る。
Although the present invention has been described above using preferred embodiments by way of illustration, the present invention is not limited thereto. Many variations and modifications can be made without departing from the spirit and scope of the invention, as will be apparent to those skilled in the art. For example, the invention may be implemented through several different software techniques and any number of different software languages.

【図面の簡単な説明】[Brief explanation of the drawing]

第1図は本発明による機械或いプロセスの動作を制j’
tllる、プログラマブル制御装置、第2図(a)はエ
レベータの各種動作状態および状態間で遷移を慧起させ
る条件を示す状態図、第2図(b)は第2a図の状態図
の動作状態に対応る、ステートメントのブロックの図、
第2図(c)はプログラムコードの構造を強調した図、 第2図(d)はより複雑な場合の状態図、第3図(a)
はプログラムループポインタを示し図、 第3図(b)はタスクテーブルを示す図、第3図(c)
はタスクテーブルポインタを示す図、 第4図はエンドレスループの形で示したトレーステーブ
ルの論理図、 第5図は5TART PROGRAMと呼ばれるサブル
ーチンの概略図、 第6図はFIR5T 0PERATORと呼ばれるサブ
ルーチンの概略図、 第7図はサブル−チアADVANCE P−CODE 
POINTERの概略図、 第8図は+ 7”/I/ −−5−7ADVANCE 
TASK TABLE1?EGISTERの概略図、 第9図はサブルーチアNEXT 0PERATOR(7
)概略図、第10図はサブルーチンGOToの概略図、
第11図はサブルーチン5TARTの概略図、第12図
はサブルーチンGo 5UBROUTINEの概略図、 第13図はサブルーチンRETURNの概略図、第14
図は5TORE HISTORYと呼ばれるサブルーチ
ンの概略図、 第15図はDISPLAY HISTORYと呼ばれる
デバッグルーチンの概略図、 第16図はDISPLAY L4NEと呼ばれるデバッ
グルーチンの概略図、 第17図はDISPLAY PROGRAM 5TAT
Eと呼ばれるデバッグルーチンの概略図、 第18図はデバッグルーチンDISPLAY LOOP
の概略図、 第19図はデバッグルーチンFOUND LOOPの概
略図である。 10・・・プログラム式制御装置、 10A・・・メモリ部、    12・・・エレベータ
、24 、26 、28・・・状態図のノード、30 
、32 、34 、36 、54 、56 、58 、
60・・・状態図の接続円弧、 46 、63 、65 、67 、69 、100・・
・プログラムループ、48 、50 、52・・・ブロ
ック、62 、64 、66・・・状態図、 68・・
・タスクテーブル、70・・・中央処理装置、 72 、82・・・トレーステーブル、74・・・デバ
ッグモニタ、 80・・・端末、 84 、90 、100.102.104,106.1
08・・・ポインタ、108・・・レコード、   1
12・・・レジスタ、92・・・識別子。
FIG. 1 shows a method for controlling the operation of a machine or process according to the invention
FIG. 2(a) is a state diagram showing the various operating states of the elevator and the conditions that induce transitions between the states; FIG. 2(b) is the operating state of the state diagram of FIG. 2a. A diagram of a block of statements, corresponding to
Figure 2(c) is a diagram emphasizing the structure of the program code, Figure 2(d) is a state diagram for a more complex case, and Figure 3(a)
Figure 3(b) shows the program loop pointer, Figure 3(b) shows the task table, Figure 3(c) shows the program loop pointer.
Figure 4 is a logical diagram of the trace table shown in the form of an endless loop. Figure 5 is a schematic diagram of a subroutine called 5TART PROGRAM. Figure 6 is a schematic diagram of a subroutine called FIR5T 0PERATOR. , Figure 7 shows the sub-routine ADVANCE P-CODE.
Schematic diagram of POINTER, Figure 8 shows +7”/I/--5-7ADVANCE
TASK TABLE1? A schematic diagram of EGISTER, Figure 9 shows the subroutine NEXT 0PERATOR (7
) Schematic diagram, Figure 10 is a schematic diagram of the subroutine GOTo,
Fig. 11 is a schematic diagram of subroutine 5TART, Fig. 12 is a schematic diagram of subroutine Go 5UBROUTINE, Fig. 13 is a schematic diagram of subroutine RETURN, and Fig. 14 is a schematic diagram of subroutine RETURN.
The figure is a schematic diagram of a subroutine called 5TORE HISTORY, Figure 15 is a schematic diagram of a debug routine called DISPLAY HISTORY, Figure 16 is a schematic diagram of a debug routine called DISPLAY L4NE, and Figure 17 is a schematic diagram of a debug routine called DISPLAY PROGRAM 5TAT.
A schematic diagram of the debug routine called E, Figure 18 shows the debug routine DISPLAY LOOP.
FIG. 19 is a schematic diagram of the debug routine FOUND LOOP. DESCRIPTION OF SYMBOLS 10... Program type control device, 10A... Memory part, 12... Elevator, 24, 26, 28... Nodes of state diagram, 30
, 32 , 34 , 36 , 54 , 56 , 58 ,
60... Connecting arcs of state diagram, 46 , 63 , 65 , 67 , 69 , 100...
・Program loop, 48, 50, 52...Block, 62, 64, 66...State diagram, 68...
- Task table, 70... Central processing unit, 72, 82... Trace table, 74... Debug monitor, 80... Terminal, 84, 90, 100.102.104, 106.1
08...Pointer, 108...Record, 1
12...Register, 92...Identifier.

Claims (1)

【特許請求の範囲】 1、1つ以上の状態図をエミュレートし、且つ少なくと
も1つの機械或いはプロセスの動作状態を制御するプロ
グラム式制御装置であって、該装置は、 (a)複数のステートメントのブロックからなるアプリ
ケーションプログラムを実行する手段であって、該ステ
ートメントのブロックの各々が前記機械或いはプロセス
の動作状態の1つに対応し、更に前記ブロックの少なく
とも幾つかが、前記ブロックの次のものの実行を規定す
る1つ以上の複合ステートメントと前記機械或いはプロ
セスによる対応する動作状態時に取られる動作とから構
成され、前記ブロックの少なくとも若干のものがその他
のブロックの場合とは異なる前記の取られる動作を規定
し、前記アプリケーションプログラムが前記1つ以上の
状態図の各々に対応する1つ以上のプログラムループか
らなり、該プログラムループの各々が前記ブロックの少
なくとも1つから構成されてなる前記アプリケーション
プログラムの実行手段、および、 (b)前記プログラムループの少なくとも1つがその実
行のためにアクティブになることを可能にする手段と、
前記ブロックの1つだけが、前記少なくともアクティブ
プログラムループの任意の1時間点においてアクティブ
になって実行されることを可能にする手段、を具備し、 (c)前記実行手段は、前記アクティブプログラムルー
プ内の前記アクティブブロックの前記複合ステートメン
トを実行して、前記ブロックの実行シーケンスを制御し
且つ前記機械或いはプロセスの前記動作を制御する手段
を具備する、 プログラム式制御装置。 2、前記可能にする手段は前記アクティブブロックの開
始アドレスを格納する、前記少なくとも1つのアクティ
ブプログラムループに関係するポインタからなり、且つ
該ポインタがアクティブブロックからなるアクティブプ
ログラムループを表示する識別子を具備する、特許請求
の範囲第1項記載の装置。 3、前記可能にする手段は前記少なくとも1つのアクテ
ィブプログラムループと関係してアクティブプログラム
ループの識別子を格納するポインタからなり、且つ該ポ
インタはアクティブブロックからなるアクティブプログ
ラムループを示す識別子を具備する、特許請求の範囲第
1項記載の装置。 4、前記少なくとも1つのアクティブプログラムループ
に関係する前記ポインタの各々を格納して複数の前記少
なくとも1つのアクティブプログラムループのマルチタ
スク動作を容易にし、且つ前記少なくとも1つのアクテ
ィブプログラムループの実行シーケンスを制御する手段
を更に具備する、特許請求の範囲第2項または3項に記
載の装置。 5、前記ステートメントのアクティブブロックと前記少
なくとも1つのプログラムループの実行シーケンスを示
す情報を記録する手段を更に具備する、特許請求の範囲
第1項記載の装置。 6、当該制御装置は次の被実行ブロックの選択に応じた
条件を示す手段からなり、且つ前記情報を記録する手段
は1つ以上の前記条件と、対応する動作状態の間に取ら
れる前記動作を格納する手段を具備する、特許請求の範
囲第5項記載の装置。 7、前記アクティブブロックと前記少なくとも1つのア
クティブプログラムループに関する記録された情報を表
示する手段を更に具備する、特許請求の範囲第5項また
は6項に記載の装置。 8、1つ以上の状態図をエミュレートし、且つ少なくと
も1つの機械或いはプロセスの動作状態を制御するプロ
グラム式制御装置を使用する方法であって、 (a)複数のステートメントのブロックからなるアプリ
ケーションプログラムを実行するステップであって、前
記ステートメントのブロックの各々が前記機械或いはプ
ロセスの動作状態の1つに対応し、そして前記ブロック
の少なくとも若干のものが次の前記被実行ブロックと、
機械或いはプロセスにより対応する動作状態時に取られ
る動作とを規定する1つ以上の複合ステートメントから
なり、前記ブロックの少なくとも若干のものがその他の
ブロックとは異なる前記の取られる動作を規定し、前記
アプリケーションプログラムは少なくとも前記ブロック
の1つからなるプログラムループにより前記1つ以上の
状態図の各々を代表してなるステップ、 (b)前記プログラムループの少なくとも1つがアクテ
ィブになって実行されることを可能にし、且つ前記ブロ
ックのうちの1つだけが前記少なくとも1つのアクティ
ブプログラムループの任意の1時間点においてアクティ
ブになって実行されることを可能にするステップ、そし
て、 (c)前記アクティブプログラムループの各々のうちの
前記アクティブブロックの各々を実行して、前記ブロッ
クの実行シーケンスを制御し且つそれにより前記機械或
いはプロセスの動作を制御する実行ステップ、を具備す
る、プログラム式制御装置を使用する方法。 9、前記可能にするステップは、前記アクティブブロッ
クの識別子を前記少なくとも1つのアクティブプログラ
ムループに関係するポインタに格納し、且つアクティブ
ブロックからなる前記少なくとも1つのアクティブプロ
グラムループの識別子を格納するステップを具備する、
特許請求の範囲第8項記載の方法。 10、前記可能にするステップは、前記アクティブブロ
ックの開始アドレスを前記少なくとも1つのアクティブ
プログラムループに関係するポインタに格納し、且つア
クティブブロックからなる前記少なくとも1つのアクテ
ィブプログラムループの識別子を格納するステップを具
備する、 特許請求の範囲第8項記載の方法。 11、前記少なくとも1つのアクティブプログラムルー
プに関係する前記ポインタの各々を格納して、複数の前
記少なくとも1つのアクティブプログラムループのマル
チタスク動作を容易にし、且つ前記少なくとも1つのア
クティブプログラムループの実行シーケンスを制御する
ステップを更に具備する、特許請求の範囲第9項または
10項記載の方法。 12、前記アクティブブロックおよび前記少なくとも1
つのアクティブプログラムループの実行シーケンスを示
す情報を記録するステップを更に具備する、特許請求の
範囲第8項記載の方法。 13、当該方法は次の被実行ブロックの選択に応じた条
件を示すステップを具備し、且つ前記情報を記録するス
テップは1つ以上の前記条件と、対応する動作状態の間
に取られる前記動作とを記録するステップを包含する、
特許請求の範囲第12項記載の方法。 14、前記ブロックおよび前記少なくとも1つのアクテ
ィブプログラムループに記録された情報を表示するステ
ップを更に具備する特許請求の範囲第12項または13
項記載の方法。 15、1つ以上の状態図をエミュレートし、且つ少なく
とも1つの機械或いはプロセスの動作状態を制御するプ
ログラム式制御装置であって、該装置は、 (a)複数のステートメントのブロックからなるアプリ
ケーションプログラムであって、前記ステートメントの
ブロックの各々が前記機械或いはプロセスの動作状態の
1つに対応し、そして前記ステートメントのブロックの
少なくとも若干のものは、次の前記被実行ブロックと機
械或いはプロセスによる対応する動作状態の間に取られ
る動作とを規定する1つ以上の複合ステートメントから
なり、少なくとも若干のブロックはその他のブロックと
は異なる前記の取られる動作を規定し、前記アプリケー
ションプログラムは前記1つ以上の状態図の各々に対応
する1つ以上のプログラムループからなり、該プログラ
ムループの各々は前記ステートメントのブロックの少な
くとも1つからなるもの、および、 (b)前記プログラムループの少なくとも1つがアクテ
ィブになって実行されることを可能にする手段および前
記ステートメントのブロックの1つだけが前記アクティ
ブプログラムループ中の任意の1時点でアクティブにな
り実行に供されることを可能にする手段、を具備し、 (c)該使用可能にする手段は、前記少なくとも1つの
アクティブプログラムループを指示する手段を具備し、
該指示手段はアクティブブロックの識別子を格納する手
段およびアクティブブロックからなるプログラムループ
を示す識別子を格納する手段を具備し、 該装置は、 (d)前記指示手段の各々を格納して、複数の前記少な
くとも1つのプログラムループのマルチタスク動作を容
易にし、且つ前記少なくとも1つのアクティブプログラ
ムループの実行シーケンスを制御する手段 を具備し、 (e)前記実行手段は、各々の前記アクティブプログラ
ムループと共に各々の前記アクティブブロック内の前記
複合ステートメントを実行して、前記ブロックの実行シ
ーケンスを制御し、且つ機械或いはプロセスの動作状態
により前記の処置を制御する手段を具備する、 プログラム式制御装置。 16、前記少なくとも1つのアクティブプログラムルー
プに関係する前記指示手段はアクティブブロックの開始
アドレスを格納する手段、およびアクティブプログラム
状態からなる少なくとも1つのアクティブプログラムル
ープを示す識別子を格納する手段を具備する、特許請求
の範囲第15項記載の装置。 17、前記アクティブブロックおよび前記少なくとも1
つのアクティブプログラムループの実行シーケンスを示
す情報を記録する手段を更に具備する、特許請求の範囲
第15項記載の装置。 18、当該制御装置は次の被実行ブロックの選択に応じ
た条件を示す手段を具備し、且つ該情報記録手段は1つ
以上の前記条件および対応する動作状態時に取られる前
記動作とを格納する手段を具備する、特許請求の範囲第
17項記載の装置。 19、前記アクティブブロックおよび前記少なくとも1
つのアクティブプログラムループに関する記録情報を表
示する手段を更に具備する、特許請求の範囲第5項また
は第6項記載の装置。 20、前記ステートメントのアクティブブロックと前記
の少なくとも1つのプログラムループの実行シーケンス
を示す情報を記録する手段を更に具備する、特許請求の
範囲第16項記載の装置。 21、当該制御装置は次の被実行ブロックの選択に応じ
た条件を示す手段を具備し、且つ前記情報を記録する手
段は1つ以上の前記条件と対応する動作状態時に取られ
る前記動作を格納する手段を具備する、特許請求の範囲
第20項記載の装置。 22、前記アクティブブロックと前記少なくとも1つの
アクティブプログラムループに関する記録情報を表示す
る手段を更に具備する特許請求の範囲第20項または第
21項に記載の装置。 23、1つ以上の状態図をエミュレートし且つ少なくと
も1つの機械或いはプロセスの動作状態を制御するプロ
グラム式制御装置を使用する方法であって、 (a)複数のステートメントのブロックからなるアプリ
ケーションプログラムを実行するステップであって、前
記ステートメントのブロックの各々が前記機械或いはプ
ロセスの動作状態の1つに対応し、そして前記ブロック
の少なくとも若干のものは、次の前記被実行ブロックを
規定する1つ以上の複合ステートメントと機械或いはプ
ロセスにより対応する動作状態の間に取られる動作とか
らなり、前記ブロックの少なくとも若干のものはその他
のブロックとは異なって取られる前記処置を規定し、ア
プリケーションプログラムは前記ブロックの少なくとも
1つからなるプログラムループにより前記1つ以上の状
態図の各々を表わしてなる前記ステップと、 (b)前記プログラムループの少なくとも1つがアクテ
ィブになって実行されることを可能にし、且つ前記ブロ
ックの1つのブロックだけが前記少なくとも1つのアク
ティブプログラムループの任意の1時点でアクティブに
なり実行されることを可能にするステップを具備し、 (c)該可能にするステップはアクティブブロックの識
別子をポインタに格納するステップと、識別子を前記ポ
インタに格納してアクティブブロックからなる少なくと
も1つのアクティブプログラムループを示すステップを
具備し、更に、(d)前記少なくとも1つのアクティブ
プログラムループに関係する前記ポインタの各々を格納
して複数の前記少なくとも1つのアクティブプログラム
ループのマルチタスク動作を容易にし且つ前記少なくと
も1つのアクティブプログラムループの実行シーケンス
を制御するステップと、更に(e)前記アクティブプロ
グラムループの各々と共に前記アクティブブロックの各
々の前記複合ステートメントを実行して、前記ブロック
の実行シーケンスを制御し且つ機械或いはプロセスの前
記動作を制御するステップを具備する、 プログラム式制御装置を使用する方法。 24、前記情報をポインタに格納するステップはアクテ
ィブブロックの開始アドレスを格納し、且つアクティブ
ブロックからなる少なくとも1つのアクティブプログラ
ムループを示す識別子を格納するステップを具備する、
特許請求の範囲第23項に記載の方法。 25、前記ステートメントのアクティブブロックと前記
少なくとも1つのアクティブプログラムループの実行シ
ーケンスを示す情報を記録するステップを更に具備する
、特許請求の範囲第23項記載の方法。 26、当該方法は次の被実行ブロックの選択に応じた条
件を示すステップからなり、且つ前記情報を記録するス
テップは1つ以上の前記条件と、対応する動作状態の間
に取られる前記動作を記録するステップを含む、特許請
求の範囲第25項記載の方法。 27、前記ブロックおよび前記少なくとも1つのアクテ
ィブプログラムループに関する記録情報を表示するステ
ップを更に具備する、特許請求の範囲第25項または第
26項記載の方法。 28、前記ステートメントのアクティブブロックと前記
少なくとも1つのアクティブプログラムループの実行シ
ーケンスを示す情報を記録するステップを更に具備する
、特許請求の範囲第25項または第26項記載の方法。 29、当該方法は次の被実行ブロックの選択に応じた条
件を示すステップからなり、且つ前記情報を記録するス
テップは1つ以上の前記条件と、対応する動作状態の間
に取られる前記処置を記録するステップを含む、特許請
求の範囲第28項記載の方法。 30、前記ブロックおよび前記少なくとも1つのアクテ
ィブプログラムループに関する記録情報を表示するステ
ップを更に具備する、特許請求の範囲第28項または第
29項記載の方法。 31、1つ以上の状態図をエミュレートして少なくとも
1つの機械或いはプロセスの動作状態を制御するプログ
ラム式制御装置であって、該装置は、複数のステートメ
ントのブロックからなるアプリケーションプログラムを
実行する手段を具備し、そして前記ブロックの各々は前
記動作状態の1つに対応し、そして前記ブロックの少な
くとも若干のものは次の被実行ブロックを規定する1つ
以上の複合ステートメントと、機械或いはプロセスによ
り対応する動作状態の間に取られる動作からなり、前記
アプリケーションプログラムは1つ以上の状態図の各々
に対応する1つ以上のプログラムループを具備し、該プ
ログラムループの各々は前記ブロックの少なくとも1つ
を具備し、そして前記プログラム式制御装置はオペレー
ティングシステムのソフトウェアを具備し、該ソフトウ
ェアは、(a)前記プログラムループの少なくとも1つ
のプログラムループがアクティブになって、実行される
ことを可能にする手段と、前記ステートメントのブロッ
クの1つだけが前記アクティブプログラムループの任意
の1時点でアクティブになって実行されることを可能に
する手段を具備し、そして (b)該可能にする手段は前記少なくとも1つのアクテ
ィブプログラムループを指示する手段からなり、該指示
手段はアクティブブロックの識別子を格納する手段と、
アクティブブロックからなるプログラムループを示す識
別子を格納する手段を具備し、そして前記ステートメン
トは更に、(c)前記指示手段の各々を格納して複数の
前記少なくとも1つのプログラムループのマルチタスク
動作を容易にし、且つ前記少なくとも1つのアクティブ
プログラムループの実行シーケンスを制御する手段と、 (d)前記アクティブプログラムループと共に前記アク
ティブブロックの各々の前記複合ステートメントを実行
して、前記ブロックの実行シーケンスを制御し、且つ機
械或いはプロセスの動作状態により前記動作を制御する
手段を具備する、プログラム式制御装置。 32、前記少なくとも1つのアクティブプログラムルー
プに関係する前記指示手段はアクティブブロックの開始
アドレスを格納する手段と、アクティブブロックからな
る少なくとも1つのアクティブプログラムループを示す
識別子を格納する手段を具備する、特許請求の範囲第3
1項に記載の装置。 33、前記アクティブブロックおよび前記少なくとも1
つのアクティブプログラムループの実行シーケンスを示
す情報を記録する手段を更に具備する、特許請求の範囲
第31項または第32項記載の装置。 34、前記アクティブブロックおよび前記少なくとも1
つのアクティブプログラムループに関する記録情報を表
示する手段を更に具備する、特許請求の範囲第33項記
載の装置。 35、1つ以上の状態図をエミュレートして少なくとも
1つの機械またはプロセスの動作状態を制御するプログ
ラム式制御装置に用いられるオペレーティングシステム
ソフトウェアであって、複数のステートメントのブロッ
クからなるアプリケーションプログラムを実行する手段
を具備し、前記ブロックの各々は前記動作状態の1つに
対応し、そして前記ブロックの少なくとも若干のものは
、次の被実行ブロックを規定する1つ以上の複合ステー
トメントと、機械またはプロセスにより対応する動作状
態の間に取られる処置とを具備し、前記アプリケーショ
ンプログラムは1つ以上の状態図の各々に対応する1つ
以上のプログラムループを具備し、該プログラムループ
の各々は少なくとも前記ブロックの1つを具備し、オペ
レーティングシステムは、 (a)前記プログラムループの少なくとも1つのプログ
ラムループがアクティブになって実行されることを可能
にする手段と、前記ステートメントのブロックの1つだ
けが前記アクティブプログラムループ内の任意の1時間
点でアクティブになって実行されることを可能にする手
段を具備し、(b)該可能にする手段は前記少なくとも
1つのアクティブプログラムループを指示する手段から
なり、該指示手段は、アクティブブロックの識別子を格
納する手段とアクティブブロックからなるプログラムル
ープを示す識別子を格納する手段を具備し、前記オペレ
ーティングシステムは更に、(c)前記少なくとも1つ
のプログラムループを指示する前記手段の各々を格納し
て、複数の前記少なくとも1つのプログラムループのマ
ルチタスク動作を容易にし、且つ前記少なくとも1つの
アクティブプログラムループの実行シーケンスを制御す
る手段と、 (d)前記アクティブプログラムループと共に前記アク
ティブブロックの各々の前記複合ステートメントを実行
して、前記ブロックの実行シーケンスを制御し且つ機械
或いはプロセスの動作状態による前記動作を制御する手
段を具備する、オペレーティングシステムソフトウェア
。 36、前記少なくとも1つのアクティブプログラムルー
プに関係する前記指示手段は、アクティブブロックの開
始アドレスを格納する手段と、アクティブプログラム状
態からなる少なくとも1つのアクティブプログラムルー
プを示す識別子を格納する手段とを具備する、特許請求
の範囲第35項記載の装置。 37、前記アクティブブロックおよび前記少なくとも1
つのアクティブプログラムループの実行シーケンスを示
す情報を記録する手段を更に具備する、特許請求の範囲
第35項または36項記載の装置。 38、前記ブロックおよび前記少なくとも1つのアクテ
ィブプログラムループに関する記録情報を表示する手段
を更に具備する、特許請求の範囲第37項記載の装置。 39、1つ以上の状態図をエミュレートし且つ少なくと
も1つの機械またはプロセスの動作状態を制御するオペ
レーティングシステムを構成する方法であって、複数の
ステートメントのブロックからなるアプリケーションプ
ログラムを実行するステップを具備し、前記ブロックの
各々が前記動作状態の1つに対応し、そして前記ブロッ
クの少なくとも若干のものが、次の前記被実行ブロック
を規定する1つ以上の複合ステートメントと、対応する
動作状態の間に取られる動作とからなり、前記アプリケ
ーションプログラムが1つ以上の状態図の各々に対応す
る1つ以上のプログラムループを具備し、該プログラム
ループの各々が少なくとも前記ブロックの1つを具備す
るオペレーティングシステムを構成する方法であって、
該方法は、(a)前記プログラムループの少なくとも1
つがアクティブになって実行されることを可能にし、且
つ前記ブロックのうちの1つだけが前記少なくとも1つ
のアクティブプログラムループ内の任意の1時間点でア
クティブになって実行されることを可能にするステップ
を具備し、 (b)該可能にするステップは、アクティブブロックの
識別子をポインタに格納するステップと、アクティブブ
ロックからなる少なくとも1つのアクティブプログラム
ループを示す識別子を格納するステップを具備し、更に (c)前記アクティブプログラムループと共に前記アク
ティブブロックの各々の前記複合ステートメントを実行
して、前記ブロックの実行シーケンスを制御し且つ機械
或いはプロセスの前記動作を制御するステップと、 (d)前記少なくとも1つのアクティブプログラムルー
プに関係する前記ポインタの各々を記憶手段に格納して
、複数の前記少なくとも1つのアクティブプログラムル
ープのマルチタスク動作を容易にし、且つ前記少なくと
も1つのアクティブプログラムループの実行シーケンス
を制御するステップを具備する、 オペレーティングシステムを構成する方法。 40、情報をポインタに格納するステップはアクティブ
ブロックの開始アドレスを格納するステップと、アクテ
ィブブロックからなる少なくとも1つのアクティブプロ
グラムループを示す識別子を格納するステップを具備す
る、特許請求の範囲第39項記載の方法。 41、前記ステートメントのアクティブブロックと前記
少なくとも1つのアクティブプログラムループの実行シ
ーケンスを示す情報を記録するステップを更に具備する
特許請求の範囲第39項または第40項に記載の方法。 42、前記ブロックおよび前記少なくとも1つのアクテ
ィブプログラムループに関する記録情報を表示するステ
ップを更に具備する、特許請求の範囲第40項または第
41項記載の方法。 43、1つ以上の状態図をエミュレートして、少なくと
も1つの機械或いはプロセスの動作状態を制御するプロ
グラム式制御装置であって、該装置は、 (a)複数のステートメントのブロックからなるアプリ
ケーションプログラムの実行手段であって、実行された
時の前記ステートメントのブロックの各々はプログラム
状態であり、そして該プログラム状態の各々は前記機械
或いはプロセスの動作状態の1つに対応し、そしてブロ
ックの少なくとも若干のものは、次の前記被実行ブロッ
クを規定する1つ以上の複合ステートメントと機械によ
り対応する動作状態の間に取られる動作からなり、前記
プログラム状態の少なくとも若干のものが取られるべき
異なる処置を規定してなる前記実行手段、および、 (b)前記プログラムループの少なくとも1つがアクテ
ィブになることを可能にし、且つ前記ブロックの1つだ
けが任意の1時点において前記アクティブプログラムル
ープ内でアクティブになることを可能にするステップ、
を具備し、 (c)該可能にする手段は、前記少なくとも1つのアク
ティブプログラムループを指示する手段を具備し、該指
示手段はアクティブブロックに対する識別子を格納する
手段からなり、また前記ポインタの各々は、アクティブ
ブロックからなるプログラムループを示す識別子を有し
てなり、更に(d)各々の前記アクティブプログラムと
共に各前記アクティブブロック内の前記複合ステートメ
ントを実行して、前記ブロックの実行シーケンスを制御
し且つ機械或いはプロセスの動作状態による前記動作を
制御する手段、を具備する、プログラム式制御装置。 44、前記少なくとも1つのアクティブプログラムルー
プを指示する前記手段は、アクティブブロックの開始ア
ドレスを格納する手段と、アクティブブロックからなる
アクティブプログラムループを示す識別子を格納する手
段を具備する、特許請求の範囲第43項記載の装置。 45、前記少なくとも1つのアクティブプログラムルー
プを指示する前記手段の各々を記憶手段に格納して、複
数の前記少なくとも1つのアクティブプログラムループ
のマルチタスク動作を容易にし、且つ前記少なくとも1
つのアクティブプログラムループの実行シーケンスを制
御する手段を更に具備する、特許請求の範囲第43項ま
たは第44項に記載の装置。 46、前記アクティブプログラム状態と前記少なくとも
1つのアクティブプログラムループの実行シーケンスを
示す情報を記録する手段を更に具備する、特許請求の範
囲第44項または第45項に記載の装置。 47、当該制御装置は次の被実行プログラム状態の選択
に応じた条件を示す手段からなり、前記情報を記録する
手段は1つ以上の前記条件と対応する動作状態の間に取
られる前記動作とを格納する手段を具備する、特許請求
の範囲第46項記載の装置。 48、前記アクティブプログラム状態と前記少なくとも
1つのアクティブループとに関する記録情報を表示する
手段を更に具備する、特許請求の範囲第46項または第
47項に記載の装置。 49、1つ以上の状態図をエミュレートし且つ少なくと
も1つの機械或いはプロセスの動作状態を制御するプロ
グラム式制御装置を使用する方法であって、該方法は、 (a)複数のステートメントのブロックからなるアプリ
ケーションプログラムを実行するステップであって、実
行時の前記ブロックの各々はプログラム状態であり、ま
た該プログラム状態の各々は前記機械或いはプロセスの
動作状態の1つに対応し、前記ブロックの少なくとも若
干のものは、次の前記被実行ブロックを規定する1つ以
上の複合ステートメントと、機械により対応する動作状
態の間に取られる作用とからなり、前記ブロックの少な
くとも若干のものはその他のブロックとは異なって取ら
れる動作を規定し、前記アプリケーションプログラムは
前記1つ以上の状態図の各々に対応する1つ以上のプロ
グラムループを具備し、該プログラムループの各々は少
なくとも前記ブロックの若干のものを具備する、前記ア
プリケーションプログラムを実行するステップ、および
、(b)前記プログラムループの少なくとも1つがアク
ティブになることを可能にし、且つ前記ブロックの1つ
だけが任意の1時間点における前記少なくとも1つのア
クティブプログラムループにおいてアクティブになるこ
とを許容するステップ、を具備し、 (c)該可能にするステップは、前記アクティブブロッ
クの開始アドレスをポインタに格納し、且つ前記少なく
とも1つのプログラムループの識別子を前記ポインタと
共に格納するステップを具備し、更に (d)前記少なくとも1つのアクティブプログラムルー
プに関係する前記ポインタの各々を格納して、複数の前
記少なくとも1つのアクティブプログラムループのマル
チタスク動作を容易にし且つ前記少なくとも1つのアク
ティブプログラムループの実行シーケンスを制御するス
テップを具備する、 プログラム式制御装置を使用する方法。 50、前記ポインタに情報を格納するステップは、アク
ティブブロックの開始アドレスを格納するステップと、
アクティブブロックからなるアクティブプログラムルー
プを示す識別子を格納するステップを具備する、特許請
求の範囲第49項記載の方法。 51、前記少なくとも1つのアクティブプログラムルー
プに関係するポインタを記憶手段に格納して、複数の前
記少なくとも1つのアクティブプログラムループのマル
チタスク動作を容易にし且つ前記少なくとも1つのアク
ティブプログラムループの実行シーケンスを制御するス
テップを更に具備する、特許請求の範囲第49項または
第50項に記載の方法。 52、前記アクティブブロックと前記少なくとも1つの
アクティブプログラムループの実行シーケンスを示す情
報を記録するステップを更に具備する、特許請求の範囲
第49項または第50項に記載の方法。 53、当該制御装置は次の被実行ブロックの選択に応じ
た条件を示す手段を具備し、前記情報を記録するステッ
プは1つ以上の前記条件および対応する動作状態の間に
取られる前記動作を記録するステップを含む、特許請求
の範囲第52項記載の方法。 54、前記アクティブブロックと前記少なくとも1つの
アクティブプログラムループに関する記録情報を表示す
るステップを更に具備する、特許請求の範囲第52項ま
たは第53項記載の方法。 55、1つ以上の状態図をエミュレートして少なくとも
1つの機械或いはプロセスの動作状態を制御するプログ
ラム式制御装置であって、該装置は複数のステートメン
トからなるアプリケーションプログラムを実行する手段
を具備し、実行時の前記ブロックの各々はプログラム状
態であり、更に該プログラム状態の各々は前記動作状態
の1つに対応し、また前記ブロックの少なくとも若干の
ものは次の前記被実行ブロックを規定する1つ以上の複
合ステートメントと機械による対応する動作状態の間に
取られる動作からなり、前記ブロックの少なくとも若干
のものはその他のブロックとは異なる処置を規定し、前
記アプリケーションプログラムは1つ以上の状態図の各
々に対応する1つ以上のプログラムループを具備し、前
記プログラムループの各々が前記ブロックの少なくとも
1つを具備するプログラム式制御装置であって、該装置
は、 (a)前記プログラムループの少なくとも1つはアクテ
ィブであり、且つ前記プログラム状態の1つだけが任意
の1時点における前記アクティブプログラムループにお
いてアクティブであり、(b)前記少なくとも1つのア
クティブプログラムループに関係してアクティブプログ
ラム状態の開始アドレスを格納するポインタであって、
各々がアクティブプログラム状態からなる少なくとも1
つの前記アクティブプログラムループを示す識別子を有
したポインタと、 (c)前記アクティブプログラムループの各々と共に前
記アクティブブロックの各々の前記複合ステートメント
を実行する手段を具備する、プログラム式制御装置。 56、前記少なくとも1つのアクティブプログラムルー
プに関係する前記ポインタの各々を記憶手段に格納して
、複数の前記少なくとも1つのアクティブプログラムル
ープのマルチタスク動作を容易にし且つ前記少なくとも
1つのアクティブプログラムループの実行シーケンスを
制御する手段から更に構成された特許請求の範囲第54
項または第55項記載の装置。 57、前記アクティブプログラム状態と前記少なくとも
1つのアクティブプログラムループの実行シーケンスを
示す情報を記録する手段から更に構成された特許請求の
範囲第55項記載の装置。 58、当該制御装置は次の被実行プログラム状態の選択
に応じた条件を示す手段からなり、且つ前記情報を記録
する手段は1つ以上の前記条件および対応する動作状態
の間に取られる前記動作を格納する手段を備えてなる特
許請求の範囲第57項に記載の装置。 59、前記プログラム状態および前記少なくとも1つの
アクティブプログラムループに関する記録情報を表示す
る手段から更に構成された特許請求の範囲第58項記載
の装置。 60、1つ以上の状態図をエミュレートし且つ少なくと
も1つの機械或いはプロセスの動作状態を制御するオペ
レーティングシステムを使用する方法であって、複数の
ステートメントのブロックからなるアプリケーションプ
ログラムを実行するステップからなり、実行時の前記ブ
ロックの各々はプログラム状態であり、更に前記プログ
ラム状態の各々は前記動作状態の1つに対応し、そして
前記ブロックの少なくとも若干のものは次の前記被実行
ブロックを規定する1つ以上の複合ステートメントと機
械による対応する動作状態の間に取られる動作からなり
、前記プログラム状態の少なくとも若干のものはその他
のプログラム状態とは異なって取られる動作を規定し、
前記アプリケーションプログラムは1つ以上の状態図の
各々に対応する1つ以上のプログラムループからなり、
前記プログラムループの各々は前記ブロックの少なくと
も1つからなり、 (a)前記プログラムループの少なくとも1つがアクテ
ィブになることを可能にし、且つ前記ブロックの1つだ
けが任意の1時間点の前記アクティブプログラムループ
においてアクティブになることを可能にするステップに
より構成され、(b)該可能にするステップは前記アク
ティブブロックの識別子をポインタに格納するステップ
と、前記ポインタと共に前記少なくとも1つのプログラ
ムループの識別子を格納するステップからなり、更に (c)前記少なくとも1つのアクティブプログラムルー
プに関係した前記ポインタの各々を記憶手段に格納して
、複数の前記少なくとも1つのアクティブプログラムル
ープのマルチタスク動作を容易にし且つ前記少なくとも
1つのアクティブプログラムループの実行シーケンスを
制御するステップを具備する、 オペレーティングシステムを使用する方法。 61、情報をポインタに格納するステップはアクティブ
プログラム状態の開始アドレスを格納し、且つアクティ
ブプログラム状態からなるアクティブプログラムループ
を示す識別子を格納するステップにより構成されてなる
特許請求の範囲第60項記載の方法。 62、前記少なくとも1つのアクティブプログラムルー
プに関係したポインタを記憶手段に格納して、複数の前
記少なくとも1つのアクティブプログラムループのマル
チタスク動作を容易にし、且つ前記少なくとも1つのア
クティブプログラムループの実行シーケンスを制御する
ステップから更に構成された特許請求の範囲第60項或
いは第61項記載の方法。 63、前記プログラム状態および前記プログラムループ
のアクティビティの実行シーケンスを示す情報を記録す
るステップから更に構成された特許請求の範囲第60項
或いは61項記載の方法。 64、当該制御装置は次の被実行プログラム状態の選択
に応じた条件を示す手段から構成され、前記情報を記録
するステップは1つ以上の前記条件と、対応する動作状
態の間に取られる前記動作を記録するステップを含んで
なる特許請求の範囲63項記載の方法。 65、プログラム式制御装置に対する有限状態のアプリ
ケーションプログラムのデバッグを容易化する方法であ
って、該方法は、前記有限状態のアプリケーションプロ
グラムは1つ以上のステートメントのブロックを具備し
、コンピュータによる実行時の各ブロックはプログラム
状態であり、該プログラム状態の各々は、1つ以上の条
件が該プログラム状態を発生させるときにのみ発生し、
該方法は、 (a)前記プログラム状態の各々の前記発生の各々を記
録するステップと、 (b)前記プログラム状態の発生を惹起する前記1つ以
上の条件を記録するステップと、 (c)前記1つ以上のプログラム状態および/または各
々の前記プログラム状態の発生に応じた前記1つ以上の
条件の順序を表示し、それにより有限状態のアプリケー
ションプログラムのデバッグが容易になるステップを具
備する、 デバッグを容易化する方法。 66、有限状態のアプリケーションプログラムのデバッ
グを容易にするプログラム式コンピュータであって、前
記有限状態のアプリケーションプログラムは1つ以上の
ステートメントのブロックからなり、コンピュータによ
る実行時の各ブロックはプログラム状態であり、また該
プログラム状態の各々は、1つ以上の条件が前記プログ
ラム状態を発生させるときだけ発生し、更に (a)前記プログラム状態の各々の前記各発生を記録す
る手段と、 (b)前記プログラム状態の発生をもたらす前記1つ以
上の条件を記録する手段と、 (c)前記1つ以上のプログラム状態および/または前
記プログラム状態発生の各々に応じ得る前記1つ以上の
条件の発生の順序を表示し、これにより有限状態のアプ
リケーションプログラムのデバッグが容易になるステッ
プを具備する、プログラム式コンピュータ。 67、少くとも1つの装置またはプロセスの動作を制御
するプログラマブル制御装置であって、該プログラマブ
ル制御装置は、 (a)状態変数の概念を用いるアプリケーションプログ
ラム手段、 (b)状態変数を参照することができるオペレーティン
グシステムソフトウェアであって、プログラム言語およ
び機能のための必要なサポートを提供する監視手段を包
含し、システムサービスとしてデバッグサポート手段を
有するもの、および、(c)後の使用の情報を記録する
手段であって、該後の使用の情報はシステムにおいてど
の状態がアクティヴであったかに関して発生した先行の
転移および転移発生の順序または先行の状態の活動を具
備するもの、を具備する、プログラマブル制御装置。 68、情報を検索しユーザに提供する手段をさらに具備
する、特許請求の範囲第67項記載のプログラマブル制
御装置。 69、前記システムソフトウェア手段は、プログラムの
処理中のどの論理計算或いはその複数の計算が対応する
前記状態遷移或いはその複数の遷移の発生を惹起したか
を示す情報を記録する手段を有してなる特許請求の範囲
第67項或いは第68項に記載のプログラマブル制御装
置。 70、各々が状態図に対応する1つ以上のプログラムル
ープと、 アクティブな前記プログラムループの少なくとも1つと
を具備し、 前記システムソフトウェア手段が、どのプログラムルー
プが実行されたステートメントを含んだか、またそのよ
うに対応する状態遷移の発生を惹起したかを示す情報を
記録する手段を備えてなる特許請求の範囲第67項から
第69項までのいずれかに記載のプログラマブル制御装
置。 71、各プログラムループは状態図の状態に対応したプ
ログラム状態を持ち、且つ 該プログラム状態の1つだけが1時点で前記アクティブ
プログラムループの各々においてアクティブである特許
請求の範囲第70項記載のプログラマブル制御装置。 72、各プログラムループは識別子を備え、且つ論理計
算が発生したループのプログラムループ識別子が前記情
報内に記録されてなる特許請求の範囲第71項記載のプ
ログラマブル制御装置。 73、前記プログラムは更に条件付部分と動作(アクシ
ョン)部分により構成された複合ステートメントからな
り、前記条件付部分は1つ以上の簡単な条件計算ステー
トメントからなり、該ステートメントの各々は或るシス
テム条件が真であるか偽であるかを評価してなり、また
前記条件付部分は前記動作(アクション)部分に含まれ
る動作(アクション)が実行されるか否かを決定し、更
に記録された情報は、複合ステートメントの条件付部分
が真であったという判定がなされたプログラム中の前記
簡単な条件評価ステートメントの記憶場所を含んでなる
特許請求の範囲第67項から第72項までのいずれかに
記載のプログラマブル制御装置。 74、記録された情報が、状態アクティビティを変える
複合ステートメントの条件付部分が真である旨の判定が
なされたプログラム中の記憶場所を含む時、このような
情報がプログラムの文脈中で読取られた時どの状態のど
のステートメントのどの条件付部分のどの項がどの状態
アクティビティ遷移を惹起したかを独自に決定するのに
必要な情報を規定するように、ステートメントに対して
前記プログラム中にシンタックスルールが設けられてな
る特許請求の範囲第73項記載のプログラマブル制御装
置。 75、前記記録された情報は、状態アクティビティの遷
移が生じた時間を含む特許請求の範囲第67項から第7
4項までのいずれかに記載のプログラマブル制御装置。 76、少くとも1つの装置またはプロセスの動作を制御
するプログラマブル制御装置であって、該プログラマブ
ル制御装置は、 (a)状態変数の概念を用いるアプリケーションプログ
ラム手段、 (b)状態変数を参照することができるオペレーティン
グシステムソフトウェアであって、プログラム言語およ
び機能のための必要なサポートを提供する監視手段を包
含し、システムサービスとしてデバッグサポート手段を
有するもの、 (c)プログラム言語内に設けられた手段であってアプ
リケーションプログラム内にデバッグ機能を包含させる
もの、および、 (d)パワーアップにもとづきプログラムを自動的に進
行させる手段、 を具備するプログラマブル制御装置。 77、当該制御装置は状態をブレーク状態にする手段を
備え、該手段は、これがアクティブになった時、所定の
デバッグ機能を発生させ、該デバッグ機能は、制御が動
作システムのモニタプログラム部分に戻されてデバッグ
および検討ができるようにアプリケーションプログラム
を停止させてなる特許請求の範囲第67項から第76項
までのいずれかに記載のプログラマブル制御装置、所定
のデバッグ機能を発生させ、該デバッグ機能は、プログ
ラムループの処理中に、前記状態は生じるが他のプログ
ラムループの処理には影響しない停止を惹起してなる先
行する特許請求の範囲のいずれか1項に記載のプログラ
マブル制御装置。 78、当該制御装置は状態を停止状態にする手段を備え
、該手段は、これがアクティブになると、所定のデバッ
グ機能の発生を惹起し、該デバッグ機能は停止ステート
メントにより示される点でプログラム状態の処理を通し
て停止部分を前進させ、該停止部分は任意に条件付であ
るが、他のプログラムループの処理には影響しない特許
請求の範囲の範囲第67項から第77項までのいずれか
に記載のプログラマブル制御装置。 79、各状態は、ステートメントのブロックに関係する
状態識別子によりプログラム中で代表されるプログラム
状態であり、状態或いは状態図をエミュレートする要求
された手順を規定する特許請求の範囲第67項から第7
8項までのいずれかに記載のプログラマブル制御装置。 80、1つの状態図で1つの状態だけが1時点でアクテ
ィブになることができ、このアクティブ状態はアクティ
ブ状態ブロックを示す変数値の格納により示され、この
変数は状態のアクティビティを示すように割り当てられ
てなる特許請求の範囲第79項記載のプログラマブル制
御装置。 81、前記アクティブ状態は状態ブロックへの、或いは
該状態ブロックに対する識別子へのポインタの格納によ
り示される特許請求の範囲第80項記載のプログラマブ
ル制御装置。 82、「ブレイク」或いは「ポーズ」或いは他のデバッ
グ機能から選択される他の諸性質は状態指定ステートメ
ントとしても用いられるステートメントに符号化される
ことにより状態に関係してなる特許請求の範囲第80項
或いは第81項記載のプログラマブル制御装置。 83、1つ以上の状態図をエミュレートすることにより
少なくとも1つの機械或いはプロセスの動作を制御する
プログラマブル制御装置であって、該装置は、 (a)1つ以上の状態図を規定するアプリケーションプ
ログラム用手段により構成され、 (b)該アプリケーションプログラムが少なくとも複数
のステートメントのブロックからなり、該ブロックの各
々は状態図内の状態に対応するプログラム状態であり、
また前記ブロックの少なくとも若干のものが該ブロック
の走査時に取られる少なくとも1つの制御動作を規定す
る1つ以上のステートメントを含んでなり、 (c)前記プログラムは状態図に対応する1つ以上のプ
ログラムループを有し、該プログラムループの各々は前
記ブロックの少なくとも1つを具備し、 (d)前記プログラムループの少なくとも1つはアクテ
ィブであり、且つ前記プログラム状態の1つだけが任意
の1時点で前記アクティブプログラムループの各々にお
いてアクティブであり、(e)各アクティブプログラム
ループにおける各アクティブプログラム状態においてプ
ログラムステートメントを当該制御装置が処理すること
を可能にし、それにより機械或いはプロセスの動作並び
に状態シーケンスが制御されてなる手段、を具備する、 プログラマブル制御装置。 84、状態依存ステートメントが現われるプログラムル
ープ中の状態のアクティビティに依存する状態依存アク
ティビティを実行するために或いは状態に依存する判定
を行うために、任意の特定の状態がアクティブか否かを
評価する必要性を排除するプログラム構造手段を備えた
特許請求の範囲第83項記載のプログラマブル制御装置
。 85、前記プログラム構造手段は、状態に依存する評価
或いは特定の状態に依存する動作(アクション)を含む
全てのステートメントがこの特定の状態に対する状態ブ
ロック内に収集されるルールからなり、且つ一システム
内でアクティブである状態の状態ブロックに現われるス
テートメントのみを実行し、 これにより特定の状態がアクティブか否かを評価する必
要性が、その状態がインアクティブな場合は常にその状
態がアクティブでありまたインアクティブな認定、従っ
てまた動作(アクション)のインアクティベーションが
意味されるので排除され、また前記ステートメントが実
行される時はアクティブ状態によるアクティブな認定が
意味されるので排除されてなる実行手段を具備する、特
許請求の範囲第84項記載のプログラマブル制御装置。 86、各アクティブプログラムループに関係した変数を
有して、このループにおいてアクティブなプログラム状
態の開始を示す値を格納する特許請求の範囲第83項か
ら第85項までのいずれかに記載のプログラマブル制御
装置。 87、前記変数は状態ブロックの開始アドレスをホール
ドするポインタから構成される特許請求の範囲第86項
記載のプログラマブル制御装置。 88、前記変数のうちの第1の初期化された変数から、
処理される第1のプログラムの状態ブロックの開始を示
す前記初期化された変数内の値を取り、第1の状態ブロ
ックを処理し、前記第1の状態ブロックの処理により修
飾が指示される場合は前記変数或いは他の変数に格納さ
れた値を修正し、現在の状態ブロックのアクティビティ
の要求されたレコードを維持することによりプログラム
を進める動作システムソフトウェア手段が設けられ、且
つプログラムの処理が同様にして所望の順序でアクティ
ブ状態ブロックの各々を反復処理することからなる特許
請求の範囲第86項或いは87項記載のプログラマブル
制御装置。 89、前記ポインタの各々は、特定のプログラムループ
をアクティブにして、他のプログラムルームに関係して
公知の順序で引き続く処理を行うために、またデバッグ
に使用するために、特定のポインタの特定の状態ブロッ
クへの初期化を可能にする識別子を備えてなる特許請求
の範囲第87項或いは第88項記載のプログラマブル制
御装置。 90、状態ブロックの境界を指定し、状態識別子を状態
ブロックと関係づける状態ステートメントから構成され
た境界指定手段を具備した特許請求の範囲第83項から
第89項のいずれかに記載のプログラマブル制御装置。 91、前記ポインタをタスクテーブルに編成して前記公
知の順序の前記処理の制御を容易にする編成手段を備え
た特許請求の範囲第90項記載のプログラマブル制御装
置。 92、アプリケーションプログラムは、Pコードインタ
ープリタプログラムにより実行されるPコードで格納さ
れる特許請求の範囲第83項から第91項までのいずれ
かに記載のプログラマブル制御装置。 93、添付図面を参照してここに記載したように、また
それにより説明したように構成、配列され、動作する特
許請求の範囲第83項から第92項までのいずれかに記
載のプログラマブル制御装置。 94、1つ以上の状態図をエミュレートして少なくとも
1つの機械或いはプロセスの動作状態を制御することに
よってプログラマブル制御装置により制御される少なく
とも1つの機械或いはプロセスのシステムを制御する方
法であって、前記制御装置が動作システムソフトウェア
と、次に状態変数の概念を利用するアプリケーションプ
ログラムを使用し、該方法は、 (a)状態変数アクティビティの特定の遷移或いは特定
の状態のアクティベーションを準備して、制御装置が、
ユーザの介在なしに、およびユーザが一般目的のステー
トメントを用いてコードを書く必要なしに、1つ以上の
所定のデバッグ機能を開始させるデバッグサポートを設
けるステップ、および、 (b)システムサービスとして設けられた前記デバッグ
サポートと共に、前記機能に必要なサポートを与えるプ
ログラミング言語とモニタ設備(状態変数を参照するこ
とができる。)を含む前記動作システムソフトウェアを
用いるステップ、を具備する、システムを制御する方法
。 95、どの状態がシステム内でアクティブであるかに関
して生じる遷移とこれ等の遷移が生じる順序からなる情
報を、後の使用に供するために前記システムソフトウェ
アに記録するステップから更に構成された特許請求の範
囲第94項記載の方法。 96、情報を検索し且つユーザにそれを与えるステップ
から更に構成された特許請求の範囲第95項に記載の方
法。 97、プログラムの処理中にどの論理評価或いはその複
数の評価が対応する前記状態遷移或いはその複数の遷移
を生じさせたかを示す情報を前記システムソフトウェア
に記録するステップにより更に構成された特許請求の範
囲第95項或いは第96項に記載の方法。 98、1つ以上のプログラムループを設けるステップで
、各々のプログラムループが状態図に対応し、該プログ
ラムループの少なくとも1つがアクティブであるステッ
プと、どのプログラムループが実行され、そして対応す
る遷移状態の発生をそのように惹起したかを示す情報を
前記システムソフトウェアに記録するステップとにより
更に構成された特許請求の範囲第95項から第97項ま
でのいずれかに記載の方法。 99、各プログラムループに状態図の状態に対応したプ
ログラム状態を与え、且つ該プログラム状態の1つだけ
が1時間点で前記アクティブプログラムループの各々に
おいてアクティブであることを与えるステップを更に具
備する、特許請求の範囲第98項記載の方法。 100、各プログラムループに識別子を与え、且つ論理
評価が生じたループに対するプログラムループ識別子を
前記情報に記録するステップにより更に構成された特許
請求の範囲第99項記載の方法。 101、状態アクティビティ変更複合ステートメントの
条件付部分が真である判定がなされたプログラム内の位
置を前記情報に記録するステップにより更に構成された
特許請求の範囲第100項記載の方法。 102、記録された情報が、状態アクティビティ変更複
合ステートメントの条件付部分が真であるという判定が
なされたプログラム内の記憶場所を含む時、このような
情報が、どの状態のどのステートメントのどの条件付部
分のどの項がプログラムの文脈で読取られた時どの状態
アクティビティ遷移を惹起したかを独自に決定するのに
必要な情報を規定するように、ステートメントに対して
前記プログラムにシンタックスルールを与えるステップ
により更に構成された特許請求の範囲第101項に記載
の方法。 103、状態アクティビティの遷移が生じた時間を前記
情報に記録するステップにより更に構成された特許請求
の範囲第95項から第102項のいずれか1項に記載の
方法。 104、状態をブレーク状態にするように前記制御装置
を構成するステップで、このブレーク状態は、アクティ
ブになった時、所定のデバッグ機能を発生させ、該デバ
ッグ機能は、制御が動作システムのモニタプログラム部
分に戻されてデバッグおよび検討目的に供することがで
きるように、アプリケーションプログラムを停止させて
なるステップにより更に構成された特許請求の範囲第9
8項から第103項のいずれかに記載のプログラマブル
制御装置に記載の方法。 105、状態をポーズ状態にするように前記制御装置を
構成するステップで、該ポーズ状態は、これがアクティ
ブになった時、所定のデバッグ機能を発生させ、該デバ
ッグ機能はプログラムループの処理中に停止をもたらし
、この停止中は状態は生じるが他のプログラムループの
処理に影響は与えない前記ステップから更に構成された
特許請求の範囲第94項から第104までのいずれかに
記載の方法。 106、状態を停止状態にするように前記制御装置を構
成するステップで、該停止状態は、状態がアクティブに
なった時、所定のデバッグ機能を発生させ、該デバッグ
機能は停止ステートメントにより示された点でプログラ
ム状態の処理を通して停止部分を前進させ、前記停止ス
テートメントは選択的に条件付であるが、その他のプロ
グラムループの処理には影響を与えない前記ステップか
ら更に構成された特許請求の範囲第94項から第105
項までのいずれかに記載の方法。 107、ステートメントのブロックに関係した状態識別
子によりプログラム中に代表されるプログラム状態とし
て各状態を与え、且つ状態図上の状態をエミュレートす
るのに必要な手順を規定する特許請求の範囲第94項か
ら第106項までのいずれかに記載の方法。 108、各アクティブプログラムループに関係した変数
を設けて、各アクティブ状態ブロックを示す値を格納す
るステップであって、前記変数が状態アクティビティを
示すように割当てられてなる前記ステップから更に構成
された特許請求の範囲第107項記載の方法。 109、アクティブ状態を示す値を格納するステップで
、前記ステップは状態ブロックに対するポインタ或いは
その状態ブロックのための識別子からなる前記ステップ
から更に構成された特許請求の範囲第107項或いは第
108項に記載の方法。 110、「ブレーク」或いは「ポーズ」或いはその他の
デバッグ機能の他の性質が、状態の境界規定ステートメ
ントとしても用いられるステートメントに符号化される
ことにより状態に関係づけられることを与えるステップ
により更に構成された特許請求の範囲第108項或いは
第109項に記載の方法。 111、1つ以上の状態図をエミュレートすることによ
りプログラマブル制御装置により制御される少なくとも
1つの装置またはプロセスの動作を制御する方法であっ
て、前記制御装置が1つ以上の状態図を規定するアプリ
ケーションプログラムを使用してなり、該方法は、 (a)前記アプリケーションプログラムを少なくとも複
数のステートメントのブロックとして与えるステップで
あって、各前記ブロックは状態図の状態に対応するプロ
グラム状態であり、更に前記ブロックの少なくとも若干
のものはブロックの走査時に取られる少なくとも1つの
制御動作を規定する1つ以上のステートメントを含んで
なるステップと、 (b)前記プログラムに、各々が前記ブロックの少なく
とも1つからなり、状態図に対応する1つ以上のプログ
ラムループを設けるステップとにより構成され、 (c)前記プログラムループの少なくとも1つがアクテ
ィブであり、且つ前記プログラム状態の1つだけが任意
の1時点で前記アクティブプログラムループの各々にお
いてアクティブであり、(d)各々のアクティブプログ
ラムループの各々のアクティブプログラム状態にあるプ
ログラムステートメントを処理し、これにより機械或い
はプロセスの動作と状態シーケンスが制御されてなるス
テップ、を具備する、 1つの装置またはプロセスの動作を制御する方法。 112、状態に依存する判定を行うために、或いは状態
依存ステートメントが現われるプログラムループの状態
のアクティビティに依存する状態依存アクティビティを
実行するために、特定の状態がアクティブであるか否か
を評価する必要を排除するように前記プログラムを構成
するステップから更に構成された特許請求の範囲第11
1項記載の方法。 113、状態依存評価或いは特定の状態に対する状態ブ
ロック内のその特定状態に依存する動作を含む全てのス
テートメントを収集するステップと、システム内でアク
ティブな状態の状態ブロックに現われるステートメント
のみを実行し、これにより、特定状態がインアクティブ
な時は常に特定な状態がアクティブそしてインアクティ
ブな認定であり、従って動作のインアクティベーション
が意味されるために、また前記ステートメントが実行さ
れる時は前記アクティブな状態によるアクティブな認定
が意味されるために、状態変数を評価する必要性が排除
されてなるステップとにより更に構成された特許請求の
範囲第112項記載の方法。 114、各々のアクティブプログラムループに関係する
変数を有して該ループにおいてアクティブなプログラム
状態の開始を示す値を格納するステップにより更に構成
された特許請求の範囲第111項から第113項までの
いずれかに記載のプログラマブル制御装置。 115、前記変数は状態ブロックの開始アドレスを保持
するポインタからなる特許請求の範囲第113項記載の
プログラマブル制御装置。 116、動作システムソフトウェア手段を用い、更に前
記変数の第1の初期化されたものから、処理されるべき
第1のプログラム状態ブロックの開始を示す変数の値を
取り、第1の状態ブロックを処理し、前記第1の状態ブ
ロックの処理により変更が指示される場合その変数或い
は他の変数に格納された値を変更し、現在の状態ブロッ
クのアクティビティの要求されたレコードを維持し、更
に同様に所望の順序でアクティブ状態ブロックの各々を
反復して処理するプログラムを処理することにより、プ
ログラムを進行させる前記動作システムソフトウェアを
用いたステップから更に構成された特許請求の範囲第1
15項記載の方法。 117、特定のプログラムループをアクティブにして、
他のプログラムループに関して公知の順序で引き続く処
理を行い且つデバッグに用いるために、特定のポインタ
の、特定の状態ブロックへの初期化を可能にする識別子
と共に各前記ポインタを設けるステップにより更に構成
された特許請求の範囲第115項或いは第116項に記
載の方法。  118、状態識別子を状態ブロックに関係づける状態
ステートメントを用いて状態ブロックの範囲を定めるス
テップにより更に構成された特許請求の範囲第111項
から第117項までのいずれかに記載の方法。 119、前記ポインタをタスクテーブルに編成して前記
公知の順序で前記処理の制御を容易にするステップによ
り更に構成された特許請求の範囲第118項記載の方法
Claims: 1. A programmable control device for emulating one or more state diagrams and controlling the operating state of at least one machine or process, the device comprising: (a) a plurality of statements; means for executing an application program consisting of blocks of statements, each block of statements corresponding to one of the operating states of the machine or process, and further comprising at least some of the blocks consisting of one or more compound statements specifying execution and actions taken during a corresponding operating state by said machine or process, said actions taken being different for at least some of said blocks than for other blocks. and wherein the application program comprises one or more program loops corresponding to each of the one or more state diagrams, each of the program loops comprising at least one of the blocks. (b) means for enabling at least one of said program loops to be activated for execution thereof;
(c) means for enabling only one of said blocks to be active and executed at any one point in time of said at least active program loop; a programmable controller comprising: means for executing said compound statement of said active block within said block to control the execution sequence of said blocks and said operation of said machine or process. 2. The enabling means comprises a pointer related to the at least one active program loop storing a starting address of the active block, and the pointer comprises an identifier indicating the active program loop consisting of the active block. , the apparatus according to claim 1. 3. The enabling means comprises a pointer storing an identifier of an active program loop in relation to the at least one active program loop, and the pointer comprises an identifier indicative of an active program loop consisting of an active block. An apparatus according to claim 1. 4. storing each of the pointers associated with the at least one active program loop to facilitate multitasking of a plurality of the at least one active program loop and controlling the execution sequence of the at least one active program loop; 4. A device according to claim 2 or 3, further comprising means for: 5. The apparatus of claim 1, further comprising means for recording information indicating an active block of said statements and an execution sequence of said at least one program loop. 6. The control device comprises means for indicating a condition depending on the selection of the next block to be executed, and the means for recording the information indicates one or more of the conditions and the action taken during the corresponding operating state. 6. Apparatus according to claim 5, comprising means for storing. 7. The apparatus of claim 5 or 6, further comprising means for displaying recorded information regarding the active block and the at least one active program loop. 8. A method of using a programmed controller to emulate one or more state diagrams and to control the operating state of at least one machine or process, the method comprising: (a) an application program consisting of a block of statements; each block of statements corresponds to one of the operating states of the machine or process, and at least some of the blocks are associated with the next executed block;
one or more compound statements specifying an action to be taken by a machine or process during a corresponding operating state, at least some of said blocks specifying said action to be taken different from other blocks, and said application (b) enabling at least one of said program loops to be activated and executed; , and allowing only one of said blocks to be active and executed at any one time point in said at least one active program loop; and (c) each of said active program loops. A method of using a programmable controller comprising: executing each of said active blocks of said blocks to control the execution sequence of said blocks and thereby control the operation of said machine or process. 9. The enabling step comprises storing an identifier of the active block in a pointer associated with the at least one active program loop, and storing an identifier of the at least one active program loop consisting of active blocks. do,
The method according to claim 8. 10. The enabling step includes storing a starting address of the active block in a pointer associated with the at least one active program loop, and storing an identifier of the at least one active program loop consisting of active blocks. The method according to claim 8, comprising: 11. storing each of the pointers associated with the at least one active program loop to facilitate multitasking of a plurality of the at least one active program loop; 11. A method as claimed in claim 9 or 10, further comprising the step of controlling. 12, the active block and the at least one
9. The method of claim 8, further comprising the step of recording information indicative of an execution sequence of two active program loops. 13. The method comprises the step of indicating a condition responsive to selection of a next executed block, and the step of recording the information includes the step of indicating one or more of the conditions and the action taken during the corresponding operating state. and recording the
A method according to claim 12. 14. Displaying information recorded in the block and the at least one active program loop.
The method described in section. 15. A programmable control device for emulating one or more state diagrams and controlling the operating state of at least one machine or process, the device comprising: (a) an application program consisting of a block of statements; wherein each of said blocks of statements corresponds to one of the operating states of said machine or process, and at least some of said blocks of statements correspond to a next said executed block by said machine or process. and one or more compound statements specifying actions to be taken during an operational state, at least some blocks specifying said actions to be taken that are different from other blocks, and said application program one or more program loops corresponding to each of the state diagrams, each of the program loops consisting of at least one block of said statements; means for enabling to be executed and means for enabling only one of said blocks of statements to be active and available for execution at any one time in said active program loop; c) the enabling means comprises means for directing the at least one active program loop;
the indicating means comprises means for storing an identifier of an active block and means for storing an identifier indicative of a program loop consisting of active blocks; (e) means for facilitating multitasking of at least one program loop and controlling the execution sequence of the at least one active program loop; A programmable control device comprising means for executing said compound statement in an active block to control the execution sequence of said blocks and for controlling said action according to the operating state of a machine or process. 16, wherein said indicating means associated with said at least one active program loop comprises means for storing a starting address of an active block and means for storing an identifier indicative of at least one active program loop consisting of active program states. The apparatus according to claim 15. 17, the active block and the at least one
16. The apparatus of claim 15, further comprising means for recording information indicative of an execution sequence of two active program loops. 18. The control device comprises means for indicating a condition depending on the selection of the next block to be executed, and the information recording means stores one or more of the conditions and the action to be taken during the corresponding operating state. 18. Apparatus according to claim 17, comprising means. 19, the active block and the at least one
7. The apparatus of claim 5 or 6, further comprising means for displaying recorded information regarding two active program loops. 20. The apparatus of claim 16, further comprising means for recording information indicative of an active block of said statements and an execution sequence of said at least one program loop. 21. The control device comprises means for indicating a condition depending on the selection of the next block to be executed, and the means for recording the information stores the action taken during an operating state corresponding to one or more of the conditions. 21. The apparatus of claim 20, comprising means for: 22. The apparatus of claim 20 or 21, further comprising means for displaying recorded information regarding the active block and the at least one active program loop. 23. A method of using a programmable controller to emulate one or more state diagrams and to control the operating state of at least one machine or process, the method comprising: (a) implementing an application program consisting of blocks of statements; executing one or more blocks of statements, each of said blocks of statements corresponding to one of the operating states of said machine or process, and at least some of said blocks defining one or more next said blocks to be executed; and an action to be taken by a machine or process during a corresponding operating state, at least some of said blocks specifying said action to be taken differently from other blocks, and an application program (b) enabling at least one of the program loops to be activated and executed; and (c) the enabling step includes the step of: enabling only one block of blocks to be active and executed at any one time in the at least one active program loop; storing in a pointer; and storing an identifier in the pointer to indicate at least one active program loop consisting of an active block; (e) storing each of the plurality of active program loops to facilitate multitasking operation of a plurality of the at least one active program loop and to control the execution sequence of the at least one active program loop; A method using a programmable controller, comprising: executing the compound statement of each active block to control the sequence of execution of the blocks and the operation of a machine or process. 24. Storing the information in a pointer comprises storing a starting address of an active block and storing an identifier indicative of at least one active program loop consisting of the active block;
A method according to claim 23. 25. The method of claim 23, further comprising the step of: recording information indicative of an execution sequence of the active block of statements and the at least one active program loop. 26. The method comprises the step of indicating a condition responsive to the selection of a next block to be executed, and the step of recording said information indicates one or more said conditions and said action taken during the corresponding operating state. 26. The method of claim 25, including the step of recording. 27. The method of claim 25 or 26, further comprising the step of: displaying recorded information regarding the block and the at least one active program loop. 28. The method of claim 25 or 26, further comprising the step of: recording information indicative of the execution sequence of the active block of statements and the at least one active program loop. 29. The method comprises the step of indicating a condition responsive to the selection of a next executed block, and the step of recording said information indicates one or more said conditions and said action taken during the corresponding operating state. 29. The method of claim 28, including the step of recording. 30. The method of claim 28 or 29, further comprising the step of displaying recorded information regarding the block and the at least one active program loop. 31. A programmable control device for controlling the operating state of at least one machine or process by emulating one or more state diagrams, the device having means for executing an application program consisting of blocks of statements. and each of said blocks corresponds to one of said operating states, and at least some of said blocks correspond by a machine or process to one or more compound statements defining a next executed block. the application program comprises one or more program loops corresponding to each of the one or more state diagrams, each program loop comprising at least one of the blocks. and the programmable controller comprises operating system software, the software comprising: (a) means for enabling at least one of the program loops to be activated and executed; , comprising means for enabling only one of said blocks of statements to be active and executed at any one point in said active program loop, and (b) said enabling means comprises said at least one means for instructing one active program loop, the instructing means for storing an identifier of an active block;
(c) storing each of the indicating means to facilitate multitasking operation of a plurality of the at least one program loop; , and means for controlling the execution sequence of the at least one active program loop; (d) executing the compound statement of each of the active blocks in conjunction with the active program loop to control the execution sequence of the blocks; A programmable control device comprising means for controlling said operation according to the operating state of the machine or process. 32. Claim 32, wherein said indicating means associated with said at least one active program loop comprises means for storing a starting address of an active block and means for storing an identifier indicative of at least one active program loop consisting of active blocks. range 3rd
The device according to item 1. 33, the active block and the at least one
33. The apparatus of claim 31 or 32, further comprising means for recording information indicative of the execution sequence of two active program loops. 34, the active block and the at least one
34. The apparatus of claim 33, further comprising means for displaying recorded information regarding two active program loops. 35. Operating system software used in a programmable control device that emulates one or more state diagrams to control the operating state of at least one machine or process and that executes an application program consisting of blocks of statements. each of said blocks corresponds to one of said operating states, and at least some of said blocks include one or more compound statements defining a next executed block and a machine or process and an action taken during a corresponding operating state by the block, the application program comprising one or more program loops corresponding to each of the one or more state diagrams, each of the program loops including at least one of the blocks. (a) means for enabling at least one of said program loops to be activated and executed; and only one of said blocks of statements (b) the enabling means comprises means for directing the at least one active program loop; The instructing means comprises means for storing an identifier of an active block and means for storing an identifier indicative of a program loop consisting of active blocks, and the operating system further comprises: (c) the operating system instructing the at least one program loop; (d) means for storing each of the means for facilitating multitasking operation of a plurality of the at least one program loop and for controlling the execution sequence of the at least one active program loop; Operating system software comprising means for executing said compound statement of each of the active blocks to control the sequence of execution of said blocks and to control said operation according to the operating state of a machine or process. 36. The indicating means associated with the at least one active program loop comprises means for storing a starting address of an active block and means for storing an identifier indicative of the at least one active program loop comprising active program states. , the apparatus according to claim 35. 37, the active block and the at least one
37. Apparatus according to claim 35 or 36, further comprising means for recording information indicative of the execution sequence of two active program loops. 38. The apparatus of claim 37, further comprising means for displaying recorded information regarding the block and the at least one active program loop. 39. A method of configuring an operating system that emulates one or more state diagrams and controls the operating state of at least one machine or process, the method comprising the step of executing an application program consisting of a block of statements. and each of said blocks corresponds to one of said operational states, and at least some of said blocks are between one or more compound statements defining the next said executed block and the corresponding operational state. and wherein the application program comprises one or more program loops corresponding to each of the one or more state diagrams, each of the program loops comprising at least one of the blocks. A method of configuring,
The method includes: (a) at least one of the program loops;
may be active and executed, and only one of said blocks may be active and executed at any one point in time within said at least one active program loop. (b) the enabling step comprises storing in a pointer an identifier of an active block and an identifier indicative of at least one active program loop consisting of an active block; c) executing the compound statement of each of the active blocks in conjunction with the active program loop to control the execution sequence of the blocks and the operation of a machine or process; storing each of said pointers associated with a program loop in a storage means to facilitate multitasking operation of a plurality of said at least one active program loops and to control the execution sequence of said at least one active program loop; How to configure the operating system. 40. The step of storing information in a pointer comprises the steps of storing a starting address of an active block and storing an identifier indicative of at least one active program loop consisting of an active block. the method of. 41. The method of claim 39 or claim 40, further comprising the step of recording information indicative of an active block of the statements and an execution sequence of the at least one active program loop. 42. The method of claim 40 or 41, further comprising the step of: displaying recorded information regarding the block and the at least one active program loop. 43. A programmable control device for controlling the operating state of at least one machine or process by emulating one or more state diagrams, the device comprising: (a) an application program consisting of a block of statements; means for executing, each of said blocks of statements when executed being a program state, each of said program states corresponding to one of the operating states of said machine or process, and at least some of said blocks comprises one or more compound statements defining the next executed block and an action to be taken by the machine between the corresponding operating states, wherein at least some of the program states cause a different action to be taken. (b) enabling at least one of the program loops to be active, and only one of the blocks being active within the active program loop at any one time; Steps that make it possible to
(c) the enabling means comprises means for indicating the at least one active program loop, the indicating means comprising means for storing an identifier for an active block, and each of the pointers comprises: , having an identifier indicative of a program loop consisting of active blocks; and (d) executing the compound statement in each active block with each active program to control the execution sequence of the blocks and Alternatively, a programmable control device comprising means for controlling the operation according to the operating state of the process. 44. The means for indicating the at least one active program loop comprises means for storing a starting address of an active block and means for storing an identifier indicative of an active program loop consisting of active blocks. The device according to item 43. 45. storing each of said means for directing said at least one active program loop in a storage means to facilitate multitasking operation of a plurality of said at least one active program loop;
45. The apparatus of claim 43 or 44, further comprising means for controlling the execution sequence of two active program loops. 46. The apparatus of claim 44 or 45, further comprising means for recording information indicative of the active program state and the execution sequence of the at least one active program loop. 47. The control device comprises means for indicating a condition responsive to the selection of the next executed program state, and the means for recording said information indicates the action taken during the operating state corresponding to one or more of said conditions. 47. The apparatus of claim 46, comprising means for storing. 48. The apparatus of claim 46 or 47, further comprising means for displaying recorded information regarding the active program state and the at least one active loop. 49. A method of using a programmable controller to emulate one or more state diagrams and to control the operating state of at least one machine or process, the method comprising: (a) from a block of statements; executing an application program, each of said blocks at runtime being a program state, each of said program states corresponding to one of the operating states of said machine or process, and at least some of said blocks consists of one or more compound statements defining the next block to be executed and an action to be taken by the machine during the corresponding operating state, at least some of the blocks being different from the other blocks. defining actions to be taken differently, said application program comprising one or more program loops corresponding to each of said one or more state diagrams, each of said program loops comprising at least some of said blocks. (b) enabling at least one of the program loops to be active, and only one of the blocks is active in the at least one program at any point in time; (c) the enabling step stores a starting address of the active block in a pointer and stores an identifier of the at least one program loop with the pointer. (d) storing each of the pointers associated with the at least one active program loop to facilitate multitasking operation of a plurality of the at least one active program loop; A method of using a programmable controller comprising the steps of controlling the execution sequence of two active program loops. 50. Storing information in the pointer includes storing a starting address of an active block;
50. The method of claim 49, comprising storing an identifier indicative of an active program loop of active blocks. 51. storing pointers related to the at least one active program loop in a storage means to facilitate multitasking operation of a plurality of the at least one active program loop and to control the execution sequence of the at least one active program loop; 51. A method as claimed in claim 49 or claim 50, further comprising the step of: 52. The method of claim 49 or claim 50, further comprising the step of recording information indicative of an execution sequence of the active block and the at least one active program loop. 53, the control device comprises means for indicating a condition responsive to selection of a next block to be executed, and the step of recording said information indicates said action taken during one or more said conditions and corresponding operating state. 53. The method of claim 52, including the step of recording. 54. The method of claim 52 or claim 53, further comprising the step of: displaying recorded information regarding the active block and the at least one active program loop. 55. A programmable control device for controlling the operating state of at least one machine or process by emulating one or more state diagrams, the device comprising means for executing an application program consisting of a plurality of statements. , each of said blocks when executed is a program state, further each of said program states corresponds to one of said operating states, and at least some of said blocks define a next said executed block. the application program comprises one or more compound statements and actions taken between corresponding operational states by a machine, at least some of said blocks specifying different actions than other blocks; A programmed control device comprising: (a) one or more program loops corresponding to each of the program loops, each of the program loops comprising at least one of the blocks, the device comprising: (a) at least one of the program loops; one is active, and only one of said program states is active in said active program loop at any one time, and (b) a starting address of an active program state with respect to said at least one active program loop; A pointer that stores
at least one each consisting of an active program state
a pointer having an identifier indicating one of said active program loops; and (c) means for executing said compound statement of each of said active blocks with each of said active program loops. 56. storing each of said pointers relating to said at least one active program loop in a storage means to facilitate multitasking operation of a plurality of said at least one active program loops and execution of said at least one active program loop; Claim 54 further comprising means for controlling the sequence.
56. Apparatus according to paragraph 55. 57. The apparatus of claim 55, further comprising means for recording information indicative of the active program state and the execution sequence of the at least one active program loop. 58. The control device comprises means for indicating a condition responsive to the selection of the next executed program state, and the means for recording said information indicates one or more said conditions and said action taken during the corresponding operating state. 58. Apparatus according to claim 57, comprising means for storing. 59. The apparatus of claim 58, further comprising means for displaying recorded information regarding the program status and the at least one active program loop. 60. A method of using an operating system to emulate one or more state diagrams and control the operational state of at least one machine or process, the method comprising the steps of executing an application program consisting of a block of statements. , each of said blocks at run time is a program state, further each of said program states corresponds to one of said operating states, and at least some of said blocks define a next said executed block. comprising actions to be taken between one or more compound statements and corresponding operating states by a machine, at least some of said program states specifying actions to be taken differently from other program states;
the application program comprises one or more program loops corresponding to each of one or more state diagrams;
Each of said program loops consists of at least one of said blocks, and (a) enables at least one of said program loops to be active, and only one of said blocks is active in said program at any point in time; (b) storing an identifier of the active block in a pointer; and storing an identifier of the at least one program loop with the pointer; further comprising the step of: (c) storing each of said pointers associated with said at least one active program loop in a storage means to facilitate multitasking operation of a plurality of said at least one active program loops; A method using an operating system comprising controlling the sequence of execution of one active program loop. 61. The method according to claim 60, wherein the step of storing information in the pointer comprises the steps of storing a starting address of an active program state and storing an identifier indicating an active program loop consisting of the active program state. Method. 62. storing pointers related to the at least one active program loop in a storage means to facilitate multitasking operation of a plurality of the at least one active program loop; 62. The method of claim 60 or 61, further comprising the step of controlling. 63. The method of claim 60 or 61, further comprising the step of recording information indicating the program state and the execution sequence of activities of the program loop. 64, the control device comprising means for indicating a condition responsive to the selection of the next executed program state, and the step of recording said information comprises means for indicating the condition taken between one or more said conditions and the corresponding operating state. 64. The method of claim 63, comprising the step of recording the action. 65, a method for facilitating debugging of a finite state application program for a programmable controller, the method comprising: the finite state application program comprising one or more blocks of statements; Each block is a programmed state, each of which occurs only when one or more conditions cause the programmed state to occur;
The method includes: (a) recording each of the occurrences of each of the programmed states; (b) recording the one or more conditions that cause the occurrence of the programmed states; and (c) the steps of: debugging, comprising: displaying one or more program states and/or an order of the one or more conditions according to the occurrence of each said program state, thereby facilitating debugging of a finite state application program; How to facilitate. 66. A programmable computer that facilitates debugging of finite-state application programs, wherein the finite-state application program consists of blocks of one or more statements, each block being a program state when executed by the computer; and each of said program states occurs only when one or more conditions cause said program state to occur, further comprising: (a) means for recording said respective occurrences of each of said program states; and (b) said program state. (c) displaying the one or more program states and/or the order of occurrence of the one or more conditions that may be responsive to each of the program state occurrences; and steps to facilitate debugging of finite state application programs. 67. A programmable controller for controlling the operation of at least one device or process, the programmable controller comprising: (a) application program means using the concept of state variables; (b) reference to state variables; (c) includes monitoring means that provide the necessary support for programming languages and functions, and has debugging support means as a system service; and (c) records information for subsequent use. A programmable controller comprising means, wherein the subsequent use information comprises previous transitions that occurred as to which states were active in the system and the order of transition occurrence or activity of the previous states. 68. The programmable control device of claim 67, further comprising means for retrieving and providing information to a user. 69. The system software means comprises means for recording information indicating which logical calculation or calculations during processing of the program caused the corresponding state transition or transitions to occur. A programmable control device according to claim 67 or 68. 70, comprising one or more program loops, each corresponding to a state diagram, and at least one of said program loops being active, said system software means determining which program loops contained executed statements; 69. The programmable control device according to claim 67, further comprising means for recording information indicating whether a corresponding state transition has been caused to occur. 71. The programmable computer of claim 70, wherein each program loop has a program state corresponding to a state of a state diagram, and only one of the program states is active in each of the active program loops at a time. Control device. 72. The programmable control device according to claim 71, wherein each program loop has an identifier, and the program loop identifier of the loop in which the logical calculation has occurred is recorded in the information. 73. The program further comprises a compound statement composed of a conditional part and an action part, and the conditional part consists of one or more simple conditional calculation statements, and each of the statements satisfies a certain system condition. is true or false, and the conditional part determines whether the action included in the action part is executed or not, and further records recorded information. Claims 67 to 72 include a storage location for the simple conditional evaluation statement in a program in which a determination has been made that the conditional part of the compound statement was true. The programmable control device described. 74. When the recorded information includes a memory location in the program at which a determination was made that the conditional portion of the compound statement that changes the state activity is true, such information is read in the context of the program. Syntax rules in said program for statements specifying the information necessary to independently determine which term of which conditional part of which statement in which state caused which state-activity transition at a given time. 74. The programmable control device according to claim 73, wherein the programmable control device is provided with: 75. The recorded information includes the time at which the state activity transition occurred.
The programmable control device according to any one of items 4 to 4. 76. A programmable controller for controlling the operation of at least one device or process, the programmable controller comprising: (a) application program means using the concept of state variables; (b) reference to state variables; (c) means provided within the programming language, including monitoring means to provide the necessary support for the programming language and functionality, and having debugging support means as a system service; and (d) means for automatically advancing the program upon power-up. 77. The control device comprises means for setting the state to a break state, which means, when activated, generates a predetermined debug function, which debug function causes control to return to the monitor program portion of the operating system. The programmable control device according to any one of claims 67 to 76, wherein the programmable control device stops an application program so that it can be debugged and examined, generates a predetermined debug function, and generates a predetermined debug function. A programmable control device according to any one of the preceding claims, wherein during the processing of a program loop, the condition occurs but causes a stop that does not affect the processing of other program loops. 78, the control device comprises means for bringing the state into the stopped state, which means, when activated, causes the occurrence of a predetermined debug function, which debug function processes the program state at the point indicated by the stop statement. 77. A programmable programmable device according to any one of claims 67 to 77, wherein the stop portion is optionally conditional but does not affect the processing of other program loops. Control device. 79, each state is a program state represented in the program by a state identifier associated with a block of statements; 7
The programmable control device according to any one of items 8 to 8. 80, only one state in a state diagram can be active at a time, and this active state is indicated by the storage of a variable value indicating an active state block, which variable is assigned to indicate the activity of the state. 80. A programmable control device according to claim 79. 81. The programmable control device of claim 80, wherein the active state is indicated by storing a pointer to a state block or to an identifier for the state block. 82. Other properties selected from ``break'' or ``pause'' or other debug functions are related to the state by being encoded in a statement that is also used as a state specification statement. 82. The programmable control device according to item 81. 83. A programmable control device for controlling the operation of at least one machine or process by emulating one or more state diagrams, the device comprising: (a) an application program defining the one or more state diagrams; (b) the application program comprises a block of at least a plurality of statements, each block being a program state corresponding to a state in a state diagram;
and at least some of said blocks include one or more statements defining at least one control action to be taken during scanning of said blocks; and (c) said program comprises one or more programs corresponding to state diagrams. (d) at least one of the program loops is active and only one of the program states is active at any one time; (e) is active in each of the active program loops, and (e) enables the controller to process program statements in each active program state in each active program loop, thereby controlling the operation and state sequence of the machine or process. A programmable control device, comprising means for: 84. The need to evaluate whether any particular state is active in order to perform a state-dependent activity or to make a state-dependent determination that depends on the state's activity in the program loop in which the state-dependent statement appears. 84. A programmable control device according to claim 83, further comprising program structure means for eliminating the nature of the program. 85. The program structure means consists of rules in which all statements containing state-dependent evaluations or actions that depend on a particular state are collected in a state block for this particular state, and within one system. executes only the statements that appear in the state blocks of states that are active in the state, thereby eliminating the need to evaluate whether a particular state is active It is excluded because an active recognition and therefore also an inactivation of an action is implied, and when the statement is executed, it is excluded because an active recognition is implied by an active state. 85. The programmable control device according to claim 84. 86. A programmable control according to any one of claims 83 to 85, having a variable associated with each active program loop to store a value indicating the beginning of an active program state in this loop. Device. 87. The programmable control device according to claim 86, wherein said variable comprises a pointer that holds a start address of a state block. 88, from the first initialized variable of said variables;
taking a value in the initialized variable indicating the start of a state block of a first program to be processed, processing the first state block, and when modification is indicated by the processing of the first state block; is provided with operating system software means for advancing the program by modifying the values stored in said variable or other variables and maintaining a required record of the activity of the current state block, and the processing of the program is performed in a similar manner. 88. A programmable controller as claimed in claim 86 or claim 87, wherein the programmable control device iterates through each of the active blocks in a desired order. 89, each of said pointers is used to activate a particular program loop for subsequent processing in a known order with respect to other program rooms, and for use in debugging. 89. A programmable control device according to claim 87 or 88, comprising an identifier that allows initialization to the state block. 90. The programmable control device according to any one of claims 83 to 89, comprising boundary specifying means constituted by status statements specifying boundaries of status blocks and associating status identifiers with the status blocks. . 91. The programmable control device of claim 90, further comprising organizing means for organizing said pointers into a task table to facilitate control of said processing in said known order. 92. The programmable control device according to any one of claims 83 to 91, wherein the application program is stored as a P code executed by a P code interpreter program. 93. A programmable control device according to any one of claims 83 to 92, constructed, arranged, and operative as herein described and described with reference to the accompanying drawings. . 94. A method of controlling a system of at least one machine or process controlled by a programmable controller by emulating one or more state diagrams to control operating states of at least one machine or process, the method comprising: Where the controller uses operating system software and an application program that in turn utilizes the concept of state variables, the method includes: (a) preparing a particular transition of a state variable activity or activation of a particular state; The control device is
(b) providing debugging support that initiates one or more predetermined debugging functions without user intervention and without requiring the user to write code using general purpose statements; and (b) provided as a system service. using the operating system software including a programming language and monitoring facilities (which may reference state variables) to provide the necessary support for the functionality, together with the debugging support provided. 95, the claim further comprising the step of recording in the system software for later use information consisting of the transitions that occur and the order in which these transitions occur as to which states are active in the system. The method according to scope item 94. 96. The method of claim 95, further comprising the steps of retrieving the information and providing it to a user. 97. Claims further comprising the step of recording in the system software information indicating which logical evaluation or evaluations caused the corresponding state transition or transitions during program processing. The method according to paragraph 95 or paragraph 96. 98, providing one or more program loops, each program loop corresponding to a state diagram, at least one of the program loops being active, which program loops are being executed and the corresponding transition state; 98. The method of any of claims 95-97, further comprising the step of recording information in the system software indicating whether the occurrence was so triggered. 99, further comprising providing each program loop with a program state corresponding to a state of a state diagram, and providing that only one of the program states is active in each of the active program loops at a time point; A method according to claim 98. 100. The method of claim 99, further comprising the steps of providing each program loop with an identifier and recording in the information a program loop identifier for the loop in which the logical evaluation occurred. 101. The method of claim 100, further comprising the step of recording in the information the location in the program at which the conditional portion of the state activity change compound statement was determined to be true. 102, when the recorded information includes the memory locations in the program at which the determination was made that the conditional portion of a state activity change compound statement was true, such information providing syntax rules to the program for statements so as to specify the information necessary to uniquely determine which terms of a portion cause which state-activity transitions when read in the context of the program; 102. The method of claim 101 further constructed by. 103. The method of any one of claims 95 to 102, further comprising recording in the information a time at which a state activity transition occurred. 104. configuring said controller to place a state in a break state, which, when activated, causes a predetermined debug function to be generated, the debug function being configured to control a monitor program of an operating system; Claim 9 further comprising the step of stopping the application program so that it can be returned to parts for debugging and review purposes.
104. A method according to the programmable control device according to any one of clauses 8 to 103. 105. configuring the controller to put a state into a pause state, the pause state, when activated, generating a predetermined debug function, the debug function stopping during processing of a program loop; 105. A method as claimed in any one of claims 94 to 104, further comprising the step of causing a condition during this suspension but not affecting the processing of other program loops. 106. configuring the controller to place a state in a stopped state, the stopped state causing a predetermined debug function to occur when the state is activated, the debug function indicated by a stop statement. Claim 1 further comprising the step of advancing a halt portion through the processing of a program state at a point, said halt statement being selectively conditional, but having no effect on the processing of other program loops. Paragraphs 94 to 105
The method described in any of the preceding sections. 107. Claim 94 provides for each state as a program state represented in the program by a state identifier associated with a block of statements, and defines the steps necessary to emulate the state on the state diagram. to paragraph 106. 108, a patent further comprising the step of providing a variable associated with each active program loop to store a value indicative of each active state block, said variable being assigned to indicate state activity. 108. The method of claim 107. 109. The method according to claim 107 or 108, further comprising the step of storing a value indicating an active state, said step comprising a pointer to a state block or an identifier for the state block. the method of. 110, further comprising the step of providing that other properties of a "break" or "pause" or other debug function are related to a state by being encoded in a statement that is also used as a bounding statement for the state. The method according to claim 108 or 109. 111. A method of controlling the operation of at least one device or process controlled by a programmable controller by emulating one or more state diagrams, the controller defining one or more state diagrams. (a) providing said application program as a block of at least a plurality of statements, each said block being a program state corresponding to a state of a state diagram; (b) providing the program with at least some of the blocks each comprising one or more statements defining at least one control action to be taken during scanning of the blocks; (c) at least one of said program loops is active, and only one of said program states is active at any one time. (d) processing program statements in each active program state of each active program loop, thereby controlling the operation and state sequence of the machine or process; A method of controlling the operation of a single device or process. 112. The need to evaluate whether a particular state is active in order to make a state-dependent decision or to perform a state-dependent activity that depends on the activity of the state of the program loop in which the state-dependent statement appears. Claim 11 further comprising the step of configuring the program to exclude
The method described in Section 1. 113, collecting all statements in a state block for a particular state that include state-dependent evaluations or actions that depend on that particular state; and executing only those statements that appear in state blocks of active states in the system; Accordingly, whenever a particular state is inactive, the recognition of a particular state as active and inactive, thus implying the inactivation of the action, and when the said statement is executed, the said active state 113. The method of claim 112, further comprising the step of eliminating the need to evaluate the state variable because active certification is implied by the method. 114, any of claims 111 through 113, further comprising the step of having a variable associated with each active program loop and storing a value indicating the beginning of an active program state in the loop. The programmable control device according to claim 1. 115. The programmable control device of claim 113, wherein said variable comprises a pointer holding a starting address of a state block. 116, using operating system software means, further taking the value of a variable indicating the beginning of a first program state block to be processed from the first initialized one of said variables, and processing the first state block; change the value stored in that variable or any other variable if a change is indicated by the processing of the first state block, maintain a requested record of the activity of the current state block, and so on. Claim 1 further comprising the step of using said operating system software to advance a program by processing the program iteratively processing each of the active blocks in a desired order.
The method according to item 15. 117, activate a specific program loop,
further comprising the step of providing each said pointer with an identifier that enables initialization of the particular pointer into a particular state block for subsequent processing in a known order with respect to other program loops and for use in debugging. A method according to claim 115 or 116. 118. The method of any of claims 111 through 117, further comprising the step of delimiting a state block using a state statement that relates a state identifier to the state block. 119. The method of claim 118, further comprising the step of organizing the pointers into a task table to facilitate control of the processing in the known order.
JP62138314A 1986-06-03 1987-06-03 Program type control method and apparatus for emulation of state diagram of equipment or process and for control of operating condition thereof Pending JPS6393007A (en)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
NZ21638486A NZ216384A (en) 1986-06-03 1986-06-03 Programmed logic controller
NZ216384 1986-06-03
NZ218742 1986-12-22

Publications (1)

Publication Number Publication Date
JPS6393007A true JPS6393007A (en) 1988-04-23

Family

ID=19921663

Family Applications (1)

Application Number Title Priority Date Filing Date
JP62138314A Pending JPS6393007A (en) 1986-06-03 1987-06-03 Program type control method and apparatus for emulation of state diagram of equipment or process and for control of operating condition thereof

Country Status (2)

Country Link
JP (1) JPS6393007A (en)
NZ (1) NZ216384A (en)

Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS55129840A (en) * 1979-03-30 1980-10-08 Fujitsu Ltd Program trace system
JPS58172711A (en) * 1982-04-01 1983-10-11 Fuji Electric Co Ltd Monitor system of sequence controller
JPS59174912A (en) * 1983-03-25 1984-10-03 Toshiba Corp Programming device
JPS59214956A (en) * 1983-05-20 1984-12-04 Fuji Electric Co Ltd Method for testing program of digital control device
JPS6063603A (en) * 1983-08-11 1985-04-12 Fanuc Ltd Program generation system of programmable controller
JPS60189503A (en) * 1984-03-09 1985-09-27 Mitsubishi Electric Corp Numerical controller
JPS60207927A (en) * 1984-03-30 1985-10-19 Brother Ind Ltd Typewriter to be controlled by program

Patent Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS55129840A (en) * 1979-03-30 1980-10-08 Fujitsu Ltd Program trace system
JPS58172711A (en) * 1982-04-01 1983-10-11 Fuji Electric Co Ltd Monitor system of sequence controller
JPS59174912A (en) * 1983-03-25 1984-10-03 Toshiba Corp Programming device
JPS59214956A (en) * 1983-05-20 1984-12-04 Fuji Electric Co Ltd Method for testing program of digital control device
JPS6063603A (en) * 1983-08-11 1985-04-12 Fanuc Ltd Program generation system of programmable controller
JPS60189503A (en) * 1984-03-09 1985-09-27 Mitsubishi Electric Corp Numerical controller
JPS60207927A (en) * 1984-03-30 1985-10-19 Brother Ind Ltd Typewriter to be controlled by program

Also Published As

Publication number Publication date
NZ216384A (en) 1990-09-26

Similar Documents

Publication Publication Date Title
KR930006222B1 (en) Programmed controller
US5301336A (en) Graphical method for programming a virtual instrument
US6275956B1 (en) Integrated dynamic-visual parallel debugging apparatus and method thereof
KR100339697B1 (en) Program production system for semiconductor tester
JPH0782368B2 (en) Programming terminal device for creating program for programmable controller
US20060085783A1 (en) Multi-process display method in debugger system
KR20060128747A (en) Program creation apparatus, program creation method and program
JPH08221107A (en) Sequence control program generating device
JPH06348481A (en) Macro preparation system and method
US20020173860A1 (en) Integrated control system
JPS6393007A (en) Program type control method and apparatus for emulation of state diagram of equipment or process and for control of operating condition thereof
JPH06332689A (en) Program displaying method and program edition accepting method
JPH02275539A (en) Debugging system
JP2001005517A (en) Monitor method for control program and its device
JP3167245B2 (en) Programmable controller operating state monitoring device
JPH11338733A (en) Debugging device and recording medium
JP5296724B2 (en) Screen display data editing apparatus and screen display data editing program
JP2570593B2 (en) Debug device
JPS63208921A (en) Switch pattern display device
JPH1115680A (en) Multiprocess managing device and program storing medium
JPS62162105A (en) Flow chart type programmable controller
JPH0458303A (en) Programmable controller
JPH1091477A (en) Control microcomputer device and maintenance tool for the same
JPS60159911A (en) Hierarchical sequence control device
JPH1011260A (en) Intra-window data registration method, recording medium, and computer system