JPH10293604A - 高速シーケンス制御方法とその装置、プログラム作成方法 - Google Patents

高速シーケンス制御方法とその装置、プログラム作成方法

Info

Publication number
JPH10293604A
JPH10293604A JP10375997A JP10375997A JPH10293604A JP H10293604 A JPH10293604 A JP H10293604A JP 10375997 A JP10375997 A JP 10375997A JP 10375997 A JP10375997 A JP 10375997A JP H10293604 A JPH10293604 A JP H10293604A
Authority
JP
Japan
Prior art keywords
speed
sequence control
normal
execution program
program
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.)
Granted
Application number
JP10375997A
Other languages
English (en)
Other versions
JP3554651B2 (ja
Inventor
Masahiro Koyama
昌宏 小山
Norihisa Miyake
徳久 三宅
Kenjiro Fujii
健二郎 藤井
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.)
Hitachi Ltd
Original Assignee
Hitachi 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 Hitachi Ltd filed Critical Hitachi Ltd
Priority to JP10375997A priority Critical patent/JP3554651B2/ja
Publication of JPH10293604A publication Critical patent/JPH10293604A/ja
Application granted granted Critical
Publication of JP3554651B2 publication Critical patent/JP3554651B2/ja
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Landscapes

  • Programmable Controllers (AREA)

Abstract

(57)【要約】 【課題】 高速応答を要する処理が混在したシーケンス
を、一連のシーケンスとしての見易さを損なうことな
く、容易に記述し、かつ高速応答を実現する。 【解決手段】 高速応答を要するステップをマークで指
定したシーケンス制御プログラム102を作成するため
のシーケンス制御プログラム編集手段101と、シーケ
ンス制御プログラム102を通常シーケンス制御内部コ
ード104と高速シーケンス制御テーブル105に分
離、変換するためのシーケンス制御プログラム変換手段
103と、通常シーケンス制御内部コード104を実行
するための通常シーケンス制御内部コード実行手段10
6と、高速シーケンス制御テーブル105を処理するた
めの高速シーケンス制御テーブル処理手段107で構成
される。

Description

【発明の詳細な説明】
【0001】
【発明の属する技術分野】本発明は、高速シーケンス制
御方法とその装置、及びプログラム作成方法に係わり、
特に、一連のシーケンス中で高速な応答を要するステッ
プをマークで指定するだけで、高速シーケンス制御テー
ブルを自動的に生成し、この制御テーブルを用いて高速
シーケンス制御を行うようにした高速シーケンス制御方
法とその装置、及びそのためのプログラム作成方法に関
する。
【0002】
【従来の技術】従来のシーケンス制御方法に於て、多く
の場合、プログラマブルコントローラと称される機器制
御専用のコンピュータが用いられ、これに制御対象の動
作仕様に応じた専用の制御プログラムを入力して、機器
のシーケンス制御を行っていた。上記制御プログラム
は、ラダー図やSFC(Seqential Function Chart)な
どによって記述されるが、特に高速応答を要する処理
は、通常のプログラムとは別の割込みプログラムとして
記述する必要があった。この割込みプログラムを用いた
シーケンス制御方法に関する公知例としては、「日立プ
ログラマブルコントローラ HIDIC Hシリーズ CPUモジュ
ール取扱説明書(ソフトウェア編)NB323C」(日立製作
所、1995年)のPP.15-30に記載されているシーケンス制
御方法が挙げられる。以下、この割り込みプログラムを
用いたときの動作例を説明する。
【0003】図2は、プログラマブルコントローラにお
けるスキャン処理のサイクルと入力信号の状態変化のサ
イクルの関係を示すタイミングチャートであり、入力信
号の状態変化のサイクルが、スキャン処理の1サイク
ル、すなわちスキャンタイムに比べて長い場合を示す。
ここで、スキャン処理202で処理されるプログラム中
には、入力信号201がOFFからONになる事象、い
わゆる立ち上がりを検出する処理が記述されており、1
サイクルのスキャン処理中に、この処理が実行されるタ
イミング203を上向き矢印で示した。図2では、入力
信号201の立ち上がりを完全に捕らえていることが分
かる。
【0004】一方、図3は、入力信号の状態変化のサイ
クルがスキャンタイムに比べて短い場合を示している。
スキャン処理されるプログラムは、図2と同じとする。
図3では、入力信号301の変化が高速なために、スキ
ャン処理302がこれに追従できず、入力信号301の
立ち上がりの検出もれ304が発生している。
【0005】図4は、このようにスキャン処理では追従
が困難となる高速な状態変化に対応するため、割込み処
理を併用した場合を示す。割込み処理402は、一定周
期で割込みを入れるタイマなどをきっかけに起動される
処理であり、割込みの周期は入力信号401の変化に追
従できるものとする。割込み処理402で処理されるプ
ログラムの中には、入力信号401の立ち上がりを検出
する処理が記述されており、この処理のタイミング40
3を上向き矢印で示した。図4では、入力信号401の
立ち上がりをもれなく捕らえている。なお、割込み処理
402の1サイクルは、割込み周期そのものよりも短い
ものとする。また、通常のスキャン処理404で処理さ
れるプログラムには、割込み処理402で処理されるプ
ログラムに記述される処理を除いた、その他の処理が記
述される。ここで、スキャン処理404自体は、割込み
処理402に割込まれるために、断続的となり、スキャ
ンタイムは図2や図3のときよりも長くなるが、システ
ムのトータル性能を考えると、入力信号401への応答
性は向上する。
【0006】
【発明が解決しようとする課題】上記した従来技術で
は、高速応答を要する処理を、通常シーケンスとは別の
割込みプログラムとして記述しているが、このような高
速応答を要する処理でも、他の通常シーケンスの処理と
頻繁に同期をとる必要があり、一連のシーケンスとして
見ると、高速応答を要する処理は、実質的に通常シーケ
ンスの中に混在していることが多い。このため、従来の
ように通常シーケンスと高速応答を要する処理とを初め
から分離して記述する方法では、プログラムの記述自体
が複雑になり、その結果として、一連のシーケンスとし
ての見易さが損なわれ、シーケンスの変更も困難になる
という問題があった。
【0007】そこで、本発明では、一連のシーケンスを
記述する際、特に高速応答を要するステップを高速処理
を示すマークで指定しておき、通常シーケンスと高速シ
ーケンスがステップのレベルで混在したシーケンス制御
プログラムから、高速シーケンス制御テーブルを自動的
に生成し、この高速シーケンス制御テーブルを用いて、
高速シーケンスを制御するようにした高速シーケンス制
御方法とその装置、及びそのためのプログラム作成方法
を提供することを目的とする。
【0008】
【課題を解決するための手段】上記の目的を達成するた
めに、本発明は、シーケンス制御プログラムの各ステッ
プのうち、高速処理を必要とするステップにマークを付
加し、前記マークが付加された高速ステップと前記マー
クが付加されていない通常ステップを分離して高速及び
通常中間コードを生成し、さらに前記各中間コードから
高速実行プログラム及び通常実行プログラムを生成し、
前記高速実行プログラムと通常実行プログラムとの間で
実行中ステップの同期をとりながら前記高速実行プログ
ラムを実行するようにしたことを特徴とする高速シーケ
ンス制御方法を開示する。
【0009】また、本発明は、前記高速実行プログラム
が、前記高速ステップのコマンド列を格納するためのコ
マンドリストと、現在のステップの終了条件、次に実行
するステップの番号、及び前記コマンドリストの次に実
行されるコマンド列のエントリアドレスを格納するため
の制御テーブルと、各ステップの前記制御テーブルのエ
ントリアドレスを格納するためのエントリテーブルとか
ら構成された高速シーケンス制御テーブルであることを
特徴とする高速シーケンス制御方法を開示する。
【0010】また、本発明は、シーケンス制御プログラ
ムの作成方法であって、シーケンス制御プログラムの各
ステップのうち、高速処理を必要とするステップマーク
を付加することを特徴とするシーケンス制御プログラム
の作成方法を開示する。
【0011】さらに、本発明は、上記のシーケンス制御
プログラムの作成方法により作成されたシーケンス制御
プログラムを用いて高速シーケンス制御を行うための高
速シーケンス制御装置であって、前記マークが付加され
た高速ステップと前記マークが付加されていない通常ス
テップを分離して高速及び通常中間コードを生成するた
めの中間コード生成手段と、前記各中間コードから高速
実行プログラム及び通常実行プログラムを生成するため
の実行プログラム生成手段と、前記高速実行プログラム
と通常実行プログラムとの間で実行中ステップの同期を
とりながら前記高速実行プログラムを実行するためのプ
ロセッサと、を備えたことを特徴とする高速シーケンス
制御装置を開示する。
【0012】
【発明の実施の形態】以下、本発明の実施の形態を詳細
に説明する。図1は、本発明に係る、高速シーケンス制
御方法に於ける処理の流れを模式的に示すブロック図で
ある。まず、シーケンス制御プログラム編集手段101
によって、一連のシーケンス制御プログラム102を作
成するとともに、特に高速応答を要するステップには、
高速処理を意味するマークをつけておく。こうして作成
したシーケンス制御プログラム102は、シーケンス制
御プログラム変換手段103によって、通常シーケンス
制御内部コード104と、高速シーケンス制御テーブル
105に分離、変換される。高速シーケンス制御テーブ
ル105には、マークで指定した高速応答を要する処
理、すなわち高速シーケンスを制御するためのデータが
高速処理に適したテーブル形式で格納される。一方、通
常シーケンス制御内部コード104には、高速シーケン
ス制御テーブル105に割り振られた高速シーケンス以
外の処理、すなわち通常シーケンスの内部コード列(実
行形式プログラム)が格納される。ここで、通常シーケ
ンス制御内部コード実行手段106によって、通常シー
ケンス制御内部コード104は、解釈、実行される。さ
らに、これと並行して、高速シーケンス制御テーブル処
理手段107によって、高速シーケンス制御テーブル1
05は処理される。このように、シーケンス制御プログ
ラム102を作成する際、高速応答を要するステップを
マークで指定しておくだけで、高速シーケンス制御テー
ブル105を自動的に生成することができるようにする
ことによって、高速応答を要する処理が混在したシーケ
ンスを、一連のシーケンスとしての見易さを損なうこと
のない自然な形で、容易に記述できる。すなわち、従来
よりもシーケンスの作成と変更が容易になるため、プロ
グラムの開発効率と保守性が向上する。
【0013】図5は、図1のシーケンス制御プログラム
編集手段101によって記述されるシーケンス制御プロ
グラム102の一例を示す。図5では、一連のシーケン
スをペトリネットの形式で表現する、グラフィック型の
プログラミング言語を用いており、このような言語に関
する公知例としては、特開平7−72920号公報に記
載されているセル制御言語が挙げられる。このセル制御
言語では、ペトリネットのプレース(図中、○で表記す
る)を、FA(ファクトリー・オートメーション)シス
テムのセルを構成する機器(以下、ユニットとする)の
1ステップあたりの動作と定義して、各プレースをステ
ップの整理番号であるステップNO.(例えば、S10
0)により区別する。また、トランジション(図中、
で表記する)を次ステップへの遷移条件と定義する。さ
らに、トークン(図中、表記せず)のあるプレースを実
行中のステップとし、各プレースには高々一個のトーク
ンしか入らない、いわゆるセーフペトリネットを考え
る。
【0014】図5のプレース501のステップNO.は
S102であり、そのステップでのユニットの動作は、
図1のシーケンス制御プログラム編集手段101を用い
て、コマンド列として記述される。また、プレース50
1の出力側のトランジション502、503、504
は、それぞれステップS102の終了条件OK1、OK
2、OK3を遷移条件とし、各終了条件OK1、OK
2、OK3は、シーケンス制御プログラム編集手段10
1を用いて、入出力信号などに関する条件式として記述
される。なお、図5は、シーケンス表記のみを示し、こ
れらのコマンド列、条件式は表記されていない(コマン
ド列、条件式の例は後述する)。
【0015】本発明では、上記のようなセル制御言語の
使用を少し拡張し、高速処理を要するプレースにマーク
を付ける。例えばプレース505は、プレース501の
ような通常のプレース記号(図中、○で表記する)の右
上に角型のマークを付けたものであり、このプレースの
入力側のトランジション(プレース505の場合、トラ
ンジション503)の状態遷移に対し、高速に応答する
必要があることを意味する。このマークをプレースの高
速オプションと呼ぶことにする。このように、一連のシ
ーケンスのうち、部分的に高速な応答が必要なところが
ある場合、この高速オプションをプレースに付けるだけ
で、そのステップは高速シーケンスとして処理されるこ
とになる。例えば上記プレース505では、その入力側
トランジション503の遷移条件、すなわちステップS
102の終了条件OK2が成立するかどうかの監視を、
図4の割込み処理402の中で行い、もし終了条件OK
2が成立していれば、ステップS105の動作を定義す
るコマンド列を実行するようになっており、状態変化に
対する高速応答が可能となる。また、高速オプションの
付かない通常のプレースのステップは、通常のスキャン
処理の中で実行されることになる。
【0016】このように一連のシーケンス中で、特に高
速応答を要するステップにマークを付加して区別する表
記方法は、SFCのような従来技術にも用意されていな
い。そこで、SFC表記に同様の拡張を行った例を図6
に示す。図6では、SFCのステップ要素(図中、□で
表記する)の右上の角を三角形状に塗りつぶすことによ
り、図5の高速オプションと同じ意味を持たせた。例え
ば、ステップ601(S105)は高速オプション付き
であり、その入力側のトランジション(t1022)で
記述された条件の監視は割込み処理の中で行う。なお、
SFCはペトリネットを起源とする表記であり、以下の
ペトリネットを例とした説明は、SFCを用いた場合に
も同様に成り立つものである。
【0017】また、図5のようなペトリネットを記述す
る際、シーケンス制御プログラム編集手段101では、
各ステップにおける動作をコマンド列で、各トランジシ
ョンの遷移条件を条件式で記述することを前提としてい
るが、仮にこれらを従来のラダー図、ファンクションブ
ロックダイヤグラムなどで記述する場合でも、以下に述
べる高速シーケンス制御方法は同様に実現可能である。
【0018】図7は、図5のシーケンス制御プログラム
102をコード化したものを示し、図5のペトリネット
表記と一対一に対応した構造を持つ。図1のシーケンス
制御プログラム編集手段101では、シーケンス制御プ
ログラム102を図5のペトリネット形式で編集し、最
終的には図7のようにコード形式で保存するものとす
る。ここで、ペトリネット形式からコード形式への変換
は、シーケンス制御プログラム編集手段101の処理で
自動的に行われる。さらに、シーケンス制御プログラム
変換手段103では、図7のようなコード形式のシーケ
ンス制御プログラム102を入力として処理するものと
する。
【0019】図7のシーケンス制御プログラムは、大き
く分けると二つのブロックで構成される。一つは通常シ
ーケンスブロック701で、もう一つは#INTERRUPT文7
03で始まる高速シーケンスブロック702である。高
速シーケンスブロック702は、図5のペトリネットの
プレースのうち、高速オプションの付いているプレース
に関する記述を集めたものであり、通常シーケンスブロ
ック701は、それ以外のプレースに関する記述を集め
たものである。さらに、通常シーケンスブロック701
と高速シーケンスブロック702は、それぞれ"cell"文
706で始まるcellブロック704と、"def" 文7
07で始まるdefブロック705で構成される。ce
llブロック704には、プレースとトランジションの
接続関係、すなわちペトリネットの構造と、各プレース
での処理が含まれている。cellラベル708には、
各プレースのステップNO.(S101)と、そのステ
ップの動作主体のユニットNO.(UNIT1)が記述
される。遷移条件式709には、そのプレースの入力側
のトランジションに入力として接続されるプレースのス
テップNO.(S100)と終了条件名称(OK1)が
記述される。なお、図5のS108のように、入力側の
トランジションが複数ある場合、そのトランジションに
入力として接続されるプレースのステップNO.と終了
条件名称が、ORを意味する記号 "|"の後に記述され
る。コマンド列710には、1ステップあたりの処理を
定義するコマンドが記述される。defブロック705
には、各プレースのステップの終了条件を定義する条件
式が含まれている。defラベル711には、各プレー
スのステップNO.(S101)が記述される。終了条
件式712には、各ステップの終了条件名称(OK1)
と、それを定義する条件式が記述される。また、図5の
S102のように、終了条件が何通りかあるステップの
場合、複数の終了条件名称と条件式が記述されることに
なる。なお、高速シーケンスブロック702の記述も、
以上に述べた通常シーケンスブロック701と同様であ
る。
【0020】また、図7(すなわち図5)のシーケンス
制御プログラムは、そのシーケンスの動作主体であるユ
ニット毎にモジュール化されている。例えば、図7はU
NIT1のモジュールを示す。このようにシーケンス制
御プログラム102の各モジュールは、ユニットNO.
により区別される。
【0021】図8は、図1のシーケンス制御プログラム
変換手段103の処理を示すフローチャートである。シ
ーケンス制御プログラム変換手段103では、まず、入
力されたシーケンス制御プログラム102を解析し(処
理801)、この解析で得られた情報に基づいて、シー
ケンス制御中間コードを生成する(処理802)。次
に、このシーケンス制御中間コードから、通常シーケン
ス制御内部コード104と、高速シーケンス制御テーブ
ル105を生成する(処理803、804)。
【0022】図9は、シーケンス制御プログラム解析の
処理801の詳細なフローチャートである。今、図7の
シーケンス制御プログラムが入力されたとすると、ま
ず、通常シーケンスブロック701のペトリネット構
造、コマンド列、終了条件を格納するデータ領域を確保
する(処理901)。次に、通常シーケンスブロック7
01のcellブロック704、defブロック705
を順に解析する。cellブロック704の解析では、
未処理のプレースを1つ取り出し(処理909)、その
プレースのペトリネット構造を解析し(処理902)、
さらにコマンド列710等を解析する(処理903)。
このような解析を次のプレースの記述がなくなるまで繰
り返す(処理904)。次のdefブロック705の解
析では、未処理のプレースを1つ取り出し(処理91
0)、そのプレースの終了条件式712等を解析し(処
理905)、これを次のプレースの記述がなくなるまで
繰り返す(処理906)。以上の処理で、通常シーケン
スブロック701の解析は終了するが、続いて#INTERRU
PT文703が記述されていれば(処理907)、高速シ
ーケンスブロック702があることが分かるので、その
解析のためのデータ領域を確保し(処理908)、以
下、通常シーケンスブロック701と同様の処理を行
う。
【0023】図10は、図9に於ける1プレース毎のネ
ット構造解析の処理902の詳細なフローチャートであ
る。このネット構造解析は、cellラベル708等と
遷移条件式709等の解析を行う。cellラベル70
8等の解析では、現在処理中のプレース(以下、現プレ
ース)のステップNO.を抽出し(処理1001)、さ
らに現プレースのユニットNO.を抽出する(処理10
02)。遷移条件式709の解析では、未処理の遷移条
件式を1つ取り出し(処理1006)、現プレースの入
力側のトランジションに、入力として接続されるプレー
ス、すなわち一つ前のプレース(以下、前プレース)の
ステップNO.を抽出し(処理1003)、さらに前プ
レースの終了条件名称を抽出する(処理1004)。さ
らに現プレースに他の遷移条件式709があれば、処理
1003、1004を繰り返す(処理1005)。な
お、現プレースに遷移条件式709が複数あるというこ
とは、現プレースの入力側のトランジションが複数ある
ということに相当する。
【0024】図11は、図9に於ける1プレース毎のコ
マンド列解析の処理903の詳細なフローチャートであ
る。このコマンド列解析では、現プレースのコマンド列
710等から、コマンドを一つずつ抽出し(処理110
1)、これを次のコマンドがなくなるまで繰り返す(処
理1102)。
【0025】図12は、図9に於ける1プレース毎の終
了条件解析の処理905の詳細なフローチャートであ
る。この終了条件解析では、defラベル711等から
現プレースのステップNO.を抽出し(処理120
1)、未処理のOK条件を1つ取り出し(処理120
6)、さらに終了条件式712等の抽出を行う(処理1
202)。この処理を当該プレースのOK条件がなくな
るまで繰り返す(処理1203)。なお、終了条件式7
12等は、正常終了を示すOKnの終了条件を定義する
条件式(以下、OK条件式)だけでなく、異常終了を示
すNGnの終了条件を定義する条件式(以下、NG条件
式)の場合もあり、この場合が処理1207、120
4、1205で同様に解析される。なお、以上のシーケ
ンス制御プログラム解析処理801で抽出された各デー
タは、ステップNO.及び終了条件名称で検索できる構
造化されたデータとして記憶されるものとする。
【0026】図13は、図8のシーケンス制御中間コー
ド生成処理802の詳細を示すフローチャートである。
シーケンス制御中間コード生成では、まず未処理のユニ
ットを1つ取り出し(処理1311)、通常シーケンス
と高速シーケンスのネット構造、コマンド列、終了条件
のデータをロードする(処理1301、1302)。次
に当該ユニットの中のステップNO.の小さいプレース
のデータを1つ取り出し(処理1312)、これが高速
オプション付きのプレースであれば(処理1303)、
高速シーケンス中間コードバッファを選択し(処理13
05)、高速オプションなしであれば(処理130
3)、通常シーケンス中間コードバッファを選択する
(処理1304)。ここで、中間コードバッファは、ユ
ニット毎に通常シーケンスと高速シーケンスの二つ分用
意されるものとする。次に、1プレース毎の中間コード
を生成し、これをバッファに出力する(処理130
6)。さらに、現プレースよりもステップNO.の大き
いプレースがあれば、処理1312に戻り、同様の処理
を繰り返す(処理1307)。次のプレースがないと
き、現ユニットよりもユニットNO.の大きいユニット
のモジュールがあれば、処理1311に戻り、同様の処
理を繰り返す(処理1308)。以上のように、すべて
のユニットのモジュールについて中間コードを生成した
後、まず、通常シーケンスの中間コードバッファを結合
し、保存する(処理1309)。さらに、高速シーケン
スの中間コードバッファを結合し、保存する(処理13
10)。
【0027】図14は、図13に於ける1プレース毎の
中間コードの生成処理1306の詳細を示すフローチャ
ートである。この処理では、まず1つの前プレースを取
り出し(処理1406)、ネット構造データから現プレ
ースのステップNO.(=i)を獲得する(処理140
1)。次に、ネット構造データから前プレースのステッ
プNO.と終了条件を獲得し、さらに、終了条件データ
から前プレースの終了条件の条件式を獲得する(処理1
402)。つづいてこれらのデータから、まず、中間コ
ードの基本形であるIF文の前半部を生成し、バッファ
に出力する(処理1403)。ここで、"IF Sj == Exec
uting & 条件式 ->"は、「ステップjを実行後、その終
了条件の条件式が成立すれば」を意味する。また、コマ
ンド"TERM Sj" は「ステップSjを終了する」、"EXEC
Si" は「ステップSiを実行する」を意味する。次に、
現プレースSiのコマンド列を、バッファに続けて出力
する(処理1404)。これで前プレース1つについて
の処理を終わり、他にも前プレースがあれば、すなわ
ち、ステップSiの入力側のトランジションが他にもあ
れば、処理1406に戻り、同様の処理を繰り返す(処
理1405)。
【0028】図15は、図7のシーケンス制御プログラ
ム102を中間コード化したものを示す。図7と同様
に、中間コードも通常シーケンスブロック1501と高
速シーケンスブロック1502の二つのブロックで構成
される。ここで、中間コードはIF文1503に示した
ようなIF文を基本形とし、これを集めたものがブロッ
クとなる。
【0029】図16は、通常シーケンス中間コードのI
F文から、通常シーケンス制御内部コード104を生成
した例を示す。内部コードは実際はバイナリ形式である
が、図16ではニーモニック形式で表記した。IF文1
601の条件部1602から内部コード1606が、コ
マンド列1603から内部コード1607が生成され
る。このようにIF文1601の内部コードは "STT i"
内部コード1605から始まるブロック1604とな
る。なお、この "STT i"内部コード1605は、内部コ
ードを実行する際に利用される。
【0030】図17は、図16に示したような通常シー
ケンス制御内部コード104を生成するための、図8の
処理803の詳細を示すフローチャートである。まず、
通常シーケンスの中間コードをロードし(処理170
1)、次に、中間コードの未処理のIF文を一つずつ取
り出して(処理1709)、条件部"IF Si == ..."から
ステップNO.(=i)を抽出する(処理1702)。
このステップNO.iが前のIF文の条件部と同じでな
ければ(処理1703)、"STT i" 内部コードを生成す
る(処理1704)。次に、条件式から内部コードを生
成し(処理1705)、さらにコマンド列から内部コー
ドを生成する(処理1706)。その後、次のIF文が
あれば、処理1709に戻り、同様の処理を繰り返す
(処理1707)。全てのIF文を処理した後、それぞ
れの"STT" 内部コードが通常シーケンス制御内部コード
104の中のどこにあるかを示すアドレステーブルを生
成する(処理1708)。図18は、図15の通常シー
ケンスブロック1501を内部コード化したものを示
す。IF文1503を内部コード化したものがブロック
1801である。
【0031】図19は、高速シーケンス中間コードのI
F文から、高速シーケンス制御テーブル105を生成し
た例を示す。図19のように、高速シーケンス制御テー
ブル105は、エントリテーブル1906、制御テーブ
ル1907、コマンドリスト1908の三つのデータで
構成されている。エントリテーブル1906は、IF文
の内容を制御テーブル1907に登録する際、制御テー
ブル1907におけるエントリアドレスを記憶するため
のテーブルである。エントリテーブル1906は、ステ
ップNO.を添字とする1次元配列であり、現在のステ
ップNO.から一意に制御テーブル1907のエントリ
アドレスを特定できる。高速シーケンス中間コードに関
係のないステップNO.の場合、エントリテーブル19
06には未登録を意味する値(16進表記でFFFF)
が格納されている。制御テーブル1907には、IF文
の条件部とステップNO.更新に関する処理が格納され
ており、出力側のトランジション数(以下、分岐数)を
格納するフィールド、条件式を格納するフィールド、次
ステップNO.を格納するフィールド、コマンドリスト
1908へのエントリアドレスを格納するフィールドで
構成される。コマンドリスト1908は、IF文のコマ
ンド列を内部コード化して格納するエリアである。各コ
マンド列の終わりが分かるように、終了コード(CmdLis
tEndCode)を付加する。以上のような構成の高速シーケ
ンス制御テーブル105を用いることで、現在のステッ
プNO.に応じた処理を効率良く呼び分けることがで
き、処理時間を短縮することができる。前に述べたよう
に、高速シーケンス制御テーブル105は、割込み処理
によって実行されるが、この割込み処理に要する時間、
すなわち割込み処理時間は、高速シーケンス制御テーブ
ル105を処理する時間によって決定する。システムの
応答性を良くするためには、割込み処理時間を短くし、
さらに割込み周期を短くする必要がある。このため、本
実施例では、以上に述べたような高速シーケンス制御テ
ーブル105を用いた。
【0032】図20は、図19に示したような高速シー
ケンス制御テーブル105を生成するための、図8の処
理804の詳細を示すフローチャートである。以下、図
19を参照しながら、フローチャートの説明を行う。ま
ず、高速シーケンス中間コードをロードし(処理200
1)、未処理のIF文を1つ取り出す(処理201
1)。次に、IF文の条件部の"IF Sj == ..."1902
等(図19)から前プレースのステップNO.(=j)
を抽出し(処理2002)、そのステップNO.jが前
に処理したIF文と同じ値でなければ(処理200
3)、エントリテーブル1906のj番目に、新しくデ
ータを登録する制御テーブル1907のエントリアドレ
スを格納する(処理2004)。ここで、プレース1個
あたりに割り当てられる制御テーブル1907のフィー
ルドの大きさは固定されており、既に登録されているプ
レースの数からエントリアドレスを一意に算出すること
ができるものとする。次に、制御テーブル1907の分
岐数をカウントアップする(処理2005)。分岐数は
新規登録時には0となっており、ある有限個数まで登録
可能なものとする。前述のように、分岐数とは、前プレ
ースの出力側のトランジションのうちで、高速オプショ
ン付きのプレースに入力として接続されるものの個数で
ある。次に、IF文のその他の条件式1903から制御
テーブル1907の条件部を生成する(処理200
6)。制御テーブル1907の条件部は、単純なマッチ
ング処理を用いて高速処理できるように、簡略化したデ
ータ形式(以下、略式コード)にする。このような略式
コード化を可能とするため、IF文の条件式にある程度
の記述上の制約を設けることもある。例えば、条件式の
各辺を単項式に限るなどの制約が考えられる。次に、I
F文のコマンド"EXEC Si" 1904等のステップNO.
iを抽出して、次ステップNO.のフィールドに格納す
る(処理2007)。さらに、残りのコマンド列190
5を格納するためのコマンドリスト1908のエントリ
アドレスを算出し、これを制御テーブル1907のコマ
ンドエントリのフィールドに格納する(処理200
8)。次に、このコマンド列を内部コード化し、コマン
ドリスト1908に格納する(処理2009)。なお、
各コマンド列の内部コードは固定長ではないため、コマ
ンド列の終わりが分かるように、CmdListEndCodeを付加
する。さらに、次のIF文があれば、処理2011に戻
り、同様の処理を繰り返す(処理2010)。
【0033】図21は、図15の高速シーケンスブロッ
ク1502から生成したテーブルを示す。ここで、エン
トリテーブル2101に示す通り、制御テーブル210
2に登録されるプレースは3個であり、その中のプレー
スS102の分岐数は2個となる。これは、図5のS1
02の3個の出力トランジションのうち、2個が高速オ
プション付きのプレースに入力として接続されているこ
とに相当する。
【0034】図22は、図1の通常シーケンス制御内部
コード実行手段106の処理を示すフローチャートであ
る。この通常シーケンス制御内部コード実行手段106
は、コントローラのファームウェアとして提供されるタ
スクの一つであり、コントローラ内にダウンロードされ
る通常シーケンス内部コード104を解釈、実行するこ
とによって、コントローラに接続される機器を制御す
る。
【0035】図22に於いてまず、通常シーケンス制御
内部コード実行手段106では、ユニット毎に内部コー
ドのスキャンを行うために、現在のユニットNO.(=
n)を初期化(n=0)する(処理2201)。次に、
nの値を1増加し、次のユニットNO.とする(処理2
202)。なお、ユニット毎に実行中のプレースを示す
現ステップNO.が管理されており、この情報を通常シ
ーケンス制御内部コード実行手段106から参照でき
る。そこで、UNITnの現ステップNO.(=i)を
取得し(処理2203)、"STT i" 内部コードにジャン
プする(処理2204)。このとき、通常シーケンス制
御内部コード104に付随する"STT i" 内部コードのア
ドレステーブルによりジャンプ先のアドレスを求める。
ジャンプ後は次の"STT" 内部コードが現れるまで、内部
コードを順次フェッチし、実行する(処理2205)。
さらに、nが所定の最大値でなく、次のユニットがあれ
ば、処理2202に戻り、同様の処理を繰り返す(処理
2206)。nが最大値、すなわち登録ユニット数に到
達し、次のユニットがなければ、処理2201に戻る
(処理2206)。以上のように、通常シーケンス制御
内部コード104の、ユニット毎の実行中ステップのブ
ロックのみを選択的にスキャンすることにより、スキャ
ンタイムを短縮することができる。
【0036】図23、24は、図1の高速シーケンス制
御テーブル処理手段107の処理を示すフローチャート
である。この2つの図は1つのフローチャートを構成
し、図中が2つの図の接続関係を示している。高
速シーケンス制御テーブル処理手段107は、コントロ
ーラのファームウェアとして提供される割込みタスクで
あり、コントローラ内にダウンロードされる高速シーケ
ンス制御テーブル105を処理することで、コントロー
ラに接続される機器を制御する。なお、割込みタスクと
は、一定周期で割込みを入れるタイマや外部入力信号を
きっかけとして起動されるタスクであり、通常シーケン
ス制御内部コード実行手段106のタスクが実行中に優
先的に割込んで実行される。図23、24に於いて、高
速シーケンス制御テーブル処理手段107でも、ユニッ
ト毎にテーブルの処理を行うため、まず、現在のユニッ
トNO.(=n)を初期化する(処理2301)。次
に、nの値を1増加し(処理2302)、UNITnの
現ステップNO.(=i)を取得する(処理230
3)。さらに、エントリテーブル2101のi番目のデ
ータから制御テーブル2102のエントリアドレスを取
得する(処理2304)。次に、制御テーブル2102
の該当アドレスのフィールドから分岐数を取得する(処
理2305)。各分岐毎にテーブルを処理するために、
現在の分岐NO.(=m)を初期化(m=0)する(処
理2306)。mの値を1増加し、次の分岐NO.とす
る(処理2307)。制御テーブル2102の該当フィ
ールドにあるm番目の分岐の条件部の略式コードを評価
し(処理2308)、条件成立ならば(処理230
9)、制御テーブル2102からコマンドリスト210
3のエントリアドレスを取得する(処理2401)。さ
らに、コマンドリスト2103の該当アドレスの内部コ
ードを、CmdListEndCodeが現れるまで順次フェッチし、
実行する(処理2402)。次に、制御テーブル210
2から次ステップNO.を取得し(処理2403)、U
NITnのステップNO.を次ステップNO.に更新す
る(処理2404)。なお、各ユニットの現在のステッ
プNO.は、通常シーケンス制御内部コード実行手段1
06と、高速シーケンス制御テーブル処理手段107の
両方で、参照、書き換えができる共有データとする。こ
のように、通常シーケンス制御内部コード実行手段10
6と、高速シーケンス制御テーブル処理手段107が、
現在実行中のステップNO.を共有することによって、
両者の間で互いにステップのレベルで同期をとることが
可能となる。また、条件不成立ならば(処理230
9)、分岐NO.が分岐数に達しているかどうか、すな
わち次の分岐があるかどうかをチェックし、次の分岐が
あれば、処理2307に戻って同様の処理を繰り返し、
次の分岐がなければ、次のユニットの処理に移る(処理
2310)。最後に、nが最大値でなく、次のユニット
があれば、処理2302に戻って同様の処理を繰り返
し、次のユニットがなければ、ここで割込み処理の1サ
イクルを完了する(処理2405)。
【0037】なお、以上の実施の形態では、本実施例で
は、高速シーケンス制御テーブル処理手段107を割込
みで実行される処理として説明したが、高速シーケンス
制御用の別のコントローラに設けて、割込み以外の方法
で処理する場合でも、本発明のシーケンス制御方法が同
様な効果を有することは明らかである。また、高速シー
ケンス制御テーブルに代わって、通常シーケンス制御内
部コード104と同じ形式の高速シーケンス制御内部コ
ードを生成し、これを十分な処理速度を持ったコントロ
ーラで処理するという方法でも、本発明の方法を実現で
きる。
【0038】
【発明の効果】本発明によれば、一連のシーケンスを記
述する際、高速応答を要するステップをマークで指定す
るだけで、高速シーケンス制御テーブルを自動的に生成
できるので、高速応答を要する処理が混在したシーケン
スを、一連のシーケンスとしての見易さを損なうことな
く、容易に記述することができ、その結果、プログラム
開発効率と保守性を向上することができる効果がある。
【図面の簡単な説明】
【図1】本発明になる高速シーケンス制御方法の処理の
流れを模式的に示すブロック図である。
【図2】プログラマブルコントローラにおけるスキャン
処理のサイクルと、入力信号の状態変化のサイクルの関
係を示すタイミングチャートである。
【図3】図2の入力信号の状態変化のサイクルがスキャ
ンタイムに比べて短い場合を示すタイミングチャートで
ある。
【図4】図3の入力信号の状態変化を捕らえるために割
込み処理を併用した場合を示すタイミングチャートであ
る。
【図5】ペトリネット表記によるシーケンス制御プログ
ラムの一例を示す図である。
【図6】SFC表記によるシーケンス制御プログラムの
一例を示す図である
【図7】図5のシーケンス制御プログラムをコード化し
たものを示す図である。
【図8】シーケンス制御プログラム変換手段の処理を示
すフローチャートである。
【図9】図8のシーケンス制御プログラム解析の処理を
示すフローチャートである。
【図10】図9の1プレース毎のネット構造解析の処理
を示すフローチャートである。
【図11】図9の1プレース毎のコマンド列解析の処理
を示すフローチャートである。
【図12】図9の1プレース毎の終了条件解析の処理を
示すフローチャートである。
【図13】図8のシーケンス制御中間コード生成の処理
を示すフローチャートである。
【図14】図13の1プレース毎の中間コード生成の処
理を示すフローチャートである。
【図15】図7のシーケンス制御プログラムから生成し
た中間コードを示す図である。
【図16】通常シーケンス中間コードから通常シーケン
ス制御内部コードを生成した例を示す図である。
【図17】図8の通常シーケンス制御内部コード生成の
処理を示すフローチャートである。
【図18】図15の通常シーケンスブロックから生成し
た内部コードを示す図である。
【図19】高速シーケンス中間コードから高速シーケン
ス制御テーブルを生成した例を示す図である。
【図20】図8の高速シーケンス制御テーブル生成の処
理を示すフローチャートである。
【図21】図15の高速シーケンスブロックから生成し
たテーブルを示す図である。
【図22】通常シーケンス制御内部コード実行手段の処
理を示すフローチャートである。
【図23】高速シーケンス制御テーブル処理手段の処理
を示すフローチャートである。
【図24】図23のフローチャートの続きである。
【符号の説明】
101 シーケンス制御プログラム編集手段 102 シーケンス制御プログラム 103 シーケンス制御プログラム変換手段 104 通常シーケンス制御内部コード 105 高速シーケンス制御テーブル 106 通常シーケンス制御内部コード実行手段 107 高速シーケンス制御テーブル処理手段 501 プレース 502、503、504 トランジション 505 高速オプション付きのプレース 601 SFCにおける高速オプション付きのステップ
要素 701 通常シーケンスブロック 702 高速シーケンスブロック 703 #INTERRUPT文 704 cellブロック 705 defブロック 706 "cell"文 707 "def"文 708 cellラベル 709 遷移条件式 710 コマンド列 711 defラベル 712 終了条件式 1501 通常シーケンスブロック 1502 高速シーケンスブロック 1503 中間コードのIF文 1601 中間コードのIF文 1602 条件部 1603 コマンド列 1604 内部コードのブロック 1605、1606、1607 内部コード 1801 内部コードのブロック 1901 中間コードのIF文 1902、1903 条件部 1904、1905 コマンド列 1906 エントリテーブル 1907 制御テーブル 1908 コマンドリスト 2101 エントリテーブル 2102 制御テーブル 2103 コマンドリスト

Claims (8)

    【特許請求の範囲】
  1. 【請求項1】 シーケンス制御プログラムの各ステップ
    のうち、高速処理を必要とするステップにマークを付加
    し、前記マークが付加された高速ステップと前記マーク
    が付加されていない通常ステップを分離して高速及び通
    常中間コードを生成し、さらに前記各中間コードから高
    速実行プログラム及び通常実行プログラムを生成し、前
    記高速実行プログラムと通常実行プログラムとの間で実
    行中ステップの同期をとりながら前記高速実行プログラ
    ムを実行するようにしたことを特徴とする高速シーケン
    ス制御方法。
  2. 【請求項2】 前記高速実行プログラムは、前記高速ス
    テップのコマンド列を格納するためのコマンドリスト
    と、現在のステップの終了条件、次に実行するステップ
    の番号、及び前記コマンドリストの次に実行されるコマ
    ンド列のエントリアドレスを格納するための制御テーブ
    ルと、各ステップの前記制御テーブルのエントリアドレ
    スを格納するためのエントリテーブルとから構成された
    高速シーケンス制御テーブルであることを特徴とする請
    求項1に記載の高速シーケンス制御方法。
  3. 【請求項3】 前記高速実行プログラムと通常実行プロ
    グラムを同一のプロセッサにより処理するとともに、前
    記高速実行プログラムは前記プロセッサへの割り込みに
    より実行されることを特徴とする請求項1に記載の高速
    シーケンス制御方法。
  4. 【請求項4】 シーケンス制御プログラムの作成方法で
    あって、シーケンス制御プログラムの各ステップのう
    ち、高速処理を必要とするステップマークを付加するこ
    とを特徴とするシーケンス制御プログラムの作成方法。
  5. 【請求項5】 前記シーケンス制御プログラムはペトリ
    ネットもしくはSFCによって記述され、前記マークは
    ペトリネットのプレースもしくはSFCのステップ要素
    に付加される記号であることを特徴とする請求項4に記
    載の高速シーケンス作成方法。
  6. 【請求項6】 請求項4に記載のシーケンス制御プログ
    ラムの作成方法により作成されたシーケンス制御プログ
    ラムを用いて高速シーケンス制御を行うための高速シー
    ケンス制御装置であって、 前記マークが付加された高速ステップと前記マークが付
    加されていない通常ステップを分離して高速及び通常中
    間コードを生成するための中間コード生成手段と、 前記各中間コードから高速実行プログラム及び通常実行
    プログラムを生成するための実行プログラム生成手段
    と、 前記高速実行プログラムと通常実行プログラムとの間で
    実行中ステップの同期をとりながら前記高速実行プログ
    ラムを実行するためのプロセッサと、 を備えたことを特徴とする高速シーケンス制御装置。
  7. 【請求項7】 前記プロセッサは前記高速実行プログラ
    ムと合わせて前記通常実行部を実行するとともに、前記
    高速実行プログラムを前記プロセッサへの割り込みによ
    り起動するための割り込み手段を備えたことを特徴とす
    る請求項6に記載の高速シーケンス制御装置。
  8. 【請求項8】 前記高速実行プログラムと通常実行プロ
    グラムが実行中ステップの番号を共有するための記憶手
    段を設けたことを特徴とする請求項6に記載の高速シー
    ケンス制御装置。
JP10375997A 1997-04-22 1997-04-22 高速シーケンス制御方法とその装置、プログラム作成方法 Expired - Fee Related JP3554651B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP10375997A JP3554651B2 (ja) 1997-04-22 1997-04-22 高速シーケンス制御方法とその装置、プログラム作成方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP10375997A JP3554651B2 (ja) 1997-04-22 1997-04-22 高速シーケンス制御方法とその装置、プログラム作成方法

Publications (2)

Publication Number Publication Date
JPH10293604A true JPH10293604A (ja) 1998-11-04
JP3554651B2 JP3554651B2 (ja) 2004-08-18

Family

ID=14362459

Family Applications (1)

Application Number Title Priority Date Filing Date
JP10375997A Expired - Fee Related JP3554651B2 (ja) 1997-04-22 1997-04-22 高速シーケンス制御方法とその装置、プログラム作成方法

Country Status (1)

Country Link
JP (1) JP3554651B2 (ja)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2007058447A (ja) * 2005-08-23 2007-03-08 Kimura Unity Co Ltd 拡張ペトリネットに基づく制御対象システムのモデル化方法および拡張ペトリネットに基づく制御装置
JP2015187894A (ja) * 2009-09-21 2015-10-29 フィッシャー−ローズマウント システムズ,インコーポレイテッド プロセス管理環境内でモジュール実行シーケンスを管理する方法及び装置

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2007058447A (ja) * 2005-08-23 2007-03-08 Kimura Unity Co Ltd 拡張ペトリネットに基づく制御対象システムのモデル化方法および拡張ペトリネットに基づく制御装置
JP2015187894A (ja) * 2009-09-21 2015-10-29 フィッシャー−ローズマウント システムズ,インコーポレイテッド プロセス管理環境内でモジュール実行シーケンスを管理する方法及び装置

Also Published As

Publication number Publication date
JP3554651B2 (ja) 2004-08-18

Similar Documents

Publication Publication Date Title
JPH05342298A (ja) シミュレーション装置
JP2004341671A (ja) 情報処理システム、制御方法、制御プログラム、及び記録媒体
JP3554651B2 (ja) 高速シーケンス制御方法とその装置、プログラム作成方法
CN111580821B (zh) 脚本绑定方法、装置、电子设备及计算机可读存储介质
JPH10301790A (ja) アセンブル処理方式
JP7338922B2 (ja) 異種埋め込み型の表形式化動作プロセスの処理および実行方法および装置
US6086624A (en) Simulator and simulation method in each of which simulation can be carried out at a high-speed
JPH06301522A (ja) 計算機システム構成方法
JP2009134445A (ja) ソフトウェア部品抽出支援装置
JPH0934698A (ja) ソフトウェア生成方法及び開発支援方法
JPH08123697A (ja) エミュレーション高速化方式
JP2529429B2 (ja) プログラマブルコントロ―ラ
CN119806540B (zh) 一种融合算子实现的方法、装置、设备及介质
JP3910831B2 (ja) プログラム開発支援装置、記録媒体、及びプログラム
JP2001255912A (ja) モーションプログラムの実行方法
JP5253115B2 (ja) プログラム変換装置、プログラム分析装置、プログラム変換方法、プログラム分析方法、およびプログラム
JPH0210429A (ja) プログラム構造化処理方式
JP3352871B2 (ja) プログラマブルコントローラ
JP2765911B2 (ja) データ駆動型制御方法およびコンパイル装置
JPH09160611A (ja) プログラマブルコントローラ
JPH0667864A (ja) マニュアル類の自動作成,更新方法
JPH1078866A (ja) プログラム設計書自動作成システム
JPH08234995A (ja) プログラム変換装置
Galinec et al. A mixed synchronous-asynchronous approach for digital signal processing
JPH05100891A (ja) プログラムデバツグ装置

Legal Events

Date Code Title Description
A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20031225

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20040210

A521 Written amendment

Effective date: 20040323

Free format text: JAPANESE INTERMEDIATE CODE: A523

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Effective date: 20040427

Free format text: JAPANESE INTERMEDIATE CODE: A01

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20040510

R150 Certificate of patent (=grant) or registration of utility model

Free format text: JAPANESE INTERMEDIATE CODE: R150

FPAY Renewal fee payment (prs date is renewal date of database)

Free format text: PAYMENT UNTIL: 20080514

Year of fee payment: 4

LAPS Cancellation because of no payment of annual fees