JP5039428B2 - Programmable controller and PLC system - Google Patents

Programmable controller and PLC system Download PDF

Info

Publication number
JP5039428B2
JP5039428B2 JP2007128551A JP2007128551A JP5039428B2 JP 5039428 B2 JP5039428 B2 JP 5039428B2 JP 2007128551 A JP2007128551 A JP 2007128551A JP 2007128551 A JP2007128551 A JP 2007128551A JP 5039428 B2 JP5039428 B2 JP 5039428B2
Authority
JP
Japan
Prior art keywords
program
storage unit
module
plc
modules
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired - Fee Related
Application number
JP2007128551A
Other languages
Japanese (ja)
Other versions
JP2008282363A (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.)
Keyence Corp
Original Assignee
Keyence Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Keyence Corp filed Critical Keyence Corp
Priority to JP2007128551A priority Critical patent/JP5039428B2/en
Publication of JP2008282363A publication Critical patent/JP2008282363A/en
Application granted granted Critical
Publication of JP5039428B2 publication Critical patent/JP5039428B2/en
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Landscapes

  • Programmable Controllers (AREA)

Description

本発明は、プログラマブルコントローラに係り、更に詳しくは、実行対象の制御プログラムを繰り返し実行する運用モードと、当該実行対象の制御プログラムの実行を停止する非運用モードとを切り替え可能なプログラマブルコントローラと、プログラマブルコントローラ用のプログラムを作成するプログラム作成支援装置及びプログラマブルコントローラを含むPLCシステムに関する。 The present invention relates to a programmable controller, and more particularly, the operation mode to repeatedly execute a control program to be executed, and a programmable controller capable of switching the non-operational mode to stop execution of the execution target of the control program relates PLC system including a programming support device and programmable controller to create a program for a programmable controller.

プログラマブルコントローラ(以下、PLCと略す)は、FA(Factory Automation)制御システムにおいて広く使用されているシーケンス制御装置であり、ラダープログラムと呼ばれる専用プログラムに従って動作する。このため、PLC内のラダープログラムを書き換えることによって、所望のシーケンス制御装置を実現することができる。このラダープログラムは、通常、パーソナルコンピュータに専用プログラムをインストールしたプログラム作成支援装置を用いて作成され、通信ケーブルを介してPLCへ転送(アップロード)される。   A programmable controller (hereinafter abbreviated as PLC) is a sequence control device widely used in FA (Factory Automation) control systems, and operates according to a dedicated program called a ladder program. Therefore, a desired sequence control device can be realized by rewriting the ladder program in the PLC. This ladder program is usually created using a program creation support apparatus in which a dedicated program is installed in a personal computer, and transferred (uploaded) to the PLC via a communication cable.

この様にしてアップロードされたラダープログラムがエラーを含んでいる場合、当該PLCは正常に動作することができないため、予めラダープログラムのエラーチェックを行っておく必要がある。通常は、ラダープログラムのアップロード前にプログラム作成支援装置内においてエラーチェックが行われるが、ラダープログラムのアップロード後にPLC内において簡単なエラーチェックを行うものもあった。   If the ladder program uploaded in this way contains an error, the PLC cannot operate normally, so it is necessary to check the error of the ladder program in advance. Normally, an error check is performed in the program creation support apparatus before uploading the ladder program, but there is also a simple error check in the PLC after uploading the ladder program.

一般に、PLCは、ラダープログラムを実行している運用モード(いわゆるRUNモード)と、ラダープログラムを実行していない非運用モード(いわゆるPROGRAMモード)とがあり、両モードはユーザ操作によって切り替えられる。PLC内でのエラーチェックは、ラダープログラムの実行前、つまり、非運用モード中に行わなければ意味がないことから、エラーチェックを行っている従来のPLCでは、ラダープログラムのアップロードを非運用モード中のみに制限し、運用モードへ切り替えられる前にエラーチェックを実行している。このエラーチェックの結果、エラーが発見された場合には、警告メッセージが出力されるとともに、誤って実行されることがないように当該ラダープログラムは消去される。   Generally, the PLC has an operation mode in which a ladder program is executed (so-called RUN mode) and a non-operation mode in which a ladder program is not executed (so-called PROGRAM mode), and both modes are switched by a user operation. The error check in the PLC is meaningless unless it is executed before the ladder program is executed, that is, in the non-operation mode. Therefore, in the conventional PLC performing the error check, the upload of the ladder program is in the non-operation mode. The error check is performed before switching to the operation mode. If an error is found as a result of this error check, a warning message is output and the ladder program is deleted so that it is not executed by mistake.

しかしながら、システムの一時停止及び再開による影響が大きく、PLCを頻繁に非運用モードへ切り替えることが許されない制御システムもある。このような制御システムのために、運用モード時にもラダープログラムをアップロードできるPLCもある。ただし、このようなPLCでは、運用モード中であるが故に、アップロードされたラダープログラムについてエラーチェックを行うことができず、エラーを含むプログラムをアップロードすれば、PLCが正常に動作しなくなる。   However, there are some control systems that are greatly affected by the suspension and resumption of the system and are not allowed to frequently switch the PLC to the non-operational mode. For such a control system, some PLCs can upload ladder programs even in the operation mode. However, since such a PLC is in the operation mode, an error check cannot be performed on the uploaded ladder program, and if a program including an error is uploaded, the PLC does not operate normally.

つまり、非運用モード時にアップロードされたラダープログラムについては、PLC内でエラーチェックを行うことができるが、運用モード時にアップロードされたラダープログラムについては、PLC内でエラーチェックを行うことはできない。従って、ラダープログラムを運用モード中にアップロードする場合には、プログラム作成支援装置内において十分なエラーチェックを行っておく必要がある。   That is, the ladder program uploaded in the non-operation mode can be checked for errors in the PLC, but the ladder program uploaded in the operation mode cannot be checked for errors in the PLC. Therefore, when uploading the ladder program during the operation mode, it is necessary to perform sufficient error checking in the program creation support apparatus.

また、最近のPLCの高速化、高機能化にともなって、ラダープログラムは大型で複雑なものとなり、1つのラダープログラムの開発を複数の設計者が共同で行うというケースが増えてきた。大規模なラダープログラムを複数の設計者で開発する場合、1つのラダープログラムを複数のモジュールに分割し、これらのモジュールごとに設計者が割り当てられる。各設計者は、それぞれの端末装置において自らが担当しているモジュールを作成し、異なる端末装置において作成された各モジュールをマージ(結合)することによって1つのラダープログラムが得られる。   In addition, with the recent increase in speed and functionality of PLCs, ladder programs have become large and complex, and there are increasing cases in which a single ladder program is jointly developed by a plurality of designers. When a large-scale ladder program is developed by a plurality of designers, one ladder program is divided into a plurality of modules, and a designer is assigned to each of these modules. Each designer creates a module he / she is responsible for in each terminal device, and merges (combines) the modules created in different terminal devices to obtain one ladder program.

このマージ処理をいずれかの端末装置において行う場合、端末装置間におけるモジュール受け渡しが必要となる。このようなマージ処理が1回限りであれば問題ないが、いずれかの設計者がモジュールを編集するたびにマージ処理が必要になることから、通常は、モジュールの受け渡しが頻繁に発生し、そのバージョン管理も必要となり、共同開発にともなって煩雑で非効率的な作業が発生していた。このため、各端末装置からPLCへモジュールをアップロードし、PLC内でマージ処理を行うという設計手法を採用することが望ましい。 When performing this merging process in any of the terminal devices, it is necessary to transfer the module between terminal devices. There is no problem if such a merge process is limited to one time, but each time a designer edits a module, the merge process is necessary. Version management is also required, and complicated and inefficient work has occurred with joint development. For this reason, it is desirable to adopt a design method in which modules are uploaded from each terminal device to the PLC and merge processing is performed in the PLC.

しかしながら、モジュール間の整合性を含む十分なエラーチェックを行うためには、マージ処理後にエラーチェックを実行する必要があり、PLC内でマージ処理を行うとすれば、エラーチェックもPLC内で行わなければならない。そうすると、運用モードのPLCに対し、各端末装置からモジュールをアップロードすることはできないという問題があった。   However, in order to perform sufficient error check including consistency between modules, it is necessary to execute error check after merge processing. If merge processing is performed in PLC, error check must also be performed in PLC. I must. If it does so, there existed a problem that a module could not be uploaded from each terminal device with respect to PLC of operation mode.

また、エラーチェックを行っているPLCは、エラーが発見されたラダープログラムを消去することにより、誤って運用モードへ切り替えられ、エラーを含むラダープログラムが実行されるのを防止している。しかしながら、エラー内容を詳細に解析するためには、エラーチェックの対象となったラダープログラムを入手する必要があり、PLC内で行われたマージ処理をいずれかの端末装置において再現しなければならない。そのためには、端末装置間でモジュールの受け渡しを行う必要があり、煩雑であるという問題があった。   Further, the PLC that is performing the error check deletes the ladder program in which the error is found, thereby switching to the operation mode by mistake and preventing the ladder program including the error from being executed. However, in order to analyze the details of the error in detail, it is necessary to obtain a ladder program subject to error check, and the merge processing performed in the PLC must be reproduced in any terminal device. For this purpose, there is a problem in that it is necessary to transfer modules between terminal devices, which is complicated.

なお、特許文献1には、PLC内のラダープログラムを解析するための従来技術が開示されている。この従来技術は、ラダープログラムの実行結果をPLCから出力し、デバッグ装置に取り込んで解析するというものであり、ラダープログラムの実行後にデバッグを行うことを目的とするものである。
特開2003−122405号公報
Note that Patent Document 1 discloses a conventional technique for analyzing a ladder program in a PLC. This prior art is to output the execution result of the ladder program from the PLC, take it in a debugging device and analyze it, and aims to perform debugging after the execution of the ladder program.
JP 2003-122405 A

本発明は、上記の事情に鑑みてなされたものであり、運用モード時の実行対象となるプログラムを変更することなく、アップロードされたプログラムのエラーチェックを行うことができるPLCを提供することを目的とする。特に、運用モード中にアップロードされたプログラムのエラーチェック結果に基づいて実行対象となる制御プログラムを変更するPLCを提供することを目的とする。   The present invention has been made in view of the above circumstances, and an object thereof is to provide a PLC capable of performing an error check on an uploaded program without changing the program to be executed in the operation mode. And In particular, an object is to provide a PLC that changes a control program to be executed based on an error check result of a program uploaded during an operation mode.

また、運用モード時の実行対象となるプログラムが複数のモジュールで構成され、このプログラムを更新するためのモジュールがアップロードされた場合に、実行対象としての上記プログラムを変更することなく、アップロードされたモジュールのエラーチェックを行うPLCを提供することを目的とする。特に、運用モード中にアップロードされたモジュールについてのエラーチェック結果に基づいて実行対象となるプログラムを変更するPLCを提供することを目的とする。   In addition, when the program to be executed in the operation mode is composed of a plurality of modules and the module for updating this program is uploaded, the uploaded module without changing the program as the execution target An object of the present invention is to provide a PLC that performs error checking. In particular, it is an object of the present invention to provide a PLC that changes a program to be executed based on an error check result for a module uploaded during an operation mode.

また、上記PLCへプログラムを送信するためのプログラム作成支援装置、及び、コンピュータを上記プログラム作成支援装置として機能させるためのコンピュータプログラムを提供することを目的とする。   It is another object of the present invention to provide a program creation support apparatus for transmitting a program to the PLC and a computer program for causing a computer to function as the program creation support apparatus.

第1の本発明によるプログラマブルコントローラは、複数のモジュールをマージして得られる実行対象の制御プログラムを繰り返し実行する運用モード及び当該実行対象の制御プログラムの実行を停止する非運用モードを切り替え可能なプログラマブルコントローラであって、上記複数のモジュールからなる上記実行対象の制御プログラムを記憶する第1の記憶部と、上記複数のモジュールのうち一部のモジュールを更新するために、ユーザによって編集された更新モジュールを、上記運用モード中に外部装置から受信するデータ受信手段と、上記データ受信手段により受信した更新モジュールを記憶する第2の記憶部と、上記運用モード中に、上記複数のモジュールのうち更新対象のモジュール以外の非更新モジュールについては第1の記憶部を参照し、上記更新モジュールについては第2の記憶部を参照し、上記非更新モジュールと上記更新モジュールとを仮想的にマージして更新対象の制御プログラムを生成し、上記実行対象の制御プログラムを変更することなく当該更新対象の制御プログラムのエラーチェックを行うエラーチェック手段と、上記エラーチェックによりエラーが発見されなかった場合に、上記第2の記憶部に記憶された更新モジュールを第1の記憶部へ書き込むプログラム変更手段とを備えて構成される。 The programmable controller according to the first aspect of this invention, a programmable capable of switching non-operational mode for stopping the execution of the operation mode and the control program of the execution target repeatedly executes the execution target of the control program which is obtained by merging the plurality of modules and a controller, in order to update a first storage unit for storing the control program of the execution target made of the plurality of modules, some modules of the plurality of modules, edited by the user updates Data receiving means for receiving a module from an external device during the operation mode, a second storage unit for storing an update module received by the data receiving means, and updating among the plurality of modules during the operation mode For non-update modules other than the target module, the first Part Referring to the above for the update module refers to the second storage unit, the non-updated modules and and the updating module merges virtually generates a control program to be updated, the execution target of the control program Error checking means for checking the error of the control program to be updated without changing the update program, and when no error is found by the error check, the update module stored in the second storage unit is And a program changing means for writing to the storage unit.

第2の本発明によるプログラマブルコントローラは、上記構成に加えて、上記プログラム変更手段が、運用モード中における実行対象の制御プログラムの繰り返し実行周期に同期して、上記第2の記憶部に記憶された更新モジュールを第1の記憶部へ書き込むことにより、実行対象の制御プログラムを更新するように構成される。 In the programmable controller according to the second aspect of the present invention, in addition to the above configuration, the program changing means is stored in the second storage unit in synchronization with the repeated execution cycle of the control program to be executed in the operation mode . by writing the update module to the first storage unit, configured to update the execution target of the control program.

第3の本発明によるプログラマブルコントローラは、上記構成に加えて、上記モジュールが、ユーザによる編集ごとに更新される識別データを含むように構成される。 A programmable controller according to a third aspect of the present invention is configured such that, in addition to the above configuration, the module includes identification data that is updated every time the user edits .

第4の本発明によるPLCシステムは、複数のモジュールをマージして得られる実行対象の制御プログラムを繰り返し実行する運用モード及び当該実行対象の制御プログラムの実行を停止する非運用モードを切り替え可能なプログラマブルコントローラと、上記モジュールを生成するプログラム作成支援装置とからなるPLCシステムであって、上記プログラム作成支援装置が、ユーザによって編集された更新モジュールを上記プログラマブルコントローラへ送信するデータ送信手段を備え、上記プログラマブルコントローラが、上記複数のモジュールからなる上記実行対象の制御プログラムを記憶する第1の記憶部と、上記複数のモジュールのうち一部のモジュールを更新するために、ユーザによって編集された更新モジュールを、上記運用モード中に上記プログラム作成支援装置から受信するデータ受信手段と、上記データ受信手段により受信した更新モジュールを記憶する第2の記憶部と、上記運用モード中に、上記複数のモジュールのうち更新対象のモジュール以外の非更新モジュールについては第1の記憶部を参照し、上記更新モジュールについては第2の記憶部を参照し、上記非更新モジュールと上記更新モジュールとを仮想的にマージして更新対象の制御プログラムを生成し、上記実行対象の制御プログラムを変更することなく当該更新対象の制御プログラムのエラーチェックを行うエラーチェック手段と、上記エラーチェックによりエラーが発見されなかった場合に、上記第2の記憶部に記憶された更新モジュールを第1の記憶部へ書き込むプログラム変更手段とを備えて構成される。 Fourth PLC system according to the invention, programmable switchable non-operational mode for stopping the execution of the operation mode and the control program of the execution target repeatedly executes the execution target of the control program which is obtained by merging the plurality of modules A PLC system comprising a controller and a program creation support device for generating the module, wherein the program creation support device comprises data transmission means for sending an update module edited by a user to the programmable controller, and is programmable controller, a first memory unit for storing control program of the execution target made of the plurality of modules, in order to update some modules of the plurality of modules, the update module edited by the user , Above luck Data receiving means for receiving from the program creation supporting device during mode, a second storage unit for storing the update module received by said data receiving means, in said operation mode, the update target among the plurality of modules Refer to the first storage unit for non-update modules other than modules, refer to the second storage unit for the update modules, and virtually merge the non-update modules and the update modules to be updated. An error check means for generating a control program and performing an error check of the control program to be updated without changing the control program to be executed; and when the error check finds no error, Program change means for writing the update module stored in the storage unit to the first storage unit; With configured.

本発明によれば、運用モード時の実行対象となるプログラムを変更することなく、アップロードされたプログラムのエラーチェックを行うPLCを提供することができる。特に、運用モード中にアップロードされたプログラムのエラーチェック結果に基づいて実行対象となる制御プログラムを変更するPLCを提供することができる。   ADVANTAGE OF THE INVENTION According to this invention, PLC which performs the error check of the uploaded program can be provided, without changing the program used as the execution object at the time of operation mode. In particular, it is possible to provide a PLC that changes a control program to be executed based on an error check result of a program uploaded during the operation mode.

また、運用モード時の実行対象となるプログラムが複数のモジュールで構成され、このプログラムを更新するためのモジュールがアップロードされた場合に、実行対象としての上記プログラムを変更することなく、アップロードされたモジュールのエラーチェックを行うPLCを提供することができる。特に、運用モード中にアップロードされたモジュールについてのエラーチェック結果に基づいて実行対象となるプログラムを変更するPLCを提供することができる。   In addition, when the program to be executed in the operation mode is composed of a plurality of modules and the module for updating this program is uploaded, the uploaded module without changing the program as the execution target It is possible to provide a PLC that performs error checking. In particular, it is possible to provide a PLC that changes a program to be executed based on an error check result for a module uploaded during the operation mode.

実施の形態1.
[システムの概略構成]
図1は、本発明の実施の形態1によるPLC(Programmable Logic Controller)システムの概略構成の一例を示した図である。このシステムは、1つのPLC1、当該PLC1に接続された複数のプログラム作成支援装置2、入力装置3及び出力装置4によって構成される。
Embodiment 1 FIG.
[Schematic configuration of the system]
Figure 1 is a diagram illustrating an example of a schematic configuration of according to the first embodiment PLC (Program m able Logic Controller) system of the present invention. This system includes one PLC 1, a plurality of program creation support apparatuses 2 connected to the PLC 1, an input apparatus 3, and an output apparatus 4.

PLC1は、センサーなどの入力装置3と、モータなどの出力装置4が接続され、入力装置3からの検出信号に基づいて、出力装置4への制御信号を生成する小型コントローラであり、その動作は、PLC1内に保持しているプログラムによって決定される。このPLC1は、運用モード及び非運用モードがユーザによって切り替えられ、運用モード時には、上記プログラムが繰り返し実行され、非運用モード時には、上記プログラムの実行を停止している。   The PLC 1 is a small controller that is connected to an input device 3 such as a sensor and an output device 4 such as a motor, and generates a control signal to the output device 4 based on a detection signal from the input device 3. , Determined by a program held in the PLC 1. In the PLC 1, the operation mode and the non-operation mode are switched by the user, the program is repeatedly executed in the operation mode, and the execution of the program is stopped in the non-operation mode.

プログラム作成支援装置2は、ユーザがPLC1用のプログラムを作成するための端末装置であり、専用の端末装置であってもよいが、通常は、パーソナルコンピュータに専用ソフトウエアをインストールすることによって実現される。ユーザは、このプログラム作成支援装置2上において、プログラムを作成し、作成されたプログラムのエラーチェックを行い、エラーチェック後のプログラムをコンパイルしてソースコードからオブジェクトコード(実行コード)へ変換する。この様にして生成されたプログラムのオブジェクトコードが、プログラム作成支援装置2からPLC1へアップロードされる。また、アップロードだけでなく、PLC1内のプログラムをプログラム作成支援装置2へダウンロードして編集することもできる。   The program creation support device 2 is a terminal device for a user to create a program for the PLC 1 and may be a dedicated terminal device, but is usually realized by installing dedicated software on a personal computer. The The user creates a program on the program creation support apparatus 2, performs an error check on the created program, compiles the program after the error check, and converts the source code into an object code (execution code). The object code of the program generated in this way is uploaded from the program creation support apparatus 2 to the PLC 1. In addition to uploading, the program in the PLC 1 can be downloaded to the program creation support apparatus 2 and edited.

図示したPLCシステムは、1つのプログラムを複数の設計者が共同で開発するためのものである。各プログラム作成支援装置2は、それぞれ異なる設計者が利用している端末装置であり、複数のプログラム作成支援装置2が、通信ケーブルを介して、1つのPLC1にネットワーク接続されている。従って、各設計者は、独自にプログラムの編集、エラーチェック、コンパイル及びアップロードをそれぞれ行うことができる。   The illustrated PLC system is for jointly developing one program by a plurality of designers. Each program creation support device 2 is a terminal device used by different designers, and a plurality of program creation support devices 2 are network-connected to one PLC 1 via a communication cable. Accordingly, each designer can independently edit the program, check errors, compile and upload.

図2は、PLC1用のプログラム5の概略について説明するための図である。プログラム5は、PLC1によって順次に実行される多数の命令コードによって構成されている。また、1つのプログラム5を複数の設計者で共同開発する場合、プログラム5は、複数のモジュールmodA〜modDに分割され、各モジュールmodA〜modDに異なる設計者が割り当てられる。つまり、各モジュールmodA〜modDは、図1に示された異なるプログラム作成支援装置2において、それぞれ作成され、共通のPLC1へそれぞれアップロードされる。これらのモジュールmodA〜modDは、PLC1内でマージ(結合)され、PLC1内で実行されるプログラム5となる。   FIG. 2 is a diagram for explaining the outline of the program 5 for the PLC 1. The program 5 includes a large number of instruction codes that are sequentially executed by the PLC 1. When a single program 5 is jointly developed by a plurality of designers, the program 5 is divided into a plurality of modules modA to modD, and different designers are assigned to the modules modA to modD. That is, the modules modA to modD are respectively created in the different program creation support apparatuses 2 shown in FIG. 1 and uploaded to the common PLC 1. These modules modA to modD are merged (coupled) in the PLC 1 to become the program 5 executed in the PLC 1.

各モジュールmodA〜modDは、モジュール単独でのエラーチェックが各プログラム作成支援装置2内において行われ、各モジュールmodA〜modDをマージして得られるプログラム5全体についてのエラーチェックは、PLC1内において行われる。   For each of the modules modA to modD, an error check for each module is performed in each program creation support apparatus 2, and an error check for the entire program 5 obtained by merging the modules modA to modD is performed in the PLC1. .

また、各モジュールmodA〜modDには、識別データidA〜idDがそれぞれ含まれている。識別データidA〜idDは、モジュールの新規作成時に生成され、その後もモジュールが変更されるたびに更新されるデータであり、異なるモジュールmodA〜modDには異なる識別データidA〜idDが格納されており、同じモジュールであっても、バージョンが異なれば、異なる識別データが格納されている。ただし、複製されたモジュールには、複製前のモジュールと同じ識別データが格納されている。つまり、識別データidA〜idDは、モジュールの編集に固有のデータである。   Each module modA to modD includes identification data idA to idD, respectively. The identification data idA to idD is data that is generated when a module is newly created and is updated every time the module is changed. Different identification data idA to idD are stored in different modules modA to modD. Even in the same module, different identification data are stored in different versions. However, the same identification data as the module before duplication is stored in the duplicated module. That is, the identification data idA to idD is data unique to module editing.

[PLC1の詳細構成]
図3は、図1のPLC1の一構成例を示したブロック図である。このPLC1は、データ入出力部11、更新データ記憶部12、エラーチェック部13、プログラム更新部14、プログラム記憶部15、プログラム実行部16、入力装置I/F(interface)部17及び出力装置I/F部18によって構成される。
[Detailed configuration of PLC 1]
FIG. 3 is a block diagram showing a configuration example of the PLC 1 of FIG. The PLC 1 includes a data input / output unit 11, an update data storage unit 12, an error check unit 13, a program update unit 14, a program storage unit 15, a program execution unit 16, an input device I / F (interface) unit 17, and an output device I. / F part 18 is comprised.

データ入出力部11は、有線又は無線の通信回線を介して、各プログラム作成支援装置2と接続され、双方向のデータ通信を行っている。プログラム作成支援装置2からアップロードされたプログラム5は、データ入出力部11によって受信され、更新データ記憶部12に格納される。また、プログラム作成支援装置2からプログラム5のダウンロード要求を受信した場合には、更新データ記憶部12又はプログラム記憶部15に格納されているプログラムを要求元のプログラム作成支援装置2へ送信する。 The data input / output unit 11 is connected to each program creation support device 2 via a wired or wireless communication line, and performs bidirectional data communication. The program 5 uploaded from the program creation support apparatus 2 is received by the data input / output unit 11 and stored in the update data storage unit 12 . When a download request for the program 5 is received from the program creation support apparatus 2, the program stored in the update data storage unit 12 or the program storage unit 15 is transmitted to the request source program creation support apparatus 2.

更新データ記憶部12は、プログラム作成支援装置2からアップロードされたプログラム5が格納される記憶手段である。プログラム5が複数のモジュールで構成され、プログラム5を更新するためのモジュールがアップロードされた場合には、当該アップロードされたモジュールが更新データ記憶部12に格納される。   The update data storage unit 12 is a storage unit that stores the program 5 uploaded from the program creation support device 2. When the program 5 is composed of a plurality of modules and a module for updating the program 5 is uploaded, the uploaded module is stored in the update data storage unit 12.

プログラム記憶部15は、運用モード時に実行対象となるプログラム5を記憶する記憶手段である。ここでは、実行対象となるプログラム5が、複数のモジュールmodA〜modDからなるものとする。なお、各モジュールmodA〜modD内には、識別データidA〜idD及び更新時刻データがそれぞれ格納されている。このプログラム記憶部15に書き込まれるのは、更新データ記憶部12に一旦格納され、エラーチェックが行われたプログラム5であるが、例外的な場合、例えばモジュールmodA〜modDがPLC1に最初に書き込まれるような場合には、エラーチェックを行うことなく、プログラム作成支援装置2からプログラム記憶部15へ直接書き込むこともできる。   The program storage unit 15 is a storage unit that stores the program 5 to be executed in the operation mode. Here, it is assumed that the program 5 to be executed includes a plurality of modules modA to modD. In each of the modules modA to modD, identification data idA to idD and update time data are respectively stored. What is written in the program storage unit 15 is the program 5 once stored in the update data storage unit 12 and subjected to error checking. However, in exceptional cases, for example, modules modA to modD are first written in the PLC 1. In such a case, it is possible to directly write from the program creation support apparatus 2 to the program storage unit 15 without performing an error check.

プログラム実行部16は、プログラム記憶部15内のプログラム5に基づいて動作するプロセッサである。例えば、入力装置I/F部17を介して、入力装置3から入力される検出信号に基づいて制御信号を生成し、出力装置I/F部18を介して、上記制御信号を出力装置4へ出力している。このプログラム実行部16は、運用モード中には上記プログラムを繰り返し実行しているが、非運用モード中には、上記制御プログラムの実行を停止している。 The program execution unit 16 is a processor that operates based on the program 5 in the program storage unit 15. For example, a control signal is generated based on a detection signal input from the input device 3 via the input device I / F unit 17, and the control signal is transmitted to the output device 4 via the output device I / F unit 18 . Output. The program execution unit 16 repeatedly executes the program during the operation mode, but stops the execution of the control program during the non-operation mode.

エラーチェック部13は、更新データ記憶部12及びプログラム記憶部15に格納されているプログラム又はモジュールに基づいて、エラーチェックを行っている。このエラーチェック処理は、プログラム又はモジュールがPLC1へアップロードされた場合に実行される。エラーチェック処理の対象は、実行対象のプログラム5を更新データ記憶部12内のデータによって更新したプログラムである。つまり、プログラム5がアップロードされ、更新データ記憶部12に書き込まれた場合には、当該プログラム5についてエラーチェックが行われる。一方、モジュールmodAがアップロードされ、更新データ記憶部12に書き込まれた場合には、実行対象のプログラム5をアップロードされた新たなモジュールmodAで更新したプログラムについてエラーチェックが行われる。   The error check unit 13 performs an error check based on programs or modules stored in the update data storage unit 12 and the program storage unit 15. This error check process is executed when a program or module is uploaded to the PLC 1. The target of the error check process is a program obtained by updating the execution target program 5 with the data in the update data storage unit 12. That is, when the program 5 is uploaded and written in the update data storage unit 12, an error check is performed on the program 5. On the other hand, when the module modA is uploaded and written in the update data storage unit 12, an error check is performed on the program that is the execution target program 5 updated with the uploaded new module modA.

ただし、新たなモジュールmodAによるプログラム5の更新は、エラーチェック部13が仮想的に行っており、更新データ記憶部12及びプログラム記憶部15に保持されているデータは、エラーチェック処理によって変更されない。すなわち、エラーチェック部13は、モジュールmodA以外のモジュールについてはプログラム記憶部15を参照し、モジュールmodAについては更新データ記憶部12を参照することにより、実行対象のプログラムを変更することなく、更新後のプログラムについてエラーチェックを行っている。   However, the error check unit 13 virtually updates the program 5 with the new module modA, and the data held in the update data storage unit 12 and the program storage unit 15 is not changed by the error check process. That is, the error check unit 13 refers to the program storage unit 15 for modules other than the module modA, and refers to the update data storage unit 12 for the module modA, without changing the execution target program. An error check is performed on the program.

プログラム更新部14は、エラーチェック部13によりエラーが発見されなかった場合に更新データ記憶部12に格納されているデータをプログラム記憶部15に書き込み、実行対象のプログラム5を更新する。すなわち、更新データ記憶部12内にプログラム5が保持されている場合には、当該プログラム5がプログラム記憶部15内に書き込まれ、実行対象であったプログラム5は消去される。また、更新データ記憶部12内にモジュールmodAが保持されている場合には、当該モジュールmodAがプログラム記憶部15に書き込まれる。このとき、プログラム記憶部15内にモジュールmodAが存在していれば、新たなモジュールmodAによって上書きされる。   The program update unit 14 writes the data stored in the update data storage unit 12 to the program storage unit 15 and updates the execution target program 5 when no error is found by the error check unit 13. That is, when the program 5 is held in the update data storage unit 12, the program 5 is written in the program storage unit 15, and the program 5 that was the execution target is deleted. When the module modA is held in the update data storage unit 12, the module modA is written in the program storage unit 15. At this time, if the module modA exists in the program storage unit 15, it is overwritten by the new module modA.

なお、このプログラム更新部14は、運用モード中であってもプログラム記憶部15内のプログラム5を更新することができる。つまり、プログラム実行部16が実行中のプログラムを更新することができる。例えば、プログラム実行部16がプログラム5を繰り返し実行している周期に同期して、プログラム更新部14が当該プログラム5を更新することによって、制御動作に支障をきたすことなく、実行対象のプログラム5を更新している。 Note that the program update unit 14 can update the program 5 in the program storage unit 15 even in the operation mode. That is, the program being executed by the program execution unit 16 can be updated. For example, the program execution unit 16 updates the program 5 in synchronization with the cycle in which the program 5 is repeatedly executed, so that the program 5 to be executed can be changed without affecting the control operation. It has been updated.

[プログラム作成支援装置2の詳細構成]
図4は、図1のプログラム作成支援装置2の一構成例を示したブロック図である。このプログラム作成支援装置2は、プログラム記憶部201、前回データ記憶部202、プログラム編集部21、識別データ生成部22、エラーチェック部23、コンパイル部24、プログラム照合部25、データ入出力部26、エラー情報出力部27及びプログラム変更確認部28により構成される。
[Detailed Configuration of Program Creation Support Device 2]
FIG. 4 is a block diagram showing a configuration example of the program creation support apparatus 2 of FIG. The program creation support apparatus 2 includes a program storage unit 201, a previous data storage unit 202, a program editing unit 21, an identification data generation unit 22, an error check unit 23, a compilation unit 24, a program verification unit 25, a data input / output unit 26, An error information output unit 27 and a program change confirmation unit 28 are included.

プログラム記憶部201は、PLC1用のプログラム5を記憶する記憶手段である。プログラム5は、複数の設計者で共同開発されるプログラムであり、複数のモジュールmodA〜modDからなり、このプログラム作成支援装置2を利用している設計者は、モジュールmodAの作成を担当しているものとする。この場合、プログラム記憶部201内に保持されているモジュールmodAは、当該プログラム作成支援装置2内で作成されたモジュールであり、他のモジュールmodB〜modDは、他のプログラム作成支援装置2において作成され、PLC1からダウンロードされたモジュールである。   The program storage unit 201 is a storage unit that stores the program 5 for the PLC 1. The program 5 is a program jointly developed by a plurality of designers. The program 5 includes a plurality of modules modA to modD, and a designer who uses the program creation support apparatus 2 is in charge of creating the module modA. Shall. In this case, the module modA held in the program storage unit 201 is a module created in the program creation support apparatus 2, and the other modules modB to modD are created in the other program creation support apparatus 2. , A module downloaded from PLC1.

前回データ記憶部202は、識別データidA〜idDを記憶する記憶手段であり、プログラム5のアップロード時及びダウンロード時に更新される。例えば、当該プログラム作成支援装置2における編集対象がモジュールmodAであれば、前回データ記憶部202内に保持されている識別データidAは、モジュールmodAのPLC1へのアップロード時に更新され、その他の識別データidB〜idDは、モジュールmodB〜modDのPLC1からのダウンロード時に更新される。従って、前回データ記憶部202内には、常に、PLC1に最後にアクセスした時点における識別データが保持されている。   The previous data storage unit 202 is a storage unit that stores identification data idA to idD, and is updated when the program 5 is uploaded and downloaded. For example, if the editing target in the program creation support apparatus 2 is module modA, the identification data idA held in the previous data storage unit 202 is updated when the module modA is uploaded to the PLC 1, and the other identification data idB ˜idD is updated when the modules modB to modD are downloaded from the PLC 1. Therefore, the identification data at the time of the last access to the PLC 1 is always held in the previous data storage unit 202.

プログラム編集部21は、ユーザがプログラム5を新規に作成し、あるいは、既に作成したプログラム5を変更するための手段である。プログラムの編集は、例えば、ユーザが画面表示を見ながら操作入力を行い、新たなデバイスシンボルを画面上に配置し、そのデバイス名などのパラメータを定義したり、あるいは、不要になった配置済みのデバイスシンボルを削除することによって行われる。ここでは、プログラム5が複数のモジュールで構成されているため、モジュールごとに編集が行われ、編集後のモジュールには、識別データ及び更新時刻データ(例えば更新日時)が加えられて、プログラム記憶部201へ書き込まれる。   The program editing unit 21 is a means for the user to newly create the program 5 or change the already created program 5. The program can be edited, for example, when the user inputs an operation while watching the screen display, places a new device symbol on the screen, defines parameters such as the device name, or has already been placed. This is done by deleting the device symbol. Here, since the program 5 is composed of a plurality of modules, editing is performed for each module, and identification data and update time data (for example, update date and time) are added to the edited module, and the program storage unit 201 is written.

識別データ生成部22は、プログラム編集部21による編集終了時に、編集後のプログラム5に基づいて識別データを生成する。モジュールmodAを編集した場合であれば、編集後のモジュールmodAに基づいて、識別データidAが生成される。この識別データは、編集処理ごとに固有のデータとして生成される。例えば、予め定められたハッシュ関数を用いて、編集後のモジュールmodAから求められるハッシュ値を識別データidAとして利用することができる。また、モジュールmodAの編集が行われた日時や、編集を行った設計者の識別情報や、端末装置の識別情報などに基づいて識別データを生成することもできる。   The identification data generation unit 22 generates identification data based on the edited program 5 when editing by the program editing unit 21 is completed. If the module modA is edited, identification data idA is generated based on the edited module modA. This identification data is generated as unique data for each editing process. For example, a hash value obtained from the edited module modA can be used as the identification data idA using a predetermined hash function. Also, identification data can be generated based on the date and time when the module modA was edited, the identification information of the designer who performed the editing, the identification information of the terminal device, and the like.

エラーチェック部23は、プログラム記憶部201内に保持されているプログラム5のエラーチェックを行う。ユーザは、このエラーチェック結果を見て、プログラム5にエラーが含まれていないことを確認することができる。プログラム5が複数のモジュールで構成される場合には、エラーチェック部23により、モジュール単体についてのエラーチェックが行われる。   The error check unit 23 performs an error check on the program 5 held in the program storage unit 201. The user can confirm that no error is included in the program 5 by looking at the error check result. When the program 5 is composed of a plurality of modules, the error check unit 23 performs an error check on the module alone.

コンパイル部24は、プログラム記憶部201に記憶されているプログラム5のソースコードをオブジェクトコードに変換する処理を行う。プログラム5が複数のモジュールで構成される場合、このコンパイル処理によって、モジュールごとのオブジェクトコードを生成することができる。   The compiling unit 24 performs a process of converting the source code of the program 5 stored in the program storage unit 201 into an object code. When the program 5 is composed of a plurality of modules, an object code for each module can be generated by this compilation process.

データ入出力部26は、PLC1との間でデータ入出力を行っている。ここでは、PLC1に対するプログラム5のアップロード及びダウンロード、PLC1からの識別データ及びエラー情報の取得、並びに、PLC1への強制更新指示の送出を行っている。   The data input / output unit 26 performs data input / output with the PLC 1. Here, uploading and downloading of the program 5 to the PLC 1, acquisition of identification data and error information from the PLC 1, and sending of a forced update instruction to the PLC 1 are performed.

PLC1へのプログラム5の書き込み(アップロード)時には、プログラム記憶部201内のプログラム5がPLC1へアップロードされる。また、このプログラムがPLC1内のプログラム記憶部15に格納された場合には、当該プログラム5に含まれる識別データが前回データ記憶部202に書き込まれる。プログラム5が複数のモジュールで構成されている場合には、全く同様にして、モジュールごとにアップロードすることができる。   When the program 5 is written (uploaded) to the PLC 1, the program 5 in the program storage unit 201 is uploaded to the PLC 1. When this program is stored in the program storage unit 15 in the PLC 1, identification data included in the program 5 is written in the previous data storage unit 202. When the program 5 is composed of a plurality of modules, it can be uploaded for each module in exactly the same manner.

PLC1からのプログラム5の取得(ダウンロード)時には、取得したプログラム5がプログラム記憶部201に格納される。また、このプログラム5がPLC1内のプログラム記憶部15からダウンロードされた場合には、当該プログラム5に含まれる識別データが前回データ記憶部202にも書き込まれる。プログラム5が複数のモジュールで構成されている場合には、全く同様にして、モジュールごとにダウンロードすることができる。   When acquiring (downloading) the program 5 from the PLC 1, the acquired program 5 is stored in the program storage unit 201. When the program 5 is downloaded from the program storage unit 15 in the PLC 1, identification data included in the program 5 is also written in the previous data storage unit 202. When the program 5 is composed of a plurality of modules, it can be downloaded for each module in exactly the same manner.

プログラム照合時には、PLC1からプログラム5及びモジュールmodA〜modDをダウンロードすることなく、識別データidA〜idDのみを取得している。この様にしてPLC1からダウンロードされた識別データidA〜idDは、プログラム照合部25へ出力される。   At the time of program verification, only the identification data idA to idD are acquired without downloading the program 5 and the modules modA to modD from the PLC 1. The identification data idA to idD downloaded from the PLC 1 in this way are output to the program verification unit 25.

プログラム又はモジュールのアップロード後は、PLC1からエラー情報を取得する。このエラー情報は、PLC1内において行われたプログラム5のエラーチェック結果である。PLC1から取得したエラー情報は、エラー情報出力部27及びプログラム変更確認部28へ出力される。   After uploading the program or module, error information is acquired from the PLC 1. This error information is an error check result of the program 5 performed in the PLC 1. The error information acquired from the PLC 1 is output to the error information output unit 27 and the program change confirmation unit 28.

プログラム照合部25は、注目しているプログラム又はモジュールについて最後のアップロード又はダウンロードが行われた後に、当該プログラム作成支援装置2内又はPLC1内のいずれかで当該プログラム又はモジュールが更新されたか否かを判別する。この判別処理は、プログラム記憶部201内、前回データ記憶部202内及びPLC1内に保持されている識別データを比較することによって行われる。   The program collation unit 25 determines whether the program or module has been updated either in the program creation support apparatus 2 or in the PLC 1 after the last upload or download of the program or module of interest. Determine. This determination processing is performed by comparing identification data held in the program storage unit 201, the previous data storage unit 202, and the PLC 1.

PLC1内のモジュールmodA〜modDを他人が更新したか否かは、前回データ記憶部202内に保持されている識別データidA〜idDと、PLC1内のプログラム記憶部15からダウンロードした識別データidA〜idDとを比較することによって判別できる。両者が一致しなければ、前回データ記憶部202の更新後に、PLC1内の実行対象のプログラムを構成するモジュールmodA〜modDが、他のプログラム作成支援装置2からのアップロードによって更新されたと判別することができる。   Whether another person has updated the modules modA to modD in the PLC 1 depends on the identification data idA to idD held in the previous data storage unit 202 and the identification data idA to idD downloaded from the program storage unit 15 in the PLC 1. And can be determined by comparing. If they do not match, it is possible to determine that the modules modA to modD constituting the program to be executed in the PLC 1 have been updated by upload from another program creation support apparatus 2 after the previous update of the data storage unit 202. it can.

また、プログラム記憶部201内のモジュールmodA〜modDが編集されたか否かは、前回データ記憶部202内の識別データidA〜idDと、プログラム記憶部201内の識別データidA〜idDとを比較することによって判別できる。両者が一致しなければ、前回データ記憶部202の更新後に、PLC1内のモジュールmodA〜modDが、プログラム編集部21によって更新されたと判別することができる。   Whether or not the modules modA to modD in the program storage unit 201 have been edited is determined by comparing the previous identification data idA to idD in the data storage unit 202 with the identification data idA to idD in the program storage unit 201. Can be determined. If they do not match, it is possible to determine that the modules modA to modD in the PLC 1 have been updated by the program editing unit 21 after the previous data storage unit 202 has been updated.

エラー情報出力部27は、プログラム照合部25の照合結果と、PLC1から取得したエラー情報とに基づいて出力動作を行っている。ユーザがプログラム照合処理を指示すれば、上記照合結果が画面表示される。また、ユーザがモジュールのアップロードを指示した場合であって、当該アップロードによって更新されるPLC1のプログラム記憶部15内のモジュールが他のプログラム作成支援装置2によって先に更新されていた場合には、警告メッセージを画面表示し、ユーザに確認のための操作入力を行わせ、あるいは、当該アップロード処理を禁止する。   The error information output unit 27 performs an output operation based on the collation result of the program collation unit 25 and the error information acquired from the PLC 1. When the user instructs the program verification process, the verification result is displayed on the screen. Further, when the user instructs to upload a module and the module in the program storage unit 15 of the PLC 1 that is updated by the upload has been updated by another program creation support apparatus 2 first, a warning is given. A message is displayed on the screen, and the user inputs an operation for confirmation, or the upload process is prohibited.

さらに、PLC1からエラー情報を取得した場合には、当該エラー情報を画面表示する。このエラー情報は、プログラム又はモジュールをPLC1へアップロードした場合にPLC1内で行われるエラーチェックの結果である。エラーが発見されれば、エラーの内容と、エラーの発見されたプログラム又はモジュール中の位置が表示される。一方、エラーが発見されなかった場合には、その旨が表示される。   Further, when error information is acquired from the PLC 1, the error information is displayed on the screen. This error information is a result of an error check performed in the PLC 1 when a program or module is uploaded to the PLC 1. If an error is found, the contents of the error and the location in the program or module where the error was found are displayed. On the other hand, if no error is found, a message to that effect is displayed.

プログラム変更確認部28は、PLC1内の実行対象のプログラム5を強制的に変更するか否かについて、ユーザの意思を確認する手段である。PLC1は、運用モード中のアップロードにより起動されたエラーチェックにおいてエラーが発見されれば、実行対象となるプログラム5の更新を行わない。一方、非運用モード中のアップロードにより起動されたエラーチェックにおいてエラーが発見された場合、PLC1は、実行対象のプログラム5を更新するか否かをプログラム作成支援装置2に照会する。この照会を受信すると、プログラム変更確認部28は、ユーザの意思確認を行って、その結果をPLC1へ送信する。つまり、非運用モード中にアップロードされたプログラム又はモジュールであれば、PLC1内のエラーチェックにおいてエラー発見されても、ユーザが承認すれば、PLC1のプログラム記憶部15内のプログラム5が更新される。   The program change confirmation unit 28 is a means for confirming the user's intention as to whether or not to forcibly change the execution target program 5 in the PLC 1. The PLC 1 does not update the program 5 to be executed if an error is found in the error check activated by the upload in the operation mode. On the other hand, when an error is found in the error check activated by upload in the non-operation mode, the PLC 1 inquires the program creation support apparatus 2 whether or not to update the execution target program 5. When this inquiry is received, the program change confirmation unit 28 confirms the user's intention and transmits the result to the PLC 1. That is, if the program or module is uploaded in the non-operation mode, even if an error is found in the error check in the PLC 1, if the user approves, the program 5 in the program storage unit 15 of the PLC 1 is updated.

[モジュールのアップロード]
図5〜図7のステップS101〜S120は、図1のPLCシステムの動作の一例を示したフローチャートであり、プログラム作成支援装置2からPLC1へのアップロード処理が示されている。このアップロード処理は、ユーザがプログラム記憶部201に格納されているモジュールmodAを指定し、PLC1へのアップロードを指示したときに開始される。なお、このアップロード処理は、PLC1の動作モードが、運用モード及び非運用モードのいずれの場合であっても実行することができる。
[Upload module]
Steps S101 to S120 in FIGS. 5 to 7 are flowcharts showing an example of the operation of the PLC system in FIG. 1, and show an upload process from the program creation support apparatus 2 to the PLC 1. This upload process is started when the user designates the module modA stored in the program storage unit 201 and instructs the upload to the PLC 1. This upload process can be executed regardless of whether the operation mode of the PLC 1 is the operation mode or the non-operation mode.

まず、プログラム作成支援装置2内において、エラーチェック部23によるエラーチェックが行われる(図5のステップS101)。このエラーチェックでは、少なくとも指定されたモジュールmodA単体についてのエラーチェックが行われる。これに加えて、プログラム作成支援装置2内に保持されている他のモジュールmodB〜modDを用いて、最終的にプログラム5を構成する各モジュールmodA〜modD間の整合性に関するエラーチェックを行ってもよい。このエラーチェックにおいてエラーが発見された場合、エラー情報出力部27により、エラー情報と「アップロード失敗」のメッセージからなるエラー終了画面が表示され、アップロードを行うことなく、当該アップロード処理を終了する(ステップS102,S103)。   First, in the program creation support apparatus 2, an error check is performed by the error check unit 23 (step S101 in FIG. 5). In this error check, an error check is performed for at least the specified module modA alone. In addition to this, even if the other modules modB to modD held in the program creation support apparatus 2 are used, an error check regarding the consistency between the modules modA to modD constituting the program 5 is finally performed. Good. If an error is found in the error check, the error information output unit 27 displays an error end screen including error information and an “upload failure” message, and ends the upload process without performing the upload (step S102, S103).

一方、モジュール単体のエラーチェック(ステップS101)において、エラーが発見されなかった場合には、モジュールmodAが、PLC1へアップロードされる(ステップS104)。アップロードされたモジュールmodAは、PLC1内の更新データ記憶部12に一旦格納され、プログラム記憶部15内のプログラムは更新されない。   On the other hand, if no error is found in the error check of the module alone (step S101), the module modA is uploaded to the PLC 1 (step S104). The uploaded module modA is temporarily stored in the update data storage unit 12 in the PLC 1, and the program in the program storage unit 15 is not updated.

更新データ記憶部12に新たなモジュールmodAが格納されると、エラーチェック部13によるエラーチェックが開始される(ステップS105)。このエラーチェック処理の対象は、実行対象のプログラム5を新たなモジュールmodAで更新した場合の更新後のプログラム5であるが、プログラム記憶部15内のプログラム5を変更することなく、更新データ記憶部12及びプログラム記憶部15を参照してエラーチェックが行われる。つまり、エラーチェック部13は、新たなモジュールmodAについては、更新データ記憶部12を参照し、その他のモジュールmodB〜modDについてはプログラム記憶部15を参照することによって、これらのモジュールmodA〜odDを仮想的にマージし、エラーチェックを行う。このエラーチェック(ステップS105)は、仮想マージ後のプログラム5についてのエラーチェックであり、モジュール単体のエラーチェック(ステップS101)とは異なり、モジュールmodA〜modD間の整合性に関してもチェックすることができる。 When a new module modA is stored in the update data storage unit 12, an error check by the error check unit 13 is started (step S105). The target of this error check process is the updated program 5 when the execution target program 5 is updated with the new module modA, but the update data storage unit is not changed without changing the program 5 in the program storage unit 15. 12 and the program storage unit 15 are checked for errors. In other words, the error check unit 13, for a new module modA, refers to the update data storage unit 12, by referring to the program storage unit 15 for other modules ModB~modD, these modules modA~ m odD Virtually merge and check for errors. This error check (step S105) is an error check for the program 5 after the virtual merge. Unlike the error check for the module alone (step S101), the consistency between the modules modA to modD can be checked. .

ステップS105のエラーチェックにおいてエラーが発見されなかった場合、実行対象のプログラム5が、アップロードされたモジュールによって更新される(図6のステップS106,S107)。すなわち、プログラム更新部14が、更新データ記憶部12内の新しいモジュールmodAをプログラム記憶部15へ書き込む。また、アップロードの正常終了がプログラム作成支援装置2へ通知される。プログラム作成支援装置2内では、この通知に基づいて、アップロードしたモジュールmodAの識別データが、前回データ記憶部202に書き込まれる(ステップS108)。また、上記通知に基づいて、「アップロード成功」のメッセージからなる正常終了画面が、エラー情報出力部27によって表示され(ステップS109)、当該アップロード処理は終了する。   If no error is found in the error check in step S105, the execution target program 5 is updated by the uploaded module (steps S106 and S107 in FIG. 6). That is, the program update unit 14 writes the new module modA in the update data storage unit 12 into the program storage unit 15. In addition, the program creation support apparatus 2 is notified of the normal end of the upload. In the program creation support apparatus 2, based on this notification, the identification data of the uploaded module modA is written in the previous data storage unit 202 (step S108). Also, based on the notification, a normal completion screen consisting of an “upload success” message is displayed by the error information output unit 27 (step S109), and the upload process ends.

一方、ステップS105のエラーチェックにおいてエラーが発見された場合、当該エラーが致命的であるか否か、また、PLC1の動作モードが運用中であるか否かによって、その後の動作は異なる(ステップS110〜S114)。   On the other hand, when an error is found in the error check in step S105, the subsequent operation differs depending on whether or not the error is fatal and whether or not the operation mode of the PLC 1 is in operation (step S110). To S114).

発見されたエラーが、実行対象のプログラム5を更新することができない致命的なエラーであった場合、プログラム作成支援装置2において、エラー情報と「アップロード失敗」のメッセージからなるエラー終了画面が表示され、当該アップロード処理を終了する(ステップS110,S111)。エラー情報が致命的である場合とは、例えば、更新後のプログラムのサイズが、プログラム記憶部15の容量を超えてしまう場合や、モジュールの追加によってPLC1が許容している最大モジュール数を超えてしまう場合である。   If the detected error is a fatal error that cannot update the execution target program 5, the program creation support device 2 displays an error completion screen including error information and an “upload failure” message. Then, the upload process ends (steps S110 and S111). When the error information is fatal, for example, the size of the updated program exceeds the capacity of the program storage unit 15, or the maximum number of modules allowed by the PLC 1 by adding modules is exceeded. This is the case.

また、上記エラー情報が致命的でない場合であっても、PLC1の動作モードが運用モードである場合には、プログラム作成支援装置2において、エラー情報と「アップロード失敗」のメッセージからなるエラー終了画面が表示され、当該アップロード処理を終了する(ステップS112,S113)。運用モード中は、実行対象のプログラムをエラーが発見されたプログラムへ更新するのは危険であることから、この様なプログラムの更新を禁止している。   Even if the error information is not fatal, when the operation mode of the PLC 1 is the operation mode, the program creation support apparatus 2 displays an error end screen including the error information and an “upload failure” message. The upload process is terminated (steps S112 and S113). During the operation mode, it is dangerous to update the program to be executed to a program in which an error has been found. Therefore, such a program update is prohibited.

上記エラー情報が致命的でなく、かつ、PLC1の動作モードが非運用モードである場合には、プログラム作成支援装置2において、エラー情報が表示されるとともに(ステップS114)、「プログラムを強制的に更新しますか」というメッセージが画面表示され、ユーザの意思確認が行われる(図7のステップS115)。ユーザは、マウスなどのポインティング入力手段を用いて、プログラムを強制的に更新するか否かを選択する。   When the error information is not fatal and the operation mode of the PLC 1 is the non-operation mode, the error information is displayed on the program creation support device 2 (step S114), The message “Do you want to update?” Is displayed on the screen, and the user's intention is confirmed (step S115 in FIG. 7). The user uses a pointing input means such as a mouse to select whether to forcibly update the program.

このとき、ユーザが強制更新を了承しなければ、プログラム作成支援装置2において「プログラムを更新せずに終了します」というメッセージが画面表示され、当該アップロード処理を終了する(ステップS116,S117)。一方、ユーザが更新を了承すれば、実行対象のプログラム5が、アップロードされたモジュールによって更新され、更新完了がプログラム作成支援装置2へ通知される(ステップS118)。プログラム作成支援装置2内では、この通知に基づいて、アップロードしたモジュールmodAの識別データが、前回データ記憶部202に書き込まれる(ステップS119)。また、上記通知に基づいて「プログラム強制的に更新しました」のメッセージが画面表示され(ステップS120)、当該アップロード処理が終了する。   At this time, if the user does not approve the forced update, the program creation support apparatus 2 displays a message “End without updating the program” on the screen, and ends the upload process (steps S116 and S117). On the other hand, if the user approves the update, the execution target program 5 is updated by the uploaded module, and the completion of the update is notified to the program creation support apparatus 2 (step S118). In the program creation support apparatus 2, based on this notification, the identification data of the uploaded module modA is written in the previous data storage unit 202 (step S119). Further, based on the above notification, a message “Program has been forcibly updated” is displayed on the screen (step S120), and the upload process ends.

[モジュールのダウンロード]
図8のステップS201〜S204は、図1のPLCシステムの動作の一例を示したフローチャートであり、PLC1からプログラム作成支援装置2へのモジュールのダウンロード処理が示されている。このダウンロード処理は、ユーザが、PLC1内のプログラム記憶部15に格納されているモジュール、例えばモジュールmodBを指定し、プログラム作成支援装置2へのダウンロードを指示したときに開始される。なお、このアップロード処理は、PLC1の動作モードが、運用モード及び非運用モードのいずれの場合であっても実行することができる。
[Download module]
Steps S201 to S204 in FIG. 8 are flowcharts showing an example of the operation of the PLC system in FIG. 1, and show module download processing from the PLC 1 to the program creation support apparatus 2. This download process is started when the user designates a module, for example, module modB, stored in the program storage unit 15 in the PLC 1 and instructs the program creation support apparatus 2 to download. This upload process can be executed regardless of whether the operation mode of the PLC 1 is the operation mode or the non-operation mode.

まず、モジュールmodBを指定したダウンロード要求が、プログラム作成支援装置2からPLC1へ送信される(ステップS201)。このダウンロード要求を受信したPLC1は、プログラム記憶部15に保持されているモジュールmodBを読み出して要求元のプログラム作成支援装置2へ送信する。このモジュールは、プログラム作成支援装置2内のデータ入出力部26によって受信される(ステップS202)。データ入出力部26は、受信したモジュールmodBから識別データidBを抽出し、前回データ記憶部202内の識別データを更新する(ステップS203)。この前回データ記憶部202の更新後に、上記モジュールmodBは、プログラム記憶部201に書き込まれる(ステップS204)。なお、PLC1内の更新データ記憶部12に保持されているモジュールをダウンロードする場合には、上記ステップのうち、ステップS203が省略される。   First, a download request designating the module modB is transmitted from the program creation support apparatus 2 to the PLC 1 (step S201). The PLC 1 that has received this download request reads out the module modB held in the program storage unit 15 and transmits it to the request source program creation support apparatus 2. This module is received by the data input / output unit 26 in the program creation support apparatus 2 (step S202). The data input / output unit 26 extracts the identification data idB from the received module modB, and updates the identification data in the previous data storage unit 202 (step S203). After the previous data storage unit 202 is updated, the module modB is written in the program storage unit 201 (step S204). In addition, when downloading the module hold | maintained at the update data storage part 12 in PLC1, step S203 is abbreviate | omitted among the said steps.

[プログラム照合]
図9のステップS301〜S306は、図4のプログラム作成支援装置2の動作の一例を示したフローチャートであり、プログラム照合処理が示されている。このプログラム照合処理は、プログラム作成支援装置2において、ユーザがプログラム照合を指示した場合に、プログラム照合部25によって実行される。
[Program verification]
Steps S301 to S306 in FIG. 9 are flowcharts showing an example of the operation of the program creation support apparatus 2 in FIG. 4 , and show program collation processing. This program verification processing is executed by the program verification unit 25 when the user instructs program verification in the program creation support apparatus 2.

ユーザがプログラム5を指定してプログラム照合を指示すると、プログラム照合部25は、当該プログラムに属する全てのモジュールmodA〜modDについて、その識別データidA〜idD及び更新時刻データをPLC1内のプログラム記憶部15からダウンロードする(ステップS301)。このとき、モジュールmodA〜modD自体をダウンロードしてもよいが、プログラム照合に必要となる識別データidA〜idD及び更新時刻データのみをダウンロードすれば、ダウンロード時間を大幅に短縮することができる。   When the user designates the program 5 to instruct program verification, the program verification unit 25 stores the identification data idA to idD and the update time data for all the modules modA to modD belonging to the program in the program storage unit 15 in the PLC 1. (Step S301). At this time, the modules modA to modD themselves may be downloaded. However, if only the identification data idA to idD and update time data necessary for program verification are downloaded, the download time can be greatly shortened.

次に、前回データ記憶部202から識別データidA〜idDが読み出され(ステップS302)、ダウンロードされた識別データidA〜idDとの比較が行われる(ステップS303)。つまり、照合対象となる各モジュールmodA〜modDごとに、前回データ記憶部202内に保持されている識別データと、PLC1のプログラム記憶部15内に保持されている識別データとの比較が行われる。   Next, the identification data idA to idD are read from the previous data storage unit 202 (step S302), and compared with the downloaded identification data idA to idD (step S303). That is, for each of the modules modA to modD to be collated, the identification data held in the previous data storage unit 202 is compared with the identification data held in the program storage unit 15 of the PLC 1.

同様にして、プログラム記憶部201から識別データidA〜idD及び更新時刻データが読み出され(ステップS304)、照合対象となる各モジュールmodA〜modDごとに、前回データ記憶部202内の識別データidA〜idDとの比較が行われる(ステップS305)。   Similarly, identification data idA to idD and update time data are read from the program storage unit 201 (step S304), and the identification data idA to data in the previous data storage unit 202 are checked for each of the modules modA to modD to be collated. Comparison with idD is performed (step S305).

エラー情報出力部27は、ステップS303及びS305の比較結果を画面表示してユーザに知らせる(ステップS306)。例えば、ステップS303及びS305における各比較結果が、モジュールmodA〜modDごとに対応づけられて画面表示される。   The error information output unit 27 displays the comparison results of steps S303 and S305 on the screen to notify the user (step S306). For example, the comparison results in steps S303 and S305 are displayed on the screen in association with each of the modules modA to modD.

なお、このプログラム照合処理では、プログラム作成支援装置2及びPLC1間で、識別データのダウンロードが行われているが、モジュールのアップロード及びダウンロードは行われていない。このため、前回データ記憶部202は更新されない。 In this program collation process, the identification data is downloaded between the program creation support apparatus 2 and the PLC 1, but the module is not uploaded or downloaded. For this reason, the previous data storage unit 202 is not updated.

[エラー情報出力例1]
図10は、プログラム作成支援装置2におけるエラー情報出力の一例を示した図であり、エラー情報出力部27による画面表示の一例が示されている。この表示画面には、プログラム表示エリア30及びエラー情報表示エリア31が含まれている。プログラム表示エリア30は、プログラム編集時における表示と同様、プログラム5がグラフィカルに表示される領域であり、複数のデバイスシンボル32の結合状態としてプログラム5が表示されている。
[Error information output example 1]
FIG. 10 is a diagram showing an example of error information output in the program creation support apparatus 2, and shows an example of screen display by the error information output unit 27. This display screen includes a program display area 30 and an error information display area 31. The program display area 30 is an area in which the program 5 is displayed graphically, similar to the display at the time of program editing, and the program 5 is displayed as a combined state of a plurality of device symbols 32.

エラー情報表示エリア31は、PLC1から受信したエラー情報を表示するエリアである。この図では、2つのエラー情報33が行を異ならせて表示されている。ここでは、エラー情報33として、エラー発生箇所34、エラー番号35、エラーメッセージ36及び命令語37が表示されている。エラー発生箇所34は、エラー発生位置の情報であり、例えば、モジュール名「cp053」、行番号「00019」及び列番号「02」によって特定される。エラー番号は、予め定められているエラーの種類を示すコード番号である。エラーメッセージ36は、コード番号に予め対応づけられている文字列である。命令語37はエラーが発見された命令語である。   The error information display area 31 is an area for displaying error information received from the PLC 1. In this figure, two pieces of error information 33 are displayed with different lines. Here, as the error information 33, an error occurrence location 34, an error number 35, an error message 36, and a command word 37 are displayed. The error occurrence location 34 is information on the error occurrence position, and is specified by, for example, the module name “cp053”, the row number “00019”, and the column number “02”. The error number is a code number indicating a predetermined error type. The error message 36 is a character string that is associated with a code number in advance. The instruction word 37 is an instruction word in which an error is found.

図11は、エラー発生箇所をプログラム上で示した画面表示の一例である。図10の表示画面上において、エラー情報表示エリア31に表示されているエラー情報33のいずれかをユーザが選択すれば、エラー発生箇所を含むモジュールがプログラム表示エリア30に表示され、エラー発生箇所のデバイスシンボルがハイライト(強調)表示68となる。例えば、マウスなどのポインティングデバイスを用いて、エラー情報表示エリア31内をユーザがクリックすれば、クリックされた行に対応するエラー情報が選択され、プログラム表示エリア30に当該エラー情報に係るデバイスが表示される。   FIG. 11 is an example of a screen display showing an error occurrence location on a program. If the user selects any one of the error information 33 displayed in the error information display area 31 on the display screen of FIG. 10, the module including the error occurrence location is displayed in the program display area 30, and the error occurrence location is displayed. The device symbol becomes a highlight (emphasis) display 68. For example, when the user clicks in the error information display area 31 using a pointing device such as a mouse, error information corresponding to the clicked line is selected, and the device related to the error information is displayed in the program display area 30. Is done.

ただし、ユーザが選択したエラー情報が、プログラム作成支援装置2内に保持されていないモジュールmodB〜modDである場合には、当該モジュールmodB〜modDがPLC1内のプログラム記憶部15からダウンロードされ、プログラム表示エリア30に表示される。なお、エラー情報に係るモジュールは、PLC1からエラー情報を取得する際に取得しておくことが望ましい。例えば、PLC1が、エラー情報とともに、当該エラー情報に係るモジュールもプログラム作成支援装置2へ送出するように構成してもよいし、あるいは、プログラム作成支援装置2が、PLC1から取得したエラー情報に基づいて、PLC1に対し、当該エラー情報に係るモジュールのダウンロードを要求するように構成することもできる。   However, when the error information selected by the user is a module modB to modD that is not held in the program creation support device 2, the modules modB to modD are downloaded from the program storage unit 15 in the PLC 1 and displayed as a program. Displayed in area 30. Note that it is desirable to acquire the module related to the error information when acquiring the error information from the PLC 1. For example, the PLC 1 may be configured to send the module related to the error information together with the error information to the program creation support apparatus 2, or based on the error information acquired by the program creation support apparatus 2 from the PLC 1. Thus, the PLC 1 can be configured to request downloading of a module related to the error information.

[エラー情報出力例2]
図12は、プログラム作成支援装置2におけるエラー情報出力の他の例を示した図であり、プログラム照合結果及びエラー情報が同時に表示されるPLC照合/同期画面6が示されている。
[Error information output example 2]
FIG. 12 is a diagram showing another example of error information output in the program creation support apparatus 2 and shows a PLC verification / synchronization screen 6 on which a program verification result and error information are displayed simultaneously.

PLC照合/同期画面6は、エラー情報出力部27によって表示される。このPLC照合/同期画面6上には、照合ボタン61、PLC書込ボタン62、PLC読出ボタン63及び照合結果表示エリア64が設けられている。これらのボタン61〜63は、マウスなどのポインティング入力手段を用いて操作することができ、ユーザは、プログラム照合処理、アップロード処理又はダウンロード処理を指示することができる。   The PLC verification / synchronization screen 6 is displayed by the error information output unit 27. On the PLC verification / synchronization screen 6, a verification button 61, a PLC write button 62, a PLC read button 63, and a verification result display area 64 are provided. These buttons 61 to 63 can be operated using a pointing input unit such as a mouse, and the user can instruct a program collation process, an upload process, or a download process.

ユーザが照合ボタン61を操作すれば、図9に示したプログラム照合処理が実行され、その照合結果が照合結果表示エリア64に表示される。図示した照合結果表示エリア64内には、ユーザが指定したプログラム5に含まれる各モジュールA〜Dが異なる行にそれぞれ表示された例が示されている。   When the user operates the collation button 61, the program collation process shown in FIG. 9 is executed, and the collation result is displayed in the collation result display area 64. In the illustrated collation result display area 64, an example is shown in which the modules A to D included in the program 5 designated by the user are displayed on different lines.

各行の左側のエリアは、当該プログラム作成支援装置2のプログラム記憶部201に保持されているモジュール名と、その更新時刻データが表示されるエディタ表示欄641である。同様にして、各行の右側のエリアは、PLC1内のプログラム記憶部15に保持されているモジュール名と、その更新時刻データが表示されるPLC表示欄643である。   The area on the left side of each row is an editor display column 641 in which the module name held in the program storage unit 201 of the program creation support apparatus 2 and its update time data are displayed. Similarly, the area on the right side of each row is a PLC display column 643 in which the module name held in the program storage unit 15 in the PLC 1 and its update time data are displayed.

各行の中央のエリアは、プログラム照合部25による照合結果を文字で表示する照合結果表示欄642である。ステップS303及びS305による照合結果が、ともに一致であったモジュールについては、照合結果表示欄642に「OK」が表示される。一方、いずれかが不一致であったモジュールについては、照合結果表示欄642には何も表示されず、エディタ表示欄641又はPLC表示欄643内の当該モジュールがハイライト(強調)表示66となる。つまり、ステップS303で不一致であった場合には、PLC表示欄643内の当該モジュールがハイライト表示66となり、ステップS305で不一致であった場合には、エディタ表示欄641内の当該モジュールがハイライト表示66となる。この様にして、ステップS303及びS305の比較結果をモジュールごとに対応づけて表示している。   The center area of each line is a collation result display column 642 for displaying collation results by the program collation unit 25 in characters. “OK” is displayed in the collation result display field 642 for modules whose collation results in steps S303 and S305 are identical. On the other hand, for any module that does not match, nothing is displayed in the collation result display field 642, and the module in the editor display field 641 or the PLC display field 643 becomes a highlight (highlight) display 66. That is, if there is a mismatch in step S303, the module in the PLC display field 643 is highlighted 66, and if there is a mismatch in step S305, the module in the editor display field 641 is highlighted. The display 66 is displayed. In this way, the comparison results of steps S303 and S305 are displayed in association with each module.

図中でハッチングにより示されたハイライト表示67は、図5〜図7のアップロード処理中においてエラーが発生したモジュールを表示している。このハイライト表示67の更新は、プログラムのアップロード時に行われる。なお、図示しないが、実行対象となるプログラムの更新に失敗した「アップロード失敗」と、エラー検出後のプログラム強制更新とが区別可能となるように、両者をそれぞれ表示することもできる。   A highlight display 67 indicated by hatching in the figure indicates a module in which an error has occurred during the upload processing of FIGS. The highlight display 67 is updated when the program is uploaded. Although not shown, both can be displayed so that “upload failure” in which updating of the program to be executed has failed and forced program update after error detection can be distinguished.

チェックボックス65は、アップロード又はダウンロードの対象となるモジュールをユーザが指定するためのチェックボックスであり、各行の左端に設けられている。ユーザは、このチェックボックス65をクリック操作し、アップロード又はダウンロードするモジュールを選択する。   The check box 65 is a check box for the user to specify a module to be uploaded or downloaded, and is provided at the left end of each row. The user clicks the check box 65 to select a module to be uploaded or downloaded.

PLC書込ボタン62は、PLC1へのアップロードを指示するための操作ボタンである。ユーザがPLC書込ボタン62を操作すれば、図5〜7に示したアップロード処理が実行される。アップロードされるモジュールは、チェックボックス65のユーザ操作によって選択されたモジュールである。   The PLC write button 62 is an operation button for instructing uploading to the PLC 1. If the user operates the PLC write button 62, the upload process shown in FIGS. The uploaded module is a module selected by the user operation of the check box 65.

PLC読出ボタン63は、PLC1からのダウンロードを指示するための操作ボタンである。ユーザがPLC読出ボタン63を操作すれば、図8に示したダウンロード処理が実行される。ダウンロードされるモジュールは、チェックボックス65のユーザ操作によって選択されたモジュールである。   The PLC read button 63 is an operation button for instructing download from the PLC 1. If the user operates the PLC read button 63, the download process shown in FIG. 8 is executed. The downloaded module is a module selected by the user operation of the check box 65.

図12に示された各モジュールA〜Dの照合結果の例について説明する。プログラム作成支援装置2内のモジュールAは編集済みであるが、この編集はPLC1内のモジュールAには反映されておらず、モジュールAをPLC1へアップロードしておく必要があることがわかる。また、PLC1内のモジュールAは他人によって更新されておらず、上記アップロードは安全に行うことができる状態であることがわかる。ただし、この例では、モジュールAが、アップロード失敗を示すハイライト表示67になっている。つまり、編集済みのモジュールのアップロードを既に試みており、その結果、アップロード時のエラーチェックでエラーが発見され、実行対象のプログラムを更新できなかったことがわかる。   An example of the collation result of each module A to D shown in FIG. 12 will be described. Although the module A in the program creation support apparatus 2 has been edited, it is understood that this editing is not reflected in the module A in the PLC 1 and it is necessary to upload the module A to the PLC 1. Also, it can be seen that the module A in the PLC 1 has not been updated by another person and that the uploading can be performed safely. However, in this example, the module A is highlighted 67 indicating the upload failure. In other words, it can be seen that uploading of the edited module has already been attempted, and as a result, an error was found in the error check at the time of upload, and the execution target program could not be updated.

プログラム作成支援装置2内のモジュールBは編集されていないが、PLC1内のモジュールBは、他のプログラム作成支援装置2によって更新されている。このため、シミュレーションを正しく行うためには、モジュールBをPLC1からダウンロードしておく必要があることがわかる。   The module B in the program creation support apparatus 2 is not edited, but the module B in the PLC 1 is updated by another program creation support apparatus 2. For this reason, in order to perform a simulation correctly, it turns out that the module B needs to be downloaded from PLC1.

モジュールCについては「OK」が表示されており、プログラム作成支援装置2内及びPLC1内のモジュールが一致していることが示されている。この場合、モジュールCについてはアップロード及びダウンロードのいずれも行う必要がないことがわかる。   “OK” is displayed for the module C, indicating that the modules in the program creation support apparatus 2 and the PLC 1 match. In this case, it is understood that neither upload nor download is required for the module C.

プログラム作成支援装置2内のモジュールDは編集済みであるが、この編集はPLC1内のモジュールDには反映されていない。一方、PLC1内のモジュールDは他のプログラム作成支援装置2によって先に更新されている。この場合、モジュールDのPLC1へのアップロードは、他人が先に更新したPLC1内のモジュールDを上書きすることになるため、慎重に行わなければならないことがわかる。   Although the module D in the program creation support apparatus 2 has been edited, this editing is not reflected in the module D in the PLC 1. On the other hand, the module D in the PLC 1 has been updated by another program creation support device 2 first. In this case, uploading of the module D to the PLC 1 is overwritten with the module D in the PLC 1 previously updated by another person.

なお、上記実施の形態における更新データ記憶部12及びプログラム記憶部15は、物理的に区分され、あるいは、固定的に区分された記憶装置である必要はない。これらの記憶部12及び15は、例えば、次のように実現することができる。   Note that the update data storage unit 12 and the program storage unit 15 in the above embodiment do not have to be physically partitioned or fixedly partitioned storage devices. These storage units 12 and 15 can be realized as follows, for example.

図13は、更新データ記憶部12及びプログラム記憶部15の具体的な構成例を示した図である。図中の(a)は、PLC1内に備えられた記憶装置のメモリ空間を示した図であり、複数のメモリ領域A1〜A8に予め分割されている。図中の(b)は、これらの各メモリ領域A1〜A8を更新データ記憶部12又はプログラム記憶手段15へ動的に割り当てるための割当テーブルである。   FIG. 13 is a diagram illustrating a specific configuration example of the update data storage unit 12 and the program storage unit 15. (A) in the figure is a diagram showing a memory space of a storage device provided in the PLC 1, and is divided into a plurality of memory areas A1 to A8 in advance. (B) in the figure is an allocation table for dynamically allocating each of these memory areas A1 to A8 to the update data storage unit 12 or the program storage unit 15.

ここでは、実行対象となるプログラム5を構成しているモジュールA〜Dが、メモリ領域A1〜A4及びA7に格納されており、これらのメモリ領域A1〜A4及びA7が、割当テーブルによってプログラム記憶部15に割り当てられている。なお、モジュールBは、メモリ領域A2のサイズよりも大きいため、2つのメモリ領域A2及びA3にわたって格納されている。また、アップロードされたモジュールA’が、メモリ領域A6に格納されており、このメモリ領域A6が、(b)の割当テーブルよって更新データ記憶部12に割り当てられている。   Here, the modules A to D constituting the program 5 to be executed are stored in the memory areas A1 to A4 and A7, and these memory areas A1 to A4 and A7 are stored in the program storage unit by the allocation table. 15 is assigned. Since the module B is larger than the size of the memory area A2, the module B is stored across the two memory areas A2 and A3. The uploaded module A 'is stored in the memory area A6, and this memory area A6 is allocated to the update data storage unit 12 by the allocation table of (b).

このため、プログラム実行部16は、メモリ領域A1〜A4及びA7を参照して動作し、エラーチェック部13は、メモリ領域A2〜A4、A6及びA7を参照してエラーチェックを行う。また、モジュールAをモジュールA’で置き換えることにより、実行対象となるプログラム5を更新する場合には、プログラム更新部14が、メモリ領域A6がプログラム記憶部15に割り当てられ、メモリ領域A1が未使用となるように、割当テーブルを変更すればよく、モジュールA’をメモリ空間内で移動させる必要はない。   Therefore, the program execution unit 16 operates with reference to the memory areas A1 to A4 and A7, and the error check unit 13 performs error check with reference to the memory areas A2 to A4, A6 and A7. When the program A to be executed is updated by replacing the module A with the module A ′, the program update unit 14 allocates the memory area A6 to the program storage unit 15, and the memory area A1 is unused. The allocation table may be changed so that the module A ′ does not need to be moved in the memory space.

なお、上記実施の形態では、主として、プログラム5が複数のモジュールにより構成される場合の例について説明したが、本発明は、このような場合には限定されない。すなわち、モジュールに分割されていないプログラム5(1つのモジュールで構成されるプログラム)についても本発明を適用することができる。   In the above embodiment, an example in which the program 5 is mainly composed of a plurality of modules has been described. However, the present invention is not limited to such a case. That is, the present invention can be applied to a program 5 (a program composed of one module) that is not divided into modules.

本発明の実施の形態1によるPLCシステムの概略構成の一例を示した図である。It is the figure which showed an example of schematic structure of the PLC system by Embodiment 1 of this invention. PLC用プログラム5の概略について説明するための図である。It is a figure for demonstrating the outline of the program 5 for PLC. 図1のPLC1の一構成例を示したブロック図である。It is the block diagram which showed one structural example of PLC1 of FIG. 図1のプログラム作成支援装置2の一構成例を示したブロック図である。It is the block diagram which showed the example of 1 structure of the program creation assistance apparatus 2 of FIG. モジュールのアップロード処理の一例を示したフローチャートである(その1)。It is the flowchart which showed an example of the upload process of a module (the 1). アップロード処理の一例を示したフローチャートである(その2)。It is the flowchart which showed an example of the upload process (the 2). アップロード処理の一例を示したフローチャートである(その3)。It is the flowchart which showed an example of the upload process (the 3). ダウンロード処理の一例を示したフローチャートである。It is the flowchart which showed an example of the download process. プログラム照合処理の一例を示したフローチャートである。It is the flowchart which showed an example of the program collation process. プログラム作成支援装置2におけるエラー情報出力の一例を示した図である。It is the figure which showed an example of the error information output in the program creation assistance apparatus. エラー発生箇所をプログラム上で示した画面表示の一例である。It is an example of the screen display which showed the error occurrence location on the program. プログラム作成支援装置2におけるエラー情報出力の他の例を示した図である。It is the figure which showed the other example of the error information output in the program creation assistance apparatus. 更新データ記憶部12及びプログラム記憶部15の具体的な構成例を示した図である。3 is a diagram illustrating a specific configuration example of an update data storage unit 12 and a program storage unit 15. FIG.

符号の説明Explanation of symbols

2 プログラム作成支援装置
3 入力装置
4 出力装置
5 プログラム
6 PLC照合/同期画面
11 データ入出力部
12 更新データ記憶部
13 エラーチェック
4 プログラム更新部
15 プログラム記憶部
16 プログラム実行部
17 入力装置I/F部
18 出力装置I/F部
21 プログラム編集部
22 識別データ生成部
23 エラーチェック部
24 コンパイル部
25 プログラム照合部
26 データ入出力部
27 エラー情報出力部
28 プログラム変更確認
0 プログラム表示エリア
31 エラー情報表示エリア
32 デバイスシンボル
33 エラー情報
34 エラー発生箇所
35 エラー番号
36 エラーメッセージ
37 命令語
61 プログラム照合ボタン
62 PLC書込ボタン
63 PLC読出ボタン
64 照合結果表示エリア
65 チェックボックス
66,67,68 ハイライト表示
201 プログラム記憶部
202 前回データ記憶部
641 エディタ表示欄
642 照合結果表示欄
643 PLC表示欄
idA〜idD 識別データ
modA〜modD モジュール

2 Program creation support device 3 Input device 4 Output device 5 Program 6 PLC verification / synchronization screen 11 Data input / output unit 12 Update data storage unit 13 Error check unit
1 4 Program update unit 15 Program storage unit 16 Program execution unit 17 Input device I / F unit 18 Output device I / F unit 21 Program editing unit 22 Identification data generation unit 23 Error check unit 24 Compile unit 25 Program verification unit 26 Data input Output unit 27 Error information output unit 28 Program change confirmation unit
3 0 Program display area 31 Error information display area 32 Device symbol 33 Error information 34 Error location 35 Error number 36 Error message 37 Command word 61 Program verification button 62 PLC write button 63 PLC read button 64 Verification result display area 65 Check box 66, 67, 68 Highlight display 201 Program storage unit 202 Previous data storage unit 641 Editor display column 642 Verification result display column 643 PLC display column idA to idD Identification data modA to modD Module

Claims (4)

複数のモジュールをマージして得られる実行対象の制御プログラムを繰り返し実行する運用モード及び当該実行対象の制御プログラムの実行を停止する非運用モードを切り替え可能なプログラマブルコントローラにおいて、
上記複数のモジュールからなる上記実行対象の制御プログラムを記憶する第1の記憶部と、
上記複数のモジュールのうち一部のモジュールを更新するために、ユーザによって編集された更新モジュールを、上記運用モード中に外部装置から受信するデータ受信手段と、
上記データ受信手段により受信した更新モジュールを記憶する第2の記憶部と、
上記運用モード中に、上記複数のモジュールのうち更新対象のモジュール以外の非更新モジュールについては第1の記憶部を参照し、上記更新モジュールについては第2の記憶部を参照し、上記非更新モジュールと上記更新モジュールとを仮想的にマージして更新対象の制御プログラムを生成し、上記実行対象の制御プログラムを変更することなく当該更新対象の制御プログラムのエラーチェックを行うエラーチェック手段と、
上記エラーチェックによりエラーが発見されなかった場合に、上記第2の記憶部に記憶された更新モジュールを第1の記憶部へ書き込むプログラム変更手段とを備えたことを特徴とするプログラマブルコントローラ。
In a programmable controller capable of switching between an operation mode for repeatedly executing an execution target control program obtained by merging a plurality of modules and a non-operation mode for stopping execution of the execution target control program,
A first storage unit for storing the control program of the execution target made of the plurality of modules,
A data receiving means for receiving an update module edited by a user from the external device during the operation mode in order to update some of the plurality of modules;
A second storage unit for storing the update module received by the data receiving means;
During the operation mode, the first storage unit is referred to for a non-update module other than the module to be updated among the plurality of modules, the second storage unit is referred to for the update module, and the non-update module And the update module are virtually merged to generate an update target control program, and an error check means for checking the error of the update target control program without changing the execution target control program ,
A programmable controller comprising: program changing means for writing an update module stored in the second storage unit into the first storage unit when no error is found by the error check.
上記プログラム変更手段は、運用モード中における実行対象の制御プログラムの繰り返し実行周期に同期して、上記第2の記憶部に記憶された更新モジュールを第1の記憶部へ書き込むことにより、実行対象の制御プログラムを更新することを特徴とする請求項1に記載のプログラマブルコントローラ。 The program changing means writes the update module stored in the second storage unit to the first storage unit in synchronization with the repeated execution cycle of the control program to be executed in the operation mode, thereby the programmable controller of claim 1, characterized in that to update the control program. 上記モジュールは、ユーザによる編集ごとに更新される識別データを含むことを特徴とする請求項1又は2に記載のプログラマブルコントローラ。   The programmable controller according to claim 1, wherein the module includes identification data that is updated each time editing is performed by a user. 複数のモジュールをマージして得られる実行対象の制御プログラムを繰り返し実行する運用モード及び当該実行対象の制御プログラムの実行を停止する非運用モードを切り替え可能なプログラマブルコントローラと、上記モジュールを生成するプログラム作成支援装置とからなるPLCシステムにおいて、
上記プログラム作成支援装置は、ユーザによって編集された更新モジュールを上記プログラマブルコントローラへ送信するデータ送信手段を備え、
上記プログラマブルコントローラは、上記複数のモジュールからなる上記実行対象の制御プログラムを記憶する第1の記憶部と、上記複数のモジュールのうち一部のモジュールを更新するために、ユーザによって編集された更新モジュールを、上記運用モード中に上記プログラム作成支援装置から受信するデータ受信手段と、上記データ受信手段により受信した更新モジュールを記憶する第2の記憶部と、上記運用モード中に、上記複数のモジュールのうち更新対象のモジュール以外の非更新モジュールについては第1の記憶部を参照し、上記更新モジュールについては第2の記憶部を参照し、上記非更新モジュールと上記更新モジュールとを仮想的にマージして更新対象の制御プログラムを生成し、上記実行対象の制御プログラムを変更することなく当該更新対象の制御プログラムのエラーチェックを行うエラーチェック手段と、上記エラーチェックによりエラーが発見されなかった場合に、上記第2の記憶部に記憶された更新モジュールを第1の記憶部へ書き込むプログラム変更手段とを備えたことを特徴とするPLCシステム。
Programmable controller capable of switching between an operation mode in which an execution target control program obtained by merging a plurality of modules is repeatedly executed and a non-operation mode in which execution of the execution target control program is stopped, and creation of a program for generating the module In a PLC system consisting of a support device,
The program creation support device includes data transmission means for transmitting an update module edited by a user to the programmable controller,
The programmable controller, in order to update a first storage unit for storing the control program of the execution target made of the plurality of modules, some modules of the plurality of modules, edited by the user updates Data receiving means for receiving modules from the program creation support apparatus during the operation mode, a second storage unit for storing update modules received by the data receiving means, and the plurality of modules during the operation mode The non-update module other than the module to be updated is referred to the first storage unit, the update module is referred to the second storage unit, and the non-update module and the update module are virtually merged. to generate a control program to be updated, to change the execution target of the control program And error checking means for performing error checking of a control program of the update target without, if no error is found by the error check, the update module stored in said second storage unit to the first storage unit A PLC system comprising a program change means for writing.
JP2007128551A 2007-05-14 2007-05-14 Programmable controller and PLC system Expired - Fee Related JP5039428B2 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2007128551A JP5039428B2 (en) 2007-05-14 2007-05-14 Programmable controller and PLC system

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2007128551A JP5039428B2 (en) 2007-05-14 2007-05-14 Programmable controller and PLC system

Publications (2)

Publication Number Publication Date
JP2008282363A JP2008282363A (en) 2008-11-20
JP5039428B2 true JP5039428B2 (en) 2012-10-03

Family

ID=40143100

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2007128551A Expired - Fee Related JP5039428B2 (en) 2007-05-14 2007-05-14 Programmable controller and PLC system

Country Status (1)

Country Link
JP (1) JP5039428B2 (en)

Cited By (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9493691B2 (en) 2013-03-13 2016-11-15 Momentive Performance Materials Inc. Moisture curable organopolysiloxane compositions
US9523002B2 (en) 2011-12-15 2016-12-20 Momentive Performance Materials Inc. Moisture curable organopolysiloxane compositions
US9527959B2 (en) 2011-12-29 2016-12-27 Momentive Performance Materials Inc. Moisture curable organopolysiloxane composition
US9605113B2 (en) 2013-05-10 2017-03-28 Momentive Performance Materials Inc. Non-metal catalyzed room temperature moisture curable organopolysiloxane compositions
US9663657B2 (en) 2011-12-15 2017-05-30 Momentive Performance Materials Inc. Moisture curable organopolysiloxane compositions
CN107615192A (en) * 2015-08-10 2018-01-19 欧姆龙株式会社 Support device, method and the recording medium for preserving support program

Families Citing this family (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP5311064B2 (en) * 2010-03-15 2013-10-09 オムロン株式会社 PLC development support equipment
DE112010006083T5 (en) * 2010-12-24 2014-04-10 Mitsubishi Electric Corporation Peripheral device of a programmable controller and a communication method thereof
JP5796311B2 (en) 2011-03-15 2015-10-21 オムロン株式会社 Control device and system program
KR101602993B1 (en) * 2012-08-23 2016-03-11 엘에스산전 주식회사 Error detection device for programming language
JP6299095B2 (en) * 2013-07-09 2018-03-28 富士電機株式会社 Shared data definition support system, its master device, local terminal, program
JP6072714B2 (en) * 2014-02-20 2017-02-01 三菱電機株式会社 Program verification device
US10162328B2 (en) * 2014-03-14 2018-12-25 Omron Corporation Controller and control system
JP6550268B2 (en) * 2015-05-27 2019-07-24 株式会社キーエンス Program creation support apparatus, program and determination method
JP7067273B2 (en) * 2018-05-29 2022-05-16 オムロン株式会社 Support equipment, control systems, and development support programs

Family Cites Families (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP3114907B2 (en) * 1992-09-10 2000-12-04 富士電機株式会社 How to change the sequence program of the programmable controller
JPH10124119A (en) * 1996-10-24 1998-05-15 Fanuc Ltd Sequence program editing method

Cited By (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9523002B2 (en) 2011-12-15 2016-12-20 Momentive Performance Materials Inc. Moisture curable organopolysiloxane compositions
US9663657B2 (en) 2011-12-15 2017-05-30 Momentive Performance Materials Inc. Moisture curable organopolysiloxane compositions
US9527959B2 (en) 2011-12-29 2016-12-27 Momentive Performance Materials Inc. Moisture curable organopolysiloxane composition
US9493691B2 (en) 2013-03-13 2016-11-15 Momentive Performance Materials Inc. Moisture curable organopolysiloxane compositions
US9605113B2 (en) 2013-05-10 2017-03-28 Momentive Performance Materials Inc. Non-metal catalyzed room temperature moisture curable organopolysiloxane compositions
CN107615192A (en) * 2015-08-10 2018-01-19 欧姆龙株式会社 Support device, method and the recording medium for preserving support program
CN107615192B (en) * 2015-08-10 2020-03-17 欧姆龙株式会社 Support device, method and recording medium storing support program
US10705500B2 (en) 2015-08-10 2020-07-07 Omron Corporation Support device, method, and recording medium for simplifying control program changing operation

Also Published As

Publication number Publication date
JP2008282363A (en) 2008-11-20

Similar Documents

Publication Publication Date Title
JP5039428B2 (en) Programmable controller and PLC system
JP4865634B2 (en) Program editing support apparatus, computer program, program editing support method, and PLC system
JP3925557B2 (en) Parameter setting device
CN114237676B (en) FPGA logic updating method, device, equipment and readable storage medium
JP6866663B2 (en) Programmable controller system, programmable controller, support device, HCI device, redundant programmable controller system
JP4462443B2 (en) Parameter setting device
JP6442131B2 (en) Control system and control device
JP5849592B2 (en) Programmable controller system, programming device thereof, programmable controller, program, and debugging method
KR20190046984A (en) Simulation device
JP4102137B2 (en) Control program creation support system and support method thereof
JP7067273B2 (en) Support equipment, control systems, and development support programs
US20220326673A1 (en) Support device and storage medium
JP2007004273A (en) Program execution system, programming system for program execution system, program analysis system, program management system, inspection apparatus having program execution system, program creation system for inspection apparatus, and inspection apparatus system
JP6541902B1 (en) Program management system, programming support apparatus, program management method, and programming support program
JP2006330866A (en) Programmable logic controller
JP2016224559A (en) Program creation support device, control method and program
JP5205988B2 (en) PLC global variable definition method
JP4532609B2 (en) Process management apparatus and method, and storage medium
JP5481267B2 (en) Control program creation device and control program creation device drive method
JP2021039568A (en) Information processing system, programmable display, and information processing device
US20230101320A1 (en) Method for creating and executing a control program for controlling an automation system, and automation system
US11360462B2 (en) Support device and support program
JP7380376B2 (en) Program for displaying information processing equipment and ladder programs
WO2022190417A1 (en) Development support device, development support method, and development support program
JP2023151760A (en) Safety system, safety controller, and processing method

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20100319

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20110614

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20110615

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20110808

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20111206

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20120202

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

A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20120709

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20150713

Year of fee payment: 3

R150 Certificate of patent or registration of utility model

Ref document number: 5039428

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

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

LAPS Cancellation because of no payment of annual fees