JP6119452B2 - Programmable controller system, its support device, programmable controller, program - Google Patents

Programmable controller system, its support device, programmable controller, program Download PDF

Info

Publication number
JP6119452B2
JP6119452B2 JP2013131118A JP2013131118A JP6119452B2 JP 6119452 B2 JP6119452 B2 JP 6119452B2 JP 2013131118 A JP2013131118 A JP 2013131118A JP 2013131118 A JP2013131118 A JP 2013131118A JP 6119452 B2 JP6119452 B2 JP 6119452B2
Authority
JP
Japan
Prior art keywords
machine language
language object
plc
programmable controller
switching
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
JP2013131118A
Other languages
Japanese (ja)
Other versions
JP2015005224A (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.)
Fuji Electric Co Ltd
Original Assignee
Fuji Electric Co Ltd
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 Fuji Electric Co Ltd filed Critical Fuji Electric Co Ltd
Priority to JP2013131118A priority Critical patent/JP6119452B2/en
Publication of JP2015005224A publication Critical patent/JP2015005224A/en
Application granted granted Critical
Publication of JP6119452B2 publication Critical patent/JP6119452B2/en
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Programmable Controllers (AREA)

Description

本発明は、複数のプログラマブルコントローラが共有メモリ経由で連携して動作するシステムに係わり、特にプログラム更新時の処理に関する。   The present invention relates to a system in which a plurality of programmable controllers operate in cooperation via a shared memory, and particularly relates to processing at the time of program update.

従来、複数のプログラマブルコントローラ(以下、PLCと記す)を連携して動作させるシステムを構築する場合、共有メモリに変数を割り付け、共有メモリ経由でPLC間のデータ連携を実現する方法がある。これは、通常、共有メモリに対して値を書き込むPLCと、その情報を利用する(読み込む)PLCが存在する。前者を書込側PLC、後者を読込側PLCと記すものとする。   Conventionally, when constructing a system in which a plurality of programmable controllers (hereinafter referred to as PLCs) are operated in cooperation, there is a method of assigning variables to a shared memory and realizing data linkage between PLCs via the shared memory. In general, there are a PLC that writes a value to a shared memory and a PLC that uses (reads) the information. The former is referred to as a writing side PLC, and the latter is referred to as a reading side PLC.

尚、よく知られているように、各PLCはそのPLC用の制御プログラムを保持しており、この制御プログラムを定周期で実行することで、各種制御対象機器の制御を行う。制御プログラムには、任意の変数が記述されており、プログラム実行時にはその変数に割り当てられたメモリ領域にアクセスする。この様な変数の一種として、上記のように共有メモリにアクセスする変数があり、ここでは“共通変数”と呼ぶものとする。   As is well known, each PLC has a control program for the PLC, and various control target devices are controlled by executing the control program at regular intervals. An arbitrary variable is described in the control program, and a memory area assigned to the variable is accessed when the program is executed. As one type of such a variable, there is a variable that accesses the shared memory as described above, and is referred to as a “common variable” here.

尚、上記のようなシステムは、共通変数を介して複数のPLCが連携して動作するシステムと言うこともできる。
ここで、上記のようなシステムにおいて、稼働中のPLCに対して制御プログラムの更新を実施する場合、同時期に複数のPLCのプログラムの更新を実施するが、特に例えば上記書込側PLCの制御プログラム更新を行う場合、これに対応する上記読込側PLCの制御プログラム更新も行う必要がある場合が多い。
The system as described above can also be said to be a system in which a plurality of PLCs operate in cooperation via a common variable.
Here, in the system as described above, when the control program is updated with respect to the operating PLC, a plurality of PLC programs are updated at the same time. When the program is updated, it is often necessary to update the corresponding control program of the reading PLC.

また、従来より、制御プログラム更新が行われる場合、既存の制御プログラムの変数に関しては、既存の割当てメモリアドレスが引き継がれるようにする機能を、コンパイラが有している。一方、更新版の制御プログラムに新たな変数が追加されている場合がある。   Further, conventionally, when a control program is updated, the compiler has a function of taking over an existing allocated memory address for variables of an existing control program. On the other hand, a new variable may be added to the updated version of the control program.

この様な場合、コンパイラは、当該新変数に新たなメモリ領域を割り当てることになる。このメモリ領域は、それまで使用されていなかったので、その格納データは不定であるか、あるいは固定値(一般的には‘0’)が格納されている。この様な不定データ等を読み出すと、何らかの異常が発生する可能性があることが知られている。   In such a case, the compiler assigns a new memory area to the new variable. Since this memory area has not been used so far, the stored data is indefinite or a fixed value (generally '0') is stored. It is known that some kind of abnormality may occur when such indefinite data is read.

そのため、特に上記“共通変数”に係わり新変数がある場合には、共有メモリにおける新変数への割当メモリ領域に対して、上記書込側PLCが最低1回は書き込みを実施した後で、上記読込側PLCがその値を読み込むように、プログラムの変更を制御する必要がある。勿論、これは、プログラム更新直後の話である。換言すれば、更新版プログラムを最初に実行するときの話である。つまり、上記のことは、まず、書込側PLCの更新版プログラムを最低1回は実行させることで新変数の割当メモリ領域への書込みを実行させた後で、読込側PLCの更新版プログラムを実行させる必要があるというものである。   Therefore, particularly when there is a new variable related to the “common variable”, the write-side PLC performs at least one write to the allocated memory area to the new variable in the shared memory, and then It is necessary to control the program change so that the reading PLC reads the value. Of course, this is just after the program update. In other words, it is a story when the updated version program is executed for the first time. In other words, the above is to first execute the update program of the write side PLC by executing the update program of the write side PLC at least once to execute the writing of the new variable to the allocated memory area. It needs to be executed.

しかしながら、従来、この様な制御プログラムの変更制御を自動で行うことは実現できておらず、従ってユーザが手作業で指示を出して、各PLCのプログラム更新タイミングを決めていた。   However, in the past, it has not been possible to automatically perform such control program change control, and accordingly, the user has issued an instruction manually to determine the program update timing of each PLC.

あるいは、この様な作業を不要とする為に、制御プログラムに工夫を施していた。これについて、図14を参照して説明する。
図14(b)には、任意の“共通変数”に係わる上記書込側PLCと読込側PLCの制御プログラム例を示す。図上左側に示すPLC1のプログラム例が、書込側PLCの制御プログラム例である。また、図上右側に示すPLC2のプログラム例が、読込側PLCの制御プログラム例である。また、図上中央には、共有メモリ(コモンメモリ)への変数データ等の格納イメージを示す。
Alternatively, the control program has been devised to make such work unnecessary. This will be described with reference to FIG.
FIG. 14B shows a control program example of the write side PLC and the read side PLC related to an arbitrary “common variable”. A program example of the PLC 1 shown on the left side of the figure is an example of a control program for the write side PLC. Moreover, the program example of PLC2 shown on the right side of the figure is a control program example of the reading side PLC. In the center of the figure, a storage image of variable data or the like in the shared memory (common memory) is shown.

図示のPLC1のプログラム例は、1行目は変数1に‘123’を代入するものである。これはPLC1上の動作としては、コモンメモリにおける変数1への割当メモリ領域にデータ‘123’を書き込む処理となる。また、2行目はフラグ1にTRUEを代入するものである。これはPLC1上の動作としては、コモンメモリにおけるフラグ1の割当メモリ領域の1ビットデータ(フラグ)をONする処理となる。つまり、変数1に関してデータ‘123’を書き込んだら、所定のフラグをONする処理である。尚、ここでは、このプログラムは上記更新版プログラムであり、変数1は、この更新版プログラムで追加された“共通変数”であるものとする。   In the program example of the PLC 1 shown in the figure, “123” is substituted for variable 1 in the first line. This is an operation on the PLC 1 in which data “123” is written in the memory area allocated to the variable 1 in the common memory. The second line substitutes TRUE for flag 1. As an operation on the PLC 1, this is a process of turning on 1-bit data (flag) in the allocated memory area of the flag 1 in the common memory. That is, when data ‘123’ is written with respect to variable 1, a predetermined flag is turned on. Here, it is assumed that this program is the above-described updated version program, and variable 1 is a “common variable” added by this updated version program.

一方、図示のPLC2のプログラム例は、全体として、もし上記フラグがONである場合には、上記変数1の割当メモリ領域からデータを読み出して‘567’を乗算する処理となる。尚、このプログラムも更新版プログラムであるものとする。   On the other hand, the program example of the illustrated PLC 2 is a process of reading data from the allocated memory area of the variable 1 and multiplying by “567” if the flag is ON as a whole. This program is also an updated program.

上記のように、変数の値の有効性を示すフラグを利用して、変数に値を書き込んだ後で、変数の値が有効になったことを示すフラグを有効にし、値を利用するPLCは、フラグが有効になった場合に、変数の値を利用するようなプログラミングをする。   As described above, after writing a value in the variable using the flag indicating the validity of the variable value, the flag indicating that the variable value is valid is enabled, and the PLC using the value is When the flag is enabled, program to use the value of the variable.

これによって、PLC1の更新版プログラムが実行されるよりも前にPLC2の更新版プログラムが実行された場合でも、フラグONの条件が満たされないので、変数1のデータ読出しは実行されない。よって、上記問題発生を防止できる。しかしながら、この方法では、ユーザのプログラミングが煩雑であり、フラグもコモンメモリ上に必要となる。コモンメモリは、PLCの他のメモリ容量より小さいため、1ビットであっても余計な領域を使用したくないものである。この様に、フラグのための余計な領域を浪費する問題がある。   As a result, even if the PLC2 update program is executed before the PLC1 update program is executed, the flag ON condition is not satisfied, and the data reading of the variable 1 is not executed. Therefore, the above problem can be prevented. However, with this method, user programming is complicated, and a flag is also required on the common memory. Since the common memory is smaller than the other memory capacity of the PLC, even if it is 1 bit, it is not desired to use an extra area. In this way, there is a problem of wasting extra space for flags.

尚、図14(b)に示すのは、制御プログラムのソースコード例である。従来より、不図示の支援装置において、ユーザが任意の制御プログラムのソースコードを作成する。そして、支援装置はコンパイラを有しており、このソースコードをコンパイルして、PLCで実行できる機械語オブジェクトへと変換する。コンパイラは、コンパイル処理の際に各変数に任意のメモリアドレスを割り当てる。また、メモリ割当結果を記憶しており、更新版プログラムのコンパイルの際には、既存の変数に対しては同じアドレスを割り当てるように管理している。勿論、更新版プログラムで新たに追加された新規変数に対しては、新たに任意のアドレスを割り当てることになり、これは未使用の記憶領域を割り当てるものと言える。   FIG. 14B shows a source code example of the control program. Conventionally, a user creates a source code of an arbitrary control program in a support device (not shown). The support apparatus has a compiler, which compiles the source code and converts it into a machine language object that can be executed by the PLC. The compiler assigns an arbitrary memory address to each variable during the compilation process. In addition, the memory allocation result is stored, and when the updated version program is compiled, management is performed so that the same address is allocated to existing variables. Of course, an arbitrary address is newly assigned to a new variable newly added by the updated version program, and it can be said that an unused storage area is assigned.

また、コンパイラが、上記コンパイル処理に伴って、例えば図14(a)に示すような共通変数アドレス表100を生成する場合もある。
図示の共通変数アドレス表100は、変数名101、アドレス102、PLC名103等から成る。変数名101の各変数毎に、その割当メモリアドレスがアドレス102に格納されると共に、リード/ライトするPLCを示す情報がPLC名103の欄に格納される。
In some cases, the compiler generates a common variable address table 100 as shown in FIG.
The illustrated common variable address table 100 includes a variable name 101, an address 102, a PLC name 103, and the like. For each variable of the variable name 101, the allocated memory address is stored in the address 102, and information indicating the PLC to be read / written is stored in the PLC name 103 column.

図示の共通変数アドレス表100は、上記各“共通変数”に関して、その割当メモリアドレスや、リード/ライトするPLCが登録されるものである。図示の「W」がライトを意味し、「R」がリードを意味する。PLC名103の欄には各PLC名が設定され、図示の例ではPLC1,PLC2,PLC3の各PLC名が設定される。そして、変数名101の変数に関して上記読込側となるPLC名に対しては「R」が格納され、書込側となるPLC名に対しては「W」が格納される。よって、図示の例では、変数1に対しては、PLC1が書込側、PLC2が読込側となることを示している。   In the illustrated common variable address table 100, the memory address to be allocated and the PLC to be read / written are registered for each “common variable”. In the figure, “W” means write, and “R” means read. Each PLC name is set in the column of the PLC name 103, and in the illustrated example, the PLC names of PLC1, PLC2, and PLC3 are set. With respect to the variable of the variable name 101, “R” is stored for the PLC name on the reading side, and “W” is stored for the PLC name on the writing side. Therefore, in the example shown in the figure, for variable 1, PLC1 is the writing side, and PLC2 is the reading side.

また、ここでは、共通変数アドレス表100にはフラグに関する登録も行われるものとする。
また、特許文献1に開示されている従来技術が知られている。
Also, here, it is assumed that registration regarding the flag is also performed in the common variable address table 100.
Moreover, the prior art currently disclosed by patent document 1 is known.

特許文献1の発明では、制御装置間でのデータのやり取りに対して同じラベル名を用いたプログラムの作成が可能で、かつ、そのラベルのデバイスへの関連付けやデバイスの割付作業がシステム構成に基づいて自動で行われる。制御装置間で同じラベル名を用いたプログラム作成を行うことで、装置開発を効率化することができる。   In the invention of Patent Document 1, it is possible to create a program using the same label name for the exchange of data between control devices, and the association of the label to the device and the device assignment work are based on the system configuration. Is done automatically. By creating a program using the same label name between the control devices, the device development can be made more efficient.

特許4541437号公報Japanese Patent No. 4541437

上記のように、複数のプログラマブルコントローラが共有メモリ経由で連携して動作するシステムに関して、従来では、システム稼動中に制御プログラム更新を行う際に上述した問題が生じる。すなわち、上記“共通変数”に関して、書込側PLCの更新版プログラムによってデータを書き込む前に、読込側PLCの更新版プログラムによるデータ読出しが行われてしまう場合に、何らかの問題が生じる可能性がある。換言すれば、共通変数のデータの有効性を保証することができない為、読込側PLCが不定データ等を読み出す可能性があり、それによって読込側PLCに何らかの異常動作等が生じる可能性がある。   As described above, with respect to a system in which a plurality of programmable controllers operate in cooperation via a shared memory, conventionally, the above-described problem occurs when updating a control program during system operation. That is, regarding the above “common variable”, there is a possibility that some problem may occur when data is read by the updated version program of the reading side PLC before the data is written by the updated version program of the writing side PLC. . In other words, since the validity of the data of the common variable cannot be guaranteed, the reading side PLC may read indefinite data or the like, which may cause some abnormal operation or the like in the reading side PLC.

この課題を解決する為に、すなわち共通変数のデータの有効性を保証するために、図14(b)で説明した方法を用いる場合、上記の通り、ユーザのプログラミングが煩雑であり、また、フラグの為に共通メモリの記憶領域を浪費する等の問題が生じる。   In order to solve this problem, that is, in order to guarantee the validity of the data of the common variable, when using the method described in FIG. 14B, as described above, the user programming is complicated, and the flag This causes problems such as wasting the storage area of the common memory.

また、特許文献1の発明は、上記課題を解決するものではない。
本発明の課題は、フラグやデータの有効性の判断処理を必要とすることなく、PLCの稼働中に制御プログラムを更新する際に、共通変数のデータの有効性を保証することができるプログラマブルコントローラシステム、そのプログラマブルコントローラ、支援装置等を提供することである。
Further, the invention of Patent Document 1 does not solve the above problem.
An object of the present invention is to provide a programmable controller capable of guaranteeing the validity of data of a common variable when updating a control program during operation of a PLC without requiring a flag or data validity judgment process. It is to provide a system, a programmable controller, a support device, and the like.

本発明のプログラマブルコントローラシステムは、支援装置と複数のプログラマブルコントローラとがネットワークに接続され、共通変数を介して複数のプログラマブルコントローラ間のデータ連携を実現するシステムであって、下記の構成を有する。   The programmable controller system of the present invention is a system in which a support device and a plurality of programmable controllers are connected to a network, and realizes data linkage between the plurality of programmable controllers via a common variable, and has the following configuration.

前記支援装置は、各プログラマブルコントローラ用の制御プログラムのソースコードであって前記共通変数が含まれる任意のソースコードを、コンパイルして機械語オブジェクトに変換するコンパイラ手段と、前記各プログラマブルコントローラに対して、そのプログラマブルコントローラ用の前記機械語オブジェクトを転送すると共に、前記コンパイル処理に伴って得られる所定情報に基づいて、該転送する機械語オブジェクトに係わる前記共通変数の読込側のプログラマブルコントローラを、通知する転送・通知手段と、前記コンパイル処理に伴って得られる所定情報に基づいて、前記共通変数の書込側のプログラマブルコントローラを認識して、該書込側のプログラマブルコントローラに対して切替指示を通知する切替指示手段とを有する。   The support apparatus includes a compiler unit that compiles arbitrary source code that is a source code of a control program for each programmable controller and includes the common variable into a machine language object, and each programmable controller The machine language object for the programmable controller is transferred, and the programmable controller on the reading side of the common variable related to the machine language object to be transferred is notified based on the predetermined information obtained with the compilation process. Based on the transfer / notification means and the predetermined information obtained with the compiling process, the programmable controller on the writing side of the common variable is recognized and the switching instruction is notified to the writing-side programmable controller. Switch instruction means That.

前記プログラマブルコントローラは、任意の切替指示に応じて、既存の機械語オブジェクト実行状態から前記転送された新たな機械語オブジェクト実行状態に切替える切替手段と、該新たな機械語オブジェクトを1回以上実行後に、前記転送・通知手段から通知された前記読込側のプログラマブルコントローラに対して、切替指示を通知するあるいは前記支援装置から切替指示を通知させる切替制御手段とを有する。   The programmable controller, in accordance with an arbitrary switching instruction, switching means for switching from the existing machine language object execution state to the transferred new machine language object execution state, and after executing the new machine language object at least once Switching control means for notifying the programmable controller on the reading side notified from the transfer / notification means of a switching instruction or for notifying the switching instruction from the support device.

本発明のプログラマブルコントローラシステム、そのプログラマブルコントローラ、支援装置等によれば、フラグやデータの有効性の判断処理を必要とすることなく、PLCの稼働中に制御プログラムを更新する際に、共通変数のデータの有効性を保証することができる。   According to the programmable controller system of the present invention, the programmable controller, the support device, and the like, when updating the control program during the operation of the PLC without the need to determine the validity of the flag or data, the common variable Data validity can be guaranteed.

本例のプログラマブルコントローラシステムの構成図である。It is a block diagram of the programmable controller system of this example. PLCにおける一般的なプログラム実行状況を示す図である。It is a figure which shows the general program execution condition in PLC. ソースコード管理表作成の具体例を示す図である。It is a figure which shows the specific example of source code management table | surface preparation. (a)はソースコードの具体例、(b)〜(d)は共通変数管理表の具体例である。(A) is a specific example of the source code, and (b) to (d) are specific examples of the common variable management table. 運用中の制御プログラム更新の際のPLC側の動作を説明する為の図(その1)である。It is FIG. (1) for demonstrating operation | movement by the side of PLC at the time of the control program update in operation. 運用中の制御プログラム更新の際のPLC側の動作を説明する為の図(その2)である。FIG. 10 is a diagram (No. 2) for explaining the operation on the PLC side at the time of updating a control program in operation; 運用中の制御プログラム更新の際のPLC側の動作を説明する為の図(その3)である。FIG. 10 is a diagram (No. 3) for explaining the operation on the PLC side at the time of updating the control program in operation; 運用中の制御プログラム更新の際のPLC側の動作を説明する為の図(その4)である。FIG. 10 is a diagram (No. 4) for explaining the operation on the PLC side when the control program is updated during operation; 関連表の生成処理フローチャート図である。It is a production | generation process flowchart figure of a related table. (a)、(b)は、関連表生成の具体例である。(A), (b) is a specific example of the related table generation. 制御プログラム更新の際の開発支援装置の処理フローである。It is a processing flow of the development support apparatus at the time of control program update. プログラム更新に係わる各PLCの処理フローチャート図である。It is a process flowchart figure of each PLC regarding a program update. 本例のプログラマブルコントローラシステムの機能ブロック図である。It is a functional block diagram of the programmable controller system of this example. (a)は従来の共通変数アドレス表、(b)は従来のソースコードの具体例である。(A) is a conventional common variable address table, and (b) is a specific example of a conventional source code.

以下、図面を参照して本発明の実施の形態について説明する。
図1は、本例のプログラマブルコントローラシステムの構成図である。
本例のプログラマブルコントローラシステムは、上述した従来のシステムと同様、複数のプログラマブルコントローラが共有メモリ経由で連携して動作するシステムである。換言すれば、複数のプログラマブルコントローラが共通変数を介して連携して動作するシステムである。そして、稼動中に制御プログラム更新を行うものである。この様なシステムでは、従来では上述した問題が生じる場合がある。本例のプログラマブルコントローラシステムでは、この様な課題を解決できる。
Embodiments of the present invention will be described below with reference to the drawings.
FIG. 1 is a configuration diagram of the programmable controller system of this example.
The programmable controller system of this example is a system in which a plurality of programmable controllers operate in cooperation via a shared memory, as in the conventional system described above. In other words, this is a system in which a plurality of programmable controllers operate in cooperation via a common variable. The control program is updated during operation. In such a system, the above-described problem may occur in the past. Such a problem can be solved by the programmable controller system of this example.

本例のプログラマブルコントローラシステムは、複数のPLC(プログラマブルコントローラ)10と、開発支援装置20が、ネットワーク9に接続された構成である。尚、複数のPLC10は、図示の例ではPLC1、PLC2、PLC3の3台のPLCを例にする。   The programmable controller system of this example has a configuration in which a plurality of PLCs (programmable controllers) 10 and a development support apparatus 20 are connected to a network 9. In the illustrated example, the plurality of PLCs 10 are exemplified by three PLCs of PLC1, PLC2, and PLC3.

PLC10の構成は、3台とも略同様であるものとし、図示の例では管理部11、メモリ(プログラム用)12、コモンメモリ13、実行管理テーブル14等を有する。尚、実行管理テーブル14は、不図示のデータ格納用メモリ等に格納される。   The configuration of the PLC 10 is substantially the same for all three units. In the illustrated example, the PLC 10 includes a management unit 11, a memory (for program) 12, a common memory 13, an execution management table 14, and the like. The execution management table 14 is stored in a data storage memory (not shown) or the like.

メモリ(プログラム用)12には、そのPLC10が実行する各種制御用の制御プログラム等が格納される。不図示のCPU等が、この制御プログラムを実行することで、不図示の制御対象機器等に対する各種制御が行われる。そして、この制御プログラムは、当該PLC10が稼働中に更新される。   The memory (for program) 12 stores control programs for various controls executed by the PLC 10. By executing this control program by a CPU (not shown), various controls are performed on a control target device (not shown). The control program is updated while the PLC 10 is in operation.

尚、後述するように、上記開発支援装置20において上記制御プログラムのソースコードが任意に作成されて、これがコンパイルされて機械語オブジェクトが生成されて、この機械語オブジェクトがPLC10にダウンロードされて、メモリ(プログラム用)12に格納される。つまり、メモリ(プログラム用)12には、制御プログラムの機械語オブジェクトが格納されている。   As will be described later, the source code of the control program is arbitrarily created in the development support apparatus 20 and is compiled to generate a machine language object. The machine language object is downloaded to the PLC 10 and stored in the memory. (For program) 12. That is, the machine language object of the control program is stored in the memory (for program) 12.

また、上記制御プログラムは、更新される場合がある。その場合、まず、開発支援装置20において更新版の制御プログラムのソースコードが任意に作成されて、これがコンパイルされて更新版の機械語オブジェクトが生成されて、この更新版の機械語オブジェクトがPLC10にダウンロードされて、メモリ(プログラム用)12に格納される。   The control program may be updated. In that case, first, the source code of the updated version of the control program is arbitrarily created in the development support apparatus 20, and this is compiled to generate an updated version of the machine language object. This updated version of the machine language object is sent to the PLC 10. It is downloaded and stored in the memory (for program) 12.

ここで、制御プログラム更新は、基本的に、運用中に行われる。よって、例えば、更新版の機械語オブジェクトをメモリ(プログラム用)12に格納する処理中や格納完了直後等には、旧版の機械語オブジェクトはメモリ(プログラム用)12に格納されていると共にCPUによって定期的に実行されている。そして、更新版の機械語オブジェクトをメモリ(プログラム用)12に格納完了後に、任意のときに、制御プログラム切替処理が行われる。これによって、旧版の機械語オブジェクトが実行される状態から、更新版の機械語オブジェクトが実行される状態へと移行することになる。   Here, the control program update is basically performed during operation. Thus, for example, during the process of storing the updated machine language object in the memory (for program) 12 or immediately after the storage is completed, the old version machine language object is stored in the memory (for program) 12 and the CPU It is executed regularly. Then, after storing the updated machine language object in the memory (for program) 12, control program switching processing is performed at any time. As a result, the state where the old machine language object is executed is shifted to the state where the updated machine language object is executed.

この様な機械語オブジェクトの実行管理制御に、上記実行管理テーブル14が用いられるが、これについては後述する。尚、上記実行管理テーブル14自体やこれを用いた上記“機械語オブジェクトの実行管理制御”自体は、既存技術であるので、簡単に説明するものとする。   The execution management table 14 is used for execution management control of such machine language objects, which will be described later. The execution management table 14 itself and the “machine language object execution management control” itself using the execution management table 14 are existing technologies, and therefore will be briefly described.

また、本例のプログラマブルコントローラシステムは、上記の通り、複数のプログラマブルコントローラ10が共有メモリ経由で連携して動作するシステムであり、これに応じて本例では各PLC10はコモンメモリ13を有する。コモンメモリ13には、複数のPLC10で共有する変数(上記共通変数)のデータが格納される。尚、従来より、各PLC10が、自己のコモンメモリ13のデータをブロードキャスト送信することで、全てのコモンメモリ13で同一のデータが格納された状態となるように制御されている。   In addition, the programmable controller system of this example is a system in which a plurality of programmable controllers 10 operate in cooperation via a shared memory as described above, and each PLC 10 has a common memory 13 in this example accordingly. The common memory 13 stores data of variables (the common variables) shared by the plurality of PLCs 10. Conventionally, each PLC 10 is controlled so that the same data is stored in all the common memories 13 by broadcasting the data of its own common memory 13.

コモンメモリ13に格納される各共通変数毎に、その共通変数に係わるデータを書き込むPLC10と、このデータを読み込むPLC10が存在する。上述したように、前者を書込側PLC、後者を読込側PLCと呼ぶものとする。   For each common variable stored in the common memory 13, there is a PLC 10 that writes data related to the common variable and a PLC 10 that reads this data. As described above, the former is called a writing side PLC and the latter is called a reading side PLC.

ここで、上記更新版の制御プログラムにおいて新たな共通変数が追加されている場合がある。この様な新たな共通変数に関しては、コモンメモリ13に当該新たな共通変数のデータ格納領域が割り当てられているが、初期状態ではこの割当領域のデータは不定状態や‘0’等となっている。この為、この共通変数に係わる読込側PLCが、この様な不定のデータを読み込むと、誤動作する可能性があり、問題となる。   Here, a new common variable may be added in the updated version of the control program. For such a new common variable, the data storage area of the new common variable is allocated to the common memory 13, but in the initial state, the data in this allocation area is in an indefinite state, '0', or the like. . For this reason, if the reading side PLC related to the common variable reads such indefinite data, there is a possibility of malfunction, which is a problem.

この為、まず、上記新たな共通変数に係わる書込側PLCが、その割当領域にデータを書き込む動作を最低1回行った後に、この共通変数に係わる読込側PLCが動作するように制御する必要がある。本手法では、これを自動で実現させる。詳しくは後述する。   For this reason, first, the write side PLC related to the new common variable needs to be controlled so that the read side PLC related to the common variable operates after at least one operation of writing data to the allocation area. There is. In this method, this is realized automatically. Details will be described later.

尚、制御プログラムで用いる変数は、コモンメモリ13に格納する共通変数に限らないが、以下の説明では特に断らない限りは「変数」は、コモンメモリ13に格納する共通変数を意味するものとする。   The variables used in the control program are not limited to the common variables stored in the common memory 13, but “variable” means a common variable stored in the common memory 13 unless otherwise specified in the following description. .

管理部11は、例えば上記制御プログラムの実行や更新など、PLC10に係わる各種制御を行う。詳しくは後述する。尚、メモリ(プログラム用)12には上記制御プログラム以外にも所定のアプリケーションプログラムが記憶されている。上記不図示のCPUが、このアプリケーションプログラムを実行することで、例えば管理部11の後述する各種処理機能が実現される。   The management unit 11 performs various controls related to the PLC 10 such as execution and update of the control program. Details will be described later. The memory (for program) 12 stores a predetermined application program in addition to the control program. When the CPU (not shown) executes this application program, for example, various processing functions described later of the management unit 11 are realized.

開発支援装置20は、ユーザによる任意の制御プログラムのソースコードの作成作業を支援する機能を有する。この機能自体は、既存の機能であり、よって特に図示・説明はしないが、この機能によって例えば図示の各ソースコード1,2,3等がユーザによって任意に作成される。   The development support apparatus 20 has a function of supporting the creation work of the source code of an arbitrary control program by the user. This function itself is an existing function. Therefore, although not shown or described in particular, for example, each source code 1, 2, 3, etc. shown in the figure is arbitrarily created by the user.

尚、ソースコード1は、PLC1用の制御プログラムのソースコードである。ソースコード2は、PLC2用の制御プログラムのソースコードである。ソースコード3も同様である。尚、本説明では、基本的に、例えばPLC1用のソースコードや機械語オブジェクトに関しては、番号の先頭は必ず‘1’とする。つまり、上記ソースコード1や後述するソースコード1−1、1−2、機械語オブジェクト1、機械語オブジェクト1−1等のように、その番号の先頭は必ず‘1’とする。同様に、例えばPLC2用のソースコードや機械語オブジェクトに関しては、番号の先頭は必ず‘2’とする。   The source code 1 is a source code of a control program for the PLC 1. Source code 2 is a source code of a control program for PLC2. The same applies to the source code 3. In this description, basically, for example, the source code for PLC1 and the machine language object are always preceded by “1”. That is, the number always starts with ‘1’, such as the source code 1, source codes 1-1, 1-2, machine language object 1, machine language object 1-1 described later. Similarly, for the source code and machine language object for PLC2, for example, the number starts with “2”.

また、本説明では、ソースコートの番号と、これをコンパイルして成る機械語オブジェクトの番号とを、同一とする。例えば、後述するソースコード1−1をコンパイルすることで後述する機械語オブジェクト1−1が生成される。   In this description, the source code number and the machine language object number obtained by compiling the same are made the same. For example, a machine language object 1-1 described later is generated by compiling source code 1-1 described later.

開発支援装置20は、コンパイラ21を有する。コンパイラ21は、上記作成されたソースコードをコンパイルして、PLC10上で動作する機械語オブジェクトに変換する。例えば、ソースコード1をコンパイルして機械語オブジェクト1を生成する。尚、上記の通り、機械語オブジェクト1は、PLC1用である。そして、不図示の転送部によって、コンパイラ21で生成した機械語オブジェクトを、対応するPLC10にダウンロードする。例えば上記機械語オブジェクト1は、PLC1にダウンロードする。尚、上記機械語オブジェクトに変換する機能自体は、既存技術である。   The development support apparatus 20 includes a compiler 21. The compiler 21 compiles the created source code and converts it into a machine language object that operates on the PLC 10. For example, the machine code object 1 is generated by compiling the source code 1. As described above, the machine language object 1 is for the PLC 1. Then, the machine language object generated by the compiler 21 is downloaded to the corresponding PLC 10 by a transfer unit (not shown). For example, the machine language object 1 is downloaded to the PLC 1. In addition, the function itself which converts into the said machine language object is an existing technique.

ここで、本例のコンパイラ21は、上記コンパイル処理に伴って、図示の共通変数管理表22やソースコード管理表23を生成・更新する。コンパイラ21は、更に、例えば、各PLC1,2、3毎に対応する機械語オブジェクト関連表24を生成する。   Here, the compiler 21 of this example generates / updates the common variable management table 22 and the source code management table 23 shown in the figure in accordance with the above compilation process. The compiler 21 further generates, for example, a machine language object relation table 24 corresponding to each of the PLCs 1, 2, and 3.

生成された機械語オブジェクト関連表24は、対応するPLC10に転送されて記憶される。各PLC10では、自己の制御プログラム更新の際に、機械語オブジェクト関連表24に基づいて、場合によっては他のPLC10に対して切替コマンドを出す。これについては詳しくは後述するが、これによって、任意の変数に係わる書込側PLC10で更新版プログラムが最低1回は実行された後に、読込側PLC10で更新版プログラムが実行されるようになる。よって、読込側PLC10でコモンメモリ13から読み込む変数データが、上記不定データ等となることはなく、異常動作となることを防止できる。   The generated machine language object relation table 24 is transferred to and stored in the corresponding PLC 10. Each PLC 10 issues a switching command to another PLC 10 in some cases based on the machine language object relation table 24 when updating its own control program. Although this will be described in detail later, the updated version program is executed by the reading PLC 10 after being executed at least once by the writing side PLC 10 related to an arbitrary variable. Therefore, the variable data read from the common memory 13 by the reading-side PLC 10 does not become the indefinite data or the like, and can be prevented from malfunctioning.

上記構成のプログラマブルコントローラシステムでは、開発支援装置20が、上記コンパイル実行に伴って、各共通変数に係わる“書込側PLC10”と“読込側PLC10”とを共通変数管理表22に記録することで、当該共通変数管理表22を生成する。また、開発支援装置20は、稼働中のPLC10のプログラムの変更を実施する際には、更新版のプログラムや機械語オブジェクト関連表24をPLC10にダウンロードすると共に、共通変数管理表22の情報に基づいて上記“書込側PLC10”だけにプログラム更新指示を送信する。これによって、まず、“書込側PLC10”だけが、自己のプログラム更新を行うことになる。つまり、上記更新版プログラムを実行する状態へと切替える。   In the programmable controller system configured as described above, the development support apparatus 20 records “write side PLC 10” and “read side PLC 10” related to each common variable in the common variable management table 22 as the compilation is performed. The common variable management table 22 is generated. In addition, when the development support apparatus 20 changes the program of the operating PLC 10, the development support apparatus 20 downloads an updated version of the program and the machine language object association table 24 to the PLC 10, and based on the information in the common variable management table 22. Thus, a program update instruction is transmitted only to the “write side PLC 10”. As a result, first, only the “write side PLC 10” performs its own program update. That is, the state is switched to a state in which the updated version program is executed.

ここで、本手法では、開発支援装置20は、上記“読込側PLC10”に対しては、プログラム更新指示を出さなくてもよい。すなわち、プログラム更新が実施された上記“書込側PLC10”が、例えば更新版の制御プログラムを1回以上実行完了した後に、上記機械語オブジェクト関連表24に基づいて上記“読込側PLC10”に対してプログラム更新指示を出す。   Here, in this method, the development support apparatus 20 does not need to issue a program update instruction to the “reading PLC 10”. That is, after the program-updated “write-side PLC 10” completes execution of the updated control program at least once, for example, the “write-side PLC 10” Issue a program update instruction.

本手法では、概略的には例えば上記のようにすることにより、共通変数のデータの有効性を保証する。すなわち、上記のように“読込側PLC10”が不定データを読み出してしまうことで異常動作するような事態を防止できる。詳しくは後述する。   In this method, the validity of the data of the common variable is ensured by, for example, the above-described method. That is, it is possible to prevent a situation in which the “reading PLC 10” operates abnormally by reading indefinite data as described above. Details will be described later.

ここで、図2に、PLCにおける一般的なプログラム実行状況を示す。
一般的に、PLCは制御プログラムを定周期で実行するものであり、本例のPLC10も同様である。すなわち、各PLC10は例えば図2に示すように、定周期で制御プログラムを実行する。制御対象は、不図示の例えば工場内の各種設備等である。そして、制御プログラム実行時以外の時間帯(空き時間)に、システム上の各種制御処理を行う。例えば、本手法による更新版プログラムのダウンロードや、更新版プログラムの切替に係わる各種処理やメッセージの送受信処理等の様々な処理を実行する。
Here, FIG. 2 shows a general program execution situation in the PLC.
In general, the PLC executes a control program at a fixed cycle, and the PLC 10 of this example is the same. That is, each PLC 10 executes the control program at a fixed cycle, for example, as shown in FIG. The control target is, for example, various facilities in a factory (not shown). Then, various control processes on the system are performed in a time zone (vacant time) other than when the control program is executed. For example, various processes such as downloading of an updated version program according to the present method, various processes related to switching of the updated version program, and message transmission / reception processes are executed.

尚、図2上では、上記システム上の各種制御処理を「システム」と記してある。つまり、図示の「システム」は、制御プログラム以外の各種処理が実行される帯域を意味するものと考えてもよい。   In FIG. 2, various control processes on the system are described as “system”. That is, the illustrated “system” may be considered to mean a band in which various processes other than the control program are executed.

尚、例えば図2のようなプログラムの実行管理は、上記管理部11が実行する。また、尚、制御プログラムを作成するプログラマは、通常、定周期期間内に実行完了するように制御プログラムを作成するものである。   For example, the management unit 11 executes execution management of a program as shown in FIG. In addition, a programmer who creates a control program usually creates a control program so that execution is completed within a fixed period.

上記のように、開発支援装置20においては、ユーザが任意のソースコードを記述する。コンパイラ21が、このソースコードを機械語オブジェクトに変換すると共に、これらソースコードと機械語オブジェクトの関連の情報を、ソースコード管理表23に記憶する。   As described above, in the development support apparatus 20, the user describes arbitrary source code. The compiler 21 converts the source code into a machine language object, and stores information related to the source code and the machine language object in the source code management table 23.

ここで、図3に、ソースコード管理表23の作成の具体例を示す。
図3では、開発支援装置20において、ユーザが、PLC1用のソースコード1−1と、PLC2用のソースコード2−1を任意に作成したものとする。
Here, FIG. 3 shows a specific example of creation of the source code management table 23.
In FIG. 3, it is assumed that in the development support apparatus 20, the user arbitrarily creates a source code 1-1 for PLC 1 and a source code 2-1 for PLC 2.

これより、コンパイラ21は、例えばまずソースコード1−1をコンパイルして機械語オブジェクト1−1を生成する。更に、このコンパイルに伴って所定情報を、ソースコード管理表23に記憶する。   Thus, for example, the compiler 21 first compiles the source code 1-1 to generate the machine language object 1-1. Further, predetermined information is stored in the source code management table 23 along with the compilation.

ここで、ソースコード管理表23は、例えば図3に示すように、番号31、PLC32、ソースコード名33、機械語オブジェクト名34の各データ項目より成る。
ソースコード名33には上記コンパイルしたソースコードの識別情報(名称、ID等)が格納され、このソースコードがどのPLC用であるかを示す情報がPLC32に格納される。尚、ここでは例えば各ソースコードには、それがどのPLC用のソースコードであるのかを示す情報が、含まれているものとする。そして、ソースコード名33のソースコードをコンパイルして得られる機械語オブジェクトの識別情報(名称、ID等)が、機械語オブジェクト名34に格納される。
Here, the source code management table 23 includes data items of a number 31, a PLC 32, a source code name 33, and a machine language object name 34 as shown in FIG.
The source code name 33 stores identification information (name, ID, etc.) of the compiled source code, and information indicating which PLC the source code is for is stored in the PLC 32. Here, for example, it is assumed that each source code includes information indicating which PLC source code it is. Then, machine language object identification information (name, ID, etc.) obtained by compiling the source code of the source code name 33 is stored in the machine language object name 34.

また、番号31には、この制御プログラム(ソースコード名33と機械語オブジェクト名34)の管理番号が格納される。ここでは、開発支援装置20は、一連の制御プログラムには同一の“管理番号”を付与するように管理制御している。ここで、通常、PLCの各制御プログラムは、初期版が作成されてPLCで運用実行された後、随時、バージョンアップされる場合が少なくない。上記“一連の制御プログラム”とは、これら初期版及び各バージョンアップ版を意味する。つまり、任意の制御プログラムの初期版が作成された際にそれに任意の管理番号を付与すると、その後、この制御プログラムの更新版には全て同一の管理番号が付与される。   The number 31 stores the management number of this control program (source code name 33 and machine language object name 34). Here, the development support apparatus 20 performs management control so that the same “management number” is assigned to a series of control programs. Here, usually, each control program of the PLC is often upgraded at any time after the initial version is created and the PLC is operated and executed. The “series of control programs” refers to these initial versions and upgraded versions. In other words, if an arbitrary management number is assigned to an initial version of an arbitrary control program, then the same management number is assigned to all updated versions of the control program.

尚、上記の通り、“制御プログラム”は、ソースコード、機械語オブジェクトであり、任意のソースコードをコンパイルして生成される機械語オブジェクトには、当該ソースコードの管理番号と同じ管理番号が付与される。   As described above, a “control program” is a source code and a machine language object, and a machine language object generated by compiling an arbitrary source code is assigned the same management number as that of the source code. Is done.

上述したことから、上記ソースコード1−1に関しては、仮に管理番号‘1’が付与されているとした場合、図示のように、番号31=1、PLC32=PLC1、ソースコード名33=ソースコード1−1、機械語オブジェクト名34=機械語オブジェクト1−1が、ソースコード管理表23に記憶されることになる。   As described above, regarding the source code 1-1, if the management number '1' is assigned, the number 31 = 1, PLC32 = PLC1, source code name 33 = source code as shown in the figure. 1-1, machine language object name 34 = machine language object 1-1 is stored in the source code management table 23.

続いて、コンパイラ21は、ソースコード2−1をコンパイルして機械語オブジェクト2−1を生成する。これに伴って、図示のように、番号31=2、PLC32=PLC2、ソースコード名33=ソースコード2−1、機械語オブジェクト名34=機械語オブジェクト2−1が、ソースコード管理表23に記憶されることになる。尚、ここでは、ソースコード2−1に対しては管理番号=‘2’が付与されているものとする。   Subsequently, the compiler 21 compiles the source code 2-1 to generate a machine language object 2-1. Accordingly, as shown in the figure, number 31 = 2, PLC 32 = PLC 2, source code name 33 = source code 2-1, machine language object name 34 = machine language object 2-1 are stored in the source code management table 23. Will be remembered. Here, it is assumed that management number = '2' is assigned to the source code 2-1.

ここで、例えば、後に、上記ソースコード1−1の更新版であるソースコード1−1’が作成されたものとする。この場合、上述したように、この更新版のソースコード1−1’の管理番号は‘1’となる。これより、コンパイラ21は、このソースコード1−1’をコンパイルして機械語オブジェクト1−1’を生成し、これに伴って図示の情報をソースコード管理表23に記憶する。すなわち、番号31=1、PLC32=PLC1、ソースコード名33=ソースコード1−1、機械語オブジェクト名34=機械語オブジェクト1−1が、ソースコード管理表23に記憶されることになる。   Here, for example, it is assumed that a source code 1-1 'that is an updated version of the source code 1-1 is created later. In this case, as described above, the management number of the updated source code 1-1 is “1”. Accordingly, the compiler 21 compiles the source code 1-1 ′ to generate a machine language object 1-1 ′, and stores the illustrated information in the source code management table 23 accordingly. That is, the number 31 = 1, PLC 32 = PLC1, source code name 33 = source code 1-1, machine language object name 34 = machine language object 1-1 are stored in the source code management table 23.

開発支援装置20は、上記生成した機械語オブジェクトとその管理番号等を、不図示の通信機能を利用して該当するPLC10に送信する。尚、該当するPLCとは、PLC32のPLCのことである。   The development support apparatus 20 transmits the generated machine language object and its management number to the corresponding PLC 10 using a communication function (not shown). Note that the corresponding PLC is a PLC of the PLC 32.

また、開発支援装置20は、上記共通変数管理表22の生成も行う。これについて、以下、図4に示す具体例を参照して説明する。
ここで、図4(a)には、上記ソースコード1−1.2−1の一部の具体例を示す。
The development support apparatus 20 also generates the common variable management table 22. This will be described below with reference to a specific example shown in FIG.
Here, FIG. 4A shows a specific example of part of the source code 1-1.2-1.

図示の例では、ソースコード1−1の一部に、変数1と変数2に関して下記のような記述がある。尚、変数1、変数2は、共通変数であるものとする。
変数1 := 123;
変数2 := 変数1*10;
上記記述の1行目は、変数1に値‘123’を代入するものであり、これはPLC10上の動作としては、変数1に割り当てられた記憶領域に、データ‘123’を書き込む処理となる。尚、この記憶領域は、コモンメモリ13上の記憶領域である。更に2行目は、変数1の値に‘123’を乗じた算出値を、変数2に代入する処理である。これは、PLC10上の動作としては、変数1に割り当てられた記憶領域からデータを読み出して、このデータに‘123’を乗じた算出値を、変数2に割り当てられた記憶領域に書き込む処理となる。
In the example shown in the drawing, the following description is given regarding the variable 1 and the variable 2 in a part of the source code 1-1. Note that variable 1 and variable 2 are common variables.
Variable 1: = 123;
Variable 2: = variable 1 * 10;
The first line of the above description assigns the value “123” to the variable 1. This is an operation on the PLC 10, which is a process of writing the data “123” in the storage area assigned to the variable 1. . This storage area is a storage area on the common memory 13. Further, the second line is a process of substituting a calculated value obtained by multiplying the value of variable 1 by “123” into variable 2. This is an operation on the PLC 10 that reads data from the storage area assigned to the variable 1 and writes a calculated value obtained by multiplying this data by '123' to the storage area assigned to the variable 2. .

また、図4に示すソースコード2−1の例では、下記のような記述がある。
内部変数 := 変数1*567:
上記記述は、変数1の値に567を乗じた値を、内部変数に代入するものである。その為にまず変数1の値を取得する必要があり、これはPLC10上の動作としては変数1に割り当てられた記憶領域からデータを読み込む処理となる。
The example of the source code 2-1 shown in FIG. 4 has the following description.
Internal variable: = Variable 1 * 567:
In the above description, a value obtained by multiplying the value of variable 1 by 567 is substituted for the internal variable. For this purpose, it is necessary to first obtain the value of the variable 1, and this is an operation on the PLC 10 that reads data from the storage area assigned to the variable 1.

上記のように、変数1に関しては、PLC1が上記書込側PLCとなり、PLC2が上記読込側PLCとなる。この様なことは、従来よりコンパイラで解釈できることである。つまり、コンパイラ21は、任意のソースコードをコンパイルする処理に伴って、その各変数に対して任意のアドレスを割り当てると共に書込側PLC/読込側PLCを判別できる。そして、これによって、共通変数管理表22を作成できる。   As described above, with respect to the variable 1, PLC1 serves as the writing PLC and PLC2 serves as the reading PLC. This is something that can be interpreted by a compiler. In other words, the compiler 21 can assign an arbitrary address to each variable and determine the writing side PLC / reading side PLC as the source code is compiled. Thus, the common variable management table 22 can be created.

従来は、コモンメモリへの変数の割付けをユーザが管理していた。更に、従来では、図14(b)に示すように、コモンメモリに割り付けた変数の値の有効/無効の判断に応じたプログラミングとしていた。その為のフラグの記述や図14(a)に示す管理が必要であった。そのため、フラグの分、余計な領域が必要であり、値の有効/無効の判断もユーザがプログラミングする必要があり煩雑であった。   Conventionally, the user manages the assignment of variables to the common memory. Further, conventionally, as shown in FIG. 14B, programming is performed in accordance with determination of validity / invalidity of values of variables allocated to the common memory. For this purpose, the description of the flag and the management shown in FIG. For this reason, an extra area is required for the flag, and it is complicated because it is necessary for the user to program whether the value is valid or invalid.

一方、本手法では、コンパイラ21が任意のソースコードをコンパイルする処理に伴って、共通変数管理表22に所定の情報を登録する。この登録の様子を図4(b)、(c)、(d)に示す。尚、図示の例は、上記図3に示す例に応じたものである。   On the other hand, in this method, predetermined information is registered in the common variable management table 22 as the compiler 21 compiles arbitrary source code. The state of this registration is shown in FIGS. 4 (b), (c) and (d). The illustrated example corresponds to the example shown in FIG.

この例では、共通変数管理表22は、上記図3の例のソースコード1−1のコンパイル処理に伴う登録処理によって、図4(b)に示す状態となる。その後、共通変数管理表22は、上記図3の例のソースコード2−1のコンパイル処理に伴う登録処理によって、図4(c)に示す状態となる。その後の後処理によって、共通変数管理表22は、図4(d)に示す状態となる。以下、これらについて説明する。   In this example, the common variable management table 22 is in the state shown in FIG. 4B by the registration process accompanying the compilation process of the source code 1-1 in the example of FIG. Thereafter, the common variable management table 22 is in the state shown in FIG. 4C by the registration process accompanying the compilation process of the source code 2-1 in the example of FIG. Subsequent post-processing causes the common variable management table 22 to be in the state shown in FIG. Hereinafter, these will be described.

まず、図4(b)、(c)、(d)に示す例では、共通変数管理表22は、プログラム名41、転送先PLC42、変数名43、コモンメモリアドレス44、各PLC名45等のデータ項目から成る。   4B, 4C, and 4D, the common variable management table 22 includes a program name 41, a transfer destination PLC 42, a variable name 43, a common memory address 44, each PLC name 45, and the like. Consists of data items.

プログラム名41には、コンパイル処理で生成される機械語オブジェクトの識別情報(オブジェクト名、ID等)が登録される。転送先PLC42には、この機械語オブジェクトの転送先のPLCの識別情報(PLC名、)ID等)が登録される。例えば、PLC1用の機械語オブジェクトであれば、その転送先PLCは当然、PLC1となる。ソースコードと機械語オブジェクトと転送先PLCとの関係は、ソースコード管理表23を参照すれば分かる。   In the program name 41, identification information (object name, ID, etc.) of the machine language object generated by the compilation process is registered. In the transfer destination PLC 42, identification information (PLC name, ID, etc.) of the transfer destination PLC of this machine language object is registered. For example, in the case of a machine language object for PLC1, the transfer destination PLC is naturally PLC1. The relationship among the source code, the machine language object, and the transfer destination PLC can be understood by referring to the source code management table 23.

また、例えば図4(a)の各変数の変数名とその変数に割り当てられた記憶領域のアドレスが、変数名43、コモンメモリアドレス44に登録される。尚、上記の通り、本説明における「変数」は、上記共通変数であるので、コモンメモリ13上のアドレスが割り当てられることになる。   For example, the variable name of each variable in FIG. 4A and the address of the storage area assigned to the variable are registered in the variable name 43 and the common memory address 44. As described above, since the “variable” in the present description is the common variable, an address on the common memory 13 is assigned.

そして、各PLC名45の欄には、ネットワーク上の各PLC10の名称等が示されると共に、変数名43の各変数毎に、その上記書込側PLC10に対しては図示の「W」が登録され、読込側PLC10に対しては図示の「R」が登録される。   The column of each PLC name 45 shows the name of each PLC 10 on the network, and for each variable of the variable name 43, “W” shown in the figure is registered for the writing PLC 10. Then, “R” shown in the figure is registered for the reading-side PLC 10.

図4(b)の状態では、上記ソースコード1−1に係わる変数である変数1、変数2が変数名43に登録されると共に、これらの各変数への割当アドレスがコモンメモリアドレス44に登録される。尚、図示の例では、変数1に対しては‘1000’番地、変数2に対しては‘1002’番地が、割り当てられている。   In the state shown in FIG. 4B, variables 1 and 2 as variables relating to the source code 1-1 are registered in the variable name 43, and addresses assigned to these variables are registered in the common memory address 44. Is done. In the example shown in the figure, “1000” is assigned to variable 1 and “1002” is assigned to variable 2.

更に、上記の通りソースコード1−1がPLC1用のソースコードであることは分かっており、更に上記変数1、変数2の両方とも書き込み処理が行われると解析できる。よって、図4(b)に示すように、変数1、変数2の何れに対しても、各PLC名45における“PLC1”の欄に「W」が登録されることになる。尚、この時点では、PLC1以外は、変数の利用状況が判断できないため、図示のように「無し」を登録する。   Furthermore, as described above, it is known that the source code 1-1 is a source code for PLC1, and it can be analyzed when both the variable 1 and the variable 2 are written. Therefore, as shown in FIG. 4B, “W” is registered in the column “PLC1” in each PLC name 45 for both the variable 1 and the variable 2. At this time, since the variable usage status cannot be determined except for the PLC 1, "None" is registered as shown.

尚、従来でも、図14(a)に示す例のように、書込側PLC/読込側PLCを判別して「W」や「R」を登録すること自体は、行われていた。つまり、これは既存技術であり、特に詳細には説明しないものとする。   Conventionally, as in the example shown in FIG. 14A, the writing PLC / reading PLC is discriminated and “W” and “R” are registered. That is, this is an existing technology and will not be described in detail.

続いて、上記ソースコード2−1がコンパイルされると、これに伴う所定情報登録が行われて、共通変数管理表22は図4(c)に示す状態となる。すなわち、コンパイル結果である機械語オブジェクト2−1がプログラム名41に登録されると共に、「PLC2」が転送先PLC42に格納される。更に、図4(a)に示す例では、変数1のリード処理があるので、図4(c)に示すように、各PLC名45における“PLC2”の欄に「R」が登録されることになる。   Subsequently, when the source code 2-1 is compiled, predetermined information registration is performed, and the common variable management table 22 is in a state shown in FIG. That is, the machine language object 2-1 as a compilation result is registered in the program name 41, and “PLC2” is stored in the transfer destination PLC. Furthermore, in the example shown in FIG. 4A, since there is a read process for variable 1, “R” is registered in the column “PLC2” in each PLC name 45 as shown in FIG. 4C. become.

その後、所定の後処理が実行されることで、共通変数管理表22は図4(d)に示す状態となる。つまり、図4(c)の状態では、変数名43の各変数毎に、「W」か「R」のどちらか一方のみが登録されている状態であった。これを、変数名43の各変数毎に、書込側PLCと読込側PLCがそれぞれどのPLC10であるのか、分かるようにする。つまり、図4(d)に示すように、変数名43の各変数毎に、「W」と「R」の両方が記述される状態とする。   Thereafter, by executing predetermined post-processing, the common variable management table 22 is in the state shown in FIG. That is, in the state of FIG. 4C, only one of “W” or “R” is registered for each variable of the variable name 43. For each variable of the variable name 43, it is made clear which PLC 10 the write side PLC and the read side PLC are respectively. That is, as shown in FIG. 4D, both “W” and “R” are described for each variable of the variable name 43.

上記後処理は、概略的には、例えば、変数名をキーにして「無し」の部分のデータを補っていく処理である。例えば、変数1は、機械語オブジェクト1−1、2−1で利用していて、PLC1で「W」、PLC2で「R」となっているので、変数1に係わる登録内容を、図4(d)のように更新する。   The post-process is generally a process of supplementing the data of “None” using, for example, a variable name as a key. For example, the variable 1 is used in the machine language objects 1-1 and 2-1, and is “W” in the PLC 1 and “R” in the PLC 2. Therefore, the registration contents related to the variable 1 are shown in FIG. Update as in d).

上記後処理は、例えば、共通変数管理表22の各レコードのなかで各PLC名45に「W」が登録されているレコードを順次処理対象として、処理対象レコードの変数名43を用いて他のレコードを検索して、同一の変数名43を有するレコード(該当レコード)を求める。   In the post-processing described above, for example, records in which “W” is registered in each PLC name 45 among the records in the common variable management table 22 are sequentially processed, and the variable name 43 of the processing target record is used to set other records. The record is searched to obtain a record (corresponding record) having the same variable name 43.

そして、該当レコードの各PLC名45に「R」が登録されている場合には、処理対象レコードと該当レコードの両方とも、PLC名45における該当欄に「W」と「R」の両方が登録された状態にする。これは、例えば、処理対象レコードに関しては、そのPLC名45において該当レコードの転送先PLC42に対応する欄に、「R」を登録する。一方、該当レコードに関しては、例えばそのPLC名45において処理対象レコードの転送先PLC42に対応する欄に、「W」を登録する。   When “R” is registered in each PLC name 45 of the corresponding record, both “W” and “R” are registered in the corresponding column in the PLC name 45 for both the process target record and the corresponding record. To the state. For example, for the processing target record, “R” is registered in the column corresponding to the transfer destination PLC 42 of the corresponding record in the PLC name 45. On the other hand, for the corresponding record, for example, “W” is registered in the column corresponding to the transfer destination PLC 42 of the processing target record in the PLC name 45.

上記処理は、例えば、図4(c)に示す例において、まず、先頭レコードが処理対象レコードとなり、その変数名43は“変数1”であるので、3番目のレコードが該当レコードとなる。3番目のレコードの転送先PLC42は“PLC2”である。これより、先頭レコードのPLC名45における「PLC2」の欄に「R」を登録する。これによって、先頭レコードは図4(d)に示す状態となる。更に、先頭レコードの転送先PLC42は“PLC1”であるので、3番目のレコードのPLC名45における「PLC1」の欄に「W」を登録する。これによって、3番目のレコードは図4(d)に示す状態となる。   In the above process, for example, in the example shown in FIG. 4C, first, the first record is a process target record, and the variable name 43 is “variable 1”, so the third record is the corresponding record. The transfer destination PLC 42 of the third record is “PLC2”. Thus, “R” is registered in the “PLC2” field in the PLC name 45 of the first record. As a result, the top record becomes the state shown in FIG. Furthermore, since the transfer destination PLC 42 of the first record is “PLC1”, “W” is registered in the “PLC1” column of the PLC name 45 of the third record. As a result, the third record is in the state shown in FIG.

尚、図4(c)に示す例においては、続いて、2番目のレコードが処理対象レコードとなるが、該当レコードが無いので、何も処理を行わない。よって、2番目のレコードに関しては、図4(d)に示すように、図4(c)の状態のままである。   In the example shown in FIG. 4C, the second record is the processing target record, but no processing is performed because there is no corresponding record. Therefore, the second record remains in the state of FIG. 4C as shown in FIG.

以下、図5〜図8を参照して、運用中の制御プログラム更新の際のPLC10側の動作について説明する。ここで、図5、図6、図7は、従来から存在する一般的な動作であり、図8が本手法に係わる動作である。これより、以下、まず、図5、図6、図7について簡単に説明する。   Hereinafter, with reference to FIG. 5 to FIG. 8, the operation on the PLC 10 side at the time of updating the control program in operation will be described. Here, FIG. 5, FIG. 6, and FIG. 7 are general operations existing in the past, and FIG. 8 is an operation related to this method. Hereinafter, first, FIGS. 5, 6, and 7 will be briefly described.

まず、上記図1で説明したように、各PLC10は実行管理テーブル14を保持するが、これは本例では“現行”用と“保持”用の2種類存在する。つまり、図5に示す実行管理テーブル14−1と、実行管理テーブル14−2の2種類ある。但し、一方が“現行”、他方が“保持”に固定されているのではなく、随時、切り替えられるものである。ここでは、図示の“プログラム実行管理表ポインタ”(以下、単にポインタと記す場合もある)を用いる。すなわち、このポインタは2つのテーブル14−1、14−2の何れか一方を指すものであり、任意のときのこのポインタが指しているテーブルが、そのときの“現行”用を意味している。よって、図5の例では、ポインタは実行管理テーブル14−1を指しているので、この状態では実行管理テーブル14−1が“現行”用となっている。   First, as described with reference to FIG. 1 above, each PLC 10 holds an execution management table 14. In this example, there are two types of "current" and "hold". That is, there are two types of execution management table 14-1 and execution management table 14-2 shown in FIG. However, one is not fixed to “current” and the other is “held”, but can be switched at any time. Here, the illustrated “program execution management table pointer” (hereinafter sometimes simply referred to as a pointer) is used. In other words, this pointer points to one of the two tables 14-1 and 14-2, and the table pointed to by this pointer at any time means "current" at that time. . Therefore, in the example of FIG. 5, since the pointer points to the execution management table 14-1, the execution management table 14-1 is for "current" in this state.

ここで、図1で説明したように、各PLC10毎に、そのメモリ12には、そのPLC用の制御プログラム(その機械語オブジェクト)が格納される。メモリ12に1つ以上の機械語オブジェクトが格納され、図5の例では2つの機械語オブジェクト1−1、1−2が格納される。そして、これら各機械語オブジェクト1−1.1−2の格納アドレスが、実行管理テーブル14−1に登録されている。   Here, as described with reference to FIG. 1, the control program for the PLC (the machine language object) is stored in the memory 12 for each PLC 10. One or more machine language objects are stored in the memory 12, and in the example of FIG. 5, two machine language objects 1-1 and 1-2 are stored. The storage address of each machine language object 1-1.1-2 is registered in the execution management table 14-1.

PLC10では、上記定周期で制御プログラムを実行する毎に、その時点でポインタが示している実行管理テーブル14を参照して、当該テーブル14に登録されている各アドレスを用いて、メモリ12の該当領域の制御プログラムを実行する。   In the PLC 10, each time the control program is executed at the above-mentioned regular cycle, the execution management table 14 indicated by the pointer at that time is referred to, and each address registered in the table 14 is used to correspond to the memory 12. Run the region control program.

ここで、上記の通り、開発支援装置20側では、ユーザが、新規の(初版の)制御プログラムを作成する場合もあれば、既存の制御プログラムの更新版を作成する場合もある。尚、逐一述べないが、ユーザが作成するのは、制御プログラムのソースコードである。よって、作成された初版/更新版のソースコードをコンパイラ21でコンパイルして、機械語オブジェクトに変換する必要がある。そして、生成した機械語オブジェクトを該当するPLC10にダウンロードする。   Here, as described above, on the development support apparatus 20 side, the user may create a new (first version) control program, or may create an updated version of an existing control program. Although not described one by one, the user creates the source code of the control program. Therefore, it is necessary to compile the created first / updated source code by the compiler 21 and convert it into a machine language object. Then, the generated machine language object is downloaded to the corresponding PLC 10.

ここで、図5に示すPLC10に対して、例えば、上記既存の機械語オブジェクト1−1.1−2の更新版である不図示の機械語オブジェクト1−1’、1−2’がダウンロードされたものとする。この場合、PLC10は、これらの不図示の機械語オブジェクト1−1’、1−2’をメモリ12に格納すると共に、その格納アドレスを“保持”用の実行管理テーブル14に格納する。つまり、図5の例では、実行管理テーブル14−2に格納アドレスを格納することになる。これについて、以下、図6、図7の例を参照して説明する。   Here, for example, machine language objects 1-1 ′ and 1-2 ′ (not shown) that are updated versions of the existing machine language object 1-1.1-2 are downloaded to the PLC 10 illustrated in FIG. Shall be. In this case, the PLC 10 stores the machine language objects 1-1 ′ and 1-2 ′ (not shown) in the memory 12 and stores the storage addresses in the execution management table 14 for “holding”. That is, in the example of FIG. 5, the storage address is stored in the execution management table 14-2. This will be described below with reference to the examples of FIGS.

尚、受信した機械語オブジェクトをメモリ12に格納したら、当該格納領域の先頭アドレス等を実行管理テーブル14に格納するが、テーブル14内での格納位置を上記“管理番号”に応じて決定するようにしてもよい。すなわち、上記受信した機械語オブジェクトの管理番号を、実行管理テーブル14のインデックスとして利用し、その位置に該当する機械語オブジェクトの上記先頭アドレス等を格納するようにしてもよい。例えば、管理番号が‘1’の場合には上記先頭アドレス等は実行管理テーブル14の先頭に配置し、管理番号が‘2’の場合には先頭アドレス等はテーブル14の先頭から2番目の位置に配置する等とする。   When the received machine language object is stored in the memory 12, the start address of the storage area is stored in the execution management table 14, but the storage position in the table 14 is determined according to the "management number". It may be. That is, the received management number of the machine language object may be used as an index of the execution management table 14 to store the top address of the machine language object corresponding to the position. For example, when the management number is “1”, the top address is arranged at the top of the execution management table 14, and when the management number is “2”, the top address is the second position from the top of the table 14. And so on.

そして、定周期で機械語オブジェクトを実行する際には、まず、上記テーブル14の先頭位置に格納された先頭アドレス等に対応する機械語オブジェクトが実行され、続いて上記2番目の位置に格納された先頭アドレス等に対応する機械語オブジェクトが実行されることになる。但し、この例に限らない。尚、本例では“管理番号”は、後述するように更新版か否かを判別する際にも用いられるが、この例に限らない。   When a machine language object is executed at a fixed period, first, a machine language object corresponding to the head address or the like stored at the head position of the table 14 is executed, and subsequently stored at the second position. The machine language object corresponding to the head address or the like is executed. However, the present invention is not limited to this example. In this example, the “management number” is also used when determining whether or not it is an updated version, as will be described later, but is not limited to this example.

尚、図6、図7や後述する図8の例では、簡単の為、各PLC10毎に1つの機械語オブジェクトが用いられるものとする。つまり、ここではPLC1とPLC2を例にすると共に、PLC1では機械語オブジェクト1−1(またはその更新版)により運用され、PLC2では機械語オブジェクト2−1(またはその更新版)により運用されるものとする。   In the examples of FIGS. 6 and 7 and FIG. 8 to be described later, one machine language object is used for each PLC 10 for simplicity. That is, here, PLC1 and PLC2 are taken as an example, and PLC1 is operated by machine language object 1-1 (or an updated version thereof), and PLC2 is operated by machine language object 2-1 (or an updated version thereof). And

例えば任意のときに、図6に示すように、PLC1においては、メモリ12に機械語オブジェクト1−1が格納されると共に、この格納アドレスが実行管理テーブル14−1に登録されているものとする。また、この例ではポインタは実行管理テーブル14−1を指している。よって、実行管理テーブル14−1が“現行”用となっている。よって、この状態では、PLC1では、定周期で制御プログラムを実行する際には、機械語オブジェクト1−1を実行することになる。   For example, at any time, as shown in FIG. 6, in the PLC 1, the machine language object 1-1 is stored in the memory 12, and the storage address is registered in the execution management table 14-1. . In this example, the pointer points to the execution management table 14-1. Therefore, the execution management table 14-1 is for "current". Therefore, in this state, the PLC 1 executes the machine language object 1-1 when executing the control program at a constant cycle.

また、図6の例では、PLC2においては、メモリ12に機械語オブジェクト2−1が格納されると共に、この格納アドレスが実行管理テーブル14−1に登録されている。また、ポインタは実行管理テーブル14−1を指している。よって、実行管理テーブル14−1が“現行”用となっている。よって、この状態では、PLC2では、定周期で制御プログラムを実行する際には、機械語オブジェクト2−1を実行することになる。   In the example of FIG. 6, in the PLC 2, the machine language object 2-1 is stored in the memory 12, and the storage address is registered in the execution management table 14-1. The pointer points to the execution management table 14-1. Therefore, the execution management table 14-1 is for "current". Therefore, in this state, the PLC 2 executes the machine language object 2-1 when executing the control program at a fixed cycle.

そして、その後、任意のときに、上記機械語オブジェクト1−1の更新版である機械語オブジェクト1−1’が、開発支援装置20で生成されてPLC1にダウンロードされたとする。更に、開発支援装置20では、上記機械語オブジェクト2−1の更新版である機械語オブジェクト2−1’も生成されてPLC2にダウンロードされたとする。   After that, it is assumed that a machine language object 1-1 'that is an updated version of the machine language object 1-1 is generated by the development support apparatus 20 and downloaded to the PLC 1 at any time. Furthermore, in the development support apparatus 20, it is assumed that a machine language object 2-1 'that is an updated version of the machine language object 2-1 is also generated and downloaded to the PLC 2.

この場合、PLC1では、この機械語オブジェクト1−1’をメモリ12に追加格納すると共に、この機械語オブジェクト1−1’が、既存の機械語オブジェクト1−1の更新版であるか否かを判別する。これは、例えば上記“管理番号”を用いる。つまり、ダウンロードされた制御プログラムの管理番号が、メモリ12に格納されている既存の制御プログラムの管理番号と同じであれば、更新版であると判定する。   In this case, the PLC 1 additionally stores the machine language object 1-1 ′ in the memory 12, and determines whether the machine language object 1-1 ′ is an updated version of the existing machine language object 1-1. Determine. For example, the “management number” is used. In other words, if the management number of the downloaded control program is the same as the management number of the existing control program stored in the memory 12, it is determined that it is an updated version.

上記の例では、機械語オブジェクト1−1の管理番号と、機械語オブジェクト1−1’の管理番号とは同一であるので(‘1’である)、これによって、新たな機械語オブジェクト1−1’が、既存の機械語オブジェクト1−1の更新版であると判定できる。そして、既存の制御プログラムの更新版であると判定された場合には、その格納アドレスは、“現行”用ではなく“保持”用の実行管理テーブル14に登録する。よって、機械語オブジェクト1−1’の格納アドレスは、図7に示すように、実行管理テーブル14−2に登録する。   In the above example, the management number of the machine language object 1-1 and the management number of the machine language object 1-1 'are the same (' 1 '), so that a new machine language object 1- It can be determined that 1 ′ is an updated version of the existing machine language object 1-1. If it is determined that the control program is an updated version of the existing control program, the storage address is registered in the execution management table 14 for “hold” instead of “current”. Therefore, the storage address of the machine language object 1-1 'is registered in the execution management table 14-2 as shown in FIG.

同様に、PLC2においては、上記機械語オブジェクト2−1’をメモリ12に追加格納すると共に、この新たな機械語オブジェクト2−1’が、既存の機械語オブジェクト2−1の更新版であることから、図7に示すようにその格納アドレスは“保持”用である実行管理テーブル14−2に登録する。   Similarly, in the PLC 2, the machine language object 2-1 ′ is additionally stored in the memory 12, and the new machine language object 2-1 ′ is an updated version of the existing machine language object 2-1. As shown in FIG. 7, the storage address is registered in the execution management table 14-2 for "holding".

以上の処理によって図7に示す状態になるが、この状態では未だ更新版のプログラムは実行されない。すなわち、図7に示すように、PLC1,PLC2の何れにおいても、上記“ポインタ”は実行管理テーブル14−1を指しているので、定周期で上記既存の機械語オブジェクト1−1、2−1が実行されることになる。   The above processing results in the state shown in FIG. 7, but the updated version of the program is not yet executed in this state. That is, as shown in FIG. 7, since the “pointer” points to the execution management table 14-1 in both PLC 1 and PLC 2, the existing machine language objects 1-1, 2-1 are regularly executed. Will be executed.

ここで、従来では、その後に、不図示の支援装置等がPLC1、PLC2に対してプログラム更新指示を通知することで、PLC1,PLC2の何れにおいても、上記“ポインタ”が実行管理テーブル14−2を指す状態に切り替わり、以って実行管理テーブル14−2が“現行”用となる。   Here, conventionally, the support device (not shown) or the like thereafter notifies the PLC 1 and PLC 2 of a program update instruction, so that the “pointer” is stored in the execution management table 14-2 in both the PLC 1 and PLC 2. As a result, the execution management table 14-2 becomes “current”.

これより、その後は定周期の制御プログラム実行時毎に、実行管理テーブル14−2を参照して機械語オブジェクトを実行することになる。よって、PLC1では更新版の機械語オブジェクト1−1’が実行されるようになる。同様に、PLC2では更新版の機械語オブジェクト2−1’が実行されるようになる。しかし、この場合、機械語オブジェクト2−1’が機械語オブジェクト1−1’よりも先に実行されると、問題が生じる場合がある。これは、特に更新版で新たな変数が追加された場合に、問題が生じる。例えば不図示の変数3が新たに追加されると共に、その書込側PLCがPLC1、読込側PLCがPLC2であるものとする。仮に、変数3に新たなアドレス1004が割り当てられた場合、最初は、アドレス1004の格納データは不定状態などである。この為、機械語オブジェクト2−1’が先に実行されると、この不定データが読み込まれることになり、以ってPLC2が異常動作する可能性があった。   Thus, thereafter, the machine language object is executed with reference to the execution management table 14-2 every time the control program having a fixed period is executed. Accordingly, the updated machine language object 1-1 'is executed in the PLC1. Similarly, the updated machine language object 2-1 'is executed in the PLC2. However, in this case, if the machine language object 2-1 'is executed before the machine language object 1-1', a problem may occur. This creates a problem, especially when new variables are added in the updated version. For example, it is assumed that a variable 3 (not shown) is newly added, the writing PLC is PLC1, and the reading PLC is PLC2. If a new address 1004 is assigned to the variable 3, the stored data at the address 1004 is initially in an undefined state. For this reason, when the machine language object 2-1 'is executed first, this indefinite data is read, and there is a possibility that the PLC 2 operates abnormally.

これに対して、本手法では、例えば図8に示すように管理制御することで、上記問題の発生を防止することができる。
以下、図8を参照して本手法によるPLC10側の動作について説明するが、その前に本手法による開発支援装置20側の動作について説明する。
On the other hand, in this method, the occurrence of the above problem can be prevented by performing management control as shown in FIG.
Hereinafter, the operation on the PLC 10 side according to the present technique will be described with reference to FIG. 8, but the operation on the development support apparatus 20 side according to the present technique will be described before that.

本手法による開発支援装置20では、例えば上記機械語オブジェクト1−1’、機械語オブジェクト2−1’を、PLC1,PLC2にそれぞれ配信後、これらPLC1.PLC2全てに上記プログラム更新指示を通知するのではなく、書込側PLCに対してのみ通知する。書込側PLCは、上記共通変数管理表22を参照することで判別できる。つまり、共通変数管理表22において、ダウンロードする機械語オブジェクトに係わるレコードにおいて「W」となっているPLC名45を取得し、これを書込側PLCと認定する。   In the development support apparatus 20 according to the present method, for example, the machine language object 1-1 'and the machine language object 2-1' are distributed to the PLC1 and PLC2, respectively, and then the PLC1. Not only the PLC 2 is notified of the program update instruction, but only the writing PLC is notified. The write-side PLC can be determined by referring to the common variable management table 22. That is, in the common variable management table 22, the PLC name 45 that is “W” in the record related to the machine language object to be downloaded is acquired, and this is recognized as the writing PLC.

ここで、図4(d)に示す例では、機械語オブジェクト1−1に関しては、変数1、変数2のどちらも、PLC名45におけるPLC1に対して「W」なっており、つまりPLC1が書込側PLCとなっている。図示していないが、更新版である機械語オブジェクト1−1’に関してもこの設定は継承されると共に、上記のように追加された変数3もPLC1が書込側PLCとなっている(そうなるようにプログラマが制御プログラムを作成することになっているものとする)。   In the example shown in FIG. 4D, regarding the machine language object 1-1, both the variable 1 and the variable 2 are “W” with respect to the PLC 1 in the PLC name 45, that is, the PLC 1 is written. It is a nesting side PLC. Although not shown, this setting is inherited also for the machine language object 1-1 ′ which is an updated version, and the variable 3 added as described above has the PLC 1 as the writing side PLC (as it becomes) So that the programmer is supposed to create a control program).

また、図4(d)に示す例では、機械語オブジェクト2−1に関しては、変数1に関して、PLC名45におけるPLC1に対して「W」なっており、つまりPLC1が書込側PLCとなっている。図示していないが、更新版である機械語オブジェクト2−1’に関してもこの設定は継承されると共に、上記のように追加された変数3もPLC1が書込側PLCとなっている。   In the example shown in FIG. 4D, regarding the machine language object 2-1, with respect to the variable 1, “W” is obtained with respect to the PLC 1 in the PLC name 45, that is, the PLC 1 is the writing side PLC. Yes. Although not shown, this setting is inherited for the machine language object 2-1 'which is an updated version, and the variable 1 added as described above has the PLC 1 as the writing side PLC.

上記のように、今回ダウンロードされるのは機械語オブジェクト1−1’、2−1’であるが、どちらもPLC1が書込側PLCとなっているので、PLC1に対してのみ上記プログラム更新指示を通知することになる。   As described above, the machine language objects 1-1 ′ and 2-1 ′ that are downloaded this time, both of which PLC1 is the writing side PLC, the above program update instruction only to PLC1. Will be notified.

上記例では、開発支援装置20は、更に、PLC1,PLC2それぞれに応じた機械語オブジェクト関連表24を生成して配信する。この関連表24生成処理は、図9に示し後に説明するものとし、ここではPLC1に関する関連表24として、図示のように機械語オブジェクト1−1’に係わる関連PLC62が「PLC2」である関連表24が生成されて、PLC1に配信されたものとして説明する。   In the above example, the development support apparatus 20 further generates and distributes the machine language object association table 24 corresponding to each of the PLC1 and PLC2. The relation table 24 generation processing is shown in FIG. 9 and will be described later. Here, as the relation table 24 related to the PLC1, the relation PLC 62 related to the machine language object 1-1 ′ is “PLC2” as shown in the figure. It is assumed that 24 is generated and distributed to the PLC 1.

上記のように、PLC1は、図8に示す内容の関連表24を受け取ると共に、プログラム更新指示を受信する。尚、関連表24は、例えば図8に示すように、機械語オブジェクト名61と関連PLC62から成る。機械語オブジェクト名61の機械語オブジェクトに関して読込側PLCとなるPLCの識別情報等が、関連PLC62に登録される。   As described above, the PLC 1 receives the association table 24 having the contents shown in FIG. 8 and also receives a program update instruction. The association table 24 includes a machine language object name 61 and an associated PLC 62 as shown in FIG. With respect to the machine language object having the machine language object name 61, the identification information of the PLC serving as the reading-side PLC is registered in the related PLC 62.

PLC1は、上記プログラム更新指示を受信すると、まず、上記既存技術と同様にして、実行管理テーブル14の切替えを行い、以って実行する制御プログラムの切替えを実現する。つまり、ポインタが、実行管理テーブル14−1を指す状態から実行管理テーブル14−2を指す状態へと切り替える。これによって、切替え後は、定周期で上記機械語オブジェクト1−1’を実行するようになる。   When the PLC 1 receives the program update instruction, the PLC 1 first switches the execution management table 14 in the same manner as the existing technology, thereby realizing switching of the control program to be executed. That is, the pointer switches from a state indicating the execution management table 14-1 to a state indicating the execution management table 14-2. As a result, after switching, the machine language object 1-1 'is executed at regular intervals.

そして、PLC1は、上記切り替え後に機械語オブジェクト1−1’を最低でも1回は実行完了したら、上記関連表24を参照して、切替メッセージの送信先を判別する。これは、上記最低1回は実行した新たな機械語オブジェクトに対応する関連PLC62を、送信先と判定する。よって、この例では、機械語オブジェクト1−1’に対応する関連PLC62である“PLC2”が、送信先であると認識し、PLC2に対して切替メッセージを送信する。   Then, when the execution of the machine language object 1-1 'is completed at least once after the switching, the PLC 1 refers to the association table 24 and determines the transmission destination of the switching message. This determines the related PLC 62 corresponding to the new machine language object executed at least once as a transmission destination. Therefore, in this example, “PLC2” that is the related PLC 62 corresponding to the machine language object 1-1 ′ is recognized as a transmission destination, and a switching message is transmitted to the PLC2.

上記切替メッセージを受信したPLC2は、既存の上記プログラム更新指示を受信した場合と略同様の処理を行う。すなわち、実行管理テーブル14の切替えを行い、以って実行する制御プログラムの切替えを実現する。つまり、ポインタが、実行管理テーブル14−1を指す状態から実行管理テーブル14−2を指す状態へと切り替える。これによって、切替え後は、定周期で上記機械語オブジェクト2−1’を実行するようになる。そして、このときには上記のように機械語オブジェクト1−1’は最低1回は実行完了しているので、上記変数3に関しても不定データを読み出すようなことはない。   The PLC 2 that has received the switching message performs substantially the same processing as when the existing program update instruction is received. That is, the execution management table 14 is switched to realize switching of the control program to be executed. That is, the pointer switches from a state indicating the execution management table 14-1 to a state indicating the execution management table 14-2. Thus, after switching, the machine language object 2-1 'is executed at regular intervals. At this time, since the machine language object 1-1 'has been executed at least once as described above, the indefinite data is not read out even for the variable 3.

尚、上記切替メッセージは、上記既存のプログラム更新指示と同じものであっても構わない。換言すれば、上記の例では、PLC1が、開発支援装置20の代わりに、PLC2へプログラム更新指示を出すようにしても構わない。あるいは、この例に限らず、PLC1がPLC2へプログラム更新指示を出すことを開発支援装置20に要求し、これに応じて開発支援装置20がPLC2へプログラム更新指示を送信するようにしてもよい。   The switching message may be the same as the existing program update instruction. In other words, in the above example, the PLC 1 may issue a program update instruction to the PLC 2 instead of the development support apparatus 20. Alternatively, not limited to this example, the PLC 1 may request the development support apparatus 20 to issue a program update instruction to the PLC 2, and the development support apparatus 20 may transmit a program update instruction to the PLC 2 in response thereto.

図9は、開発支援装置20における関連表24の生成処理フローチャート図である。この処理は、不図示の関連表生成機能部が実行する。尚、関連表生成機能部は、コンパイラ21に含まれていてもよいし、コンパイラ21以外の機能としてもよいが、何れにしても開発支援装置20が有する機能である。   FIG. 9 is a flowchart of processing for generating the association table 24 in the development support apparatus 20. This process is executed by a not-shown related table generation function unit. The relation table generation function unit may be included in the compiler 21 or may be a function other than the compiler 21, but is a function that the development support apparatus 20 has anyway.

尚、関連表24は、上記の通り各PLC毎に用意されるものであり、上記の例ではPLC1用の関連表24、PLC2用の関連表24、PLC3用の関連表24が、予め用意されている。但し、これら各関連表24は、初期状態では何もデータは存在しておらず、後述するステップS15、S16の処理が実行されることでデータが登録されるものである。   The association table 24 is prepared for each PLC as described above. In the above example, the association table 24 for PLC1, the association table 24 for PLC2, and the association table 24 for PLC3 are prepared in advance. ing. However, there is no data in each of the related tables 24 in the initial state, and the data is registered by executing the processes of steps S15 and S16 described later.

上記コンパイラ21が上記共通変数管理表22を生成した後(ステップS11)などに、関連表24の生成処理を開始する。
まず、共通変数管理表22を読込み(ステップS12)、最初の処理対象を決定する(ステップS13)。
After the compiler 21 generates the common variable management table 22 (step S11), the generation process of the association table 24 is started.
First, the common variable management table 22 is read (step S12), and the first processing target is determined (step S13).

尚、図9の処理は基本的に、共通変数管理表22の先頭レコードから順に、各レコードを順次処理対象レコードとし、各処理対象レコード毎にその転送先PLC42を、処理対象PLCする。そして、処理対象レコードについてステップS14〜S17の処理を実行する。最初の処理対象レコードは先頭レコードであり、その転送先PLC42が処理対象PLCとなる。図4(d)の例では、PLC1が処理対象PLCとなる。   Note that the processing of FIG. 9 basically sets each record as a processing target record sequentially from the first record of the common variable management table 22, and sets the transfer destination PLC 42 as a processing target PLC for each processing target record. And the process of step S14-S17 is performed about a process target record. The first process target record is the first record, and the transfer destination PLC 42 is the process target PLC. In the example of FIG. 4D, PLC1 is the processing target PLC.

ステップS14〜S17の処理では、まず、処理対象レコードにおいて、処理対象PLCの変数アクセス方法が「W」(書込側)であるか否かをチェックする(ステップS14)。   In the processing of steps S14 to S17, first, it is checked whether or not the variable access method of the processing target PLC is “W” (write side) in the processing target record (step S14).

ここで、図4(d)の例では、先頭レコードは、プログラム名41が“機械語オブジェクト1−1”、転送先PLC42が“PLC1”、変数名43が“変数1”、コモンメモリアドレス44が“1000”番地となっている。更に、各PLC名45の欄においては、PLC1が「W」で、PLC2が「R」となっている。つまり、機械語オブジェクト1−1の変数1に関しては、転送先であるPLC1が書込側PLCであり、PLC2が読込側PLCとなっている。これは、つまり、処理対象PLC(=PLC1)が「W」(書込側)となっているので、上記ステップS14の判定はYESとなり、ステップS15へ移行する。   In the example of FIG. 4D, the first record includes a program name 41 of “machine language object 1-1”, a transfer destination PLC 42 of “PLC1”, a variable name 43 of “variable 1”, and a common memory address 44. Is "1000". Furthermore, in the column of each PLC name 45, PLC1 is “W” and PLC2 is “R”. That is, for the variable 1 of the machine language object 1-1, the transfer destination PLC1 is the writing PLC and the PLC2 is the reading PLC. That is, since the processing target PLC (= PLC1) is “W” (write side), the determination in step S14 is YES, and the process proceeds to step S15.

ステップS15、S16では、処理対象PLC用の関連表24に、処理対象レコードに基づく所定情報が登録される。すなわち、処理対象レコードのプログラム名41を、処理対象PLC用の関連表24の機械語オブジェクト名61に格納する(ステップS15)。更に、処理対象レコードに係わる読込側PLCを、処理対象PLC用の関連表24の関連PLC62に格納する(ステップS16)。   In steps S15 and S16, predetermined information based on the processing target record is registered in the association table 24 for the processing target PLC. That is, the program name 41 of the processing target record is stored in the machine language object name 61 of the association table 24 for the processing target PLC (step S15). Further, the reading-side PLC related to the processing target record is stored in the related PLC 62 of the processing target PLC related table 24 (step S16).

最初は、PLC1用の関連表24に、先頭レコードに基づく所定情報が登録されることになる。すなわち、まず、先頭レコードのプログラム名41(=機械語オブジェクト1−1)を、PLC1用の関連表24の機械語オブジェクト名61に格納する(ステップS15)。これより、PLC1用の関連表24は、例えば図10(a)に示す状態になる。   Initially, predetermined information based on the first record is registered in the association table 24 for PLC1. That is, first, the program name 41 (= machine language object 1-1) of the first record is stored in the machine language object name 61 of the association table 24 for PLC1 (step S15). Thus, the association table 24 for PLC 1 is in a state shown in FIG. 10A, for example.

続いて、先頭レコードに係わる読込側PLCは、上記の通りPLC2であるので、PLC1用の関連表24の関連PLC62に、PLC2を登録する。これより、PLC1用の関連表24は、例えば図10(b)に示す状態になる。   Subsequently, since the reading-side PLC related to the first record is the PLC 2 as described above, the PLC 2 is registered in the related PLC 62 of the related table 24 for the PLC 1. Thus, the association table 24 for PLC 1 is in a state shown in FIG. 10B, for example.

そして、次のレコードを新たな処理対象レコードにして(ステップS17)、ステップS14に戻る。但し、次のレコードが無い場合には(ステップS18,NO)、本処理を終了する。次のレコードがある場合に(ステップS18,YES)、上記のようにステップS14に戻ることになる。   Then, the next record is set as a new process target record (step S17), and the process returns to step S14. However, if there is no next record (step S18, NO), this process is terminated. When there is a next record (step S18, YES), the process returns to step S14 as described above.

尚、ステップS14の判定がNOの場合には、ステップS15、S16の処理を実行することなく、ステップS17の処理へ移行する。
ここで、上記先頭レコードに関する処理が終わったならば、次の処理対象レコードは2番目のレコードとなる。図4(d)の例では、2番目のレコードは、プログラム名41が“機械語オブジェクト1−1”、転送先PLC42が“PLC1”、変数名43が“変数2”、コモンメモリアドレス44が“1002”番地となっている。更に、各PLC名45の欄においては、PLC1が「W」であるが、「R」となっているPLCは存在しない。
In addition, when determination of step S14 is NO, it transfers to the process of step S17, without performing the process of step S15, S16.
Here, when the processing related to the first record is completed, the next processing target record is the second record. In the example of FIG. 4D, the second record has a program name 41 of “machine language object 1-1”, a transfer destination PLC 42 of “PLC1”, a variable name 43 of “variable 2”, and a common memory address 44 of The address is “1002”. Furthermore, in each PLC name 45 column, PLC 1 is “W”, but there is no PLC with “R”.

この例の場合、ステップS14の判定はYESとなるので、ステップS15、S16の処理が行われるが、ステップS15ではPLC1用の関連表24に既に“機械語オブジェクト1−1”が存在するので、何も処理を行わない。更に、ステップS16では上記のように書込側PLCが無いので、何も処理を行わない。その結果、PLC1用の関連表24は、図10(b)に示す状態のままである。   In this example, the determination in step S14 is YES, so the processing in steps S15 and S16 is performed. However, in step S15, “machine language object 1-1” already exists in the association table 24 for PLC1. Do nothing. Further, in step S16, since there is no writing side PLC as described above, no processing is performed. As a result, the association table 24 for PLC 1 remains in the state shown in FIG.

ここで、仮に、図4(d)の例において2番目のレコードにおいて各PLC名45の欄でPLC3に対して「R」となっていた場合には、PLC1用の関連表24は、図10(b)に示す状態に対して、関連PLC62の欄に更に“PLC3”が追加されることになる。この例では、後にPLC1において機械語オブジェクト1−1への切替と最低1回実行された後に、上記切替メッセージがPLC2とPLC3とに送信されることになる。   Here, in the example of FIG. 4D, if “R” is displayed for the PLC 3 in the column of each PLC name 45 in the second record, the relation table 24 for the PLC 1 is shown in FIG. In the state shown in (b), “PLC3” is further added to the related PLC 62 column. In this example, after switching to the machine language object 1-1 and executing at least once in the PLC 1, the switching message is transmitted to the PLC 2 and the PLC 3.

ここで、上記2番目のレコードに関する処理が終わったならば、次の処理対象レコードは3番目のレコードとなる。図4(d)の例では、3番目のレコードは、プログラム名41が“機械語オブジェクト2−1”、転送先PLC42が“PLC2”、変数名43が“変数1”、コモンメモリアドレス44が“1000”番地となっている。更に、各PLC名45の欄においては、PLC1が「W」、PLC2が「R」となっている。よって、この例では、ステップS14の判定がNOとなるので、PLC2用の関連表24には、データは登録されないことになる。   Here, when the processing related to the second record is completed, the next processing target record is the third record. In the example of FIG. 4D, the third record has a program name 41 of “machine language object 2-1”, a transfer destination PLC 42 of “PLC2”, a variable name 43 of “variable 1”, and a common memory address 44 of The address is “1000”. Furthermore, in the column of each PLC name 45, PLC1 is “W” and PLC2 is “R”. Therefore, in this example, since the determination in step S14 is NO, no data is registered in the association table 24 for PLC2.

図11は、制御プログラム更新の際の開発支援装置20の処理フローである。
図示の処理は、開発支援装置20において上記更新版の機械語オブジェクトの生成完了と上記各PLC用の各関連表24の生成とが終了した後に実行される。
FIG. 11 is a processing flow of the development support apparatus 20 when the control program is updated.
The illustrated process is executed after the development support apparatus 20 completes the generation of the updated machine language object and the generation of the association tables 24 for the PLCs.

まず、各PLC10に対して、そのPLC用の上記更新版の機械語オブジェクトを送信する(ステップS21)。これによって、各PLCは、受信した更新版の機械語オブジェクトを、上記図6〜図8で説明したように、メモリ12に格納するが、未だ実行はしない。   First, the updated machine language object for the PLC is transmitted to each PLC 10 (step S21). As a result, each PLC stores the received updated machine language object in the memory 12 as described above with reference to FIGS. 6 to 8 but does not yet execute it.

開発支援装置20は、続いて、各PLCに対して、そのPLC用に生成した上記関連表24を送信する(ステップS22)。これによって各PLCは、受信した関連表24を記憶する。   Subsequently, the development support apparatus 20 transmits the association table 24 generated for the PLC to each PLC (step S22). As a result, each PLC stores the received association table 24.

そして、開発支援装置20は、書込側PLCに対して上記プログラム更新指示を送信する(ステップS23)。書込側PLCは、上記共通変数管理表22を参照することで判別できる。つまり、「W」が記述されている箇所のPLC名45が、書込側PLCである。尚、切替コマンドは、上記プログラム更新指示に相当する。   Then, the development support apparatus 20 transmits the program update instruction to the writing side PLC (step S23). The write-side PLC can be determined by referring to the common variable management table 22. That is, the PLC name 45 where “W” is described is the writing-side PLC. The switch command corresponds to the program update instruction.

これより、図4(d)に示す例では、PLC1のみが書込側PLCと判別されて、PLC1に対してのみ上記プログラム更新指示を送信する。これによって、PLC1は、例えば図8で説明したように、自己の制御プログラム更新処理を行い、更に更新版の制御プログラムを最低1回は実行した後に、関連表24に基づいてこの更新版の制御プログラムの読込側PLCに対して、切替コマンドを送信する。この様な動作を実現する処理例を、図12に示す。   As a result, in the example shown in FIG. 4D, only the PLC 1 is determined to be the writing side PLC, and the program update instruction is transmitted only to the PLC 1. As a result, the PLC 1 performs its own control program update process, for example, as described with reference to FIG. 8, and executes the updated version of the control program at least once. A switching command is transmitted to the program reading PLC. An example of processing for realizing such an operation is shown in FIG.

図12は、プログラム更新に係わる各PLCの処理フローチャート図である。
尚、図12の説明では、上記プログラム更新指示は、上記切替コマンドと同一であるとすると共に、“切替コマンド”の名称で統一するものとする。よって、以下の図12の説明においては、開発支援装置20も切替コマンドを送信することになる。尚、切替コマンドを受信したPLC10は、その送信元が開発支援装置20であるか他のPLC10であるかを判断する必要はない。尚、図12の説明以降の説明においても、“切替コマンド”の名称で統一して説明する場合があるものとする。
FIG. 12 is a process flowchart of each PLC related to program update.
In the description of FIG. 12, it is assumed that the program update instruction is the same as the switching command and is unified with the name “switching command”. Therefore, in the following description of FIG. 12, the development support apparatus 20 also transmits a switching command. The PLC 10 that has received the switch command does not need to determine whether the transmission source is the development support apparatus 20 or another PLC 10. In the following description of FIG. 12, it is assumed that there is a case where description is made by using the name of “switching command”.

図12において、開発支援装置20によって上記ステップS21で送信された機械語オブジェクトを受信すると、これをメモリ12に格納する(ステップS31)。受信した機械語オブジェクトのメモリ格納処理は、既に述べた通りであり、更新版の場合には、その時点での保持用の実行管理テーブル14−2に、格納アドレスを登録する。   In FIG. 12, when the machine language object transmitted in step S21 is received by the development support apparatus 20, it is stored in the memory 12 (step S31). The memory storage process of the received machine language object is as described above. In the case of the updated version, the storage address is registered in the execution management table 14-2 for holding at that time.

また、開発支援装置20が上記ステップS22で送信した関連表24を受信すると、これを所定の記憶領域に記憶する(ステップS32)。
そして、切替コマンドの受信待ち状態となり、切替コマンドを受信したらステップS34以降の処理を実行する(ステップS33)。尚、図8の例では、PLC1は開発支援装置20からの切替コマンドを受信することになり、PLC2はPLC1が送信する切替コマンドを受信することになる。
When the development support apparatus 20 receives the association table 24 transmitted in step S22, it stores it in a predetermined storage area (step S32).
And it will be in the reception waiting state of a switching command, and if a switching command is received, the process after step S34 will be performed (step S33). In the example of FIG. 8, the PLC 1 receives the switching command from the development support apparatus 20, and the PLC 2 receives the switching command transmitted by the PLC 1.

切替コマンドを受信したら、まず、機械語オブジェクトの切り替え処理を行う(ステップS34)。これは、既に図7等で説明したように、上記“ポインタ”を切替えるものである。これは、上記“現行”用の実行管理テーブル14を切替えることを意味する。“ポインタが”例えば上記実行管理テーブル14−1を指している状態であった場合、上記実行管理テーブル14−2を指すように切替える。これによって、実行管理テーブル14−2が新たな“現行”用となる。そして、これによって、その後は、定周期で制御プログラムを実行する際に、更新版の機械語オブジェクトが実行されることになる。   When the switching command is received, first, a machine language object switching process is performed (step S34). This is to switch the “pointer” as already described with reference to FIG. This means that the “current” execution management table 14 is switched. If the “pointer” is in a state pointing to, for example, the execution management table 14-1, switching is performed to point to the execution management table 14-2. As a result, the execution management table 14-2 is used for the new “current”. As a result, thereafter, when the control program is executed at regular intervals, the updated version of the machine language object is executed.

これによって更新版の機械語オブジェクトが実行されたら(ステップS35)、その実行完了を確認後(ステップS36)、関連表24を参照することで、当該更新版の機械語オブジェクトの読込側PLCに対して、切替コマンドを送信する(ステップS37)。これは、関連表24において上記実行した機械語オブジェクトの機械語オブジェクト名61に対応する関連PLC62に対して、切替コマンドを送信するものである。例えば図8に示す関連表24の例の場合、PLC1は、機械語オブジェクト1−1’を実行完了したら、PLC2に対して切替コマンドを送信する。   As a result, when the updated version of the machine language object is executed (step S35), the completion of the execution is confirmed (step S36). Then, the switching command is transmitted (step S37). This is to transmit a switching command to the related PLC 62 corresponding to the machine language object name 61 of the executed machine language object in the association table 24. For example, in the case of the example of the association table 24 shown in FIG. 8, the PLC 1 transmits a switching command to the PLC 2 when the execution of the machine language object 1-1 ′ is completed.

ここで、この切替コマンドを受信したPLC2も、図12の処理を実行することになるが、上記の例ではPLC2用の関連表24には何もデータが無いので、PLC2は他のPLC10に対して切替コマンドを送信することはない。   Here, the PLC 2 that has received this switching command also executes the processing of FIG. 12, but in the above example, there is no data in the association table 24 for the PLC 2, so the PLC 2 Switch command is not sent.

尚、図示していないが、仮に、PLC1に対して更に不図示の機械語オブジェクト1−2’もダウンロードされると共に、関連表24には更に機械語オブジェクト名61が“機械語オブジェクト1−2”で関連PLC62が例えば“PLC3”であるレコードが追加されているものとする。この例の場合、PLC1は、たとえば、まず、機械語オブジェクト1−1’を実行完了したら、PLC2に対して切替コマンドを送信し、その後に、更に、機械語オブジェクト1−2’を実行完了したら、PLC3に対して切替コマンドを送信することになる。この様に、各機械語オブジェクト別に、切替指示の制御を行うことも可能である。   Although not shown, a machine language object 1-2 ′ (not shown) is also downloaded to the PLC 1, and a machine language object name 61 is further added to the “machine language object 1-2” in the association table 24. It is assumed that a record in which the related PLC 62 is “PLC3” is added. In the case of this example, for example, the PLC 1 first transmits a switch command to the PLC 2 when the execution of the machine language object 1-1 ′ is completed, and then further completes the execution of the machine language object 1-2 ′. , A switching command is transmitted to the PLC 3. In this way, it is possible to control the switching instruction for each machine language object.

尚、図10に示す例のように、各関連PLC62は、各機械語オブジェクト名61に対応して格納されるものである。これより、ステップS37で決定する送信先PLCは、更新版の機械語オブジェクトに関連するPLCとなる。つまり、仮にPLC1には更に不図示の機械語オブジェクト1−2が格納されているが、今回の更新では機械語オブジェクト1−2の更新版は作成されていなかった場合には、機械語オブジェクト1−2に関連するPLCには、切替コマンドは送信されないことになる。   As shown in the example shown in FIG. 10, each related PLC 62 is stored in correspondence with each machine language object name 61. As a result, the transmission destination PLC determined in step S37 is a PLC related to the updated machine language object. That is, if the machine language object 1-2 (not shown) is further stored in the PLC 1, but the updated version of the machine language object 1-2 has not been created in this update, the machine language object 1 The switch command is not transmitted to the PLC related to -2.

また、これに伴って、上記“現行”と“保持”の2種類の実行管理テーブル14と“ポインタ”も、各機械語オブジェクト毎に設けられるようにしてもよい。つまり、この場合、図5に示すような状態にはならないことになる。つまり、図5では1つの実行管理テーブル14−1に複数の機械語オブジェクトの格納アドレスが登録されているが、1つのみしか登録されないことになる。   Accordingly, the two types of execution management tables 14 of “current” and “hold” and “pointer” may be provided for each machine language object. That is, in this case, the state as shown in FIG. That is, in FIG. 5, the storage addresses of a plurality of machine language objects are registered in one execution management table 14-1, but only one is registered.

尚、上述した説明は一例であり、この例に限らない。例えば、上記切替コマンドを送信し得るのは、開発支援装置20のみであるものとしてもよい。この場合、上記ステップS37の処理の代わりに、開発支援装置20に対してプログラム更新・実行完了した旨や、コマンド送信先とするPLCを通知する。上記の例では、PLC1が開発支援装置20に対してコマンド送信先としてPLC2を通知する。これより、開発支援装置20がPLC2に対して上記切替コマンドを送信するように構成してもよい。   The above description is an example, and the present invention is not limited to this example. For example, only the development support apparatus 20 may transmit the switching command. In this case, instead of the processing in step S37, the development support apparatus 20 is notified of the completion of program update / execution and the PLC as the command transmission destination. In the above example, the PLC 1 notifies the development support apparatus 20 of PLC 2 as a command transmission destination. Accordingly, the development support device 20 may be configured to transmit the switching command to the PLC 2.

あるいは、図8の例では、切替コマンドをメッセージ送信していたが、この例に限らず、例えばコモンメモリ13を利用する方法等であってもよい。
図13は、本例のプログラマブルコントローラシステムの機能ブロック図である。
Alternatively, in the example of FIG. 8, the switching command is transmitted as a message. However, the present invention is not limited to this example. For example, a method using the common memory 13 may be used.
FIG. 13 is a functional block diagram of the programmable controller system of this example.

図示のプログラマブルコントローラシステムは、図1に示す開発支援装置20と各PLC10の機能ブロック図である。
図示の例では、開発支援装置20の各処理機能は、コンパイラ部71、転送・通知部72、切替指示部73等である。
The illustrated programmable controller system is a functional block diagram of the development support apparatus 20 and each PLC 10 shown in FIG.
In the illustrated example, the processing functions of the development support apparatus 20 are a compiler unit 71, a transfer / notification unit 72, a switching instruction unit 73, and the like.

コンパイラ部71は、各プログラマブルコントローラ用の制御プログラムのソースコードであって上記共通変数が含まれる任意のソースコードを、コンパイルして機械語オブジェクトに変換する。   The compiler unit 71 compiles arbitrary source code that is the source code of the control program for each programmable controller and includes the common variable, and converts it into a machine language object.

尚、図1で説明したように、上記ソースコードをユーザに任意に作成させる為の支援処理機能もあってよいが、この機能は必須ではなく、例えば、他の任意の情報処理装置等で作成されたソースコードを、開発支援装置20に格納するものであっても構わない。   As described with reference to FIG. 1, there may be a support processing function for allowing the user to arbitrarily create the source code. However, this function is not indispensable. For example, it is created by any other information processing apparatus or the like. The source code thus obtained may be stored in the development support apparatus 20.

転送・通知部72は、各プログラマブルコントローラに対して、そのプログラマブルコントローラ用の前記機械語オブジェクトを転送すると共に、前記コンパイル処理に伴って得られる所定情報に基づいて、該転送する機械語オブジェクトに係わる前記共通変数の読込側のプログラマブルコントローラを、通知する。尚、これは、例えば、上記機械語オブジェクト関連表24を作成して通知するものである。   The transfer / notification unit 72 transfers the machine language object for the programmable controller to each programmable controller and relates to the machine language object to be transferred based on the predetermined information obtained in the compilation process. The programmable controller on the reading side of the common variable is notified. In this case, for example, the machine language object relation table 24 is created and notified.

また、上記所定情報とは、例えば上記共通変数管理表22等である。あるいは更に上記ソースコード管理表23等があってもよい。
切替指示部73は、上記コンパイル処理に伴って得られる所定情報に基づいて、共通変数の書込側のプログラマブルコントローラを認識して、該書込側のプログラマブルコントローラに対して切替指示を通知する。
The predetermined information is, for example, the common variable management table 22 or the like. Alternatively, the source code management table 23 may be provided.
The switching instructing unit 73 recognizes the programmable controller on the writing side of the common variable based on the predetermined information obtained with the compiling process, and notifies the switching instruction to the writing-side programmable controller.

また、プログラマブルコントローラ(PLC)10は、切替部81、切替制御部82等を有する。
切替部81は、任意の切替指示に応じて、既存の機械語オブジェクト実行状態から前記転送された新たな機械語オブジェクト実行状態に切替える。
The programmable controller (PLC) 10 includes a switching unit 81, a switching control unit 82, and the like.
The switching unit 81 switches from the existing machine language object execution state to the transferred new machine language object execution state in response to an arbitrary switching instruction.

切替制御部82は、該新たな機械語オブジェクトを1回以上実行後に、転送・通知手段から通知された読込側のプログラマブルコントローラに対して、切替指示を通知する。あるいは支援装置から切替指示を通知させる。   After executing the new machine language object at least once, the switching control unit 82 notifies the switching instruction to the reading-side programmable controller notified from the transfer / notification unit. Alternatively, a switching instruction is notified from the support device.

上記切替指示は、例えば上述した切替メッセージであり、上述したように基本的には、最初は開発支援装置20が任意の共通変数に係わる書込側PLCにのみ切替メッセージを通知し、当該任意の共通変数に係わる書込側PLCが、自己の新たな機械語オブジェクトを実行完了後に、読込側PLCに対して切替メッセージを送信する。但し、上記の通り、この例に限らない。   The switching instruction is, for example, the switching message described above. Basically, as described above, the development support apparatus 20 first notifies the switching message only to the writing side PLC related to an arbitrary common variable, and The writing side PLC related to the common variable transmits a switching message to the reading side PLC after the execution of its own new machine language object is completed. However, as described above, the present invention is not limited to this example.

以上説明したように、本手法によれば、コモンメモリ経由で複数のPLCが連携して動作するプログラマブルコントローラシステムにおいて稼働中のPLCのプログラム更新を実施する場合に、共通変数の有効性をシステムとして保障することができる。“共通変数の有効性を保障する”とは、各共通変数毎に、その共通変数の読込側PLCがそのデータを読込む際には常にそのデータが有効なものであることが保障されることである。有効なデータとは、少なくとも不定データや一律‘0’のデータ等では無いことを意味する。   As described above, according to the present method, when a program update of a running PLC is performed in a programmable controller system in which a plurality of PLCs operate in cooperation with each other via a common memory, the effectiveness of the common variable is defined as a system. Can be ensured. “Ensuring the validity of a common variable” means that for each common variable, it is guaranteed that the data is always valid when the PLC reading the common variable reads the data. It is. Valid data means that it is not at least indefinite data or uniform “0” data.

また、従来でも、“共通変数の有効性を保障する”ことは可能であったが、その為には上述したように、フラグを用いたり、その為のプログラムが別途必要になっており、ユーザのプログラミングが煩雑であり、人的ミスが生じる可能性があり、また、フラグの為に共通メモリの記憶領域を浪費する等の問題が生じる。本手法では、この様な問題が生じることなく、“共通変数の有効性を保障する”ことができる。すなわち、ユーザの手間が掛かることなく、プログラミングが煩雑となることなく、プログラミングにおいて人的ミスが生じる危険性がなく、更に、無駄なフラグが必要無くなり、有限な共有メモリの記憶領域を有効に活用できる。   In the past, it was possible to “guarantee the validity of the common variable”. However, as described above, a flag is used or a program for that is separately required for the user. Programming is complicated, human error may occur, and a problem such as wasting the storage area of the common memory due to the flag occurs. In this method, it is possible to “guarantee the effectiveness of common variables” without causing such problems. In other words, there is no user effort, programming is not complicated, there is no risk of human error in programming, no unnecessary flags are required, and the limited shared memory storage area is effectively used. it can.

10 PLC(プログラマブルコントローラ)
11 管理部
12 メモリ(プログラム用)
13 コモンメモリ
14 実行管理テーブル
20 開発支援装置
21 コンパイラ
22 共通変数管理表
23 ソースコード管理表
24 機械語オブジェクト関連表
31 番号
32 PLC
33 ソースコード名
34 機械語オブジェクト名
41 プログラム名
42 転送先PLC
43 変数名
44 コモンメモリアドレス
45 各PLC名
61 機械語オブジェクト名
62 関連PLC

10 PLC (programmable controller)
11 Manager 12 Memory (for program)
13 common memory 14 execution management table 20 development support device 21 compiler 22 common variable management table 23 source code management table 24 machine language object relation table 31 number 32 PLC
33 Source code name 34 Machine language object name 41 Program name 42 Destination PLC
43 Variable name 44 Common memory address 45 Each PLC name 61 Machine language object name 62 Related PLC

Claims (9)

支援装置と複数のプログラマブルコントローラとがネットワークに接続され、共通変数を介して複数のプログラマブルコントローラ間のデータ連携を実現するシステムであって、
前記支援装置は、
各プログラマブルコントローラ用の制御プログラムのソースコードであって前記共通変数が含まれる任意のソースコードを、コンパイルして機械語オブジェクトに変換するコンパイラ手段と、
前記各プログラマブルコントローラに対して、そのプログラマブルコントローラ用の前記機械語オブジェクトを転送すると共に、前記コンパイル処理に伴って得られる所定情報に基づいて、該転送する機械語オブジェクトに係わる前記共通変数の読込側のプログラマブルコントローラを、通知する転送・通知手段と、
前記コンパイル処理に伴って得られる所定情報に基づいて、前記共通変数の書込側のプログラマブルコントローラを認識して、該書込側のプログラマブルコントローラに対して切替指示を通知する切替指示手段と、
前記プログラマブルコントローラは、
任意の切替指示に応じて、既存の機械語オブジェクト実行状態から前記転送された新たな機械語オブジェクト実行状態に切替える切替手段と、
該新たな機械語オブジェクトを1回以上実行後に、前記転送・通知手段から通知された前記読込側のプログラマブルコントローラに対して、切替指示を通知するあるいは前記支援装置から切替指示を通知させる切替制御手段と、
を有することを特徴とするプログラマブルコントローラシステム。
A support device and a plurality of programmable controllers are connected to a network, and a system for realizing data linkage between a plurality of programmable controllers via a common variable,
The support device includes:
Compiler means for compiling and converting arbitrary source code of the control program for each programmable controller that includes the common variable into a machine language object;
The machine language object for the programmable controller is transferred to each programmable controller, and the common variable related to the machine language object to be transferred is read based on predetermined information obtained in the compilation process. Transfer / notification means for notifying the programmable controller of
Switching instruction means for recognizing the programmable controller on the writing side of the common variable and notifying the switching controller on the writing side based on the predetermined information obtained with the compiling process;
The programmable controller is
A switching means for switching from the existing machine language object execution state to the transferred new machine language object execution state in response to an arbitrary switching instruction;
A switching control means for notifying the programmable controller on the reading side notified from the transfer / notification means of a switching instruction or notifying the switching instruction from the support device after executing the new machine language object at least once. When,
A programmable controller system comprising:
前記所定情報は、前記機械語オブジェクトに応じて、その転送先のプログラマブルコントローラ、それに係わる各共通変数、該各共通変数毎の書込側と読込側のプログラマブルコントローラの情報を有する共通変数管理表であることを特徴とする請求項1記載のプログラマブルコントローラ。   The predetermined information is a common variable management table having information on the programmable controller of the transfer destination, each common variable related thereto, information on the write side and the programmable controller on the read side for each common variable, according to the machine language object. The programmable controller according to claim 1, wherein: 前記切替手段による前記既存の機械語オブジェクト実行状態から前記転送された新たな機械語オブジェクト実行状態への切替えは、該プログラマブルコントローラの稼働中に実行されることを特徴とする請求項1または2記載のプログラマブルコントローラ。   3. The switching from the existing machine language object execution state to the transferred new machine language object execution state by the switching unit is executed during operation of the programmable controller. Programmable controller. 前記プログラマブルコントローラは、
前記転送された新たな機械語オブジェクトを、前記既存の機械語オブジェクトとは別の記憶領域に格納する機械語オブジェクト記憶手段と、
前記既存の機械語オブジェクトの記憶領域を示す第1のアドレス情報と、前記新たな機械語オブジェクトの記憶領域を示す第2のアドレス情報とが記憶されたアドレス記憶手段と、
前記第1、第2の何れかのアドレス情報が示す記憶領域の機械語オブジェクトを、定周期で実行する制御手段と、
を更に有することを特徴とする請求項1記載のプログラマブルコントローラシステム。
The programmable controller is
Machine language object storage means for storing the transferred new machine language object in a storage area different from the existing machine language object;
Address storage means for storing first address information indicating a storage area of the existing machine language object and second address information indicating a storage area of the new machine language object;
Control means for executing a machine language object in a storage area indicated by either the first or second address information at regular intervals;
The programmable controller system according to claim 1, further comprising:
前記新たな機械語オブジェクトは、前記既存の機械語オブジェクトの更新版の機械語オブジェクトであることを特徴とする請求項1〜4の何れかに記載のプログラマブルコントローラ。   The programmable controller according to claim 1, wherein the new machine language object is a machine language object that is an updated version of the existing machine language object. 支援装置と複数のプログラマブルコントローラとがネットワークに接続され、共通変数を介して複数のプログラマブルコントローラ間のデータ連携を実現するシステムにおける該支援装置であって、
各プログラマブルコントローラ用の制御プログラムのソースコードであって前記共通変数が含まれる任意のソースコードを、コンパイルして機械語オブジェクトに変換するコンパイラ手段と、
前記各プログラマブルコントローラに対して、そのプログラマブルコントローラ用の前記機械語オブジェクトを転送すると共に、前記コンパイル処理に伴って得られる所定情報に基づいて、該転送する機械語オブジェクトに係わる前記共通変数の読込側のプログラマブルコントローラを、通知する転送・通知手段と、
前記コンパイル処理に伴って得られる所定情報に基づいて、前記共通変数の書込側のプログラマブルコントローラを認識して、該書込側のプログラマブルコントローラに対して切替指示を通知する切替指示手段と、
を有することを特徴とするプログラマブルコントローラシステムの支援装置。
The support apparatus and the plurality of programmable controllers are connected to a network, and the support apparatus in the system that realizes data linkage between the plurality of programmable controllers via a common variable,
Compiler means for compiling and converting arbitrary source code of the control program for each programmable controller that includes the common variable into a machine language object;
The machine language object for the programmable controller is transferred to each programmable controller, and the common variable related to the machine language object to be transferred is read based on predetermined information obtained in the compilation process. Transfer / notification means for notifying the programmable controller of
Switching instruction means for recognizing the programmable controller on the writing side of the common variable and notifying the switching controller on the writing side based on the predetermined information obtained with the compiling process;
An apparatus for supporting a programmable controller system, comprising:
支援装置と複数のプログラマブルコントローラとがネットワークに接続され、共通変数を介して複数のプログラマブルコントローラ間のデータ連携を実現するシステムにおける該プログラマブルコントローラであって、
既存の機械語オブジェクトを記憶する第1記憶手段と、
前記支援装置から転送される新たな機械語オブジェクトを受信すると、該新たな機械語オブジェクトを記憶する第2記憶手段と、
通知される切替指示に応じて、既存の機械語オブジェクト実行状態から前記転送された新たな機械語オブジェクト実行状態に切替える切替手段と、
該新たな機械語オブジェクトを1回以上実行後に、前記支援装置から通知された読込側のプログラマブルコントローラに対して、切替指示を通知するあるいは前記支援装置から切替指示を通知させる切替制御手段と、
を有することを特徴とするプログラマブルコントローラシステム。
The programmable controller in a system in which a support device and a plurality of programmable controllers are connected to a network and realize data linkage between the plurality of programmable controllers via a common variable,
First storage means for storing an existing machine language object;
Receiving a new machine language object transferred from the support device, second storage means for storing the new machine language object;
Switching means for switching from the existing machine language object execution state to the transferred new machine language object execution state in response to the notified switching instruction;
A switching control means for notifying the programmable controller on the reading side notified from the support device after the execution of the new machine language object at least once, or for notifying the switching instruction from the support device;
A programmable controller system comprising:
支援装置と複数のプログラマブルコントローラとがネットワークに接続され、共通変数を介して複数のプログラマブルコントローラ間のデータ連携を実現するシステムにおける該支援装置のコンピュータを、
各プログラマブルコントローラ用の制御プログラムのソースコードであって前記共通変数が含まれる任意のソースコードを、コンパイルして機械語オブジェクトに変換するコンパイラ手段と、
前記各プログラマブルコントローラに対して、そのプログラマブルコントローラ用の前記機械語オブジェクトを転送すると共に、前記コンパイル処理に伴って得られる所定情報に基づいて、該転送する機械語オブジェクトに係わる前記共通変数の読込側のプログラマブルコントローラを、通知する転送・通知手段と、
前記コンパイル処理に伴って得られる所定情報に基づいて、前記共通変数の書込側のプログラマブルコントローラを認識して、該書込側のプログラマブルコントローラに対して切替指示を通知する切替指示手段、
として機能させるためのプログラム。
A computer of the support device in a system in which the support device and a plurality of programmable controllers are connected to a network and realize data linkage between the plurality of programmable controllers via a common variable.
Compiler means for compiling and converting arbitrary source code of the control program for each programmable controller that includes the common variable into a machine language object;
The machine language object for the programmable controller is transferred to each programmable controller, and the common variable related to the machine language object to be transferred is read based on predetermined information obtained in the compilation process. Transfer / notification means for notifying the programmable controller of
A switching instruction means for recognizing the programmable controller on the writing side of the common variable and notifying the switching controller on the writing side based on predetermined information obtained with the compiling process;
Program to function as.
支援装置と複数のプログラマブルコントローラとがネットワークに接続され、共通変数を介して複数のプログラマブルコントローラ間のデータ連携を実現するシステムにおける該プログラマブルコントローラのコンピュータを、
既存の機械語オブジェクトを記憶する第1記憶手段と、
前記支援装置から転送される新たな機械語オブジェクトを受信すると、該新たな機械語オブジェクトを記憶する第2記憶手段と、
通知される切替指示に応じて、既存の機械語オブジェクト実行状態から前記転送された新たな機械語オブジェクト実行状態に切替える切替手段と、
該新たな機械語オブジェクトを1回以上実行後に、前記支援装置から通知された読込側のプログラマブルコントローラに対して、切替指示を通知するあるいは前記支援装置から切替指示を通知させる切替制御手段、
として機能させるためのプログラム。
A computer of the programmable controller in a system in which a support device and a plurality of programmable controllers are connected to a network and realize data linkage between the plurality of programmable controllers via a common variable.
First storage means for storing an existing machine language object;
Receiving a new machine language object transferred from the support device, second storage means for storing the new machine language object;
Switching means for switching from the existing machine language object execution state to the transferred new machine language object execution state in response to the notified switching instruction;
A switching control means for notifying the programmable controller on the reading side notified from the support device after the execution of the new machine language object at least once, or for notifying the switching instruction from the support device;
Program to function as.
JP2013131118A 2013-06-21 2013-06-21 Programmable controller system, its support device, programmable controller, program Active JP6119452B2 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2013131118A JP6119452B2 (en) 2013-06-21 2013-06-21 Programmable controller system, its support device, programmable controller, program

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2013131118A JP6119452B2 (en) 2013-06-21 2013-06-21 Programmable controller system, its support device, programmable controller, program

Publications (2)

Publication Number Publication Date
JP2015005224A JP2015005224A (en) 2015-01-08
JP6119452B2 true JP6119452B2 (en) 2017-04-26

Family

ID=52301037

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2013131118A Active JP6119452B2 (en) 2013-06-21 2013-06-21 Programmable controller system, its support device, programmable controller, program

Country Status (1)

Country Link
JP (1) JP6119452B2 (en)

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP3413147B1 (en) * 2017-06-07 2022-03-23 Brooks Automation (Germany) GmbH Method for controlling a plc using a pc program
CN110770703B (en) * 2017-11-16 2023-09-12 株式会社日立产机系统 control device
JP7151227B2 (en) * 2018-07-11 2022-10-12 オムロン株式会社 Development system and support equipment

Family Cites Families (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP3737650B2 (en) * 1999-07-09 2006-01-18 株式会社東芝 Integrated controller and control system
JP2002063045A (en) * 2000-08-22 2002-02-28 Mitsubishi Heavy Ind Ltd Changing method of operating program
CN101292204B (en) * 2006-03-29 2011-02-16 三菱电机株式会社 Auxiliary device for program generation, auxiliary method for program generation, program for computer to carry out the method and storage medium for storing the program
JP5549455B2 (en) * 2010-07-21 2014-07-16 富士電機株式会社 Programmable controller system and program updating method thereof

Also Published As

Publication number Publication date
JP2015005224A (en) 2015-01-08

Similar Documents

Publication Publication Date Title
JP3896849B2 (en) Programming device and programming method
JP5583305B2 (en) Programmable logic controller, programming tool, and program parameter editing system
JP5790128B2 (en) Programmable controller system and its support device
JP6866663B2 (en) Programmable controller system, programmable controller, support device, HCI device, redundant programmable controller system
JP2009146229A (en) Programmable controller system
JP6119452B2 (en) Programmable controller system, its support device, programmable controller, program
JP2015219924A (en) PLC program management device
JP5849592B2 (en) Programmable controller system, programming device thereof, programmable controller, program, and debugging method
JP6292096B2 (en) Programmable controller system and its support device
JP5611158B2 (en) Data relay control device, interlink transfer setting support device, and interlink transfer setting method
JP2009157533A (en) Programmable controller system
JP6135247B2 (en) Information processing apparatus and information processing program
JP2012133610A (en) Dual process controller and control data coincidence method
JP7085305B2 (en) Control system and control method
JP6455096B2 (en) Control system, its support device, programmable control device
JP2015125713A (en) Programmable controller and system, support device thereof, programmable controller, and program
JP6541902B1 (en) Program management system, programming support apparatus, program management method, and programming support program
WO2020075351A1 (en) Control device
JP2005141435A (en) Tool
JPWO2016166799A1 (en) Control system and programmable logic controller
US10599112B2 (en) Method for programming and configuring a device in a traceable manner
JP2015022511A (en) Programmable controller system, and support device and program thereof
KR102434126B1 (en) Apparatus for processing programmable logic controller program
JP5079166B1 (en) Symbol table generation method, communication method with peripheral device, and programmable logic controller
JP4877257B2 (en) Programmable controller, programmable controller support apparatus, and programmable controller system

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20160516

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20170221

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

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20170313

R150 Certificate of patent or registration of utility model

Ref document number: 6119452

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250