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

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

Info

Publication number
JP3024410B2
JP3024410B2 JP4347931A JP34793192A JP3024410B2 JP 3024410 B2 JP3024410 B2 JP 3024410B2 JP 4347931 A JP4347931 A JP 4347931A JP 34793192 A JP34793192 A JP 34793192A JP 3024410 B2 JP3024410 B2 JP 3024410B2
Authority
JP
Japan
Prior art keywords
instruction
data
word
parameter
address
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 - Fee Related
Application number
JP4347931A
Other languages
English (en)
Other versions
JPH06202713A (ja
Inventor
敏彦 松田
光明 小林
泰男 諸岡
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
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 JP4347931A priority Critical patent/JP3024410B2/ja
Publication of JPH06202713A publication Critical patent/JPH06202713A/ja
Application granted granted Critical
Publication of JP3024410B2 publication Critical patent/JP3024410B2/ja
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Landscapes

  • Programmable Controllers (AREA)

Description

【発明の詳細な説明】
【0001】
【産業上の利用分野】本発明はプログラマブルコントロ
ーラに係り、特にビット演算とワード演算が混在したシ
ーケンスプログラムを実行するプログラマブルコントロ
ーラに関する。
【0002】
【従来の技術】プログラマブルコントローラはリレー・
シーケンス制御装置に置き換えられて発展してきたが、
処理の高速化,プログラムメモリ容量の増加,機能の向
上が図られ、順序を制御するシーケンス制御(ビット演
算)機能のみならず、数値演算(ワード演算)機能も備
えるようになっている。それにともない、従来のリレー
・シーケンス制御装置とは比較にならないほどに大規
模,複雑な制御を行うようになってきているため、四則
演算は言うに及ばず、三角関数,指数関数などの複雑な
関数演算をも含めた数値演算(ワード演算)を高速に行
うことが要求されてきている。
【0003】ところで、プログラマブルコントローラの
プログラミングはその発展経過からリレー・シーケンス
制御装置の回路図を記述するのと同等なラダーダイアグ
ラムを用いるラダープログラムによって行われている。
なお、ワード演算もラダープログラム中に記述できるよ
うに改良されてきたため、ユーザはシーケンス制御(ビ
ット演算)、数値演算(ワード演算)を区別することな
くラダープログラム中に記述できる。このラダープログ
ラムはラダーダイアグラムと1対1に対応するシーケン
スプログラムに変換され、プログラマブルコントローラ
のシーケンスプログラムメモリに格納され実行される。
【0004】このため特開昭61−48001 号記載のように
プログラマブルコントローラの演算部には、ビット演算
部とワード演算部をそれぞれ専用に設け、シーケンスプ
ログラム中のビット演算命令はビット演算部で実行し、
ワード演算命令はワード演算部で処理するようにしてい
る。
【0005】ワード演算部には汎用のマイクロプロセッ
サが使用される。汎用マイクロプロセッサは半導体技術
の発展に伴いますます高速,高機能化されるので、容易
にワード演算の高速化や、ワード演算処理プログラムの
変更,追加による新機能のワード演算の組み込の容易性
等の特徴を持つ優れた方式である。
【0006】
【発明が解決しようとする課題】しかし、汎用マイクロ
プロセッサの備えている命令語はシーケンスプログラム
中のワード演算命令とは全く異なった命令体系となって
いる。そのため汎用マイクロプロセッサはシーケンスプ
ログラム中のワード演算命令を自身の命令に翻訳して実
行(インタプリタにより実行)するため、ワード演算命
令の実行は汎用マイクロプロセッサ自身の命令実行時間
の数倍の時間を必要とする。たとえば加算では汎用マイ
クロプロセッサ自身の加算命令は1μs以下で実行でき
るが、ワード演算命令の加算を実行すると、30μsを
要してしまう問題がある。
【0007】これを避けるにはシーケンスプログラム中
のワード演算命令を汎用マイクロプロセッサの命令語に
してしまうことも考えられる。しかしその場合、シーケ
ンスプログラム中にはビット演算部とワード演算部の両
方のプログラムを混在させて記述する必要があり、従来
シーケンスプログラムとの互換性が無くなる問題がある
ため、容易ではない。さらにビット演算部の処理をイン
タプリタで行うようになり、逆にビット演算部の処理が
遅くなってしまう問題も生じる。
【0008】一方、シーケンスプログラム中のワード演
算命令を自身の命令とするマイクロプロセッサにより高
速化する方式も可能であるが、この場合には汎用マイク
ロプロセッサは使えず、ワード演算命令を直接実行でき
る専用のプロセッサを開発しなければならない。三角関
数などの関数演算も実行できる高速なプロセッサの開発
には大きな困難があり、しかもワード演算命令の追加,
機能変更等の度にプロセッサの再開発を要する問題があ
る。
【0009】本発明はかかる問題点に鑑みて、ワード演
算を汎用マイクロプロセッサで高速で実行するプログラ
マブルコントローラを提供することを目的とする。
【0010】
【課題を解決するための手段】上記目的を達成するた
め、シーケンスプログラムメモリに格納されたシーケン
ス命令を読み出してビット・ワード演算命令を判別する
シーケンス命令フェッチ・デコーダと、シーケンス命令
フェッチ・デコーダからのワード演算命令のアドレッシ
ングモードを解読し、そのアドレッシングモードのデー
タをマイクロプロセッサに対し入出力するパラメータコ
ントロールとを設けている。
【0011】
【作用】シーケンス命令フェッチ・デコーダはシーケン
スプログラムメモリからシーケンス命令を読みだして判
別する。シーケンス命令がビット演算命令である場合に
はビット演算部で実行し、ワード演算命令である場合に
はパラメータコントロールとワード演算部のプログラム
を起動する。パラメータコントロールはワード演算命令
のパラメータをシーケンスプログラムメモリから読みだ
し、汎用マイクロプロセッサに対しワード演算命令のパ
ラメータで指定するデータを入出力する。汎用マイクロ
プロセッサは自身の命令により入出力したデータを使用
してワード演算を実行する。
【0012】こうして汎用マイクロプロセッサがシーケ
ンス命令中のワード演算命令を自身の命令に翻訳する処
理を不要とし、汎用マイクロプロセッサ自身の命令の実
行で、ワード演算命令で指定している演算対象データを
操作できるようにする。
【0013】
【実施例】以下、図面を参照して本発明を説明する。
【0014】図1は本発明の一実施例である。プログラ
マバブルコントローラ100は以下のように機能する。
まず図示しない入力装置により入力データがデータメモ
リ4に書き込まれる。その入力データに対し、シーケン
スプログラムメモリ1に格納されたシーケンスプログラ
ムに従って、ビット演算部2でビット演算が、またワー
ド演算部3でワード演算が行われ、その演算結果はデー
タメモリ4に格納される。そして同じく図示していない
出力装置によりデータメモリ4からその演算結果が読み
出されることで、制御対象を制御する。
【0015】シーケンス命令フェッチ・デコーダ5は、
シーケンスプログラム1からシーケンス命令を読出し、
命令に応じてビット演算部2またはワード演算部3に処
理させる。その動作は読み出すシーケンス命令のアドレ
スをプログラムアドレスバスaで指定し、シーケンスプ
ログラムメモリ1からプログラムデータバスdを介して
読みだし解読する。そのシーケンス命令がビット演算命
令の場合にはそれをビット命令バスbを介してビット演
算部2に送り、ビット演算処理を行わせる。またシーケ
ンス命令がワード演算命令の場合にはワード命令バスc
を介してパラメータコントロール6のタイミングコント
ロール64に送る。タイミングコントロール64はワー
ド命令を受けるとワード演算起動6aによりマイクロプ
ロセッサ31に対してワード演算プログラムを開始させ
るとともに、パラメータコントロール6の処理を開始す
る。パラメータコントロール6はワード演算命令のパラ
メータを読み出すためのパラメータ信号を、パラメータ
リード6bからシーケンス命令フェッチ・デコーダ5へ
送り、シーケンスプログラムメモリ1からワード命令バ
スcを介してパラメータを受け取る。
【0016】またタイミングコントロール64はアドレ
スレジスタ61,イミディエイトデータレジスタ62,
データバスセレクタ63の各部動作を制御する。データ
バスセレクタ63は、データメモリ4のデータまたは、
イミディエイトデータレジスタ62のイミディエイトデ
ータの、どちらか一方をMPUデータバス3aに接続す
るが、その選択はタイミングコントロール64から出力
されるデータセレクト64aにより実施される。なおア
ドレスレジスタ61はデータメモリ4のアクセスアドレ
スを指定し、メモリ4のデータをデータバスfから得
る。またイミディエイトデータレジスタ62の出力デー
タはイミディエイトデータバス62aを介して出力され
る。
【0017】ワード演算部3内の汎用のマイクロプロセ
ッサ31は自身の命令によりパラメータコントロール6
から出力されたデータを使用してワード演算を実行す
る。ワード演算プログラムや他のプログラムはマイクロ
プロセッサ31の命令語で作られ、ワード演算プログラ
ムメモリ32に格納される。マイクロプロセッサ31が
アドレスバス3bを介してパラメータコントロール6に
アクセスすると、アドレスデコーダ65が番地選択信号
65aをタイミングコントロール64に送り、データバ
スセレクタ63からデータバス3aを介してパラメータ
で指定するデータを入出力する。
【0018】本実施例の動作を説明するために、シーケ
ンスプログラムメモリ1に格納されるシーケンス命令の
構成,ワード演算命令の動作,ワード演算命令で演算対
象を指定するパラメータの構成を図2,図3、及び、図
4により説明する。
【0019】図2において(a)はラダープログラムの
一例を示す。(b)は前記ラダープログラムを構成する
ラダーダイアグラムとシーケンス命令との対応および、
シーケンスプログラムメモリ1へのシーケンスプログラ
ムの格納状態を示す。(c)はデータメモリ4に格納さ
れるデータに対するワード演算の実行を説明する。
【0020】図2(a)のラダープログラムは入力接点
X01,X02がともにオンの時に出力接点Y01をオ
ンし、入力接点X03,X04がともにオンの時に加算
(ワード演算)を行うプログラムであり、ワード演算は
DW00とDW01のデータを加算し、結果をDW02
に格納する演算を行う。このラダープログラムは図2
(b)に示すようにシーケンス命令に展開され、シーケ
ンスプログラムメモリ1に格納される。
【0021】ラダーダイアグラムは図2(b)に示すよ
うにシーケンス命令と1対1に対応する。シーケンス命
令は、命令の種別を表すオペコードと演算の対象を指定
するオペランドの組み合わせで構成される。
【0022】図示した例においてLD1はオペランド部
のデータをビット演算部2のビットアキュームレータに
セットする命令で、そのオペコードは01、ANDはビ
ットアキュームレータとオペランドで指定されるアドレ
スのデータとの論理積をとり、その結果をビットアキュ
ームレータにセットする命令で、そのオペコードは0
2,STはビットアキュームレータのデータをオペラン
ドで指定されるアドレスに格納する命令で、そのオペコ
ードは03,ADDはパラメータで指定されるデータの
加算を行う命令で、そのオペコードは80である。ビッ
ト演算命令のオペコードは00〜7F(16進表示)、
ワード演算命令のオペコードは80〜FF(16進表
示)としており、オペコードの最上ビットの1/0によ
りビット・ワード演算命令の判別ができるようになって
いる。
【0023】ワード演算命令のオペランドはビット演算
命令とは異なりパラメータ数が設定され、続いてパラメ
ータの演算対象指定方法を規定するアドレッシングモー
ドを示すAM、続いてパラメータが演算対象の数だけ並
ぶ構成をとる。
【0024】加算のワード演算(ADD)の場合にはパ
ラメータ数は3になり、アドレッシングモードAMは00
020202になる(これに関しては図4により詳しく説明す
る)。図2(c)に示すようにデータメモリ4にDW0
0,DW01,DW02が割り当てられていれば、その
アドレス1000,1001,1002がパラメータの
オペランドに図2(b)に示すように設定される。
【0025】図2(c)によりワード演算(加算)の実
行を説明する。変数名DW00が割り当てられた100
0番地のデータ(0003)と同じくDW01に対応す
る1001番地のデータ(0005)が加算され、その
結果の(0008)が変数名DW02に対応する100
2番地に格納される。このようにワード演算命令のアド
レッシングモードAMとパラメータでデータメモリ4内
の演算対象データを指定してワード演算を行う。
【0026】前記ワード演算(加算)の実行の説明はパ
ラメータのアドレッシングモードを全てダイレクトアド
レッシングモードで説明したが、アドレッシングモード
にはユーザのラダープログラムの処理に対応するために
種々のアドレッシングモードが用意されている。本実施
例のプログラマブルコントローラではイミディエイト,
ダイレクト,メモリ間接,ディスプレースメント付きメ
モリ間接,インデックス付きメモリ間接の5つのアドレ
ッシングモードをサポートする。
【0027】図3により前記5つのアドレッシングモー
ドを説明する。図3は各アドレッシングモードのラダー
プログラムでの記述方法(記述例)、そのアドレッシン
グモードでのパラメータ内容,演算対象(オペランド)
を指定する方法を示す。なお、アドレッシングモードを
指定するアドレッシングモードAMについては後で説明
する。
【0028】イミディエイト:記述は#8のように数値
を記号“#”の後に直接記述する。パラメータにはその
数値(図では0008)が設定される。パラメータに設
定された数値が(図では0008)直接オペランド(ワ
ード演算の対象)となる。
【0029】ダイレクト:記述方法はDW00のように
変数名を記述する。パラメータにはその変数名が割り当
てられたアドレス(図では1000)が設定される。ア
ドレッシングはパラメータで指定されるアドレス(図で
は1000番地)に格納されたデータ(図では000
3)がオペランドとなる。
【0030】メモリ間接:記述方法は(DW01)のよ
うに変数名を括弧“()”で記述する。パラメータには
その変数名が割り当てられたアドレス(図では1001)
が設定される。アドレッシングはパラメータで指定され
るアドレス(図では1001番地)に格納されたデータ
(図では1006)をアドレスとして、そのアドレス
(図では1006番地)に格納されたデータ(図では0
040)がオペランドとなる。
【0031】ディスプレースメント付きメモリ間接:記
述方法は2(DW02)のように数値と変数名を括弧で
記述するようにし、数値がディスプレースメントとな
る。パラメータにはその変数名が割り当てられたアドレ
ス(図では1002)とディスプレースメント(図では
0002)が設定される。このアドレッシングモードで
はパラメータが2ワード分使用される。アドレッシング
は最初のパラメータで指定されるアドレス(図では10
02番地)に格納されたデータ(図では1007)と、
2番目のパラメータ(図では0002)を加算した値
(図では1009)をアドレスとし、そのアドレス(図
では1009番地)に格納されるデータ(図では003
0)がオペランドとなる。
【0032】インデックス付きメモリ間接:記述方法は
DW04(DW05)のように変数名と変数名を括弧で
記述する。最初の変数がインデックスとなる。パラメー
タには括弧の変数名が割り当てられたアドレス(図では
1005)とインデックスとなる変数が割り当てられた
アドレス(図では1004)が設定される。このアドレッ
シングモードでもパラメータが2ワード分使用される。
アドレッシングは最初のパラメータで指定されるアドレ
ス(図では1005番地)に格納されたデータ(図では1
008)と2番目のパラメータで指定されるアドレス
(図では1004番地)に格納されたデータ(図では0
002)を加算した値(図では100A)をアドレスと
し、そのアドレスに格納されるデータ(図では001
0)がオペランドとなる。
【0033】このように複雑な多数のアドレッシングモ
ードを備えるのは種々の数値計算に対応するためであ
り、例えばメモリ間接は多数のデータの合計を求める場
合などに1つデータを得るごとにメモリ間接のメモリの
値を1つ増加させて順に次のデータを示させる場合など
に使われる。また、ディスプレースメント付きメモリ間
接、インデックス付きメモリ間接は配列構造を持つデー
タのアクセス等に使用される。
【0034】次に図4によりワード演算命令の構成とア
ドレッシングモードAMを説明する。ワード演算命令は
ワード演算の種別を示すワード演算コードとパラメータ
の数を指定するパラメータ数からなるオペコード,アド
レッシングモードを指定するAM,パラメータからな
る。ワード演算コードは24〜31ビットの1バイトが
使用され、最上位ビット(31ビット)が1である数
(16進数で80以上)でワード演算の種別を表す。0
〜3ビットの4ビットで該ワード演算で使用するパラメ
ータ数を指定する。4ビットでは0〜15までの数を指
定できるが本実施例では0〜4までを使用して最大4個
のパラメータを指定する。パラメータ数を0とした場合
にはパラメータが不要のワード演算となり後続のAM,
パラメータは省略される。
【0035】AMは8ビットで1つのパラメータのアド
レッシングモードを指定し、0〜7ビットがパラメータ
1のアドレッシングモードを指定し、順にパラメータ
2,3のアドレッシングモードを指定し、24〜31ビ
ットがパラメータ4のアドレッシングモードを指定す
る。各パラメータのアドレッシングモードの指定は各下
位4ビットで行う。アドレッシングモードAMの指定を
図4(b)に示す。なお、アドレッシングモードAMの
0000はディスプレースメント付きメモリ間接,イン
デックス付きメモリ間接の場合の第2パラメータである
ことを指定する。
【0036】次に本実施例の全体動作を説明する前に各
アドレッシングモードに対する動作を図1及び図5を用
いて説明する。図5は各アドレッシングモードに対し
て、図1に示す本実施例の主要部であるイミディエイト
データレジスタ62,アドレスレジスタ61,データバ
スf,タイミングコントロール64,データバスセレク
タ63,MPUデータバス3b,マイクロプロセッサ3
1の動作を示す。なお、説明のためのアドレスなどは図
3で使用した値をそのまま用いて行う。なお、実際にど
のアドレッシングモードの動作を行うかはワード演算命
令中の各パラメータのアドレッシングモードAMにより
決定されるが、これに関しては後で説明する。
【0037】イミディエイトアドレッシングモードの場
合にはパラメータの(0008)がシーケンスプログラ
ムメモリ1からシーケンス命令フェッチ・デコーダ5に
よって読みだされ、ワード演算命令バスcを介してタイ
ミングコントロール64に入力されると、タイミングコ
ントロール64はそのパラメータをイミディエイトデー
タレジスタ62に設定し、データバスセレクタ63の方
向をイミディエイトデータ62aとする。ここで、マイ
クロプロセッサ31がパラメータコントロール6にアク
セスすると、アドレスデコーダ65から番地選択信号6
5aが発生する。それによりタイミングコントロール6
4はデータセレクト64aを発生してデータバスセレク
タ63にイミディエイトデータバス62aとMPUデー
タバス3aを接続する。その結果、マイクロプロセッサ
31はイミディエイトデータ(0008)をアクセスで
きる。
【0038】ダイレクトアドレッシングモードの場合に
はパラメータの1000がシーケンスプログラムメモリ
1からシーケンス命令フェッチ・デコーダ5によって読
みだされ、ワード演算命令バスcを介してタイミングコ
ントロール64に入力されると、タイミングコントロー
ル64はそのパラメータをアドレスレジスタ61に設定
し、データバスセレクタ63の方向をデータバスfとす
る。ここでマイクロプロセッサ31がパラメータコント
ロール6にアクセスすると、アドレスデコーダ65から
番地選択信号65aが発生する。それによりタイミング
コントロール64はデータセレクト64aを発生してデ
ータバスセレクタ63にデータバスfとMPUデータバ
ス3aを接続する。データバスfのデータはデータアド
レスバスeで指定されたアドレスのデータであり、その
アドレスはアドレスレジスタ61が決定している。すな
わち、パラメータが指定する1000番地のデータをマ
イクロプロセッサ31は入力できる。
【0039】メモリ間接アドレッシングモードの場合に
はタイミングコントロール64は次の2段階(ステー
ジ)により動作し、マイクロプロセッサ31のパラメー
タコントロール6へのアクセスがメモリ間接アドレッシ
ングでのアクセスとなるようにする。
【0040】第1ステージ:パラメータの1001がシ
ーケンスプログラムメモリ1からシーケンス命令フェッ
チ・デコーダ5によって読みだされ、ワード演算命令バ
スcを介してタイミングコントロール64に入力される
と、タイミングコントロール64はそのパラメータ(1
001)をアドレスレジスタ61に設定し、データバス
fのデータ(1006)を入力する。
【0041】第2ステージ:タイミングコントロール6
4は第1ステージで入力したデータ(1006)をアド
レスレジスタ61に設定し、データバスセレクタ63の
方向をデータバスfとする。ここでマイクロプロセッサ
31がパラメータコントロール6にアクセスすると、ア
ドレスデコーダ65から番地選択信号65aが発生す
る。それによりタイミングコントロール64はデータセ
レクト64aを発生してデータバスセレクタ63にデー
タバスfとMPUデータバス3aを接続する。それによ
りマイクロプロセッサ31はパラメータコントロール6
を介し、アドレスレジスタ61が指定するアドレスのデ
ータにアクセスする。
【0042】ディスプレースメント付きメモリ間接アド
レッシングモードの場合にもタイミングコントロール6
4は次の2段階(ステージ)により動作し、マイクロプ
ロセッサ31のパラメータコントロール6へのアクセス
が、ディスプレースメント付きメモリ間接アドレッシン
グでのアクセスとなるようにする。
【0043】第1ステージ:パラメータの1002がシ
ーケンスプログラムメモリ1からシーケンス命令フェッ
チ・デコーダ5によって読みだされ、ワード演算命令バ
スcを介してタイミングコントロール64に入力される
と、タイミングコントロール64はそのパラメータ(1
002)をアドレスレジスタ61に設定し、データバス
fのデータ(1007)を入力する。
【0044】第2ステージ:タイミングコントロール6
4は第1ステージで入力したデータ(1007)とシー
ケンスプログラムメモリ1から入力した2個目のパラメ
ータ(0002)とを加算した値(1009)をアドレ
スレジスタ61に設定し、データバスセレクタ63の方
向をデータバスfとする。ここで、マイクロプロセッサ
31がパラメータコントロール6にアクセスすると、ア
ドレスデコーダ65から番地選択信号65aが発生す
る。それによりタイミングコントロール64はデータセ
レクト64aを発生してデータバスセレクタ63にデー
タバスfとMPUデータバス3aを接続する。それによ
りマイクロプロセッサ31はアドレスレジスタ61が指
定するアドレス(1009番地)のデータにアクセスす
る。つまり、ディスプレースメント付きメモリ間接アド
レッシングモードのアクセスを行う。
【0045】インデックス付きメモリ間接アドレッシン
グモードの場合にはタイミングコントロール64は次の
3段階(ステージ)により動作し、マイクロプロセッサ
31のパラメータコントロール6へのアクセスが、イン
デックス付きメモリ間接アドレッシングでのアクセスと
なるようにする。
【0046】第1ステージ:パラメータの1004がシ
ーケンスプログラムメモリ1からシーケンス命令フェッ
チ・デコーダ5によって読みだされ、ワード演算命令バ
スcを介してタイミングコントロール64に入力される
と、タイミングコントロール64はそのパラメータ(1
004)をアドレスレジスタ61に設定し、データバス
fのデータ(1008)を入力する。
【0047】第2ステージ:2個目のパラメータの10
05がシーケンスプログラムメモリ1からシーケンス命
令フェッチ・デコーダ5によって読みだされ、ワード演
算命令バスcを介してタイミングコントロール64に入
力されると、タイミングコントロール64はそのパラメ
ータ(1005)をアドレスレジスタ61に設定し、デ
ータバスfのデータ(0002)を入力する。
【0048】第3ステージ:タイミングコントロール6
4は第1ステージで入力したデータ(1008)と第2
ステージで入力したデータ(0002)とを加算した値
(100A)をアドレスレジスタ61に設定し、データ
バスセレクタ63の方向をデータバスfとする。ここ
で、マイクロプロセッサ31がパラメータコントロール
6にアクセスすると、アドレスデコーダ65から番地選
択信号65aが発生する。それによりタイミングコント
ロール64はデータセレクト64aを発生してデータバ
スセレクタ63にデータバスfとMPUデータバス3a
を接続する。それによりマイクロプロセッサ31はアド
レスレジスタ61が指定するアドレスのデータにアクセ
スする。
【0049】以上説明したように本実施例では異なるア
ドレッシングモードがワード演算命令のパラメータに指
定されていても、マイクロプロセッサ31は全てパラメ
ータコントロール6をアクセスすることで、ワード演算
命令のパラメータがアクセスできるようになる。
【0050】次に、図1,図6および、図7により本発
明の実施例の全体的な動作を説明する。
【0051】シーケンス命令フェッチデコーダ5はプロ
グラムアドレスバスaで指定したアドレスに格納される
シーケンス命令をシーケンスプログラムメモリ1からプ
ログラムデータバスdを介して読みだし、解読する。該
シーケンス命令がビット演算命令の場合には該シーケン
ス命令をビット命令バスbを介してビット演算部2に送
り、ビット演算処理を行わせる。該シーケンス命令がワ
ード演算命令の場合には該ワード命令をワード命令バス
cを介してパラメータコントロール6のタイミングコン
トロール64に送る。タイミングコントロール64はワ
ード命令を受けるとワード演算起動6aによりマイクロ
プロセッサ31に対して図6に示すワード演算プログラ
ムを開始させ、同時にパラメータコントロール処理を開
始する。マイクロプロセッサ31は図6に示すワード演
算プログラムを開始実行すると、ステップs601でワ
ード演算命令のオペコードを判定し、対応するワード演
算処理を選択,実行する。該ワード命令のオペコードが
80であればステップs602の加算ワード演算を行
う。ステップs602の加算ワード演算は3命令からな
り、最初の命令はパラメータコントロール6に割り当て
られた特定の番地FixAdrから加算数をレジスタr0にロ
ードし、第2の命令で被加算数を特定の番地FixAdrから
得て加算し結果をレジスタr0に作成する。第3の命令
でレジスタr0の加算結果を特定の番地FixAdrにストア
する。この3つの命令のそれぞれのパラメータコントロ
ール6に割り当てられた特定の番地FixAdrへのアクセス
に対してパラメータコントロール6が動作し、シーケン
スプログラム中の該ワード命令パラメータで指定される
データに対して加算を行うように動作する。
【0052】次に、前記加算ワード演算に対する、パラ
メータコントロール6の動作を図7により説明する。図
7はパラメータコントロール6の動作を説明するために
フローチャートで表したものである。パラメータコント
ロール6はワード命令バスcを介してタイミングコント
ロール64にワード命令が入力されると図に示す動作を
開始する。ステップs701でパラメータ数をオペコー
ドから取り出し、タイミングコントロール64内のレジ
スタに格納する。ステップs702でパラメータ数を判
定する。もし、パラメータ数が0の場合にはパラメータ
を必要としないワード命令なのでパラメータコントロー
ル6の処理を終了する。パラメータ数が0でなければス
テップs703でタイミングコントロール64はパラメ
ータリード6bをシーケンス命令フェッチデコーダ5に
出力する。シーケンス命令フェッチデコーダ5はプログ
ラムアドレスバスaのアドレスを1つ増加させてシーケ
ンスプログラムメモリ1を読みだし、ワード命令バスc
を介してアドレッシングモードAMをタイミングコント
ロール64に与える。ステップs704で入力したアド
レッシングモードを解読し、各パラメータのアドレッシ
ングモードを得る。ステップs705でアドレッシング
モードに対応したデータをマイクロプロセッサ31が特
定の番地FixAdrへのアクセスで行えるように準備する。
なお、この詳細は既に図5を用いて説明してあるので省
略する。ステップs706でマイクロプロセッサ31の
特定の番地FixAdrへのアクセスを待ち、アクセスが完了
するとステップs707に移り、パラメータ数を1つ減
算する。ステップs708でパラメータ数をチェック
し、0である場合にはパラメータコントロール6の動作
を終了し、そうでなければ次のパラメータに対するマイ
クロプロセッサの特定の番地FixAdrのアクセスに対して
動作するため、ステップs705から繰り返す。つま
り、ステップs705〜708の処理はパラメータ数の
回数だけ繰り返される。
【0053】以上説明したように、本実施例によれば、
従来マイクロプロセッサが行っていたワード演算命令の
パラメータ解読処理をパラメータコントロールで行うの
で、マイクロプロセッサはワード演算命令を自身の命令
に翻訳する必要がなくなり、ワード演算をマイクロプロ
セッサ自身の命令のみで実行できる。そのため、マイク
ロプロセッサの命令実行速度で制限される速度までワー
ド演算を高速に実行できる。さらにシーケンスプログラ
ム中にビット演算命令とワード演算命令を混在して記述
できるという利点がある。
【0054】なお、データ長(8,16,32,64ビ
ット),符号付き整数,符号なし整数,浮動小数点等の
データタイプ型の異なるデータに対してもワード演算命
令にデータタイプ属性を持たせることにより、これらの
データタイプの異なるデータを扱うワード演算処理でも
パラメータを特定の番地でアクセスできる。例えばマイ
クロプロセッサ31のデータバスが16ビット,データ
タイプが32ビットである場合には、マイクロプロセッ
サ31は特定の番地に2回アクセスし32ビットのデー
タを得るようにし、パラメータコントロール64はワー
ド演算命令にデータタイプ属性を解読した結果に応じて
演算対象のデータを用意し2回の特定の番地のアクセス
に対してマイクロプロセッサ31に渡すようにすればよ
い。
【0055】さらに、本実施例では特定の番地を1つと
して構成した例を説明したが複数の特定の番地を設け
て、パラメータそれぞれにその番地を対応させることも
可能である。
【0056】
【発明の効果】以上説明したように本発明によれば、従
来マイクロプロセッサ31が行っていたワード演算命令
のパラメータ解読処理をパラメータコントロール6が行
うので、マイクロプロセッサ31はワード演算命令を自
身の命令に翻訳する必要がなくなり、ワード演算をマイ
クロプロセッサ自身の命令のみで実行できる。しかも汎
用のマイクロプロセッサの命令実行速度でワード演算を
実行でき、さらにシーケンスプログラム中にビット演算
命令とワード演算命令を混在して記述できる効果があ
る。
【図面の簡単な説明】
【図1】図1は本発明の一実施例を示す図である。
【図2】図2は説明のためのシーケンスプログラムの一
例である。
【図3】図3は実施例のアドレッシングモードを説明す
る図である。
【図4】図4はワード演算命令の構成を説明する図であ
る。
【図5】図5は各アドレッシングモード時の動作を説明
する図である。
【図6】図6はワード演算プログラムを説明する図であ
る。
【図7】図7は実施例の動作を説明する図である。
【符号の説明】
1…シーケンスプログラムメモリ、2…ビット演算手
段、3…ワード演算部、4…データメモリ、5…シーケ
ンス命令フェッチ・デコーダ、6…パラメータコントロ
ール。
───────────────────────────────────────────────────── フロントページの続き (56)参考文献 特開 平3−75932(JP,A) 特開 昭59−16007(JP,A) 特開 昭56−110131(JP,A) 特開 平4−352230(JP,A) (58)調査した分野(Int.Cl.7,DB名) G05B 19/04 - 19/05

Claims (2)

    (57)【特許請求の範囲】
  1. 【請求項1】データメモリに書き込まれたデータを、シ
    ーケンスプログラムメモリに格納されたビット演算命令
    とワード演算命令の混在したシーケンスプログラムのう
    ち、少なくともワード演算をマイクロプロセッサで処理
    するプログラマブルコントローラにおいて、 前記シーケンスプログラムメモリに格納されたシーケン
    ス命令を読み出して前記ビット・演算命令と前記ワード
    演算命令を判別するシーケンス命令フェッチ・デコーダ
    と、 前記シーケンス命令フェッチ・デコーダからの前記ワー
    ド演算命令を受けて前記マイクロプロセッサのワード演
    算プログラムを起動し、前記シーケンス命令フェッチ・
    デコーダからのアドレッシングモードを解読し、該アド
    レッシングモードのデータを前記マイクロプロセッサに
    対し入出力するパラメータコントロールと、 を設けたことを特徴とするプログラマブルコントロー
    ラ。
  2. 【請求項2】請求項1において、前記パラメータコント
    ロールは、前記データメモリに対しデータアドレスを発
    生するアドレスレジスタと前記アドレスレジスタを制御
    するタイミングコントロールとからなることを特徴とす
    るプログラマブルコントローラ。
JP4347931A 1992-12-28 1992-12-28 プログラマブルコントローラ Expired - Fee Related JP3024410B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP4347931A JP3024410B2 (ja) 1992-12-28 1992-12-28 プログラマブルコントローラ

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP4347931A JP3024410B2 (ja) 1992-12-28 1992-12-28 プログラマブルコントローラ

Publications (2)

Publication Number Publication Date
JPH06202713A JPH06202713A (ja) 1994-07-22
JP3024410B2 true JP3024410B2 (ja) 2000-03-21

Family

ID=18393577

Family Applications (1)

Application Number Title Priority Date Filing Date
JP4347931A Expired - Fee Related JP3024410B2 (ja) 1992-12-28 1992-12-28 プログラマブルコントローラ

Country Status (1)

Country Link
JP (1) JP3024410B2 (ja)

Also Published As

Publication number Publication date
JPH06202713A (ja) 1994-07-22

Similar Documents

Publication Publication Date Title
JPH0827716B2 (ja) データ処理装置及びデータ処理方法
JPH0241053B2 (ja)
JPH05165718A (ja) 処理システム
US5301338A (en) System including central processing unit
JP2551167B2 (ja) マイクロコンピュータ
JP3024410B2 (ja) プログラマブルコントローラ
US5596761A (en) Central processing unit with internal register initializing means
JP2826309B2 (ja) 情報処理装置
JP2918570B2 (ja) 中央演算処理装置
JP3182906B2 (ja) マイクロコンピュータ
JP2832900B2 (ja) データ処理装置およびデータ処理方法
JP3190945B2 (ja) マイクロプログラム制御回路
JP2743947B2 (ja) マイクロプログラム制御方式
JP2731618B2 (ja) エミュレータ
JP3345050B2 (ja) 二次元配列型メモリシステム
JP3392413B2 (ja) 2レベルマイクロ制御方式及び方法
JPS61282932A (ja) アドレスカウンタ制御方式
JP2985201B2 (ja) マイクロコンピュータ
JPH0683986A (ja) シングルチップ・マイクロコンピュータ
JPH04195629A (ja) 演算フラグ生成装置
JP3488059B2 (ja) 割り込みアドレス拡張回路
JPH03201133A (ja) 情報処理装置
JPS603656B2 (ja) 計算機のメモリ拡張方式
JPS59106048A (ja) マイクロプロセツサシステム
JPH04369723A (ja) マイクロプログラム制御装置

Legal Events

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