(57)【特許請求の範囲】
【請求項１】
少なくともデータの入力及び表示が可能なデータ入出力部と、
プラントの通常運転時の実行関数及び非定常時の実行関数を含むプラグ化されたソフトウェア群を有し、特定のメモリエリアを関数ポインタ領域とし、この関数ポインタ領域にアドレス設定された関数の呼出しが可能な処理部と、
前記処理部の出力データに基づいてプラントを制御するプラント制御部と、
前記処理部と前記プラント制御部との間でデータを伝送する伝送部と、
前記データ入出力部を介して、前記関数ポインタ領域に呼び出すべき関数のポインタ変数を変更するシグナル発生部と、
を備え、前記処理部は通常運転時の実行関数として前記プラント制御部に伝送する下位データ伝送関数を含み、非定常時の実行関数として前記プラント制御部に伝送しない試験用関数を含み、前記シグナル発生部はソフトウェアの試験に際して前記試験用関数を前記関数ポインタ領域に呼び出すプラント監視制御装置。
【請求項２】
少なくともデータの入力及び表示が可能なデータ入出力部と、
プラントの通常運転時の実行関数及び非定常時の実行関数を含むプラグ化されたソフトウェア群を有し、特定のメモリエリアを関数ポインタ領域とし、この関数ポインタ領域にアドレス設定された関数の呼出しが可能な処理部と、
前記処理部の出力データに基づいてプラントを制御するプラント制御部と、
前記処理部と前記プラント制御部との間でデータを伝送する伝送部と、
前記データ入出力部を介して、前記関数ポインタ領域に呼び出すべき関数のポインタ変数を変更するシグナル発生部と、
を備え、前記処理部は通常運転時の実行関数として前記プラント制御装置に伝送する下位データ伝送関数を含み、非定常時の実行関数として前記プラント制御装置に伝送する下位データ伝送関数及びその表示機能を持つデータ表示関数を含み、前記シグナル発生部は制御データの監視に際して前記データ表示関数を前記関数ポインタ領域に呼び出し、前記入出力手段を用いて前記下位データ伝送関数の監視を可能とするプラント監視制御装置。
【請求項３】
少なくともデータの入力及び表示が可能なデータ入出力部と、
プラントの通常運転時の実行関数及び非定常時の実行関数を含むプラグ化されたソフトウェア群を有し、特定のメモリエリアを関数ポインタ領域とし、この関数ポインタ領域にアドレス設定された関数の呼出しが可能な処理部と、
前記処理部の出力データに基づいてプラントを制御するプラント制御部と、
前記処理部と前記プラント制御部との間でデータを伝送する伝送部と、
前記データ入出力部を介して、前記関数ポインタ領域に呼び出すべき関数のポインタ変数を変更するシグナル発生部と、
を備え、前記処理部は通常運転時の実行関数としてＮＯＰ関数が登録された間接コール関数を含み、非定常時の実行関数として前記間接コール関数をデバッグして前記データ入出力部に表示することが可能なデバッグ関数を含み、前記シグナル発生部はプログラムの解析に際して前記デバッグ関数を前記関数ポインタ領域に呼び出し、前記入出力手段を用いて前記間接コール関数の解析を可能とするプラント監視制御装置。
【請求項４】
プラントの制御データを処理する処理部に、プラントの通常運転時の実行関数及び非定常時の実行関数を含むプラグ化されたソフトウェア群を格納し、
前記処理部の特定のメモリエリアを関数ポインタ領域として設定し、
通常運転時に前記通常運転時の実行関数を前記関数ポインタ領域に呼び出し、ソフトウェアの試験に際し、対応する非定常時の実行関数を前記関数ポインタ領域に呼び出してソフトウェアの試験を行う、
プラント監視制御方法。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、プラントの監視及び制御を行うプラント制御システムに係り、特に、ソフトウェアの開発又は精度を上げるに好適なプラント監視制御装置及びプラント監視制御方法に関する。
【０００２】
【従来の技術】
図６は従来の一般的なプラント監視制御装置の概略構成を示すブロック図である。同図において、データ入出力部１は一般にキーボード１１、ＣＲＴ１２及びプリンタ１３等を含んで構成される。このデータ入出力部１はコンピュータでなる上位制御装置としての処理部２に接続されている。一方、プラント１０を実際に制御するための下位制御装置としてのプラント制御装置３を備えている。処理部２とプラント制御装置３とが伝送装置を含む伝送部４で接続されている。
【０００３】
周知の如く、処理部２にはプラント１０の状態に応じて所定の手順にて制御を実行するためのプログラム、すなわち、制御ソフトウェアが格納されている。この制御ソフトウェアを、プラント１０から離隔した設計、製作現場にて試験したり、プラント１０の設置場所で試験したりしなければならない。
【０００４】
そこで、プラント１０から離隔した設計、製作現場にて制御ソフトウェアを試験するには、プラント制御装置３に相当する専用の試験設備を準備し、伝送部４を介して、制御データを実際に伝送して試験を行うことがある。
また、設計、製作現場にて制御ソフトウェアを試験する他の方法として、制御ソフトウェアを改造することにより、試験の実施中はプラント制御装置３に制御データの伝送を行わない、いわゆる、シミュレータ処理によって試験をする場合もある。
【０００５】
一方、プラント１０の設置場所で試験をするには、処理部２を、伝送部４を介して、実際のプラント制御装置３に接続して行うことになる。
【０００６】
また、プラント１０の通常の運転状態では動作させないプログラムのデバッグ処理等を必要に応じて実行する場合、ソフトウェアの内部に分岐処理を設け、通常運転中に実行される処理と、デバッグ要求時に実行される処理とを分けるフラグを共有メモリ領域に準備しておき、共有メモリの内容が変更された場合に処理の分岐を行っていた。
【０００７】
【発明が解決しようとする課題】
上述した制御ソフトウェアの試験のうち、専用の試験設備を準備する場合、使用頻度の少ない設備を製造しなければならず、そのためのコストが嵩むという問題があった。
また、制御ソフトウェアの改造、すなわち、試験用処理を入れ込む場合、試験終了後のプラントの稼働時には試験用処理を取除く再度の修正を余儀なくされ、修正ミスに繋がる虞れがあった。
【０００８】
一方、実際のプラント制御装置３及びプラント１０を使用する試験は、プラントの運転の立上がり時期か、定期的に行われる点検時期に限定されるという不便さがあった。
【０００９】
さらに、ソフトウェア内部に分岐処理を設けてフラグにより処理を分ける場合、共有メモリの参照を必要とし、また、分岐処理の発生によって内部構造が複雑になることから、直感的に処理を認識し難いソフトウェアになってしまうという問題があった。
【００１０】
本発明は上記の課題を解決するためになされたもので、従来装置と比較して、プログラム完成後の試験を容易化することのできるプラント監視制御装置及びプラント監視制御方法を提供することを目的とする。
【００１１】
【課題を解決するための手段】
本発明は、例えば、Ｃ言語コンパイラ上で一般的に行われている「関数の直接呼出し」ではなく、特定のメモリエリアを関数ポインタ領域として使用し、この関数ポインタ領域にセットされたアドレスを関数として呼び出しのできる仕組みがコンパイラ上でできることに着目したものである。そこで、プラグ化されたソフトウェア群（実際のソフトウェア上は関数）を準備し、関数ポインタ領域にセットされたアドレスを関数としてプラグ化されたソフトウェアを呼び出す「関数の間接呼び出し」を利用して必要なソフトウェアを呼び出すようにしたものである。
【００１２】
この場合、呼び出される関数を変化させる手法として、動作中のプログラムに対してシグナルを発行できるオペレーティングシステム上では、各プログラム内のシグナル受信関数内で、関数ポインタ領域にセットされている関数のアドレスを変更することにより、プログラムを再起動させることなく、呼び出される関数を変化させるようにしている。
【００１３】
そこで、請求項１に係る発明は、
少なくともデータの入力及び表示が可能なデータ入出力部と、
プラントの通常運転時の実行関数及び非定常時の実行関数を含むプラグ化されたソフトウェア群を有し、特定のメモリエリアを関数ポインタ領域とし、この関数ポインタ領域にアドレス設定された関数の呼出しが可能な処理部と、
処理部の出力データに基づいてプラントを制御するプラント制御部と、
処理部とプラント制御部との間でデータを伝送する伝送部と、
データ入出力部を介して、関数ポインタ領域に呼び出すべき関数のポインタ変数を変更するシグナル発生部と、
を備え、処理部は通常運転時の実行関数としてプラント制御部に伝送する下位データ伝送関数を含み、非定常時の実行関数としてプラント制御部に伝送しない試験用関数を含み、シグナル発生部はソフトウェアの試験に際して試験用関数を関数ポインタ領域に呼び出すプラント監視制御装置である。
【００１４】
請求項２に係る発明は、
少なくともデータの入力及び表示が可能なデータ入出力部と、
プラントの通常運転時の実行関数及び非定常時の実行関数を含むプラグ化されたソフトウェア群を有し、特定のメモリエリアを関数ポインタ領域とし、この関数ポインタ領域にアドレス設定された関数の呼出しが可能な処理部と、
処理部の出力データに基づいてプラントを制御するプラント制御部と、
処理部とプラント制御部との間でデータを伝送する伝送部と、
データ入出力部を介して、関数ポインタ領域に呼び出すべき関数のポインタ変数を変更するシグナル発生部と、
を備え、処理部は通常運転時の実行関数としてプラント制御装置に伝送する下位データ伝送関数を含み、非定常時の実行関数としてプラント制御装置に伝送する下位データ伝送関数及びその表示機能を持つデータ表示関数を含み、シグナル発生部は制御データの監視に際してデータ表示関数を関数ポインタ領域に呼び出し、入出力手段を用いて下位データ伝送関数の監視を可能とするプラント監視制御装置である。
【００１５】
請求項３に係る発明は、
少なくともデータの入力及び表示が可能なデータ入出力部と、
プラントの通常運転時の実行関数及び非定常時の実行関数を含むプラグ化されたソフトウェア群を有し、特定のメモリエリアを関数ポインタ領域とし、この関数ポインタ領域にアドレス設定された関数の呼出しが可能な処理部と、
処理部の出力データに基づいてプラントを制御するプラント制御部と、
処理部とプラント制御部との間でデータを伝送する伝送部と、
データ入出力部を介して、関数ポインタ領域に呼び出すべき関数のポインタ変数を変更するシグナル発生部と、
を備え、処理部は通常運転時の実行関数としてＮＯＰ関数が登録された間接コール関数を含み、非定常時の実行関数として間接コール関数をデバッグしてデータ入出力部に表示することが可能なデバッグ関数を含み、シグナル発生部はプログラムの解析に際してデバッグ関数を関数ポインタ領域に呼び出し、入出力手段を用いて間接コール関数の解析を可能とするプラント監視制御装置である。
【００１６】
請求項４に係る発明は、
プラントの制御データを処理する処理部に、プラントの通常運転時の実行関数及び非定常時の実行関数を含むプラグ化されたソフトウェア群を格納し、
処理部の特定のメモリエリアを関数ポインタ領域として設定し、
通常運転時に通常運転時の実行関数を関数ポインタ領域に呼び出し、ソフトウェアの試験に際し、対応する非定常時の実行関数を関数ポインタ領域に呼び出してソフトウェアの試験を行う、
プラント監視制御方法である。
【００１７】
【発明の実施の形態】
以下、本発明を図面に示す好適な実施形態に基づいて詳細に説明する。
図１は本発明の第１の実施形態の概略構成を示すブロック図であり、図中、従来装置を示す図６と同一の符号を付したものはそれぞれ同一の要素を示し、かつ、図面の簡単化のために図６中の伝送部４及びプラント１０を省略して示したものである。ここで、処理部２Ａはコンパイラの特定のメモリエリアに設定された関数ポインタ領域２１を有し、かつ、プラグ化されたソフトウェア、すなわち、プラグソフトウェア群２２を備えている。プラグソフトウェア群２２は通常実行関数２２１  と、非通常時実行関数２２２  とに大別される。そして、プログラムの各所よりポインタを利用した関数読出し要求が関数ポインタ領域２１に出され、これによって通常実行関数２２１  が呼び出されるようになっている。一方、制御プログラムの試験を行うべく、処理部２Ａの外部にシグナル発生部５が設けられ、キーボード１１から出力されたシグナル発生コマンド５１に従って、シグナル関数５２を選択することによって、関数ポインタ領域２１を非通常時実行関数２２２  に変更する構成になっている。
【００１８】
上記のように構成された第１の実施形態の動作を以下に説明する。
この実施形態は実際のプラント１０に処理部２Ａを接続し、通常運転と制御プログラムの試験との切換えを可能にしたもので、プラグソフトウェア群２２を構成する通常実行関数２２１  が下位の制御装置にデータを伝送する下位データ伝送関数であるのに対して、非通常時実行関数２２２  が制御データを下位の制御部に伝送しない試験用関数である場合を示している。
【００１９】
そして、通常の運転中はプログラムの各所から要求される関数に対応するポインタ変数が関数ポインタ領域２１にセットされ、これに応じて通常実行関数２２１  の下位データ伝送関数が呼び出され、通常の処理が行われる。
一方、プラントの立上がり時、あるいは、定期点検時を含む非通常運転時にソフトウェアの試験を行うとき、シグナル発生部５が用いられる。すなわち、シグナル発生部５のシグナル関数５２は解析用ソフトウェアのプラグインの開始又は終了に応じて関数ポインタ領域２１を変更するものであり、解析用オペレータがキーボード１１を操作してシグナル発生コマンド５１を入力すると、シグナル番号を引数としてシグナル関数５２が選択され、試験用関数の先頭のポインタが関数ポインタ領域２１にセットされると共に、非通常時実行関数２２２  としてのデータ伝送を伴わない試験用関数が呼び出される。これによってプラント試験装置を動作させることのない試験が可能となる。
【００２０】
図２はシグナル発生部５の詳細な構成及び動作を説明するための説明図であり、ソフトウェアの試験要求が発生した場合のみ、解析を実施するオペレータが発行するシグナル発生コマンド５１を利用し、シグナル関数５２によって関数ポインタ領域２１のポインタ変数が変更される。この場合、オペレータが発行するシグナル番号はＯＳにより許可されたユーザ解放番号を解析用シグナル番号として利用する。
【００２１】
図３は第１の実施形態のプログラムの一例で、領域Ａが関数ポインタ領域２１の初期化及びシグナル関数の登録を示し、領域Ｂがシグナル発生部５のシグナル受信処理を示している。また、領域Ｃが通常運転時の処理を、領域Ｄが非通常時の処理を示している。
【００２２】
かくして、第１の実施形態によれば、専用の試験設備を不要化すると共に、完成プログラムの変更及び再修正を不要化することができる。
【００２３】
図４は本発明の第２の実施形態の概略構成を示すブロック図であり、図中、図１と同一の要素には同一の符号を付してその説明を省略する。ここでは、図１中の処理部２Ａの代わりに処理部２Ｂを備えている。この実施形態は通常運転中は必要でないが、下位制御装置の不調等により、制御データの監視が必要になった場合に対応しようとするもので、そのために非通常時実行関数２２３  がプラント制御装置に制御データを伝送する下位データ伝送関数及び表示機能を持つデータ表示関数を含む構成になっている。
【００２４】
そこで、制御データの監視が必要になった場合に、シグナル発生部５を利用して、非通常時実行関数２２３  に含まれる下位データ伝送関数及びデータ表示関数を関数ポインタ領域２１に呼び出して、制御データをＣＲＴ１２に表示したり、プリンタ１３にてプリントアウトしたりして、プラント状態の内部的な調査を行うことになる。
【００２５】
かくして、第２の実施形態によれば、制御データの監視が必要になった場合に試験用処理プログラムの入れ込み、及びその取り除きをしないで済むため、完成プログラムの変更及び再修正を不要化することができる。
【００２６】
図５は本発明の第３の実施形態の概略構成を示すブロック図であり、図中、図１と同一の要素には同一の符号を付してその説明を省略する。ここでは、図１中の処理部２Ａの代わりに処理部２Ｃを備えている。この実施形態は通常運転中にプログラム解析のための情報が必要となった場合、解析用の内部データを表示するためのソフトウェアをプラグインすることによって、プログラムを修正することなくプログラムの解析を可能にしたものである。そこで、通常時実行関数２２４  がＮＯＰ（ｎｏ−ｏｐｅｒａｔｉｏｎ）関数を登録した間接コール関数を含み、非通常時実行関数２２５  がプログラムの内部変更等をトレースし、その結果をＣＲＴ１２に表示したり、プリンタ１３でプリントアウトしたりすることのできる表示可能なデバッグ関数を含んでいる。
【００２７】
以下、その動作を説明するに、クリティカルパスを実行している処理や、データ入出力処理等、プログラムの基幹を実行する処理において、通常はＮＯＰ関数（何も実行しない関数）が登録された間接コール関数を実行しているが、デバッグの必要性が生じた場合、シグナル発生部５にて関数ポインタ領域２１をプログラムの内部変更等を印刷することが可能なデバッグ関数に変更することにより、プラント監視、制御のソフトウェアの内部的な調査をすることが可能となる。
【００２８】
この場合、シグナル発生部５は、通常の処理を実行している状態ではポインタ変数の変更動作をせず、解析用オペレータがキーボード１１を操作してシグナル発生コマンド５１を入力したときのみ、ポインタ変数の変更動作をすることから、関数ポインタ領域２１を安全に変更することができる。
【００２９】
かくして、第３の実施形態によれば、プログラムを停止することなくシグナル発生部５によってポインタ変数を変更することができるから、動作中のプログラムに不適合が発生した場合でも即座にデバッグ等の解析が可能となる。
【００３０】
なお、上述した各実施形態ではオペレーティングシステムにＵＮＩＸを実装した場合について説明したが、本発明に使用できるオペレーティングシステムはこれに限られるものではなく、シグナル発行あるいはそれに対応する機能を有するオペレーティングシステムであればどのようなものでも良い。
【００３１】
また、上述した各実施形態では、Ｃ言語で記述したが、特にこれにこだわる必要はなく、シグナルあるいはそれに対応するものを受信できるプログラミング言語であればどのようなものでも良い。
【００３２】
【発明の効果】
以上の説明によって明らかなように、請求項１に係る発明によれば、処理部がプラグ化されたソフトウェア群を有し、かつ、特定のメモリエリアを関数ポインタ領域として、フトウェアの試験に際してプラント制御部に伝送しない試験用関数を関数ポインタ領域に呼び出すようにしたので、専用の試験設備を不要化すると共に、完成プログラムの変更及び再修正を不要化することができるため、従来装置と比較して、プログラム完成後の試験を容易化することができる。
【００３３】
請求項２に係る発明によれば、処理部がプラグ化されたソフトウェア群を有し、かつ、特定のメモリエリアを関数ポインタ領域として、制御データの監視に際してプラント制御装置に伝送する下位データ伝送関数及びその表示機能を持つデータ表示関数を関数ポインタ領域に呼び出し、入出力手段を用いて下位データ伝送関数の監視を可能としたので、試験用処理プログラムの入れ込み、及びその取り除きをしないで済むため、従来装置と比較して、プログラム完成後の試験を容易化することができる。
【００３４】
請求項３に係る発明によれば、処理部がプラグ化されたソフトウェア群を有し、かつ、特定のメモリエリアを関数ポインタ領域として、通常運転時にＮＯＰ関数が登録された間接コール関数を用い、プログラムの解析に際して間接コール関数をデバッグしてデータ入出力部に表示することが可能なデバッグ関数を呼び出すようにしたので、異常解析対象プログラムの停止ができないシステムにおいてもプログラムの解析が可能となるため、従来装置と比較して、プログラム完成後の試験を容易化することができる。
【００３５】
請求項４に係る発明によれば、プラントの制御データを処理する処理部に、プラントの通常運転時の実行関数及び非定常時の実行関数を含むプラグ化されたソフトウェア群を格納し、処理部の特定のメモリエリアを関数ポインタ領域として設定し、通常運転時に通常運転時の実行関数を関数ポインタ領域に呼び出し、ソフトウェアの試験に際し、対応する非定常時の実行関数を関数ポインタ領域に呼び出してソフトウェアの試験を行うようにしたので、専用の試験設備を不要化すると共に、完成プログラムの変更及び再修正を不要化することができ、また、異常解析対象のプログラムの停止ができないシステムにおいても、プログラム解析を可能になるため、従来装置と比較して、プログラム完成後の試験を容易化することができる。
【図面の簡単な説明】
【図１】本発明の第１の実施形態の概略構成を示すブロック図。
【図２】図１に示す第１の実施形態を構成するシグナル発生部の詳細な構成及び動作を説明するための説明図。
【図３】図１に示す第１の実施形態の処理部に搭載されたプログラムの一例を示す図。
【図４】本発明の第２の実施形態の概略構成を示すブロック図。
【図５】本発明の第３の実施形態の概略構成を示すブロック図。
【図６】従来のプラント監視制御装置の構成を示すブロック図。
【符号の説明】
１  データ入出力部
２，２Ａ，２Ｂ，２Ｃ  処理部
３  プラント制御装置
４  伝送部
５  シグナル発生部
１０  プラント
１１  キーボード
１２  ＣＲＴ
１３  プリンタ
２１  関数ポインタ領域
２２  プラグソフトウェア群
５１  シグナル発生コマンド
５２  シグナル関数
２２１，２２４  通常実行関数
２２２，２２３，２２５  非通常時実行関数
【図１】
0003559439.tif 000002
【図２】
0003559439.tif 000003
【図３】
0003559439.tif 000004
【図４】
0003559439.tif 000005
【図５】
0003559439.tif 000006
【図６】
0003559439.tif 000007