JPS63196903A - Programmable controller - Google Patents
Programmable controllerInfo
- Publication number
- JPS63196903A JPS63196903A JP2805287A JP2805287A JPS63196903A JP S63196903 A JPS63196903 A JP S63196903A JP 2805287 A JP2805287 A JP 2805287A JP 2805287 A JP2805287 A JP 2805287A JP S63196903 A JPS63196903 A JP S63196903A
- Authority
- JP
- Japan
- Prior art keywords
- instruction
- address
- memory
- executed
- input parameters
- 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.)
- Pending
Links
- 238000000034 method Methods 0.000 claims abstract description 41
- 230000005540 biological transmission Effects 0.000 claims abstract description 10
- 238000010586 diagram Methods 0.000 description 6
- 230000001174 ascending effect Effects 0.000 description 1
- FFBHFFJDDLITSX-UHFFFAOYSA-N benzyl N-[2-hydroxy-4-(3-oxomorpholin-4-yl)phenyl]carbamate Chemical compound OC1=C(NC(=O)OCC2=CC=CC=C2)C=CC(=C1)N1CCOCC1=O FFBHFFJDDLITSX-UHFFFAOYSA-N 0.000 description 1
- 239000003795 chemical substances by application Substances 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 238000012544 monitoring process Methods 0.000 description 1
Landscapes
- Advance Control (AREA)
- Programmable Controllers (AREA)
Abstract
Description
【発明の詳細な説明】
[発明の目的]
(産業上の利用分野)
本発明は、一般産業設備の監視や制御において使用され
る問題向き言語CPOL言語)を用いたプログラマブル
コントローラに関する。DETAILED DESCRIPTION OF THE INVENTION [Object of the Invention] (Field of Industrial Application) The present invention relates to a programmable controller using a problem-oriented language (CPOL language) used in monitoring and controlling general industrial equipment.
(従来の技術)
プログラムコントローラの命令メモリに問題向き言語を
用いて作成したプログラム(以下、 POLプログラム
という)を格納して実行させる場合。(Prior art) A case where a program created using a problem-oriented language (hereinafter referred to as a POL program) is stored in the instruction memory of a program controller and executed.
プログラムコントローラに内蔵された1つの演算ユニッ
トが、格納されたPOLプログラムの命令をメモリアド
レスの若い順に1ステツプづつ順次読み出し、各命令コ
ードをインタプリタで解読してその命令に対応した所定
の処理を順次実行する。One arithmetic unit built into the program controller sequentially reads out the instructions of the stored POL program one step at a time in ascending order of memory address, decodes each instruction code with an interpreter, and sequentially executes a predetermined process corresponding to that instruction. Execute.
各命令では、一般にメモリ上の入カパラメータを格納し
ているアドレスと出カパラメータを格納すべきアドレス
とが指定されており、演算ユニットはメモリ上の入カパ
ラメータを読み出して、所定の演算を行ない、その演算
結果を指定されたメモリ上のアドレスに出カパラメータ
として格納する。Each instruction generally specifies an address in memory where input parameters are stored and an address where output parameters are to be stored, and the arithmetic unit reads the input parameters in memory and performs a predetermined operation. and stores the calculation result at the specified memory address as an output parameter.
1つのPOLプログラムは、このような処理を順次繰り
返して実行される。One POL program is executed by sequentially repeating such processing.
(発明が解決しようとする問題点)
ところで、近年はプログラムコントローラの制御内容が
複雑化する一方、処理の高速化が要求されている。(Problems to be Solved by the Invention) Incidentally, in recent years, the control contents of program controllers have become more complex, and there has been a demand for faster processing.
しかし、従来のPOLプログラムの処理方法では、上記
のように1つの演算ユニットが順次命令の解読、実行を
くり返すので、全体の処理時間は、POLプログラムの
ステップ数に比例して長くなる。このため、高速化を実
現しようとすると、より実行速度の速い演算ユニットを
使用するか、POLプログラムを一定の処理毎に分割し
、複数のプログラマブルコントローラで実行するように
しなければならず、装置のコストが高くなったり、シス
テムの規模が大きくなる問題があった。However, in the conventional POL program processing method, one arithmetic unit repeatedly decodes and executes instructions in sequence as described above, so the overall processing time increases in proportion to the number of steps in the POL program. Therefore, in order to achieve higher speeds, it is necessary to use a faster execution speed arithmetic unit or to divide the POL program into certain processing units and execute them on multiple programmable controllers. There were problems in that the cost increased and the scale of the system increased.
また、分割した処理を複数のプログラムコントローラで
実行するとき、1つの処理の処理結果を別の処理で使用
する場合が多く、この場合、各フログラムコントローラ
での実行順序を制御したり、処理結果を他のプログラム
コントローラへ転送したりするための装置が必要になり
、さらにシステムが大規模になる。Also, when split processing is executed by multiple program controllers, the processing results of one process are often used in another process. A device for transferring programs to other program controllers is required, further increasing the scale of the system.
本発明は、上記の問題点を解決し、低コストで小形に構
成できると共に高速処理が行なえるプログラマブルコン
トローラを提供することを目的とする。SUMMARY OF THE INVENTION An object of the present invention is to solve the above-mentioned problems and provide a programmable controller that can be configured at low cost and small in size and can perform high-speed processing.
[発明の構成] (問題を解決するための手段) このため、本発明は、複数の演算ユニットと。[Structure of the invention] (Means to solve the problem) For this reason, the present invention includes a plurality of arithmetic units.
命令メモリより読み出された各ステップの命令をそれら
の演算ユニットに分配する分配ユニットとを備える一方
、各ステップの命令は、その命令の入カパラメータ数と
、命令メモリからその命令が読み出された回数を計数す
るためのアクティブカウンタと、その命令の出カパラメ
ータを入カパラメータとする他の命令のメモリアドレス
を示す伝達アドレスとを備えて構成し、命令メモリより
命令を読み出したとき、上記入カパラメータが複数の場
合には、上記アクティブカウンタをカウントアツプして
書き換えた命令を元のメモリアドレスに格納しておくよ
うにし、読み出した命令の入カパラメータとアクティブ
カウンタとを比較することにより、その命令の実行可否
を判断するようにし、実行筒と判断した各命令を複数の
演算二ニットにより実行し、その処理実行後、各命令の
伝達アドレスを取り出し、その伝達アドレスに従って命
令メモリから順次各命令を読み出して、上記処理を繰り
返すようにしたものである。and a distributing unit that distributes the instructions of each step read from the instruction memory to those arithmetic units, while the instruction of each step has the number of input parameters of the instruction and the number of input parameters of the instruction read from the instruction memory. The configuration includes an active counter for counting the number of times the instruction has been executed, and a transmission address indicating the memory address of another instruction whose input parameter is the output parameter of the instruction. If there are multiple input parameters, the active counter is counted up and the rewritten instruction is stored in the original memory address, and the input parameters of the read instruction are compared with the active counter. , determines whether or not the instruction can be executed, executes each instruction determined to be executable by multiple arithmetic operations, and after execution of the processing, retrieves the transfer address of each instruction and sequentially reads it from the instruction memory according to the transfer address. Each instruction is read and the above processing is repeated.
(作用)
複数の演算ユニットにより複数の命令が並行に処理され
るので、処理が高速化される一方、伝達アドレスに従っ
て次の命令を読み出すと共に。(Operation) Since a plurality of instructions are processed in parallel by a plurality of arithmetic units, the processing speed is increased, and the next instruction is read out according to the transmitted address.
入カパラメータ数が複数の場合には、命令メモリより読
み出した命令のアクティブカウンタをカウントアツプし
て元のアドレスにもどしておくことにより、次回その命
令が読み出されたとき、入カパラメータがデータメモリ
に揃っているかどうか判別できるので、所定の手順で確
実に処理できるようになる。When the number of input parameters is multiple, by counting up the active counter of the instruction read from the instruction memory and returning it to the original address, the next time the instruction is read, the input parameters will be stored as data. Since it can be determined whether all the information is stored in memory, processing can be performed reliably according to a predetermined procedure.
(実施例) 以下1本発明の実施例を詳細に説明する。(Example) Hereinafter, one embodiment of the present invention will be described in detail.
第1図は本発明の一実施例に係るプログラムコントロー
ラのブロック構成図である。図において、アドレシング
ユニット1はアドレスデータを格納するFIFOバッフ
ァを内蔵し、命令メモリ2に対して格納したアドレスデ
ータを順次出力して。FIG. 1 is a block diagram of a program controller according to an embodiment of the present invention. In the figure, an addressing unit 1 has a built-in FIFO buffer for storing address data, and sequentially outputs the stored address data to an instruction memory 2.
メモリアドレスを指示するものである。命令メモリ2は
POLプログラムが格納されたメモリであり、分配ユニ
ット3はアドレシングユニット1により指示されたアド
レスの命令を命令メモリ2より順次読み出し、各命令を
演算ユニット48〜4eに分配するものである。演算ユ
ニット48〜4eのそれぞれは。This indicates a memory address. The instruction memory 2 is a memory in which a POL program is stored, and the distribution unit 3 sequentially reads instructions at the address specified by the addressing unit 1 from the instruction memory 2, and distributes each instruction to the calculation units 48 to 4e. . Each of the calculation units 48 to 4e.
インタプリタを内蔵し、各命令に従った所定の処理を実
行するものであり、データメモリ5はその処理に対する
入カパラメータと出カパラメータとが格納されるメモリ
である。オア回路6はプログラムの実行終了を示す信号
を出力するものである。It has a built-in interpreter and executes predetermined processing according to each instruction, and the data memory 5 is a memory in which input parameters and output parameters for the processing are stored. The OR circuit 6 outputs a signal indicating the end of program execution.
次に、本実施例の動作を説明するが、ここでは第2図の
制御ブロック図で示すような演算処理を実行する場合を
例として、以下に説明する。同図において、11〜25
はPOLプログラムの各演算処理ブロックを示しており
、ブロック内の記号は命令コードである。RO〜R35
はデータメモリ5のアドレスを示し、各アドレスのデー
タは各処理11〜25の入カパラメータあるいは出カパ
ラメータになる。Next, the operation of this embodiment will be described, taking as an example a case where arithmetic processing as shown in the control block diagram of FIG. 2 is executed. In the same figure, 11 to 25
indicates each arithmetic processing block of the POL program, and the symbols within the blocks are instruction codes. RO~R35
indicates the address of the data memory 5, and the data at each address becomes the input parameter or output parameter of each process 11-25.
例えば、処理11はデータメモリ5のアドレスROに格
納されている入カパラメータに基づいてAICという演
算処理を行ない、その演算結果である出カパラメータを
アドレスRIOに格納するものである。For example, the process 11 performs an arithmetic operation called AIC based on the input parameter stored at address RO of the data memory 5, and stores the output parameter as the result of the operation at address RIO.
また、この図から例えば処理11.12と処理13.1
4とはどちらを先に実行してもよく、処理15は処理1
1〜14の全てを実行した後でないと入カパラメータが
揃わないので実行できないことがわかる。Also, from this figure, for example, process 11.12 and process 13.1
4 can be executed first, and process 15 is process 1.
It can be seen that it cannot be executed until all steps 1 to 14 have been executed because the input parameters are not available.
第3図は第2図に示した演算処理を行なうためのプログ
ラムの初期状態を示し、このプログラムが命令メモリ2
に格納される。図において、アドレス31は各命令の格
納場所を示す命令メモリ2内のアドレスであり、命令コ
ード32は演算の種類を示すものであり、入カパラメー
タアドレス33は演算に必要な入カパラメータのデータ
メモリ5内のアドレスであり、出カパラメータアドレス
は、演算結果を格納する出カパラメータのアドレスであ
る。FIG. 3 shows the initial state of a program for performing the arithmetic processing shown in FIG.
is stored in In the figure, an address 31 is an address in the instruction memory 2 that indicates the storage location of each instruction, an instruction code 32 indicates the type of operation, and an input parameter address 33 indicates input parameter data necessary for the operation. This is an address in the memory 5, and the output parameter address is the address of the output parameter in which the calculation result is stored.
入カパラメータ数35は入カパラメータの数を示し、ア
クティブカウンタ36は命令メモリ2から命令が読み出
された回数を計数するためのもので、初期値が0に設定
されており1分配ユニット3により必要に応じて書き換
えられるものである。伝達アドレス37は、各命令にお
いてその演算結果を入カパラメータとして使用している
他の命令の命令メモリ2内の格納アドレスを示す、ただ
し、rsTARTJの命令の場合には1次に実行すべき
命令の格納アドレスを示す。The number of input parameters 35 indicates the number of input parameters, and the active counter 36 is for counting the number of times an instruction is read from the instruction memory 2.The initial value is set to 0, and the active counter 36 is for counting the number of times an instruction is read from the instruction memory 2. It can be rewritten as necessary. The transmission address 37 indicates the storage address in the instruction memory 2 of another instruction whose operation result is used as an input parameter in each instruction.However, in the case of the rsTARTJ instruction, it is the instruction to be executed first. Indicates the storage address.
第4図はアドレシングユニット1.命令メモリ2および
分配ユニット3の動作を示したものである。FIG. 4 shows addressing unit 1. The operation of the instruction memory 2 and the distribution unit 3 is shown.
アドレシングユニット1はスタート信号aにより起動さ
れると、I&初にアドレス「000」を命令メモリ2に
出力する。命令メモリ2はそのアドレスr000Jに格
納されている命令を分配ユニット3に出力する。When the addressing unit 1 is activated by the start signal a, it first outputs the address "000" to the instruction memory 2. Instruction memory 2 outputs the instruction stored at address r000J to distribution unit 3.
これにより、最初の命令、いまの場合rsTARTJ命
令が読み出される(第4図、処理41)。As a result, the first instruction, in this case the rsTARTJ instruction, is read out (FIG. 4, process 41).
分配ユニット3はその命令を入力し、ビジー信号すをオ
ンする。次いで、その命令の中のアクティブカウンタ3
6を取り出し、その値を+1しく処理42)、+1した
アクティブカウンタの値と入カパラメータ数35とを比
較する(処理43)。スタート命令では、アクティブカ
ウンタが「0」で、入カパラメータ数が「1」なので、
この処理において両者が一致する。この場合(処理43
のY)、カウントアツプしたアクティブカウンタを「0
」にもどし、命令メモリ2の所定の元のアドレスに格納
しておく(処理44)。The distribution unit 3 inputs the command and turns on the busy signal. Then active counter 3 in that instruction
6 is extracted, the value is incremented by +1 (process 42), and the +1 value of the active counter is compared with the number of input parameters 35 (process 43). In the start command, the active counter is "0" and the number of input parameters is "1", so
In this process, both match. In this case (processing 43
Y), the active counter that has counted up is set to ``0''.
'' and stores it at a predetermined original address in the instruction memory 2 (processing 44).
演算ユニット48〜4eの動作中には、ビジー信号Cが
出力される1分配ユニット3は次にビジー信号Cの出力
されていないアイドル状態の演算ユニットを探しく処理
45)、その一つを選択し命令メモリ2より受信した命
令を転送する(処理46)。通常、rsTARTJ命令
を実行する初期状態では、全てアイドル状態になってい
るので、ここでは演算ユニット4aに命令を転送したこ
とにする。While the arithmetic units 48 to 4e are operating, the one distribution unit 3 to which the busy signal C is output next searches for an idle arithmetic unit to which the busy signal C is not output (45), and selects one of them. Then, the command received from the command memory 2 is transferred (process 46). Normally, in the initial state when the rsTARTJ instruction is executed, everything is in an idle state, so here it is assumed that the instruction is transferred to the arithmetic unit 4a.
第5図は、演算ユニット48〜4eが上記命令を受信し
た場合の動作を示したものである。分配ユニット3より
命令が転送されると(処理51)、ビジー信号Cをオン
しく処理52)、rENDJ命令かどうか判定しく処理
53)、rENDJ命令でないとき(処理53のN)、
その命令の命令コードに従った所定の演算処理を実行す
る(処理54)、いま、rsTARTJ命令であるので
、演算処理は行なわない。FIG. 5 shows the operation when the arithmetic units 48 to 4e receive the above instruction. When the instruction is transferred from the distribution unit 3 (process 51), turn on the busy signal C (process 52), determine whether it is an rENDJ instruction (process 53), if it is not an rENDJ instruction (N in process 53),
Predetermined arithmetic processing is executed according to the instruction code of the instruction (processing 54).Since this is an rsTARTJ instruction, no arithmetic processing is performed.
次に、その命令の伝達アドレスをアドレスバスnを介し
てアドレシングユニット1に順次転送する。Next, the transfer address of the instruction is sequentially transferred to the addressing unit 1 via the address bus n.
第3図に示したスタート命令ではroolJ、r008
J。In the start command shown in Figure 3, roolJ, r008
J.
roloJ、ro1匂の4アドレスが転送される(処理
55)。Four addresses, roloJ and ro1, are transferred (process 55).
この後、ビジー信号Cをオフしく処理56)、1つの命
令処理を終える。Thereafter, the busy signal C is turned off (56), and one command processing is completed.
一方、アドレシングユニットlは伝達アドレスが転送さ
れると内部のFIFOバッファに格納する一方(第4図
、処理47)、格納された伝達アドレスがある場合(処
理48のY)、ビジー信号すがオフになるごとに、その
アドレスを命令メモリ2に順次出力する。これにより、
命令メモリ2から対応する命令が読み出され、前記と同
様の処理が繰り返される(処理41〜処理48)。On the other hand, when the addressing unit l stores the transferred address in the internal FIFO buffer (FIG. 4, process 47), if there is a stored transferred address (Y in process 48), the busy signal is turned off. Each time, the address is sequentially output to the instruction memory 2. This results in
A corresponding instruction is read from the instruction memory 2, and the same process as described above is repeated (process 41 to process 48).
この処理により、第6図に示すように、rSTARTJ
命令実行後、アドレシングユニット1に転送された伝達
アドレスrooIJの命令rAIcJが読み出され、例
えば演算ユニット4aでその命令が実行され、その実行
後伝達アドレスr002Jがアドレシングユニット1に
転送される。次いで、アドレシングユニット1のFIF
Oからは同様にアドレスro08Jの命令「^ICJが
読み出され、演算ユニット4bで実行され、伝達アドレ
スrOQ9Jが転送される。このように伝達アドレスに
対応する命令が各演算ユニット48〜4eで分担しなが
ら並行して順次実行されるようになる。Through this process, as shown in FIG.
After the instruction is executed, the instruction rAIcJ of the transfer address rooIJ transferred to the addressing unit 1 is read out, and the instruction is executed in the arithmetic unit 4a, for example, and after the execution, the transfer address r002J is transferred to the addressing unit 1. Then, the FIF of addressing unit 1
Similarly, the instruction "^ICJ" at address ro08J is read from O, and executed by the arithmetic unit 4b, and the transfer address rOQ9J is transferred. In this way, the instruction corresponding to the transfer address is shared among the arithmetic units 48 to 4e. They will be executed in parallel and sequentially.
ここで、アドレスr003Jの命令rANDJが1回目
に読み出された場合、入カパラメータ数35が「2」な
ので、処理43において+1したアクティブカウンタ3
6と入カパラメータ数とが不一致になる。この場合、+
1したアクティブカウンタ36を命令メモリ2の元のア
ドレスro03Jに格納しく処理49)、その命令は実
行しない。アドレスro03Jは、第6図に示すようニ
、アドレス「002」ト「009」ノ命令rt、vcn
:より、2回伝達アドレスとして指示されている。Here, when the instruction rANDJ at address r003J is read out for the first time, the number of input parameters 35 is "2", so the active counter 3 is incremented by 1 in process 43.
6 and the number of input parameters do not match. In this case, +
The active counter 36 that has been set to 1 is stored in the original address ro03J of the instruction memory 2 (49), and the instruction is not executed. As shown in FIG. 6, address ro03J includes instructions rt, vcn for
: is specified as the twice-transmitted address.
このため、2回目にアドレスr003Jの命令が読み出
されたとき、前回アクティブカウンタ36を+1してい
るので+2となり、処理43において、両者が一致し、
このときその命令rADDJが実行される。Therefore, when the instruction at address r003J is read out for the second time, the active counter 36 has been incremented by 1 the previous time, so it becomes +2, and in process 43, the two match.
At this time, the instruction rADDJ is executed.
ところで、上記命令rADDJは、第2図の処理15に
相当する。前記したように処理15は処理11〜14を
全て実行した後でなければ実行できないものであるが、
前記命令rLVcJはその処理12と14とに対応して
いるので、その処理12.14がともに実行終了した後
、この命令rADDJが実行されることになる。By the way, the above instruction rADDJ corresponds to process 15 in FIG. 2. As mentioned above, process 15 can only be executed after all processes 11 to 14 have been executed.
Since the instruction rLVcJ corresponds to processes 12 and 14, this instruction rADDJ will be executed after both processes 12 and 14 have been executed.
こ九は、処理21の命令rADDJについても同様であ
り、第2図にはないが、入カパラメータ数が3以上の命
令においても、このように全ての入カパラメータが揃っ
てから実行されることになる。This is the same for the instruction rADDJ in process 21, and although it is not shown in Figure 2, even instructions with three or more input parameters are executed after all input parameters are collected. It turns out.
アドレシングユニット1はFIFOバッファ内に出力す
べき伝達アドレスがなくなったとき(処理48のN)、
動作を終える。一方、第3図に示したプログラムは最後
にrENDJ命令が実行されるようになる。演算ユニッ
1〜4a〜4eはrENDJ命令を受けたとき、エンド
信号dを出力する。このエンド信号dはオア回路6より
出力され、プログラムの終了が示される。When addressing unit 1 runs out of transfer addresses to be output in the FIFO buffer (N in process 48),
Finish the action. On the other hand, in the program shown in FIG. 3, the rENDJ instruction is executed at the end. When the arithmetic units 1 to 4a to 4e receive the rENDJ command, they output an end signal d. This end signal d is output from the OR circuit 6, indicating the end of the program.
以上のように本実施例では、プログラムの各スチップご
との命令において、入力プログラム数35と、その命令
の出カパラメータを入力する他の命令のアドレスである
伝達アドレス37とを指定しておくと共に、その命令の
メモリからの読み出し回数をカウントするアクティブカ
ウンタ36を設けている。また、複数の演算ユニット4
8〜4eを配設して、各命令を各演算ユニット48〜4
eで分担して実行する一方、各命令実行後に伝達アドレ
スを取り出し、そのアドレスの順に命令メモリ2より命
令を読み出す、そして、読み出した命令のアクティブカ
ウンタを+1した値と入カパラメータ数とを比較し1両
者が一致したときその命令を実行する一方、不一致のと
きは、アクティブカウンタを+1したその命令を命令メ
モリ2にもどしておくようにしている。これにより、各
命令は必ず必要な入カパラメータが揃ってから実行され
るようになり、正しい所定の手順で処理されるようにな
る。As described above, in this embodiment, in the instruction for each chip of the program, the number of input programs 35 and the transmission address 37 which is the address of another instruction to which the output parameter of the instruction is input are specified. , an active counter 36 is provided to count the number of times the instruction is read from the memory. In addition, a plurality of calculation units 4
8 to 4e are arranged, and each instruction is sent to each arithmetic unit 48 to 4.
After each instruction is executed, the transfer address is taken out, the instructions are read from the instruction memory 2 in the order of the address, and the active counter of the read instruction is incremented by 1 and the number of input parameters is compared. When the two match, the instruction is executed, while when they do not match, the active counter is incremented by one and the instruction is returned to the instruction memory 2. As a result, each command is executed after the necessary input parameters are collected, and the command is processed according to the correct predetermined procedure.
このように、各処理は複数の演算ユニットで分担されて
並行して実行されるので、プログラム全体の処理時間が
短縮される。この場合、従来のプログラムコントローラ
に対して1分配ユニット3を配設し、演算ユニットを複
数にしただけなので。In this way, each process is divided among a plurality of arithmetic units and executed in parallel, so that the processing time of the entire program is shortened. In this case, one distribution unit 3 is installed in the conventional program controller, and the number of calculation units is increased to multiple.
プログラムコントローラ自体を複数設置する場合のよう
に、コストが高く大形になるようなことはない。また、
演算ユニット48〜4eは高速のものでなく、従来のも
のを使用することができる。Unlike the case where multiple program controllers are installed, the cost and size are not high and large. Also,
The arithmetic units 48 to 4e are not high-speed ones, but conventional ones can be used.
なお、本実施例では、演算ユニットは48〜4eの5個
配設したが、任意の個数で構成できるのは当然である。In this embodiment, five arithmetic units 48 to 4e are provided, but it goes without saying that any number of arithmetic units may be used.
例えば、演算ユニットを1個にした場合においても、第
2図に示した処理を行なうプログラムを作成する場合、
従来はデータの流れに従って処理12.14の後に処理
15を配置しなければならなかったが、第3図に示すよ
うにその配置が前後しても正しぐ処理されるようになる
。For example, when creating a program that performs the processing shown in Figure 2 even when there is only one arithmetic unit,
Conventionally, processing 15 had to be arranged after processing 12 and 14 according to the data flow, but as shown in FIG. 3, the processing can be performed correctly even if the arrangement is forward or backward.
また、アドレシングユニット、分配ユニットは、LSI
化すれば構成が簡単になり、演算ユニツI−に使用され
るプロセッサも、最近では安価になってきており、この
ようなプロセッサを複数台用いることにより、コストも
低下できる。In addition, the addressing unit and distribution unit are LSI
The processor used in the arithmetic unit I- has recently become inexpensive, and by using a plurality of such processors, the cost can be reduced.
[発明の効果]
以上のように本発明によれば、複数の命令を複数の演算
ユニットで並行処理するようにしたので、高速処理が可
能になる一方、各命令において、入カパラメータ数とそ
の命令の出カパラメータを入力する他の命令のアドレス
である伝達アドレスとを指定しておくと共に、その命令
のメモリからの読み出し回数をカウントするアクティブ
カウンタを設けることにより、命令メモリより各命令を
読み出したとき、その命令が入カパラメータの揃ってい
る実行可能なものかどうか判別できるようにし、実行可
能なもののみ演算ユニットに分配して実行させるように
したので、所定の手順で正しく処理される。また、装置
構成としては、演算ユニットを複数にして1分配ユニッ
I−を配設しただけなので、小形にしかも低コストで構
成できる。[Effects of the Invention] As described above, according to the present invention, multiple instructions are processed in parallel by multiple arithmetic units, so high-speed processing is possible. Each instruction can be read from the instruction memory by specifying a transmission address, which is the address of another instruction that inputs the output parameters of the instruction, and by providing an active counter that counts the number of times the instruction is read from the memory. When the instruction is executed, it can be determined whether the instruction is executable with all the input parameters, and only executable instructions are distributed to the processing units for execution, so that the instructions are processed correctly according to the predetermined steps. . In addition, since the device configuration includes a plurality of arithmetic units and only one distribution unit I-, the device can be configured in a small size and at low cost.
第1図は本発明の一実施例に係るプログラマブルコント
ローラのブロック構成図、第2図は第1図で実行される
演算処理の一例を示すブロック構成図、第3図は第2図
の処理を行なうためのプログラムの一例を示す説明図、
第4図は命令の読み出しと演算ユニットへの分配動作を
示すフローチャート、第5図は演算ユニットの動作を示
すフローチャート、第6図は第2図の演算処理の実行手
順を示す説明図である。
1・・・アドレシングユニット、2・・・命令メモリ、
3・・・分配ユニット、4a〜4e・・・演算ユニット
。
5・・・データメモリ、32・・・命令コード、33・
・・入カパラメータアドレス、34・・・出カパラメー
タアドレス、35・・・入カパラメータ数、36・・・
アクティブカウンタ、37・・・伝達アドレス。
代理人 弁理士 紋 1) 誠 □第1図
第3図
第4図
第5図FIG. 1 is a block configuration diagram of a programmable controller according to an embodiment of the present invention, FIG. 2 is a block configuration diagram showing an example of the arithmetic processing performed in FIG. 1, and FIG. An explanatory diagram showing an example of a program for carrying out the
FIG. 4 is a flow chart showing the operation of reading instructions and distributing them to the arithmetic units, FIG. 5 is a flow chart showing the operation of the arithmetic units, and FIG. 6 is an explanatory diagram showing the execution procedure of the arithmetic processing of FIG. 2. 1...Addressing unit, 2...Instruction memory,
3... Distribution unit, 4a-4e... Arithmetic unit. 5...Data memory, 32...Instruction code, 33.
...Input parameter address, 34...Output parameter address, 35...Number of input parameters, 36...
Active counter, 37...Transmission address. Agent Patent Attorney Crest 1) Makoto □Figure 1 Figure 3 Figure 4 Figure 5
Claims (1)
コードと、これら演算処理における入力パラメータおよ
び出力パラメータを格納する入力パラメータアドレスお
よび出力パラメータアドレスと、入力パラメータ数と、
命令のメモリからの読み出し回数を計数するためのアク
ティブカウンタと、その命令の出力パラメータを入カパ
ラメータとする他の命令のアドレスを示す伝達アドレス
とにより構成すると共に、その命令を用いて作成したプ
ログラムを格納する命令メモリと、伝達アドレスに従っ
てその命令メモリより各命令を読み出すアドレシングユ
ニットと、その読み出した各命令の前記入力パラメータ
数と前記アクティブカウンタとに基づいてその命令の実
行可否を判定する実行判定手段と、実行不可と判定され
たとき、前記アクティブカウンタに+1加えてその命令
を前記命令メモリの元のアドレスに格納しておくアクテ
ィブカウンタ書換手段と、前記命令に従って所定の演算
処理を実行したのち、その実行した命令の前記伝達アド
レスを前記アドレシングユニットに転送する複数の演算
ユニットと、その演算ユニットの演算処理における入力
パラメータおよび出力パラメータを格納するデータメモ
リと、前記実行判定手段により実行可と判定された各命
令を前記複数の演算ユニットに分配すると共に、前記ア
ドレシングユニットに次の伝達アドレスに従って前記命
令メモリより命令を読み出す処理の実行を指令する分配
ユニットとを備え、複数の命令を並列処理することを特
徴とするプログラマブルコントローラ。Each instruction of the problem-oriented language is defined as an instruction code for executing various arithmetic operations, an input parameter address and an output parameter address for storing input parameters and output parameters in these arithmetic operations, and the number of input parameters.
A program that is composed of an active counter that counts the number of times an instruction is read from memory, and a transmission address that indicates the address of another instruction whose input parameter is the output parameter of that instruction, and that is created using that instruction. an addressing unit that reads out each instruction from the instruction memory according to the transmission address; and an execution determination unit that determines whether or not the instruction can be executed based on the number of input parameters and the active counter of each read instruction. means for rewriting an active counter for adding 1 to the active counter and storing the instruction at the original address of the instruction memory when it is determined that the instruction cannot be executed; , a plurality of arithmetic units that transfer the transmission address of the executed instruction to the addressing unit, a data memory that stores input parameters and output parameters in arithmetic processing of the arithmetic units, and a judgment that the execution is executable by the execution judgment means. a distribution unit that distributes each instruction issued to the plurality of arithmetic units and instructs the addressing unit to execute a process of reading an instruction from the instruction memory according to the next transmission address, and processes the plurality of instructions in parallel. A programmable controller characterized by:
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2805287A JPS63196903A (en) | 1987-02-12 | 1987-02-12 | Programmable controller |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2805287A JPS63196903A (en) | 1987-02-12 | 1987-02-12 | Programmable controller |
Publications (1)
Publication Number | Publication Date |
---|---|
JPS63196903A true JPS63196903A (en) | 1988-08-15 |
Family
ID=12237984
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2805287A Pending JPS63196903A (en) | 1987-02-12 | 1987-02-12 | Programmable controller |
Country Status (1)
Country | Link |
---|---|
JP (1) | JPS63196903A (en) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH03156604A (en) * | 1989-11-15 | 1991-07-04 | Matsushita Electric Works Ltd | Programmable controller |
-
1987
- 1987-02-12 JP JP2805287A patent/JPS63196903A/en active Pending
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH03156604A (en) * | 1989-11-15 | 1991-07-04 | Matsushita Electric Works Ltd | Programmable controller |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JPS6220589B2 (en) | ||
JPH01237864A (en) | Dma transfer controller | |
JP2594600B2 (en) | Single chip microcomputer | |
JPS63196903A (en) | Programmable controller | |
JP2970082B2 (en) | Virtual intercluster communication processor | |
EP0376003A2 (en) | Multiprocessing system with interprocessor communications facility | |
JP3982077B2 (en) | Multiprocessor system | |
JPH025104A (en) | Arithmetic processing unit | |
JPS6049464A (en) | Inter-processor communication system of multi-processor computer | |
JP2744152B2 (en) | Data driven data processor | |
JPH03191459A (en) | Interruption response processor | |
JPS5942331B2 (en) | Prosetsusasouchinoseigiohoshiki | |
JPH05241986A (en) | Input/output instruction retrying system | |
JPH02311903A (en) | Programmable controller | |
JPH0245427B2 (en) | ENHOKANSHISEIGYOSOCHI | |
JPS63261431A (en) | Merge process control system | |
JPH05233525A (en) | Input/otuput processor | |
JPH0375832A (en) | Virtual machine control system | |
JPH05282243A (en) | Bus master device and electronic equipment using the same | |
JPS5953902A (en) | Control device | |
JPH01234957A (en) | Method and device for controlling dma | |
JPH08212082A (en) | Data processor and interruption control method | |
JPH01261763A (en) | Dma transfer control device | |
JPH0812609B2 (en) | Microprocessor | |
JPH01291358A (en) | Multiple language processing system |