JP4288700B2 - Programmable controller - Google Patents
Programmable controller Download PDFInfo
- Publication number
- JP4288700B2 JP4288700B2 JP2003414131A JP2003414131A JP4288700B2 JP 4288700 B2 JP4288700 B2 JP 4288700B2 JP 2003414131 A JP2003414131 A JP 2003414131A JP 2003414131 A JP2003414131 A JP 2003414131A JP 4288700 B2 JP4288700 B2 JP 4288700B2
- Authority
- JP
- Japan
- Prior art keywords
- block
- program
- unit
- data
- update
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Expired - Fee Related
Links
Images
Landscapes
- Programmable Controllers (AREA)
Description
本発明は、プログラマブルコントローラに関し、特にIOデータ更新処理時間を短くすることができるプログラマブルコントローラに関するものである。 The present invention relates to a programmable controller, and more particularly to a programmable controller that can shorten the IO data update processing time.
本発明が前提とするようなプログラマブルコントローラに関連する先行技術文献として、次のようなものが挙げられる。 The following are examples of prior art documents related to the programmable controller as assumed by the present invention.
図7にプログラマブルコントローラの構成を示す。プログラマブルコントローラはCPUモジュール4および複数のIOモジュール5で構成され、これらのモジュールはバス7で接続されている。高機能IOモジュール6は演算機能を有するIOモジュールであり、必要に応じて使用される。
FIG. 7 shows the configuration of the programmable controller. The programmable controller includes a
IOモジュール5(または高機能IOモジュール6)はセンサ等(図示せず)から信号を取りこみ、またアクチュエータ(図示せず)に制御信号を出力する。CPUモジュール4は、その内部に格納されたプログラムを実行してIOモジュール5のデータを更新する。
The IO module 5 (or the high-function IO module 6) takes in a signal from a sensor or the like (not shown) and outputs a control signal to an actuator (not shown). The
図8にCPUモジュール4の動作を示す。CPUモジュール4の動作は命令実行処理部が行うプログラム実行処理とIOデータ更新処理部が実行するIOデータ更新処理に分割することができる。先ず内部に格納されたプログラムを実行するプログラム実行処理が行われ、その後バス7を介してIOモジュール5(または高機能IOモジュール6)に対してデータの読み込みと書き出しを行うIOデータ更新処理が行われる。
FIG. 8 shows the operation of the
このプログラム実行処理とIOデータ更新処理は繰り返し実行される。この繰り返しの1つを1スキャンと言う。また、プログラムは処理単位毎にプログラムブロックに分割されており、このプログラムブロック毎に起動と停止ができるようになっている。 This program execution process and IO data update process are repeatedly executed. One of these repetitions is called one scan. The program is divided into program blocks for each processing unit, and can be started and stopped for each program block.
IOデータ更新処理はIO更新テーブルを用いて行われる。図9にIO更新テーブルの構成を示す。IO更新テーブル8にはプログラム全体で使用されるIOモジュールの番号81と、各IOモジュールに含まれるIOチャンネルの番号82が含まれる。IOデータ更新処理は、スキャン毎にこのIO更新テーブル8で指定されるIOモジュールおよびIOチャンネルのデータを順番に更新する。
The IO data update process is performed using an IO update table. FIG. 9 shows the configuration of the IO update table. The IO update table 8 includes an
しかし、このようなプログラマブルコントローラには次のような課題があった。IOデータ更新処理は、実際にIOデータが更新されたかどうかに関わらず、IO更新テーブル8にその番号が格納されている全てのIOモジュールおよびIOチャンネルに対して、スキャン毎にデータ更新処理を実行する。 However, such a programmable controller has the following problems. The IO data update processing is executed for every scan for all IO modules and IO channels whose numbers are stored in the IO update table 8 regardless of whether or not the IO data is actually updated. To do.
IO更新テーブル8にはプログラムでアクセスされる可能性のある全てのIOモジュールおよびIOチャンネルの番号が格納されている。そのため、そのスキャンでデータが更新されなかったIOモジュールおよびIOチャンネルに対してもデータ更新処理を実行する。その結果、常に最大のデータがバス7に転送されるためデータ更新処理に時間がかかり、スキャン時間が長くなってしまうという課題があった。 The IO update table 8 stores the numbers of all IO modules and IO channels that may be accessed by the program. Therefore, the data update process is executed also for the IO modules and IO channels whose data has not been updated by the scan. As a result, since the maximum data is always transferred to the bus 7, there is a problem that it takes time to update the data and the scan time becomes long.
従って本発明が解決しようとする課題は、データが更新されないIOのデータ更新処理を行わないことにより、バスの転送量を減らしてスキャン時間を短縮することができるプログラマブルコントローラを提供することにある。 Therefore, the problem to be solved by the present invention is to provide a programmable controller capable of reducing the bus transfer amount and the scan time by not performing the data update process of the IO whose data is not updated.
このような課題を達成するために、本発明のうち請求項1記載の発明は、プログラムを複数のプログラムブロックに分割し、これらのプログラムブロックを実行した後にIOデータの更新処理を行う操作を繰り返すプログラマブルコントローラにおいて、
全ての前記プログラムブロックのいずれかでIOデータが更新される可能性のあるIO単位の識別記号が格納される全体IO更新テーブルと、前記全体IO更新テーブル内の前記IO単位の識別記号毎に設けられ、起動時に第1の値にセットされるカウンタと、前記プログラムブロック毎に設けられ、そのプログラムブロックでIOデータが更新される可能性のあるIO単位の識別記号が格納されるブロックIO更新テーブルと、前記プログラムブロックを順番に実行し、前記プログラムブロックを起動するときに、そのプログラムブロックの前記ブロックIO更新テーブルを参照してこのブロックIO更新テーブルに格納された前記IO単位の識別記号に対応する前記カウンタに第2の値を加算し、前記プログラムブロックを停止するときに、そのプログラムブロックの前記ブロックIO更新テーブルを参照してこのブロックIO更新テーブルに格納された前記IO単位の識別記号に対応する前記カウンタから前記第2の値を減算する命令実行処理部と、前記カウンタを参照し、このカウンタが前記第1の値でないときにそのカウンタに対応するIO単位のIOデータ更新処理を実行し、前記カウンタの値が前記第1の値であるときに、そのカウンタに対応するIO単位のIOデータ更新処理を実行しないIOデータ更新処理部とを備えたものである。IO更新処理の時間を短縮できる。
In order to achieve such a problem, the invention according to
An overall IO update table storing an IO unit identification symbol in which IO data may be updated in any one of the program blocks, and provided for each IO unit identification symbol in the entire IO update table And a counter that is set to the first value at the time of startup, and a block IO update table that is provided for each program block and stores an IO unit identification symbol that may update IO data in the program block When the program block is executed in order and the program block is activated, the block IO update table of the program block is referenced to correspond to the identification unit of the IO unit stored in the block IO update table When adding a second value to the counter to stop the program block An instruction execution processing unit for subtracting the second value from the counter corresponding to the identification symbol of the IO unit stored in the block IO update table with reference to the block IO update table of the program block; Referring to the counter, when the counter is not the first value, the IO data update process corresponding to the counter is executed, and when the counter value is the first value, And an IO data update processing unit that does not execute the corresponding IO data update processing of the IO unit. The time for IO update processing can be shortened.
請求項2記載の発明は、請求項1記載の発明において、前記カウンタを前記全体IO更新テーブルに内蔵するようにしたものである。構成が簡単になる。 According to a second aspect of the invention, in the first aspect of the invention, the counter is built in the overall IO update table. Configuration is simplified.
請求項3記載の発明は、請求項1若しくは請求項2記載の発明において、前記IO単位はIOモジュールに含まれるIOチャンネル単位であることを特徴としたものである。 According to a third aspect of the invention, in the first or second aspect of the invention, the IO unit is an IO channel unit included in an IO module .
請求項4記載の発明は、請求項1若しくは請求項2記載の発明において、前記IO単位はIOモジュール単位であることを特徴としたものである。 According to a fourth aspect of the invention, in the first or second aspect of the invention, the IO unit is an IO module unit.
請求項5記載の発明は、複数のプログラムブロックに分割され、これらのプログラムブロックを実行した後にIOデータの更新処理を行う操作を繰り返すプログラマブルコントローラにおいて、
全ての前記プログラムブロックのいずれかでIOデータが更新される可能性のあるIO単位の識別記号が格納される全体IO更新テーブルと、前記全体IO更新テーブル内の前記IO単位の識別記号毎に設けられるフラグと、前記プログラムブロック毎に設けられ、そのプログラムブロックでIOデータが更新される可能性のあるIO単位の識別記号が格納されるブロックIO更新テーブルと、前記プログラムブロックを実行する前に全ての前記フラグを第1の値にし、前記プログラムブロックを実行するときに、そのプログラムブロックの前記ブロックIO更新テーブルを参照してこのブロックIO更新テーブルに格納された前記IO単位の識別記号に対応する前記フラグを第2の値にする命令実行処理部と、前記フラグを参照し、このフラグが前記第2の値であるときにそのフラグに対応するIO単位のIOデータ更新処理を実行し、前記フラグの値が前記第1の値であるときに、そのフラグに対応するIO単位のIOデータ更新処理を実行しないIOデータ更新処理部とを備えたものである。IO更新処理の時間を短縮できる。
The invention according to
An entire IO update table storing an IO unit identification symbol in which IO data may be updated in any of the program blocks, and provided for each IO unit identification symbol in the entire IO update table Flag, a block IO update table that is provided for each program block and stores an IO unit identification symbol in which IO data may be updated in the program block, and all before executing the program block When the program block is executed with the flag set to the first value, the block IO update table of the program block is referenced to correspond to the identification unit of the IO unit stored in the block IO update table An instruction execution processing unit that sets the flag to a second value and the flag are referred to. When the flag is the second value, an IO unit IO data update process corresponding to the flag is executed. When the flag value is the first value, the IO unit corresponding to the flag is updated. And an IO data update processing unit that does not execute the IO data update process. The time for IO update processing can be shortened.
請求項6記載の発明は、請求項5記載の発明において、前記フラグを前記全体IO更新テーブルに内蔵するようにしたものである。構成が簡単になる。 According to a sixth aspect of the present invention, in the fifth aspect of the present invention, the flag is incorporated in the overall IO update table. Configuration is simplified.
請求項7記載の発明は、請求項5若しくは請求項6記載の発明において、前記IO単位はIOモジュールに含まれるIOチャンネル単位であることを特徴としたものである。
The invention according to claim 7 is the invention according to
請求項8記載の発明は、請求項5若しくは請求項6記載の発明において、前記IO単位はIOモジュール単位であることを特徴としたものである。
The invention according to claim 8 is the invention according to
請求項9記載の発明は、請求項5若しくは請求項8いずれかに記載の発明において、前記プログラムブロックは、前記IO単位毎に分割するようにしたものである。データ更新するIO単位の数を削減することができる。
The invention according to claim 9 is the invention according to
以上説明したことから明らかなように、本発明によれば次のような効果がある。
請求項1,2,3および請求項4の発明によれば、IO単位毎にカウンタを設け、プログラムブロックを起動したときにこのカウンタに第2の値を加算し、プログラムブロックを停止したときにこのカウンタから第2の値を減算するようにして、カウンタの値が第1の値でないときのみ、そのカウンタに対応するIOのIOデータ更新処理を行うようにした。
As is apparent from the above description, the present invention has the following effects.
According to the first, second, third, and fourth aspects of the present invention, a counter is provided for each IO unit, and when the program block is started, the second value is added to the counter, and when the program block is stopped. The second value is subtracted from the counter so that the IO data update process of the IO corresponding to the counter is performed only when the counter value is not the first value.
停止しているプログラムブロックで使用しているIO単位のIOデータ更新処理を行わないようにすることにより、データ更新するIO単位の数を削減することができる。そのため、バスのデータ転送量を減らして更新処理に要する時間を短くすることができ、スキャン時間を短縮することができるという効果がある。 By not performing the IO data update processing for the IO units used in the stopped program blocks, the number of IO units for data update can be reduced. For this reason, the amount of data transferred on the bus can be reduced, the time required for the update process can be shortened, and the scan time can be shortened.
請求項5、6,7,8および請求項9の発明によれば、IO単位毎にフラグを設け、スキャンの最初にこのフラグを第1の値にして、プログラムブロックを実行するときにそのフラグを第2の値にするようにして、フラグが第2の値のIO単位のみ、そのフラグに対応するIO単位のIOデータ更新処理を行うようにした。
According to the fifth, sixth, seventh, eighth, and ninth aspects of the present invention, a flag is provided for each IO unit, and the flag is set to the first value at the beginning of scanning, and the flag is executed when the program block is executed. Is set to the second value, and the IO data update process of the IO unit corresponding to the flag is performed only for the IO unit whose flag is the second value.
実行しないプログラムブロックで使用しているIO単位のIOデータ更新処理を行わないようにすることにより、データ更新するIO単位の数を削減することができる。そのため、バスのデータ転送量を減らして更新処理に要する時間を短くすることができ、スキャン時間を短縮することができるという効果がある。また、カウンタを使用する場合に比べて構成が簡単になるという効果もある。 By not performing the IO data update processing for the IO units used in the program blocks that are not executed, the number of IO units for data update can be reduced. For this reason, the amount of data transferred on the bus can be reduced, the time required for the update process can be shortened, and the scan time can be shortened. In addition, there is an effect that the configuration is simplified compared to the case where a counter is used.
さらに、プログラムブロックをIO単位毎に分割することによって、複数のプログラムブロックでデータ更新するIO単位の数を減らすことができるので、データ更新に要する時間をさらに削減することができるという効果もある。 Furthermore, by dividing the program block for each IO unit, the number of IO units for updating data in a plurality of program blocks can be reduced, so that the time required for data update can be further reduced.
以下本発明を図面を用いて詳細に説明する。なお、背景技術で説明したように、この実施例でもプログラムは処理単位毎にプログラムブロックに分割され、これらのプログラムブロックは個々に起動・停止ができるようになっている。また、この実施例でも、図8に示すように命令実行処理部でプログラム実行処理を行った後にIOデータ更新処理部でIOデータ更新処理を行うスキャンを繰り返す。 Hereinafter, the present invention will be described in detail with reference to the drawings. As described in the background art, also in this embodiment, the program is divided into program blocks for each processing unit, and these program blocks can be started and stopped individually. Also in this embodiment, as shown in FIG. 8, after the program execution process is performed by the instruction execution processing unit, the scan for performing the IO data update process by the IO data update processing unit is repeated.
さらに、この実施例では1つの全体IO更新テーブルと、プログラムブロック毎に設けられるブロックIO更新テーブルを用いてIOデータ更新処理を実行する。 Further, in this embodiment, IO data update processing is executed using one overall IO update table and a block IO update table provided for each program block.
図1は全体IO更新テーブルの構成を示す図である。この全体IO更新テーブルはプログラム全体でアクセスする可能性のあるIOモジュールおよびIOチャンネルの番号および各IOチャンネル番号に付随するカウンタが格納されている。IOモジュール番号、IOチャンネル番号は識別記号として用いている。 FIG. 1 is a diagram showing the configuration of the entire IO update table. The entire IO update table stores IO modules and IO channel numbers that may be accessed by the entire program, and counters associated with each IO channel number. The IO module number and IO channel number are used as identification symbols.
図1において、1は全体IO更新テーブルである。11はIOモジュールの番号であり,プログラム全体でアクセスする可能性のあるIOモジュールの番号が格納されている。図1ではIOモジュール1からnまでの番号が格納されている。
In FIG. 1, 1 is an overall IO update table.
12はIOチャンネルの番号であり、各IOモジュールに含まれ、かつプログラム全体でアクセスする可能性のあるIOチャンネル番号が格納されている。図1ではIOモジュール2について、1からmまでのIOチャンネル番号が格納されている。
なお、この図ではIOモジュール2に含まれるIOチャンネルの番号しか記載されていないが、実際にはIOモジュール1およびIOモジュール3〜nについても、そのIOモジュールに含まれ、かつプログラム全体でアクセスする可能性のあるIOチャンネルの番号が格納される。13はカウンタであり、各IOチャンネル番号毎に設けられる。図2には記載されていないIOチャンネル番号についても、それぞれカウンタが設けられる。
In this figure, only the number of the IO channel included in the
このカウンタの値を調べることにより、そのIOチャンネルがアクセスされたかどうかを知ることができる。なお、このカウンタ13は全体のプログラムが起動するときに、ゼロに初期化されるものとする。
By examining the value of this counter, it is possible to know whether or not the IO channel has been accessed. This
図2に、各プログラムブロック毎に設けられるブロックIO更新テーブルの構成を示す。このブロックIO更新テーブルには、そのプログラムブロックでアクセスされる可能性のある全てのIOモジュールおよびIOチャンネルの番号が格納されている。 FIG. 2 shows a configuration of a block IO update table provided for each program block. This block IO update table stores the numbers of all IO modules and IO channels that may be accessed in the program block.
図2において、2はブロックIO更新テーブルである。21はIOモジュールの番号であり、そのプログラムブロックでアクセスする可能性があるIOモジュールの番号が格納されている。図2では、IOモジュール1〜pの番号が格納されている。
In FIG. 2, 2 is a block IO update table.
22はIOチャンネルの番号であり、各IOモジュールに含まれ、かつそのプログラムブロックでアクセスする可能性のあるIOチャンネルの番号が格納されている。図2では、IOモジュール2について、IOチャンネル1〜qの番号が格納されている。
なお、図2には記載されていないが、IOモジュール1,3〜pについても、そのIOモジュールに含まれ、かつそのプログラムブロックでアクセスされる可能性のあるIOチャンネルの番号が格納される。
Although not shown in FIG. 2, the numbers of IO channels that are included in the IO module and may be accessed by the program block are also stored for the
図3に各プログラムブロックが起動、停止するときの処理のフローチャートを示す。図3において、(A)はプログラムブロックが起動するとき、(B)は停止するときのフローである。起動するときは、そのプログラムブロックに属するブロックIO更新テーブル2を参照して、登録されている全てのIOチャンネルについて、全体更新テーブルのカウンタ13に1を加算する。
FIG. 3 shows a flowchart of processing when each program block is started and stopped. In FIG. 3, (A) is a flow when the program block is activated, and (B) is a flow when it is stopped. When starting, the block IO update table 2 belonging to the program block is referred to, and 1 is added to the
プログラムブロックを停止するときは、そのプログラムブロックに属するブロックIO更新テーブル2を参照して、登録されている全てのIOチャンネルについて、全体更新テーブルのカウンタ13から1を減算する。
When stopping a program block, 1 is subtracted from the
すなわち、プログラムブロックが起動すると、そのプログラムブロックでアクセスする可能性のあるIOチャンネルに付属するカウンタ13のカウント値が1増加し、プログラムブロックが停止すると1減少する。
That is, when the program block is activated, the count value of the
1つのIOチャンネルは複数のプログラムブロックでアクセスされる場合があるので、カウンタ値がゼロでないとそのIOチャンネルはどれかのプログラムブロックでアクセスされている可能性があり、ゼロであると全てのプログラムブロックでアクセスされている可能性がないことがわかる。 Since one IO channel may be accessed by a plurality of program blocks, if the counter value is not zero, the IO channel may be accessed by any program block, and if it is zero, all programs will be accessed. It can be seen that there is no possibility of being accessed in blocks.
図4はIOデータ更新処理のフローを示すフローチャートである。図4において、(4−1)でIOチャンネルに付属しているカウンタ13の値がゼロであるかをチェックする。そして、ゼロでないと(4−2)でそのIOチャンネルのデータ更新処理を行い、ゼロであると(4−3)でそのIOチャンネルのデータ更新処理を行わない。そして、(4−4)で全てのカウンタ13をチェックしたかを確認し、チェックしていれば終了し、チェックしていないカウンタ13があると、(4−1)に戻る。
FIG. 4 is a flowchart showing the flow of IO data update processing. In FIG. 4, it is checked in (4-1) whether the value of the
前述したように、アクセスされる可能性のないIOチャンネルに付属するカウンタのカウント値はゼロになる。従って、図4フローチャートに示す処理を行うことにより、アクセスする可能性のないIOチャンネルのデータ更新処理を行わないようにすることができる。そのため、データ転送量を削減することができ、スキャン時間を短縮することが可能になる。なお、カウンタの初期値はゼロでなくてもよく、加算、減算する値は1でなくてもよい。 As described above, the count value of the counter attached to the IO channel that cannot be accessed becomes zero. Therefore, by performing the process shown in the flowchart of FIG. 4, it is possible to prevent the data update process of the IO channel that is not likely to be accessed. Therefore, the data transfer amount can be reduced, and the scan time can be shortened. Note that the initial value of the counter may not be zero, and the value to be added or subtracted may not be 1.
図5および図6の本発明の他の実施例を示す。図5は全体IO更新テーブルの構成である。なお、図1と同じ要素には同一符号を付し、説明を省略する。図5において、3は全体IO更新テーブルであり、IOモジュールの番号11およびIOチャンネルの番号12が格納されている。
5 and 6 show another embodiment of the present invention. FIG. 5 shows the configuration of the entire IO update table. In addition, the same code | symbol is attached | subjected to the same element as FIG. 1, and description is abbreviate | omitted. In FIG. 5, reference numeral 3 denotes an entire IO update table, in which an
31はフラグであり、図1実施例のカウンタ13の代わりに各IOチャンネルに設けられる。このフラグ31は1ビットのレジスタであり、オンとオフの2つの値を取る。なお、ブロックIO更新テーブルは図2と同じなので、説明を省略する。
図6にこの実施例の動作を説明するためのフローチャートを示す。このフローチャートは1スキャンの動作を表したものである。最初に(6−1)で全てのフラグ31をオフにする。次に、(6−2)でプログラム実行処理を行う。
FIG. 6 shows a flowchart for explaining the operation of this embodiment. This flowchart represents the operation of one scan. First, all the
このとき、各プログラムブロック中でそのプログラムブロックのブロックIO更新テーブルを参照して、そのブロック更新テーブルに登録されているIOチャンネルに付属するフラグ31をオンにする。また、新たにプログラムブロックが起動されたときも、同様にフラグ31をオンにする。
At this time, referring to the block IO update table of the program block in each program block, the
プログラムの実行処理が終了すると、IOデータ更新処理を行う。(6−3)で全体更新テーブル3のフラグ31がオンになっているかを順番に調べて、オンであれば(6−4)でそのチャンネルのIOデータ更新処理を行い、オフであると(6−5)で更新処理を行わない。
When the program execution process ends, the IO data update process is performed. In (6-3), it is checked in turn whether the
次に、(6−6)で全てのフラグ31をチェックしたかを調べて、チェックしていないフラグがあると(6−3)に戻り、全てのフラグ31がチェック済みであるとIOデータ更新処理を終了して、次のスキャンを実行する。このようにすることにより、アクセスする可能性のないIOチャンネルの更新処理を行わないようにすることができるので、スキャン時間を短縮することができる。なお、フラグのオン、オフは逆であってもよい。
Next, it is checked whether or not all the
なお、これらの実施例では複数のプログラムブロックがIOチャンネルを共用していると、共用している全てのプログラムブロックが停止しないとそのIOチャンネルのデータ更新処理が行われることになる。従って、IOチャンネル毎にプログラムブロックを作成して、複数のプログラムブロックがIOチャンネルを共用しないようにした方がIO更新処理の時間を短縮することができる。 In these embodiments, if a plurality of program blocks share an IO channel, the data update process for that IO channel is performed unless all the shared program blocks stop. Therefore, it is possible to reduce the time for IO update processing by creating a program block for each IO channel so that a plurality of program blocks do not share the IO channel.
なお、これらの実施例ではIOチャンネル毎にカウンタ13あるいはフラグ31を設けるようにしたが、IOモジュールあるいはIO端子毎、あるいはその他のIO単位毎にカウンタ13あるいはフラグ31を設けるようにしてもよい。
In these embodiments, the
1、3 全体IO更新テーブル
11、21 IOモジュールの番号
12、22 IOチャンネルの番号
13 カウンタ
2 ブロックIO更新テーブル
31 フラグ
1, 3 Overall IO update table 11, 21
Claims (9)
全ての前記プログラムブロックのいずれかでIOデータが更新される可能性のあるIO単位の識別記号が格納される全体IO更新テーブルと、
前記全体IO更新テーブル内の前記IO単位の識別記号毎に設けられ、起動時に第1の値にセットされるカウンタと、
前記プログラムブロック毎に設けられ、そのプログラムブロックでIOデータが更新される可能性のあるIO単位の識別記号が格納されるブロックIO更新テーブルと、
前記プログラムブロックを順番に実行し、前記プログラムブロックを起動するときに、そのプログラムブロックの前記ブロックIO更新テーブルを参照してこのブロックIO更新テーブルに格納された前記IO単位の識別記号に対応する前記カウンタに第2の値を加算し、前記プログラムブロックを停止するときに、そのプログラムブロックの前記ブロックIO更新テーブルを参照してこのブロックIO更新テーブルに格納された前記IO単位の識別記号に対応する前記カウンタから前記 第2の値を減算する命令実行処理部と、
前記カウンタを参照し、このカウンタが前記第1の値でないときにそのカウンタに対応するIO単位のIOデータ更新処理を実行し、前記カウンタの値が前記第1の値であるときに、そのカウンタに対応するIO単位のIOデータ更新処理を実行しないIOデータ更新処理部と、
を備えたことを特徴とするプログラマブルコントローラ。 In a programmable controller that divides a program into a plurality of program blocks and repeats an operation of updating IO data after executing these program blocks,
An overall IO update table storing an IO unit identification symbol in which IO data may be updated in any of the program blocks;
A counter that is provided for each IO unit identification symbol in the overall IO update table and is set to a first value at startup;
A block IO update table that is provided for each program block and stores an IO unit identification symbol in which IO data may be updated in the program block;
When the program blocks are executed in order and the program block is activated, the block IO update table of the program block is referred to and the IO unit identification symbol stored in the block IO update table is stored. When a second value is added to the counter and the program block is stopped, the block IO update table of the program block is referred to, and the IO unit identification symbol stored in the block IO update table is corresponded An instruction execution processing unit for subtracting the second value from the counter;
Referring to the counter, when the counter is not the first value, an IO data update process corresponding to the counter is executed, and when the counter value is the first value, the counter An IO data update processing unit that does not execute IO data update processing in IO units corresponding to
A programmable controller comprising:
全ての前記プログラムブロックのいずれかでIOデータが更新される可能性のあるIO単位の識別記号が格納される全体IO更新テーブルと、
前記全体IO更新テーブル内の前記IO単位の識別記号毎に設けられるフラグと、
前記プログラムブロック毎に設けられ、そのプログラムブロックでIOデータが更新される可能性のあるIO単位の識別記号が格納されるブロックIO更新テーブルと、
前記プログラムブロックを実行する前に全ての前記フラグを第1の値にし、前記ブロックプログラムを実行するときに、そのプログラムブロックの前記ブロックIO更新テーブルを参照してこのブロックIO更新テーブルに格納された前記IO単位の識別記号に対応する前記フラグを第2の値にする命令実行処理部と、
前記フラグを参照し、このフラグが前記第2の値であるときにそのフラグに対応するIO単位のIOデータ更新処理を実行し、前記フラグの値が前記第1の値であるときに、そのフラグに対応するIO単位のIOデータ更新処理を実行しないIOデータ更新処理部と、
を備えたことを特徴とするプログラマブルコントローラ。 In a programmable controller that is divided into a plurality of program blocks and repeats an operation of performing update processing of IO data after executing these program blocks,
An overall IO update table storing an IO unit identification symbol in which IO data may be updated in any of the program blocks;
A flag provided for each IO unit identification symbol in the overall IO update table;
A block IO update table that is provided for each program block and stores an IO unit identification symbol in which IO data may be updated in the program block;
Before executing the program block, all the flags are set to the first value, and when the block program is executed, the block IO update table of the program block is referred to and stored in the block IO update table. An instruction execution processing unit that sets the flag corresponding to the identification symbol in the IO unit to a second value;
The flag is referred to, and when the flag is the second value, the IO data update process of the IO unit corresponding to the flag is executed, and when the flag value is the first value, An IO data update processing unit that does not execute IO data update processing in units of IO corresponding to the flag;
A programmable controller comprising:
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2003414131A JP4288700B2 (en) | 2003-12-12 | 2003-12-12 | Programmable controller |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2003414131A JP4288700B2 (en) | 2003-12-12 | 2003-12-12 | Programmable controller |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2005174042A JP2005174042A (en) | 2005-06-30 |
JP4288700B2 true JP4288700B2 (en) | 2009-07-01 |
Family
ID=34734026
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2003414131A Expired - Fee Related JP4288700B2 (en) | 2003-12-12 | 2003-12-12 | Programmable controller |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP4288700B2 (en) |
Families Citing this family (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2010152872A (en) * | 2008-11-26 | 2010-07-08 | Yokogawa Electric Corp | Sequence control device, and module device and connection device |
WO2011089688A1 (en) | 2010-01-20 | 2011-07-28 | 三菱電機株式会社 | Programmable controller system and development system |
-
2003
- 2003-12-12 JP JP2003414131A patent/JP4288700B2/en not_active Expired - Fee Related
Also Published As
Publication number | Publication date |
---|---|
JP2005174042A (en) | 2005-06-30 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP4911022B2 (en) | Counter control circuit, dynamic reconfiguration circuit, and loop processing control method | |
JP5967927B2 (en) | Method for bypassing AUTOSAR software elements of an AUTOSAR software system | |
US9043806B2 (en) | Information processing device and task switching method | |
TW400469B (en) | Device capable of fixing programs in embedded microprocessor | |
CN113742237B (en) | Program debugging method, device, equipment and storage medium | |
KR100983135B1 (en) | Processor and method of grouping and executing dependent instructions in a packet | |
JP4288700B2 (en) | Programmable controller | |
US20100153619A1 (en) | Data processing and addressing methods for use in an electronic apparatus | |
CN109976751A (en) | Model manipulation method, relevant apparatus and computer-readable medium | |
JPH09231071A (en) | Computer system | |
CN106168927B (en) | FIFO memory with memory area that is changeable during operation | |
US20080282071A1 (en) | Microprocessor and register saving method | |
WO2007056234A2 (en) | Hybrid memory system for a microcontroller | |
JP5233078B2 (en) | Processor and processing method thereof | |
US9442724B2 (en) | Start control apparatus for controlling a start of an information device by using an interrupt generation code, information device, and start control method | |
CN109634766B (en) | Method, device, equipment and storage medium for improving operation efficiency of data flow machine | |
JP2007241570A (en) | Setting system of shared memory for communication between programmable controller | |
JPH10240522A (en) | Arithmetic unit | |
US20040205701A1 (en) | Computer system, virtual machine, runtime representation of object, storage media and program transmission apparatus | |
CN112882753A (en) | Program running method and device | |
CN108509013B (en) | Method and device for processing instruction | |
JP2008071084A (en) | Microprocessor and image forming apparatus | |
CN114064478A (en) | Method and device for generating verification case | |
CN111274168A (en) | Processing device and method for changing pin function | |
JP2016024614A (en) | Data processor |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20060602 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20081204 |
|
A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20081211 |
|
A521 | Written amendment |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20090123 |
|
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: 20090309 |
|
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: 20090322 |
|
R150 | Certificate of patent or registration of utility model |
Ref document number: 4288700 Country of ref document: JP Free format text: JAPANESE INTERMEDIATE CODE: R150 Free format text: JAPANESE INTERMEDIATE CODE: R150 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20120410 Year of fee payment: 3 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20120410 Year of fee payment: 3 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20130410 Year of fee payment: 4 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20130410 Year of fee payment: 4 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20140410 Year of fee payment: 5 |
|
LAPS | Cancellation because of no payment of annual fees |