以下の例示的な実施形態や変形例には、同様の構成要素が含まれている。よって、以下では、同様の構成要素には共通の符号が付されるとともに、重複する説明が部分的に省略される。実施形態や変形例に含まれる部分は、他の実施形態や変形例の対応する部分と置き換えて構成されることができる。また、実施形態や変形例に含まれる部分の構成や位置等は、特に言及しない限りは、他の実施形態や変形例と同様である。
<第1実施形態>
図1は、第1実施形態のプラント制御システム10の全体構成図である。プラント制御システム10は、1または複数の拠点18a、18bのプラントPTのそれぞれをコントロールするための複数の制御プログラムを生成して実行する。拠点18a、18bを区別する必要がない場合、拠点18と記載する。プラントPTは、設備の一例である。図1に示すように、プラント制御システム10は、制御クラウドデータ管理装置12と、1または複数のプラント制御装置14と、ネットワーク16とを備える。
制御クラウドデータ管理装置12は、管理装置の一例であって、サーバー(例えば、OPC(OLE(Object Linking and Embedding) for Process Control)サーバー)として機能する。制御クラウドデータ管理装置12は、ネットワーク16を介して、異なる拠点18の複数のプラント制御装置14とデータを送受信可能に接続されている。制御クラウドデータ管理装置12は、複数の拠点18のプラント制御装置14のそれぞれで実行される複数の制御プログラムが参照する変数を含む制御クラウドデータ34を管理するとともに、制御クラウドデータ34を定義する制御クラウドデータ定義60をプラント制御装置14とインポート及びエクスポートする。
プラント制御装置14は、クライアント装置の一例であって、プラントPTが設置されている複数の異なる拠点18a、18bに設けられている。複数のプラント制御装置14が、同じ拠点18aに設けられていてもよい。この場合、同じ拠点18aのプラント制御装置14とプラント制御装置14は、拠点18a内に設けられた制御ネットワーク19を介して互いに接続される。制御ネットワーク19の一例は、LAN(Local Area Network)等のイントラネットである。異なる拠点18a、18bのプラント制御装置14は、例えば、閉鎖的なLAN等の制御ネットワーク19では接続されていない。プラント制御装置14は、サーバーとして機能する制御クラウドデータ管理装置12のクライアント(例えば、OPCクライアント)として機能する。プラント制御装置14は、制御クラウドデータ34を用いて各拠点18のプラントPTを制御する。
制御クラウドデータ34は、プラント制御装置14が実行する制御プログラムが参照するローカル変数及びグローバル変数を有する。ローカル変数は、1つのプラント制御装置14が実行する1つの制御プログラムによって参照される。グローバル変数は、1または複数のプラント制御装置14が実行する複数の制御プログラムによって参照される。グローバル変数は、コントローラ変数と、ネットワーク変数とを含む。コントローラ変数は、1つのプラント制御装置14が実行する複数の制御プログラムによって参照される。ネットワーク変数は、複数のプラント制御装置14間で共有され、複数のプラント制御装置14が実行する複数の制御プログラムによって参照される。
ネットワーク16は、制御クラウドデータ管理装置12と、1または複数のプラント制御装置14とをデータを送受信可能に接続する。ネットワーク16は、例えば、インターネット及びイントラネット等である。
図2は、制御クラウドデータ管理装置12の全体構成を説明するブロック図である。制御クラウドデータ管理装置12は、例えば、CPU(Central Processing Unit)等のハードウェアプロセッサと、ROM(Read Only Memory)、RAM(Random Access Memory)、HDD(Hard Disk Drive)及びSSD(Solid State Drive)等を含む記憶装置とを有するコンピュータである。図2に示すように、制御クラウドデータ管理装置12は、OPCサーバー部20と、データベース部22と、表示装置24と、キーボード26と、マウス28とを有する。
OPCサーバー部20は、プロセッサがOPCサーバーのプログラムを読み込むことによってOPCサーバー機能を有する。OPCサーバー部20は、プラント制御装置14とデータを送受信可能にネットワーク16と接続されている。OPCサーバー部20は、第3インポート/エクスポート部の一例であるインポート/エクスポート部30と、第2更新通知データ管理部の一例である更新通知データ管理部32とを有する。
インポート/エクスポート部30は、外部のプラント制御装置14から制御クラウドデータ定義60をインポートする。インポート/エクスポート部30は、制御クラウドデータ定義60に基づいて制御クラウドデータ34を更新してデータベース部22に格納する。
更新通知データ管理部32は、制御クラウドデータ34が変更または更新されると、制御クラウドデータ34の更新内容を示す更新通知データ36を生成してデータベース部22に格納する。例えば、更新通知データ管理部32は、新たにインポートした制御クラウドデータ定義60と、インポート前にデータベース部22に格納されている制御クラウドデータ34とを比較して、プラント制御装置14で制御クラウドデータ34が更新されたか否かを判定する。更新通知データ管理部32は、更新されたと判定すると、新たにインポートした制御クラウドデータ定義60に基づいて更新通知データ36を生成する。更新通知データ管理部32は、更新通知データ36を別のプラント制御装置14へ送信する。例えば、更新通知データ管理部32は、別のプラント制御装置14からの要求に応じて更新通知データ36を別のプラント制御装置14へ送信する。
データベース部22は、記憶装置の機能として実現される。データベース部22は、制御クラウドデータ34と、更新通知データ36とを格納する。
表示装置24は、OPCサーバー部20等から取得した画像データに基づいて画像を表示して出力する液晶表示装置等によって構成される。キーボード26及びマウス28は、ユーザの入力を受け付けてOPCサーバー部20等へ送信する。
図3は、プラント制御装置14の全体構成を説明するブロック図である。図3に示すように、プラント制御装置14は、コントローラ40と、制御プログラム作成装置42と、制御ネットワーク19とを有する。コントローラ40及び制御プログラム作成装置42は、制御ネットワーク19によって、データを送受信可能に接続されている。
コントローラ40は、例えば、CPU等のハードウェアプロセッサと、記憶装置とを有するコンピュータである。コントローラ40は、OPCクライアント部44と、クライアント側データベース部の一例であるOPCデータベース部46と、制御プログラム管理部48と、制御データベース部50とを有する。OPCクライアント部44及び制御プログラム管理部48は、プロセッサがプログラムを読み込むことによって実現される機能である。OPCデータベース部46及び制御データベース部50は、記憶装置の機能として実現される。
OPCクライアント部44は、OPCクライアント機能を有する。OPCクライアント部44は、外部の制御クラウドデータ管理装置12とデータを送受信可能にネットワーク16と接続されている。OPCクライアント部44は、第2インポート/エクスポート部の一例であるインポート/エクスポート部52と、第1更新通知データ管理部の一例である更新通知データ管理部54と、制御クラウドデータ管理部56とを有する。
インポート/エクスポート部52は、制御プログラム作成装置42及び制御クラウドデータ管理装置12と、制御クラウドデータ定義60をインポートまたはエクスポートする。例えば、インポート/エクスポート部52は、後述する制御プログラム作成装置42のインポート/エクスポート部88から制御クラウドデータ定義60をインポートする。インポート/エクスポート部52は、インポートした制御クラウドデータ定義60を制御クラウドデータ管理装置12のインポート/エクスポート部30へエクスポートする。尚、インポート/エクスポート部52は、インポートした制御クラウドデータ定義60のうち、グローバル関数に関する制御クラウドデータ定義60のみを制御クラウドデータ管理装置12のインポート/エクスポート部30へエクスポートしてもよい。インポート/エクスポート部52は、インポートした制御クラウドデータ定義60をOPCデータベース部46に格納する。インポート/エクスポート部52は、インポートした制御クラウドデータ定義60に基づいて定義した制御クラウドデータ34をOPCデータベース部46に格納する。インポート/エクスポート部52は、別のプラント制御装置14で更新されてOPCデータベース部46に格納された制御クラウドデータ定義60をインポート/エクスポート部88からエクスポートする。
更新通知データ管理部54は、制御クラウドデータ管理装置12の更新通知データ36に基づいて、別のプラント制御装置14による制御クラウドデータ34の更新を検知する。更新通知データ管理部54は、更新を検知すると、更新通知データ36を制御クラウドデータ管理装置12に要求する。これにより、更新通知データ管理部54は、別のプラント制御装置14の制御クラウドデータ34の更新内容を示す更新通知データ36を制御クラウドデータ管理装置12から受信する。更新通知データ管理部54は、受信した更新通知データ36に基づいて、OPCデータベース部46の制御クラウドデータ定義60を更新して格納する。
制御クラウドデータ管理部56は、インポート/エクスポート部52または更新通知データ管理部54がOPCデータベース部46に格納した制御クラウドデータ定義60に基づいて、OPCデータベース部46に格納された制御クラウドデータ34と、後述する制御クラウドデータ34の少なくとも一部を格納する制御データベース部50のデータメモリ72とを紐付ける。
OPCデータベース部46は、制御クラウドデータ定義60によって定義された制御クラウドデータ34及び制御クラウドデータ定義60をインポート/エクスポート部52または更新通知データ管理部54から受け付けて格納する。
制御プログラム管理部48は、制御プログラムの実行等を管理する。制御プログラム管理部48は、プログラムロードサーバー部64と、プログラム実行処理部66と、プロセス入出力処理部68とを有する。
プログラムロードサーバー部64は、制御ネットワーク19を介して制御プログラム作成装置42から受信した制御プログラムのプログラムオブジェクト70を制御データベース部50に格納する。
プログラム実行処理部66は、プログラムロードサーバー部64が格納したプログラムオブジェクト70を実行することによって制御プログラムを実行する。
プロセス入出力処理部68は、制御プログラムの実行によってプラントPTから受け付けたプロセス信号を制御プログラムへ与える。
制御データベース部50は、プログラムロードサーバー部64から受け付けた制御プログラムのプログラムオブジェクト70を格納するとともに、データメモリ72を有する。データメモリ72は、制御クラウドデータ34と紐付けられ、制御プログラムのプログラムオブジェクト70が参照可能に制御クラウドデータ34の少なくとも一部のデータを格納する。
制御プログラム作成装置42は、ユーザからの入力に基づいてコントローラ40がプラントPTをコントロールするために実行する制御プログラムを作成する。制御プログラム作成装置42は、例えば、CPU等のハードウェアプロセッサと、記憶装置とを有するコンピュータである。制御プログラム作成装置42は、制御プログラム管理部74と、データベース部76と、表示装置78と、キーボード80と、マウス82とを有する。制御プログラム管理部74は、プロセッサがプログラムを読み込むことによって実現される機能である。データベース部76は、記憶装置の機能として実現される。
制御プログラム管理部74は、システムプログラマからの入力を受け付けて制御プログラムを作成する。制御プログラム管理部74は、制御プログラム作成部84と、制御クラウドデータ作成部86と、第1インポート/エクスポート部の一例であるインポート/エクスポート部88と、プログラムロードクライアント部90とを有する。
制御プログラム作成部84は、システムプログラマからの入力を受け付けて、拠点18のプラントPTをコントロールするために実行される制御プログラムであって、データメモリ72の制御クラウドデータ34を参照する制御プログラムを作成する。制御プログラム作成部84は、生成した制御プログラムをプログラムオブジェクト70としてデータベース部76に格納する。
制御クラウドデータ作成部86は、複数の拠点18のプラント制御装置14のそれぞれで実行される複数の制御プログラムが参照する変数を含む制御クラウドデータ34を定義する制御クラウドデータ定義60を生成する。制御クラウドデータ作成部86は、生成した制御クラウドデータ定義60をデータベース部76に格納する。
インポート/エクスポート部88は、外部と制御クラウドデータ定義60をインポート及びエクスポートする。例えば、インポート/エクスポート部88は、制御クラウドデータ管理装置12及びコントローラ40へ制御クラウドデータ定義60をエクスポートする。尚、インポート/エクスポート部88は、コントローラ40を介して、または、直接、制御クラウドデータ定義60を制御クラウドデータ管理装置12へエクスポートしてよい。インポート/エクスポート部88は、別のプラント制御装置14で更新された制御クラウドデータ定義60をインポート/エクスポート部52からインポートして、データベース部76に格納する。
プログラムロードクライアント部90は、制御プログラムのプログラムオブジェクト70をコントローラ40へ送信する。
データベース部76は、制御プログラムのプログラムオブジェクト70及び制御クラウドデータ定義60を格納する。
次に、上述したプラント制御システム10の動作について説明する。図4は、プラント制御システム10の動作を示すシーケンス図である。図4におけるコントローラ40aは制御プログラム作成装置42と同じ拠点18のプラント制御装置14に設置されている。コントローラ40bは、コントローラ40aと異なる拠点18のプラント制御装置14に設置されている。
図4に示すように、プラント制御システム10の制御プログラム作成装置42の制御クラウドデータ作成部86は、システムプログラマ等の入力に基づいて、制御クラウドデータ34のローカル変数及びグローバル変数を定義する制御クラウドデータ定義60を生成する(S102)。
制御クラウドデータ作成部86は、制御クラウドデータ定義60をデータベース部76に格納するとともに、制御クラウドデータ定義60とコントローラ40のデータメモリ72との割り付けを実行する(S104)。
インポート/エクスポート部88は、データベース部76の制御クラウドデータ定義60を、予め定められたデータ構造のファイルにして、コントローラ40a及び制御クラウドデータ管理装置12へエクスポート(即ち、送信)する(S106)。インポート/エクスポート部88は、コントローラ40aへは制御クラウドデータ定義60の全てを送信して、制御クラウドデータ管理装置12へは制御クラウドデータ定義60のうちグローバル関数に関するデータだけを送信してよい。インポート/エクスポート部88は、コントローラ40aを介して制御クラウドデータ管理装置12へ制御クラウドデータ定義60を送信してよい。
図5は、インポート/エクスポート部88が、エクスポートする制御クラウドデータ定義60のデータ構造の一例を示す図である。図5に示すように、インポート/エクスポート部88は、制御クラウドデータ定義60を、アイテム名60a、データ型60b、バイトサイズ60c、ワードNo60d及びビットNo60eを含むデータ構造にする。インポート/エクスポート部88は、データ型60b、バイトサイズ60c、ワードNo60d及びビットNo60eをアイテム名60aに関連付ける。インポート/エクスポート部88は、各変数(例えば、グローバル変数)を識別するための識別情報をアイテム名60aに設定する。アイテム名60aは、当該変数によってコントロールされる部品名でもある。インポート/エクスポート部88は、実数型及びブーリアン型(即ち、trueまたはfalseを示す)等の変数のデータのタイプをデータ型60bに設定する。インポート/エクスポート部88は、変数のデータのバイト単位のサイズをバイトサイズ60cに設定する。インポート/エクスポート部88は、変数のデータが格納されるデータメモリ72のアドレスをワードNo60d及びビットNo60eに設定する。ワードNo60d及びビットNo60eで示すアドレスは、システムプログラマが作成する制御プログラムにも組み込まれる。これにより、制御プログラムは、実行中にワードNo60d及びビットNo60eで示すデータメモリ72のアドレスに格納された制御クラウドデータ34を参照できる。例えば、アイテム名“C_CtrlData01”の変数は、データメモリ72のアドレス(0,0)から4バイトのサイズの領域に実数型のデータを有する。
コントローラ40aのインポート/エクスポート部52は、インポート/エクスポート部88がエクスポートした制御クラウドデータ定義60のファイルをインポート(即ち、受信)する(S202)。
インポート/エクスポート部52は、インポートした制御クラウドデータ定義60をOPCデータベース部46に格納する(S204)。
インポート/エクスポート部52は、制御クラウドデータ定義60に基づいて、制御クラウドデータ34を定義して、OPCデータベース部46に格納する(S206)。
図6は、インポート/エクスポート部52が定義する制御クラウドデータ34の一例を示す図である。図6に示すように、インポート/エクスポート部52は、制御クラウドデータ34のアイテム名34aと、データ型34bと、バイトサイズ34cと、データ34dとを有する制御クラウドデータ34を定義する。制御クラウドデータ34のアイテム名34a、データ型34b、及び、バイトサイズ34cは、図5で示す制御クラウドデータ定義60のアイテム名60a、データ型60b、及び、バイトサイズ60cと同様である。即ち、アイテム名34aは、変数を識別する識別情報である。データ型34bは、実数型及びブーリアン型等のデータ34dのタイプを示す。バイトサイズ34cは、データ34dのバイト単位のサイズを示す。インポート/エクスポート部52は、プラントPTをコントールするための指示等(例えば、スイッチ部品のオンまたはオフ)を制御クラウドデータ34のデータ34dに付与する。例えば、図6の中段は、アイテム名60aが“C_Switch01”のスイッチ部品をデータ34dで示す“1”で制御、例えば、オンに切り替えて制御することを示す。
制御クラウドデータ管理部56は、制御クラウドデータ定義60に基づいて、制御クラウドデータ34の少なくとも一部とデータメモリ72との紐付けを実行する(S208)。例えば、制御クラウドデータ管理部56は、制御クラウドデータ定義60のワードNo60d及びビットNo60eで示すアドレスに基づいて、制御クラウドデータ34のデータ34dとデータメモリ72とを紐付ける。これにより、データメモリ72は、制御プログラムの実行時にプログラムオブジェクト70が参照可能に、少なくとも制御クラウドデータ34のデータ34dを格納する。
図7は、制御クラウドデータ34とデータメモリ72との紐付けを説明する図である。図7に示すように、制御クラウドデータ管理部56は、制御クラウドデータ定義60に基づいて、データメモリ72に格納する制御クラウドデータ34を紐付ける。制御クラウドデータ管理部56は、プログラムオブジェクト70の実行に伴って入出力する制御クラウドデータ34を定期的にデータメモリ72との間で入出力する。
制御クラウドデータ管理装置12のインポート/エクスポート部30は、プラント制御装置14のインポート/エクスポート部88がエクスポートした制御クラウドデータ定義60のファイルをインポート(即ち、受信)する(S302)。制御クラウドデータ管理装置12のインポート/エクスポート部30は、インポート/エクスポート部88がエクスポートした制御クラウドデータ定義60のファイルを、コントローラ40aのインポート/エクスポート部52を介してインポートしてよい。
更新通知データ管理部32は、インポートした制御クラウドデータ定義60と、データベース部22に格納された定義済みの制御クラウドデータ34とを比較して、制御クラウドデータ34の更新内容を示す更新通知データ36を生成してデータベース部22に格納する(S304)。
図8は、更新通知データ管理部32が生成する更新通知データ36の一例を示す図である。図8に示すように、更新通知データ管理部32は、アイテム名36a、データ型36b、バイトサイズ36c、及び、更新データ37を含む更新通知データ36を生成する。換言すれば、更新通知データ管理部32は、図6に示す制御クラウドデータ34と同じデータ構造の更新通知データ36を生成する。従って、更新通知データ管理部32は、更新通知データ36を制御クラウドデータ34の一部として管理してよい。更新通知データ管理部32は、データ型36b、バイトサイズ36c、及び、更新データ37をアイテム名36aに関連付ける。更新通知データ管理部32は、更新通知データ36であることを示す“@UpdateData”をアイテム名36aに設定する。更新通知データ管理部32は、更新データ37が文字列であることを示す“STRING”をデータ型36bに設定する。更新通知データ管理部32は、更新データ37のバイト単位のサイズに応じて、バイトサイズ36cを設定する。
図9は、更新通知データ36に含まれる更新データ37の一例を示す図である。図9に示すように、更新通知データ管理部32は、種別37a、アイテム名37b、データ型37c、バイトサイズ37d、ワードNo37e及びビットNo37fを含む更新データ37を設定する。更新通知データ管理部32は、例えば、文字列のCSV形式の更新データ37を生成する。この場合、更新通知データ管理部32は、種別37a、アイテム名37b、データ型37c、バイトサイズ37d、ワードNo37e及びビットNo37fの間にコンマ等の区切り文字を挿入する。更新通知データ管理部32は、更新された制御クラウドデータ34の変数の処理を種別37aに設定する。例えば、更新通知データ管理部32は、変数(図9に示す例ではアイテム名“C_CtrlData02”の変数)を追加して更新する場合、種別に“Add”を設定する。更新通知データ管理部32は、変数(図9に示す例では アイテム名“C_Switch01”の変数)を削除して更新する場合、種別に“Delete”を設定する。更新通知データ管理部32は、更新された変数を識別するための識別情報をアイテム名37bに設定する。更新通知データ管理部32は、更新された変数のデータの実数型及びブーリアン型等のデータのタイプをデータ型37cに設定する。更新通知データ管理部32は、更新された変数のデータのバイト単位のサイズをバイトサイズ37dに設定する。更新通知データ管理部32は、変数のデータが格納されるデータメモリ72のアドレスをワードNo37e及びビットNo37fに設定する。従って、例えば、図9の中段は、データメモリ72のアドレス(4,2)に4バイトの実数型の変数“C_CtrlData02”のデータを追加することを示す。
OPCサーバー部20のインポート/エクスポート部30は、プラント制御装置14からインポートした制御クラウドデータ定義60に基づいて新たに定義して更新した制御クラウドデータ34をデータベース部22に格納する(S306)。
別のコントローラ40bの更新通知データ管理部54は、制御クラウドデータ管理装置12の更新通知データ36に基づいて、制御クラウドデータ34の更新を検知すると、更新通知データ36を要求する更新要求を制御クラウドデータ管理装置12に送信する(S402)。例えば、更新通知データ管理部54は、更新通知データ36のアイテム名36aに基づいて、制御クラウドデータ34の更新の有無を検知してよい。
更新通知データ管理部32は、更新要求を受信すると、更新通知データ36を別のコントローラ40bの更新通知データ管理部54に送信する(S308)。
別のコントローラ40bの更新通知データ管理部54は、更新内容を示す更新通知データ36を受信する(S404)。
コントローラ40bの更新通知データ管理部54は、受信した更新通知データ36に基づいて、OPCデータベース部46の制御クラウドデータ定義60を更新する(S406)。
コントローラ40bの制御クラウドデータ管理部56は、更新された制御クラウドデータ定義60に基づいて、制御クラウドデータ34を更新して、制御クラウドデータ34とデータメモリ72とを紐付ける(S408)。
制御プログラム作成装置42では、制御プログラム作成部84が、キーボード80及びマウス82を介してシステムプログラマからの入力を受け付けて、制御クラウドデータ作成部86が作成した制御クラウドデータ定義60に基づく制御クラウドデータ34のローカル変数及びグローバル変数を参照する制御プログラムを作成する(S108)。
図10は、制御プログラム作成部84が、作成する制御プログラムの作成の一例を示す図である。例えば、制御プログラム作成部84は、JISB3503(またはIEC61131−3)で規定されたLD言語/FBD言語等のグラフィック言語によって、制御プログラムを作成する。具体的には、制御プログラム作成部84は、図10に示す画像を表示装置78に表示する。システムプログラマは、当該表示画像を見て、キーボード80及びマウス82を操作することによって、表示画像に含まれるプログラム言語に応じた部品の画像を移動及び追加して組み合わせる。例えば、図10に示すC1〜C7は、JISB3503(またはIEC61131−3)で規定されたグラフィック言語で記述された命令語に対応している。制御プログラム作成部84は、キーボード80及びマウス82の操作によってシステムプログラマから受け付けた入力に応じた制御プログラムを作成する。ここで、制御プログラム作成部84は、制御クラウドデータ定義60によって定義される制御クラウドデータ34のデータ34dのアドレスを示すワードNo60d及びビットNo60eを制御プログラムに組み込む。
制御プログラム作成部84は、作成した制御プログラムをデータベース部76のプログラムオブジェクト70として格納する(S110)。
プログラムロードクライアント部90は、制御プログラム作成部84によって制御プログラムが作成された後、システムプログラマから実行指示を受け付けると、データベース部76のプログラムオブジェクト70を読み出す。プログラムロードクライアント部90は、読み出したプログラムオブジェクト70を、制御ネットワーク19を介してコントローラ40aのプログラムロードサーバー部64へ送信する(S112)。
プログラムロードサーバー部64は、プログラムオブジェクト70を受け付けると、制御データベース部50に格納する(S208)。
プログラム実行処理部66は、制御データベース部50のプログラムオブジェクト70を実行することによって、制御プログラムを実行する(S210)。制御プログラムのプログラムオブジェクト70は、制御クラウドデータ定義60によって定義された制御クラウドデータ34のローカル変数及びグローバル変数を含むデータ34dであって、データメモリ72に格納されたデータ34dを参照しつつ動作する。プロセス入出力処理部68は、プラントPTから取得したプロセス信号を実行中の制御プログラムに付与する。これによって、システムプログラマは、制御プログラム作成部84が作成した制御プログラムの動作確認及びデバッグを実行する。
図11は、制御プログラム作成装置42として機能するコンピュータ500のハードウェア構成を説明するブロック図である。図11に示すように、制御プログラム作成装置42として機能するコンピュータ500は、CPU502と、ROM504と、RAM506と、HDD508と、I/F510と、バス512とを備える。
CPU502は、ハードウェアプロセッサの一例である。CPU502は、ROM504に格納されたプラント制御用のプログラムを読み込むことによって、制御プログラム管理部74として機能する。
ROM504は、ファームウエア等のプログラム等を格納する。
RAM506は、CPU502がプログラムを実行する際に、プログラムの実行に必要なデータを一時的に格納する。
HDD508は、プラント制御用のプログラム等を格納する。
RAM506及びHDD508は、プラント制御用のプログラムの実行中にデータベース部76として機能する。
I/F510は、外部の装置等とCPU502等とを接続する。例えば、I/F510は、CPU502をバス512を介して、ネットワーク16及び制御ネットワーク19と接続する。I/F510は、バス512を介して、CPU502を表示装置78、キーボード80及びマウス82と接続する。
コントローラ40及び制御クラウドデータ管理装置12として機能するコンピュータは、図11のコンピュータ500と同様のハードウェア構成を有する。
コントローラ40において、CPU502は、プラント制御用のプログラムを読み込むことによって、OPCクライアント部44及び制御プログラム管理部48として機能する。コントローラ40において、RAM506及びHDD508は、プラント制御用のプログラムの実行中にOPCデータベース部46及び制御データベース部50として機能する。
制御クラウドデータ管理装置12において、CPU502は、プラント制御用のプログラムを読み込むことによって、OPCサーバー部20として機能する。制御クラウドデータ管理装置12において、RAM506及びHDD508は、プラント制御用のプログラムの実行中にデータベース部22として機能する。
上述したように、制御プログラム作成装置42は、制御クラウドデータ34を定義する制御クラウドデータ定義60を生成して、自己の拠点18のコントローラ40へエクスポートする。これにより、制御プログラム作成装置42は、生成した制御クラウドデータ定義60で制御クラウドデータ34を更新した場合、自己の拠点18のコントローラ40に制御クラウドデータ34を更新及び同期させることができる。更に、制御プログラム作成装置42は、別の拠点18のプラント制御装置14と接続された制御クラウドデータ管理装置12へ制御クラウドデータ定義60をエクスポートする。これにより、制御プログラム作成装置42は、制御クラウドデータ34の更新を、別の拠点18のプラント制御装置14のコントローラ40に制御クラウドデータ34に反映させて共有させることができる。また、更新通知データ管理部54が、別のプラント制御装置14で更新された制御クラウドデータ34の更新内容を示す更新通知データ36を制御クラウドデータ管理装置12から受信して、制御クラウドデータ定義60を更新する。この結果、プラント制御装置14は、自己の拠点18及び別の拠点18において更新された制御クラウドデータ34を適切に更新及び反映させて共有させることができる。
制御クラウドデータ管理装置12は、制御クラウドデータ定義60の更新及び更新内容を示す更新通知データ36を生成して、コントローラ40からの要求に応じて更新通知データ36をコントローラ40へ送信する。これにより、コントローラ40は、制御プログラム作成装置42が更新した制御クラウドデータ定義60及び制御クラウドデータ定義60で定義される制御クラウドデータ34を自動で更新することができる。この結果、制御クラウドデータ管理装置12は、稼働中のプラント制御装置14を停止させることなく、離れた別の拠点18(例えば、物理的に絶縁された別の拠点18)設置されたコントローラ40の制御クラウドデータ定義60及び制御クラウドデータ34の更新及び同期を実現して、整合性のとれたプラント制御を実現できる。また、制御クラウドデータ管理装置12は、複数のプラント制御装置14のOPCクライアント部44において、システムプログラマによる制御クラウドデータ定義60のインポート操作を省略させることができるので、システムプログラマのエンジニアリング工数を削減できる。
制御クラウドデータ管理部56は、制御クラウドデータ34とデータメモリ72とを紐付ける。これにより、制御プログラム作成部84は、当該データメモリ72に格納された制御クラウドデータ34を参照する制御プログラムを容易に作成することができる。
更新通知データ管理部32は、制御クラウドデータ34と同じデータ構造の更新通知データ36を生成するので、新たなデータ構造を設定することなく、データ管理を簡易化することができる。
<第1変形例>
上述の実施形態では、制御クラウドデータ管理装置12の更新通知データ管理部32が更新通知データ36を生成する例を示したがこれに限定されない。例えば、プラント制御装置14のコントローラ40の更新通知データ管理部54が更新通知データ36を生成してもよい。この場合、更新通知データ管理部54は、制御クラウドデータ作成部86が作成した制御クラウドデータ定義60に基づいて制御クラウドデータ34が更新されると、制御クラウドデータ34の更新内容を示す更新通知データ36を生成する。ここで、更新通知データ管理部54は、図6に示す制御クラウドデータ34と同じデータ構造の更新通知データ36を生成してよい。更新通知データ管理部54は、生成した更新通知データ36を制御クラウドデータ管理装置12の更新通知データ管理部32へ送信する。更新通知データ管理部32は、更新通知データ36を受け付けると、データベース部22に格納する。本変形例においても、更新通知データ管理部54は、別のプラント制御装置14の制御クラウドデータ34の更新内容を示す更新通知データ36を制御クラウドデータ管理装置12から受信して、制御クラウドデータ定義60を更新する。
これにより、プラント制御装置14のコントローラ40は、制御クラウドデータ定義60の更新及び更新内容を示す更新通知データ36を生成して、制御クラウドデータ管理装置12へ送信する。従って、別のコントローラ40は、更新通知データ36を制御クラウドデータ管理装置12に要求することによって、更新内容を示す更新通知データ36を自動でインポートできる。この結果、コントローラ40は、別の制御プログラム作成装置42が更新した制御クラウドデータ定義60及び制御クラウドデータ定義60で定義される制御クラウドデータ34を自動で更新することができる。従って、コントローラ40は、稼働中のプラント制御装置14を停止することなく、制御クラウドデータ定義60及び制御クラウドデータ34の更新を実現できる。また、コントローラ40は、システムプログラマによる制御クラウドデータ定義60のインポート操作を省略させることができるので、システムプログラマのエンジニアリング工数を削減できる。
上述の実施形態及び各変形例の各構成の機能、個数、接続関係及び配置等は適宜変更してよい。また、上述のフローチャートの各ステップの順序は適宜変更してよい。
上述のプラント制御装置14の一部または全ての機能を、制御クラウドデータ管理装置12とLAN等で接続されるコンピュータに設けてもよい。例えば、当該コンピュータは、プラント制御装置14の制御クラウドデータ作成部86、インポート/エクスポート部88を有することによって、制御クラウドデータ定義60の更新を別のプラント制御装置14に反映させて共有させることができる。尚、当該コンピュータは、制御プログラム作成装置42の制御プログラム管理部74及びデータベース部76と、コントローラ40のOPCクライアント部44、OPCデータベース部46、制御プログラム管理部48及び制御データベース部50とを備えてもよい。
本発明のいくつかの実施形態を説明したが、これらの実施形態は、例として提示したものであり、発明の範囲を限定することは意図していない。これら新規な実施形態は、その他の様々な形態で実施されることが可能であり、発明の要旨を逸脱しない範囲で、種々の省略、置き換え、変更を行うことができる。これら実施形態やその変形は、発明の範囲や要旨に含まれるとともに、特許請求の範囲に記載された発明とその均等の範囲に含まれる。