JPH0830971B2 - プログラマブルコントローラ - Google Patents
プログラマブルコントローラInfo
- Publication number
- JPH0830971B2 JPH0830971B2 JP59058056A JP5805684A JPH0830971B2 JP H0830971 B2 JPH0830971 B2 JP H0830971B2 JP 59058056 A JP59058056 A JP 59058056A JP 5805684 A JP5805684 A JP 5805684A JP H0830971 B2 JPH0830971 B2 JP H0830971B2
- Authority
- JP
- Japan
- Prior art keywords
- address
- instruction
- jump
- sequence
- output
- 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
Links
- 238000000034 method Methods 0.000 claims description 11
- 230000009191 jumping Effects 0.000 claims description 6
- 101100328887 Caenorhabditis elegans col-34 gene Proteins 0.000 description 24
- 238000010586 diagram Methods 0.000 description 5
- 101100524645 Toxoplasma gondii ROM5 gene Proteins 0.000 description 4
- 230000005540 biological transmission Effects 0.000 description 3
- 230000000694 effects Effects 0.000 description 2
- 239000013256 coordination polymer Substances 0.000 description 1
- 230000006870 function Effects 0.000 description 1
- 230000002093 peripheral effect Effects 0.000 description 1
- 238000003672 processing method Methods 0.000 description 1
Classifications
-
- G—PHYSICS
- G05—CONTROLLING; REGULATING
- G05B—CONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
- G05B19/00—Programme-control systems
- G05B19/02—Programme-control systems electric
- G05B19/04—Programme control other than numerical control, i.e. in sequence controllers or logic controllers
- G05B19/05—Programmable logic controllers, e.g. simulating logic interconnections of signals according to ladder diagrams or function charts
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/30145—Instruction analysis, e.g. decoding, instruction word fields
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/32—Address formation of the next instruction, e.g. by incrementing the instruction counter
- G06F9/322—Address formation of the next instruction, e.g. by incrementing the instruction counter for non-sequential address
-
- G—PHYSICS
- G05—CONTROLLING; REGULATING
- G05B—CONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
- G05B2219/00—Program-control systems
- G05B2219/10—Plc systems
- G05B2219/13—Plc programming
- G05B2219/13083—Jumps
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- Automation & Control Theory (AREA)
- Programmable Controllers (AREA)
Description
【発明の詳細な説明】 〔発明の利用分野〕 本発明はプログラマブルコントローラ、すなわちプロ
グラム可能なシーケンスコントローラに関する。
グラム可能なシーケンスコントローラに関する。
〔発明の背景〕 プログラマブルコントローラは、使用者により記憶部
(RAM)に書き込まれたシーケンスプログラムに基づい
て、演算処理部(CPU)で入力情報を演算処理し、その
結果により出力側に接続された機器を選択的に動作させ
て、プログラム通りのシーケンス制御を実現する装置で
あり、プログラミングは使用者が扱いやすい言語、たと
えばLOAD(ロード)、AND(アンド)、OR(オア)等と
いったシーケンサ用言語で行なえるようになっている。
(RAM)に書き込まれたシーケンスプログラムに基づい
て、演算処理部(CPU)で入力情報を演算処理し、その
結果により出力側に接続された機器を選択的に動作させ
て、プログラム通りのシーケンス制御を実現する装置で
あり、プログラミングは使用者が扱いやすい言語、たと
えばLOAD(ロード)、AND(アンド)、OR(オア)等と
いったシーケンサ用言語で行なえるようになっている。
このようなシーケンサ用言語によるプログラムを演算
処理部(CPU)で実行させるための処理方式としては、
(1)疑似コード化されたプログラム内容をプログラム
の進行につれて遂一解読しながら、実行するインタプリ
タ方式と、(2)プログラム内容をあらかじめ機械語に
変換し、即実行可能とするコンパイラ方式とがあり、従
来のプログラマブルコントローラではそのいずれかの方
式が採用されていた。
処理部(CPU)で実行させるための処理方式としては、
(1)疑似コード化されたプログラム内容をプログラム
の進行につれて遂一解読しながら、実行するインタプリ
タ方式と、(2)プログラム内容をあらかじめ機械語に
変換し、即実行可能とするコンパイラ方式とがあり、従
来のプログラマブルコントローラではそのいずれかの方
式が採用されていた。
しかし、(1)の方式は命令解読に多大な時間を費や
し、演算処理速度が遅くなるという欠点があり、また、
(2)の方式は高速演算処理が可能な反面、ノイズ等の
外乱により変換後のプログラム内容が破壊された場合、
チェックの方法がないために演算処理部(CPU)が暴走
する恐れがある。
し、演算処理速度が遅くなるという欠点があり、また、
(2)の方式は高速演算処理が可能な反面、ノイズ等の
外乱により変換後のプログラム内容が破壊された場合、
チェックの方法がないために演算処理部(CPU)が暴走
する恐れがある。
これらの問題はプログラマブルコントローラの性能や
安全性に直接関わるため、解決が望まれていた。
安全性に直接関わるため、解決が望まれていた。
本発明の目的は、上記問題点を解決し、安全性が高
く、かつ高速演算処理が可能なプログラマブルコントロ
ーラを提供することにある。
く、かつ高速演算処理が可能なプログラマブルコントロ
ーラを提供することにある。
本発明は、複数のシーケンス命令の組合せからなるシ
ーケンスプログラムが記憶された第1の記憶部と、複数
のアドレスを有してこれらのうち第1のアドレスには飛
び先アドレスが上記各シーケンス命令の命令コードに従
って決定されるジャンプ命令が、第2のアドレスにはLO
AD命令と上記第1のアドレスにジャンプするジャンプ命
令が、第3のアドレスにはAND命令と上記第1のアドレ
スにジャンプするジャンプ命令が、第4のアドレスには
OR命令と上記第1のアドレスにジャンプするジャンプ命
令が、第5のアドレスにはOUT命令と上記第1のアドレ
スにジャンプするジャンプ命令がそれぞれ機械語で記憶
された第2の記憶部と、上記第2の記憶部から読み出さ
れた命令によりシーケンス演算処理を実行する演算処理
部と、上記第1の記憶部と上記演算処理部間および上記
第2の記憶部と上記演算処理部間に介在して上記演算処
理部から発する所定のアドレス信号を解読して上記第1
の記憶部から次に実行すべきシーケンス命令を出力さ
せ、その命令コードを飛び先アドレスとして上記演算処
理部に伝える命令伝送手段を備え、さらに、上記第2の
記憶部は未定義命令コードに対応する第6のアドレスと
エラー処理ルーチンが記憶された第7のアドレスを有
し、上記第6のアドレスには上記第7のアドレスにジャ
ンプするジャンプ命令が機械語で記憶されたことを特徴
とするプログラマブルコントローラである。
ーケンスプログラムが記憶された第1の記憶部と、複数
のアドレスを有してこれらのうち第1のアドレスには飛
び先アドレスが上記各シーケンス命令の命令コードに従
って決定されるジャンプ命令が、第2のアドレスにはLO
AD命令と上記第1のアドレスにジャンプするジャンプ命
令が、第3のアドレスにはAND命令と上記第1のアドレ
スにジャンプするジャンプ命令が、第4のアドレスには
OR命令と上記第1のアドレスにジャンプするジャンプ命
令が、第5のアドレスにはOUT命令と上記第1のアドレ
スにジャンプするジャンプ命令がそれぞれ機械語で記憶
された第2の記憶部と、上記第2の記憶部から読み出さ
れた命令によりシーケンス演算処理を実行する演算処理
部と、上記第1の記憶部と上記演算処理部間および上記
第2の記憶部と上記演算処理部間に介在して上記演算処
理部から発する所定のアドレス信号を解読して上記第1
の記憶部から次に実行すべきシーケンス命令を出力さ
せ、その命令コードを飛び先アドレスとして上記演算処
理部に伝える命令伝送手段を備え、さらに、上記第2の
記憶部は未定義命令コードに対応する第6のアドレスと
エラー処理ルーチンが記憶された第7のアドレスを有
し、上記第6のアドレスには上記第7のアドレスにジャ
ンプするジャンプ命令が機械語で記憶されたことを特徴
とするプログラマブルコントローラである。
以下、本発明の実施例を図面により説明する。
プログラマブルコントローラの基本的構成は第1図に
示す通りで、1は入力信号源となる接点群、2は接点群
1からの入力信号を受ける入力部、3はシーケンス演算
処理を実行する演算処理部(以下、CPUと略称する)、
4は使用者により作成されたシーケンスプログラムを記
憶する第1の記憶部として設けられた読み出し、書き込
み可能なメモリ(以下、ユーザRAMと略称する)、5は
シーケンスプログラムを実行するための処理手順(シス
テムプログラム)を記憶する第2の記憶部として設けら
れた読み出し専用メモリ(以下、システムROMと略称す
る)、6は上記CPU3の演算結果を図示しない外部機器に
伝える出力部、7は使用者によりキー入力されたシーケ
ンスプログラムを上記ユーザRAM4に書き込むプログラム
部である。
示す通りで、1は入力信号源となる接点群、2は接点群
1からの入力信号を受ける入力部、3はシーケンス演算
処理を実行する演算処理部(以下、CPUと略称する)、
4は使用者により作成されたシーケンスプログラムを記
憶する第1の記憶部として設けられた読み出し、書き込
み可能なメモリ(以下、ユーザRAMと略称する)、5は
シーケンスプログラムを実行するための処理手順(シス
テムプログラム)を記憶する第2の記憶部として設けら
れた読み出し専用メモリ(以下、システムROMと略称す
る)、6は上記CPU3の演算結果を図示しない外部機器に
伝える出力部、7は使用者によりキー入力されたシーケ
ンスプログラムを上記ユーザRAM4に書き込むプログラム
部である。
第2図は本発明の一実施例を示す回路図で、前記した
CPU3、ユーザRAM4、システムROM5と、ユーザRAM4に記憶
されたシーケンス命令の命令コードの伝送およびシーケ
ンス命令に基づくデータの伝送を行なうための周辺回路
を示している。8はデータメモリで、第1図における入
力部2へ入力した信号内容、出力部6へ出力する信号内
容、さらにCPU3の演算結果等を一時的に記憶する読み出
し、書き込み可能なメモリ(RAM)である。9はアドレ
スバス、13は命令およびデータの主伝送路として設けら
れた第1のデータバス、14は第2のデータバスで、ユー
ザRAM4にシーケンスプログラムを書き込むときに用いら
れるものである。
CPU3、ユーザRAM4、システムROM5と、ユーザRAM4に記憶
されたシーケンス命令の命令コードの伝送およびシーケ
ンス命令に基づくデータの伝送を行なうための周辺回路
を示している。8はデータメモリで、第1図における入
力部2へ入力した信号内容、出力部6へ出力する信号内
容、さらにCPU3の演算結果等を一時的に記憶する読み出
し、書き込み可能なメモリ(RAM)である。9はアドレ
スバス、13は命令およびデータの主伝送路として設けら
れた第1のデータバス、14は第2のデータバスで、ユー
ザRAM4にシーケンスプログラムを書き込むときに用いら
れるものである。
前記した命令コードの伝送およびデータ伝送を行なう
回路は次の各部から構成されている。
回路は次の各部から構成されている。
15,16はアドレスデコーダで、CPU3からのアドレス信
号を受けてY1,Y2,Y3のうち選択された出力のみが“0"
となり、選択されない出力は“1"の状態となっているも
のである。17はORゲート、18はNANDゲート、19はANDゲ
ート、20はインバータで、これら素子は上記アドレスデ
コーダ15,16の出力に基づいて論理動作する。21はユー
ザRAM4の内容を歩進選択するためのステップカウンタ、
22はユーザRAM4からの信号を所定のタイミングでラッチ
するラッチ素子、23は上記ラッチ素子22の出力を受け取
り、第1のデータバス13を介して所定のタイミングでCP
U3に伝えるバッファである。上記バッファ23は“0",
“1",“高抵抗”の3状態出力形式のもので、ユーザRAM
4からの信号を伝送するとき以外は出力が“高抵抗”状
態であり、第1のデータバス13における他のデータ伝送
を妨げない。24は上記ユーザRAM4およびバッファ23から
の信号とアドレスバス9からの信号を切換えて上記デー
タメモリ8に伝えるセレクタ、25は上記データメモリ8
の出力を反転または非反転して第1のデータバス13に伝
える反転回路である。
号を受けてY1,Y2,Y3のうち選択された出力のみが“0"
となり、選択されない出力は“1"の状態となっているも
のである。17はORゲート、18はNANDゲート、19はANDゲ
ート、20はインバータで、これら素子は上記アドレスデ
コーダ15,16の出力に基づいて論理動作する。21はユー
ザRAM4の内容を歩進選択するためのステップカウンタ、
22はユーザRAM4からの信号を所定のタイミングでラッチ
するラッチ素子、23は上記ラッチ素子22の出力を受け取
り、第1のデータバス13を介して所定のタイミングでCP
U3に伝えるバッファである。上記バッファ23は“0",
“1",“高抵抗”の3状態出力形式のもので、ユーザRAM
4からの信号を伝送するとき以外は出力が“高抵抗”状
態であり、第1のデータバス13における他のデータ伝送
を妨げない。24は上記ユーザRAM4およびバッファ23から
の信号とアドレスバス9からの信号を切換えて上記デー
タメモリ8に伝えるセレクタ、25は上記データメモリ8
の出力を反転または非反転して第1のデータバス13に伝
える反転回路である。
第3図はユーザRAM4に記憶されたシーケンスプログラ
ムの一例を示すもので、命令コード5ビット、反転符号
1ビット、I/0番号10ビットの合計16ビットで1つのシ
ーケンス命令を表現した例である。この場合、ユーザRA
M4には汎用性のある8ビットメモリが使用されているた
め、1つのシーケンス命令をH,Lのそれぞれ8ビットづ
つに分割し、H,Lの順に記憶させているものとする。シ
ーケンスプログラムはこのようなシーケンス命令を複数
個組合わせて構成する。命令コードの表現は任意である
が、たとえば第4図に示すようにシーケンサ用言語によ
る命令語(LOAD,AND,OR,OUT等)と1対1に対応する関
係に定められる。
ムの一例を示すもので、命令コード5ビット、反転符号
1ビット、I/0番号10ビットの合計16ビットで1つのシ
ーケンス命令を表現した例である。この場合、ユーザRA
M4には汎用性のある8ビットメモリが使用されているた
め、1つのシーケンス命令をH,Lのそれぞれ8ビットづ
つに分割し、H,Lの順に記憶させているものとする。シ
ーケンスプログラムはこのようなシーケンス命令を複数
個組合わせて構成する。命令コードの表現は任意である
が、たとえば第4図に示すようにシーケンサ用言語によ
る命令語(LOAD,AND,OR,OUT等)と1対1に対応する関
係に定められる。
第3図の例は便宜上、命令コードの下位3ビットを省
略した場合で、ここに示した“00010"は、8ビットコー
ドに直せば“00010000"(16進数表現では$10)とな
る。
略した場合で、ここに示した“00010"は、8ビットコー
ドに直せば“00010000"(16進数表現では$10)とな
る。
第4図中の未定義命令コードはエラーチェックのため
に用意されたもので、これについては後に詳しく説明す
る。
に用意されたもので、これについては後に詳しく説明す
る。
第5図はシステムROM5にあらかじめ書き込まれたシス
テムプログラムの一部を示すもので、JMP,LOAD,AND,OR,
OUTと表記された個所には実際にはそれぞれの命令語に
対応する機械語命令が書き込まれている。ここで、$70
00番地にあるJMP(ジャンプ)命令の飛び先アドレス
は、“70"と“xx"の2ワードからなっている。“xx"は
任意のコードで、飛び先アドレスが特定されていないこ
とを意味する。この不特定な飛び先アドレスの“xx"の
部分はユーザRAM4に記憶された各シーケンス命令の命令
コードにより決定されるもので、LOAD,AND,OR,OUT等の
各シーケンス命令に対応する機械語命令は、各シーケン
ス命令の命令コードと一致したアドレス、つまり各命令
コードにより決定される上記JMP命令($7000)の飛び
先アドレスにそれぞれ配置されている。$7012,7022,70
32,7042の各番地にあるJMP命令は、各シーケンス命令に
基づく演算処理が実行されたとき、その都度プログラム
を$7000番地にもどすためのものである。$7080番地以
降はユーザRAM4の内容が破壊された場合に対処するエラ
ーチェックおよびエラー処理のプログラムで、これにつ
いては後に詳しく説明する。
テムプログラムの一部を示すもので、JMP,LOAD,AND,OR,
OUTと表記された個所には実際にはそれぞれの命令語に
対応する機械語命令が書き込まれている。ここで、$70
00番地にあるJMP(ジャンプ)命令の飛び先アドレス
は、“70"と“xx"の2ワードからなっている。“xx"は
任意のコードで、飛び先アドレスが特定されていないこ
とを意味する。この不特定な飛び先アドレスの“xx"の
部分はユーザRAM4に記憶された各シーケンス命令の命令
コードにより決定されるもので、LOAD,AND,OR,OUT等の
各シーケンス命令に対応する機械語命令は、各シーケン
ス命令の命令コードと一致したアドレス、つまり各命令
コードにより決定される上記JMP命令($7000)の飛び
先アドレスにそれぞれ配置されている。$7012,7022,70
32,7042の各番地にあるJMP命令は、各シーケンス命令に
基づく演算処理が実行されたとき、その都度プログラム
を$7000番地にもどすためのものである。$7080番地以
降はユーザRAM4の内容が破壊された場合に対処するエラ
ーチェックおよびエラー処理のプログラムで、これにつ
いては後に詳しく説明する。
以上のように構成した本実施例の動作を第6図に示す
シーケンス例について説明すると次のようになる。
シーケンス例について説明すると次のようになる。
まず、CPU3がアドレスバス9に所定のアドレス信号
(たとえば$7000)を発生すると、アドレスデコーダ15
は出力Y3を選択され、その出力“0"はORゲート17および
アドレスデコーダ16に伝えられ、該デコーダ16を動作可
能な状態とする。
(たとえば$7000)を発生すると、アドレスデコーダ15
は出力Y3を選択され、その出力“0"はORゲート17および
アドレスデコーダ16に伝えられ、該デコーダ16を動作可
能な状態とする。
このとき、アドレスデコーダ16は出力Y1を選択され、
Y1より“0"が出力される。該デコーダ16の非選択出力Y3
は“1"であるため、インバータ20の出力は“0"となり、
したがってORゲート17からは“0"が出力される。この出
力でシステムROM5が選択され、第5図に示す$7000番地
の内容が読み出されるとともに、アドレスデコーダ16の
出力Y1が“0"、出力Y2が“1"であることから、NANDゲー
ト18はステップカウンタ21の歩進線26に“1"を出力す
る。したがって、ステップカウンタ21は+1歩進し、そ
の信号をユーザRAM4に伝える。これでユーザRAM4が歩進
選択され、第3図に示すシーケンス命令のH部分(命令
コード、反転符号およびI/0番号の一部)が出力される
ことになる。
Y1より“0"が出力される。該デコーダ16の非選択出力Y3
は“1"であるため、インバータ20の出力は“0"となり、
したがってORゲート17からは“0"が出力される。この出
力でシステムROM5が選択され、第5図に示す$7000番地
の内容が読み出されるとともに、アドレスデコーダ16の
出力Y1が“0"、出力Y2が“1"であることから、NANDゲー
ト18はステップカウンタ21の歩進線26に“1"を出力す
る。したがって、ステップカウンタ21は+1歩進し、そ
の信号をユーザRAM4に伝える。これでユーザRAM4が歩進
選択され、第3図に示すシーケンス命令のH部分(命令
コード、反転符号およびI/0番号の一部)が出力される
ことになる。
続いてCPU3は、上記$7000番地の内容がJMP命令であ
るため、システムROM5の次の記憶内容、すなわち$7001
番地の内容を読み出すべくアドレスバス9に$7001のア
ドレス信号を発生する。このとき、上記したアドレスデ
コーダ16の出力Y1の後縁でラッチ素子22が動作し、ユー
ザRAM4から出力されたシーケンス命令のH部分をラッチ
する。このタイミングを第7図(b)に示す。
るため、システムROM5の次の記憶内容、すなわち$7001
番地の内容を読み出すべくアドレスバス9に$7001のア
ドレス信号を発生する。このとき、上記したアドレスデ
コーダ16の出力Y1の後縁でラッチ素子22が動作し、ユー
ザRAM4から出力されたシーケンス命令のH部分をラッチ
する。このタイミングを第7図(b)に示す。
$7001のアドレス信号が発生すると、アドレスデコー
ダ15は出力Y3を選択され、アドレスデコーダ16は出力Y2
を選択される。したがって、ORゲート17の出力は“0"
で、引き続きシステムROM5が選択されるとともに、アド
レスデコーダ16の出力Y1が“1"、出力Y2が“0"であるこ
とから、NANDゲート18は再び歩進線26に“1"を出力し、
ステップカウンタ21を+1歩進させる。したがって、ユ
ーザRAM4は第3図に示すシーケンス命令のL部分(I/0
番号の残りの部分)を出力する。
ダ15は出力Y3を選択され、アドレスデコーダ16は出力Y2
を選択される。したがって、ORゲート17の出力は“0"
で、引き続きシステムROM5が選択されるとともに、アド
レスデコーダ16の出力Y1が“1"、出力Y2が“0"であるこ
とから、NANDゲート18は再び歩進線26に“1"を出力し、
ステップカウンタ21を+1歩進させる。したがって、ユ
ーザRAM4は第3図に示すシーケンス命令のL部分(I/0
番号の残りの部分)を出力する。
続いてCPU3は、$7002番地の内容を読み出すべくアド
レスバス9に$7002のアドレス信号を発生する。このと
き、アドレスデコーダ15は出力Y3を選択されるが、アド
レスデコーダ16は出力Y3を選択され、その出力“0"がイ
ンバータ20により反転出力されるため、ORゲート17の出
力は“1"となるので、システムROM5は非選択となり、代
わりにアドレスデコーダ16の出力Y3によってバッファ23
が選択される。このとき、バッファ23はラッチ素子22に
ラッチされた内容、つまりユーザRAM4に記憶されたシー
ケンス命令のH部分のうち命令コード5ビットを受け取
り、これを下位3ビットに“0"を補完した8ビットコー
ドとしてデーダバス13に出力する。したがって、CPU3は
システムROM5の$7002番地の内容の代わりに上記した8
ビットの命令コードをバッファ23を介して読み出すこと
になる。このタイミングを第7図(c)に示す。
レスバス9に$7002のアドレス信号を発生する。このと
き、アドレスデコーダ15は出力Y3を選択されるが、アド
レスデコーダ16は出力Y3を選択され、その出力“0"がイ
ンバータ20により反転出力されるため、ORゲート17の出
力は“1"となるので、システムROM5は非選択となり、代
わりにアドレスデコーダ16の出力Y3によってバッファ23
が選択される。このとき、バッファ23はラッチ素子22に
ラッチされた内容、つまりユーザRAM4に記憶されたシー
ケンス命令のH部分のうち命令コード5ビットを受け取
り、これを下位3ビットに“0"を補完した8ビットコー
ドとしてデーダバス13に出力する。したがって、CPU3は
システムROM5の$7002番地の内容の代わりに上記した8
ビットの命令コードをバッファ23を介して読み出すこと
になる。このタイミングを第7図(c)に示す。
以上の動作によりCPU3はシステムROM5の$7001番地お
よび$7002番地からそれぞれ“70",“xx=10"を読み出
したことになり、続いて$7010のアドレス信号をアドレ
スバス9に発生する。すると、アドレスデコーダ15の出
力Y3が“0"、アドレスデコーダ16の出力Y3が“1"とな
て、再びシステムROM5が選択されるため、CPU3の処理は
飛び先として指定された$7010番地に移る。
よび$7002番地からそれぞれ“70",“xx=10"を読み出
したことになり、続いて$7010のアドレス信号をアドレ
スバス9に発生する。すると、アドレスデコーダ15の出
力Y3が“0"、アドレスデコーダ16の出力Y3が“1"とな
て、再びシステムROM5が選択されるため、CPU3の処理は
飛び先として指定された$7010番地に移る。
この場合、$7010番地はLOAD処理で、その意味は“$
40番地を読み出せ”ということなので、CPU3は$40とい
う信号をアドレスバス9に発生させる。すると、アドレ
スデコーダ15の出力Y2が“0"となり、その出力が選択線
27を介してANDゲート19に伝えられるため、これに対応
するANDゲート19の出力“0"によりデータメモリ8が選
択される。このとき、データメモリ8に対するアドレス
線29には前記したユーザRAM4から出力されているシーケ
ンス命令のL部分のI/0番号とラッチ素子22によりラッ
チされたシーケンス命令のH部分のI/0番号とがセレク
タ24を介して伝えられているため、データメモリ8が選
択されると、上記したI/0番号に対応するデータメモリ
8の内容が反転回路25を介してデータバス13に伝えら
れ、CPU3に読み出される。つまり、いま出されているシ
ーケンス命令は“接点10からの入力信号を読み出せ”と
いうことなので、あらかじめデータメモリ8に格納され
ていた接点10からの入力信号がCPU3に読み出されたこと
になる。
40番地を読み出せ”ということなので、CPU3は$40とい
う信号をアドレスバス9に発生させる。すると、アドレ
スデコーダ15の出力Y2が“0"となり、その出力が選択線
27を介してANDゲート19に伝えられるため、これに対応
するANDゲート19の出力“0"によりデータメモリ8が選
択される。このとき、データメモリ8に対するアドレス
線29には前記したユーザRAM4から出力されているシーケ
ンス命令のL部分のI/0番号とラッチ素子22によりラッ
チされたシーケンス命令のH部分のI/0番号とがセレク
タ24を介して伝えられているため、データメモリ8が選
択されると、上記したI/0番号に対応するデータメモリ
8の内容が反転回路25を介してデータバス13に伝えら
れ、CPU3に読み出される。つまり、いま出されているシ
ーケンス命令は“接点10からの入力信号を読み出せ”と
いうことなので、あらかじめデータメモリ8に格納され
ていた接点10からの入力信号がCPU3に読み出されたこと
になる。
ここで、反転回路25はラッチ素子22にラッチされたシ
ーケンス命令の反転符号ビットが“1"であるか“0"であ
るかによりデータメモリ8からの信号を反転または非反
転して伝えることができる回路で、b接点からの入力信
号を符号反転するために用いられる。
ーケンス命令の反転符号ビットが“1"であるか“0"であ
るかによりデータメモリ8からの信号を反転または非反
転して伝えることができる回路で、b接点からの入力信
号を符号反転するために用いられる。
CPU3は続いて$7012番地の内容を読み出し実行する。
$7012番地の内容は“JMP7000"、つまり“$7000番地に
飛べ”ということなので、CPU3の処理は再び$7000番地
に移る。
$7012番地の内容は“JMP7000"、つまり“$7000番地に
飛べ”ということなので、CPU3の処理は再び$7000番地
に移る。
以上で第3図に示したシーケンス命令の処理が終了
し、次のシーケンス命令(接点11の入力信号との論理
積)の処理に移るが、以降の命令処理においても前記し
た$7000番地のJMP命令によりシーケンス命令に対応す
る機械語命令の選択が行なわれ、飛び先アドレスの“x
x"が異なるだけである。すなわち、ユーザRAM4に記憶さ
れた命令コードにより飛び先アドレスが決定され、CPU3
は指定された飛び先の機械語命令により演算処理を行な
うことになる。
し、次のシーケンス命令(接点11の入力信号との論理
積)の処理に移るが、以降の命令処理においても前記し
た$7000番地のJMP命令によりシーケンス命令に対応す
る機械語命令の選択が行なわれ、飛び先アドレスの“x
x"が異なるだけである。すなわち、ユーザRAM4に記憶さ
れた命令コードにより飛び先アドレスが決定され、CPU3
は指定された飛び先の機械語命令により演算処理を行な
うことになる。
このようにユーザRAM4に記憶されたシーケンス命令の
命令コードを飛び先アドレスとしてCPU3に読み込ませ、
各シーケンス命令に対応してシステムROM5に記憶された
機械語命令のアドレス指定を行なわせることにより、従
来のインタプリタ方式に必要であった命令語解読ルーチ
ンを省略して命令の取り出しから即実行ルーチンに移る
ことが可能となり、その結果、演算処理速度は大幅に向
上し、たとえば従来のインタプリタ方式では40ms/1kW程
度であった処理速度を20ms/1kW以下とすることができ
る。
命令コードを飛び先アドレスとしてCPU3に読み込ませ、
各シーケンス命令に対応してシステムROM5に記憶された
機械語命令のアドレス指定を行なわせることにより、従
来のインタプリタ方式に必要であった命令語解読ルーチ
ンを省略して命令の取り出しから即実行ルーチンに移る
ことが可能となり、その結果、演算処理速度は大幅に向
上し、たとえば従来のインタプリタ方式では40ms/1kW程
度であった処理速度を20ms/1kW以下とすることができ
る。
また、命令コードに対する処理内容は機械語命令とし
てシステムROM5に記憶されているため、ノイズ等の外乱
により処理内容が破壊されることがなく、安全である。
さらに、この方式によれば、システムプログラムの一部
としてエラーチェックおよびエラー処理のルーチンをシ
ステムROM5に配置しておくことができるので、ノイズ等
の外乱によりユーザRAM4の内容が破壊された場合でも安
全性を確保することが用意である。たとえば、ユーザRA
M4の内容が破壊された場合を想定して第4図に示すよう
ないくつかの未定義命令コード(80,90〜FO,00等)を定
め、システムROM5には第5図に示すように上記未定義命
令コードと対応するアドレスにそれぞれ“JMP7800"を記
憶させておく。$7800番地をエラー処理ルーチンとすれ
ば、万一ユーザRAM4の内容が破壊されても、未定義命令
コードに対応する飛び先アドレスからエラー処理ルーチ
ンへ移行することにより、CPU3の暴走を回避し、警報を
発する等の適切な処置がとれるわけである。
てシステムROM5に記憶されているため、ノイズ等の外乱
により処理内容が破壊されることがなく、安全である。
さらに、この方式によれば、システムプログラムの一部
としてエラーチェックおよびエラー処理のルーチンをシ
ステムROM5に配置しておくことができるので、ノイズ等
の外乱によりユーザRAM4の内容が破壊された場合でも安
全性を確保することが用意である。たとえば、ユーザRA
M4の内容が破壊された場合を想定して第4図に示すよう
ないくつかの未定義命令コード(80,90〜FO,00等)を定
め、システムROM5には第5図に示すように上記未定義命
令コードと対応するアドレスにそれぞれ“JMP7800"を記
憶させておく。$7800番地をエラー処理ルーチンとすれ
ば、万一ユーザRAM4の内容が破壊されても、未定義命令
コードに対応する飛び先アドレスからエラー処理ルーチ
ンへ移行することにより、CPU3の暴走を回避し、警報を
発する等の適切な処置がとれるわけである。
次にセレクタ24の作用を説明する。前記説明ではユー
ザRAM4およびラッチ素子22からの信号がセレクタ24を介
してアドレス線29に伝えられたが、CPU3から特定のアド
レス信号が発生するとアドレスデコーダ15の出力Y1が選
択され、その信号が選択線28を介してセレクタ24に伝え
られることにより、セレクタ24は信号の切換を行ない、
アドレスバス9上の信号がアドレス線29に伝わるように
する。すなわち、CPU3が必要に応じてデータメモリ8と
直接アクセスすることを可能とするものである。この機
能により、第1図における接点群1の信号を取り込み、
データメモリ8に格納したり、データメモリ8の特定の
内容を出力部6へ転送する際に、ユーザRAM4を介さずに
CPU3とデータメモリ8との間で直接アクセスを行なわせ
ることができ、データの高速転送処理が可能となる。
ザRAM4およびラッチ素子22からの信号がセレクタ24を介
してアドレス線29に伝えられたが、CPU3から特定のアド
レス信号が発生するとアドレスデコーダ15の出力Y1が選
択され、その信号が選択線28を介してセレクタ24に伝え
られることにより、セレクタ24は信号の切換を行ない、
アドレスバス9上の信号がアドレス線29に伝わるように
する。すなわち、CPU3が必要に応じてデータメモリ8と
直接アクセスすることを可能とするものである。この機
能により、第1図における接点群1の信号を取り込み、
データメモリ8に格納したり、データメモリ8の特定の
内容を出力部6へ転送する際に、ユーザRAM4を介さずに
CPU3とデータメモリ8との間で直接アクセスを行なわせ
ることができ、データの高速転送処理が可能となる。
上記実施例では、1スキャンタイムごとに接点群1の
信号を一括して取り込み、データメモリ8に格納してお
き、ユーザRAM4からの信号によりデータメモリ8の特定
の内容を読み出す方式をとっているが、前記した命令コ
ードの読み出しと同様に、ユーザRAM4から出力されたI/
0番号をラッチし、バッファに介して所定のタイミング
でCPU3に伝えることにより、命令処理の都度データメモ
リを介さずに特定の接点からの入力信号を取り込むよう
にすることもできる。出力部6へのデータ出力について
も同様である。
信号を一括して取り込み、データメモリ8に格納してお
き、ユーザRAM4からの信号によりデータメモリ8の特定
の内容を読み出す方式をとっているが、前記した命令コ
ードの読み出しと同様に、ユーザRAM4から出力されたI/
0番号をラッチし、バッファに介して所定のタイミング
でCPU3に伝えることにより、命令処理の都度データメモ
リを介さずに特定の接点からの入力信号を取り込むよう
にすることもできる。出力部6へのデータ出力について
も同様である。
本発明によれば、シーケンス命令の命令コードを飛び
先アドレスとして当該シーケンス命令に対応する機械語
命令の選択が行なわれ、従来のインタプリンタ方式のよ
うに命令コードをその都度解読する必要がないため、高
速演算処理ができ、また、前記システムROMのような外
乱により内容が破壊される恐れのない記憶部に機械語命
令やエラー処理ルーチンを配置できるため、従来のコン
パイラ方式にあったようなCPUの暴走が避けられ、安全
性を高めることができる。
先アドレスとして当該シーケンス命令に対応する機械語
命令の選択が行なわれ、従来のインタプリンタ方式のよ
うに命令コードをその都度解読する必要がないため、高
速演算処理ができ、また、前記システムROMのような外
乱により内容が破壊される恐れのない記憶部に機械語命
令やエラー処理ルーチンを配置できるため、従来のコン
パイラ方式にあったようなCPUの暴走が避けられ、安全
性を高めることができる。
第1図はプログラマブルコントローラの基本的構成を示
すブロック図、第2図は本発明の一実施例を示す回路
図、第3図は第2図中のユーザRAMに記憶されたシーケ
ンスプログラムの一例を示す図、第4図は命令語と命令
コードの対照図表、第5図は第2図中のシステムROMに
記憶されたシステムプログラムの一例を示す図、第6図
は動作説明用のシーケンス図、第7図は同タイミングチ
ャートである。 3:演算処理部 4:第1の記憶部 5:第2の記憶部 15,16,17,18,20,21,22,23:命令伝送手段
すブロック図、第2図は本発明の一実施例を示す回路
図、第3図は第2図中のユーザRAMに記憶されたシーケ
ンスプログラムの一例を示す図、第4図は命令語と命令
コードの対照図表、第5図は第2図中のシステムROMに
記憶されたシステムプログラムの一例を示す図、第6図
は動作説明用のシーケンス図、第7図は同タイミングチ
ャートである。 3:演算処理部 4:第1の記憶部 5:第2の記憶部 15,16,17,18,20,21,22,23:命令伝送手段
フロントページの続き (56)参考文献 特開 昭57−69413(JP,A) 特開 昭54−30385(JP,A) 特開 昭56−164444(JP,A)
Claims (1)
- 【請求項1】複数のシーケンス命令の組合せからなるシ
ーケンスプログラムが記憶された第1の記憶部と、複数
のアドレスを有してこれらのうち第1のアドレスには飛
び先アドレスが上記各シーケンス命令の命令コードに従
って決定されるジャンプ命令が、第2のアドレスにはLO
AD命令と上記第1のアドレスにジャンプするジャンプ命
令が、第3のアドレスにはAND命令と上記第1のアドレ
スにジャンプするジャンプ命令が、第4のアドレスには
OR命令と上記第1のアドレスにジャンプするジャンプ命
令が、第5のアドレスにはOUT命令と上記第1のアドレ
スにジャンプするジャンプ命令がそれぞれ機械語で記憶
された第2の記憶部と、上記第2の記憶部から読み出さ
れた命令によりシーケンス演算処理を実行する演算処理
部と、上記第1の記憶部と上記演算処理部間および上記
第2の記憶部と上記演算処理部間に介在して上記演算処
理部から発する所定のアドレス信号を解読して上記第1
の記憶部から次に実行すべきシーケンス命令を出力さ
せ、その命令コードを飛び先アドレスとして上記演算処
理部に伝える命令伝送手段を備え、さらに、上記第2の
記憶部は未定義命令コードに対応する第6のアドレスと
エラー処理ルーチンが記憶された第7のアドレスを有
し、上記第6のアドレスには上記第7のアドレスにジャ
ンプするジャンプ命令が機械語で記憶されたことを特徴
とするプログラマブルコントローラ。
Priority Applications (4)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP59058056A JPH0830971B2 (ja) | 1984-03-26 | 1984-03-26 | プログラマブルコントローラ |
US06/702,264 US4879678A (en) | 1984-03-26 | 1985-02-15 | Programmable sequence controller with operation codes partially supplying jump to addresses of machine language instruction |
EP85101838A EP0156162B1 (en) | 1984-03-26 | 1985-02-20 | Programmable controller |
DE8585101838T DE3583405D1 (de) | 1984-03-26 | 1985-02-20 | Programmierbare steuereinheit. |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP59058056A JPH0830971B2 (ja) | 1984-03-26 | 1984-03-26 | プログラマブルコントローラ |
Publications (2)
Publication Number | Publication Date |
---|---|
JPS60201402A JPS60201402A (ja) | 1985-10-11 |
JPH0830971B2 true JPH0830971B2 (ja) | 1996-03-27 |
Family
ID=13073252
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP59058056A Expired - Lifetime JPH0830971B2 (ja) | 1984-03-26 | 1984-03-26 | プログラマブルコントローラ |
Country Status (4)
Country | Link |
---|---|
US (1) | US4879678A (ja) |
EP (1) | EP0156162B1 (ja) |
JP (1) | JPH0830971B2 (ja) |
DE (1) | DE3583405D1 (ja) |
Families Citing this family (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH03113510A (ja) * | 1989-09-27 | 1991-05-14 | Fanuc Ltd | 数値制御装置のデータローディング方法 |
JP2978189B2 (ja) * | 1989-11-16 | 1999-11-15 | シャープ株式会社 | 自動フローチャート作成装置 |
JPH05224711A (ja) * | 1992-02-13 | 1993-09-03 | Koyo Electron Ind Co Ltd | プログラマブルコントローラの制御方法 |
US5379388A (en) * | 1992-07-08 | 1995-01-03 | Advanced Micro Devices, Inc. | Digital signal processing apparatus with sequencer designating program routines |
JP3738134B2 (ja) * | 1998-06-19 | 2006-01-25 | 三洋電機株式会社 | デジタル信号処理装置 |
US8832670B2 (en) * | 2011-07-01 | 2014-09-09 | Mitsubishi Electric Corporation | Programmable controller and programming tool for communication with legacy equipment |
Family Cites Families (14)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US3518413A (en) * | 1968-03-21 | 1970-06-30 | Honeywell Inc | Apparatus for checking the sequencing of a data processing system |
US4058850A (en) * | 1974-08-12 | 1977-11-15 | Xerox Corporation | Programmable controller |
US4205370A (en) * | 1975-04-16 | 1980-05-27 | Honeywell Information Systems Inc. | Trace method and apparatus for use in a data processing system |
US4307445A (en) * | 1978-11-17 | 1981-12-22 | Motorola, Inc. | Microprogrammed control apparatus having a two-level control store for data processor |
US4231089A (en) * | 1978-12-15 | 1980-10-28 | Digital Equipment Corporation | Data processing system with apparatus for correcting microinstruction errors |
US4484303A (en) * | 1979-06-19 | 1984-11-20 | Gould Inc. | Programmable controller |
US4302820A (en) * | 1979-08-20 | 1981-11-24 | Allen-Bradley Company | Dual language programmable controller |
US4336602A (en) * | 1979-09-24 | 1982-06-22 | Control Data Corporation | Network for generating modified microcode addresses |
US4370729A (en) * | 1980-03-21 | 1983-01-25 | Point 4 Data Corporation | Microprogram sequencer |
JPS5769413A (en) * | 1980-10-16 | 1982-04-28 | Omron Tateisi Electronics Co | Programmable logic controller |
US4432052A (en) * | 1981-04-13 | 1984-02-14 | Texas Instruments Incorporated | Microcomputer device using dispatch addressing of control ROM |
JPS57209503A (en) * | 1981-06-19 | 1982-12-22 | Toyoda Mach Works Ltd | Sequence controller |
US4439828A (en) * | 1981-07-27 | 1984-03-27 | International Business Machines Corp. | Instruction substitution mechanism in an instruction handling unit of a data processing system |
US4573118A (en) * | 1983-03-31 | 1986-02-25 | Fairchild Camera & Instrument Corporation | Microprocessor with branch control |
-
1984
- 1984-03-26 JP JP59058056A patent/JPH0830971B2/ja not_active Expired - Lifetime
-
1985
- 1985-02-15 US US06/702,264 patent/US4879678A/en not_active Expired - Fee Related
- 1985-02-20 EP EP85101838A patent/EP0156162B1/en not_active Expired
- 1985-02-20 DE DE8585101838T patent/DE3583405D1/de not_active Expired - Lifetime
Also Published As
Publication number | Publication date |
---|---|
EP0156162A2 (en) | 1985-10-02 |
US4879678A (en) | 1989-11-07 |
DE3583405D1 (de) | 1991-08-14 |
JPS60201402A (ja) | 1985-10-11 |
EP0156162A3 (en) | 1987-10-28 |
EP0156162B1 (en) | 1991-07-10 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US5202967A (en) | Data processing apparatus for performing parallel decoding and parallel execution of a variable word length instruction | |
EP0083209B1 (en) | A microcomputer for processing instructions of different types | |
US4616313A (en) | High speed address calculation circuit for a pipeline-control-system data-processor | |
US4179731A (en) | Microprogrammed control system | |
US4001788A (en) | Pathfinder microprogram control system | |
US3931505A (en) | Program controlled data processor | |
JPS61122747A (ja) | デ−タ処理装置 | |
JPS6351287B2 (ja) | ||
JPS62197830A (ja) | デ−タ処理システム | |
JPH0248931B2 (ja) | ||
US5125097A (en) | Data flow type information processors where data packets pass through plurality of merging and branching portions of the internal path | |
JPS63226732A (ja) | シーケンサ回路 | |
EP0354740B1 (en) | Data processing apparatus for performing parallel decoding and parallel execution of a variable word length instruction | |
US5247624A (en) | Microprogram controller including leading microinstruction from a generator executed while succeeding microinstruction from memory is read out | |
JPH0830971B2 (ja) | プログラマブルコントローラ | |
US4831572A (en) | Polynomial vector arithmetic operation control system | |
JPH0798990A (ja) | Romの読出切換回路 | |
JPH0233173B2 (ja) | ||
JPH0713758A (ja) | 命令デコード方法 | |
JPH01116702A (ja) | シーケンスコントローラ | |
KR950003884B1 (ko) | 퍼스컴 버스 인터페이스 회로 | |
JPS6218933B2 (ja) | ||
EP0305530A1 (en) | High-speed floating point arithmetic unit | |
JPS58155457A (ja) | 情報処理装置 | |
JPH08305564A (ja) | マイクロコンピュータ |