JPH05127710A - プログラマブルコントローラおよびシーケンス制御方法 - Google Patents

プログラマブルコントローラおよびシーケンス制御方法

Info

Publication number
JPH05127710A
JPH05127710A JP3277447A JP27744791A JPH05127710A JP H05127710 A JPH05127710 A JP H05127710A JP 3277447 A JP3277447 A JP 3277447A JP 27744791 A JP27744791 A JP 27744791A JP H05127710 A JPH05127710 A JP H05127710A
Authority
JP
Japan
Prior art keywords
word
instruction
bit
execution
instructions
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
JP3277447A
Other languages
English (en)
Other versions
JP2848060B2 (ja
Inventor
Mitsuaki Kobayashi
光明 小林
Toshihiko Matsuda
敏彦 松田
Yasuo Morooka
泰男 諸岡
Kunihiko Onuma
邦彦 大沼
Noboru Azusazawa
昇 梓沢
Hiromitsu Kikuchi
洋光 菊池
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 JP3277447A priority Critical patent/JP2848060B2/ja
Priority to EP92309459A priority patent/EP0539115B1/en
Priority to DE69232371T priority patent/DE69232371T2/de
Publication of JPH05127710A publication Critical patent/JPH05127710A/ja
Priority to US08/441,646 priority patent/US5504930A/en
Application granted granted Critical
Publication of JP2848060B2 publication Critical patent/JP2848060B2/ja
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/30145Instruction analysis, e.g. decoding, instruction word fields
    • GPHYSICS
    • G05CONTROLLING; REGULATING
    • G05BCONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
    • G05B19/00Programme-control systems
    • G05B19/02Programme-control systems electric
    • G05B19/04Programme control other than numerical control, i.e. in sequence controllers or logic controllers
    • G05B19/05Programmable logic controllers, e.g. simulating logic interconnections of signals according to ladder diagrams or function charts
    • G05B19/052Linking several PLC's
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/30003Arrangements for executing specific machine instructions
    • G06F9/30007Arrangements for executing specific machine instructions to perform operations on data operands
    • G06F9/30018Bit or string instructions
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/30181Instruction operation extension or modification
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/38Concurrent instruction execution, e.g. pipeline or look ahead
    • G06F9/3877Concurrent instruction execution, e.g. pipeline or look ahead using a slave processor, e.g. coprocessor
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/38Concurrent instruction execution, e.g. pipeline or look ahead
    • G06F9/3877Concurrent instruction execution, e.g. pipeline or look ahead using a slave processor, e.g. coprocessor
    • G06F9/3879Concurrent instruction execution, e.g. pipeline or look ahead using a slave processor, e.g. coprocessor for non-native instruction execution, e.g. executing a command; for Java instruction set
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/38Concurrent instruction execution, e.g. pipeline or look ahead
    • G06F9/3885Concurrent instruction execution, e.g. pipeline or look ahead using a plurality of independent parallel functional units

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)

Abstract

(57)【要約】 【目的】ビット/ワード混合命令のワード演算を汎用M
PUで高速処理するプログラマブルコントローラ(P
C)を提供することにある。 【構成】ビット演算命令を実行するSPU1と、ワード
演算命令を実行するMPU2と、ビット演算命令とワー
ド演算命令の混在命令を実行順に格納するビット演算用
メモリ3と、ワード演算命令のオブジェクトを実行順に
格納するワード演算用メモリ4とを設ける。さらに、S
PU1はその実行中にワード演算命令を認識すると停止
中のMPUに開始指令を渡す切替手段11(CIR)
を、また、MPU2はその実行中に次の命令をフエッチ
するプリフエッチ手段12を設けている。 【効果】CIRを切替手段とすることで、ビット/ワー
ド演算の切り替えに要するオーバヘッドを大幅に低減で
き、かつ、ビット演算中のMPU停止も可能となるので
MPUにプリフエッチ型が採用でき、高速処理のPCが
提供できる。

Description

【発明の詳細な説明】
【0001】
【産業上の利用分野】本発明はプログラマブルコントロ
ーラに関し、特にビット演算(論理演算)命令中にワー
ド演算(数値演算)命令が混在するプログラムを実行す
るプログラマブルコントローラおよびシーケンス制御方
法に関する。
【0002】
【従来の技術】近年、プログラマブルコントローラによ
る制御は複雑化し、シーケンス制御中にPID制御を含
むようなことが普通になっている。このため、プログラ
マブルコントローラの制御プログラムには、ビット演算
命令(シーケンス命令あるいはラダー命令とも呼ばれ
る)とワード演算命令が混在している。
【0003】このような混在命令を実行するプログラマ
ブルコントローラとしては、特開昭56−105505号公報に
記載のように、ビット演算命令を実行するハードウエア
による専用ビット演算回路と、ワード演算命令をマイク
ロプログラムで処理する専用ワード演算回路からなる2
つの命令実行部をもち、専用ワード演算回路はワード演
算命令を実行すると共にシーケンス命令を受けたときは
次に実行すべき命令のプログラム番号の更新のみを行う
ようにするものがある。
【0004】さらに、特開昭61−48001 号公報記載のよ
うに、ワード演算命令の処理に汎用のマイクロプロセッ
サ(MPU)を設け、ビット演算命令とワード演算命令
の区切りに挿入された切替命令によって専用ビット演算
プロセッサとMPUを切り替えるようになし、かつ、ビ
ット演算の実行中、MPUはダミー命令を実行してプロ
グラムを歩進するものもある。
【0005】
【発明が解決しようとする課題】上記従来技術におい
て、専用ハードウエアによるものはビット演算とワード
演算の切替が不要となるから高速処理が可能となる。し
かし、ハードウエアの開発に期間を要しコストも高くな
る。また、ワード演算命令の追加や変更に際してもハー
ドウエアの再生が必要になる。
【0006】一方、汎用プロセッサによる方式は、安価
で仕様の変更にも柔軟に対処できるが、命令の切替に伴
うオーバヘッドがコントローラの処理速度を低下させ、
複雑な制御対象でのリアルタイム処理に困難がある。
【0007】本発明の目的は、上記従来技術の問題点を
解決し、汎用プロセッサを用いる場合のオーバヘッドを
低減し、高速処理が可能なプログラマブルコントローラ
を提供することにある。
【0008】本発明の他の目的はワード演算が混在する
複雑なシーケンス制御において、リアルタイム制御を実
現し、制御精度を向上させることにある。
【0009】
【課題を解決するための手段】本発明のプログラマブル
コントローラは、ビット演算命令を実行するビット演算
プロセッサ(SPU)と、ワード演算命令を実行する汎
用のマイクロプロセッサ(MPU)と、ビット演算とワ
ード演算の混在する混在命令を実行順に格納するビット
演算用メモリと、ワード演算命令を格納するワード演算
用メモリと、さらに、前記SPUはその実行中にワード
演算命令を認識すると停止中のMPUに開始指令を渡す
切替手段(コプロセッサインタフェースレジスタ;CI
R)を設けるところに特徴がある。
【0010】また、本発明の他の態様によれば、上記汎
用MPUにプリフエッチ形を用い、そのワード演算命令
の実行と並行してワード演算用メモリから次命令をプリ
フエッチし、一方、SPUの実行中はMPUは停止状態
とされる構成を特徴にしている。
【0011】さらに、本発明の別の態様によれば、MP
Uから見て転送アドレスを固定化するパラメータコント
ロールレジスタをSPU内に設け、ビット演算用メモリ
のワード演算分岐命令に含まれる転送アドレスをインデ
ックス修飾するところに特徴がある。
【0012】
【作用】本発明によれば、ラダー命令語などのビット演
算命令を専用に処理するビット演算処理プロセッサはそ
の実行中、ワード演算分岐命令を認識すると、CIRが
汎用計算機言語のワード演算開始指令に変換して出力
し、この指令によって汎用MPUが起動されワード演算
を開始する。これによれば、汎用のMPUを用いるとき
の欠点である切替のオーバヘッドが低減できる。
【0013】また、MPUが実行命令をプリフエッチ
し、しかもSPU実行中は停止することで無駄なプリフ
エッチや捨てられるプリフェッチを防止し、MPUに切
り替わると直ちにプリフエッチされているワード演算命
令の実行を開始するので、高速処理が可能になる。
【0014】さらにSPU側で、ワード演算分岐命令の
アドレスパラメータをインデックス修飾しているので、
MPUの送信アドレスが固定され、アドレス取り込みの
無駄時間がなくなる。
【0015】このように本発明によれば、汎用のMPU
を採用しても専用ハードウエア並みの高速処理が実現さ
れるのでリアルタイムな制御が可能になる。また、シス
テムの設計、変更が容易で、安価なプログラマブルコン
トローラを提供できる。
【0016】
【実施例】以下本発明の実施例を図1〜図11を参照し
て説明する。なお、各図を通して同じ符号は同一ないし
類似のものを示す。
【0017】図3はプログラマブルコントローラによっ
て箱700を所定の位置に搬送制御するシステムを示し
たものである。プログラマブルコントローラ100は中
央処理装置(CPU)5,シーケンス演算処理装置6,
プロセス入出力データ格納メモリ(PIOメモリ)7を
備えていて、プロセス入出力装置(PIO)200を介
してベルトコンベア300を駆動するモータ400,ス
イッチ600,センサ500等と接続されている。
【0018】CPU5は主としてプログラマブルコント
ローラ100の全体を統括し、装置6やメモリ7の管
理,通信プログラムの実行,ワード演算処理などを実行
する。シーケンス演算処理装置6はラダー言語等、予め
定められた手順で記述された機械命令プログラムを実行
する。データメモリ(PIOメモリ)7はシーケンス演
算処理装置6の演算に必要なプロセス側400,50
0,600のオン・オフ状態を取り込んだデータや、シ
ーケンス演算処理装置6の演算結果であるプロセス指令
値を格納する。
【0019】図1は本発明のプログラマブルコントロー
ラ100の一実施例で、シーケンス演算処理装置6の詳
細構成を示したものである。シーケンス演算処理装置6
は、ビット演算命令を実行するビット演算プロセッサ
(SPU)1,ワード演算命令を処理する汎用のマイク
ロプロセッサ(MPU)2,ビット演算命令とワード演
算ブランチ命令を実行順に格納するビット演算メモリ
3,ビット演算ブランチ命令とワード演算命令のオブジ
ェクトコードを実行順に格納するワード演算メモリ4か
ら構成されている。
【0020】SPU1は専らビット演算命令を処理する
ビット演算処理部9と、この処理部9におけるブランチ
命令の認識を受けてMPU2にワード演算開始指令を与
えたり、MPU2におけるブランチ命令の認識を受けて
MPU2の処理部13を停止(ストアードプログラム型
でプログラムカウンタの歩進を止めること)してビット
演算を開始させる切り替え手段、すなわちコプロセッサ
インタフェースレジスタ(CIR)11を設けている。
【0021】汎用のMPU2は、メモリ4のワード演算
命令をプリフエッチする命令プリフエッチ部12と、こ
のプリフエッチされた命令を順次実行する処理部13
と、処理部13の停止中にCIR11の応答待ちをして
応答が有りしだい処理部13を起動するコプロセッサ制
御部14からなっている。命令プリフエッチ部12は処
理部13の実行と並行して次回さらには次々回の命令を
メモリ4からプリフエッチするため図示しない命令キャ
ッシュなどを備えている。
【0022】SPU1およびMPU2は信号線やバスを
介してデータメモリ(PIOメモリ)7との間でデータの
転送をおこなう。なお、MPU2は、図3のCPU5を
兼用してもよい。
【0023】本実施例のプログラマブルコントローラ1
00はこのように構成されていて、図2に示すタイムチ
ャートのように動作する。MPU2は予め実行順にコン
パイルされ記憶されているSPUブランチ,MOV,S
PUブランチ,ADD命令を記憶メモリ4からその実行
前にプリフエッチしている。MPU2の処理部13がS
PUブランチを実行すると、コプロセッサ制御部14を
介しSPU1に次命令の実行を要求する要求信号38が
出力され、この信号38のセットによってビット演算処
理部9のスタートS信号が発生される。スタート信号S
によって停止していたビット処理部9は起動し、メモリ
3からビット演算命令であるb接点命令,a接点命令を
読出して順次実行する。この間、MPU2の処理部13
は停止しコプロセッサ制御部14が応答待ちを続ける。
【0024】SPU1のビット処理部9が実行中に、M
PUブランチ(ワード演算命令)、例えばMOVブラン
チを認識すると、CIR11はワード演算の開始指令に
変換し、応答信号A40としてMPU2に出力する。こ
のとき、一方で処理部9を停止する(プログラムカウン
タの歩進を止める)。
【0025】応答信号Aを受けたMPU2はワード演算
命令MOVを実行しデータメモリ7との間でデータ転送
をおこなう。ついでSPUブランチを実行すると、上記
の処理を経て、SPU1はADDブランチを認識し再び
応答信号Aを返すので、MPU2は処理部13でADD命令
を実行する。このADD命令処理と並行して、命令プリ
フエッチ部12は次または次々の命令をプリフエッチす
る。
【0026】図4はSPU1のコプロセッサインタフェ
ースレジスタ(CIR)11とビット演算処理部9の詳
細な構成を示す。CIR11は、MPUブランチ命令の
内容(図5)を判読するデコーダ18,INST No
比較器19,INST Noレジスタ20,応答レジス
タ21で構成される。ビット演算処理部9は、シーケン
スプログラムカウンタ(SPC)10,演算器16およ
びアキュームレータ17で構成される。
【0027】図5(a)はビット演算の命令フォーマット
を示し、ビット演算を示す演算種別コードB、命令の種
類を示す命令コードINST,データメモリ7のアドレ
スを示すパラメータPARAからなる。
【0028】図5(b)はワード演算の命令フォーマット
を示し、演算種別コードW,命令コードINSTに続い
て、複数のワード演算命令の一貫番号を示すINST
Noと、複数のパラメータのアクセス情報を示すPAR
A CONTと、PARACONTに従って配列された
PARA1,PARA2,…からなる。PARAはデー
タメモリ7のアドレスであったり、データそのものであ
る。PARA CONTにはPARAの数(PARAが無け
れば0)がセットされる。INST Noは、ビット演
算メモリ3のMPUブランチとワード演算メモリ4のS
PUブランチが交互に、正しい実行順で実行されている
かチエックするのに用いられる。
【0029】図1および図4において、ビット演算メモ
リ3には、ビット演算命令とMPUブランチ命令の混在
したもの(混在命令)が図5のフォーマットによって実
行順に格納されている。ワード演算メモリ4には、上記
MPUブランチ命令に対応するMPU2のオブジェクト
コードが実行順に格納されている。
【0030】図2は図4におけるSPU1とMPU2の
動作を示すタイムチャートである。いま、メモリ3,4
が図1の格納状態にあるとすると、MPU2の処理部1
3は1番目のワード演算命令MOVを実行後、SPUブ
ランチ命令でコプロセッサ制御部14を起動する。MP
U2はこの制御部14を介して2番目の命令ADDの実
行要求と次回ワード演算命令が2番目であることをCI
R11のINST Noレジスタ20にセットする(この
セットによりSPUのスタート信号Sが出力される)。
その後、コプロセッサ制御部14は処理部13を停止
し、応答待ち処理として応答レジスタ21を数百ns毎
にサーチする。
【0031】一方、1番目のワード演算命令MOVブラ
ンチを認識して停止していたビット演算処理部10は、
スタート信号S(レジスタ21のリセット信号でもあ
る)で起動され、ビット演算器16はSPC10が指示
するメモリ3のアドレスから命令を読出して演算する。
ビット演算処理部10は実行中に、演算種別コード(B
/W)からワード演算命令を認識すると、アキュームレ
ータ(Ab)17の出力であるワード演算命令の実行信
号11aを応答レジスタ21に渡してビット演算処理を
停止する。実行信号11aはAb=0(真)で上記認識
したワード演算ブランチ命令に対応するワード演算命令
を実行する。一方、Ab≠0(偽)であれば次命令にジ
ャンプする(MPUの実行部13のプログラムポインタ
を次命令に歩進)。このジャンプによって、ビット演算
の結果(真/偽)による当該ワード演算命令の実行/非
実行が制御される。
【0032】CIR11は、ビット演算処理部9と同じ
タイミングでメモリ3からMPUブランチ命令であるA
DDブランチを読出し、命令デコーダ18でMPU2が
判読できるワード演算開始指令11cに翻訳して応答レ
ジスタ21に送り、この信号が上記応答信号A40にな
る。さらに、ADDブランチ命令のINST No(2
番目)とMPU2からレジスタ20にセットされている
INST No(2番目)を比較器19で比較し、判定
結果11bを応答レジスタ21に出力する。INST
Noが不一致のとき、信号11bは異常を出力して演算
処理を中断する。応答レジスタ21は信号11a〜11
cがセットされたとき応答可能となる。
【0033】MPU2は停止状態においても、コプロセ
ッサ制御部14は応答レジスタ21のサーチを続け、ワ
ード演算開始指令11cが応答されると処理部13を起
動し、ワード演算メモリ4からワード演算命令ADDを
読出して演算する。このときMPU2がプリフエッチ型
であれば、プリフエッチ部12で図2のようにADDを
プリフエッチしているので、ADD演算は開始指令を受
けとると直ちに実行され、切り替え時のオーバヘッドが
大幅に低減される。
【0034】ちなみに、本実施例でMPUに68030
(モトローラ社 商標)を採用すると、SPUがMOV
ブランチを認識してMPUを起動するまで(切替時間)
0.3〜0.5μs で、1ワード演算の処理時間は約1
μsとなり、1ワード演算でも従来の処理時間の1/2
〜1/3程度短縮され、ワード演算の比率が増すにした
がって一層の高速処理が実現できる。
【0035】上記実施例は、MPU2がワード演算命令
を終了する度にSPUブランチを実行する方式であっ
た。しかし、複数のワード演算命令を1つのワード演算
群にまとめ、このワード演算群単位にワードブロックブ
ランチ命令を実行するようにしてもよい。
【0036】図6はこの実施例で、ワード演算メモリ4
に連続して記憶されるワード演算命令MOV,ADD,
MULがブランチすることなく連続して演算される。こ
れによれば、図2の例でMOV,SPUブランチ,AD
Dからなる2のワード演算命令を実行する間に、本例で
はMOV,ADD,MULの3のワード演算命令を実行
でき、演算切替時のオーバヘッドはさらに低減される。
【0037】ところで、切替手段にコプロセッサインタ
ーフェースレジスタ(CIR)を用いない従来の切り替
え方式、たとえばビット演算中、MPUが自己ループを
形成してダミー命令の実行などを行なうものでは、MP
Uの実行時、各ワード演算に対応するサブルーチンにジ
ャンプしなければならない。したがって、プリフエッチ
型MPUを用いると、プリフエッチ時にこのジャンプ命
令とワードメモリ4でこれに続く不要な命令をプリフエ
ッチしてしまい、実際のジャンプ命令実行時にはこの不
要な命令のうえに再び、ジャンプ先の命令をプリフエッ
チすることになる。このように無駄なプリフエッチや捨
てられるプリフエッチはかえってオーバヘッドを増大し
てしまう。
【0038】しかし本発明は、上記実施例のように切り
替えにCIR11を用いて、ビット演算中はMPU2の
処理部13を停止し、更に、ワード演算命令はワード演
算メモリ4に実行順に格納してあるので、無駄なプリフ
エッチを防止し、捨てられるプリフエッチもなく、汎用
プリフエッチ形MPUの長所を十分に生かすことができ
る。
【0039】図7は本発明の別の実施例で、図1の構成
に対し、ビット演算プロセッサ(SPU)1がパラメー
タコントロールレジスタ15を備えているところに特徴
がある。パラメータコントロールレジスタ15には転送
元データおよび転送先アドレスをインデックス修飾する
ためのアドレスバッファ24、26を有する。また、ビ
ット演算メモリ3に格納されるMPUブランチ命令のア
ドレスPARAは、MOVブランチの後には転送元アド
レス(ア)と転送先アドレス(イ),ADDブランチの後
には加算元アドレス1(ウ)と加算元アドレス2
(エ),転送先アドレス(オ)が記憶されている。
【0040】このような構成において、SPU1がMO
Vブランチを認識すると、CIR11 を介してMPU2にM
OV開始指令Aを出力する一方で、パラメータコントロ
ールレジスタ15のイミディエードデータを格納するレ
ジスタNo1にデータメモリ7の転送元データを格納
(図8のア)、データメモリ7の転送先アドレスを格納
するレジスタNo2に転送先アドレスを出力する(図8
のイ)。MPU2は、レジスタNo1のデータを取り込
みMOV(転送)命令を実行してレジスタNo2の転送
先アドレスに出力する。なお、レジスタNo1およびレ
ジスタNo2はアドレスが固定されるため、MPU2か
ら見たアドレスは常に同じである。
【0041】つぎにADDブランチを認識すると、CI
R11を介してMPU2にADD開始指令を出力する。
一方で、MPUのアクセス順にしたがって加算元アドレ
ス1,2をレジスタNo2を介してデータメモリ7にア
ドレスを出力し、データを取り込む(図8のウ、エ)。
さらに、レジスタNo2を介してデータを書き込む(図
8のオ)。
【0042】図9はパラメータコントロールレジスタ1
5の詳細な構成で、パラメータコントロールデータラッ
チ22,パラメータ切替器23,アドレスバッファ2
4,アドレスデコーダ25およびデータ切替器26から
なる。このパラメータコントロール15によって、MP
U2がパラメータを解読することなくワード演算処理を
実行できる。なお、データ切替器23は前記レジスタN
o1、アドレスバッファ24は前記レジスタNo2に相
当する。
【0043】この構成において、SPU1はワード演算
命令MOV(図9)を認識すると、上記PARA CO
NTをデータラッチ22へセットする(PARACONTO
のパラメータ数は2)。ビット演算処理部10からCI
R11の応答レジスタ21にワード演算実行信号11a
がセットされると、アドレスデコーダ25はパラメータ
の解読を開始する。データラッチ22は残パラメータ数
を示す切替No信号15bをパラメータ切替器23に与
え、切替器23は最初、イミディエードデータH500
を指す。
【0044】MOV演算開始指令を受けたMPU2は、
ワード演算メモリ4のオブジェクト「MOVE (A
0),D0」を実行する。A0はパラメータコントロー
ル15のアドレスをインデックス修飾したもの、D0は
MPU3のたとえばアキュムレータのアドレスである。
データ切替器26はアドレス/数値切替信号15aが数
値を示しており、パラメータ切替器23側を指している
ので、MPU2はパラメータコントロール15の(アド
レスA0)のデータとして、ビット演算メモリ3のパラ
メータ500をデータ切替器26を介して受け取り、D
0に記憶する。
【0045】次に、残パラメータ数を1としパラメータ
切替器23は、YW100を指す。これはアドレスなの
でアドレスバッファ24にセットされ、データメモリ7
のアドレスはYW100を指している。MPU2は「M
OVE D0,(A0)」を実行する。データ切替器26
はデータメモリ7を指し、MPU2はパラメータコント
ロール15(A0)を介して、データメモリ7のアドレ
スYW100にD0のデータを出力する。
【0046】最後に残パラメータ数0を信号15bによ
りパラメータ切替器23に与え、切替器23は次の演算
命令を指す。なお、パラメータ切替器23はSPC10
と共用してもよい。
【0047】このように本実施例のパラメータコントロ
ールレジスタによれば、転送元データや転送先アドレス
はインデックス修飾され、MPU側からは常に固定され
ている。したがって、MPUのアドレス取り込み時間が
削減でき、アドレス空間の大規模なシステムでは実行時
間が大巾に短縮される。ちなみに、MPUに68030 を用
いた場合、1.0μs以下のワード演算が実現される。
【0048】さらに、パラメータコントロールデータラ
ッチ22およびパラメータ切替器23が、一命令分先行
してワード演算命令を認識してパラメータを解読するよ
うにすれば、ワード演算命令を認識する時間も見かけ上
ゼロにすることができ、より高速化が可能となる。
【0049】図10は本発明の上記各実施例を組み合わ
せたプログラマブルコントローラ100を示す。シーケ
ンス演算処理装置6は、SPU1とプリフエッチ型の汎
用MPU2と、両者の同期を取りながらプログラム順に
切り替え実行させるCIR11と、MPU2側からのア
ドレスをインデックス修飾するパラメータコントロール
15を設けている。さらに、通信及びタスク管理等の処
理用としてもう1つのプロセッサCPU5を設けてい
る。
【0050】このプログラマブルコントローラによれ
ば、MPU2は命令をプリフエッチしながらワード演算
を専用処理し、かつ、CIRやパラメータコントロール
の結合によって切り替えのオーバヘッドを大幅に低減し
ているので、専用ハードウエアで構成するプログラマブ
ルコントローラと同等の速度で、ビット/ワード混在命
令のプログラムを実行できる。
【0051】以上説明した本発明のプログラマブルコン
トローラを、図3に示した搬送制御に適用した実施例を
説明する。
【0052】図3(a)において、スイッチ600がオ
ペレータあるいは他からの信号によってオンされると、
プログラマブルコントローラ100はモータ400を起
動,加速してコンベア300を駆動し、箱700をセン
サ500の方向へ移動する。箱700の端部がセンサ5
00によって検知される位置に達すると、この検知信号
を受けとったコントローラ100は箱700が所定の位
置(この例ではセンサの真下に箱の中央:1/2L)に
停止するように、モータ400を減速し停止する。
【0053】図3(b)に示すモータの起動加速、減速
停止制御は、シーケンス演算処理装置6に予め格納され
ている制御プログラムとPIOメモリ7に取り込まれた
プロセス入力データの演算により行われる。ここで、箱
700をセンサ500の真下に高速かつ高精度に位置決
めするには、スイッチ600等のオンオフを処理するビ
ット演算に連係してモータ400の速度(アナログ量)
を取り込み、その減速度αmを高速にワード演算(数値
演算)することが必要になる。
【0054】図11は上述の制御をラダー言語で記述し
たプログラムである。同図において、接点シンボルやコ
イルシンボルはビット演算命令であり、(w )− の
シンボル以下がワード演算命令である。また、X00
0,X001,R000,R001,V000はデータメモ
リ7のビットアドレスであり、XW100,YW10
0,RW100,RW200,RW300はデータメモ
リ7のワードアドレスである。
【0055】スイッチ600のONによりX000番地
のa接点がONされる。X001番地のb接点はセンサ
500が箱700を検知するまでONを維持する。R0
01のコイルはX000のONによって励磁され、その
a接点がONとなって自己保持される。X000とR0
01の両a接点はORの関係にあり、X000のONで
モータ400が起動される。
【0056】つぎに、(w )─MOV H500→Y
w100はMOV(転送)のワード演算命令を示し、こ
れによって所定の加速度αmであるH500のデータを
データメモリ7のアドレスYw100に格納し、モータ
400はこの加速度に応じた電圧を印加され起動,加速
される。起動後のモータ400の速度Vmは図示しない
速度センサによって検出され、データメモリ7のXW1
00アドレスに格納される。センサ500が箱700の
端部を検出するとX001のb接点がOFFし、モータ
400の加速を止める。
【0057】一方、X001のa接点がONするので、
プログラマブルコントローラ100は、ここからL/2
移動した位置で箱700が停止するように減速度αmを
下記、数1によって計算(ワード演算)し、この減速度
を達成する減速電圧(この関係が不明)をモータ400
に印加(実際にはモータ内蔵出力アンプへ入力)する。
【0058】 αm=2Vm(1−Vm)/L …(数1) ただしVm:モータ速度 L:箱700の長さ この数1は以下のようにワード演算される。
【0059】 「2Vm」:(w )−ADD XW100+XW100→Rw100 「2Vm÷L):(w )−ADD RW100÷H1000→RW200 「2Vm2/L」:(w )−MUL RW200×XW100→RW300 「2Vm/L−2Vm2/L」:(w )−SUB RW100−RW300→ YW300 これらビット/ワード演算の混合命令を高速に処理する
ほど箱700の位置決め精度が向上する。
【0060】図12は上記プログラムの格納状況を示し
たもので、ビット演算メモリ3に図5のフォーマットに
よる混合命令を、ワード演算メモリ4にワード演算命令
のオブジェクトコードをそれぞれ実行順に記憶してい
る。たとえば、ワード演算命令DIVは、INST N
o=3(メ3),PARA CONT=3,PARA1
〜3(RW100,H1000,RW200)がビット
演算メモリ3に格納される。ワード演算メモリ4のDI
V命令は、INST No=3(#$3)番目にマシン
語であるオブジェクトコードによって格納される。
【0061】つぎに、この搬送制御におけるSPU1と
MPU2の処理を説明する。いま、MPU2が2番目の
ワード演算命令ADDの実行を終了したとする。MPU
2はこのADD終了後、3番目のワード演算命令DIV
の実行要求と、今回ワード演算命令が3番目であること
をCIR11のINST Noレジスタ20にセットす
る。この命令がワード演算メモリ4に格納されている
「cpBAEQ jp3#$3」である。その後、MP
U2は応答レジスタ21の応答待ち状態となる。一方、
2番目のワード演算命令ADDを認識して停止していた
ビット演算処理部9は、レジスタ20のセット信号11
dで起動され、ビット演算器16はビット演算メモリ3
からSPC10の指示する順番に命令を読出して演算す
る。ビット演算処理部9は実行中に、演算種別コード
(B/W)からMPUブランチ命令を認識すると、その
アキュームレータ17よりワード演算実行信号11aを
応答レジスタ21に渡す。さらに、DIVブランチのP
ARAであるRW100(転送元アドレス)のデータ
(2Vm)をデータ切替器のレジスタNo1に、転送先
アドレスRW200をアドレスバッファのレジスタNo
2に記憶して、パラメータコントロールレジスタ15に
よるインデックス修飾をおこなう。その後ビット演算処
理部9は停止する。
【0062】CIR11は、ビット演算処理部9と並行
してメモリ3からDIVブランチ命令である(w )−
DIV(メ3))を読出し、デコーダ18でMPU2が
解釈できるDIV開始指令11cに翻訳して応答レジス
タ21にセットする。また、上記DIVブランチ命令中
の(メ3)をINSTNoレジスタ20のINSTNo
と比較器19で比較し、一致していればMPU2のワー
ド演算の開始が可能となる。不一致のときはプログラム
の実行が中止される。
【0063】DIV演算開始指令を受けたMPU2は、
前回の実行時にワード演算メモリ4から命令プリフエッ
チ部12にプリフエッチされている「MOVE (A
0),D0」を実行する。A0はパラメータコントロー
ル15のアドレスをインデックス修飾したもの、D0は
MPU3のアキュムレータまたはワーキングメモリのア
ドレスである。これによって、MPU2はパラメータコ
ントロール15からデータメモリ7のアドレスRW10
0のデータ(2Vm)を受けとってD0に記憶する。
【0064】次に、アドレス/数値切替信号は数値を示
すので、データ切替器26はビット演算メモリ3から数
値データ1000を受け取り、MPU2はオブジェクト
中の「DIV (A0),D0」を実行し、D0のデータ
2Vmを1000で割った結果2Vm/1000を再び
D0に記憶する。
【0065】最後に、MPU2は「MOVE D0,
(A0)」を実行し、パラメータコントロール15(A
0)を介して、データメモリ7のアドレスRW200に
データ2Vm/1000を送出し記憶する。
【0066】DIV演算が終了すると、MPU2はCI
R11に4番目のワード演算命令MULの実行要求と、
今回ワード演算命令が4番目であることをSPU1に連
絡し、停止する。SPU1はビット演算を再開するが、
つぎの命令がワード演算のMULブランチであるため、
直ちにMUL開始指令を出力する。この指令によってM
PU2は(2Vm×Vm/L)を計算する。同様にし
て、5番目のワード演算SUBを実行して減速度αmが
求められ、この減速度αmに制御される電圧がモータ4
00に印加される。
【0067】
【発明の効果】以上説明したように、本発明によれば、
ワード演算に汎用のプリフエッチ型MPUを用いても、
ビット演算との間でオーバヘッドなく切り替え可能な高
速のプログラマブルコントローラを提供できる。これに
よって、複雑なシーケンス制御のリアルタイム処理が可
能になる。また、汎用MPUを用いるので、システムの
開発や変更も容易に行なうことができる。
【図面の簡単な説明】
【図1】本発明の一実施例の構成を示すブロック図であ
る。
【図2】本発明の一実施例の動作を示すタイムチャート
である。
【図3】本発明の適用対象を説明する概念図である。
【図4】ビット演算処理装置(SPU)の詳細を示すブ
ロック図である。
【図5】ビット演算命令/ワード演算命令のフォーマッ
トを説明する概念図である。
【図6】本発明の実施例の異なる動作を示すタイムチャ
ートである。
【図7】本発明の他の実施例の構成を示すブロック図で
ある。
【図8】本発明の他の実施例の動作を示すタイムチャー
トである。
【図9】パラメータコントロールレジスタの詳細を示す
ブロック図である。
【図10】本発明のさらに他の実施例の構成を示すブロ
ック図である。
【図11】本発明の適用例を示すラダープログラム図で
ある。
【図12】適用例の演算命令の格納状態を説明する図で
ある。
【符号の説明】
1…ビット演算プロセッサ(SPU)、2…汎用マイク
ロプロセッサ(MPU)、3…ビット演算メモリ、4…ワ
ード演算メモリ、7…データメモリ、9…ビット演算
部、11…コプロセッサインターフェースレジスタ(C
IR)、12…命令プリフエッチ部、13…ワード演算
処理部、14…コプロセッサ制御部、15…パラメータ
コントロールレジスタ、21…応答レジスタ、24…ア
ドレスバッファ、26…データ切替器。
───────────────────────────────────────────────────── フロントページの続き (72)発明者 大沼 邦彦 茨城県日立市大みか町五丁目2番1号 株 式会社日立製作所大みか工場内 (72)発明者 梓沢 昇 茨城県日立市大みか町五丁目2番1号 株 式会社日立製作所大みか工場内 (72)発明者 菊池 洋光 茨城県日立市大みか町五丁目2番1号 株 式会社日立製作所大みか工場内

Claims (7)

    【特許請求の範囲】
  1. 【請求項1】ビット演算命令とワード演算命令が混在す
    る混在命令を実行順に記憶するビット演算メモリと、前
    記混在命令の前記ワード演算命令を実行順に記憶するワ
    ード演算メモリと、前記ビット演算命令の実行に続いて
    前記ビット演算メモリから読出されたワード演算命令を
    認識したとき該ワード演算命令の開始指令を出力するビ
    ット演算処理プロセッサと、前記ワード演算の開始指令
    を受信して前記ワード演算メモリに記憶されている前記
    ワード演算命令を実行するマイクロプロセッサを具備す
    ることを特徴とするプログラマブルコントローラ。
  2. 【請求項2】請求項1において前記ビット演算処理プロ
    セッサは、前記認識したワード演算命令を解読し前記マ
    イクロプロセッサが処理できる開始指令に変換して出力
    する切替手段を備えることを特徴とするプログラマブル
    コントローラ。
  3. 【請求項3】ビット演算命令とワード演算分岐命令を実
    行順に記憶するビット演算メモリと、前記ワード演算分
    岐命令に対応するワード演算命令とビット演算分岐命令
    を実行順に記憶するワード演算メモリと、前記ビット演
    算メモリの命令を実行するビット演算プロセッサと、前
    記ワード演算メモリの命令を実行するマイクロプロセッ
    サと、実行中の前記ワード演算分岐命令または前記ビッ
    ト演算分岐命令に応じて実行中の一方の演算を停止する
    と共に停止中の他方の演算を開始する切替え手段を具備
    することを特徴とするプログラマブルコントローラ。
  4. 【請求項4】ビット演算命令とワード演算命令が混在す
    る制御プログラムを実行するプログラマブルコントロー
    ラにおいて、 前記ワード演算命令を実行順に記憶するワード演算メモ
    リと、前記ビット演算命令とワード演算分岐命令を実行
    順に記憶するビット演算メモリと、前記ワード演算命令
    を実行しその終了後に次のワード演算命令の実行要求を
    出力して応答待ち状態となるマイクロプロセッサと、前
    記次のワード演算命令の実行要求を受けて起動し前記ビ
    ット演算命令の実行を開始するビット演算処理プロセッ
    サと、該ビット演算処理プロセッサの前記ワード演算分
    岐命令の認識を受けて前記応答待ちのマイクロプロセッ
    サにワード演算の開始指令となる応答信号を出力する切
    替手段を具備することを特徴とするプログラマブルコン
    トローラ。
  5. 【請求項5】ビット演算命令とワード演算命令が混在す
    るプログラムを実行するプログラマブルコントローラに
    おいて、 前記ビット演算命令とワード演算分岐命令を実行順に記
    憶するビット演算メモリと、前記ワード演算命令のオブ
    ジェクトコードを実行順に記憶するワード演算メモリ
    と、前記ビット演算命令の実行中に前記ワード演算分岐
    命令を認識するとワード演算開始指令を出力するビット
    演算処理プロセッサと、該ワード演算開始指令を受けて
    前記ワード演算命令のオブジェクトコードを実行するマ
    イクロプロセッサと、前記ビット演算処理プロセッサは
    前記ワード演算分岐命令に含まれる転送アドレスが前記
    マイクロプロセッサ側からは固定されるようにインデッ
    クス修飾するアドレスコントロール手段を具備すること
    を特徴とするプログラマブルコントローラ。
  6. 【請求項6】請求項1乃至5において前記マイクロプロ
    セッサは、プリフエッチ型の汎用マイクロプロセッサで
    あって、前記ワード演算命令の実行と並行して前記ワー
    ド演算メモリに記憶されている次または次以降複数のワ
    ード演算命令をプリフエッチするプリフエッチ手段を具
    備することを特徴とするプログラマブルコントローラ。
  7. 【請求項7】ビット演算処理プロセッサと汎用マイクロ
    プロセッサを設けて、ラダー命令語によるビット演算命
    令と汎用計算機言語によるワード演算命令が混在するプ
    ログラムを処理するシーケンス制御方法において、 前記ビット演算処理プロセッサが前記ラダー命令語によ
    るビット演算実行中にワード演算分岐命令を認識したと
    き、該ワード演算分岐命令を前記汎用計算機言語による
    ワード演算開始指令に変換して前記マイクロプロセッサ
    の処理を開始させ、前記汎用計算機言語によるワード演
    算命令を実行するようにしたことを特徴とするシーケン
    ス制御方法。
JP3277447A 1991-10-24 1991-10-24 プログラマブルコントローラおよびシーケンス制御方法 Expired - Fee Related JP2848060B2 (ja)

Priority Applications (4)

Application Number Priority Date Filing Date Title
JP3277447A JP2848060B2 (ja) 1991-10-24 1991-10-24 プログラマブルコントローラおよびシーケンス制御方法
EP92309459A EP0539115B1 (en) 1991-10-24 1992-10-16 Programmable controller
DE69232371T DE69232371T2 (de) 1991-10-24 1992-10-16 Programmierbares Steuergerät
US08/441,646 US5504930A (en) 1991-10-24 1995-05-15 Programmable controller and sequence control method

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP3277447A JP2848060B2 (ja) 1991-10-24 1991-10-24 プログラマブルコントローラおよびシーケンス制御方法

Publications (2)

Publication Number Publication Date
JPH05127710A true JPH05127710A (ja) 1993-05-25
JP2848060B2 JP2848060B2 (ja) 1999-01-20

Family

ID=17583706

Family Applications (1)

Application Number Title Priority Date Filing Date
JP3277447A Expired - Fee Related JP2848060B2 (ja) 1991-10-24 1991-10-24 プログラマブルコントローラおよびシーケンス制御方法

Country Status (4)

Country Link
US (1) US5504930A (ja)
EP (1) EP0539115B1 (ja)
JP (1) JP2848060B2 (ja)
DE (1) DE69232371T2 (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20170029775A (ko) * 2015-09-08 2017-03-16 삼성전자주식회사 메모리 시스템 및 그 동작 방법

Families Citing this family (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE69322283T2 (de) * 1992-10-19 1999-05-20 Siemens Energy & Automat Hoch schnelligkeit speicher programmierbar steuerung
JPH0816530A (ja) * 1994-07-04 1996-01-19 Kurieiteibu Design:Kk コプロセサシステムおよび補助演算機能付外部メモリ装置
US6009454A (en) * 1994-09-30 1999-12-28 Allen-Bradley Company, Llc Multi-tasking operation system for industrial controller
US5862401A (en) * 1994-10-11 1999-01-19 Crown International, Inc. Programmable central intelligence controller and distributed intelligence network for analog/digital control systems
US5933651A (en) * 1995-09-29 1999-08-03 Matsushita Electric Works, Ltd. Programmable controller
US5941966A (en) * 1997-05-05 1999-08-24 International Business Machines Corporation Method and apparatus using a plural level processor for controlling a data bus
US5961631A (en) * 1997-07-16 1999-10-05 Arm Limited Data processing apparatus and method for pre-fetching an instruction in to an instruction cache
IL272249B2 (en) 2017-07-26 2023-11-01 Intra Cellular Therapies Inc organic compounds

Family Cites Families (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE2522343C3 (de) * 1975-05-20 1979-03-08 Siemens Ag, 1000 Berlin Und 8000 Muenchen Anordnung zur Steuerung Von Verfahrensabläufen
JPS54114687A (en) * 1978-02-27 1979-09-06 Toyoda Mach Works Ltd Sequence controller
DE3302940A1 (de) * 1983-01-28 1984-08-02 Siemens AG, 1000 Berlin und 8000 München Speicherprogrammierbare steuerung mit wort- und bitprozessor
DE3302929A1 (de) * 1983-01-28 1984-08-02 Siemens AG, 1000 Berlin und 8000 München Speicherprogrammierbare steuerung
DE3323824A1 (de) * 1983-07-01 1985-01-03 Siemens AG, 1000 Berlin und 8000 München Speicherprogrammierbare steuerung
EP0174231B1 (en) * 1984-08-02 1990-11-14 Telemecanique Programmable controller ("pc") with co-processing architecture
JPS62169205A (ja) * 1986-01-22 1987-07-25 Hitachi Ltd プログラマブルコントロ−ラ
JPS63172343A (ja) * 1987-01-12 1988-07-16 Hitachi Ltd 命令先取り方式
JPH02249006A (ja) * 1989-03-23 1990-10-04 Mitsubishi Electric Corp プログラマブルコントローラ
US5068821A (en) * 1989-03-27 1991-11-26 Ge Fanuc Automation North America, Inc. Bit processor with powers flow register switches control a function block processor for execution of the current command
GB2232514B (en) * 1989-04-24 1993-09-01 Yokogawa Electric Corp Programmable controller
JPH02284206A (ja) * 1989-04-26 1990-11-21 Fanuc Ltd プログラマブル・コントローラ
JP2508862B2 (ja) * 1989-12-25 1996-06-19 住友金属工業株式会社 熱間継目無管製造用プラグ
JP2529429B2 (ja) * 1989-12-26 1996-08-28 株式会社日立製作所 プログラマブルコントロ―ラ

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20170029775A (ko) * 2015-09-08 2017-03-16 삼성전자주식회사 메모리 시스템 및 그 동작 방법

Also Published As

Publication number Publication date
DE69232371D1 (de) 2002-03-14
EP0539115B1 (en) 2002-01-23
US5504930A (en) 1996-04-02
JP2848060B2 (ja) 1999-01-20
EP0539115A3 (en) 1994-11-09
DE69232371T2 (de) 2002-11-14
EP0539115A2 (en) 1993-04-28

Similar Documents

Publication Publication Date Title
FI90804C (fi) Dataprosessorin ohjausyksikkö, jolla on käskyn esihaun uudelleensuuntausta käyttävä keskeytyspalvelu
US4847753A (en) Pipelined computer
JP2616182B2 (ja) データ処理装置
JPH02240735A (ja) データ冗長度分解能をもつマルチプル命令処理システム
KR100259306B1 (ko) 분기 명령 버퍼를 갖는 데이타 프로세서
JP2848060B2 (ja) プログラマブルコントローラおよびシーケンス制御方法
US6631459B1 (en) Extended instruction word folding apparatus
JPH056894B2 (ja)
JP2556182B2 (ja) デ−タ処理装置
JP2723238B2 (ja) 情報処理装置
EP0292188B1 (en) Cache system
JPH10124312A (ja) 中央処理装置
JP2689914B2 (ja) 情報処理装置
JPS6349938A (ja) 命令先取り制御装置
JP2772100B2 (ja) 並列命令フェッチ機構
JPS5925264B2 (ja) ベクトル命令処理方式
KR19980052331A (ko) 프로세서의 캐시 메모리 제어 방법
JPH0241770B2 (ja)
JP2806690B2 (ja) マイクロプロセッサ
JP3414579B2 (ja) プログラマブルコントローラ
JP2902847B2 (ja) 自己変更コード実行方式
JP2545594B2 (ja) オペランドデータ先取り方式
JPH01271842A (ja) 情報処理装置
JPH03164945A (ja) データ処理装置
JPH10207708A (ja) プログラマブルコントローラ

Legal Events

Date Code Title Description
LAPS Cancellation because of no payment of annual fees