JP5494243B2 - Programmable controller and program execution method for programmable controller - Google Patents
Programmable controller and program execution method for programmable controller Download PDFInfo
- Publication number
- JP5494243B2 JP5494243B2 JP2010125471A JP2010125471A JP5494243B2 JP 5494243 B2 JP5494243 B2 JP 5494243B2 JP 2010125471 A JP2010125471 A JP 2010125471A JP 2010125471 A JP2010125471 A JP 2010125471A JP 5494243 B2 JP5494243 B2 JP 5494243B2
- Authority
- JP
- Japan
- Prior art keywords
- user application
- programmable controller
- program
- memory
- control
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
- 238000000034 method Methods 0.000 title claims description 13
- 230000015654 memory Effects 0.000 claims description 74
- 230000004913 activation Effects 0.000 claims description 11
- 230000003936 working memory Effects 0.000 claims description 7
- 230000000873 masking effect Effects 0.000 claims description 4
- 230000006870 function Effects 0.000 description 46
- 238000010586 diagram Methods 0.000 description 10
- 238000004891 communication Methods 0.000 description 2
- 238000002360 preparation method Methods 0.000 description 1
Landscapes
- Programmable Controllers (AREA)
Description
本発明は、機器を制御するプログラマブルコントローラなどのプログラムの実行を高速化する技術に関する。 The present invention relates to a technique for speeding up execution of a program such as a programmable controller that controls equipment.
図5は、プログラムを実行して制御対象機器を制御する制御装置の概略構成図である。この制御装置は、キャッシュメモリを有するマイクロコントローラ500を備え、マイクロコントローラ500が不揮発性メモリ300に保持されたプログラムを実行し入出力装置回路を介して制御対象機器を制御するよう構成されている。 FIG. 5 is a schematic configuration diagram of a control device that executes a program to control a control target device. The control device includes a microcontroller 500 having a cache memory, and the microcontroller 500 executes a program held in the nonvolatile memory 300 and controls a control target device via an input / output device circuit.
プログラム実行速度を早くするには、不揮発メモリ300に保持されたアプリケーションプログラムをRAM301などの高速メモリに再配置し、この再配置されたプログラムを読み出して実行する高速化方法が知られている。 In order to increase the program execution speed, a high-speed method is known in which an application program held in the nonvolatile memory 300 is rearranged in a high-speed memory such as the RAM 301, and the rearranged program is read and executed.
近年のマイクロコントローラの性能の向上に伴い、マイクロコントローラに搭載されるキャッシュメモリへのアクセスはマイクロコントローラ内部の高速なクロックの1ないし2クロックで実行できるのに対し、上記のように外部メモリへのアクセスはその十倍から十数倍のアクセス時間を要するため、上述高速化方法に加えてマイクロコントローラ500のキャッシュを活用する方法がある。 As the performance of microcontrollers in recent years has improved, access to the cache memory mounted on the microcontroller can be executed with one or two clocks of the high-speed clock inside the microcontroller, while the access to the external memory as described above. Since access requires 10 to 10 times the access time, there is a method of utilizing the cache of the microcontroller 500 in addition to the above speed-up method.
キャッシュを活用した場合、RAM301に再配置されたアプリケーションプログラムは、マイクロコントローラ500からのフェッチ動作に連動してプロセッサ501に転送され実行されるとともに、命令キャッシュメモリ502にロードされる。以降、マイクロコントローラ500はプログラム実行の際、実行しようとするプログラムがキャッシュメモリに保持されていれば、外部メモリからのプログラムのフェッチを行わずキャッシュメモリに保持されたプログラムを実行するので、プログラムの実行速度が高速化される。 When the cache is utilized, the application program rearranged in the RAM 301 is transferred to the processor 501 and executed in conjunction with the fetch operation from the microcontroller 500, and is loaded into the instruction cache memory 502. Thereafter, when executing the program, if the program to be executed is held in the cache memory, the microcontroller 500 executes the program held in the cache memory without fetching the program from the external memory. The execution speed is increased.
制御機器を代表するプログラマブルコントローラ(以下、PLCという)は、一般的にパワーオンまたはリセットスタート後、メモリクリアや各種初期設定を実行した後にユーザアプリケーションを起動し、以降、アプリケーションプログラムをサイクリックに実行するよう構成されている。アプリケーションプログラムをサイクリックに実行することで、PLCは所定の単位時間(制御周期)で制御を行う。 Programmable controllers that represent control devices (hereinafter referred to as PLCs) generally start user applications after power-on or reset start, execute memory clear and various initial settings, and then execute application programs cyclically It is configured to By executing the application program cyclically, the PLC performs control in a predetermined unit time (control cycle).
図6は上述の如く起動されたPLCのユーザアプリケーションの実行概念図である。図6において、アプリケーションプログラムの実行時間は、ユーザアプリケーション起動後、初回(区間P1)の実行で該プログラムが命令キャッシュメモリ502にロードされるため、次の実行区間P2からは高速化され、以降この高速性が維持されている。 FIG. 6 is an execution conceptual diagram of the PLC user application started as described above. In FIG. 6, the execution time of the application program is accelerated from the next execution section P2 since the program is loaded into the instruction cache memory 502 by the first execution (section P1) after the user application is started. High speed is maintained.
しかしながら、キャッシュメモリを活用してプログラムの実行速度を高速化すると、アプリケーションの実行時間を短縮できる反面、キャッシュのヒットとミスヒットしたときとでプログラムの実行時間が変動してしまうため、制御周期にばらつきが発生する。 However, using the cache memory to increase the program execution speed can reduce the application execution time, but the program execution time fluctuates depending on the cache hit and miss hit. Variation occurs.
また、ユーザアプリケーションの1回目の実行(P1)においては、プログラムはRAM301からフェッチされるので、その実行時間は、2回目以降の実行時間(P2、P3)に比べて長く、プログラムの実行時間の変動が制御周期に影響してしまう。 In the first execution (P1) of the user application, since the program is fetched from the RAM 301, the execution time is longer than the second and subsequent execution times (P2, P3). Variations will affect the control cycle.
ユーザアプリケーションの種類によっては、ユーザアプリケーションの実行時間そのものだけではなく、制御周期のバラツキが高精度に要求されるアプリケーション(サーボシステムによる位置決め制御などを代表とするモーションコントロール)があり、このようなモーションコントロール機能を実現するPLCにおいては、プログラム実行時間の変動が制御のスピードや制御周期のばらつきとなり、正常な制御を実行できないケースが出てきて問題となる。 Depending on the type of user application, there are not only the execution time of the user application itself, but also applications (motion control represented by positioning control by a servo system, etc.) that require highly accurate control cycle variations. In a PLC that realizes a control function, fluctuations in program execution time cause variations in control speed and control cycle, which causes a problem in that normal control cannot be executed.
本発明の目的(課題)は、上記のような問題を鑑みて考案されたものであり、キャッシュのヒット/ミスヒットに起因する実行時間の差異を解消し、常に安定した単位時間(制御周期)で制御することが可能なプログラマブルコントローラ、プログラマブルコントローラのプログラム実行方法を提供することにある。 The object (problem) of the present invention has been devised in view of the above problems, eliminates the difference in execution time caused by cache hit / miss hit, and always has a stable unit time (control cycle). It is providing the program execution method of the programmable controller which can be controlled by, and a programmable controller.
上記のような課題を解決する方法として、本発明は以下のように構成される。
請求項1に係る発明は、キャッシュメモリを有するマイクロコントローラと、このマイクロコントローラによって実行されて外部機器を制御するためのユーザアプリケーションと、このユーザアプリケーションによって起動されユーザアプリケーションの実行結果を記憶手段に転送する転送手段と、記憶手段に保持された実行結果を外部機器に出力する出力手段と、を有するプログラマブルコントローラであって、
制御の運用に先立ち、転送手段の起動をマスクしてユーザアプリケーションを実行しキャッシュメモリにユーザアプリケーションをロードする仮実行手段を備える。
As a method for solving the above problems, the present invention is configured as follows.
The invention according to claim 1 is a microcontroller having a cache memory, a user application that is executed by the microcontroller to control an external device, and an execution result of the user application that is activated by the user application is transferred to a storage means. A programmable controller having transfer means for outputting and output means for outputting an execution result held in the storage means to an external device,
Prior to the operation of control, provisional execution means for masking activation of the transfer means and executing the user application and loading the user application into the cache memory is provided.
請求項2に係る発明は、請求項1に記載のプログラマブルコントローラにおいて、
ユーザアプリケーションは、所定の変数が与えられ呼び出されることにより起動されるサブルーチンプログラムであって、仮実行手段は、ユーザアプリケーションを呼び出し実行する際、転送手段の起動を禁止するための変数をユーザアプリケーションに与え、ユーザアプリケーションは、転送手段の起動を禁止するための変数に基づき転送手段を未起動として該ユーザアプリケーションのプログラムを実行するよう構成する。
The invention according to claim 2 is the programmable controller according to claim 1,
The user application is a subroutine program that is activated when a predetermined variable is given and called, and the temporary execution means provides the user application with a variable for prohibiting activation of the transfer means when calling and executing the user application. The user application is configured to execute the program of the user application without starting the transfer means based on a variable for prohibiting the start of the transfer means.
請求項3に係る発明は、請求項2に記載のプログラマブルコントローラにおいて、ユーザアプリケーションは、さらに、転送手段の起動を禁止するための変数に基づき、ユーザアプリケーションの終了と共にキャッシュメモリをロックするよう構成する。 According to a third aspect of the present invention, in the programmable controller according to the second aspect, the user application is further configured to lock the cache memory upon termination of the user application based on a variable for prohibiting activation of the transfer means. .
請求項4に係る発明は、ユーザアプリケーションを、外部制御機器を所定の周期毎に制御するシーケンス制御プログラムで構成する。
請求項5に係る発明は、ユーザアプリケーションを、位置決め制御を実行する位置決め制御プログラムで構成する。
According to a fourth aspect of the present invention, the user application includes a sequence control program that controls the external control device at predetermined intervals.
In the invention according to claim 5, the user application is configured by a positioning control program for executing positioning control.
請求項6に係る発明は、ユーザアプリケーションを、コンパイラ型言語のプログラムで構成する。
請求項7に係る発明は、請求項1〜6に記載のいずれかのプログラマブルコントローラにおいて、ユーザアプリケーションは不揮発性メモリに保持されており、プログラマブルコントローラは、不揮発性メモリに保持されたユーザアプリケーションを、該プログラマブルコントローラに着脱可能なプログラミング装置から転送された更新用のユーザアプリケーションに更新するプログラム更新手段を備える。
In the invention according to claim 6, the user application is constituted by a program of a compiler type language.
The invention according to claim 7 is the programmable controller according to any one of claims 1 to 6, wherein the user application is held in a non-volatile memory, and the programmable controller stores a user application held in the non-volatile memory, Program update means for updating to a user application for update transferred from a programming device detachable from the programmable controller is provided.
請求項8に係る発明は、キャッシュメモリを有するマイクロコントローラと、このマイクロコントローラによって実行されて外部機器を制御するためのユーザアプリケーションと、該ユーザアプリケーションの作業メモリと、ユーザアプリケーションによって起動されユーザアプリケーションの実行結果を記憶手段に転送する転送手段と、記憶手段に保持された実行結果を外部機器に出力する出力手段と、を有するプログラマブルコントローラのプログラム実行方法であって、
作業メモリと記憶手段とを初期化し、転送手段の起動をマスクしてユーザアプリケーションを実行することでキャッシュメモリにユーザアプリケーションをロードすると共にキャッシュメモリをロックし、作業メモリを再度初期化し、転送手段の起動を許可してユーザアプリケーションを実行するよう構成する。
According to an eighth aspect of the present invention, there is provided a microcontroller having a cache memory, a user application that is executed by the microcontroller to control an external device, a working memory of the user application, and a user application that is activated by the user application. A program execution method for a programmable controller having transfer means for transferring execution results to storage means, and output means for outputting execution results held in the storage means to an external device,
Initialize the working memory and storage means, load the user application to the cache memory by executing the user application while masking the activation of the transfer means, lock the cache memory, reinitialize the working memory, Configure to execute the user application with permission to start.
本発明のプログラマブルコントローラは、制御を運用するに先立ち、ユーザアプリケーションを仮実行する。すなわち、実際の制御を行わずユーザアプリケーションを実行してキャッシュメモリにユーザアプリケーションをロードしロックするように構成したので、運用時の初回のユーザアプリケーションの実行から高速性が発揮されると共に、プログラムの実行時間や制御周期が極めて安定する。 The programmable controller of the present invention temporarily executes the user application prior to operating the control. In other words, since the user application is executed without performing actual control and the user application is loaded and locked in the cache memory, high speed can be exhibited from the first execution of the user application during operation, and the program The execution time and control cycle are extremely stable.
従って、本発明によって、キャッシュのヒット/ミスヒットに起因する実行時間の差異を解消し、常に安定した制御周期で制御することが可能なプログラマブルコントローラが提供される。 Therefore, the present invention provides a programmable controller capable of eliminating the difference in execution time caused by cache hit / miss hit and always performing control with a stable control cycle.
以下、本発明の一実施形態について、図面を参照しながら説明する。
図1は、本発明の一実施形態に係る制御システムの構成を示すブロック図である。
図1に示すように、この制御システムでは、プログラマブルコントローラ(以下、PLCという)20が、入出力モジュール23を介して外部制御機器32に接続されるとともに、定義設定ローダ30とは通信路(例えば汎用シリアル通信)31を介して接続されている。
Hereinafter, an embodiment of the present invention will be described with reference to the drawings.
FIG. 1 is a block diagram showing a configuration of a control system according to an embodiment of the present invention.
As shown in FIG. 1, in this control system, a programmable controller (hereinafter referred to as “PLC”) 20 is connected to an external control device 32 via an input / output module 23 and communicates with a definition setting loader 30 (for example, General-purpose serial communication) 31.
PLC20は、CPU(Central Processing Unit)モジュール10を有する。このCPUモジュール10は、CPU11、不揮発性メモリなどのプログラムメモリ12、システムワークメモリ(RAM(Random Access Memory))13、入出力メモリ(RAM)14、アプリケーションメモリ(RAM)15、そして、定義設定ローダ30との通信を行うためのドライバ/レシーバ16、入出力モジュールとのインタフェースを行うバスインターフェース17、を有し、これらがバス19により接続されている。さらに、CPU11には、プログラムを高速に実行するための命令キャッシュ11bおよびデータキャッシュ11cが搭載されている。 The PLC 20 includes a CPU (Central Processing Unit) module 10. The CPU module 10 includes a CPU 11, a program memory 12 such as a nonvolatile memory, a system work memory (RAM (Random Access Memory)) 13, an input / output memory (RAM) 14, an application memory (RAM) 15, and a definition setting loader. A driver / receiver 16 for communicating with 30 and a bus interface 17 for interfacing with an input / output module are connected by a bus 19. Further, the CPU 11 is equipped with an instruction cache 11b and a data cache 11c for executing a program at high speed.
PLC20は、パワーオンまたはリセットスタート後、システムの初期化を経てプログラムメモリ12に保持されたユーザアプリケーションを起動し、以降、ユーザアプリケーションをサイクリックに実行して、所定の制御周期で制御を行うよう構成されている。すなわち、本発明で扱うユーザアプリケーションは、その一例として、外部制御機器を所定の制御周期で制御するためのシーケンス制御プログラムを対象としている。 The PLC 20 starts a user application held in the program memory 12 after system initialization after power-on or reset start, and then executes the user application cyclically to perform control at a predetermined control cycle. It is configured. That is, the user application dealt with in the present invention is intended for a sequence control program for controlling an external control device at a predetermined control cycle as an example.
また、定義設定ローダ30は、ユーザによってプログラミングされたソースプログラムをコンパイルしてPLC20のCPU11が直接実行可能な実行コード(コンパイラ言語)を生成する機能を有している。そして、実行コードが、通信線31を介してCPUモジュール10にダウンロードされることにより、CPUモジュール10は、プログラムメモリ12などに予め保持されていたユーザアプリケーションを、ダウンロードされた実行コードに更新する(プログラム更新手段)ことができる。 The definition setting loader 30 has a function of compiling a source program programmed by a user and generating an execution code (compiler language) that can be directly executed by the CPU 11 of the PLC 20. Then, the execution code is downloaded to the CPU module 10 via the communication line 31, so that the CPU module 10 updates the user application previously held in the program memory 12 or the like to the downloaded execution code ( Program update means).
図2は、PLC20の機能ブロック図である。図2を参照しながら本発明に係るPLC20の機能について説明する。
PLC20は、該PLC20の初期化を行うイニシャル機能200と、ユーザアプリケーション202と、外部制御機器32とインタフェースする入出力制御機能203と、PLC20全体をオペレーションするシステム機能201を備える。また、イニシャル機能200には、ユーザアプリケーション202を仮実行させるアプリケーション仮実行機能200a、および、RAMなどに保持されたデータを初期化するメモリクリア機能(不図示)や入出力制御機能202に動作パラメータなどを与える入出力制御機能初期化機能(不図示)などが備えられている。また、システム機能201には、ユーザアプリケーション202によって演算出力された出力データを入出力制御機能203に転送するためのI/Oデータ転送機能201aと、ステータス情報(状態情報)などをシステムワークメモリに転送する状態情報転送機能201bが備えられている。
FIG. 2 is a functional block diagram of the PLC 20. The function of the PLC 20 according to the present invention will be described with reference to FIG.
The PLC 20 includes an initial function 200 that initializes the PLC 20, a user application 202, an input / output control function 203 that interfaces with the external control device 32, and a system function 201 that operates the entire PLC 20. The initial function 200 includes an application temporary execution function 200 a for temporarily executing the user application 202, a memory clear function (not shown) for initializing data held in the RAM, and an operation parameter for the input / output control function 202. An input / output control function initialization function (not shown) is provided. The system function 201 also includes an I / O data transfer function 201a for transferring output data calculated and output by the user application 202 to the input / output control function 203, status information (state information), and the like in the system work memory. A state information transfer function 201b for transferring is provided.
なお、システムワークメモリ13、入出力メモリ14、アプリケーションメモリ15の各メモリは、図1に記載したそれと同じである。
ユーザアプリケーション202はサブルーチン化されたプログラムであり、呼び出された際に変数が与えられ、与えられた変数に対応した処理を実行するよう構成されている。
The system work memory 13, the input / output memory 14, and the application memory 15 are the same as those described in FIG.
The user application 202 is a program that is converted into a subroutine, and is configured to receive a variable when it is called and to execute processing corresponding to the given variable.
ここで、PLC20が運用状態のときの動きを説明する。ユーザアプリケーション202はシステム機能201によってシステムコールされることによりアプリケーションプログラムを実行する。そして、ユーザアプリケーション202は、この実行の際に演算出力された出力データを外部制御機器32に反映させるため、I/Oデータ転送機能201a(データを伝達するドライバに相当)を呼び出す。 Here, the movement when the PLC 20 is in the operating state will be described. The user application 202 executes an application program when a system call is made by the system function 201. Then, the user application 202 calls the I / O data transfer function 201a (corresponding to a driver for transmitting data) in order to reflect the output data calculated and output at the time of execution in the external control device 32.
呼び出されたI/Oデータ転送機能201aは、出力データを入出力メモリ14に転送する。入出力制御機能203は転送された出力データを、入出力モジュール23を介して外部制御機器32に出力する。 The called I / O data transfer function 201 a transfers the output data to the input / output memory 14. The input / output control function 203 outputs the transferred output data to the external control device 32 via the input / output module 23.
このとき、システム機能201は、ユーザアプリケーションをシステムコールする際、前述変数を「1」としてユーザアプリケーション202に与えている。ユーザアプリケーション202は、変数「1」を受けることによって、アプリケーションプログラムを実行するとともに、I/Oデータ転送機能201aを呼び出す。 At this time, the system function 201 gives the above-mentioned variable “1” to the user application 202 when a system call is made to the user application. Upon receiving the variable “1”, the user application 202 executes the application program and calls the I / O data transfer function 201a.
すなわち、運用状態において、ユーザアプリケーション202は、システム機能201によって変数1が与えられ、そのシステムコール毎にアプリケーションプログラムを実行し、ユーザアプリケーション202と入出力制御機能203との間のデータを転送するI/Oデータ転送機能201aを呼び出し、シーケンス演算の結果である出力データを外部制御機器32に出力する。 That is, in the operating state, the user application 202 is given the variable 1 by the system function 201, executes the application program for each system call, and transfers data between the user application 202 and the input / output control function 203. The / O data transfer function 201a is called, and output data that is the result of the sequence calculation is output to the external control device 32.
図3はPLC20が起動され、運用状態に至るまでの処理(イニシャル機能)を示すフロー図である。本発明のポイントは、PLC20を運用するに先立ち(すなわちイニシャル処理中に)ユーザアプリケーション仮実行機能(S101)を実行する点にある。 FIG. 3 is a flowchart showing processing (initial function) from when the PLC 20 is activated until it reaches the operating state. The point of the present invention is that the user application provisional execution function (S101) is executed prior to operating the PLC 20 (that is, during initial processing).
図3において、パワーオンまたはリセットスタート後、イニシャル機能200はRAMなどのデータをクリア(S100)した後、ユーザアプリケーションを仮に実行させる(S101)。この仮の実行とは、外部制御機器32への制御を行わないでユーザアプリケーションを実行することであり、変数「0」をユーザアプリケーション202に与え、呼び出すことにより達成される。 In FIG. 3, after power-on or reset start, the initial function 200 clears data such as RAM (S100), and then temporarily executes a user application (S101). This provisional execution is to execute the user application without controlling the external control device 32, and is achieved by giving the variable “0” to the user application 202 and calling it.
変数「0」が与えられ呼び出されたユーザアプリケーション202は、アプリケーションプログラムを実行するが、I/Oデータ転送機能201aの呼び出しは行わず終了する。I/Oデータ転送機能201aの呼び出しが行われなければ、I/Oデータが外部制御機器32に反映されることがないため、実際の制御が行われないでユーザアプリケーション202を実行することができる。 The user application 202 called with the variable “0” executed executes the application program, but ends without calling the I / O data transfer function 201a. If the I / O data transfer function 201a is not called, the I / O data is not reflected on the external control device 32, so that the user application 202 can be executed without actual control. .
また、ユーザアプリケーション202は、変数「0」が与えられ呼び出されることにより、プログラムの終了と同時に命令キャッシュメモリ11bをロックする。キャッシュがロックされた以降は、命令キャッシュメモリ11bの内容が更新されないため、以降のユーザアプリケーションの実行の際には命令キャッシュメモリ11bに保持されたアプリケーションプログラムがフェッチされることになる。 Further, the user application 202 is called with a variable “0”, thereby locking the instruction cache memory 11b simultaneously with the end of the program. Since the contents of the instruction cache memory 11b are not updated after the cache is locked, the application program held in the instruction cache memory 11b is fetched when the user application is executed thereafter.
このようにして、ユーザアプリケーション202は、実際の制御を行わないでアプリケーションプログラムを実行し、実行されたアプリケーションプログラムは命令キャッシュメモリ11bにロードされてロックされる。従って、PLC20が運用状態になってからのユーザアプリケーション202の実行の際には、命令キャッシュメモリからユーザアプリケーションプログラムがフェッチされるようになるため、PLC20は正式なアプリケーションの起動の初回からプログラムを高速に実行することができる。 In this way, the user application 202 executes the application program without performing actual control, and the executed application program is loaded into the instruction cache memory 11b and locked. Therefore, when the user application 202 is executed after the PLC 20 is in an operational state, the user application program is fetched from the instruction cache memory, so the PLC 20 can execute the program at high speed from the first activation of the formal application. Can be executed.
続いて、イニシャル機能200は、メモリクリアを再度行うと共に、各種初期値を設定する(S102)。このステップS102におけるメモリの再クリアを実行する理由は、ユーザアプリケーション仮実行機能(S101)を実行した際の作業データが、PLC20の運用状態での制御動作に影響を与えないようにするためである。この際、ステップS100で実行したメモリクリアと同じように、RAMなどで構成される全ての領域のデータをクリアしても良いが、アプリケーションメモリ15のみを対象にしてメモリクリアしても良い。ユーザを(S101)では、アプリケーションメモリ15のみが作業メモリとして扱われるため、ステップS102でのメモリ再クリアでアプリケーションメモリ15以外の領域をクリアする必要はなく、そして、イニシャル処理を速く終了させ、PLC20を運用状態にすることができるためである。 Subsequently, the initial function 200 performs the memory clear again and sets various initial values (S102). The reason for re-clearing the memory in step S102 is to prevent the work data when the user application temporary execution function (S101) is executed from affecting the control operation in the operating state of the PLC 20. . At this time, as in the memory clear executed in step S100, the data in all areas constituted by the RAM or the like may be cleared, but the memory may be cleared only for the application memory 15. In (S101), since only the application memory 15 is handled as the working memory, it is not necessary to clear the area other than the application memory 15 by re-clearing the memory in step S102, and the initial process is quickly terminated and the PLC 20 This is because it can be put into an operational state.
続いて、イニシャル機能200は、入出力制御機能203に動作パラメータなどを与えて入出力制御機能を初期化する(S103)。この後、イニシャル機能200は、ユーザアプリケーションをシステムコールするようシステム機能201に対して指示し、ユーザアプリケーション202を正式に起動する(S104)。この指示に基づき、システム機能201はユーザアプリケーションに与える変数を「1」としてユーザアプリケーション202を定期的にシステムコールする。 Subsequently, the initial function 200 initializes the input / output control function by giving operation parameters and the like to the input / output control function 203 (S103). Thereafter, the initial function 200 instructs the system function 201 to make a system call to the user application, and formally activates the user application 202 (S104). Based on this instruction, the system function 201 periodically makes a system call to the user application 202 by setting the variable to be given to the user application to “1”.
このようなイニシャルを経て運用状態になったPLC20がユーザアプリケーションを実行する動作概念図が図4である。上述のようにユーザアプリケーション202は、一旦、仮実行された後に正式に起動されるため、そのプログラムは仮実行の際に命令キャッシュにロードされ保持されている。従って、アプリケーション起動後の初回の実行(区間P1)から高速に処理され、以降も高速性が維持され安定している。すなわち、本発明によってPLC20は、アプリケーションを起動した初回の区間P1から高速性が発揮されるとともに制御周期に乱れがなく極めて安定した制御を実行することができる。 FIG. 4 is a conceptual diagram of an operation in which the PLC 20 that is in an operational state through such initials executes a user application. As described above, since the user application 202 is temporarily started after being temporarily executed, the program is loaded and held in the instruction cache at the time of temporary execution. Accordingly, the processing is performed at high speed from the first execution (section P1) after the application is started, and the high speed is maintained and stable thereafter. That is, according to the present invention, the PLC 20 can execute high-speed performance from the first section P1 where the application is started, and can perform extremely stable control without any disturbance in the control cycle.
すなわち、上述説明したように本発明のポイントは、制御運用までのプリプロセス(準備処理)としてユーザアプリケーションを実行してキャッシュメモリにユーザアプリケーションをロードする際、ユーザアプリケーションが操作するメモリ領域(アプリケーションメモリ)から外部機器への出力用のメモリ領域(入出力メモリ)への転送の起動をマスクすることにある。 That is, as described above, the point of the present invention is that a memory area (application memory) operated by a user application when the user application is executed as a preprocess (preparation process) until control operation and loaded into the cache memory. ) To mask the activation of the transfer to the memory area (input / output memory) for output to the external device.
なお、アプリケーションメモリ15へのアクセスはユーザアプリケーション202によるアクセスがほとんどなので(主にユーザアプリケーションの作業用なので)、システム機能201の配下でアクセスされるシステムワークメモリ13および入出力メモリ14とは物理的に別のメモリで構成すると良い。 Since the access to the application memory 15 is mostly performed by the user application 202 (mainly for user application work), the system work memory 13 and the input / output memory 14 accessed under the system function 201 are physically It is better to use another memory.
また、システムワークメモリ13と入出力メモリ14へのアクセスはシステム機能201によるアクセスがほとんどなので、1媒体のメモリを領域分けして構成しても良い。
また、ユーザアプリケーションに与えられる変数「0」は、I/Oデータ転送処理201aの呼び出しを禁止するとともに、ユーザアプリケーションの終了と同時にキャッシュをロックするパラメータであり、変数「1」は、I/Oデータ転送処理201aの呼び出しを許可するパラメータである。
Since access to the system work memory 13 and the input / output memory 14 is mostly performed by the system function 201, the memory of one medium may be divided into areas.
The variable “0” given to the user application is a parameter that prohibits the calling of the I / O data transfer processing 201 a and locks the cache at the end of the user application. The variable “1” is the I / O data. This parameter allows the data transfer process 201a to be called.
また、本発明に係るPLC20は、ユーザアプリケーションを位置決め制御プログラムとし、入出力モジュール23を位置決め制御モジュールとすることにより、サーボなどを外部制御機器として接続したモーションコントロールに適用することができる。このように、本発明に係るプログラマブルコントローラは、プログラム実行時間や制御周期が極めて安定するので、制御周期のバラツキが高精度に要求されるモーションコントロールなどのアプリケーションにおいても高信頼な制御を行うことができる。 Further, the PLC 20 according to the present invention can be applied to motion control in which a servo or the like is connected as an external control device by using the user application as a positioning control program and the input / output module 23 as a positioning control module. As described above, the programmable controller according to the present invention is extremely stable in program execution time and control cycle, and therefore can perform highly reliable control even in applications such as motion control that require highly accurate control cycle variation. it can.
10 CPUモジュール
11 マイクロコントローラ
11a 中央演算部
11b 命令キャッシュメモリ
11c データキャッシュメモリ
12 プログラムメモリ
13 システムワークメモリ
14 入出力メモリ
15 アプリケーションメモリ
16 ドライバ/レシーバ
20 プログラマブルコントローラ(PLC)
23 入出力モジュール
30 定義設定ローダ
32 外部制御機器
200 イニシャル機能
200a アプリケーション仮実行機能
201 システム機能
201a I/Oデータ転送機能
201b 状態情報転送機能
202 ユーザアプリケーション
203 入出力制御機能
DESCRIPTION OF SYMBOLS 10 CPU module 11 Microcontroller 11a Central processing part 11b Instruction cache memory 11c Data cache memory 12 Program memory 13 System work memory 14 Input / output memory 15 Application memory 16 Driver / receiver 20 Programmable controller (PLC)
23 Input / output module 30 Definition setting loader 32 External control device 200 Initial function 200a Application temporary execution function 201 System function 201a I / O data transfer function 201b Status information transfer function 202 User application 203 Input / output control function
Claims (8)
このマイクロコントローラによって実行されて外部機器を制御するためのユーザアプリケーションと、
このユーザアプリケーションによって起動され前記ユーザアプリケーションの実行結果を記憶手段に転送する転送手段と、
前記記憶手段に保持された前記実行結果を前記外部機器に出力する出力手段と、を有するプログラマブルコントローラであって、
制御の運用に先立ち、前記転送手段の起動をマスクして前記ユーザアプリケーションを実行し前記キャッシュメモリに前記ユーザアプリケーションをロードする仮実行手段を備えることを特徴とするプログラマブルコントローラ。 A microcontroller having a cache memory;
A user application that is executed by the microcontroller to control an external device;
Transfer means that is activated by the user application and transfers an execution result of the user application to a storage means;
Output means for outputting the execution result held in the storage means to the external device, and a programmable controller comprising:
Prior to operation of control, a programmable controller comprising provisional execution means for masking activation of the transfer means, executing the user application, and loading the user application into the cache memory.
前記ユーザアプリケーションは、所定の変数が与えられ呼び出されることにより起動されるサブルーチンプログラムであって、
前記仮実行手段は、前記ユーザアプリケーションを呼び出し実行する際、前記転送手段の起動を禁止するための変数を前記ユーザアプリケーションに与え、
前記ユーザアプリケーションは、前記転送手段の起動を禁止するための変数に基づき前記転送手段を未起動として該ユーザアプリケーションのプログラムを実行することを特徴とするプログラマブルコントローラ。 The programmable controller according to claim 1,
The user application is a subroutine program that is activated when a predetermined variable is given and called,
The provisional execution means, when calling and executing the user application, gives the user application a variable for prohibiting activation of the transfer means,
The programmable controller, wherein the user application executes a program of the user application without starting the transfer unit based on a variable for prohibiting the transfer unit from being started.
前記ユーザアプリケーションは、さらに、前記転送手段の起動を禁止するための変数に基づき、前記ユーザアプリケーションの終了と共に前記キャッシュメモリをロックすることを特徴とするプログラマブルコントローラ。 The programmable controller according to claim 2,
The user application further locks the cache memory upon termination of the user application based on a variable for prohibiting activation of the transfer means.
前記ユーザアプリケーションは、前記外部制御機器を所定の周期毎に制御するためのシーケンス制御プログラムであることを特徴とするプログラマブルコントローラ。 The programmable controller according to any one of claims 1 to 3,
The programmable controller, wherein the user application is a sequence control program for controlling the external control device at predetermined intervals.
前記ユーザアプリケーションは、位置決め制御を実行する位置決め制御プログラムであることを特徴とするプログラマブルコントローラ。 The programmable controller according to any one of claims 1 to 3,
The programmable controller characterized in that the user application is a positioning control program that executes positioning control.
前記ユーザアプリケーションは、コンパイラ型言語のプログラムであることを特徴とするプログラマブルコントローラ。 In the programmable controller according to any one of claims 1 to 5,
The programmable controller according to claim 1, wherein the user application is a compiler language program.
前記ユーザアプリケーションは不揮発性メモリに保持されており、
前記プログラマブルコントローラは、前記不揮発性メモリに保持された前記ユーザアプリケーションを、該プログラマブルコントローラに着脱可能なプログラミング装置によって転送された更新用のユーザアプリケーションに更新するプログラム更新手段をさらに備えることを特徴とするプログラマブルコントローラ。 The programmable controller according to any one of claims 1 to 6,
The user application is held in a non-volatile memory;
The programmable controller further includes program update means for updating the user application held in the nonvolatile memory to an update user application transferred by a programming device detachable from the programmable controller. Programmable controller.
このマイクロコントローラによって実行されて外部機器を制御するためのユーザアプリケーションと、
該ユーザアプリケーションの作業メモリと、
前記ユーザアプリケーションによって起動され前記ユーザアプリケーションの実行結果を記憶手段に転送する転送手段と、
前記記憶手段に保持された前記実行結果を前記外部機器に出力する出力手段と、を有するプログラマブルコントローラのプログラム実行方法であって、
前記作業メモリと前記記憶手段とを初期化し、前記転送手段の起動をマスクして前記ユーザアプリケーションを実行することで前記キャッシュメモリに前記ユーザアプリケーションをロードし、前記キャッシュメモリをロックし、前記作業メモリを再度初期化した後、
前記転送手段の起動を許可して前記ユーザアプリケーションを実行することを特徴とするプログラム実行方法。 A microcontroller having a cache memory;
A user application that is executed by the microcontroller to control an external device;
A working memory of the user application;
Transfer means that is activated by the user application and transfers an execution result of the user application to a storage means;
Output means for outputting the execution result held in the storage means to the external device, and a program execution method for a programmable controller comprising:
The working memory and the storage unit are initialized, the user application is executed by masking activation of the transfer unit, the user application is loaded into the cache memory, the cache memory is locked, and the working memory After reinitializing
A program execution method for executing the user application while permitting activation of the transfer means.
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2010125471A JP5494243B2 (en) | 2010-06-01 | 2010-06-01 | Programmable controller and program execution method for programmable controller |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2010125471A JP5494243B2 (en) | 2010-06-01 | 2010-06-01 | Programmable controller and program execution method for programmable controller |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2011253267A JP2011253267A (en) | 2011-12-15 |
JP5494243B2 true JP5494243B2 (en) | 2014-05-14 |
Family
ID=45417174
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2010125471A Active JP5494243B2 (en) | 2010-06-01 | 2010-06-01 | Programmable controller and program execution method for programmable controller |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP5494243B2 (en) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2013073344A (en) * | 2011-09-27 | 2013-04-22 | Fuji Electric Co Ltd | Programmable controller, program creation support device, digital control program and program creation support program |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP6668966B2 (en) * | 2016-06-16 | 2020-03-18 | コニカミノルタ株式会社 | Image forming device |
Family Cites Families (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP4837247B2 (en) * | 2003-09-24 | 2011-12-14 | パナソニック株式会社 | Processor |
JP2005332370A (en) * | 2004-04-19 | 2005-12-02 | Toshiba Corp | Control unit |
-
2010
- 2010-06-01 JP JP2010125471A patent/JP5494243B2/en active Active
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2013073344A (en) * | 2011-09-27 | 2013-04-22 | Fuji Electric Co Ltd | Programmable controller, program creation support device, digital control program and program creation support program |
Also Published As
Publication number | Publication date |
---|---|
JP2011253267A (en) | 2011-12-15 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN109614170B (en) | Controlling tasks performed by a computing system | |
US8024548B2 (en) | Integrated circuit microprocessor that constructs, at run time, integrated reconfigurable logic into persistent finite state machines from pre-compiled machine code instruction sequences | |
US10789192B2 (en) | System and method for programming data transfer within a microcontroller | |
CN110663006A (en) | Resilient failover for industrial programmable logic controllers | |
JP5494243B2 (en) | Programmable controller and program execution method for programmable controller | |
JP2018055583A (en) | Control apparatus, control method and program | |
CN109947500A (en) | A kind of program loading method, device, system, chip and storage medium | |
CA3073525C (en) | Stack safety for independently defined operations | |
JP2001265412A (en) | Programmable controller | |
KR100803290B1 (en) | Extensible Virtual Machine for Reprogramming in Wireless Sensor Networks and Reprogramming Method using it | |
US8464040B2 (en) | Systems and methods to control multiple peripherals with a single-peripheral application code | |
CN104281443B (en) | Method for realizing code and data replacement by using TCM (trusted cryptography module) | |
Morelli et al. | Control and scheduling co-design for a simulated quadcopter robot: A model-driven approach | |
US20060143263A1 (en) | Remote update apparatus, systems, and methods | |
JP6333201B2 (en) | Method and computer program executed on a computer to form a control program executable on a control system from a graphic control model | |
JP5511299B2 (en) | Data arithmetic device control circuit and data arithmetic device | |
KR101900729B1 (en) | Method for running PLC operating system | |
US10423778B2 (en) | Turing completeness disabling | |
CN114115092A (en) | Heterogeneous dual-core PLC (programmable logic controller) cooperative execution method and device | |
US20160313718A1 (en) | Method and controller for flexible process control | |
CN110990041A (en) | Bootloader upgrading method and bootloader upgrading system | |
KR100437013B1 (en) | How to execute control logic in a programmable controller | |
Stefanizzi et al. | COIN: System Architecture for Programmable Connected Devices | |
JP2011123639A (en) | Native type ic card, ic card os and method | |
JP2009199424A (en) | Microcomputer |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20130514 |
|
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: 20140204 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20140217 |
|
R150 | Certificate of patent or registration of utility model |
Ref document number: 5494243 Country of ref document: JP Free format text: JAPANESE INTERMEDIATE CODE: R150 |
|
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 |
|
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 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |