JP3344020B2 - プログラマブルコントローラ - Google Patents

プログラマブルコントローラ

Info

Publication number
JP3344020B2
JP3344020B2 JP21453793A JP21453793A JP3344020B2 JP 3344020 B2 JP3344020 B2 JP 3344020B2 JP 21453793 A JP21453793 A JP 21453793A JP 21453793 A JP21453793 A JP 21453793A JP 3344020 B2 JP3344020 B2 JP 3344020B2
Authority
JP
Japan
Prior art keywords
register
state
instruction
read
transition
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired - Lifetime
Application number
JP21453793A
Other languages
English (en)
Other versions
JPH0764470A (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.)
Fuji Electric Co Ltd
Original Assignee
Fuji Electric Co 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 Fuji Electric Co Ltd filed Critical Fuji Electric Co Ltd
Priority to JP21453793A priority Critical patent/JP3344020B2/ja
Publication of JPH0764470A publication Critical patent/JPH0764470A/ja
Application granted granted Critical
Publication of JP3344020B2 publication Critical patent/JP3344020B2/ja
Anticipated expiration legal-status Critical
Expired - Lifetime legal-status Critical Current

Links

Landscapes

  • Programmable Controllers (AREA)

Description

【発明の詳細な説明】
【0001】
【産業上の利用分野】本発明は、SFC記述に基づく分
岐命令や合流命令のより広範且つ迅速な処理を実現する
プログラマブルコントローラに関する。
【0002】
【従来の技術】従来より、現場においては、制御すべき
様々な情報例えばベルトコンベアの出口を通過した製品
が所定数量に達した等の物量的情報、或いは裁断機が稼
動中であるときに危険域に移動物体を検出した等の論理
的情報等がある。それら様々な情報に応じて所定の出力
制御(シーケンス制御)を行うものとしてプログラマブ
ルコントローラ(以下、PCと称する)が広く用いられ
ている。
【0003】このPCのプログラミング方法は、通常の
コンピュータプログラミングとは全く異なり、一般に、
PC化以前から現場で用いられていた接点(リミットス
イッチ)やコイル(リレー)等のシンボルマークによる
リレー回路の展開接続図(ラダー図)が用いられる。こ
のラダー図で記述されたプログラムは、中間言語に変換
され、さらに機械語に翻訳され、ワード単位のビット情
報としてRAM等のメモリにアドレス順に格納される。
【0004】このPCのプログラム記述方法として、近
年、PCの制御動作を分かり易く図形表示できるSFC
(Sequencial Function Chart )という国際規格(IE
C SC 65A/WG6 )の記述形式が用いられるようになって
いる。
【0005】このSFCの記述形式は、図14(a) に示
すように、ステップ(STEP)と呼ばれる記述部(S
0、S1、S2、・・・)と、トランジション(TRA
NSITION)と呼ばれる記述部(TN0、TN1、
・・・)とが、リンク(LINK)によって接続され
て、S0,TN0,S1,TN1,S2,・・・と交互
に配列されて構成される。これらの図形プログラムはそ
のままグラフィックで記憶される。
【0006】上記のリンクはSFCのグラフィック表現
においてステップ間を接続してステップ間の移行の道程
を示し、道程の方向は常に上から下である。また、ステ
ップ(S0、S1、S2、・・・)は、一連のシーケン
ス(制御プログラム)の中の一つの工程を意味し、活性
と非活性と2つの状態を持つ。活性時においては、その
ステップに所属するアクションにより入出力が演算され
る。そして、トランジション(TN0、TN1、・・
・)は、ステップとステップの間に必ず存在し、あるス
テップから後続ステップへの移行条件を表し、移行条件
のオン/オフにより後続ステップの選択/非選択が示さ
れる。
【0007】SFCの規約において、既に選択されてい
るステップからその後続ステップへの移行は、移行先ス
テップが非活性であること、及び移行元ステップと移行
先ステップ間にあるトランジションの移行条件が成立し
ていることの2つの条件が満たされているときのみ行な
われる。また、移行が行われると、移行先ステップが活
性化され移行元ステップが非活性化される。
【0008】このようなプログラムの構成と上述した規
約に従って、ステップの流れをニーモニック(mnemoni
c:計算機の命令を表現するコード又は略号)で記述
し、さらに、ステップ及びトランジションの内容をラダ
ー図で記述する。
【0009】図図(b) は、上記ステップ(S0,S1,
S2)及びトランジション(TN0,TN1)のラダー
図による記述の一例である。同図(a) に示すトランジシ
ョンTN0のオン/オフ(真/偽)は、図図(b) に示す
トランジションTN0のプログラムaの2個の接点のオ
ン/オフの論理積が演算され、この演算結果のオン/オ
フがコイルTN0に出力されることにより決定される。
また、同図(a) に示すトランジションTN1のオン/オ
フ(真/偽)の場合は、図図(b) に示すトランジション
TN1のプログラムbの2個の接点のオン/オフの論理
和が演算されてその演算結果のオン/オフがコイルTN
1に出力される。コイルTN0、TN1・・・には、こ
れらに対応するビットメモリが用意されており、上記演
算結果のオン/オフのコイルTN1、TN1・・・に対
する出力は、対応するビットメモリのオン/オフ
(“1”/“0”)として記録される。
【0010】また、ステップには、実際の処理内容プロ
グラムである複数(0個以上16個以下)のアクション
(ACTION)が記述される。1つのアクションは、
当該ステップで制御対象となる機器類に対する実際の動
作内容を表し、一連の論理演算を行う多数の命令(例え
ば複数のスイッチの直列又は並列の組み合わせ)からな
り、結果として1つの出力又は命令を生成する。ステッ
プ内の全てのアクションは、当該ステップが活性である
ときのみ実行される。上記各ステップにも対応するビッ
トメモリが用意されており、各ステップの活性/非活性
は、それぞれのステップに対応するビットメモリ(通
常、ステップリレーと称される)のオン/オフとして記
録される。
【0011】このように記述されるステップの流れにお
いて、図15(a) 〜(d) に示すように、選択分岐、選択
合流、並列分岐、及び並列合流の4つのステップ移行方
法がSFCの規約により示されている。これについて説
明すると、先ず、同図(a) に示す選択分岐では、複数ス
テップ間の選択は、水平リンクの下に、展開し得る数の
ステップS4、S5、・・・に対応するトランジション
記号が記述される。同図では、ステップS3が活性で且
つトランジション条件「a」が真であるときにのみステ
ップS3からステップS4へ移行する。また、ステップ
S3が活性で、トランジション条件「b」が真、且つト
ランジション条件「a」が偽のときにのみステップS3
からステップS5へ移行する。
【0012】次に、同図(b) に示す選択合流では、ステ
ップ選択の終りは、水平リンクの上に、選択し得る数の
終了ステップに対応するトランジション記号が記述され
る。同図では、ステップS6が活性で且つトランジショ
ン条件「c」が真のときにのみステップ6からステップ
8へ移行する。また、ステップ7が活性で且つトランジ
ション条件「d」が真であるときにのみステップ7から
ステップ8へ移行する。
【0013】また、同図(c) に示す並列分岐では、分岐
を示す水平二重リンクの直ぐ上に唯一つの共通トランジ
ション記号が記述される。同図では、ステップ9が活性
で、且つ共通トランジションの移行条件「e」が真であ
るときにのみステップS9からステップS10、S1
1、・・・へ移行する。ステップS10、S11、・・
・は同時に活性化され、その後それぞれ独立してステッ
プ実行が進行する。
【0014】そして、同図(d) に示す並列合流では、合
流を示す水平二重リンクの直ぐ下に唯一つの共通トラン
ジション記号が記述される。同図では、水平二重リンク
に接続された全てのステップS12、S13、・・・が
活性で且つ共通トランジションの移行条件「f」が真で
あるときにのみステップS12、S13、・・・からス
テップS14への移行が行われる。
【0015】
【発明が解決しようとする課題】ところで、現在、SF
C記述の分岐や合流に適切に対応できるニーモニックは
確立されていない。
【0016】上記の分岐又は合流をニーモニックで記述
する場合、分岐ラインの先頭ステップ毎又は分岐ライン
の末尾ステップ毎に対応して複数命令に展開する方法
と、1つのオペランド内に上記複数命令を含む構成の1
つの命令の形に展開する方法とが考えられる。いずれの
場合も、分岐又は合流のステップ移行に際しては、全て
の移行元、全ての移行先、及びこれらの移行に係わる全
てのトランジションのオン/オフ(真/偽)状態を収集
し、前述したSFC規約に基づく移行実行の可否を決定
しなければならない。
【0017】複数命令に展開した場合、通常、収集され
たオン/オフ状態データに基づく移行実行可否の決定
は、展開された複数命令の最終段階で行う。そして、移
行を実行するに際しては、移行に関係する各ステップの
活性化(移行先ステップの場合)及び非活性化(移行元
ステップの場合)を行う。そして、このためには、これ
ら活性化又は非活性化する各ステップのアドレスを記録
しておかねばならない。このため、最終段階の命令の動
作が極めて複雑になり、したがって、分岐や合流に対し
て、PCの動作が遅くなるという問題があった。
【0018】またこの場合、ステップの最大分岐数は予
め用意されたメモリ容量に対応する。このため、最大分
岐数に制約を受け、したがって、複雑な又は大規模ある
いは広範なシーケンス制御に対応できないという問題が
あった。
【0019】また、上記のように複数命令に展開しない
場合、すなわち、1つのオペランド内に更に複数の命令
を記述することを繰り返して1命令の形で展開しても、
命令の動作が複雑になることにおいては何ら変りはな
く、やはり問題は残る。
【0020】本発明の課題は、分岐/合流に対してより
高速に動作し、且つメモリ容量に制約を受けることなく
広範な処理ができるプログラマブルコントローラを提供
することである。
【0021】
【課題を解決するための手段及び作用】本発明は、SF
C記述に基づく分岐又は合流プログラムを実行して動作
するプログラマブルコントローラに適用される。
【0022】請求項1記載の発明のプログラマブルコン
トローラ(図1のブロック図参照)では、記憶手段1
は、分岐又は合流の命令を記憶する。同手段は、例え
ば、RAM(Random-Access-Memory)等からなる。
【0023】解析手段2は、記憶手段1から読み出した
分岐又は合流の命令を解析する。同手段は、例えば、マ
イクロプロセッサ、プログラムROM(Read-Only-Memor
y)等からなる。
【0024】第1レジスタ3は、解析手段2が読み出し
た分岐又は合流の命令に係わるトランジションのオン又
はオフの状態データを格納する。第2レジスタ4は、第
1レジスタ3のオフ状態をインターロックする。
【0025】第3レジスタ5は、解析手段2が読み出し
た分岐又は合流の命令に係わる移行元ステップのアドレ
スを格納する。第5レジスタ7は、解析手段2が読み出
した分岐又は合流の命令の処理手順を二者択一するため
のデータを格納する。
【0026】そして、上記解析手段2は、選択分岐の開
始を宣言する命令を読み出したとき、第2レジスタ4を
初期設定することにより第1レジスタ3をセット可能状
態にすると共に第5レジスタ7に命令の処理手順の第1
の選択を指示するデータを設定する。また、分岐におけ
る移行元ステップの活性・非活性の状態を検出する命令
を読み出したときは、検出した該移行元ステップの状態
が非活性であるとき第2レジスタ4を介して第1レジス
タ3をオフ状態にインターロックし、一方、検出した該
移行元ステップの状態が活性であるときは該移行元ステ
ップのアドレスを第3レジスタ5に格納する。また、ト
ランジションのオン・オフの状態を検出する命令を読み
出したときは、検出した該トランジションの状態がオン
であるとき第1レジスタ3にオン状態を設定するデータ
を出力し、一方、検出した該トランジションの状態がオ
フであるときは第1レジスタ3にオフ状態を設定するデ
ータを出力する。また、選択分岐を指示する命令を読み
出したときは、第1レジスタ3がオン状態であり且つ移
行先ステップの状態が非活性であるとき該移行先ステッ
プを活性化すると共に第3レジスタ5に格納されたアド
レスの移行元ステップを非活性化し且つ第2レジスタ4
を介して第1レジスタをオフ状態にインターロックし、
一方、第1レジスタ3がオフ状態であるとき又は上記移
行先ステップの状態が活性であるときは処理を終了す
る。そして、分岐の終了を宣言する命令を読み出したと
きは、第2レジスタ4を初期設定することにより第1レ
ジスタ3をセット可能状態にした後、第5レジスタ7に
設定されたデータが命令の処理手順の第1の選択を指示
していることを確認して直ちに処理を終了する。
【0027】また、上記解析手段2は、例えば請求項2
記載のように、選択合流の開始を宣言する命令を読み出
したとき、第2レジスタ4を初期設定することにより第
1レジスタ3をセット可能状態にすると共に第5レジス
タ7に命令の処理手順の第1の選択を指示するデータを
設定する。また、選択合流における移行元ステップの活
性・非活性の状態を検出する命令を読み出したときは、
検出した該移行元ステップの状態が非活性であるとき第
2レジスタ4を介して第1レジスタ3をオフ状態にイン
ターロックし、一方、検出した該移行元ステップの状態
が活性であるときは該移行元ステップのアドレスを第3
レジスタ5に格納する。また、トランジションのオン・
オフの状態を検出する命令を読み出したときは、検出し
た該トランジションの状態がオンであるとき第1レジス
タ3にオン状態を設定するデータを出力し、一方、検出
した該トランジションの状態がオフであるときは第1レ
ジスタ3にオフ状態を設定するデータを出力する。ま
た、選択合流を指示する命令を読み出したときは、第1
レジスタ3がオン状態であり且つ移行先ステップの状態
が非活性であるとき該移行先ステップを活性化すると共
に第3レジスタ5に格納されたアドレスの移行元ステッ
プを非活性化し且つ第2レジスタ4を介して第1レジス
タ3をオフ状態にインターロックし、一方、第1レジス
タ3がオフ状態であるとき又は上記移行先ステップの状
態が活性であるときは処理を終了する。そして、合流の
終了を宣言する命令を読み出したときは、第2レジスタ
4を初期設定することにより第1レジスタ3をセット可
能状態にした後、第5レジスタ7に設定されたデータが
命令の処理手順の第1の選択を指示していることを確認
して直ちに処理を終了する。
【0028】請求項3記載の発明のプログラマブルコン
トローラは、上記記憶手段1、解析手段2、第1レジス
タ3、第2レジスタ4、第3レジスタ5、及び第5レジ
スタ7の各構成に加えて、上記解析手段2が読み出した
分岐又は合流の命令のプログラムアドレスを格納する第
4レジスタ6を有し、上記解析手段は、並列分岐の開始
を宣言する命令を読み出したとき、第2レジスタ4を初
期設定することにより第1レジスタ3をセット可能状態
にすると共に第5レジスタ7に命令の処理手順の第2の
選択を指示するデータを設定し且つ第4レジスタ6に次
の命令の先頭プログラムアドレスを設定する。また、並
列分岐における移行元ステップの活性・非活性の状態を
検出する命令を読み出したときは、検出した該移行元ス
テップの状態が非活性であるとき第2レジスタ4を介し
て第1レジスタ3をオフ状態にインターロックし、一
方、検出した該移行元ステップの状態が活性であるとき
は該移行元ステップのアドレスを第3レジスタ5に格納
する。また、トランジションのオン・オフの状態を検出
する命令を読み出したときは、検出した該トランジショ
ンの状態がオンであるとき第1レジスタ3にオン状態を
設定するデータを出力し、一方、検出した該トランジシ
ョンの状態がオフであるときは第1レジスタ3にオフ状
態を設定するデータを出力する。また、並列分岐を指示
する命令を読み出したときは、第5レジスタ7に設定さ
れたデータが命令の処理手順の第2の選択を指示してい
るときにおいて、第1レジスタ3がオフ状態である場合
は処理を終了し、また、第1レジスタ3がオン状態であ
り且つ移行先ステップの状態が非活性である場合も処理
を終了し、第1レジスタ3がオン状態であり且つ移行先
ステップの状態が活性である場合は第1レジスタ3にオ
フ状態を設定するデータを出力し、一方、第5レジスタ
7に設定されたデータが命令の処理手順の第1の選択を
指示しているときにおいては、移行先ステップを活性化
すると共に第3レジスタ5に格納されたアドレスの移行
元ステップを非活性化する。そして、分岐の終了を宣言
する命令を読み出したときは、第2レジスタ4を初期設
定することにより第1レジスタ3をセット可能状態にし
た後、第5レジスタ7に設定されたデータが命令の処理
手順の第2の選択を示している場合は第1レジスタ3が
オフ状態であるとき処理を終了し、第1レジスタ3がオ
ン状態であるとき第5レジスタ7に命令の処理手順の第
1の選択を指示するデータを設定した後第4レジスタ6
に設定されているプログラムアドレスにジャンプし、一
方第5レジスタ7に設定されたデータが命令の処理手順
の第1の選択を指示している場合は直ちに処理を終了す
る。
【0029】また、上記解析手段2は、例えば請求項4
記載のように、並列合流の開始を宣言する命令を読み出
したとき、第2レジスタ4を初期設定することにより第
1レジスタ3をセット可能状態にすると共に第5レジス
タ7に命令の処理手順の第2の選択を指示するデータを
設定し且つ第4のレジスタ6に次の命令の先頭プログラ
ムアドレスを設定する。また、並列合流における移行元
ステップの活性・非活性の状態を検出する命令を読み出
したときは、第5レジスタ7に設定されたデータが命令
の処理手順の第2の選択を指示しているときにおいて、
移行元ステップの状態が活性である場合は処理を終了
し、移行元ステップの状態が非活性である場合は第2レ
ジスタ4を介して第1レジスタ3をオフ状態にインター
ロックし、一方、第5レジスタ7に設定されたデータが
命令の処理手順の第1の選択を指示しているときにおい
ては、移行元ステップを非活性化する。また、並列合流
を指示する命令を読み出したときは、第5レジスタ7に
設定されたデータが命令の処理手順の第2の選択を指示
しているときにおいて、第1レジスタ3がオフ状態であ
る場合は処理を終了し、第1レジスタ3がオン状態であ
り且つ移行先ステップの状態が活性である場合も処理を
終了し、第1レジスタ3がオン状態であり且つ移行先ス
テップの状態が非活性である場合は該移行先ステップを
活性化し、一方、第5レジスタ7に設定されたデータが
命令の処理手順の第1の選択を指示しているときは処理
を終了する。そして、合流の終了を宣言する命令を読み
出したときは、第2レジスタ4を初期設定することによ
り第1レジスタ3をセット可能状態にした後、第5レジ
スタ7に設定されたデータが命令の処理手順の第2の選
択を示している場合は第1レジスタ3がオフ状態である
とき処理を終了し、第1レジスタ3がオン状態であると
き第5レジスタ7に命令の処理手順の第1の選択を指示
するデータを設定した後第4レジスタ6に設定されてい
るプログラムアドレスにジャンプし、一方第5レジスタ
7に設定されたデータが命令の処理手順の第1の選択を
指示している場合は直ちに処理を終了する。
【0030】これにより、分岐/合流に対してより高速
に処理でき、且つメモリ容量に制約を受けることなく任
意の分岐ステップ数を設定してより広範なシーケンス制
御が可能になる。
【0031】
【実施例】以下、図面を参照しながら本発明の実施例に
ついて詳細に述べる。図2は、一実施例に係わるPCの
構成を示すブロック図である。同図に示すように、PC
10は、CPU(Central-Processing-Unit) 11と、こ
のCPU11に、バスライン12を介して、ROM(Rea
d-Only-Memory)13、RAM(Random-Access-Memory)1
4、及びI/F(入出力インタフェース)15が接続さ
れている。さらにバスライン12には、レジスタARG
16、レジスタNRG17、レジスタSADD18、レ
ジスタPCMEM19、及びレジスタRPT20が接続
されている。
【0032】上記ROM13には、システム全体を制御
するプログラムが格納されている。RAM14には、後
述するプログラムローダから転送されるシーケンス制御
のニーモニックが格納される。I/F15には、被制御
システムを構成する各種の入出力機器が不図示のシステ
ムラインを介して接続される。
【0033】CPU11は、RAM14に格納されたニ
ーモニックの命令を順次読み出し、読み出した命令をR
OM13に格納されているプログラムに基づいて解析
し、この解析結果に基づいて演算を行い、その演算結果
をI/F15に出力する。
【0034】上記CPU11による解析・演算の処理に
おいて、レジスタARG16はCPU11が処理する分
岐又は合流の命令に係わるトランジションのオン/オフ
の状態データを格納する。レジスタNRG17はレジス
タARG16のオフ状態をインタ−ロックする。レジス
タSADD18は上記の分岐又は合流の命令に係わる移
行元ステップのアドレスを格納する。レジスタPCME
M19は上記分岐又は合流の命令プログラムのアドレス
を格納する。レジスタRPT20は上記分岐又は合流の
命令の処理手順を二者択一するためのデータを格納す
る。
【0035】図3に、上記レジスタARG16とレジス
タNRG17の関係を示す。同図に示すように、レジス
タARG16及びNRG17は、共に同一構成のフリッ
プフロップからなり、いずれもデータ入力端子D、クロ
ック入力端子、反転リセット端子R、及び出力端子Qを
備えている。レジスタNRG17の出力NRGは、レジ
スタARG16の反転リセット端子Rに入力する。レジ
スタNRG17は、CPU11から出力される反転リセ
ット端子Rへの“L”レベル(“0”)の入力によりリ
セットされ、“H”レベル(“1”)の入力によりリセ
ットが解除される。そして、レジスタARG16は、そ
の反転リセット端子Rに、上記レジスタNRGからの出
力NRGが“L”レベル(“0”)で入力することによ
りリセットされる。すなわち、出力AGRが“0”に固
定される。そして、レジスタNRG17の出力NRGが
“H”レベル(“1”)で入力することによってリセッ
トが解除され、データ入力端子Dに入力されるARG入
力データ(トランジションのオン/オフ情報)をラッチ
して、このラッチしたデータを出力ARGとしてCPU
11に出力する。
【0036】図4は、SFC記述からニーモニックに変
換されて、上記RAM14に格納されるプログラムの配
置を模式的に示したものである。同図に示すように、R
AM14には、先頭にトランジション群プログラム、次
にライン群プログラム、そして最後にアクション部のプ
ログラムが格納されている。
【0037】同図にように格納されているプログラムに
対して、図2に示すPC10のCPU11は、先ずトラ
ンジション群のプログラムを実行し、入力されているデ
ータ(情報)に基づいて各トランジションTN0、TN
1、・・・のオン(真)/オフ(偽)情報を出力する。
次にライン群のプログラムを実行し、上記トランジショ
ンのオン/オフと移行元ステップおよび移行先ステップ
の活性/非活性の情報に基づいてステップ移行指示を出
力する(ステップリレーを更新する)。続いて、アクシ
ョン部のプログラムを順次読み出し、上記ステップ移行
指示に基づいてアクションの実行又は非実行を判断して
処理する。すなわち、移行先ステップ(活性になってい
るステップ)に所属するアクションを処理し、所属しな
いアクションは非処理として、アクション部の終点に到
る。そして、再びトランジション群のプログラムに戻っ
て、トランジション群の先頭からアクション部の終点ま
での処理を行うということを繰り返す。
【0038】一般に、上述の1巡の処理を1スキャンと
いい、この1スキャンが1個のプロセスを形成する。1
プロセスは、1個の機械や1ラインといった制御処理の
単位であり、通常は、複数のプロセスによるSFCプロ
グラム群により全体のシーケンス制御が構成される。全
体のシーケンス制御のどこからどこまでを1プロセスと
して区切るかは、ユーザが決定する。
【0039】1プロセスは、このように一連のシーケン
ス制御の区切りを形成し、また、以下に述べる分岐や合
流の分岐ラインを形成する。図5(a) は、SFC記述の
選択分岐の例である。この記述は、ステップS000か
ら、3つのステップS001、S002及びS003の
内、それぞれトランジションTN000、TN001又
はTN0010を介して、いずれかのステップへ選択的
に分岐する場合を示している。
【0040】SFC規約に基づく上記分岐の条件は図1
5で説明した通りであり、以下の選択合流、並列分岐、
及び並列合流の場合も同様である。同図(b) は選択合流
の例であり、3つのステップS010、S011及びS
012から選択的に、それぞれトランジションTN00
0、TN001又はTN0010を介して、ステップS
013に合流する場合を示している。
【0041】また、図6(a) は並列分岐の例である。こ
の記述は、ステップS000から、共通のトランジショ
ンTN000を介して、3つのステップS001、S0
02及びS003へ同時に分岐する場合を示している。
【0042】そして、同図(b) は並列合流の例であり、
3つのステップS020、S021及びS022から同
時に共通のトランジションTN000を介して、ステッ
プS023に合流する場合を示している。
【0043】本実施例では、上記のような分岐や合流の
プログラムを、より高速に処理するために、また、分岐
数に制限なく如何に大規模なシーケンス制御をも処理で
きるようにするために、上記のようなSFC記述の分岐
や合流に対応して、図5(a),(b) 及び図6(a),(b) の右
にそれぞれ示すニーモニックを展開する。このニーモニ
ックは、図5(a),(b) 及び図6(a),(b) の左に示すグラ
フィックス(SFC記述)から後述するプログラムロー
ダにより自動変換することができ、また手作業で転記
(変換)しながらプログラムローダに入力することもで
きる。
【0044】図5(a) に示すニーモニックは、先ず、命
令D−SLCで、選択分岐の開始を宣言し、次に、命令
STLで、分岐元ステップS000の活性状態を読み出
し、続いて、命令LDで、トランジションTN000の
オン/オフ状態を読み出し、そして、命令SLCTで、
上記分岐元ステップS000の活性状態とトランジショ
ンTN000のオン/オフ状態、及び分岐先ステップS
001の状態とに基づき分岐可能であるときはステップ
S001に分岐するよう指示している。引き続き、同様
に命令LD及び命令SLCTを、トランジションTN0
01及びステップS002を対象に繰り返し、さらに命
令LD及び命令SLCTを、トランジションTN002
及びステップS003を対象に繰り返した後、命令E−
TRAで、上記選択分岐の終了を宣言している。
【0045】また、同図(b) に示すニーモニックでは、
先ず、命令C−SLCで、選択合流の開始を宣言し、次
に、命令JUNCで、合流元ステップS010の活性状
態を読み出し、続いて、命令LDで、トランジションT
N000のオン/オフ状態を読み出した後、命令SET
で、上記合流元ステップS010の活性状態とトランジ
ションTN000のオン/オフ状態、及び合流先ステッ
プS013の状態とに基づき合流可能であるときはステ
ップS010に合流するよう指示している。そして、さ
らに命令JUNC、LD及びSETを、ステップS01
1、トランジションTN001及びステップS013を
対象に上記同様に繰り返し、さらに続けて命令JUN
C、LD及びSETを、ステップS012、トランジシ
ョンTN002及びステップS013を対象に上記同様
に繰り返した後、命令E−TRAで上記選択合流の終了
を宣言している。
【0046】さらに、図6(a) に示すニーモニックは、
先ず、命令D−SIMで、並列合流の開始を宣言し、次
に、命令STLで、分岐元ステップS000の活性状態
を読み出し、続いて、命令LDで、トランジションTN
000のオン/オフ状態を読み出し、そして、命令SI
MULで、上記分岐元ステップS000の活性状態とト
ランジションTN000のオン/オフ状態、及び分岐先
ステップS001の状態とに基づき分岐可能であるとき
はステップS001に分岐するよう指示している。引き
続き、上記同様に命令SIMULをステップS002を
対象に繰り返し、さらに同じく命令SIMULをステッ
プS003を対象に繰り返した後、命令E−TRAで、
上記並列分岐の終了を宣言している。
【0047】そして、同図(b) に示すニーモニックは、
先ず、命令C−SIMで、並列合流の開始を宣言し、次
に、命令SYNLを3回繰り返して、それぞれ合流元ス
テップS020、S021、及びS022の活性状態を
読み出し、続いて、命令LDで、トランジションTN0
00のオン/オフ状態を読み出した後、命令SYNC
で、上記各合流元ステップ活性状態とトランジションT
N000のオン/オフ状態、及び合流先ステップS02
3の状態とに基づき合流可能であるときはステップS0
23に同時に合流するよう指示して、最後に命令E−T
RAで上記並列合流の終了を宣言している。
【0048】図7に、上記の分岐や合流に用いられるニ
ーモニックの13個の命令を、一覧図表にして示す。以
下、同図に示す命令を説明する。命令D−SLCは選択
分岐の開始を宣言する。命令STLは選択分岐又は並列
分岐におけるステップ活性状態の読み出しを指示する。
命令LDはトランジションのオン/オフ状態の読み出し
を指示する。命令SLCTは選択分岐を指示する。命令
C−SLCは選択合流の開始を宣言する。命令JUNC
は選択合流におけるステップ活性状態の読み出しを指示
する。命令SETは選択合流を指示する。命令D−SI
Mは並列分岐の開始を宣言する。命令SIMULは並列
分岐を指示する。命令C−SIMは並列合流の開始を宣
言する。命令SYNLは並列合流におけるステップ活性
状態の読み出しを指示する。命令SYNCは並列合流を
指示する。そして、命令E−TRAは分岐又は合流の終
了を宣言する。
【0049】前述のSFC記述の図形から上記のような
ニーモニックに変換するSFCプログラミング装置(プ
ログラムコーダ)を、図8に示す。同図に示すように、
プログラムコーダ30は、入力部31、命令記憶部3
2、図形変換部33、図形記憶部34、表示変換部3
5、及び表示部35からなっている。
【0050】このプログラムコーダ30でプログラムを
作成する場合、まず、オペレータが入力部31を介して
SFC図形やラダー図の記号(シンボル)を表す図形情
報を指定する。図形記憶部34はこの図形情報を記憶
し、表示変換部35は図形記憶部34から上記指定され
た図形情報を読み出して表示形式すなわちSFC図形や
ラダー図に変換し、この表示形式に変換した図形を表示
部35のディスプレイ装置等に表示させる。これによ
り、オペレータはディスプレイ上に表示された図形を確
認しながら逐次プログラムを作成していく。
【0051】次に、図形変換部33が上記図形情報とし
て作成されたプログラムを図形記憶部34から読み出し
てニーモニックに変換し、そのニーモニックを命令記憶
部32に格納する。この命令記憶部32から、図2に示
すPC10のRAM14に不図示のデータ転送用インタ
フェースを介して転送され、例えば図4に示したような
プログラムが格納される。
【0052】上記PC10に格納されるプログラムコー
ド(ニーモニック)は、一般にプログラム言語といわれ
ているような、PC10内部においてそのまま実行でき
る言語(マシンコード)ではなく、ユーザが理解しやす
い中間コードの形式をとっている。勿論、ニーモニック
を解析して実行形式のプログラムコードに変換してから
格納するようにしてもよく、その場合は、CPU11は
上記実行形式のプログラムコードに対応した処理を行
う。
【0053】尚、以下の説明では、ニーモニック(中間
コード)で格納されているものとする。そして、上記格
納されたニーモニックが更に機械語(マシンコード)に
順次変換されてPC10によるシーケンス制御が実行さ
れる。
【0054】上記構成の本実施例において、上記ニーモ
ニックの図7に示した13個の命令を、図2に示した5
個のレジスタを用い、以下に説明するアルゴリズムに基
づいて解析することによって、SFC記述による分岐又
は合流のプログラムを高速に、且つ大規模なシステムに
対応できるように処理していく。この本実施例における
命令の処理動作を、図9乃至図13に示すフローチャー
トを用いて説明する。尚、具体例として、前述の図5及
び図6の右にそれぞれ示すニーモニックを参照する。
【0055】先ず、選択分岐の場合を例にとって説明す
る。選択分岐では、図5(a) のニーモニックに示したよ
うに、選択分岐の開始宣言命令D−SLC、分岐元ステ
ップ活性状態読出し命令STL、トランジション・オン
/オフ状態読出し命令LD、選択分岐の指示命令SLC
T、及び分岐の終了宣言命令E−TRAによって処理が
なされる。
【0056】命令D−SLCでは、図9(a) のフローチ
ャートに示すように、2つのレジスタNRG及びRPT
の初期化を行って処理を終了する。この初期化では、ま
ず、レジスタNRGに“1”を設定する(手順S1)。
この処理は、レジスタNRGのクロック入力端子にラッ
チ信号を入力すると共に入力端子DにNRG入力データ
“1”を入力してラッチさせ、これにより、レジスタA
RGのリセットを解除する処理である。さらに、この初
期化ではレジスタRPTに“0”を設定する(同じく手
順S1)。これにより、レジスタRPTの内容が初期状
態である“0”に設定される。
【0057】次に、命令STLでは、図9(b) のフロー
チャートに示すように、移行元(分岐元)ステップ(図
5(a) のステップS000参照)の活性状態を読み出
し、活性か否か判別する(手順S11)。この判別で、
移行元ステップが活性であれば、移行元ステップの移行
条件が成立している場合であり、このときは、次に、レ
ジスタNRGに“1”をセットする(手順S12)。こ
の処理は、レジスタARGがリセットされていた
(“0”にインターロックされている)場合に備えてレ
ジスタARGをセット状態にし、次に続く命令でトラン
ジションが活性である場合に、移行条件が成立している
ことをレジスタARGに設定できるようにする処理であ
る。
【0058】そして、上記に続いて、移行元ステップの
アドレスをレジスタSADDに記憶して(手順S1
4)、処理を終了する。上記手順S11の判別で、移行
元ステップが非活性であれば、移行元ステップの移行条
件が成立していない場合である。この場合はレジスタN
RGに“0”をセットして(手順S13)、処理を終了
する。この手順13の処理は、レジスタNRGのクロッ
ク入力端子にラッチ信号を入力すると共に入力端子Dに
NRG入力データ“0”を入力してラッチさせる処理で
ある。これにより、レジスタNRGの出力NRGが
“0”となり、レジスタARGがリセットされ、レジス
タARGの出力ARGが“0”に固定(インターロッ
ク)される。これによって、後述するトランジションの
移行条件の可否が「可」(オン、すなわち活性)であっ
ても、その「可」が無視される。
【0059】続いて、命令LDでは、図10(a) のフロ
ーチャートに示すように、移行先(分岐先)ステップへ
のリンク上にあるトランジション(図5(a) のトランジ
ションTN000,TN001又はTN002参照)の
活性状態を読み出し、活性か否か判別する(手順S2
1)。そして、活性であれば、レジスタARGに“1”
をセットして(手順S22)、処理を終了する。この手
順S22の処理は、レジスタARGのクロック入力端子
にラッチ信号を入力すると共に入力端子DにARG入力
データ“1”を入力する処理である。これにより、レジ
スタARGがセット状態であるとき(移行元ステップが
活性のとき)は、ARG入力データ“1”がラッチさ
れ、出力ARGは“1”になる。一方、レジスタARG
がインターロックされた状態であるとき(移行元ステッ
プが非活性のとき)は、ARG入力データ“1”は無視
されて出力ARGは“0”に固定されたままである。
【0060】上記手順S21の判別で、トランジション
が非活性であるときは、レジスタARGに“0”をセッ
トして(手順S23)、処理を終了する。この手順S2
3の処理は、上述と同様にして、レジスタARGの入力
端子Dに“0”を入力する処理である。この場合、レジ
スタARGがセット状態であっても、インターロックさ
れた状態であっても、結果は同一であり、出力ARGは
“0”である。
【0061】次に、命令SLCTでは、図10(b) のフ
ローチャートに示すように、先ずレジスタARGの内容
を調べる(手順S31)。この処理は、レジスタARG
の出力ARGが“1”になっているか否かを判別する処
理である。そして、出力ARGが“1”であれば、移行
元ステップが活性で且つトランジションも活性であると
判別し、この場合は続いて、移行先ステップ(図5(a)
のステップS001、S002又はS003参照)の活
性状態を判別する(手順S32)。この判別で、移行先
ステップが非活性であれば、移行条件が成立したと判別
して、この移行先ステップを活性化し(手順S33)、
続いて移行元ステップを非活性化する(手順S34)。
この処理では、上述の命令STLの処理によりレジスタ
SADDに格納されているアドレスのステップを非活性
化する。この後レジスタNRGに“0”をセットする
(手順S35)。これにより、レジスタARGがリセッ
トされ、その出力ARGが“0”に固定される。このた
め、この後、残る選択肢の移行先ステップ毎に実行され
る命令LD及び命令SLCTによる処理結果は全て無効
になり、したがって、上記最初に移行条件が成立した移
行先ステップが分岐先ステップとして固定・選択される
ことになる。
【0062】上記手順S31の判別で、レジスタARG
の出力ARGが“0”であれば、移行元ステップとトラ
ンジションのいずれか又は両方が非活性であり、移行条
件が成立していないと判別して、ただちに処理を終了す
る。また、上記手順S32の判別で、移行先ステップが
活性であった場合も移行条件が成立していないと判別し
て、ただちに処理を終了する。
【0063】続いて、命令E−TRNでは、図11のフ
ローチャートに示すように、レジスタNRGに“1”を
セットする(手順S41)。これにより、レジスタAR
Gがリセット状態であればリセットが解除され、セット
状態であればセット状態が継続する。次に、レジスタR
PTの内容を調べる(手順S42)。選択分岐の場合は
開始宣言命令D−SLCの処理でレジスタRPTは
“0”設定されている。この“0”を確認してただちに
処理を終了する。
【0064】上記の処理により、選択分岐における移行
条件を満たす移行先ステップの検出と、移行決定後の移
行元ステップ及び移行先ステップの活性/非活性の状態
データの更新処理が分岐数に制限なく且つ高速に行われ
る。
【0065】次に、選択合流の場合を例にとって説明す
る。選択合流では、図5(b) のニーモニックに示したよ
うに、選択合流開始宣言命令C−SLC、選択合流元ス
テップの活性状態読出し命令JUNC、トランジション
・オン/オフ状態読出し命令LD、選択合流指示命令S
ET、及び合流の終了宣言命令E−TRAによって処理
がなされる。
【0066】命令C−SLCは、図9(a) のフローチャ
ートに示すように、選択分岐の命令D−SLCと共通の
手順で処理を行う。命令JUNCも、同図(b) のフロー
チャートに示すように、選択分岐の命令STLと共通の
手順で処理を行う。
【0067】命令LDは選択分岐の場合と同様に処理を
行う。命令SETは、同図(b) のフローチャートに示す
ように、選択分岐の命令SLCTと共通の手順で処理を
行う。このとき、手順S31でレジスタARGが
“1”、且つ手順S32で移行先ステップが活性、すな
わち移行条件が成立しているときは、選択分岐の場合と
同様に手順S35でレジスタNRGに“0”がセットさ
れ、これにより、レジスタARGがリセットされて、そ
の出力ARGが“0”に固定される。このため、この
後、残る選択肢の移行元ステップ毎に実行される命令L
D及びSETによる処理結果は全て無効となり、したが
って、上記最初に移行条件が成立した移行元ステップが
合流元ステップとして固定・選択されることになる。
【0068】そして、命令E−TRNは、図11のフロ
ーチャートに示すように共通手順であり、選択分岐の場
合と同様に、手順S42でレジスタRPTに設定されて
いる“0”を確認して、ただちに処理を終了する。
【0069】上記の処理により、選択合流における移行
条件を満たす移行元ステップの検出と、移行決定後の移
行元ステップ及び移行先ステップの活性/非活性の状態
データの更新処理が分岐数に制限なく且つ高速に行われ
る。
【0070】続いて、並列分岐の場合を例にとって説明
する。並列分岐では、図6(a) のニーモニックに示した
ように、並列分岐開始宣言命令D−SIM、分岐元ステ
ップ活性状態読出し命令STL、トランジション・オン
/オフ状態読出し命令LD、並列分岐指示命令SIMU
L、及び分岐の終了宣言命令E−TRAによって処理が
なされる。
【0071】命令D−SIMでは、図12(a) のフロー
チャートに示すように、2つのレジスタNRG及びRP
Tの初期化を行って処理を終了する。この処理では、レ
ジスタNRGに“1”を設定し、レジスタRPTにも
“1”を設定する(手順S51)。これにより、前述し
たようにレジスタARGのリセットが解除されると共
に、レジスタRPTにフラグが設定される。
【0072】続いて、次命令の先頭プログラムアドレス
をレジスタPCMEMに格納して(手順S52)、処理
を終了する。この手順S52の処理は、この命令の次の
命令STLの先頭プログラムアドレスを記憶する処理で
ある。これにより、後述の処理でレジスタRPTのフラ
グが判別され、命令SIMULの処理機能が二重に活用
される。
【0073】次に、命令STLは、選択分岐の場合と同
様である。すなわち、移行元(分岐元)ステップ(図6
(a) のステップS000参照)の活性状態を判別し(手
順S11)、活性なら(移行条件が成立)、レジスタN
RGに“1”をセットしてレジスタARGをセット状態
にし(手順12)、次に移行元ステップのアドレスをレ
ジスタSADDに記憶して(手順S14)、処理を終了
する。一方、非活性(移行条件が不成立)であれば、レ
ジスタNRGに“0”をセットしてレジスタARGの出
力ARGを“0”にインターロックしてから(手順S1
3)、処理を終了する。
【0074】また、命令LDも、選択分岐の場合と同様
である。すなわち、トランジション(図6(a) の共通ト
ランジションTN000参照)の活性状態を判別し(手
順S21)、活性であればレジスタARGに“1”をセ
ットする(手順S22)。この場合も、レジスタARG
がセット状態であるときは(移行元ステップが活性)
“1”がラッチされ、インターロック状態では(移行元
ステップが非活性)“1”はラッチされず出力ARGは
“0”のままである。
【0075】続いて、命令SIMULでは、図12(b)
のフローチャートに示すように、先ずレジスタRPTの
フラグを判別する(手順S61)。ここでは、上記手順
S51で設定されているフラグ“1”を確認した後、続
いてレジスタARGの内容(出力)を調べる(手順S6
2)。そして、レジスタARGの出力ARGが“1”で
あれば、移行元ステップ(ステップS000)が活性で
且つトランジション(共通トランジションTN000)
も活性であると判別し、続いて、移行先ステップ(図6
(a) のステップS001、S002又はS003参照)
の活性状態を判別する(手順S63)。この判別で、移
行先ステップが非活性であれば、このステップについて
は移行条件が成立していると判別してただちに処理を終
了する。一方、移行先ステップが活性であれば、レジス
タARGに“0”をセットする(手順S64)。これに
より、移行先ステップS001、S002又はS003
のいずれか1つでも活性であれば、レジスタARGの出
力ARGが“0”になる。
【0076】上記手順S62で、レジスタARGの出力
ARGが“0”であれば、ただちに処理を終了する。こ
れにより、先行する分岐先ステップ(図6(a) のステッ
プS001、S002参照)のいずれか1つが活性であ
れば、後続の分岐先ステップ(ステップS002、S0
03参照)の活性状態の判別は行われずただちに処理が
終了する。
【0077】上記手順S61で、レジスタRPTのフラ
グが“0”の場合については後述する。そして、命令E
−TRNでは、図11のフローチャートに示すように、
選択分岐/合流の場合と同様に手順S41の処理を行っ
て、手順S42ではレジスタRPTに設定されている
“1”を判別し、この場合は手順S43に進んでレジス
タARGの出力ARGが“1”であるか否か判別する。
この判別で出力ARGが“0”であれば、移行条件が成
立していないと判別してただちに処理を終了する。
【0078】一方、出力ARGが“1”であれば、全て
の分岐先ステップについて移行条件が成立していると判
別し、この場合はレジスタRPTに、これから同一命令
を繰り返して別処理を行うことを示すフラグ“0”を設
定した後(手順S44)、レジスタPCMEMの示すア
ドレスへジャンプする(手順S45)。これにより、命
令STLから処理が再開される(図6(a) 参照)。
【0079】この再開される処理において、命令STL
及びLDでは、前回同様の処理を行う。そして、命令S
IMULでは、レジスタARGのフラグ“0”を判別し
て、この場合は手順S65に進み、移行先ステップを活
性化する。これにより、分岐先の全てのステップが活性
化される(図6(a) の右に示すニーモニック参照)。続
いて、手順S66に進んで、移行元ステップ、すなわち
レジスタSADDが示すアドレスのステップを非活性化
する。最後に命令E−TRNでは、手順S41の処理を
行い、手順S42でレジスタRPTの“0”を判別して
ただちに処理を終了する。
【0080】上記の処理により、並列分岐において移行
条件が満たされたとき、移行決定後の移行元ステップ及
び移行先ステップの活性/非活性の状態データの更新処
理が分岐数に制限なく且つ高速に行われる。
【0081】続いて、並列合流の場合を例にとって説明
する。並列合流では、図3(b) のニーモニックに示した
ように、並列合流開始宣言命令C−SIM、並列合流元
ステップの活性状態読出し命令SYNL、トランジショ
ン・オン/オフ状態読出し命令LD、並列合流指示命令
SYNC、及び合流の終了宣言命令E−TRAによって
処理がなされる。
【0082】命令C−SIMは、図12(a) のフローチ
ャートに示すように、合流分岐の命令D−SIMと共通
の手順で処理を行う。そして、命令SYNLでは、図1
3(a) のフローチャートに示すように、先ずレジスタR
PTのフラグを判別する(手順S71)。ここでは、命
令C−SIMによる処理の手順51で設定されているフ
ラグ“1”を確認した後、移行元ステップ(図6(b) の
ステップS020、S021又はS022参照)の活性
状態を判別する(手順S72)。この判別で、当該ステ
ップが非活性であれば、レジスタNRGに“0”をセッ
トして、前述したように、レジスタARGの出力ARG
を“0”に固定する(手順S73)。これにより、移行
元ステップのいずれか1つでも非活性であれば、レジス
タARGの出力ARGが“0”に固定される。上記手順
S72で、当該ステップが活性であれば、何も行わず、
ただちに処理を終了する。また、上記手順S71で、レ
ジスタRPTのフラグが“0”の場合については後述す
る。
【0083】そして、命令LDでは、並列分岐の場合と
同様に、手順S21でトランジション(図6(b) の共通
トランジションTN000参照)の活性状態を判別し、
活性であれば手順S22でレジスタARGに“1”をセ
ットする。この場合、上記の命令SYNLによる全ての
移行元ステップに対する処理で(図6(b) のニーモニッ
ク参照)、全ての移行元ステップが活性であればレジス
タARGはセット状態であり、したがって上記の“1”
がラッチされる。一方、移行元ステップのいずれか1つ
でも非活性であればレジスタARGは“0”にインター
ロックされており、上記“1”はラッチされない。
【0084】続く命令SYNCでは、先ず、レジスタR
PTのフラグが“0”であることを確認して(手順S8
1)、レジスタARGの出力ARGを判別する(手順S
82)。そして、出力ARGが“1”であれば、全ての
移行元ステップ及び共通トランジションが合流可能状態
を示していると判別し、この場合は続いて移行先ステッ
プの活性状態を判別する(手順S83)。そして、非活
性となっていれば、並列合流の移行条件が成立したと判
別して、この移行先ステップを活性化する(手順S8
4)。
【0085】上記手順S83で、移行先ステップが活性
であれば、並列合流の移行条件が成立しないと判別し
て、ただちに処理を終了する。また上記手順S82で、
出力ARGが“0”である場合は、全ての移行元ステッ
プ又は共通トランジションが合流可能状態を示していな
いと判別し、この場合も、ただちに処理を終了する。ま
た、上記手順S81で、レジスタRPTのフラグが
“0”のときは、後述する再開処理において非処理を指
示されていると判別して、この場合も、ただちに処理を
終了する。
【0086】そして、命令E−TRNでは、並列分岐の
場合と同様に処理を行って、移行条件が成立していない
ときは、ただちに処理を終了する。一方、移行条件が成
立しているときは、これの前述したように、レジスタR
PTにフラグ“0”を設定した後、レジスタPCMEM
の示すアドレスへジャンプする。これにより、命令C−
SIMの次の命令SYNLから処理が再開される(図6
(b) 参照)。
【0087】この再開される処理において、命令SYN
Lでは、手順S71でレジスタRPTのフラグ“0”を
判別して、この場合は手順S74に進み、移行元ステッ
プを非活性化する。これにより、合流元の全てのステッ
プが非活性化される(図6(b) の右に示すニーモニック
参照)。
【0088】続いて、命令LDを前回同様に実行し、命
令SYNCでは、上述したようにレジスタRPTの
“0”により非処理を判別して、ただちに処理を終了
し、最後の命令E−TRNにおいても、手順S41の処
理を行った後、手順S42でレジスタRPTの“0”を
判別してただちに処理を終了する。
【0089】上記の処理により、並列合流において移行
条件が満たされたとき、移行決定後の移行元ステップ及
び移行先ステップの活性/非活性の状態データの更新処
理が分岐数に制限なく且つ高速に行われる。
【0090】尚、本実施例においては、ニーモニックの
命令、例えば選択分岐の開始を宣言する命令を「D−S
LC」で表しているが、選択分岐の開始を宣言すると規
定するものであればどのような形式のコードであっても
よい。これは、他の命令についても同様である。
【0091】
【発明の効果】本発明によれば、合流/分岐において、
移行元ステップの非活性化及び移行先ステップの活性化
の処理が最終段階の命令に集約するこなく分散でき、こ
のため、処理を高速に行えるようになる。また、1個の
レジスタの内容から複数の移行元ステップ及び複数のト
ランジションの移行条件成立の有無を認識することがで
きるので、移行元ステップ毎及び移行先ステップ毎のア
ドレスをメモリに記録しておく必要がなく、このためメ
モリ・コストが低減する。また同様に、分岐ステップ数
の設定に対しメモリ容量による制約を受けることがない
ので、多分岐を必要とする大規模なあるいは複雑なシー
ケンス制御が可能となる。
【図面の簡単な説明】
【図1】本発明のブロック図である。
【図2】一実施例のプログラマブルコントローラの構成
ブロック図である。
【図3】レジスタNRGとレジスタARGの関係を説明
する図である。
【図4】RAMに格納されるSFCプログラムの配置を
示す模式図である。
【図5】(a) は選択分岐のニーモニックの記述例を示す
図、(b) は選択合流のニーモニックの記述例を示す図で
ある。
【図6】(a) は並列分岐のニーモニックの記述例を示す
図、(b) は並列合流のニーモニックの記述例を示す図で
ある。
【図7】本実施例に用いられるニーモニックの命令を説
明する図表である。
【図8】プログラミング装置(プログラムローダ)の構
成ブロック図である。
【図9】(a) は命令D−SLC又は命令C−SLCの動
作を示すフローチャート、(b)は命令STL又は命令J
UNCの動作を示すフローチャートである。
【図10】(a) は命令LDの動作を示すフローチャー
ト、(b) は命令SLCT又は命令SETの動作を示すフ
ローチャートである。
【図11】命令E−TRNの動作を示すフローチャート
である。
【図12】(a) は命令D−CIM又は命令C−CIMの
動作を示すフローチャート、(b)は命令SIMULの動
作を示すフローチャートである。
【図13】(a) は命令SYNLの動作を示すフローチャ
ート、(b) は命令SYNCの動作を示すフローチャート
である。
【図14】(a),(b) はSFCのプログラム構造を説明す
る模式図である。
【図15】(a),(b),(c),(d) はSFCの分岐及び合流を
説明する図でる。
【符号の説明】
1 記憶手段 2 解析手段 3 第1レジスタ 4 第2レジスタ 5 第3レジスタ 6 第4レジスタ 7 第5レジスタ

Claims (4)

    (57)【特許請求の範囲】
  1. 【請求項1】SFC記述に基づくプログラムにより動作
    するプログラマブルコントローラにおいて、 分岐又は合流の命令を記憶する記憶手段(1) と、 該記憶手段(1) から読み出した分岐又は合流の命令を解
    析する解析手段(2) と、 該解析手段(2) が読み出した分岐又は合流の命令に係わ
    るトランジションのオン又はオフの状態データを格納す
    る第1レジスタ(3) と、 該第1レジスタ(3) のオフ状態をインターロックする第
    2レジスタ(4) と、 前記解析手段(2) が読み出した分岐又は合流の命令に係
    わる移行元ステップのアドレスを格納する第3レジスタ
    (5) と、 前記解析手段(2) が読み出した分岐又は合流の命令の処
    理手順を二者択一するためのデータを格納する第5レジ
    スタ(7) と、 を有し、 前記解析手段(2) は、 選択分岐の開始を宣言する命令を読み出したとき、前記
    第2レジスタ(4) を初期設定することにより前記第1レ
    ジスタ(3) をセット可能状態にすると共に前記第5レジ
    スタ(7) に命令の処理手順の第1の選択を指示するデー
    タを設定し、 分岐における移行元ステップの活性・非活性の状態を検
    出する命令を読み出したときは、検出した該移行元ステ
    ップの状態が非活性であるとき前記第2レジスタ(4) を
    介して前記第1レジスタ(3) をオフ状態にインターロッ
    クし、一方、検出した該移行元ステップの状態が活性で
    あるときは該移行元ステップのアドレスを前記第3レジ
    スタ(5) に格納し、 トランジションのオン・オフの状態を検出する命令を読
    み出したときは、検出した該トランジションの状態がオ
    ンであるとき前記第1レジスタ(3) にオン状態を設定す
    るデータを出力し、一方、検出した該トランジションの
    状態がオフであるときは前記第1レジスタ(3) にオフ状
    態を設定するデータを出力し、 選択分岐を指示する命令を読み出したときは、前記第1
    レジスタ(3) がオン状態であり且つ移行先ステップの状
    態が非活性であるとき該移行先ステップを活性化すると
    共に前記第3レジスタ(5) に格納されたアドレスの移行
    元ステップを非活性化し且つ前記第2レジスタ(4) を介
    して前記第1レジスタをオフ状態にインターロックし、
    一方、前記第1レジスタ(3) がオフ状態であるとき又は
    前記移行先ステップの状態が活性であるときは処理を終
    了し、 分岐の終了を宣言する命令を読み出したときは、前記第
    2レジスタ(4) を初期設定することにより前記第1レジ
    スタ(3) をセット可能状態にした後、前記第5レジスタ
    (7) に設定されたデータが命令の処理手順の第1の選択
    を指示していることを確認して直ちに処理を終了する、 ことを特徴とするプログラマブルコントローラ。
  2. 【請求項2】 前記解析手段(2) は、 選択合流の開始を宣言する命令を読み出したとき、前記
    第2レジスタ(4) を初期設定することにより前記第1レ
    ジスタ(3) をセット可能状態にすると共に前記第5レジ
    スタ(7) に命令の処理手順の第1の選択を指示するデー
    タを設定し、 選択合流における移行元ステップの活性・非活性の状態
    を検出する命令を読み出したときは、検出した該移行元
    ステップの状態が非活性であるとき前記第2レジスタ
    (4) を介して前記第1レジスタ(3) をオフ状態にインタ
    ーロックし、一方、検出した該移行元ステップの状態が
    活性であるときは該移行元ステップのアドレスを前記第
    3レジスタ(5) に格納し、 トランジションのオン・オフの状態を検出する命令を読
    み出したときは、検出した該トランジションの状態がオ
    ンであるとき前記第1レジスタ(3) にオン状態を設定す
    るデータを出力し、一方、検出した該トランジションの
    状態がオフであるときは前記第1レジスタ(3) にオフ状
    態を設定するデータを出力し、 選択合流を指示する命令を読み出したときは、前記第1
    レジスタ(3) がオン状態であり且つ移行先ステップの状
    態が非活性であるとき該移行先ステップを活性化すると
    共に前記第3レジスタ(5) に格納されたアドレスの移行
    元ステップを非活性化し且つ前記第2レジスタ(4) を介
    して前記第1レジスタ(3) をオフ状態にインターロック
    し、一方、前記第1レジスタ(3) がオフ状態であるとき
    又は前記移行先ステップの状態が活性であるときは処理
    を終了し、 合流の終了を宣言する命令を読み出したときは、前記第
    2レジスタ(4) を初期設定することにより前記第1レジ
    スタ(3) をセット可能状態にした後、前記第5レジスタ
    (7) に設定されたデータが命令の処理手順の第1の選択
    を指示していることを確認して直ちに処理を終了する、 ことを特徴とする請求項1記載のプログラマブルコント
    ローラ。
  3. 【請求項3】 前記解析手段(2) が読み出した分岐又は
    合流の命令のプログラムアドレスを格納する第4レジス
    タ(6) をさらに有して、 前記解析手段(2) は、 並列分岐の開始を宣言する命令を読み出したとき、前記
    第2レジスタ(4) を初期設定することにより前記第1レ
    ジスタ(3) をセット可能状態にすると共に前記第5レジ
    スタ(7) に命令の処理手順の第2の選択を指示するデー
    タを設定し且つ前記第4レジスタ(6) に次の命令の先頭
    プログラムアドレスを設定し、 並列分岐における移行元ステップの活性・非活性の状態
    を検出する命令を読み出したときは、検出した該移行元
    ステップの状態が非活性であるとき前記第2レジスタ
    (4) を介して前記第1レジスタ(3) をオフ状態にインタ
    ーロックし、一方、検出した該移行元ステップの状態が
    活性であるときは該移行元ステップのアドレスを前記第
    3レジスタ(5) に格納し、 トランジションのオン・オフの状態を検出する命令を読
    み出したときは、検出した該トランジションの状態がオ
    ンであるとき前記第1レジスタ(3) にオン状態を設定す
    るデータを出力し、一方、検出した該トランジションの
    状態がオフであるときは前記第1レジスタ(3) にオフ状
    態を設定するデータを出力し、 並列分岐を指示する命令を読み出したときは、前記第5
    レジスタ(7) に設定されたデータが命令の処理手順の第
    2の選択を指示しているときにおいて、前記第1レジス
    タ(3) がオフ状態である場合は処理を終了し、また、前
    記第1レジスタ(3) がオン状態であり且つ移行先ステッ
    プの状態が非活性である場合も処理を終了し、前記第1
    レジスタ(3) がオン状態であり且つ移行先ステップの状
    態が活性である場合は前記第1レジスタ(3) にオフ状態
    を設定するデータを出力し、一方、前記第5レジスタ
    (7) に設定されたデータが命令の処理手順の第1の選択
    を指示しているときにおいては、移行先ステップを活性
    化すると共に前記第3レジスタ(5) に格納されたアドレ
    スの移行元ステップを非活性化し、 分岐の終了を宣言する命令を読み出したときは、前記第
    2レジスタ(4) を初期設定することにより前記第1レジ
    スタ(3) をセット可能状態にした後、前記第5レジスタ
    (7) に設定されたデータが命令の処理手順の第2の選択
    を示している場合は前記第1レジスタ(3) がオフ状態で
    あるとき処理を終了し、前記第1レジスタ(3) がオン状
    態であるとき前記第5レジスタ(7) に命令の処理手順の
    第1の選択を指示するデータを設定した後前記第4レジ
    スタ(6) に設定されているプログラムアドレスにジャン
    プし、一方前記第5レジスタ(7) に設定されたデータが
    命令の処理手順の第1の選択を指示している場合は直ち
    に処理を終了する、 ことを特徴とする請求項1記載のプログラマブルコント
    ローラ。
  4. 【請求項4】 前記解析手段(2) は、 並列合流の開始を宣言する命令を読み出したとき、前記
    第2レジスタ(4) を初期設定することにより前記第1レ
    ジスタ(3) をセット可能状態にすると共に前記第5レジ
    スタ(7) に命令の処理手順の第2の選択を指示するデー
    タを設定し且つ前記第4のレジスタ(6) に次の命令の先
    頭プログラムアドレスを設定し、 並列合流における移行元ステップの活性・非活性の状態
    を検出する命令を読み出したときは、前記第5レジスタ
    (7) に設定されたデータが命令の処理手順の第2の選択
    を指示しているときにおいて、移行元ステップの状態が
    活性である場合は処理を終了し、移行元ステップの状態
    が非活性である場合は前記第2レジスタ(4) を介して前
    記第1レジスタ(3) をオフ状態にインターロックし、一
    方、前記第5レジスタ(7) に設定されたデータが命令の
    処理手順の第1の選択を指示しているときにおいては、
    移行元ステップを非活性化し、 並列合流を指示する命令を読み出したときは、前記第5
    レジスタ(7) に設定されたデータが命令の処理手順の第
    2の選択を指示しているときにおいて、前記第1レジス
    タ(3) がオフ状態である場合は処理を終了し、前記第1
    レジスタ(3) がオン状態であり且つ移行先ステップの状
    態が活性である場合も処理を終了し、前記第1レジスタ
    (3) がオン状態であり且つ移行先ステップの状態が非活
    性である場合は該移行先ステップを活性化し、一方、前
    記第5レジスタ(7) に設定されたデータが命令の処理手
    順の第1の選択を指示しているときは処理を終了し、 合流の終了を宣言する命令を読み出したときは、前記第
    2レジスタ(4) を初期設定することにより前記第1レジ
    スタ(3) をセット可能状態にした後、前記第5レジスタ
    (7) に設定されたデータが命令の処理手順の第2の選択
    を示している場合は前記第1レジスタ(3) がオフ状態で
    あるとき処理を終了し、前記第1レジスタ(3) がオン状
    態であるとき前記第5レジスタ(7) に命令の処理手順の
    第1の選択を指示するデータを設定した後前記第4レジ
    スタ(6) に設定されているプログラムアドレスにジャン
    プし、一方前記第5レジスタ(7) に設定されたデータが
    命令の処理手順の第1の選択を指示している場合は直ち
    に処理を終了する、 ことを特徴とする請求項3記載のプログラマブルコント
    ローラ。
JP21453793A 1993-08-30 1993-08-30 プログラマブルコントローラ Expired - Lifetime JP3344020B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP21453793A JP3344020B2 (ja) 1993-08-30 1993-08-30 プログラマブルコントローラ

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP21453793A JP3344020B2 (ja) 1993-08-30 1993-08-30 プログラマブルコントローラ

Publications (2)

Publication Number Publication Date
JPH0764470A JPH0764470A (ja) 1995-03-10
JP3344020B2 true JP3344020B2 (ja) 2002-11-11

Family

ID=16657382

Family Applications (1)

Application Number Title Priority Date Filing Date
JP21453793A Expired - Lifetime JP3344020B2 (ja) 1993-08-30 1993-08-30 プログラマブルコントローラ

Country Status (1)

Country Link
JP (1) JP3344020B2 (ja)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE19983210B4 (de) * 1999-05-28 2011-07-21 Mitsubishi Denki K.K. Programmierbare Steuereinrichtung

Also Published As

Publication number Publication date
JPH0764470A (ja) 1995-03-10

Similar Documents

Publication Publication Date Title
JPH0769842B2 (ja) 資源の相互排他制御方法及びシステム
JPH02161524A (ja) パイプラインコンピュータに使用する分岐システムとその動作方法
JPH01188951A (ja) データフロープログラムの実行制御方式
JP3819639B2 (ja) プログラミング装置
JP3344020B2 (ja) プログラマブルコントローラ
US5995952A (en) Neural network for providing hints to problem solving apparatus using tree search method
JP2982187B2 (ja) プログラマブルコントローラ
JP2628784B2 (ja) プログラム作成装置
JP3018814B2 (ja) プログラマブルコントローラ
US6311174B1 (en) Problem solving apparatus having learning function
WO2024018516A1 (ja) シミュレーション装置及びプログラム
JPH0679245B2 (ja) プログラマブルコントロ−ラのシ−ケンスプログラム実行方式
JP2902888B2 (ja) プログラマブルコントローラ
JP2970142B2 (ja) プログラマブルコントローラ
JP2001005517A (ja) 制御プログラムのモニター方法および装置
JP2971251B2 (ja) Sfcプログラミング装置
JP2731166B2 (ja) プログラマブルコントローラ
JP2943434B2 (ja) プログラマブル・コントローラ
JPH0221003B2 (ja)
JP3352871B2 (ja) プログラマブルコントローラ
JPH1185506A (ja) 複数条件コード処理機能を有するデータ処理装置
JP3018790B2 (ja) プログラマブルコントローラ
JPH07129080A (ja) Sfc入力方式
JPH06202718A (ja) デバッグ方式
JPH06203088A (ja) 状態遷移図からのタイムチャート生成装置

Legal Events

Date Code Title Description
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20020730

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

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

Free format text: PAYMENT UNTIL: 20070830

Year of fee payment: 5

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

Free format text: PAYMENT UNTIL: 20080830

Year of fee payment: 6

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

Free format text: PAYMENT UNTIL: 20080830

Year of fee payment: 6

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

Free format text: PAYMENT UNTIL: 20090830

Year of fee payment: 7

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

Free format text: PAYMENT UNTIL: 20090830

Year of fee payment: 7

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

Free format text: PAYMENT UNTIL: 20100830

Year of fee payment: 8

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

Free format text: PAYMENT UNTIL: 20110830

Year of fee payment: 9

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

Free format text: PAYMENT UNTIL: 20110830

Year of fee payment: 9

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

Free format text: PAYMENT UNTIL: 20120830

Year of fee payment: 10

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

Free format text: PAYMENT UNTIL: 20120830

Year of fee payment: 10

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

Free format text: PAYMENT UNTIL: 20130830

Year of fee payment: 11