JP3948303B2 - プログラマブルコントローラ - Google Patents
プログラマブルコントローラ Download PDFInfo
- Publication number
- JP3948303B2 JP3948303B2 JP2002045605A JP2002045605A JP3948303B2 JP 3948303 B2 JP3948303 B2 JP 3948303B2 JP 2002045605 A JP2002045605 A JP 2002045605A JP 2002045605 A JP2002045605 A JP 2002045605A JP 3948303 B2 JP3948303 B2 JP 3948303B2
- Authority
- JP
- Japan
- Prior art keywords
- sequence
- instruction
- general
- cpu
- register
- 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
Images
Landscapes
- Programmable Controllers (AREA)
Description
【発明の属する技術分野】
本発明は、アプリケーションプログラムを専用のシーケンス演算LSI(または演算回路)と汎用マイクロプロセッサで演算するプログラマブルコントローラに係り、特にシーケンス演算LSIと汎用マイクロプロセッサ間のインタフェースに関する。
【0002】
【従来の技術】
プログラマブルコントローラは、プログラムメモリ上に格納されたユーザプログラム命令の羅列を、順次読み出し、解析し、その結果に基づき演算実行する。プログラマブルコントローラの命令は、接点命令などのシーケンス命令と数値演算などの応用命令に大別される。ラダーシーケンスのプログラムでは、シーケンス命令の出現比率が高く、この演算を高速に処理することが、全体的な高速演算の実現につながる。
【0003】
図1に一般的なプログラマブルコントローラの演算部の構成を示す。演算部は、複雑な応用命令処理には汎用マイクロプロセッサや汎用DSP(以下、汎用CPUと称する)1を用い、シーケンス命令などの基本命令処理にはシーケンス演算専用LSIまたは専用回路(以下、シーケンスCPUと称する)2を用いる。
【0004】
これは先に述べたように、シーケンス命令は演算処理が単純であるが出現比率が高く、応用命令は演算処理が基本命令に比べ複雑であるが出現比率が低いため、コストパフォーマンスに優れるからである。基本命令と応用命令の分担は、製品の価格と密接で、シーケンスCPUの集積度によって定められる。集積度のより高いシーケンス演算専用LSIを使用すれば、価格も上昇するが、多くの命令をシーケンスCPUで処理でき、演算性能の高いものにできる。
【0005】
シーケンスCPUで実行する命令をブール演算命令(接点、コイル等)だけとするシーケンスCPUの構成例を図2に示す。主な要素は、プログラムメモリ(PM)3やデータメモリ(DM)4に対するユーザプログラム命令の順次読み出しやオペランドのデータを読み出すメモリインタフェース部、ユーザ命令を解析するデコード部、そして演算部からなる。シーケンスCPUは、汎用CPUからの起動指示により、プログラム命令を読み出し、デコードし、デコード内容によりオペランドのデータ読み出しと演算を行う。
【0006】
図3は、ラダープログラムの例である。そのプログラムのプログラムメモリへの展開例を図4に示す。そして、図5にシーケンスCPUの内部実行チャート、図6に汎用CPUの処理フローを示す。ここでは、加算命令(ADD S1 S2 D)を汎用CPU命令として、シーケンスCPUから汎用CPUへの切り替えでの実行の様子を示しており、以下の処理手順になる。
【0007】
(1)汎用CPU1がシーケンスCPU2に起動をかける。
【0008】
(2)シーケンスCPU2が動作し、PM3からLOAD命令をリードする。その間、汎用CPU1はシーケンスCPU2の制御レジスタ(CTRL)5が出力している命令切替信号をポーリングする。
【0009】
(3)シーケンスCPU2は、PM3からAND命令をリードし、さらにLOAD命令のオペランドのデータ(opr−a)をリードする。その間、汎用CPU1は、シーケンスCPU2のCTRL5が出力している命令切替信号をポーリングしている。
【0010】
(4)シーケンスCPU2は、PM3からADD命令をリードし、更にAND命令のオペランドのデータ(opr−b)をリードする。更に、論理演算ユニット(LU)6ではアキュムレータ(ACC)7にopr−aのデータをロードされる。その間、汎用CPU1は、シーケンスCPU2のCTRL5が出力している命令切替信号をポーリングしている。
【0011】
(5)シーケンスCPU2は、PM3からADD命令の2ステップ目をリードし、更にADD命令のオペランドのデータ(S1)をリードする。更に、LU6ではACC7の値とopr−bの値で演算が行われ、ACC7に格納される。その間、汎用CPU1は、シーケンスCPU2のCTRL5が出力している命令切替信号をポーリングしている。
【0012】
(6)シーケンスCPU2のCTRL5が出力している命令切替信号が汎用CPU命令であることを示す。
【0013】
(7)汎用CPU1は、インストラクション・ベクタ(IV)レジスタ8をリードし、その値を使ってADD命令の処理へジャンプする。また、このときにはシーケンスCPU2の内部レジスタは更新され、ADD命令のためのデータが揃えられている。
【0014】
(8)汎用CPU1は、ADD命令を処理する。ここで、汎用CPU1でADD命令を実行するためには、PM3からソースアドレス(S1,S2)を読み出し、それをアドレスとしてDM4からデータを読み出しと加算をし、さらにPM3からデスティネーションアドレス(D)を読み出し、それをDM4へのアドレスとして、加算結果を書込む。
【0015】
ここで、ソースデータ(S1)に限り、汎用CPU1は、シーケンスCPU2のレジスタ(OPRDATA)から直接読み出すことができる。しかし、ソースデータ(S2)、デスティネーションアドレス(D)は、実行中の命令をPC9から算出し、PM3から読み出さなければならなくなる。
【0016】
(9)汎用CPU1は、次に実行すべきプログラムカウンタ(PC)9を更新し、シーケンスCPU2を再起動する。
【0017】
以上が、汎用CPUとシーケンスCPUの命令実行時の一般的ハンドリングである。この様子は図6に示す汎用プロセッサ処理フローになる。
【0018】
【発明が解決しようとする課題】
図6において、汎用CPU1が実行する演算命令に遭遇したとき(S3)、汎用CPU1は、IVレジスタ8をリードし(S4)、その処理に分岐する(S5)。ここで、汎用CPU1は、命令を実行するために、オペランドやオペランドデータ(オペランドをアドレスとするデータメモリのデータ)が必要になる。
【0019】
これが、前記の(8)の処理であり、汎用CPU1で、シーケンスCPU2内部のプログラムカウンタ(PC)を読み出し、それらを得る処理は手間がかかり、実行速度を上げることができない。
【0020】
本発明の目的は、上記の課題を解決したプログラマブルコントローラを提供することにある。
【0021】
【課題を解決するための手段】
アプリケーションプログラムのうちシーケンス命令を実行するシーケンス演算部と、複雑な応用命令を実行する汎用演算部とを備え、命令に応じて前記シーケンス演算部と汎用演算部を切り替えて実行するプログラマブルコントローラにおいて、
通常のシーケンス命令での、前記シーケンス演算部の1ステートの処理を実行するための準備を、前記汎用演算部からオペランドレジスタ(OPR)、あるいはオペランドデータレジスタ(OPRDATA)からの読み出しなど、前記シーケンス演算部の内部レジスタへのアクセスをトリガーにして行い、
前記汎用演算部の命令に遭遇したとき、前記汎用演算部から前記シーケンス演算部の内部レジスタへのアクセスの際の、アドレスデコードに使用されていないアドレスビットを用い、そのON/OFFによって、更新レジスタの指定や、更新の有無のコントロールに使用することを特徴とする。
【0024】
【発明の実施の形態】
(実施形態1)
本実施形態は、汎用CPU1が実行すべき命令に遭遇したとき、汎用CPU1は、シーケンスCPU2の内部レジスタを利用してオペランドやオペランドデータを得る。
【0025】
その方法として、図2のオペランドレジスタ(OPR)10か、オペランドデータレジスタ(OPRDATA)11を汎用CPU1が読んだとき、シーケンスCPU2は、シーケンスCPU命令を実行するときと同様に、インストラクションレジスタ(IR)12のラッチデータ(すなわち、命令コードのオペランド)をアドレスとして、データメモリ4からデータをリードし、オペランドデータレジスタ(OPRDATA)11にラッチする。同時に、インストラクションレジスタ(IR)12のオペランド部をオペランドレジスタ(OPR)10にラッチする。
【0026】
さらに、インストラクションレジスタ(IR)12には、プログラムカウンタ(PC)9をアドレスとして、プログラムメモリ(PM)3から命令データを読み出し、インストラクションレジスタ(IR)12にラッチさせ、プログラムカウンタ(PC)9をインクリメントする。
【0027】
すなわち、通常のシーケンス命令でのシーケンスCPU2の1ステートの処理を、汎用CPU1からのオペランドレジスタ(OPR)10、あるいはオペランドデータレジスタ(OPRDATA)11から読み出しなど、シーケンスCPU2の内部レジスタへのアクセスをトリガーにして演算を実行する。
【0028】
(実施形態2)
前記の実施形態1では、シーケンスCPU2の内部レジスタへのアクセスによって、シーケンスCPU2の内部レジスタを更新した。
【0029】
本実施形態では、これをさらに汎用的に発展させ、汎用CPU1からシーケンスCPU2の内部レジスタへのアクセスの際の、アドレスデコードに使用されていないアドレスビットを用い、そのON/OFFによって、更新レジスタの指定や更新の有無のコントロールに使用する。
【0030】
(実施形態3)
図5のシーケンスCPUの内部実行チャート(内部レジスタの遷移)で、汎用CPU命令に切り替わった後、シーケンスCPU2の内部レジスタは、その命令の先頭のオペランド(OPR)や、オペランドデータ(OPRDATA)がラッチされているに過ぎない。したがって、次の命令に移るためには、プログラムカウンタ(PC)9を次の命令にセットし、内部レジスタを更新して進めて、シーケンス実行処理を続ける必要がある。
【0031】
そこで、本実施形態では、汎用CPU命令に遭遇したとき、前記の実施形態を利用して、プログラムメモリ(PM)3に格納されているデータを内部レジスタに更新しながら取り込めば、汎用CPU命令の処理を終えたとき、次の命令を実行するための状態にすることができる。
【0032】
したがって、プログラムカウンタ(PC)9を更新して内部レジスタを埋めるまでのステートを省略することができる。
【0033】
【発明の効果】
以上のとおり、本発明によれば、汎用CPU命令に遭遇したとき、命令の実行に必要なデータをシーケンスCPUの内部レジスタから次々に読み出しできるため、汎用CPUによるアドレス計算などが不要となり、命令自身を高速化できる(実施形態1)。
【0034】
また、汎用CPU命令に遭遇したとき、命令の実行に必要なデータの取得をきめ細かくコントロールでき、命令自身の高速化ができる(実施形態2)。
【0035】
汎用CPU命令に遭遇し、その処理を終えた後、次の命令に移る際のロスが減り、高速化できる(実施例3)。
【図面の簡単な説明】
【図1】プログラマブルコントローラの演算部の構成図。
【図2】シーケンスCPUのブロック図例。
【図3】ラダープログラム例。
【図4】ラダープログラムのメモリ展開例。
【図5】シーケンスCPUの内部実行チャート(内部レジスタの遷移)。
【図6】汎用プロセッサ処理フロー。
【符号の説明】
1…汎用CPU
2…シーケンスCPU
3…プログラムメモリ
4…データメモリ
5…制御レジスタ
8…インストラクションベクタレジスタ
9…プログラムカウンタ
10…オペランドレジスタ
11…オペランドデータレジスタ
12…インストラクションレジスタ
Claims (1)
- アプリケーションプログラムのうちシーケンス命令を実行するシーケンス演算部と、複雑な応用命令を実行する汎用演算部とを備え、命令に応じて前記シーケンス演算部と汎用演算部を切り替えて実行するプログラマブルコントローラにおいて、
通常のシーケンス命令での、前記シーケンス演算部の1ステートの処理を実行するための準備を、前記汎用演算部からオペランドレジスタ(OPR)、あるいはオペランドデータレジスタ(OPRDATA)からの読み出しなど、前記シーケンス演算部の内部レジスタへのアクセスをトリガーにして行い、
前記汎用演算部の命令に遭遇したとき、前記汎用演算部から前記シーケンス演算部の内部レジスタへのアクセスの際の、アドレスデコードに使用されていないアドレスビットを用い、そのON/OFFによって、更新レジスタの指定や、更新の有無のコントロールに使用することを特徴とするプログラマブルコントローラ。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2002045605A JP3948303B2 (ja) | 2002-02-22 | 2002-02-22 | プログラマブルコントローラ |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2002045605A JP3948303B2 (ja) | 2002-02-22 | 2002-02-22 | プログラマブルコントローラ |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2003248503A JP2003248503A (ja) | 2003-09-05 |
JP3948303B2 true JP3948303B2 (ja) | 2007-07-25 |
Family
ID=28659356
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2002045605A Expired - Lifetime JP3948303B2 (ja) | 2002-02-22 | 2002-02-22 | プログラマブルコントローラ |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP3948303B2 (ja) |
-
2002
- 2002-02-22 JP JP2002045605A patent/JP3948303B2/ja not_active Expired - Lifetime
Also Published As
Publication number | Publication date |
---|---|
JP2003248503A (ja) | 2003-09-05 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
TWI476597B (zh) | 資料處理裝置及半導體積體電路裝置 | |
US4924382A (en) | Debugging microprocessor capable of switching between emulation and monitor without accessing stack area | |
RU2005137695A (ru) | Предикативная команда в системе обработки данных | |
WO2021249054A1 (zh) | 一种数据处理方法及装置、存储介质 | |
US6986028B2 (en) | Repeat block with zero cycle overhead nesting | |
JP2001051874A (ja) | マイクロコンピュータ | |
US5068821A (en) | Bit processor with powers flow register switches control a function block processor for execution of the current command | |
JP3948303B2 (ja) | プログラマブルコントローラ | |
JPH11296372A (ja) | 情報処理装置 | |
JP2011070290A (ja) | データプロセッサ | |
JPH10124312A (ja) | 中央処理装置 | |
EP1177499A1 (en) | Processor and method of executing instructions from several instruction sources | |
US20050216704A1 (en) | Device and method for managing a microprocessor instruction set | |
JP2001014161A (ja) | プログラマブルコントローラ | |
JPH07109589B2 (ja) | 命令処理方式 | |
JP2731618B2 (ja) | エミュレータ | |
JP3405106B2 (ja) | プログラマブルコントローラ | |
JP3481039B2 (ja) | プログラマブルコントローラ | |
JP3063593B2 (ja) | プログラマブルコントローラ | |
JP2522562B2 (ja) | プログラマブルコントロ―ラ | |
JP4553622B2 (ja) | データ処理装置 | |
JP2522561B2 (ja) | プログラマブルコントロ―ラ | |
JPH03204004A (ja) | プログラマブルコントローラ | |
JP3414579B2 (ja) | プログラマブルコントローラ | |
JP2000035808A (ja) | プログラマブルコントローラ |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20041117 |
|
A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20061012 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20061031 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20061227 |
|
TRDD | Decision of grant or rejection written | ||
A01 | Written decision to grant a patent or to grant a registration (utility model) |
Free format text: JAPANESE INTERMEDIATE CODE: A01 Effective date: 20070327 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20070409 |
|
R150 | Certificate of patent or registration of utility model |
Ref document number: 3948303 Country of ref document: JP Free format text: JAPANESE INTERMEDIATE CODE: R150 Free format text: JAPANESE INTERMEDIATE CODE: R150 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20100427 Year of fee payment: 3 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20110427 Year of fee payment: 4 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20130427 Year of fee payment: 6 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20140427 Year of fee payment: 7 |
|
EXPY | Cancellation because of completion of term |