JP6926841B2 - Control system, development support device, and control method - Google Patents
Control system, development support device, and control method Download PDFInfo
- Publication number
- JP6926841B2 JP6926841B2 JP2017167210A JP2017167210A JP6926841B2 JP 6926841 B2 JP6926841 B2 JP 6926841B2 JP 2017167210 A JP2017167210 A JP 2017167210A JP 2017167210 A JP2017167210 A JP 2017167210A JP 6926841 B2 JP6926841 B2 JP 6926841B2
- Authority
- JP
- Japan
- Prior art keywords
- program
- setting
- information
- forced
- machine language
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
Images
Landscapes
- Devices For Executing Special Programs (AREA)
- Stored Programmes (AREA)
- Programmable Controllers (AREA)
Description
本発明は、コントロールシステム、開発支援装置、及びコントロール方法に関する。 The present invention relates to a control system, a development support device, and a control method.
プラントシステムの稼働中に、一部の計器等が故障して正常な値が取り込めない事態が発生することがある。このような場合においてオペレータは、当該システムの稼働に影響が出るのを防ぐため、監視装置等を用いて、故障した計器から出力等される値を代入するための変数に、強制的に値を設定(以下、当該設定を強制設定とも記載し、当該強制的に設定された値を強制設定値とも記載する)し、システムの稼働を継続することが求められ得る。しかし多くの場合、オペレータは、システムのコントローラ内で動作するプログラムに詳しくはないため、例えばエンジニアリングツールを用いて強制設定を行うことに困難が生じ得る。 During the operation of the plant system, some instruments may break down and normal values may not be captured. In such a case, the operator forcibly sets the value to the variable for substituting the value output from the failed instrument by using a monitoring device or the like in order to prevent the operation of the system from being affected. It may be required to set (hereinafter, the setting is also described as a compulsory setting, and the compulsorily set value is also described as a compulsory setting value) and continue the operation of the system. However, in many cases, the operator is not familiar with the program running within the controller of the system, which can make it difficult to perform forced settings, for example using engineering tools.
システムのコントローラ内で動作するプログラムは、開発の効率化と品質向上等のため、部品化されている場合が多い。部品化されているプログラムは、オペレータによりその中身を見られる可能性が高いとは言えず、またその中身が見られないよう隠蔽されている場合も少なくない。そのため、プラント内におけるシステムの正常処理のために、オペレータが部品化されているプログラムの変数の値を強制設定する可能性は低い。ここでシステムの稼動のために必要なプログラムのコンパイルにおいて、部品化されているプログラムにおける変数に対しても、強制設定を行う機械語オブジェクトが生成されても、当該機械語オブジェクトを用いる強制設定処理はオペレータによる処理負荷の軽減には結びつかず、またこのような強制設定は無駄な処理になることも多く、アプリケーションの実行時間が不必要に長くなり得るという問題がある。 Programs that run in the system controller are often made into parts in order to improve development efficiency and quality. It cannot be said that the contents of a program that has been made into parts are likely to be seen by the operator, and the contents are often hidden so that the contents cannot be seen. Therefore, it is unlikely that the operator will forcibly set the value of the variable of the program that is partized for the normal processing of the system in the plant. Here, in compiling the program necessary for operating the system, even if a machine language object for forcibly setting is generated for the variables in the program that is made into parts, the forcible setting process using the machine language object is generated. Does not lead to reduction of the processing load by the operator, and such forced setting is often useless processing, and there is a problem that the execution time of the application may become unnecessarily long.
本発明の目的は、上述した現状に鑑み、最適化した機械語オブジェクトを生成し、制御処理の実行時間を短くすることである。 An object of the present invention is to generate an optimized machine language object in view of the above-mentioned current situation and to shorten the execution time of the control process.
態様の一例に係るコントロールシステムは、入力されたソースコードにおける1以上のプログラムの各々から機械語オブジェクトを生成する開発支援装置と、開発支援装置から取得した機械語オブジェクトを実行する制御装置と、を備える。開発支援装置は、1以上のプログラムの各々の間の呼出関係を用いて、1以上のプログラムのうち、ライブラリに含まれ、且つ呼出元のプログラムもライブラリに含まれる第1のプログラムに対し強制設定を行わないとする強制設定可否情報を生成し、強制設定可否情報に基づき、第1のプログラムから第1の機械語オブジェクトを生成する。制御装置は、第1の機械語オブジェクトに基づき、第1のプログラムにおける第1の変数に対応する第1の制御対象装置を、強制設定を行わずに制御する。 The control system according to an example of the embodiment includes a development support device that generates a machine language object from each of one or more programs in the input source code, and a control device that executes the machine language object acquired from the development support device. Be prepared. The development support device is forcibly set for the first program included in the library and the calling program is also included in the library among the one or more programs by using the calling relationship between each of the one or more programs. Is generated, and the first machine language object is generated from the first program based on the forced setting possibility information. The control device controls the first controlled device corresponding to the first variable in the first program based on the first machine language object without forcibly setting.
最適化した機械語オブジェクトを生成し、制御処理の実行時間を短くすることができる。 It is possible to generate an optimized machine language object and shorten the execution time of control processing.
(第1の実施形態)
図1は、本実施形態に係るプログラマブルコントローラシステム1の構成の一例を示す。なお、プログラマブルコントローラシステム1を、コントロールシステム1と記載することもあるものとする。コントロールシステム1は、それぞれ1以上の開発支援装置2と制御装置3とを備える。開発支援装置2を支援装置2、制御装置3をコントローラ3と記載することもあるものとする。図1には、理解容易のために、コントロールシステム1における支援装置2とコントローラ3とが、それぞれ1つずつ示される。
(First Embodiment)
FIG. 1 shows an example of the configuration of the
支援装置2は、ユーザから入力されたソースコードに基づいて、コントローラ3が実行する機械語のコードの生成を行う。この際に支援装置2は、コントローラ3が制御する装置(制御対象装置とも記載する)に対応する変数、又は制御対象装置の制御対象項目に対応する変数が、強制設定の対象になり得る否かの判定を行い、これに応じた機械語を生成する。
The
ここでの変数には、基本型の変数以外にも、例えばC言語における構造体のメンバー等が含まれるものとする。変数は、プログラムのソースコード中に記述され、制御対象装置や制御対象項目(制御対象装置と制御対象項目とをまとめて制御対象装置とも記載する)と対応付けられる。この変数に強制設定値が代入されることにより、制御対象装置は強制設定される。なおプログラムにおける変数への強制設定値の代入を、プログラムの強制設定、プログラムに対する強制設定などとも記載する。 It is assumed that the variables here include, for example, members of a structure in C language, etc., in addition to the variables of the basic type. The variables are described in the source code of the program and are associated with the control target device and the control target item (the control target device and the control target item are collectively referred to as the control target device). By substituting the forced setting value into this variable, the controlled device is forcibly set. It should be noted that the assignment of the compulsory setting value to the variable in the program is also described as the compulsory setting of the program, the compulsory setting for the program, and the like.
なお、プログラムとは、広義の意味におけるプログラムを指し、例えば、IEC61131においては、POU(Program organization unit)であって、PG(Program)より広い意味を持つものとする。
また、機械語に変換されたプログラムを機械語オブジェクトと記載する。
The program refers to a program in a broad sense. For example, in IEC61131, it is a POU (Program organization unit) and has a broader meaning than a PG (Program).
In addition, the program converted into machine language is described as a machine language object.
コントローラ3は、支援装置から機械語オブジェクトを取得して、これを実行することにより、制御対象装置を制御する。コントローラ3には、後述する記憶部(第1記憶部32)が設けられ、当該記憶部のアドレスには1以上の変数が割り当てられている。なお、ここでは理解容易のために1つのアドレスには1つの変数が割り当てられている場合について述べる。
The
コントローラ3は、強制設定処理を実行する場合に、当該強制設定の対象となる変数が割り当てられたアドレスの記憶領域に強制設定値を格納する。
When executing the compulsory setting process, the
図1に示すように、支援装置2は、ユーザインターフェース20、プロジェクト管理部21、コンパイラ22、記憶部23、及び通信部24等を備える。コンパイラ22は、フロントエンドコンパイラ220及びバックエンドコンパイラ221を備える。記憶部23には、プロジェクトプログラム一覧230、変数・アドレス対応情報231、インスタンス・プログラム対応情報232、呼出関係情報233、強制設定可否情報一覧234、及び強制設定位置情報一覧235等が記憶されている。
As shown in FIG. 1, the
プロジェクト管理部21は、ユーザインターフェース20とコンパイラ22と記憶部23とに接続されている。またコンパイラ22は、記憶部23と通信部24とに接続されている。なお、これら以外の接続関係があってもよく、接続関係は上記のものに限定されない。
The
コントローラ3は、通信部30、プログラム実行管理部31、第1記憶部32、及び第2記憶部33を備える。プログラム実行管理部31は、プログラム実行部310及び強制設定管理部311を備える。プログラム実行管理部31は、通信部30と第1記憶部32と第2記憶部33とに接続されている。また通信部30は、第1記憶部32と第2記憶部33とに接続されている。なお、接続関係は上記のものに限定されない。
The
第2記憶部33は、強制設定アドレス情報一覧330と強制設定位置情報一覧235等を記憶する。
The
まず、支援装置2の各機能ブロックについて説明する。ユーザインターフェース20は、例えばキーボード等の入力装置や、表示装置等の出力装置を、支援装置2と接続するためのインターフェースである。ユーザインターフェース20を介して、支援装置2は、開発者等のユーザからソースコード等の入力を受け付け、またユーザが開発を行うための画像を表示装置に表示する。
First, each functional block of the
プロジェクト管理部21は、ユーザによる開発の支援のため、ユーザに対し開発環境を提供する。プロジェクト管理部21は、ユーザインターフェース20を介し入力されたソースコードを管理すると共に、これを適宜コンパイラ22へ出力する。またプロジェクト管理部21は、記憶部23に記憶されているプロジェクトプログラム一覧を管理する。またプロジェクト管理部21は、管理対象の1以上のプログラムの各々に対し、一意的な、例えば固定長の番号等を割り当てる。支援装置2における各プログラムは、この番号により管理される。なお、以下においてプログラム名、又はプログラムの名称と記載する場合には、これらは、このような番号である場合もあるものとする。
The
フロントエンドコンパイラ220は、ソースコードから中間コードを生成する。この際に、フロントエンドコンパイラ220は、ソースコード中の変数を、後述する第1記憶部32における直接アドレスか間接アドレスのいずれかに対応付けて、中間コードを生成する。直接アドレスとは、変数が格納される記憶領域の位置を直接的に指し示すアドレスであり、ここでは相対的なアドレスも含まれるとする。間接アドレスとは、例えばポインタ等であり、間接アドレスが含まれるコード又は当該コードを機械語へと変換したコード等の実行がされないと、アクセス先の第1記憶部32のアドレスが特定できないものである。中間コードには、演算子と被演算子(オペランドとも記載する)が含まれる。オペランドは、変数が割り当てられる直接アドレス又は間接アドレスである。
The front-
また後述するように、フロントエンドコンパイラ220は、ソースコード中の1以上のインスタンスの互いの呼出関係に基づき、それらのインスタンスの元となる各プログラム間の呼出関係に係る呼出関係情報233を生成する。この際に、フロントエンドコンパイラ220は、記憶部23が記憶するインスタンス・プログラム対応情報232を用いる。なお、インスタンスとは、プログラムにデータを付加したものであり、例えば、プログラム中の変数に値を代入したものである。
Further, as will be described later, the front-
フロントエンドコンパイラ220は、生成した呼出関係情報233に基づき、更に強制設定可否情報一覧234の生成を行う。強制設定可否情報一覧234とは、後述するように、プログラム毎に、強制設定を行うことが有り得るか否かを示す情報であり、例えば、プログラムの名称と当該プログラムに対する強制設定の可否を示す情報とを含む。
The front-
バックエンドコンパイラ221は、フロントエンドコンパイラ220が生成した中間コードから機械語を生成する。この際に、バックエンドコンパイラ221は、強制設定可否情報一覧234を参照し、これに基づいて、強制設定処理を行うことが有るとしたプログラムについては、強制設定処理へのジャンプコードを含ませた機械語オブジェクトを生成し、一方、強制設定処理を行わないとしたプログラムについては、強制設定処理へのジャンプコードを含まない機械語オブジェクトを生成する。
The back-
フロントエンドコンパイラ220又はバックエンドコンパイラ221は、後述する強制設定位置情報235を生成し、これを記憶部23に記憶する。
The front-
記憶部23に記憶されているプロジェクトプログラム一覧230は、プロジェクト管理部21により管理されているプログラムの一覧である。またこのプロジェクトプログラム一覧230には、ユーザにより直接入力されたプログラムや部品化されたプログラム等が含まれている。
The
変数・アドレス対応情報231は、プログラム中の変数と、コントローラ3の第1記憶部32のアドレスとを関係付けした情報である。フロントエンドコンパイラ220は、変数・アドレス対応情報231を用いることにより、変数を含むソースコードから、第1記憶部32における直接アドレスであって当該変数が割り当てられたアドレスを含む中間コードを作成する。
The variable /
インスタンス・プログラム対応情報232は、プロジェクト管理部21により生成されるものであり、インスタンスと、その元のプログラムとを対応付けした情報である。フロントエンドコンパイラ220は、インスタンス・プログラム対応情報232を用いて呼出関係情報233を生成する。
The instance
呼出関係情報233は、フロントエンドコンパイラ220により生成される情報であり、フロントエンドコンパイラ220が読み込んだプログラムがどのプログラムに呼び出されているのか、又はどのプログラムを呼び出すかを示す情報である。
The call-
強制設定可否情報一覧234は、フロントエンドコンパイラ220により生成され、ソースコードに含まれる各インスタンスの元となるプログラムに対する強制設定の可否を示す情報である。ここで、フロントエンドコンパイラ220が強制設定可能なプログラムとするものは、隠蔽され部品化されたプログラムではないプログラム、又は、隠蔽され部品化されたプログラムではないプログラムから直接呼び出されるプログラムである。隠蔽され部品化されたプログラムであって、且つ隠蔽され部品化されたプログラムではないプログラムから直接呼び出されないプログラムについては、フロントエンドコンパイラ220は、強制設定を行わない。
The compulsory setting
強制設定位置情報一覧235は、フロントエンドコンパイラ220又はバックエンドコンパイラ221により生成される情報であり、機械語オブジェクトにおける強制設定処理へのジャンプコードの位置(例えば機械語オブジェクトのコードにおけるジャンプコードの行番号)と、当該強制設定処理の対象となる変数が格納される記憶領域を指し示すアドレスとを関係付けした情報の一覧である。なお、ここでは強制設定位置情報235におけるアドレスは直接アドレスであるとするが、間接アドレスであってもよい。
The forced setting
通信部24は、バックエンドコンパイラ221により生成された機械語オブジェクトや強制設定位置情報一覧235等をコントローラ3に送信する。
The
なお、支援装置2からコントローラ3に対し、強制設定指示情報が送信されてもよい。この強制設定指示情報とは、例えばコントローラ3における第1記憶部32のアドレス(直接アドレス)と、このアドレスの記憶領域に記憶されている変数に代入するための強制設定値とを関係付けした情報である。なお、当該強制設定指示情報に強制設定値が含まれない場合があってもよく、この場合、コントローラ3は当該変数に対しその初期値等を設定してもよい。当該初期値等の値は、後述する第2記憶部33又はプログラム実行管理部31において予め記憶されている。なお、この場合の初期値等の値も強制設定値と記載する。
The forced setting instruction information may be transmitted from the
強制設定指示情報が支援装置2からコントローラ3へ送信される場合、ユーザインターフェース20を介し、ユーザにより、強制設定の対象の変数の変数名と、この変数に代入する強制設定値が、支援装置2に入力される。入力された変数名と強制設定値は、支援装置2における図示しない設定部に入力される。なお設定部は、ユーザインターフェース20、記憶部23、及び通信部24と接続されている。但し、これ以外の接続関係があってもよい。設定部は、記憶部23の変数・アドレス対応情報231を参照し、強制設定の対象の変数が格納される、コントローラ3の第1記憶部32のアドレスを取得する。そして設定部は、取得したアドレスと強制設定値とを関係付けした強制設定指示情報を、通信部24に出力する。通信部24は、当該強制設定指示情報をコントローラ3へ送信する。なお、強制設定指示情報は、支援装置2に代わり、又は支援装置2と共に、後述する監視装置からコントローラ3へ送信されてもよい。
When the compulsory setting instruction information is transmitted from the
コントローラ3の通信部30は、支援装置2から機械語オブジェクト、強制設定位置情報一覧235、及び強制設定指示情報等を受信し、これらをプログラム実行管理部31へ出力する。通信部30を介してプログラム実行管理部31が支援装置2から受信した機械語オブジェクトは、プログラム実行部310において処理され、強制設定位置情報一覧235は、強制設定管理部311により第2記憶部33へ記憶される。また支援装置2又は監視装置からの強制設定指示情報は、ここでは強制設定管理部311において処理されるものとするが、プログラム実行部310により処理されてもよい。
The
プログラム実行管理部31におけるプログラム実行部310は、機械語オブジェクトを実行する。プログラム実行部310は、強制設定処理へのジャンプコードを伴わない機械語オブジェクトについては、これをそのまま実行し、強制設定処理へのジャンプコードを伴う機械語オブジェクトについては、当該機械語オブジェクト中のジャンプコードをNOP(No Operation)命令に置き換えたコード、又はジャンプコードが示すジャンプ先の強制設定処理のコードを実行する。このジャンプコードのNOP命令への置き換えは、プログラム実行部310の機械語オブジェクトの実行に先立ち、プログラム実行部310又は強制設定管理部311により行われる。
The
ジャンプ先の、強制設定処理に係るコード(ジャンプ先コードとも記載する)は、プログラム実行部310、強制設定管理部311、第2記憶部33、又はその他の不図示の記憶部等に記憶されている。
The code related to the forced setting process (also referred to as the jump destination code) of the jump destination is stored in the
プログラム実行部310は、強制設定指示情報を受け取らない間は、ジャンプコードに代わりNOP命令を実行する。これにより、無駄な強制設定処理の実行が回避できる。
The
強制設定管理部311(又はプログラム実行部310)は、強制設定指示情報を取得した場合、当該強制設定指示情報中のアドレスを、第2記憶部33に記憶されている強制設定位置情報一覧235において検索する。そして、強制設定管理部311(又はプログラム実行部310)は、このアドレスと関係付けられた、ジャンプコードの機械語オブジェクトにおける位置を取得する。強制設定管理部311が当該位置を取得する場合、強制設定管理部311は、機械語オブジェクトにおいてNOP命令に置き換えられていた当該位置のコードをジャンプコードへと戻して処理を実行するよう、プログラム実行部310に指示する。これに応じてプログラム実行部310は、当該位置におけるNOP命令をジャンプコードへ戻し、これを実行する。なお、NOP命令をジャンプコードへ変更する処理は、強制設定管理部311が行ってもよい。プログラム実行部310が上記位置を取得する場合、プログラム実行部310は、当該位置のNOP命令をジャンプコードに戻し、これを実行する。
When the compulsory setting management unit 311 (or the program execution unit 310) acquires the compulsory setting instruction information, the address in the compulsory setting instruction information is stored in the
強制設定管理部311は、強制設定指示情報において強制設定の対象となるアドレスが、第2記憶部33に記憶されている強制設定アドレス情報一覧330に記憶されていない場合に、当該アドレスを強制設定アドレス情報一覧330に登録する。なお、強制設定アドレス情報一覧330は、コントローラ3が受信した1以上の強制設定指示情報の各々における、第1記憶部32のアドレスと、当該アドレスが示す記憶領域に設定される強制設定値とを互いに対応付けた情報の一覧である。
When the address to be forcibly set in the forced setting instruction information is not stored in the forced setting
プログラム実行部310は、ジャンプ先コードの実行の際に、強制設定アドレス情報一覧330を参照し、強制設定の対象となるアドレスが指し示す記憶領域に格納するための強制設定値を取得する。あるいは、強制設定管理部311が、強制設定アドレス情報一覧330から取得した強制設定値を、プログラム実行部310へ通知してもよい。
When executing the jump destination code, the
強制設定管理部311は、コントローラ3が支援装置2等から強制設定の解除の指示を受けた場合に、当該解除指示のアドレスに係る情報が強制設定アドレス記憶部330にある場合に、これを消去してもよいし、当該情報に解除指示があった旨を付加してもよい。
When the
強制設定管理部311は、コントローラ3が支援装置2等から強制設定の解除の指示を受けた場合に、当該解除指示におけるアドレスと関係付けられた、コードの位置を、強制設定位置情報一覧235を参照して取得する。強制設定管理部311は、当該位置における機械語オブジェクトをNOP命令に戻すようプログラム実行部310に指示、又は、機械語オブジェクトにおける当該位置のジャンプコードをNOP命令に戻す。強制設定管理部311からジャンプコードをNOP命令へと戻す指示を受けたプログラム実行部310は、ジャンプコードをNOP命令へと戻す。
When the
第1記憶部32の各アドレスの記憶領域には、上述したように、制御対象装置の制御に係るパラメータに相当する変数などが記憶されている。このような変数に対し、強制設定値が代入されることにより、制御対象装置を手動でコントロールすることが可能となる。
As described above, variables and the like corresponding to the parameters related to the control of the control target device are stored in the storage area of each address of the
第2記憶部33は、強制設定アドレス情報一覧330と強制設定位置情報一覧235等を記憶する。
The
図2は、支援装置2においてユーザインターフェース20を介し表示装置によりユーザに提供される開発環境を例示する。図2における上部のウィンドウにおいて左側に示された、「プロジェクトツリーウィンドウ」とある部分には、記憶部23に記憶されるプロジェクトプログラム一覧230におけるプログラム間の関係が示されている。ここで示されるように、一連のプログラムのまとまりであるプロジェクトには、ライブラリとして、「LibProject」が含まれていることがわかる。なお、ライブラリとは、部品化したプログラムをひとまとめにしたものであり、ここではユーザに対し内部が隠蔽されたものを指すものとする。またプロジェクトには、ライブラリに含まれないプログラムとしてUFB2やLADDER等が含まれている。
FIG. 2 illustrates a development environment provided to the user by the display device via the
図2において上に示されるウィンドウの中央から右側における部分(プロジェクトツリーウィンドウの右側)は、エディタ部分である。ユーザは、このエディタを用いることにより、プログラムにおける変数に値を代入するなどしてインスタンスの作成を行える。図2におけるエディタ部分には、インスタンス(Lib1_1_1)が示されている。当該インスタンスLib1_1_1は、プログラムLib1_1のインスタンスであって、プログラムLib1_1の変数V000に値が代入され、V001の値の出力するものである。また当該図におけるNewVar1、2は、端子を示し、プログラムLib1_1に含まれるコードに対応する。NewVar1を介してV000の値がLib1_1に代入され、NewVar2を介してV001の値がLib1_1から出力される。 The part from the center to the right side of the window shown above in FIG. 2 (the right side of the project tree window) is the editor part. By using this editor, the user can create an instance by assigning a value to a variable in the program. An instance (Lib1_1_1) is shown in the editor portion in FIG. The instance Lib1_1_1 is an instance of the program Lib1_1, and a value is assigned to the variable V000 of the program Lib1_1 and the value of V001 is output. Further, NewVar1 and 2 in the figure indicate terminals and correspond to the codes included in the program Lib1-1. The value of V000 is assigned to Lib1-1 via NewVar1, and the value of V001 is output from Lib1-1 via NewVar2.
図2の下部に示される「プロジェクトツリーウィンドウ」を参照すると、ライブラリ「LibProject」には、プログラム「Lib1_1」と「Lib1_2」が含まれることがわかる。
図2を参照して説明した上記開発環境は、プロジェクト管理部21により生成される。
With reference to the "project tree window" shown at the bottom of FIG. 2, it can be seen that the library "LibProject" includes the programs "Lib1_1" and "Lib1_2".
The development environment described with reference to FIG. 2 is generated by the
図3は、呼出関係情報233を例示する。呼出関係情報233は、入力されたソースコードの行をフロントエンドコンパイラ220が順次読み出す際に、呼び出されるプログラムを呼出元のプログラムに関係付け、階層的に表したものである。なお、ソースコード上においては、インスタンスがインスタンスを呼び出す。フロントエンドコンパイラ220は、呼出関係情報233の生成において、インスタンス・プログラム対応情報232を用いて、呼出関係情報233を生成する。ここで、インスタンス・プログラム対応情報の一例を図4に示す。図4を参照すると、例えば「_siLAG2」から「_siLAG16」までの各インスタンスは、プログラム「_siLAG」に対しデータが付加されたものであることがわかる。
FIG. 3 illustrates the call-
図3に戻ると、この上部に示される呼出関係情報233は、プログラム名を行毎に並べたものである。当該呼出関係情報233において、左側に示される数字は、右側にその名称が示されるプログラムの呼び出しの階層を表す。なお、図3におけるプログラムは、図2のプロジェクトツリーウィンドウに示されているものである。図3を参照して呼出関係情報233について具体的に説明すると、まずソースコード上、フロントエンドコンパイラ220によりプログラム「LADDER」のインスタンスが呼び出される。この「LADDER」のインスタンスの階層は1となる。次に、この「LADDER」のインスタンスにより呼び出されるものは、プログラム「Lib1_1」とプログラム「UFB2」の各インスタンスである。このため、これらの階層は、上記「LADDER」のインスタンスの階層1の次の2となる。続いて、「Lib1_1」のインスタンスから呼び出されるインスタンスは、プログラム「Lib1_2」のインスタンスであり、呼び出し元の「Lib1_1」のインスタンスの階層2の次の3となる。
Returning to FIG. 3, the call-
図3に示されるように、フロントエンドコンパイラは、インスタンスの階層と共に、そのインスタンスの名称に代え、そのインスタンスの元となるプログラムの名称を、呼出関係情報233に含ませる。この際に、上述したインスタンス・プログラム対応情報232が参照される。図3の呼出関係情報233から、呼び出し側のインスタンスは、呼び出される側のインスタンスの階層から1を差し引いた数の階層にあることがわかる。また、呼び出し側のインスタンスの元のプログラムの名称は、呼び出される側のインスタンスの元のプログラムの名称よりも前(上の行)に置かれる。そして、呼び出し側のインスタンスの元のプログラムの名称を含む行は、これと同じ名称を含む他の行に比べ、呼び出される側のインスタンスの元のプログラムの名称を含む行から最も近いところに配置される。このため、階層3の「Lib1_1」の呼び出し元は、階層2の「UFB2」のインスタンスとなる。また、階層4の「Lib1_2」のインスタンスの呼び出し元は、階層3の「Lib1_1」のインスタンスである。
As shown in FIG. 3, the front-end compiler includes the name of the program that is the source of the instance in the
フロントエンドコンパイラ220は、階層の数を用いる呼出関係情報233に代わり、インスタンスの元のプログラムの呼出関係をツリーで表した呼出関係情報233を生成してもよい。このツリーを用いた呼出関係情報233を、図4の下部に示す。この図から、「LADDER」のインスタンスは、「Lib1_1」と「UFB2」の各インスタンスを呼び出し、「LADDER」のインスタンスに呼び出された「Lib1_1」のインスタンスは、「Lib1_2」のインスタンスを呼び出すことがわかる。また「LADDER」のインスタンスに呼び出された「UFB2」のインスタンスは、「Lib1_1」のインスタンスを呼び出し、この呼び出された「Lib1_1」のインスタンスは、「Lib1_2」のインスタンスを呼び出すことがわかる。
The front-
呼出関係情報233は、フロントエンドコンパイラ220により、以下に詳述する強制設定可否情報一覧234の生成に先立ち生成される。フロントエンドコンパイラ220は、生成した呼出関係情報233を用いて、強制設定可否情報一覧234を生成する。なお、呼出関係情報233の生成方法は既知のものであることから、説明を省略する。
The call-
図5を参照して、強制設定可否情報一覧234についての説明を行う。図5は、強制設定処理情報一覧234を例示する。強制設定可否情報一覧234は、ライブラリに含まれないプログラムから直接呼び出されない、ライブラリに含まれるプログラム(第1のプログラムとも記載する)に対し、コントローラ3が強制設定を行わないようにするための情報であり、また、ライブラリに含まれないプログラム、又はライブラリに含まれないプログラムから直接呼び出されるプログラム(これらのプログラムを第2のプログラムとも記載する)に対して強制設定が行われることを可能とするための情報である。
The compulsory setting
強制設定可否情報一覧234は、フロントエンドコンパイラ220により生成され、バックエンドコンパイラ221は、強制設定可否情報一覧234に基づいて、機械語を生成する。なお、ライブラリに含まれるプログラムであっても、ライブラリに含まれないプログラムから直接呼び出されるプログラムについては、当該プログラムにおける変数にユーザが強制設定値を格納する場合もあるため、このようなプログラムの強制設定を可能とした。
The compulsory setting
図5に例示される強制設定可否情報一覧234は、図3の上部に示す呼出関係情報233をフロントエンドコンパイラ220が読み出し生成したものである。図5の上部に示される強制設定可否情報一覧234は、初期状態におけるものである。また図5の下部に示される強制設定可否情報一覧234は、図3上部の呼出関係情報233において4行目となる「2 UFB2」までをフロンドエンドコンパイラ220が読み込んで生成したものである。
The compulsory setting
「管理番号」とは、フロントエンドコンパイラ220が、呼出関係情報233から順次読み出すインスタンスの元となるプログラムに対して付す連番である。また「強制設定の可否」とは、プログラムが強制設定の対象となり得るかを示すものであり、第1のプログラムの場合は「否」、第2のプログラムの場合は「可」が登録される。なお、初期状態の強制設定可否情報一覧234においては、プログラム名とその強制設定の可否が登録される各欄は、初期値のNULLが登録されている。
The "management number" is a serial number assigned to the program that is the source of the instances that the front-
図3よりフロントエンドコンパイラ220は、最初に(管理番号:1)、プログラム名「LADDER」を読み出す。このプログラム「LADDER」は、図2を参照するとライブラリに含まれないことから、フロントエンドコンパイラ220は強制設定が可能と判定する。なお、この判定処理については後に詳述する。
From FIG. 3, the front-
同様に、フロントエンドコンパイラ220は、次に(管理番号:2)、呼出関係情報233(図3)から、プログラム名「Lib1_1」を読み出す。このプログラム「Lib1_1」は、図2を参照するとライブラリに含まれているが、ライブラリに含まれないプログラム「LADDER」より直接呼び出されている。このため、フロントエンドコンパイラ220は、プログラム「Lib1_1」に対し強制設定処理が可能であると判定する。
Similarly, the front-
なお、図3の上部に示す呼出関係情報233において、同じプログラム名の「Lib1_1」が含まれる行が後の行において他にもある。そしてその異なる行では、同じプログラム名であっても、そのインスタンスの呼出元や階層等が異なることもある。これにより、呼出関係情報233において、先の行では或るプログラムが第2のプログラムであっても、後の行において第1のプログラムになる場合もあり得る。そしてこの場合、フロントエンドコンパイラ220が、一旦、呼出関係情報233における先の行のプログラムに対し強制設定を可能としてしまえば、その行より後の行の同じ名称のプログラムについては、これがその行において第1のプログラムであっても、そのプログラムについては強制設定可否情報234上では強制設定が可能なままとなる。これにより、そのようなプログラムからバックエンドコンパイラ221が生成する機械語オブジェクトには、強制設定処理へのジャンプコードが含められることが不可能にはならなくなる。このようなことは、ライブラリに含まれる他のプログラムについても同様である。詳細は後述する。
In the call-
また同様に、フロントエンドコンパイラ220は、呼出関係情報233(図3)において、次に(管理番号:3)、プログラム名「Lib1_2」を読み出す。プログラム「Lib1_2」は、図2より、ライブラリに含まれ、また呼び出し関係情報233(図3)より、ライブラリに含まれないプログラムから直接呼び出されないプログラムであることがわかる。これによりプログラム「Lib1_2」は、第1のプログラムであり、フロントエンドコンパイラ220は、このプログラム「Lib1_2」に対し強制設定処理を行わないとしている。なお、呼出関係情報233において、プログラム名「Lib1_2」が含まれる行が、これより後の行にもある場合で、その行のプログラム「Lib1_2」がライブラリに含まれないプログラムより直接呼び出される場合には、強制設定処理情報232における「強制設定の可否」は「可」に更新され、これによりプログラム「Lib1_2」に対応する機械語オブジェクトは、強制設定処理へのジャンプコード等が含められることが可能になる。
Similarly, the front-
図6は、フロントエンドコンパイラ220による強制設定処理情報の生成処理のフローを例示する。
FIG. 6 illustrates a flow of forced setting processing information generation processing by the front-
まずフロントエンドコンパイラ220は、呼出関係情報233の先頭の行を読み込み、「処理対象行」に1を設定する(ステップS100)。フロントエンドコンパイラ220は、プログラム名と、そのプログラムのインスタンスの階層の情報(階層情報とも記載する)とを取得した場合(ステップS101:Yes)、当該プログラム名が強制設定可否情報一覧234に既に登録されているか、検索を行う(ステップS102)。プログラム名が登録されていない場合(ステップS103:No)、フロントエンドコンパイラ220は、強制設定可否情報一覧234に、このプログラム名を登録すると共に、このプログラムに対する強制設定の可否として「否」を登録する(ステップS104)。
First, the front-
続いて、フロントエンドコンパイラ220は、プロジェクトプログラム一覧230におけるライブラリにおいて、ステップS100(又はステップS111)において読み出したプログラム名の検索処理を実行する(ステップS105)。
Subsequently, the front-
なお、ステップS103において、ステップS100(又はステップS111)で読み込んだプログラム名が既に強制設定可否情報一覧234に登録されている場合には(ステップS103:Yes)、フロントエンドコンパイラ220は、ステップS104の処理を行わず、ステップS105の処理を実行する。
In step S103, if the program name read in step S100 (or step S111) is already registered in the compulsory setting availability information list 234 (step S103: Yes), the front-
ステップS105において、ステップS100(又はステップS111)で読み出したプログラムがライブラリにない場合(ステップS106:No)、フロントエンドコンパイラ220は、強制設定可否情報一覧234において、当該プログラムは強制設定が可能であるとして「強制設定の可否」に「可」を登録する(ステップS107)。この処理により、フロントエンドコンパイラ220は、呼出関係情報233において順次その名称が読み出されるプログラムのうち、ライブラリにないプログラムを抽出して、これに対し強制設定を可能とできる。
In step S105, when the program read in step S100 (or step S111) does not exist in the library (step S106: No), the front-
ステップS105において、ステップS100(又はステップS111)で読み出したプログラムがライブラリにある場合には(ステップS106:Yes)、フロントエンドコンパイラ220は、当該プログラムの呼び出し元のプログラムの名称を取得する(ステップS108)。このステップS108の処理については、より詳しく後述する。
In step S105, if the program read in step S100 (or step S111) is in the library (step S106: Yes), the front-
フロントエンドコンパイラ220は、ステップS108において取得したプログラム名がライブラリにあるか検索する(ステップS109)。
The front-
ステップS108において取得したプログラム名がライブラリにない場合(ステップS110:No)、フロントエンドコンパイラ220は、ステップS105において名称を検索対象としたプログラムは強制設定処理が可能であるとして、「強制設定の可否」に「可」を登録する(ステップS107)。この処理により、フロントエンドコンパイラ220は、呼出関係情報233において順次その名称が読み出されるプログラムのうち、ライブラリに含まれないプログラムから直接呼び出されるプログラムを抽出し、これに対し強制設定を可能とできる。
When the program name acquired in step S108 is not in the library (step S110: No), the front-
フロントエンドコンパイラ220は、「処理対象行」に1を加算し、呼出関係情報233における次の行を読み出し(ステップS111)、この行におけるプログラムについて、上記ステップS101からステップS107(ステップS106においてYesの場合には、ステップS108からステップS110の処理を含む)を繰り返す。
The front-
ステップS106及びステップS110における各処理により、第2のプログラムとして判定されたプログラムは、ステップS107において強制設定が可能なプログラムとして強制設定可否情報一覧234に登録される。そして一旦、強制設定が可能なプログラムとして登録されたものは、その後に同じ名称が呼出関係情報233から読み込まれても、強制設定可否情報一覧234において「強制設定の可否」に「否」を登録されない。同様に、呼出関係情報233の或る行からそのプログラム名を読み込まれ、強制設定可否情報一覧234において「強制設定の可否」に「否」を登録されたプログラムであっても、呼出関係情報233のその後の行から同じプログラム名が呼び出され、第2のプログラムとして判定され、強制設定が可能になることもある。
The program determined as the second program by each process in step S106 and step S110 is registered in the compulsory setting
図7は、ステップS108における処理のフローを例示する。まずフロントエンドコンパイラ220は、「呼出元検索行」に処理対象行−1を設定する(ステップS400)。呼出元検索行が0であれば(ステップS401:Yes)、フロントエンドコンパイラ220は、呼び出し元のプログラム名が無い状態でリターンし(ステップS402)、上述したステップS109の処理に移る。なおこの場合、ステップS109に続くステップS110の判定結果は、Noとなる。
FIG. 7 illustrates a flow of processing in step S108. First, the front-
ステップS401において、呼出元検索行が0でなければ(ステップS401:No)、フロントエンドコンパイラ220は、呼出関係情報233における呼出元検索行のプログラムの階層情報を取得する(ステップS403)。このステップS403において取得した階層情報における階層が、処理対象行におけるプログラムの階層から1を引いた数の場合(ステップS404:Yes)、フロントエンドコンパイラ220は、呼出元検索行におけるプログラムを呼び出し元とし、この呼び出し元のプログラムの名称を取得してリターンする(ステップS405)。フロントエンドコンパイラ220は、これに続いてステップS109の上述した処理を実行する。
If the caller search line is not 0 in step S401 (step S401: No), the front-
ステップS403においてフロントエンドコンパイラ220が取得した階層情報における階層が、処理対象行におけるプログラムの階層から1を引いたものと等しくない場合(ステップS404:No)、フロントエンドコンパイラ220は、呼出元検索行から1を引いたものを、新たに呼出元検索行として置き換えて(ステップS406)、ステップS400の処理へ戻り、同様の処理を繰り返す。
When the hierarchy in the hierarchical information acquired by the front-
図6、7に示されるフロントエンドコンパイラ220の処理により、図5の上部に例示される初期状態の強制設定可否情報234から、同図の下部に例示される強制設定可否情報234が生成される。
By the processing of the front-
なおここではフロントエンドコンパイラ220は、インスタンス・プログラム対応情報232を参照して、プログラム同士の呼出関係情報233を作成し、これを用いて強制設定可否情報234を作成したが、これに代わりフロントエンドコンパイラ220は、インスタンス同士の呼出関係に係る呼出関係情報233を生成し、これを用いて強制設定処理情報234を生成してもよい。この場合、上記ステップS100において、フロントエンドコンパイラ220が取得するのは、プログラム名ではなく、インスタンス名となり、またフロントエンドコンパイラ220は、ステップS101に続き、ステップS102に先立ち、インスタンス・プログラム対応情報234を参照して、ステップS100で取得したインスタンス名からプログラム名を取得する。
Here, the front-
バックエンドコンパイラ221は、フロントエンドコンパイラ220が生成した強制設定可否情報234に基づいて、機械語オブジェクトを生成する。
The back-
図8は、バックエンドコンパイラ221による処理のフローを例示する。まずステップS500において、バックエンドコンパイラ221は、中間コードにおける最初の処理対象のプログラムの名称を取得するための処理を実行する。ここで、プログラム名を取得できない場合(ステップS501:No)、バックエンドコンパイラ221は、それまでに生成した機械語を、例えば通信部24へ出力する(ステップS502)。プログラム名を取得できた場合(ステップS501:Yes)、バックエンドコンパイラ221は、強制設定可否情報一覧234において、取得したプログラム名を検索し、そのプログラムの強制設定の可否に係る情報を取得する(ステップS503)。
FIG. 8 illustrates a processing flow by the back-
プログラムの強制設定が可能の場合(ステップS504:Yes)、バックエンドコンパイラ221は、強制設定処理に係るジャンプコードを適宜含ませた、当該プログラムの機械語を生成する(ステップS505)。
When the program can be forcibly set (step S504: Yes), the back-
強制設定可否情報一覧234において、当該プログラムの「強制設定の可否」に「否」が登録されている場合(ステップS504:No)、バックエンドコンパイラ221は、強制設定処理に係るジャンプコードを含まない、当該プログラムの機械語を生成する(ステップS506)。
In the forced setting
バックエンドコンパイラ221は、ステップS505又はステップS506において生成した機械語を、ステップS502において出力するまで一時的に保持する。なお、この保持は一時的でなくともよい。
The back-
ステップS505又はステップS506の後、バックエンドコンパイラ221は、中間コードにおける次の処理対象のプログラムの名称を取得するための処理を実行する(ステップS507)。バックエンドコンパイラ221は、ステップS507において、次の処理対象のプログラムの名称を取得できない場合には(ステップS501:No)、ステップS502の処理を実行する。この際に、バックエンドコンパイラ221は、一時的に保持していた機械語を通信部24等へ出力する。
After step S505 or step S506, the back-
一方、バックエンドコンパイラ221は、処理対象のプログラムの名称を取得できた場合には(ステップS501:Yes)、上述したステップS503以降の動作を、ステップS507により取得したプログラム名のプログラムについて繰り返す。
On the other hand, when the back-
図9は、バックエンドコンパイラ221によって生成された機械語を例示する。図9の上には、強制設定処理が無い場合の機械語が示され、同図の下には、強制設定処理が有る場合の機械語が示される。この2つの機械語は、共に同じ中間コードより生成されたものであるが、図9の下に示される機械語には、強制設定処理へのジャンプコードが含まれる。
FIG. 9 illustrates the machine language generated by the
図9について詳述すると、「LD」、「ADD」、及び「ST」は、それぞれロード命令、加算命令、書込(記憶)命令を示す。本実施形態において、強制設定処理のジャンプコードの付加は、書込命令に対して行われる。上述したように第1記憶部32は、各制御対象装置の変数を格納する記憶領域を有するが、プラントシステム等に異常が発生した場合、コントローラ3は、書込命令において強制設定処理へのジャンプコードがあることにより、制御対象装置に対応するアドレスの記憶領域に強制設定値を書込み、これにより不正な値の当該記憶領域への書き込みを防ぐことができるからである。但しこれに限定されず、機械語における書込命令以外の他の命令に、強制設定処理へのジャンプコードが含まれてもよい。
More specifically in FIG. 9, "LD", "ADD", and "ST" indicate a load instruction, an addition instruction, and a write (memory) instruction, respectively. In the present embodiment, the jump code of the forced setting process is added to the write command. As described above, the
図9における強制設定処理に関するコードは、破線の四角に囲まれた部分のコードである。このうちの「LDR pc,[wk1,#64]」が、強制設定処理へのジャンプコードである。また「MOV lr,pc」は、ジャンプ先から戻るためのコードである。 The code related to the forced setting process in FIG. 9 is the code of the portion surrounded by the broken line square. Of these, "LDR pc, [wk1, # 64]" is a jump code to the forced setting process. Further, "MOV lr, pc" is a code for returning from the jump destination.
なお、強制設定可否情報一覧234の「強制設定の可否」が「否」であるプログラムの機械語には、強制設定処理に関するコードは含まれない。
Note that the machine language of the program in which the "possibility of forced setting" is "no" in the forced setting
コントローラ3のプロジェクト実行部310は、支援装置2から取得した機械語オブジェクトを実行することで、強制設定処理が必要な場合に強制設定処理を実行し、そうでない場合に無駄な処理を行わない。
By executing the machine language object acquired from the
図10は、支援装置2のハードウェア構成を例示する。ここでは、支援装置2は、一般的なコンピュータとしてハードウェアを有し、支援装置2による処理は、以下に示すハードウェア5を具体的に利用することにより実行される。ハードウェア5は、互いにバス50によって接続されたプロセッサ51、メモリ52、記憶装置53、通信インターフェース回路54、及びユーザインターフェース回路55を備える。
FIG. 10 illustrates the hardware configuration of the
プロセッサ51は、例えばシングルコア、デュアルコア、またはマルチコアのプロセッサである。
The
メモリ52は、例えばROM(Read Only Memory)、RAM(Random Access Memory)、又は半導体メモリである。
The
プロセッサ51が、メモリ52に記憶された情報、又は後述する記憶装置53からメモリ52に読み込んだ情報を用いて、メモリ52に記憶された各種プログラムを実行することにより、プロジェクト管理部21とコンパイラ22の各機能が実現される。また、メモリ52により、上記記憶部23の一部の機能が実現されてもよい。例えば、メモリ52が、コンパイラ22が生成した呼出関係情報233を一時的に記憶し、以下に記載する記憶装置23がプロジェクトプログラム一覧230、変数・アドレス対応情報231、インスタンス・プログラム対応情報232、強制設定可否情報一覧234、及び強制設定位置情報一覧235を記憶してもよい。
The
記憶装置53は、例えばハードディスクドライブ、光ディスク装置等であり、外部記憶装置や可搬型記憶媒体でもよい。記憶装置53により、記憶部23の全部又は一部の機能が実現される。
The
通信インターフェース回路54は、LAN(Local Area Network)、インターネット、またはイントラネット等を介して、支援装置2がコントローラ3等と通信を行えるようにするためのインターフェースである。通信インターフェース回路54により上記通信部24の機能が実現される。
The
ユーザインターフェース回路55は、キーボードやタッチパネル等の入力装置、又は液晶ディスプレイ等の表示装置を、支援装置2と接続するための回路である。ユーザインターフェース回路55により、上記ユーザインターフェース20の機能が実現される。
The
なお、上述した場合以外にも、支援装置2の機能ブロックの全て、又はその一部の機能は、適宜、専用のハードウェアにより実現されることもできる。
In addition to the above cases, all or a part of the functions of the functional blocks of the
図11は、コントローラ3のハードウェア構成を例示する。ここでは、コントローラ3は、一般的なコンピュータとしてハードウェアを有し、コントローラ3による処理は、以下に示すハードウェア6を具体的に利用することにより実行される。ハードウェア6は、互いにバス60によって接続されたプロセッサ61、第1メモリ62、第2メモリ63、記憶装置64、及び通信インターフェース回路65を備える。
FIG. 11 illustrates the hardware configuration of the
プロセッサ61は、例えばシングルコア、デュアルコア、またはマルチコアのプロセッサである。
The
第1メモリ62及び第2メモリ63は、例えばROM(Read Only Memory)、RAM(Random Access Memory)、半導体メモリである。
The
プロセッサ61が、第1メモリ62に記憶された情報、又は後述する記憶装置64から第1メモリ62に読み込んだ情報を用いて、第1メモリ62に記憶された各種プログラムを実行することにより、プログラム実行管理部31の機能が実現される。また、第1メモリ62により、上記第2記憶部33の機能の一部が実現されてもよい。例えば、第1メモリ62は、強制設定アドレス情報一覧330等を記憶してもよい。
The
第2メモリ63は、その全部又は一部の記憶領域が制御対象装置に対応付けられているメモリであり、プログラム実行管理部31の処理対象となるメモリである。第2メモリ63により、上記第1記憶部32の機能が実現される。なお、第2メモリ63に代わり、あるいはこれと共に、ハードディスクドライブ等の記憶装置により第1記憶部32の機能が実現されてもよい。
The
記憶装置64は、例えばハードディスクドライブ、光ディスク装置等であり、外部記憶装置や可搬型記憶媒体でもよい。記憶装置64により、第2記憶部33の機能が実現される。
The
通信インターフェース回路65は、LAN(Local Area Network)、インターネット、またはイントラネット等を介して、コントローラ3が支援装置2等と通信を行えるようにするためのインターフェースである。通信インターフェース回路65により上記通信部30の機能が実現される。
The
なお、上述した場合以外にも、コントローラ3の機能ブロックの全て、又はその一部の機能は、適宜、専用のハードウェアにより実現されることもできる。
In addition to the above cases, all or a part of the functions of the functional blocks of the
本実施形態に係るコントロールシステム1によれば、オペレータが強制設定の対象としない部品化されたプログラムについて、支援装置2は、強制設定処理に関するコードを含めない機械語を生成する。またコントローラ3は、当該機械語に基づき、強制設定処理が不要の変数に対しては、強制設定処理を行わない。これらのことより、コントローラ3によるコードの実行に費やされる時間の削減ができると共に、プラントにおける制御対象装置の制御処理がより迅速になる。
According to the
(第2の実施形態)
プラントシステムにおいては、必要に応じて、複数人のオペレータが、その各々に割り当てられた監視装置を介し、強制設定指示情報の生成等の強制設定機能を使用する。しかし個々の監視装置においては、強制設定時の履歴情報はあるもののプラントシステム全体における強制設定の対象となっている変数の情報を総括的に管理することができなかった。つまり或る時点において、どの変数にどの値を強制設定しているかをオペレータが認識できなかった。本実施形態に係るコントロールシステム1’は、このような問題を解消するためのものである。
(Second Embodiment)
In the plant system, if necessary, a plurality of operators use a compulsory setting function such as generation of compulsory setting instruction information via a monitoring device assigned to each operator. However, in each monitoring device, although there is history information at the time of compulsory setting, it is not possible to comprehensively manage the information of the variables that are the target of compulsory setting in the entire plant system. In other words, at some point, the operator could not recognize which value was forcibly set for which variable. The control system 1'according to the present embodiment is for solving such a problem.
図12は、本実施形態に係るコントロールシステム1’の構成を例示する。本実施形態に係るコントロールシステム1’は、それぞれ1以上の監視装置(HCI装置、HCI:Human Computer Interaction)7とコントローラ3’と上述した支援装置2とを備える。なお、図12においては、コントロールシステム1’における監視装置7とコントローラ3’と支援装置2が、それぞれ1つ示されている。
FIG. 12 illustrates the configuration of the control system 1'according to the present embodiment. The control system 1'according to the present embodiment includes one or more monitoring devices (HCI device, HCI: Human Computer Interaction) 7, a controller 3', and the
監視装置7は、ユーザインターフェース70、記憶部71、処理部72、及び通信部73等を備える。処理部72は、ユーザインターフェース70、記憶部72、及び通信部73と接続されている。なおこれ以外の接続関係があってもよい。
The monitoring device 7 includes a
コントローラ3’は、上記実施形態におけるコントローラ3の備える強制設定管理部311に代えて、強制設定管理部311’を備え、プログラム実行管理部31に代えて、プログラム実行管理部31’を備える。またコントローラ3’は、上記実施形態における第2記憶部33に代えて、第2記憶部33’を備える。そして第2記憶部33’は、上記実施形態における強制設定アドレス情報一覧330に代えて、強制設定アドレス情報330’を記憶する。
The controller 3'includes a compulsory setting management unit 311'in place of the compulsory
監視装置7のユーザインターフェース70は、表示装置等の出力装置やタッチパネル等の入力装置を、監視装置7に接続する。表示装置等に表示された制御対象装置の状態を確認したオペレータは、必要に応じ、入力装置を介して監視装置7に強制設定指示の入力を行う。
The
記憶部71は、監視装置7に対し一意的に割り当てられている自己の識別情報710、監視装置7の監視対象の1以上のTAGに係るTAG情報711、強制設定支援情報一覧712、及び支援装置2から通信部73を介して取得した変数・アドレス対応情報231等を記憶する。
The
ここで、TAGとは、制御対象装置の制御に係るパラメータを意味し、上記変数と対応付けられる。TAG情報711には、各TAGの、コード中における変数名と同等又は対応するTAGの番号(TAGNoとも記載する)と、TAGの名称とが互いに関係付けられ、含まれる。ここで、バルブを例に取れば、TAGはそのバルブの開閉度合いを示す変数に対応し、TAGの名称は「バルブの開閉度」等となる。 Here, the TAG means a parameter related to the control of the control target device, and is associated with the above variable. The TAG information 711 includes a TAG number (also referred to as TAGNo) equivalent to or corresponding to the variable name in the code of each TAG, and the TAG name are related to each other. Here, taking a valve as an example, the TAG corresponds to a variable indicating the degree of opening / closing of the valve, and the name of the TAG is "the degree of opening / closing of the valve" or the like.
強制設定支援情報一覧712は、コントローラ3’から受信した強制設定支援情報を元に生成されたものであり、オペレータによる強制設定の支援のためのものである。
The compulsory setting
処理部72は、ユーザインターフェース70を介し入力された強制設定指示に基づき、記憶部71から必要な情報を読み出し、コントローラ3’に送信するための強制設定指示情報を生成する。
The
また処理部72は、通信部73を介してコントローラ3’から後述する強制設定支援情報を取得すると、記憶部72の強制設定支援情報一覧712にこれを蓄積するか、又は、強制設定支援情報一覧712を適宜更新する。この蓄積の際に処置部72は、ユーザインターフェース70を介しての表示装置における表示用に、強制設定支援情報を表示用に変換してもよい。また処理部72は、オペレータからの強制設定支援情報一覧712の表示指示をトリガとして、これを表示用に加工する処理を行い、ユーザインターフェース70を介して表示装置に出力してもよい。
Further, when the
強制設定支援情報一覧712には、監視装置7の運用当初から現在に至るまでの全ての強制設定支援情報が記憶されてもよいし、ある一定期間における強制設定支援情報が記憶されてもよい。
The compulsory setting
通信部73は、監視装置7がコントローラ3’及び支援装置2との間で情報の授受を行うための機能ブロックである。通信部73は、処理部72の指示に従い強制設定指示情報をコントローラ3’に送信し、強制設定支援情報をコントローラ3’から受信し、これを処理部72へ出力する。
The
コントローラ3’の強制設定管理部311’は、通信部30を介して、監視装置7から強制設定指示情報を取得する。そして強制設定管理部311’は、強制設定指示情報におけるアドレスが強制設定アドレス情報一覧330’に未登録の場合には、強制設定指示情報に含まれる情報を登録する。一方、強制設定指示情報におけるアドレスが既に強制設定アドレス情報一覧330’に登録されている場合には、強制設定管理部311は、当該アドレスにかかる強制設定アドレス情報一覧330’中のレコードを強制設定指示情報に基づき更新してもよいし、当該アドレスの変数に対し強制設定の解除がされていないレコード、すなわち現在において強制設定中の変数に係るレコードについては、更新せずに、通信部30を介して、強制設定が行えない旨の通知を当該強制設定指示情報の送信元へ送信してもよい。なお、コントローラ3’において、強制設置指示情報の送信元の支援装置2や1以上の監視装置7に対し、それぞれ優先順位が設けられていてもよい。この場合、強制設定管理部311’は、低い優先順位の監視装置7等により既に設定されている強制設定値等を、それより高い優先順位の監視装置7等から取得した強制設定指示情報に基づき上書きしてもよく、高い優先順位の監視装置7等により既に設定されている強制設定値等を、それより低い優先順位の監視装置7等からの強制設定指示情報に応じた上書きをしないこととしてもよい。
The compulsory setting management unit 311'of the controller 3'acquires compulsory setting instruction information from the monitoring device 7 via the
強制設定管理部311’は、監視装置7が強制設定支援情報の送信を要求した場合や監視装置7の起動等をトリガとして、強制設定アドレス情報一覧330’を用いて、強制設定支援情報を生成し、監視装置7に通信部30を介して送信する。なお、強制設定支援情報には、監視装置7を用いるオペレータの強制設定処理に必要な、強制設定アドレス情報一覧330’の内容の全部又は一部が含まれる。
The compulsory setting management unit 311'generates compulsory setting support information using the compulsory setting address information list 330', triggered by the monitoring device 7 requesting the transmission of the compulsory setting support information or the activation of the monitoring device 7. Then, the information is transmitted to the monitoring device 7 via the
強制設定管理部311’は、強制設定支援情報の生成の際に、強制設定アドレス情報一覧330’の強制設定に係る各アドレスに設定されている値を第1記憶部32から読み込むか、又は、強制設定アドレス情報一覧330’の強制設定に係る各アドレスに対応する制御対象装置のパラメータの値をその制御対象装置等から読み込むなどし、制御対象装置の源値として強制設定アドレス情報一覧330’に付加し、強制設定支援情報に含ませる。
The compulsory setting management unit 311'reads the value set for each address related to the compulsory setting of the compulsory setting address information list 330' from the
また、強制設定管理部311’は、強制設定アドレス情報330’における各アドレスに対し強制設定を行った時刻、又は各アドレスに対する強制設定指示情報を受信した時刻を、アドレスに紐付けして第2記憶部33に記憶し、強制設定支援情報生成の際に用いる。
Further, the compulsory setting management unit 311'associates the time when the compulsory setting is performed for each address in the compulsory setting address information 330' or the time when the compulsory setting instruction information for each address is received with the address to the second. It is stored in the
また、第2記憶部33は、強制設定アドレス情報一覧330’のアドレスに対応する制御対象装置が含まれるステーションを識別するための番号(ステーションNo、ST Noとも記載する)を、そのアドレスに対応付け、記憶していてもよい。この場合、強制設定管理部311’は、強制設定支援情報に、強制設定アドレス情報一覧330’における各アドレスに対応付けられたステーションNoを付加する。ただし、第2記憶部33のアドレス(又は変数)とステーションNoとの対応関係に係る情報を、監視装置7が保持していてもよく、監視装置7が強制設定支援情報を表示する際に、強制設定支援情報中のアドレス(又は変数)からステーションNoを取得してもよい。
Further, the
強制設定支援情報を取得した監視装置7の処理部72は、これを強制設定支援情報一覧712へ登録、又は強制設定支援情報一覧712を更新する。
The
図13は、監視装置7を介してのオペレータによる強制設定に供される画面に表示される画像の例を示す。このようなオペレータの強制設定や監視等に供される画面を強制設定画面とも記載する。なお図13の強制設定画面には、背景が白、文字が黒で示されているが、これに限らず、例えば背景が黒で文字が白等で表示されてもよい。 FIG. 13 shows an example of an image displayed on the screen subjected to forced setting by the operator via the monitoring device 7. A screen used for forced setting or monitoring of such an operator is also described as a forced setting screen. The forced setting screen of FIG. 13 shows a white background and black characters, but the present invention is not limited to this, and for example, the background may be black and the characters may be displayed in white or the like.
図13において「PID001.PV」とあるのは、或るTAGのTAGNoである。ここでは、TAGNoが「PID001.PV」のTAGについて示されている。また、「This_is_Tagname」の欄には、通常、TAGの名称が表示される。 In FIG. 13, "PID001.PV" is a TAG No of a certain TAG. Here, the TAG No. is shown for the TAG of "PID001.PV". In addition, the name of TAG is usually displayed in the column of "This_is_Tagname".
図13に示される「Source Value」とは、TAGの源値を意味する。ここではTAGNoが「PID001.PV」のTAGの源値として100.0kg/m2が示されている。なお図中においてkg/m2は「kg/m2」と表されている。当該単位は、TAGに単位の定義がある場合に表示される。また設定がアナログの場合にこのような単位を表示する。すなわち、設定が、例えば「ON」と「OFF」しかないような場合には、単位の表示はされない。「Force Value」とは、強制設定値を意味し、ここではTAGNo「PID001.PV」のTAGに対し強制設定値として100.0kg/m2が入力されている、又は設定されていることがわかる。
The “Source Value” shown in FIG. 13 means the source value of TAG. Here, 100.0 kg / m 2 is shown as the source value of TAG with a TAG No of "PID001.PV". In the figure, kg / m 2 is represented as “kg /
図13中の「FON」は、TAGに対し、既に強制設定が行われているときに表示されるものであり、他の文字と比較して目立つ色彩にて表示される。例えば、背景が黒で他の文字が白で表示されるような場合に、「FON」は例えば赤で表示される。ここでは、TAGNoが「PID001.PV」のTAGに対し、強制設定がされていることがわかる。この「FON」は、コントローラ3’における強制設定アドレス情報一覧330’において、登録されているアドレスであって、且つ強制設定指示の解除がされていないアドレスに対応付けられているTAGに対し、表示される。 “FON” in FIG. 13 is displayed when the forced setting has already been made for the TAG, and is displayed in a color that stands out as compared with other characters. For example, when the background is black and other characters are displayed in white, "FON" is displayed in red, for example. Here, it can be seen that the TAG No. is forcibly set for the TAG of "PID001.PV". This "FON" is displayed for the TAG associated with the registered address in the compulsory setting address information list 330'in the controller 3'and the address for which the compulsory setting instruction has not been released. Will be done.
「USER」とは、強制設定画面を使用中のオペレータ等を識別する情報(ユーザIDとも記載する)であり、ここでは当該オペレータのユーザIDが「user001」であることがわかる。「Remark」とは、強制設定を行うための理由などの備考を意味し、すぐ下の欄が当該備考を入力又は表示するための備考欄に該当する。この備考欄の右隣の直方体のマークをタッチ又はクリック等することにより、オペレータは備考欄に記載した内容を消去できる。 “USER” is information (also described as a user ID) that identifies an operator or the like who is using the forced setting screen, and here it can be seen that the user ID of the operator is “user001”. "Remark" means a remark such as a reason for performing compulsory setting, and the column immediately below corresponds to a remark column for inputting or displaying the remark. By touching or clicking the rectangular parallelepiped mark to the right of this remarks column, the operator can delete the contents described in the remarks column.
「Force」は、TAGに対し、「Force Value」の欄にオペレータが入力した値を強制設定することを監視装置7に指示するための表示であり、「Force」部分をタッチ等することにより、当該指示がなされる。これにより監視装置7の処理部72は、後述する本実施形態における強制設定指示情報を生成する。
"Force" is a display for instructing the monitoring device 7 to forcibly set the value input by the operator in the "Force Value" field to the TAG, and by touching the "Force" part or the like, the TAG is displayed. The instruction is given. As a result, the
「UnForce」は、強制設定が行われているTAGに対し、当該設定の解除を指示するための表示である。画面上の「UnForce」の部分のタッチ等により、強制設定の解除指示が監視装置7からコントローラ3’に対しなされる。 "UnForce" is a display for instructing a TAG for which a forced setting has been made to cancel the setting. By touching the "UnForce" part on the screen or the like, the monitoring device 7 gives an instruction to cancel the forced setting to the controller 3'.
「Cancel」は、強制設定画面における入力を中止し、入力した内容を破棄するための表示である。オペレータが、「Cancel」の部分をタッチ等することにより、このような中止処理は行われる。 "Cancel" is a display for canceling the input on the compulsory setting screen and discarding the input contents. Such a stop process is performed by the operator touching the "Cancel" part or the like.
図14は、本実施形態に係る監視装置7により生成される強制設定指示情報を例示する。図14に示されるように、強制設定指示情報には、第1の実施形態の強制設定指示情報が含むアドレス情報と強制設定値に加え、強制設定の対象となる変数と、識別情報710が含まれる。図15における強制設定指示情報において、強制設定の対象となるアドレスは「M,WI,65552」、当該アドレスが指す記憶領域に設定される強制設定値は「100」、当該強制設定値が代入される変数は「V002」、強制設定の指示元の監視装置7の識別情報710は、「XXX」である。なお、図示はされていないが、強制設定指示情報には、強制設定を行ったオペレータのユーザIDと強制設定の理由等が含まれている。 FIG. 14 illustrates the compulsory setting instruction information generated by the monitoring device 7 according to the present embodiment. As shown in FIG. 14, the compulsory setting instruction information includes the variable to be the compulsory setting and the identification information 710 in addition to the address information and the compulsory setting value included in the compulsory setting instruction information of the first embodiment. Is done. In the compulsory setting instruction information in FIG. 15, the address to be forcibly set is "M, WI, 65552", the compulsory setting value set in the storage area pointed to by the address is "100", and the compulsory setting value is substituted. The variable is "V002", and the identification information 710 of the monitoring device 7 that is the instruction source of the forced setting is "XXX". Although not shown, the forced setting instruction information includes the user ID of the operator who performed the forced setting, the reason for the forced setting, and the like.
なお、図14において強制設定指示情報は、表形式にて表されるが、これに限らず、アドレスと強制設定値と変数と識別情報710等の各値が互いに関係付けられており、またこれらの各値が何を示すかを監視装置7とコントローラ3’等が認識可能であれば、強制設定指示情報は表形式には限定されない。 The compulsory setting instruction information is represented in a table format in FIG. 14, but is not limited to this, and each value such as an address, a compulsory setting value, a variable, and identification information 710 is related to each other, and these The compulsory setting instruction information is not limited to the tabular format as long as the monitoring device 7 and the controller 3'and the like can recognize what each value of is indicated.
図15は、本実施形態における強制設定支援情報一覧712の表示例を示す。図15において「ST101」、「ST20C」、「ST11C」の各々は、強制設定の対象となった制御対象装置が配置されているステーションのステーションNoである。ステーションNoは、ここではSTmnk(m、n、kには数字や英字等が入る)にて表されているが、これに限定されない。
FIG. 15 shows a display example of the compulsory setting
「Force Time」は、強制設定がされた日時である。また「Force User」は、強制設定処理を行ったオペレータのユーザIDである。また「Place」は、強制設定を行った監視装置7を識別するための識別情報(識別情報710)である。 "Force Time" is the date and time when the compulsory setting was made. Further, "Force User" is a user ID of the operator who performed the forced setting process. Further, "Place" is identification information (identification information 710) for identifying the monitoring device 7 for which the forced setting has been performed.
図15の強制設定支援情報一覧712において、例えば1行目を参照すると、2015年9月1日の13時15分5秒に、ユーザID「user001」のオペレータが、「Sensor bad(センサの不調)」を理由に、識別情報「XOS3000−1」の監視装置7を用いて、ステーションNo「ST101」のステーションにおける、TAGNo「PID001.PV」のTAGであって源値が「0.0」のTAGに対して、強制設定値「100.0」を強制的に設定したことがわかる。
In the forced setting
図16は、本実施形態における強制設定アドレス情報一覧330’を例示する。ここに示される強制設定アドレス情報一覧330’は、コントローラ3’が、図14に示す強制設定指示情報を1つだけ取得したときに、強制設定管理部311’により生成されたものである。図16に示されるように、管理番号が1の行には、アドレスの列に「M,WI,65552」、変数の列に「V002」、識別情報(識別情報710)の列に「XXX」が登録されている。なお、ここでの管理番号は、強制設定管理部330’により付される番号であり、上記支援装置2のフロントエンドコンパイラ210が付した、強制設定処理情報一覧232における管理番号とは別のものである。また強制設定アドレス情報一覧330’には、図示はされていないが、各行の情報には、強制設定を行ったオペレータのユーザID、強制設定の理由、強制設定値等が含まれる。以下、強制設定管理部311’による強制設定アドレス情報一覧330’の生成について端的に説明する。
FIG. 16 illustrates the compulsory setting address information list 330'in this embodiment. The compulsory setting address information list 330'shown here is generated by the compulsory setting management unit 311'when the controller 3'acquires only one compulsory setting instruction information shown in FIG. As shown in FIG. 16, in the row where the control number is 1, "M, WI, 65552" is in the address column, "V002" is in the variable column, and "XXX" is in the identification information (identification information 710) column. Is registered. The management number here is a number assigned by the forced setting management unit 330', and is different from the management number in the forced setting
強制設定管理部311’は、強制設定指示情報を取得すると、当該強制設定指示情報におけるアドレスが強制設定アドレス情報一覧330’に含まれるか判定する。当該アドレスが、強制設定アドレス情報一覧330’に含まれなければ、強制設定管理部311’は、強制設定アドレス情報一覧330’のうち、アドレスについてNULL等が登録されているなど、アドレスが未登録の行のうち管理番号が最も小さい行に、受信した当該強制設定指示情報におけるアドレス、変数、及び識別情報710等を記録する。一方、受信した強制設定指示情報におけるアドレスが強制設定アドレス情報一覧330’に含まれる場合には、強制設定管理部311’は、当該アドレスが登録されている行における識別情報(識別情報710)や強制設定値等の各々を、受信した強制設定指示情報に含まれる、対応する情報へと更新等する。 When the compulsory setting management unit 311'acquires the compulsory setting instruction information, it determines whether the address in the compulsory setting instruction information is included in the compulsory setting address information list 330'. If the address is not included in the compulsory setting address information list 330', the compulsory setting management unit 311'has not registered the address in the compulsory setting address information list 330', such as NULL being registered for the address. The address, variable, identification information 710, etc. in the received forced setting instruction information are recorded in the line having the smallest management number among the lines of. On the other hand, when the address in the received compulsory setting instruction information is included in the compulsory setting address information list 330', the compulsory setting management unit 311'is used as identification information (identification information 710) in the line in which the address is registered. Each of the compulsory setting values and the like is updated to the corresponding information included in the received compulsory setting instruction information.
なお、上述したように強制設定管理部311’は、監視装置7から強制設定の解除指示を受けた場合には、強制設定アドレス情報一覧330’における、該当するアドレスの記録を削除、又は当該記録に対し解除の旨を付加する。 As described above, when the forced setting management unit 311'receives an instruction to cancel the forced setting from the monitoring device 7, the forced setting management unit 311'deletes or records the corresponding address in the forced setting address information list 330'. Is added to the effect of cancellation.
図16における強制設定アドレス情報一覧330’は、表形式で表されているが、アドレス、変数、及び識別情報710等が互いに関係付けされ記憶されていれば、表形式に限定されない。 The compulsory setting address information list 330'in FIG. 16 is represented in a table format, but is not limited to the table format as long as the addresses, variables, identification information 710, and the like are related to each other and stored.
図17は、監視装置7のハードウェア構成を例示する。ここでは、監視装置7は、一般的なコンピュータとしてハードウェアを有し、監視装置7による処理は、以下に示すハードウェア8を具体的に利用することにより実行される。ハードウェア8は、互いにバス80によって接続されたプロセッサ81、メモリ82、記憶装置83、及び通信インターフェース回路84等を備える。
FIG. 17 illustrates the hardware configuration of the monitoring device 7. Here, the monitoring device 7 has hardware as a general computer, and the processing by the monitoring device 7 is executed by specifically using the
プロセッサ81は、例えばシングルコア、デュアルコア、またはマルチコアのプロセッサである。
The
メモリ82は、例えばROM(Read Only Memory)、RAM(Random Access Memory)、又は半導体メモリである。
The
プロセッサ81が、メモリ82に記憶された情報、又は後述する記憶装置83からメモリ82に読み込んだ情報を用いて、メモリ82に記憶された各種プログラムを実行することにより、処理部72の機能が実現される。
The function of the
記憶装置83は、例えばハードディスクドライブ、光ディスク装置等であり、外部記憶装置や可搬型記憶媒体でもよい。記憶装置83により、記憶部71の機能が実現される。
The
通信インターフェース回路84は、LAN(Local Area Network)、インターネット、またはイントラネット等を介して、監視装置7がコントローラ3等と通信を行えるようにするためのインターフェースである。通信インターフェース回路84により上記通信部73の機能が実現される。
The
ユーザインターフェース回路85は、キーボードやタッチパネル等の入力装置、又は液晶ディスプレイ等の表示装置を、監視装置7と接続するための回路である。ユーザインターフェース回路85により、上記ユーザインターフェース70の機能が実現される。
The
なお、上述した場合以外にも、監視装置7の機能ブロックの全て、又はその一部の機能は、適宜、専用のハードウェアにより実現されることもできる。 In addition to the above cases, all or a part of the functions of the functional blocks of the monitoring device 7 can be appropriately realized by dedicated hardware.
なお、支援装置2とコントローラ3の各ハードウェアについては、上記実施形態の場合と同様であるので、説明を省略する。
Since the hardware of the
本実施形態によれば、オペレータは、どの制御対象装置がどの監視装置からの指示に基づいてどのように強制的に制御されているかを、監視装置7から確認することができ、無駄な強制設定や、互いに矛盾する強制設定や、制御対象装置に過分な付加のかかる強制設定等を排除することができ、プラント内の制御対象装置の運用がより容易で安全なものになる。 According to the present embodiment, the operator can confirm from the monitoring device 7 how and which controlled device is forcibly controlled based on the instruction from which monitoring device, which is a useless forced setting. In addition, it is possible to eliminate forced settings that contradict each other and forced settings that are excessively added to the controlled device, and the operation of the controlled device in the plant becomes easier and safer.
本発明は、本発明の広義の精神と範囲を逸脱することなく、様々な実施形態および変形が可能とされるものである。また、上述した実施形態は、本発明を説明するためのものであり、本発明の範囲を限定するものではない。特許請求の範囲内およびそれと同等の発明の意義の範囲内で施される様々な変形も、本発明の範囲内とみなされる。 The present invention allows for various embodiments and modifications without departing from the broad spirit and scope of the present invention. Moreover, the above-described embodiment is for explaining the present invention, and does not limit the scope of the present invention. Various modifications made within the scope of the claims and within the equivalent meaning of the invention are also considered to be within the scope of the present invention.
1、1’ コントロールシステム、プログラマブルコントローラシステム
2 支援装置、開発支援装置
3、3’ コントローラ、制御装置
5、6、8 ハードウェア
7 監視装置
20、70 ユーザインターフェース
21 プロジェクト管理部
22 コンパイラ
23、71 記憶部
24、30、73 通信部
31、31’ プログラム実行管理部
32 第1記憶部
33、33’ 第2記憶部
50、60、80 バス
51、61、81 プロセッサ
52、82 メモリ
53、64、83 記憶装置
54、65、84 通信インターフェース回路
55、85 ユーザインターフェース回路
62 第1メモリ
63 第2メモリ
72 処理部
220 フロントエンドコンパイラ
221 バックエンドコンパイラ
230 プロジェクトプログラム一覧
231 変数・アドレス対応情報
232 インスタンス・プログラム対応情報
233 呼出関係情報
234 強制設定可否情報一覧
235 強制設定位置情報一覧
310 プログラム実行部
311、311’ 強制設定管理部
330、330’ 強制設定アドレス情報一覧
710 識別情報
711 TAG情報
712 強制設定支援情報一覧
1, 1'control system,
Claims (7)
を備え、
前記開発支援装置は、
前記1以上のプログラムの各々の間の呼出関係を用いて、前記1以上のプログラムのうち、ライブラリに含まれ、且つ呼出元のプログラムもライブラリに含まれる第1のプログラムに対し強制設定を行わないとする強制設定可否情報を生成し、
前記強制設定可否情報に基づき、前記第1のプログラムから第1の前記機械語オブジェクトを生成し、
前記制御装置は、
前記第1の機械語オブジェクトに基づき、前記第1のプログラムにおける第1の変数に対応する第1の制御対象装置を、強制設定を行わずに制御する、
ことを特徴とするコントロールシステム。 A development support device that generates a machine language object from each of one or more programs in the input source code, and a control device that executes the machine language object acquired from the development support device.
With
The development support device is
Using the calling relationship between each of the one or more programs, the first program among the one or more programs that is included in the library and the calling program is also included in the library is not forcibly set. Generates compulsory setting availability information and
Based on the forced setting availability information, the first machine language object is generated from the first program, and the machine language object is generated.
The control device is
Based on the first machine language object, the first controlled device corresponding to the first variable in the first program is controlled without forcibly setting.
A control system that features that.
前記1以上のプログラムのうち、ライブラリに含まれないプログラム、又は呼出元のプログラムがライブラリに含まれないプログラムである、第2のプログラムを抽出し、
前記1以上のプログラムのうち、前記第2のプログラムとして抽出されなかったプログラムを第1のプログラムとする、
ことを特徴とする請求項1に記載のコントロールシステム。 The development support device is
From the above one or more programs, a second program in which the program not included in the library or the calling program is not included in the library is extracted.
Of the one or more programs, the program not extracted as the second program is defined as the first program.
The control system according to claim 1.
前記第2のプログラムに対しては強制設定を可能とする強制設定可否情報を生成し、該強制設定可否情報に基づき、第2の前記機械語オブジェクトを生成し、
前記制御装置は、
前記第2のプログラムにおける第2の変数に対応する第2の制御対象装置に対する強制設定指示を受けた場合に、該強制設定指示と前記第2の機械語オブジェクトとに基づき、前記第2の制御対象装置を制御する、
ことを特徴とする請求項2に記載のコントロールシステム。 The development support device is
For the second program, the compulsory setting enable / disable information that enables the compulsory setting is generated, and based on the compulsory setting enable / fail information, the second machine language object is generated.
The control device is
When a forced setting instruction is received for the second controlled device corresponding to the second variable in the second program, the second control is performed based on the forced setting instruction and the second machine language object. Control the target device,
The control system according to claim 2.
前記強制設定指示の入力を受け付ける1以上の監視装置を備え、
前記強制設定指示が入力された前記監視装置は、
前記強制設定指示を前記制御装置に通知し、
前記制御装置は、
前記強制設定指示と前記第2の機械語オブジェクトとに基づき、前記第2の制御対象装置に対し強制設定を行い、
前記強制設定の対象となった前記第2の制御対象装置についての強制設定支援情報を生成し、該強制設定支援情報を前記1以上の監視装置に対して通知し、
前記1以上の監視装置は、前記制御装置から通知された前記強制設定支援情報を表示する、
ことを特徴とする請求項3に記載のコントロールシステム。 The control system further
It is equipped with one or more monitoring devices that accept the input of the forced setting instruction.
The monitoring device to which the forced setting instruction is input is
Notifying the control device of the forced setting instruction,
The control device is
Based on the forced setting instruction and the second machine language object, the second controlled device is forcibly set.
The forced setting support information for the second control target device that is the target of the forced setting is generated, and the forced setting support information is notified to the one or more monitoring devices.
The one or more monitoring devices display the forced setting support information notified from the control device.
The control system according to claim 3.
前記強制設定可否情報に基づき、前記第1のプログラムから第1の機械語オブジェクトを生成するバックエンドコンパイラと、
前記第1のプログラムにおける第1の変数に対応する第1の制御対象装置を、前記第1の機械語オブジェクトに基づき制御する制御装置に対し、前記機械語オブジェクトを送信する通信部と、
を備えることを特徴とする開発支援装置。 Using the calling relationship between each of the one or more programs in the input source code, for the first program among the one or more programs that is included in the library and the calling program is also included in the library. A front-end compiler that generates information on whether or not forced setting is possible, and a front-end compiler that does not perform forced setting.
A back-end compiler that generates a first machine language object from the first program based on the forced setting availability information, and
A communication unit that transmits the machine language object to a control device that controls the first controlled device corresponding to the first variable in the first program based on the first machine language object.
A development support device characterized by being equipped with.
を備えるコントロールシステムにおいて実行される方法であって、
前記開発支援装置が、
前記1以上のプログラムの各々の間の呼出関係を用いて、前記1以上のプログラムのうち、ライブラリに含まれ、且つ呼出元のプログラムもライブラリに含まれる第1のプログラムに対し強制設定を行わないとする強制設定可否情報を生成し、
前記強制設定可否情報に基づき、前記第1のプログラムから第1の前記機械語オブジェクトを生成し、
前記制御装置が、
前記第1の機械語オブジェクトに基づき、前記第1のプログラムにおける第1の変数に対応する第1の制御対象装置を、強制設定を行わずに制御する、
ことを特徴とするコントロール方法。 A development support device that generates a machine language object from each of one or more programs in the input source code, and a control device that executes the machine language object acquired from the development support device.
A method performed in a control system that comprises
The development support device
Using the calling relationship between each of the one or more programs, the first program among the one or more programs that is included in the library and the calling program is also included in the library is not forcibly set. Generates compulsory setting availability information and
Based on the forced setting availability information, the first machine language object is generated from the first program, and the machine language object is generated.
The control device
Based on the first machine language object, the first controlled device corresponding to the first variable in the first program is controlled without forcibly setting.
A control method characterized by that.
Priority Applications (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| JP2017167210A JP6926841B2 (en) | 2017-08-31 | 2017-08-31 | Control system, development support device, and control method |
Applications Claiming Priority (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| JP2017167210A JP6926841B2 (en) | 2017-08-31 | 2017-08-31 | Control system, development support device, and control method |
Publications (2)
| Publication Number | Publication Date |
|---|---|
| JP2019046052A JP2019046052A (en) | 2019-03-22 |
| JP6926841B2 true JP6926841B2 (en) | 2021-08-25 |
Family
ID=65816562
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| JP2017167210A Active JP6926841B2 (en) | 2017-08-31 | 2017-08-31 | Control system, development support device, and control method |
Country Status (1)
| Country | Link |
|---|---|
| JP (1) | JP6926841B2 (en) |
Families Citing this family (5)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| JP7224261B2 (en) * | 2019-08-30 | 2023-02-17 | 三菱電機株式会社 | Plant monitoring control system |
| JP7020467B2 (en) * | 2019-10-24 | 2022-02-16 | 横河電機株式会社 | Operation monitoring terminal, safety instrumented system, and information display method |
| JP2021101317A (en) * | 2019-12-24 | 2021-07-08 | 株式会社東芝 | Control program management device |
| CN112181370B (en) * | 2020-09-17 | 2023-02-28 | 武汉联影医疗科技有限公司 | Method for generating data interaction relationship, computer equipment and storage medium |
| JP7673490B2 (en) * | 2021-05-21 | 2025-05-09 | オムロン株式会社 | Development support device, control method for development support device, information processing program, and recording medium |
Family Cites Families (7)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| JP2003067015A (en) * | 2001-08-23 | 2003-03-07 | Yokogawa Electric Corp | Sequence controller |
| WO2007096935A1 (en) * | 2006-02-20 | 2007-08-30 | Fujitsu Limited | Program analysis method, program analysis device, and program analysis program |
| JP2008293486A (en) * | 2007-04-25 | 2008-12-04 | Hitachi Ltd | Source code analysis device, analysis program, and analysis method |
| JP6002507B2 (en) * | 2012-08-31 | 2016-10-05 | 日立オートモティブシステムズ株式会社 | Software verification program and software verification system |
| US9430200B1 (en) * | 2015-06-04 | 2016-08-30 | Microsoft Technology Licensing Llc | Cross-library framework architecture feature sets |
| JP2017102528A (en) * | 2015-11-30 | 2017-06-08 | 株式会社日立産機システム | Programmable controller |
| JP6866663B2 (en) * | 2016-02-05 | 2021-04-28 | 富士電機株式会社 | Programmable controller system, programmable controller, support device, HCI device, redundant programmable controller system |
-
2017
- 2017-08-31 JP JP2017167210A patent/JP6926841B2/en active Active
Also Published As
| Publication number | Publication date |
|---|---|
| JP2019046052A (en) | 2019-03-22 |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| JP6926841B2 (en) | Control system, development support device, and control method | |
| US20110131479A1 (en) | Automated form layout based upon usage patterns | |
| JP2015176370A (en) | Control system, method, program and information processor | |
| CN112987658B (en) | Production system, repair system, production method and information storage medium | |
| WO2015121930A1 (en) | Plotting device and control system | |
| CN114358742A (en) | Workflow execution method, device, equipment and storage medium | |
| JP2017142767A (en) | Controller system, variable linkage support device | |
| JPWO2014136228A1 (en) | Programmable controller, programmable controller system, and execution error information creation method | |
| CN107615191B (en) | Debugging device and debugging method | |
| WO2019186778A1 (en) | Work assistance device, work assistance system, work assistance method, and work assistance program | |
| EP3540593A2 (en) | Program development assist system, program development assist method, and program development assist program | |
| JP2017142794A (en) | Programmable controller system, its controller, support device, HCI device, duplex controller system | |
| CN112272821B (en) | Control device and control method | |
| WO2021044654A1 (en) | Information processing system, programmable display device, and information processing device | |
| JP2011186607A (en) | Field device, setting method for the same, field device management method and program | |
| JP2020091766A (en) | Electronic computer, method and program | |
| JP2014199485A (en) | Information processor and information processing program | |
| EP4261678A1 (en) | Generation of a technical instruction | |
| JP7741203B2 (en) | Robot or machine tool simulation device | |
| US11803376B2 (en) | Programming support apparatus for developing a user program to be executed by a programmable logic controller | |
| JP4925514B2 (en) | Program execution control method, program, execution control apparatus, and recording medium by internal / external event driven system | |
| JPWO2014091623A1 (en) | Programmable controller system, its programmable display, support device, program | |
| US11215974B2 (en) | Factory automation (FA) system, controller, and control method | |
| WO2022185670A1 (en) | Development support device, method for controlling development support device, information processing program, and recording medium | |
| JP2006318102A (en) | Field device management apparatus and field device management method |
Legal Events
| Date | Code | Title | Description |
|---|---|---|---|
| A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20200714 |
|
| A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20210628 |
|
| 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: 20210706 |
|
| A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20210719 |
|
| R150 | Certificate of patent or registration of utility model |
Ref document number: 6926841 Country of ref document: JP Free format text: JAPANESE INTERMEDIATE CODE: R150 |
|
| R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
| R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |