JPS63100504A - シーケンスプログラム入力装置 - Google Patents

シーケンスプログラム入力装置

Info

Publication number
JPS63100504A
JPS63100504A JP23714187A JP23714187A JPS63100504A JP S63100504 A JPS63100504 A JP S63100504A JP 23714187 A JP23714187 A JP 23714187A JP 23714187 A JP23714187 A JP 23714187A JP S63100504 A JPS63100504 A JP S63100504A
Authority
JP
Japan
Prior art keywords
cell
branch
node
sequence diagram
sequence
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
JP23714187A
Other languages
English (en)
Other versions
JPH0652481B2 (ja
Inventor
Yoshimitsu Oshima
大島 義光
Norio Yokozawa
横沢 典男
Masayoshi Ozeki
正義 大関
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 JP62237141A priority Critical patent/JPH0652481B2/ja
Publication of JPS63100504A publication Critical patent/JPS63100504A/ja
Publication of JPH0652481B2 publication Critical patent/JPH0652481B2/ja
Anticipated expiration legal-status Critical
Expired - Lifetime legal-status Critical Current

Links

Landscapes

  • Programmable Controllers (AREA)

Abstract

(57)【要約】本公報は電子出願前の出願データであるた
め要約のデータは記録されません。

Description

【発明の詳細な説明】 [発明の利用分野] 本発明は、プログラマブル・シーケンス制御装置におい
て、シーケンスプログラムの作成、修正および編集等を
行なうシーケンスプログラム入力装置に関するものであ
る。
[従来の技術] プログラマブル・シーケンス制御装置(以下SCと略称
する。)は、従来シーケンス制御に主として用いられて
きたリレー回路と同等な機能を電子計算機と同様な蓄積
プログラム方式の汎用電子回路を用いて実現した装置で
ある。その構成を第1図に示す。1は演算制御部、2は
記憶部、3はシーケンス制御対象とのインタフェイス部
である。4はシーケンスプログ511人力装置で、操作
者はここからシーケンスプログラムを入力する。
シーケンス制御の設計には、従来第2図に示すようなり
レージケンス図が広く用いられている。
CRTデイスプレィ装置などの画面表示可能な表示装置
を用いると、このリレーシーケンス図をそのまま表示す
ることができる。そこで、このリレーシーケンス図をS
Cのプログラム入力手段に利用することにより、従来か
らりレージ−ケンス図に慣れ親しんできた技術者がSC
を取り扱うに際し、容易にプログラム入力などを行なう
ことが可能となる。
このような、CRTデイスプレィ装置等の画面表示装置
を用いたシーケンスプログラム入力装置は既に知られて
いる。その−例を第3図に示す。
図において5は操作者がプログラムの入力や種々の操作
指令を与えるためのキーボードである。6は制御部で、
キーボード5から入力されたプログラムをリフレッシュ
メモリ7に書込んだり、またシーケンスコントローラの
メモリ2に書込む動作。
逆にメモリ2からシーケンスプログラムを読出して、リ
フレッシュメモリ7に書込むこと、およびキーボード5
から入力された各種指令を実行する。
7はリフレッシュメモリで、表示部10で表示すべきデ
ータを格納する。ここに格納されたデータは、表示制御
部9から与えられるタイミングにより順次読出され、パ
ターン発生器8で文字やりし一シーケンスの図形要素に
変換され、表示制御部9の制御により9表示部10に表
示される。
一般にSCはシーケンス制御を実行するために論理和や
論理積を実行するための論理演算命令を持っている。こ
の命令セットの一例を第4図に示す。上記の構成のシー
ケンスプログラム入力装置においては、この論理演算命
令の一つ一つに対し、第4図の表の右側に示すリレーシ
ーケンス図の図形シンボルを対応させ、この図形シンボ
ルを印したキー(押しボタン)をプログラム入力装置の
キーボード上に用意し、操作者がこの図形シンボルキー
を適当に押していくことにより、リレーシーケンス図を
人力していた。
上記のような手順により入力したシーケンスプログラム
(リレーシーケンス図)の例を、第5図に示す1図中四
角で囲んだ部分が、入力装置のキーボード上に置いた図
形シンボルキーに対応している。また四角の右上に記し
た数字は、キー操作の順序である。なおリレー接点また
はリレー出力コイルの図形シンボルに対しては、その番
号または名前をつける必要があるが、説明の便宜上省略
した。
前述したように、キー上の各図形シンボルはSCの各命
令に一対一に対応している。上記方式では、図形シンボ
ルキーが押される度に、それがリフレッシュメモリ7に
書き込まれることにより表示部10に表示され、それと
同時に、SCのメモリ2にも対応する命令が書き込まれ
る。そこで、この方式では、プログラムの入力または修
正にあたっては、キー操作の順序が重要である。つまり
、同じキーを押すにしても、その順序を変えると、別の
りレージ−ケンス図が出来上ったり、あるいは正常に機
能を果し得ないりレージ−ケンス図ができてしまう。
したがって、この方式では、CRTデイスプレィを利用
してリレーシーケンス図をプログラム入力手段としたこ
とにより、従来りレージ−ケンス図に慣れ親しんだ技術
者がSCを取り扱う際の便宜をよくしてはいるが、実際
には通常のプログラムと同様に一次元の形式でプログラ
ムを入力しており、二次元画面を十用有効に利用してい
るとは言えない。操作者は、プログラム入力に際し、設
計図面上などに一度リレージーケンス図を製図し、この
後、これをもとにキー人力の順序をもとめてから、実際
の入力作業を行なう必要がある。さらに、作成ずみのシ
ーケンスプログラムの修正についても効率的な方法がな
かった。
[発明の目的コ 本発明の目的は、キー操作の順序等に制限がなく、二次
元の画面を利用して、作成済のシーケンスプログラムを
簡単に修正することができるシーケンスプログラム入力
装置を提供することにある。
[発明の概要] 上記の目的を達成するために、本発明では作成ずみのシ
ーケンスプログラムからシーケンス図を表示せしめ、こ
の表示されたシーケンス図を修正し、修正後のシーケン
ス図から対応する機械語命令列を生成するようにした。
[実施例] 以下に述べる実施例では、表示画面上におけるリレーシ
ーケンス図作成のための作成手段と、このリレーシケン
ス図をSCの機械命令列に変換する変換手段とを分離し
、それぞれ独立動作が可能なようにする。すなわち、作
成手段でシーケンスプログラムの入力もしくは修正中は
表示画面上のりレージ−ケンス図のみが発生され、リレ
ーシーケンス図の作成終了後これを変換手段によりSC
の機械命令列に変換するという構成である。この結果、
リレーシーケンス図はSCの機械命令と直接の対応関係
がなくなるので、操作者にとってよりわかりやすい、リ
レーシーケンス図作成のための操作キーを用いることが
可能になる。
第6図は、この考えに従ったシーケンスプログラム入力
装置の操作キーの一例である。同図(a)は図形シンボ
ルを入力するためのキー、(b)は入力位置を指育する
ためのカーソル(画面上に表示する特別なマーク)の移
動を指示するための制御キーである。(a)の図形シン
ボルキーは、前述の従来例と異なり、SCの機械命令と
直接の対応関係にない。
本実施例では、既に述べたように、リレーシーケンス図
の作成修正はSCの機械令命列に拘束されていない。し
たがって、図形シンボルの入力順序は任意であり、キー
人力の順序が前後することにより、リレーシーケンス図
を変換して得られるSCの機械命令列が影響を受けるこ
とはない、その代りに、上記のカーソル制御キーを用い
て、画面上での入力位置を適宜指定する必要がある。た
だし、通常のキャラクタデイスプレィ装置で一般に行な
われているように、−回の入力ごとにカーソルをその隣
りの位置に自動的に移動させる機能を設ければ、カーソ
ル制御キーを用いる回数は少なくて済む。なお、カーソ
ル制御キーの代わりに。
ライトペンやジョイスティック等の手段を用いて、入力
位置指定を行なうことも可能である。
第6図の入カキ−を用いて、第5図と同様なりレージ−
ケンス図を作成した例を、第7図に示す。
図中四角で囲んだ部分が、図形シンボルキーに対応して
いる。なお、第5図の場合と同様、説明の便宜上、接点
および出力コイルの番号または名前は省略した。前述し
たように、この例では、キー人力の順序は全く任意であ
る。したがって、入力順序を示す番号はふっていない。
このようにして、必要なりレージ−ケンス図は簡単に作
成できるが、本実施例では同時にScの機械命令は生成
されていない、そこでこのリレーシーケンス図をSCの
機械命令列に変換するための変換手段が必要となる。
第8図は1本発明によるシーケンスプログラム入力装置
の一実施例の構成である0本図は、第1図のシーケンス
プログラム入力装置4の構成図である。7,8,9.1
0および5は、第3図と同じく、それぞれリフレッシュ
メモリ、パターン発生器2衷示制御部1表示部、および
キーボードである。第3図の場合と同じく、表示すべき
リレーシーケンス図の表示情報は、コードデータの形で
リフレッシュメモリ7内に格納される。この情報は、表
示制御部9の制御により順次読出され、パターン発生器
8で文字ないし図形パターンに変換されて、表示部10
に表示される。
11は統轄制御部である。キーボード5から入力制御部
12をとおりし与えられる各種処理指令を解読、その実
際の処理指令を以下に述べる各処理部に与える、などシ
ーケンスプログラム入力装置の統轄的な制御を行なう。
13は、リレーシーケンス図の画像編集装置である。キ
ーボード5から入力される画像編集指令をもとに、リレ
ーシーケンス図の作成もしくは修正などの編集処理を行
なう。
以上の部分は既存の論理回路素子を用いて容易に構成す
ることができる。
14はリレーシーケンス図変換装置である。リフレッシ
ュメモリ7内のりレージ−ケンス図の表示情報をもとに
、これを論理代数式の形に変換して、論理代数式メモリ
15に書込む。16は、論理代数式メモリ15内に作成
された論理代数式を、さらにSCの機械命令語に変換す
るための機械語変換装置である。すなわち、リフレッシ
ュメモリ7内に作成されたりレージ−ケンス図は、リレ
ーシーケンス図変換装置114および機械語変換装置1
6の作用によりSCの機械命令列によるシーケンスプロ
グラムに変換され、SCの記憶部(第1図の2の部分)
に書込まれる。
17は、逆にSCの記憶部内の機械命令列を論理代数式
の形にもどすための、論理代数式再生装置である。また
18は、さらにこれをリレーシーケンス図の形に復元す
るりレージ−ケンス図再生装置である。すなわち、SC
の記憶部内のシーケンスプログラムは、各装置i17,
18をとおして、リレーシーケンス図の形に復元されて
、リフレッシュメモリ7内に書込まれ、表示部1oに表
示される。この逆変換機構は、一旦作成して既にSCの
記憶部2に書込まれたシーケンスプログラムに対し、後
から修正を加えたい時に、必要である。
すなわち、この機構によりシーケンスプログラムの入力
修正を、全てリレーシーケンス図の形で行なうことが可
能となる。
本実施例では、リレーシーケンス図からSCの機械命令
列への変換、およびその逆変換において、どちらも一度
論理代数式の形を経由している。これを省略して、直接
リレーシーケンス図からSCの機械命令列へ、またはそ
の逆という変換方式も可能である。このような構成にす
れば、必要な回路素子数が減ることは容易に想像できる
。(少なくとも、論理代数式メモリ15は不要になる。
)しかし、第8図の構成では、次のような利点もある。
装M14および18は、リレーシーケンス図と論理代数
式との相互変換を受けもっている。SCとのインタフェ
イスは、装置16および17の機械命令高と論理代数式
との相互変換部が受けもっており、ここを換えることに
より、任意のSCに接続することができる。
機械語変換装置16の部分は、電子計算機の高級プログ
ラミング言語(FORTRAN等)のコンパイラの技法
を用いれば、容易に構成することができる。同じ理由に
より、論理代数式再生装置17も容易に構成できる。
以下、装置14および18について、順により詳細に説
明する。
リレーシーケンス図変換装置14は、例えば第9図のよ
うに3つの部分から構成されている。
20は結線構造抽出部、21は結線構造データメモリ、
22は論理代数式への変換部である。
結線構造抽出部20は、リフレッシュメモリ7内の図形
パターンのコード情報から、リレーシーケンス図の接点
や出力コイルのつながり具合を示す論理的な結線構造を
抽出し、これに関するデータを結線構造データメモリ2
1上に形成する。論理代数式への変換部22は、結線構
造データメモリ上に形成された、リレーシーケンス図の
論理的な結線構造データから、対応する論理代数式を生
成して、これを論理代数式メモリ15上に展開する。結
線構造抽出部20は、論理代数式への変換部22の処理
に先立ち、リフレッシュメモリ内(CRT画面上)のり
レージ−ケンス図の冗長な部分(例えば、単なる縦棒や
横棒などは、各格子点を結ぶだけの役割しかしていない
、)を除去する役割を果す。同時に、論理的な結線構造
データに変換する作業を分担することにより、後の論理
代数式への変換部22の構造を省略化している。
なお、本実施例におけるリレーシーケンス図変換装置1
4の入力、すなわち結線構造抽出部20の入力となるリ
レーシーケンス図について、次の2点の仮定を置いた。
(1)接点および出力コイルはダイオード機能を持つも
のとする。すなわち、表示画面上に水平に表示された接
点およびコイルパターンについて、電流は常に左から右
へ流れるものとする。したがって、これらのパターンの
左端は電流の流入点、右端は電流の流出点と考えること
ができる。
なお、画面の左端には電源母線、右端には接地線がある
ものとする。(第7図参照) (2)接点などを持たない横棒や縦棒は、単にその両端
を等電位で結ぶものとする。すなわち、(1)の場合と
異なり、この場合、電流の方向は規制されずにどちらの
方向にも流れることが可能である。
結線構造抽出部20の処理結果として得る結線構造デー
タのデータ構造を第10図に示す、同図(a)は、画面
上にある変換対象となるリレーシーケンス図、(b)は
、(a)から冗長な部分(単なる横棒、縦棒)を棄却し
て抽出したトポロジカルな結線構造の模式図である。(
C)は結線構造データメモリ21上に展開した(b)の
データの相互関係を示している。これはポインタを用い
たリスト構造となっている。
図から明らかなように、(C)「節」のセル(第10図
(b)、(c)でS r N 1 + N 2 t E
に相当する。)と「枝」のセル(第10図(b)、(c
)でX1〜x4゜Ylに相当する。)の二種類のデータ
要素から構成されている。
「節」のセルは(a)のりレージ−ケンス図で、単なる
横棒や縦棒で結ばれて等電位にある点を、代表して表わ
したものである。「枝」のセルは、接点ならびに出力コ
イルを表現するものである。
この「節」のセルと「枝」のセルとの相互接続のために
、各「節」のセルからは2種類の「鎖」が出ている。こ
れを「右傾」、「左傾」と名づける。
「右傾」は、その1節」のセルに接続しており、かっそ
の1節」のセルを起点とする電流の川下にある「枝」の
セルをつなげるための鎖である。また、「左傾」は、°
やはりその1節」のセルに接続し、かつその1節」のセ
ルを逆に川下とする「枝」のセルをつなげる鎖である1
通常、画面上にある「節」のセルのすぐ右にある「枝」
のセルは「右傾」に接続され、すぐ左にある「枝」のセ
ルは「左傾」に接続される。なお「鎖」の左右は1節」
のセルから見たときのもので、「枝」のセルから見たと
きは名前と逆になる。この「左傾」、「右傾」の存在を
模式的に明確に表わすと、第11図のようになる0図で
、下方に足を2本有している正方形が1節」のセル、そ
の左側の足が「左傾」、右側の足が「右傾」である1両
側に腕を伸ばして、各1節」のセルの「左傾」「右傾」
に継がっているのが「枝」のセルである。
「鎖」につながる順番は、r石類」、「左傾」とも、C
RT画面上で上方にあるものほど、1節」のセルに近く
なるようにすれば、結線構造データ上でも、リレーシー
ケンス図の相対的位置関係は保存される。
結線構造抽出部20の具体的構成の一例を、第12図に
示す、30はリレーシーケンス図の格子点走査回路、3
1は波方向検出回路、321〜329は結線構造データ
に対する各処理回路34はメモリである。格子点走査回
路30により、リフレッシュメモリ7内にあるリレーシ
ーケンス図の各格子点(配線が交わる部分)を順次走査
する。
そして、そこにどのように枝がつながっているかを、波
方向検出回路31により検出かつ分析し、それに応じて
各処理回路321〜329の一つに処理指令を発する。
指令を発せられた処理回路は、リレーシーケンス図のデ
ータをもとに、結線構造データメモリ21上のデータに
対し必要な処理を行なう。
リレーシーケンス図の各格子点に対し、枝は四方から入
ってくる。したがって、枝が何も入ってこない場合を含
めると、格子点における結線の種別は16とおりになる
。これを第13図に示す。
第13図の実線は枝が入ってきている部分、点線は枝が
入ってきていない部分である。
格子点走査回路30の走査の順序は、説明の便宜上、ま
ず上から下へとし、この上から下への走査をくり返しな
がら左から右へ走査することにより1画面上の全格子点
を走査するものとする。
この走査の順序に従うと、各格子点での処理は大路次の
ようである。
まず、上から枝が入ってきているかどうかを調べる。上
から枝が入ってきていない場合、その格子点に対する1
節」のセルは未定義と考えられる。
そこで必要ならば、新らしくその「節」のセルのメモリ
領域を確保し、定義を行なう。
次に左から枝が入ってきているかを調べ、来ている場合
はその「枝」のセルを、その格子点に対する1節」のセ
ルの「主鎖」に追加する。
右方向に枝が出ている場合は、その枝に対する「枝」の
セルを新らしく定義し、その格子点に対する「節」のセ
ルの「右傾」の適当な位置にそのr枝」のセルを挿入す
る。
最後に下向きの枝である。この枝がある時、その格子点
の下方にも同一の1節」にセルに属する格子点があるこ
とを示しているが、必要な処理はその下方の格子点に行
ってから行なうので、下向きの枝については何も処理を
行なわない。
第13図に示した各結線パターンを上述の処理の種類に
より分類すると、第14図のようになる。
これは、上方向および左方向の枝の有無に着目した分類
である。(イ)は上からの枝がなく、左からの枝がある
場合、(ロ)は上からの枝も左からの枝もある場合であ
る。(ハ)は上からの枝だけで左からの枝がない場合、
(ニ)は上からの枝も左からの枝もない場合である。(
ホ)は枝のあるなしの分類ではなく、何らの処理もしな
い場合である。(へ)枝がどこか一方から来ているのみ
で、不完全な格子点である。これは入力エラーとなる。
右方向または下方向の枝があるものを同一の分類にした
のは、右方向の枝がある時は、それが奥する分類の処理
をすませた後、右方向の枝に対する「枝」のセルを生成
して、その格子点に対応する1節」のセルのr右鎖」に
接続する処理を追加すればよく、また、下方向の枝につ
いては、それに対する何らの処理も必要としないからで
ある。
第12図の各処理回路321〜329は、上述の(イ)
〜(へ)の各分類に応じて、対応する処理を行なう実施
部である。321は(イ)に対応する処理、322は(
ロ)に対応する処理、以下同様に、323は(ハ)の、
324は(ニ)の、325は(ホ)の、326は(へ)
の処理を行なう、また327は、上述の「枝」のセルの
生成およびその「節」のセルへの接続処理を行なう処理
回路である。328゜329は後述するりレージ−ケン
ス図の左端および右端の処理回路である。
以下第14図の各分類別に処理内容を説明する。
(イ)の処理 最初に、左側の枝に対する「枝」のセルのポインタを読
出す。
この「枝」のセルは、現在処理中の格子点の左隣りの格
子点において生成されたものである。この「枝」のセル
は、上記左隣りの格子点に対する1節」のセルの「右傾
」に接続されているが、「主鎖」については未処理の状
態にある。この「枝」のセルのポインタは、これを生成
した時点で、後の処理のために一旦どこかに記憶してお
く必要がある。第12図のメモリ34は、このために設
けたもので、未処理の「枝」のセルのポインタの値を記
憶する。最初に記した「枝」のセルのポインタの読出し
はここから行なったものである。
次に、現在処理中の格子点に対する1節」のセルを生成
するのであるが、この処理は、左方の枝が接点、出力コ
イル等でない単なる横棒の場合、不要である。すなわち
、この時はその格子点とその左隣りの格子点は同一の1
節」のセルに属すると考えられ、その1節」のセルはす
でに左隣りの格子点で定義されているので、これを用い
ることができる。またこの情報を伝えた「枝」のセルは
、最終的には不要であるから、この時点でその「節」の
セルの「右傾」から削除する。
他方、左千の枝が接点等である場合は、その格子点に対
する「節」のセルは未定義である。そこで、新らしく「
節」のセルを生成し、その「主鎖」に左方の枝の「枝」
のセルを接続する。
(ロ)の処理 (イ)の処理と同様に、まず左側の枝に対する「枝」の
セルのポインタを読出す。そして、その枝が接点等であ
るか単なる横棒であるかを調べ、接点等であれば、その
「枝」のセルをその格子点に対する「節」のセルの「左
傾」に接続すればよい。(その格子点に対する「節」の
セルは、その上方の格子点ですでに定義されている。)
これに対し、左方の枝が単なる横棒、すなわちその格子
点と左隣りの格子点が同一の1節」のセルに属するとい
うときには、以下の処理の必要となる。
まず、この格子点に対する1節」のセルはすでにその上
方で定義されている。一方、その左隣りの格子点につい
ても、すでにその「節」のセルが定義されている。そし
て、両者をつなぐ横棒の意味するところは、両方の格子
点が単一の1節」のセルに属すべきであるということで
あるから、二つの「節」のセルおよびそれに連なる「左
傾」、「右傾」を一つにまとめる必要がある。
これを行なうために、まず一つの1節」のセルの一方を
生かし、他方を捨てる。次の二本の鎖をそれぞれ1本化
する。まず「左傾」は、現在処理中の格子点に対する「
節」のセルの「左傾」を先にし、その下に左隣りの格子
点に対する1節」のセルの「左傾」を接続する。「右傾
」では、先に読出した単なる横棒に対する「枝」のセル
を、左隣りの格子点の「節」のセルの「右傾」から削除
し、同じ位置に現在の格子点に対する「節」のセル「右
傾」を挿入する。これらの処理の様子を第15図に示す
。(a)は、もとになるリレーシーケンス図の相当部分
の例である。(a)のN工が現在処理中の格子点、N2
がその左隣りの格子点がある。(b)は統合処理前の結
線構造データ、(c)は統合処理後の結線構造データを
示す。(b)のB工が単なる横棒に対する「枝」のセル
である。
以上の、(イ)、(ロ)の処理とも、右方に枝が出てい
る場合は、上述の諸処理が終了した後、その右方の枝に
対する「枝」のセルを生成し、その格子点に対する1節
」のセルの「右傾」に挿入する。
また生成した「枝」のセルのポインタを前述したメモリ
34に記憶する。
(ハ)の処理 この場合、上からの枝があるので、すでに「節」のセル
は定義されている。一方左の枝がないのでそれの処理は
ない。右方の枝に対する「枝」のセルを生成し、これを
「節」の「右傾」につなげばよい。
(ニ)の処理の場合は、上からの枝がないので、まずこ
の格子に対する1節」のセルを生成し、その「右傾」に
、右方の枝「枝」のセルを生成して接続する。
(ホ)の処理の場合、枝が何もきていない結線パターン
については何もしないのは当然として、枝が上方および
下方のみのパターンの場合、上から枝ができているので
その格子点に対する「節」のセルはすでにできており(
つまり新らしく生成する必要がない、)また、右および
左の枝がないので、それに対する処理が不要、下向きの
枝は前にも述べたようにその格子点においては処理が不
要というわけで、枝が上方および下方のみの場合も何ら
の処理も必要としない。
(へ)の処理の場合、すでに述べたようにこれは入力エ
ラーであるので、処理回路326は統轄制御部11に対
して、その由通知する。これに対し、統轄制御部11は
操作者に対し、CRTデイスプレィからなる表示部10
を介し、警告メツセージ等を発すればよい。
さて、今まで述べてきた処理は、リレーシーケンス図上
の一般の格子点の処理である。リレーシーケンス図の左
端および右端は、それぞれ電源母線および接地線である
。ここでは、上述とは別の処理が必要である。この処理
を、前述した第12図の処理回路328,329が行な
う。
まず、左端の格子点においては、これらはすべて電源母
線上にある。そこで、各格子点において右むきの技が出
ているかどうかを調べ、出ていたら「節」のセルを生成
し、また右方の枝に対する「枝」のセルを生成し、その
1節」のセルの「右鎖」に接続する。一度「節」のセル
を生成した後は、右方の枝があるたびに、「枝」のセル
を生成して、「節」のセルの「右傾」に接続するのみで
よい。
右端の格子点は、同様に、左むきの枝が出ているかどう
かを調べ、出ていたらその「左傾」にその左方の枝の「
枝」のセルを接続する。通常、左端の枝は出力コイルの
枝であり、単一出力の回路しか許されていない場合は処
理はこれで終りだが、複数の出力コイルの接続を許して
いる場合は、左むきの枝をすべてひろいあげ、それらの
枝に対する「枝」のセルをその1節」のセルの「左傾」
にすべて接続する。
以上が結線構造抽出部の20の処理内容である。
以上の説明では、結線構造データメモリ21の構造およ
びその内容について、模式的にしか示してこなかった。
第16図に、その具体的構成例を示す。
同図(a)は、1節」のセルの構成である。「節」のセ
ルは3語から構成される。最初の語りはその「節」のセ
ルの「左傾」の先頭のポインタを格納する。具体的には
、「左傾」上で、その1節」のセルに最初に接続する「
枝」のセルのポインタ(メモリアドレス等)を保持する
。同じく、2番目の語Rはその1節」のセルの「右傾」
の先頭のポインタ、すなわち「右傾」上でその「節」の
セルから続く最初の「枝」のセルのポインタを格納する
。3番目の語には、そのセルが「節」のセルであること
を明示するマークNを格納する。このマークのためには
1ビツトしか必要とせず(「節」のセルと「枝」のセル
の区別がつけばよい。)、前述の2語のうちの一部に同
居させることもできるが、後述の「枝」のセルと語数を
合わせるために、このビットを独立の語上に置き、1節
」のセルを3語とした。
(b)は「枝」のセルの構成で、やはり3語から構成さ
れる。最初の語りは、1節」のセルのときと同じく、「
左傾」のためのポインタで、「左傾」上でこの「枝」の
セルは続く「枝」のセルのポインタ(その「枝」のセル
のメモリアドレス等)を格納する。もし後続の「枝」の
セルがない場合、ここにはこの「左傾」の起点となる「
節」のセルのポインタを格納する。これにより、「左傾
」上の「節」および「枝」のセルは環状に結ばれるので
、あるセルから、それが属する「左傾」上をたどって、
その「左傾」上の任意のセルに到達することが可能であ
る。2番目の語Rは、同じく「右傾」のためのポインタ
で、「右傾」上における後続の「枝」のセルのポインタ
を格納する。「左傾」の場合と同じく、後続のポインタ
がない場合には、ここにこの「右傾」の起点となる「節
」のセルのポインタを格納する。これにより、「左傾」
の場合と同様にセルが環状に結ばれるので、必要なセル
の探索が容易に行なえる。3番目の語には、このセルが
「枝」のセルであることを示すマークビットB、および
この「枝」のセルに関する情報、具体的にはこの「枝」
のセルに対応するりレージ−ケンス図の接点または出力
コイルの、リフレッシュメモリ7内でのアドレスAを格
納する。
これら1節」のセル、「枝」のセルの接続関係を示した
のが第16図(C)である、この例では、一つの「節」
′のセルの「左傾」には2つのr波」のセルが、「右傾
」には1つの「枝」のセルが連なっている。
結線構造データメモリ21上では、これらのセルは具体
的には第16図(d)に示すように、連続して格納され
ている。結線構造抽出処理の途中段階における各鎖に対
するセルの追加、挿入1.削除等は、上記の各ポインタ
の値を変更することにより行なわれ、結線構造データメ
モリ21上で各セルを移動することはない。
この例においては、各鎖でこれに連なるセルの数が多く
なると、あるセルからその一つの手前のセルに移ろうと
すると、実際にはその鎖を環状に一周しなくてはならず
、処理に時間がかかる。そこで、各鎖に対する各セルの
ポインタを順方向のものだけでなく、逆方向のものを用
意すれば、一つ手前にもどる処理時間は短かくなる。こ
の場合、一つのセルの構成は5語構成となり、結線構造
データメモリの必要容量は増加する。
次に、第17図に示す、論理代数式への変換部22の処
理について述べる。
この処理は9作成された結線構造データメモリ21内の
データを用いて、電源母線に対応する「節」のセルから
始まって「枝」のセル、「筒」のセルと交互にたどって
いき、順次論理代数式に変換して行くものである。
第17図の変換部22において、40は右傾処理回路、
41は主鎖処理回路、42.43はともにスタック形式
の一時記憶用メモリである。メモリ42.43を以下、
スタックA、スタックBと呼ぶ。
スタックAは、変換処理途中のブロックの情報(ブロッ
クとは、一対の分岐節のセルと結合節のセルからなるル
ベルの入れ子構造をさすものとし、それは論理代数式に
おいて、一対の左カッコ、右カッコで囲まれる部分に相
当する。なお、分岐節のセルとは、その「右傾」に二つ
以上の「枝」のセルが接続されている「節」のセル、結
合節のセルとはその「主鎖」に二つ以上の「技」のセル
が筒続している1節」のセルである。)を一時退避する
ためのもの、スタックBは、処理途中、部分的に生成さ
れた論理代数式を一時退避するためのものである。さら
に、スタックAは第18図に示すように、三つの部分ス
タックA1〜A3から構成される。スタックAlは、分
岐節のセルのポインタを格納する部分、スタックA2は
結合節のセルのポインタを格納する部分、スタックA3
はそのブロックの処理状況を記憶する部分である。
変換部22の処理は大きく分けて二つの部分から構成さ
れており、一つは「節」のセルの「右傾」の処理、もう
一つはこの処理で引き出された「枝」のセルがつながる
他の一つの1節」のセルの「主鎖」の処理である。第1
7図の右傾処理回路40、主鎖処理回路41はこれらを
それぞれ受は持ち、交互に処理を行ないながら、結線構
造データを論理代数式へ変換する。
まず、右傾処理回路40について説明する。
第19図はその具体的構成の一例である。50は石類分
類回路、51は終了判定回路、521〜524は処理回
路である。また、S3は結線構造データメモリ21から
読出し信号である。右傾処理回路40では、最初に終了
判定回路S1がrWijのセルからその「右傾」をたど
り、それに連なる先頭の「枝」のセルを引出す。このと
き「右傾」に連なる「枝」のセルがない場合、その1節
」のセルはちとのりレージ−ケンス図の節地線部分に対
応する1節」のセルであり、そこで変換処理は終りであ
る。したがって、このとき終了判定回路51は、その由
、信号線54により、統轄制御部に通知する。
[右傾」に連なる「枝」のセルがある時、その「枝」の
セルは「右傾」へつながる位置により、第20図のよう
に分類することができる。図で丸が「節」のセルを示し
、実線が各「枝」のセルを示す。実線の各「枝」のセル
のうち、太い実線部分が現在注目している「技」のセル
を示している。
したがって、第20図(a)の太い実線は、単一の「枝
」のセルのみの「右傾」を持つ1節」のセルにおける。
その単一の「枝」のセルである。(b)の太い実線は、
複数の「枝」のセルがつながっている「右傾」を持つ「
節」のセル、すなわち分岐節のセルにおける一番上の「
技」のセルを示す。
(c)の太い実線は、同じく分岐節のセルの中間の「枝
」のセル(上下に他の「枝」のセルがある場合である。
したがってこのときこの分岐節のセルは3本以上の「枝
」のセルを持つ。)、(d)の太い実線は分岐節のセル
の一悉下の「枝」のセルである。
石類分類回路は、これらを分類判別して、各処理回路5
21〜524の一つに対し、処理指令を与える。各処理
回路はそれぞれ順に上記の(a)〜(d)の各分類に対
応する処理を実行する回路である。
石類分類回路50における、判定処理は次のようである
まず、「右傾」に連なる「枝」のセルの数を見て、それ
が複数のときは第20図(b)または(C)の場合であ
り、単一のときは第20図(a)または(d)の場合で
あることがわかる。(各場合の処理において、該当する
処理が終了した後、その「枝」のセルを「右傾」からは
ずして、「右傾」をつめる処理を行なう。これにより、
再度同一の「節」のセルにもどってきたときには、第2
0図(d)の場合も(、)の場合と同様、「右傾」には
単一の「枝」のセルが接続されている状態になっている
。) 次に、(b)と(c)ならびに(a)と(d)の区別で
あるが、これは次のようにして行なう。各1節」のセル
に、専用のフラグビット(以下これを分岐節ビットと呼
ぶ。)を1ビット設け、これを初期状態ではオフにして
おく。この状態で各「節」のセルの「右傾」の処理に入
り、まず上記の「枝」のセルの数の判定を行なう。この
とき判定結果が(b)または(c)であったならば、分
岐節ビットを見て、これがオフ状態ならば、この「右傾
」は初めて来た「右傾」である。すなわちこれに連なる
先頭の「枝」のセルは、分岐節における一番上の「枝」
のセルで、(b)の場合にあたる。この時、後での処理
の便宜をはかるために分岐節ビットをオンにし、以下(
b)の場合に対する処理を行なう。
分岐節ビットがオン状態ならば、この「右傾」は既に一
回以上アクセスされたことを示しており、これは(c)
の場合に相当する。
「枝」のセルの数の判定の結果(a)または(d)の場
合でも、分岐節のビットを見て、これがオフ状態のとき
は(a)の場合、オン状態のときは(d)の場合である
ことがbかる。
この判定結果により、第19図の石類分類回路50は、
対応する処理回路521〜524に処理指令を発する。
以下順に、各処理回路における処理内容について述べる
なお、第19図の信号線55は、左傾処理回路51との
連絡用信号線、56.57はそれぞれスタックA、Hに
対する読出し書込み信号線、58は論理代数式メモリ1
5に対する書込み信号線である。
まず(a)の場合、(処理圏11521での処理)それ
までに完成している部分論理式の後に、「・」 (論理
積のマーク)を追加し、さらにその後に処理中の「枝」
のセルに対応する接点の名前を追加する。このとき、対
応する接点がブレーク接点であったならば、接点名の前
に「/」(論理否定の記号)をつける、また、接点でな
く出力コイルであるならば、r=」 (代入記号)に続
けて出力コイル名を付加する。
これで(a)の処理は終りである。なお、以下の各処理
においても、接点名を追加する処理が何回か出てくるが
、このときも上と同様に、ブレーク接点および出力コイ
ルであったならば対応する処理を行なうものとする。
次に(b)の場合、(処理回路522での処理)これは
、分岐節のセルの最初の「枝」のセルについてであり、
新らしいブロックの開始を意味する。そこでスタックA
にこのブロックの情報エリアを確保するとともに、その
情報を整える必要がある。具体的には、スタック八〇に
、現在の「節」のセルのポインタを入れ、スタックA2
.A3には「0」を入れる。スタックA2には本来結合
節のセルのポインタを入れるべきであるが、これは現在
未定であるので、仮にrO」を入れておく。スタックA
3はそのブロックの処理状況を記憶するためのものであ
るが、これは具体的には、このブロックの分岐節のセル
において一番下の「枝」のセルに達したか否かを記憶す
る1ビツトのフラグである。最初はここを「0」にして
おく。
それから、現在組立中の部分論理式に「・」を追加し、
その後処理中の部分論理式全体をスタックBに退避する
次に、現在の「枝」のセルに対応する接点名をとってき
て、これを新らしく部分論理式の核にする。
最後に、処理の終った「枝」のセルを「右傾」からはず
し、「右傾」をつめる。
三番目に(c)の場合。(処理回路523での処理) これは、分岐節のセルの中間の「枝」のセルの処理であ
る。後に述べるように、この状態の分岐節のセルの処理
に入るのは、その前にその分岐節のセルとペアをなす結
合節のセルにおける処理を行なった結果に因る。その結
合節のセルに到るまでは、現在の「枝」のセルより上方
の各「枝」のセルに対する処理を行なっているわけで、
結合節のセルに対する処理を行なっているわけで、結合
節のセルに到るまでに組立てられた部分論理式は、結合
節のセルにおける処理ですでにスタックBに退避してい
る。
そこで、この分岐節のセルでは、まず現在の「枝」のセ
ルに対応する節点名をとってきて、これを新らしく部分
論理式の核にした後、処理の終った「枝」のセルを「右
傾」からはずし、「右傾」をつめればよい。
最後に(d)の場合。(処理回路524での処理)これ
は(C)の状況と似ているが、この時は(c)の処理に
加えて、分岐節のセルの「右傾」の一番下の「枝」のセ
ルに達した印に、スタックA3の先頭を「0」から「1
」に変える。
以上が石類処理回路40の処理内容である。
次に、現在の「枝」のセルの他の端をたどり、この「枝
」のセルに接続するもう一つの1節」のセルをもとめ、
この「節」のセルの「左部」の処理に入る。
第21図は、主鎖処理回路41の具体的構成の一例であ
る。第19図の石類処理回路40とほぼ同様な構成で6
0は主鎖分類回路、611〜613は左傾の各分類に応
じた各処理回路である。
また53および55〜58は信号線で、第19図と同様
である。
「左傾」の場合も、「右傾」の場合と同様に、その「枝
」のセルのつながる位置により、第22図のように分類
することができる。第20図と同様、太い実線が現在注
目している「枝」のセルを示す。
どの分類の「枝」のセルであるかについての判定も、「
右傾」の場合と同様で、「左傾」につながる「枝」のセ
ルの数と、「節」のセルに別途設けた結合節ビットを用
いて行なう。
以下順に各処理回路611〜613の処理内容について
説明する。
まず第22図(a)の場合。
この時、必要な処理はすでに前述の「右傾」側で終って
いる。(第20図(a)に対する処理)残るは、このr
枝」のセルをr主鎖」からはずし、消去することぐらい
であるが、この処かは絶対必要な処理ではない。したが
って、この場合、対応する処理部は不要である。
次に第22図(b)の場合。(処理回路611での処理
) この時、第20図の(b)の場合と同様に、まず現在の
1節」のセルの結合節ビットをオン状態にする。次に、
スタックA2の先頭の値を調べる。
この値が10」であるか否かにより、次に続く処理が分
かれる。これは以下の理由による。
同じく結合節のセルの一番上の「枝」のセルであっても
、第23図に示すように、相対する分岐節のセルとの関
係により、二種類に分類することができる。同図(a)
は、分岐節のセルにおいても結合節のセルにおいても、
接続する「枝」のセルが一番上のものである場合である
。(この場合、分岐節のセル、結合節のセルに接続する
「枝」のセルが同一のものである必要はない。両者を結
ぶ複合した「枝」のセルを単一の枝として見たてた場合
に成り立っていればよい、以下同様。)第23図(b)
は、結合節のセルでは一番上の「枝」のセルであるが、
対応する分岐節のセルでは中間の「枝」のセルとなって
いる場合である。両者の場合につい°てスタックA2の
先頭の値を見ると、第23図(a)の場合はまだ未完成
の状態で、ここにはrQJが入っている。そこで、ここ
をrQJから現在の1節」のセルのポインタの値にかえ
る。
第23図(b)の場合は、スタックA2の先頭の値はす
でに「0」でなく、現在処理中の「枝」のセルよりも上
方の「枝」のセルの結合節のセルのポインタが入ってい
るはずである。ところが、現在処理中の「枝」のセルは
結合節のセルの一番上の「枝」のセルである。つまり、
第23図(b)で分岐節のセルを出発した時は、とりあ
えず3本以上のr枝」のセルを持つブロックの中間の「
枝」のセルとして出発したところが、現在の結合節のセ
ルに達した時点で、この「枝」のセルは別のブロック(
現在処理中のブロックの入れ子となるブロック)の一番
上の「枝」のセルでなければならないことがわかったこ
とになる。そこで、この時の処理は次のとおりとなる。
新らしいブロックと前のブロックの分岐節のセルは同じ
ものである。そこで、スタックA1にその先頭と同じも
のを再度式れる。(分岐節のセールのポインタ)スタッ
クA2には、現在の結合節のセルのポインタを入れる。
またスタックA3には「0」を入れる。
スタックAに関する上記諸処理が終った後、さらに次の
処理を行なう。
まず現在の部分論理式に「+」(論理和の記号)を追加
して、これをスタックBに退避する。次に現在の「枝」
のセルを「主鎖」からはずし、「主鎖」を短縮する。そ
して、スタックA工の先頭の値によって指される「節」
のセルを次に処理する1節」のセルとする。(ただし、
スタックA工のレベルはそのままに保つ。) 第三に第22図(c)の場合。(処理回路612での処
理) この場合も第22図(b)の時と同様に、相対する分岐
節のセル、および分岐節のセルと結合節のセルを結ぶ枝
の配置により、第24図のように分類することができる
。同図(a)は、現在処理中の「枝」のセルが、分岐節
のセルでも結合節のセルでも単純に中間の「枝」のセル
である場合である。
第24図(Q)は、相対する分岐節のセルにおいては、
現在処理中の「技」のセルが一番下の枝になっている場
合である。(この時スタックA3の先頭は「1」になっ
ている。) 第24図(d)は、第24図(c)と同じく相対する分
岐節のセルでは一番下の「枝」のセルになっている場合
であるが、この場合、この結合節のセルと分岐節のセル
により構成されるブロックとそれに先行する「枝」のセ
ルをひとまとめにして単一の「枝」のセルとして見た場
合、一番上の「枝」のセルになる場合である。これに対
し、第24図(c)の場合は、まとめて見た結果が中間
の「枝」のセルとなっている場合である。
第24図(c)、(d)の場合、現在の結合節のセルと
相対する分岐節のセルからなるブロックの一番下の「枝
」のセルをとおってその結合節のセルへまで達したわけ
であるから、このブロックの終結処理を行なう必要があ
る。このような場合の検出はスタックA3の先頭を見る
ことにより行なうことができる。第24図(C)、(d
)のような場合、相対する分岐節のセルでは一番下の「
枝」のセルになっているからスタックA3の先頭を「1
」にしである。
なお、第24図(d)のような形は、単に一重のブロッ
クの場合だけでなく、第25図のように、ブロックが二
重またはそれ以上の入れ子になっていて、各ブロックの
終結処理がベンディング状態になっている場合もある。
そこで第23図(0)の場合には、最初にスタックA、
の先頭を見て、これが「1」であり、かつスタックA2
の先頭が現在の結合節のセルのポインタに等しい時、次
の処理を行なう。(この条件がなりたたなければ、以下
の処理はスキップする。) まずスタックBの先頭の部分論理式をとり出しこの後に
現在処理中の部分論理式を接続する。このときスタック
Bの先頭は「X+」となっているはずで(「X」は、こ
のブロック内でそれまでに形成された部分論理式)、現
在の部分論理式を「Y」とすると、上記の処理の結果、
rX+YJとなる。さらにこの両端をカッコでくくる。
そして再度スタックBの先頭の部分論理式(このときは
、これは「Z・」という形になっているはず。)をとり
出し、上記で得られた部分論理式の前につける。この結
果は、「Z・ (X+Y)Jという形になる。
これで一つのブロックの処理が終る。そこでスタックA
ug A2B A3の中身をとり出して捨て、再度スタ
ックA3の先頭を見る。これが再び「1」ならば、上記
のブロック終結処理をくり返す。
「1」でなければ終り、以下の処理へ進む。
上記の処理を行なった場合、結果は第24図(a)の形
に集約するか(つまり、終結処理を行なったブロックを
まとめて一つの「枝」のセルと見たときに、第24図(
a)の形になっている。以下同様)、または、第24図
(b)の形になる。もちろん上記のブロック終結処理を
行なわなかった場合、すなわち、相対する分岐節のセル
につながる「枝」のセルが中間の「枝」のセルの場合は
、当然第24図(a)の形である。
上記二種類の場合で、それぞれ処理が次のように分れる
。第24図(a)の形の時は、スタックBの先頭に入っ
ている第24図(a)の一番上のr枝」のセルに相当す
る部分論理式をとり出し、現在の部分論理式をその後に
つける。この時、スタックBの先頭は「X+」の形にな
っているはずで、現在の部分論理式「Y」と合わせると
rX+YJの形になる。
第23図(a)の場合、スタックA2の先頭が「0」と
なっているので、これを現在の結合節のセルのポインタ
に変える。なお、第24図(b)の場合も、第23図(
a)の場合と同様な状況にあり、処理も同じである。
以上の処理がすべて終了した後、第22図(b)におけ
る処理と同様に、まず現在の部分論理式の後に「+」を
追加して、これをスタックBに退避する0次に現在の「
枝」のセルを「左傾」からはずし、「左傾」を短縮する
。そして、スタックA1の先頭に出ている値を、次に処
理する節のセルのポインタとする。
以上で第22図(c)の処理が終る。
最後は第22図(d)の処理の場合である。(処理回路
613での処理) これは結合節における最下段の枝であるから、ブロック
の終結処理が必要である。
まずスタックBの先頭(これはrX+IJの形)と、現
在の部分論理式(これは「Y」)とをつないで1両者を
カッコでくくる。(r (x+y) Jの形になる。) 第22図(d)の場合も第22図(c)の場合と同様に
、例えば第26図のようにブロックが多重化していて、
その終結処理が未決になっている場合があり、その場合
は可能な限りのブロックの終結処理を行なう必要がある
これを調べるに際し、まずスタックA3の先頭を吟味す
る。これが「0」である時、このブロックは第27図(
a)のようになっており、分岐節のセル側では最下段の
「枝」のセルになっていない。
そこでブロック終結処理はこれで終りである。ただし、
第27図(a)のように、このブロックをまとめて一つ
の枝と見たてた時、分岐節のセルに対する最上段の「枝
」のセルとなっているならば、すなわち第20図(b)
の形に帰すならば、このまとめたブロックの外側のブロ
ックの開始の状態にある。そこで、現在スタックAに入
っている終結処理をしたブロックの情報を捨て、新らし
いブロックの情報をスタックAに入れればよい、しかし
、スタックA1に入っている値は、古いブロックの分岐
節のセルのポインタであるが、これは新らしいブロック
の分岐節のセルのポインタと同じであるので、これは変
えなくてよい、またスタックA3は、初めの判定条件の
結果により「0」であるので、これもこのままでよい、
したがってスタックA2の先頭だけを「O」に変えるの
みで終りである。
第27図(a)のような状況の検知は、次のようにすれ
ばできる。まずスタックAに入っているデータの数を調
べ、これが1組しかなければ、いい換えれば上記の終結
処理をしたブロックの情報しかなければ第27図(a)
の状態にある。スタックAのデータの数が2組以上ある
ならば、スタックA1の先頭の二つを比較し、それが等
しければ第27図(Q)のような状態にあり、等しくな
ければ第27図(b)のような状態にある。第27図(
b)の状態はやはり開始処理をすべき形である。
以上がスタックA、の先頭が「O」であった時の処理で
ある。このときは、これで第22図(d)の処理も終り
である。
スタックA3の先頭がrQJでない時は、上述した処理
は行なわず、次に、スタックAのデータの数を調べる。
これが1組のみ、すなわち最初で終結処理したブロック
の情報しか入っていなければ、この時は第28図のよう
な形である。この時は、スタックAの中身をとり出して
捨て、またスタックBの先頭(「z・」の形、これしか
入っていないはず、)と、現在の部分論理式(rX+Y
Jの形)とをつなぎ(rz・ (X+Y)Jとなる)(
4)の処理を終える。
スタックAのデータの数が2組以上の時は、次にスタッ
クA1の先頭の二つの値を比較する0両者が等しい時、
これは終結処理をしたブロックとその外側のブロックの
分岐節のセルが同一であることを意味する。以前の吟味
ですでにスタックA3の先頭は「1」、すなわちこのブ
ロックの分岐節のセルの最下段の「枝」のセルの処理で
あることがわかっているから、第27図(c)の形では
なく第29図の形である。
この終結処理をしたブロックをまとめて1本と見たてれ
ば、これはその外側のブロックの分岐節のセルの最下段
の「枝」のセルになっていることがわかる。そこで処理
としては、終結処理したブロックの情報をスタックAか
らとり出して捨てるとともに、スタックA3の先頭を「
0」からrlJに変えることである。これで第29図の
場合の処理を終わるとともに、第22図(d)の処理も
終わる。
以上どの判定条件にも合致しない時、結線構造は部分的
に見て第28図の形になっている場合にあたる、この時
、上述した第28図の形に対すると同様な処理、すなわ
ちスタックAの先頭をとり出して捨て、スタックBの先
頭([Z・」の形)と、現在の部分論理式(r (X+
Y)Jの形)とをつなぐ、(「Z・ (X+Y)Jとな
る。)この後スタックA2の先頭と、現在の結合節のセ
ルのポインタの値を比べ、等しければ第22図(d)の
処理の先頭にもとづいて、新らしいブロックについて再
度同じ処理を行なう、これは第26図のように、結線す
べきブロックが二重またはそれ以上になっている場合で
ある。
以上が、主鎖処理回路41の処理内容である。
この後、主鎖の終了通知を右傾処理回路40に送り、再
び左鎖の処理に入る。
以上が、第9図の論理代数式への変換部22の詳細な構
成および処理内容の説明である。
次に論理代数式への変換部22による処理例を第30図
に示す、同図(a)は、変換前のりレージ−ケンス図の
結線構造で、(b)はその変換過程、(Q)は変換結果
である。第30図(b)の「$」は変換処理の最初も、
中間の処理と同様に行なえるように仮に設けた部分論理
式の核である。変換終了後棄却する。第30図(b)で
、スタックA、Bとも左端がスタックの先頭である。ま
たP A tPHはそれぞれスタックA、Bのスタック
ポインタである。
なお第30図(b)の変換過程の例からも一部わかるが
、対象となるリレーシーケンス図が複雑であると、変換
処理を進めて行くうちに、だんだん長い部分論理式をス
タックBに入れたり出したりしなければならないように
なってくる。実際の処理ではこれは相当の手数となる。
そこで、部分論理式を論理代数式メモリ15上のある場
所に一旦作成したら、そこを動かさないようにし、実際
の部分論理式をスタックBに出し入れする代りに、部分
論理式の先頭と最後の要素のポインタを出し入れするよ
うにすれば、スタックBに関する処理の手数はいつでも
同じとなり、部分論理式が長くなっても変らないように
なる。さらに部分論理式自体をポインタを用いた構造、
すなわちポインタによる鎖で結ばれたリスト構造にすれ
ば、実際の部分論理式の移動処理は不要となり、ポイン
タ操作だけで処理を行なえるようになる。この例を、第
31図に示す、これは第30図の例をリスト構造で表現
した例である。
この例の場合、論理的にはこれで変換された完全な論理
式が得られたと言えるが、場合によってはこれを文字表
現に変換する必要もあろう。第31図のように、変換の
結果得られた論理式はリスト構造と言っても単一の鎖で
あるから、先頭からたどって行けば簡単に文字表現に変
換することができる。また、第31図の論理式から、S
cの機械語を得ることも可能である。
なお、前にも述べたが、途中の論理代数式への変換を省
略して、置部SCの機械命令に変換するアルゴリズムを
考えることも可能である。これは上記の結線構造データ
からの変換過程で、部分論理式を生成して行く代りに、
SC機械命令の部分列を次々に作成していくようにすれ
ばよい。または、高級言語のコンパイラで行なわれてい
るように、上記の部分論理式の代りに、第32図のよう
な木構造を作成し、木構造が完成した後、これをSCの
機械命令列に変換するようにすることも可能である。
上記の二つの変換処理、リレーシーケンス図から結線構
造データへの変換および結線構造データから論理代数式
への変換の説明では、最初に与えられたりレージ−ケン
ス図がすべて正当なものであるとして説明を進めてきた
。しかし、変換の入力となるリレーシーケンス図は、人
間がCRT画面上に描写するものであるから、多くの場
合エラーが伴なう、上記の変換処理の過程で、要所要所
でチエツクポイントを設ければ、この入力エラーの検出
を行なうことができる。
例えば、入力されたりレージ−ケンス図に尻切れの枝が
ある場合がある。このエラーは前述したように、結線構
造抽出部において検出することができる。これは既に説
明したように、第14図(へ)の場合に相当する。
また、例えば第33図(a)に示すようなりレージ−ケ
ンス図がある。このリレーシーケンス図は、リレー回路
として見た場合、正当なもので、正常に機能を果し得る
。しかし、このリレーシーケンス図と同等な機能を果す
論理代数式(第33図(C))は作り得るが、このリレ
ーシーケンス図に直接対応するような論理代数式は存在
しない。したがって、そのようなSCの機械命令列も存
在しない、このようなりレージ−ケンス図は、その殆ん
どが操作者の入力誤りによるものなので、勝手な形の機
能的にのみ等価な論理代数式に変換してしまうよりは、
エラーとして検出するほうがよい。
第33図(、)のりレージ−ケンス図は、一対の分岐節
のセルと結合節のセルからなるブロックの重なりが、入
れ子構造になっていない1通常、論理代数式に変換可能
なりレージ−ケンス図では、論理代数式の一対のカッコ
で囲まれた部分に対応する部分、すなわち一対の分岐節
のセルと結合節のセルで囲まれたブロックが多重に重な
る時、論理代数式の場合と同様に、大きいものから順繰
りに、つまり外側のものから内側のものへと順番に、内
側へ内側へと含む入れ子構造になっている必要がある。
第33図(a)のエラーは、論理代数式への変換部にお
ける処理過程で、要所要所でスタックAの内容と、その
ときの1節」と「枝」のセルのつながりとの間に矛盾が
ないかをチエツクするようにすれば検出可能である。第
33図(a)のりレージ−ケンス図の結線構造は第33
図(b)のようであるが、例えばN2の分岐節のセルの
処理をした後、N3の結合節のセルの処理に移る場合を
考える。「枝」のセルX4は分岐節のセルN2の一番上
の枝であるから、分岐節のセルN2ではブロックの開始
処理を行ない、スタックA1には、分岐節のセルN2の
ポインタを入れ、スタックA2.A。
には「0」を入れる0次に結合節のセルN3に移ると、
「枝」のセルX4は結合節のセルN3の一番下の「枝」
のセルであるから、ブロックの終結処理姿する必要があ
る。終結処理をするようなブロックは、すでに確定して
いるはずで、その場合スタックA2には、以前の処理に
よりこの結合節のセルがポインタが入っていなければな
らない。
ところが、前述したようにスタックA2の先頭には「0
」が入っている。そこで、このような状況の検出は、結
合節のセルの一番下の枝の処理を行なう時、スタックA
2の先頭と結合節のセルのポインタの値を比較すること
により検出できることがわかる。
これは、−例で、他にも結合節のセルの各処理で、スタ
ックAの先頭とその時の1節」のセルと「枝」のセルの
つながり具合をチエツクすることにより、構造的なエラ
ーを検出することができる。
以上で、リレーシーケンス図変換装置14の説明を終わ
る。この後機械語変換装置16により、SCの機械語に
変換され、機械語によるシーケンスプログラムとしてS
Cの記憶部2に書込まれる。
次に、第8図のりレージ−ケンス図再生装置18につい
て説明する。
第34図はその構成である。70は、論理代数式走査判
定回路で、論理代数式メモリ15上既に形成されている
論理代数式を頭から順に走査し、現われてくる論理代数
式の記号要素(r(J。
「+」、「)」など)に応じて、必要な処理の実行を、
各処理回路711〜716の一つに対し命令する。72
.73はスタック形式の一時記憶メモリである。これを
以下それぞれスタックS。
スタックTと呼ぶことにする。
スタックSは、論理代数式における一対の「(」、「)
」で囲まれた部分に対応するりレージ−ケンス図の部分
(前述したようにこれをブロックと呼ぶ、)の情報を、
一時退避するためのものである。具体的には、1ブロツ
クのリケーシーケンス図の上下左右の縁に相当する部分
の座標を保持する。これをそれぞれ部分に分けて、第3
5図に示すように、ブロックの上縁のX座標を保持する
スタックをSTY、下縁のX座標を保持するスタックを
SBY、左端のX座標を保持するスタックをSLX、右
端のX座標を保持するスタックをSRXと名づける。ス
タックTは、スタックSにに準じて、1ブロツクのりレ
ージ−ケンス図のすべての横枝の右端の点の座標を保持
するのに用いる。
再生出力を表示するCRT画面にわりあてる座標系は、
次のようなものであるとする。
CRT画面の左上隅を原点とし、格子点(縦波、横枝が
交わる位置にある点)ごとに座標を割り当てる。水平方
向をY軸、垂直方向をY軸とし、その向きは、Y軸が左
から右へ増加し、Y軸は上から下へ増加するようになる
第34図の74は、現在処理中の格子点の座標を保持す
るレジスタで、これをGNPと名づける。
また、741および742はその構成部分で、GNPの
X座標、およびX座標の値を保持する。
またこれらをそれぞれCNPX、CNPYと名づける。
なお、その格子点から右側へ伸びる枝も同一のGNPで
指示されるものとする。
論理代数式走査判定回路70は、論理代数式メモリ15
を順に走査し、現われてくる記号要素に応じて、処理回
路711〜716の一つに対し、その記号に応じた処理
の実行指令を発する。これらの処理を以下、箇条書きに
して説明する。
論理代数式を左から右へ順に調べていき、(1)接点名
なら、 GNPの位置に出力する。(処理回路 (ii)  ただし、接点名の前に、 (イ)r/J(論理否定の記号)がついてい(ロ)r=
J(代入記号)がついていたら、現在のGNPの位置か
ら枝を延長して、(−0−)を右端によって出力する。
「=」のときは、これで一つの論理代数式の処理を終わ
る。そして、統轄制御11に対して、終了通知を行なう
、(処理回路713) (iii)  その後、CNPXの値を1増す、(処理
回路711) (2)r・」 (論理積の記号)の場合、何もしないで
次へ進む。
(3)r(Jなら、新らしいブロックの開始を意味する
から、 (i)  スタックSLX、SRXにCNPXの値を、
スタックSTY、SBYにCNPYの値をそれぞれ入れ
る。
(n)  スタックTに適当な区切り記号(例えば、こ
の処理で扱える最大の値)を入れる。
(処理回路714) (4)  r+」 (論理和の記号)の場合、(i) 
 スタックSRXの先頭とCNPXの値を比べ、大きい
方をSRXにもどす。
(ブロックの右端の更新) (…)  GNP (GNPX、CNPY)の値を、ス
タックTに入れる。
(m) スタックSLXの先頭をCNPXに入れる。(
スタックSLXの先頭はそのまま)(iv)  スタッ
クSBYの先頭をとり出して、これに1を加え、CNP
Yに入れるとともに、スタックSBYにもどす。
(処理回路715) (5)M」ならば、これは1ブロツクの終了を意味し、
まず、 (i)  スタックSRXの先頭とCNPXを比べ、そ
の最大値をもとめる。
(ii)  (i)でもとめた最大値は、そのブロック
に含まれる各横枝のうち、最大の長さを持つ枝の右端の
点のX座標である。一方、各横枝の右端の座標の値はす
べてスタックTに入っているので、これらをもとにして
、短かい枝についてはその右端の点から横棒(□)を延
長して、各横枝の長さをそろえる。
(正)スタックSLX、SRX、STY。
SBYから、その先頭の値をすべて取り出し、それらを
もとにして、そのブロックの左端および右端を縦線で結
ぶ。ただし最下端のX座標は、SBYの先頭の値ではな
くCNPYを用いる。
(tv)  XタックS (SLX、SRX、STY。
5BY)が空でない時、スタックSBYの先頭とCNP
Yの値(このブロックの最下端のX座標)を比べ、大き
い方をスタックSBYにもどす。
(V)  最後に、CNPXの値を(i)でもとめた最
大値に、CNPYの値は(宙)までSTYの先頭にあっ
た値を入れる。(処理回路なお、リレーシーケンス図は
、原点から作り始める。すなわち、最初GNPを原点に
置く。また画面両端の電源母線、接地線はこの処理の前
か後に描けばよい。
この変換による処理例を、第36図に示す。第36図(
a)が、変換のもとどなる論理代数式(b)はその変換
過程、(c)は変換結果である。また、変換の過程で作
成されてゆくリレーシーケンス図の様子を第37図に示
す、同図の部分図の番号は、第36図(b)の変換過程
における番号と対応させている。なお、第36図で、P
SePTはそれぞれスタックS、Tのスタックポインタ
を示す。またスタックT内に書いである「#」記号は、
区切り記号を示す、スタックS、Tはともに、最左側を
スタックの先頭とする。
この実施例におけるリレーシーケンス図再生装置では、
リレーシーケンス図を各接点パターンが上方および左方
によるように出力している。
「(」、「)」等における処理を変えれば他の形、例え
ば右下りのりレージ−ケンス図などを出力することも可
能である。
エラーチエツクについては、リレーシーケンス図を展開
するためのデイスプレィ画面が通常有限であることから
、その範囲を越えないようにチエツクすることがまず必
要である。これは、CNPX、CNPYを増加させる部
分で、推定範囲を越えていないかチエツクするようにす
ればよIwN。
論理代数式の正当性のチエツクも必要である。
論理演算記号の順序、左右のカッコの個数等のチエツク
などを行なうとよい。
なお、SCのメモリに書込まれたプログラムが常に本発
明によりプログラム入力装置から入力されたものであれ
ば、SCのメモリに書込まれた時点で、リレーシーケン
ス図からの変換処理によりエラーチエツクは終っている
。したがって、SCのメモリから取出して、リレーシー
ケンス図にもどすときには、上記のエラーチエツクは不
必要である。
論理代数式において、−蓄量後に実行される演算が論理
和のとき、通常それに対して式の両側をr(」、「)」
で囲むことはしない(第38(a)参照)が、本アルゴ
リズムでは、論理和の演算記号「+」は必ずその両側を
一対の「(」。
「)」で囲まれている必要がある。(第38図(b))
ただし、第38図(a)のようなものが与えられたとき
、第38図(b)の形に変換するのは容易であるし、ま
た変換せずに、「+」記号が出てきた時点で同様な対策
を講じてもよい。
同様な問題は、前記のりレージ−ケンス図から論理代数
式への変換処理の場合もありえる。つまり第38図(c
)のようなりレージ−ケンス図が与えられた時、同図(
b)のような論理代数式が得られる。このような場合も
、最外側のカッコを取り払うようにするのは容易である
なお、本発明の入力装置を用いれば単にCRTデイスプ
レィの表示のためだけでなくSCのメモリ内容をリレー
シーケンス図形式で印字する場合とか、逆に、図面認識
装置で読取ったりレージ−ケンス図のデータをSCの機
械命令列に変換することもできる。
[発明の効果コ 以上説明したように、本発明によるシーケンスプログラ
ム入力装置を用いれば、作成済のSCの機械命令列の順
序に制約されることなしに、デイスプレィ画面上でリレ
ーシーケンス図形式で、自由にシーケンスプログラムの
修正、編集を行なうことができる。
【図面の簡単な説明】
第1図はSCの一般的構成を示すブロック図、第2図は
りレージ−ケンス図、第3図は従来のシーケンスプログ
ラム入力装置の構成ブロック図、第4図は命令セットの
一例を示す図、第5図は所定の順序で入力されるシーケ
ンスプログラムのりレージ−ケンス図、第6図〜第38
図はいずれも本発明によるシーケンスプログラム入力装
置の実施例に関するもので、第6図は操作キーの一例の
構成図、第7図は作成されたりレージ−ケンス図、第8
図はシーケンスプログラム入力装置の一実施例の構成ブ
ロック図、第9図は第8図のりレージ−ケンス図変換装
置の一例の構成ブロック図、第10図、第11図は第9
図の動作を説明するための説明図、第12図は第9図の
結線構造抽出部の一例の構成ブロック図、第13図〜第
16図は第12図の動作を説明するための説明図、第1
7図は第9図の論理代数式変換部の一例の構成ブロック
図、第18図は第17図のメモリの一例の構成図、第1
9図は第17図の石類処理回路の一例の構成ブロック図
、第20図は第19図の動作を説明する説明図、第21
図は第17図の左傾処理回λ 路の一例の構成ブロック図、第2−&−図〜第28図は
第21図の動作を説明する説明図、第29図〜第33図
は第17図の動作を説明する説明図、第34図は第8図
のりレージ−ケンス図再生装置の一例の構成ブロック図
、第35図は第34図のメモリの一例の構成図、第36
図〜第38図は第34図の動作を説明する説明図である
。 4・・・シーケンスプログラム入力装置、7・・・リフ
レッシュメモリ、10・・・表示部、14・・・リレー
シーケンス図変換装置、15・・・論理代数式メモリ、
16・・・機械語変換装置、17・・・論理代数式再生
装置、18・・・リレーシーケンス図再生装置。 隼  II!1 竿Z 目 v−3図 第 4 図 革 5 ロ 第 t 目 (ご鳥、ン (bン 箒 7!1 隼 9 目 qy  lo  区 (b) ×1 (C) 第 71  凹 竿 7J  T!! v−74芭 C二)  −−−i− 享 71− 凹 r ′LI        < J−>第 77  目 竿 13  口 竿   ノヲ  フD 竿zo凹 半21 口 早220 第23Σ 第258 牢zg凹 竿29  目 (C) (X7・メ3+×2・(Xlt f×5) ) =γl
千 37 口 第 32 7!] (b) (C) XI・(X2・X6 tX3・X1t−X&−tX3−
xs) = ’rt3I)34T!] 竿358 (L) A、(/BすC・(10−pi〕 ・Fノ =γ(C) 第37図 (−1> (cL) AすB :γ (bン (A  t  B)=γ (C)

Claims (1)

  1. 【特許請求の範囲】 1、複数の装置記号とそれらを接続する複数の線記号と
    それらの装置記号に付された参照記号よりなるシーケン
    ス図により規定される制御を実行するための機械語命令
    列をシーケンスコントローラに与えるためのシーケンス
    プログラム入力装置であって、表示手段と修正すべき機
    械語命令列を解読して該機械語命令列に対応するシーケ
    ンス図を表示するためのデータを生成して該表示手段に
    送出する第1の手段と、表示されたシーケンス図につい
    て修正すべき記号の種別およびその位置を入力し、該表
    示手段により表示されたシーケンス図を修正する第2の
    手段と、修正後のシーケンス図に対応する機械語命令列
    を生成する第3の手段とを有するシーケンスプログラム
    入力装置。 2、該第3の手段は、該表示手段に表示されたシーケン
    ス図中の装置記号又は線記号の各々について、その種別
    に依存してあらかじめ定められた一つ又は複数の特定の
    隣接位置にある装置記号又は線記号を、それに接続され
    るべき記号として検出することにより装置記号間の接続
    関係を判別するものである第1項のシーケンスプログラ
    ム入力装置。 3、該第2の手段は該表示されたシーケンス図上で修正
    すべき記号の位置を指示することにより修正すべき記号
    の位置を入力する手段を有する第1項又は第2項のシー
    ケンスプログラム入力装置。 4、該第1の手段は、入力された機械語命令列から、そ
    れに対応する論理代数式を表わすデータを生成する手段
    と、該論理代数式を表わすデータからそれに対応するシ
    ーケンス図を構成するための記号の種別およびその位置
    を表わすデータを生成する手段とを有する第1項から第
    3項のいずれかのシーケンスプログラム入力装置。
JP62237141A 1987-09-24 1987-09-24 シーケンスプログラム入力装置 Expired - Lifetime JPH0652481B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP62237141A JPH0652481B2 (ja) 1987-09-24 1987-09-24 シーケンスプログラム入力装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP62237141A JPH0652481B2 (ja) 1987-09-24 1987-09-24 シーケンスプログラム入力装置

Related Parent Applications (1)

Application Number Title Priority Date Filing Date
JP4306579A Division JPS55135908A (en) 1979-04-11 1979-04-11 Sequence program input device

Publications (2)

Publication Number Publication Date
JPS63100504A true JPS63100504A (ja) 1988-05-02
JPH0652481B2 JPH0652481B2 (ja) 1994-07-06

Family

ID=17011013

Family Applications (1)

Application Number Title Priority Date Filing Date
JP62237141A Expired - Lifetime JPH0652481B2 (ja) 1987-09-24 1987-09-24 シーケンスプログラム入力装置

Country Status (1)

Country Link
JP (1) JPH0652481B2 (ja)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5323308A (en) * 1990-03-24 1994-06-21 Toyota Jidosha Kabushiki Kaisha Programmable control system
US5406473A (en) * 1990-03-24 1995-04-11 Toyota Jidosha Kabushiki Kaisha Programmable controller
US7484203B2 (en) 2005-03-21 2009-01-27 International Business Machines Corporation Automated interaction diagram generation using source code breakpoints

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS4826446A (ja) * 1971-08-11 1973-04-07
JPS505782A (ja) * 1973-05-22 1975-01-21
JPS52119787A (en) * 1976-04-02 1977-10-07 Hitachi Ltd Electronic type sequence control system
JPS5332033A (en) * 1976-09-06 1978-03-25 Sanyo Electric Co Ltd Talkie slide device

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS4826446A (ja) * 1971-08-11 1973-04-07
JPS505782A (ja) * 1973-05-22 1975-01-21
JPS52119787A (en) * 1976-04-02 1977-10-07 Hitachi Ltd Electronic type sequence control system
JPS5332033A (en) * 1976-09-06 1978-03-25 Sanyo Electric Co Ltd Talkie slide device

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5323308A (en) * 1990-03-24 1994-06-21 Toyota Jidosha Kabushiki Kaisha Programmable control system
US5406473A (en) * 1990-03-24 1995-04-11 Toyota Jidosha Kabushiki Kaisha Programmable controller
US7484203B2 (en) 2005-03-21 2009-01-27 International Business Machines Corporation Automated interaction diagram generation using source code breakpoints
US7971189B2 (en) 2005-03-21 2011-06-28 International Business Machines Corporation Automated interaction diagram generation using source code breakpoints

Also Published As

Publication number Publication date
JPH0652481B2 (ja) 1994-07-06

Similar Documents

Publication Publication Date Title
JPS6365965B2 (ja)
KR100352570B1 (ko) 프로그램된컴퓨터를사용하여구조적프로그램을자동생성하는순서도를작성하는방법및장치
JPH02109127A (ja) 仕様処理方法
JPH05135121A (ja) ダイアグラム認識システム
CN106648608A (zh) 一种灵活方便的流程图构建方法
CN111462272A (zh) 一种计算机联锁站场数据组态方法、控制系统
JPS63100504A (ja) シーケンスプログラム入力装置
JP3147045B2 (ja) Lsiレイアウトのセル階層検証方法およびその装置
JPH08329004A (ja) アプリケーション・プログラム使用の端末操作性向上方法
US20050212768A1 (en) Graphic object designating apparatus, graphic object designating method, and graphic object designating program
JPS6320529A (ja) 知識獲得方式
JP2007272809A (ja) エディタプログラム、該エディタプログラムを記録したコンピュータ読取可能な記録媒体、及び該エディタプログラムを用いた機器操作支援システム
JPH01126717A (ja) 線図形入力装置および線図形入力方法
JPH06274333A (ja) プログラムの入力支援方法および編集支援方法
CN112419357B (zh) 一种生成图像实体轮廓一笔画路径的方法及系统
JP7120937B2 (ja) 図面の差分認識装置及び方法
JP4857168B2 (ja) セルコンセプトを用いた設計方法、図面作成装置、プログラム、および記録媒体
JPS62106542A (ja) 制御フロ−作成方式
JPS6152778A (ja) 画像編集装置
JP3602416B2 (ja) プログラムテキスト自動作成装置及び自動作成方法
JPH07129080A (ja) Sfc入力方式
JPH0934933A (ja) 部品レイアウト装置
JPS62145424A (ja) プログラム管理方法
JP4676995B2 (ja) 設計支援プログラム、該プログラムを記録した記録媒体、設計支援装置、および設計支援方法
JPH0724022B2 (ja) プログラム言語変換方法