JP4451010B2 - プログラマブルコントローラ - Google Patents
プログラマブルコントローラ Download PDFInfo
- Publication number
- JP4451010B2 JP4451010B2 JP2001110063A JP2001110063A JP4451010B2 JP 4451010 B2 JP4451010 B2 JP 4451010B2 JP 2001110063 A JP2001110063 A JP 2001110063A JP 2001110063 A JP2001110063 A JP 2001110063A JP 4451010 B2 JP4451010 B2 JP 4451010B2
- Authority
- JP
- Japan
- Prior art keywords
- instruction
- ram
- execution
- pipeline
- read
- 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
Links
- 238000004364 calculation method Methods 0.000 claims description 63
- 238000000034 method Methods 0.000 claims description 8
- 230000008569 process Effects 0.000 claims description 7
- 238000010586 diagram Methods 0.000 description 22
- 238000013500 data storage Methods 0.000 description 11
- 230000004913 activation Effects 0.000 description 10
- 230000008859 change Effects 0.000 description 3
- 230000000694 effects Effects 0.000 description 3
- 230000006870 function Effects 0.000 description 3
- 230000004044 response Effects 0.000 description 2
- 230000008901 benefit Effects 0.000 description 1
Images
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/38—Concurrent instruction execution, e.g. pipeline or look ahead
-
- 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
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02P—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN THE PRODUCTION OR PROCESSING OF GOODS
- Y02P90/00—Enabling technologies with a potential contribution to greenhouse gas [GHG] emissions mitigation
- Y02P90/02—Total factory control, e.g. smart factories, flexible manufacturing systems [FMS] or integrated manufacturing systems [IMS]
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)
- Advance Control (AREA)
- Executing Machine-Instructions (AREA)
Description
【発明の属する技術分野】
この発明は、シーケンスプログラムとシーケンス演算に使用するデバイス情報およびマイクロプロセッサがタスク情報を格納する第1の記憶手段および第2の記憶手段と、第1の記憶手段から順次シーケンスプログラムを読み出しラッチするパイプラインレジスタとを少なくとも備え、シーケンスプログラムのパイプライン処理をおこなうプログラマブルコントローラに関し、特に、高速な演算処理を実行できる構成と、小型/低価格な構成を同一のハードウェアで実現することができるプログラマブルコントローラに関する。
【0002】
【従来の技術】
プログラマブルコントローラは、RAMなどのシーケンスプログラム格納部に格納されたシーケンスプログラムを順次読み出し、読み出したシーケンスプログラムに従って演算を実行するものであり、シーケンスプログラムによっては演算実行の際にデバイス情報のリード/ライトを実行する。
【0003】
図16は、従来の一般的なプログラマブルコントローラの構成を示すブロック図である。47はシーケンスプログラムに従ってシーケンス演算を行うCPUであり、49はシーケンスプログラムとシーケンス演算で使用するデバイス情報を格納するRAMであり、48はCPUのシステム情報が格納されているROMである。
【0004】
同図に示すプログラマブルコントローラは、シーケンスプログラムを格納するRAMとデバイス情報を格納するRAMが同じものであるので、シーケンスプログラムのリードとデバイス情報のリード/ライトを同時に実行することはできない。このため、デバイス情報のリード/ライトを実行する場合には、シーケンスプログラムのリードを中断しなければならないので、処理時間が延びてしまうという問題がある。その一方で、かかるプログラマブルコントローラは、その構成が単純で部品点数も少ないため、低価格で小型のハードウエアを実現できるという利点がある。
【0005】
次に、特開平10−198409号公報に開示された記載されたプログラマブルコントローラについて説明する。この先行技術では、シーケンスプログラムを格納するRAMとデバイス情報を格納するRAMとを分離させることによって、両方のRAMに同時にアクセスできるよう構成することにより、処理の高速化を図っている。
【0006】
図17は、上記先行技術のプログラマブルコントローラの構成を示すブロック図である。50はシーケンスプログラムに従ってシーケンス演算を行うCPUであり、52はシーケンスプログラムを格納するシーケンスプログラムRAMであり、53はシーケンス演算で使用する入力情報や出力情報を格納するデバイスRAMであり、51はCPUのシステム情報が格納されているROMである。
【0007】
この構成においては、シーケンスプログラムを格納するRAMとデバイス情報を格納するRAMが分離されているため、CPUがシーケンスプログラムを順次リードしているときに、デバイス情報のリード/ライトを同時に実行することができる。よって、シーケンスプログラムに従ってデバイス情報をリード/ライトして演算処理する場合に、シーケンスプログラムのリードとデバイス情報のリード/ライトが並列処理できる。したがって、シーケンスプログラムのリードを中断させずに、デバイス情報のリード/ライトができるため、演算処理を高速に行うことができる。その反面で、前述した従来技術のプログラマブルコントローラよりもRAMが多くなり、データバスの本数も多くなるため、ハードウエアが高価格、大型化するという問題がある。
【0008】
【発明が解決しようとする課題】
このように、従来のプログラマブルコントローラには、(1)シーケンスプログラムとデバイス情報を同じRAMに格納するものと、(2)シーケンスプログラムとデバイス情報を別個のRAMに格納するものがあり、それぞれ一長一短があるわけであるが、低価格で小型の構成と高速演算の構成を同一のハードウェアで実現することはできない。したがって、低価格で小型の構成と高速演算のプログラマブルコントローラの2つが必要な場合は、2種類のハードウェアが必要になってしまう。
【0009】
この発明は、上記従来技術による問題点を解決するためになされたものであり、シーケンスプログラムを格納するRAMとデバイス情報を格納するRAMを共有化して使用するRAMを減らすことによって、低価格化や小型化を実現する構成と、RAMを2つ用いそれぞれシーケンスプログラムを格納するRAMとデバイス情報を格納するRAMとして使用し、シーケンスプログラムのリードとデバイス情報リード/ライトの処理を並列に実施することにより高速処理を実現する構成を同一のハードウェアで実現することができるプログラマブルコントローラを提供することを目的とする。
【0010】
【課題を解決するための手段】
上述した課題を解決し、目的を達成するため、この発明に係るプログラマブルコントローラは、シーケンスプログラムとシーケンス演算に使用するデバイス情報およびマイクロプロセッサがタスク情報を格納する第1の記憶手段および第2の記憶手段と、前記第1の記憶手段から順次シーケンスプログラムを読み出しラッチするパイプラインレジスタとを少なくとも備え、前記シーケンスプログラムのパイプライン処理をおこなうプログラマブルコントローラであって、前記シーケンスプログラムによって前記デバイス情報を前記第1の記憶手段または第2の記憶手段のいずれにリード/ライトするかを選択する選択手段と、前記第1の記憶手段にリード/ライトするシーケンスプログラムが入力された場合は、デバイス情報のリード/ライト時にパイプライン処理を中断するとともに、該デバイス情報のリード/ライトが完了するまで前記シーケンスプログラムのリードを禁止し、前記第2の記憶手段にリード/ライトするシーケンスプログラムが入力された場合には、前記デバイス情報のリード/ライトとシーケンスプログラムのリードを同時に行うよう制御する制御手段と、を備えたことを特徴とする。
【0011】
この発明によれば、シーケンスプログラムによってデバイス情報を第1の記憶手段または第2の記憶手段のいずれにリード/ライトするかを選択し、第1の記憶手段にリード/ライトするシーケンスプログラムが入力された場合は、デバイス情報のリード/ライト時にパイプライン処理を中断するとともに、該デバイス情報のリード/ライトが完了するまでシーケンスプログラムのリードを禁止し、第2の記憶手段にリード/ライトするシーケンスプログラムが入力された場合には、デバイス情報のリード/ライトとシーケンスプログラムのリードを同時に行うよう制御することとしたので、デバイスアドレスを変更するだけで、命令コードのリードとデバイス情報のリード/ライトが同時におこなえる高速な構成と、命令コードとデバイス情報を格納するメモリを共有化して、メモリの使用数を減少させ小型化、低価格化に優れた構成を同一のハードウェアで使い分けることができる。
【0012】
つぎの発明にかかるプログラマブルコントローラは、上記の発明において、前記パイプラインレジスタは、前記第1の記憶手段から1つのシーケンスプログラムのデータをすべてリードしたときに該データをまとめて格納するレジスタであり、前記制御手段は、前記1つのシーケンスプログラムのデータのリードが完了するまで、前記第1の記憶手段からデバイス情報のリード/ライトを実行しないよう制御することを特徴とする。
【0013】
この発明によれば、パイプラインレジスタは、第1の記憶手段から1つのシーケンスプログラムのデータをすべてリードしたときに該データをまとめて格納するレジスタであり、1つのシーケンスプログラムのデータのリードが完了するまで、第1の記憶手段からデバイス情報のリード/ライトを実行しないよう制御することとしたので、1つのシーケンスプログラムのデータを複数回に分けてリードする場合にも適用することができる。
【0014】
つぎの発明にかかるプログラマブルコントローラは、上記の発明において、前スキャンでの命令の実行/非実行を示すビットをシーケンスプログラムとともに格納する第3の記憶手段をさらに備えたことを特徴とする。
【0015】
この発明によれば、前スキャンでの命令の実行/非実行を示すビットをシーケンスプログラムとともに格納する第3の記憶手段を設けることとしたので、前スキャンでの命令の実行/非実行を利用して、命令デコード部で命令の実行/非実行を判断することができる。
【0016】
つぎの発明にかかるプログラマブルコントローラは、上記の発明において、前記制御手段は、前記デバイス情報のリード/ライトを実行する命令が入力された際に、直前のシーケンスプログラムの接点の状態のオン/オフにより実行条件が成立した場合には、前記第1の記憶手段または前記第2の記憶手段にデバイス情報のリード/ライトを実行し、実行条件が成立しない場合には、前記第1の記憶手段または前記第2の記憶手段にデバイス情報のリード/ライトを実行しないよう制御することを特徴とする。
【0017】
この発明によれば、デバイス情報のリード/ライトを実行する命令が入力された際に、直前のシーケンスプログラムの接点の状態のオン/オフにより実行条件が成立した場合には、第1の記憶手段または第2の記憶手段にデバイス情報のリード/ライトを実行し、実行条件が成立しない場合には、第1の記憶手段または第2の記憶手段にデバイス情報のリード/ライトを実行しないよう制御することとしたので、接点のオン/オフにより命令デコード部での命令の実行/非実行を判断し、非実行時にはメモリに対して演算結果をリード/ライトしないようにし、非実行時の処理時間を短くすることができる。
【0018】
つぎの発明にかかるプログラマブルコントローラは、上記の発明において、前記制御手段は、直前のシーケンスプログラムの接点の状態が変化したスキャンでデバイス情報のリード/ライトを実行する命令が入力された際に、直前のシーケンスプログラムの接点の状態と前スキャンでの命令の実行/非実行を示すビットのオン/オフにより実行条件が成立した場合には、前記第1の記憶手段または前記第2の記憶手段にデバイス情報のリード/ライトを実行し、実行条件が成立しない場合には、前記第1の記憶手段または前記第2の記憶手段にデバイス情報のリード/ライトを実行しないよう制御することを特徴とする。
【0019】
この発明によれば、直前のシーケンスプログラムの接点の状態が変化したスキャンでデバイス情報のリード/ライトを実行する命令が入力された際に、直前のシーケンスプログラムの接点の状態と前スキャンでの命令の実行/非実行を示すビットのオン/オフにより実行条件が成立した場合には、第1の記憶手段または第2の記憶手段にデバイス情報のリード/ライトを実行し、実行条件が成立しない場合には、第1の記憶手段または第2の記憶手段にデバイス情報のリード/ライトを実行しないよう制御することとしたので、接点のオン/オフと、前回スキャン時の命令の実行/非実行情報により、命令デコード部で命令の実行/非実行を判断し、非実行時にはメモリに対して演算結果をリード/ライトしないようにし、非実行時の処理時間を短くすることができる。
【0020】
つぎの発明にかかるプログラマブルコントローラは、上記の発明において、前記制御手段は、直前のシーケンスプログラムの接点の状態が変化したスキャンで実行される命令が入力された際に、前記第3の記憶手段に接点状態を格納することを特徴とする。
【0021】
この発明によれば、直前のシーケンスプログラムの接点の状態が変化したスキャンで実行される命令が入力された際に、第3の記憶手段に接点状態を格納することとしたので、直前のシーケンスプログラムの接点の状態が変化したスキャンで実行される命令をH/Wで高速に演算させることができる。
【0022】
つぎの発明にかかるプログラマブルコントローラは、上記の発明において、前記制御手段は、前記シーケンスプログラムに従ってパイプライン処理を実行中に前記マイクロプロセッサにより前記第1の記憶手段または前記第2の記憶手段に対してリード/ライトをおこなう場合には、前記パイプライン処理を停止するとともに、前記マイクロプロセッサにより前記第1の記憶手段または前記第2の記憶手段に対するリード/ライトを開始するよう制御することを特徴とする。
【0023】
この発明によれば、シーケンスプログラムに従ってパイプライン処理を実行中に前記マイクロプロセッサにより第1の記憶手段または第2の記憶手段に対してリード/ライトをおこなう場合には、パイプライン処理を停止するとともに、マイクロプロセッサにより第1の記憶手段または第2の記憶手段に対するリード/ライトを開始するよう制御することとしたので、CPUがRAMにリード/ライトする際に、リード/ライト要求を出力するだけでパイプライン処理を停止してリード/ライトを実行できるため処理が高速になる。また、CPUに割り込みが発生した時にタスク情報を退避させるための専用のRAMが必要なくなるため、低価格化および小型化を図ることができる。
【0024】
つぎの発明にかかるプログラマブルコントローラは、上記の発明において、前記制御手段は、S/W命令の演算を行う際に、直前のシーケンスプログラムの接点の状態と前スキャンでの命令の実行/非実行を示すビットのオン/オフにより実行条件が成立した場合には、パイプライン処理を停止して前記マイクロプロッセッサにより前記S/W命令を実行し、実行条件が成立しない場合には、前記マイクロプロセッサによる前記S/W命令を実行しないよう制御することを特徴とする。
【0025】
この発明によれば、S/W命令の演算を行う際に、直前のシーケンスプログラムの接点の状態と前スキャンでの命令の実行/非実行を示すビットのオン/オフにより実行条件が成立した場合には、パイプライン処理を停止してマイクロプロッセッサによりS/W命令を実行し、実行条件が成立しない場合には、マイクロプロセッサによるS/W命令を実行しないよう制御することとしたので、実行する必要のないS/W命令をH/Wによって判断し、マイクロプロセッサが余計な演算をしなくて済むため、S/W命令の演算処理を高速に実行することができる。
【0026】
【発明の実施の形態】
以下に添付図面を参照して、この発明に係るプログラマブルコントローラの好適な実施の形態について詳細に説明する。
【0027】
図1は、この発明に係るプログラマブルコントローラの構成を示すブロック図である。同図に示すように、このプログラマブルコントローラは、メモリインターフェース部10(以下「メモリI/F部」という)と、ハードウエア(H/W)で演算する命令を処理するH/W命令演算処理部20と、ソフトウエア(S/W)で演算する命令を処理するS/W命令演算処理部30とからなる。
【0028】
まず、メモリI/F部10の構成について説明する。11はシーケンスプログラムとシーケンス演算に使用するデバイス情報を格納するとともに、CPUがタスク情報を格納するRAMであり、12はシーケンス演算に使用するデバイス情報のみを格納するRAMであり、13は前スキャンでの命令の実行/非実行状態を格納するRAMである。
【0029】
14はH/W命令演算処理部20からのRAM11、RAM12、RAM13へのリード/ライトと、S/W命令演算処理部30からのRAM11、RAM12、RAM13へのリード/ライトを制御するメモリ制御部であり、15はH/W命令演算処理部20の動作の基準クロック(図示せず)ごとに、順次インクリメントされるプログラムカウンタである。
【0030】
次に、H/W命令演算処理部20の構成について説明する。21aはパイプライン処理の起動(1)/停止(0)をおこなう起動レジスタであり、21bはRAMに格納されている命令コードの下位データを順次リードし、一時的に保持するパイプラインレジスタ(パイプラインレジスタ(0))である。
【0031】
21cはパイプラインレジスタ21bに保持された命令コードの下位データとRAM11に格納されている命令コードの上位データとRAM13の前スキャンでの実行/非実行状態(1ビット)を順次リードして、命令コード+1ビットのデータを保持するパイプラインレジスタ(パイプラインレジスタ(1))であり、21dはパイプラインレジスタ21cの内容を転送するパイプラインレジスタ(パイプラインレジスタ(2))であり、21eはパイプラインレジスタ21dの内容を転送するパイプラインレジスタ(パイプラインレジスタ(3))である。
【0032】
21fはパイプライン処理の状態を示すステートレジスタ(例えば0:パイプライン処理停止中、1:パイプライン処理実行中、2:S/W命令実行でパイプライン処理停止中)であり、22aはパイプラインレジスタ21dに格納されているデータをデコードするデコード回路である。
【0033】
22bはデコード回路22aがデコードした内容を保持するデコード情報保持レジスタ(デコード情報保持レジスタ(1))であり、22cはデコード情報保持レジスタ22bの内容を保持するデコード情報保持レジスタ(デコード情報保持レジスタ(2))である。
【0034】
23はRAM11またはRAM12からリードしたデバイス情報を一時的に格納しておく入力レジスタであり、24は接点の状態を保持する接点状態記憶部であり、25はRAM11、RAM12のH/W命令処理時に使用するデバイス情報のリード/ライトの要求とパイプライン停止要求と前スキャンでの命令の実行/非実行状態ライト要求を制御するH/W命令演算制御部である。
【0035】
26はデコード情報保持レジスタ22b、デコード情報保持レジスタ22cのデコード情報に従いビット演算及びワード演算(算術演算、論理演算、転送)を行うH/W命令演算部であり、26はRAM11およびRAM12からリードしたワード演算データを格納するH/W演算データ格納部である。
【0036】
次に、S/W命令演算処理部30の構成を説明する。31はRAM11に書かれたシーケンス命令がS/Wで演算する命令であった場合に、この命令を処理するCPUであり、32はCPU31の処理内容が記述されているシステムROMである。
【0037】
次に、命令コードの構成について説明する。図2は、命令コードの構成を説明するための説明図である。同図に示すように、下位Jビットは、デバイス情報が格納されているアドレス(以下「デバイスアドレス」という)を示しており、このデバイスアドレスによってデバイス情報のリード/ライトに使用するRAMが指定される。
【0038】
また、上位Kビットは命令の種別を示しており、図中に示すように命令コード中のS/W命令とH/W命令を区別するビットの値が0の場合にはH/W命令となり、1の場合にはS/W命令となる。
【0039】
デバイスアドレスがRAM11を指定していた場合は、RAM11からの命令コードのリードを中断させて、このRAM11からデバイス情報をリードする。この機能について図3を用いて説明する。
【0040】
図3は、メモリ制御部14によるRAM11のアクセスの制御を説明するための説明図である。起動レジスタ21aが0である間は、メモリ制御部14はRAM11のデータバスとCPU31のデータバスを繋ぐ。起動レジスタが1である間は、メモリ制御部14は、パイプラインレジスタ部21とRAM11のデータバスを繋ぎ、順次RAM11の命令コードをリードする。
【0041】
しかし、パイプラインレジスタ部21から出力されるパイプライン停止信号が1である間は、メモリ制御部14内の命令コードのリード信号がマスクされるため、RAM11の命令コードのリードが中断される。
【0042】
H/W命令演算制御部25からRAM11に対するリード要求が出力されると、入力レジスタ23とRAM11のデータバスを繋ぎ、RAM11からデバイス情報がリードされ入力レジスタ23に格納される。H/W命令演算制御部25からRAM11に対するライト要求が出力されると、H/W命令演算部26とRAM11のデータバスを繋ぎ、RAM11に演算結果をライトする。
【0043】
したがって、プログラマブルコントローラを起動して命令コードをリードしているときに、H/W命令によるRAM11に対するデバイス情報のリード/ライトが発生した場合には、デバイス情報のリ−ド/ライトが優先され、デバイス情報のリード/ライトが実行される。
【0044】
図4は、RAM11に命令コードが格納される形態と、RAM13に各命令の前スキャンでの命令の実行/非実行状態が格納される形態を示す図である。同図に示すように、命令コードは下位データと上位データに分かれてRAM11に格納されている。H/W命令▲1▼の命令コードは、RAM11の2n番地と2n+1番地に格納されている。また、H/W命令▲1▼の前スキャンでの命令の実行/非実行状態は、RAM13のn番地に格納されている。
【0045】
プログラマブルコントローラを起動すると、図1のシステムROM32に書かれている内容(図示せず)に従い、CPU31は各種レジスタの設定等をした後、起動レジスタ21aを起動すなわち1にする。起動レジスタ21aが1になると、パイプラインレジスタ部21から出力されているパイプライン停止信号が0になり、プログラムカウンタ15がカウントを開始する。
【0046】
メモリ制御部14は、パイプラインレジスタ部21とRAM11のデータバスを繋ぎ、プログラムカウンタ15の示すアドレスから順次命令コードをリードする。前スキャンでの命令の実行/非実行状態を格納しているアドレスは、プログラムカウンタ15の値を1ビット右シフトして生成する。
【0047】
図5は、プログラマブルコントローラ起動後の命令コードと前スキャンでの命令の実行/非実行状態がパイプラインレジスタ21cへの転送される点を説明するための説明図である。メモリ制御部14は、図4に示したRAM11の2n番地(プログラムカウンタ15の値)のH/W命令▲1▼の命令コードの下位データをリードしてパイプラインレジスタ21bに格納する。RAM11の2n番地をリードした後、プログラムカウンタ15の値はインクリメントされて2n+1になる。
【0048】
次に、メモリ制御部14は、RAM11の2n+1番地のH/W命令▲1▼の命令コードの上位データとRAM13のn番地(プログラムカウンタ15の値を1ビット右シフトした値)のH/W命令▲1▼の前スキャンでの実行/非実行状態をリードして、パイプラインレジスタ21bに格納されたH/W命令▲1▼の命令コード下位データとともにパイプラインレジスタ21cに格納する。このとき、プログラムカウンタ15の値がインクリメントされ2n+2になる。以下、同様の手順でH/W命令▲2▼、S/W命令▲1▼の順にパイプラインレジスタ21cに命令コードと前スキャンでの命令の実行/非実行状態が格納される。
【0049】
次に、図1を用いてパイプラインレジスタ21cに転送された命令コードと前スキャンでの命令の実行/非実行状態のパイプライン処理について説明をする。メモリ制御部14では、プログラムカウンタ15の最下位ビットの値が0であった場合には1になり、1であった場合には0となる信号(以下、「奇数/偶数判定信号」という)が生成され、パイプラインレジスタ部21に出力される。つまり奇数/偶数判定信号は命令コード下位データリード時は1であり、命令コード上位データリード時は0である。
【0050】
奇数/偶数判定信号が1から0になるとき、パイプラインレジスタ21cの命令コードと前スキャンでの命令の実行/非実行状態がパイプラインレジスタ21dに転送される。また、奇数/偶数判定信号が0から1になるとき、パイプラインレジスタ21dの命令コードと前スキャンでの命令の実行/非実行状態がパイプラインレジスタ21eに転送される。パイプラインレジスタ部21からメモリ制御部14にパイプライン停止信号が出力されると、プログラムカウンタ15がインクリメントを実行しない構成となっているため、奇数/偶数判定信号も変化しなくなる。
【0051】
奇数/偶数判定信号が変化しなければ、パイプラインレジスタ21c、パイプラインレジスタ21d、パイプラインレジスタ21eの内容は更新されないため、パイプライン処理が中断されたことになる。パイプラインレジスタ21dに命令コードと前スキャンでの命令の実行/非実行状態が格納されると、命令コード中のS/W命令とH/W命令を区別するビットでH/W命令かS/W命令かを判断する。
【0052】
命令コード中のS/W命令とH/W命令を区別するビットが1(S/W命令)であった場合、パイプラインレジスタ部21内で、前スキャンでの命令の実行/非実行状態と接点状態記憶部24の接点状態でS/W命令の実行条件を判定し、実行条件が成立したら起動レジスタ21aを停止すなわち0にする。起動レジスタ21aが0の間は、パイプライン停止信号が1のままなので、パイプライン処理は停止したことになる。
【0053】
パイプラインレジスタ部21は、パイプライン処理停止後にステートレジスタ21fを1から2にする。CPU31は、ステートレジスタ21fを監視し、ステートレジスタ21fが2であることを確認したならば、S/W命令の演算処理を実行する。S/W命令実行後、CPU31は起動レジスタ21aを起動すなわち1にして、停止していたパイプライン処理を起動させる。ここで、起動レジスタ21aが1になるとステートレジスタ21fも2から1になる。
【0054】
デコード回路22aは、パイプラインレジスタ21dの命令コードをデコードする。前述したデバイスアドレスをデコード回路22aでデコードすることによって、シーケンス命令で使用するデバイス情報を格納しているRAMがRAM11であるかRAM12であるかを判断する。
【0055】
図6は、命令で使用するデバイス割付の例を示す図である。デバイスアドレスのA番地〜B番地はRAM11の領域であり、C番地〜D番地はRAM12の領域である。例えば、図6のように、デバイスW0がRAM11の領域に割り付けられており、デバイスD0がRAM12の領域に割り付けられていたとすると、ユーザーがシーケンスプログラムを作成する際に、デバイスW0を使用するとデバイスアドレスとしてE番地がRAM11に書き込まれる。
【0056】
同様に、デバイスD0を使用するとデバイスアドレスとしてF番地がRAM11に書き込まれる。したがって、ユーザーがプログラムを作成する際に、高速処理が必要な場合にはデバイスD0を用い、高速処理が必要ではない場合にはデバイスW0を用いることが可能である。
【0057】
デコード回路22aは、デバイスアドレスがRAM11を指定していた場合は(上記の例ではA番地〜B番地)、RAM11のデバイス情報を使用した場合の演算に必要なパイプライン処理の停止数とRAM11に対するデバイス情報のリード/ライトの有無および命令種別がデコード情報としてデコード情報保持レジスタ22bに格納する。この場合は前述したようにデバイス情報をリード/ライトするときには命令コードのリードができないため、命令コードのリードとパイプライン処理を中断させなければならない。
【0058】
したがって、RAM11に対してデバイス情報のリード/ライトがある場合には、パイプライン停止数が最低でも1になる。一方で、デバイスアドレスがRAM12を指定していた場合は(上記の例ではC番地〜D番地)、RAM12のデバイス情報を使用した場合の演算に必要なパイプライン処理の停止数と、RAM12に対するデバイス情報のリード/ライトの有無および命令種別がデコード情報としてデコード情報保持レジスタ22bに格納される。
【0059】
デコード情報保持レジスタ22bにデコード情報が格納されると、デコード情報保持レジスタ22bからデコード情報がH/W命令演算制御部25に出力される。デバイスアドレスがRAM11を指定していた場合は、H/W命令演算制御部25がRAM11に対するデバイス情報リード/ライト要求をメモリ制御部14に出力し、パイプライン停止要求をパイプラインレジスタ部21に出力する。
【0060】
パイプラインレジスタ部21は、H/W命令演算制御部25からパイプライン停止要求を受けると、パイプライン停止信号を1にして、パイプライン処理を中断させる。メモリ制御部14はパイプライン停止信号が1になることで、命令コードのリード信号をマスクし、プログラムカウンタ15のインクリメントを実行しない。
【0061】
また、メモリ制御部14は、H/W命令演算制御部25からRAM11に対するデバイス情報のリード/ライト要求を受けることにより、入力レジスタ23またはH/W命令演算部26とRAM11のデータバスを繋ぎ、シーケンス命令によるRAM11に対するデバイス情報のリード/ライトをおこなう。
【0062】
一方、デバイスアドレスがRAM12を指定していた場合は、H/W命令演算制御部25はRAM12に対するリード/ライト要求をメモリ制御部14に出力する。メモリ制御部14は、H/W命令演算制御部25からRAM12に対するリード/ライト要求を受けると、RAM11から命令コードのリードをおこないながら、シーケンス命令によるRAM12に対するデバイス情報のリード/ライトをおこなう。
【0063】
デコード情報保持レジスタ22cにデコード情報が格納されると、デコード情報保持レジスタ22cの命令種別信号がH/W命令演算部26に出力され、リードされたデバイス情報を演算し、演算結果を接点状態記憶部24やRAM11、RAM12に格納する。
【0064】
図7は、RAM11に格納されている命令コードを示す図である。H/W命令▲1▼は、RAM11若しくはRAM12に格納されたデバイス情報をリードし、演算結果を接点状態記憶部24に格納する接点命令である。H/W命令▲2▼は、接点状態記憶部24に格納された接点情報に関係なく、RAM11若しくはRAM12に格納されたデバイス情報をリードしてH/W演算データ格納部27にリードしたデバイス情報を格納するデータロード命令である。
【0065】
H/W命令▲3▼は、接点状態記憶部24に格納された接点情報がONすなわち1であれば、H/W演算データ格納部27に格納されている演算データをH/W命令演算部26で演算して演算結果をRAM11若しくはRAM12のデバイスに書き戻す命令である。
【0066】
図8は、RAM12の領域に割付けられているデバイスを使用した場合に、図7の命令を実行したときのタイミングチャートである(デバイスアドレスがRAM12を指定していた場合)。以下、図1、図7および図8を用いてデバイスアドレスがRAM12の領域を指定していた場合の動作を説明する。
【0067】
T1およびT2の期間では、前述したようにパイプライン処理が起動されてから、命令コードと前スキャンでの命令の実行/非実行状態がパイプラインレジスタ21cに格納されるまでを示している。このT1の期間ではRAM11の2n番地からH/W命令▲1▼の命令コードの下位データがリードされ、T2の期間ではRAM11の2n+1番地からH/W命令▲1▼の命令コードの上位データがリードされる。
【0068】
T3の期間は、プログラムカウンタ15の値が2n+2になり、パイプラインレジスタ21cにH/W命令▲1▼の命令コードと前スキャンでの命令の実行/非実行状態が格納された後を示すものである。この期間では、RAM11の2n+2番地のH/W命令▲2▼の命令コードの下位データがリードされる。
【0069】
T4の期間は、プログラムカウンタ15の値が2n+3になり、奇数/偶数判定信号が1から0になったところで、パイプラインレジスタ21cのH/W命令▲1▼の命令コードと前スキャンでの命令の実行/非実行状態がパイプラインレジスタ21dに格納された後を示すものである。この期間でデコード回路22aにおいてH/W命令▲1▼の命令コードがデコードされる。デコード回路22aのデコードによって、H/W命令▲1▼を示す命令種別信号が生成される。
【0070】
また、デバイスアドレスがRAM12を指定しているため、H/W命令▲1▼のRAM12に対するデバイス情報リード要求と、パイプライン処理停止数が0であることを示す信号が生成される。また、この期間でRAM11の2n+3番地のH/W命令▲2▼の命令コードの上位データがリードされる。
【0071】
T5の期間は、プログラムカウンタ15の値が2n+4になり、H/W命令▲2▼の命令コードと前スキャンでの命令の実行/非実行状態がパイプラインレジスタ21cに転送され、奇数/偶数判定信号が0から1になったところで、パイプラインレジスタ21dのH/W命令▲1▼の命令コードと前スキャンでの命令の実行/非実行状態がパイプラインレジスタ21eに格納され、デコード回路22aのH/W命令▲1▼のデコード情報がデコード情報保持レジスタ22bに転送された後を示すものである。
【0072】
デコード情報保持レジスタ22bにH/W命令▲1▼のデコード情報が転送されると、H/W命令▲1▼のRAM12に対するデバイス情報リード要求と、パイプライン処理停止数が0であることを示す信号がH/W命令演算制御部25に出力される。デコード情報保持レジスタ22bからパイプライン処理停止数が0であることを示す信号がH/W命令演算制御部25に出力されたため、パイプライン停止要求は1にならず、パイプライン処理は中断されない。
【0073】
また、H/W命令演算制御部25はRAM12に対してデバイス情報のリード要求をメモリ制御部14に出力し、メモリ制御部14はRAM12からデバイス情報をリードして入力レジスタ23に格納する。この期間でRAM11の2n+4番地のH/W命令▲3▼の命令コードの下位データがリードされる。
【0074】
T6の期間は、プログラムカウンタ15の値が2n+5になり、奇数/偶数判定信号が1から0になったところで、パイプラインレジスタ21cのH/W命令▲2▼の命令コードと前スキャンでの命令の実行/非実行状態がパイプラインレジスタ21dに格納され、デコード情報保持レジスタ22bのH/W命令▲1▼のデコード情報がデコード情報保持レジスタ22cに転送された後を示すものである。
【0075】
デコード情報保持レジスタ22cにH/W命令▲1▼のデコード情報が転送されると、H/W命令▲1▼を示す命令種別信号がH/W命令演算部26に出力され、T5の期間で入力レジスタ23に格納したデバイス情報を演算して、接点状態記憶部24に演算結果を格納する。
【0076】
図8は、リードしたデバイス情報がONすなわち1であった場合であり、この場合は接点状態記憶部24にはONすなわち1が格納される。この期間でデコード回路22aにおいてH/W命令▲2▼の命令コードがデコードされる。デコード回路22aのデコードによって、H/W命令▲2▼を示す命令種別信号が生成される。
【0077】
また、デバイスアドレスがRAM12を指定しているため、H/W命令▲2▼のRAM12に対するデバイス情報リード要求と、パイプライン処理停止数が0であることを示す信号が生成される。また、この期間でRAM11の2n+5番地のH/W命令▲3▼の命令コードの上位データがリードされる。
【0078】
T7の期間は、プログラムカウンタ15の値が2n+6になり、H/W命令▲3▼の命令コードと前スキャンでの命令の実行/非実行状態がパイプラインレジスタ21cに転送され、奇数/偶数判定信号が0から1になったところで、パイプラインレジスタ21dのH/W命令▲2▼の命令コードと前スキャンでの命令の実行/非実行状態がパイプラインレジスタ21eに格納され、デコード回路22aのH/W命令▲2▼のデコード情報がデコード情報保持レジスタ22bに転送された後を示すものである。
【0079】
デコード情報保持レジスタ22bにH/W命令▲2▼のデコード情報が転送されると、H/W命令▲2▼のRAM12に対するデバイス情報リード要求と、パイプライン処理停止数が0であることを示す信号がH/W命令演算制御部25に出力される。デコード情報保持レジスタ22bからパイプライン処理停止数が0であることを示す信号がH/W命令演算制御部25に出力されたため、パイプライン停止要求は1にならず、パイプライン処理は中断されない。
【0080】
H/W命令演算制御部25は、RAM12に対してデバイス情報のリード要求をメモリ制御部14に出力し、メモリ制御部14は、RAM12からデバイス情報をリードして入力レジスタ23に格納する。また、この期間でRAM11の2n+6番地のH/W命令▲4▼の命令コードの下位データがリードされる。
【0081】
T8の期間は、プログラムカウンタ15の値が2n+7になり、パイプラインレジスタ21cのH/W命令▲3▼の命令コードと前スキャンでの命令の実行/非実行状態がパイプラインレジスタ21dに格納され、デコード情報保持レジスタ22bのH/W命令▲2▼のデコード情報がデコード情報保持レジスタ22cに転送された後を示すものである。
【0082】
デコード情報保持レジスタ22cにH/W命令▲2▼のデコード情報が転送されると、H/W命令▲2▼を示す命令種別信号がH/W命令演算部26に出力され、T7の期間で入力レジスタ23に格納したデバイス情報をH/W演算データ格納部27に格納する。この期間でデコード回路22aにおいてH/W命令▲3▼の命令コードがデコードされる。デコード回路22aのデコードによって、H/W命令▲3▼を示す命令種別信号が生成される。
【0083】
また、デバイスアドレスがRAM12を指定し、かつ接点状態記憶部24に格納された接点状態がONすなわち1であるため、H/W命令▲3▼の実行条件が成立し、H/W命令▲3▼のRAM12に対するデバイス情報ライト要求と、パイプライン処理停止数が0であることを示す信号が生成される。この期間でRAM11の2n+7番地のH/W命令▲4▼の命令コードの上位データがリードされる。
【0084】
T9の期間は、プログラムカウンタ15の値が2n+8になり、H/W命令▲4▼の命令コードと前スキャンでの命令の実行/非実行状態がパイプラインレジスタ21cに転送され、奇数/偶数判定信号が0から1になったところで、パイプラインレジスタ21dのH/W命令▲3▼の命令コードと前スキャンでの命令の実行/非実行状態がパイプラインレジスタ21eに格納され、デコード回路22aのH/W命令▲3▼のデコード情報がデコード情報保持レジスタ22bに転送された後を示すものである。
【0085】
デコード情報保持レジスタ22bにH/W命令▲3▼のデコード情報が転送されると、H/W命令演算部26にH/W命令▲3▼を示す命令種別信号が出力され、T8の期間でH/W演算データ格納部27に格納されたデバイス情報をH/W命令演算部26で演算する。この期間でRAM11の2n+8番地のH/W命令▲5▼の命令コードの下位データがリードされる。
【0086】
T10の期間は、プログラムカウンタ15の値が2n+9になり、奇数/偶数判定信号が1から0になったところで、パイプラインレジスタ21cのH/W命令▲4▼の命令コードと前スキャンでの命令の実行/非実行状態がパイプラインレジスタ21dに格納され、デコード情報保持レジスタ22bのH/W命令▲3▼のデコード情報がデコード情報保持レジスタ22cに転送された後を示すものである。
【0087】
デコード情報保持レジスタ22cにH/W命令▲3▼のデコード情報が転送されると、H/W命令▲3▼を示す命令種別信号がH/W命令演算部26に出力され、H/W命令演算部26はT9の期間で演算したデータをメモリ制御部14に対して出力する。H/W命令演算制御部25は、この期間でメモリ制御部14にRAM12に対するライト要求を出力し、メモリ制御部14は、RAM12に対してH/W命令▲3▼の演算結果をライトする。また、この期間でデコード回路22aにおいてH/W命令▲4▼の命令コードがデコードされる。この期間でRAM11の2n+9番地のH/W命令▲5▼の命令コードの上位データがリードされる。
【0088】
図9は、RAM11の領域に割付けられているデバイスを使用した場合に、図7の命令を実行したときのタイミングチャートである(デバイスアドレスがRAM11を指定していた場合)。以下、図1、図7および図9を用いてデバイスアドレスがRAM11の領域を指定していた場合の動作を説明する。
【0089】
T1およびT2の期間では、前述したようにパイプライン処理が起動されてから、命令コードと前スキャンでの命令の実行/非実行状態がパイプラインレジスタ21cに格納されるまでを示している。T1の期間ではRAM11の2n番地からH/W命令▲1▼の命令コードの下位データがリードされ、T2の期間ではRAM11の2n+1番地からH/W命令▲1▼の命令コードの上位データがリードされる。
【0090】
T3の期間は、プログラムカウンタ15の値が2n+2になり、パイプラインレジスタ21cにH/W命令▲1▼の命令コードと前スキャンでの命令の実行/非実行状態が格納された後を示すものである。この期間では、RAM11の2n+2番地のH/W命令▲2▼の命令コードの下位データがリードされる。
【0091】
T4の期間は、プログラムカウンタ15の値が2n+3になり、奇数/偶数判定信号が1から0になったところで、パイプラインレジスタ21cのH/W命令▲1▼の命令コードと前スキャンでの命令の実行/非実行状態がパイプラインレジスタ21dに格納された後を示すものである。この期間でデコード回路22aにおいてH/W命令▲1▼の命令コードがデコードされる。デコード回路22aのデコードによって、H/W命令▲1▼を示す命令種別信号が生成される。
【0092】
また、デバイスアドレスがRAM11を指定しているため、H/W命令▲1▼のRAM11に対するデバイス情報リード要求と、パイプライン処理停止数が1であることを示す信号が生成される。また、この期間でRAM11の2n+3番地のH/W命令▲2▼の命令コードの上位データがリードされる。
【0093】
T5の期間は、プログラムカウンタ15の値が2n+4になり、H/W命令▲2▼の命令コードと前スキャンでの命令の実行/非実行状態がパイプラインレジスタ21cに転送され、奇数/偶数判定信号が0から1になったところで、パイプラインレジスタ21dのH/W命令▲1▼の命令コードと前スキャンでの命令の実行/非実行状態がパイプラインレジスタ21eに格納され、デコード回路22aのH/W命令▲1▼のデコード情報がデコード情報保持レジスタ22bに転送された後を示すものである。
【0094】
デコード情報保持レジスタ22bにH/W命令▲1▼のデコード情報が転送されると、H/W命令▲1▼のRAM11に対するデバイス情報リード要求とパイプライン処理停止数が1であることを示す信号がH/W命令演算制御部25に出力される。H/W命令演算制御部25は、RAM11に対してのデバイス情報リード要求をメモリ制御部14に出力し、パイプライン停止要求を1にする。
【0095】
パイプラインレジスタ部21はパイプライン停止要求が1であるため、パイプライン停止信号を1にする。メモリ制御部14は、パイプライン停止信号が1であるため、命令コードのリード信号をマスクし、プログラムカウンタ15のインクリメントを実行しない。また、奇数/偶数判定信号も1のまま変化しない。
【0096】
メモリ制御部14は、H/W命令演算制御部25からRAM11に対するリード/ライト要求をうけると、入力レジスタ23とRAM11のデータバスを繋ぎ、RAM11からデバイス情報をリードして入力レジスタ23に格納する。また、パイプラインレジスタ部21では奇数/偶数判定信号が1のまま変化しないためパイプラインレジスタ21c、パイプラインレジスタ21d、パイプラインレジスタ21eは更新されない。
【0097】
パイプライン停止要求は、命令コードと前スキャンでの命令の実行/非実行状態がパイプラインレジスタ21eに転送されたタイミングで1になる。命令コードと前スキャンでの命令の実行/非実行状態がパイプラインレジスタ21eに転送されるのは、奇数/偶数判定信号が0から1になったときである。つまり、必ず命令コードの上位データがリードされた後にパイプライン停止要求が1になり、パイプライン処理が停止するようになっており、1つの命令コードをリードし終わるまではパイプライン処理は中断しない。
【0098】
T6の期間は、プログラムカウンタ15の値は2n+4であり、パイプラインレジスタ21c、パイプラインレジスタ21d、パイプラインレジスタ21eの内容はT5の期間から変化していない。ただし、デコード情報保持レジスタ22bのH/W命令▲1▼のデコード情報はデコード情報保持レジスタ22cに転送されている。
【0099】
デコード情報保持レジスタ22cにH/W命令▲1▼のデコード情報が転送されると、H/W命令▲1▼の命令種別信号がH/W命令演算部26に出力され、T5の期間で入力レジスタ23に格納されたデバイス情報の演算を行い、接点状態記憶部24に演算結果を格納する。
【0100】
図9は、リードしたデバイス情報がONすなわち1であった場合であり、このときは接点状態記憶部24にはONすなわち1が格納される。また、この期間でRAM11の2n+4番地のH/W命令▲3▼の命令コードの下位データがリードされる。
【0101】
T7の期間は、プログラムカウンタ15の値が2n+5になり、奇数/偶数判定信号が1から0になったところで、パイプラインレジスタ21cのH/W命令▲2▼の命令コードと前スキャンでの命令の実行/非実行状態がパイプラインレジスタ21dに格納された後を示すものである。この期間でデコード回路22aにおいてH/W命令▲2▼の命令コードがデコードされ、H/W命令▲2▼を示す命令種別信号が生成される。また、デバイスアドレスがRAM11を指定しているため、H/W命令▲2▼のRAM11に対するデバイス情報リード要求と、パイプライン処理停止数が1であることを示す信号が生成される。この期間でRAM11の2n+5番地のH/W命令▲3▼の命令コードの上位データがリードされる。
【0102】
T8の期間は、プログラムカウンタ15の値が2n+6になり、H/W命令▲3▼の命令コードと前スキャンでの命令の実行/非実行状態がパイプラインレジスタ21cに転送され、奇数/偶数判定信号が0から1になったところで、パイプラインレジスタ21dのH/W命令▲2▼の命令コードと前スキャンでの命令の実行/非実行状態がパイプラインレジスタ21eに格納され、デコード回路22aのH/W命令▲2▼のデコード情報がデコード情報保持レジスタ22bに転送された後を示すものである。
【0103】
デコード情報保持レジスタ22bにH/W命令▲2▼のデコード情報が転送されると、H/W命令▲2▼のRAM11に対するデバイス情報リード要求とパイプライン処理停止数が1であることを示す信号がH/W命令演算制御部25に出力される。H/W命令演算制御部25は、RAM11に対してのデバイス情報リード要求をメモリ制御部14に出力し、パイプライン停止要求を1にする。
【0104】
パイプラインレジスタ部21は、パイプライン停止要求が1であるため、パイプライン停止信号を1にする。メモリ制御部14は、パイプライン停止信号が1であるため、命令コードのリード信号をマスクし、プログラムカウンタ15のインクリメントを実行しない。また、パイプラインレジスタ部21では奇数/偶数判定信号が1のまま変化しないため、パイプラインレジスタ21c、パイプラインレジスタ21d、パイプラインレジスタ21eは更新されない。
【0105】
メモリ制御部14は、H/W命令演算制御部25からのRAM11に対してのデバイス情報リード要求により、入力レジスタとRAM11のデータバスを繋ぎ、RAM11からデバイス情報をリードして入力レジスタ23に格納する。
【0106】
T9の期間は、プログラムカウンタ15の値が2n+6であり、パイプラインレジスタ21c、パイプラインレジスタ21d、パイプラインレジスタ21eの内容はT8の期間から変化していない。ただし、デコード情報保持レジスタ22bのH/W命令▲2▼のデコード情報はデコード情報保持レジスタ22cに転送されている。
【0107】
デコード情報保持レジスタ22cにH/W命令▲2▼のデコード情報が転送されると、H/W命令▲2▼の命令種別信号がH/W命令演算部26に出力され、T8の期間で入力レジスタ23に格納されたデバイス情報をH/W演算データ格納部27に格納する。この期間でRAM11の2n+6番地のH/W命令▲4▼の命令コードの下位データがリードされる。
【0108】
T10の期間は、プログラムカウンタ15の値が2n+7になり、奇数/偶数判定信号が1から0になったところで、パイプラインレジスタ21cのH/W命令▲3▼の命令コードと前スキャンでの命令の実行/非実行状態がパイプラインレジスタ21dに格納された後を示すものである。この期間でデコード回路22aにおいてH/W命令▲3▼の命令コードがデコードされる。デコード回路22aのデコードによってH/W命令▲3▼の命令種別信号が生成される。
【0109】
また、デバイスアドレスがRAM11を指定し、かつ接点状態記憶部24に格納された接点状態がONすなわち1であるため、H/W命令▲3▼の実行条件が成立し、RAM11に対するデバイス情報のライト要求とパイプライン処理停止数が2であることを示す信号が生成される。この期間でRAM11の2n+7番地のH/W命令▲4▼の命令コードの上位データがリードされる。
【0110】
T11の期間は、プログラムカウンタ15の値が2n+8になり、H/W命令▲4▼の命令コードと前スキャンでの命令の実行/非実行状態がパイプラインレジスタ21cに転送され、奇数/偶数判定信号が0から1になったところで、パイプラインレジスタ21dのH/W命令▲3▼の命令コードと前スキャンでの命令の実行/非実行状態がパイプラインレジスタ21eに格納され、デコード回路22aのH/W命令▲3▼のデコード情報がデコード情報保持レジスタ22bに転送された後を示すものである。
【0111】
デコード情報保持レジスタ22bにH/W命令▲3▼のデコード情報が転送されると、H/W命令演算部26にH/W命令▲3▼の命令種別信号が出力され、T10の期間でH/W演算データ格納部27に格納されたデバイス情報をH/W命令演算部26で演算する。また、デコード情報保持レジスタ22bからRAM11に対するデバイス情報のライト要求とパイプライン処理停止数が2であることを示す信号がH/W命令演算制御部25に出力される。
【0112】
H/W命令演算制御部25は、デコード情報保持レジスタ22bからパイプライン処理停止数が2であることを示す信号を受け取ったため、パイプライン停止要求を1にする。パイプラインレジスタ部21はパイプライン停止要求が1であるため、パイプライン停止信号を1にする。パイプライン停止信号が1になるため、メモリ制御部14において、命令コードのリード信号がマスクされ、プログラムカウンタ15のインクリメントが実行されない。
【0113】
また、パイプラインレジスタ部21では奇数/偶数判定信号が1のまま変化しないためパイプラインレジスタ21c、パイプラインレジスタ21d、パイプラインレジスタ21eは更新されない。この期間ではパイプライン停止信号が1であり、命令コードのリード信号がマスクされているため、命令コードのリードは実行されない。また、H/W命令演算制御部25からRAM11に対するリード/ライト要求も出力されていないため、RAM11に対するアクセスはない。
【0114】
T12の期間は、プログラムカウンタ15の値は2n+8であり、パイプラインレジスタ21c、パイプラインレジスタ21d、パイプラインレジスタ21eの内容はT11の期間から変化していない。ただし、デコード情報保持レジスタ22bのH/W命令▲3▼のデコード情報はデコード情報保持レジスタ22cに転送されている。デコード情報保持レジスタ22cにH/W命令▲3▼のデコード情報が転送されると、H/W命令▲3▼の命令種別信号がH/W命令演算部26に出力され、T11の期間で演算したデータをメモリ制御部14に対して出力する。T11の期間でデコード情報保持レジスタ22bからパイプライン処理停止数が2であることを示す信号が出力されたため、T12の期間でもパイプライン停止要求は1である。
【0115】
したがって、パイプラインレジスタ部21は、パイプライン停止信号をT12の期間でも1にする。パイプライン停止信号が1であるため、メモリ制御部14において命令コードのリード信号がマスクされ、プログラムカウンタ15のインクリメントが実行されない。
【0116】
また、パイプラインレジスタ部21では奇数/偶数判定信号が1のまま変化しないため、パイプラインレジスタ21c、パイプラインレジスタ21d、パイプラインレジスタ21eは更新されない。T11の期間でデコード情報保持レジスタ22bからRAM11に対するライト要求を受け取ったため、この期間でH/W命令演算制御部25はメモリ制御部14にRAM11に対するライト要求を出力し、メモリ制御部14はH/W命令演算部26とRAM11のデータバスを繋ぎ、RAM11に対してH/W命令▲3▼の演算結果をライトする。
【0117】
前述したように、パイプラインレジスタ21dに格納された命令コードをデコード回路22aでデコードするときに、デバイスアドレスをデコードすることによって、RAM11とRAM12のデバイス情報のどちらを使用するか判断している。デバイスアドレスがRAM12の領域を指定していた場合は、RAM11を指定していたときとは異なり、デコード回路22aでパイプライン処理停止数が0であることを示す信号が出力されるため、パイプラインレジスタ部21はパイプライン停止信号を1にしない。パイプライン停止信号が1にならないので、RAM11からの命令コードのリードとパイプライン処理が中断されない。したがって、RAM11からの命令コードのリードとRAM12からのデバイス情報のリード/ライトを同時におこなうことができ、演算処理を高速に実行することが可能である。
【0118】
一方、デバイスアドレスがRAM11の領域を指定していた場合は、命令コードのリードとデバイス情報のリード/ライトを共にRAM11からおこなうため、デバイス情報のリード/ライト時にはパイプライン停止信号を1にして命令コードのリードとパイプライン処理を中断させなければならない。しかし、RAM12を使用しないためRAM12を実装せずに小型化、低価格化を図ることが可能である。また、本実施の形態では、デバイスアドレスを変えることにより、同一のハードウェアで上記2種類の構成を使い分けることができる。
【0119】
なお、本実施の形態では、RAM11とRAM12の境界のアドレスは固定としたが、例えばRAM11とRAM12の境界のアドレスをレジスタにより切り替えるようにして、RAM11とRAM12の容量を可変にしてもよい。また、2回のリードで1つの命令コードをリードしているが、命令コードを1回でリードできるようにして、命令コードのリードサイクルを減らして高速化をおこなった構成においても上記の機能は実現可能である。
【0120】
図10は、RAM11の領域に割付けられているデバイスを使用して図7の命令を実行したとき、H/W命令▲1▼でリードするデバイス情報がOFFすなわち0の場合のタイミングチャートである。以下、図7の命令がRAM11のデバイス情報を用いて実行されたときに、H/W命令▲1▼でリードするデバイス情報がOFFの場合の動作を、図1、図7および図10を用いて説明する。
【0121】
T1の期間からT9までの期間の動作は、前述した図9の動作と同一である。ただし、T10の期間でH/W命令▲3▼がデコード回路22aでデコードされるときに、接点状態記憶部24の接点状態がOFFすなわち0であるので、H/W命令▲3▼の実行条件が成立しないため、H/W命令▲3▼は非実行となり、デコード情報としてデコード回路22aからパイプライン処理停止数が0であることを示す信号が出力され、RAM11に対するライト要求は出力されない。
【0122】
この場合、演算結果をRAM11にライトをおこなわないため、H/W命令▲3▼を実行しないことと同じ結果となる。また、デコード情報保持レジスタ22bからパイプライン処理停止数が0であることを示す信号が出力されるので、H/W演算制御部25がパイプライン停止要求を1にしないため、パイプライン停止信号が1にならず、メモリ制御部14で命令コードのリード信号がマスクされないため、命令コードのリードが中断されず命令実行時より処理が高速になる。
【0123】
前述したように、接点状態記憶部24に格納された接点状態によって、デコード回路22aで命令の実行/非実行を判断し、デコード情報としてデバイス情報のリード/ライト要求をメモリ制御部に出力しないため、実行条件が成立したときはデバイス情報のリード/ライトをおこなうが、実行条件が成立しなかったときはデバイス情報のリード/ライトをおこなわない。実行する必要のない命令のデバイス情報のリード/ライトをしないようにすることによって、命令が非実行時の演算処理時間を高速化する効果がある。
【0124】
図11は、RAM11に格納されている命令コードを示したものである。H/W命令▲1▼はRAM11若しくはRAM12に格納されたデバイス情報をリードし、演算結果を接点状態記憶部24に格納する接点命令である。H/W命令▲2▼は、接点状態記憶部24に格納された接点情報に関係なく、RAM11若しくはRAM12に格納されたデバイス情報をリードしてH/W演算データ格納部27にリードしたデバイス情報を格納するデータロード命令である。
【0125】
H/W命令▲6▼は、接点状態記憶部15の接点状態とRAM13の前スキャンでの命令の実行/非実行状態で実行/非実行を判断して(前スキャンでの命令の実行/非実行状態がOFF(0)で接点状態がON(1)のとき実行条件成立)、実行条件が成立したときはH/W演算データ格納部27に格納されている演算データをH/W命令演算部26で演算して演算結果をRAM11若しくはRAM12のデバイスに書き戻す命令である。
【0126】
図12は、接点状態記憶部24に格納された接点状態がOFF(0)からON(1)に変化したスキャンで、RAM12の領域に割付けられているデバイスを使用して、図11の命令を実行したときのタイミングチャートである(デバイスアドレスがRAM12を指定していた場合)。以下、H/W命令▲6▼の動作説明を図1、図11および図12を用いておこなう。
【0127】
T8の期間は、プログラムカウンタ15の値が2n+7になり、奇数/偶数判定信号が1から0になったところで、パイプラインレジスタ21cのH/W命令▲6▼の命令コードと前スキャンでの命令の実行/非実行状態がパイプラインレジスタ21dに格納され、デコード情報保持レジスタ22bのH/W命令▲2▼のデコード情報がデコード情報保持レジスタ22cに転送された後を示すものである。この期間でデコード回路22aにおいてH/W命令▲6▼の命令コードがデコードされる。
【0128】
接点状態記憶部24に格納された接点状態がONすなわち1であり、命令コードをパイプラインレジスタ21cに転送する際に、RAM13のn+2番地からリードした前回スキャンでの実行/非実行状態が非実行すなわち0であるため、H/W命令▲6▼の実行条件が成立し、かつデバイスアドレスがRAM12を指定しているため、RAM12に対するライト要求とパイプライン処理停止数が1であることを示す信号と前スキャンでの命令の実行/非実行状態ライト要求を出力する。この期間でRAM11の2n+7番地のH/W命令▲4▼の命令コードの上位データがリードされる。
【0129】
T9の期間は、プログラムカウンタ15の値が2n+8になり、H/W命令▲4▼の命令コードと前スキャンでの命令の実行/非実行状態がパイプラインレジスタ21cに転送され、奇数/偶数判定信号が0から1になったところで、パイプラインレジスタ21dのH/W命令▲6▼の命令コードと前スキャンでの命令の実行/非実行状態がパイプラインレジスタ21eに格納され、デコード回路22aのH/W命令▲6▼のデコード情報がデコード情報保持レジスタ22bに転送された後を示すものである。
【0130】
デコード情報保持レジスタ22bにH/W命令▲6▼のデコード情報が転送されると、H/W命令演算部26にH/W命令▲6▼の命令種別信号が出力され、T8の期間でH/W演算データ格納部27に格納されたデバイス情報をH/W命令演算部26で演算する。
【0131】
また、H/W命令演算制御部25は、デコード情報保持レジスタ22bからパイプライン処理停止数が1であることを示す信号が出力されたためパイプライン停止要求を1にする。パイプラインレジスタ部21は、パイプライン停止要求が1であるため、パイプライン停止信号を1にする。パイプライン停止信号が1になるため、メモリ制御部14において命令コードのリード信号がマスクされ、プログラムカウンタのインクリメントが実行されない。
【0132】
また、パイプラインレジスタ部21では奇数/偶数判定信号が1のまま変化しないためパイプラインレジスタ21c、パイプラインレジスタ21d、パイプラインレジスタ21eは更新されない。
【0133】
T10の期間は、プログラムカウンタ15の値は2n+8であり、パイプラインレジスタ21c、パイプラインレジスタ21d、パイプラインレジスタ21eの内容はT9の期間から変化していない。ただし、デコード情報保持レジスタ22bのH/W命令▲6▼のデコード情報がデコード情報保持レジスタ22cに転送されている。デコード情報保持レジスタ22cにH/W命令▲6▼のデコード情報が転送されると、H/W命令▲6▼の命令種別信号がH/W命令演算部26に出力され、T9の期間で演算したデータをメモリ制御部14に対して出力する。
【0134】
H/W命令演算制御部25は、この期間でメモリ制御部14にRAM12に対するライト要求を出力する。メモリ制御部14は、RAM12に対してH/W命令▲6▼の演算結果をライトする。同時に、H/W命令演算制御部25は、前スキャンでの実行/非実行状態ライト要求をメモリ制御部14に出力する。
【0135】
前スキャンでの実行/非実行状態ライト要求がない場合は、RAM13に対するアドレスはプログラムカウンタ15の値を右シフトさせて生成している。しかし、前スキャンでの実行/非実行状態ライト要求が出力された場合は、RAM13のH/W命令▲6▼のアドレス(プログラムカウンタ15の値を右シフトさせた値から−2して生成する)に、接点状態記憶部24に格納されている接点状態をライトする。また、この期間でRAM11からH/W命令▲5▼の命令コード下位データがリードされる。
【0136】
T11の期間は、プログラムカウンタ15の値が2n+9になり、奇数/偶数判定信号が1から0になったところで、パイプラインレジスタ21cのH/W命令▲4▼の命令コードと前スキャンでの命令の実行/非実行状態がパイプラインレジスタ21dに格納された後を示すものである。この期間ではRAM11の2n+9番地からH/W命令▲5▼の命令コード上位データがリードされる。
【0137】
また、メモリ制御部14は、H/W命令演算制御部25から前スキャンでの実行/非実行状態ライト要求がないので、RAM13に対するアドレスはプログラムカウンタ15の値を右シフトして生成し、RAM13のn+4番地から前スキャンでの実行/非実行状態をリードする。
【0138】
H/W命令▲6▼の実行条件が成立しなかった場合は、RAM11若しくはRAM12に対してデバイス情報のライトをおこなわない。ただし、パイプライン停止信号を1にしてパイプライン処理を中断させ、RAM13に接点状態を格納する動作はおこなう。
【0139】
上記のように、命令処理時にRAM13のアドレスをプログラムカウンタ15の値を右シフトさせて−2して生成し、接点状態記憶部24の接点状態を格納し、次スキャンでの接点状態とともに命令の実行/非実行の判断に使用することによって、接点状態が変化したスキャンのみ、実行するといった命令をH/Wによって効率的にかつ高速に演算することができる。
【0140】
また、接点状態記憶部15の接点状態とRAM13の前スキャンでの命令の実行/非実行状態によって、デコード回路22aで命令の実行/非実行を判断し、デコード情報としてデバイス情報のリード/ライト要求をメモリ制御部に出力しないため、実行時はデバイス情報のリード/ライトをおこなうが、非実行時はデバイス情報のリード/ライトをおこなわない。したがって、非実行時の演算処理時間を高速化する効果がある。
【0141】
図13は、パイプライン処理中に、例えばCPU31に割り込みが発生し、CPU31がRAM11に対してタスク情報のライトをおこなった場合のタイミングチャートである。CPU31がRAM11にタスク情報をライトしようとすると、CPU31はライト信号をメモリ制御部14に出力する。
【0142】
メモリ制御部14は、起動レジスタが1(パイプライン処理起動中)であるので、RAM11とパイプラインレジスタ部21のデータバスを繋いでいる。したがってCPU31からRAM11に対してライトができないため、メモリ制御部14はCPUウエイト信号をCPU31に出力する。
【0143】
一方、パイプラインレジスタ部21は、CPU31からライト信号を受け取ると、命令コードの上位データをリードした後パイプライン処理を停止させる。また、パイプライン処理が停止したときに、パイプラインレジスタ21dに格納されている命令(H/W命令▲2▼)まで処理をおこなう。
【0144】
H/W命令▲2▼完了後、メモリ制御部14がRAM11とCPU31のデータバスを繋ぎ、CPU31のタスク情報がRAM11にライトされる。CPU31の処理が完了し、再びパイプライン処理を開始させるときは、CPU31から起動レジスタ21aに1をライトすればよい。この手段により、CPU31がRAM11をリード/ライトする際に、ライト要求を出力するだけでパイプライン処理が停止し、タスク情報が退避できるため処理が高速になる。
【0145】
図14は、S/W命令の実行条件が成立したときのパイプライン処理を示したものである。以下、S/W命令の命令コードが入力されて、実行条件が成立したときのパイプライン処理を図1、図14を用いて説明する。
【0146】
T6の期間は、プログラムカウンタ15の値が2n+5になり、奇数/偶数判定信号が1から0になったところで、パイプラインレジスタ21cのS/W命令▲1▼の命令コードと前スキャンでの命令の実行/非実行状態がパイプラインレジスタ21dに格納された後を示すものである。
【0147】
パイプラインレジスタ21dにS/W命令▲1▼の命令コードと前スキャンでの命令の実行/非実行状態が格納されると、命令コード中のS/W命令とH/W命令を区別するビットが1(S/W命令)であるため、パイプラインレジスタ部21内で前スキャンでの命令の実行/非実行状態と接点状態記憶部24の接点状態でS/W命令の実行条件を判定する。
【0148】
T7の期間で、パイプラインレジスタ部21は、S/W命令▲1▼の実行条件が成立したら起動レジスタ21aを0にしてパイプライン処理を停止させる。パイプラインレジスタ部21は、起動レジスタ21aが0になったらステートレジスタに2(S/W命令実行でパイプライン処理停止中)をセットする。また、メモリ制御部14に対して、前スキャンでの命令の実行/非実行状態ライト要求を出力する。
【0149】
前スキャンでの命令の実行/非実行状態ライト要求により、メモリ制御部14はRAM13のS/W命令▲1▼の前スキャンでの命令の実行/非実行状態が格納されているアドレスに(プログラムカウンタ15の値を右シフトさせた値を−2したアドレス)、接点状態記憶部24に格納されている接点状態をライトする。
【0150】
CPU31は、ステートレジスタ21fを監視しており、ステートレジスタ21fに2がセットされたことを確認したら、S/W命令の演算を開始する。S/W命令の演算が終了したならば、CPU31は起動レジスタ21aに1をライトしてパイプライン処理を再開させる。
【0151】
図15は、S/W命令の実行条件が成立しなかったときのパイプライン処理を説明するための説明図である。以下、S/W命令の命令コードが入力されて、実行条件が成立しなかったときのパイプライン処理について図1および図15を用いて説明する。
【0152】
T6の期間は、プログラムカウンタ15の値が2n+5になり、奇数/偶数判定信号が1から0になったところで、パイプラインレジスタ21cのS/W命令▲1▼の命令コードと前スキャンでの命令の実行/非実行状態がパイプラインレジスタ21dに格納された後を示すものである。
【0153】
パイプラインレジスタ21dにS/W命令▲1▼の命令コードと前スキャンでの命令の実行/非実行状態が格納されると、命令コード中のS/W命令とH/W命令を区別するビットが1(S/W命令)であるため、パイプラインレジスタ部21内で、前スキャンでの命令の実行/非実行状態と接点状態記憶部24の接点状態でS/W命令の実行条件を判定する。
【0154】
T7の期間で、S/W命令▲1▼の実行条件が成立しなかった場合は、実行条件が成立した場合と同様に、RAM13に接点状態記憶部24の接点状態をライトするが、次のT8の期間ではパイプライン停止信号は解除される。また、起動レジスタ21aは1のままである。
【0155】
前述したように、S/W命令の実行条件が成立した場合は、パイプライン処理を停止させCPUでS/W命令の演算を実行し、実行後に起動レジスタに1をライトしてパイプライン処理を再開させる。一方、実行条件が成立しなかった場合は、RAM13に対して接点状態のライトのみおこない、CPU31はS/W命令の処理を実行しないでパイプライン処理を続ける。
【0156】
このため、実行する必要のないS/W命令をH/Wによって判断し、CPU31が余計な演算をしなくて済むため、S/W命令の演算処理が高速になる。なお、本実施の形態では、2回のリードで1つの命令コードをリードしているが、命令コードを1回でリードできるようにして、命令コードのリードサイクルを減らして高速化をおこなった構成においても上記の機能は実現可能である。
【0157】
【発明の効果】
上述してきたように、本発明によれば、シーケンスプログラムによってデバイス情報を第1の記憶手段または第2の記憶手段のいずれにリード/ライトするかを選択し、第1の記憶手段にリード/ライトするシーケンスプログラムが入力された場合は、デバイス情報のリード/ライト時にパイプライン処理を中断するとともに、該デバイス情報のリード/ライトが完了するまでシーケンスプログラムのリードを禁止し、第2の記憶手段にリード/ライトするシーケンスプログラムが入力された場合には、デバイス情報のリード/ライトとシーケンスプログラムのリードを同時に行うよう制御するよう構成したので、デバイスアドレスを変更するだけで、命令コードのリードとデバイス情報のリード/ライトが同時におこなえる高速な構成と、命令コードとデバイス情報を格納するメモリを共有化して、メモリの使用数を減少させ小型化、低価格化に優れた構成を同一のハードウェアで使い分けることができる。
【0158】
つぎの発明によれば、パイプラインレジスタは、第1の記憶手段から1つのシーケンスプログラムのデータをすべてリードしたときに該データをまとめて格納するレジスタであり、1つのシーケンスプログラムのデータのリードが完了するまで、第1の記憶手段からデバイス情報のリード/ライトを実行しないよう制御するよう構成したので、1つのシーケンスプログラムのデータを複数回に分けてリードする場合にも適用することができる。
【0159】
つぎの発明によれば、前スキャンでの命令の実行/非実行を示すビットをシーケンスプログラムとともに格納する第3の記憶手段を設けるよう構成したので、前スキャンでの命令の実行/非実行を利用して、命令デコード部で命令の実行/非実行を判断することができる。
【0160】
つぎの発明によれば、デバイス情報のリード/ライトを実行する命令が入力された際に、直前のシーケンスプログラムの接点の状態のオン/オフにより実行条件が成立した場合には、第1の記憶手段または第2の記憶手段にデバイス情報のリード/ライトを実行し、実行条件が成立しない場合には、第1の記憶手段または第2の記憶手段にデバイス情報のリード/ライトを実行しないよう制御するよう構成したので、接点のオン/オフにより命令デコード部での命令の実行/非実行を判断し、非実行時にはメモリに対して演算結果をリード/ライトしないようにし、非実行時の処理時間を短くすることができる。
【0161】
つぎの発明によれば、直前のシーケンスプログラムの接点の状態が変化したスキャンでデバイス情報のリード/ライトを実行する命令が入力された際に、直前のシーケンスプログラムの接点の状態と前スキャンでの命令の実行/非実行を示すビットのオン/オフにより実行条件が成立した場合には、第1の記憶手段または第2の記憶手段にデバイス情報のリード/ライトを実行し、実行条件が成立しない場合には、第1の記憶手段または第2の記憶手段にデバイス情報のリード/ライトを実行しないよう制御するよう構成したので、接点のオン/オフと、前回スキャン時の命令の実行/非実行情報により、命令デコード部で命令の実行/非実行を判断し、非実行時にはメモリに対して演算結果をリード/ライトしないようにし、非実行時の処理時間を短くすることができる。
【0162】
つぎの発明によれば、直前のシーケンスプログラムの接点の状態が変化したスキャンで実行される命令が入力された際に、第3の記憶手段に接点状態を格納するよう構成したので、直前のシーケンスプログラムの接点の状態が変化したスキャンで実行される命令をH/Wで高速に演算させることができる。
【0163】
つぎの発明によれば、シーケンスプログラムに従ってパイプライン処理を実行中に前記マイクロプロセッサにより第1の記憶手段または第2の記憶手段に対してリード/ライトをおこなう場合には、パイプライン処理を停止するとともに、マイクロプロセッサにより第1の記憶手段または第2の記憶手段に対するリード/ライトを開始するよう制御するよう構成したので、CPUがRAMにリード/ライトする際に、リード/ライト要求を出力するだけでパイプライン処理を停止してリード/ライトを実行できるため処理が高速になる。また、CPUに割り込みが発生した時にタスク情報を退避させるための専用のRAMが必要なくなるため、低価格化および小型化を図ることができる。
【0164】
つぎの発明によれば、S/W命令の演算を行う際に、直前のシーケンスプログラムの接点の状態と前スキャンでの命令の実行/非実行を示すビットのオン/オフにより実行条件が成立した場合には、パイプライン処理を停止してマイクロプロッセッサによりS/W命令を実行し、実行条件が成立しない場合には、マイクロプロセッサによるS/W命令を実行しないよう制御することとしたので、実行する必要のないS/W命令をH/Wによって判断し、CPUが余計な演算をしなくて済むため、S/W命令の演算処理を高速に実行することができる。
【図面の簡単な説明】
【図1】 この実施の形態に係るプログラマブルコントローラの構成を示したブロック図である。
【図2】 命令コードの構成を説明するための説明図である。
【図3】 メモリ制御部によるRAMのアクセスの制御を説明するための説明図である。
【図4】 RAM11に命令コードが格納される形態と、RAM13に各命令の前スキャンでの命令の実行/非実行状態が格納される形態を示す図である。
【図5】 プログラマブルコントローラ起動後の命令コードと前スキャンでの命令の実行/非実行状態がパイプラインレジスタ21cへの転送される点を説明するための説明図である。
【図6】 命令で使用するデバイス割付の例を示す図である。
【図7】 RAM11に格納されている命令コードを示す図である。
【図8】 RAM12の領域に割付けられているデバイスを使用した場合に図7の命令を実行したときのタイミングチャートである。
【図9】 RAM11の領域に割付けられているデバイスを使用した場合に図7の命令を実行したときのタイミングチャートである。
【図10】 RAM11の領域に割付けられているデバイスを使用して図7の命令を実行したとき、H/W命令▲1▼でリードするデバイス情報がOFFすなわち0の場合のタイミングチャートである。
【図11】 RAM11に格納されている命令コードを示した図である。
【図12】 接点状態記憶部24に格納された接点状態がOFFからONに変化したスキャンで、RAM12の領域に割付けられているデバイスを使用して、図11の命令を実行したときのタイミングチャートである。
【図13】 パイプライン処理中に、例えばCPU31に割り込みが発生し、CPU31がRAM11に対してタスク情報のライトをおこなった場合のタイミングチャートである。
【図14】 S/W命令の実行条件が成立したときのパイプライン処理を示す図である。
【図15】 S/W命令の実行条件が成立しなかったときのパイプライン処理を説明するための説明図である。
【図16】 従来の一般的なプログラマブルコントローラの構成を示すブロック図である。
【図17】 先行技術のプログラマブルコントローラの構成を示すブロック図である。
【符号の説明】
10 メモリI/F部、11 シーケンスプログラム/デバイス情報RAM、12 デバイス情報RAM、13 前回スキャン時での命令の実行/非実行の状態を格納するRAM、14 メモリ制御部、15 プログラムカウンタ、20 H/W命令演算処理部、21a 起動レジスタ、21b パイプラインレジスタ(0)、21c パイプラインレジスタ(1)、21d パイプラインレジスタ(2)、21e パイプラインレジスタ(3)、22 命令解読部、22a デコード回路、22b デコード情報保持レジスタ(1)、22c デコード情報保持レジスタ(2)、23 入力レジスタ、24 接点状態記憶部、25 H/W命令演算制御部、26 H/W命令演算部、27 H/W演算データ格納部、30 S/W命令演算処理部、31 CPU、32 システムROM、47 CPU、48 システムROM、49 シーケンスプログラム/デバイス情報RAM、50 CPU、51 システムROM、52 シーケンスプログラムRAM、53 デバイス情報RAM。
Claims (8)
- シーケンスプログラムとシーケンス演算に使用するデバイス情報およびマイクロプロセッサがタスク情報を格納する第1の記憶手段と、シーケンス演算に使用するデバイス情報を格納する第2の記憶手段と、前記第1の記憶手段から順次シーケンスプログラムを読み出しラッチするパイプラインレジスタとを少なくとも備え、前記シーケンスプログラムのパイプライン処理をおこなうプログラマブルコントローラであって、
前記シーケンスプログラムによって前記デバイス情報を前記第1の記憶手段または第2の記憶手段のいずれにリード/ライトするかを選択する選択手段と、
前記選択手段によって第1の記憶手段が選択された場合は、デバイス情報のリード/ライト時にパイプライン処理を中断するとともに、該デバイス情報のリード/ライトが完了するまで前記シーケンスプログラムのリードを禁止し、前記選択手段によって第2の記憶手段が選択された場合は、前記デバイス情報のリード/ライトとシーケンスプログラムのリードを同時に行うよう制御する制御手段と、
を備えたことを特徴とするプログラマブルコントローラ。 - 前記パイプラインレジスタは、前記第1の記憶手段から1つのシーケンスプログラムのデータをすべてリードしたときに該データをまとめて格納するレジスタであり、前記制御手段は、前記1つのシーケンスプログラムのデータのリードが完了するまで、前記第1の記憶手段からデバイス情報のリード/ライトを実行しないよう制御することを特徴とする請求項1に記載のプログラマブルコントローラ。
- 前スキャンでの命令の実行/非実行を示すビットをシーケンスプログラムとともに格納する第3の記憶手段をさらに備えたことを特徴とする請求項1または2に記載のプログラマブルコントローラ。
- 前記制御手段は、前記デバイス情報のリード/ライトを実行する命令が入力された際に、直前のシーケンスプログラムの接点の状態のオン/オフにより実行条件が成立した場合には、前記第1の記憶手段または前記第2の記憶手段にデバイス情報のリード/ライトを実行し、実行条件が成立しない場合には、前記第1の記憶手段または前記第2の記憶手段にデバイス情報のリード/ライトを実行しないよう制御することを特徴とする請求項1、2または3に記載のプログラマブルコントローラ。
- 前記制御手段は、直前のシーケンスプログラムの接点の状態が変化したスキャンでデバイス情報のリード/ライトを実行する命令が入力された際に、直前のシーケンスプログラムの接点の状態と前スキャンでの命令の実行/非実行を示すビットのオン/オフにより実行条件が成立した場合には、前記第1の記憶手段または前記第2の記憶手段にデバイス情報のリード/ライトを実行し、実行条件が成立しない場合には、前記第1の記憶手段または前記第2の記憶手段にデバイス情報のリード/ライトを実行しないよう制御することを特徴とする請求項1、2または3に記載のプログラマブルコントローラ。
- 前記制御手段は、直前のシーケンスプログラムの接点の状態が変化したスキャンで実行される命令が入力された際に、前記第3の記憶手段に接点状態を格納することを特徴とする請求項3に記載のプログラマブルコントローラ。
- 前記制御手段は、前記シーケンスプログラムに従ってパイプライン処理を実行中に前記マイクロプロセッサにより前記第1の記憶手段または前記第2の記憶手段に対してリード/ライトをおこなう場合には、前記パイプライン処理を停止するとともに、前記マイクロプロセッサにより前記第1の記憶手段または前記第2の記憶手段に対するリード/ライトを開始するよう制御することを特徴とする請求項1〜4のいずれか一つに記載のプログラマブルコントローラ。
- 前記制御手段は、S/W命令の演算を行う際に、直前のシーケンスプログラムの接点の状態と前スキャンでの命令の実行/非実行を示すビットのオン/オフにより実行条件が成立した場合には、パイプライン処理を停止して前記マイクロプロッセッサにより前記S/W命令を実行し、実行条件が成立しない場合には、前記マイクロプロセッサによる前記S/W命令を実行しないよう制御することを特徴とする請求項1〜4のいずれか一つに記載のプログラマブルコントローラ。
Priority Applications (5)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2001110063A JP4451010B2 (ja) | 2001-04-09 | 2001-04-09 | プログラマブルコントローラ |
PCT/JP2001/010179 WO2002084421A1 (en) | 2001-04-09 | 2001-11-21 | Programmable controller |
DE10196152.9T DE10196152B3 (de) | 2001-04-09 | 2001-11-21 | Programmierbare Steuervorrichtung |
KR10-2002-7016489A KR100502455B1 (ko) | 2001-04-09 | 2001-11-21 | 프로그래머블 컨트롤러 |
US10/203,407 US7076641B2 (en) | 2001-04-09 | 2001-11-21 | Programmable controller |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2001110063A JP4451010B2 (ja) | 2001-04-09 | 2001-04-09 | プログラマブルコントローラ |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2002312005A JP2002312005A (ja) | 2002-10-25 |
JP4451010B2 true JP4451010B2 (ja) | 2010-04-14 |
Family
ID=18961906
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2001110063A Expired - Fee Related JP4451010B2 (ja) | 2001-04-09 | 2001-04-09 | プログラマブルコントローラ |
Country Status (5)
Country | Link |
---|---|
US (1) | US7076641B2 (ja) |
JP (1) | JP4451010B2 (ja) |
KR (1) | KR100502455B1 (ja) |
DE (1) | DE10196152B3 (ja) |
WO (1) | WO2002084421A1 (ja) |
Families Citing this family (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7402168B2 (en) * | 2005-04-11 | 2008-07-22 | Xtent, Inc. | Custom-length stent delivery system with independently operable expansion elements |
JP4640989B2 (ja) * | 2006-01-12 | 2011-03-02 | 株式会社リコー | 画像処理装置及び画像処理制御方法 |
JP4507125B2 (ja) * | 2007-09-10 | 2010-07-21 | 三菱電機株式会社 | プログラマブルコントローラ |
KR102250856B1 (ko) * | 2014-04-30 | 2021-05-11 | 삼성전자주식회사 | 터치 입력 검출 방법, 터치 입력 감지 장치, 및 좌표 표시 장치 |
DE112016004899T5 (de) | 2015-12-11 | 2018-07-12 | Cummins Filtration Ip, Inc. | Filter mit axialer Dichtung mit variablem Querschnitt |
Family Cites Families (16)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2752076B2 (ja) * | 1988-02-23 | 1998-05-18 | 株式会社東芝 | プログラマブル・コントローラ |
DE4003507A1 (de) * | 1990-02-06 | 1991-08-08 | Bosch Gmbh Robert | Digitales steuergeraet, insbesondere zuend- und/oder einspritzsteuergeraet fuer kraftfahrzeuge |
JPH0792902A (ja) * | 1993-09-20 | 1995-04-07 | Hitachi Ltd | プログラマブルコントローラ |
US5724566A (en) * | 1994-01-11 | 1998-03-03 | Texas Instruments Incorporated | Pipelined data processing including interrupts |
DE9408298U1 (de) * | 1994-05-20 | 1994-07-21 | Pietzsch Ruediger | Controller-Board |
DE19500453A1 (de) * | 1994-06-16 | 1995-12-21 | Bosch Gmbh Robert | Verfahren zur Optimierung von Daten und/oder Programmteilen für programmierte Steuergeräte und Steuergerät |
JP3225757B2 (ja) * | 1994-10-24 | 2001-11-05 | 三菱電機株式会社 | プログラマブルコントローラ |
DE4443326A1 (de) * | 1994-12-06 | 1996-06-13 | Merk Gmbh Telefonbau Fried | Speicheranordnung einer Steuereinrichtung mit einem Mikroprozessor |
JPH0923307A (ja) | 1995-07-04 | 1997-01-21 | Fuji Xerox Co Ltd | 画像記録装置 |
JPH0922307A (ja) * | 1995-07-07 | 1997-01-21 | Meidensha Corp | シーケンサ |
JP3646445B2 (ja) * | 1997-01-13 | 2005-05-11 | 株式会社明電舎 | プログラマブルコントローラ |
US6021459A (en) * | 1997-04-23 | 2000-02-01 | Micron Technology, Inc. | Memory system having flexible bus structure and method |
GB2329049B (en) * | 1997-09-09 | 2002-09-11 | Advanced Risc Mach Ltd | Apparatus and method for identifying exceptions when debugging software |
DE19831405A1 (de) * | 1998-07-13 | 2000-01-20 | Siemens Ag | Steuerungssystem mit einem Personalcomputer |
SE512773C2 (sv) * | 1998-10-28 | 2000-05-08 | Imsys Ab | Metod och anordning för kontroll/access av DRAM-minnen |
KR100398759B1 (ko) * | 1999-05-28 | 2003-09-19 | 미쓰비시덴키 가부시키가이샤 | 프로그래머블 컨트롤러 |
-
2001
- 2001-04-09 JP JP2001110063A patent/JP4451010B2/ja not_active Expired - Fee Related
- 2001-11-21 KR KR10-2002-7016489A patent/KR100502455B1/ko not_active IP Right Cessation
- 2001-11-21 WO PCT/JP2001/010179 patent/WO2002084421A1/ja active IP Right Grant
- 2001-11-21 US US10/203,407 patent/US7076641B2/en not_active Expired - Fee Related
- 2001-11-21 DE DE10196152.9T patent/DE10196152B3/de not_active Expired - Fee Related
Also Published As
Publication number | Publication date |
---|---|
KR20030007851A (ko) | 2003-01-23 |
KR100502455B1 (ko) | 2005-07-20 |
US7076641B2 (en) | 2006-07-11 |
US20040024935A1 (en) | 2004-02-05 |
DE10196152T1 (de) | 2003-03-13 |
WO2002084421A1 (en) | 2002-10-24 |
DE10196152B3 (de) | 2014-11-20 |
JP2002312005A (ja) | 2002-10-25 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US4181938A (en) | Processor device | |
JP4883824B2 (ja) | デ―タ・プロセッサにおいて後続の命令処理に影響を及ぼす方法および装置 | |
JP3609444B2 (ja) | データ処理システム | |
JP4451010B2 (ja) | プログラマブルコントローラ | |
JPH0619711B2 (ja) | 優先ブランチ機構を備えたデータ処理システム | |
JPH0612107A (ja) | シーケンス演算プロセッサおよびシーケンス演算処理装置 | |
JPH07219766A (ja) | 演算処理装置 | |
JPH07244588A (ja) | データ処理装置 | |
JPH06103223A (ja) | データ処理装置 | |
JPH06324861A (ja) | Cpu制御システム及び制御方法 | |
JPH09160786A (ja) | マイクロプロセッサ | |
JP3139310B2 (ja) | ディジタル信号処理装置 | |
JP2002278753A (ja) | データ処理システム | |
JP2000029508A (ja) | プログラマブルコントローラ | |
JPH0876876A (ja) | マイクロプロセッサのクロック供給制御回路 | |
JPS59144955A (ja) | 情報処理装置 | |
WO1993018451A1 (en) | Elimination of the critical path in memory control unit and input/output control unit operations | |
JPH03134782A (ja) | A/d変換装置内蔵マイクロコンピュータ | |
JPH10269079A (ja) | 多重パイプラインを有する情報処理装置 | |
JP2004062414A (ja) | メモリ共有システム | |
JPH08297583A (ja) | 割り込み処理装置およびその方法 | |
JP2000215152A (ja) | Dma制御回路 | |
JPS60142450A (ja) | 記憶システム | |
JPH0683639A (ja) | レジスタ装置 | |
JP2001084143A (ja) | 情報処理装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20071217 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20091110 |
|
A521 | Written amendment |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20091221 |
|
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: 20100126 |
|
A01 | Written decision to grant a patent or to grant a registration (utility model) |
Free format text: JAPANESE INTERMEDIATE CODE: A01 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20100127 |
|
R150 | Certificate of patent or registration of utility model |
Free format text: JAPANESE INTERMEDIATE CODE: R150 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20130205 Year of fee payment: 3 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20130205 Year of fee payment: 3 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20140205 Year of fee payment: 4 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
LAPS | Cancellation because of no payment of annual fees |