JP5088566B2 - PLC with interrupt function - Google Patents
PLC with interrupt function Download PDFInfo
- Publication number
- JP5088566B2 JP5088566B2 JP2008062386A JP2008062386A JP5088566B2 JP 5088566 B2 JP5088566 B2 JP 5088566B2 JP 2008062386 A JP2008062386 A JP 2008062386A JP 2008062386 A JP2008062386 A JP 2008062386A JP 5088566 B2 JP5088566 B2 JP 5088566B2
- Authority
- JP
- Japan
- Prior art keywords
- register
- interrupt
- execution
- save
- executed
- 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.)
- Active
Links
Images
Landscapes
- Programmable Controllers (AREA)
Description
この発明は、例えば、I/O割込、電断割込、定時割込等の割込機能を有するプログラマブル・コントローラ(以下、「PLC」と言う)に関する。 The present invention relates to a programmable controller (hereinafter referred to as “PLC”) having an interrupt function such as an I / O interrupt, a power interruption interrupt, and a scheduled interrupt.
PLCには、電源供給部、入出力処理部、演算処理部、各種の特殊演算処理部等々と言った様々な装置構成要素を1つのハウジングに全て収容してなるオールインワン型のものと、それらの処理部のそれぞれを別々のハウジングに収容してなるビルディングブロック型のものとが存在する。 The PLC includes an all-in-one type in which various device components such as a power supply unit, an input / output processing unit, an arithmetic processing unit, various special arithmetic processing units, etc. are accommodated in one housing, There is a building block type in which each processing unit is housed in a separate housing.
演算処理部の一例として、ビルディングブロック型PLCのCPUユニットが図9に示されている。このCPUユニット1は、所謂バックプレーン上に敷設された内部バス10を介して、図示しない、電源ユニット、入出力ユニット、その他の特殊演算ユニット等々と接続されるものである。
As an example of the arithmetic processing unit, a CPU unit of a building block type PLC is shown in FIG. The
同図に示されるように、CPUユニット1内には、ユーザプログラムメモリ(UM)11、入出力メモリ(IOM)12、データ格納用不揮発性メモリ13、専用IC14、マイクロプロセッサ(MPU)15、システムプログラムメモリ(ROM)16、及びワークメモリ(ワークRAM)17が含まれている。
As shown in the figure, the
ユーザプログラムメモリ11には、所望の制御仕様に対応する1若しくは2以上のサイクル実行タスクとして実行されるユーザプログラムと、1若しくは2以上の割込実行タスクとして実行されるユーザプログラムとが、所定のユーザプログラム言語で記述され専用IC14で実行可能な状態で格納されている。
In the
入出力メモリ12には、入力データ領域と出力データ領域とが設けられており、入力データ領域には図示しない外部入力端子列の入力信号に対応する入力データが格納され、出力データ領域には図示しない外部出力端子列の出力信号に対応する出力データとが格納される。
The input /
データ格納用不揮発性メモリ13には、演算処理等に必要な各種の設定データのほか、異常通知の設定、異常ステータス等々が格納されている。
The data
専用IC14は、所定のユーザプログラム言語にて記述されたユーザプログラムを実行するプログラム実行機能が組み込まれたものである。 The dedicated IC 14 incorporates a program execution function for executing a user program described in a predetermined user program language.
マイクロプロセッサ15は、マイクロプロセッサ言語で記述された各種のシステムプログラムを実行することにより、PLCとしての各種の機能を実現するものである。それらの機能の代表的なものとしては、図示しない入出力ユニットの外部入力端子列から入力回路を介して入力データを読み込んで、入出力メモリ12の入力データ領域に書き込む入力更新処理と、入出力メモリ12の出力データ領域に格納された出力データを図示しない入出力ユニットの出力回路を介して外部出力端子列から外部へと送出する出力更新処理と、専用IC14の介在の下に、ユーザプログラムメモリ11からユーザプログラムを構成する各命令語を順次に読み出して実行する命令実行処理と、他のPLC、リモート入出力ターミナル、又はプログラム開発支援装置(ツール装置)等との間で通信を介してデータのやり取りを行う周辺サービス処理等を挙げることができる。
The
マイクロプロセッサ15は、入力更新処理、出力更新処理、命令実行処理、周辺サービス処理等を繰り返し実行するように制御することでユーザプログラムに従って制御対象を制御する。この繰り返し実行する際の一回の繰り返しに要する時間をサイクルタイムと呼ぶ。
The
システムプログラムメモリ16には、マイクロプロセッサ15が上記の各機能(入力更新処理、出力更新処理、命令実行処理、周辺サービス処理等)を実現するのに必要なシステムプログラムが、所定のマイクロプロセッサ言語にて記述されマイクロプロセッサ15で実行可能な状態で格納されている。
In the
ワークメモリ17は、マイクロプロセッサ15がシステムプログラムメモリ16からシステムプログラムを読み出して実行する際のワークエリアとして使用される。
The work memory 17 is used as a work area when the
上述のPLCは、I/O割込、電断割込、定時割込等々のように、様々な割込要因を受け付け可能とされており、それらの割込要因が受け付けられたときには、所定の動作手順にしたがって割込処理が実行される。 The above PLC can accept various interrupt factors such as I / O interrupts, power interruption interrupts, scheduled interrupts, etc., and when those interrupt factors are accepted, Interrupt processing is executed according to the operation procedure.
従来のCPUユニットにおける割込処理の動作手順を示すフローチャートが図10示されている。同図に示されるように、割込処理の全体は、MPU処理(MPUによって実行される処理という意味)に委ねられる前段処理A(ステップ201〜203)と、専用IC処理(専用ICによって実行される処理という意味)に委ねられる本体処理B(ステップ204)と、MPU処理に委ねられる後段処理C(ステップ205〜207)とから構成されている。
FIG. 10 is a flowchart showing an operation procedure of interrupt processing in the conventional CPU unit. As shown in the figure, the entire interrupt process is performed by the preceding process A (
なお、この例にあっては、前段処理Aには、割込禁止処理(ステップ201)、レジスタ退避処理(ステップ202)、及び割込みプログラム実行前処理(ステップ203)が含まれている。また、後段処理Cには、割込みプログラム実行後処理(ステップ205)、レジスタ復元処理(ステップ206)、及び割込み解除処理(ステップ207)が含まれている。 In this example, the pre-stage process A includes an interrupt prohibition process (step 201), a register save process (step 202), and an interrupt program execution pre-process (step 203). Further, the post-stage process C includes an interrupt program execution post-process (step 205), a register restoration process (step 206), and an interrupt release process (step 207).
より具体的には、図9に示されるように、I/O割込信号や電断割込信号(IT1)は内部バスに含まれる割込ラインを介して専用IC14により受け付けられる。すると、専用IC14では、前段処理A(ステップ201〜203)の実行をマイクロプロセッサ15に委ねるために、それらの割込信号をマイクロプロセッサ15の割込入力端子へと受け流す。前段処理A(ステップ201〜203)の実行が完了すると、マイクロプロセッサ15は、本体処理B(ステップ204)の実行を専用IC14に委ねるべく、プログラム実行権を専用IC14に渡す。専用IC14は、本体処理B(ステップ204)の実行が完了すると、後段処理C(ステップ205〜207)の実行を再びマイクロプロセッサに15に委ねるべく、プログラム実行権をマイクロプロセッサ15に渡す。
More specifically, as shown in FIG. 9, the I / O interrupt signal and the power interruption interrupt signal (IT1) are received by the
このようにして、図10のフローチャートに示される一連の処理が実行される結果、図11に示されるように、常時は、ユーザプログラムUP1−1,UP1−2をそれぞれサイクル実行タスク(サイクリックに実行されるタスクの意味)として実行しつつも、I/O割込、定時割込、電断割込が発生したときには、そのときサイクル実行タスクとして実行中のユーザプログラムUP1−2を実行中断し、その代わりに、ユーザプログラムUP2を割込実行タスク(割込処理にて実行されるタスクの意味)として実行すると共に、ユーザプログラムUP2の実行が完了するのを待って、割込前にサイクル実行タスクとして実行されていたユーザプログラムUP1−2に復帰すると言った一連の動作が自動的に実行されるのである。このように、ユーザの作成する制御プログラムであるユーザプログラムは、上述のサイクル実行タスクとして、又は上述の割込実行タスクとして実行されることとなる。 As a result of the series of processes shown in the flowchart of FIG. 10 being executed in this way, as shown in FIG. 11, the user programs UP1-1 and UP1-2 are always set to cycle execution tasks (cyclically). When an I / O interrupt, scheduled interrupt, or power interruption interrupt occurs, the execution of the user program UP1-2 being executed as a cycle execution task is interrupted. Instead, the user program UP2 is executed as an interrupt execution task (meaning of a task executed in the interrupt process), and after the execution of the user program UP2 is completed, the cycle is executed before the interrupt. A series of operations such as returning to the user program UP1-2 being executed as a task is automatically executed. Thus, the user program which is a control program created by the user is executed as the above-described cycle execution task or the above-described interrupt execution task.
ところで、上述のサイクル実行タスクとして実行されるユーザプログラムUP1−1,UP1−2と割込実行タスクとして実行されるユーザプログラムUP2とでは、プログラムの実行中に操作する演算用レジスタ群は両ユーザプログラム間で一部重複するのが通例である。 By the way, in the user programs UP1-1 and UP1-2 executed as the above-mentioned cycle execution task and the user program UP2 executed as the interrupt execution task, the arithmetic register group operated during the execution of the program is the both user programs. It is customary to have some overlap between them.
したがって、サイクル実行タスクとして実行されるあるユーザプログラムから割込実行タスクとして実行されるあるユーザプログラムへと実行対象プログラムを切り替えたり、逆に、割込実行タスクとして実行されるあるユーザプログラムからサイクル実行タスクとして実行されるあるユーザプログラムへと実行対象プログラムを切り替える際には、その切り替えの前後において、両プログラム間で共用するレジスタ群のデータ(記憶内容)をそのまま引き継ぐことはできない。 Therefore, the execution target program is switched from a user program executed as a cycle execution task to a user program executed as an interrupt execution task, or conversely, a cycle execution is executed from a user program executed as an interrupt execution task. When switching the execution target program to a certain user program executed as a task, the data (stored contents) of the register group shared between the two programs cannot be taken over as it is before and after the switching.
このように、互いに独立しかつ演算用レジスタを一部供用する2以上のプログラム間で、実行対象プログラムの相互切替が必要な場合、パソコン等の大容量メモリを保有する情報処理装置の分野においては、一般に「バンク」と称されるメモリ領域を各プログラム別に割り当てると共にこれに各プログラム毎に必要なレジスタ群を配置し、実行対象プログラムの切替が必要な場合には、バンク単位でレジスタ群を一括して切り替えると言った手法(以下、「バンク切り替え手法」と言う)が採用されている。 As described above, in the field of information processing apparatuses having a large-capacity memory such as a personal computer when mutual switching of execution target programs is required between two or more programs that are independent of each other and partially use an arithmetic register. In general, a memory area called “bank” is allocated to each program, and necessary register groups are allocated to each program. When it is necessary to switch the execution target program, the register groups are grouped in units of banks. The method of switching (hereinafter referred to as “bank switching method”) is employed.
このようなバンク切り替え手法によれば、互いに独立しかつ演算用レジスタを一部供用する2以上のプログラム間で、実行対象プログラムの相互切替を行う場合、バンク単位でレジスタ群を一括して切り替えることから、プログラム間における実行の移行を瞬時に行うことができると言う利点がある。 According to such a bank switching method, when performing mutual switching of execution target programs between two or more programs that are independent of each other and partially use the arithmetic registers, the register group is switched in a bank unit. Therefore, there is an advantage that execution can be instantaneously transferred between programs.
しかし、PLCのように、比較的に小容量のメモリしか保有できない制御装置にあっては、上述のパソコン等の大容量メモリを保有する情報処理装置の場合とは異なり、各ユーザプログラム毎にレジスタ群配置用のバンクを割り当てることは困難であるから、実行対象プログラムの切り替えに際してバンク切り替え手法を採用することはできない。 However, in the case of a control device that can hold only a relatively small amount of memory, such as a PLC, unlike the information processing device that has a large-capacity memory such as the above-mentioned personal computer, a register for each user program. Since it is difficult to assign a bank for group placement, the bank switching method cannot be adopted when switching the execution target program.
そのため、従来、PLCにおいて、サイクル実行タスクとなるユーザプログラムと割込実行タスクとなるユーザプログラムとの間で、実行対象プログラムを切り替える場合には、演算用レジスタ群それ自体は共用しつつも、それらレジスタ群のデータ(記憶内容)については、所定の記憶領域(スタック)に退避又は所定の記憶領域(スタック)から復元すると言った手法(以下、「ネスティング手法」と言う)が採用されている(例えば、特許文献1参照)。図10の例にあっては、前段処理を構成するレジスタ退避処理(ステップ202)及び後段処理を構成するレジスタ復元処理(ステップ206)が、ネスティング手法を実現するための処理に相当する。 Therefore, conventionally, when switching execution target programs between a user program serving as a cycle execution task and a user program serving as an interrupt execution task in a PLC, the arithmetic registers are themselves shared, For the data (stored contents) of the register group, a method (hereinafter referred to as “nesting method”) that saves to a predetermined storage area (stack) or restores from a predetermined storage area (stack) is adopted (hereinafter referred to as “nesting method”). For example, see Patent Document 1). In the example of FIG. 10, the register saving process (step 202) that constitutes the pre-stage process and the register restoration process (step 206) that constitutes the post-stage process correspond to the process for realizing the nesting method.
このようなネスティング手法を採用したPLCによれば、比較的に小容量のメモリしか保有できなくとも、プログラム間でのデータ干渉を回避しつつ、実行対象プログラムの切り替えを円滑に行わせることができる。
サイクル実行タスクとなるユーザプログラムと割込実行タスクとなるユーザプログラムとの間で、実行対象プログラムを切り替えるに際して、ネスティング手法を採用する従来のPLCにあっては、システム中の全ての演算用レジスタ或いは複数のユーザプログラム間で共用する可能性がある全ての演算用レジスタについて、レジスタ退避処理及びレジスタ復元処理を実行するように仕組まれている。 In a conventional PLC that employs a nesting method when switching an execution target program between a user program that is a cycle execution task and a user program that is an interrupt execution task, all arithmetic registers in the system or A register save process and a register restore process are executed for all arithmetic registers that may be shared among a plurality of user programs.
しかしながら、このような従来のPLCにあっては、複数のユーザプログラム間で共用する可能性がある全ての演算用レジスタだけでも、少なくとも百数十個にも及ぶため、レジスタ退避処理及びレジスタ復元処理にかなりの時間がかかり、その分だけ割込開始から割込復帰に至る所要時間が長大化してしまう。その結果、割込実行タスクを実行するための割込処理によるサイクル実行タスク側の受ける影響が大きいと言う問題点が指摘されている。 However, in such a conventional PLC, all the arithmetic registers that may be shared among a plurality of user programs are at least a few hundred, so register saving processing and register restoring processing It takes a considerable amount of time, and the time required from interrupt start to interrupt return increases accordingly. As a result, a problem has been pointed out that the cycle execution task side is greatly affected by the interrupt processing for executing the interrupt execution task.
ここで、サイクル実行タスク側の受ける影響とは、サイクルタイムが伸びることにより入力更新処理の遅れによる入力データの取りこぼしや、出力データの出力遅れ等が発生することによりサイクル実行タスクの実行精度が悪くなるということである。 Here, the effect on the cycle execution task side is that the execution accuracy of the cycle execution task is poor due to the input data being missed due to the delay of the input update process or the output delay of the output data due to the increase of the cycle time That is.
この発明は、このような従来の問題点に着目してなされたものであり、その目的とするところは、割込開始から割込復帰に至る所要時間をできるだけ短縮することが可能な割込機能を備えたPLCを提供することにある。 The present invention has been made paying attention to such conventional problems, and the object of the invention is an interrupt function capable of shortening the time required from interrupt start to interrupt return as much as possible. It is providing the PLC provided with.
この発明のさらに他の目的並びに作用効果については、明細書の以下の記述を参照することにより、当業者であれば容易に理解されるであろう。 Other objects and operational effects of the present invention will be easily understood by those skilled in the art by referring to the following description of the specification.
上述の技術的課題は、以下の構成を有する割込機能を有するPLCにより解決することができると考えられる。 It is considered that the above technical problem can be solved by a PLC having an interrupt function having the following configuration.
すなわち、この割込機能を有するPLCは、割込実行タスクとして実行されるユーザプログラムの実行前には、演算用のレジスタに格納されたデータを所定のメモリ領域に退避操作するレジスタ退避処理を少なくとも含む前段処理が実行され、また割込実行タスクとして実行されるユーザプログラムの実行後には、所定のメモリ領域に退避されているデータを元に戻すことにより、演算用レジスタの内容を復元操作するレジスタ復元処理を少なくとも含む後段処理が実行されるようになっている。 That is, the PLC having this interrupt function performs at least a register saving process for saving the data stored in the arithmetic register to a predetermined memory area before executing the user program executed as the interrupt execution task. A register that restores the contents of the operation register by restoring the data saved in a predetermined memory area after execution of the user program executed as an interrupt execution task. Subsequent processing including at least restoration processing is executed.
加えて、このPLCには、レジスタ退避処理にて退避操作されかつレジスタ復元処理にて復元操作されるべきデータの格納されたレジスタを任意に指定するための操作対象レジスタ指定手段と、割込用のユーザプログラムの実行に際しては、操作対象レジスタ指定手段により指定された演算用レジスタに関してのみ、レジスタ退避処理及びレジスタ復元処理を実行する退避・復元実行手段とが設けられている。 In addition, the PLC includes an operation target register specifying means for arbitrarily specifying a register storing data to be saved in the register saving process and to be restored in the register restoring process, When executing the user program, save / restore execution means for executing register save processing and register restore processing is provided only for the arithmetic register designated by the operation target register designation means.
このような構成よりなるPLCによれば、割込用のユーザプログラムの実行に際しては、操作対象レジスタ指定手段により指定された演算用レジスタに関してのみ、レジスタ退避処理及びレジスタ復元処理が実行されるから、割込処理によって実際に操作される演算用レジスタのみを操作対象レジスタ指定手段により予め指定しておきさえすれば、レジスタ退避処理及びレジスタ復元処理の所要時間を最小化して、割込開始から割込復帰に至る所要時間をできるだけ短縮することができる。 According to the PLC having such a configuration, when executing the interrupt user program, the register saving process and the register restoring process are executed only for the operation register designated by the operation target register designating unit. As long as only the operation registers that are actually manipulated by the interrupt processing are specified in advance by the operation target register specifying means, the time required for register save processing and register restoration processing is minimized, and interrupts are started from the start of the interrupt. The time required to return can be shortened as much as possible.
本発明に係るPLCの好ましい実施の形態においては、操作対象レジスタ指定手段が、操作対象となるレジスタを指定するためのデータを予め登録するための操作対象登録レジスタを含み、かつ退避・復元実行手段が、操作対象登録レジスタに登録されたデータで指定される演算用レジスタに関してのみ、レジスタ退避処理及びレジスタ復元処理を実行する、ように構成される。 In a preferred embodiment of the PLC according to the present invention, the operation target register designating unit includes an operation target registration register for preregistering data for designating a register to be operated, and save / restore execution unit However, the register saving process and the register restoring process are executed only for the arithmetic register designated by the data registered in the operation target register.
このような構成によれば、割込処理によって実際に操作される演算用レジスタのみを操作対象登録レジスタに登録しておきさえすれば、特に、ユーザプロクラム中において特別な指示を与えずとも、割込要因が発生すれば、操作対象として登録されたレジスタについてのみ、レジスタ退避処理及びレジスタ復元処理が実行されるから、登録対象となる操作対象レジスタの選定さえ確実でありさえすれば、割込開始から割込復帰に至る所要時間を最短とすることも可能となる。 According to such a configuration, as long as only the arithmetic register actually operated by the interrupt processing is registered in the operation target registration register, it is possible to interrupt without particularly giving a special instruction in the user program. If an interrupt factor occurs, the register save process and the register restore process are executed only for the register registered as the operation target, so if the selection of the operation target register to be registered is reliable, the interrupt starts. It is also possible to minimize the time required for the return from interruption to interruption.
このとき、退避・復元実行手段が、所定の命令コードが割り当てられた退避操作命令と、ユーザプログラム中において、退避操作命令が解読されるのに応答して、操作対象登録レジスタに登録されたデータで指定される演算用レジスタに関してのみ、レジスタ退避処理を実行する退避操作命令実行手段と、所定の命令コードが割り当てられた復元操作命令と、ユーザプログラム中において、復元操作命令が解読されるのに応答して、操作対象登録レジスタに登録されたデータで指定される演算用レジスタに関してのみ、レジスタ復元処理を実行する復元操作命令実行手段とを含む、ように構成してもよい。 At this time, the saving / restoring execution means receives the saving operation instruction to which a predetermined instruction code is assigned and the data registered in the operation target registration register in response to the decoding of the saving operation instruction in the user program. Only for the arithmetic register specified in (2), the save operation instruction execution means for executing the register save processing, the restore operation instruction to which a predetermined instruction code is assigned, and the restore operation instruction are decoded in the user program. In response, a restore operation instruction execution means for executing register restore processing may be included only for the operation register specified by the data registered in the operation target registration register.
このような構成によれば、退避操作命令及び復元操作命令をユーザプログラム中の適切な位置に配置することにより、操作対象登録レジスタに登録された演算用レジスタに関する退避タイミングや復元タイミング等をその時々の制御状況と任意に関連づけることができるため、この機能を利用すれば、割込処理の所要時間が問題とされない状況にあっては、例えば従前通りに大多数のレジスタに関して退避操作乃至復元操作を行わせつつも、特に、割込処理の所要時間が問題とされる状況についてのみ、退避操作命令及び復元操作命令をユーザプログラム中の適切な位置に配置することにより、退避操作及び復元操作される演算用レジスタを操作対象登録レジスタに登録されたものに限定することで、割込処理の所要時間を最小化することができる。 According to such a configuration, by arranging the save operation instruction and the restore operation instruction at an appropriate position in the user program, the save timing, restore timing, etc. regarding the operation register registered in the operation target registration register can be changed from time to time. Therefore, if this function is used, if the time required for interrupt processing is not a problem, for example, as before, save and restore operations are performed for the majority of registers. In particular, only for situations where the time required for interrupt processing is a problem, save and restore operations are performed by placing save and restore operation commands at appropriate positions in the user program. By limiting the operation registers to those registered in the operation target registration register, the time required for interrupt processing can be minimized. Kill.
本発明に係るPLCの好ましい他の実施の形態においては、操作対象レジスタ指定手段が、所定の命令コードが割り当てられ、かつそのオペランドには、レジスタ退避処理にて退避操作されるべき演算用レジスタを指定するためのデータかが記述される操作対象指定付の退避操作命令と、所定の命令コードが割り当てられ、かつそのオペランドには、レジスタ退避処理にて退避操作されるべき演算用レジスタを指定するためのデータが記述される操作対象指定付の退避操作命令とを含み、かつ退避・復元実行手段が、ユーザプログラム中において、操作対象指定付の退避操作命令が解読されるのに応答して、その命令のオペランドに記述されたデータで指定される演算用レジスタに関してのみ、レジスタ退避処理を実行する退避操作命令実行手段と、ユーザプログラム中において、操作対象指定付の復元操作命令が解読されるのに応答して、その命令のオペランドに記述されたデータで指定される演算用レジスタに関してのみ、レジスタ復元処理を実行する復元操作命令実行手段とを含む、ように構成される。 In another preferred embodiment of the PLC according to the present invention, the operation target register designating means is assigned a predetermined instruction code, and an operand is a calculation register to be saved in the register saving process. A save operation instruction with an operation target specification that describes the data to be specified and a predetermined instruction code are assigned, and the operand specifies the operation register to be saved in the register save process In response to the evacuation operation instruction with the operation target designation being decoded in the user program, the save / restore execution means includes a evacuation operation instruction with the operation target specification in which data for operation is described. Save operation instruction execution that executes register save processing only for the operation register specified by the data described in the operand of the instruction In response to the decryption operation instruction with operation target designation being decoded in the user program, the register restoration processing is executed only for the operation register designated by the data described in the operand of the instruction. And a restoration operation command execution means.
このような構成によれば、操作対象指定付の退避操作命令及び操作対象指定付の復元操作命令をユーザプログラム中の適切な位置に配置することにより、退避タイミングや復元タイミング等をその時々の制御状況と任意に関連づけることができることに加え、退避命令及び復元命令それ自体で、退避操作又は復元操作されるべきレジスタを指定できるため、この機能を利用すれば、例えば、退避と復元とで対をなす操作命令対を各割込要因別に設けると共に、それらに付記される操作対象レジスタの内容を異ならせることで、割込要因の種別に拘わらず、退避操作及び復元操作される演算用レジスタの個数を必要最小限に止めて、個々の割込要因に対応する割込処理のそれぞれについて、その開始から復帰に至る所要時間を最小とすることもできる。 According to such a configuration, the evacuation operation instruction with operation target designation and the restoration operation instruction with operation object designation are arranged at appropriate positions in the user program, so that the evacuation timing, restoration timing, etc. can be controlled from time to time. In addition to being able to arbitrarily associate with the situation, the save instruction and the restore instruction itself can specify the register to be saved or restored, so if this function is used, for example, a pair can be saved between the save and restore. The number of operation registers to be saved and restored regardless of the type of interrupt factor by providing operation instruction pairs for each interrupt factor and making the contents of the operation target registers attached to them different. To minimize the time required from the start to the return for each interrupt process corresponding to each interrupt factor. Kill.
本発明によれば、割込実行タスクとして実行されるユーザプログラムの実行に際しては、操作対象レジスタ指定手段により指定された演算用レジスタに関してのみ、レジスタ退避処理及びレジスタ復元処理が実行されるから、割込処理によって実際に操作される演算用レジスタのみを操作対象レジスタ指定手段により予め指定しておきさえすれば、レジスタ退避処理及びレジスタ復元処理の所要時間を最小化して、割込開始から割込復帰に至る所要時間をできるだけ短縮することができる。 According to the present invention, when executing the user program executed as the interrupt execution task, the register saving process and the register restoring process are executed only for the operation register specified by the operation target register specifying means. If only the operation registers that are actually manipulated by the interrupt processing are specified in advance by the operation target register specifying means, the time required for register save processing and register restore processing is minimized, and the interrupt is restored from the interrupt start. The time required to reach as low as possible.
以下に、この発明に係る割込機能を有するPLCの好適な実施の一形態を添付図面を参照しながら詳細に説明する。 Hereinafter, a preferred embodiment of a PLC having an interrupt function according to the present invention will be described in detail with reference to the accompanying drawings.
本発明に係るPLCのCPUユニットのハードウェア構成図が図1に示されている。同図に示されるように、このCPUユニット1は、従来例と同様に、ユーザプログラムメモリ(UM)11、入出力メモリ(IOM)12、データ格納用不揮発性メモリ13、専用IC14、マイクロプロセッサ(MPU)15、システムプログラムメモリ(ROM)16、及びワークメモリ(ワークRAM)17を含んで構成される。
A hardware configuration diagram of a PLC CPU unit according to the present invention is shown in FIG. As shown in the figure, the
ユーザプログラムメモリ11には、所望の制御仕様に対応する1若しくは2以上のサイクル実行タスクとして実行されるユーザプログラムと、1若しくは2以上の割込実行タスクとして実行されるユーザプログラムとが、所定のユーザプログラム言語で記述された状態で格納されている。なお、ユーザプログラムメモリ11には、後述するように、専用IC14が前段処理A及び後段処理Cをそれぞれ実行するためのユーザプログラムについても格納されている。
In the
データ格納用不揮発性メモリ13には、演算処理などに必要な各種の設定データの他、異常通知の設定、異常ステータス等々が格納されている。
The data storage
専用IC14は、所定のユーザプログラム言語にて記述されたユーザプログラムを実行するプログラム実行機能が組み込まれたものである。このプログラム実行機能によって、ユーザプログラムメモリ11に格納された各種のユーザプログラムを実行することによって、前述のサイクル実行タスク及び割込実行タスクの各機能が実現される。加えて、この例にあっては、前述の前段処理A及び後段処理Cについては、従来のようにマイクロプロセッサではなくて、専用ICによって実現されるように構成されている。
The
マイクロプロセッサ15は、プロセッサ言語で記述された各種のシステムプログラムを実行することにより、PLCとしての各種の機能を実現するものである。それらの機能の代表的なものとしては、図示しない入出力ユニットの外部入力端子列から入力回路を介して入力データを読み込んで、入出力メモリ12の入力データ領域に書き込む入力更新処理と、入出力メモリ12の出力データ領域に格納された出力データを図示しない入出力ユニットの出力回路を介して外部出力端子列から外部へと送出する出力更新処理と、プログラム実行権を専用IC14へと委ねることによって、ユーザプログラムを構成する各命令語を専用IC14に実行させる命令実行処理と、他のPLC、リモート入出力ターミナル、またはプログラム開発支援装置(ツール装置などとも言う)などとの間で通信を介してデータのやり取りを行う周辺サービス処理などを挙げることができる。マイクロプロセッサ15は、入力更新処理、出力更新処理、命令実行処理、周辺サービス処理等を繰り返し実行するように制御することでユーザプログラムに従って制御対象を制御する。
The
システムプログラムメモリ16には、マイクロプロセッサ15が上記の各処理(入力更新処理、出力更新処理、命令実行処理、周辺サービス処理など)を実行するのに必要なシステムプログラムが、所定のマイクロプロセッサ言語にて記述された状態で格納されている。
In the
ワークメモリ17は、マイクロプロセッサ15がシステムプログラムメモリ16からシステムプログラムを読み出して実行する際のワークエリアとして使用される。
The work memory 17 is used as a work area when the
上述のPLC(CPUユニット1)は、I/O割込、電断割込、定時割込等々のように、様々な割込要因を受け付け可能とされており、それらの割込要因が受け付けられたときには、所定の動作手順に従って割込処理が実行される。 The PLC (CPU unit 1) described above can accept various interrupt factors such as I / O interrupts, power interruption interrupts, scheduled interrupts, etc., and these interrupt factors are accepted. When interrupted, an interrupt process is executed according to a predetermined operation procedure.
本発明に係るPLCのCPUユニットにおける割込処理の動作手順を示すフローチャートが図2に示されている。同図に示されるように、割込処理の全体は、前段処理A(ステップ101〜103)と、本体処理B(ステップ104)と、後段処理C(ステップ105〜107)とから構成されている。そして、特にこの例にあっては、それらの処理A〜Cは、いずれも専用IC処理に委ねられている。
FIG. 2 shows a flowchart showing the operation procedure of the interrupt process in the CPU unit of the PLC according to the present invention. As shown in the figure, the entire interrupt process is composed of a pre-process A (
なお、この例にあっては、前段処理Aには、割込禁止処理(ステップ101)、レジスタ退避処理(ステップ102)、及び割込プログラム実行前処理(ステップ103)が含まれている。 In this example, the pre-stage process A includes an interrupt prohibition process (step 101), a register save process (step 102), and an interrupt program execution preprocess (step 103).
本体処理Bは、割込実行タスクを実現するための要部となるべきものであり、その時々の割込要因に対応する割込実行タスク用のユーザプログラムを実行する割込プログラム実行処理(ステップ104)により構成されている。 The main body process B should be a main part for realizing the interrupt execution task, and the interrupt program execution process (step for executing the user program for the interrupt execution task corresponding to the interrupt factor at that time) 104).
後段処理Cには、割込プログラム実行後処理(ステップ105)、レジスタ復元処理(ステップ106)、及び割込禁止解除処理(ステップ107)が含まれている。 The post-stage process C includes an interrupt program execution post-process (step 105), a register restoration process (step 106), and an interrupt prohibition release process (step 107).
そして、上述の各処理の中で、前段処理Aに含まれるレジスタ退避処理(ステップ102)と後段処理Cに含まれるレジスタ復元処理(ステップ106)によって、本発明の要部であるところの「退避・復元実行手段」の機能が実現されることとなる。 Then, among the above-described processes, the “save” which is the main part of the present invention is performed by the register save process included in the pre-stage process A (step 102) and the register restore process included in the post-stage process C (step 106). The function of “restore execution means” will be realized.
より具体的には、図1に戻って、I/O割込信号や電断割込信号(IT1)は、内部バス10に含まれる割込ラインを介して専用IC14により受け付けられる。すると専用IC14では、ユーザプログラムメモリ(UM)11から該当するプログラムを読み出して実行することによって、前段処理A(ステップ101〜103)、本体処理B(ステップ104)、及び後段処理C(ステップ105〜107)を順次に実行するのである。
More specifically, referring back to FIG. 1, the I / O interrupt signal and the power interruption interrupt signal (IT1) are received by the
次に、本発明の要部であるところの「操作対象レジスタ指定手段」及び「退避・復元実行手段」について説明する。先に述べたように、このCPUユニット1には、レジスタ退避処理(ステップ102)にて退避操作され、かつレジスタ復元処理(ステップ106)にて復元操作されるべきデータの格納された演算用レジスタを任意に指定するための「操作対象レジスタ指定手段」と、専用IC14による割込用のユーザプログラムの実行に際しては、操作対象レジスタ指定手段により指定された演算用レジスタに関してのみ、レジスタ退避処理(ステップ102)及びレジスタ復元処理(ステップ106)を実行する「退避・復元実行手段」とが設けられている。これらの手段(「操作対象レジスタ指定手段」及び「退避・復元実行手段」)の各機能は、具体的には、様々な方式により実現することができる。以下の説明では、第1方式〜第3方式からなる3つの方式が示されている。
Next, “operation target register designating means” and “save / restore execution means” which are the main parts of the present invention will be described. As described above, the
第1方式における退避/復元動作の説明図(その1)が図3に、同説明図(その2)が図4にそれぞれ示されている。 An explanatory diagram (part 1) of the save / restore operation in the first method is shown in FIG. 3, and an explanatory diagram (part 2) thereof is shown in FIG.
この第1方式を実現するためには、図6に示される操作対象登録レジスタが用意される。この操作対象登録レジスタをどこに用意するかについては、システムの設計事項であって、例えば、専用IC14に設けることができる。
In order to realize the first method, an operation target registration register shown in FIG. 6 is prepared. Where to prepare the operation target registration register is a system design matter, and can be provided in, for example, the
図6に示されるように、この操作対象登録レジスタ(RG)は16ビットのレジスタで構成した場合の例を示している。ビット0をレジスタA指定エリア、ビット1をレジスタB指定エリア、ビット2をレジスタC指定エリア、ビット3をレジスタD指定エリア、ビット4をレジスタE指定エリア、ビット5をレジスタF指定エリアというように16個のビットに16個のレジスタ指定エリアが割り付けらている。レジスタ指定エリアの値が「1」の場合は当該エリアに対応するレジスタの内容(データ)を退避/復元が必要であることを示している。また、レジスタ指定エリアの値が「0」の場合は当該エリアに対応するレジスタの内容(データ)の退避/復元が不要であることを示している。この例では、ビット0とビット1が「1」であり、その他は「0」となっており、レジスタAとレジスタBは退避/復元が必要なレジスタであることを示している。このレジスタ指定エリアの値を「0」または「1」に設定するためには、例えば、図示しないプログラム開発支援装置をCPUユニットに接続し、プログラム開発支援装置からの指示にしたがってCPUユニット内の専用IC14に設けた操作対象登録レジスタ(RG)に所定の値を書き込むように構成すれば良い。なお、この例では、操作対象登録レジスタ(RG)を16ビットのレジスタで構成したため、退避/復元の操作対象として指定可能なレジスタは16個までである。全ての演算用レジスタを退避/復元の操作対象とするためには、全ての演算用レジスタの個数分のビット数を割り付け可能なように操作対象登録レジスタ(RG)を構成すれば良い。例えば、16ビットのレジスタを複数用いて構成しても良いし、あるいは、32ビットのレジスタを複数用いて構成しても良い。
As shown in FIG. 6, the operation target registration register (RG) is an example of a 16-bit register.
一方、図2のフローチャートに示されるレジスタ退避処理(ステップ102)及びレジスタ復元処理(ステップ106)においては、図6に示される操作対象登録レジスタ(RG)のレジスタ指定エリアの値が「1」であるレジスタのみを、退避処理及び復元処理する機能が組み込まれている。これらの選択的な退避処理及び復元処理を実現するためには、そのような処理手順を実現するためのユーザプログラムを、ユーザプログラムメモリ(UM)11内の所定エリアに、メーカー側あるいはベンダー側などにおいて予め格納しておけばよいであろう。 On the other hand, in the register saving process (step 102) and the register restoring process (step 106) shown in the flowchart of FIG. 2, the value of the register designation area of the operation target registration register (RG) shown in FIG. A function for saving and restoring only a certain register is incorporated. In order to realize these selective save processing and restoration processing, a user program for realizing such a processing procedure is placed in a predetermined area in the user program memory (UM) 11 on the manufacturer side or the vendor side. Should be stored in advance.
図3には、図6において操作対象登録レジスタ(RG)のビット0からビット5までのレジスタ指定エリアが「1」の場合の例を示している。具体的には、ビット0に対応するレジスタAからビット5に対応するレジスタFまでの6個のレジスタが退避/復元が必要なレジスタとして指定された場合における退避/復元動作が示されている。
FIG. 3 shows an example in which the register designation area from
同図(a)に示されるように、退避時の動作にあっては、登録されたレジスタ(レジスタA〜レジスタF)に関して、それらのレジスタに格納されたデータは、入出力メモリ(IOM)12内に設けられたスタック領域(MA)へと格納(プッシュ)される。また、同図(b)に示されるように、復元時の動作にあっては、登録されたレジスタ(レジスタA〜レジスタF)に関して、入出力メモリ(IOM)12内に設けられたスタック領域(MA)から各データの読出(ポップ)が行われ、それぞれ読み出されたデータは元のレジスタ(レジスタA〜レジスタF)へと格納され、復元動作が完了する。 As shown in FIG. 9A, in the operation at the time of saving, regarding the registered registers (register A to register F), the data stored in these registers is the input / output memory (IOM) 12. It is stored (pushed) into the stack area (MA) provided in the inside. Further, as shown in FIG. 5B, in the operation at the time of restoration, regarding the registered registers (register A to register F), stack areas (in the I / O memory (IOM) 12) ( Each data is read (popped) from MA), and the read data is stored in the original registers (register A to register F), and the restoring operation is completed.
図4には、図6において操作対象登録レジスタ(RG)のビット0、ビット2およびビット4のレジスタ指定エリアが「1」であり、その他のレジスタ指定エリアは「0」の場合の例を示している。具体的には、ビット0に対応するレジスタA、ビット2に対応するレジスタC、およびレジスタ4に対応するレジスタEの3個のレジスタが退避/復元が必要なレジスタとして指定された場合における退避/復元動作が示されている。
FIG. 4 shows an example in which the register designation areas of
同図(a)に示されるように、退避時の動作にあっては、レジスタA、レジスタC、レジスタEの格納データのみが、スタック領域(MA)へと格納(プッシュ)されて、退避動作が完了する。この場合、レジスタB、レジスタD、レジスタFに格納される各データは退避されずにそのままの状態に維持される。また、同図(b)に示されるように、復元時の動作にあっては、スタック領域(MA)から該当するデータの読出(ポップ)が行われ、読み出された各データはそれぞれ該当するレジスタ(レジスタA、レジスタC、レジスタE)へと戻され、復元動作が完了する。 As shown in FIG. 5A, in the operation at the time of saving, only the data stored in the registers A, C, and E are stored (pushed) into the stack area (MA), and the saving operation is performed. Is completed. In this case, each data stored in the register B, the register D, and the register F is maintained without being saved. Further, as shown in FIG. 5B, in the operation at the time of restoration, the corresponding data is read (popped) from the stack area (MA), and each read data corresponds. Returning to the registers (register A, register C, register E), the restoration operation is completed.
このように、この第1方式によれば、操作対象登録レジスタRGに予め退避/復元が必要なレジスタ(操作対象レジスタ)に該当するビット位置の値を「1」に設定することにより、選択的な退避/復元動作を実現することができる。従って、割込処理によって実際に操作される演算用レジスタのみを操作対象登録レジスタに予め操作対象レジスタとして登録しておきさえすれば、特に、ユーザプログラム中において特別な指示を与えずとも、割込要因が発生すれば、操作対象レジスタとして登録されたレジスタについてのみレジスタ退避処理(ステップ102)及びレジスタ復元処理(ステップ106)が実行されるから、登録対象となる操作対象レジスタの選定さえ確実でありさえすれば、割込開始から割込復帰に至る所要時間を最短とすることも可能となる。 As described above, according to the first method, the value of the bit position corresponding to the register (operation target register) that needs to be saved / restored in advance in the operation target registration register RG is selectively set to “1”. Saving / restoring operation can be realized. Therefore, as long as only the operation registers that are actually operated by the interrupt processing are registered in the operation target registration register in advance as the operation target registers, interrupts can be generated without giving special instructions in the user program. If a factor occurs, the register saving process (step 102) and the register restoration process (step 106) are executed only for the register registered as the operation target register, so that the selection of the operation target register to be registered is certain. As long as this is done, it is possible to minimize the time required from interrupt start to interrupt return.
第2方式における退避/復元動作の説明図が図5に示されている。第1方式にあっては、操作対象登録レジスタRGに操作対象レジスタとして登録されたレジスタについては、無条件で、退避処理及び復元処理が実行されたが、この第2方式においては、退避操作命令OP11及び復元操作命令OP12を新たに定義すると共に、これらの命令OP11,OP12が実行されたときに限り、操作対象登録レジスタRGの登録内容に基づく選択的な退避処理及び復元処理が実行されるようにしている。 An explanatory diagram of the save / restore operation in the second method is shown in FIG. In the first method, the save process and the restore process are unconditionally executed for the register registered as the operation target register in the operation target registration register RG. However, in this second method, the save operation instruction The OP11 and the restore operation instruction OP12 are newly defined, and only when the instructions OP11 and OP12 are executed, the selective save process and restore process based on the registered contents of the operation target registration register RG are executed. I have to.
このような退避操作命令OP11及び復元操作命令OP12を定義するためには、それらの命令に対応する実行プログラムが、ユーザプログラム言語で記述された状態において、ユーザプログラムメモリ(UM)11に格納される。これらの命令実行プログラムについては、メーカー側あるいはベンダー側において、予めユーザプログラムメモリ(UM)11の所定領域にインストールしておくことが考えられる。また、ユーザ側にあっては、これらの退避操作命令OP11及び復元操作命令OP12を、希望の条件で実行されるように任意のプログラム位置に挿入することによって、前述した選択的な退避処理及び復元処理を実現することができる。 In order to define such a save operation instruction OP11 and a restore operation instruction OP12, execution programs corresponding to these instructions are stored in the user program memory (UM) 11 in a state described in the user program language. . These instruction execution programs may be installed in advance in a predetermined area of the user program memory (UM) 11 on the manufacturer side or the vendor side. On the user side, the above-described selective save processing and restoration are performed by inserting the save operation instruction OP11 and the restore operation instruction OP12 at an arbitrary program position so as to be executed under a desired condition. Processing can be realized.
すなわち、同図(a)に示されるように、退避時の動作にあっては、所定の入力条件(図では、ラダー図上の入力接点記号で示す)が成立すると共に、退避操作命令OP11が専用IC14によって解読実行され、その結果、予め操作対象レジスタとして登録されたレジスタ(レジスタA、レジスタC、レジスタE)のみが、スタック領域(MA)へと格納(プッシュ)される。また、同図(b)に示されるように、所定の入力条件(図ではラダー図上の入力接点記号で示す)が成立すると共に、復元操作命令OP12が専用IC14によって実行され、その結果、スタック領域(MA)からデータの読出(ポップ)が行われ、こうして読み出された各データは、それぞれ該当する元のレジスタ(レジスタA、レジスタC、レジスタE)に戻され、復元動作が完了する。
That is, as shown in FIG. 9A, in the operation at the time of retraction, a predetermined input condition (indicated by an input contact symbol on the ladder diagram) is satisfied and the retraction operation instruction OP11 is executed. As a result, only the registers (register A, register C, register E) registered in advance as operation target registers are stored (pushed) into the stack area (MA). Further, as shown in FIG. 6B, a predetermined input condition (indicated by an input contact symbol on the ladder diagram in the figure) is satisfied, and the restoration operation instruction OP12 is executed by the
このように、この第2方式によれば、ユーザプログラム中に記述された退避操作命令OP11及び復元操作命令OP12が解読実行されたときに限り、操作対象登録レジスタRGの登録内容に基づく選択的な退避処理及び復元処理が実行されるから、例えば、これらの命令OP11,OP12が実行されない時には、従前通りに、全てのレジスタ(レジスタA〜レジスタF)に関して、退避処理及び復元処理が実行されるようにしておき、退避操作命令OP11及び復元操作命令OP12が解読実行された時に限って、操作対象登録レジスタRGの登録内容に基づく選択的な退避処理及び復元処理が実行されるようにすれば、使用される割込プログラムの種類や性質に応じて、あるいはその時々の制御状態に応じて、操作対象レジスタの数を必要最小限に留め、これにより、より柔軟性をもって、割込開始から割込復帰に至る所要時間を最短とすることが可能となる。 As described above, according to the second method, only when the save operation instruction OP11 and the restore operation instruction OP12 described in the user program are decoded and executed, the selective operation based on the registered contents of the operation target registration register RG is performed. Since the save process and the restore process are executed, for example, when these instructions OP11 and OP12 are not executed, the save process and the restore process are executed for all the registers (register A to register F) as before. If the selective save process and restore process based on the registered contents of the operation target registration register RG are executed only when the save operation instruction OP11 and the restore operation instruction OP12 are decoded and used, Depending on the type and nature of the interrupt program being executed, or depending on the control status at that time, Bear in essential minimum, Thus, more have flexibility, and the time required to reach the interrupt return from the interrupt start can be the shortest.
なお、以上説明した第1方式及び第2方式においては、全ての割込要因に関して、操作対象登録レジスタRGについては共通として話を進めてきたが、割込要因別に専用の操作対象登録レジスタRGを設けると共に、各割込要因が発生するごとに、該当する操作対象登録レジスタを参照するようにすれば、各割込要因ごとに、操作されるべきレジスタ数をきめ細かく調整できるから、個々の割込要因に合わせて操作対象レジスタ数を必要最小限に留めることによって、退避処理及び復元処理における無駄時間を削減して、割込開始から割込復帰に至る所要時間を割込要因ごとに最短とすることも可能となる。 In the first method and the second method described above, the operation target registration register RG has been described as common for all interrupt factors, but a dedicated operation target registration register RG is provided for each interrupt factor. When each interrupt factor occurs, if the corresponding operation target registration register is referenced, the number of registers to be operated can be finely adjusted for each interrupt factor. By reducing the number of registers to be manipulated to the minimum necessary according to the cause, the dead time in save processing and restoration processing is reduced, and the time required from interrupt start to interrupt return is minimized for each interrupt factor. It is also possible.
第3方式における退避/復元動作の説明図が図7に、退避/復元命令の説明図が図8にそれぞれ示されている。 An explanatory diagram of the save / restore operation in the third method is shown in FIG. 7, and an explanatory diagram of the save / restore instruction is shown in FIG.
図7に示されるように、この第3方式にあっては、操作対象指定付の退避操作命令OP21及び操作対象指定付の復元操作命令OP22を新たに定義すると共に、これらの命令OP21,OP22が実行された時に限り、それらの命令のオペランドで指定されたレジスタに関してのみ、選択的な退避処理及び復元処理が実行されるようにしている。すなわち、前述の第1方式及び第2方式においては、操作対象となるレジスタの指定は、図示しないプログラム開発支援装置をCPUユニットに接続し、プログラム開発支援装置からの指示にしたがってCPUユニット内の専用IC14に設けた操作対象登録レジスタ(RG)に所定の値を書き込むように構成することで可能とした。この第3方式においては、操作対象となるレジスタの指定は、命令実行時に命令のオペランドで指定されたレジスタに基づいて行われるのである。
As shown in FIG. 7, in the third method, a save operation instruction OP21 with an operation target designation and a restore operation instruction OP22 with an operation target designation are newly defined, and these instructions OP21 and OP22 are Only when executed, selective save processing and restore processing are executed only for the registers specified by the operands of those instructions. That is, in the first method and the second method described above, the register to be operated is designated by connecting a program development support apparatus (not shown) to the CPU unit and in accordance with an instruction from the program development support apparatus. This is made possible by writing a predetermined value in the operation target registration register (RG) provided in the
図8に示されるように、この操作対象指定付の命令OP21,OP22は、同図(a)に示されるように、命令コードと、第1オペランドと、第2オペランドとから構成される。命令コードは、その命令語が退避操作命令であることを示すコード(この例では、“EVRG”)からなる。第1オペランドには、操作対象レジスタを指定する。その指定方法の一例が同図(b)に示されている。この例では、操作対象登録レジスタ(RG)を16ビットのレジスタで構成している。ビット0をレジスタA指定エリア、ビット1をレジスタB指定エリア、ビット2をレジスタC指定エリア、ビット3をレジスタD指定エリア、ビット4をレジスタE指定エリア、ビット5をレジスタF指定エリアというように16個のビットに16個のレジスタ指定エリアが割り付けられている。レジスタ指定エリアの値が「1」の場合は当該エリアに対応するレジスタを退避対象とする。また、レジスタ指定エリアの値が「0」の場合は当該エリアに対応するレジスタを退避対象としない。同図(b)の例では、レジスタBとレジスタFの2つのレジスタを退避対象とし、その他のレジスタは退避対象としないことを示している。この例の場合、ビット0をLSB(Least Significant Bit)とすると、16ビットレジスタのビット列の内容を数値で表現すると0x0022(16進数)となる。したがって、レジスタBとレジスタFの2つのレジスタのみを退避対象とする場合は、退避操作命令EVRGの第1オペランドには数値として0x0022(16進数)を指定することになる。
As shown in FIG. 8, the instructions OP21 and OP22 with operation target designation are composed of an instruction code, a first operand, and a second operand, as shown in FIG. The instruction code consists of a code (in this example, “EVRG”) indicating that the instruction word is a save operation instruction. The operation target register is designated as the first operand. An example of the designation method is shown in FIG. In this example, the operation target registration register (RG) is a 16-bit register.
一方、第2オペランドには、スタック領域(MA)の格納位置を示すスタックポインタアドレスが記述され、このスタックポインタアドレスに従って、スタック領域(MA)に関するデータ格納(プッシュ)及びデータ読み出し(ポップ)のための制御が実行される。図8(a)の例では、スタックポインタアドレスとしてスタック領域(MA)の先頭番地(0000)をあらわすMA0000が指定されている。なお、復元操作命令については図示していないが、退避操作命令と同様の命令フォーマットで構成すれば良い。例えば、その命令語が復元操作命令であることを示すコードとして“RTRG”を用い、第1オペランドには復元対象となる操作対象レジスタを指定し、第2オペランドには復元対象となるデータが格納されているスタックポインタアドレスを指定するように構成すれば良い。 On the other hand, a stack pointer address indicating the storage position of the stack area (MA) is described in the second operand, and data storage (push) and data read (pop) related to the stack area (MA) are performed according to the stack pointer address. The control is executed. In the example of FIG. 8A, MA0000 representing the top address (0000) of the stack area (MA) is designated as the stack pointer address. Although the restoration operation instruction is not shown, it may be configured in the same instruction format as the save operation instruction. For example, “RTRG” is used as a code indicating that the instruction word is a restoration operation instruction, an operation target register to be restored is specified in the first operand, and data to be restored is stored in the second operand. The stack pointer address may be specified.
再び、図7に戻って、同図(a)に示されるように、退避時の動作にあっては、以上説明した操作対象指定付の退避操作命令OP21が解読実行されると、いま仮に、図8(a)に示されるように、第1オペランドに0x0022が記述されていれば、その値に対応するビット列(0000 0000 0010 0010)で「1」に対応するレジスタ(レジスタB、レジスタF)に関してのみ、スタック領域(MA)へとデータは格納(プッシュ)されて、退避動作が完了する。一方、同図(b)に示されるように、復元時の動作にあっては、操作対象指定付の復元操作命令OP22が解読実行されると、その第1オペランドで指定されたレジスタB及びレジスタFに関してのみ、スタック領域(MA)からデータの読出(ポップ)が行われ、読み出されたデータは元のレジスタ(レジスタB、レジスタF)に格納されて、復元動作が完了する。 Returning to FIG. 7 again, as shown in FIG. 7A, in the operation at the time of saving, if the saving operation instruction OP21 with the operation target designation described above is decoded and executed, As shown in FIG. 8A, if 0x0022 is described in the first operand, the bit string (0000 0000 0010 0010) corresponding to the value is a register corresponding to “1” (register B, register F). Only, data is stored (pushed) into the stack area (MA), and the save operation is completed. On the other hand, as shown in FIG. 5B, in the operation at the time of restoration, when the restoration operation instruction OP22 with the operation target designation is decoded and executed, the register B and the register designated by the first operand are registered. Only for F, data is read (popped) from the stack area (MA), and the read data is stored in the original registers (register B, register F), thereby completing the restoring operation.
このように、この第3方式によれば、操作対象指定付の退避操作命令OP21及び操作対象指定付の復元操作命令OP22をユーザプログラム中の適切な位置に配置することにより、退避タイミングや復元タイミングなどをその時々の制御状況と任意に関連づけることができることに加え、退避命令及び復元命令それ自体で、退避操作又は復元操作されるべきレジスタを指定できるため、この機能を利用すれば、例えば、退避と復元とで対をなす操作命令対を各割込要因別に設けると共に、それらに付記される操作対象命令の内容を異ならせることで、割込要因の種別に拘わらず、退避操作及び復元操作される演算用レジスタの個数を必要最小限に留めて、個々の割込要因に対応する割込処理のそれぞれについて、その開始から復帰に至る所要時間を最小とすることもできる。 Thus, according to the third method, the save operation instruction OP21 with the operation target designation and the restore operation instruction OP22 with the operation target designation are arranged at appropriate positions in the user program, so that the save timing and restoration timing are set. Etc. can be arbitrarily associated with the control status at that time, and the register to be saved or restored can be specified by the save instruction and the restore instruction itself. Operation instruction pairs that are paired with each other are provided for each interrupt factor, and the contents of the operation target instruction added to them are made different so that save and restore operations can be performed regardless of the type of interrupt factor. The number of operation registers to be saved is kept to the minimum necessary, and each interrupt process corresponding to each interrupt factor is from the start to the return. Time can also be a minimum.
なお、以上説明した実施の形態では、CPUユニットにおける割込処理の動作手順として図2のように前段処理A、本体処理B、後段処理Cを専用IC処理とする例で示した。しかし、本発明は、これに限ることなく、前段処理A、本体処理B、後段処理Cを全てマイクロプロセッサ(MPU)で実行するように構成した場合にも適用できる。また、本発明は、前段処理Aと後段処理Cをマイクロプロセッサ(MPU)で実行させ、本体処理Bを専用ICで実行するように構成した場合にも適用できる。 In the embodiment described above, as an operation procedure of the interrupt process in the CPU unit, the pre-process A, the main process B, and the post-process C are illustrated as examples of dedicated IC processes as shown in FIG. However, the present invention is not limited to this, and can also be applied to a case where the pre-processing A, the main processing B, and the post-processing C are all executed by a microprocessor (MPU). The present invention can also be applied to a case where the pre-processing A and the post-processing C are executed by a microprocessor (MPU) and the main body processing B is executed by a dedicated IC.
本発明によれば、割込用のユーザプログラムの実行に際しては、操作対象レジスタ指定手段により指定された演算用レジスタに関してのみ、レジスタ退避処理及びレジスタ復元処理が実行されるから、割込処理によって実際に操作される演算用レジスタのみを操作対象レジスタ指定手段により予め指定しておきさえすれば、レジスタ退避処理及びレジスタ復元処理の所要時間を最小化して、割込開始から割込復帰に至る所要時間をできるだけ短縮することができる。 According to the present invention, when executing the interrupt user program, the register saving process and the register restoring process are executed only for the operation register designated by the operation target register designating means. As long as only the operation register to be operated in advance is specified in advance by the operation target register specifying means, the time required for register saving processing and register restoring processing is minimized, and the time required from interrupt start to interrupt return Can be shortened as much as possible.
1 CPUユニット
10 内部バス
11 ユーザプログラムメモリ(UM)
12 入出力メモリ(IOM)
13 データ格納用不揮発性メモリ
14 専用IC
15 マイクロプロセッサ(MPU)
16 システムプログラムメモリ(ROM)
17 ワークメモリ(ワークRAM)
A 前段処理
B 本体処理
C 後段処理
IT1 I/O及び電断・割込信号
IT2 定時割込信号
RG 操作対象登録レジスタ
RG1 第1の領域
RG2 第2の領域
MA スタック領域
OP11 退避操作命令
OP12 復元操作命令
OP21 操作対象指定付の退避操作命令
OP22 操作対象指定付の復元操作命令
UP1−1,UP1−2 サイクル実行タスクであるユーザプロクラム
UP2 割込実行タスクであるユーザプログラム
1
12 Input / output memory (IOM)
13 Nonvolatile memory for
15 Microprocessor (MPU)
16 System program memory (ROM)
17 Work memory (work RAM)
A Pre-stage process B Body process C Post-stage process IT1 I / O and power interruption / interrupt signal IT2 Scheduled interrupt signal RG Operation target registration register RG1 First area RG2 Second area MA Stack area OP11 Save operation instruction OP12 Restoration operation Instruction OP21 Save operation instruction with operation target designation OP22 Restore operation instruction with operation target designation UP1-1, UP1-2 User program which is a cycle execution task UP2 User program which is an interrupt execution task
Claims (1)
レジスタ退避処理にて退避操作されかつレジスタ復元処理にて復元操作されるべきデータの格納されたレジスタを任意に指定するための操作対象レジスタ指定手段と、
割込実行タスクとして実行されるユーザプログラムの実行に際しては、操作対象レジスタ指定手段により指定された演算用レジスタに関してのみ、レジスタ退避処理及びレジスタ復元処理を実行する退避・復元実行手段とを有し、
操作対象レジスタ指定手段が、操作対象となるレジスタを指定するためのデータを予め登録するための操作対象登録レジスタを含み、かつ
退避・復元実行手段が、操作対象登録レジスタに登録されたデータで指定される演算用レジスタに関してのみ、レジスタ退避処理及びレジスタ復元処理を実行し、
退避・復元実行手段が、
所定の命令コードが割り当てられた退避操作命令と、
ユーザプログラム中において、退避操作命令が解読されるのに応答して、操作対象登録レジスタに登録されたデータで指定される演算用レジスタに関してのみ、レジスタ退避処理を実行する退避操作命令実行手段と、
所定の命令コードが割り当てられた復元操作命令と、
ユーザプログラム中において、復元操作命令が解読されるのに応答して、操作対象登録レジスタに登録されたデータで指定される演算用レジスタに関してのみ、レジスタ復元処理を実行する復元操作命令実行手段とを含む、ことを特徴とする割込機能を備えたPLC。 Before execution of the user program executed as an interrupt execution task, pre-processing including at least register save processing that saves data stored in the operation register to a predetermined memory area is executed. After execution of the user program executed as a task, subsequent processing including at least register restoration processing for restoring the contents of the arithmetic register is executed by restoring data saved in a predetermined memory area to the original state. PLC,
An operation target register specifying means for arbitrarily specifying a register storing data to be saved in the register saving process and to be restored in the register restoring process;
Upon execution of the user program to be executed as an interrupt execution task, only for the specified operation register by the operation target register specifying means, possess the saving and restoring execution means for executing a register saving process, and the register restoration process,
The operation target register specifying means includes an operation target registration register for registering in advance data for specifying a register to be operated, and
The save / restore execution means executes the register save process and the register restore process only for the operation register specified by the data registered in the operation target registration register,
The save / restore execution means
A save operation instruction to which a predetermined instruction code is assigned; and
In the user program, in response to the saving operation instruction being decoded, the saving operation instruction execution means for executing the register saving process only for the operation register designated by the data registered in the operation target registration register;
A restoration operation instruction to which a predetermined instruction code is assigned; and
In the user program, in response to the decryption operation instruction being decoded, a restoration operation instruction execution means for executing register restoration processing only for the operation register specified by the data registered in the operation target registration register A PLC having an interrupt function characterized by including.
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2008062386A JP5088566B2 (en) | 2008-03-12 | 2008-03-12 | PLC with interrupt function |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2008062386A JP5088566B2 (en) | 2008-03-12 | 2008-03-12 | PLC with interrupt function |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2009217681A JP2009217681A (en) | 2009-09-24 |
JP5088566B2 true JP5088566B2 (en) | 2012-12-05 |
Family
ID=41189436
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2008062386A Active JP5088566B2 (en) | 2008-03-12 | 2008-03-12 | PLC with interrupt function |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP5088566B2 (en) |
Family Cites Families (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPS6462735A (en) * | 1987-09-03 | 1989-03-09 | Nec Corp | Microprogram controller |
JPH02287732A (en) * | 1989-04-28 | 1990-11-27 | Nec Corp | Register address generating device |
JPH056281A (en) * | 1990-10-04 | 1993-01-14 | Nec Corp | Information processor |
JPH04338825A (en) * | 1991-05-16 | 1992-11-26 | Fuji Electric Co Ltd | Arithmetic processor |
JPH09134292A (en) * | 1995-11-10 | 1997-05-20 | Hitachi Ltd | Interruption control method |
JP2002149417A (en) * | 2000-11-15 | 2002-05-24 | Hitachi Ltd | Method for saving and restoring register |
JP2005275703A (en) * | 2004-03-24 | 2005-10-06 | Toshiba Corp | Processor, and context switching method |
-
2008
- 2008-03-12 JP JP2008062386A patent/JP5088566B2/en active Active
Also Published As
Publication number | Publication date |
---|---|
JP2009217681A (en) | 2009-09-24 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP5994679B2 (en) | Processing device and control method of processing device | |
US8335871B2 (en) | Memory system and method of driving the same | |
KR100829788B1 (en) | Command decoding system, flash memory command decoding system and methods using the same | |
US8127052B2 (en) | Data transfer control device and computer system | |
JP5088566B2 (en) | PLC with interrupt function | |
JP2019194837A (en) | Plc program processor | |
JP3055999B2 (en) | Microprogram control device group | |
JP4975586B2 (en) | Programmable controller that can execute multiple sequence programs in parallel | |
JP4037941B2 (en) | Control device | |
JP2005275703A (en) | Processor, and context switching method | |
JP4609702B2 (en) | Data processing system and control method thereof | |
JP5024546B2 (en) | PLC with interrupt function | |
JP5194360B2 (en) | Information processing apparatus and control method thereof | |
JP2008269052A (en) | Arithmetic operation circuit, semiconductor integrated circuit, and program conversion method | |
JPH04191904A (en) | Sequence instruction executing processor | |
JPH08115214A (en) | Digital signal processor | |
JPH08179815A (en) | Programmable controller | |
JPH0827711B2 (en) | Microprocessor | |
JPH0371307A (en) | Intelligent i/o module | |
JPS63159935A (en) | Data processor | |
JP2006201892A (en) | Programmable controller | |
JP2002366370A (en) | Information processor | |
JP2011065246A (en) | Built-in system | |
JPH0333929A (en) | Microprogram controller | |
KR20060120959A (en) | Apparatus and method for writing data in memory |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20110107 |
|
A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20120125 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20120201 |
|
A521 | Written amendment |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20120322 |
|
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: 20120816 |
|
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: 20120829 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20150921 Year of fee payment: 3 |
|
R150 | Certificate of patent or registration of utility model |
Ref document number: 5088566 Country of ref document: JP Free format text: JAPANESE INTERMEDIATE CODE: R150 Free format text: JAPANESE INTERMEDIATE CODE: R150 |