JP2017227988A - コントローラシステム、そのコントローラ、支援装置 - Google Patents

コントローラシステム、そのコントローラ、支援装置 Download PDF

Info

Publication number
JP2017227988A
JP2017227988A JP2016122047A JP2016122047A JP2017227988A JP 2017227988 A JP2017227988 A JP 2017227988A JP 2016122047 A JP2016122047 A JP 2016122047A JP 2016122047 A JP2016122047 A JP 2016122047A JP 2017227988 A JP2017227988 A JP 2017227988A
Authority
JP
Japan
Prior art keywords
correction pattern
variable
value
controller
forced
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
JP2016122047A
Other languages
English (en)
Other versions
JP6798156B2 (ja
Inventor
吉原 大助
Daisuke Yoshihara
大助 吉原
純郎 北村
Yoshio Kitamura
純郎 北村
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Fuji Electric Co Ltd
Original Assignee
Fuji Electric Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Fuji Electric Co Ltd filed Critical Fuji Electric Co Ltd
Priority to JP2016122047A priority Critical patent/JP6798156B2/ja
Publication of JP2017227988A publication Critical patent/JP2017227988A/ja
Application granted granted Critical
Publication of JP6798156B2 publication Critical patent/JP6798156B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Landscapes

  • Programmable Controllers (AREA)

Abstract

【課題】任意の変数に対する強制設定を解除する際に、システムの動作に支障が発生しないように通常値に戻す。
【解決手段】支援装置10は、プログラムの任意の変数に関連する補正パターンが、当該変数の割当メモリアドレスに対応付けて登録されたアドレス−補正パターン対応表25を生成してコントローラ30に転送してアドレス−補正パターン対応表34として記憶させる。コントローラ30は、任意のメモリアドレスに係わる強制設定を解除する際、アドレス−補正パターン対応表34を参照して、関連する補正パターンが登録されている場合には、この補正パターンを実行することで、例えば上記メモリアドレスの格納値を段階的に強制設定値から通常値に戻すようにする。
【選択図】図1

Description

本発明は、プログラマブルコントローラシステムに関する。
ソフトウエア開発でデバッグを実施する時、プログラム動作の確認のため変数の値を書き換えて実施することがある。この一例として、特許文献1に示すように、内部変数とプログラムの一部を書き換える方法がある。また、プラントシステムの稼働中に一部の計器などが故障して正常な値が取り込めない状態では、システムの正常稼働に影響が発生するため、一時的に値を強制的に書き換えて、システムの稼働を継続することが求められる。
このような場合、オペレータが監視画面から変数の値の書き換えを実施する必要があり、変数の値を書き換えた後、異常要因が無くなれば解除する必要があるが、強制設定を解除して通常値に直ちに戻すと、場合によっては、システムの運用に支障が発生する可能性がある。しかし、従来技術では、強制設定を解除すると直ちに通常値に戻している。
尚、通常は、上記変数の値として上記通常値が書き込まれる。これは、変数に割り当てられた記憶領域に書き込まれる。そして、この記憶領域の格納データを用いて何等かの処理が行われる。通常値が例えば任意のセンサの計測値である場合、何等かの原因でセンサ計測値が異常となった場合、これを上記記憶領域に書き込むと、上記処理結果が異常となる。この為、この様な場合、上記記憶領域の格納データを強制的に所定値(強制設定値)に書き換える。
上記のように、プラントシステムの稼働中に一部の計器などが故障して正常な値が取り込めない状態では、システムの正常稼働に影響が発生するため、一時的に値を強制的に書き換えて、システムの稼働を継続することが求められる。
プラントシステムの稼働中に一部の計器などが故障して正常な値が取り込めない状態になったら、この値を強制的に書き換えることで対応する。例えば、システム稼動中、コントローラには各計器(センサなど)の計測値が入力され、各計器に対して予め割り当てられているメモリ領域に、計測値が格納される(データ収集する)。この様なデータ収集処理は例えば定周期で実行され、以って定周期で上記各メモリ領域の格納データが更新されることになる。
稼動中に任意の計器が故障等すると、故障した計器に対応する変数のメモリ領域には、異常値が格納されることになり、以ってこのメモリ領域の値を用いる何らかの処理に、悪影響が生じる可能性がある。これを避ける為に上記のように値を強制的に書き換えることで、システム稼働を継続できる。これは、例えば、故障した計器に対応するメモリ領域に、所定の設定値を書き込むものである。
しかしながら、これによってシステム稼働を継続することで、上記定周期のデータ収集処理も続行されるので、上記故障した計器に対応するメモリ領域には再び異常値が格納されてしまうことになる。
特開2010-122824号公報
従来では、強制的に書き換えた値を戻す場合(異常状態が解消され、強制設定を解除する場合)、単純に直ちに通常値に戻している。これは、例えば、現在の上記センサ計測値を、上記記憶領域に書き込んでいる。異常状態が解消されているので、通常値は正常な値であるはずであり、これ自体は問題ない。
しかし、場合によっては、強制的に書き込みした値(強制設定値)と解除した値(通常値)の差が大きい場合、システムの動作に支障をきたす可能性がある。しかし、システムに対して強制設定解除による支障発生の有無は、ユーザが定義した変数(メモリ)の役割に依存する。そのため、一律でシステムに支障が発生しない強制設定解除を実現することは困難である。
本発明の課題は、任意の変数に対する強制設定を解除する際に、場合によってはこの変数に応じた補正パターンを用いて、システムの動作に支障が発生しないように通常値に戻すことができるコントローラシステム、その支援装置、コントローラ等を提供することである。
本発明のコントローラシステムは、支援装置とコントローラを有するコントローラシステムであって、コントローラは下記の各手段を有する。
・1以上の補正パターンを記憶する補正パターン記憶手段;
・プログラム中の任意の変数と任意の前記補正パターンとの対応関係が記憶される対応関係記憶手段;
・任意の変数に対する強制設定が行われる場合、該変数に割り当てられたメモリアドレスに強制設定値を格納する強制設定手段;
・前記変数への前記強制設定が解除される場合、前記プログラムの実行に伴って、前記対応関係記憶手段に該解除対象の変数に対応する前記補正パターンがある場合には、該補正パターンを実行する強制設定解除手段。
本発明のコントローラシステム、その支援装置、コントローラ等によれば、任意の変数に対する強制設定を解除する際に、場合によってはこの変数に応じた補正パターンを用いて、システムの動作に支障が発生しないように通常値に戻すことができる。
本例のコントローラシステムの構成図である。 システム構成設定画面例である。 (a)、(b)は機器−補正パターン対応表、(c)はアドレス−補正パターン対応表の具体例を示す。 補正パターンの具体例を示す図である。 強制ONアドレス一覧のデータ構成例である。 強制設定コマンド受信の際の処理フローチャート図である。 強制設定の解除コマンド受信の際の処理フローチャート図である。 書込み処理に係わる処理を示すフローチャート図(その1)である。 書込み処理に係わる処理を示すフローチャート図(その2)である。 テンプレート(機器−補正パターンDB)の具体例である。
以下、図面を参照して本発明の実施の形態について説明する。
図1は、本例のコントローラシステムの構成図である。
図示の例のコントローラシステムは、支援装置10、コントローラ30等を有する。
尚、支援装置10やコントローラ30は、ネットワーク1に接続されており、ネットワーク1を介して相互にデータ送受信可能となっている。また、尚、コントローラ30は、PLCの制御装置であってもよいし、DCS(分散制御システム;distributed control system)の制御装置であってもよい。
支援装置10は、ユーザにプログラム開発環境を提供するコンピュータ装置(ローダ等)である。支援装置10は、所定のアプリケーションプログラムをコンピュータで実行することで実現される各種処理機能等を有する。これは、例えば、ユーザにコントローラ30用の任意のプログラムのソースコード13を記述させる為のユーザインターフェース機能を有する。また、ユーザが作成したソースコード13をターゲット上で動作する機械語オブジェクト15に変換するコンパイラ機能(フロントエンドコンパイラ11、バックエンドコンパイラ12)を有する。更に、生成された機械語オブジェクト15をターゲットに送信する通信機能を有する。これら各機能は基本的には既存の一般的な機能であるので、コンパイラ機能以外については特に図示せず、上記簡単な説明のみとする。
上記プログラム開発環境上でユーザによって記述されたソースコード13は、フロントエンドコンパイラ11によって中間コード14に変換される。バックエンドコンパイラ12は、生成された中間コード14を、ターゲット上で動作する機械語オブジェクト15に変換する。尚、ターゲットとは、例えばコントローラ30である。この機械語オブジェクト15のファイルは、上記不図示の送信機能によりターゲットに送信される。また、“中間コード”については、例えば特開2013-084112号公報などで説明されている。
また、上記コンパイラ機能(フロントエンドコンパイラ11、バックエンドコンパイラ12)は、上記変換処理に伴って、上記ソースコード13に記述されている各変数に対して任意のメモリアドレスを割り当てる。これは、例えば、コントローラ30のメモリ32内の任意の記憶領域のアドレスを割り当てるものであり、この処理も既存機能であるので、特に詳細には説明しない。そして、この様な変数へのアドレス割当て結果を、変数−アドレス対応表16に記録しておく。
変数−アドレス対応表16の具体例は特に図示しないが、例えば上記ソースコード13に記述されている各変数の変数名などに対応付けて、その変数に割り当てられたアドレスが格納されたテーブル等である。変数名が、上記計器や機器の名称等とされている場合もある。
更に、制御対象機器の構成を定義するために、システム構成定義設定部22の機能を使用して、ユーザがシステム構成の定義や各機器の設定を任意に実施するようにしてもよい。この機能自体も既存の機能であるので、特に詳細には説明しない。
上述したように、例えば一例として、任意の計器が故障等すると、故障した計器に対応する変数のメモリ領域には、異常値が格納されることになり、以ってこのメモリ領域の値を用いる何らかの処理に、悪影響が生じる可能性がある。この為、システムの正常稼働に影響が発生するため、一時的に変数の値(対応するメモリ領域の格納データ)を強制的に所定値に書き換えて(強制設定を行って)、システムの稼働を継続することが求められる。しかしながら、上述したように、この強制設定の解除の際に問題が生じる場合がある。
ある変数に係わる強制設定を解除する際に単純に解除を実施するとシステムに支障が発生すると開発者等が判断した場合、開発者等は予めその変数に対して安全に解除を実施するための補正パターンを関連付ける。この補正パターンは予め作成済みのものを選択して関連付けるようにしてもよいし、ユーザがオリジナルの補正パターンを作成して関連付けるようにしてもよい。
上記任意の変数に対する任意の補正パターンの関連付け結果は、機器−補正パターン対応表24に反映されるようにしている。機器−補正パターン対応表24は、例えばユーザが手作業で作成する。
支援装置10は、上記のようにコンパイル機能で変数に任意のメモリアドレスを割り付けるが、本手法では更に、このメモリアドレスと補正パターンとの対応情報(アドレス−補正パターン対応表25)を生成する。これは、例えば、上記機器−補正パターン対応表24などに基づいて、アドレス−補正パターン対応表25を生成するものであるが、この例に限らない。
上記機器−補正パターン対応表24を作成させる機能やアドレス−補正パターン対応表25を生成する処理は、例えば上記コンパイラ機能が実現してもよいし、不図示の他の処理機能部が実現してもよい。何れにしても支援装置10が有する何等かの機能部が実現することになる。尚、この様な処理機能を含む上述した各種処理機能は、図示/不図示に関係なく全て、支援装置10の不図示の演算プロセッサが、不図示の記憶部に記憶されている所定のアプリケーションプログラムを実行することにより実現される。
また、支援装置10は、更に不図示の監視・指示機能を備えるものであってもよい。
この監視・指示機能は、コントローラ30の状態をモニタする既存機能に加えて、更に以下に説明する機能を有する。尚、上記既存のモニタ機能は、コントローラ30側の既存機能である異常検出機能と連動して、異常があった場合に異常個所や対応するメモリアドレスなどを画面上に表示する異常通知機能や、この異常が解消されて正常に戻ったことを画面上に表示する復旧通知機能等である。正常に戻った場合も、該当する箇所や対応するメモリアドレス等も画面上に表示する。あるいは、上記メモリアドレスだけでなく対応する変数(変数名など)も表示するようにしてもよい。変数−アドレス対応表16を参照すれば、メモリアドレスに対応する変数名が分かる。
そして、本例の監視・指示機能では、更に、ユーザに任意の入力操作を行わせて、それに応じて後述する強制書き込みコマンドや強制設定の解除コマンドを、コントローラ30に送信する処理機能も有する。
この処理機能は、例えば、強制書込み対象のアドレスと、このアドレスに強制的に書き込ませる値(強制設定値)を、ユーザに任意に入力させる。ユーザは、例えば、上記異常通知機能による表示があると、表示されたアドレスを、上記強制書込み対象のアドレスとして入力する。また、強制設定値はユーザが任意に決めて入力する。これより、支援装置10は、これら入力されたアドレスと強制設定値を含む上記強制書き込みコマンドを生成してコントローラ30に送信する。
また、上記処理機能は、例えば、強制設定解除対象のアドレスを、ユーザに任意に入力させる。ユーザは、例えば、上記復旧通知機能による表示があると、表示されたアドレスを、上記強制設定解除対象のアドレスとして入力する。これより、支援装置10は、入力されたアドレスを含む上記強制設定の解除コマンドを生成してコントローラ30に送信する。
尚、支援装置10は、ハードウェア的には例えばパソコン等の汎用コンピュータであり、例えば一般的なパソコン等のハードウェア構成を有している。よって、特に図示しないが、例えばCPU等の上記演算プロセッサ、ハードディスク、メモリ等の上記記憶部、液晶ディスプレイ等の表示部、キーボード、マウス等の操作部、通信機能部等を有している。記憶部には予め上記所定のアプリケーションプログラムが記憶されている。
尚、同様に、コントローラ30も、特に図示しない演算プロセッサや記憶部等を有しており、記憶部には予め所定のアプリケーションプログラムが記憶されている。演算プロセッサがこのアプリケーションプログラムを実行することで、コントローラ30の後述する各種機能が実現される。
上記生成したアドレス−補正パターン対応表25は、コントローラ30に転送して図示のアドレス−補正パターン対応表34として記憶させる。
また、図には示していないが、支援装置10は、上記各種補正パターンを記憶している。そして、例えば、アドレス−補正パターン対応表25に登録されている補正パターンは全て、上記対応表25の転送の際に一緒にコントローラ30に転送して記憶させるようにしてもよい。これより、コントローラ30も補正パターンを記憶している。
尚、補正パターンは後述する一例のようにプログラム部品(サブルーチン等)であり、例えばコンパイルしてコントローラ30で実行可能な形式に変換してからコントローラ30に転送する。
上記アドレス−補正パターン対応表25は、上記変数−アドレス対応表16と機器−補正パターン対応表24に基づいて、例えばコンパイラ機能によって自動的に生成される。機器−補正パターン対応表24は、例えば開発者等が予め作成しておく。作成の際に例えばシステム構成情報23を利用するようにしてもよいが、この例に限らない。
尚、上記アドレス−補正パターン対応表25、機器−補正パターン対応表24や、後述する強制ONアドレス一覧35は、後に具体例を示して説明する。
また、コントローラ30は、強制ONアドレス一覧35を保持している。支援装置10から任意のアドレスに対する任意の強制設定値の上記強制書き込み指示(コマンド)があると、このアドレスと強制設定値を強制ONアドレス一覧35に登録すると共に、メモリ32における当該アドレスに強制設定値を書き込む。その後、支援装置10から強制設定の解除コマンドが来るまでの間は、メモリ32の当該アドレスには強制設定値が格納された状態を維持する。
そして、コントローラ30は、任意のメモリアドレスに対する上記強制設定の解除コマンドを受信した時、アドレス−補正パターン対応表34を参照して(更に強制ONアドレス一覧35も参照/更新しつつ)、該当する補正パターンがある場合にはこの補正パターンの処理を実行することで、例えば段階的な解除を実施する。段階的な解除とは、上記強制設定値が格納されているメモリアドレスの格納データを、強制設定値から通常値に直ちに戻すのではなく、強制設定値から徐々に通常値に近づけていくことを意味する。
尚、通常値とは、上述したように、機械語オブジェクト33中の任意の変数に係わる処理結果として得られる値(例えば任意のセンサの計測値など)であり、通常時はこの変数に対応するメモリアドレスには通常値が書き込まれる。
コントローラ30側に(その制御対象機器やセンサ等に)何等かの問題が生じた場合、上記通常値が異常値になり、対応するメモリアドレスには異常値が書き込まれ、以って制御動作に異常が生じる可能性がある。この様な事態が発生することを阻止する為に、この様な場合に該当するメモリアドレスに強制的に所定値(強制設定値)を書き込むと共に、異常状態が解消するまではその状態を維持する。
すなわち、上記何等かの異常が生じた場合、コントローラ30は、支援装置10から該当するメモリアドレスと強制設定値が送られてくると、このメモリアドレスと強制設定値を強制ONアドレス一覧35に登録すると共に、このメモリアドレスに強制設定値を書き込む。コントローラ30は、随時、制御プログラム(機械語オブジェクト33)を実行し、この実行によりメモリ32からのデータ読出し、メモリ32へのデータ書込み等の処理を含む様々な処理を実行している。
そして、任意のメモリアドレスへのデータ書込み処理が発生する毎に、書込先のアドレスが「強制ONアドレス一覧」35に存在するか否かをチェックし、存在する場合には、書き込みを実施しないことで、強制的にメモリ格納値を所定値(上記強制設定値)に維持する。この時、本来ならメモリに書き込むべき値(上記“通常値”に相当;以下、ソース値と記す場合もある)は、アキュムレータに格納されている。上記のように異常状態ではソース値は異常値となっている可能性が高いが、強制設定解除時にはソース値は正常値に戻っているはずである。しかしながら、例えばソース値と強制設定値との差が大きい場合など、直ちにソース値に戻すと問題が生じる場合があり得る。これより、本手法では、該当するメモリアドレス(これに対応する変数)に応じた補正パターンを用いて、ソース値や強制設定値等に基づいて、メモリアドレスの格納データ値を決定する。これは、例えば、強制設定値から段階的に(徐々に)ソース値に近づけるように、メモリアドレスの格納データ値を決定する。
尚、上述した(更に後述する)コントローラ30の各種処理は、例えばプログラム実行管理部31が行っても良いが、この例に限らず、不図示の何等かの処理機能部が行っても良い。プログラム実行管理部31は、基本的には制御プログラム(機械語オブジェクト33)を定周期で実行させる既存機能を有する。そして、更に、例えば、この制御プログラム実行に伴って生じる処理(例えば強制ONアドレス一覧35の更新など)を行うようにしてもよい。あるいは、更に、上記支援装置10からのコマンドに応じた処理を行うようにしてもよい。また、後述する図6、図7、図8、図9の処理は、プログラム実行管理部31が実行するものとしてもよいし、この例に限らず、不図示の何等かの処理機能部が行っても良い。
以下、具体例を示して更に詳細に説明する。
支援装置10は、既存の機能としてシステム構成定義設定部22の機能も有しており、ユーザは、この機能を利用して、コントローラ30が制御する機器の構成の設定を、任意に行うことができる。図2には、この様な機器のシステム構成設定画面例を示す。図2の例では、コントローラが制御する機器が、サーボ1台、入力アナログ機器1台、インバータ1台の構成である。
ユーザは、例えばプログラム(ソースコード13)作成の際に任意の変数名を付ける。例えば各機器の情報にアクセスするために変数名を付ける。上記コンパイラ機能は、ソースコード13をコンパイルして機械語オブジェクト15を生成する際に、各変数に対して任意のメモリアドレスを割当てて、この割当結果を上記変数−アドレス対応表16に登録する。ここまでは既存技術であるが、本手法では更に、例えば予め開発者等が、任意の補正パターンを作成すると共に、これに応じて機器−補正パターン対応表24を作成する。
まず、補正パターン作成に関しては、例えば、サーボで位置制御している場合は、指令値を強制的に設定した場合、コントローラが演算した結果の指令値との差が著しい状態で強制設定を解除するとシステムの動作に支障がでる可能性がある。そこで、強制設定の解除をいきなり実施するのではなく、強制設定値をソース値に段階的に近づけていく補正パターンを、予め作成しておく。
尚、必ずしも全ての変数(機器)に関して補正パターンを作成する必要はない。例えば、水位センサの場合、センサの故障時には強制的に値を設定するが、故障が解消された後は、すぐに現在の値で制御しても問題無いと考えられるので、補正パターンを作成する必要はない。
補正パターンとは、例えば、強制設定の解除の際に、ソース値と強制設定値に基づいて、システムの動作に支障が出ないように、強制設定値から徐々にソース値に近づける処理である。この処理は、予め決められた補正パターンから選択する場合や、ユーザのプログラミングによる補正パターンを実行することも可能である。
補正パターンの設定は、図2上の機器毎の設定としてユーザに指定させるか、機器の一覧表で設定する方法がある。例えば一例としては、システム構成定義設定部22の機能により、「機器(変数名)」「属性」「機器識別情報」等をユーザに任意に設定させ、この機器(変数)に関連する補正パターンを設定させると、機器−補正パターン対応表24が生成される。勿論、この例に限るものではなく、例えば図3(a)、(b)に示す構成のテーブルを画面上に表示して、このテーブル内の任意の欄に任意のデータを、ユーザに入力させることで、機器−補正パターン対応表24をユーザに手作業で作成させるようにしてもよい。
図3(a)(b)に、機器−補正パターン対応表24の具体例を示す。
図示の例では、機器−補正パターン対応表24は、機器(変数名)41、属性42、機器識別情報43、アドレス44、補正パターン45の各データ項目より成る。
ソースコード13に記述されている各変数のなかで、ユーザが補正パターンを用いる必要があると判断した変数全てについて、機器−補正パターン対応表24に登録される。つまり、この様な変数それぞれについて、その変数名が機器(変数名)41に登録されると共に、少なくともその変数に対応付けられた補正パターンの識別情報(ファイル名等)が補正パターン45の欄に格納される。また、その変数に係わる所定の情報(図示の例では属性42、機器識別情報43)も更に格納されてもよいが、これらは本説明上は無くてもよいので、特に説明しない。
また、アドレス44の欄は、上記ユーザによる登録の際には空欄となっており(図3(a)はこの未完成状態を示している)、その後、ソースコード13のコンパイルの際にその変数に割り当てられたメモリアドレスが、コンパイル機能によってアドレス44の欄に自動的に格納される。これによって、機器−補正パターン対応表24は、図3(b)に示すような完成状態となる。あるいは、既に生成済みの変数−アドレス対応表16を用いて、アドレス44の欄に上記メモリアドレスを格納することで、機器−補正パターン対応表24を上記完成状態とするようにしてもよい。
尚、上記メモリアドレス割当に伴って変数−アドレス対応表16が作成され、これは上述したように各変数の変数名に対応付けて、その変数への割当メモリアドレスが登録されているものである。この変数と割当メモリアドレスとの対応関係は、上記の通り機器−補正パターン対応表24に含まれているが、対応表24に登録される変数は補正パターンが関連付けられたものであるのに対して、対応表16には基本的に全ての変数について登録されるという違いはある。
また、尚、コンパイラ機能による各変数へのメモリアドレス割当て処理は、既存の処理であり、ここではアドレス決定方法については特に説明しない。
支援装置10は、例えば上記機器−補正パターン対応表24からアドレス−補正パターン対応表25を生成して、これをコントローラ30に転送する。コントローラ30は、これを図示のアドレス−補正パターン対応表34として記憶する。
図3(c)にアドレス−補正パターン対応表25(34)の具体例を示す。
図示の例では、アドレス−補正パターン対応表25(34)は、アドレス51、補正パターン52、実行中フラグ53の各データ項目より成る。
機器−補正パターン対応表24から上記アドレス44と補正パターン45を取得してアドレス51と補正パターン52に格納することで、アドレス−補正パターン対応表25(34)が生成される。尚、実行中フラグ53は、コントローラ30側で後述する処理中に設定/参照/更新されるものであるが、代わりに強制ONアドレス一覧35の実行中フラグ65を用いてもよいので、実行中フラグ53は必ずしも必要ない。実行中フラグ53(65)の利用方法については、詳しくは後述する。
ここで、ユーザが補正パターンを定義する例について記載する。
上記の通り、補正パターンは、ユーザが所望の内容のものを自由に作成してよい。
図4に、補正パターンの一例を示す。補正パターンは、コントローラ30側で実行させるプログラム部品である。
図4に示す補正パターンの具体例は、強制ONアドレス一覧35を利用するものであって、強制ONアドレス一覧35が例えば図5に示す内容であることを前提としている。
これより、図4の補正パターンの説明の前に、図5について簡単に説明しておく。
図5は、強制ONアドレス一覧35のデータ構成例である。
図5の例では、強制ONアドレス一覧35は、管理番号61、強制ONメモリアドレス62、ソース値63、補正パターン64、実行中フラグ65、強制設定値66、実行回数67、開始時刻68の各データ項目より成る。尚、管理番号61は各レコードに付されるシリアル番号等である。
任意のメモリアドレスに係わる何等かの異常が発生すると、支援装置10はコントローラ30に対して上記強制書き込みコマンド(強制設定コマンドと言う場合もあるものとする)を送信する。この強制設定コマンドには上記異常に係わるメモリアドレスと、支援装置10側でユーザが任意に設定した強制設定値が含まれている。強制設定コマンド中のこれらのデータが、強制ONアドレス一覧35の強制ONメモリアドレス62と強制設定値66の欄に格納される。更に、この強制ONメモリアドレス62に対応する補正パターンの名称などをアドレス−補正パターン対応表34から取得して、補正パターン64に格納する。対応する補正パターンが無い場合には、補正パターン64には“無し”を格納する。
強制ONアドレス一覧35には、基本的には、強制設定を実行中の変数に関する所定の情報が格納されるのであり、強制設定が完全に解除された変数の情報は強制ONアドレス一覧35から削除される。但し、本手法では、補正パターンがある場合には、解除コマンドを受信してから強制設定が完全に解除されるまでにある程度時間が掛かる場合があり、その間、強制ONアドレス一覧35を参照/更新しながら後述する解除時の処理(図8、図9)が実行される。解除コマンドには、例えば、解除対象の変数に係わるメモリアドレスが含まれる。
デフォルト状態では、開始時刻68は“NULL”であり、実行回数67は‘0’であり、実行中フラグ65は“FALSE”である。コントローラ30は、上記強制設定の解除コマンドを受信すると、強制ONアドレス一覧35の該当レコード(その強制ONメモリアドレス62が、上記解除対象のメモリアドレスと一致するレコード)について、その補正パターン64に何等かの補正パターンの名称等が格納されている場合には、この補正パターン64の処理を開始する。その際、開始時刻68に現在時刻を格納すると共に、実行中フラグ65を“FALSE”から“TRUE”に変更し、アキュムレータの値をソース値63に格納する。
その後、補正パターン64の処理を繰り返し実行するが、仮に補正パターン64が図4の内容である場合には、処理実行後に、まず引数として、ソース値63と強制設定値64と実行回数67と経過時間を取得する。経過時間は、現在時刻−開始時刻68により求める。
そして、上記引数を用いて、図示の処理を実行することになる。すなわち、未だ実行回数67が規定値(=10)に達していないならば、新設定値の値を「強制設定値66−(強制設定値66−ソース値63)/(10−実行回数67)」によって求める。また、実行中フラグ65は“TRUE”を維持する。一方、実行回数67が規定値(=10)に達したならば、新設定値の値はソース値とし、実行中フラグ65を“FALSE”に戻す。
この様に、図示例は、新設定値を、10分割でソース値に近づけ、10回目でソース値になり補正パターンの実行をやめる例である。
尚、上記新設定値とは、上記解除対象のメモリアドレスに格納する値である。上記の例では、上記解除対象のメモリアドレスに格納する値を、強制設定値66から徐々にソース値63に近づけていき、最終的にはソース値63となるようにしている。
以下、図6〜図9のフローチャート図について説明する。
図6、図7、図8、図9は、何れも、コントローラ30で実行される処理である。
図6は、強制設定コマンド受信の際の処理フローチャート図である。
支援装置10は、上記の通り、任意の変数について何等かの異常があった場合、上記強制設定コマンドをコントローラ30へ送信する。これを受けてコントローラ30は、上記のように、このコマンド中の所定の情報を強制ONアドレス一覧35に新規登録する(ステップS11)。これについては既に説明済みであり、ここでは簡単に説明するならば、強制ONアドレス一覧35に新規レコードが追加されると共にコマンド中のアドレスと強制設定値が、新規レコードの強制ONメモリアドレス62と強制設定値66の欄に格納される。
続いて、インデックスを初期値(=1)に設定し(ステップS12)、ステップS13以降の処理を、ステップS14またはS15がYESとなるまで、インデックスを更新しつつ繰り返し実行する。尚、インデックスは、アドレス−補正パターン対応表34における現在の処理対象レコードを示すものであり、例えばインデックス=2は、アドレス−補正パターン対応表34における2番目のレコードを示す。
まず、アドレス−補正パターン対応表34から、現在のインデックスが示すレコードのアドレス51を取得し(ステップS13)、このアドレス51がNULLである場合には(ステップS14,YES)、本処理を終了する。
尚、対応表34では、登録レコード群の次のレコード(最後のレコード)のアドレス51がNULLとなるようにしてある。これより、ステップS13でアドレス51がNULLである場合とは、対応表34の全ての登録レコードについてステップS15の判定済みであり且つ全て判定結果がNOであった場合であり、つまり、上記新規登録した変数については対応する補正パターンが無い場合である。よって、この場合には、強制ONアドレス一覧35における上記新規登録レコードの補正パターン64は“無し”となり、これより解除の際には直ちにソース値に戻される。
また、上記ステップS13で取得したアドレス51が、新規登録アドレス(上記新規レコードの強制ONメモリアドレス62)と一致するか否かをチェックし(ステップS15)、一致する場合にはステップS16の処理を実行して本処理を終了する。
ここで、本例では上記インデックスは最初は‘1’であり、最初はアドレス−補正パターン対応表34の先頭レコードのアドレス51を取得し(ステップS13)、これが上記新規登録アドレスを一致するか否かをチェックする(ステップS15)。不一致であれば(ステップS15,NO)、インデックスを+1インクリメントして処理対象を更新してステップS13に戻る。上記一例では、今度はアドレス−補正パターン対応表34の2番目のアドレス51を取得し(ステップS13)、これがNULLか否かをチェックしたり(ステップS14)、NULLでなければ上記新規登録アドレスと一致するか否かをチェックすることになる(ステップS15)。
この様にして、新規登録アドレスがアドレス−補正パターン対応表34に登録されているか否かをチェックし、登録されている場合にはステップS16の処理を実行する。ステップS16では、該当するアドレス(上記一致するアドレス51)に対応する補正パターン52(ファイル名等)を、ステップS11で強制ONアドレス一覧35に新規追加したレコードにおける補正パターン64の欄に格納すると共に、当該レコードの実行中フラグ65は“FALSE”に設定する。
この様にして、強制設定コマンド受信毎に、強制ONアドレス一覧35に新規レコードを追加すると共に、この新規レコードの強制ONメモリアドレス62、補正パターン64、実行中フラグ65、強制設定値66に、上記のようにデータが設定される。
支援装置10のユーザが、上記強制設定を行った変数に係わる異常が解消した等と判断した場合、所定の操作を行うことで、支援装置10は強制設定の解除コマンドをコントローラ30へ送信する。この解除コマンドには解除対象の変数のメモリアドレスが含まれている。
コントローラ30は、上記解除コマンドを受信すると、図7の処理を実行する。
図7は、強制設定の解除コマンド受信の際の処理フローチャート図である。
図7の処理では、まず、インデックスを初期値(=1)に設定し(ステップS21)、ステップS22以降の処理を、ステップS23またはS24がYESとなるまで、インデックスを更新しつつ繰り返し実行する。尚、本処理におけるインデックスとは、強制ONアドレス一覧35における現在の処理対象レコードを示すものとなる。
まず、強制ONアドレス一覧35から、現在のインデックスが示すレコードの強制ONメモリアドレス62を取得し(ステップS22)、このアドレス62がNULLである場合には(ステップS23,YES)、本処理を終了する。
このアドレス62がNULLではなく(ステップS23,NO)且つ上記解除コマンドのアドレスと一致する場合には(ステップS24,YES)、強制ONアドレス一覧35の処理対象レコードの実行中フラグ65を“TRUE”に設定する。
上記アドレス62が上記解除コマンドのアドレスと不一致の場合には(ステップS24,NO)、インデックスを+1インクリメントして(ステップS26)ステップS22に戻る。解除コマンドのアドレスが、強制ONアドレス一覧35に登録されていない場合に、上記ステップS23の判定がYESとなることになる。図5の例では、処理対象が3番目のレコードとなったときに、ステップS23の判定がYESとなる。
上記図7の処理例では、解除対象の変数が、強制ONアドレス一覧35に登録されている場合には、該当レコードの実行中フラグ65を“TRUE”に設定する。実行中フラグ65を“TRUE”に変更することは解除処理の開始を意味する。
コントローラ30は、機械語オブジェクト33を例えば定周期で繰り返し実行する。機械語オブジェクト33を実行することで様々な処理を行い、その中で任意のメモリアドレスへの書込み処理が発生する毎に図8、図9の処理を実行する。
図8、図9は、書込み処理に係わる処理を示すフローチャート図(その1)、(その2)であり、1つの処理を2つの図面に分けて示している。よって、図8と図9を特に区別せずに纏めて図8等などと記すものとする。
図8等の処理では、まず、書込み先のメモリアドレスが強制ONアドレス一覧35に存在するか否かをチェックし(ステップS31)、存在しない場合には(ステップS31,NO)書込み先アドレスは強制設定中ではないことになるので、通常のメモリ書込み処理を実行して(ステップS32)本処理を終了する。通常のメモリ書込み処理とは、上記通常値を上記書込み先のメモリアドレスに格納する処理である。通常値はアキュムレータに格納されている。
一方、書込み先のメモリアドレスが強制ONアドレス一覧35に存在する場合には(ステップS31,YES)、書込み先アドレスは強制設定中であることになる。その場合、まず、強制ONアドレス一覧35における該当レコードの実行中フラグ65が“TRUE”であるか否かをチェックする(ステップS33)。
そして、上記実行中フラグ65が“FALSE”である場合には(ステップS33,NO)、メモリへの書込みを実施することなく(ステップS35)本処理を終了する。この場合は、書込み先アドレスは強制設定中であり且つ未だ解除は始まっていない状態であるからである。尚、その際、現在のアキュムレータの格納データ(通常値)を、強制ONアドレス一覧35における該当レコードのソース値63の欄に格納するようにしてもよい(ステップS34)。尚、通常の書込み処理は、現在のアキュムレータの格納データを、書込み先のメモリアドレスに書き込む処理となる。
尚、上記該当レコードとは、その強制ONメモリアドレス62が上記書込み先のメモリアドレスと一致するレコードである。
一方、上記該当レコードの実行中フラグ65が“TRUE”である場合には(ステップS33,YES)、まず、該当レコードの補正パターン64の欄に補正パターンがあるか否かをチェックし(ステップS36)、補正パターンが“無し”の場合には(ステップS36,NO)、該当レコードを強制ONアドレス一覧35から削除して(ステップS37)本処理を終了する。これより、その後、このメモリアドレスへの書込み処理に伴う図8等の処理が実行されると、今度はステップS31がNOとなり、通常のメモリ書込み処理が行われることになる。つまり、このケースでは従来通りの単純な強制設定解除が行われることになる。ステップS37の処理の際に、上記通常の書込み処理も行うようにしてもよい。
一方で、該当レコードに補正パターンが登録されている場合には(ステップS36,YES)、ステップS38〜ステップS46の処理を実行したうえで、もしステップS46の判定がNOであれば上記ステップS37の処理が行われて、解除処理が完了することになる。換言すれば、ステップS46がNOとなるまでの間は、本手法による段階的な解除処理の途中の状態であると言える。
まず、ステップS38で、現在時刻を取得する。そして、強制ONアドレス一覧35の該当レコードの開始時刻68がNULLである場合すなわち未だ段階的な解除処理が開始されていない場合には(ステップS39,YES)、現在時刻を開始時刻68に格納し(ステップS40)、以って段階的な解除処理の開始とする。一方、開始時刻68がNULLではない場合には(ステップS39,NO)、「現在時刻−開始時刻68」によって開始からの経過時間を求める(ステップS41)。尚、ステップS41の処理はステップS40を実行する場合にも行うが、当然、この場合は経過時間は‘0’となる。
そして、上記該当レコードの補正パターン64(ファイル名など)に基づいて、該当する補正パターン(そのプログラムファイル等)を獲得し(ステップS42)、また、現在のアキュムレータの格納データを上記該当レコードのソース値63の欄に上書き格納する(ステップS43)。尚、ステップS43の処理は段階的な解除処理の開始時(ステップS40の処理が行われたとき)のみ実行するようにしてもよい。
そして、上記ステップS42で獲得した補正パターンを実行する(ステップS44)。補正パターンが上記図4の例の場合、上記強制ONアドレス一覧35の上記該当レコードのソース値63、強制設定値66、実行回数67、及びステップS41で求めた経過時間を、引数として、図4に示す処理を実行する。この処理については説明済みである。
そして、補正パターンを実行したら、所定の後処理を実行する(ステップS45)。後処理は、例えば、実行回数67の更新(+1インクリメント)、実行中フラグ65の更新などである。このうち、実行中フラグ65の更新に関しては、図4の例の場合、実行回数が未だ規定値(=10)に達していない場合には現状(=“TRUE”)を維持し、実行回数が規定値に達したら“FALSE”とする。
これより、ステップS45に続くステップS46の「実行中フラグ65は“TRUEか?”」の判定は、実行回数が未だ規定値(=10)に達していない場合にはYESとなってそのまま本処理を終了することになり、実行回数が規定値に達したらNOとなって上記ステップS37の処理を実行することになる。ステップS37では、上記の通り、上記該当レコードを強制ONアドレス一覧35から削除することになり、以って段階的な解除処理が完了することになる。
尚、上述した処理は一例を示すものであり、この例に限らない。例えば、上述した一例では処理の終了判定に“実行回数”を用いた。つまり、実行回数67が規定値(=10)に達したら実行中フラグ65を“FALSE”とすることで、ステップS46の判定がNOとなるようにしていたが、“実行回数”の代わりに上記“経過時間”を用いるようにしてもよい。つまり、経過時間が、予め設定される所定時間Tを越えたら(経過時間>T)、実行中フラグ65を“FALSE”とするようにしてもよい。勿論、これも一例であり、この例に限らず、例えば“実行回数”と“経過時間”の両方を用いて何等かの終了判定を行うようにしてもよい。
また、上記補正パターンは、上述した一例では、解除対象の変数に係わるメモリアドレスの格納値を、強制設定値から徐々に(段階的に)通常値に近づけていき、最終的には通常値に戻す処理としたが、この例に限らない。補正パターンは、様々な処理であってよいが、少なくとも、補正パターンを実行することで、上記メモリアドレスの格納値を、強制設定値から直ちに通常値に戻すことは行わないようにする。補正パターンの処理は、システムの動作に支障が発生しないように通常値に戻すことができるものであれば何でも良い。
尚、ユーザが機器の構成情報を定義する時、機器によっては補正パターンのテンプレートが定義できるものもあり、機器に対応した補正パターンのテンプレートを用意し、ユーザがシステム構成定義設定部22で任意の機器を設定する際に、テンプレート(機器−補正パターンDB21)の補正パターンを設定するようにしてもよい。尚、システム構成定義設定部22は、ユーザに任意のシステム構成情報23を入力させる機能部であり、特に詳細には説明しない。上記図2がシステム構成情報23の具体例を表示したものと見做してよく、上記の通り、ユーザは例えばシステム構成情報23を参照(表示)して上記機器−補正パターン対応表24を作成するようにしてもよい。
図10は、上記テンプレート(機器−補正パターンDB21)の具体例である。
図示の例のテンプレート21は、機器(型式)71、属性72、オフセット73、補正パターン74の各データ項目より成る。機器(型式)71には任意に機器の識別情報(例えば型式など)が格納され、任意の機器71の各属性72(指令値、現在値、加速値など)に応じた補正パターンの識別情報(ファイル名など)が、補正パターン74の欄に登録されている。
機器によっては、補正パターンが予めある程度決定できるものがあるので、機器毎に補正パターンのテンプレートを登録したDB(データベース)を用意する。この一例が上記機器−補正パターンDB21である。
上記機器(型式)71には、機器を識別するための情報を格納する。例えば、製品の型番などであり、補正パターンが予め決定できる機器の型番などが、機器(型式)71に登録される。属性72は、各機器が持っている属性を示す。機器毎に所有する属性が異なるが、機器毎に固定の情報である。
オフセット73は、その属性の情報が割り付けられている相対位置情報であり、メモリのアドレスを算出する時に必要な情報である。例えば、RYT-VE を%IW1.0 に割り付けた場合、アドレスは、その機器を割り付けた先頭アドレスからオフセットを足したアドレス(%IW1.2)になる。
補正パターン74については上述してある通りである。
この機器-補正パターンDB21(テンプレート)からユーザがシステム構成機能で機器を挿入した時、機器で検索し、該当する補正パターンのテンプレートを設定する。ユーザは、必要に応じて補正パターンを変更することが可能である。
尚、テンプレート21は必須の構成ではなく、上記テンプレート21を用いる処理も必須ではない。上記のように機器−補正パターン対応表24や補正パターンの作成方法は様々であってよく、ユーザが一から手作業で作成してもよい。
また、上述したことから、本例のコントローラシステムは、特に図示しないが、下記の各種処理機能部を有するものと言うこともできる。
まず、コントローラ30は、不図示の補正パターン記憶部、不図示の対応関係記憶部、不図示の強制設定部、不図示の強制設定解除部等を有する。
補正パターン記憶部は、1以上の上記補正パターンを記憶する。
対応関係記憶部は、プログラム中の任意の変数と任意の補正パターンとの対応関係が記憶される。対応関係記憶部の一例が上記アドレス−補正パターン対応表34である。
強制設定部は、任意の変数に対する強制設定が行われる場合、該変数に割り当てられたメモリアドレスに強制設定値を格納する。
強制設定解除部は、上記変数への上記強制設定が解除される場合、上記プログラムの実行に伴って、上記対応関係記憶手段に該解除対象の変数に対応する補正パターンがある場合には、該補正パターンを実行する。
また、例えば、上記強制設定解除部は、補正パターンを実行することで、上記メモリアドレスの格納値を、上記強制設定値から直ちに通常値に戻すことは行わないようにする。その一例として、強制設定解除部は、補正パターンを実行することで、上記メモリアドレスの格納値を上記強制設定値から徐々に通常値に近づけていき、最終的には通常値に戻すようにする。例えばこの様にすることで、任意の変数に対する強制設定を解除する際に、システムの動作に支障が発生しないように通常値に戻すことができる。
ここで、上記通常値は、上記プログラムの実行による上記変数に係わる所定の処理によって得られる値であり、コントローラ30は、通常時は、該通常値を該変数に割り当てられたメモリアドレスに格納するが、強制設定時には上記強制設定値を当該メモリアドレスに格納するようにしている。
また、例えば、上記対応関係記憶部に記憶される上記対応関係は、任意の補正パターンが割り当てられた変数それぞれについて、該変数に割り当てられたメモリアドレスに関連付けて、該割り当てられた補正パターンが登録されたものである。その一例が上記アドレス−補正パターン対応表34である。
また、例えば、支援装置10は、上記補正パターンを任意に作成させて該補正パターンをコントローラ30に転送して上記補正パターン記憶部に記憶させる補正パターン管理部(不図示)を更に有するものであってもよい。
あるいは、例えば、支援装置10は、任意の変数に対して任意の補正パターンを関連付けさせ(例えばユーザが手作業で行う)、該関連付け結果と、プログラムのコンパイルの際の各変数への任意のメモリアドレス割当結果とに基づいて上記対応関係を生成して、該対応関係をコントローラ30に転送して上記対応関係記憶部に記憶させる対応関係管理部(不図示)を更に有するものであってもよい。
また、例えば、支援装置10は、任意の変数に応じた強制設定値を任意に設定させて、該変数のメモリアドレスと該強制設定値を強制設定の指示と共にコントローラ30に通知する第1の指示部(不図示)を更に有しても良い。
この場合、コントローラ30において、任意の変数に対する強制設定が行われる場合は、該第1の指示部による通知を受信した場合である。
また、例えば、支援装置10は、任意の指示に応じて強制設定の解除コマンドをコントローラ30に通知する第2の指示部(不図示)を更に有しても良い。
この場合、コントローラ30において、変数への強制設定が解除されるときは、該解除コマンドを受信した場合である。
また、例えば、コントローラ30は、強制設定中の変数に関する所定情報を記憶する強制設定管理情報記憶部(不図示)を更に有してもよい。その一例が上記強制ONアドレス一覧35である。
この場合、上記強制設定部は、上記第1の指示部による通知を受信すると、該通知されたメモリアドレスと強制設定値を、上記強制設定管理情報記憶部に新規登録する。
また、この場合、上記強制設定解除部は、メモリアドレスの格納値を通常値に戻し終えたら、上記強制設定管理情報記憶部から該当する情報を削除するようにしてもよい。
上述した支援装置10の各種処理機能は、支援装置10の上記不図示の演算プロセッサが、上記不図示の記憶部に記憶されている所定のアプリケーションプログラムを実行することにより実現される。同様に、上述したコントローラ30の各種処理機能は、コントローラ30の上記不図示の演算プロセッサが、上記不図示の記憶部に記憶されている所定のアプリケーションプログラムを実行することにより実現される。
上記のように、本例のコントローラシステムでは、支援装置10は、コントローラ30上で動作する処理を記述したソースコード13を、コンパイラ機能によって、コントローラ30で実行可能な形態(機械語オブジェクト15)に変換すると共に、変数−アドレス対応表16を生成する。変数−アドレス対応表16は、ソースコード13の各変数と、その変数に割り付けられたメモリアドレスとの対応情報を有する。メモリアドレスは、コントローラ30内のメモリ32のアドレスである。
支援装置10において、ユーザによって、上記ソースコード13の各変数(機器)と、強制設定を解除した時の補正パターンとの関連付け情報(機器−補正パターン対応表24)を生成する。この機器−補正パターン対応表24と、上記変数−アドレス対応表16から、アドレス−補正パターン対応表25を生成しコントローラ30に送信する。
補正パターンは、予め作成されたプログラム、あるいは、ユーザが任意に記述したプログラム等である。ユーザは、例えば、任意の変数に関して、これら各補正パターンのなかから任意の補正パターンを選択して、対応付ける作業を行う。
更に補正パターンを機器毎に関連付けしたテンプレート情報を利用し、ユーザがシステム構成定義を実施する時、選択した機器に合った補正パターンを関連付けすることができる。
上記本例のコントローラシステムにおいては、ユーザのソフトウエア開発作業中、又はシステムが運用中でコントローラ30が稼働中に、機械語オブジェクトの変更無しに、変数の値を強制的に変更した後、その状態を解除する時、補正パターンを実施しながら段階的に(徐々に)にソース値に戻す。
[発明の効果]
例えば、システムのセンサが故障した場合に、システムを安定的に動作させるために強制的に値を書き換えることがある。これは、故障したセンサに対応する変数に割り当てられたメモリアドレスの格納データを、強制的に、所定値(強制設定値)に書き換えるものである。
その後、故障が直った場合は、上記強制設定を解除するが、センサの値がシステムに対する役割や、通常値と強制設定値に乖離がある場合、単純に強制設定を解除するだけではシステムが不安定になる可能性がある。尚、単純に強制設定を解除するとは、例えば、上記メモリアドレスの格納データを、強制設定値から直ちに通常値に変更することである。
この為、この様な事態が想定し得るセンサに関しては、予めその変数に上記補正パターンを対応付けておき、強制設定解除の際に、この補正パターンを用いて、この変数の値(メモリアドレスの格納データ)を、強制設定値から段階的に(徐々に)通常値に近づけていく。
本手法によれば、コントローラ30が自動で補正しながら解除を実施するので、解除時の調整が不要であり、更に、システムに詳しくないユーザでも単に解除するだけでシステムに支障をきたさないで強制設定の解除が実施できる効果がある。
また、解除時の効果だけでなく、上記一例の場合には、システム稼働中にコントローラの任意のメモリ領域の値を強制的に書き換えると共に、この強制設定されたメモリ領域へのその後の書込みを(通常値の書込みを)、上記解除が行われるまでの間は禁止でき、以ってシステム稼働を安定して継続できる
本手法では、変数(メモリ)に対して強制設定解除の補正パターンを関連付け、強制設定を解除する時、変数に関連付けた補正パターンを用いて、システムの動作に支障が発生しないように値を戻すようにする。
更に、ユーザがシステム構成を定義する時、機器毎に強制設定解除の際の補正パターンと関連付けを実施し、コンパイラ機能により“機器に割りついた補正パターン”をメモリに自動で関連付け、メモリに対して強制設定の解除を実施した時、関連付いた補正パターンを用いて安全に強制設定解除を実施する。
1 ネットワーク
2 支援装置
11 フロントエンドコンパイラ
12 バックエンドコンパイラ
13 ソースコード
14 中間コード
15 機械語オブジェクト
16 変数−アドレス対応表
21 機器−補正パターンDB(テンプレート)
22 システム構成定義
23 システム構成情報
24 機器−補正パターン対応表
25 アドレス−補正パターン対応表
30 コントローラ
31 プログラム実行管理部
32 メモリ
33 機械語オブジェクト
34 アドレス−補正パターン対応表
35 強制ONアドレス一覧
36 補正パターン
41 機器(変数名)
42 属性
43 機器識別情報
44 アドレス
45 補正パターン
51 アドレス
52 補正パターン
53 実行中フラグ
61 管理番号
62 強制ONメモリアドレス
63 ソース値
64 補正パターン
65 実行中フラグ
66 強制設定値
67 実行回数
68 開始時刻

Claims (17)

  1. 支援装置とコントローラを有するコントローラシステムであって、
    前記コントローラは、
    1以上の補正パターンを記憶する補正パターン記憶手段と、
    プログラム中の任意の変数と任意の前記補正パターンとの対応関係が記憶される対応関係記憶手段と、
    任意の変数に対する強制設定が行われる場合、該変数に割り当てられたメモリアドレスに強制設定値を格納する強制設定手段と、
    前記変数への前記強制設定が解除される場合、前記プログラムの実行に伴って、前記対応関係記憶手段に該解除対象の変数に対応する前記補正パターンがある場合には、該補正パターンを実行する強制設定解除手段と、
    を有することを特徴とするコントローラシステム。
  2. 前記強制設定解除手段は、前記補正パターンを実行することで、前記解除対象の変数の前記メモリアドレスの格納値を、前記強制設定値から直ちに通常値に戻すことは行わないようにすることを特徴とする請求項1記載のコントローラシステム。
  3. 前記強制設定解除手段は、前記補正パターンを実行することで、前記解除対象の変数の前記メモリアドレスの格納値を、前記強制設定値から徐々に前記通常値に近づけていくことを特徴とする請求項2記載のコントローラシステム。
  4. 前記通常値は、前記プログラムの実行による前記変数に係わる所定の処理によって得られる値であり、
    前記コントローラは、通常時は、該通常値を該変数に割り当てられた前記メモリアドレスに格納することを特徴とする請求項2〜3の何れかに記載のコントローラシステム。
  5. 前記対応関係記憶手段に記憶される前記対応関係は、任意の前記補正パターンが対応付けられた変数それぞれについて、該変数に割り当てられたメモリアドレスに関連付けて、該対応付けられた補正パターンが登録されたものであることを特徴とする請求項1〜4の何れかに記載のコントローラシステム。
  6. 前記支援装置は、
    前記補正パターンを任意に作成させて該補正パターンを前記コントローラに転送して前記補正パターン記憶手段に記憶させる補正パターン管理手段を更に有することを特徴とする請求項1〜5の何れかに記載のコントローラシステム。
  7. 前記支援装置は、
    任意の前記変数に対して任意の前記補正パターンを関連付けさせ、該関連付け結果と前記プログラムのコンパイルの際の各変数への任意のメモリアドレス割当結果とに基づいて前記対応関係を生成して、該対応関係を前記コントローラに転送して前記対応関係記憶手段に記憶させる対応関係管理手段を更に有することを特徴とする請求項5記載のコントローラシステム。
  8. 前記支援装置は、
    任意の変数に応じた前記強制設定値を任意に設定させて、該変数のメモリアドレスと該強制設定値を、強制設定の指示と共に前記コントローラに通知する第1の指示手段を更に有し、
    前記コントローラにおいて、
    前記任意の変数に対する強制設定が行われる場合は、該第1の指示手段による通知を受信した場合であることを特徴とする請求項2〜4の何れかに記載のコントローラシステム。
  9. 前記支援装置は、
    任意の指示に応じて、強制設定の解除コマンドを前記コントローラに通知する第2の指示手段を更に有し、
    前記コントローラにおいて、
    前記変数への前記強制設定が解除される場合は、該解除コマンドを受信した場合であることを特徴とする請求項1〜4の何れかに記載のコントローラシステム。
  10. 前記コントローラは、
    強制設定中の変数に関する所定情報を記憶する強制設定管理情報記憶手段を更に有し、
    前記強制設定手段は、前記第1の指示手段による通知を受信すると、該通知されたメモリアドレスと強制設定値を、前記強制設定管理情報記憶手段に新規登録することを特徴とする請求項8記載のコントローラシステム。
  11. 前記強制設定解除手段は、前記メモリアドレスの格納値を前記通常値に戻し終えたら、前記強制設定管理情報記憶手段から該当する情報を削除することを特徴とする請求項10記載のコントローラシステム。
  12. 1以上の補正パターンを記憶する補正パターン記憶手段と、
    プログラム中の任意の変数と任意の前記補正パターンとの対応関係が記憶される対応関係記憶手段と、
    任意の変数に対する強制設定が行われる場合、該変数に割り当てられたメモリアドレスに強制設定値を格納する強制設定手段と、
    前記変数への前記強制設定が解除される場合、前記プログラムの実行に伴って、前記対応関係記憶手段に該解除対象の変数に対応する前記補正パターンがある場合には、該補正パターンを実行する強制設定解除手段と、
    を有することを特徴とするコントローラ。
  13. 前記強制設定解除手段は、前記補正パターンを実行することで、前記メモリアドレスの格納値を、前記強制設定値から直ちに通常値に戻すことは行わないようにすることを特徴とする請求項12記載のコントローラ。
  14. 前記強制設定解除手段は、前記補正パターンを実行することで、前記メモリアドレスの格納値を前記強制設定値から徐々に前記通常値に近づけていくことを特徴とする請求項13記載のコントローラ。
  15. 前記通常値は、前記プログラムの実行による前記変数に係わる所定の処理によって得られる値であり、
    前記コントローラは、通常時は、該通常値を該変数に割り当てられた前記メモリアドレスに格納することを特徴とする請求項13〜14の何れかに記載のコントローラ。
  16. 1以上の補正パターンを任意に作成させると共に、コントローラで実行させる任意のプログラムにおける任意の変数に対して任意の前記補正パターンを関連付けさせ、該関連付け結果と前記1以上の補正パターンをコントローラに記憶させることで、該コントローラに任意の前記変数に係わる強制設定解除の際に該変数に関連付けられた前記補正パターンを実行させる解除支援手段を有することを特徴とする支援装置。
  17. 前記解除支援手段によって、前記コントローラは、前記変数に割り当てられたメモリアドレスの格納値を、強制設定値から直ちに通常値に戻すことは行わないようにすることを特徴とする請求項16記載の支援装置。
JP2016122047A 2016-06-20 2016-06-20 コントローラシステム、そのコントローラ、支援装置 Active JP6798156B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2016122047A JP6798156B2 (ja) 2016-06-20 2016-06-20 コントローラシステム、そのコントローラ、支援装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2016122047A JP6798156B2 (ja) 2016-06-20 2016-06-20 コントローラシステム、そのコントローラ、支援装置

Publications (2)

Publication Number Publication Date
JP2017227988A true JP2017227988A (ja) 2017-12-28
JP6798156B2 JP6798156B2 (ja) 2020-12-09

Family

ID=60889261

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2016122047A Active JP6798156B2 (ja) 2016-06-20 2016-06-20 コントローラシステム、そのコントローラ、支援装置

Country Status (1)

Country Link
JP (1) JP6798156B2 (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111552172A (zh) * 2020-04-27 2020-08-18 浙江中控技术股份有限公司 一种数据处理方法、装置、存储介质及电子设备

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111552172A (zh) * 2020-04-27 2020-08-18 浙江中控技术股份有限公司 一种数据处理方法、装置、存储介质及电子设备
CN111552172B (zh) * 2020-04-27 2023-12-15 浙江中控技术股份有限公司 一种数据处理方法、装置、存储介质及电子设备

Also Published As

Publication number Publication date
JP6798156B2 (ja) 2020-12-09

Similar Documents

Publication Publication Date Title
US8762971B2 (en) Servicing a production program in an integrated development environment
RU2295752C1 (ru) Способ управления синхронизацией обновлений программного обеспечения
JP6866663B2 (ja) プログラマブルコントローラシステム、プログラマブルコントローラ、支援装置、hci装置、二重化プログラマブルコントローラシステム
JP2008021111A (ja) 業務システム構成変更方法、管理コンピュータ、および、業務システム構成変更方法のプログラム
US10295976B2 (en) System development device, system development method, and system development program
EP3314409B1 (en) Tracing dependencies between development artifacts in a software development project
CN101685420B (zh) 多线程调试方法和装置
WO2014136228A1 (ja) プログラマブルコントローラ、プログラマブルコントローラシステムおよび実行エラー情報作成方法
JP6798156B2 (ja) コントローラシステム、そのコントローラ、支援装置
JP2015215865A (ja) プログラマブルコントローラシステム、その支援装置、プログラマブルコントローラ
US9959288B2 (en) Declarative cluster management
Pietsch et al. Delta-oriented development of model-based software product lines with DeltaEcore and SiPL: A comparison
JP6717140B2 (ja) 解析プログラム、解析方法、及び解析装置
Lehner et al. A pattern catalog for augmenting Digital Twin models with behavior
US8078550B2 (en) Self learning to support navigation to correct an inconsistent property
JP7352152B2 (ja) 情報処理システム、プログラマブル表示器および情報処理装置
CN109019217B (zh) 一种电梯控制软件现场调试系统
CN107315611A (zh) 一种应用系统规则管理方法及装置
JP6529680B1 (ja) データ管理システム、データ管理方法およびデータ管理プログラム
JP4683535B2 (ja) ジョブネット管理システム
JP2013105349A (ja) 動的リンクライブラリの更新、実行方法
CN100512275C (zh) 一种面向服务体系结构的服务调试装置及方法
JP6869428B2 (ja) データ作成装置、データ転送方法およびデータ転送プログラム
JP7086873B2 (ja) 管理装置、方法及びプログラム
JP4937387B2 (ja) 自動書き換えプログラムおよび自動書き換え装置

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20190514

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20200605

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20200630

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20200730

RD03 Notification of appointment of power of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7423

Effective date: 20200730

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

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20201102

R150 Certificate of patent or registration of utility model

Ref document number: 6798156

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250