JP5338528B2 - Programmable controller and application program update method - Google Patents
Programmable controller and application program update method Download PDFInfo
- Publication number
- JP5338528B2 JP5338528B2 JP2009159142A JP2009159142A JP5338528B2 JP 5338528 B2 JP5338528 B2 JP 5338528B2 JP 2009159142 A JP2009159142 A JP 2009159142A JP 2009159142 A JP2009159142 A JP 2009159142A JP 5338528 B2 JP5338528 B2 JP 5338528B2
- Authority
- JP
- Japan
- Prior art keywords
- application program
- memory
- program
- update
- stored
- 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
Landscapes
- Stored Programmes (AREA)
- Programmable Controllers (AREA)
Description
本発明は、プログラマブルコントローラ等のコントローラシステムにおけるアプリケーションプログラムのオンラインでの更新技術に関する。 The present invention relates to an online update technique of an application program in a controller system such as a programmable controller.
プログラマブルコントローラ等のコントローラシステムにおいて、アプリケーションプログラムをオンラインで更新する技術がある。この技術について以下に説明する。
図4は、第1の従来技術のコントローラシステムを示すブロック図である。この第1のコントローラシステムにおける処理について、図4〜図8を用いて説明する。
There is a technique for updating an application program online in a controller system such as a programmable controller. This technique will be described below.
FIG. 4 is a block diagram illustrating a first prior art controller system. Processing in the first controller system will be described with reference to FIGS.
図4に示すように、コントローラシステム100は、マイクロプロセッサ101と、メモリ102とを有する。メモリ102内には、アプリケーションプログラム領域104、アプリケーションデータ領域105、システムプログラム領域106、アプリケーション位置登録テーブル107、等の各種データが記憶される。 As shown in FIG. 4, the controller system 100 includes a microprocessor 101 and a memory 102. In the memory 102, various data such as an application program area 104, an application data area 105, a system program area 106, and an application location registration table 107 are stored.
アプリケーションプログラム領域104は、一般的に、複数のアプリケーションプログラムの記憶領域である。アプリケーションデータ領域105は、各アプリケーションプログラムが実行時に使用する各種パラメータの記憶領域である。システムプログラム領域106は、アプリケーションプログラムの更新(ダウンロード)処理等のシステム処理を実行する各種プログラムの記憶領域である。なお、更新処理用システムプログラムは、更新対象プログラムの数等をチェックし、更新処理が規定の時間に収まるかどうかを判定する判定機能も備えているものとする。 The application program area 104 is generally a storage area for a plurality of application programs. The application data area 105 is a storage area for various parameters used by each application program during execution. The system program area 106 is a storage area for various programs that execute system processing such as application program update (download) processing. The update processing system program is also provided with a determination function for checking the number of update target programs and the like and determining whether the update process is within a specified time.
アプリケーション位置登録テーブル107には、図5に示すように、アプリケーションプログラム領域104に記憶される各アプリケーションプログラムのポインタ(先頭アドレス)が記憶される。図5では、アプリケーションプログラム領域104に記憶されるプログラムAとプログラムBのそれぞれのポインタが、アプリケーション位置登録テーブル107に記憶されている。 As shown in FIG. 5, the application location registration table 107 stores pointers (start addresses) of the application programs stored in the application program area 104. In FIG. 5, the pointers of the programs A and B stored in the application program area 104 are stored in the application location registration table 107.
図4のコントローラシステム100は、アプリケーションプログラム領域104に記憶される各アプリケーションプログラムの実行と、システムプログラム領域106に記憶されるダウンロード等のシステム処理に対応する各システムプログラムの実行とをサイクリックに(定周期的に)繰り返す。 The controller system 100 in FIG. 4 cyclically executes each application program stored in the application program area 104 and each system program corresponding to a system process such as download stored in the system program area 106 ( Repeat periodically).
アプリケーションプログラムを実行するときには、マイクロプロセッサ101は、アプリケーション位置登録テーブル107を通して、アプリケーションプログラム領域104上の各アプリケーションプログラムの記憶位置を認識し、対象とするアプリケーションプログラムの各命令等を演算部103に読み込み実行する。 When executing the application program, the microprocessor 101 recognizes the storage location of each application program in the application program area 104 through the application location registration table 107 and reads each instruction of the target application program into the calculation unit 103. Run.
システムプログラムを実行するときには、マイクロプロセッサ101は、システムプログラム領域106から対象とする(更新処理等の)システムプログラムの各命令等を演算部103に読み込み実行する。 When executing the system program, the microprocessor 101 reads each instruction or the like of the target system program (such as update processing) from the system program area 106 and executes it.
図6は、第1の従来技術のコントローラシステムにおけるアプリケーションプログラムの更新処理のフローチャートである。このオンライン更新処理は支援ツール(不図示)からアプリケーションプログラムがダウンロードされると更新処理用システムプログラム(不図示)により実行される。 FIG. 6 is a flowchart of application program update processing in the first prior art controller system. This online update processing is executed by an update processing system program (not shown) when an application program is downloaded from a support tool (not shown).
図6において、ステップS11で、ダウンロードされたアプリケーションプログラムがアプリケーションプログラム領域104に格納され、ステップS12で、アプリケーションプログラムの実行期間が終了したこと(アプリケーションプログラムのエンド)を検出することで、システムプログラムを実行する期間の開始が判定される。続く、ステップS13において、アプリケーション位置登録テーブル107のポインタを書き換えることにより、旧アプリケーションプログラムから新アプリケーションプログラムへの切り替えが行なわれ、一連の処理を終了する。 In FIG. 6, the downloaded application program is stored in the application program area 104 in step S11, and the system program is detected by detecting that the execution period of the application program has ended (end of application program) in step S12. The start of the execution period is determined. In step S13, the pointer of the application location registration table 107 is rewritten to switch from the old application program to the new application program, and the series of processes is completed.
図7は、図5の状態に対する更新後の、アプリケーションプログラム領域104とアプリケーション位置登録テーブル107とを示した図である。ここでは、更新指示によりプログラムBをプログラムCに更新するものとする。アプリケーションプログラム領域104の空き領域にプログラムCを格納し、アプリケーションプログラムのエンドのタイミングで、プログラムBのポインタをプログラムCの先頭位置を示すように書き換えることにより、以降、プログラムBの代わりに、プログラムCが実行されることになる。 FIG. 7 is a diagram showing the application program area 104 and the application location registration table 107 after the update in the state of FIG. Here, it is assumed that the program B is updated to the program C by the update instruction. By storing the program C in the free area of the application program area 104 and rewriting the pointer of the program B so as to indicate the head position of the program C at the end timing of the application program, the program C is replaced with the program C. Will be executed.
図8に、第1の従来技術のコントローラシステムの実行例を示す。
図8の例では、1つのプログラム実行期間内に、アプリケーションプログラムとしてプログラムAおよびプログラムBが実行され、あるアプリケーションプログラムの実行期間と、次のアプリケーションプログラムの実行期間との間の各空き時間にシステム処理(アプリケーションプログラムのオンライン更新処理)として、プログラム格納処理、アプリケーション位置登録テーブル更新処理などの各処理が分割されて行われる場合が示されている。
FIG. 8 shows an execution example of the controller system of the first prior art.
In the example of FIG. 8, the program A and the program B are executed as application programs within one program execution period, and the system is in each idle time between the execution period of one application program and the execution period of the next application program. As the process (application program online update process), a case where each process such as a program storage process and an application location registration table update process is divided and performed is shown.
続いて、非特許文献1に示される第2の従来技術のコントローラシステムについて説明する。
図9は、第2の従来技術のコントローラシステムを示すブロック図である。
Next, a second prior art controller system shown in Non-Patent Document 1 will be described.
FIG. 9 is a block diagram showing a second prior art controller system.
図9に示す第2の従来技術のコントローラシステム110では、図4に示す第1の従来技術のコントローラシステム100に対して、キャッシュメモリ(L2キャッシュ)111が追加されている。実行速度を増し、実行時間を減らすために、アプリケーションプログラム領域104に格納されたプログラムAおよびBは、L2キャッシュ111に格納された状態で実行されることになる。 In the second prior art controller system 110 shown in FIG. 9, a cache memory (L2 cache) 111 is added to the first prior art controller system 100 shown in FIG. In order to increase the execution speed and reduce the execution time, the programs A and B stored in the application program area 104 are executed while being stored in the L2 cache 111.
図9の状態から、図6のフローチャートに示すオンライン更新処理により、L2キャッシュメモリ空間にあるプログラムBをプログラムCに更新する場合(プログラムBをプログラムCに切り替える場合)、プログラムCのサイズによっては、プログラムCがL2キャッシュメモリから溢れる可能性があるため、プログラムCをL2キャッシュメモリではなく、非L2キャッシュメモリ空間、例えばメモリ102内のアプリケーションプログラム領域104に格納することになってしまう。このため、更新プログラムのダウンロード後に、アプリケーション位置登録テーブル107が更新されて、プログラムCが最初に実行されるときに、プログラムCのキャッシュメモリ111への格納などが必要となるために、実行時間が長くなり、プログラム実行期間の定周期性が維持できず、システム運用に支障をきたすという問題が生じる。 When the program B in the L2 cache memory space is updated to the program C by the online update process shown in the flowchart of FIG. 6 from the state of FIG. 9 (when the program B is switched to the program C), depending on the size of the program C, Since the program C may overflow from the L2 cache memory, the program C is stored in the non-L2 cache memory space, for example, the application program area 104 in the memory 102, instead of the L2 cache memory. Therefore, when the application location registration table 107 is updated after the download of the update program and the program C is executed for the first time, it is necessary to store the program C in the cache memory 111. The program becomes longer and the periodicity of the program execution period cannot be maintained, causing a problem that the system operation is hindered.
図10は、第2の従来技術のコントローラシステムにおけるアプリケーションプログラムの更新処理のフローチャートである。このオンライン更新処理は支援ツール(不図示)からアプリケーションプログラムがダウンロードされると更新処理用システムプログラム(不図示)により実行される。このフローチャートの各ステップは、アプリケーションプログラムの実行期間の間の空き時間に、すなわち、アプリケーションプログラムの実行期間が終了したこと(アプリケーションプログラムのエンド)が検出される度に、断続的に実行される。 FIG. 10 is a flowchart of an application program update process in the second prior art controller system. This online update processing is executed by an update processing system program (not shown) when an application program is downloaded from a support tool (not shown). Each step of this flowchart is executed intermittently in the idle time during the execution period of the application program, that is, whenever the end of the execution period of the application program (end of the application program) is detected.
図10において、ステップS21で、ダウンロードされたアプリケーションプログラム(“AppProg”と表記することもある)がアプリケーションプログラム領域(マイクロプロセッサ101の外部にあることから「外部メモリ」ともいう)104に格納される。すなわち、更新指示に含まれる、オンライン更新以前に格納された既存のアプリケーションプログラムに対しては、更新の内容(削除する、再格納(上書き)する)に従って削除、上書き等の処理を行なう。そして、その後、更新指示に含まれる新規に追加するアプリケーションプログラムをアプリケーションプログラム領域104の空き領域に格納する。 In FIG. 10, the downloaded application program (also referred to as “AppProg”) is stored in the application program area 104 (also referred to as “external memory” because it is outside the microprocessor 101) in step S21. . That is, the existing application program stored before the online update included in the update instruction is subjected to processing such as deletion and overwriting according to the contents of the update (deletion, re-storing (overwriting)). Thereafter, the newly added application program included in the update instruction is stored in the free area of the application program area 104.
続く、ステップS22では、キャッシュメモリ111に、今回の更新指示で変更(上書き)対象になっているか、あるいは、削除対象になっているプログラムが存在するかどうかが判定される。存在すると判定された、今回削除、上書き等の処理対象となるアプリケーションプログラムについては、キャッシュメモリ111上から削除する。そして、キャッシュメモリ111の格納先検索処理として空き領域を検索し、今回更新(変更)する既存のアプリケーションプログラムや、今回新規追加するアプリケーションプログラムをその検索された空き領域に格納する。 In step S22, it is determined whether the cache memory 111 is subject to change (overwriting) according to the current update instruction or whether there is a program to be deleted. Application programs that are determined to exist and are subject to processing such as deletion and overwriting this time are deleted from the cache memory 111. Then, as a storage location search process of the cache memory 111, an empty area is searched, and an existing application program to be updated (changed) this time or an application program newly added this time are stored in the searched empty area.
そして、続く、ステップS23において、アプリケーション位置登録テーブル107のポインタを書き換えることにより、旧アプリケーションプログラムから新アプリケーションプログラムへの切り替えが行なわれ、一連の処理を終了する。 In step S23, the pointer of the application location registration table 107 is rewritten to switch from the old application program to the new application program, and the series of processes ends.
このように、第2の従来技術では、オンライン更新にて、更新されるアプリケーションプログラムを非キャッシュ空間である外部メモリ104に一旦格納し、例えばアプリケーションプログラムのエンドのタイミングにて、アプリケーションプログラムをキャッシュメモリ111に格納し、アプリケーション位置登録テーブル107を更新して、更新アプリケーションプログラムを実行している。これにより、常時キャッシュメモリ111にてアプリケーションプログラムを実行することで、実行時間を安定化させている。 As described above, in the second prior art, the application program to be updated is temporarily stored in the external memory 104 which is a non-cache space by online update, and the application program is cached at the end timing of the application program, for example. 111, the application location registration table 107 is updated, and the update application program is executed. Thus, the execution time is stabilized by always executing the application program in the cache memory 111.
しかし、一般にオンライン更新処理は、アプリケーションプログラム毎に行なうことが多く、更新アプリケーションプログラムの数が多くなると、次の3つの時間が延びてしまうという問題がある。
1.更新アプリケーションプログラムの格納先をキャッシュメモリ111内で検索するのに要する時間
2.更新前の古いアプリケーションプログラムをキャッシュメモリ111から削除する時間
3.キャッシュメモリ111に更新アプリケーションプログラムを格納するのに要する時間
この結果、図11に示すように、アプリケーションプログラムのエンドのタイミングから始まるシステム管理時間内にオンライン更新処理が終了せずに、次のアプリケーションプログラムの実行開始時刻を超えてオンライン更新処理が実行されてしまう可能性がある。このようなオンライン更新処理の時間延長が行われた場合、次のアプリケーションプログラムの実行開始時刻を遅らせるか、または、定周期性を重視したシステムの場合は、アプリケーションプログラムの実行サイクルが抜けてしまう。そのため、アプリケーションプログラムをダウンロードした前後で、オンライン更新処理の実行時間の定時性を保つことができない。
However, in general, the online update process is often performed for each application program, and if the number of update application programs increases, there is a problem that the following three times increase.
1. 1. Time required to search the cache memory 111 for the storage location of the update application program 2. Time to delete the old application program before update from the cache memory 111 Time required to store the update application program in the cache memory 111 As a result, as shown in FIG. 11, the next application program is not completed within the system management time starting from the end timing of the application program. There is a possibility that the online update process will be executed beyond the execution start time. When such time extension of the online update process is performed, the execution start time of the next application program is delayed, or, in the case of a system that places importance on constant periodicity, the execution cycle of the application program is lost. For this reason, the timeliness of the online update process execution time cannot be maintained before and after downloading the application program.
また、周辺技術として、特許文献1では、ファイル記憶装置が示されている。このファイル記憶装置では、管理情報とファイルデータ等が記憶されるディスクの複数のブロックの内容を更新する場合において、ディスク上に一時記憶エリアを設け、その一時記憶エリアにデータを書き込む。その際、ディスクと異なる一時メモリ上の連続した一時記憶領域にデータを格納した後で、一括してディスク上の一時記憶エリアに書き込むことによって、ブロック毎の書き込みを不要とし、ディスクへのアクセス回数を減らし、書き込みに要する時間を減らしている。 In addition, as a peripheral technology, Patent Document 1 discloses a file storage device. In this file storage device, when updating the contents of a plurality of blocks of a disk in which management information, file data, etc. are stored, a temporary storage area is provided on the disk and data is written to the temporary storage area. At that time, after data is stored in a continuous temporary storage area on a temporary memory different from that of the disk, writing to the temporary storage area on the disk at a time eliminates the need for writing for each block, and the number of accesses to the disk. To reduce the time required for writing.
本発明は、以上の問題点を考慮してなされたものであり、更新するアプリケーションプログラムの数が多くなった場合でも、システム運用におけるプログラム実行期間の定周期性を維持することを可能としたプログラマブルコントローラおよびアプリケーションプログラムの更新方法を提供することを目的とする。 The present invention has been made in consideration of the above-described problems, and even when the number of application programs to be updated increases, it is possible to maintain the periodicity of the program execution period in the system operation. An object of the present invention is to provide a method for updating a controller and an application program.
提案するプログラマブルコントローラは、アプリケーションプログラムを記憶する第1および第2のメモリと、処理装置と、演算部とを有し、前記処理装置は、前記第1のメモリ、前記第2のメモリの優先順で前記アプリケーションプログラムを前記演算部に読み込み・実行し、前記アプリケーションプログラムの更新指示を定周期のタイミングで受けるプログラマブルコントローラであり、前記第1メモリに記憶された、前記更新指示のないアプリケーションプログラムを前記第2メモリ上で検索して記憶位置を特定する非更新プログラム記憶位置特定手段と、前記第2メモリに記憶された前記更新指示に応じて今回更新されるアプリケーションプログラムと、今回新規に追加されるアプリケーションプログラムと、前記記憶位置を特定した、更新しないアプリケーションプログラムとを、前記第2メモリ上で、アドレスが連続するように再配置する再配置手段と、前記定周期のタイミングで前記第1メモリに記憶されたすべてのアプリケーションプログラムを無効化するとともに、前記定周期の次のタイミングで前記再配置された連続するアプリケーションプログラムを、前記第1メモリに格納する格納手段と、を有する。 The proposed programmable controller includes first and second memories that store application programs, a processing device, and a calculation unit, and the processing device includes a priority order of the first memory and the second memory. Is a programmable controller that reads and executes the application program into the arithmetic unit and receives an update instruction of the application program at a fixed cycle timing, and stores the application program without the update instruction stored in the first memory. Non-update program storage location specifying means for searching on the second memory to specify the storage location, an application program updated this time according to the update instruction stored in the second memory, and a new addition this time Identify the application program and the storage location Relocation means for relocating non-updated application programs on the second memory so that addresses are continuous, and invalidating all application programs stored in the first memory at the fixed cycle timing And storing means for storing the rearranged continuous application programs in the first memory at a timing next to the fixed period.
提案するプログラマブルコントローラでは、更新する(変更や新規追加の)アプリケーションプログラムおよび更新しないアプリケーションプログラムをアドレスが連続するように第2メモリ上で再配置する。その後、第1メモリを無効化し、第2メモリ上で再配置された連続するプログラム群を、第1メモリにすべて格納する。 In the proposed programmable controller, the application program to be updated (changed or newly added) and the application program not to be updated are rearranged on the second memory so that the addresses are continuous. Thereafter, the first memory is invalidated, and all the continuous program groups rearranged on the second memory are stored in the first memory.
このため、従来のようにアプリケーションプログラムを第1メモリに格納する際の格納先検索処理、今回の更新指示で変更対象・削除対象になっているプログラムが第1メモリに存在するかどうかの判定処理をなくすことができる。これらに要する時間は、アプリケーションプログラムの数が多くなるにつれ増大するので、更新処理の一部としての、第1メモリへの格納処理に要する時間を短縮できる。 For this reason, a storage location search process for storing an application program in the first memory as in the prior art, and a determination process for determining whether a program that is to be changed / deleted by the current update instruction exists in the first memory. Can be eliminated. Since the time required for these increases as the number of application programs increases, the time required for the storage processing in the first memory as part of the update processing can be shortened.
よって、第1メモリへの格納処理が延びたことに伴って、オンライン更新の前後での実行時間の定時性が維持できなくなることを避けることができ、更新するアプリケーションプログラムの数が多くなった場合でも、システム運用の定周期性を維持することができる。 Therefore, it is possible to avoid the fact that the fixedness of the execution time before and after the online update cannot be maintained due to the extension of the storage process to the first memory, and the number of application programs to be updated increases. However, it can maintain the regularity of system operation.
以下図面に基づいて、本発明の実施形態について詳細を説明する。なお、本願は、上記非特許文献1を利用する。
図1は、第1実施形態のコントローラシステムを示すブロック図である。
Hereinafter, embodiments of the present invention will be described in detail based on the drawings. In addition, this application utilizes the said nonpatent literature 1.
FIG. 1 is a block diagram illustrating a controller system according to the first embodiment.
図1に示すように、コントローラシステム10は、マイクロプロセッサ1と、メモリ2とを有する。メモリ2内には、アプリケーションプログラム領域4、アプリケーションデータ領域5、システムプログラム領域6、アプリケーション位置登録テーブル7、等の各種データが記憶される。 As shown in FIG. 1, the controller system 10 includes a microprocessor 1 and a memory 2. In the memory 2, various data such as an application program area 4, an application data area 5, a system program area 6, and an application location registration table 7 are stored.
マイクロプロセッサ1は、演算部3と、キャッシュメモリ8を有する。
なお、以下の説明では、キャッシュメモリとしてL2キャッシュ(Level2 Cache)を使用するが、CPU(Central Processing Unit)のキャッシュ(処理装置と記憶装置の間の性能差を埋めるために使用する高速小容量メモリ)としては、容量を容易に増やすことが可能で、CPUの性能向上を可能とした任意のキャッシュを使用することができる。
The microprocessor 1 includes a calculation unit 3 and a cache memory 8.
In the following description, an L2 cache (Level2 Cache) is used as a cache memory. However, a CPU (Central Processing Unit) cache (a high-speed small-capacity memory used to fill a performance difference between a processing device and a storage device) ), It is possible to easily increase the capacity and use any cache that can improve the performance of the CPU.
アプリケーションプログラム領域4は、一般的に、複数のアプリケーションプログラム(図では、プログラムA、プログラムBなど)の記憶領域である。アプリケーションデータ領域5は、各アプリケーションプログラムが実行時に使用する各種パラメータの記憶領域である。システムプログラム領域6は、アプリケーションプログラムの更新(ダウンロード)処理等のシステム処理を実行する各種プログラムの記憶領域である。なお、更新処理用システムプログラムは、更新対象プログラムの数等をチェックし、更新処理が規定の時間に収まるかどうかを判定する判定機能も備えているものとする。 The application program area 4 is generally a storage area for a plurality of application programs (in the figure, program A, program B, etc.). The application data area 5 is a storage area for various parameters used by each application program during execution. The system program area 6 is a storage area for various programs that execute system processing such as application program update (download) processing. The update processing system program is also provided with a determination function for checking the number of update target programs and the like and determining whether the update process is within a specified time.
ここで判定機能とは、メモリの性能の測定値とアプリケーションプログラムのステップ数(プログラム総容量)、コントローラの定周期(図10参照)における更新処理に割ける時間(規定の時間)等より判定する。例えば、メモリへの書き込み速度m(バイト/sec)、規定の時間をT(msec)、更新処理対象のアプリケーションプログラムの合計容量がa(バイト)だとすると、T>1000a/m(msec)を満たすときに規定の時間に収まると判定とする。実際には、判定自体に掛かる時間等の要因もあるが、メモリ書き込み速度に比べると十分に小さいものとみなすことができ、Tより小さい値を閾値に用いても良い。 Here, the determination function is determined based on the measured value of the memory performance, the number of application program steps (total program capacity), the time that can be allocated for the update process in a fixed period of the controller (see FIG. 10), etc. . For example, when T> 1000 a / m (msec) is satisfied, assuming that the writing speed to the memory m (byte / sec), the specified time is T (msec), and the total capacity of the application program to be updated is a (byte). Is determined to be within the specified time. Actually, there are factors such as the time taken for the determination itself, but it can be regarded as being sufficiently smaller than the memory writing speed, and a value smaller than T may be used as the threshold value.
アプリケーション位置登録テーブル7には、アプリケーションプログラム領域4に記憶される各アプリケーションプログラムのポインタ(先頭アドレス)が記憶される。例えば、アプリケーションプログラム領域4に記憶されるプログラムA、プログラムBの各プログラムのポインタが、アプリケーション位置登録テーブル7に記憶されている。 The application location registration table 7 stores pointers (head addresses) of the application programs stored in the application program area 4. For example, pointers of programs A and B stored in the application program area 4 are stored in the application location registration table 7.
図1のコントローラシステム10は、アプリケーションプログラム領域4に記憶される各アプリケーションプログラムの実行と、システムプログラム領域6に記憶されるダウンロード等のシステム処理に対応する各システムプログラムの実行とをサイクリックに(定周期的に)繰り返す。 The controller system 10 of FIG. 1 cyclically executes each application program stored in the application program area 4 and each system program corresponding to a system process such as download stored in the system program area 6 ( Repeat periodically).
アプリケーションプログラムを実行するときには、マイクロプロセッサ1は、アプリケーション位置登録テーブル7を通して、アプリケーションプログラム領域4上の各アプリケーションプログラムの記憶位置を認識し、対象とするアプリケーションプログラムの各命令等を演算部3に読み込み実行する。なお、使用頻度の高いアプリケーションプログラムは、通常、キャッシュメモリ8上に記憶されているため、そこから演算部3に読み込み実行する。 When executing the application program, the microprocessor 1 recognizes the storage position of each application program on the application program area 4 through the application position registration table 7 and reads each instruction of the target application program into the calculation unit 3. Run. Note that application programs that are frequently used are normally stored in the cache memory 8, and are read into the calculation unit 3 and executed from there.
システムプログラムを実行するときには、マイクロプロセッサ1は、システムプログラム領域6から対象とする(更新処理等の)システムプログラムの各命令等を演算部3に読み込み実行する。 When executing the system program, the microprocessor 1 reads each instruction and the like of the target system program (such as update processing) from the system program area 6 and executes it.
図2は、本実施形態のコントローラシステムにおけるアプリケーションプログラムの更新処理のフローチャートである。このオンライン更新処理は支援ツール(不図示)からアプリケーションプログラムがダウンロードされると更新処理用システムプログラム(不図示)により実行される。このフローチャートの各ステップは、アプリケーションプログラムの実行期間の間の空き時間に、すなわち、アプリケーションプログラムの実行期間が終了したこと(アプリケーションプログラムのエンド)が検出される度に、断続的に実行される。 FIG. 2 is a flowchart of application program update processing in the controller system of this embodiment. This online update processing is executed by an update processing system program (not shown) when an application program is downloaded from a support tool (not shown). Each step of this flowchart is executed intermittently in the idle time during the execution period of the application program, that is, whenever the end of the execution period of the application program (end of the application program) is detected.
図2において、ステップS1で、ダウンロードされたアプリケーションプログラム(“AppProg”と表記することもある)がアプリケーションプログラム領域(マイクロプロセッサ1の外部にあることから「外部メモリ」ともいう)4に格納される。すなわち、更新指示に含まれる、オンライン更新以前に格納された既存のアプリケーションプログラムに対しては、更新の内容(再格納する)に従って上書き等の処理を行なう。 In FIG. 2, the downloaded application program (sometimes referred to as “AppProg”) is stored in the application program area (also referred to as “external memory” because it is outside the microprocessor 1) 4 in step S <b> 1. . That is, overwriting or the like is performed on the existing application program stored before the online update included in the update instruction according to the update contents (restore).
そして、更新指示に含まれる新規に追加するアプリケーションプログラムをアプリケーションプログラム領域4の空き領域に格納する。
また、外部メモリ4に対し全検索を実施し、キャッシュメモリ8には記憶されていて今回の更新指示では更新されないアプリケーションプログラム(更新せずキャッシュメモリ8に残るアプリケーションプログラム)を見つける。
Then, the newly added application program included in the update instruction is stored in the free area of the application program area 4.
Further, the entire search is performed on the external memory 4 to find an application program (an application program that is not updated and remains in the cache memory 8) that is stored in the cache memory 8 and is not updated by the current update instruction.
そして、再格納(上書き)したアプリケーションプログラムと、外部メモリ4に対する検索処理により見つけられた、更新せずキャッシュメモリに残るアプリケーションプログラムと、新規追加するアプリケーションプログラムとを外部メモリ4上でアドレスが連続するように(複写などにより)再配置する。そして、複写元のアプリケーションプログラムおよび更新指示に削除するものとして指定されているアプリケーションプログラムを外部メモリ4から削除する。 Then, the addresses of the application program that has been re-stored (overwritten), the application program that has been found by the search process for the external memory 4 and remains in the cache memory without being updated, and the application program to be newly added are consecutive on the external memory 4. Rearrange (by copying etc.) Then, the copy source application program and the application program designated to be deleted in the update instruction are deleted from the external memory 4.
上記で示した方法は一例に過ぎず、更新指示に含まれる新規に追加するアプリケーションプログラムを格納する時点で、アドレスが連続になるように配置してもよい。また、オンライン更新以前に格納された既存のアプリケーションプログラムを上書き更新せずに、新規に追加するアプリケーションプログラムとアドレスが連続になるように配置する(この段階では、新旧アプリケーションプログラムが共存する)。 The method described above is merely an example, and the addresses may be arranged to be continuous at the time of storing a newly added application program included in the update instruction. In addition, the existing application program stored before online update is not overwritten and updated so that the address of the newly added application program and the address are continuous (at this stage, the new and old application programs coexist).
その後、外部メモリ4に対し全検索を実施し、キャッシュメモリ8には記憶されていて今回の更新指示では更新されないアプリケーションプログラム(更新せずキャッシュメモリ8に残るアプリケーションプログラム)を見つける。 Thereafter, a full search is performed on the external memory 4 to find an application program that is stored in the cache memory 8 and is not updated by the current update instruction (an application program that is not updated and remains in the cache memory 8).
そして、外部メモリ4に対する検索処理により見つけられた、更新せずキャッシュメモリに残るアプリケーションプログラムを、一連の連続したアドレスして配置されているアプリケーションプログラムと外部メモリ4上でアドレスが連続するように(複写などにより)再配置する。 Then, the application program that is found in the search process for the external memory 4 and remains in the cache memory without being updated is arranged so that the address is continuous on the external memory 4 with the application program arranged as a series of consecutive addresses ( Relocate (eg by copying).
最後に、複写元のアプリケーションプログラム、更新指示に削除するものとして指定されているアプリケーションプログラム、更新指示で更新するものとして指定されているアプリケーションプログラムで上書きしなかっため残っているアプリケーションプログラム、を外部メモリ4から削除する。 Finally, copy the source application program, the application program specified to be deleted in the update instruction, and the application program remaining as it is not overwritten by the application program specified to be updated in the update instruction. Delete from 4.
続く、ステップS2では、キャッシュメモリ8内のアプリケーションプログラムをすべて無効化する。
ステップS2に続くステップS3では、外部メモリ4上で再配置された連続する各アプリケーションプログラム(新規追加したもの、変更したもの、今回は更新しないものを含む)をキャッシュメモリ8に格納する。
In the next step S2, all application programs in the cache memory 8 are invalidated.
In step S3 following step S2, each successive application program (including newly added, changed, and not updated this time) rearranged on the external memory 4 is stored in the cache memory 8.
そして、続く、ステップS4において、アプリケーション位置登録テーブル7のポインタを書き換えることにより、旧アプリケーションプログラムから新アプリケーションプログラムへの切り替えが行なわれ、一連の処理を終了する。 In step S4, the pointer in the application location registration table 7 is rewritten to switch from the old application program to the new application program, and the series of processing ends.
図3は、ある更新指示に対して、第2の従来技術のコントローラシステムと、本実施形態のコントローラシステムの動作を比較して示した図である。
ここでは、コントローラシステム10に対し、アプリケーションプログラムProg1削除、Prog4、Prog6、Prog10格納、Prog2再格納という指示内容を持つ更新指示が出た場合の、第2の従来技術のコントローラシステムと、本実施形態のコントローラシステムの動作を比較している。コントローラシステム10の更新指示が出た時点での状態は、外部メモリ4に、Prog1、Prog2、Prog3、Prog5、Prog7、Prog8、Prog11、Prog12、Prog13が格納され、キャッシュメモリ8に、Prog1、Prog2、Prog3、Prog5が格納されている。
FIG. 3 is a diagram comparing the operation of the controller system of the second prior art and the controller system of the present embodiment with respect to a certain update instruction.
Here, the controller system according to the second prior art when the controller system 10 receives an update instruction having instructions to delete the application program Prog1, store Prog4, Prog6, Prog10, and store Prog2 again. The operation of the controller system is compared. When the controller system 10 is instructed to update, the external memory 4 stores Prog1, Prog2, Prog3, Prog5, Prog7, Prog8, Prog11, Prog12, Prog13, and the cache memory 8 stores Prog1, Prog2, Prog3 and Prog5 are stored.
本実施形態のコントローラシステムでは、図2のステップS1に対応する処理として、外部メモリ4の連続した空き領域に、Prog4、Prog6、Prog10を格納し、Prog2をProg4、Prog6、Prog10と連続するように再格納する。そして、外部メモリ4上を全検索することにより、キャッシュメモリ8に格納されていて、今回オンライン更新しないプログラム(Prog3、Prog5)を見つける。そして、見つけたProg3、Prog5を、Prog4、Prog6、Prog10及びProg2にアドレスが連続するように、外部メモリ4内で複写を行い、複写したProg2、Prog3、Prog5について、その複写元の領域を外部メモリ4から削除するとともに、削除指示が出ているProg1を外部メモリ4から削除する。更に、再格納したことにより新旧共存しているProg2のうち、元から格納されていたProg2を外部メモリ4から削除する。 In the controller system of this embodiment, as processing corresponding to step S1 in FIG. 2, Prog4, Prog6, and Prog10 are stored in continuous free areas of the external memory 4, and Prog2 is continuous with Prog4, Prog6, and Prog10. Store again. Then, by searching all over the external memory 4, the programs (Prog3, Prog5) stored in the cache memory 8 and not updated online at this time are found. The found Prog3 and Prog5 are copied in the external memory 4 so that the addresses are continuous with Prog4, Prog6, Prog10 and Prog2, and the copy source area of the copied Prog2, Prog3 and Prog5 is set to the external memory. In addition to deleting from Prog 1, Prog 1 for which a deletion instruction is issued is deleted from the external memory 4. Further, the Prog 2 that has been stored from the original is deleted from the external memory 4 among the Prog 2 that coexist with the old and new by storing again.
なお、このケースでは、更新指示に含まれるプログラムの数が多くて、更新時間が実行周期に影響を与えるものと判断されたと仮定する。
図2のステップS2に対応する処理として、キャッシュメモリ8に格納されている全アプリケーションプログラム(Prog1、Prog2、Prog3、Prog5)を削除せずに、キャッシュメモリ8の全領域を無効なアプリケーションとする。
In this case, it is assumed that the number of programs included in the update instruction is large and it has been determined that the update time affects the execution cycle.
As processing corresponding to step S2 in FIG. 2, all application programs (Prog1, Prog2, Prog3, Prog5) stored in the cache memory 8 are not deleted, and the entire area of the cache memory 8 is invalidated.
図2のステップS3に対応する処理として、アドレスが連続するProg2、Prog4、Prog6、Prog10、Prog3、Prog5をキャッシュメモリ8に格納する。
続いて、第2の従来技術のコントローラシステムの動作を説明する。
As processing corresponding to step S3 in FIG. 2, Prog2, Prog4, Prog6, Prog10, Prog3, and Prog5 having consecutive addresses are stored in the cache memory 8.
Next, the operation of the second prior art controller system will be described.
第2の従来技術のコントローラシステムでは、図10のステップS21に対応する処理として、外部メモリ4内のProg1を削除し、Prog2を再格納し、Prog4、Prog6、Prog10を外部メモリ4内の空き領域に格納する。 In the second prior art controller system, as processing corresponding to step S21 in FIG. 10, Prog1 in the external memory 4 is deleted, Prog2 is stored again, and Prog4, Prog6, and Prog10 are free areas in the external memory 4. To store.
次に、図10のステップS22に対応する処理として、キャッシュメモリ8に、今回の更新指示で変更対象になっているか、あるいは、削除対象になっているプログラムが存在するかどうかを判定している。そして、削除指示が出ているProg1、再格納により変更されたProg2の前のバージョンをキャッシュメモリ8から削除する。続いて、キャッシュメモリ8の格納先検索処理として空き領域を検索し、今回更新(変更)する既存のアプリケーションプログラム(Prog2)や、今回新規追加するアプリケーションプログラム(Prog4、Prog6、Prog10)をその検索された空き領域に格納する。 Next, as a process corresponding to step S22 in FIG. 10, it is determined whether or not the cache memory 8 has a program to be changed or deleted by the current update instruction. . Then, the previous version of Prog1 for which deletion instruction has been issued and Prog2 changed by the re-storing is deleted from the cache memory 8. Subsequently, as a storage location search process in the cache memory 8, a free area is searched, and an existing application program (Prog2) to be updated (changed) or a newly added application program (Prog4, Prog6, Prog10) is searched. Store in the free space.
このように、本実施形態では、外部メモリ4上で、更新する(変更や新規追加の)アプリケーションプログラムおよび、キャッシュメモリ8に既に格納されオンライン更新しないアプリケーションプログラムをアドレスが連続するように再配置し、キャッシュメモリ8を無効化し、外部メモリ4上から再配置された連続するプログラム群をキャッシュメモリ8にすべて格納している。 As described above, in this embodiment, the application program to be updated (changed or newly added) and the application program already stored in the cache memory 8 and not updated online are rearranged so that the addresses are continuous on the external memory 4. The cache memory 8 is invalidated and all the continuous program groups rearranged from the external memory 4 are stored in the cache memory 8.
このため、更新するアプリケーションプログラムの数が多くなった場合に時間がかかる処理となる、アプリケーションプログラムをキャッシュメモリ8に格納する際の格納先検索処理、今回の更新指示で変更対象になっているか、あるいは、削除対象になっているプログラムがキャッシュメモリ8に存在するかどうかの判定処理をなくすことができ、オンライン更新処理の一部としての、キャッシュメモリ8への格納処理に要する時間を短縮できる。 For this reason, when the number of application programs to be updated increases, it takes a long time, the storage location search process when storing the application program in the cache memory 8, whether the current update instruction is the target of change, Alternatively, it is possible to eliminate the process of determining whether or not the program to be deleted exists in the cache memory 8, and to reduce the time required for the storage process in the cache memory 8 as a part of the online update process.
よって、キャッシュメモリ8への格納処理が延びたことに伴って、オンライン更新の前後での実行時間の定時性が維持できなくなることを避けることができ、更新するアプリケーションプログラムの数が多くなった場合でも、システム運用の定周期性を維持することができる。 Therefore, it is possible to avoid the fact that the fixed time of the execution time before and after the online update cannot be maintained as the storage process in the cache memory 8 is extended, and the number of application programs to be updated increases. However, it can maintain the regularity of system operation.
1、101 マイクロプロセッサ
2、102 メモリ
3、103 演算部
4、104 アプリケーションプログラム領域
5、105 アプリケーションデータ領域
6、106 システムプログラム領域
7、107 アプリケーション位置登録テーブル
8、111 キャッシュメモリ
10、100、110 コントローラシステム
DESCRIPTION OF SYMBOLS 1,101 Microprocessor 2,102 Memory 3,103 Operation part 4,104 Application program area 5,105 Application data area 6,106 System program area 7,107 Application location registration table 8,111 Cache memory 10,100,110 Controller system
Claims (4)
前記第1メモリに記憶された、前記更新指示のないアプリケーションプログラムを前記第2メモリ上で検索して記憶位置を特定する非更新プログラム記憶位置特定手段と、
前記第2メモリに記憶された前記更新指示に応じて今回更新されるアプリケーションプログラムと、今回新規に追加されるアプリケーションプログラムと、前記記憶位置を特定した、更新しないアプリケーションプログラムとを、前記第2メモリ上で、アドレスが連続するように再配置する再配置手段と、
前記定周期のタイミングで前記第1メモリに記憶されたすべてのアプリケーションプログラムを無効化するとともに、前記定周期の次のタイミングで前記再配置された連続するアプリケーションプログラムを、前記第1メモリに格納する格納手段と、を有することを特徴とするプログラマブルコントローラ。 First and second memories for storing application programs, a processing device, and a calculation unit, wherein the processing device stores the application programs in the priority order of the first memory and the second memory. In a programmable controller that reads / executes to the arithmetic unit and receives an update instruction of the application program at a fixed cycle timing,
Non-update program storage location specifying means for searching the second memory for an application program without the update instruction stored in the first memory and specifying a storage location;
An application program that is updated this time in response to the update instruction stored in the second memory, an application program that is newly added this time, and an application program that is not updated and that specifies the storage location. In the above, rearrangement means for rearranging so that the addresses are continuous,
All application programs stored in the first memory at the fixed cycle timing are invalidated, and the rearranged continuous application programs are stored in the first memory at the next timing of the fixed cycle. And a storage means.
前記判定手段により、更新処理が規定時間に収まらないと判定された場合に、前記非更新プログラム記憶位置特定手段、前記再配置手段および前記格納手段が実行されることを特徴とする請求項1記載のプログラマブルコントローラ。 According to the number of application programs included in the update instruction, further includes a determination unit that determines whether or not the update process falls within the fixed period,
2. The non-update program storage location specifying unit, the rearrangement unit, and the storage unit are executed when it is determined by the determination unit that the update process does not fall within a specified time. Programmable controller.
前記第1メモリに記憶された、前記更新指示のないアプリケーションプログラムを前記第2メモリ上で検索して記憶位置を特定するステップと、
前記第2メモリに記憶された今回更新されるアプリケーションプログラムと、今回新規に追加されるアプリケーションプログラムと、前記記憶位置を特定した、更新しないアプリケーションプログラムとを、前記第2メモリ上で、アドレスが連続するように再配置するステップと、
前記定周期のタイミングで前記第1メモリに記憶されたすべてのアプリケーションプログラムを無効化するとともに、前記定周期の次のタイミングで前記再配置された連続するアプリケーションプログラムを、前記第1メモリに格納するステップと、を有することを特徴とするアプリケーションプログラムの更新方法。 First and second memories for storing application programs, a processing device, and a calculation unit, wherein the processing device stores the application programs in the priority order of the first memory and the second memory. In the update method of the application program executed by the programmable controller that reads / executes to the calculation unit and receives the update instruction of the application program at a fixed cycle timing,
Searching the second memory for an application program stored in the first memory without the update instruction and specifying a storage location;
The application program stored in the second memory that is updated this time, the application program that is newly added this time, and the application program that is not updated and that specifies the storage location are continuously addressed on the second memory. A step of rearranging and
All application programs stored in the first memory at the fixed cycle timing are invalidated, and the rearranged continuous application programs are stored in the first memory at the next timing of the fixed cycle. And a method for updating an application program.
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2009159142A JP5338528B2 (en) | 2009-07-03 | 2009-07-03 | Programmable controller and application program update method |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2009159142A JP5338528B2 (en) | 2009-07-03 | 2009-07-03 | Programmable controller and application program update method |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2011014043A JP2011014043A (en) | 2011-01-20 |
JP5338528B2 true JP5338528B2 (en) | 2013-11-13 |
Family
ID=43592837
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2009159142A Expired - Fee Related JP5338528B2 (en) | 2009-07-03 | 2009-07-03 | Programmable controller and application program update method |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP5338528B2 (en) |
Families Citing this family (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP5669652B2 (en) * | 2011-04-01 | 2015-02-12 | 三菱電機株式会社 | Programmable controller system and memory organizing method |
JP5768627B2 (en) * | 2011-09-27 | 2015-08-26 | 富士電機株式会社 | Programmable controller, program creation support apparatus, digital control program, and program creation support program |
JP2015141648A (en) * | 2014-01-30 | 2015-08-03 | 三菱電機株式会社 | programmable controller |
Family Cites Families (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH0452832A (en) * | 1990-06-15 | 1992-02-20 | Mitsubishi Electric Corp | Arithmetic control system |
JPH06139123A (en) * | 1992-10-29 | 1994-05-20 | Toshiba Corp | Storage device for file |
JP2002063042A (en) * | 2000-08-21 | 2002-02-28 | Nec Microsystems Ltd | Program module management system, management method therefor and recording medium with its management program recorded on the same |
JP2006039848A (en) * | 2004-07-26 | 2006-02-09 | Sharp Corp | Data processor, and image forming apparatus including the processor |
-
2009
- 2009-07-03 JP JP2009159142A patent/JP5338528B2/en not_active Expired - Fee Related
Also Published As
Publication number | Publication date |
---|---|
JP2011014043A (en) | 2011-01-20 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11150891B2 (en) | Method and device for updating software executed from non-volatile memory | |
TW501011B (en) | Data processing circuit with cache memory | |
US20080276036A1 (en) | Memory with Block-Erasable Location | |
JP2007133487A (en) | File management method, device, and program | |
EP1966699A2 (en) | Memory with block-erasable locations and a linked chain of pointers to locate blocks with pointer information | |
JP2011513853A (en) | Associative storage system and method | |
WO2007072317A2 (en) | Non-volatile memory with block erasable locations | |
JP2008242944A (en) | Integrated memory management device and method | |
JP5874525B2 (en) | Control device, storage device, and storage control method | |
JP6123766B2 (en) | Data reading apparatus, program, and data reading method | |
JP5338528B2 (en) | Programmable controller and application program update method | |
US20030200232A1 (en) | Information processor and program | |
JP2007304747A (en) | Computer system and memory access method | |
JP2006350633A (en) | Data management method and data management system | |
JP2006202233A (en) | Controller and program for same | |
JP6618941B2 (en) | Management apparatus, information processing apparatus, and management method | |
JP5949122B2 (en) | Control device, storage device, and storage control method | |
WO2007096844A2 (en) | Memory with block-erasable locations | |
KR101020781B1 (en) | A method for log management in flash memory-based database systems | |
JP2011081641A (en) | Memory controller | |
JP2006184979A (en) | Write processing method and program of file information | |
JP2013003655A (en) | Control device for writing data in flash memory | |
JP5818569B2 (en) | File system, file management method, semiconductor storage device, information processing apparatus, and program | |
JP2010198592A (en) | Mobile terminal apparatus, software update method, operation control method, and program | |
JP2017097404A (en) | Microcomputer |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A711 | Notification of change in applicant |
Free format text: JAPANESE INTERMEDIATE CODE: A712 Effective date: 20110422 |
|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20120614 |
|
A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20130611 |
|
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: 20130709 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20130722 |
|
R150 | Certificate of patent or registration of utility model |
Free format text: JAPANESE INTERMEDIATE CODE: R150 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
LAPS | Cancellation because of no payment of annual fees |