(57)【要約】【課題】システムメモリの割り当てを効率的に行い、システムメモリを最大限に有効活用できるようにする。【解決手段】管理指令に含まれる割当処理対象制御データの情報に基づいて、制御データ管理テーブル３００内の該当制御データ状態テーブルを特定し、次に管理指令に基づいて該当制御データ状態テーブルの状態情報を参照し、該当制御データの該当ブロックデータを特定し、そしてブロック割当管理テーブル２２０又は空き領域管理テーブル２３０に基づいて、割当処理対象制御データの情報に対応して特定された制御データのブロックデータのメモリに対する割当処理を行う制御データ割当処理部２１０とを備えたものである。【選択図】図１
2011164938.tif 000002
【特許請求の範囲】
【請求項１】
データブロックのブロックサイズと、前記ブロックサイズを持つ１以上のデータブロックから構成される制御データの状態情報とを含む制御データ状態テーブルを、制御データごとに管理するための制御データ管理テーブルと、
制御データごとに、前記ブロックサイズと、前記制御データが格納されるメモリ上における各データブロックの先頭アドレスの情報を管理するためのブロック割当管理テーブルと、
前記メモリ上の前記制御データのデータブロックが格納されていない空き領域の、前記メモリ上における先頭アドレスと空き領域サイズの情報を管理するための空き領域管理テーブルと、
管理指令に含まれる割当処理対象制御データの情報に基づいて、前記制御データ管理テーブル内の該当制御データ状態テーブルを特定し、
次に前記管理指令に基づいて該当制御データ状態テーブルの状態情報を参照し、該当制御データの該当ブロックデータを特定し、
そして前記ブロック割当管理テーブル又は前記空き領域管理テーブルに基づいて、前記割当処理対象制御データの情報に対応して特定された前記制御データのブロックデータの前記メモリに対する割当処理を行う制御データ割当処理部と、
を備えたメモリ割当装置。
【請求項２】
前記管理指令が、データブロックを前記メモリに挿入する割当処理である場合、
前記制御データ割当処理部は、前記管理指令で指定されたデータブロックが含まれる制御データに対応する前記制御データ管理テーブルから、該当制御データのブロックサイズの情報を取得し、
当該ブロックサイズを満たす空き領域を、前記空き領域管理テーブルから抽出し、
前記空き領域管理テーブルの該当空き領域の先頭アドレスと空き領域サイズを変更し、
前記ブロック割当管理テーブルに、該当空き領域の先頭アドレスおよび前記挿入すべきデータブロックのブロックサイズの情報を追加し、かつ、前記管理指令で指定されたデータブロックが含まれる制御データに対応する前記制御データ管理テーブルに、前記制御データの制御情報を追加する
請求項１に記載のメモリ割当装置。
【請求項３】
前記挿入するデータブロックのブロックサイズと前記抽出された空き領域の空き領域サイズが一致している場合は、前記空き領域管理テーブルから該当空き領域の情報を削除する
請求項２に記載のメモリ割当装置。
【請求項４】
前記管理指令が、前記メモリからデータブロックを削除する割当処理である場合、
前記制御データ割当処理部は、前記制御データ管理テーブルから前記割当処理に基づいて該当制御データのデータブロックを特定し、
該当制御データのデータブロックに対応するデータブロックを前記ブロック割当管理テーブルから抽出し、
前記ブロック割当管理テーブルから抽出したデータブロックの前記メモリ上における先頭アドレスとブロックサイズの情報を、前記空き領域管理テーブルに追加し、かつ、前記管理指令で指定されたデータブロックが含まれる制御データに対応する前記制御データ管理テーブルから、前記指定された該当データブロックについての制御データの状態情報を削除する
請求項１に記載のメモリ割当装置。
【請求項５】
前記ブロック割当管理テーブルから抽出したデータブロックの前記メモリ上における先頭アドレスとブロックサイズの情報を、前記空き領域管理テーブルに追加した場合に、新たに空き領域として追加したデータブロックと隣り合う空き領域が存在するときは、前記追加したデータブロックと前記隣り合う空き領域を統合する
請求項４に記載のメモリ割当装置。
【請求項６】
管理指令に含まれる割当処理対象制御データの情報に基づいて、データブロックのブロックサイズと、前記ブロックサイズを持つ１以上のデータブロックから構成される制御データの状態情報とを含む制御データ状態テーブルを、制御データごとに管理するための、制御データ管理記憶テーブル内の該当制御データ状態テーブルを特定するステップと、
次に前記管理指令に基づいて該当制御データ状態テーブルの状態情報を参照し、該当制御データの該当ブロックデータを特定するステップと、
そして、制御データごとに、前記ブロックサイズと、前記制御データが格納されるメモリ上における各データブロックの先頭アドレスの情報を管理するためのブロック割当管理テーブル、又は前記メモリ上の前記制御データのデータブロックが格納されていない空き領域の、前記メモリ上における先頭アドレスと空き領域サイズの情報を管理するための空き領域管理テーブルに基づいて、前記割当処理対象制御データの情報に対応して特定された前記制御データのブロックデータの前記メモリに対する割当処理を行うステップと、
を備えたメモリ割当方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、監視制御システムにおいて１台又は複数台の制御装置から出力される制御データを格納するシステムメモリに、記録領域を割り当てるメモリ割当装置及びメモリ割当方法に係る。
【背景技術】
【０００２】
従来の監視制御システムにおけるシステムメモリでは、ＰＬＣ（Programmable Logic Controller）等の制御装置毎に割り当て領域を固定することで、静的にメモリ割り当てが行われている。これにより、割当処理の実装を簡素化、省力化することができる。
【０００３】
しかし、システムの実装自体が固定的になる傾向があり、予め割り当てた領域を超えて制御データを挿入することは容易ではない。よって、将来の施設改造等に伴う制御データの増減に備えて充分な予備領域を見込む必要があり、冗漫な割り当てとなることが多い。また、多くの場合、全ての制御装置に対して同一の領域を確保するため、制御装置間で設備の規模に差があると、将来的にも使用の見込みのない予備領域を多く抱えることになる。
【０００４】
例えば、特許文献１には、複数の設備端末と接続している監視制御装置が、複数の設備端末より監視情報を受信し、その受信した監視情報は予め設定した各種パラメータテーブルに基づいて所定のエリアに格納する技術が記載されている。
【先行技術文献】
【特許文献】
【０００５】
【特許文献１】特開平１０−３２８８５号公報
【発明の概要】
【発明が解決しようとする課題】
【０００６】
ところで、特許文献１に記載の技術を始めとする従来のシステムメモリの割り当ては、処理が簡素であっても過度の冗長性がパフォーマンスの低下を招く可能性があった。また、初期の設計段階における想定を超えて制御データが増大した場合には、その時点で大規模な改造が必要であった。システムメモリの割り当てが固定的であるため、設計時にシステムの性格がある程度決定され、適用範囲が限定されていた。即ち、設計後に、設計時に想定した設備規模から大きく外れる施設において、システムメモリの割り当てが難しくなる。また、自施設より小規模な遠隔施設を同時に監視する等、異なる規模の制御装置が混在する場合にも適用が難しかった。さらに、システムメモリの割り当てが固定的であると、一旦割り当てたシステムメモリの不使用領域を有効利用することができなかった。
【０００７】
本発明はかかる点に鑑みてなされたものであり、システムメモリの割り当てを効率的に行い、システムメモリを最大限に有効活用できるようにすることを目的とする。
【課題を解決するための手段】
【０００８】
上記課題を解決するための本発明は、データブロックのブロックサイズと、ブロックサイズを持つ１以上のデータブロックから構成される制御データの状態情報とを含む制御データ状態テーブルを、制御データごとに管理するための制御データ管理テーブルと、制御データごとに、ブロックサイズと、制御データが格納されるメモリ上における各データブロックの先頭アドレスの情報を管理するためのブロック割当管理テーブルと、メモリ上の制御データのデータブロックが格納されていない空き領域の、メモリ上における先頭アドレスと空き領域サイズの情報を管理するための空き領域管理テーブルと、管理指令に含まれる割当処理対象制御データの情報に基づいて、制御データ管理テーブル内の該当制御データ状態テーブルを特定し、次に管理指令に基づいて該当制御データ状態テーブルの状態情報を参照し、該当制御データの該当ブロックデータを特定し、そしてブロック割当管理テーブル又は空き領域管理テーブルに基づいて、割当処理対象制御データの情報に対応して特定された制御データのブロックデータのメモリに対する割当処理を行う制御データ割当処理部とを備えたものである。
【発明の効果】
【０００９】
本発明は、メモリ上の制御データをデータブロック単位で動的に再配置可能であるため、予備メモリを考慮せずにメモリ割り当てを行うことができる。したがって、システムメモリの割り当てを効率的に行い、システムメモリを最大限に有効活用できる。
【図面の簡単な説明】
【００１０】
【図１】本発明の一実施形態に係るメモリ割当装置の構成を示したブロック図である。
【図２】本発明の一実施形態に係るシステムメモリとブロック割当管理テーブルと空き領域管理テーブルの関係を示した図である。
【図３】本発明の一実施形態に係るシステムメモリに、１台分の制御データが挿入されている例を示す図である。
【図４】本発明の一実施形態に係るシステムメモリに、複数台分の制御データが挿入されている例を示す図である。
【図５】本発明の一実施形態に係る制御部からのシステムメモリの参照処理を示す図である。
【図６】本発明の一実施形熊に係る制御データのデータブロック追加の処理例を示す図である。
【図７】本発明の一実施形熊に係る制御データのデータブロック追加の処理例を示すフローチャートである。
【図８】本発明の一実施形熊に係る制御データのデータブロック削除の処理例を示す図である。
【図９】本発明の一実施形熊に係る制御データのデータブロック削除の処理例を示すフローチャートである。
【発明を実施するための形態】
【００１１】
以下、本発明の一実施形態について、図１〜図９を参照して下記の順序で説明する。
１．メモリ割当装置を含めたプラント監視装置の構成
２．制御部からのシステムメモリへの参照処理
３．メモリ割当装置におけるデータブロックの挿入動作
４．メモリ割当装置におけるデータブロックの削除動作
【００１２】
［１．メモリ割当装置を含めたプラント監視装置の構成］
まず、本発明の一実施形態の例でのメモリ割当装置を含めたプラント監視装置の構成を、図１を用いて説明する。
【００１３】
図１は、本発明の一実施形熊の例に係るメモリ割当装置を含めたプラント監視装置の構成を示すブロック図である。
図１に示すように、プラント１０と、第１プロセスＩ／Ｏ装置２１と、第２プロセスＩ／Ｏ装置３１と、第３プロセスＩ／Ｏ装置４１と、第１制御装置２２と、第２制御装置３２と、第３制御装置４２と、監視装置１００と、ＨＭＩ部５００とで構成されている。
【００１４】
プラント１０は、製造工場、発電所、下水処理場などのプラントのことである。例えば、図１に示すように、プラント１０は、第１設備１１と、第２設備１２と、第３設備１３とで構成されている。そして、それぞれの設備はポンプ、バルブ、センサ等で構成されている。
【００１５】
第１プロセスＩ／Ｏ装置２１は、第１制御装置２２及び第１設備１１との間の中継の役割を担うものである。第２プロセスＩ／Ｏ装置３１は、第２制御装置３２及び第２設備１２との間の中継の役割を担うものであるする。第３プロセスＩ／Ｏ装置４１は、第３制御装置４２及び第３設備１３との間の中継の役割の役割を担うものであるする。
【００１６】
第１制御装置２２と、第２制御装置３２と、第３制御装置４２は、パソコンや専用の入力装置を利用して制御内容をあらかじめ備えたプログラムを備え、そのプログラムを逐次実行することによりシーケンス制御を行う制御装置である。そして、第１制御装置２２と、第２制御装置３２と、第３制御装置４２は、監視装置１００内にある通信制御部１１０と接続している。
【００１７】
監視装置１００は、第１制御装置２２と、第２制御装置３２と、第３制御装置４２を介して、プラント１０の監視や制御を行うものである。また、ＨＭＩ部５００との間に、プラント１０に対するデータの表示やプラント１０への操作等の指示情報などの通信を行う。
【００１８】
ＨＭＩ部５００は、プラント１０を構成する各設備の機器における状態量や各機器で計測される計測データなどのプラント情報等を表示するものであり、例えば、液晶表示装置等を適用できる。また、運転員はＨＭＩ部５００の画面に表示された情報を確認して、所望の表示指令や操作指令の入力を行うことができる。このように、ＨＭＩ部５００は、表示部および入力部として機能を備える。
【００１９】
ここで、監視装置１００の構成について、以下に詳細に説明する。
監視装置１００は、通信制御部１１０と、システムメモリ１２０と、タグデータベース１３０と、メモリ割当装置２００と、制御部４００で構成されている。
まず、通信制御部１１０は、第１制御装置２２、第２制御装置３２、第３制御装置４２とメモリ割当装置２００との間の中継器の役割を担うものである。
【００２０】
システムメモリ１２０は、第１設備１１、第２設備１２、第３設備１３の現在の状況を示す制御データを記憶している。なお、システムメモリ１２０は、メモリの一例である。ただし、制御データは、所定のブロックサイズ（以後、「割当ブロックサイズ」と称す）に合わせたデータブロックに分割される。すなわち、制御データはその分割されたデータブロック単位でシステムメモリ１２０の任意の位置にそれぞれ割り当てられる。そして、その割り当てられる領域の情報は、後述するブロック割当管理テーブル２２０で管理される。また、システムメモリ１２０でデータブロックが割り当てられていない領域は空き領域として、後述する空き領域管理テーブル２３０で管理される。
【００２１】
ここで、図３及び４に、割当ブロックサイズに分割された制御データが配置されるシステムメモリ１２０の一例を示す。
図３は、１台分の制御データを構成するデータブロックを格納したシステムメモリ１２０のメモリ割当の一例を示している。図４は、３台分の制御データを構成するデータブロックを格納したシステムメモリ１２０のメモリ割当の一例を示している。以下に、図３及び図４について詳細な説明を行う。
【００２２】
図３の例は、制御データ２３が、割当ブロックサイズに基づいて、制御データブロック２３ａと、制御データブロック２３ｂと、制御データブロック２３ｃと、制御データブロック２３ｄの４つの制御データブロックに分割された場合の例である。
それぞれの制御データブロックは、システムメモリ１２０の所定の位置に格納される。制御データブロック２３ａは、システムメモリ１２０内のデータブロック１２０ａに格納される。制御データブロック２３ｂは、システムメモリ１２０内のデータブロック１２０ｂに格納される。制御データブロック２３ｃは、システムメモリ１２０内のデータブロック１２０ｄに格納される。制御データブロック２３ｄは、システムメモリ１２０内のデータブロック１２０ｆに格納される。
【００２３】
また、システムメモリ１２０で制御データブロックが格納されていない空き領域は、データブロック１２０ｃ、データブロック１２０ｅ、データブロック１２０ｇになる。なお、データブロック１２０ｃとデータブロック１２０ｅとデータブロック１２０ｆは、同サイズの領域ではない。
【００２４】
一方、図４の例は、３台分の制御データ２４、３３、４３が、それぞれの割当ブロックサイズに基づいて分割された場合の例である。
制御データ２４は、制御データブロック２４ａと、制御データブロック２４ｂと、制御データブロック２４ｃに分割される。制御データ３３は、制御データブロック３３ａと、制御データブロック３３ｂに分割される。制御データ４３は、制御データブロック４３ａと、制御データブロック４３ｂと、制御データブロック４３ｃと、制御データブロック４３ｄに分割される。
【００２５】
そして、それぞれの制御データブロックは、システムメモリ１２０の所定の位置に格納される。図４の場合は、制御データ２４、３３、４３の順に格納されることとする。
制御データブロック２４ａは、システムメモリ１２０内のデータブロック１２１ａに格納される。制御データブロック２４ｂは、システムメモリ１２０内のデータブロック１２１ｂに格納される。制御データブロック２４ｃは、システムメモリ１２０内のデータブロック１２１ｃに格納される。制御データブロック３３ａは、システムメモリ１２０内のデータブロック１２１ｄに格納される。制御データブロック３３ｂは、システムメモリ１２０内のデータブロック１２１ｅに格納される。制御データブロック４３ａは、システムメモリ１２０内のデータブロック１２１ｆに格納される。制御データブロック４３ｂは、システムメモリ１２０内のデータブロック１２１ｇに格納される。制御データブロック４３ｃは、システムメモリ１２０内のデータブロック１２１ｈに格納される。制御データブロック４３ｄは、システムメモリ１２０内のデータブロック１２１ｉに格納される。
そして、システムメモリ１２０で制御データブロックが格納されていない空き領域は、データブロック１２１ｊになる。
【００２６】
図１の説明に戻る。図１に示されるタグデータベース１３０は、「設備番号」、「設備内のアドレス」および「制御データ」の対応関係を示す情報を記憶している。以降、これらの対応関係を示した情報を処理タグ（変換情報）と称す。また、タグデータベース１３０は、必要に応じて制御部４００及びメモリ割当装置２００と接続され、それぞれの装置に対し処理タグの情報を提供する。なお、処理タグを使用しての制御部４００からのシステムメモリ１２０への参照処理は後述する。
制御４００は、ＨＭＩ部５００からの入力信号に従って、メモリ割当装置２００へ管理指令を出力する。このとき出力される管理指令には、プラント１０内の新たに管理対象として追加・削除する設備の指定や、特定設備のどの機能を管理対象として追加・削除するかの指示が含まれる。この管理指令が発せされると、メモリ割当装置２００によりシステムメモリ１２０に対して指定された制御データの割当処理が行われる。割当処理対象の制御データは、ＨＭＩ部５００により指定され、システムメモリ１２０上の所定のデータブロックに割り当てられる。なお、設備の機能を選択することにより、制御データのアドレス範囲が指定されるようにしてもよい。
【００２７】
また、タグデータベース１３０は、処理タグ変換情報を格納しているとしたが、その他にプロセス量（ＰＶ値）、警報基準値、関連するブロック番号を示す関連ブロック図番号、関連するロジック図の番号を示す関連ロジック番号等を格納してもよい。
【００２８】
メモリ割当装置２００は、制御データ割当処理部２１０と、ブロック割当管理テーブル２２０と、空き領域管理テーブル２３０と、制御データ管理テーブル３００とで構成されている。
【００２９】
制御データ割当処理部２１０は、第１設備１１、第２設備１２、第３設備１３からの制御データを割当ブロックサイズに分割したデータブロックを、システムメモリ１２０に格納する。そして、制御データ割当処理部２１０は、割当ブロックサイズ及び制御データを割当ブロックサイズに分割したデータブロック単位の状態情報を、制御データ管理テーブル３００に格納する。また、制御データ割当処理部２１０は、制御データを割当ブロックサイズに分割したデータブロックが割り当てられているシステムメモリ上の先頭アドレス及び当該割当ブロックサイズを含んでいるデータ構造の情報を、ブロック割当管理テーブル２２０に格納する。さらに、制御データ割当処理部２１０は、システムメモリ１２０上で制御データが割り当てられていない空き領域のシステムメモリ上の先頭アドレス及びその空き領域のブロックサイズを含んでいるデータ構造の情報を、空き領域管理テーブル２３０に格納する。
また、制御データ割当処理部２１０は、タグデータベース１３０に基づいて処理タグに変換して、制御部４００との間で通信を行う。
【００３０】
なお、割当ブロックサイズは、プラント１０の新しい設備増加又は既存の設備が増加する場合において、運転員及びエンジニア、又はコンピュータによって制御装置ごとに設定される。なお、制御データは、割当ブロックサイズに基づいて、制御データの先頭から順に隙間無く分割されるものとする。また、割当ブロックサイズの設定は、ポンプ等の主機とそれを取り巻く補機群の信号を一連の設備と捉え、それらの設備群の中で最大のものを割当ブロックサイズとしてもよい。ただし、最大のものが、二番目のものとの間に２倍以上の差がある場合、二番目のものを割当ブロックサイズとする。
【００３１】
制御データ管理テーブル３００は、割当ブロックサイズ及び制御データを割当ブロックサイズ単位に分割された制御データの状態情報と含む制御データ状態テーブルを、制御データごとに管理する。なお、割当ブロックサイズに分割したデータの状態情報は、ブロック割当管理テーブル２２０に格納されているデータ構造の情報と対応している。
【００３２】
ここで、制御データ管理テーブル３００の一例を、図１及び２を用いて説明する。第１設備１１、第２設備１２、第３設備１３のそれぞれの制御データがある場合とする。制御データ管理テーブル３００には、図１に示すように、第１制御データ状態テーブル３１０と、第２制御データ状態テーブル３２０と、第３制御データ状態テーブル３３０の情報を格納されている。また、各制御データ状態テーブルには、図２の第１制御データ状態テーブル３１０に示すように、設備ごとに設定した割当ブロックサイズと、制御データを割当ブロックサイズ単位に分割されたデータブロックの状態情報を格納する。
【００３３】
第１制御データ状態テーブル３１０について、割当ブロックサイズと制御データを割当ブロックサイズに分割したデータブロック単位の状態情報の具体例の一例を説明する（図２を参照）。
まず、第１設備１１の制御データが「４００」の領域容量を持つとし、運転員及びエンジニア又はコンピュータが割当ブロックサイズを「１００」と設定した場合とする。割当ブロックサイズ「１００」に基づいて、第１設備１１の制御データは４分割される。そして、第１制御データ状態テーブル３１０内において、「１００」の情報が割当ブロックサイズ３１１に格納され、第１設備１１の制御データの領域容量「４００」を４分割した情報が状態情報３１２に格納される。状態情報３１２は、４つのブロックの情報に分けられる。つまり、ブロックの情報３１２ａには、第１設備１１の制御データの領域容量「０−９９」の情報が含まれている。ブロックの情報３１２ｂには、第１設備１１の制御データの領域容量「１００−１９９」の情報が含まれている。ブロックの情報３１２ｃには、第１設備１１の制御データの領域容量「２００−２９９」の情報が含まれている。ブロックの情報３１２ｄには、第１設備１１の制御データの領域容量「３００−３９９」の情報が含まれている。
【００３４】
ブロック割当管理テーブル２２０は、制御データごとの割当ブロックサイズと、制御データが格納されるメモリ上における、各データブロックの先頭のアドレスの情報とを管理する。以後、割当ブロックサイズと先頭のアドレスの情報を組み合わせた情報を、データ構造と称す。
【００３５】
例えば、ブロック割当管理テーブル２２０の構成の一例は、図２に示すように、データ構造２２１、データ構造２２２、データ構造２２３、データ構造２２４となる。そして、データ構造２２１は、先頭アドレス２２１ａ及びブロックサイズ２２１ｂで構成される。データ構造２２２は先頭アドレス２２２ａ及びブロックサイズ２２２ｂで構成される。データ構造２２３は先頭アドレス２２３ａ及びブロックサイズ２２３ｂで構成される。データ構造２２４は先頭アドレス２２４ａ及びブロックサイズ２２４ｂで構成される。
【００３６】
そして、先頭アドレス２２１ａ、先頭アドレス２２２ａ、先頭アドレス２２３ａ、先頭アドレス２２４ａは、システムメモリ１２０上の位置を示している。例えば、先頭アドレス２２１ａには、システムメモリ１２０の１１０ａの先頭のアドレスを示す「０」という情報が含まれている。先頭アドレス２２２ａには、システムメモリ１２０の１１０ｂの先頭のアドレスを示す「１００」という情報が含まれている。先頭アドレス２２３ａには、システムメモリ１２０の１１０ｄの先頭のアドレスを示す「３５０」という情報が含まれている。先頭アドレス２２４ａには、システムメモリ１２０の１１０ｆの先頭のアドレスを示す「６５０」という情報が含まれている。
【００３７】
また、ブロックサイズ２２１ｂ、ブロックサイズ２２２ｂ、ブロックサイズ２２３ｂ、ブロックサイズ２２４ｂは、図２に示すように、第１制御データ状態テーブル３１０と連結しているため、第１制御データ状態テーブル３１０で設定された割当ブロックサイズ３１１と同じサイズとなる。つまり、ブロックサイズ２２１ｂ、ブロックサイズ２２２ｂ、ブロックサイズ２２３ｂ、ブロックサイズ２２４ｂのそれぞれには、「１００」というサイズ情報を含める。この場合において、ブロックサイズを含んでいるデータ構造が同一の制御データ状態テーブルに連結しているので、同一のデータブロックのサイズとしている。しかし、データ構造のそれぞれが相違する制御データ状態テーブルと連結している場合は、それぞれのデータ構造のブロックサイズは相違する。
【００３８】
また、ブロック割当管理テーブル２２０の各データ構造は、制御データ管理テーブル３００内にある各制御データ状態テーブルと連結をしている。例えば、図２に示すように、データ構造２２１は、第１制御データ状態テーブル３１０内のブロックの情報３１２ａと連結する。データ構造２２２は、第１制御データ状態テーブル３１０内のブロックの情報３１２ｂと連結する。データ構造２２３は、第１制御データ状態テーブル３１０内のブロックの情報３１２ｃと連結する。データ構造２２４は、第１制御データ状態テーブル３１０内のブロックの情報３１２ｄと連結をする。
【００３９】
空き領域管理テーブル２３０は、システムメモリ１２０上での制御データのデータブロックが格納されていない空き領域の情報を管理する。空き領域の情報は、システムメモリ１２０の構造体をリストにしたデータ構造とする。そのデータ構造は、システムメモリ１２０上の空き領域の先頭アドレスと、その空き領域のブロックサイズを含んでいる。例えば、空き領域管理テーブル２３０の構成の一例は、図２に示すように、データ構造２３１、データ構造２３２、データ構造２３３となる。そして、データ構造２３１は先頭アドレス２３１ａ及びブロックサイズ２３１ｂで構成され、データ構造２３２は先頭アドレス２３２ａ及びブロックサイズ２３２ｂで構成され、データ構造２３３は先頭アドレス２３３ａ及びブロックサイズ２３３ｂで構成される。
【００４０】
そして、先頭アドレス２３１ａ、先頭アドレス２３２ａ、先頭アドレス２３３ａは、システムメモリ１２０上の位置を示している。例えば、先頭アドレス２３１ａには、システムメモリ１２０の１１０ｃの先頭のアドレスを示す「２００」という情報を含む。先頭アドレス２３２ａには、システムメモリ１２０の１１０ｅの先頭のアドレスを示す「４５０」という情報を含む。先頭アドレス２３３ａには、システムメモリ１２０の１１０ｇの先頭のアドレスを示す「７５０」という情報を含む。
【００４１】
また、ブロックサイズ２３１ｂ、ブロックサイズ２３２ｂ、ブロックサイズ２３３ｂは、システムメモリ１２０の空き領域のサイズを示す。図２に示すように、ブロックサイズ２３１ｂは「１５０」のサイズ情報を含め、ブロックサイズ２３２ｂは「２００」のサイズ情報を含め、ブロックサイズ２３３ｂは「６５０」のサイズ情報を含める。
【００４２】
ところで、図２に示すブロック割当管理テーブル２２０及び空き領域管理テーブル２３０は全く同一のデータ構造で実装されているので、二つを合わせて単一の管理テーブルとしてもよい。その際には、各データ構造にデータブロックと空き領域を区別するフラグを実装する必要がある。
【００４３】
次に、制御部４００について、以下に説明する。制御部４００は、ＨＭＩデータ提供部４１０と、プラントデータ４２０と、プラントデータ作成部４３０と、時系列データベース４４０と、データベース作成部４５０とで構成される。
【００４４】
プラントデータ作成部４３０は、プラント１０に関する情報の収集を随時行い、その収集した情報を元に、ＨＭＩ部５００の表示形式にした情報に変換する作業を行う。
そして、プラントデータ４２０は、プラントデータ作成部４３０で生成された情報の一時的に記憶する。
【００４５】
データベース作成部４５０は、プラント１０に関する情報の収集を随時行い、時系列データベース４４０の情報形式に合わせた情報にして、時系列データベース４４０に送信する。
時系列データベース４４０は、データベース作成部４５０で生成された情報を時系列にして格納し、ＨＭＩ部５００の要求に合わせて過去の情報を抽出して、ＨＭＩ部５００に送信する。
【００４６】
ＨＭＩデータ提供部４１０は、プラントデータ４２０及び時系列データベース４４０を参照してプラント１０に関する情報をＨＭＩ部５００に提供すること、かつ、タグデータベース１３０を参照して、ＨＭＩ部５００からの管理指令に含まれる割当処理対象制御データの情報を処理タグに変換して、メモリ割当装置２００と通信を行う。
【００４７】
［２．制御部のシステムメモリ参照処理］
以下、制御部４００がシステムメモリ１２０上の情報を参照する処理について、図５を用いて説明する。
【００４８】
図５は、制御部４００からの管理指令に含まれる割当処理対象制御データの情報を処理タグに変換して、その処理タグを用いてシステムメモリ１２０上の値を参照する処理を示す。なお、管理指令に含まれる割当処理対象制御データの情報は、制御データの追加又は削除の指示情報を含んでもよい。
ここでの処理タグは、制御データ番号と制御データ上のアドレスを組み合わせた文字列で構成されるとする。なお、制御データ番号は制御データ管理テーブル３００内にある所定の当該制御データ状態テーブルを示す。また、制御データ上のアドレスは当該制御データ状態テーブルのデータブロックごとの状態の状態情報内の所定のブロックの情報と、そのブロックの情報の相対位置を示す。
【００４９】
なお、この処理タグの変換処理は、例えばアルゴリズムの計算量の解析に用いられるＯ−記法関数０（１）の処理で行われる。ただし、これは、処理タグからアドレスを計算できるという特性に依存する。
【００５０】
次に、制御部４００からの管理指令に含まれる割当処理対象制御データの情報が、処理タグ「Ａ０１０２８０」に変換された場合の一例について、説明する。
まず、制御データ管理テーブル３００内にある第１制御データ状態テーブル３１０が、図５に示すように、割当ブロックサイズ３１１を「１００」とし、かつ、状態情報３１２をその割当ブロックサイズ３１１のサイズ「１００」に基づいて制御データの容量「４００」を４分割にした情報を含むとした場合とする。ただし、この場合の状態情報３１２におけるブロックの情報３１２ａは、制御データの「０−９９」を示す情報を含む。ブロックの情報３１２ｂは、制御データの「１００−１９９」を示す情報を含む。ブロックの情報３１２ｃは、制御データの「２００−２９９」を示す情報を含む。ブロックの情報３１２ｄは制御データの「３００−３９９」を示す情報を含む。
【００５１】
そして、処理タグ「Ａ０１０２８０」は、制御データ割当処理部２１０において、「Ａ０１」と「０２」と「８０」という要素に分割でき、それぞれの要素で制御データ管理テーブル３００を参照する。この場合では、「Ａ０１」は第１制御データ状態テーブル３１０を示す。そして、「０２」は、２００番台であることを示すため、３番目のブロックの情報３１２ｃを示し、「８０」はブロックの情報３１２ｃ内の相対位置を示している。即ち、この場合での処理タグは、前から３つの文字は制御データ管理テーブル３００内の制御データ状態テーブルを示し、処理タグの前から４−５つ目の文字は該当制御データ状態テーブルのブロックの情報の位置を示し、処理タグの前から６−８つの文字は該当ブロックの情報の相対位置を示す。
【００５２】
処理タグ「Ａ０１０２８０」に基づいて制御データ管理テーブル３００の位置（図５のブロックの情報３１２ｃ）が算出されることで、制御データ管理テーブル３００と連結しているブロック割当管理テーブル２２０の位置（図５のデータ構造２２３）を経て、システムメモリ１２０上でのデータブロック（図５のデータブロック１２０ｄ）が算出される。そして、処理タグの「８０」という要素により、先頭アドレス２２３ａにデータブロック内の相対アドレスを加算することで、システムメモリ１２０における当該信号のシステムメモリ１２０上の位置（図５の１２０ｄａ）が算出される。
なお、ここで示した処理タグは一例である。この一例に限らず、その他のタグを定義してもよい。
［３．メモリ割当装置におけるデータブロックの挿入動作］
以下、メモリ割当装置２００における制御データのデータブロック追加の処理について、図６及び図７を用いて説明する。この追加処理は、例えばプラント１０の新しい設備増加又は既存の設備の増加により、運転員及びエンジニア、またはコンピュータが制御データの増加操作を行った場合に行われる。
図６は本発明の一実施形熊の例に係るメモリ割当装置２００における制御データのデータブロック追加の動作図を示す。また、図７は図６に示す動作図に対応するフローチャートである。
【００５３】
まず、図７に示すように、運転員及びエンジニア、またはコンピュータが所定の設備の制御データ内の所定のデータの増加指示を行う（ステップ１）。制御データ内のデータ増加が行われない場合は、終了となる。
制御データの増加が行われた場合、制御データ割当処理部２１０は制御データにおける増加分を検出する（ステップＳ２）。そして、所定の制御データに対応した制御データ状態テーブルに格納されている割当ブロックサイズに基づいて増加分の制御データを分割することで、増加分のデータブロックを作成する（ステップＳ３）。そして、増加分の制御データを割当ブロックサイズに分割したデータブロックの状態の状態情報を入れて、制御データ管理テーブル３００を更新する（ステップＳ４）。
【００５４】
図６における一例では、作成されたデータブロックが１つのみ（データブロック２５）である場合は、制御データ管理テーブル３００内に、データブロック２５に対応したブロックの情報３１２ｅを追加されることとなる。
【００５５】
次に、その増加分のデータブロックが格納できるシステムメモリ１２０の空き領域を特定するために、空き領域管理テーブル２３０を参照して、増加分のデータブロックに挿入できる空き領域のデータブロックを特定する（ステップＳ５）。そして、その特定した空き領域に、その増加分のデータブロックを挿入する（ステップＳ６）。
【００５６】
図６における一例では、システムメモリ１２０にデータブロック２５を挿入する場合、空き領域管理テーブル２３０に基づいてブロックの情報３１２ｅに適した空き領域の特定が行われる。空き領域管理テーブル２３０が格納している複数のデータ構造の中から、ブロックの情報３１２ｅに適したデータ構造を選択する。ただし、この選択における処理は、システムメモリの１２０において、先頭のほうにあるデータ構造から比較するものとする。
この場合は、データ構造２３１が該当するため、そのデータ構造２３１に対応したシステムメモリ１２０上のデータブロック１２０ｃにデータブロック２５を格納する領域として特定される。そして、データブロック１２０ｃに増加分のデータブロック２５が挿入される。
【００５７】
次に、図７のステップ７の処理で、増加分のデータブロックが挿入されたシステムメモリ１２０内のデータブロックにおけるデータ構造の情報を、ブロック割当管理テーブル２２０に追加して、更新する。
この更新とともに、空き領域が増加分のデータブロックより大きいかどうかを判断する。つまり、余剰分としての空き領域が検出されたかどうかを判断する（ステップＳ８）。
余剰分の空き領域があった場合は、ステップＳ５で特定した空き領域のデータ構造を削除し、代わりに余剰分の空き領域のデータ構造の情報を入れて、空き領域管理テーブル２３０を更新する（ステップＳ９）。また、余剰分の空き領域が検出されなかった場合、つまり、特定した空き領域と増加分のデータブロックが同じサイズであった場合は、余剰分のデータブロックはできないので、その特定した空き領域のデータ構造を除いた形で、空き領域管理テーブル２３０を更新する（ステップＳ９）。
【００５８】
図６の例では、データブロック１２０ｃにデータブロック２５を挿入されることで、データブロック１２０ｃは、データブロック２５に挿入されたデータブロック１２０ｃａと、余剰分のデータブロック１２０ｃｂとに分割される。そして、データブロック１２０ｃａは、データブロック１２０ｃａの先頭アドレスとブロックサイズをデータ構造２２５とし、ブロック割当管理テーブル２２０にデータ構造２２５を入れて更新する。ただし、データブロック１２０ｃａは、同じ制御データの一部であるデータブロック１２０ａ及び１２０ｂに続く３番目の位置にあるので、ブロック割当管理テーブル２２０に挿入される位置は、データ構造２２２の下に挿入されることとなる。
また、データブロック１２０ｃｂにおいては、データブロック１２０ｃｂの先頭アドレスとブロックサイズを入れた新しいデータ構造２３１とし、空き領域管理テーブル２３０は更新される。
【００５９】
［４．メモリ割当装置におけるデータブロックの削除動作］
以下、メモリ割当装置２００における制御データのデータブロック削除の処理について、図８及び９を用いて説明する。この削除処理は、プラント１０の既存の設備削除又は既存の設備内の一部の設備の削除により、運転員及びエンジニア、またはコンピュータが制御データの削除操作を行った場合に行われる。
【００６０】
図８は本発明の一実施形熊の例に係るメモリ割当装置２００における制御データのデータブロック削除の動作図を示す。また、図９は図８に示す動作図に対応するフローチャートにしたものである。
【００６１】
まず、図９に示すように、運転員及びエンジニア、またはコンピュータが所定の設備の制御データ内の所定のデータの削除指示を行う（ステップ１１）。制御データ内のデータ削除が行われない場合は、終了となる。
制御データ内のデータ削除が行われた場合、制御データ割当処理部２１０は制御データの削除する部分を特定する（ステップＳ１２）。その制御データの削除された部分を、制御データ管理テーブル３００にある当該制御データ状態テーブルと、その当該制御データ状態テーブルの当該ブロックの情報を特定する（ステップＳ１３）。
【００６２】
当該制御データ状態テーブルの当該ブロックの情報が特定されたことにより、ブロック割当管理テーブル２２０上での当該ブロックの情報に連結したデータ構造が特定される（ステップＳ１４）。図８における一例では、削除するブロックの情報をブロックの情報３１２ｂとした場合、ブロックの情報３１２ｂに連結したデータ構造２２２が特定される。
そして、当該ブロックの情報に連結したデータ構造に対応するシステムメモリ上のデータブロックが特定される（ステップＳ１５）。図８における一例では、データ構造２２２に対応するシステムメモリ１２０上のデータブロック１２０ｂと特定される。
特定されたデータブロックは、空き領域として開放される（ステップＳ１６）。図８における一例では、システムメモリ１２０のデータブロック１２０ｂが空き領域として開放される。
【００６３】
次に、開放したデータブロックの隣接に空き領域があるかの判断を行う（ステップＳ１７）。開放したデータブロックの隣接に空き領域がある場合は、その隣接した空き領域と統合したデータブロックとする（ステップＳ１８）。
図８における一例では、空き領域となったデータブロック１２０ｂの隣接には空き領域であるデータブロック１２０ｃが存在する。これにより、データブロック１２０ｂとデータブロック１２０ｃを統合し、一つの空き領域とする。
また、開放したデータブロックの隣接に空き領域がない場合は、次のステップ１９に進む。
【００６４】
そして、空き領域又は統合した空き領域での先頭アドレス及びブロックサイズを含めた情報であるデータ構造を含めて、空き領域管理テーブル２３０を更新する。さらに、制御データ管理テーブル３００は、空き領域として開放した当該ブロックの情報を削除して更新される。また、ブロック割当管理テーブル２２０は、当該ブロックの情報に連結したデータ構造を削除して更新される（ステップＳ１９）。
【００６５】
図８における一例では、空き領域となったデータブロック１２０ｂの隣接には、空き領域であるデータブロック１２０ｃが存在する。よって、データブロック１２０ｂ及びデータブロック１２０ｃは、統合した一つの空き領域となる。そして、当該統合した一つの空き領域の先頭アドレス及び当該統合した一つの空き領域のブロックサイズを含めた情報は、空き領域管理テーブル２３０上のデータ構造２３１として格納して、空き領域管理テーブル２３０を更新する。さらに、制御データ管理テーブル３００は、空き領域として開放した当該ブロックの情報３１２ｂを削除して更新される。また、ブロック割当管理テーブル２２０は、当該ブロックの情報に連結したデータ構造２２２を削除して更新される。
【００６６】
以上説明したように、本発明は、システムメモリ上の制御データをデータブロック単位で動的に再配置可能であるので、システムメモリに予備の領域を考慮せずにメモリ割り当てを行うことができる。さらに、必要に応じて、後から制御データのデータブロックの挿入及び削除を実施して割当領域を変更できる。例えば、制御装置の管轄する設備規模に差がある場合でも、システムメモリは、それぞれの規模に合わせた領域を割り当てることができる。そして、制御データのデータブロックが動的に追加と削除を繰り返したとしても、ブロック割当管理テーブル２２０及び制御データ管理テーブル３００を参照することで、システムメモリ上の制御データのデータブロックの配置を特定することができる。これにより、本発明は、システムメモリの冗長性を最小限に抑え、システムメモリ上の制御データへのアクセス処理時間の短縮とシステムメモリ空間の有効利用とが可能となる。また、メモリ割り当てが柔軟となるので、監視装置は、新たにシステムメモリを用意することなく、設備の拡充を容易に行うことができる。
【００６７】
なお、以上に述べた本発明の一実施形態は、本発明を実施するための好適な形態の具体例であるから、技術的に好ましい種々の限定が付されている。ただし、本発明は、以上の一実施形態の説明において特に本発明を限定する旨の記載がない限り、この一実施形態に限られるものではない。したがって、本発明は、上述した一実施形態の例に限定されるものではなく、本発明の要旨を逸脱しない範囲において、種々の変形、変更が可能である。
【符号の説明】
【００６８】
１０…プラント、１１…第１設備、１２…第２設備、１３…第３設備、２１…第１プロセスＩ／Ｏ装置、２２…第１制御装置、３１…第２プロセスＩ／Ｏ装置、３２…第２制御装置、４１…第３プロセスＩ／Ｏ装置、４２…第３制御装置、１００…監視装置、１１０…通信制御部、１２０…システムメモリ、１３０…タグデータベース、２００…メモリ割当装置、２１０…制御データ割当処理部、２２０…ブロック割当管理テーブル、３００…制御データ管理テーブル、３１０…第１制御データ状態テーブル、３１１…割当ブロックサイズ、３１２…状態情報、３２０…第２制御データ状態テーブル、３３０…第３制御データ状態テーブル、４００…制御部、４１０…ＨＭＩデータ提供部、４２０…プラントデータ、４３０…プラントデータ作成部、４４０…時系列データベース、４５０…データベース作成部、４６０…画面表示部、５００…ＨＭＩ部
【図１】
2011164938.tif 000003
【図２】
2011164938.tif 000004
【図３】
2011164938.tif 000005
【図４】
2011164938.tif 000006
【図５】
2011164938.tif 000007
【図６】
2011164938.tif 000008
【図７】
2011164938.tif 000009
【図８】
2011164938.tif 000010
【図９】
2011164938.tif 000011