JPH0793008A - シーケンスデータの生成方法 - Google Patents

シーケンスデータの生成方法

Info

Publication number
JPH0793008A
JPH0793008A JP6286794A JP6286794A JPH0793008A JP H0793008 A JPH0793008 A JP H0793008A JP 6286794 A JP6286794 A JP 6286794A JP 6286794 A JP6286794 A JP 6286794A JP H0793008 A JPH0793008 A JP H0793008A
Authority
JP
Japan
Prior art keywords
input
numbers
component
assigned
connection lines
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
JP6286794A
Other languages
English (en)
Other versions
JP3111796B2 (ja
Inventor
Takeshi Enokida
剛 榎田
Hidenori Shiiba
英典 椎葉
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.)
Nissan Motor Co Ltd
Original Assignee
Nissan Motor 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 Nissan Motor Co Ltd filed Critical Nissan Motor Co Ltd
Priority to JP06062867A priority Critical patent/JP3111796B2/ja
Publication of JPH0793008A publication Critical patent/JPH0793008A/ja
Application granted granted Critical
Publication of JP3111796B2 publication Critical patent/JP3111796B2/ja
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Landscapes

  • Programmable Controllers (AREA)

Abstract

(57)【要約】 【目的】 シーケンスプログラム作成時の入力を制約な
く行えるようにし、実行時の処理の高速化を図ること。 【構成】 入力されたラダープログラムに基づいてラダ
ー図を展開し、当該ラダー図の各構成部品の接続線また
は当該接続線同士の接続点にそれぞれ番号を付し、当該
各構成部品の入力側の接続線あるいは接続点の番号順
に、前記構成部品を配列した部品表を当該構成部品の種
類ごとに作成し、当該部品表に基づいて、シーケンス制
御のためのプログラムを作成する。

Description

【発明の詳細な説明】
【0001】
【産業上の利用分野】本発明は、シーケンスプログラム
作成時の入力を制約なく行えるようにすると同時に、処
理速度を早くすることができるシーケンスデータの生成
方法に関する。
【0002】
【従来の技術】現在では、工場内において使用されてい
るほとんどの生産機械の動作はプログラマブルコントロ
ーラで制御されている。このプログラマブルコントロー
ラは一種のコンピュータであるから、これを動作させる
ためにはプログラムを入力する必要がある。このプログ
ラムの入力は、入力装置によってラダーシーケンスを描
きながら行う。
【0003】たとえば、図8に示してあるようなラダー
プログラムを入力する場合には、この図の通りのラダー
図となるように入力装置によって入力を行えば良い。具
体的には、R1 のA接点を入力し、次にこの接点と直列
になるようにR2 のA接点を入力し、さらにこのR1 ,
R2 の両A接点に並列となるように両A接点R4 ,R5
の直列接続された回路を入力する。このような入力を順
次行いながら図のような回路を構成させていく。
【0004】このようにして入力されたラダー図は、プ
ログラマブルコントローラが解釈できるような,たとえ
ば機械語などの言語に翻訳されてその記憶装置にストア
されることになるが、この翻訳は通常は次のような手順
で行われている。
【0005】まず、シーケンスブロックの左上より右上
へと接点やノードを解釈していく。図8に示すラダー図
においては、R1 のA接点からR2 のA接点へと順次解
釈していき、ノード3に達した時にはその下の段の回路
の解釈を行う。つまり、R4 のA接点からR5 のA接点
へと順次解釈していくことになる。また、ノード6に達
したときには、その下の段の回路の解釈を前述したと同
様にして行う。次に、R8 のA接点とこれに直列接続さ
れたR9 のB接点の回路の解釈がされ、さらにR11とR
12との直列回路の解釈がされ、最後にR13の回路の解釈
がされて図8に示した回路の全ての解釈が完了する。
【0006】このように、従来の解釈処理の方法によれ
ば、あるノードに突き当たるまでには1つの直列回路に
ついての解釈が連続して行われ、ノードに突き当たった
場合にはこの直列回路に並列に接続されている回路の解
釈を同様にして行い、全ての並列回路についての解釈が
終了したら次のノードに突き当たるまでの直列回路につ
いての解釈を行っていくという処理が順次行われる。
【0007】このために、たとえば図9(A)に示して
あるように、あるノードを跨がないようにラダー回路の
入力が行われているものについては従来通りの翻訳が可
能であるが、図9(B)に示してあるようにノードを跨
ぐようなラダー回路である場合には、翻訳ができなくな
ることになる。また、図10に示すようなラダー回路で
あれば入力に対する出力の結果が同一でなければならな
いのに対して、従来の2レジスタ方式では接点と出力の
上下関係が異なるだけでも、翻訳が行われた場合には結
果が異なることになるので、このような不具合を解消す
るために、入力エディタを用いてラダープログラムの誤
入力の発生を回避するようにしている。そして、このよ
うにして正確な入力が行われたシーケンスプログラム
は、所定の翻訳ルールにしたがって機械語に翻訳され、
記憶装置に記憶されることになる。
【0008】
【発明が解決しようとする課題】しかしながら、このよ
うな入力エディタを使用していても、複雑なラダー図に
おいては必ずしも完全な誤入力の回避をすることはでき
ず、万が一誤入力の発見がされないままに翻訳がされて
しまった場合には、当初予定していた通りの動作状態を
実現することができず、バグの解消に多くの時間を要し
てしまうという問題がある。
【0009】また、入力されたプログラムを機械語に翻
訳して記憶する場合、従来のシーケンスデータの生成方
法においては、たとえば図13に示したようなラダー回
路を入力すると、次の表1に示すような論理式展開がさ
れ、あたかも図14に示したような回路を入力したかの
ような翻訳が行われることから、重複した解釈を行わな
ければならない部分を生じ、実行時にはこの重複部分を
その都度処理する必要があるので、解釈の対象となるデ
ータ量が増加し、その分処理速度が遅くなってしまうと
いう問題がある。
【0010】
【表1】
【0011】本発明は、このような従来の不具合を解消
するためになされたものであり、その第1の目的は、翻
訳に先だって、入力されたラダー図において使用されて
いる部品表を作成し、その部品表に基づいて翻訳を行う
ようにして、入力するラダー図のパターンに制限がなく
なりまたバグの発生を完全に解消できるシーケンスデー
タの生成方法の提供を目的とするものである。
【0012】そして、その第2の目的は、入力されたデ
ータが入力時のラダー図と同様のラダー図として記憶さ
れるようにしたシーケンスデータの生成方法の提供を目
的とするものである。
【0013】
【課題を解決するための手段】上記目的を達成するため
の本発明の第1の構成は、入力されたラダープログラム
に基づいてラダー図を展開し、当該ラダー図の各構成部
品の接続線または当該接続線同士の接続点にそれぞれ番
号を付し、当該各構成部品の入力側の接続線あるいは接
続点の番号順に、前記構成部品を配列した部品表を当該
構成部品の種類ごとに作成し、当該部品表に基づいて、
シーケンス制御のためのプログラムを作成することを特
徴とするものである。
【0014】第2の構成は、入力されたラダープログラ
ムに基づいてラダー図を展開し、当該ラダー図の各構成
部品の接続線または当該接続線同士の接続点にそれぞれ
番号を付し、当該各構成部品の入力側の接続線あるいは
接続点の番号順に、前記構成部品を配列した部品表を当
該構成部品の種類ごとに作成し、当該構成部品の種類ご
とに作成された部品表のうち、各構成部品に付された入
力および出力の番号を他の構成部品のそれらの番号と比
較して同一番号に整理できるか否かを判断し、同一番号
に整理することができる場合には同一番号に整理する処
理をし、当該処理結果に基づいてシーケンス制御のため
のプログラムを作成することを特徴とするものである。
【0015】第3の構成は、入力されたラダープログラ
ムに基づいてラダー図を展開し、当該ラダー図の各構成
部品の接続線または当該接続線同士の接続点にそれぞれ
番号を付し、当該各構成部品の入力側の接続線あるいは
接続点の番号順に、前記構成部品を配列した部品表を当
該構成部品の種類ごとに作成し、当該構成部品の種類ご
とに作成された部品表のうち、入力側に複数回出現する
番号をノード番号として割り付けると共に、当該ノード
番号にビット番号を割り付けて前記ノード番号の整理を
行い、当該割り付けられたビット番号に対して論理式を
生成し、当該ビット番号ごとに生成された論理式にブロ
ック番号を割り付け、当該割り付けられたブロック番号
相互間の依存関係を求め、当該依存関係に基づいてシー
ケンス制御のためのプログラムを作成することを特徴と
するものである。
【0016】第4の構成は、入力されたラダープログラ
ムに基づいてラダー図を展開し、当該ラダー図の各構成
部品の接続線または当該接続線同士の接続点にそれぞれ
番号を付し、当該各構成部品の入力側および出力側の接
続線あるいは接続点の番号順に、前記構成部品を配列し
た部品表を当該構成部品の種類ごとに作成し、当該構成
部品の種類ごとに作成された部品表のうち、入力側に複
数回出現する番号をノード番号として割り付けると共
に、当該ノード番号にビット番号を割り付けて前記ノー
ド番号の整理を行い、当該割り付けられたビット番号に
対して論理式を生成し、当該ビット番号ごとに生成され
た論理式にブロック番号を割り付け、当該割り付けられ
たブロック番号相互間の依存関係を求め、当該依存関係
に基づいてブロック番号を並び替え、当該並べ替えられ
たブロック番号に基づいて前記ビット番号ごとに生成さ
れた論理式を結合し、前記出力側の接続点に対する論理
式を前記ビット番号ごとに結合された論理式に結合する
ことによってシーケンス制御のためのプログラムを作成
することを特徴とするものである。
【0017】
【作用】このように構成した本発明は、次のように作用
することになる。
【0018】第1の構成にあっては、まず、入力された
ラダープログラムに基づいてラダー図を展開し、当該ラ
ダー図の各構成部品の接続線または当該接続線同士の接
続点にそれぞれ番号を付し、当該各構成部品の入力側の
接続線あるいは接続点の番号順に前記構成部品を配列し
た部品表を当該構成部品の種類ごとに作成しているの
で、入力されたラダープログラムは構成部品の接続関係
のみでシーケンスコードが生成されることから、ラダー
回路の入力パターンに制限がなくなり、これにともなっ
てバグの発生も完全に解消されることになる。
【0019】具体的には、ラダー回路の接点と接点のつ
なぎ目の全てに左上から右下に向けて番号を付す。シー
ケンス回路を構成している接点やコイル名称をすべてリ
ストアップし、さらにその接点の左側についている番号
を入力番号、右側についている番号を出力番号としてリ
ストを作成する。これらの入出力番号をワイヤーという
部品群の関係を使ってできるだけ簡略化して部品表を作
成する。
【0020】このように、どのようなパターンのシーケ
ンス回路でも、上記のような処理をすることで、部品だ
けのデータに変換することができる。
【0021】第2の構成にあっては、第1の構成に加え
て、構成部品の種類ごとに作成された部品表のうち、各
構成部品に付された入力および出力の番号を他の構成部
品のそれらの番号と比較して同一番号に整理できるか否
かを判断し、同一番号に整理することができる場合には
同一番号に整理する処理をし、当該処理結果に基づいて
シーケンス制御のためのプログラムを作成するようにし
ている。
【0022】具体的には、できあがった部品表の入力番
号の項を見て、この中で複数回出現する番号をリストア
ップする。つまり、このリストアップした番号が付され
た列に複数個の接点が存在することを意味する。これら
の接点の出力値というのは、その接点の入力値と接点と
のアンドデータである。このため、全ての接点の出力値
を求めるためには、その都度入力側の値を求めなければ
ならない。しかし、この入力側の値はどの行に位置して
いようが同じである。したがって、入力側の値を出力す
るブロックを登録する必要がある。
【0023】第3の構成にあっては、第1の構成に加え
て、構成部品の種類ごとに作成された部品表のうち、入
力側に複数回出現する番号をノード番号として割り付け
ると共に、当該ノード番号にビット番号を割り付けて前
記ノード番号の整理を行い、当該割り付けられたビット
番号に対して論理式を生成し、当該ビット番号ごとに生
成された論理式にブロック番号を割り付け、当該割り付
けられたブロック番号相互間の依存関係を求め、当該依
存関係に基づいてシーケンス制御のためのプログラムを
作成するようにしている。
【0024】このようにすれば、リストアップした番号
を出力とするブロックをそれぞれ求めた時に、そのブロ
ックをある特定の番号で登録して分かり易く見やすくす
るための手段である。
【0025】第4の構成にあっては、第3の構成に加え
て、依存関係に基づいてブロック番号を並び替え、当該
並べ替えられたブロック番号に基づいて前記ビット番号
ごとに生成された論理式を結合し、前記出力側の接続点
に対する論理式を前記ビット番号ごとに結合された論理
式に結合することによってシーケンス制御のためのプロ
グラムを作成するようにしている。
【0026】このため、生成されるプログラムは入力し
たラダー図に一致したものとすることができ、実行時の
無駄な処理を排除することができるようになるから、実
行速度を向上させることができるようになる。
【0027】具体的には、複数回出現する(処理され
る)ブロックをある特定のビット番号で登録することが
できる。また、そのブロックの出力値を求める処理をす
る場合そのブロックに割り付いているビット番号を呼び
出して、ブロックの出力値を与えるというデータ構成を
もった論理式ができる。論理式内でのブロックの依存関
係も分かりやすくまた見やすくなる。
【0028】
【実施例】以下、本発明の一実施例を図面に基づいて説
明する。図1は、本発明にかかるシーケンスデータの生
成方法を実施する装置の概略構成を示したものである。
図中のシーケンス編集機10は、シーケンスプログラム
を作成するにあたって、オペレータがラダー図として入
力することができるようになっているものである。ま
た、シーケンスコード生成器12は、本発明の生成方法
を実行して、CPU依存性の少ない中間コードを出力す
るように構成されているものである。シーケンス実行器
14は、シーケンスコード生成器12からの中間コード
をCPU依存の機械語に変換してシーケンス処理を実行
するものである。入出力部16は、このシーケンスコー
ド実行器14による実行結果を外部に出力するものであ
る。
【0029】図2は、本発明の生成方法の概略の手順を
示した図である。
【0030】本発明のシーケンスデータの生成方法の概
略の手順を説明すると次のようになる。
【0031】まず第1段階では、シーケンス編集機10
によって入力されたラダープログラムの内のノードに相
当する部分の全てに番号を付ける処理を行なう。これ
は、次の処理において行われる部品表の作成に必要とな
るからである。
【0032】次に第2段階では、ノードに付された番号
に基いて、入力されたラダープログラムを構成する全て
の部品を番号順に並べて部品表を作成する。この部品表
には、リレーのコイル、リレーの接点、接点間を接続す
るワイヤ等の部品が含まれている。
【0033】そして第3段階では、作成された部品表を
ノードの番号に基づいて整理する処理が行われる。この
処理によって各部品間の接続関係が明確にされることに
なる。
【0034】第4段階では、整理された部品表を基にシ
ーケンスコードを生成する処理を行い、第5段階ではこ
の生成されたシーケンスコードの冗長分を整理する処理
を行う。この第5段階の処理が行われた後には、CPU
の依存性の少ない中間コードが出力されることになる。
【0035】以上第1段階から第4段階までの処理は、
シーケンスコード生成器12によって処理される。
【0036】そして最後に、各種の実行器専用の機械語
を生成する処理を行う。この処理はシーケンス実行器1
4によって行われ、入出力部16を介して外部の装置に
出力される。
【0037】次に上述のそれぞれの段階の処理を図面を
参照しながら詳細に説明する。
【0038】まず第1段階において、オペレータがシー
ケンス編集器10を用いて図3に示したようなラダープ
ログラムを入力した場合には、これがシーケンスコード
生成器12に送られて、図4に示すような部分に番号が
付されることになる。つまり、このラダープログラム中
に存在する全てのノード、バーテックスに番号が付され
る。この番号を付す場合のルールは次のように取り決め
てある。
【0039】1.番号を付す順番は、左上から右下とす
る。
【0040】2.接点やコイルなどの部品同士が接して
いる場所をノードと称する。
【0041】3.線の折れている部分をバーテックスと
称する。
【0042】4.基線に接しているノードは全てゼロ番
である。
【0043】以上のルールにしたがって図3のラダープ
ログラムのノード等に番号を付していくと、図4に示し
てあるようになる。
【0044】以上のように番号が付された後には、第2
段階の処理が行われ、図5に示すような部品一覧表が作
成される。
【0045】たとえば部品であるA接点のR1 について
は、入力NOが0,出力NOが1と記される。また、W
1 は単にノード間を接続するワイヤであるが、これも入
力側と出力側とが存在するので部品として登録する。こ
のW1 については入力NOが5,出力NOが11と記さ
れる。このようにシーケンス編集機10によって入力さ
れたラダープログラム中に存在する全ての部品について
付された入力NOおよび出力NOを勘案した図5のよう
な部品表を作成する。
【0046】図5のように作成された部品表は部品の種
類ごとでも入力NO毎でもないので、第3段階では、こ
れを部品ごとに整理する処理を行う。また、部品に付さ
れている番号の整理も同時に行う。
【0047】この第3段階の処理を行うにあたって整理
のためのルールは次のように設定してある。
【0048】1.ワイヤの両端のノード番号は等価であ
るものとする。
【0049】2.接点の両端のノード番号は入れ替える
ことができないものとする。
【0050】3.ノード番号は小さい順に整理する。
【0051】4.L形および逆L形(┘)バーテックス
のノード番号は全て消去する。
【0052】5.終了条件は全てのワイヤが消去できた
時である。
【0053】したがって、この第3段階は全てのワイヤ
が消去できるまで繰り返し行われることになる。
【0054】まず、図5に示した部品表を種別毎に分け
て、図6に示したような種別毎の部品表を作成する。次
に、この部品表をルールにしたがって整理する。つま
り、ワイヤのノード番号は等価であるので、ワイヤW1
の入力NO5と出力NO11とは置換可能であると言う
ことになり、同様にワイヤW2 の入力NO11と出力N
O13についても同様である。この関係を勘案して図6
の部品表の整理をすると、A接点のR5 については、ワ
イヤW9 の入力NO1と5とが等価であるので、その入
力NOを5から1に変更する。A接点のR7 の入力NO
8はワイヤW6 を参照してそのNOを8から6に変更す
る。このようにしてリレー接点の入力NOと出力NOと
を置き換えができなくなるまでワイヤの入出力NOを参
照して繰り返し変更する処理を行う。この処理の結果、
最終的に得られるそれぞれのリレー接点,出力端子,ワ
イヤの部品表は図7のようなものとなる。このようにし
て作成された部品表は次の段階においてシーケンスコー
ドを作成するための基礎とされる。
【0055】第4段階の処理においては、第3段階まで
の処理で作成された部品表に基づいてシーケンスコード
が作成される。この処理においても次のようなルールが
設定されている。
【0056】1.接点と入力ノードのAND値を出力す
る。
【0057】2.入力ノード番号が0になったところで
PUSHする。
【0058】3.PUSHした回数はカウントしてお
く。
【0059】4.全ての回路をPUSHし終えたら、カ
ウント回数POP_ORを繰り返す。
【0060】5.POP_OR終了後、所定のコイル,
ファンクションに出力する。
【0061】以上のルールを踏まえてこの段階の処理は
たとえば次のようにして行われることになる。
【0062】まず出力端子の番号であるO1 について見
る。この出力端子O1 は4を入力としているので、出力
NOが4である部品を検索することになる。この部品が
捜せたら、その部品が入力としているノードの番号を書
いてその下の行に所定のコードを書く。次に、ノード番
号を表の出力項から捜して、対応する接点項(部品)の
入力項に書かれているノード番号を書く。このノード番
号と接点とをANDする。この処理は出力項が1つだけ
の場合と出力項が複数の場合との2つの場合がある。
【0063】たとえば出力項が1つだけの場合には、ノ
ード番号/ANDのみが記され、次のように処理され
る。
【0064】 4 OUT 01 についての変換は、 3 AND R4 OUT 01 となる。
【0065】一方、出力項が複数ある場合には、ノード
番号/ANDの後にPUSHを付け、全ての出力効を記
述した後にPUSHの数だけPOP_ORを書く。たと
えば、 3 AND R4 OUT 01の変換は、 2 AND R3 PUSH 6 AND R6 PUSH 6 AND R7 PUSH POP_OR POP_OR POP_OR AND R4 OUT O1 となる。
【0066】さらに、入力ノード番号が0の場合には、
LD 部品とし、全てのノード番号が消えたところで終
了する。
【0067】そして、このような処理がされた以降は次
のようにして論理式への展開が行われることになる。
【0068】
【表2】
【0069】そして、次に第5段階の処理が行われるこ
とになる。まず第1のルールとしてはPUSH/POP
_ORは省略する。第2のルールとしては、PUSH/
LD/POP_ORはORに変換する。このルールの基
づいて表1の論理式を変換すると表2のようになる。
【0070】
【表3】
【0071】以上のようにして整理された論理式の中間
言語を機械語に翻訳する。この変換は変換表に基づいて
行われるが、この変換はターゲットとなるCPUの種類
によって異なる。以下の実施例では、68020のCP
Uを用いた場合について示す。この68020のCPU
はアドレスモードでインデックス付きメモリ間接モード
を使用してビットのアクセスを行うようになっている。
【0072】この処理を行うにあたっては、次のような
接点テーブルサイズを設定しておく。
【0073】
【表4】
【0074】また、次のようにイニシャルベースアドレ
ス,ベースアドレスからオフセット値、レジスタ番号も
設定しておく。
【0075】
【表5】
【0076】
【表6】
【0077】以上のようにして変換された機械語は、入
出力部4から外部に出力されることになる。なお、以上
の実施例においては上記の処理をシーケンスコード生成
器12及びシーケンス実行器14によって行うようにし
てあるが、この処理を全てシーケンスコード生成器12
のみのによって行うようにしてもよい。この場合には、
シーケンス実行器14へはCPU依存性の高い機械語が
出力されることになる。 このように、本発明では、入
力されたシーケンスラダー図の逐次変換は行わず、一
度、出力に関連する全ての接点を洗いだし、あらためて
論理的にシーケンスコードを生成するようにしたため
に、ラダーの書式に制限がなくなり、シーケンスエディ
ター等による入力パターンのチェックを行う必要もなく
なる。また、論理的に接点の接続関係のみでシーケンス
コードを生成するために画面上の位置の相違による実行
結果の相違がなくなることになる。
【0078】次に、実行速度を高速化することができる
ようにしたシーケンスデータの生成方法について説明す
る。
【0079】本実施例で使用する装置は、前述の実施例
で例示した図1に示した装置と全く同一の装置である。
また、本実施例のシーケンスデータの制御方法の内、図
2に示したフローチャートの第3段階までの処理は前述
の実施例と全く同様の処理を行うようになっているの
で、その処理の詳細な説明は省略する。つまり、図3に
示したラダー図に対して図4から図7に示したと同様の
処理が行われることになる。
【0080】図7のようにして得られた部品表に基づい
て、それぞれの部品の入力番号として複数回出現するノ
ード番号があるかをチェックし、複数回出現するノード
番号を抽出し、抽出したノード番号に対してビット番号
を付する処理を行う。具体的には、図11に示してある
ように、まず、入力番号として1が与えられている部品
が複数あるので、この入力番号1を抽出し、次に入力番
号3も複数出現しているのでこの番号3を抽出するとい
う処理を行い、この抽出した番号を順番に並べると、
1,3,6,10となる。そして、この並べた順番にビ
ット番号をそれぞれ0,1,2,3という具合に付す。
この処理を行うことは、図12に示したように、同一の
ラインに付した異なるノード番号を同一のビット番号と
して統一することを意味する。つまり、接点R1,R
2,R5,R9,R10,R11のそれぞれはビット0
という番号を付されたラインに繋がれていることを意味
する。この処理が終了したら、次に、各ビット番号を最
終出力とする論理式を生成する処理を行う。
【0081】この論理式を生成する場合は次のルールに
したがって行うようにしてある。
【0082】1.各ブロックの最終出力はSTEB#
(#はビット番号である)とする。
【0083】2.接点(部品)と入力番号をアンドした
値を出力する。
【0084】3.入力ノードに一致する出力ノードが複
数個存在する場合には、それぞれについて論理式を生成
し、PUSHを用いて接合する。最後にPUSHした数
だけ、POP_ORを繰り返す。
【0085】4.入力ノードが0の場合に限ってLDを
用いる。
【0086】5.ビット番号を割り付けたノード番号が
出現したら、それをGETB#(#はビット番号)に置
き換える。6.論理式生成の終了はノード番号がなくな
るまでとする。
【0087】ここで、SETBとは、Accの内容をビ
ットスコアテーブルの該当するビット番号に入れること
を意味し、GETBとは、ビットスコアテーブルの該当
するビット内容をAccにロードすることを意味する。
【0088】以上のようなルールにしたがって論理式は
次のようにして生成されることになる。この論理式の生
成手順を図12の回路に基づいて説明する。
【0089】まず、ビット番号0(ノード番号1)につ
いての生成手順は次のように行われる。ノード番号1が
最終出力となるので、1を置き、その後にSETB 0
を置く。そして、ノード番号1を出力している部品を図
11に示した部品一覧表から捜し出し、上記のルールの
3,4にしたがって生成した論理式は次のようになる。
【0090】 LD R1 PUSH LD R9 PUSH POP_OR POP_OR SETB 0 同様にビット番号1(ノード番号3)の場合も上記のル
ールにしたがって論理式展開すると次のようになる。
【0091】
【表7】
【0092】このようにして全てのビット番号、すなわ
ち、ビット0からビット3までについての各ビットにつ
いての論理式展開をし、この論理式展開後の名称をブロ
ックとする。具体的には、下記の表に示すような論理式
展開が行われることになる。
【0093】
【表8】
【0094】このようなブロックが生成された後に、ブ
ロック同士の依存関係を求める処理を行う。つまり、各
ブロックごとに、各ブロック内に存在するGETB#を
対応づけた下記のような表を作成する。
【0095】 ブロック GETB# 0 なし 1 0,2 2 0 3 0,1 つぎに、上記の処理において求めた依存関係を元にブロ
ックを並べ替える処理を行う。この並び替えの順番はつ
ぎのルールに基づいて行われる。
【0096】1.どのビット番号にも依存しないブロッ
クを置く。
【0097】2.つぎに、1のブロックのみに依存する
ブロックを置く。
【0098】3.順次置いたブロックに依存するブロッ
クを置く。
【0099】このルールに基づいて上記のブロックの並
べ替えを行うと下記の表に示したようになる。
【0100】 ブロック GETB# 0 なし 2 0 3 0,2 1 0,1 つぎに、上記のようにして並べ替えられたブロックにし
たがって、各ブロック毎に分けられた上記の論理式を順
番に並べる処理を行う。この処理を行なうとつぎのよう
になる。
【0101】
【表9】
【0102】つぎに、出力端子に対する論理式展開を行
なう。この場合には、上述のSETB#に替えてOUT
#を設定するようにしてある。したがって、それぞれの
出力に対する論理式展開は次のようになる。
【0103】
【表10】
【0104】そして最後に、各ブロック毎に分けられた
論理式と、上記の出力端子に対する論理式とを結合して
次のような論理式を得る。
【0105】
【表11】
【0106】以上のような処理を経て生成されたシーケ
ンスデータは、入力したラダーシーケンス図に一致した
ものとして記憶されることになるから、この記憶された
シーケンスプログラムを実行した場合には、無駄な処理
が行なわれなくなる。このため、このプログラムを記憶
する記憶装置の容量を必要最小限とすることができ、処
理速度の向上を図ることができるようになる。
【0107】これは、図12のラダー図に対して記憶さ
れるプログラムの論理式展開を示す表1と、同ラダー図
を本発明を用いて論理式展開した場合の表11とのデー
タ量を比較すれば明らかである。
【0108】
【発明の効果】以上述べたように本発明によれば次のよ
うな効果を生ずることになる。
【0109】第1の構成においては、入力されたシーケ
ンスプログラムに基づいて部品表を作成し、この部品表
に基づいて、シーケンス制御のためのプログラムを作成
するようにしたので、シーケンスプログラム作成時の入
力が制約なく行えることになる。また、どのようなパタ
ーンのシーケンス回路も変換できることから、何の制約
もなしにシーケンス回路を組むことができる。
【0110】第2の構成においては、複数回出現するブ
ロックの位置が明確になり、また、どのような回路構成
であるかも理解できるようになる。
【0111】第3の構成においては、ある特定の番号で
登録することにより、複数回出現するブロックがどのよ
うな形で、どこに位置しているか明確にでき、また、ブ
ロック同士の依存関係も非常に分かりやすくなる。
【0112】第4の構成においては、非常に簡潔なデー
タ構成となっていることから、データ上からどのような
シーケンス回路であるかを予測することが可能である。
実際にこのデータを基に復元を行った場合、最初にかか
れたシーケンス回路に忠実に変換することができる。ま
た、データ量も少なくなっているので、通信の際のデー
タの送受信が非常に速くなり、ファイルとしてセーブす
る際には、その容量の縮小化を図ることができる。ま
た、入力ラダー図に一致したシーケンスデータが記憶さ
れるようにし、データの処理もビット番号を呼び出して
ブロックの出力値を与えるという形を採っているので、
処理の高速化を図ることができるようになる。
【図面の簡単な説明】
【図1】 本発明にかかるシーケンスデータの生成方法
を実施する装置の概略構成を示す図である。
【図2】 本発明の生成方法の概略の手順を示した図で
ある。
【図3】 入力されたラダープログラムに基づいて展開
されたラダー図の一例を示す図である。
【図4】 図3のラダー図のノードに付される番号の一
例を示す図である。
【図5】 本発明の方法の実施過程において得られる部
品一覧表を示す図である。
【図6】 本発明の方法の実施過程において得られる部
品一覧表を示す図である。
【図7】 本発明の方法の実施過程において得られる部
品一覧表を示す図である。
【図8】 従来の変換方法の説明に供する図である。
【図9】 従来の変換方法の説明に供する図である。
【図10】 従来の変換方法の説明に供する図である。
【図11】 本発明の方法の実施過程において得られる
部品一覧表およびこの部品表から作成されるノード番号
とビット番号との関係を示す図である。
【図12】 本発明の生成方法の処理内容の説明に供す
る図である。
【図13】 従来の変換方法の説明に供する図である。
【図14】 従来の変換方法の説明に供する図である。
【符号の説明】
10…シーケンス編集器、 12…シーケンスコード生成器、 14…シーケンス実行器、 16…入出力部。

Claims (4)

    【特許請求の範囲】
  1. 【請求項1】 入力されたラダープログラムに基づいて
    ラダー図を展開し、 当該ラダー図の各構成部品の接続線または当該接続線同
    士の接続点にそれぞれ番号を付し、 当該各構成部品の入力側の接続線あるいは接続点の番号
    順に、前記構成部品を配列した部品表を当該構成部品の
    種類ごとに作成し、 当該部品表に基づいて、シーケンス制御のためのプログ
    ラムを作成するシーケンスデータの生成方法。
  2. 【請求項2】 入力されたラダープログラムに基づいて
    ラダー図を展開し、 当該ラダー図の各構成部品の接続線または当該接続線同
    士の接続点にそれぞれ番号を付し、 当該各構成部品の入力側の接続線あるいは接続点の番号
    順に、前記構成部品を配列した部品表を当該構成部品の
    種類ごとに作成し、 当該構成部品の種類ごとに作成された部品表のうち、各
    構成部品に付された入力および出力の番号を他の構成部
    品のそれらの番号と比較して同一番号に整理できるか否
    かを判断し、同一番号に整理することができる場合には
    同一番号に整理する処理をし、 当該処理結果に基づいてシーケンス制御のためのプログ
    ラムを作成するシーケンスデータの生成方法。
  3. 【請求項3】 入力されたラダープログラムに基づいて
    ラダー図を展開し、 当該ラダー図の各構成部品の接続線または当該接続線同
    士の接続点にそれぞれ番号を付し、 当該各構成部品の入力側の接続線あるいは接続点の番号
    順に、前記構成部品を配列した部品表を当該構成部品の
    種類ごとに作成し、 当該構成部品の種類ごとに作成された部品表のうち、入
    力側に複数回出現する番号をノード番号として割り付け
    ると共に、当該ノード番号にビット番号を割り付けて前
    記ノード番号の整理を行い、 当該割り付けられたビット番号に対して論理式を生成
    し、当該ビット番号ごとに生成された論理式にブロック
    番号を割り付け、 当該割り付けられたブロック番号相互間の依存関係を求
    め、当該依存関係に基づいてシーケンス制御のためのプ
    ログラムを作成するシーケンスデータの生成方法。
  4. 【請求項4】 入力されたラダープログラムに基づいて
    ラダー図を展開し、 当該ラダー図の各構成部品の接続線または当該接続線同
    士の接続点にそれぞれ番号を付し、 当該各構成部品の入力側および出力側の接続線あるいは
    接続点の番号順に、前記構成部品を配列した部品表を当
    該構成部品の種類ごとに作成し、 当該構成部品の種類ごとに作成された部品表のうち、入
    力側に複数回出現する番号をノード番号として割り付け
    ると共に、当該ノード番号にビット番号を割り付けて前
    記ノード番号の整理を行い、 当該割り付けられたビット番号に対して論理式を生成
    し、当該ビット番号ごとに生成された論理式にブロック
    番号を割り付け、 当該割り付けられたブロック番号相互間の依存関係を求
    め、当該依存関係に基づいてブロック番号を並び替え、
    当該並べ替えられたブロック番号に基づいて前記ビット
    番号ごとに生成された論理式を結合し、 前記出力側の接続点に対する論理式を前記ビット番号ご
    とに結合された論理式に結合することによってシーケン
    ス制御のためのプログラムを作成するシーケンスデータ
    の生成方法。
JP06062867A 1993-06-29 1994-03-31 シーケンスデータの生成方法 Expired - Fee Related JP3111796B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP06062867A JP3111796B2 (ja) 1993-06-29 1994-03-31 シーケンスデータの生成方法

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
JP5-159776 1993-06-29
JP15977693 1993-06-29
JP06062867A JP3111796B2 (ja) 1993-06-29 1994-03-31 シーケンスデータの生成方法

Publications (2)

Publication Number Publication Date
JPH0793008A true JPH0793008A (ja) 1995-04-07
JP3111796B2 JP3111796B2 (ja) 2000-11-27

Family

ID=26403926

Family Applications (1)

Application Number Title Priority Date Filing Date
JP06062867A Expired - Fee Related JP3111796B2 (ja) 1993-06-29 1994-03-31 シーケンスデータの生成方法

Country Status (1)

Country Link
JP (1) JP3111796B2 (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2018200731A (ja) * 2018-10-01 2018-12-20 オムロン株式会社 サポート装置およびサポートプログラム

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2018200731A (ja) * 2018-10-01 2018-12-20 オムロン株式会社 サポート装置およびサポートプログラム

Also Published As

Publication number Publication date
JP3111796B2 (ja) 2000-11-27

Similar Documents

Publication Publication Date Title
JPH06259400A (ja) 複雑なシステムのシミュレーション操作方法
JPH0793008A (ja) シーケンスデータの生成方法
JP3905951B2 (ja) シミュレーション/エミュレーションの効率を増すための論理変換方法
EP0440553B1 (en) Gate addressing system for logic simulation machine
JP2933093B2 (ja) シーケンスプログラムの照合方法
JPWO2020213129A1 (ja) デバッグ支援装置、デバッグ支援方法、デバッグ支援プログラム
JPH11224278A (ja) マスクパターンチェック方法
EP0592076B1 (en) Compilation mechanism for a simulation model
JP2820184B2 (ja) ロードモジュール単体テスト支援装置
JPH04239338A (ja) マイクロプログラム網羅率測定方式
JPH0324639A (ja) プログラム理解支援方法
JP3385790B2 (ja) 言語変換装置
JP3012546B2 (ja) シミュレーション装置及びその方法
JPH0721013A (ja) システム生成方式
JPH01106265A (ja) 自動配線ネットのオーダリング指定方法
JP3696302B2 (ja) テストベクトル生成方法及び生成装置
JPS60242731A (ja) デジタル・パタ−ン圧縮方法
JPH1063675A (ja) データ探索方法及びそれを適用したデータ探索装置
KR20010047758A (ko) 교환기 데이터베이스 생성 방법
JPH06332974A (ja) 論理シミュレーション方法
JPH10260709A (ja) プログラマブルコントローラのプログラミング装置
JPH086610A (ja) シーケンスデータの圧縮方法
Wasson et al. A new spanning tree algorithm
JP2000040093A (ja) Cad図面の検査方法および検査装置
JPH05250410A (ja) 階層シンボル修正システム

Legal Events

Date Code Title Description
FPAY Renewal fee payment (prs date is renewal date of database)

Year of fee payment: 7

Free format text: PAYMENT UNTIL: 20070922

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

Free format text: PAYMENT UNTIL: 20080922

Year of fee payment: 8

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

Free format text: PAYMENT UNTIL: 20090922

Year of fee payment: 9

LAPS Cancellation because of no payment of annual fees