JP2005141699A - Apparatus for programmable controller - Google Patents

Apparatus for programmable controller Download PDF

Info

Publication number
JP2005141699A
JP2005141699A JP2003380551A JP2003380551A JP2005141699A JP 2005141699 A JP2005141699 A JP 2005141699A JP 2003380551 A JP2003380551 A JP 2003380551A JP 2003380551 A JP2003380551 A JP 2003380551A JP 2005141699 A JP2005141699 A JP 2005141699A
Authority
JP
Japan
Prior art keywords
program
service
execution
state
control program
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.)
Granted
Application number
JP2003380551A
Other languages
Japanese (ja)
Other versions
JP4366576B2 (en
Inventor
Takashi Inoue
貴史 井上
Masanori Kadowaki
正規 門脇
Shinichiro Kawaguchi
慎一郎 川口
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.)
Omron Corp
Original Assignee
Omron Corp
Omron Tateisi Electronics Co
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 Omron Corp, Omron Tateisi Electronics Co filed Critical Omron Corp
Priority to JP2003380551A priority Critical patent/JP4366576B2/en
Publication of JP2005141699A publication Critical patent/JP2005141699A/en
Application granted granted Critical
Publication of JP4366576B2 publication Critical patent/JP4366576B2/en
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Images

Abstract

<P>PROBLEM TO BE SOLVED: To provide a programmable controller capable of executing/stopping a service program without depending on a structure of a control program or an execution status thereof. <P>SOLUTION: This programmable controller is equipped with: a control program storage part 29a for storing the control program for executing apparatus control; and a service program storage part 29b for storing the service program without depending on the apparatus control. A control program execution engine 41 executes the control program stored and kept in a control program storage means. The service program is executed based on a call from the control program. <P>COPYRIGHT: (C)2005,JPO&NCIPI

Description

この発明は、プログラマブルコントローラ用機器に関するものである。   The present invention relates to a programmable controller device.

ファクトリーオートメーション(FA)の制御装置として、プログラマブルコントローラ(PLC)が用いられている。このPLCは、複数のユニットから構成される。すなわち、電源供給源の電源ユニット,PLC全体の制御を統率するCPUユニット,FAの生産装置や設備装置の適所に取り付けたスイッチやセンサの信号を入力する入力ユニット,アクチュエータなどに制御出力を出す出力ユニット,通信ネットワークに接続するための通信ユニットなどの各種のユニットを適宜組み合わせて構成される。   A programmable controller (PLC) is used as a control device for factory automation (FA). This PLC is composed of a plurality of units. That is, a power supply unit of a power supply source, a CPU unit that controls the entire PLC, an output unit that inputs a switch or sensor signal attached to an appropriate place in an FA production device or facility device, an output that outputs a control output Various units such as a unit and a communication unit for connecting to a communication network are appropriately combined.

PLCのCPUユニットにおける制御は、入力ユニットで入力した信号をCPUユニットのI/Oメモリに取り込み(INリフレッシュ)、予め登録されたユーザプログラム記述言語(例えばラダー言語)で組まれたユーザプログラムに基づき論理演算をし(演算実行)、その演算実行結果をI/Oメモリに書き込んで出力ユニットに送り出し(OUTリフレッシュ)、その後、いわゆる周辺処理を行うということをサイクリックに繰り返し処理するようになる。そして、上記したユーザプログラムは、CPUユニットのユーザメモリに格納される。   The control in the CPU unit of the PLC is based on a user program written in a user program description language (for example, ladder language) registered in advance by fetching a signal input from the input unit into the I / O memory of the CPU unit (IN refresh). A logical operation is performed (operation execution), and the operation execution result is written in the I / O memory, sent to the output unit (OUT refresh), and then the so-called peripheral processing is cyclically repeated. The above user program is stored in the user memory of the CPU unit.

さらに、PLCにおける機能としては、上記したようにPLCに直接或いはネットワーク等を介して間接的に接続された機器を制御するための制御プログラムを実行する機能と、係る機器制御を目的としない、通信機能,ファイル操作,パスワード管理などのサービス機能を持つサービスプログラムを実行する機能がある。そして、係る2つの機能を実行するPLCがある。   Furthermore, as a function in the PLC, as described above, a function for executing a control program for controlling a device directly connected to the PLC or indirectly via a network, and a communication not intended for the device control. There is a function to execute service programs with service functions such as functions, file operations, and password management. There is a PLC that performs these two functions.

しかしながら、このような従来のPLCでは、以下に示す種々の問題を有している。すなわち、サービス機能を実行するサービスプログラムは、通常、PLCのファームウェアとして実装されているため、ファームウェア上に存在しない、使用環境に適した機能を付加する場合には、制御プログラムの中に上記機能を持つプログラムを実装する必要がある。   However, such a conventional PLC has the following various problems. That is, since the service program for executing the service function is usually implemented as PLC firmware, when adding a function suitable for the use environment that does not exist in the firmware, the above function is included in the control program. It is necessary to implement the program you have.

そのため、制御プログラム内にサービス機能を実装した場合には、制御プログラムがPLCの実行状態にある場合にのみその機能は有効となり、PLCが停止状態にある場合は、サービス機能を利用することができなくなる。   Therefore, when a service function is implemented in the control program, the function is effective only when the control program is in the PLC execution state, and when the PLC is in the stop state, the service function can be used. Disappear.

さらに、サービスプログラムが制御プログラム内部に含まれる実装構造となるため、サービスプログラムの追加・削除・変更などを実施するためには、制御プログラムの構造が複雑になるばかりでなく、制御プログラムの実行処理性能に影響がでるおそれがある。   Furthermore, since the service program has a mounting structure included in the control program, the control program execution process is not only complicated, but also the control program structure becomes complicated in order to add, delete, and change service programs. The performance may be affected.

この発明は、制御プログラムの構造、実行状態に依存せず、サービスプログラムを実行・停止できるようなプログラマブルコントローラ用機器を提供することを目的とする。   It is an object of the present invention to provide a programmable controller device that can execute and stop a service program without depending on the structure and execution state of a control program.

この発明によるプログラマブルコントローラ用機器は、機器制御を行なうための制御プログラムを記憶する制御プログラム記憶手段と、前記機器制御に依存しないサービスプログラムを記憶するサービスプログラム記憶手段と、前記制御プログラム記憶手段に記憶保持された制御プログラムと、前記サービスプログラム記憶手段に記憶保持されたサービスプログラムを、それぞれ実行する手段を備えるようにした。この発明は、各実施例で実現されている。   A programmable controller device according to the present invention includes a control program storage means for storing a control program for performing device control, a service program storage means for storing a service program independent of the device control, and a storage in the control program storage means. Means are provided for executing the retained control program and the service program stored and retained in the service program storage means. The present invention is realized in each embodiment.

ここで、プログラマブルコントローラ用機器とは、制御プログラム等を実行する機能を備えたもので、CPUユニット等のプログラマブルコントローラを構成するユニットでも良いし、プログラマブルコントローラそのものも含む。そして、プログラマブルコントローラの場合、一体型のものと複数ユニットを連結して構成される両者を含む。   Here, the programmable controller device has a function of executing a control program or the like, and may be a unit constituting a programmable controller such as a CPU unit, or includes the programmable controller itself. In the case of a programmable controller, it includes both an integrated type and a plurality of units connected together.

この発明によれば、制御プログラムとサービスプログラムを別々のプログラムとして作成し、各記憶手段に格納するとともに、それぞれを実行可能するようにしたため、制御プログラムの構造や実行状態に依存せず、サービスプログラムを実行・停止できる仕組みを提供することができる。   According to the present invention, the control program and the service program are created as separate programs, stored in the respective storage means, and can be executed, so that the service program does not depend on the structure or execution state of the control program. It is possible to provide a mechanism that can execute and stop.

また、上記した発明を前提とし、前記サービスプログラムは、前記制御プログラムからの呼び出しに基づいて実行されるように構成する。これにより、別々に作成された制御プログラムから、サービスプログラムの機能を必要な時に呼び出して利用できるようになる。この発明は、第1実施例で実現されている。   Further, on the premise of the above-described invention, the service program is configured to be executed based on a call from the control program. As a result, the functions of the service program can be called and used when necessary from a separately created control program. The present invention is realized in the first embodiment.

また、前記サービスプログラムは、前記制御プログラムに依存しない独立して実行可能なプログラムとして記憶保持され、プログラマブルコントローラの動作状態に合わせて、実行,停止の制御が行なわれるようにすることもできる。動作状態とは、例えば、実施例で言う実行状態や停止状態さらにはシステム初期状態などがある。さらに、前記サービスプログラムは、前記制御プログラムに依存しない独立して実行可能なプログラムとして記憶保持され、プログラマブルコントローラが停止状態でも、前記サービスプログラムを常駐実行できるようにすることもできる。これらの発明は、第2,第3実施例で実現されている。   The service program may be stored and held as an independently executable program that does not depend on the control program, and execution and stop control may be performed in accordance with the operation state of the programmable controller. The operation state includes, for example, an execution state, a stop state, and a system initial state as described in the embodiment. Furthermore, the service program can be stored and held as an independently executable program that does not depend on the control program, and the service program can be residently executed even when the programmable controller is stopped. These inventions are realized in the second and third embodiments.

さらにまた、前記サービスプログラムは、プログラマブルコントローラの動作状況に依存せずに、追加,削除,変更の少なくとも1つを行う手段を備えるようにするとよい。実施例では、係る手段は、オンラインエディット処理部45等により実現される。この発明は、第4実施例で実現されている。サービスプログラムを制御プログラムと別のプログラムとして作成したため、プログラマブルコントローラの動作状態(制御プログラムの実行・停止状態等)に依存せず、対象となるサービスプログラムを追加,削除,変更(入替)ができる。   Furthermore, the service program may include means for performing at least one of addition, deletion, and change without depending on the operation status of the programmable controller. In the embodiment, such means is realized by the online edit processing unit 45 or the like. The present invention is realized in the fourth embodiment. Since the service program is created as a separate program from the control program, the target service program can be added, deleted, and changed (replaced) without depending on the operation state (execution / stop state of the control program, etc.) of the programmable controller.

本発明では、制御プログラムの構造、実行状態に依存せず、サービスプログラムを実行・停止できるようになる。   In the present invention, the service program can be executed and stopped without depending on the structure and execution state of the control program.

図1は、本発明が適用されるネットワークシステムの一例を示している。図1に示すように、ツール10と、PLC20と、上位コンピュータ30がネットワークを介して接続されている。より具体的には、この例では、ツール10と上位コンピュータ30はイーサネット(登録商標)などのネットワーク31で接続され、それらと、PLC20とは、インターネットなどの公衆回線網32から上記と別のイーサネット(登録商標)等のネットワーク33を介して接続される。このように公衆回線網32を利用することにより、遠隔地からツール10を操作してPLC20に対して各種の設定・制御をしたり、上位コンピュータ30を操作してPLC20内部のI/Oデータを参照したり、収集されたI/Oデータを蓄積したりすることができる。もちろん、必ずしも公衆回線網32を介する必要はなく、各種のネットワークを利用したり、PLCが接続されたネットワーク33にツール10や上位コンピュータ30を接続したり、さらには、ケーブル等により、直接PLC20にツール10や上位コンピュータ30を接続したりすることもできる。さらには、PLC20のメール送信機能を用い、携帯電話35に向けてメール(異常通知)を送信することもできる。   FIG. 1 shows an example of a network system to which the present invention is applied. As shown in FIG. 1, a tool 10, a PLC 20, and a host computer 30 are connected via a network. More specifically, in this example, the tool 10 and the host computer 30 are connected by a network 31 such as Ethernet (registered trademark), and the PLC 20 is connected to another Ethernet from a public network 32 such as the Internet. They are connected via a network 33 such as (registered trademark). In this way, by using the public network 32, the tool 10 is operated from a remote location to perform various settings and control on the PLC 20, or the host computer 30 is operated to obtain I / O data inside the PLC 20. It is possible to refer to and accumulate the collected I / O data. Of course, it is not always necessary to go through the public line network 32. Various networks are used, the tool 10 and the host computer 30 are connected to the network 33 to which the PLC is connected, and further directly connected to the PLC 20 by a cable or the like. The tool 10 and the host computer 30 can also be connected. Furthermore, a mail (abnormality notification) can be transmitted to the mobile phone 35 by using the mail transmission function of the PLC 20.

ここで、ツール10(開発環境装置)は、開発環境であり、パソコン上に所定のアプリケーションプログラムをインストールすることにより実現され、プログラム開発環境と設定ツールの2つの機能を備えている。そして、プログラム開発環境は、ユーザがPLC上で動作するプログラムを作成するためのツールである。また、設定ツールは、PLCの操作・設定を行うためのツールであり、ユーザが作成したプログラムをダウンロードすることや、PLCの起動,状態変更などの制御やコンフィグレーション情報を設定するものである。   Here, the tool 10 (development environment device) is a development environment and is realized by installing a predetermined application program on a personal computer, and has two functions of a program development environment and a setting tool. The program development environment is a tool for the user to create a program that operates on the PLC. The setting tool is a tool for operating and setting the PLC. The setting tool downloads a program created by the user and sets control and configuration information such as activation and status change of the PLC.

また、PLC20には、制御対象となる機器36が接続されており、この機器36は、ユーザが構築するシステムに依存するものであり、機器制御を行うためのセンサ,スイッチなどの入力機器と、モータ,ソレノイドなどの出力機器を含む。   The PLC 20 is connected with a device 36 to be controlled. This device 36 depends on a system constructed by the user, and includes input devices such as sensors and switches for device control, Includes output devices such as motors and solenoids.

図2は、ツール10並びにPLC20のソフトウェア概要構成図を示している。図2に示すように、ツール10は、プログラムエディタ(プログラム開発環境)11と、設定ツール12を有している。プログラムエディタ11は、ユーザプログラムを作成・編集するためのツールである。また、設定ツール12は、PLC20の状態制御やユーザプログラムのPLC20への送信(ダウンロード)、ユーザプログラムの設定情報の作成などを行うためのツールである。そして、この設定ツール12の中に、サービスオブジェクト設定機能13を備えている。このサービスオブジェクト設定機能13は、サービスプログラムをPLC20上でオブジェクトとして取り扱うための項目を設定するための機能である。   FIG. 2 shows a schematic software configuration diagram of the tool 10 and the PLC 20. As shown in FIG. 2, the tool 10 includes a program editor (program development environment) 11 and a setting tool 12. The program editor 11 is a tool for creating and editing a user program. The setting tool 12 is a tool for controlling the state of the PLC 20, transmitting (downloading) a user program to the PLC 20, creating user program setting information, and the like. The setting tool 12 includes a service object setting function 13. The service object setting function 13 is a function for setting items for handling a service program as an object on the PLC 20.

PLC20(CPUユニット)は、オペレーティングシステムとして、PLC上で汎用のリアルタイムOS21が実装されている。そして、ユーザプログラムやコントローラの設定ファイルなどのファイル操作を行うためのドライバであるファイルシステム22,コントローラを機器ネットワークに接続するための通信機能を持つドライバであるネットワークドライバ23並びにコントローラに接続されるI/Oユニットとのデータ授受を行うためのドライバであるI/Oユニットバスドライバ24を備えている。これらの基本構成は、従来と同様である。   The PLC 20 (CPU unit) has a general-purpose real-time OS 21 mounted on the PLC as an operating system. Then, a file system 22 that is a driver for performing file operations such as a user program and a controller setting file, a network driver 23 that is a driver having a communication function for connecting the controller to a device network, and an I connected to the controller. An I / O unit bus driver 24, which is a driver for exchanging data with the / O unit, is provided. These basic configurations are the same as in the prior art.

そして、ユーザプログラムを動作させるコントローラとしての基本機能が実装されているミドルウェア部品たるフレームワーク25としては、大別すると、オブジェクト管理部26と、コントローラ状態管理部27と、保守・障害管理部28を備えている。   The framework 25, which is a middleware component on which basic functions as a controller for operating a user program are implemented, can be broadly divided into an object management unit 26, a controller state management unit 27, and a maintenance / failure management unit 28. I have.

本実施の形態では、フレームワーク25上で動作する機能をオブジェクト単位で持たせており、オブジェクト管理部26は、それら各オブジェクトの情報を登録、管理するものであり、定義されるオブジェクトの種類に応じてイベント管理部26a,制御プログラム管理部26b,サービスオブジェクト設定管理部26c並びにI/Oユニット管理部26dの各管理部がある。   In the present embodiment, functions that operate on the framework 25 are provided for each object, and the object management unit 26 registers and manages information on each object, and defines the types of objects to be defined. Accordingly, there are management units such as an event management unit 26a, a control program management unit 26b, a service object setting management unit 26c, and an I / O unit management unit 26d.

各管理部の機能を簡単に説明すると、イベント管理部26aは、制御プログラムの実行タイミングが定義されているイベントオブジェクトを管理し、制御プログラム管理部26bは、制御プログラムをオブジェクトとして管理し、サービスオブジェクト設定管理部26cはサービスプログラムをオブジェクトとして管理し、I/Oユニット管理部26dは、コントローラに接続されるI/Oユニットのデバイスをフレームワークの階層で管理し、コントローラ状態管理部26はコントローラの動作状態を管理し、保守・障害管理部27は電断,電池異常,I/Oユニット異常などのコントローラの異常状態を検知し、メモリ情報の退避やエラーLED点灯による障害通知などの対障害処理を行うものである。なお、必要な機能の詳細は後述する。   The function of each management unit will be briefly described. The event management unit 26a manages an event object in which the execution timing of the control program is defined, the control program management unit 26b manages the control program as an object, and a service object. The setting management unit 26c manages service programs as objects, the I / O unit management unit 26d manages devices of I / O units connected to the controller in the framework hierarchy, and the controller state management unit 26 manages the controller. The operation / status is managed, and the maintenance / fault management unit 27 detects controller faults such as power failure, battery fault, I / O unit fault, etc., and handles faults such as saving memory information and fault notifications due to error LED lighting. Is to do. Details of necessary functions will be described later.

さらに、PLC20のユーザメモリ29に格納されるユーザユーザプログラムには、制御プログラム記憶部29aに格納される制御プログラムと、サービスプログラム記憶部29bに格納されるサービスプログラムを備えている。ここで、制御プログラムは、定義されたイベント(定期的な制御周期、または割込みなどの非定期なイベント)に基づいて実行されるプログラムであり、サービスプログラムは、イベントに基づかずに実行されるプログラムである。   Further, the user user program stored in the user memory 29 of the PLC 20 includes a control program stored in the control program storage unit 29a and a service program stored in the service program storage unit 29b. Here, the control program is a program that is executed based on a defined event (a periodic control cycle or an irregular event such as an interrupt), and the service program is a program that is executed without being based on an event. It is.

ここで本実施の形態では、サービスプログラムが、制御プログラムと分離して作成・記憶保持するとともに、制御プログラムからサービスプログラムを起動可能とした。そこで、本発明の要部となるサービスオブジェクト並びにサービスプログラムについて説明する。   Here, in the present embodiment, the service program is created and stored separately from the control program, and the service program can be started from the control program. Therefore, a service object and a service program that are essential parts of the present invention will be described.

サービスプログラムは、1つ以上のアプリケーション実行プログラムと0個以上の設定関連ファイルで構成される1つのアプリケーションプログラムをPLC上で管理可能なサービスである。そして、サービスプログラムは、PLCのフレームワーク上で実行され、あるタイミング(周期による実行や、イベント発生時による実行)に基づいて実行される制御プログラムとは別の、アプリケーションプログラムであり、具体的には、以下のプログラムがある。
ユーザプログラム実行状態の時に、ユーザが作成した制御プログラムまたはサービスプログラムから呼び出し可能なライブラリとして扱われるプログラム;
PLC20の起動時に実行を開始し、PLC20の終了時に実行を終了するフレームワーク25上で動作する1つのスレッドとして実行可能なプログラム;
ユーザプログラム実行開始時に実行を開始し、ユーザプログラム終了時に実行を終了する、フレームワークで動作する1つのスレッドとして実行可能なプログラムがある。
The service program is a service that can manage one application program composed of one or more application execution programs and zero or more setting-related files on the PLC. The service program is an application program that is executed on the PLC framework and is different from a control program that is executed based on a certain timing (execution by a period or execution at the time of occurrence of an event). Has the following programs:
A program that is handled as a library that can be called from a control program or service program created by the user when the user program is running;
A program that can be executed as one thread that operates on the framework 25 that starts execution when the PLC 20 starts and ends execution when the PLC 20 ends;
There is a program that can be executed as one thread operating in the framework, which starts executing when the user program starts and ends when the user program ends.

また、サービスプログラムをフレームワーク25内で管理するための仕組みとして、サービスオブジェクトが定義される。サービスオブジェクトが提供する機能としては、以下のものがある。
サービスプログラムの取り扱いを、フレームワーク25内でライブラリとして取り扱うか、スレッドプログラムとして取り扱うかを管理する機能;
ユーザプログラム実行状態の時に、ユーザが作成した制御プログラムまたはサービスプログラムから呼び出し可能なライブラリとして扱われるプログラム;
ユーザが作成した制御プログラムまたはサービスプログラムから、サービスプログラムを呼び出して実行する場合において、フレームワーク上にそのサービスが存在するか否かを検知する機能;
サービスプログラムをスレッドプログラムとして取り扱う場合、スレッドの生成・起動・終了・実行優先度の設定を制御する機能;
フレームワーク上で追加・削除・変更の対象となるサービスの構成要素となる、アプリケーション実行プログラムと設定関連ファイルを管理する機能等がある。
A service object is defined as a mechanism for managing the service program within the framework 25. The functions provided by the service object include the following.
A function for managing whether the service program is handled as a library or a thread program in the framework 25;
A program that is handled as a library that can be called from a control program or service program created by the user when the user program is running;
A function for detecting whether or not the service exists on the framework when the service program is called and executed from the control program or service program created by the user;
Function that controls the creation, activation, termination, and execution priority setting of threads when handling service programs as thread programs;
There is a function for managing application execution programs and setting-related files, which are components of services to be added, deleted, or changed on the framework.

もちろん、上記した各種の機能がすべて実装されるわけではなく、必要に応じて適宜選択して実装される。そして、サービスオブジェクトは、具体的には「インスタンス名」,「実行プログラムファイル名のリスト」,「サービス設定管理ファイル名のリスト」,「サービス取り扱いフラグ」,「サービススレッド実行クラス名」,「サービススレッド実行優先度」などの項目により定義され、各項目をサービスオブジェクトのコンフィグレーション情報と称する。   Of course, all the various functions described above are not implemented, but are appropriately selected and implemented as necessary. The service objects are specifically “instance name”, “executable program file name list”, “service setting management file name list”, “service handling flag”, “service thread execution class name”, “service” It is defined by items such as “thread execution priority”, and each item is referred to as service object configuration information.

ここで、「インスタンス名」は、サービスオブジェクトのインスタンス名であり、ユーザから任意に設定されるものである。「実行プログラムファイル名のリスト」は、ユーザアプリケーションの構成要素となる実行プログラムファイル名のリストである。「サービス取り扱いフラグ」は、定義したサービスプログラムをフレームワーク25上でどのように取り扱うかを決めるフラグである。フラグの定義内容としては、(1)ユーザアプリケーションから呼び出し可能なライブラリとして取り扱うこと、(2)フレームワーク25が制御可能なスレッドプログラムとして取り扱うことがある。そして、後者のスレッドプログラムとして取り扱う場合は、さらに(2−1)PLC20がシステム初期状態からユーザアプリ停止状態の遷移時点で実行し、逆の遷移時点で停止する場合と、(2−2)PLC20がユーザアプリ停止状態からユーザアプリ実行状態の遷移時点で実行し、逆の遷移時点で停止する場合を識別するものがある。   Here, the “instance name” is an instance name of the service object and is arbitrarily set by the user. The “execution program file name list” is a list of execution program file names that are components of the user application. The “service handling flag” is a flag that determines how the defined service program is handled on the framework 25. The definition contents of the flag include (1) handling as a library that can be called from a user application, and (2) handling as a thread program that can be controlled by the framework 25. When handling as the latter thread program, (2-1) PLC 20 is executed at the transition point from the system initial state to the user application stop state and stopped at the reverse transition point. (2-2) PLC 20 Is executed at the time of transition from the user application stop state to the user application execution state, and identifies the case of stopping at the reverse transition time.

さらに、「サービススレッド実行クラス名」と「サービススレッド実行優先度」は、上記(2)の場合に有効な情報であり、前者が定義したサービスプログラムをスレッドプログラムとして取り扱う場合の実行スレッドが存在するプログラムファイル名であり、後者が、定義したサービスプログラムをスレッドプログラムとして取り扱う場合のスレッドを実行する場合の優先度である。   Furthermore, the “service thread execution class name” and the “service thread execution priority” are valid information in the case of (2) above, and there are execution threads when the service program defined by the former is handled as a thread program. This is a program file name, and the latter is a priority when a thread is executed when a defined service program is handled as a thread program.

上記した基本構成を前提とし、必要な機能を適宜実装することにより、以下に示す各種の実施例を実現することができる。図3は、第1実施例を示している。この第1実施例は、ライブラリとしてサービスプログラムを利用(実行)する機能を実現するものであり、この実施例により、サービスプログラムを、入出力機器の制御を行う制御プログラムから、直接制御に関連しない汎用プログラムとして分離することができ、ユーザが作成するプログラムの再利用性が向上する。さらに、同じプログラム開発環境を利用する汎用プログラムに対して、汎用プログラムのソースコードの変更なく、PLCで実行するための設定追加と、制御プログラムからの呼び出し機能追加を行うことで、サービスプログラムを利用することが可能となる。   Based on the basic configuration described above, various embodiments shown below can be realized by appropriately implementing necessary functions. FIG. 3 shows a first embodiment. The first embodiment realizes a function to use (execute) a service program as a library. According to this embodiment, a service program is not directly related to control from a control program for controlling input / output devices. It can be separated as a general-purpose program, and the reusability of the program created by the user is improved. In addition, service programs can be used for general-purpose programs that use the same program development environment by adding settings to be executed by PLC and adding calling functions from the control program without changing the source code of the general-purpose program. It becomes possible to do.

なお、本実施例で作成対象となるサービスプログラムは、ユーザ認証機能やファイルアクセス機能、不具合通知のメール送信機能など、常時実行の必要性が無くライブラリ呼び出しとして使用するプログラムである。そして、係る目的・作用効果を実現するための具体的な構成としては、図3に示すようになる。   Note that the service program to be created in the present embodiment is a program that is used as a library call without the need for constant execution, such as a user authentication function, a file access function, and a failure notification mail transmission function. A specific configuration for realizing the purpose / operation effect is as shown in FIG.

まず、開発環境としてのツール10は、PLC上で動作する制御プログラム、サービスプログラムを作成または編集し、プログラム実行のための設定情報と合わせてコントローラに送信するものである。そして、開発環境は、通常、PLCにプログラムを送信する場合においてのみ接続される。   First, the tool 10 as a development environment creates or edits a control program and a service program that operate on the PLC, and sends them to the controller together with setting information for program execution. The development environment is usually connected only when a program is transmitted to the PLC.

プログラムエディタ11は、PLC20上で動作する制御プログラムやサービスプログラムをユーザが作成するために使用するものである。そして、PLC20にて実行可能な中間コードにコンパイルする機能も備える。そして、ユーザは、かかるプログラムエディタ11を操作して、サービスプログラムを制御プログラムと別のプログラムとして作成するとともに、制御プログラム中にサービスプログラムの呼び出し記述を組み込み、制御プログラムの実行にともない所定のタイミングでサービスプログラムを呼び出して実行させるようなプログラムを作成する。なお、プログラムエディタ11における各プログラムの作成・編集や、コンパイル等の各処理は、従来と同様のもの(市販のツール)を用いることができる。   The program editor 11 is used by a user to create a control program and a service program that operate on the PLC 20. It also has a function of compiling into intermediate code executable by the PLC 20. Then, the user operates the program editor 11 to create a service program as a separate program from the control program, incorporates a service program call description in the control program, and at a predetermined timing along with the execution of the control program. Create a program that calls and executes a service program. Note that the same processing (commercially available tools) as before can be used for each processing such as creation / editing of each program and compilation in the program editor 11.

サービスオブジェクト設定機能13は、設定ツール12の一機能であり、ユーザが作成したサービスプログラムをPLC20のフレームワーク25上でオブジェクトとして取り扱うために必要な項目を設定する機能である。本実施例では、「インスタンス名」,「実行プログラムファイル名のリスト」,「サービス設定関連ファイル名のリスト」並びに「サービス取り扱いフラグ」を設定する。そして、「サービス設定関連ファイル名のリスト」は、ユーザアプリケーションの構成要素となる全設定関連ファイル名のリストが設定される。さらに、サービス取り扱いフラグでは、ユーザアプリケーションから呼び出し可能なライブラリとして定義することになる。そして、作成された制御プログラム、サービスプログラム、コンフィグレーション情報は、設定ツール12により、PLC20に送信(ダウンロード)される。   The service object setting function 13 is a function of the setting tool 12 and is a function for setting items necessary for handling a service program created by the user as an object on the framework 25 of the PLC 20. In this embodiment, “instance name”, “execution program file name list”, “service setting related file name list”, and “service handling flag” are set. In the “list of service setting-related file names”, a list of all setting-related file names that are components of the user application is set. Furthermore, the service handling flag is defined as a library that can be called from the user application. Then, the created control program, service program, and configuration information are transmitted (downloaded) to the PLC 20 by the setting tool 12.

一方、PLC20は、ツール10から制御プログラム,サービスプログラム並びに設定情報を受信し、各記憶部に格納する。制御プログラム(ユーザプログラム)はPLC20がユーザアプリ実行状態に遷移した時に、そのプログラムの記述に従って実行する。そして、制御プログラム中にサービスプログラムの呼び出し記述がある場合に、オブジェクト管理部にサービスオブジェクトとして登録されているかどうかを参照した上で、登録されている場合はサービスプログラムの処理実行を行う。   On the other hand, the PLC 20 receives a control program, a service program, and setting information from the tool 10 and stores them in each storage unit. When the PLC 20 transitions to the user application execution state, the control program (user program) is executed according to the description of the program. If there is a service program call description in the control program, the service program is executed after referring to whether it is registered as a service object in the object management unit.

以下、PLC20を構成する各機能ブロックの内、本実施例に関連する機能ブロックについて説明する。まず、通信機能部40を備えている。この通信機能部40は、ツール(開発環境)10から送られてきたコマンドを受信し、その受信したコマンドを解析し、解析結果に応じて各機能ブロックの処理への依頼や、記憶部へのデータ格納を行うものである。本実施例で扱うコマンドとしては、プロジェクトダウンロードコマンドとユーザアプリ実行コマンドがある。   Hereinafter, the functional blocks related to the present embodiment among the functional blocks constituting the PLC 20 will be described. First, the communication function unit 40 is provided. The communication function unit 40 receives a command sent from the tool (development environment) 10, analyzes the received command, requests a processing of each functional block according to the analysis result, Data storage is performed. Commands handled in this embodiment include a project download command and a user application execution command.

ここで「プロジェクトダウンロードコマンド」は、サービスオブジェクト初期化段階において、ユーザが作成したプログラムの実行ファイルをPLC20に送信するためのコマンドである。そこで、通信機能部40は、受信したプログラム(制御プログラム,サービスプログラム)を対応するプログラムの記憶部に格納する。つまり、制御プログラムがダウンロードされてきた場合には、制御プログラム管理部26bを介して制御プログラム記憶部29aに格納され、サービスプログラムがダウンロードされてきた場合には、サービスオブジェクト設定管理部26cを介してサービスプログラム記憶部29bに格納される。   Here, the “project download command” is a command for transmitting the execution file of the program created by the user to the PLC 20 in the service object initialization stage. Therefore, the communication function unit 40 stores the received program (control program, service program) in the storage unit of the corresponding program. That is, when the control program has been downloaded, it is stored in the control program storage unit 29a via the control program management unit 26b. When the service program has been downloaded, it is stored via the service object setting management unit 26c. It is stored in the service program storage unit 29b.

なお、制御プログラム記憶部29aは、制御プログラムの実行モジュールを記憶するものである。そして、その記憶された制御プログラムは、コントローラ状態管理部27で保持しているコントローラ(PLC)の動作状態に応じて、制御プログラム実行エンジン41を通じて停止・実行される。また、サービスプログラム記憶部29bは、サービスプログラムの実行モジュールを記憶するものである。そして、その記憶されたサービスプログラムは、制御プログラムあるいは他のサービスプログラムからの呼び出しに応じて実行される。   The control program storage unit 29a stores a control program execution module. Then, the stored control program is stopped and executed through the control program execution engine 41 in accordance with the operation state of the controller (PLC) held in the controller state management unit 27. The service program storage unit 29b stores service program execution modules. The stored service program is executed in response to a call from the control program or another service program.

一方、「ユーザアプリ実行コマンド」は、サービスオブジェクト参照段階において、ユーザが作成したプログラムをPLC20上で実行するためのコマンドである。そこで、通信機能部40は、指定されたプログラムを起動・実行させる。すなわち、通信処理部40はコントローラ状態管理部27に対し、受信したユーザアプリ実行コマンドを渡し、そのコントローラ状態管理部27にて所定のプログラムの実行・停止を管理する。   On the other hand, the “user application execution command” is a command for executing a program created by the user on the PLC 20 in the service object reference stage. Therefore, the communication function unit 40 activates and executes the designated program. That is, the communication processing unit 40 passes the received user application execution command to the controller state management unit 27, and the controller state management unit 27 manages execution / stop of a predetermined program.

コントローラ状態管理部27は、コントローラ(PLC)の実行状態を管理するものである。ツール10から送信されるコマンド、またはコントローラが内部で持つ状態遷移の設定情報に応じて、ユーザアプリの停止・実行を制御する。そして、コントローラ(PLC)は、以下に示すようなシステム初期状態,ユーザアプリ停止状態並びにユーザアプリ実行状態の3つの動作状態を持つ。   The controller state management unit 27 manages the execution state of the controller (PLC). The stop / execution of the user application is controlled in accordance with the command transmitted from the tool 10 or the state transition setting information held by the controller. The controller (PLC) has three operation states: a system initial state, a user application stop state, and a user application execution state as described below.

システム初期状態とは、外部(ツール10等)からPLC20に対するアクセスが可能となった状態である。この状態では、ツール10からユーザアプリをダウンロードすることなどができる。また、ユーザアプリは、PLC上に存在しない。   The system initial state is a state in which the PLC 20 can be accessed from the outside (tool 10 or the like). In this state, a user application can be downloaded from the tool 10 or the like. Further, the user application does not exist on the PLC.

ユーザアプリ停止状態とは、ユーザアプリはPLC20上に存在するが、当該ユーザアプリは実行していない状態である。この状態では、外部(ツール10など)からPLC20に対するアクセスが可能な状態である。   The user application stopped state is a state where the user application exists on the PLC 20 but the user application is not executed. In this state, the PLC 20 can be accessed from the outside (tool 10 or the like).

ユーザアプリ実行状態とは、ユーザアプリはPLC20上に存在し、ユーザアプリが実行している状態である。外部(ツール10など)からコントローラに対するアクセスが可能な状態である。   The user application execution state is a state in which the user application exists on the PLC 20 and is being executed. The controller is accessible from the outside (tool 10 or the like).

制御プログラム実行エンジン41は、制御プログラム記憶部29aに記憶保持された制御プログラムを評価実行する。また、制御プログラムからサービスプログラムの呼び出しがある場合は、オブジェクト管理部26へ該当するサービスプログラムが登録されているか参照を行う。   The control program execution engine 41 evaluates and executes the control program stored and held in the control program storage unit 29a. Further, when the service program is called from the control program, it is referred to whether the corresponding service program is registered in the object management unit 26.

オブジェクト管理部26は、PLC20上に配置されるプログラムの機能単位(例えば、「IOユニットのIOデータを収集するプログラム」,「IOユニットのIOデータを出力するプログラム等」)をオブジェクトとして保持し、管理するものである。オブジェクト管理部26では、以下の(1)から(5)の構成要素の配列をオブジェクトの種類別に保持し、各オブジェクトの管理を行う。
(1)オブジェクトのクラス名
イベント、プログラム、デバイス、サービスなどの種類ごとに、個々に割り当てられるクラスの名称である。例えば、デバイスオブジェクトに対して、16点ディジタル入力ユニット、32点ディジタル入力ユニット、アナログ入力ユニット、などコントローラ上で取り扱えるI/Oユニットの機種ごとに与えられる名前を定義する。
(2)オブジェクトのクラスID
オブジェクトのクラスごとに定義されるIDである。
(3)オブジェクトのインスタンス名
オブジェクト生成時に、メモリ領域に割り当てられた各オブジェクトに対して与えられるインスタンス(実体)の名称。例えばデバイスオブジェクトにおいて、コントローラ上に2つの同じ16点ディジタル入力ユニットが接続されている場合、アクセスするユニットを個別に識別できるようにそれぞれ名前を定義する。
(4)オブジェクトのインスタンスID
オブジェクトのインスタンスごとに定義されるIDである。
(5)オブジェクトのインスタンス
オブジェクトの実体である。
The object management unit 26 holds a functional unit of a program arranged on the PLC 20 (for example, “a program that collects IO data of an IO unit”, “a program that outputs IO data of an IO unit”) as an object, It is something to manage. In the object management unit 26, the following array of components (1) to (5) is held for each object type, and each object is managed.
(1) Object class name This is the name of a class assigned to each type of event, program, device, service, and the like. For example, a name given to each type of I / O unit that can be handled on the controller, such as a 16-point digital input unit, a 32-point digital input unit, and an analog input unit, is defined for the device object.
(2) Object class ID
It is an ID defined for each class of object.
(3) Instance name of an object Name of an instance (substance) given to each object assigned to the memory area when the object is generated. For example, in the device object, when two identical 16-point digital input units are connected on the controller, names are defined so that the units to be accessed can be individually identified.
(4) Object instance ID
An ID defined for each instance of an object.
(5) Object instance An entity of an object.

そして、本実施例に関係の深い制御プログラム管理部26bは、制御プログラムをオブジェクトとして登録、管理する機能である。ツール10から送信された制御プログラムが制御プログラム記憶部29aに保持されたデータに対して、管理対象として登録する。同様に、サービスオブジェクト設定管理部26cは、サービスプログラムをオブジェクトとして登録、管理する機能である。ツール10から送信されたプログラムにサービスオブジェクトが含まれる場合に、サービスプログラム記憶部29bに保持されたデータを管理対象として登録する。   The control program management unit 26b closely related to the present embodiment is a function for registering and managing the control program as an object. The control program transmitted from the tool 10 is registered as a management target for the data held in the control program storage unit 29a. Similarly, the service object setting management unit 26c has a function of registering and managing a service program as an object. When the service object is included in the program transmitted from the tool 10, the data held in the service program storage unit 29b is registered as a management target.

次に、各処理を行なう場合の処理フローを説明しつつ、各処理部(管理部,記憶部)の機能を説明する。図4は、主にサービスオブジェクトのダウンロード並びに初期化についての処理フローを示している。   Next, the function of each processing unit (management unit, storage unit) will be described while explaining the processing flow when performing each processing. FIG. 4 mainly shows a processing flow for downloading and initializing service objects.

まず、サービスオブジェクトは、PLCで動作する制御プログラムと合わせて、プロジェクトファイルとして、開発環境(ツール10)からデータ送信される。そこで、通信処理部40がツール10から送られてきたプロジェクトファイルを受信すると、その受信したデータをオブジェクト管理部26に渡す。   First, the service object is transmitted from the development environment (tool 10) as a project file together with a control program operating on the PLC. Therefore, when the communication processing unit 40 receives the project file sent from the tool 10, it passes the received data to the object management unit 26.

これに伴い、オブジェクト管理部26では、オブジェクトを初期化する。すなわち、サービスオブジェクトを受信した後で、PLCの状態がシステム初期状態からユーザアプリ停止状態に遷移するときにオブジェクトが初期化される。そして、係る初期化時は、サービスオブジェクト設定管理部26dは、サービスオブジェクトのコンフィグレーション情報をもとに、必要なサービスオブジェクトのパラメータを取得するとともに、サービスオブジェクトを生成し、サービスプログラム記憶部29bにサービスプログラムを記憶する。同様に、制御プログラム管理部26dは、制御プログラムのコンフィグレーション情報をもとに、必要な制御プログラムのパラメータを取得するとともに、オブジェクトを生成し、制御プログラム記憶部29aに制御部プログラムを記憶する。   Along with this, the object management unit 26 initializes the object. That is, after receiving the service object, the object is initialized when the PLC state transitions from the system initial state to the user application stop state. At the time of initialization, the service object setting management unit 26d obtains necessary service object parameters based on the configuration information of the service object, generates a service object, and stores it in the service program storage unit 29b. Store the service program. Similarly, the control program management unit 26d acquires necessary control program parameters based on the configuration information of the control program, generates an object, and stores the control unit program in the control program storage unit 29a.

上記のようにして各プログラムがそれぞれ所定の記憶部に格納されたならば、オブジェクト管理部26は、サービスオブジェクト設定管理部26c,制御プログラム管理部26bで生成されたオブジェクトを登録する。以後、コントローラ状態管理部27がPLCを停止状態に遷移させ、通信処理部40がツール10に向けてレスポンスデータ(ダウンロード完了)を返信し、これにより、一連の処理が完了する。   If each program is stored in a predetermined storage unit as described above, the object management unit 26 registers the objects generated by the service object setting management unit 26c and the control program management unit 26b. Thereafter, the controller state management unit 27 shifts the PLC to the stopped state, and the communication processing unit 40 returns response data (download completion) to the tool 10, thereby completing a series of processes.

図5は、ユーザアプリケーションからサービスオブジェクトが参照された場合の処理フローを示している。まず、ユーザが作成した制御プログラムまたはサービスプログラムから、サービスの機能を利用する際に、サービスオブジェクト設定管理部26cに該当するサービスが存在するか否かを判定する機能を実装した。この機能は、ユーザが作成したプログラムの中に、フレームワーク25のオブジェクト管理部26が持つオブジェクトの取得メソッドを記述することで実現している。そして、上記機能により、該当するサービスオブジェクトのインスタンスが得られた場合は、フレームワーク25上にサービスが存在するものとして、サービスの利用が可能な状態となる。そして、サービスオブジェクトをユーザプログラム上で利用するための処理フローが図5に示す通りである。   FIG. 5 shows a processing flow when a service object is referenced from a user application. First, a function for determining whether or not a service corresponding to the service object setting management unit 26c exists when using a service function from a control program or a service program created by a user is implemented. This function is realized by describing an object acquisition method of the object management unit 26 of the framework 25 in a program created by the user. When an instance of the corresponding service object is obtained by the above function, it is assumed that the service exists on the framework 25 and the service can be used. A processing flow for using the service object on the user program is as shown in FIG.

すなわち、例えば、開発環境(ツール10)からユーザアプリの実行コマンドが発行され、係るコマンドを通信処理部40が受信すると、その通信処理部40は、コントローラ状態管理部27に係る実行コマンドを渡すとともに、ツール10に対してレスポンスを返送する。   That is, for example, when an execution command for a user application is issued from the development environment (tool 10) and the communication processing unit 40 receives the command, the communication processing unit 40 passes the execution command related to the controller state management unit 27. , A response is returned to the tool 10.

コントローラ状態管理部27は、PLCをユーザアプリ実行状態に遷移させる。次いで、制御プログラム実行エンジン41が、実行コマンドで指定された制御プログラムを実行する。具体的には、制御プログラム実行エンジン41が、制御プログラム管理部26bに対して所望の制御プログラムの実行要求をし、それを受けた制御プログラム管理部26bが該当する制御プログラムを呼び出す。   The controller state management unit 27 transitions the PLC to the user application execution state. Next, the control program execution engine 41 executes the control program specified by the execution command. Specifically, the control program execution engine 41 requests the control program management unit 26b to execute a desired control program, and the control program management unit 26b that receives the request calls the corresponding control program.

そして、サービスオブジェクトが参照されたならば、制御プログラム管理部26bが、参照対象のサービスオブジェクトの有無をオブジェクト管理部26に問い合わせる。この問い合わせを受けたオブジェクト管理部26は、サービスオブジェクトのインスタンスを取得し、サービスオブジェクト設定部26cが、参照対象のサービスオブジェクトのインスタンスを制御プログラム設定部26bに返す。なお、この返信するサービスオブジェクトのインスタンスは、対象となるサービスオブジェクトが存在している場合には、当該サービスオブジェクトのインスタンスのポインタとなり、存在しない場合にはNULLをとする。これにより、具体的なポインタが返信されてきたか否(NULL)かにより、制御プログラム設定部26bはサービスオブジェクトが管理対象にあるか否かを判断する。   When the service object is referred to, the control program management unit 26b inquires of the object management unit 26 about the presence or absence of the reference target service object. Upon receiving this inquiry, the object management unit 26 acquires an instance of the service object, and the service object setting unit 26c returns the instance of the service object to be referenced to the control program setting unit 26b. Note that the service object instance to be returned is a pointer to the service object instance when the target service object exists, and is NULL when there is no service object. Thereby, the control program setting unit 26b determines whether or not the service object is a management target based on whether or not a specific pointer is returned (NULL).

そして、サービスオブジェクトが存在する場合には、上記ポインタに基づき、サービスオブジェクト設定管理部26cが、対応するサービスプログラムの処理を呼び出し、サービスプログラム記憶部29bに格納されたサービスプログラムを実行する。係るサービスプログラムの実行後、或いは、サービスプログラムが存在しない場合にはそのまま、制御プログラム実行エンジンに41による制御プログラムの実行に移行する。   If the service object exists, the service object setting management unit 26c calls the process of the corresponding service program based on the pointer, and executes the service program stored in the service program storage unit 29b. After execution of the service program, or when the service program does not exist, the control program execution engine shifts to execution of the control program by 41.

また、上記した実施例では、制御プログラムの起動はツール10からの実行コマンドに基づいて行われるようにしたが、本発明はこれに限ることはなく、例えば、PLC20の電源の投入に伴って起動されるなど、各種の手法がとれる。   In the above-described embodiment, the control program is started based on the execution command from the tool 10, but the present invention is not limited to this. For example, the control program is started when the power of the PLC 20 is turned on. Various methods can be taken.

図6は、本発明の第2実施例を示している。まず、この第2実施例は、ユーザアプリケーション(制御プログラム)の停止時にスレッドプログラムとしてサービスプログラムを利用(実行)する機能を実装したものである。係る機能により、ユーザプログラムにおいて、制御プログラムの制御周期に依存しないサービスプログラムを、PLCが制御プログラムを実行していない状態(停止状態)であっても、PLC20上で実行することができる。そして、本実施例で作成対象となるサービスプログラムは、ユーザが作成する制御プログラムの動作に影響しない、ファイル転送サーバ,Webサーバ,メールサーバ,通信ミドルウェアなどの常時実行が必要なプログラムがある。また、このスレッドプログラムは、システム初期状態からユーザアプリ停止時に遷移した時に実行を開始し、ユーザアプリ停止状態からシステム初期状態に遷移した時に実行を終了する。   FIG. 6 shows a second embodiment of the present invention. First, the second embodiment is provided with a function of using (executing) a service program as a thread program when a user application (control program) is stopped. With this function, in the user program, a service program that does not depend on the control cycle of the control program can be executed on the PLC 20 even when the PLC is not executing the control program (stopped state). The service programs to be created in this embodiment include programs that do not affect the operation of the control program created by the user, such as a file transfer server, a Web server, a mail server, and communication middleware, that are always required to be executed. The thread program starts execution when the user application stops from the system initial state, and ends when the user application stops from the system initial state.

そして、係る目的・作用効果を実現するための具体的な機能ブロック構成としては、図6に示すようになる。以下の説明では、各機能のうち、第1実施例と相違する点について説明する。まず、開発環境であるツール10は、サービスオブジェクト設定機能13は、ユーザが作成したサービスプログラムをコントローラのフレームワーク上でオブジェクトとして取り扱うために必要な項目を設定する機能であり、本実施例では、第1実施例にて設定する項目に加え、サービススレッド実行クラス名(実行スレッドが存在するプログラムファイル名)と、サービススレッド実行優先度がある。また、サービス取り扱いフラグとしては、PLCがシステム初期状態からユーザアプリ停止状態の遷移時点で実行し、逆の遷移時点で停止する、フレームワークが制御可能なスレッドプログラムとして取り扱うように設定される。ツール10のその他の機能は、第1実施例と基本的に同じである。   FIG. 6 shows a specific functional block configuration for realizing the purpose / operation effect. In the following description, differences from the first embodiment among the functions will be described. First, the tool 10 which is a development environment is a service object setting function 13 which is a function for setting items necessary for handling a service program created by a user as an object on the framework of the controller. In addition to the items set in the first embodiment, there are a service thread execution class name (a program file name in which an execution thread exists) and a service thread execution priority. Further, the service handling flag is set so that the PLC is handled as a thread program that can be controlled by the framework, which is executed at the transition point from the system initial state to the user application stop state and stopped at the reverse transition point. Other functions of the tool 10 are basically the same as those in the first embodiment.

PLC20は、ツールから制御プログラム,サービスプログラム,設定情報を受信し、各記憶部に格納する。そして、サービスプログラムの動作に着目すると、係るサービスプログラムはPLCが初期状態からユーザアプリ停止状態に遷移した時に、そのサービスプログラムの記述に従って実行することができるようになっている。   The PLC 20 receives the control program, service program, and setting information from the tool and stores them in each storage unit. Focusing on the operation of the service program, the service program can be executed according to the description of the service program when the PLC transitions from the initial state to the user application stop state.

そして、具体的な内部構成としては、第1実施例のものに加え、サービスプログラム実行エンジン42を設けた。このサービスプログラム実行エンジン42は、サービスプログラムがサービスオブジェクト設定管理部26cに登録されている場合、サービスプログラム記憶部29bに記憶保持されたサービスプログラムを評価実行する機能を有する。   As a specific internal configuration, a service program execution engine 42 is provided in addition to that of the first embodiment. The service program execution engine 42 has a function of evaluating and executing a service program stored and held in the service program storage unit 29b when the service program is registered in the service object setting management unit 26c.

そして、係るサービスプログラムの実行であるが、スレッド実行を含むサービスプログラムが定義された場合、サービスオブジェクト設定部26cにおいて設定されたコンフィグレーション情報(登録情報)に応じて、スレッドプログラムを実行することが可能となり、その実行開始のタイミングはPLCがシステム初期状態からユーザアプリ停止状態に遷移した時となる。そして、係るスレッド実行における具体的な処理フローは、図7に示すようになる。   When the service program including thread execution is defined, the thread program may be executed according to the configuration information (registration information) set in the service object setting unit 26c. The execution start timing is when the PLC transitions from the system initial state to the user application stop state. A specific processing flow in such thread execution is as shown in FIG.

すなわち、まず開発環境たるツール10から、ユーザアプリ(制御プログラム)の停止コマンド(制御プログラムの停止状態にする旨の通知コマンド)を通信処理部40が受信したならば、コントローラ状態管理部27が現在のPLCの状態を取得し、現在の状態がシステム初期状態か否かを判断する。そして、システム初期状態でない場合、つまり、制御プログラム停止状態(ユーザアプリ停止状態)か、或いは制御プログラム実行状態(ユーザアプリ実行状態)であるため、受信したコマンドにしたがい、コントローラ状態管理部27は、PLCの状態を制御プログラム停止状態(ユーザアプリ停止状態)に遷移させる。そして係る遷移完了後には、通信処理部40がツール10に対してレスポンスデータ(停止状態に遷移したこと)を返信する。なお、停止状態,実行状態のいずれの状態においても、それより以前の段階で、初期状態から停止状態に遷移しているため、係る遷移の際に以下に説明する手順に従い、サービスプログラム実行エンジン42によるサービスプログラムが実行されているため、その状態が継続する。   That is, when the communication processing unit 40 receives a user application (control program) stop command (a notification command for setting the control program to be stopped) from the tool 10 as the development environment, the controller state management unit 27 PLC status is acquired, and it is determined whether or not the current status is the system initial status. And when it is not the system initial state, that is, because it is the control program stop state (user application stop state) or the control program execution state (user application execution state), according to the received command, the controller state management unit 27 The PLC state is changed to the control program stop state (user application stop state). Then, after the transition is completed, the communication processing unit 40 returns response data (transition to the stop state) to the tool 10. In both the stopped state and the execution state, since the transition from the initial state to the stopped state is performed at an earlier stage, the service program execution engine 42 follows the procedure described below at the time of such transition. Since the service program is executed, the state continues.

また、上記した停止コマンドの受信に伴いコントローラ状態管理部27が確認した現在の状態がシステム初期状態の場合には、サービスプログラム実行エンジン42がサービスプログラムの実行命令を出力する。これに伴い、まず、オブジェクト管理部26が、サービスオブジェクトの登録情報(コンフィグレーション情報)を検索する。ついで、サービスオブジェクト設定管理部26cが、登録件数に達したか否か、つまり、オブジェクト管理部26が検索して抽出した全てのサービスオブジェクトに対する処理が完了したか否かを判断し、未処理のものがある場合には、サービスオブジェクト設定管理部26cが、サービスオブジェクトの設定情報を取得し、本実施例のスレッド実行の定義がされているか否かを判断し、されていない場合には次の登録情報を検索する。また、スレッド実行の定義がされている場合には、実行対象のサービスプログラムを呼び出し、サービスプログラム記憶部29bに格納されたサービスプログラムを実行する。その後、次の登録情報を検索する。   When the current state confirmed by the controller state management unit 27 upon reception of the stop command is the system initial state, the service program execution engine 42 outputs a service program execution command. Accordingly, first, the object management unit 26 searches for registration information (configuration information) of the service object. Next, the service object setting management unit 26c determines whether or not the number of registrations has been reached, that is, whether or not the processing for all service objects searched and extracted by the object management unit 26 has been completed. If there is something, the service object setting management unit 26c acquires the setting information of the service object and determines whether or not the thread execution of this embodiment is defined. Search for registration information. If thread execution is defined, the service program to be executed is called, and the service program stored in the service program storage unit 29b is executed. Then, the next registration information is searched.

このようにして、スレッド実行の定義がされたサービスプログラムが全て実行されると、登録件数に達するので、コントローラ状態管理部27がユーザアプリ停止状態に遷移させ、ツール10に対して、レスポンスデータを返信する。   In this way, when all the service programs for which thread execution is defined are executed, the number of registrations is reached. Therefore, the controller state management unit 27 shifts to the user application stop state, and sends response data to the tool 10. Send back.

一方、上記のようにして起動・実行されたサービスプログラムを停止する場合には、以下のようになる。すなわち、スレッド実行を含むサービスプログラムが定義された場合、サービスオブジェクト設定において設定されたコンフィグレーション情報(登録情報)に応じて、スレッドプログラムを停止することが可能となる。実行停止のタイミングはPLC20がユーザアプリ停止状態からシステム初期状態へ遷移した時となる。そして、係るスレッド停止における具体的な処理フローは、図8のようになる。   On the other hand, when the service program activated / executed as described above is stopped, it is as follows. That is, when a service program including thread execution is defined, the thread program can be stopped according to the configuration information (registration information) set in the service object setting. The execution stop timing is when the PLC 20 transitions from the user application stop state to the system initial state. A specific processing flow in the thread stop is as shown in FIG.

すなわち、開発環境であるツール10から、コントローラ(PLC)に対してリセット命令が発行され、通信処理部40が係るリセット命令であるシステム初期化コマンドを受信したならば、コントローラ状態管理部27が現在のPLCの状態を取得し、現在の状態がユーザアプリ停止状態(制御プログラム停止状態)か否かを判断する。そして、ユーザアプリ停止状態の場合には、サービスプログラム実行エンジン42がサービスプログラムの停止命令を出力する。これに伴い、まず、オブジェクト管理部26が、サービスオブジェクトの登録情報(コンフィグレーション情報)を検索する。ついで、サービスオブジェクト設定管理部26cが、登録件数に達したか否か、つまり、オブジェクト管理部26が検索して抽出した全てのサービスオブジェクトに対する処理が完了したか否かを判断し、未処理のものがある場合には、サービスオブジェクト設定管理部26cが、サービスオブジェクトの設定情報を取得し、本実施例のスレッド実行の定義がされているか否かを判断し、されていない場合には次の登録情報を検索する。また、スレッド実行の定義がされている場合には、実行対象のサービスプログラムを呼び出し、サービスプログラム記憶部29bに格納されたサービスプログラムを停止する。その後、次の登録情報を検索する。   That is, if a reset command is issued to the controller (PLC) from the tool 10 which is the development environment and the communication processing unit 40 receives a system initialization command which is the reset command, the controller state management unit 27 The state of the PLC is acquired, and it is determined whether or not the current state is the user application stop state (control program stop state). When the user application is in a stopped state, the service program execution engine 42 outputs a service program stop command. Accordingly, first, the object management unit 26 searches for registration information (configuration information) of the service object. Next, the service object setting management unit 26c determines whether or not the number of registrations has been reached, that is, whether or not the processing for all service objects searched and extracted by the object management unit 26 has been completed. If there is something, the service object setting management unit 26c acquires the setting information of the service object and determines whether or not the thread execution of this embodiment is defined. Search for registration information. If thread execution is defined, the service program to be executed is called and the service program stored in the service program storage unit 29b is stopped. Then, the next registration information is searched.

このようにして、スレッド実行の定義がされたサービスプログラムが全て停止されると、登録件数に達するので、コントローラ状態管理部27がシステム初期状態に遷移させ、ツール10に対して、レスポンスデータを返信する。   In this way, when all the service programs for which thread execution is defined are stopped, the number of registered cases is reached, so the controller state management unit 27 makes a transition to the system initial state and returns response data to the tool 10. To do.

なお、本実施例では、ユーザアプリ停止状態からシステム初期状態に遷移する際にスレッド実行のサービスプログラムを停止するようにしたため、システム初期化コマンドを受信した際の状態がユーザアプリ停止状態でない場合には、サービスプログラムの停止処理は行わない。つまり、図8の処理フローには記載していないが、制御プログラム実行状態(ユーザアプリ実行状態)の場合には、一旦停止状態に移行させ、また、すでにシステム初期状態の場合には、その旨レスポンスデータを返信する。   In this embodiment, since the thread execution service program is stopped when transitioning from the user application stopped state to the system initial state, the state when the system initialization command is received is not the user application stopped state. Does not stop the service program. That is, although not described in the processing flow of FIG. 8, in the case of the control program execution state (user application execution state), the state is temporarily shifted to the stop state. Response data is returned.

なお、本実施例において、制御プログラムあるいは他のサービスプログラムから該当するサービスプログラムの関数呼び出しがある場合は、第1実施例の方式に従って、ライブラリの関数単位でプログラムを実行する(図5に示す処理フローを実行する)ことも可能である(図6中の点線表記の処理の流れ参照)。   In this embodiment, when there is a function call of the corresponding service program from the control program or another service program, the program is executed in units of functions of the library according to the method of the first embodiment (the process shown in FIG. 5). It is also possible to execute a flow (see the flow of processing indicated by dotted lines in FIG. 6).

図9,図10は、本発明の第3実施例の要部を示している。すなわち、本実施例では、スレッドプログラムとしてのサービスプログラムの実行/停止タイミングが第2実施例と相違する。すなわち、ユーザアプリケーション(制御プログラム)実行時にスレッドプログラムとしてサービスプログラムを使用するようにしている。つまり、第2実施例では、制御プログラムの停止状態並びに実行状態のいずれの状態でもサービスプログラムが実行されるようにしたが、本実施例では、制御プログラムの稼働中のみサービスプログラムも実行するようにした。つまり、ユーザアプリ(制御プログラム)の停止状態から実行状態に遷移する際にサービスプログラムは実行開始し、実効状態から停止状態に遷移する際にサービスプログラムが停止するようにする。そして、本実施例で作成対象となるサービスプログラムは、上位アプリケーションとの通信サーバ機能などのユーザアプリ実行時に常時実行となるスレッドプログラムがある。   9 and 10 show the main part of a third embodiment of the present invention. That is, in this embodiment, the execution / stop timing of the service program as a thread program is different from that in the second embodiment. That is, a service program is used as a thread program when a user application (control program) is executed. That is, in the second embodiment, the service program is executed in both the stopped state and the execution state of the control program. However, in this embodiment, the service program is also executed only while the control program is in operation. did. That is, the service program starts executing when the user application (control program) transitions from the stop state to the execution state, and stops when the user application (control program) transitions from the effective state to the stop state. The service program to be created in this embodiment includes a thread program that is always executed when a user application such as a communication server function with a higher-level application is executed.

本実施例を利用することにより、ユーザ作成プログラムにおいて、制御プログラムの制御周期に依存しない、常時実行するサービスプログラムを、PLCが制御プログラムを実行している状態の時に、PLC上で実行することが可能となる。   By using this embodiment, a user-created program can execute a service program that does not depend on the control cycle of the control program on the PLC while the PLC is executing the control program. It becomes possible.

そして、係る目的・効果を達成するための本実施例における機能ブロック図は図6に示した第2実施例と同一であるが、所定の処理部の機能を異ならせた。そこで、第2実施例との相違点を中心に説明する。   The functional block diagram in the present embodiment for achieving the object and effect is the same as that of the second embodiment shown in FIG. 6, but the functions of predetermined processing units are different. Therefore, the difference from the second embodiment will be mainly described.

まず、サービスオブジェクト設定機能部13において設定する項目は第2実施例と同様であるが、定義したサービスプログラムをフレームワーク上でどのように取り扱うかを決めるフラグであるサービス取り扱いフラグが、PLCがユーザアプリ停止状態からユーザアプリ実行状態の遷移時点で実行し、逆の遷移時点で停止する、フレームワークが制御可能なスレッドプログラムとして取り扱うようにする。   First, items to be set in the service object setting function unit 13 are the same as those in the second embodiment, but the service handling flag, which is a flag for determining how to handle the defined service program on the framework, is displayed by the PLC. It is handled as a thread program that can be controlled by the framework, executed at the transition point from the application stop state to the user application execution state, and stopped at the reverse transition point.

また、PLCは、ツールから制御プログラム,サービスプログラム並びに設定情報を受信し、各記憶部に格納する点では同じであり、サービスプログラムはPLCがユーザアプリ実行状態(制御プログラム実行状態)に遷移した時に、そのサービスプログラムの記述に従って実行する。そして、スレッド実行における処理フローとしては、図9に示すとおりとなる。   The PLC is the same in that it receives the control program, service program, and setting information from the tool and stores them in each storage unit. The service program is changed when the PLC transitions to the user application execution state (control program execution state). And execute according to the description of the service program. The processing flow in thread execution is as shown in FIG.

すなわち、まず開発環境たるツール10から、ユーザアプリ(制御プログラム)の実行コマンド(制御プログラムを実行状態にする旨の通知コマンド)を通信処理部40が受信したならば、コントローラ状態管理部27が現在のPLCの状態を取得し、現在の状態がユーザアプリ停止状態(制御プログラム停止状態)か否かを判断する。そして、上記した停止コマンドの受信に伴いコントローラ状態管理部27が確認した現在の状態がユーザアプリ停止状態の場合には、サービスプログラム実行エンジン42がサービスプログラムの実行命令を出力する。これに伴い、まず、オブジェクト管理部26が、サービスオブジェクトの登録情報(コンフィグレーション情報)を検索する。ついで、サービスオブジェクト設定管理部26cが、登録件数に達したか否か、つまり、オブジェクト管理部26が検索して抽出した全てのサービスオブジェクトに対する処理が完了したか否かを判断し、未処理のものがある場合には、サービスオブジェクト設定管理部26cが、サービスオブジェクトの設定情報を取得し、本実施例のスレッド実行の定義がされているか否かを判断し、されていない場合には次の登録情報を検索する。また、スレッド実行の定義がされている場合には、実行対象のサービスプログラムを呼び出し、サービスプログラム記憶部29bに格納されたサービスプログラムを実行する。その後、次の登録情報を検索する。   That is, when the communication processing unit 40 receives a user application (control program) execution command (a notification command for putting a control program in an execution state) from the tool 10 as a development environment, the controller state management unit 27 The state of the PLC is acquired, and it is determined whether or not the current state is the user application stop state (control program stop state). When the current state confirmed by the controller state management unit 27 upon reception of the stop command is the user application stop state, the service program execution engine 42 outputs a service program execution command. Accordingly, first, the object management unit 26 searches for registration information (configuration information) of the service object. Next, the service object setting management unit 26c determines whether or not the number of registrations has been reached, that is, whether or not the processing for all service objects searched and extracted by the object management unit 26 has been completed. If there is something, the service object setting management unit 26c acquires the setting information of the service object and determines whether or not the thread execution of this embodiment is defined. Search for registration information. If thread execution is defined, the service program to be executed is called, and the service program stored in the service program storage unit 29b is executed. Then, the next registration information is searched.

このようにして、スレッド実行の定義がされたサービスプログラムが全て実行されると、登録件数に達するので、コントローラ状態管理部27がユーザアプリ実行状態に遷移させ、ツール10に対して、レスポンスデータを返信する。   In this way, when all the service programs for which thread execution is defined are executed, the number of registrations is reached. Therefore, the controller state management unit 27 transitions to the user application execution state and sends response data to the tool 10. Send back.

なお、本実施例では、ユーザアプリ停止状態から実行状態に遷移する際にスレッド実行のサービスプログラムを実行するようにしたため、実行コマンドを受信した際の状態がユーザアプリ停止状態でない場合、つまり、すでに実行状態の場合にはそのまま処理を継続し、システム初期状態の場合には一旦ユーザプログラム停止状態に遷移させた後、上記の処理を実行する。そして、図10の処理フローには記載していないが、その旨のレスポンスデータをツール10に返信する。   In this embodiment, since the thread execution service program is executed when transitioning from the user application stop state to the execution state, the state when the execution command is received is not the user application stop state, that is, already If it is in the execution state, the processing is continued as it is. If it is in the system initial state, the state is temporarily changed to the user program stop state, and then the above processing is executed. Although not described in the processing flow of FIG. 10, response data to that effect is returned to the tool 10.

なお、本実施例では、ユーザアプリ実行状態から停止状態に遷移する際にスレッド実行のサービスプログラムを停止するようにしたため、停止コマンドを受信した際の状態がユーザアプリ実行状態でない場合には、それ以前の段階でサービスプログラムが停止されているため、今回受信した停止コマンドに基づいて停止処理は行わない。つまり、図10の処理フローには記載していないが、その旨レスポンスデータを返信する。   In this embodiment, since the thread execution service program is stopped when the user application execution state transitions from the user application execution state to the stop state, if the state when the stop command is received is not the user application execution state, Since the service program has been stopped at the previous stage, the stop process is not performed based on the stop command received this time. That is, although not described in the processing flow of FIG. 10, response data to that effect is returned.

一方、上記のようにして起動・実行されたサービスプログラムを停止する場合には、以下のようになる。すなわち、スレッド実行を含むサービスプログラムが定義された場合、サービスオブジェクト設定において設定されたコンフィグレーション情報(登録情報)に応じて、スレッドプログラムを停止することが可能となる。実行停止のタイミングはPLC20がユーザアプリ実行状態から停止状態へ遷移した時となる。そして、係るスレッド停止における具体的な処理フローは、図10のようになる。   On the other hand, when the service program activated / executed as described above is stopped, it is as follows. That is, when a service program including thread execution is defined, the thread program can be stopped according to the configuration information (registration information) set in the service object setting. The execution stop timing is when the PLC 20 transitions from the user application execution state to the stop state. A specific processing flow in the thread stop is as shown in FIG.

すなわち、開発環境であるツール10から、コントローラ(PLC)に対してユーザアプリの停止命令が発行され、通信処理部40が係る停止命令である停止コマンドを受信したならば、コントローラ状態管理部27が現在のPLCの状態を取得し、現在の状態がユーザアプリ実行状態(制御プログラム実行状態)か否かを判断する。そして、ユーザアプリ実行状態の場合には、サービスプログラム実行エンジン42がサービスプログラムの停止命令を出力する。これに伴い、まず、オブジェクト管理部26が、サービスオブジェクトの登録情報(コンフィグレーション情報)を検索する。ついで、サービスオブジェクト設定管理部26cが、登録件数に達したか否か、つまり、オブジェクト管理部26が検索して抽出した全てのサービスオブジェクトに対する処理が完了したか否かを判断し、未処理のものがある場合には、サービスオブジェクト設定管理部26cが、サービスオブジェクトの設定情報を取得し、本実施例のスレッド実行の定義がされているか否かを判断し、されていない場合には次の登録情報を検索する。また、スレッド実行の定義がされている場合には、実行対象のサービスプログラムを呼び出し、サービスプログラム記憶部29bに格納されたサービスプログラムを停止する。その後、次の登録情報を検索する。   That is, if the tool 10 that is the development environment issues a stop command for the user application to the controller (PLC) and the communication processing unit 40 receives the stop command that is the stop command, the controller state management unit 27 The current PLC state is acquired, and it is determined whether or not the current state is a user application execution state (control program execution state). In the user application execution state, the service program execution engine 42 outputs a service program stop command. Accordingly, first, the object management unit 26 searches for registration information (configuration information) of the service object. Next, the service object setting management unit 26c determines whether or not the number of registrations has been reached, that is, whether or not the processing for all service objects searched and extracted by the object management unit 26 has been completed. If there is something, the service object setting management unit 26c acquires the setting information of the service object and determines whether or not the thread execution of this embodiment is defined. Search for registration information. If thread execution is defined, the service program to be executed is called and the service program stored in the service program storage unit 29b is stopped. Then, the next registration information is searched.

このようにして、スレッド実行の定義がされたサービスプログラムが全て停止されると、登録件数に達するので、コントローラ状態管理部27がユーザアプリ停止状態に遷移させ、ツール10に対して、レスポンスデータを返信する。   In this way, when all the service programs in which thread execution is defined are stopped, the number of registered cases is reached, so the controller state management unit 27 makes a transition to the user application stop state and sends response data to the tool 10. Send back.

なお、本実施例では、ユーザアプリ実行状態から停止態に遷移する際にスレッド実行のサービスプログラムを停止するようにしたため、停止コマンドを受信した際の状態がユーザアプリ実行状態でない場合には、それ以前の段階でサービスプログラムが停止されているため、今回受信した停止コマンドに基づいて停止処理は行わない。つまり、図10の処理フローには記載していないが、その旨レスポンスデータを返信する。   In this embodiment, since the thread execution service program is stopped when the user application execution state transitions to the stop state, if the state when the stop command is received is not the user application execution state, Since the service program has been stopped at the previous stage, the stop process is not performed based on the stop command received this time. That is, although not described in the processing flow of FIG. 10, response data to that effect is returned.

なお、本実施例において、制御プログラムあるいは他のサービスプログラムから該当するサービスプログラムの関数呼び出しがある場合は、第1実施例の方式に従って、ライブラリの関数単位でプログラムを実行する(図5に示す処理フローを実行する)ことも可能である(図6中の点線表記の処理の流れ参照)。   In this embodiment, when there is a function call of the corresponding service program from the control program or another service program, the program is executed in units of functions of the library according to the method of the first embodiment (the process shown in FIG. 5). It is also possible to execute a flow (see the flow of processing indicated by dotted lines in FIG. 6).

図11は、本発明の第4実施例を示している。本実施例では、サービスプログラムの追加・削除・入替機能を組み込んでいる。すなわち、本発明では、制御プログラムとサービスプログラムを分離して作成し、記憶保持し、それぞれが独立して実行可能とした。そのため、PLCの稼動状態に依存せずに対象となるユーザ作成プログラムの追加・削除・入替が可能であるため、プログラム入替のためにPLCを停止する(制御プログラムを停止する)必要がない。このことにより、PLC20の稼動率が向上する。さらに、制御プログラムに依存しないサービスプログラムの追加・削除・入替も可能であるため、サービス機能のバージョンアップや、使用環境に応じて必要な機能だけを搭載したPLCの実装が容易になる。   FIG. 11 shows a fourth embodiment of the present invention. In this embodiment, a service program addition / deletion / replacement function is incorporated. That is, in the present invention, the control program and the service program are created separately, stored and held, and each can be executed independently. Therefore, the target user-created program can be added / deleted / replaced without depending on the operating state of the PLC, so there is no need to stop the PLC (stop the control program) for program replacement. As a result, the operating rate of the PLC 20 is improved. Furthermore, since it is possible to add, delete, and replace service programs that do not depend on the control program, it is easy to upgrade the service functions and to implement a PLC equipped with only necessary functions according to the usage environment.

そして、上記した目的・効果を実現するための構成としては、図11に示すような内部構成をとることができる。もちろん、この図は、本実施例の特徴部分を示しており、第1から第3実施例に示すような制御プログラムを実行するための機能ももちろん備えている。以下、ブロック図内で示される各機能のうち、第1から第3実施例と差異がある項目について説明する。   And as a structure for implement | achieving the above-mentioned objective and effect, an internal structure as shown in FIG. 11 can be taken. Of course, this figure shows the characteristic part of the present embodiment, and of course has a function for executing the control program as shown in the first to third embodiments. Hereinafter, among the functions shown in the block diagram, items that are different from the first to third embodiments will be described.

PLC20は、ツールからサービスオブジェクトの追加,削除,入替のコマンドを受信し、そのタイミングに応じて、設定情報を受信する。そして、追加コマンドの場合は、サービスプログラムも合わせて受信し、記憶部に格納する。また、削除コマンドの場合は、サービスプログラム記憶部にある対象のプログラムを削除する。さらに、入替コマンドの場合は、サービスプログラムも合わせて受信し、入替後のプログラムを記憶部に格納し、入替前のプログラムを削除する。そして、サービスオブジェクト設定管理部が、各処理に応じて、オブジェクトの登録状態を変更後の状態に則して管理情報を更新する。なお、第2,第3実施例のように、サービスオブジェクトにスレッド実行指定がある場合は、現在のコントローラの動作状態に合わせて実行または停止状態に遷移する。   The PLC 20 receives service object addition, deletion, and replacement commands from the tool, and receives setting information according to the timing. In the case of an additional command, the service program is also received and stored in the storage unit. In the case of a delete command, the target program in the service program storage unit is deleted. Furthermore, in the case of a replacement command, the service program is also received, the replacement program is stored in the storage unit, and the program before replacement is deleted. And a service object setting management part updates management information according to the state after changing the registration state of an object according to each process. Note that, as in the second and third embodiments, when a thread execution is designated in the service object, the service object transitions to the execution or stop state according to the current operation state of the controller.

通信機能部40は、各実施例と同様に開発環境であるツール10からコマンドを受信し、各機能ブロックの処理への依頼や、記憶部へのデータ格納を行うものである。そして、本実施例で受信するコマンドとしては、以下の3つのコマンドがある。
(1)サービスオブジェクト追加コマンド
ユーザが作成したサービスプログラムをコントローラに追加登録するコマンドである。このコマンドを受信した場合には、対象となるサービスオブジェクトがスレッドプログラムとして実行するよう設定されている場合は、コントローラの動作状態に合わせて実行する。
The communication function unit 40 receives a command from the tool 10 which is a development environment, as in each embodiment, and requests processing of each function block and stores data in the storage unit. The commands received in this embodiment include the following three commands.
(1) Service object addition command This is a command for additionally registering a service program created by the user in the controller. When this command is received, if the target service object is set to be executed as a thread program, it is executed in accordance with the operation state of the controller.

(2)サービスオブジェクト削除コマンド
ユーザが作成したサービスプログラムをコントローラの登録対象から削除するコマンドである。このコマンドを受信した場合には、対象となるサービスオブジェクトがスレッドプログラムとして実行するよう設定されている場合は、スレッドプログラムを停止してから削除する。
(2) Service object deletion command This command deletes a service program created by the user from the registration target of the controller. When this command is received, if the target service object is set to be executed as a thread program, the thread program is stopped and then deleted.

(3)サービスオブジェクト入替コマンド
ユーザが作成したサービスプログラムを、既にコントローラ上に登録されているものと入れ替えるコマンドである。このコマンドを受信した場合には、対象となるサービスオブジェクトがスレッドプログラムとして実行するよう設定されている場合は、既に登録されているオブジェクトのスレッドを停止してから新たに入れ替えたスレッドを、コントローラの動作状態に合わせて実行する。
(3) Service object replacement command This command replaces a service program created by the user with one already registered on the controller. When this command is received, if the target service object is set to be executed as a thread program, the thread of the object already registered is stopped and the newly replaced thread is replaced by the controller. Execute according to the operating status.

さらに本実施例では、上記した各実施例と相違して、オンラインエディット処理部45を設けた。このオンラインエディット処理部45は、PLC20上に配置される各オブジェクトに対して、オブジェクトごとの追加・削除・入替処理を行うものである。入替え時の古いオブジェクトのパラメータ継承や、親子関係を持つオブジェクトの関連づけの変更処理などをこの機能の中で実行する。そして、具体的には、図12以降に示す処理フローを実施するようになっている。すなわち、サービスプログラムの追加処理は、図12に示すシーケンス図の通り実行し、サービスプログラムの削除処理は、図13に示すシーケンス図の通り実行し、サービスプログラムの置換処理は、図14,図15に示すシーケンス図の通り実行する。   Furthermore, in the present embodiment, unlike the above-described embodiments, an online edit processing unit 45 is provided. The online edit processing unit 45 performs addition / deletion / replacement processing for each object on each object arranged on the PLC 20. This function executes parameter inheritance of old objects at the time of replacement and change of association of objects having a parent-child relationship. Specifically, the processing flow shown in FIG. 12 and subsequent figures is performed. That is, the service program addition process is executed as shown in the sequence diagram of FIG. 12, the service program deletion process is executed as shown in the sequence diagram of FIG. 13, and the service program replacement process is shown in FIGS. This is executed as shown in the sequence diagram shown in FIG.

まず、図12に示すように、開発環境たるツール10から、追加するサービスオブジェクトがダウンロードされてくると、通信処理部40が設定ファイルと追加するプログラムファイルを受信するため、その受信したデータをオブジェクト管理部26に渡す。   First, as shown in FIG. 12, when a service object to be added is downloaded from the tool 10 as a development environment, the communication processing unit 40 receives a setting file and a program file to be added. It is passed to the management unit 26.

これに伴い、オブジェクト管理部26では、オブジェクトを初期化する。係る初期化時は、サービスオブジェクト設定管理部26dは、サービスオブジェクトのコンフィグレーション情報をもとに、必要なサービスオブジェクトのパラメータを取得するとともに、サービスオブジェクトを生成し、サービスプログラム記憶部29bにサービスプログラムを記憶する。   Along with this, the object management unit 26 initializes the object. At the time of initialization, the service object setting management unit 26d acquires necessary service object parameters based on the configuration information of the service object, generates a service object, and stores the service program in the service program storage unit 29b. Remember.

次いで、オブジェクト管理部26では、新規に追加するサービスオブジェクトについての追加登録し、オンラインエディット処理部45では、オブジェクトに必要な追加処理を実行する。すなわち、すでに存在している他のサービスオブジェクト等と入子や親子関係になる場合には、係る関係情報を設定し、関連づけを行なう等の処理を行なう。   Next, the object management unit 26 additionally registers a service object to be newly added, and the online edit processing unit 45 executes additional processing necessary for the object. In other words, when a nested or parent-child relationship is established with another service object that already exists, the related information is set and associated.

そして、サービスオブジェクト設定管理部は、サービスプログラムにスレッド実行の定義があるか否かを判断し、無い場合には、そのまま通信処理部40がレスポンスデータを返信して追加処理を終了する。   Then, the service object setting management unit determines whether or not the service program has a thread execution definition. If there is no service execution setting management unit, the communication processing unit 40 returns the response data as it is and ends the addition process.

また、スレッド実行の定義がある場合には、現在のコントローラ(PLC)の状態(システム初期か状態/制御プログラム停止状態/制御プログラム実行状態)を確認し、現在の状態がスレッド実行の設定値と一致する場合には、実行対象のサービスプログラムを呼び出して、当該サービスプログラムを実行する。このスレッド実行については、第2,第3実施例と同様である。   Also, if there is a definition of thread execution, the current controller (PLC) state (system initial state / control program stop state / control program execution state) is confirmed, and the current state is set to the thread execution setting value. If they match, the service program to be executed is called and the service program is executed. This thread execution is the same as in the second and third embodiments.

また、図13に示すように、サービスオブジェクトの削除は、開発環境たるツール10から、サービスオブジェクトの削除コマンド(削除対象のサービスオブジェクトを指定)が送られてくるので、通信処理部40が係る削除コマンドを受信すると、その受信した削除コマンドをオブジェクト管理部26に渡す。   Further, as shown in FIG. 13, since the service object deletion command (designating the service object to be deleted) is sent from the tool 10 as the development environment, the deletion of the service object is performed by the communication processing unit 40. When the command is received, the received delete command is passed to the object management unit 26.

これに伴い、オブジェクト管理部26では、削除対象のオブジェクトを検索し、検索したオブジェクトをオンラインエディット処理部45に通知する。オンラインエディット処理部45では、オブジェクトに必要な削除処理を実行する。すなわち、親子関係等の関連する他のサービスオブジェクトが存在するか否かを判断し、関係する他のオブジェクトが存在する場合には、その関係を解消する処理を行なう等の処理を行なう。   Along with this, the object management unit 26 searches for an object to be deleted and notifies the online edit processing unit 45 of the searched object. The online edit processing unit 45 executes a deletion process necessary for the object. That is, it is determined whether or not there is another related service object such as a parent-child relationship. If there is another related object, processing such as canceling the relationship is performed.

そして、サービスオブジェクト設定管理部は、サービスプログラムにスレッド実行の定義があるか否かを判断し、スレッド実行の定義がある場合には、実行対象のサービスプログラムを呼び出し、サービスプログラム設定部26cが当該サービスプログラムを停止する。   Then, the service object setting management unit determines whether or not the service program has a thread execution definition. If there is a thread execution definition, the service object setting management unit calls the service program to be executed, and the service program setting unit 26c Stop the service program.

そして、オブジェクト管理部26では削除対象となっているオブジェクトを登録対象から削除し、次いで、サービスプログラム記憶部29bに格納された該当するサービスプログラムを消去するとともに、サービスオブジェクト設定管理部26cにて削除したサービスプログラムについてのオブジェクトを削除する。次いで、レスポンスデータを返信し、一連削除処理を終了する。   Then, the object management unit 26 deletes the object to be deleted from the registration target, and then deletes the corresponding service program stored in the service program storage unit 29b and deletes it in the service object setting management unit 26c. Delete the object for the service program that was created. Next, response data is returned, and the series of deletion processes ends.

図14,図15に示すように、サービスプログラムの入れ替え処理は、まず、開発環境たるツール10からの命令に基づき、上記した追加と同様の手順により、入替後の新たなサービスオブジェクトを生成するとともに、ダウンロードされてきた新たなサービスプログラムをサービスプログラム記憶部29bに記憶し、オブジェクト管理部26では入替後のオブジェクトを追加登録する。   As shown in FIGS. 14 and 15, the service program replacement process first generates a new service object after replacement in accordance with the same procedure as the above addition based on the command from the tool 10 as the development environment. The downloaded new service program is stored in the service program storage unit 29b, and the object management unit 26 additionally registers the replaced object.

その後、オンラインエディット処理部45は、入替前のオブジェクトのパラメータを転送する。これにより、入替後のサービスプログラムは、転送された現在のパラメータに従って実行可能となる。   Thereafter, the online edit processing unit 45 transfers the parameters of the object before replacement. Thereby, the service program after replacement can be executed according to the transferred current parameter.

次いで、入替前のオブジェクトの削除工程を実行する。すなわち、上記した削除と同様に、入替前のオブジェクトについてスレッド実行の定義の有無を判断し、存在している場合には、該当する入替前のオブジェクトのサービスプログラムを停止する。そして、オブジェクト管理部26は入替前のオブジェクトを登録対象から削除し、サービスプログラム記憶部29bに格納された入替前のサービスプログラムを詳記し、サービスオブジェクト設定管理26cが入替前のオブジェクトを削除する。   Next, an object deletion process before replacement is executed. That is, similar to the above-described deletion, the presence / absence of thread execution definition is determined for the object before replacement, and if it exists, the service program of the corresponding object before replacement is stopped. Then, the object management unit 26 deletes the object before replacement from the registration target, details the service program before replacement stored in the service program storage unit 29b, and the service object setting management 26c deletes the object before replacement.

その後、入替後のサービスプログラムの実行、つまり、入替後のオブジェクトにスレッド実行の定義があるか否かを判断し、存在する場合には、コントローラ(PLC)の状態を取得し、取得した現在の状態がスレッド実行の設定値に一致している場合には、その一致する入替後のサービスプログラムを呼び出し、入替後のサービスプログラムを実行する。   Thereafter, the execution of the service program after replacement, that is, whether or not there is a thread execution definition in the replaced object is obtained, and if it exists, the state of the controller (PLC) is acquired and the acquired current If the state matches the set value for thread execution, the service program after replacement that matches is called and the service program after replacement is executed.

上記のようにサービスプログラムの実行後、或いは、スレッド実行の定義が無いか、仮にあったとしても現在の状態と設定値が一致しない場合には、プログラム実行をすることなく、処理完了のレスポンスデータをツール10に向けて返信し、一連の入替処理を完了する。   After executing the service program as described above, or if there is no thread execution definition or if the current state does not match the set value even if there is, the response data indicating the completion of processing without executing the program Is sent back to the tool 10 to complete a series of replacement processes.

以上を要するに、各実施例では、イベント(制御周期や割込み要因)駆動で動作する制御プログラムとは別に、呼び出し可能なライブラリや常時実行可能なプログラムとしてのサービスプログラムを定義するとともに、コントローラ上に配置されるプログラムの機能単位をオブジェクトとして保有し管理するオブジェクト管理機能を設けた。これらは、Java(登録商標)を用いて実現できる。   In short, in each embodiment, apart from a control program that operates by event (control cycle or interrupt factor) drive, a library that can be called and a service program that can be executed at all times are defined and placed on the controller. An object management function is provided for managing and managing the functional units of programs to be executed as objects. These can be realized using Java (registered trademark).

これにより、制御アプリケーションからのサービスプログラム呼び出しを簡単に実行することができるようになった。さらに、入出力機器の制御を行う制御プログラムから、直接制御に関連しない汎用プログラムとして分離することにより、ユーザが作成するプログラムの再利用性が向上する。同じプログラム開発環境を利用する汎用プログラムに対して、汎用プログラムのソースコードの変更なく、コントローラで実行するための設定追加と、制御プログラムからの呼び出し機能追加を行うことで、利用することが可能となる。   As a result, the service program call from the control application can be easily executed. Furthermore, reusability of the program created by the user is improved by separating it from the control program for controlling the input / output device as a general-purpose program not directly related to control. For general-purpose programs that use the same program development environment, it is possible to use them by adding settings to execute on the controller and changing the calling function from the control program without changing the source code of the general-purpose program. Become.

そして、第2,第3実施例では、PLCの動作状態を取得し、常時実行可能なサービスプログラムの起動・停止を制御するサービスプログラム実行エンジンを設けた。これにより、上記した作用効果に加え、コントローラの実行・停止に合わせて、サービスプログラムを実行・停止することができ、また、コントローラが停止状態にあっても、サービスプログラムを常駐実行することができるようになった。   In the second and third embodiments, a service program execution engine that acquires the operation state of the PLC and controls the start / stop of a service program that can be executed at all times is provided. As a result, in addition to the above-described effects, the service program can be executed and stopped in accordance with the execution and stop of the controller, and the service program can be executed resident even when the controller is in the stop state. It became so.

さらに、第4実施例では、オブジェクトごとにプログラムの追加・削除・入替処理を実行するオンラインエディット機能を設けた。これにより、コントローラの実行・停止状態に依存せず、サービスプログラムを追加、削除、変更することができるようになった。これにより、プログラム入替のためにコントローラを停止する必要がなくなり、コントローラの稼動率が向上する。そして、制御プログラムに依存しないサービスプログラムの追加・削除・入替も可能であるため、サービス機能のバージョンアップや、使用環境に応じて必要な機能だけを搭載したコントローラの実装が容易になる。   Further, in the fourth embodiment, an online edit function for executing a program addition / deletion / replacement process for each object is provided. As a result, service programs can be added, deleted, and changed without depending on the execution / stop state of the controller. This eliminates the need to stop the controller for program replacement and improves the operating rate of the controller. Since service programs that do not depend on the control program can be added, deleted, and replaced, it is easy to upgrade service functions and to implement a controller that includes only necessary functions according to the usage environment.

本発明が適用されるネットワーク構成の一例を示す図である。It is a figure which shows an example of the network configuration to which this invention is applied. 本発明の好適な一実施の形態を示すソフトウェア構成図である。It is a software block diagram which shows suitable one Embodiment of this invention. 本発明の第1実施例を示す機能ブロック図である。It is a functional block diagram which shows 1st Example of this invention. 機能(サービスオブジェクトのダウンロード&初期化等)を説明する処理フローである。It is a process flow explaining functions (downloading & initializing service objects, etc.). 機能(サービスオブジェクト参照)を説明する処理フローである。It is a processing flow explaining a function (refer service object). 本発明の第2実施例を示す機能ブロック図である。It is a functional block diagram which shows 2nd Example of this invention. 第2実施例の機能(サービスオブジェクトのスレッド実行)を説明する処理フローである。It is a processing flow explaining the function (thread execution of a service object) of the second embodiment. 第2実施例の機能(サービスオブジェクトのスレッド停止)を説明する処理フローである。It is a processing flow explaining the function (service object thread stop) of the second embodiment. 第3実施例の機能(サービスオブジェクトのスレッド実行)を説明する処理フローである。It is a processing flow explaining the function (thread execution of a service object) of 3rd Example. 第3実施例の機能(サービスオブジェクトのスレッド停止)を説明する処理フローである。It is a processing flow explaining the function (thread stop of a service object) of the third embodiment. 本発明の第4実施例を示す機能ブロック図である。It is a functional block diagram which shows 4th Example of this invention. 第4実施例の機能(サービスオブジェクトの追加)を説明する処理フローである。It is a processing flow explaining the function (addition of a service object) of the fourth embodiment. 第4実施例の機能(サービスオブジェクトの削除)を説明する処理フローである。It is a processing flow explaining the function (deletion of a service object) of a 4th example. 第4実施例の機能(サービスオブジェクトの入替)を説明する処理フローである。It is a processing flow explaining the function (exchange of a service object) of 4th Example. 第4実施例の機能(サービスオブジェクトの入替)を説明する処理フローである。It is a processing flow explaining the function (exchange of a service object) of 4th Example.

符号の説明Explanation of symbols

10 ツール
11 プログラムエディタ
12 設定ツール
13 サービスオブジェクト設定機能
20 PLC
21 リアルタイムOS
22 ファイルシステム
23 ネットワークドライバ
24 I/Oユニットバスドライバ
25 フレームワーク
26 オブジェクト管理部
26a イベント管理部
26b 制御プログラム管理部
26c サービスオブジェクト設定管理部
26d I/Oユニット管理部
27 コントローラ状態管理部
28 保守・障害管理部
29 ユーザメモリ
29a 制御プログラム記憶部
29b サービスプログラム記憶部
30 上位コンピュータ
31 ネットワーク
32 公衆回線網
33 ネットワーク
35 携帯電話
36 機器
40 通信処理部
41 制御プログラム実行エンジン
42 サービスプログラム実行エンジン
45 オンラインエディット処理部
10 Tool 11 Program Editor 12 Setting Tool 13 Service Object Setting Function 20 PLC
21 Real-time OS
22 File system 23 Network driver 24 I / O unit bus driver 25 Framework 26 Object management unit 26a Event management unit 26b Control program management unit 26c Service object setting management unit 26d I / O unit management unit 27 Controller state management unit 28 Maintenance / Failure management unit 29 User memory 29a Control program storage unit 29b Service program storage unit 30 Host computer 31 Network 32 Public line network 33 Network 35 Mobile phone 36 Device 40 Communication processing unit 41 Control program execution engine 42 Service program execution engine 45 Online edit processing Part

Claims (5)

機器制御を行なうための制御プログラムを記憶する制御プログラム記憶手段と、
前記機器制御に依存しないサービスプログラムを記憶するサービスプログラム記憶手段と、
前記制御プログラム記憶手段に記憶保持された制御プログラムと、前記サービスプログラム記憶手段に記憶保持されたサービスプログラムを、それぞれ実行する手段を備えたことを特徴とするプログラマブルコントローラ用機器。
Control program storage means for storing a control program for performing device control;
Service program storage means for storing a service program independent of the device control;
A programmable controller device comprising means for executing a control program stored in the control program storage means and a service program stored in the service program storage means, respectively.
前記サービスプログラムは、前記制御プログラムからの呼び出しに基づいて実行されるように構成したことを特徴とする請求項1に記載のプログラマブルコントローラ用機器。   2. The programmable controller device according to claim 1, wherein the service program is configured to be executed based on a call from the control program. 前記サービスプログラムは、前記制御プログラムに依存しない独立して実行可能なプログラムとして記憶保持され、
プログラマブルコントローラの動作状態に合わせて、実行,停止の制御が行なわれるようにしてなることを特徴とする請求項1に記載のプログラマブルコントローラ用機器。
The service program is stored and held as an independently executable program that does not depend on the control program,
2. The programmable controller device according to claim 1, wherein execution and stop are controlled in accordance with an operation state of the programmable controller.
前記サービスプログラムは、前記制御プログラムに依存しない独立して実行可能なプログラムとして記憶保持され、
プログラマブルコントローラが停止状態でも、前記サービスプログラムを常駐実行できるようにしてなることを特徴とする請求項1に記載のプログラマブルコントローラ用機器。
The service program is stored and held as an independently executable program that does not depend on the control program,
2. The programmable controller device according to claim 1, wherein the service program can be residently executed even when the programmable controller is stopped.
前記サービスプログラムは、プログラマブルコントローラの動作状況に依存せずに、追加,削除,変更の少なくとも1つを行う手段を備えたことを特徴とする請求項1から4のいずれか1項に記載のプログラマブルコントローラ用機器。   The programmable service program according to any one of claims 1 to 4, wherein the service program includes means for performing at least one of addition, deletion, and change without depending on an operation state of the programmable controller. Controller equipment.
JP2003380551A 2003-11-10 2003-11-10 Programmable controller equipment Expired - Fee Related JP4366576B2 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2003380551A JP4366576B2 (en) 2003-11-10 2003-11-10 Programmable controller equipment

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2003380551A JP4366576B2 (en) 2003-11-10 2003-11-10 Programmable controller equipment

Publications (2)

Publication Number Publication Date
JP2005141699A true JP2005141699A (en) 2005-06-02
JP4366576B2 JP4366576B2 (en) 2009-11-18

Family

ID=34690197

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2003380551A Expired - Fee Related JP4366576B2 (en) 2003-11-10 2003-11-10 Programmable controller equipment

Country Status (1)

Country Link
JP (1) JP4366576B2 (en)

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2008130031A (en) * 2006-11-24 2008-06-05 Canon Inc Information processor and application management method
JP2016001358A (en) * 2014-06-11 2016-01-07 アズビル株式会社 Engineering device, engineering system, and download processing method
KR20160150401A (en) * 2015-06-22 2016-12-30 엘에스산전 주식회사 Programmable Logic Controller System
KR20210024067A (en) * 2018-08-10 2021-03-04 베이징 나우라 마이크로일렉트로닉스 이큅먼트 씨오., 엘티디. Upper computer, machine control system and method

Cited By (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2008130031A (en) * 2006-11-24 2008-06-05 Canon Inc Information processor and application management method
JP4757175B2 (en) * 2006-11-24 2011-08-24 キヤノン株式会社 Information processing apparatus and application management method
US8079016B2 (en) 2006-11-24 2011-12-13 Canon Kabushiki Kaisha Information processing apparatus and application management method
JP2016001358A (en) * 2014-06-11 2016-01-07 アズビル株式会社 Engineering device, engineering system, and download processing method
US10295978B2 (en) 2014-06-11 2019-05-21 Azbil Corporation Engineering device, engineering system, and download processing method
KR20160150401A (en) * 2015-06-22 2016-12-30 엘에스산전 주식회사 Programmable Logic Controller System
KR101870492B1 (en) * 2015-06-22 2018-06-22 엘에스산전 주식회사 Programmable Logic Controller System
US10324440B2 (en) 2015-06-22 2019-06-18 Lsis Co., Ltd. Programmable logic controller system
KR20210024067A (en) * 2018-08-10 2021-03-04 베이징 나우라 마이크로일렉트로닉스 이큅먼트 씨오., 엘티디. Upper computer, machine control system and method
KR102484610B1 (en) * 2018-08-10 2023-01-04 베이징 나우라 마이크로일렉트로닉스 이큅먼트 씨오., 엘티디. Upper computer, machine control system and method
US11776830B2 (en) 2018-08-10 2023-10-03 Beijing Naura Microelectronics Equipment Co., Ltd. Control system and method of machine and host computer

Also Published As

Publication number Publication date
JP4366576B2 (en) 2009-11-18

Similar Documents

Publication Publication Date Title
US10365626B2 (en) Extending the functionality of a programmable logic controller (PLC) with apps without changing the PLC programming
RU2487388C2 (en) Actuator for hvac systems and method for operation thereof
EP2169547B1 (en) Compilation model for programmable logic controllers (PLC).
EP1351108B1 (en) Method and apparatus for programming
US8818346B2 (en) Wireless device with a control engine using functional block programming
CN108984272A (en) The control method and device of OpenStack cloud computing management platform
CN109983411B (en) Flow control of program modules
JP2009104227A (en) Plc control program development device and program
CN110098952A (en) A kind of management method and device of server
JP4366576B2 (en) Programmable controller equipment
JP6135247B2 (en) Information processing apparatus and information processing program
CN111052010B (en) Control system, development assistance device, and storage medium
JP2018084994A (en) Control system and control method
JP6119452B2 (en) Programmable controller system, its support device, programmable controller, program
US10417051B2 (en) Synchronizing shared resources in an order processing environment using a synchronization component
JP2006302066A (en) Maintenance system with remote execution function and method therefor
JP2008299763A (en) Distributed object development tool
JP7179960B2 (en) MACHINE CONTROL SYSTEM AND METHOD AND HOST COMPUTER
Dorninger A process model runtime environment based on OSGi
CN116166284A (en) Memcache cluster deployment method, storage medium and electronic device
Ploetzeneder et al. Rethinking PLCs: Industrial Ethernet for Large-Scale Real-Time Distributed Control Applications
CN113448711A (en) Batch service shutdown method and device
JP2022139089A (en) Development support device, development support method, and development support program
CN116225471A (en) Deployment method of elastic search cluster, storage medium and electronic device
CN112711198A (en) Energy efficiency control program automatic generation method and device and storage medium

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20060221

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20090120

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20090129

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20090312

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

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

R150 Certificate of patent or registration of utility model

Ref document number: 4366576

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

Free format text: JAPANESE INTERMEDIATE CODE: R150

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

Free format text: PAYMENT UNTIL: 20120904

Year of fee payment: 3

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

Free format text: PAYMENT UNTIL: 20130904

Year of fee payment: 4

LAPS Cancellation because of no payment of annual fees