Deprecated: The each() function is deprecated. This message will be suppressed on further calls in /home/zhenxiangba/zhenxiangba.com/public_html/phproxy-improved-master/index.php on line 456
JP5669652B2 - Programmable controller system and memory organizing method - Google Patents
[go: Go Back, main page]

JP5669652B2 - Programmable controller system and memory organizing method - Google Patents

Programmable controller system and memory organizing method Download PDF

Info

Publication number
JP5669652B2
JP5669652B2 JP2011082231A JP2011082231A JP5669652B2 JP 5669652 B2 JP5669652 B2 JP 5669652B2 JP 2011082231 A JP2011082231 A JP 2011082231A JP 2011082231 A JP2011082231 A JP 2011082231A JP 5669652 B2 JP5669652 B2 JP 5669652B2
Authority
JP
Japan
Prior art keywords
program
change
variable
programmable controller
information
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
Application number
JP2011082231A
Other languages
Japanese (ja)
Other versions
JP2012216150A (en
Inventor
潤 仲川
潤 仲川
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Mitsubishi Electric Corp
Original Assignee
Mitsubishi Electric Corp
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Mitsubishi Electric Corp filed Critical Mitsubishi Electric Corp
Priority to JP2011082231A priority Critical patent/JP5669652B2/en
Publication of JP2012216150A publication Critical patent/JP2012216150A/en
Application granted granted Critical
Publication of JP5669652B2 publication Critical patent/JP5669652B2/en
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Stored Programmes (AREA)
  • Programmable Controllers (AREA)
  • Memory System (AREA)

Description

この発明は、プログラマブルコントローラシステムおよびメモリ整理方法に関するものである。   The present invention relates to a programmable controller system and a memory organizing method.

従来のプログラマブルコントローラのユーザプログラムでは、演算に使用するデータ領域を指定する手段として、メモリアドレスをユーザプログラムに直接記述していた。しかし、近年になって、ユーザプログラム上では変数を使用してロジックを記述し、コンパイル時に変数をメモリアドレスに置き換えることで、ユーザがメモリアドレスを意識せずにプログラムを作成する、いわゆる変数プログラミングが利用されるようになってきた。   In the user program of the conventional programmable controller, the memory address is directly described in the user program as means for designating the data area used for the calculation. In recent years, however, so-called variable programming has been used in which a user program is created without using a memory address by describing logic using variables in a user program and replacing variables with memory addresses during compilation. It has come to be used.

一方、プログラマブルコントローラは、装置設備が動作中でも不具合の修正や動作調整のためにユーザプログラムを追加/修正/削除する必要が生じる。その場合、プログラマブルコントローラがユーザプログラムを実行中でも、ユーザプログラムを修正できるRUN中書込みが利用される。   On the other hand, the programmable controller needs to add / modify / delete a user program in order to correct a defect or adjust an operation even when the equipment is operating. In this case, RUN in-write that can modify the user program is used even when the programmable controller is executing the user program.

RUN中書込みの従来技術として、CPU(Central Processing Unit)ユニットのプログラムメモリ内に修正後のユーザプログラムをダウンロードして置き、END処理にてユーザプログラムを修正前から修正後に差し替えたり、実行中のプログラムを、複数スキャンのEND処理にて徐々にずらしていき、必要なスペースができた時点で変更後のプログラムで変更箇所を上書きすることでユーザプログラムを更新したりする方法が知られている(たとえば、特許文献1,2参照)。   As a conventional technique of RUN medium writing, a modified user program is downloaded and placed in a program memory of a CPU (Central Processing Unit) unit, and the user program is replaced by an END process after modification or after execution. Are gradually shifted in the END processing of a plurality of scans, and when a necessary space is created, a method for updating the user program by overwriting the changed portion with the changed program is known (for example, Patent Documents 1 and 2).

変数プログラミングにおけるRUN中書込みでは、修正したユーザプログラムをコンパイルする際、修正前から使用されている各変数が、修正前と修正後とで、異なるメモリアドレスに割付けられてしまうと、参照するデータが異なるため、ユーザプログラム上での変数の使い方によっては、プログラムが誤動作してしまうという問題がある。   In RUN write in variable programming, when compiling a modified user program, if each variable used before modification is assigned to a different memory address before and after modification, the data to be referred to is changed. Because of the difference, there is a problem that the program malfunctions depending on how the variable is used in the user program.

そこで、変数とその変数のメモリアドレスへの割付情報をあらかじめ保存しておき、RUN中書込み時のコンパイルでは、既にメモリアドレスに割付けられている変数に対しては、CPUユニットのメモリアドレスへの割付を変更せず、追加/変更された変数に対してのみ、新たにCPUユニットのメモリアドレスを割付けることでプログラムの誤動作防止を図っている。   Therefore, the variable and the allocation information to the memory address of the variable are saved in advance, and in the compilation at the time of RUN writing, the variable already allocated to the memory address is allocated to the memory address of the CPU unit. The program is prevented from malfunctioning by newly assigning the memory address of the CPU unit only to the added / changed variable without changing the.

特開2001−142510号公報JP 2001-142510 A 特開平10−301605号公報JP-A-10-301605

しかしながら、RUN中書込による変数の追加/変更/削除が頻繁に行われる場合、データメモリ領域内で変数が割付けられていない未使用の領域が点在し、断片化された状態となる。また、配列変数や構造体変数などの複数の変数をまとめて扱う場合、複数の変数分の連続領域が必要となるため、データメモリ内での未使用の領域も多くなり、データメモリの使用効率の低下が顕著となる。   However, when addition / change / deletion of variables by frequent writing during RUN is frequently performed, unused areas to which variables are not allocated are scattered in the data memory area, resulting in a fragmented state. Also, when handling multiple variables such as array variables and structure variables at the same time, a continuous area for multiple variables is required, so the unused area in the data memory also increases, and the data memory usage efficiency increases. The reduction of the becomes remarkable.

データメモリ内で未使用の領域が点在する状態で、配列変数や構造体変数を追加する場合、空き容量全体では容量として十分に追加可能であっても、連続領域を確保できず、変数を追加できないという問題点があった。   When adding an array variable or structure variable in a state where unused areas are scattered in the data memory, the continuous area cannot be secured even if the capacity can be sufficiently added in the entire free capacity, and the variable There was a problem that could not be added.

この発明は、上記に鑑みてなされたもので、配列変数や構造体変数などの高度なデータ構造を扱うプログラマブルコントローラとプログラミングツールとが接続されたプログラマブルコントローラシステムにおいて、変数を追加する際に、断片化されたメモリ領域を整理し、連続領域を確保できるプログラマブルコントローラシステムおよびメモリ整理方法を得ることを目的とする。   The present invention has been made in view of the above. In a programmable controller system in which a programmable controller that handles advanced data structures such as array variables and structure variables and a programming tool are connected, a fragment is added when a variable is added. It is an object of the present invention to obtain a programmable controller system and a memory organizing method capable of organizing a memory area and securing a continuous area.

上記目的を達成するため、この発明にかかるプログラマブルコントローラシステムは、プログラムに基づいて制御対象を制御するプログラマブルコントローラと、前記プログラマブルコントローラで使用される前記プログラムを管理するプログラミングツールと、を備えるプログラマブルコントローラシステムにおいて、前記プログラミングツールは、前記プログラム中で使用されている変数とサイズ、および前記プログラマブルコントローラのデータ記憶手段内のアドレスとを対応付ける変数割付情報を格納する変数割付情報格納手段と、ユーザによって作成されたプログラムと前記変数割付情報から前記プログラマブルコントローラで実行可能な実行コードを生成するコンパイル手段と、変更前の前記変数割付情報から前記プログラマブルコントローラの前記データ記憶手段内の前記変数に割付けられている領域のうち断片化されている領域を移動対象領域として抽出する移動対象領域抽出部、前記移動対象領域を他の変数に割付けられている領域と連続するように配置する前記データ記憶手段内の変更先アドレスを取得する変更先アドレス取得部、前記移動対象領域と前記変更先アドレスとを含む割付変更後の変数割付情報と、前記プログラムと、から前記コンパイル手段を通じて割付変更後のプログラムの実行コードを取得する変更後実行コード取得部、前記割付変更後のプログラムの実行コードの前記割付変更前のプログラムの実行コードからの変更箇所を変更情報として取得する変更情報取得部、および前記移動対象領域と前記変更先アドレスとを用いて前記変数の前記データ記憶手段内での割当先の変更に伴って生じる前記プログラムの実行コードの変更箇所を割付変更情報として生成する割付変更情報生成部を有する変数割付管理手段と、前記変数割付管理手段によって生成される変更情報と割付変更情報とを前記プログラマブルコントローラに送信する通信手段と、を備え、前記プログラマブルコントローラは、前記プログラムの実行コードを記憶するプログラム記憶手段と、前記プログラムの実行コードを実行するプログラム実行手段と、前記プログラム実行手段による前記プログラムの実行コードの実行時に使用するデータを格納する前記データ記憶手段と、前記プログラミングツールからの前記変更情報を用いて前記プログラム記憶手段中の実行コードの書換え処理を行うと同時に、前記プログラミングツールからの前記割付変更情報にしたがって前記データ記憶手段中の前記移動対象領域中のデータを前記変更先アドレスで指定される領域に移動させる処理を行うメモリ整理実行手段と、を備えることを特徴とする。
In order to achieve the above object, a programmable controller system according to the present invention includes a programmable controller that controls a control target based on a program, and a programming tool that manages the program used in the programmable controller. The programming tool is created by a user and variable assignment information storage means for storing variable assignment information for associating variables and sizes used in the program with addresses in the data storage means of the programmable controller. Compiling means for generating executable code executable by the programmable controller from the program and the variable assignment information, and the programmer program from the variable assignment information before the change. A movement target area extracting unit that extracts a fragmented area among the areas allocated to the variable in the data storage means of the controller as a movement target area, and the movement target area is allocated to another variable. A change destination address acquisition unit for acquiring a change destination address in the data storage means arranged so as to be continuous with an area, variable assignment information after assignment change including the movement target area and the change destination address, and the program The changed execution code acquisition unit for acquiring the execution code of the program after the assignment change through the compiling means, the change information from the execution code of the program before the assignment change of the execution code of the program after the assignment change is changed information The change information acquisition unit to acquire the A variable assignment management means having allocation change information generating unit that generates the changes of the execution code of the program caused by the allocation destination change in the data storage means as the allocation change information is generated by said variable allocation management unit Communication means for transmitting the change information and the assignment change information to the programmable controller , wherein the programmable controller stores program execution code for the program, and program execution for executing the program execution code. Means, data storage means for storing data to be used when the program execution means executes the execution code of the program, and rewriting processing of the execution code in the program storage means using the change information from the programming tool At the same time A memory organization execution means for performing a process of moving the data in the movement target area in the data storage means to the area specified by the change destination address according to the allocation change information from the ming tool. And

この発明によれば、変数プログラミングにおいて配列変数や構造体変数などの高度なデータ構造を使用しているユーザプログラムに対してRUN中書込みを繰り返し実行しても、効率よくデータメモリ領域を使用することが可能となる効果を有する。   According to the present invention, a data memory area can be efficiently used even when repeated execution of RUN write is repeatedly performed on a user program that uses advanced data structures such as array variables and structure variables in variable programming. Has the effect of enabling.

図1は、この実施の形態によるプログラマブルコントローラシステムの機能構成の一例を模式的に示すブロック図である。FIG. 1 is a block diagram schematically showing an example of a functional configuration of a programmable controller system according to this embodiment. 図2は、変数割付情報の一例を示す図である。FIG. 2 is a diagram illustrating an example of variable allocation information. 図3−1は、実施の形態によるメモリ整理処理の一例を示すフローチャートである(その1)。FIG. 3A is a flowchart illustrating an example of a memory organization process according to the embodiment (part 1). 図3−2は、実施の形態によるメモリ整理処理の一例を示すフローチャートである(その2)。FIG. 3-2 is a flowchart of an example of a memory organization process according to the embodiment (part 2). 図3−3は、実施の形態によるメモリ整理処理の一例を示すフローチャートである(その3)。FIG. 3-3 is a flowchart illustrating an example of a memory organization process according to the embodiment (part 3). 図4は、CPUユニットのデータメモリの整理状態を模式的に示す図である。FIG. 4 is a diagram schematically showing an organized state of the data memory of the CPU unit. 図5は、移動対象領域を所定のサイズに分割して変更先アドレスへと移動させる場合の例を模式的に示す図である。FIG. 5 is a diagram schematically illustrating an example in which the movement target area is divided into a predetermined size and moved to the change destination address.

以下に添付図面を参照して、この発明の実施の形態にかかるプログラマブルコントローラシステムおよびメモリ整理方法を詳細に説明する。なお、この実施の形態によりこの発明が限定されるものではない。   A programmable controller system and a memory organizing method according to embodiments of the present invention will be described below in detail with reference to the accompanying drawings. Note that the present invention is not limited to the embodiments.

図1は、この実施の形態によるプログラマブルコントローラシステムの機能構成の一例を模式的に示すブロック図である。プログラマブルコントローラシステムは、ユーザプログラム(シーケンスプログラム)にしたがって制御対象を制御することによって所定の処理を実行させて、製品の加工や製造を行うものである。この例では、プログラマブルコントローラシステムは、CPUユニット20で実行されるユーザプログラムのコンパイル処理を行うプログラミングツール10と、制御対象の制御処理を行う制御データを演算するCPUユニット20と、を備える。   FIG. 1 is a block diagram schematically showing an example of a functional configuration of a programmable controller system according to this embodiment. A programmable controller system performs a predetermined process by controlling a control target according to a user program (sequence program), and processes or manufactures a product. In this example, the programmable controller system includes a programming tool 10 that performs compilation processing of a user program executed by the CPU unit 20 and a CPU unit 20 that calculates control data for performing control processing of a control target.

プログラミングツール10は、ユーザがユーザプログラムを編集するためのI/Fを提供するプログラムエディタ部11と、ユーザプログラムで使用される変数とCPUユニット20のデータメモリ24でのメモリアドレスとの間の対応関係を示す変数割付情報を格納する変数割付情報格納部12と、プログラムエディタ部11で編集されたユーザプログラムと変数割付情報格納部12中の変数割付情報とに基づいてCPUユニット20で実行可能な実行コードを生成するコンパイラ13と、変数割付情報を管理する変数割付管理部14と、CPUユニット20との間で通信を行う通信部15と、を備える。   The programming tool 10 includes a program editor unit 11 that provides an I / F for a user to edit a user program, and correspondence between variables used in the user program and memory addresses in the data memory 24 of the CPU unit 20. Executable by the CPU unit 20 based on the variable assignment information storage unit 12 for storing variable assignment information indicating the relationship, the user program edited by the program editor unit 11 and the variable assignment information in the variable assignment information storage unit 12 A compiler 13 that generates an execution code, a variable allocation management unit 14 that manages variable allocation information, and a communication unit 15 that communicates with the CPU unit 20 are provided.

プログラムエディタ部11で編集されるユーザプログラム中では、メモリアドレスを変数を用いて記述しており、コンパイラ13での実行コード生成時に変数がCPUユニット20のデータメモリ24のメモリアドレスへと変換される。   In the user program edited by the program editor unit 11, the memory address is described using a variable, and the variable is converted into the memory address of the data memory 24 of the CPU unit 20 when the executable code is generated by the compiler 13. .

変数割付情報格納部12は、現在CPUユニット20で使用中の変数割付情報である変更前変数割付情報と、メモリ整理処理時に変数割付管理部14で生成される変更後変数割付情報と、を記憶することができるものとする。変数割付情報は、データメモリ24中の格納場所の先頭アドレスと、ユーザプログラムで使用される変数と、を対応付けている。図2は、変数割付情報の一例を示す図である。変数割付情報は、データメモリ24内の先頭アドレスと、先頭アドレスに対して割付けられた変数の名称(変数名)と、変数のサイズと、を対応付けて管理している。この図2では、データメモリ24の先頭アドレス「0x1000」にサイズ2の変数1が割当てられ、先頭アドレス「0x1006」にサイズ4の変数2が割当てられ、先頭アドレス「0x100C」にサイズ4の変数3が割当てられ、先頭アドレス「0x1010」にサイズ2の変数4が割当てられ、先頭アドレス「0x1014」にサイズ6の変数5が割当てられており、変数1と変数2の間、変数2と変数3の間、および変数4と変数5の間が未使用領域となっている場合が示されている。   The variable allocation information storage unit 12 stores pre-change variable allocation information, which is variable allocation information currently used by the CPU unit 20, and post-change variable allocation information generated by the variable allocation management unit 14 during memory organization processing. Shall be able to. The variable allocation information associates the start address of the storage location in the data memory 24 with the variable used in the user program. FIG. 2 is a diagram illustrating an example of variable allocation information. The variable allocation information manages the head address in the data memory 24, the name of the variable (variable name) assigned to the head address, and the size of the variable in association with each other. In FIG. 2, the variable 1 of size 2 is assigned to the start address “0x1000” of the data memory 24, the variable 2 of size 4 is assigned to the start address “0x1006”, and the variable 3 of size 4 is assigned to the start address “0x100C”. Is assigned, the variable 4 of size 2 is assigned to the head address “0x1010”, the variable 5 of size 6 is assigned to the head address “0x1014”, and between the variables 1 and 2, the variables 2 and 3 A case where the unused area is between the variable 4 and the variable 5 is shown.

変数割付管理部14は、CPUユニット20で動作しているユーザプログラムの変数割付情報から、CPUユニット20のデータメモリ24内に未使用領域が複数箇所に点在する場合に、変数が割付けられていない未使用領域が連続するように変数の割付を変更する。このような機能を達成するために、この実施の形態では変数割付管理部14は、変数割付情報管理部141と、移動対象領域抽出部142と、変更先アドレス取得部143と、変更後実行コード取得部144と、変更情報取得部145と、割付変更情報生成部146と、を有する。   The variable assignment management unit 14 assigns a variable from the variable assignment information of the user program running on the CPU unit 20 when unused areas are scattered in a plurality of locations in the data memory 24 of the CPU unit 20. Change the variable assignment so that there are no unused areas. In order to achieve such a function, in this embodiment, the variable allocation management unit 14 includes a variable allocation information management unit 141, a movement target area extraction unit 142, a change destination address acquisition unit 143, and a post-change execution code. An acquisition unit 144, a change information acquisition unit 145, and an allocation change information generation unit 146 are included.

変数割付情報管理部141は、メモリ整理処理の実行時に、CPUユニット20で使用されている変数割付情報を変数割付情報格納部26から取得し、変数割付情報格納部12に変更前変数割付情報として格納する。また、CPUユニット20にメモリ整理後の変更後変数割付情報が登録されると、変更後変数割付情報を変更前変数割付情報として変数割付情報格納部12に格納する機能も有する。   The variable allocation information management unit 141 acquires the variable allocation information used in the CPU unit 20 from the variable allocation information storage unit 26 when executing the memory organization process, and stores it in the variable allocation information storage unit 12 as the pre-change variable allocation information. Store. In addition, when the post-change variable allocation information after memory organization is registered in the CPU unit 20, the post-change variable allocation information is stored in the variable allocation information storage unit 12 as pre-change variable allocation information.

移動対象領域抽出部142は、変数割付情報格納部12の変更前変数割付情報を用いて、断片化されている使用領域を移動対象領域として抽出する。たとえば、変更前変数割付情報を用いてCPUユニット20のデータメモリ24の先頭アドレスから末尾アドレスに向かって未使用領域を検索し、発見した未使用領域の直後にある領域の先頭アドレスからつぎの未使用領域の先頭アドレスまでの領域を移動対象領域として抽出する。   The movement target area extraction unit 142 uses the pre-change variable allocation information in the variable allocation information storage unit 12 to extract the fragmented use area as the movement target area. For example, an unused area is searched from the head address of the data memory 24 of the CPU unit 20 toward the end address using the pre-change variable allocation information, and the next unused address is searched from the head address of the area immediately after the found unused area. The area up to the start address of the used area is extracted as the movement target area.

変更先アドレス取得部143は、変数が割り付けられていない(空き状態)アドレスを、変数割付情報格納部12の変更前変数割付情報からCPUユニット20のデータメモリ24の先頭アドレスから末尾アドレスに向かって検索し、最初にヒットしたアドレスを上記移動対象領域の変更先アドレスとして取得する。   The change destination address acquisition unit 143 changes the address to which no variable is assigned (empty state) from the variable assignment information before change in the variable assignment information storage unit 12 toward the end address from the top address of the data memory 24 of the CPU unit 20. Search is performed, and the first hit address is acquired as the change destination address of the movement target area.

変更後実行コード取得部144は、コンパイラ13を通じて移動対象領域に割付けられている変数の割付を変更先アドレスに変更したユーザプログラムの実行コード(以下、割付変更後のプログラムという)を生成する。   The post-change execution code acquisition unit 144 generates an execution code of a user program (hereinafter referred to as a program after the assignment change) in which the assignment of the variable assigned to the movement target area is changed to the change destination address through the compiler 13.

変更情報取得部145は、割付変更後のプログラムが割付変更前のユーザプログラムの実行コード(以下、割付変更前のプログラムという)から変化した分を変更情報として抽出する。割付変更前のプログラムは、変数割付情報格納部12の変更前変数割付情報を用いてコンパイラ13を通じて求めてもよいし、ターゲットとなるCPUユニット20から取得してもよい。   The change information acquisition unit 145 extracts, as change information, the amount that the program after the assignment change has changed from the execution code of the user program before the assignment change (hereinafter referred to as the program before the assignment change). The program before the allocation change may be obtained through the compiler 13 using the variable allocation information before the change in the variable allocation information storage unit 12 or may be acquired from the target CPU unit 20.

割付変更情報生成部146は、移動対象領域抽出部142で抽出された移動対象領域の先頭アドレスおよびサイズと、変更先アドレス取得部143で取得された変更先先頭アドレスと、から割付変更情報を生成する。なお、変更情報と割付変更情報は、通信部15を介してCPUユニット20へと送信される。   The allocation change information generation unit 146 generates allocation change information from the start address and size of the movement target area extracted by the movement target area extraction unit 142 and the change destination start address acquired by the change destination address acquisition unit 143. To do. The change information and the allocation change information are transmitted to the CPU unit 20 via the communication unit 15.

CPUユニット20は、プログラミングツール10との間で通信を行う通信部21と、ユーザプログラムを格納するプログラムメモリ22と、プログラムメモリ22中のユーザプログラムを実行するユーザプログラム実行部23と、ユーザプログラム実行部23によるユーザプログラムの実行中に使用されるデータを格納するデータメモリ24と、断片化されたデータメモリ24を整理するメモリ整理実行部25と、CPUユニット20に書き込まれたユーザプログラムの変数割付情報を保存する変数割付情報格納部26と、プログラミングツール10からの割付変更情報を格納する割付変更情報格納部27と、を備える。   The CPU unit 20 includes a communication unit 21 that communicates with the programming tool 10, a program memory 22 that stores a user program, a user program execution unit 23 that executes a user program in the program memory 22, and a user program execution A data memory 24 for storing data used during execution of the user program by the unit 23, a memory organization executing unit 25 for organizing the fragmented data memory 24, and variable allocation of the user program written in the CPU unit 20 A variable allocation information storage unit 26 that stores information and an allocation change information storage unit 27 that stores allocation change information from the programming tool 10 are provided.

ここで、メモリ整理実行部25は、プログラミングツール10から受け取った変更情報(または割付変更後のプログラム)をプログラムメモリ22内に格納し、RUN中書込機能を用いてプログラムメモリ22中のユーザプログラムを修正すると同時に、プログラミングツール10から受け取った割付変更情報に基づいてデータメモリ24内のデータを移動させる。データメモリ24内のデータの移動は、割付変更情報中の移動対象領域の先頭アドレスとサイズとで特定される移動対象領域中のデータを、割付変更情報中の変更先先頭アドレスで特定される領域へと移動させることによって行われる。   Here, the memory organization execution unit 25 stores the change information (or the program after the assignment change) received from the programming tool 10 in the program memory 22 and uses the RUN write function to write the user program in the program memory 22. At the same time, the data in the data memory 24 is moved based on the allocation change information received from the programming tool 10. The movement of data in the data memory 24 is an area in which the data in the movement target area specified by the start address and size of the movement target area in the allocation change information is specified by the change start address in the allocation change information. Is done by moving to.

つぎに、このようなプログラマブルコントローラシステムでのメモリ整理処理について説明する。図3−1〜図3−3は、実施の形態によるメモリ整理処理の一例を示すフローチャートである。   Next, a memory organizing process in such a programmable controller system will be described. FIG. 3A to FIG. 3C are flowcharts illustrating an example of the memory organization process according to the embodiment.

まず、プログラミングツール10にユーザからターゲットとなるCPUユニット20のデータメモリ整理操作の実行コマンドが入力されると、プログラミングツール10の通信部15からCPUユニット20の通信部21に対してデータメモリ整理実行コマンドが発行される(ステップS11)。   First, when the execution command for the data memory organizing operation of the target CPU unit 20 is input from the user to the programming tool 10, the data memory organizing execution is performed from the communication unit 15 of the programming tool 10 to the communication unit 21 of the CPU unit 20. A command is issued (step S11).

CPUユニット20の通信部21は、データメモリ整理コマンドを受け付けると(ステップS12)、メモリ整理実行部25にデータメモリ整理コマンドの実行を依頼する(ステップS13)。また、メモリ整理実行部25は、データメモリ整理コマンドを受け付けた時点で、データメモリ整理が実行中であるか否かを判定する(ステップS14)。データメモリ整理が実行中でなければ(ステップS14でNoの場合)、データメモリ整理処理の実行の有無を示すデータメモリ実行状態を実行中とし(ステップS15)、通信部21を通じてプログラミングツール10にデータメモリ実行可能通知を送信する(ステップS16)。なお、既にデータメモリ整理が実行中であれば(ステップS14でYesの場合)、実行中であることを示すデータメモリ実行中通知を、通信部21を通じてプログラミングツール10に送信する(ステップS17)。   When receiving the data memory organization command (step S12), the communication unit 21 of the CPU unit 20 requests the memory organization execution unit 25 to execute the data memory organization command (step S13). Further, the memory organization executing unit 25 determines whether or not the data memory organization is being executed when the data memory organization command is received (step S14). If data memory rearranging is not being executed (No in step S14), the data memory execution state indicating whether or not data memory rearranging processing is being executed is being executed (step S15), and data is transmitted to the programming tool 10 through the communication unit 21. A memory executable notification is transmitted (step S16). If data memory rearrangement is already being executed (Yes in step S14), a data memory execution notification indicating that it is being executed is transmitted to the programming tool 10 through the communication unit 21 (step S17).

CPUユニット20からデータメモリ実行可能通知/データメモリ実行中通知を受け取ると(ステップS18)、プログラミングツール10の変数割付管理部14の変数割付情報管理部141は、変数割付情報格納部12にCPUユニット20で使用される変数割付情報(変更前変数割付情報)を保持しているかを確認する(ステップS19)。変更前変数割付情報を保持していない場合(ステップS19でNoの場合)には、変数割付情報管理部141は、通信部15を通じてCPUユニット20に対して変数割付情報取得要求を送信する(ステップS20)。   When a data memory executable notification / data memory execution notification is received from the CPU unit 20 (step S18), the variable allocation information management unit 141 of the variable allocation management unit 14 of the programming tool 10 stores the CPU unit in the variable allocation information storage unit 12. It is checked whether the variable allocation information (pre-change variable allocation information) used in 20 is held (step S19). If the pre-change variable allocation information is not retained (No in step S19), the variable allocation information management unit 141 transmits a variable allocation information acquisition request to the CPU unit 20 through the communication unit 15 (step S19). S20).

CPUユニット20のメモリ整理実行部25は、変数割付情報取得要求を受け取ると(ステップS21)、変数割付情報格納部26から現在動作中のユーザプログラムの変数割付情報を取り出し、通信部21を通じてプログラミングツール10に送信する(ステップS22)。プログラミングツール10の変数割付情報管理部141は、CPUユニット20で動作しているユーザプログラムの変数割付情報を受信すると(ステップS23)、変更前変数割付情報として変数割付情報格納部12に格納する。   Upon receiving the variable assignment information acquisition request (step S21), the memory organization executing unit 25 of the CPU unit 20 extracts the variable assignment information of the currently operating user program from the variable assignment information storage unit 26, and the programming tool through the communication unit 21. 10 (step S22). When receiving the variable assignment information of the user program running on the CPU unit 20 (step S23), the variable assignment information management unit 141 of the programming tool 10 stores the variable assignment information storage unit 12 as the pre-change variable assignment information.

なお、CPUユニット20で動作しているユーザプログラムの変数割付情報(変更前変数割付情報)が、プログラミングツール10の変数割付情報格納部12に既に存在する場合(ステップS19でYesの場合)には、CPUユニット20から改めて取得する必要はない。   If the variable assignment information (pre-change variable assignment information) of the user program running on the CPU unit 20 already exists in the variable assignment information storage unit 12 of the programming tool 10 (Yes in step S19). There is no need to obtain the CPU unit 20 again.

ステップS23の後またはステップS19でYesの場合に、CPUユニット20の変数割付管理部14の移動対象領域抽出部142は、変更前変数割付情報内でCPUユニット20のデータメモリ24内の未使用領域を検索し、未使用領域が複数箇所に点在するか(2つ以上存在するか)を判定する(ステップS24)。   After step S23 or in the case of Yes in step S19, the movement target area extraction unit 142 of the variable allocation management unit 14 of the CPU unit 20 uses the unused area in the data memory 24 of the CPU unit 20 in the pre-change variable allocation information. Is searched to determine whether unused areas are scattered in a plurality of places (whether there are two or more unused areas) (step S24).

データメモリ24内に未使用領域が複数箇所に点在する場合(ステップS24でYesの場合)には、移動対象領域抽出部142は、変更前変数割付情報からCPUユニット20のデータメモリ24の先頭アドレスから末尾アドレスに向かって未使用領域を検索し、移動対象領域を抽出する。たとえば、最初に発見した未使用領域の直後にある領域の先頭アドレスから、次の未使用領域の先頭アドレスまでの領域を移動対象領域とする。   When the unused area is scattered in a plurality of locations in the data memory 24 (Yes in step S24), the movement target area extracting unit 142 determines the head of the data memory 24 of the CPU unit 20 from the pre-change variable allocation information. The unused area is searched from the address to the end address, and the movement target area is extracted. For example, the area from the head address of the area immediately after the first unused area found to the head address of the next unused area is set as the movement target area.

ついで、変数割付管理部14の変更先アドレス取得部143は、抽出した移動対象領域の変更先先頭アドレスを決定する(ステップS26)。ここでは、データメモリ24の先頭アドレスから末尾アドレスに向かって未使用領域を検索した場合の最初に発見した未使用領域の先頭アドレスを変更先先頭アドレスとする。   Next, the change destination address acquisition unit 143 of the variable allocation management unit 14 determines the change destination top address of the extracted movement target area (step S26). Here, the first address of the unused area found first when the unused area is searched from the head address of the data memory 24 toward the end address is set as the change destination head address.

変数割付情報管理部141は、移動対象領域抽出部142で抽出された移動対象領域に対して付されている変数とサイズを割付変更前の変数割付情報から取得し、取得した変数とサイズを、変更先アドレス取得部143で取得した変更先先頭アドレスに新たに対応付けた割付変更後の変数割付情報を生成する(ステップS27)。   The variable allocation information management unit 141 acquires the variable and size assigned to the movement target area extracted by the movement target area extraction unit 142 from the variable allocation information before the allocation change, and acquires the acquired variable and size. The variable allocation information after the allocation change newly associated with the change destination head address acquired by the change destination address acquisition unit 143 is generated (step S27).

その後、変数割付管理部14の変更後実行コード取得部144は、コンパイラ13を通じて割付変更後の変数割付情報に基づいて、移動対象領域に割付けられている変数を変更先先頭アドレスに変更したユーザプログラムの実行コード(割付変更後のプログラム)を生成する(ステップS28)。   Thereafter, the post-change execution code acquisition unit 144 of the variable allocation management unit 14 uses the compiler 13 to change the variable allocated to the movement target area to the change destination head address based on the variable allocation information after the allocation change. The execution code (program after the assignment change) is generated (step S28).

ついで、変数割付管理部14の変更情報取得部145は、割付変更後のプログラムの割付変更前のプログラムから変化した部分である変更情報を抽出する(ステップS29)。割付変更前のプログラムは、たとえばターゲットとするCPUユニット20から取得してもよいし、割付変更前の変数割付情報からコンパイラ13を通してプログラムを生成してもよい。   Next, the change information acquisition unit 145 of the variable assignment management unit 14 extracts change information that is a changed part from the program before the assignment change of the program after the assignment change (step S29). The program before the assignment change may be acquired from the target CPU unit 20, for example, or the program may be generated through the compiler 13 from the variable assignment information before the assignment change.

さらに、変数割付管理部14は、移動対象領域の先頭アドレスとサイズ、および変更先先頭アドレスを含む割付変更情報を生成し(ステップS30)、割付変更後のプログラムと共にCPUユニット20に送信する(ステップS31)。   Furthermore, the variable allocation management unit 14 generates allocation change information including the start address and size of the movement target area, and the change destination start address (step S30), and transmits it to the CPU unit 20 together with the program after the allocation change (step S30). S31).

CPUユニット20のメモリ整理実行部25は、プログラミングツール10から割付変更後のプログラムと割付変更情報とを受信すると(ステップS32)、割付変更後のプログラムをプログラムメモリ22内に格納した後(ステップS33)、RUN中書込み機能を使ってプログラムメモリ22内のユーザプログラムを修正すると同時に、プログラミングツール10から受け取った割付変更情報に基づいてデータメモリ24内のデータを移動させる(ステップS34)。データメモリ24内のデータの移動は、たとえば、割付変更情報中の移動対象領域の先頭アドレスとサイズで特定される範囲に存在するデータを取得して、変更先先頭アドレスで特定される範囲にデータを移動させることによって行われる。   When the memory rearrangement execution unit 25 of the CPU unit 20 receives the program after the allocation change and the allocation change information from the programming tool 10 (step S32), after storing the program after the allocation change in the program memory 22 (step S33). ), The user program in the program memory 22 is modified using the RUN in-write function, and at the same time, the data in the data memory 24 is moved based on the allocation change information received from the programming tool 10 (step S34). The data in the data memory 24 is moved by, for example, acquiring data existing in a range specified by the start address and size of the movement target area in the allocation change information, and moving the data in the range specified by the change destination start address. Is done by moving.

その後、CPUユニット20のメモリ整理実行部25は、ユーザプログラムの修正とデータの移動が完了すると、通信部21を通じてプログラミングツール10に対して割付変更完了通知を送信する(ステップS35)。   Thereafter, when the modification of the user program and the data movement are completed, the memory organization executing unit 25 of the CPU unit 20 transmits an assignment change completion notification to the programming tool 10 through the communication unit 21 (step S35).

プログラミングツール10の変数割付管理部14の変数割付情報管理部141は、通信部15を通じてCPUユニット20から割付変更完了通知を受信すると(ステップS36)、変数割付情報を、変更後の変数割付情報に更新する(ステップS37)。具体的には、変数割付情報格納部12中の変更後の変数割付情報を変更前の変数割付情報に更新する。また、CPUユニット20の変数割付情報格納部26に格納されている変数割付情報も更新する(ステップS38)。   When the variable allocation information management unit 141 of the variable allocation management unit 14 of the programming tool 10 receives the allocation change completion notification from the CPU unit 20 through the communication unit 15 (step S36), the variable allocation information is changed to the variable allocation information after the change. Update (step S37). Specifically, the variable assignment information after change in the variable assignment information storage unit 12 is updated to the variable assignment information before change. Further, the variable assignment information stored in the variable assignment information storage unit 26 of the CPU unit 20 is also updated (step S38).

また、移動対象領域抽出部142は、変更後の変数割付情報を分析し、データメモリ24内が、使用領域と未使用領域が共に1つのみになっているかを判定する(ステップS39)。使用領域または未使用領域が1つでない場合(ステップS39でNoの場合)には、ステップS25の移動対象領域の検索へと戻り、上記した処理が繰り返し実行される。また、使用領域と未使用領域が共に1つであれば(ステップS39でYesの場合)、メモリ整理完了とし、CPUユニット20に対して通信部15を通じてメモリ整理完了通知を送信する(ステップS40)。   The movement target area extraction unit 142 analyzes the variable allocation information after the change, and determines whether the data memory 24 has only one used area and one unused area (step S39). If there is not one used area or unused area (No in step S39), the process returns to the search for the movement target area in step S25, and the above-described processing is repeatedly executed. If both the used area and the unused area are one (Yes in step S39), the memory organizing is completed and a memory organizing completion notice is transmitted to the CPU unit 20 through the communication unit 15 (step S40). .

CPUユニット20のメモリ整理実行部25は、通信部21を通じてメモリ整理完了通知を受信すると(ステップS41)、データメモリ実行状態を未実行とし(ステップS42)、通信部21を通じてプログラミングツール10に正常終了通知を送信する(ステップS43)。   When the memory organizing execution unit 25 of the CPU unit 20 receives the memory organizing completion notification through the communication unit 21 (step S41), the data memory execution state is not executed (step S42), and the program tool 10 is normally terminated through the communication unit 21. A notification is transmitted (step S43).

プログラミングツール10は通信部15を通じて正常終了通知を受信すると(ステップS44)、ユーザにメモリ整理完了を通知する(ステップS45)。以上で、メモリ整理処理が終了する。   When the programming tool 10 receives the normal end notification through the communication unit 15 (step S44), the programming tool 10 notifies the user of the completion of memory organization (step S45). This completes the memory organization process.

つぎに、具体例として、図2に示される変数割付情報で変数が割付けられたデータメモリ24についてメモリ整理処理を行う場合を説明する。図4は、CPUユニットのデータメモリの整理状態を模式的に示す図である。図4で、上段の図は変数割付情報であり、中断の図はCPUユニット20内のデータメモリ24内のアドレスの使用状況を模式的に示す図であり、下段の図はプログラムメモリ22内のプログラムの状態を模式的に示す図である。   Next, as a specific example, a case will be described in which the memory organization process is performed on the data memory 24 to which variables are assigned with the variable assignment information shown in FIG. FIG. 4 is a diagram schematically showing an organized state of the data memory of the CPU unit. In FIG. 4, the upper diagram is variable allocation information, the interrupted diagram is a diagram schematically showing the usage status of addresses in the data memory 24 in the CPU unit 20, and the lower diagram is in the program memory 22. It is a figure which shows the state of a program typically.

図4(a)は、メモリ整理処理を行う前の状態であり、RUN中書込処理によって断片化されてしまった状態を示している。つまり、先頭アドレス「0x1000」にはサイズが2バイトの変数1が割付けられ、先頭アドレス「0x1006」にはサイズが4バイトの変数2が割付けられ、先頭アドレス「0x100C」にはサイズが4バイトの変数3が割付けられ、先頭アドレス「0x1010」にはサイズが2バイトの変数4が割付けられ、先頭アドレス「0x1014」にはサイズが6バイトの変数5が割付けられている。また、変数1と変数2の間、変数2と変数3の間、および変数4と変数5の間は未使用領域となっている。   FIG. 4A shows a state before performing the memory organizing process, and shows a state in which the memory organizing process has been fragmented by the RUN writing process. That is, the variable 1 having a size of 2 bytes is allocated to the head address “0x1000”, the variable 2 having a size of 4 bytes is allocated to the head address “0x1006”, and the size of 4 bytes is allocated to the head address “0x100C”. Variable 3 is allocated, variable 4 having a size of 2 bytes is allocated to the head address “0x1010”, and variable 5 having a size of 6 bytes is allocated to the head address “0x1014”. Also, unused areas are between variables 1 and 2, between variables 2 and 3, and between variables 4 and 5.

さらに、プログラムメモリ22内のプログラムAでは、変数2(アドレス「0x1006」)と変数4(アドレス「0x1010」)が使用されており、プログラムBでは、変数2(アドレス「0x1006」)と変数5(アドレス「0x1014」)が使用されている。   Further, in the program A in the program memory 22, the variable 2 (address “0x1006”) and the variable 4 (address “0x1010”) are used, and in the program B, the variable 2 (address “0x1006”) and the variable 5 ( Address “0x1014”) is used.

このような状態のデータメモリ24に対して上述したメモリ整理処理が実行されると、まず、データメモリ24の先頭アドレス(0x1000)から末尾アドレス(0x1019)に向かって最初の未使用領域の後の変数が割付けられた領域が検索される。ここでは、先頭アドレスが「0x1006」であり、サイズが4バイトの変数2が移動対象領域として抽出される。   When the above-described memory organizing process is executed on the data memory 24 in such a state, first, after the first unused area from the start address (0x1000) to the end address (0x1019) of the data memory 24 The area to which the variable is assigned is searched. Here, the variable 2 having a head address “0x1006” and a size of 4 bytes is extracted as the movement target area.

また、変更先アドレスとして、データメモリ24の先頭アドレスから末尾アドレスに向かって最初の未使用領域が検索される。ここでは、先頭アドレスが「0x1002」であり、サイズが4バイトの未使用領域が抽出され、変更先先頭アドレスとして「0x1002」が取得される。   Further, the first unused area is searched from the head address of the data memory 24 toward the tail address as the change destination address. Here, an unused area having a head address of “0x1002” and a size of 4 bytes is extracted, and “0x1002” is acquired as the change destination head address.

以上より、変更前変数割付情報では、変数2はアドレス「0x1006」から4バイトと割付けられていたが、変更後変数割付情報では、変数2はアドレス「0x1002」から4バイトと割付けられることになる。また、この変更後変数割付情報を用いて割付変更後のプログラムが生成され、割付変更前のプログラムから変化した部分である変更情報が取得される。さらに、移動対象領域のアドレス「0x1006」とサイズ4バイト、および変更先先頭アドレス「0x1002」を含む割付変更情報が生成される。   As described above, in variable allocation information before change, variable 2 is allocated as 4 bytes from address “0x1006”, but in variable allocation information after change, variable 2 is allocated as 4 bytes from address “0x1002”. . In addition, a program after the allocation change is generated using the post-change variable allocation information, and change information that is a changed part from the program before the allocation change is acquired. Furthermore, allocation change information including an address “0x1006” of the movement target area, a size of 4 bytes, and a change destination head address “0x1002” is generated.

つぎに、図4(b)に示されるように、プログラムメモリ22中のユーザプログラムの書換え処理が行われる。この書換え処理は、RUN中書込み機能を用いて行われ、取得された変更情報に対応する部分のみ行われる。ここでは、プログラムA,Bの変数2を含む部分が変更される。また、これと同時にデータメモリ24中で変数2の移動処理が行われる。この移動処理は、割付変更情報に基づいて行われる。そして、変更後変数割付情報が、変更前変数割付情報とされる。   Next, as shown in FIG. 4B, rewriting processing of the user program in the program memory 22 is performed. This rewriting process is performed using the RUN writing function, and only the part corresponding to the acquired change information is performed. Here, the part including the variable 2 of the programs A and B is changed. At the same time, the variable 2 is moved in the data memory 24. This movement process is performed based on the allocation change information. The post-change variable assignment information is pre-change variable assignment information.

この処理によって、未使用領域と使用領域とが共に1つとなったかを確認するが、いずれも1つではないので、さらにメモリ整理処理が行われる。図4(a)の場合と同様にして、移動対象領域として先頭アドレスが「0x100C」であり、サイズが6バイトの変数3,4が抽出され、変更先アドレスとして「0x1006」が取得される。   By this process, it is confirmed whether both the unused area and the used area are one. However, since both are not one, the memory organizing process is further performed. As in the case of FIG. 4A, the start address is “0x100C” as the movement target area, the variables 3 and 4 having a size of 6 bytes are extracted, and “0x1006” is acquired as the change destination address.

これによって、変更前変数割付情報では、変数3はアドレス「0x100C」から4バイトと割付けられており、変数4はアドレス「0x1010」から2バイトと割付けられていたが、変更後変数割付情報では、変数3はアドレス「0x1006」から4バイト割付けられ、変数4はアドレス「0x100A」から2バイト割付けられることになる。また、この変更後変数割付情報を用いて割付変更後のプログラムが生成され、割付変更前のプログラムから変化した部分である変更情報が取得される。さらに、移動対象領域のアドレス「0x100C」とサイズ6バイト、および変更先先頭アドレス「0x1006」を含む割付変更情報が生成される。   Thus, in the variable allocation information before change, the variable 3 is allocated as 4 bytes from the address “0x100C”, and the variable 4 is allocated as 2 bytes from the address “0x1010”. However, in the variable allocation information after change, The variable 3 is allocated 4 bytes from the address “0x1006”, and the variable 4 is allocated 2 bytes from the address “0x100A”. In addition, a program after the allocation change is generated using the post-change variable allocation information, and change information that is a changed part from the program before the allocation change is acquired. Furthermore, allocation change information including an address “0x100C” of the movement target area, a size of 6 bytes, and a change destination head address “0x1006” is generated.

つぎに、図4(c)に示されるように、プログラムメモリ22中のユーザプログラムの書換え処理が行われる。この書換え処理は、RUN中書込み機能を用いて行われ、取得された変更情報に対応する部分のみ行われる。ここでは、プログラムAの変数4を含む部分が変更される。また、これと同時にデータメモリ24中で変数3,4の移動処理が行われる。この移動処理は、割付変更情報に基づいて行われる。そして、変更後変数割付情報が、変更前変数割付情報とされる。   Next, as shown in FIG. 4C, the rewriting process of the user program in the program memory 22 is performed. This rewriting process is performed using the RUN writing function, and only the part corresponding to the acquired change information is performed. Here, the part including the variable 4 of the program A is changed. At the same time, movement processing of the variables 3 and 4 is performed in the data memory 24. This movement process is performed based on the allocation change information. The post-change variable assignment information is pre-change variable assignment information.

この処理によって、未使用領域と使用領域とが共に1つとなったかを確認するが、いずれも1つではないので、さらにメモリ整理処理が行われる。図4(a)の場合と同様にして、移動対象領域として先頭アドレスが「0x1014」であり、サイズが6バイトの変数5が抽出され、変更先アドレスとして「0x100C」が取得される。   By this process, it is confirmed whether both the unused area and the used area are one. However, since both are not one, the memory organizing process is further performed. Similarly to the case of FIG. 4A, the start address is “0x1014” as the movement target area, the variable 5 having a size of 6 bytes is extracted, and “0x100C” is acquired as the change destination address.

これによって、変更前変数割付情報では、変数5はアドレス「0x1014」から6バイトと割付けられていたが、変更後変数割付情報では、変数5はアドレス「0x100C」から6バイト割付けられる。また、この変更後変数割付情報を用いて割付変更後のプログラムが生成され、割付変更前のプログラムから変化した部分である変更情報を取得する。さらに、移動対象領域のアドレス「0x1014」とサイズ6バイト、および変更先先頭アドレス「0x100C」を含む割付変更情報が生成される。   Thus, in the pre-change variable allocation information, the variable 5 is allocated as 6 bytes from the address “0x1014”, but in the post-change variable allocation information, the variable 5 is allocated from 6 bytes from the address “0x100C”. Further, a program after the allocation change is generated using the post-change variable allocation information, and change information that is a changed part from the program before the allocation change is acquired. Furthermore, allocation change information including an address “0x1014” of the movement target area, a size of 6 bytes, and a change destination head address “0x100C” is generated.

つぎに、図4(d)に示されるように、プログラムメモリ22中のユーザプログラムの書換え処理が行われる。この書換え処理は、RUN中書込み機能を用いて行われ、取得された変更情報に対応する部分のみ行われる。また、これと同時にデータメモリ24中で変数5の移動処理が行われる。ここでは、プログラムBの変数5を含む部分が変更される。この移動処理は、割付変更情報に基づいて行われる。そして、変更後変数割付情報が、変更前変数割付情報とされる。   Next, as shown in FIG. 4D, the rewriting process of the user program in the program memory 22 is performed. This rewriting process is performed using the RUN writing function, and only the part corresponding to the acquired change information is performed. At the same time, the process of moving the variable 5 is performed in the data memory 24. Here, the part including the variable 5 of the program B is changed. This movement process is performed based on the allocation change information. The post-change variable assignment information is pre-change variable assignment information.

この処理によって、未使用領域と使用領域とが共に1つとなったかを確認する。以上の処理によって、アドレス「0x1000」〜「0x1010」に連続して変数1〜5が割当てられ、アドレス「0x1012」〜「0x1018」は未使用領域となっており、使用領域と未使用領域がいずれも1つとなったので、メモリ整理処理が終了する。   By this processing, it is confirmed whether both the unused area and the used area become one. As a result of the above processing, variables 1 to 5 are continuously assigned to addresses “0x1000” to “0x1010”, and addresses “0x1012” to “0x1018” are unused areas. Therefore, the memory organizing process ends.

なお、移動対象領域が大きい場合には、データを移動させる際に時間がかかり、スキャンタイムが延びてしまうこともある。そのような場合には、ある程度のサイズで移動対象領域を分割し、複数回に分けて領域を移動させることで、スキャンタイムの延びを抑えることができる。このとき、予め実験によってスキャンタイムが延びない様に求められた最大のデータサイズ以下のサイズで移動対象領域を分割することができる。   When the movement target area is large, it takes time to move the data, and the scan time may be extended. In such a case, it is possible to suppress an increase in scan time by dividing the movement target area in a certain size and moving the area in multiple times. At this time, it is possible to divide the movement target area with a size equal to or smaller than the maximum data size obtained in advance so as not to extend the scan time by an experiment.

図5は、移動対象領域を所定のサイズに分割して変更先アドレスへと移動させる場合の例を模式的に示す図である。この図で、上段の図は変数割付情報であり、下断の図はCPUユニット20内のデータメモリ24内のアドレスの使用状況を模式的に示す図である。なお、ここでは、移動対象領域を8Kバイトずつに分割して、2回に分けて移動させる場合を示す。   FIG. 5 is a diagram schematically illustrating an example in which the movement target area is divided into a predetermined size and moved to the change destination address. In this figure, the upper diagram is variable allocation information, and the lower diagram is a diagram schematically showing the use status of addresses in the data memory 24 in the CPU unit 20. Here, a case is shown in which the movement target area is divided into 8 Kbytes and moved in two steps.

まず、図5(a)の変数割付情報に示されるように、メモリ整理処理を行う前は、先頭アドレス「0x1002」にはサイズが16Kバイトの変数10〜13が割付けられている。また、変数10の前、および変数13の後は未使用領域となっている。   First, as shown in the variable allocation information in FIG. 5A, before the memory organization process, variables 10 to 13 having a size of 16 Kbytes are allocated to the head address “0x1002”. Further, the area before the variable 10 and after the variable 13 is an unused area.

このような状態のデータメモリ24に対して上述したメモリ整理処理が実行されると、まず、データメモリ24の先頭アドレス(0x1000)から末尾アドレス(0x5002)に向かって最初の未使用領域の後の変数が割付けられた領域が検索される。ここでは、先頭アドレスが「0x1002」であり、サイズが16Kバイトの変数10〜13が移動対象領域として抽出される。しかし、この移動対象領域のサイズは所定のサイズ(=8Kバイト)を超えているので、先頭アドレス「0x1002」から8Kバイトが移動対象領域として選択される。   When the above-described memory organizing process is executed on the data memory 24 in such a state, first, after the first unused area from the start address (0x1000) to the end address (0x5002) of the data memory 24 The area to which the variable is assigned is searched. Here, the variables 10 to 13 having the head address “0x1002” and the size of 16 Kbytes are extracted as the movement target area. However, since the size of the movement target area exceeds a predetermined size (= 8 Kbytes), 8 Kbytes are selected as the movement target area from the head address “0x1002”.

また、変更先アドレスとして、データメモリ24の先頭アドレスから末尾アドレスに向かって最初の未使用領域が検索される。ここでは、先頭アドレスが「0x1000」であり、サイズが2Kバイトの未使用領域が抽出され、変更先先頭アドレスとして「0x1000」が取得される。   Further, the first unused area is searched from the head address of the data memory 24 toward the tail address as the change destination address. Here, an unused area having a head address of “0x1000” and a size of 2 Kbytes is extracted, and “0x1000” is acquired as the change destination head address.

以上より、変更前変数割付情報では、変数10〜11はアドレス「0x1002」から8Kバイトと割付けられていたが、変更後変数割付情報では、変数10〜11はアドレス「0x1000」から8Kバイトと割付けられる。また、この変更後変数割付情報を用いて割付変更後のプログラムが生成され、割付変更前のプログラムから変化した部分である変更情報が取得される。さらに、移動対象領域のアドレス「0x1002」とサイズ8Kバイト、および変更先先頭アドレス「0x1000」を含む割付変更情報が生成される。   As described above, in the variable assignment information before change, the variables 10 to 11 are assigned as 8 Kbytes from the address “0x1002”, but in the variable assignment information after change, the variables 10 to 11 are assigned as 8 Kbytes from the address “0x1000”. It is done. In addition, a program after the allocation change is generated using the post-change variable allocation information, and change information that is a changed part from the program before the allocation change is acquired. Furthermore, allocation change information including an address “0x1002” of the movement target area, a size of 8 Kbytes, and a change destination head address “0x1000” is generated.

つぎに、プログラムメモリ22中のユーザプログラムの書換え処理が行われる。この書換え処理は、RUN中書込み機能を用いて行われ、取得された変更情報に対応する部分のみ行われる。またこれと同時に、図5(b)に示されるようにデータメモリ24中で変数10〜11の移動処理が行われる。この移動処理は、割付変更情報に基づいて行われる。そして、変更後変数割付情報が、変更前変数割付情報とされる。   Next, the rewriting process of the user program in the program memory 22 is performed. This rewriting process is performed using the RUN writing function, and only the part corresponding to the acquired change information is performed. At the same time, the variables 10 to 11 are moved in the data memory 24 as shown in FIG. This movement process is performed based on the allocation change information. The post-change variable assignment information is pre-change variable assignment information.

この処理によって、未使用領域と使用領域とが共に1つとなったかを確認するが、いずれも1つではないので、さらにメモリ整理処理が行われる。図5(a)の場合と同様にして、移動対象領域として先頭アドレスが「0x3002」であり、サイズが8Kバイトの変数12〜13が抽出され、変更先アドレスとして「0x3000」が取得される。   By this process, it is confirmed whether both the unused area and the used area are one. However, since both are not one, the memory organizing process is further performed. Similarly to the case of FIG. 5A, the first address is “0x3002” as the movement target area, the variables 12 to 13 having the size of 8 Kbytes are extracted, and “0x3000” is acquired as the change destination address.

これによって、変更前変数割付情報では、変数12〜13はアドレス「0x3002」から8Kバイトと割付けられていたが、変更後変数割付情報では、変数12〜13はアドレス「0x3000」から8Kバイト割付けられる。また、この変更後変数割付情報を用いて割付変更後のプログラムが生成され、割付変更前のプログラムから変化した部分である変更情報が取得される。さらに、移動対象領域のアドレス「0x3002」とサイズ8Kバイト、および変更先先頭アドレス「0x3000」を含む割付変更情報が生成される。   Thus, in the pre-change variable allocation information, the variables 12 to 13 are allocated as 8 Kbytes from the address “0x3002”, but in the post-change variable allocation information, the variables 12 to 13 are allocated from the address “0x3000” to 8 Kbytes. . In addition, a program after the allocation change is generated using the post-change variable allocation information, and change information that is a changed part from the program before the allocation change is acquired. Furthermore, allocation change information including an address “0x3002” of the movement target area, a size of 8 Kbytes, and a change destination head address “0x3000” is generated.

つぎに、プログラムメモリ22中のユーザプログラムの書換え処理が行われる。この書換え処理は、RUN中書込み機能を用いて行われ、取得された変更情報に対応する部分のみ行われる。またこれと同時に、図5(c)に示されるようにデータメモリ24中で変数12〜13の移動処理が行われる。この移動処理は、割付変更情報に基づいて行われる。そして、変更後変数割付情報が、変更前変数割付情報とされる。以上の処理によって、所定の長さ以上のデータが所定の長さに分割されて、スキャンタイムの延びを抑えながら移動される。   Next, the rewriting process of the user program in the program memory 22 is performed. This rewriting process is performed using the RUN writing function, and only the part corresponding to the acquired change information is performed. At the same time, the variables 12 to 13 are moved in the data memory 24 as shown in FIG. This movement process is performed based on the allocation change information. The post-change variable assignment information is pre-change variable assignment information. Through the above processing, data of a predetermined length or more is divided into a predetermined length and moved while suppressing an increase in scan time.

この処理によって、未使用領域と使用領域とが共に1つとなったかを確認する。これによって、アドレス「0x1000」〜「0x5000」に連続して変数10〜13が割当てられ、アドレス「0x5000」〜「0x5002」は未使用領域となっており、使用領域と未使用領域がいずれも1つとなったので、メモリ整理処理が終了する。   By this processing, it is confirmed whether both the unused area and the used area become one. As a result, the variables 10 to 13 are continuously assigned to the addresses “0x1000” to “0x5000”, the addresses “0x5000” to “0x5002” are unused areas, and the used area and the unused area are both 1 As a result, the memory organizing process ends.

なお、上記した説明では、データメモリ24の先頭アドレスから末尾アドレスに向かって未使用領域を検索し、最初の未使用領域の直後に存在する変数を移動対象領域として抽出する場合を示したが、これに限定されるものではなく、未使用領域を挟んで飛び飛びの状態で存在する任意の変数を抽出することができる。   In the above description, the case where the unused area is searched from the start address to the end address of the data memory 24 and the variable existing immediately after the first unused area is extracted as the movement target area is shown. However, the present invention is not limited to this, and it is possible to extract an arbitrary variable that exists in a jumping state across an unused area.

この実施の形態によれば、データメモリ24中の変数が割付けられた移動対象領域と、データメモリ24の先頭アドレスに最も近い未使用領域を変更先アドレスとを抽出し、未使用領域が連続するように変数の割付を変更するようにしたので、RUN中書込みによる変数の追加削除の繰り返しによって未使用領域が点在するデータメモリ24内を整理し、連続する未使用領域を確保することができるという効果を有する。   According to this embodiment, the movement target area to which the variable in the data memory 24 is assigned and the unused area closest to the head address of the data memory 24 are extracted, and the unused area is continuous. Since the variable assignment is changed as described above, it is possible to arrange the data memory 24 in which the unused areas are scattered by repeating the addition and deletion of the variables by the write during RUN, and to secure the continuous unused areas. It has the effect.

また、移動対象領域が大きい場合は、移動対象領域を複数に分割して、複数回に分けて移動させることで、データの移動によるスキャンタイム延びを抑えることができるという効果も有する。   In addition, when the movement target area is large, the movement target area is divided into a plurality of parts and moved in a plurality of times, so that it is possible to suppress an increase in scan time due to data movement.

以上のように、この発明にかかるプログラマブルコントローラは、高度なデータ構造を使用する変数プログラミングの用途に適している。   As described above, the programmable controller according to the present invention is suitable for variable programming using advanced data structures.

10 プログラミングツール
11 プログラムエディタ部
12 変数割付情報格納部
13 コンパイラ
14 変数割付管理部
15,21 通信部
20 CPUユニット
22 プログラムメモリ
23 ユーザプログラム実行部
24 データメモリ
25 メモリ整理実行部
26 変数割付情報格納部
27 割付変更情報格納部
141 変数割付情報管理部
142 移動対象領域抽出部
143 変更先アドレス取得部
144 変更後実行コード取得部
145 変更情報取得部
146 割付変更情報生成部
DESCRIPTION OF SYMBOLS 10 Programming tool 11 Program editor part 12 Variable allocation information storage part 13 Compiler 14 Variable allocation management part 15,21 Communication part 20 CPU unit 22 Program memory 23 User program execution part 24 Data memory 25 Memory arrangement execution part 26 Variable allocation information storage part 27 Allocation change information storage unit 141 Variable allocation information management unit 142 Movement target area extraction unit 143 Change destination address acquisition unit 144 Changed execution code acquisition unit 145 Change information acquisition unit 146 Allocation change information generation unit

Claims (6)

プログラムに基づいて制御対象を制御するプログラマブルコントローラと、前記プログラマブルコントローラで使用される前記プログラムを管理するプログラミングツールと、を備えるプログラマブルコントローラシステムにおいて、
前記プログラミングツールは、
前記プログラム中で使用されている変数とサイズ、および前記プログラマブルコントローラのデータ記憶手段内のアドレスとを対応付ける変数割付情報を格納する変数割付情報格納手段と、
ユーザによって作成されたプログラムと前記変数割付情報から前記プログラマブルコントローラで実行可能な実行コードを生成するコンパイル手段と、
変更前の前記変数割付情報から前記プログラマブルコントローラの前記データ記憶手段内の前記変数に割付けられている領域のうち断片化されている領域を移動対象領域として抽出する移動対象領域抽出部、前記移動対象領域を他の変数に割付けられている領域と連続するように配置する前記データ記憶手段内の変更先アドレスを取得する変更先アドレス取得部、前記移動対象領域と前記変更先アドレスとを含む割付変更後の変数割付情報と、前記プログラムと、から前記コンパイル手段を通じて割付変更後のプログラムの実行コードを取得する変更後実行コード取得部、前記割付変更後のプログラムの実行コードの前記割付変更前のプログラムの実行コードからの変更箇所を変更情報として取得する変更情報取得部、および前記移動対象領域と前記変更先アドレスとを用いて前記変数の前記データ記憶手段内での割当先の変更に伴って生じる前記プログラムの実行コードの変更箇所を割付変更情報として生成する割付変更情報生成部を有する変数割付管理手段と、
前記変数割付管理手段によって生成される変更情報と割付変更情報とを前記プログラマブルコントローラに送信する通信手段と、
を備え、
前記プログラマブルコントローラは、
前記プログラムの実行コードを記憶するプログラム記憶手段と、
前記プログラムの実行コードを実行するプログラム実行手段と、
前記プログラム実行手段による前記プログラムの実行コードの実行時に使用するデータを格納する前記データ記憶手段と、
前記プログラミングツールからの前記変更情報を用いて前記プログラム記憶手段中の実行コードの書換え処理を行うと同時に、前記プログラミングツールからの前記割付変更情報にしたがって前記データ記憶手段中の前記移動対象領域中のデータを前記変更先アドレスで指定される領域に移動させる処理を行うメモリ整理実行手段と、
を備えることを特徴とするプログラマブルコントローラシステム。
In a programmable controller system comprising: a programmable controller that controls a control target based on a program; and a programming tool that manages the program used in the programmable controller.
The programming tool is:
Variable assignment information storage means for storing variable assignment information for associating variables and sizes used in the program and addresses in the data storage means of the programmable controller;
Compiling means for generating executable code executable by the programmable controller from a program created by a user and the variable allocation information;
A movement target area extracting unit that extracts a fragmented area as a movement target area from among the areas allocated to the variables in the data storage means of the programmable controller from the variable allocation information before the change, the movement target A change destination address acquisition unit for acquiring a change destination address in the data storage means that arranges an area so as to be continuous with an area assigned to another variable, and an assignment change including the movement target area and the change destination address A variable execution information acquisition unit for acquiring an execution code of the program after the allocation change from the variable allocation information after the program and the compiling means; a program before the allocation change of the execution code of the program after the allocation change A change information acquisition unit for acquiring a change part from the execution code of the change code as change information, and the movement target area Variable with the data allocation changing information generating unit that generates the changes as allocation change information of the execution code of the program that allocated destination caused by the change in the storage means of the variables by using said change destination address Allocation management means ;
Communication means for transmitting the change information generated by the variable assignment management means and the assignment change information to the programmable controller;
With
The programmable controller is
Program storage means for storing an execution code of the program;
Program execution means for executing an execution code of the program;
The data storage means for storing data used when the execution code of the program is executed by the program execution means;
Rewriting the execution code in the program storage means using the change information from the programming tool, and at the same time in the movement target area in the data storage means according to the assignment change information from the programming tool Memory organization execution means for performing processing for moving data to an area designated by the change destination address ;
A programmable controller system comprising:
前記移動対象領域抽出は、前記変数割付情報を用いて、前記プログラマブルコントローラの前記データ記憶手段中の先頭アドレスから末尾アドレスに向かって前記プログラム中で変数に割り当てられていない未使用領域を検索し、最初に発見した未使用領域の直後にある領域の先頭アドレスからつぎの未使用領域の先頭アドレスまでの領域を前記移動対象領域として抽出することを特徴とする請求項に記載のプログラマブルコントローラシステム。 The movement target area extraction unit uses the variable allocation information to search for an unused area that is not assigned to a variable in the program from the start address to the end address in the data storage unit of the programmable controller. 2. The programmable controller system according to claim 1 , wherein an area from the first address of an area immediately after the first unused area to the first address of the next unused area is extracted as the movement target area. . 前記移動対象領域抽出は、前記最初に発見した未使用領域の直後にある領域の先頭アドレスから前記つぎの未使用領域の先頭アドレスまでの領域が所定のサイズよりも大きい場合には、前記所定のサイズ以下の複数の領域に分割し、分割した領域の1つを前記移動対象領域とし、
前記プログラミングツールと前記プログラマブルコントローラは、分割したそれぞれの領域について、前記プログラマブルコントローラの前記データ記憶手段中のデータの移動処理を行うことを特徴とする請求項に記載のプログラマブルコントローラシステム。
When the area from the start address of an area immediately after the first unused area to the start address of the next unused area is larger than a predetermined size, the movement target area extraction unit divided into multiple regions of the following sizes, one of the divided regions and the moving target region,
The programming tool and the programmable controller, for each of the divided areas, the programmable controller system of claim 2, which comprises carrying out the process of moving the data in the data SL憶means of the programmable controller.
前記変更先アドレス取得は、前記変数割付情報を用いて、前記プログラマブルコントローラの前記データ記憶手段中の先頭アドレスから末尾アドレスに向かって前記未使用領域を検索し、最初に発見した未使用領域を前記変更先アドレスとして取得することを特徴とする請求項1から3のいずれか1つに記載のプログラマブルコントローラシステム。 The change destination address acquisition unit uses the variable allocation information to search the unused area from the start address to the end address in the data storage unit of the programmable controller, and finds the unused area that was found first. The programmable controller system according to claim 1 , wherein the programmable controller system is acquired as the change destination address. 前記メモリ整理実行手段は、前記プログラム実行手段が前記プログラムを実行中に前記プログラムの実行コードの書換えと、前記データ記憶手段中のデータの移動を行うことを特徴とする請求項1から4のいずれか1つに記載のプログラマブルコントローラシステム。 The memory organization executing means any said program execution means and rewriting the executable code of the program during execution of the program, according to claim 1 to 4, characterized in that for moving data in said data storage means The programmable controller system as described in any one. プログラムの実行コードを記憶するプログラム記憶手段と、プログラムの実行コードを実行するプログラム実行手段と、プログラム実行手段によるプログラムの実行コードの実行時に使用するデータを格納するデータ記憶手段と、を備え、前記プログラムに基づいて制御対象を制御するプログラマブルコントローラと、前記プログラマブルコントローラで使用される前記プログラムを管理するプログラミングツールと、が通信回線を介して接続されたプログラマブルコントローラシステムでの前記プログラムで使用される変数が割付けられた前記データ記憶手段内の領域を整理するメモリ整理方法において、
前記プログラミングツールは、前記プログラム中で使用されている変数とサイズ、および前記プログラマブルコントローラの前記データ記憶手段内のアドレスとを対応付ける変数割付情報から前記プログラマブルコントローラの前記データ記憶手段内の前記変数に割付けられている領域のうち断片化されている領域を移動対象領域として抽出する工程と、
前記プログラミングツールは、前記移動対象領域を他の変数に割付けられている領域と連続するように配置する前記データ記憶手段内の変更先アドレスを取得する工程と、
前記プログラミングツールは、前記移動対象領域と前記変更先アドレスとを含む割付変更後の変数割付情報と、前記プログラムと、から割付変更後のプログラムの実行コードを取得する工程と、
前記プログラミングツールは、前記割付変更後のプログラムの実行コードの割付変更前のプログラムの実行コードからの変更箇所を変更情報として取得する工程と、
前記プログラミングツールは、前記移動対象領域と前記変更先アドレスとを含む割付変更情報を生成する工程と、
前記プログラミングツールは、前記変更情報と前記割付変更情報を前記プログラマブルコントローラに送信する工程と、
前記プログラマブルコントローラは、前記変更情報と前記割付変更情報を受信する工程と、
前記プログラマブルコントローラは、前記変更情報に基づいて前記プログラム記憶手段中の前記プログラムの実行コードを書換えると同時に、前記割付変更情報にしたがって前記データ記憶手段中の前記移動対象領域中のデータを前記変更先アドレスで指定される領域に移動させる工程と、
を含むことを特徴とするメモリ整理方法。
Program storage means for storing the execution code of the program, program execution means for executing the execution code of the program, and data storage means for storing data used when executing the execution code of the program by the program execution means, A variable used in the program in a programmable controller system in which a programmable controller that controls a control target based on a program and a programming tool that manages the program used in the programmable controller are connected via a communication line. In the memory organizing method for organizing the area in the data storage means to which
Said programming tool variables and sizes that are used in the program, and the variable in the data storage means of the programmable controller from the variable allocation information for associating the address in said data storage means of the programmable controller Extracting a fragmented area among the allocated areas as a movement target area;
The programming tool obtains a change destination address in the data storage means for arranging the movement target area so as to be continuous with an area assigned to another variable;
The programming tool obtains the execution code of the program after the allocation change from the variable allocation information after the allocation change including the movement target area and the change destination address, and the program;
The programming tool is a step of obtaining a change location from the execution code of the program before the assignment change of the execution code of the program after the assignment change as change information;
The programming tool generates allocation change information including the movement target area and the change destination address;
The programming tool transmits the change information and the allocation change information to the programmable controller;
The programmable controller receives the change information and the allocation change information;
The programmable controller rewrites the execution code of the program in the program storage unit based on the change information, and simultaneously changes the data in the movement target area in the data storage unit according to the allocation change information. Moving to the area specified by the destination address;
A method for organizing memory.
JP2011082231A 2011-04-01 2011-04-01 Programmable controller system and memory organizing method Expired - Fee Related JP5669652B2 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2011082231A JP5669652B2 (en) 2011-04-01 2011-04-01 Programmable controller system and memory organizing method

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2011082231A JP5669652B2 (en) 2011-04-01 2011-04-01 Programmable controller system and memory organizing method

Publications (2)

Publication Number Publication Date
JP2012216150A JP2012216150A (en) 2012-11-08
JP5669652B2 true JP5669652B2 (en) 2015-02-12

Family

ID=47268846

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2011082231A Expired - Fee Related JP5669652B2 (en) 2011-04-01 2011-04-01 Programmable controller system and memory organizing method

Country Status (1)

Country Link
JP (1) JP5669652B2 (en)

Families Citing this family (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP5957936B2 (en) * 2012-02-15 2016-07-27 富士電機株式会社 Programmable controller system, its support device, program
JP2015125713A (en) * 2013-12-27 2015-07-06 富士電機株式会社 Programmable controller and system, support device thereof, programmable controller, and program
JP7676961B2 (en) * 2021-05-31 2025-05-15 オムロン株式会社 Information processing device, control system, and program for developing control program
US12353860B2 (en) 2022-02-10 2025-07-08 Mitsubishi Electric Corporation Programmable controller system, development support device, and recording medium

Family Cites Families (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH0239204A (en) * 1988-07-28 1990-02-08 Mitsubishi Electric Corp Device number extending method for programmable controller
JPH11259312A (en) * 1998-03-12 1999-09-24 Toshiba Corp Packing method for programmable controller and recording medium storing program for executing the packing method
JP5338528B2 (en) * 2009-07-03 2013-11-13 富士電機株式会社 Programmable controller and application program update method

Also Published As

Publication number Publication date
JP2012216150A (en) 2012-11-08

Similar Documents

Publication Publication Date Title
KR101558832B1 (en) Sequence-program debugging assistance apparatus
US6223339B1 (en) System, method, and product for memory management in a dynamic translator
JP5669652B2 (en) Programmable controller system and memory organizing method
JP5583305B2 (en) Programmable logic controller, programming tool, and program parameter editing system
CN112506547B (en) Configuration data downloading method, device, equipment and medium of distributed control system
JP6879625B2 (en) Programmable controller, management device and control system
KR20080105345A (en) Parallel Processing Units and Methods
JP2009037546A (en) Memory management method using thread-specific area and computer using the method
WO2013136366A1 (en) Storage apparatus and program update method
JP5849592B2 (en) Programmable controller system, programming device thereof, programmable controller, program, and debugging method
JP2015125713A (en) Programmable controller and system, support device thereof, programmable controller, and program
JP2019049917A (en) Numerical control device and device included in industrial machine
JP6205934B2 (en) Programmable controller system, its support device, program
US10437230B2 (en) Numerical controller having function of automatically selecting storage destination of machining program
EP3564764B1 (en) Device for processing programmable logic controller program
CN112764793B (en) Method for incrementally updating parameters of function block
JP6119452B2 (en) Programmable controller system, its support device, programmable controller, program
KR20130121167A (en) Motion sfc program component creation device
CN114237903A (en) Memory allocation optimization method, memory allocation optimization device, electronic equipment, memory allocation optimization medium and program product
JP5224923B2 (en) Control device
JP2010003031A (en) Compiler, access pattern change processing method, and processing program
JP6455096B2 (en) Control system, its support device, programmable control device
JP6020071B2 (en) Programmable controller system, its support device, programmable controller
JPH0262630A (en) Memory and its using method
JP6628951B1 (en) Program creation support device, program creation support method, and program

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20130902

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20140528

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20140603

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20140704

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: 20141118

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20141216

R150 Certificate of patent or registration of utility model

Ref document number: 5669652

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

LAPS Cancellation because of no payment of annual fees