JP5669652B2 - Programmable controller system and memory organizing method - Google Patents
Programmable controller system and memory organizing method Download PDFInfo
- 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
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.
しかしながら、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.
以下に添付図面を参照して、この発明の実施の形態にかかるプログラマブルコントローラシステムおよびメモリ整理方法を詳細に説明する。なお、この実施の形態によりこの発明が限定されるものではない。 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
プログラミングツール10は、ユーザがユーザプログラムを編集するためのI/Fを提供するプログラムエディタ部11と、ユーザプログラムで使用される変数とCPUユニット20のデータメモリ24でのメモリアドレスとの間の対応関係を示す変数割付情報を格納する変数割付情報格納部12と、プログラムエディタ部11で編集されたユーザプログラムと変数割付情報格納部12中の変数割付情報とに基づいてCPUユニット20で実行可能な実行コードを生成するコンパイラ13と、変数割付情報を管理する変数割付管理部14と、CPUユニット20との間で通信を行う通信部15と、を備える。
The
プログラムエディタ部11で編集されるユーザプログラム中では、メモリアドレスを変数を用いて記述しており、コンパイラ13での実行コード生成時に変数がCPUユニット20のデータメモリ24のメモリアドレスへと変換される。
In the user program edited by the
変数割付情報格納部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
変数割付管理部14は、CPUユニット20で動作しているユーザプログラムの変数割付情報から、CPUユニット20のデータメモリ24内に未使用領域が複数箇所に点在する場合に、変数が割付けられていない未使用領域が連続するように変数の割付を変更する。このような機能を達成するために、この実施の形態では変数割付管理部14は、変数割付情報管理部141と、移動対象領域抽出部142と、変更先アドレス取得部143と、変更後実行コード取得部144と、変更情報取得部145と、割付変更情報生成部146と、を有する。
The variable
変数割付情報管理部141は、メモリ整理処理の実行時に、CPUユニット20で使用されている変数割付情報を変数割付情報格納部26から取得し、変数割付情報格納部12に変更前変数割付情報として格納する。また、CPUユニット20にメモリ整理後の変更後変数割付情報が登録されると、変更後変数割付情報を変更前変数割付情報として変数割付情報格納部12に格納する機能も有する。
The variable allocation
移動対象領域抽出部142は、変数割付情報格納部12の変更前変数割付情報を用いて、断片化されている使用領域を移動対象領域として抽出する。たとえば、変更前変数割付情報を用いてCPUユニット20のデータメモリ24の先頭アドレスから末尾アドレスに向かって未使用領域を検索し、発見した未使用領域の直後にある領域の先頭アドレスからつぎの未使用領域の先頭アドレスまでの領域を移動対象領域として抽出する。
The movement target
変更先アドレス取得部143は、変数が割り付けられていない(空き状態)アドレスを、変数割付情報格納部12の変更前変数割付情報からCPUユニット20のデータメモリ24の先頭アドレスから末尾アドレスに向かって検索し、最初にヒットしたアドレスを上記移動対象領域の変更先アドレスとして取得する。
The change destination
変更後実行コード取得部144は、コンパイラ13を通じて移動対象領域に割付けられている変数の割付を変更先アドレスに変更したユーザプログラムの実行コード(以下、割付変更後のプログラムという)を生成する。
The post-change execution
変更情報取得部145は、割付変更後のプログラムが割付変更前のユーザプログラムの実行コード(以下、割付変更前のプログラムという)から変化した分を変更情報として抽出する。割付変更前のプログラムは、変数割付情報格納部12の変更前変数割付情報を用いてコンパイラ13を通じて求めてもよいし、ターゲットとなるCPUユニット20から取得してもよい。
The change
割付変更情報生成部146は、移動対象領域抽出部142で抽出された移動対象領域の先頭アドレスおよびサイズと、変更先アドレス取得部143で取得された変更先先頭アドレスと、から割付変更情報を生成する。なお、変更情報と割付変更情報は、通信部15を介してCPUユニット20へと送信される。
The allocation change
CPUユニット20は、プログラミングツール10との間で通信を行う通信部21と、ユーザプログラムを格納するプログラムメモリ22と、プログラムメモリ22中のユーザプログラムを実行するユーザプログラム実行部23と、ユーザプログラム実行部23によるユーザプログラムの実行中に使用されるデータを格納するデータメモリ24と、断片化されたデータメモリ24を整理するメモリ整理実行部25と、CPUユニット20に書き込まれたユーザプログラムの変数割付情報を保存する変数割付情報格納部26と、プログラミングツール10からの割付変更情報を格納する割付変更情報格納部27と、を備える。
The
ここで、メモリ整理実行部25は、プログラミングツール10から受け取った変更情報(または割付変更後のプログラム)をプログラムメモリ22内に格納し、RUN中書込機能を用いてプログラムメモリ22中のユーザプログラムを修正すると同時に、プログラミングツール10から受け取った割付変更情報に基づいてデータメモリ24内のデータを移動させる。データメモリ24内のデータの移動は、割付変更情報中の移動対象領域の先頭アドレスとサイズとで特定される移動対象領域中のデータを、割付変更情報中の変更先先頭アドレスで特定される領域へと移動させることによって行われる。
Here, the memory
つぎに、このようなプログラマブルコントローラシステムでのメモリ整理処理について説明する。図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
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
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
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
なお、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
ステップ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
データメモリ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
ついで、変数割付管理部14の変更先アドレス取得部143は、抽出した移動対象領域の変更先先頭アドレスを決定する(ステップS26)。ここでは、データメモリ24の先頭アドレスから末尾アドレスに向かって未使用領域を検索した場合の最初に発見した未使用領域の先頭アドレスを変更先先頭アドレスとする。
Next, the change destination
変数割付情報管理部141は、移動対象領域抽出部142で抽出された移動対象領域に対して付されている変数とサイズを割付変更前の変数割付情報から取得し、取得した変数とサイズを、変更先アドレス取得部143で取得した変更先先頭アドレスに新たに対応付けた割付変更後の変数割付情報を生成する(ステップS27)。
The variable allocation
その後、変数割付管理部14の変更後実行コード取得部144は、コンパイラ13を通じて割付変更後の変数割付情報に基づいて、移動対象領域に割付けられている変数を変更先先頭アドレスに変更したユーザプログラムの実行コード(割付変更後のプログラム)を生成する(ステップS28)。
Thereafter, the post-change execution
ついで、変数割付管理部14の変更情報取得部145は、割付変更後のプログラムの割付変更前のプログラムから変化した部分である変更情報を抽出する(ステップS29)。割付変更前のプログラムは、たとえばターゲットとするCPUユニット20から取得してもよいし、割付変更前の変数割付情報からコンパイラ13を通してプログラムを生成してもよい。
Next, the change
さらに、変数割付管理部14は、移動対象領域の先頭アドレスとサイズ、および変更先先頭アドレスを含む割付変更情報を生成し(ステップS30)、割付変更後のプログラムと共にCPUユニット20に送信する(ステップS31)。
Furthermore, the variable
CPUユニット20のメモリ整理実行部25は、プログラミングツール10から割付変更後のプログラムと割付変更情報とを受信すると(ステップS32)、割付変更後のプログラムをプログラムメモリ22内に格納した後(ステップS33)、RUN中書込み機能を使ってプログラムメモリ22内のユーザプログラムを修正すると同時に、プログラミングツール10から受け取った割付変更情報に基づいてデータメモリ24内のデータを移動させる(ステップS34)。データメモリ24内のデータの移動は、たとえば、割付変更情報中の移動対象領域の先頭アドレスとサイズで特定される範囲に存在するデータを取得して、変更先先頭アドレスで特定される範囲にデータを移動させることによって行われる。
When the memory
その後、CPUユニット20のメモリ整理実行部25は、ユーザプログラムの修正とデータの移動が完了すると、通信部21を通じてプログラミングツール10に対して割付変更完了通知を送信する(ステップS35)。
Thereafter, when the modification of the user program and the data movement are completed, the memory
プログラミングツール10の変数割付管理部14の変数割付情報管理部141は、通信部15を通じてCPUユニット20から割付変更完了通知を受信すると(ステップS36)、変数割付情報を、変更後の変数割付情報に更新する(ステップS37)。具体的には、変数割付情報格納部12中の変更後の変数割付情報を変更前の変数割付情報に更新する。また、CPUユニット20の変数割付情報格納部26に格納されている変数割付情報も更新する(ステップS38)。
When the variable allocation
また、移動対象領域抽出部142は、変更後の変数割付情報を分析し、データメモリ24内が、使用領域と未使用領域が共に1つのみになっているかを判定する(ステップS39)。使用領域または未使用領域が1つでない場合(ステップS39でNoの場合)には、ステップS25の移動対象領域の検索へと戻り、上記した処理が繰り返し実行される。また、使用領域と未使用領域が共に1つであれば(ステップS39でYesの場合)、メモリ整理完了とし、CPUユニット20に対して通信部15を通じてメモリ整理完了通知を送信する(ステップS40)。
The movement target
CPUユニット20のメモリ整理実行部25は、通信部21を通じてメモリ整理完了通知を受信すると(ステップS41)、データメモリ実行状態を未実行とし(ステップS42)、通信部21を通じてプログラミングツール10に正常終了通知を送信する(ステップS43)。
When the memory organizing
プログラミングツール10は通信部15を通じて正常終了通知を受信すると(ステップS44)、ユーザにメモリ整理完了を通知する(ステップS45)。以上で、メモリ整理処理が終了する。
When the
つぎに、具体例として、図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
図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
さらに、プログラムメモリ22内のプログラムAでは、変数2(アドレス「0x1006」)と変数4(アドレス「0x1010」)が使用されており、プログラムBでは、変数2(アドレス「0x1006」)と変数5(アドレス「0x1014」)が使用されている。
Further, in the program A in the
このような状態のデータメモリ24に対して上述したメモリ整理処理が実行されると、まず、データメモリ24の先頭アドレス(0x1000)から末尾アドレス(0x1019)に向かって最初の未使用領域の後の変数が割付けられた領域が検索される。ここでは、先頭アドレスが「0x1006」であり、サイズが4バイトの変数2が移動対象領域として抽出される。
When the above-described memory organizing process is executed on the
また、変更先アドレスとして、データメモリ24の先頭アドレスから末尾アドレスに向かって最初の未使用領域が検索される。ここでは、先頭アドレスが「0x1002」であり、サイズが4バイトの未使用領域が抽出され、変更先先頭アドレスとして「0x1002」が取得される。
Further, the first unused area is searched from the head address of the
以上より、変更前変数割付情報では、変数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
この処理によって、未使用領域と使用領域とが共に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
これによって、変更前変数割付情報では、変数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
この処理によって、未使用領域と使用領域とが共に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
この処理によって、未使用領域と使用領域とが共に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
まず、図5(a)の変数割付情報に示されるように、メモリ整理処理を行う前は、先頭アドレス「0x1002」にはサイズが16Kバイトの変数10〜13が割付けられている。また、変数10の前、および変数13の後は未使用領域となっている。
First, as shown in the variable allocation information in FIG. 5A, before the memory organization process,
このような状態のデータメモリ24に対して上述したメモリ整理処理が実行されると、まず、データメモリ24の先頭アドレス(0x1000)から末尾アドレス(0x5002)に向かって最初の未使用領域の後の変数が割付けられた領域が検索される。ここでは、先頭アドレスが「0x1002」であり、サイズが16Kバイトの変数10〜13が移動対象領域として抽出される。しかし、この移動対象領域のサイズは所定のサイズ(=8Kバイト)を超えているので、先頭アドレス「0x1002」から8Kバイトが移動対象領域として選択される。
When the above-described memory organizing process is executed on the
また、変更先アドレスとして、データメモリ24の先頭アドレスから末尾アドレスに向かって最初の未使用領域が検索される。ここでは、先頭アドレスが「0x1000」であり、サイズが2Kバイトの未使用領域が抽出され、変更先先頭アドレスとして「0x1000」が取得される。
Further, the first unused area is searched from the head address of the
以上より、変更前変数割付情報では、変数10〜11はアドレス「0x1002」から8Kバイトと割付けられていたが、変更後変数割付情報では、変数10〜11はアドレス「0x1000」から8Kバイトと割付けられる。また、この変更後変数割付情報を用いて割付変更後のプログラムが生成され、割付変更前のプログラムから変化した部分である変更情報が取得される。さらに、移動対象領域のアドレス「0x1002」とサイズ8Kバイト、および変更先先頭アドレス「0x1000」を含む割付変更情報が生成される。
As described above, in the variable assignment information before change, the
つぎに、プログラムメモリ22中のユーザプログラムの書換え処理が行われる。この書換え処理は、RUN中書込み機能を用いて行われ、取得された変更情報に対応する部分のみ行われる。またこれと同時に、図5(b)に示されるようにデータメモリ24中で変数10〜11の移動処理が行われる。この移動処理は、割付変更情報に基づいて行われる。そして、変更後変数割付情報が、変更前変数割付情報とされる。
Next, the rewriting process of the user program in the
この処理によって、未使用領域と使用領域とが共に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
これによって、変更前変数割付情報では、変数12〜13はアドレス「0x3002」から8Kバイトと割付けられていたが、変更後変数割付情報では、変数12〜13はアドレス「0x3000」から8Kバイト割付けられる。また、この変更後変数割付情報を用いて割付変更後のプログラムが生成され、割付変更前のプログラムから変化した部分である変更情報が取得される。さらに、移動対象領域のアドレス「0x3002」とサイズ8Kバイト、および変更先先頭アドレス「0x3000」を含む割付変更情報が生成される。
Thus, in the pre-change variable allocation information, the
つぎに、プログラムメモリ22中のユーザプログラムの書換え処理が行われる。この書換え処理は、RUN中書込み機能を用いて行われ、取得された変更情報に対応する部分のみ行われる。またこれと同時に、図5(c)に示されるようにデータメモリ24中で変数12〜13の移動処理が行われる。この移動処理は、割付変更情報に基づいて行われる。そして、変更後変数割付情報が、変更前変数割付情報とされる。以上の処理によって、所定の長さ以上のデータが所定の長さに分割されて、スキャンタイムの延びを抑えながら移動される。
Next, the rewriting process of the user program in the
この処理によって、未使用領域と使用領域とが共に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
なお、上記した説明では、データメモリ24の先頭アドレスから末尾アドレスに向かって未使用領域を検索し、最初の未使用領域の直後に存在する変数を移動対象領域として抽出する場合を示したが、これに限定されるものではなく、未使用領域を挟んで飛び飛びの状態で存在する任意の変数を抽出することができる。
In the above description, the case where the unused area is searched from the start address to the end address of the
この実施の形態によれば、データメモリ24中の変数が割付けられた移動対象領域と、データメモリ24の先頭アドレスに最も近い未使用領域を変更先アドレスとを抽出し、未使用領域が連続するように変数の割付を変更するようにしたので、RUN中書込みによる変数の追加削除の繰り返しによって未使用領域が点在するデータメモリ24内を整理し、連続する未使用領域を確保することができるという効果を有する。
According to this embodiment, the movement target area to which the variable in the
また、移動対象領域が大きい場合は、移動対象領域を複数に分割して、複数回に分けて移動させることで、データの移動によるスキャンタイム延びを抑えることができるという効果も有する。 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
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:
前記プログラミングツールと前記プログラマブルコントローラは、分割したそれぞれの領域について、前記プログラマブルコントローラの前記データ記憶手段中のデータの移動処理を行うことを特徴とする請求項2に記載のプログラマブルコントローラシステム。 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.
前記プログラミングツールは、前記プログラム中で使用されている変数とサイズ、および前記プログラマブルコントローラの前記データ記憶手段内のアドレスとを対応付ける変数割付情報から前記プログラマブルコントローラの前記データ記憶手段内の前記変数に割付けられている領域のうち断片化されている領域を移動対象領域として抽出する工程と、
前記プログラミングツールは、前記移動対象領域を他の変数に割付けられている領域と連続するように配置する前記データ記憶手段内の変更先アドレスを取得する工程と、
前記プログラミングツールは、前記移動対象領域と前記変更先アドレスとを含む割付変更後の変数割付情報と、前記プログラムと、から割付変更後のプログラムの実行コードを取得する工程と、
前記プログラミングツールは、前記割付変更後のプログラムの実行コードの割付変更前のプログラムの実行コードからの変更箇所を変更情報として取得する工程と、
前記プログラミングツールは、前記移動対象領域と前記変更先アドレスとを含む割付変更情報を生成する工程と、
前記プログラミングツールは、前記変更情報と前記割付変更情報を前記プログラマブルコントローラに送信する工程と、
前記プログラマブルコントローラは、前記変更情報と前記割付変更情報を受信する工程と、
前記プログラマブルコントローラは、前記変更情報に基づいて前記プログラム記憶手段中の前記プログラムの実行コードを書換えると同時に、前記割付変更情報にしたがって前記データ記憶手段中の前記移動対象領域中のデータを前記変更先アドレスで指定される領域に移動させる工程と、
を含むことを特徴とするメモリ整理方法。 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.
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)
| 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)
| 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 |
-
2011
- 2011-04-01 JP JP2011082231A patent/JP5669652B2/en not_active Expired - Fee Related
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 |