JPH0786762B2 - Instruction processing method in programmable controller - Google Patents
Instruction processing method in programmable controllerInfo
- Publication number
- JPH0786762B2 JPH0786762B2 JP1192157A JP19215789A JPH0786762B2 JP H0786762 B2 JPH0786762 B2 JP H0786762B2 JP 1192157 A JP1192157 A JP 1192157A JP 19215789 A JP19215789 A JP 19215789A JP H0786762 B2 JPH0786762 B2 JP H0786762B2
- Authority
- JP
- Japan
- Prior art keywords
- instruction
- value
- address
- sub
- timer
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Expired - Lifetime
Links
Landscapes
- Programmable Controllers (AREA)
Description
【発明の詳細な説明】 (産業上の利用分野) 本発明は、プログラマブルコントローラにおけるタイマ
命令やカウンタ命令等の処理方式に関する。Description: TECHNICAL FIELD The present invention relates to a processing method for timer instructions, counter instructions, etc. in a programmable controller.
(従来の技術) プログラムコントローラにおいて、例えばタイマ命令を
実行するためには、タイマナンバ、入力値、設定値の三
つのパラメータ(引数)を必要とし、タイマ命令を実行
する前に上記三つのパラメータを内部のパラメータスタ
ックに格納する作業が行われている。そして、タイマ命
令の処理系は、上記パラメータスタックをリードしてす
べてのパラメータを取り込んだ後に処理を行っている。(Prior Art) In a program controller, in order to execute, for example, a timer instruction, three parameters (arguments) of a timer number, an input value, and a set value are required, and the above three parameters are internally set before executing the timer instruction. Work is being done to store it in the parameter stack of. Then, the processing system of the timer instruction performs the processing after reading the above parameter stack and fetching all the parameters.
以下、上記三つのパラメータがパラメータスタックに格
納された後の処理について説明する。The processing after the above three parameters are stored in the parameter stack will be described below.
まず、タイマ命令には、オンディレイタイマ、オフディ
レイタイマ、モノステーブルタイマ、リトリガブルモノ
ステーブルタイマ、積算タイマなどが含まれ、またカウ
ンタ命令には、アップカウンタ、ダウンカウンタ、アッ
プダウンカウンタ、リングカウンタが含まれるが、ここ
ではオンディレイタイマの動作を第6図のタイムチャー
トを参照して説明する。First, the timer instruction includes an on-delay timer, an off-delay timer, a monostable timer, a retriggerable monostable timer, an integration timer, and the like, and the counter instruction includes an up counter, a down counter, an up / down counter, and a ring counter. Although a counter is included, the operation of the on-delay timer will be described here with reference to the time chart of FIG.
オンディレイタイマは、前述のようにタイマナンバ、入
力値、設定値をパラメータとして取り込み、その入力値
/出力値の関係は、入力値がONしてからの経過時間(以
下、現在値という)が設定値を経過した後に出力値がON
し、入力値がOFFすると出力値は即座にOFFするというも
のである。ここで、タイマナンバは、出力値領域のアド
レス及び現在値を格納するための現在値領域のアドレス
等、アドレス算出のために用いられる。The on-delay timer takes in the timer number, input value, and set value as parameters as described above, and the relationship between the input value and output value is the elapsed time after the input value is turned on (hereinafter referred to as the current value). Output value is ON after the value has passed
However, when the input value turns off, the output value turns off immediately. Here, the timer number is used for address calculation such as the address of the output value area and the address of the current value area for storing the current value.
さて、上記現在値は、一定時間でインクリメントされる
カウンタ(以下、フリーランニングカウンタ=FRCとい
う)の値(FRC値)の偏差(第11図におけるt1〜t7)を
加算することにより更新されるが、このためには、タイ
マの1個毎に前回のタイマ命令実行時におけるFRC値
と、前回のタイマ命令実行時までの現在値とが必要であ
り、メモリ上に作業領域を確保してこれらのFRC値及び
現在値を記憶させておくことが必要になっている。Now, the above current value is updated by adding the deviation (t 1 to t 7 in FIG. 11) of the value (FRC value) of the counter (hereinafter referred to as free running counter = FRC) that is incremented at a fixed time. However, for this purpose, the FRC value at the time of the previous execution of the timer instruction and the current value until the execution of the previous timer instruction are required for each timer, and a work area is secured in memory. It is necessary to store these FRC values and current values.
一方、従来のタイマ命令またはカウンタ命令の処理方式
においては、一つのプロセッサの演算、比較、転送処理
等により、タイマ命令またはカウンタ命令を処理してい
る。On the other hand, in the conventional processing method of the timer instruction or the counter instruction, the timer instruction or the counter instruction is processed by the calculation, comparison, transfer processing and the like of one processor.
第7図は従来のタイマ命令の処理手順を示すものであ
り、以下にその詳細な動作を説明する。FIG. 7 shows the processing procedure of a conventional timer instruction, and the detailed operation will be described below.
同図において、まず、タイマナンバ、入力値、設定値を
パラメータスタックからプログラマブルコントローラの
処理系内部に格納する(ステップA1〜A3)。次に、ステ
ップA1において内部に取り込んだタイマナンバから、タ
イマナンバに対応した前回タイマ命令実行時のFRC値が
格納されているアドレスを算出し(同A4)、このアドレ
スに基づきFRC前回値をリードする(同A5)。In the figure, first, a timer number, an input value, and a set value are stored in the processing system of the programmable controller from the parameter stack (steps A1 to A3). Next, in step A1, the address that stores the FRC value at the time of executing the previous timer instruction corresponding to the timer number is calculated from the timer number that was imported internally (A4), and the FRC previous value is read based on this address ( Same A5).
次いで、ステップA1において内部に取り込んだタイマナ
ンバから、タイマナンバに対応した前回タイマ命令実行
時の現在値が格納されているアドレスを算出し(同A
6)、このアドレスに基づいて現在値をリードする(同A
7)。その後、ステップA1において内部に取り込んだタ
イマナンバからタイマナンバに対応した前回タイマ命令
実行時のFRC値が格納されているアドレスを算出し(同A
8)、FRC今回値をタイマナンバに対応したFRC格納アド
レスにライトする(同A9)。Next, in step A1, the address that stores the current value at the time of executing the previous timer instruction corresponding to the timer number is calculated from the timer number that was fetched internally (at the same A
6) Read the current value based on this address (same A
7). After that, in step A1, the address that stores the FRC value at the time of executing the previous timer instruction corresponding to the timer number is calculated from the timer number imported internally (at the same A
8) Write the FRC current value to the FRC storage address corresponding to the timer number (at the same A9).
次に、FRC今回値とステップA5で取り込んだFRC前回値と
の偏差を求め(同A10)、この偏差とステップA7におい
て内部に取り込んだ現在値との和を求めて新しい現在値
を算出する(同A11)。Next, the deviation between the FRC current value and the FRC previous value fetched in step A5 is calculated (A10), and the sum of this deviation and the current value fetched internally in step A7 is calculated to calculate a new current value ( A11).
更に、ステップA1で内部に取り込んだタイマナンバから
タイマナンバに対応した出力領域のアドレスを算出し
(同A12)、このアドレスに基づいて出力値領域内のデ
ータをリードする(同A13)。そして、ステップA3で内
部に取り込んだ設定値とステップA11で算出した現在値
の比較結果とステップA2で内部に取り込んだ入力値とか
ら出力値を決定し、ステップA13で内部に取り込んだ出
力値領域内データの、タイマナンバに対応したビットに
書き込む(同A14)。Further, the address of the output area corresponding to the timer number is calculated from the timer number fetched inside in step A1 (at A12), and the data in the output value area is read based on this address (at A13). Then, the output value is determined from the comparison result of the set value internally fetched at step A3 and the current value calculated at step A11 and the input value internally fetched at step A2, and the output value region internally fetched at step A13. Write to the bit corresponding to the timer number in the internal data (at A14).
次に、ステップA1で内部に取り込んだタイマナンバか
ら、タイマナンバに対応した前回タイマ命令実行時の現
在値が格納されているアドレスを算出する(同A15)。
そして、ステップA11で算出した現在値を上記現在値ア
ドレスにライトする(同A16)。更に、ステップA1で内
部に取り込んだタイマナンバからタイマナンバに対応し
た出力値領域のアドレスを算出し(同A17)、ステップA
14で書き換えられた出力値領域内データを出力値領域に
ライトしている(同A18)。Next, from the timer number fetched inside in step A1, the address at which the current value at the time of execution of the previous timer instruction corresponding to the timer number is stored is calculated (at step A15).
Then, the current value calculated in step A11 is written to the current value address (at A16). Further, the address of the output value area corresponding to the timer number is calculated from the timer number loaded inside in step A1 (at step A17), and step A
The data in the output value area rewritten in 14 is written in the output value area (at A18).
(発明が解決しようとする課題) 以上のように従来の方式では、例えば一つのタイマ命令
を完了するまでに18ステップの処理を必要としており、
またカウンタ命令についても同様に多くのステップを必
要としていた。従って従来では、命令の処理速度が遅い
という問題があった。(Problems to be Solved by the Invention) As described above, in the conventional method, for example, 18 steps of processing are required to complete one timer instruction,
Similarly, the counter instruction also requires many steps. Therefore, in the past, there was a problem that the instruction processing speed was slow.
更に、上述したオンディレイタイマの例から明らかなよ
うに、タイマ命令やカウンタ命令では一つの命令に三つ
以上のパラメータが指定され、これらのパラメータはそ
の内容がメモリ内やレジスタ内のデータ、定数、または
命令の実行結果であって一義的にその内容を決定するこ
とができない。従って、命令の実行はすべてのパラメー
タの内容を処理系内部に取り込んだ後に行なう必要があ
る。このように複数のパラメータを取り込んだ後でなけ
れば命令を実行できないことも、命令処理速度の低下を
招く原因となっており、これはパラメータの数が多くな
るに従って顕著になっていた。Further, as is clear from the example of the on-delay timer described above, three or more parameters are specified for one instruction in the timer instruction or the counter instruction, and the contents of these parameters are the data and constants in the memory or register. , Or the execution result of an instruction, and its content cannot be uniquely determined. Therefore, it is necessary to execute the instruction after fetching the contents of all parameters into the processing system. The fact that an instruction can only be executed after fetching a plurality of parameters in this way also causes a reduction in instruction processing speed, which has become remarkable as the number of parameters increases.
本発明は上記問題点を解決するために提案されたもの
で、その目的とするところは、処理ステップの減少を図
り、またはパラメータの取り込みと命令の実行とを並列
的に行なうようにして命令処理の高速化を可能にした、
プログラマブルコントローラにおける命令の処理方式を
提供することにある。The present invention has been proposed to solve the above problems, and an object of the present invention is to reduce the number of processing steps, or to execute instruction processing by performing parameter fetching and instruction execution in parallel. Made it possible to speed up
It is to provide an instruction processing system in a programmable controller.
(課題を解決するための手段) 上記目的を達成するため、第1の発明は、複数のパラメ
ータが格納されるデータメモリに対するメモリアクセス
を行なうメモリアクセス処理手段と、命令に基づいた数
値演算を行なう数値演算処理手段と、データメモリ上の
作業領域のアドレスを計算するアドレス計算処理手段と
をそれぞれ個別に設け、これらの各手段を並列動作させ
て前記命令を実行するものである。(Means for Solving the Problem) In order to achieve the above object, the first invention is a memory access processing means for performing memory access to a data memory storing a plurality of parameters, and a numerical operation based on an instruction. Numerical operation processing means and address calculation processing means for calculating the address of the work area on the data memory are separately provided, and these respective means are operated in parallel to execute the instruction.
また、第2の発明は、一つの命令を複数のサブ命令に分
散すると共に、各サブ命令は命令本体をなす一つのサブ
ファンクションと少なくとも一つのパラメータとから構
成され、プログラマブルコントローラは一つのパラメー
タを取り込んだ後に対応する前記サブファンクションを
実行し、この実行期間中に他のパラメータを取り込むこ
とにより、パラメータの取り込みとサブファンクション
の実行とを並列にして行なうものである。According to a second aspect of the present invention, one instruction is distributed to a plurality of sub-instructions, and each sub-instruction is composed of one sub-function forming an instruction body and at least one parameter, and the programmable controller has one parameter. After the fetching, the corresponding sub-function is executed, and other parameters are fetched during this execution period, so that the parameter fetching and the sub-function executing are performed in parallel.
(作用) 第1の発明によれば、データメモリに対するメモリアク
セスを行なうメモリアクセス処理手段と、命令に基づい
た数値演算を行なう数値演算処理手段と、データメモリ
上の作業領域のアドレスを計算するアドレス計算処理手
段とをそれぞれ個別に設けて各手段を並列動作させるこ
とにより、全体の処理ステップを少なくすることがで
き、タイマ命令やカウンタ命令の処理を高速化すること
ができる。(Operation) According to the first aspect of the invention, a memory access processing means for accessing the data memory, a numerical operation processing means for performing a numerical operation based on an instruction, and an address for calculating an address of a work area on the data memory. By individually providing the calculation processing means and operating the respective means in parallel, it is possible to reduce the total processing steps, and it is possible to speed up the processing of the timer instruction and the counter instruction.
また、第2の発明によれば、一つの命令を実行形式に変
換する過程でサブファンクションと一つ以上のパラメー
タとからなる複数のサブ命令に分解し、プログラマブル
コントローラの命令処理手段では、サブ命令にかかる一
つのサブファンクションに続くパラメータを取り込んだ
後、直ちにそのサブファンクションの処理を実行し、同
時に次のサブ命令にかかるパラメータを取り込む。これ
により、パラメータの取り込みとサブファンクションの
実行とを同時に行なってタイマ命令やカウンタ命令の処
理を高速化することができる。According to the second invention, in the process of converting one instruction into the execution format, the instruction is decomposed into a plurality of sub-instructions including a sub-function and one or more parameters, and the instruction processing means of the programmable controller uses the sub-instruction. After fetching the parameter following one sub-function, the processing of that sub-function is immediately executed, and at the same time, the parameter relating to the next sub-instruction is fetched. This makes it possible to speed up the processing of the timer instruction and the counter instruction by simultaneously fetching the parameters and executing the sub-function.
(実施例) 以下、図に沿って第1の発明の一実施例を説明する。第
1図はこの実施例の構成を示すもので、図において、10
0は命令に基づく数値演算を行う数値演算処理手段、200
は作業領域のアドレス計算を行うアドレス計算処理手
段、300はメモリアクセス処理を行ない、かつ前記数値
演算処理手段100及びアドレス計算処理手段200を制御す
る制御処理手段、400はデータメモリである。(Embodiment) An embodiment of the first invention will be described below with reference to the drawings. FIG. 1 shows the configuration of this embodiment. In FIG.
0 is a numerical calculation processing means for performing numerical calculation based on an instruction, 200
Is an address calculation processing means for calculating the address of the work area, 300 is a control processing means for performing the memory access processing and controlling the numerical operation processing means 100 and the address calculation processing means 200, and 400 is a data memory.
ここで、数値演算処理手段100は、RFC前回値、現在値、
設定値、入力値、出力値データがそれぞれ格納される内
部レジスタ101〜105と、フリーランニングカウンタ(FR
C)106と、内部レジスタ101のFRC前回値及びFRC106のFR
C値が入力される減算器107と、この減算器107により演
算されたFRC値の偏差が格納される内部レジスタ110と、
前記偏差及び内部レジスタ102の現在値が入力される加
算器108と、前記現在値、設定値、入力値及び出力値デ
ータが入力されるコンパレータ109とからなっている。Here, the numerical calculation processing means 100, RFC previous value, current value,
Internal registers 101 to 105 that store set values, input values, and output value data, and a free-running counter (FR
C) 106, FRC previous value of internal register 101 and FR of FRC106
A subtractor 107 to which the C value is input, an internal register 110 that stores the deviation of the FRC value calculated by this subtractor 107,
It comprises an adder 108 to which the deviation and the current value of the internal register 102 are input, and a comparator 109 to which the current value, set value, input value and output value data are input.
また、アドレス計算処理手段200は、タイマナンバ、FRC
前回値格納先頭アドレス、現在値格納先頭アドレス、出
力値格納先頭アドレスがそれぞれ格納される内部レジス
タ201〜204と、FRC前回値格納先頭アドレス、現在値格
納先頭アドレス、出力値格納先頭アドレスが入力される
セレクタ205と、このセレクタ205の出力及び内部レジス
タ201のタイマナンバが入力される加算器206とからなっ
ている。In addition, the address calculation processing means 200 is a timer number, FRC.
Internal registers 201 to 204 that store the previous value storage start address, current value storage start address, and output value storage start address, and the FRC previous value storage start address, current value storage start address, and output value storage start address are input. Selector 205 and an adder 206 to which the output of the selector 205 and the timer number of the internal register 201 are input.
更に、制御処理手段300は、上記数値演算処理手段100、
アドレス計算処理手段200及び後述するメモリアクセス
制御部302の並列動作をシーケンシャルに制御するため
のシーケンシャル平行処理制御部301と、データメモリ4
00のリード/ライトを制御するためのメモリアクセス制
御部302とからなり、データメモリ400は、タイマナン
バ、入力値及び設定値が格納されるパラメータスタック
401と、FRC前回値領域402、現在値領域403及び出力値領
域404とからなっている。Further, the control processing means 300, the numerical operation processing means 100,
A sequential parallel processing control unit 301 for sequentially controlling the parallel operation of the address calculation processing unit 200 and a memory access control unit 302 described later, and a data memory 4.
The data memory 400 includes a memory access control unit 302 for controlling read / write of 00, and the data memory 400 is a parameter stack in which a timer number, an input value and a set value are stored.
401, FRC previous value area 402, current value area 403, and output value area 404.
なお、第1図において501はデータバス、502はアドレス
バスをそれぞれ示している。In FIG. 1, reference numeral 501 indicates a data bus, and 502 indicates an address bus.
しかしてこの実施例では、第7図に示した処理手順を、
数値演算処理系、アドレス計算処理系及びメモリアクセ
ス処理系の並列動作により実現することにより、タイマ
命令やカウンタ命令の処理を高速化しようとするもので
ある。Thus, in this embodiment, the processing procedure shown in FIG.
It is intended to speed up the processing of the timer instruction and the counter instruction by realizing the parallel operation of the numerical operation processing system, the address calculation processing system and the memory access processing system.
第2図はこの実施例におけるタイマ命令の処理手順を示
すもので、同図においてPはメモリアクセス処理系の処
理手順を、P′はアドレス計算処理系の処理手順を、ま
たP″は数値演算処理系の処理手順をそれぞれ示してい
る。FIG. 2 shows the processing procedure of the timer instruction in this embodiment. In FIG. 2, P is the processing procedure of the memory access processing system, P'is the processing procedure of the address calculation processing system, and P'is the numerical operation. The processing procedures of the processing system are shown respectively.
これらの処理を経時的に説明すると、まず、タイマナン
バをパラメータスタック401からリードし、内部レジス
タ201に格納する(ステップB1)。次に入力値をパラメ
ータスタック401からリードし、内部レジスタ104に格納
する(同B2)。Explaining these processes over time, first, the timer number is read from the parameter stack 401 and stored in the internal register 201 (step B1). Next, the input value is read from the parameter stack 401 and stored in the internal register 104 (at the same B2).
更に、内部レジスタ201内のタイマナンバと、内部レジ
スタ202に格納されているFRC前回値格納先頭アドレスと
から、セレクタ205を介し加算器206を用いてタイマナン
バに対応した前回タイマ命令実行時のFRC値が格納され
ているアドレスを算出する(同B2′)。このアドレスに
基づきFRC前回値をリードし、内部レジスタ101に格納す
る(同B3)。Further, from the timer number in the internal register 201 and the FRC previous value storage start address stored in the internal register 202, the FRC value at the time of executing the previous timer instruction corresponding to the timer number is calculated using the adder 206 via the selector 205. The stored address is calculated (at the same B2 '). Based on this address, the FRC previous value is read and stored in the internal register 101 (at the same B3).
次いで、内部レジスタ201に格納されているタイマナン
バと、内部レジスタ203に格納されている現在値格納先
頭アドレスとから、セレクタ205を介し加算器206を用い
てタイマナンバに対応した前回タイマ命令実行時の現在
値が格納されているアドレスを算出する(同B3′)。こ
のアドレスに基づいて現在値をリードし、内部レジスタ
102に格納する(同B4)。Next, from the timer number stored in the internal register 201 and the current value storage start address stored in the internal register 203, the current when the previous timer instruction corresponding to the timer number is executed using the adder 206 via the selector 205. The address where the value is stored is calculated (at the same B3 '). The current value is read based on this address and the internal register
Stored in 102 (same B4).
更に、内部レジスタ201に格納されているタイマナンバ
と、内部レジスタ202に格納されているFRC前回値格納先
頭アドレスとから、セレクタ205を介し加算器206を用い
てタイマナンバに対応した前回タイマ命令実行時のFRC
値が格納されるアドレスを算出する(同B4′)。また、
内部レジスタ101に格納されているFRC前回値と、FRC106
のFRC値とから、減算器107を用いて前回タイマ命令実行
時からのFRC値の偏差を算出し、この偏差を内部レジス
タ110に格納する(同B4″)。なお、この種は、前回タ
イマ命令実行時から今回タイマ命令実行時までの経過時
間を表わすものである。Further, from the timer number stored in the internal register 201 and the FRC previous value storage start address stored in the internal register 202, the adder 206 is used via the selector 205 to execute the previous timer instruction corresponding to the timer number. FRC
The address where the value is stored is calculated (at the same B4 '). Also,
FRC previous value stored in internal register 101 and FRC106
Of the FRC value from the previous timer instruction execution using the subtractor 107 and stores the deviation in the internal register 110 (Same as B4 ″). It represents the elapsed time from the execution of the instruction to the execution of the current timer instruction.
前述のステップB4′で算出したアドレスに基づき、FRC1
06のFRC値をタイマナンバに対応したFRC値格納アドレス
に今回値としてライトする(同B5)。そして、内部レジ
スタ110に格納されているFRCの偏差(前回タイマ命令実
行時からの経過時間)と、内部レジスタ102に格納され
ている前回タイマ命令実行時の現在値とから、加算器10
8を用いて新たな現在値を計算し、内部レジスタ102に格
納する(B5″)。Based on the address calculated in step B4 ′ above, FRC1
Write the FRC value of 06 to the FRC value storage address corresponding to the timer number as the current value (at the same B5). Then, from the deviation of the FRC stored in the internal register 110 (elapsed time from the execution of the previous timer instruction) and the current value stored in the internal register 102 at the execution of the previous timer instruction, the adder 10
A new current value is calculated using 8 and stored in the internal register 102 (B5 ″).
次に、設定値をパラメータスタック401からリードし、
内部レジスタ103に格納する(同B6)。そして、内部レ
ジスタ201に格納されているタイマナンバと、内部レジ
スタ204に格納されている出力値格納先頭アドレスとか
ら、セレクタ205を介し加算器206を用いてタイマナンバ
に対応した出力値格納アドレスを算出する(同B6′)。
このアドレスに基づいて、タイマナンバに対応した出力
領域データをリードし、内部レジスタ105に格納する
(同B7)。Next, read the setting value from the parameter stack 401,
It is stored in the internal register 103 (at the same B6). Then, the output value storage address corresponding to the timer number is calculated from the timer number stored in the internal register 201 and the output value storage start address stored in the internal register 204 using the adder 206 via the selector 205. (Same as B6 ').
Based on this address, the output area data corresponding to the timer number is read and stored in the internal register 105 (at the same B7).
更に、内部レジスタ201に格納されているタイマナンバ
と、内部レジスタ203に格納されている現在値格納先頭
アドレスとから、セレクタ205を介し加算器206を用いて
タイマナンバに対応した今回タイマ命令実行時の現在値
が格納されるアドレスを算出する(同B7′)。このアド
レスに基づき、内部レジスタ102の現在値をタイマナン
バに対応した現在値格納アドレスにライトする(同B
8)。Further, from the timer number stored in the internal register 201 and the current value storage start address stored in the internal register 203, the current value at the time of execution of the current timer instruction corresponding to the timer number using the adder 206 via the selector 205. The address where the value is stored is calculated (at the same B7 '). Based on this address, the current value of the internal register 102 is written to the current value storage address corresponding to the timer number (at the same B
8).
そして、内部レジスタ201に格納されているタイマナン
バと、内部レジスタ204に格納されている出力値格納先
頭アドレスとから、セレクタ205を介し加算器206を用い
てタイマナンバに対応した出力値格納アドレスを算出す
る(同B8′)。また、内部レジスタ102の新たな現在値
と内部レジスタ103の設定値との比較結果と、内部レジ
スタ104の入力値とから、コンパレータ109により出力値
を決定し、内部レジスタ105の出力値領域内データのタ
イマナンバに対応したビットに書き込む(同B8″)。次
いで、ステップB8′で算出したアドレスに基づき、内部
レジスタ105の出力値領域内データを、タイマナンバに
対応した出力値領域アドレスにライトする(同B9)。Then, the output value storage address corresponding to the timer number is calculated from the timer number stored in the internal register 201 and the output value storage start address stored in the internal register 204 using the adder 206 via the selector 205. (Same B8 '). Also, the output value is determined by the comparator 109 from the comparison result between the new current value of the internal register 102 and the set value of the internal register 103, and the input value of the internal register 104. Of the output value area address of the internal register 105 is written to the output value area address corresponding to the timer number (same as B8 ″). B9).
以上のように、この実施例においても処理項目は従来と
同じ18項目であるが、メモリアクセス、数値演算、アド
レス計算を同一ステップで行うことができるため、タイ
マ命令を完了するまでのステップ数は9ステップで済む
ことになる。従って、従来に比べてタイマ命令処理の時
間を半減させることができ、従来の2倍の速度でタイマ
命令処理を実行することができる。As described above, even in this embodiment, the processing items are the same as the conventional 18 items, but since memory access, numerical operation, and address calculation can be performed in the same step, the number of steps until the timer instruction is completed is It will be completed in 9 steps. Therefore, the time required for timer instruction processing can be reduced by half as compared with the conventional method, and the timer instruction processing can be executed at twice the speed of the conventional method.
次に、第3図ないし第5図は第2の発明の一実施例を示
している。この発明は、一つのタイマ命令やカウンタ命
令を更に複数のサブ命令に分解し、パラメータの個数1
個または2個に対して命令本体をなす一つのサブファン
クションを定義することにより、処理系内部に1個また
は2個のパラメータを取り込んだ後に直ちに該当するサ
ブファンクションを実行するようにして、処理の高速化
を図ったものである。Next, FIGS. 3 to 5 show an embodiment of the second invention. According to the present invention, one timer instruction or counter instruction is further decomposed into a plurality of sub instructions, and the number of parameters is 1
By defining one sub-function that constitutes the instruction body for one or two, the corresponding sub-function is executed immediately after incorporating one or two parameters inside the processing system, and It is intended for speeding up.
すなわち、第3図に示すように、例えばタイマ命令C
が、命令本体をなすファンクションF“TiM"と、オペラ
ンドとしてのタイマナンバ、入力値及び設定値からなる
3個のパラメータP1〜P3とから構成されている場合、こ
のタイマ命令CをサブファンクションSF1“TiMO"とタイ
マナンバのパラメータP1、サブファンクションSF2“TiM
1"と入力値のパラメータP2、サブファンクションSF3“T
iM2"と設定値のパラメータP3の組に分解し、それぞれを
サブ命令C1,C2,C3とする。That is, for example, as shown in FIG.
But the function F "TiM" constituting the instruction body, Taimananba as an operand, if it is composed of three parameters P 1 to P 3 Metropolitan consisting input value and the set value, the timer instruction C subfunctions SF 1 “TiMO” and timer number parameter P 1 , sub-function SF 2 “TiM
1 "and input value parameter P 2 , subfunction SF 3 “ T
It is decomposed into a set of iM2 "and the parameter P 3 of the set value, and each is set as subinstructions C 1 , C 2 , and C 3 .
そして、各サブ命令C1〜C3は、後に詳述するようにサブ
命令C1においては、タイマナンバのリード(オペラン
ドの取込み)現在値領域アドレスの算出現在値リー
ド出力値領域アドレスの算出の順序で処理を行い、サ
ブ命令C2については、′入力値のリード(オペランド
の取込み)′入力値が“0"か“1"かの判定′入力値
が“0"のときは現在値を“0"とし、“1"のときは現在値
を更新する処理を行い、また、サブ命令C3については、
″設定値のリード(オペランドの取込み)″現在値
と設定値との比較″出力値のセットの順序で処理を行
うものとする。The sub-instructions C 1 to C 3 are, in the sub-instruction C 1 , read the timer number (take in the operand), calculate the current value area address, and calculate the current value read output value area address in the order of sub-instruction C 1 , as will be described later. in performs processing for the sub-instruction C 2, 'input value of the read (uptake operand)' input value "0" or "1" Kano determination 'input value "0" when the current value " 0 ", and" when the 1 "performs a process of updating the current value, also, for sub-instruction C 3 is
"Read set value (capture of operand)""Comparison between current value and set value" Processing is performed in the order of setting output values.
第4図はこの実施例が適用されるハードウェアの構成を
示している。図において、600はプログラムメモリであ
り、このプログラムメモリ600にはパラメータごとに定
義された前記サブ命令C1〜C3が格納されている。なお、
この実施例では、各パラメータはこれらのデータが格納
されているデータメモリ400′のアドレスを示してい
る。そして、データメモリ400′には第1の発明と同様
にタイマナンバ、入力値及び設定値の他に現在値、出力
値等が格納されるようになっている。FIG. 4 shows a hardware configuration to which this embodiment is applied. In the figure, reference numeral 600 denotes a program memory, and the program memory 600 stores the sub-instructions C 1 to C 3 defined for each parameter. In addition,
In this embodiment, each parameter indicates the address of the data memory 400 'where these data are stored. In addition to the timer number, the input value and the set value, the current value, the output value and the like are stored in the data memory 400 'as in the first invention.
また、700は命令処理手段であり、この命令処理手段700
はデータメモリ400′上のデータをリードまたはライト
するためのメモリ管理手段710と、サブ命令(サブファ
ンクション)を実行する命令実行手段720とを独立して
備えており、各サブ命令C1〜C3毎のパラメータの内容の
取込み等、メモリのリード/ライトと、各サブ命令C1〜
C3のサブファンクションSF1〜SF3の実行とを並行して処
理できるように構成されている。700 is an instruction processing means, and this instruction processing means 700
A memory management unit 710 to read or write data on the data memory 400 ', the sub-instruction includes independently and instruction execution means 720 for executing the (subfunctions), each sub-instruction C 1 -C Memory read / write such as fetching parameter contents for each 3 and each sub instruction C 1 ~
It is configured so that the execution of C 3 subfunctions SF 1 to SF 3 can be processed in parallel.
なお、メモリ管理手段710はタイマナンバ、入力値、設
定値、現在値を格納する内部レジスタ711と、現在値領
域アドレス及び出力値領域アドレスを格納する内部レジ
スタ712とを備え、また、命令実行手段720は、タイマナ
ンバが入力されて各アドレスを生成するアドレス生成部
721と、入力値が“0"か“1"かを判定する入力値判定部7
22と、現在値及び設定値を比較して出力値を生成するコ
ンパレータ723とを備えている。The memory management means 710 includes an internal register 711 for storing a timer number, an input value, a set value and a current value, an internal register 712 for storing a current value area address and an output value area address, and an instruction executing means 720. Is an address generator that receives the timer number and generates each address.
721 and the input value determination unit 7 that determines whether the input value is “0” or “1”
22 and a comparator 723 that generates an output value by comparing the current value and the set value.
そしてこの実施例では、一つのサブ命令のパラメータを
取り込むと直ちにこのサブ命令にかかるサブファンクシ
ョンの実行が行われ、この間、次のサブ命令のパラメー
タの取込みが並行して行われる。すなわち、第5図に示
すように、サブファンクション“TiM0"においてデータ
メモリ400′から内部レジスタ711にタイマナンバをリー
ドし(第5図)、アドレス生成部721により現在値領
域アドレスを生成して内部レジスタ712に格納する段階
で(同)、サブファンクション“TiM"1においてデー
タメモリ400′から内部レジスタ711に入力値をリードす
る(同′)。一方、サブファンクション“TiM0"にお
いてデータメモリ400′から内部レジスタ711に現在値を
リードし(同)、これと同時にサブファンクション
“TiM1"において入力値判定部722により入力値を判定す
る(同′)。Then, in this embodiment, as soon as the parameter of one sub-instruction is fetched, the sub-function relating to this sub-instruction is executed, and during this period, the parameter of the next sub-instruction is fetched in parallel. That is, as shown in FIG. 5, in the sub-function “TiM0”, the timer number is read from the data memory 400 ′ to the internal register 711 (FIG. 5), and the address generator 721 generates the current value area address to generate the internal register. At the stage of storing in 712 (same), the input value is read from the data memory 400 'to the internal register 711 in the sub-function "TiM" 1 (same'). On the other hand, in the sub-function "TiM0", the current value is read from the data memory 400 'to the internal register 711 (same), and at the same time, in the sub-function "TiM1", the input value is determined by the input value determination unit 722 (same'). .
また、サブファンクション“TiM0"においてアドレス生
成部721により出力値領域アドレスを生成して内部レジ
スタ712に格納し(同)、これと当時にサブファンク
ション“TiM2"においてデータメモリ400′から内部レジ
スタ711に設定値をリードする。そして、サブファンク
ション“TiM1"において入力値に応じた現在値の変更処
理(同′)を行っている間、サブファンクション“Ti
M2"においてコンパレータ723により現在値と設定値とを
比較し(同″)、その後、出力値をデータメモリ40
0′にセットする(同″)ものである。Further, in the sub-function "TiM0", the output value area address is generated by the address generation unit 721 and stored in the internal register 712 (same), and at this time, in the sub-function "TiM2" from the data memory 400 'to the internal register 711. Read the set value. While the sub-function "TiM1" is performing the current value change process (same as above) according to the input value, the sub-function "TiM1"
In M2 ", the comparator 723 compares the current value with the set value (same"), and then outputs the output value to the data memory 40.
It is set to 0 '(same as above).
以上のように、この実施例では各サブ命令のオペランド
の取り込みとサブファンクションの実行とが並行して行
われるため、タイマ命令の実行時間を全体的に短縮する
ことができる。As described above, in this embodiment, the fetch of the operand of each sub-instruction and the execution of the sub-function are performed in parallel, so that the execution time of the timer instruction can be shortened as a whole.
なお、上記各発明の実施例ではタイマ命令の処理につい
てのみ説明してあるが、何れの発明もカウンタ命令の処
理に対しても適用可能である。Although only the processing of the timer instruction has been described in the above embodiments of the invention, any of the inventions can be applied to the processing of the counter instruction.
(発明の効果) 以上のように、第1の発明によれば、数値演算処理系、
アドレス計算処理系及びメモリアクセス処理系を並列動
作させるものであり、また、第2の発明によれば、一つ
の命令をパラメータ毎に複数のサブ命令に分解すると共
に、あるサブ命令にかかるサブファンクションの実行と
他のサブ命令にかかるパラメータ取り込みと並行して行
うものであるため、全体的な命令実行時間の短縮によっ
て命令処理の高速化が図れるという効果がある。(Effect of the Invention) As described above, according to the first invention, a numerical operation processing system,
An address calculation processing system and a memory access processing system are operated in parallel, and according to the second invention, one instruction is decomposed into a plurality of sub-instructions for each parameter, and a sub-function related to a certain sub-instruction. Is executed in parallel with the execution of parameters and the acquisition of parameters for other sub-instructions, so that there is an effect that the instruction processing speed can be increased by shortening the overall instruction execution time.
第1図及び第2図は第1の発明の一実施例を示すもの
で、第1図はこの実施例に用いられるハードウェアの構
成図、第2図はこの実施例における命令処理手順を示す
フローチャート、第3図ないし第5図は第2の発明の一
実施例を示すもので第3図はタイマ命令の分解方法の説
明図、第4図はこの実施例に用いられるハードウェアの
構成図、第5図は各サブファンクションの処理内容を示
す図、第6図及び第7図は従来の技術を説明するための
もので、第6図はオンディレイタイマの動作説明図、第
7図はタイマ命令の処理手順を示すフローチャートであ
る。 100……数値演算処理手段、 101〜105,110,201〜204,711,712……内部レジスタ 106……フリーランニングカウンタ 107……減算器、108,206……加算器 109,723……コンパレータ 200……アドレス計算処理手段 205……セレクタ、300……制御処理手段 301……シーケンシャル並行処理制御部 302……メモリアクセス制御部 400,400′……データメモリ 401……パラメータスタック 402……FRC前回値領域、403……現在値領域 404……出力値領域、501……データバス 502……アドレスバス、600……プログラムメモリ 700……命令処理手段、710……メモリ管理手段 720……命令実行手段、721……アドレス生成部 722……入力値判定部1 and 2 show an embodiment of the first invention, FIG. 1 is a block diagram of hardware used in this embodiment, and FIG. 2 shows an instruction processing procedure in this embodiment. A flow chart, FIGS. 3 to 5 show an embodiment of the second invention, FIG. 3 is an explanatory view of a method of disassembling a timer instruction, and FIG. 4 is a block diagram of hardware used in this embodiment. , FIG. 5 is a diagram showing the processing contents of each sub-function, FIGS. 6 and 7 are for explaining a conventional technique, FIG. 6 is an operation explanatory diagram of an on-delay timer, and FIG. It is a flowchart which shows the process sequence of a timer instruction. 100 ... Numerical calculation processing means, 101 to 105,110,201 to 204,711,712 ... Internal register 106 ... Free running counter 107 ... Subtractor, 108,206 ... Adder 109,723 ... Comparator 200 ... Address calculation processing means 205 ... Selector, 300 ... Control processing unit 301 ... Sequential parallel processing control unit 302 ... Memory access control unit 400, 400 '... Data memory 401 ... Parameter stack 402 ... FRC previous value area, 403 ... Current value area 404 ... Output Value area 501 501 Data bus 502 Address bus 600 Program memory 700 Instruction processing means 710 Memory management means 720 Instruction execution means 721 Address generator 722 Input value Judgment part
───────────────────────────────────────────────────── フロントページの続き (56)参考文献 特開 昭59−223804(JP,A) 特開 昭63−136201(JP,A) 特開 昭55−33231(JP,A) ─────────────────────────────────────────────────── ─── Continuation of the front page (56) References JP-A-59-223804 (JP, A) JP-A-63-136201 (JP, A) JP-A-55-33231 (JP, A)
Claims (2)
を実行するプログラマブルコントローラにおいて、 前記パラメータが格納されるデータメモリに対するメモ
リアクセスを行なうメモリアクセス処理手段と、前記命
令に基づいた数値演算を行なう数値演算処理手段と、前
記データメモリ上の作業領域のアドレスを計算するアド
レス計算処理手段とをそれぞれ個別に設け、これらの各
手段を並列動作させて前記命令を実行することを特徴と
するプログラマブルコントローラにおける命令の処理方
式。1. In a programmable controller which fetches a plurality of parameters inside and executes an instruction, a memory access processing means for making a memory access to a data memory in which the parameter is stored, and a numerical value for performing a numerical operation based on the instruction. A programmable controller characterized in that arithmetic processing means and address calculation processing means for calculating an address of a work area on the data memory are individually provided, and each of these means is operated in parallel to execute the instruction. Instruction processing method.
を実行するプログラマブルコントローラにおいて、 一つの命令を複数のサブ命令に分解すると共に、各サブ
命令は命令本体をなす一つのサブファンクションと少な
くとも一つのパラメータとから構成され、前記プログラ
マブルコントローラは一つのパラメータを取り込んだ後
に対応する前記サブファンクションを実行し、この実行
期間中に他のパラメータを取り込むことを特徴とするプ
ログラマブルコントローラにおける命令の処理方式。2. A programmable controller that fetches a plurality of parameters inside and executes an instruction, decomposes one instruction into a plurality of sub-instructions, and each sub-instruction is one sub-function forming an instruction body and at least one sub-instruction. And a parameter, wherein the programmable controller fetches one parameter, executes the corresponding sub-function, and fetches another parameter during this execution period.
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP1192157A JPH0786762B2 (en) | 1989-07-25 | 1989-07-25 | Instruction processing method in programmable controller |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP1192157A JPH0786762B2 (en) | 1989-07-25 | 1989-07-25 | Instruction processing method in programmable controller |
Publications (2)
Publication Number | Publication Date |
---|---|
JPH0357003A JPH0357003A (en) | 1991-03-12 |
JPH0786762B2 true JPH0786762B2 (en) | 1995-09-20 |
Family
ID=16286644
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP1192157A Expired - Lifetime JPH0786762B2 (en) | 1989-07-25 | 1989-07-25 | Instruction processing method in programmable controller |
Country Status (1)
Country | Link |
---|---|
JP (1) | JPH0786762B2 (en) |
-
1989
- 1989-07-25 JP JP1192157A patent/JPH0786762B2/en not_active Expired - Lifetime
Also Published As
Publication number | Publication date |
---|---|
JPH0357003A (en) | 1991-03-12 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP3025776B2 (en) | Method and apparatus for precision floating point exception | |
JPH06309177A (en) | Microcomputer | |
JP2685245B2 (en) | Programmable controller | |
US5390306A (en) | Pipeline processing system and microprocessor using the system | |
JPH0786762B2 (en) | Instruction processing method in programmable controller | |
US5586337A (en) | Programmable controller with timing control | |
CA1155231A (en) | Pipelined digital processor arranged for conditional operation | |
JP3024719B2 (en) | Arithmetic processing method of programmable controller | |
JPS5835648A (en) | Program execution controlling system | |
JPS60204029A (en) | Signal processing device | |
JPS58200349A (en) | Microprogram controller | |
JPH0744095A (en) | User program setting method | |
JPH082727Y2 (en) | Programmable sequencer | |
JP3074809B2 (en) | Programmable controller | |
JPH04230533A (en) | Interruption control circuit | |
JPH01270128A (en) | Link system | |
JPH04128344U (en) | signal processing device | |
JPH0221331A (en) | Program control system for microcomputer | |
JPH036735A (en) | Data processor | |
JPS58109908A (en) | Monitor for sequence controller | |
JPS60214004A (en) | Function instruction system of programmable controller | |
JPH04140851A (en) | Diagnostic system for information processor | |
JPS6333175B2 (en) | ||
JPH04365170A (en) | Digital signal processing semiconductor integrated circuit | |
JPH03225428A (en) | Fuzzy computing element |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
FPAY | Renewal fee payment (prs date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20070920 Year of fee payment: 12 |
|
FPAY | Renewal fee payment (prs date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20080920 Year of fee payment: 13 |
|
FPAY | Renewal fee payment (prs date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20080920 Year of fee payment: 13 |
|
FPAY | Renewal fee payment (prs date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20090920 Year of fee payment: 14 |
|
EXPY | Cancellation because of completion of term |