(57)【要約】【課題】一の拠点で更新された変数が、別の拠点で反映されない場合がある。【解決手段】クライアント装置は、制御クラウドデータ作成部と、第１インポート／エクスポート部と、第１更新通知データ管理部と、を備える。制御クラウドデータ作成部は、複数の拠点の設備のそれぞれをコントロールするために実行される複数の制御プログラムが参照する変数を含む制御クラウドデータを定義する制御クラウドデータ定義を生成する。第１インポート／エクスポート部は、異なる拠点のクライアント装置と接続された管理装置がインポートする前記制御クラウドデータ定義をエクスポートする。第１更新通知データ管理部は、別の拠点の前記制御クラウドデータの更新内容を示す更新通知データを前記管理装置から受信して前記制御クラウドデータ定義を更新する。【選択図】図１
2018063594.tif 000002
【特許請求の範囲】
【請求項１】
複数の拠点の設備のそれぞれをコントロールするために実行される複数の制御プログラムが参照する変数を含む制御クラウドデータを定義する制御クラウドデータ定義を生成する制御クラウドデータ作成部と、
異なる拠点のクライアント装置と接続された管理装置がインポートする前記制御クラウドデータ定義をエクスポートする第１インポート／エクスポート部と、
別の拠点の前記制御クラウドデータの更新内容を示す更新通知データを前記管理装置から受信して前記制御クラウドデータ定義を更新する第１更新通知データ管理部と、
を備えるクライアント装置。
【請求項２】
前記第１更新通知データ管理部は、前記制御クラウドデータ作成部が作成した前記制御クラウドデータ定義に基づいて前記制御クラウドデータが更新されると、前記制御クラウドデータの更新内容を示す更新通知データを生成して前記管理装置へ送信する
請求項１に記載のクライアント装置。
【請求項３】
前記第１更新通知データ管理部は、前記制御クラウドデータと同じデータ構造の前記更新通知データを生成する
請求項２に記載のクライアント装置。
【請求項４】
前記第１インポート／エクスポート部からインポートした前記制御クラウドデータ定義に基づいて定義した前記制御クラウドデータをクライアント側データベース部に格納する第２インポート／エクスポート部と、
前記制御クラウドデータ定義に基づいて、前記クライアント側データベース部の前記制御クラウドデータと前記制御クラウドデータの少なくとも一部が格納されるデータメモリとを紐付ける制御クラウドデータ管理部と、
前記データメモリの前記制御クラウドデータを参照する前記制御プログラムを作成する制御プログラム作成部と、
を更に備える請求項１から３のいずれか１項に記載のクライアント装置。
【請求項５】
複数の拠点の設備のそれぞれをコントロールするために実行される複数の制御プログラムが参照する変数を含む制御クラウドデータを定義する制御クラウドデータ定義をクライアント装置からインポートして、前記制御クラウドデータ定義に基づいて前記制御クラウドデータを更新する第３インポート／エクスポート部と、
前記制御クラウドデータが更新されると前記制御クラウドデータの更新内容を示す更新通知データを生成して別のクライアント装置へ送信する第２更新通知データ管理部と、
を備える管理装置。
【請求項６】
前記第２更新通知データ管理部は、前記制御クラウドデータと同じデータ構造の前記更新通知データを生成する
請求項５に記載の管理装置。
【請求項７】
前記第２更新通知データ管理部は、前記別のクライアント装置からの要求に応じて前記更新通知データを送信する
請求項５または６に記載の管理装置。
【請求項８】
請求項１から４のいずれか１項に記載の前記クライアント装置と、
請求項５から７のいずれか１項に記載の前記管理装置と、
を備える制御システム。
【発明の詳細な説明】
【技術分野】
【０００１】
実施形態は、クライアント装置、管理装置、及び、制御システムに関する。
【背景技術】
【０００２】
複数の拠点の設備（例えば、プラント）を制御する制御システムは、システムプログラマ等から提供されたアプリケーションプログラム(以降、「制御プログラム」と呼ぶ)によってプラントを自動運転する。制御プログラムは、ＪＩＳＢ３５０３(またはＩＥＣ６１１３１−３)で規定されているＬＤ(ラダーダイアグラム)言語、ＦＢＤ(ファンクションブロックダイアグラム)言語、ＳＦＣ（シーケンシャルファンクションチャート）言語、及び、ＳＴ（ストラクチャードテキスト）言語等を用いて記述されている。
【０００３】
システムプログラマは、制御プログラムの調整のためのデバッグ時において、オンライン状態で、制御プログラム単位の置き換え、接点(Ａ接点/Ｂ接点など)、及び、制御プログラムの実行に用いられる変数の値の強制変更等を行って、制御プログラムの動作確認を行う。このとき、制御システムは、システムプログラマに対して、誤操作を招かないように、わかりやすく制御プログラムを提示することが求められる。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開２０１５−４９６８３号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
ここで、制御プログラムの実行に用いられる変数は、複数の拠点で共有されている値（例えば、ネットワーク変数と呼ばれる）を含む。しかしながら、制御プログラムの調整時等において、一の拠点で更新された変数が、別の拠点で反映されない場合があるといった課題がある。
【課題を解決するための手段】
【０００６】
上述した課題を解決するために、実施形態のクライアント装置は、制御クラウドデータ作成部と、第１インポート／エクスポート部と、第１更新通知データ管理部と、を備える。制御クラウドデータ作成部は、複数の拠点の設備のそれぞれをコントロールするために実行される複数の制御プログラムが参照する変数を含む制御クラウドデータを定義する制御クラウドデータ定義を生成する。第１インポート／エクスポート部は、異なる拠点のクライアント装置と接続された管理装置がインポートする前記制御クラウドデータ定義をエクスポートする。第１更新通知データ管理部は、別の拠点の前記制御クラウドデータの更新内容を示す更新通知データを前記管理装置から受信して前記制御クラウドデータ定義を更新する。
【図面の簡単な説明】
【０００７】
【図１】図１は、第１実施形態のプラント制御システムの全体構成図である。
【図２】図２は、制御クラウドデータ管理装置の全体構成を説明するブロック図である。
【図３】図３は、プラント制御装置の全体構成を説明するブロック図である。
【図４】図４は、プラント制御システムの動作を示すシーケンス図である。
【図５】図５は、インポート／エクスポート部が、エクスポートする制御クラウドデータ定義のデータ構造の一例を示す図である。
【図６】図６は、インポート／エクスポート部が定義する制御クラウドデータの一例を示す図である。
【図７】図７は、制御クラウドデータとデータメモリとの紐付けを説明する図である。
【図８】図８は、更新通知データ管理部が生成する更新通知データの一例を示す図である。
【図９】図９は、更新通知データに含まれる更新データの一例を示す図である。
【図１０】図１０は、制御プログラム作成部が、作成する制御プログラムの作成の一例を示す図である。
【図１１】図１１は、制御プログラム作成装置として機能するコンピュータのハードウェア構成を説明するブロック図である。
【発明を実施するための形態】
【０００８】
以下の例示的な実施形態や変形例には、同様の構成要素が含まれている。よって、以下では、同様の構成要素には共通の符号が付されるとともに、重複する説明が部分的に省略される。実施形態や変形例に含まれる部分は、他の実施形態や変形例の対応する部分と置き換えて構成されることができる。また、実施形態や変形例に含まれる部分の構成や位置等は、特に言及しない限りは、他の実施形態や変形例と同様である。
【０００９】
＜第１実施形態＞
図１は、第１実施形態のプラント制御システム１０の全体構成図である。プラント制御システム１０は、１または複数の拠点１８ａ、１８ｂのプラントＰＴのそれぞれをコントロールするための複数の制御プログラムを生成して実行する。拠点１８ａ、１８ｂを区別する必要がない場合、拠点１８と記載する。プラントＰＴは、設備の一例である。図１に示すように、プラント制御システム１０は、制御クラウドデータ管理装置１２と、１または複数のプラント制御装置１４と、ネットワーク１６とを備える。
【００１０】
制御クラウドデータ管理装置１２は、管理装置の一例であって、サーバー（例えば、ＯＰＣ（OLE（Object  Linking  and  Embedding）  for  Process  Control）サーバー）として機能する。制御クラウドデータ管理装置１２は、ネットワーク１６を介して、異なる拠点１８の複数のプラント制御装置１４とデータを送受信可能に接続されている。制御クラウドデータ管理装置１２は、複数の拠点１８のプラント制御装置１４のそれぞれで実行される複数の制御プログラムが参照する変数を含む制御クラウドデータ３４を管理するとともに、制御クラウドデータ３４を定義する制御クラウドデータ定義６０をプラント制御装置１４とインポート及びエクスポートする。
【００１１】
プラント制御装置１４は、クライアント装置の一例であって、プラントＰＴが設置されている複数の異なる拠点１８ａ、１８ｂに設けられている。複数のプラント制御装置１４が、同じ拠点１８ａに設けられていてもよい。この場合、同じ拠点１８ａのプラント制御装置１４とプラント制御装置１４は、拠点１８ａ内に設けられた制御ネットワーク１９を介して互いに接続される。制御ネットワーク１９の一例は、ＬＡＮ（Local  Area  Network）等のイントラネットである。異なる拠点１８ａ、１８ｂのプラント制御装置１４は、例えば、閉鎖的なＬＡＮ等の制御ネットワーク１９では接続されていない。プラント制御装置１４は、サーバーとして機能する制御クラウドデータ管理装置１２のクライアント（例えば、ＯＰＣクライアント）として機能する。プラント制御装置１４は、制御クラウドデータ３４を用いて各拠点１８のプラントＰＴを制御する。
【００１２】
制御クラウドデータ３４は、プラント制御装置１４が実行する制御プログラムが参照するローカル変数及びグローバル変数を有する。ローカル変数は、１つのプラント制御装置１４が実行する１つの制御プログラムによって参照される。グローバル変数は、１または複数のプラント制御装置１４が実行する複数の制御プログラムによって参照される。グローバル変数は、コントローラ変数と、ネットワーク変数とを含む。コントローラ変数は、１つのプラント制御装置１４が実行する複数の制御プログラムによって参照される。ネットワーク変数は、複数のプラント制御装置１４間で共有され、複数のプラント制御装置１４が実行する複数の制御プログラムによって参照される。
【００１３】
ネットワーク１６は、制御クラウドデータ管理装置１２と、１または複数のプラント制御装置１４とをデータを送受信可能に接続する。ネットワーク１６は、例えば、インターネット及びイントラネット等である。
【００１４】
図２は、制御クラウドデータ管理装置１２の全体構成を説明するブロック図である。制御クラウドデータ管理装置１２は、例えば、ＣＰＵ（Central  Processing  Unit）等のハードウェアプロセッサと、ＲＯＭ（Read  Only  Memory）、ＲＡＭ（Random  Access  Memory）、ＨＤＤ（Hard  Disk  Drive）及びＳＳＤ（Solid  State  Drive）等を含む記憶装置とを有するコンピュータである。図２に示すように、制御クラウドデータ管理装置１２は、ＯＰＣサーバー部２０と、データベース部２２と、表示装置２４と、キーボード２６と、マウス２８とを有する。
【００１５】
ＯＰＣサーバー部２０は、プロセッサがＯＰＣサーバーのプログラムを読み込むことによってＯＰＣサーバー機能を有する。ＯＰＣサーバー部２０は、プラント制御装置１４とデータを送受信可能にネットワーク１６と接続されている。ＯＰＣサーバー部２０は、第３インポート／エクスポート部の一例であるインポート／エクスポート部３０と、第２更新通知データ管理部の一例である更新通知データ管理部３２とを有する。
【００１６】
インポート／エクスポート部３０は、外部のプラント制御装置１４から制御クラウドデータ定義６０をインポートする。インポート／エクスポート部３０は、制御クラウドデータ定義６０に基づいて制御クラウドデータ３４を更新してデータベース部２２に格納する。
【００１７】
更新通知データ管理部３２は、制御クラウドデータ３４が変更または更新されると、制御クラウドデータ３４の更新内容を示す更新通知データ３６を生成してデータベース部２２に格納する。例えば、更新通知データ管理部３２は、新たにインポートした制御クラウドデータ定義６０と、インポート前にデータベース部２２に格納されている制御クラウドデータ３４とを比較して、プラント制御装置１４で制御クラウドデータ３４が更新されたか否かを判定する。更新通知データ管理部３２は、更新されたと判定すると、新たにインポートした制御クラウドデータ定義６０に基づいて更新通知データ３６を生成する。更新通知データ管理部３２は、更新通知データ３６を別のプラント制御装置１４へ送信する。例えば、更新通知データ管理部３２は、別のプラント制御装置１４からの要求に応じて更新通知データ３６を別のプラント制御装置１４へ送信する。
【００１８】
データベース部２２は、記憶装置の機能として実現される。データベース部２２は、制御クラウドデータ３４と、更新通知データ３６とを格納する。
【００１９】
表示装置２４は、ＯＰＣサーバー部２０等から取得した画像データに基づいて画像を表示して出力する液晶表示装置等によって構成される。キーボード２６及びマウス２８は、ユーザの入力を受け付けてＯＰＣサーバー部２０等へ送信する。
【００２０】
図３は、プラント制御装置１４の全体構成を説明するブロック図である。図３に示すように、プラント制御装置１４は、コントローラ４０と、制御プログラム作成装置４２と、制御ネットワーク１９とを有する。コントローラ４０及び制御プログラム作成装置４２は、制御ネットワーク１９によって、データを送受信可能に接続されている。
【００２１】
コントローラ４０は、例えば、ＣＰＵ等のハードウェアプロセッサと、記憶装置とを有するコンピュータである。コントローラ４０は、ＯＰＣクライアント部４４と、クライアント側データベース部の一例であるＯＰＣデータベース部４６と、制御プログラム管理部４８と、制御データベース部５０とを有する。ＯＰＣクライアント部４４及び制御プログラム管理部４８は、プロセッサがプログラムを読み込むことによって実現される機能である。ＯＰＣデータベース部４６及び制御データベース部５０は、記憶装置の機能として実現される。
【００２２】
ＯＰＣクライアント部４４は、ＯＰＣクライアント機能を有する。ＯＰＣクライアント部４４は、外部の制御クラウドデータ管理装置１２とデータを送受信可能にネットワーク１６と接続されている。ＯＰＣクライアント部４４は、第２インポート／エクスポート部の一例であるインポート／エクスポート部５２と、第１更新通知データ管理部の一例である更新通知データ管理部５４と、制御クラウドデータ管理部５６とを有する。
【００２３】
インポート／エクスポート部５２は、制御プログラム作成装置４２及び制御クラウドデータ管理装置１２と、制御クラウドデータ定義６０をインポートまたはエクスポートする。例えば、インポート／エクスポート部５２は、後述する制御プログラム作成装置４２のインポート／エクスポート部８８から制御クラウドデータ定義６０をインポートする。インポート／エクスポート部５２は、インポートした制御クラウドデータ定義６０を制御クラウドデータ管理装置１２のインポート／エクスポート部３０へエクスポートする。尚、インポート／エクスポート部５２は、インポートした制御クラウドデータ定義６０のうち、グローバル関数に関する制御クラウドデータ定義６０のみを制御クラウドデータ管理装置１２のインポート／エクスポート部３０へエクスポートしてもよい。インポート／エクスポート部５２は、インポートした制御クラウドデータ定義６０をＯＰＣデータベース部４６に格納する。インポート／エクスポート部５２は、インポートした制御クラウドデータ定義６０に基づいて定義した制御クラウドデータ３４をＯＰＣデータベース部４６に格納する。インポート／エクスポート部５２は、別のプラント制御装置１４で更新されてＯＰＣデータベース部４６に格納された制御クラウドデータ定義６０をインポート／エクスポート部８８からエクスポートする。
【００２４】
更新通知データ管理部５４は、制御クラウドデータ管理装置１２の更新通知データ３６に基づいて、別のプラント制御装置１４による制御クラウドデータ３４の更新を検知する。更新通知データ管理部５４は、更新を検知すると、更新通知データ３６を制御クラウドデータ管理装置１２に要求する。これにより、更新通知データ管理部５４は、別のプラント制御装置１４の制御クラウドデータ３４の更新内容を示す更新通知データ３６を制御クラウドデータ管理装置１２から受信する。更新通知データ管理部５４は、受信した更新通知データ３６に基づいて、ＯＰＣデータベース部４６の制御クラウドデータ定義６０を更新して格納する。
【００２５】
制御クラウドデータ管理部５６は、インポート／エクスポート部５２または更新通知データ管理部５４がＯＰＣデータベース部４６に格納した制御クラウドデータ定義６０に基づいて、ＯＰＣデータベース部４６に格納された制御クラウドデータ３４と、後述する制御クラウドデータ３４の少なくとも一部を格納する制御データベース部５０のデータメモリ７２とを紐付ける。
【００２６】
ＯＰＣデータベース部４６は、制御クラウドデータ定義６０によって定義された制御クラウドデータ３４及び制御クラウドデータ定義６０をインポート／エクスポート部５２または更新通知データ管理部５４から受け付けて格納する。
【００２７】
制御プログラム管理部４８は、制御プログラムの実行等を管理する。制御プログラム管理部４８は、プログラムロードサーバー部６４と、プログラム実行処理部６６と、プロセス入出力処理部６８とを有する。
【００２８】
プログラムロードサーバー部６４は、制御ネットワーク１９を介して制御プログラム作成装置４２から受信した制御プログラムのプログラムオブジェクト７０を制御データベース部５０に格納する。
【００２９】
プログラム実行処理部６６は、プログラムロードサーバー部６４が格納したプログラムオブジェクト７０を実行することによって制御プログラムを実行する。
【００３０】
プロセス入出力処理部６８は、制御プログラムの実行によってプラントＰＴから受け付けたプロセス信号を制御プログラムへ与える。
【００３１】
制御データベース部５０は、プログラムロードサーバー部６４から受け付けた制御プログラムのプログラムオブジェクト７０を格納するとともに、データメモリ７２を有する。データメモリ７２は、制御クラウドデータ３４と紐付けられ、制御プログラムのプログラムオブジェクト７０が参照可能に制御クラウドデータ３４の少なくとも一部のデータを格納する。
【００３２】
制御プログラム作成装置４２は、ユーザからの入力に基づいてコントローラ４０がプラントＰＴをコントロールするために実行する制御プログラムを作成する。制御プログラム作成装置４２は、例えば、ＣＰＵ等のハードウェアプロセッサと、記憶装置とを有するコンピュータである。制御プログラム作成装置４２は、制御プログラム管理部７４と、データベース部７６と、表示装置７８と、キーボード８０と、マウス８２とを有する。制御プログラム管理部７４は、プロセッサがプログラムを読み込むことによって実現される機能である。データベース部７６は、記憶装置の機能として実現される。
【００３３】
制御プログラム管理部７４は、システムプログラマからの入力を受け付けて制御プログラムを作成する。制御プログラム管理部７４は、制御プログラム作成部８４と、制御クラウドデータ作成部８６と、第１インポート／エクスポート部の一例であるインポート／エクスポート部８８と、プログラムロードクライアント部９０とを有する。
【００３４】
制御プログラム作成部８４は、システムプログラマからの入力を受け付けて、拠点１８のプラントＰＴをコントロールするために実行される制御プログラムであって、データメモリ７２の制御クラウドデータ３４を参照する制御プログラムを作成する。制御プログラム作成部８４は、生成した制御プログラムをプログラムオブジェクト７０としてデータベース部７６に格納する。
【００３５】
制御クラウドデータ作成部８６は、複数の拠点１８のプラント制御装置１４のそれぞれで実行される複数の制御プログラムが参照する変数を含む制御クラウドデータ３４を定義する制御クラウドデータ定義６０を生成する。制御クラウドデータ作成部８６は、生成した制御クラウドデータ定義６０をデータベース部７６に格納する。
【００３６】
インポート／エクスポート部８８は、外部と制御クラウドデータ定義６０をインポート及びエクスポートする。例えば、インポート／エクスポート部８８は、制御クラウドデータ管理装置１２及びコントローラ４０へ制御クラウドデータ定義６０をエクスポートする。尚、インポート／エクスポート部８８は、コントローラ４０を介して、または、直接、制御クラウドデータ定義６０を制御クラウドデータ管理装置１２へエクスポートしてよい。インポート／エクスポート部８８は、別のプラント制御装置１４で更新された制御クラウドデータ定義６０をインポート／エクスポート部５２からインポートして、データベース部７６に格納する。
【００３７】
プログラムロードクライアント部９０は、制御プログラムのプログラムオブジェクト７０をコントローラ４０へ送信する。
【００３８】
データベース部７６は、制御プログラムのプログラムオブジェクト７０及び制御クラウドデータ定義６０を格納する。
【００３９】
次に、上述したプラント制御システム１０の動作について説明する。図４は、プラント制御システム１０の動作を示すシーケンス図である。図４におけるコントローラ４０ａは制御プログラム作成装置４２と同じ拠点１８のプラント制御装置１４に設置されている。コントローラ４０ｂは、コントローラ４０ａと異なる拠点１８のプラント制御装置１４に設置されている。
【００４０】
図４に示すように、プラント制御システム１０の制御プログラム作成装置４２の制御クラウドデータ作成部８６は、システムプログラマ等の入力に基づいて、制御クラウドデータ３４のローカル変数及びグローバル変数を定義する制御クラウドデータ定義６０を生成する（Ｓ１０２）。
【００４１】
制御クラウドデータ作成部８６は、制御クラウドデータ定義６０をデータベース部７６に格納するとともに、制御クラウドデータ定義６０とコントローラ４０のデータメモリ７２との割り付けを実行する（Ｓ１０４）。
【００４２】
インポート／エクスポート部８８は、データベース部７６の制御クラウドデータ定義６０を、予め定められたデータ構造のファイルにして、コントローラ４０ａ及び制御クラウドデータ管理装置１２へエクスポート（即ち、送信）する（Ｓ１０６）。インポート／エクスポート部８８は、コントローラ４０ａへは制御クラウドデータ定義６０の全てを送信して、制御クラウドデータ管理装置１２へは制御クラウドデータ定義６０のうちグローバル関数に関するデータだけを送信してよい。インポート／エクスポート部８８は、コントローラ４０ａを介して制御クラウドデータ管理装置１２へ制御クラウドデータ定義６０を送信してよい。
【００４３】
図５は、インポート／エクスポート部８８が、エクスポートする制御クラウドデータ定義６０のデータ構造の一例を示す図である。図５に示すように、インポート／エクスポート部８８は、制御クラウドデータ定義６０を、アイテム名６０ａ、データ型６０ｂ、バイトサイズ６０ｃ、ワードＮｏ６０ｄ及びビットＮｏ６０ｅを含むデータ構造にする。インポート／エクスポート部８８は、データ型６０ｂ、バイトサイズ６０ｃ、ワードＮｏ６０ｄ及びビットＮｏ６０ｅをアイテム名６０ａに関連付ける。インポート／エクスポート部８８は、各変数（例えば、グローバル変数）を識別するための識別情報をアイテム名６０ａに設定する。アイテム名６０ａは、当該変数によってコントロールされる部品名でもある。インポート／エクスポート部８８は、実数型及びブーリアン型（即ち、ｔｒｕｅまたはｆａｌｓｅを示す）等の変数のデータのタイプをデータ型６０ｂに設定する。インポート／エクスポート部８８は、変数のデータのバイト単位のサイズをバイトサイズ６０ｃに設定する。インポート／エクスポート部８８は、変数のデータが格納されるデータメモリ７２のアドレスをワードＮｏ６０ｄ及びビットＮｏ６０ｅに設定する。ワードＮｏ６０ｄ及びビットＮｏ６０ｅで示すアドレスは、システムプログラマが作成する制御プログラムにも組み込まれる。これにより、制御プログラムは、実行中にワードＮｏ６０ｄ及びビットＮｏ６０ｅで示すデータメモリ７２のアドレスに格納された制御クラウドデータ３４を参照できる。例えば、アイテム名“C_CtrlData01”の変数は、データメモリ７２のアドレス（０，０）から４バイトのサイズの領域に実数型のデータを有する。
【００４４】
コントローラ４０ａのインポート／エクスポート部５２は、インポート／エクスポート部８８がエクスポートした制御クラウドデータ定義６０のファイルをインポート（即ち、受信）する（Ｓ２０２）。
【００４５】
インポート／エクスポート部５２は、インポートした制御クラウドデータ定義６０をＯＰＣデータベース部４６に格納する（Ｓ２０４）。
【００４６】
インポート／エクスポート部５２は、制御クラウドデータ定義６０に基づいて、制御クラウドデータ３４を定義して、ＯＰＣデータベース部４６に格納する（Ｓ２０６）。
【００４７】
図６は、インポート／エクスポート部５２が定義する制御クラウドデータ３４の一例を示す図である。図６に示すように、インポート／エクスポート部５２は、制御クラウドデータ３４のアイテム名３４ａと、データ型３４ｂと、バイトサイズ３４ｃと、データ３４ｄとを有する制御クラウドデータ３４を定義する。制御クラウドデータ３４のアイテム名３４ａ、データ型３４ｂ、及び、バイトサイズ３４ｃは、図５で示す制御クラウドデータ定義６０のアイテム名６０ａ、データ型６０ｂ、及び、バイトサイズ６０ｃと同様である。即ち、アイテム名３４ａは、変数を識別する識別情報である。データ型３４ｂは、実数型及びブーリアン型等のデータ３４ｄのタイプを示す。バイトサイズ３４ｃは、データ３４ｄのバイト単位のサイズを示す。インポート／エクスポート部５２は、プラントＰＴをコントールするための指示等（例えば、スイッチ部品のオンまたはオフ）を制御クラウドデータ３４のデータ３４ｄに付与する。例えば、図６の中段は、アイテム名６０ａが“C_Switch01”のスイッチ部品をデータ３４ｄで示す“１”で制御、例えば、オンに切り替えて制御することを示す。
【００４８】
制御クラウドデータ管理部５６は、制御クラウドデータ定義６０に基づいて、制御クラウドデータ３４の少なくとも一部とデータメモリ７２との紐付けを実行する（Ｓ２０８）。例えば、制御クラウドデータ管理部５６は、制御クラウドデータ定義６０のワードＮｏ６０ｄ及びビットＮｏ６０ｅで示すアドレスに基づいて、制御クラウドデータ３４のデータ３４ｄとデータメモリ７２とを紐付ける。これにより、データメモリ７２は、制御プログラムの実行時にプログラムオブジェクト７０が参照可能に、少なくとも制御クラウドデータ３４のデータ３４ｄを格納する。
【００４９】
図７は、制御クラウドデータ３４とデータメモリ７２との紐付けを説明する図である。図７に示すように、制御クラウドデータ管理部５６は、制御クラウドデータ定義６０に基づいて、データメモリ７２に格納する制御クラウドデータ３４を紐付ける。制御クラウドデータ管理部５６は、プログラムオブジェクト７０の実行に伴って入出力する制御クラウドデータ３４を定期的にデータメモリ７２との間で入出力する。
【００５０】
制御クラウドデータ管理装置１２のインポート／エクスポート部３０は、プラント制御装置１４のインポート／エクスポート部８８がエクスポートした制御クラウドデータ定義６０のファイルをインポート（即ち、受信）する（Ｓ３０２）。制御クラウドデータ管理装置１２のインポート／エクスポート部３０は、インポート／エクスポート部８８がエクスポートした制御クラウドデータ定義６０のファイルを、コントローラ４０ａのインポート／エクスポート部５２を介してインポートしてよい。
【００５１】
更新通知データ管理部３２は、インポートした制御クラウドデータ定義６０と、データベース部２２に格納された定義済みの制御クラウドデータ３４とを比較して、制御クラウドデータ３４の更新内容を示す更新通知データ３６を生成してデータベース部２２に格納する（Ｓ３０４）。
【００５２】
図８は、更新通知データ管理部３２が生成する更新通知データ３６の一例を示す図である。図８に示すように、更新通知データ管理部３２は、アイテム名３６ａ、データ型３６ｂ、バイトサイズ３６ｃ、及び、更新データ３７を含む更新通知データ３６を生成する。換言すれば、更新通知データ管理部３２は、図６に示す制御クラウドデータ３４と同じデータ構造の更新通知データ３６を生成する。従って、更新通知データ管理部３２は、更新通知データ３６を制御クラウドデータ３４の一部として管理してよい。更新通知データ管理部３２は、データ型３６ｂ、バイトサイズ３６ｃ、及び、更新データ３７をアイテム名３６ａに関連付ける。更新通知データ管理部３２は、更新通知データ３６であることを示す“@UpdateData”をアイテム名３６ａに設定する。更新通知データ管理部３２は、更新データ３７が文字列であることを示す“STRING”をデータ型３６ｂに設定する。更新通知データ管理部３２は、更新データ３７のバイト単位のサイズに応じて、バイトサイズ３６ｃを設定する。
【００５３】
図９は、更新通知データ３６に含まれる更新データ３７の一例を示す図である。図９に示すように、更新通知データ管理部３２は、種別３７ａ、アイテム名３７ｂ、データ型３７ｃ、バイトサイズ３７ｄ、ワードＮｏ３７ｅ及びビットＮｏ３７ｆを含む更新データ３７を設定する。更新通知データ管理部３２は、例えば、文字列のＣＳＶ形式の更新データ３７を生成する。この場合、更新通知データ管理部３２は、種別３７ａ、アイテム名３７ｂ、データ型３７ｃ、バイトサイズ３７ｄ、ワードＮｏ３７ｅ及びビットＮｏ３７ｆの間にコンマ等の区切り文字を挿入する。更新通知データ管理部３２は、更新された制御クラウドデータ３４の変数の処理を種別３７ａに設定する。例えば、更新通知データ管理部３２は、変数（図９に示す例ではアイテム名“C_CtrlData02”の変数）を追加して更新する場合、種別に“Add”を設定する。更新通知データ管理部３２は、変数（図９に示す例では  アイテム名“C_Switch01”の変数）を削除して更新する場合、種別に“Delete”を設定する。更新通知データ管理部３２は、更新された変数を識別するための識別情報をアイテム名３７ｂに設定する。更新通知データ管理部３２は、更新された変数のデータの実数型及びブーリアン型等のデータのタイプをデータ型３７ｃに設定する。更新通知データ管理部３２は、更新された変数のデータのバイト単位のサイズをバイトサイズ３７ｄに設定する。更新通知データ管理部３２は、変数のデータが格納されるデータメモリ７２のアドレスをワードＮｏ３７ｅ及びビットＮｏ３７ｆに設定する。従って、例えば、図９の中段は、データメモリ７２のアドレス（４，２）に４バイトの実数型の変数“C_CtrlData02”のデータを追加することを示す。
【００５４】
ＯＰＣサーバー部２０のインポート／エクスポート部３０は、プラント制御装置１４からインポートした制御クラウドデータ定義６０に基づいて新たに定義して更新した制御クラウドデータ３４をデータベース部２２に格納する（Ｓ３０６）。
【００５５】
別のコントローラ４０ｂの更新通知データ管理部５４は、制御クラウドデータ管理装置１２の更新通知データ３６に基づいて、制御クラウドデータ３４の更新を検知すると、更新通知データ３６を要求する更新要求を制御クラウドデータ管理装置１２に送信する（Ｓ４０２）。例えば、更新通知データ管理部５４は、更新通知データ３６のアイテム名３６ａに基づいて、制御クラウドデータ３４の更新の有無を検知してよい。
【００５６】
更新通知データ管理部３２は、更新要求を受信すると、更新通知データ３６を別のコントローラ４０ｂの更新通知データ管理部５４に送信する（Ｓ３０８）。
【００５７】
別のコントローラ４０ｂの更新通知データ管理部５４は、更新内容を示す更新通知データ３６を受信する（Ｓ４０４）。
【００５８】
コントローラ４０ｂの更新通知データ管理部５４は、受信した更新通知データ３６に基づいて、ＯＰＣデータベース部４６の制御クラウドデータ定義６０を更新する（Ｓ４０６）。
【００５９】
コントローラ４０ｂの制御クラウドデータ管理部５６は、更新された制御クラウドデータ定義６０に基づいて、制御クラウドデータ３４を更新して、制御クラウドデータ３４とデータメモリ７２とを紐付ける（Ｓ４０８）。
【００６０】
制御プログラム作成装置４２では、制御プログラム作成部８４が、キーボード８０及びマウス８２を介してシステムプログラマからの入力を受け付けて、制御クラウドデータ作成部８６が作成した制御クラウドデータ定義６０に基づく制御クラウドデータ３４のローカル変数及びグローバル変数を参照する制御プログラムを作成する（Ｓ１０８）。
【００６１】
図１０は、制御プログラム作成部８４が、作成する制御プログラムの作成の一例を示す図である。例えば、制御プログラム作成部８４は、ＪＩＳＢ３５０３(またはＩＥＣ６１１３１−３)で規定されたＬＤ言語/ＦＢＤ言語等のグラフィック言語によって、制御プログラムを作成する。具体的には、制御プログラム作成部８４は、図１０に示す画像を表示装置７８に表示する。システムプログラマは、当該表示画像を見て、キーボード８０及びマウス８２を操作することによって、表示画像に含まれるプログラム言語に応じた部品の画像を移動及び追加して組み合わせる。例えば、図１０に示すＣ１〜Ｃ７は、ＪＩＳＢ３５０３（またはＩＥＣ６１１３１−３）で規定されたグラフィック言語で記述された命令語に対応している。制御プログラム作成部８４は、キーボード８０及びマウス８２の操作によってシステムプログラマから受け付けた入力に応じた制御プログラムを作成する。ここで、制御プログラム作成部８４は、制御クラウドデータ定義６０によって定義される制御クラウドデータ３４のデータ３４ｄのアドレスを示すワードＮｏ６０ｄ及びビットＮｏ６０ｅを制御プログラムに組み込む。
【００６２】
制御プログラム作成部８４は、作成した制御プログラムをデータベース部７６のプログラムオブジェクト７０として格納する（Ｓ１１０）。
【００６３】
プログラムロードクライアント部９０は、制御プログラム作成部８４によって制御プログラムが作成された後、システムプログラマから実行指示を受け付けると、データベース部７６のプログラムオブジェクト７０を読み出す。プログラムロードクライアント部９０は、読み出したプログラムオブジェクト７０を、制御ネットワーク１９を介してコントローラ４０ａのプログラムロードサーバー部６４へ送信する（Ｓ１１２）。
【００６４】
プログラムロードサーバー部６４は、プログラムオブジェクト７０を受け付けると、制御データベース部５０に格納する（Ｓ２０８）。
【００６５】
プログラム実行処理部６６は、制御データベース部５０のプログラムオブジェクト７０を実行することによって、制御プログラムを実行する（Ｓ２１０）。制御プログラムのプログラムオブジェクト７０は、制御クラウドデータ定義６０によって定義された制御クラウドデータ３４のローカル変数及びグローバル変数を含むデータ３４ｄであって、データメモリ７２に格納されたデータ３４ｄを参照しつつ動作する。プロセス入出力処理部６８は、プラントＰＴから取得したプロセス信号を実行中の制御プログラムに付与する。これによって、システムプログラマは、制御プログラム作成部８４が作成した制御プログラムの動作確認及びデバッグを実行する。
【００６６】
図１１は、制御プログラム作成装置４２として機能するコンピュータ５００のハードウェア構成を説明するブロック図である。図１１に示すように、制御プログラム作成装置４２として機能するコンピュータ５００は、ＣＰＵ５０２と、ＲＯＭ５０４と、ＲＡＭ５０６と、ＨＤＤ５０８と、Ｉ／Ｆ５１０と、バス５１２とを備える。
【００６７】
ＣＰＵ５０２は、ハードウェアプロセッサの一例である。ＣＰＵ５０２は、ＲＯＭ５０４に格納されたプラント制御用のプログラムを読み込むことによって、制御プログラム管理部７４として機能する。
【００６８】
ＲＯＭ５０４は、ファームウエア等のプログラム等を格納する。
【００６９】
ＲＡＭ５０６は、ＣＰＵ５０２がプログラムを実行する際に、プログラムの実行に必要なデータを一時的に格納する。
【００７０】
ＨＤＤ５０８は、プラント制御用のプログラム等を格納する。
【００７１】
ＲＡＭ５０６及びＨＤＤ５０８は、プラント制御用のプログラムの実行中にデータベース部７６として機能する。
【００７２】
Ｉ／Ｆ５１０は、外部の装置等とＣＰＵ５０２等とを接続する。例えば、Ｉ／Ｆ５１０は、ＣＰＵ５０２をバス５１２を介して、ネットワーク１６及び制御ネットワーク１９と接続する。Ｉ／Ｆ５１０は、バス５１２を介して、ＣＰＵ５０２を表示装置７８、キーボード８０及びマウス８２と接続する。
【００７３】
コントローラ４０及び制御クラウドデータ管理装置１２として機能するコンピュータは、図１１のコンピュータ５００と同様のハードウェア構成を有する。
【００７４】
コントローラ４０において、ＣＰＵ５０２は、プラント制御用のプログラムを読み込むことによって、ＯＰＣクライアント部４４及び制御プログラム管理部４８として機能する。コントローラ４０において、ＲＡＭ５０６及びＨＤＤ５０８は、プラント制御用のプログラムの実行中にＯＰＣデータベース部４６及び制御データベース部５０として機能する。
【００７５】
制御クラウドデータ管理装置１２において、ＣＰＵ５０２は、プラント制御用のプログラムを読み込むことによって、ＯＰＣサーバー部２０として機能する。制御クラウドデータ管理装置１２において、ＲＡＭ５０６及びＨＤＤ５０８は、プラント制御用のプログラムの実行中にデータベース部２２として機能する。
【００７６】
上述したように、制御プログラム作成装置４２は、制御クラウドデータ３４を定義する制御クラウドデータ定義６０を生成して、自己の拠点１８のコントローラ４０へエクスポートする。これにより、制御プログラム作成装置４２は、生成した制御クラウドデータ定義６０で制御クラウドデータ３４を更新した場合、自己の拠点１８のコントローラ４０に制御クラウドデータ３４を更新及び同期させることができる。更に、制御プログラム作成装置４２は、別の拠点１８のプラント制御装置１４と接続された制御クラウドデータ管理装置１２へ制御クラウドデータ定義６０をエクスポートする。これにより、制御プログラム作成装置４２は、制御クラウドデータ３４の更新を、別の拠点１８のプラント制御装置１４のコントローラ４０に制御クラウドデータ３４に反映させて共有させることができる。また、更新通知データ管理部５４が、別のプラント制御装置１４で更新された制御クラウドデータ３４の更新内容を示す更新通知データ３６を制御クラウドデータ管理装置１２から受信して、制御クラウドデータ定義６０を更新する。この結果、プラント制御装置１４は、自己の拠点１８及び別の拠点１８において更新された制御クラウドデータ３４を適切に更新及び反映させて共有させることができる。
【００７７】
制御クラウドデータ管理装置１２は、制御クラウドデータ定義６０の更新及び更新内容を示す更新通知データ３６を生成して、コントローラ４０からの要求に応じて更新通知データ３６をコントローラ４０へ送信する。これにより、コントローラ４０は、制御プログラム作成装置４２が更新した制御クラウドデータ定義６０及び制御クラウドデータ定義６０で定義される制御クラウドデータ３４を自動で更新することができる。この結果、制御クラウドデータ管理装置１２は、稼働中のプラント制御装置１４を停止させることなく、離れた別の拠点１８（例えば、物理的に絶縁された別の拠点１８）設置されたコントローラ４０の制御クラウドデータ定義６０及び制御クラウドデータ３４の更新及び同期を実現して、整合性のとれたプラント制御を実現できる。また、制御クラウドデータ管理装置１２は、複数のプラント制御装置１４のＯＰＣクライアント部４４において、システムプログラマによる制御クラウドデータ定義６０のインポート操作を省略させることができるので、システムプログラマのエンジニアリング工数を削減できる。
【００７８】
制御クラウドデータ管理部５６は、制御クラウドデータ３４とデータメモリ７２とを紐付ける。これにより、制御プログラム作成部８４は、当該データメモリ７２に格納された制御クラウドデータ３４を参照する制御プログラムを容易に作成することができる。
【００７９】
更新通知データ管理部３２は、制御クラウドデータ３４と同じデータ構造の更新通知データ３６を生成するので、新たなデータ構造を設定することなく、データ管理を簡易化することができる。
【００８０】
＜第１変形例＞
上述の実施形態では、制御クラウドデータ管理装置１２の更新通知データ管理部３２が更新通知データ３６を生成する例を示したがこれに限定されない。例えば、プラント制御装置１４のコントローラ４０の更新通知データ管理部５４が更新通知データ３６を生成してもよい。この場合、更新通知データ管理部５４は、制御クラウドデータ作成部８６が作成した制御クラウドデータ定義６０に基づいて制御クラウドデータ３４が更新されると、制御クラウドデータ３４の更新内容を示す更新通知データ３６を生成する。ここで、更新通知データ管理部５４は、図６に示す制御クラウドデータ３４と同じデータ構造の更新通知データ３６を生成してよい。更新通知データ管理部５４は、生成した更新通知データ３６を制御クラウドデータ管理装置１２の更新通知データ管理部３２へ送信する。更新通知データ管理部３２は、更新通知データ３６を受け付けると、データベース部２２に格納する。本変形例においても、更新通知データ管理部５４は、別のプラント制御装置１４の制御クラウドデータ３４の更新内容を示す更新通知データ３６を制御クラウドデータ管理装置１２から受信して、制御クラウドデータ定義６０を更新する。
【００８１】
これにより、プラント制御装置１４のコントローラ４０は、制御クラウドデータ定義６０の更新及び更新内容を示す更新通知データ３６を生成して、制御クラウドデータ管理装置１２へ送信する。従って、別のコントローラ４０は、更新通知データ３６を制御クラウドデータ管理装置１２に要求することによって、更新内容を示す更新通知データ３６を自動でインポートできる。この結果、コントローラ４０は、別の制御プログラム作成装置４２が更新した制御クラウドデータ定義６０及び制御クラウドデータ定義６０で定義される制御クラウドデータ３４を自動で更新することができる。従って、コントローラ４０は、稼働中のプラント制御装置１４を停止することなく、制御クラウドデータ定義６０及び制御クラウドデータ３４の更新を実現できる。また、コントローラ４０は、システムプログラマによる制御クラウドデータ定義６０のインポート操作を省略させることができるので、システムプログラマのエンジニアリング工数を削減できる。
【００８２】
上述の実施形態及び各変形例の各構成の機能、個数、接続関係及び配置等は適宜変更してよい。また、上述のフローチャートの各ステップの順序は適宜変更してよい。
【００８３】
上述のプラント制御装置１４の一部または全ての機能を、制御クラウドデータ管理装置１２とＬＡＮ等で接続されるコンピュータに設けてもよい。例えば、当該コンピュータは、プラント制御装置１４の制御クラウドデータ作成部８６、インポート／エクスポート部８８を有することによって、制御クラウドデータ定義６０の更新を別のプラント制御装置１４に反映させて共有させることができる。尚、当該コンピュータは、制御プログラム作成装置４２の制御プログラム管理部７４及びデータベース部７６と、コントローラ４０のＯＰＣクライアント部４４、ＯＰＣデータベース部４６、制御プログラム管理部４８及び制御データベース部５０とを備えてもよい。
【００８４】
本発明のいくつかの実施形態を説明したが、これらの実施形態は、例として提示したものであり、発明の範囲を限定することは意図していない。これら新規な実施形態は、その他の様々な形態で実施されることが可能であり、発明の要旨を逸脱しない範囲で、種々の省略、置き換え、変更を行うことができる。これら実施形態やその変形は、発明の範囲や要旨に含まれるとともに、特許請求の範囲に記載された発明とその均等の範囲に含まれる。
【符号の説明】
【００８５】
１０…プラント制御システム
１２…制御クラウドデータ管理装置（管理装置）
１４…プラント制御装置（クライアント装置）
１８…拠点
２０…ＯＰＣサーバー部
２２…データベース部
３０…インポート／エクスポート部（第３インポート／エクスポート部）
３２…更新通知データ管理部（第２更新通知データ管理部）
３４…制御クラウドデータ
３６…更新通知データ
４６…ＯＰＣデータベース部（クライアント側データベース部）
５２…インポート／エクスポート部（第２インポート／エクスポート部）
５４…更新通知データ管理部（第１更新通知データ管理部）
５６…制御クラウドデータ管理部
６０…制御クラウドデータ定義
７２…データメモリ
８４…制御プログラム作成部
８６…制御クラウドデータ作成部
８８…インポート／エクスポート部（第１インポート／エクスポート部）
ＰＴ…プラント（設備）
【図１】
2018063594.tif 000003
【図２】
2018063594.tif 000004
【図３】
2018063594.tif 000005
【図４】
2018063594.tif 000006
【図５】
2018063594.tif 000007
【図６】
2018063594.tif 000008
【図７】
2018063594.tif 000009
【図８】
2018063594.tif 000010
【図９】
2018063594.tif 000011
【図１０】
2018063594.tif 000012
【図１１】
2018063594.tif 000013