(58)【調査した分野】(Int.Cl.,DB名)
前記編集装置は、前記新たな制御プログラムを用いて生成した第1の誤り検出符号と、当該新たな制御プログラムをビット反転させた情報を用いて生成した第2の誤り検出符号とを、当該新たな制御プログラムに付して前記制御演算装置に送信し、
前記制御演算装置のプログラム変更部は、前記編集装置から受信した新たな制御プログラムに付された第1の誤り検出符号及び第2の誤り検出符号によって誤りが検出されない場合において、前記承認情報受付部が受け付けた承認情報が前記制御プログラムを承認するものであるときに、前記プログラム記憶部が記憶する制御プログラムを前記バッファが記憶する制御プログラムに書き換える
ことを特徴とする請求項1または請求項2に記載の制御プログラム管理システム。
【発明の概要】
【発明が解決しようとする課題】
【0006】
しかしながら、特許文献3、4に開示されている方法を用いたとしても、内容自体に過誤がある制御パラメータやロジックへ変更されることを防止することができないという問題がある。また、特許文献3、4に記載の方法では、IEC61508やJIS C 0508で要求されている誤操作防止手段が実現されないという問題がある。
本発明の目的は、制御プログラムの内容が、過誤がある制御パラメータやロジックへ変更されることを防止する制御プログラム管理システム、及び制御プログラムの変更方法を提供することにある。
【課題を解決するための手段】
【0007】
本発明は上記の課題を解決するためになされたものであり、制御演算装置が実行する制御プログラムの変更を管理する制御プログラム管理システムであって、前記制御演算装置と、前記制御演算装置が実行している制御プログラムに代えて当該制御演算装置に実行させる新たな制御プログラムを
第1の利用者の操作に基づいて生成し、前記制御演算装置に送信する編集装置と、前記編集装置が生成した新たな制御プログラムを前記制御演算装置に実行させるか否かを示す承認情報の
前記第1の利用者と異なる第2の利用者による入力を受け付け、前記制御演算装置に送信する承認受付装置とを備え、前記制御演算装置は、実行すべき制御プログラムを記憶するプログラム記憶部と、前記プログラム記憶部が記憶する制御プログラムを実行するプログラム実行部と、前記編集装置から前記新たな制御プログラムを受け付け、当該制御プログラムをバッファに記録する一時記録部と、前記バッファが記憶する制御プログラムの内容を前記承認受付装置に表示させる提示部と、前記承認受付装置から承認情報を受け付ける承認情報受付部と、前記承認情報受付部が受け付けた承認情報が前記制御プログラムを承認するものである場合に、前記プログラム記憶部が記憶する制御プログラムを前記バッファが記憶する制御プログラムに書き換えるプログラム変更部とを備えることを特徴とする。
【0008】
また、本発明においては、利用者毎に、当該利用者を識別する識別情報、当該IDの認証に用いる認証情報、及び当該利用者の権限を関連付けて記憶する利用者データベースを備え、前記編集装置は、前記新たな制御プログラムに加えて、当該新たな制御プログラムを生成した利用者の識別情報及び認証情報を前記制御演算装置に送信し、前記承認受付装置は、前記承認情報に加えて、当該承認情報を入力した利用者の識別情報及び認証情報を前記制御演算装置に送信し、前記制御演算装置のプログラム変更部は、前記編集装置から受信した識別情報及び認証情報に関連付けて前記利用者データベースが記憶する権限が、制御プログラムの編集を許可された権限であり、かつ前記承認受付装置から受信した識別情報及び認証情報に関連付けて前記利用者データベースが記憶する権限が、制御プログラムの承認を許可された権限である場合において、前記承認情報受付部が受け付けた承認情報が、前記制御プログラムを承認するものであるときに、前記プログラム記憶部が記憶する制御プログラムを前記バッファが記憶する制御プログラムに書き換えることが好ましい。
【0009】
また、本発明においては、前記編集装置は、前記新たな制御プログラムを用いて生成した第1の誤り検出符号と、当該新たな制御プログラムをビット反転させた情報を用いて生成した第2の誤り検出符号とを、当該新たな制御プログラムに付して前記制御演算装置に送信し、前記制御演算装置のプログラム変更部は、前記編集装置から受信した新たな制御プログラムに付された第1の誤り検出符号及び第2の誤り検出符号によって誤りが検出されない場合において、前記承認情報受付部が受け付けた承認情報が前記制御プログラムを承認するものであるときに、前記プログラム記憶部が記憶する制御プログラムを前記バッファが記憶する制御プログラムに書き換えることが好ましい。
【0010】
また、本発明においては、前記制御演算装置の提示部は、前記バッファが記憶する制御プログラムの実行をシミュレートし、当該シミュレートの結果を前記承認受付装置に表示させることが好ましい。
【0011】
また、本発明においては、前記制御演算装置の提示部は、前記プログラム実行部が実行している制御プログラムと前記バッファが記憶する制御プログラムの差分を前記承認受付装置に表示させることが好ましい。
【0012】
また、本発明においては、過去に前記プログラム記憶部に記憶されていた制御プログラムをそれぞれ記憶するプログラムリポジトリ装置を備え、前記制御演算装置の提示部は、前記プログラムリポジトリ装置が記憶する制御プログラムそれぞれと前記バッファが記憶する制御プログラムの差分を前記承認受付装置に表示させることが好ましい。
【0013】
また、本発明においては、前記編集装置は、前記プログラム実行部が実行している制御プログラムを前記プログラムリポジトリ装置からチェックアウトし、当該制御プログラムの編集ができないようロックをかけるチェックアウト部と、前記チェックアウトした制御プログラムを編集することで新たな制御プログラムを生成する編集部と、前記編集部が生成した新たな制御プログラムを前記制御演算装置に送信する送信部と、前記チェックアウトした制御プログラムのロックを解除し、前記新たな制御プログラムを前記プログラムリポジトリ装置にチェックインするチェックイン部とを備え、前記プログラムリポジトリ装置は、前記制御プログラム
をロックした利用者と当該ロックを解除した利用者とが同一であるか否かを判定し、同一でない場合、その旨を承認権限を有する利用者に通知することが好ましい。
【0014】
また、本発明においては、前記編集装置は、前記プログラム実行部が実行している制御プログラムを前記プログラムリポジトリ装置からチェックアウトし、当該制御プログラムの編集ができないようロックをかけるチェックアウト部と、前記チェックアウトした制御プログラムを編集することで新たな制御プログラムを生成する編集部と、前記編集部が生成した新たな制御プログラムを前記制御演算装置に送信する送信部と、を備え、前記プログラムリポジトリ装置が記憶する制御プログラムのロックは、前記承認受付装置が前記承認情報を受け付けた後に解除されることが好ましい。
【0015】
また、本発明においては、前記承認受付装置は、前記承認情報を受け付けた場合に前記プログラムリポジトリ装置が記憶する制御プログラムのロックを解除することが好ましい。
【0016】
また、本発明においては、前記承認受付装置は、前記承認情報を受け付けた場合に前記編集装置に通知を発し、前記編集装置は、前記承認受付装置から通知を受けた場合に、前記プログラムリポジトリ装置が記憶する制御プログラムのロックを解除することが好ましい。
【0017】
また、本発明においては、前記制御演算装置は、冗長構成により同一の制御プログラムを実行する複数の制御演算装置であって、前記承認受付装置は、前記承認情報を、前記制御演算装置に代えて前記編集装置に送信し、前記編集装置は、前記新たな制御プログラムを、当該新たな制御プログラムを適用する全ての前記制御演算装置に送信し、前記承認受付装置から受信した承認情報を制御演算装置に転送し、前記制御演算装置の承認情報受付部は、前記承認受付装置に代えて前記編集装置から承認情報を受け付けることが好ましい。
【0018】
また、本発明は、制御演算装置が実行する制御プログラムの変更方法であって、編集装置は、前記制御演算装置が実行している制御プログラムに代えて当該制御演算装置に実行させる新たな制御プログラムを
第1の利用者の操作に基づいて生成して前記制御演算装置に送信し、前記制御演算装置の一時記録部は、前記編集装置から前記新たな制御プログラムを受け付けて当該制御プログラムをバッファに記録し、前記制御演算装置の提示部は、前記バッファが記憶する制御プログラムの内容を承認受付装置に表示させ、前記承認受付装置は、前記編集装置が生成した新たな制御プログラムを前記制御演算装置に実行させるか否かを示す承認情報の
前記第1の利用者と異なる第2の利用者による入力を受け付けて前記制御演算装置に送信し、前記制御演算装置の承認情報受付部は、前記承認受付装置から承認情報を受け付け、前記制御演算装置のプログラム変更部は、前記承認情報受付部が受け付けた承認情報が前記制御プログラムを承認するものである場合に、実行すべき制御プログラムを記憶するプログラム記憶部が記憶する制御プログラムを、前記バッファが記憶する制御プログラムに書き換えることを特徴とする。
【発明の効果】
【0019】
本発明によれば、制御演算装置は、編集装置が生成した新たな制御プログラムの内容を承認受付装置に表示させることで、運転員や保守員以外の第三者に新たな制御プログラムの内容の確認をさせる。その後、制御演算装置は、承認受付装置から当該第三者による承認を示す承認情報を受信したときに、当該新たな制御プログラムを、実行すべき制御プログラムとする。これにより、制御プログラム管理システムは、制御プログラムの内容が過誤がある制御パラメータやロジックへ変更されることを防止することができる。
【発明を実施するための形態】
【0021】
《第1の実施形態》
以下、図面を参照しながら本発明の実施形態について詳しく説明する。
図1は、本発明の第1の実施形態による制御プログラム管理システムの構成を示す図である。
制御プログラム管理システムは、制御演算装置100、編集装置200、承認受付装置300を備える。
制御演算装置100は、制御プログラムを実行することで、プラントを稼動させる。
編集装置200は、中央操作室の端末(オペレータステーションやエンジニアリングステーション)に実装され、制御演算装置100が実行する制御プログラムの編集を行う。編集装置200は、運転員や保守員(利用者)によって操作される。
承認受付装置300は、編集装置200によって生成された制御プログラムで制御演算装置100を動作させることについての承認を管理者(利用者)から受け付け、承認の可否を示す承認情報を制御演算装置100に送信する。なお、管理者は、運転員や保守員以外の第三者である。
【0022】
図2は、本発明の第1の実施形態による制御演算装置100の構成を示す概略ブロック図である。
制御演算装置100は、プログラム記憶部101、プログラム実行部102、利用者データベース103、利用者側I/F部104、一時記録部105、バッファ106、提示部107、承認情報受付部108、プログラム変更部109、フィールド側I/F部110を備える。
プログラム記憶部101は、プラントの制御のために実行すべき制御プログラムを記憶する。
プログラム実行部102は、プログラム記憶部101が記憶する制御プログラムを実行し、プラント側I/F部110を介してフィールド装置(タービン、ボイラ等)を制御する。
利用者データベース103は、制御プログラム管理システムの利用者(運転員、保守員、管理者など)の情報を記憶する。
利用者側I/F部104は、編集装置200及び承認受付装置300との通信を行う際に、当該装置の利用者の情報と利用者データベース103が記憶する情報とを照合し、正当な利用者であることが確認できた場合に、当該装置との通信を行う。
一時記録部105は、編集装置200が生成した新たな制御プログラムを受け付け、当該新たな制御プログラムをバッファ106に記録する。
バッファ106は、編集装置200が生成した新たな制御プログラムを一時的に記憶する。
提示部107は、バッファ106が記憶する新たな制御プログラムの内容を承認受付装置300に表示させる。
承認情報受付部108は、承認受付装置300から承認情報の入力を受け付ける。
プログラム変更部109は、承認情報に基づいてバッファ106が記憶する制御プログラムをプログラム記憶部101に記録するか否かを判定する。
フィールド側I/F部110は、フィールド装置とプログラム実行部との通信を行う。
【0023】
次に、利用者データベース103が記憶する情報について説明する。
図3は、利用者データベース103が記憶する情報の例を示す図である。
図3に示すように、利用者データベース103は、利用者毎に、当該利用者を識別するID(識別情報)、IDの認証に用いるパスワード(認証情報)、及び当該利用者の権限を関連付けて記憶する。なお、利用者データベース103は、パスワードを暗号化またはハッシュ化して記憶している。
【0024】
利用者の権限には、編集装置200にて新たな制御プログラムを生成する編集権限、新たな制御プログラムの動作を検証する検証権限、新たな制御プログラムで制御演算装置100を動作させることを承認する承認権限、新たな制御プログラムの内容を閲覧する閲覧権限の4つの権限がある。このとき、同一人物が編集及び承認することを防ぐため、編集権限を有する利用者には承認権限が与えられてはならず、同様に承認権限を有する利用者には編集権限が与えられてはならない。
【0025】
図3に示す例では、利用者Aは、制御演算装置100の監査者であるため、閲覧権限のみを有する。また、利用者Bは、制御演算装置100の管理者であるため、承認権限及び閲覧権限を有する。また、利用者Cは、制御演算装置100の運転員または保守員であるため、編集権限、検証権限、及び閲覧権限を有する。また、利用者Dは、運転員または保守員による制御プログラムの編集内容をチェックするチェック担当者であるため、編集権限を有さずに検証権限及び閲覧権限を有する。
なお、
図3において「○」は該当する権限を有する(実施許可)ことを示し、「×」は該当する権限を有しない(実施拒否)ことを示す。
【0026】
次に、本実施形態による制御プログラム管理システムの動作について説明する。
図4は、本発明の第1の実施形態による制御演算装置100の動作を示すフローチャートである。
まず、運転員または保守員が、編集装置200を操作して新たな制御プログラムを生成すると、当該制御プログラムを制御演算装置100に送信するため、編集装置200は、制御演算装置100にアクセスする。編集装置200が制御演算装置100にアクセスすると、制御演算装置100の利用者側I/F部104は、編集装置200に対し、ID及びパスワードの送信を要求する(ステップS1)。編集装置200の利用者が、編集装置200にID及びパスワードを入力すると、編集装置200は当該ID及びパスワードを制御演算装置100に送信する。このとき、ユーザ認証のために、PAP(Password Authentication Protocol)や秘匿性を高めたCHAP(Challenge Handshake Authentication Protocol)などの認証プロトコルを用いることが好ましい。
【0027】
制御演算装置100の利用者側I/F部104は、編集装置200からID及びパスワードを受信すると、当該ID及びパスワードの組み合わせが利用者データベース103に記憶されているか否かを判定する(ステップS2)。受信したID及びパスワードの組み合わせが利用者データベース103に記憶されていない場合(ステップS2:NO)、編集装置200に対してID及びパスワードの組み合わせが誤っている旨を示す通知を送信し、ステップS1に戻り、ID及びパスワードの再度の受信を待機する。
【0028】
他方、受信したID及びパスワードの組み合わせが利用者データベース103に記憶されている場合(ステップS2:YES)、利用者側I/F部104は、当該ID及びパスワードの組み合わせに関連付けて利用者データベース103に記憶されている権限に、編集権限が含まれるか否かを判定する(ステップS3)。利用者側I/F部104は、ID及びパスワードの組み合わせに関連付けられた権限に編集権限が含まれないと判定した場合(ステップS3:NO)、編集装置200に対して当該利用者による制御プログラムの編集が許可されていない旨を示す通知を送信し、制御プログラムの変更を行わずに、処理を終了する。
【0029】
他方、利用者側I/F部104は、ID及びパスワードの組み合わせに関連付けられた権限に編集権限が含まれると判定した場合(ステップS3:YES)、編集装置200から新たな制御プログラムを受信する(ステップS4)。このとき、編集装置200は、当該新たな制御プログラムを用いて生成したCRC(Cyclic Redundancy Check)符号(第1の誤り検出符号)と、当該新たな制御プログラムをビット反転させた情報を用いて生成したCRC符号(第2の誤り検出符号)とを、当該新たな制御プログラムに付して制御演算装置100に送信する。なお、利用者側I/F部104は、ステップS3において認証が完了すると、編集装置200との間でセッションを張り、一定時間の間はステップS1〜ステップS3による認証を行わずとも通信を許可する。
【0030】
利用者側I/F部104が編集装置200から新たな制御プログラムを受信すると、一時記録部105は、当該新たな制御プログラムをバッファ106に記録する(ステップS5)。このとき、一時記録部105は、受信した新たな制御プログラムに付された2つのCRC符号を除去せずそのままバッファ106に記録する。
次に、提示部107は、新たな制御プログラムが登録されたことを承認受付装置300に通知する(ステップS6)。
【0031】
新たな制御プログラムが登録されたことを示す通知を承認受付装置300が受信すると、承認受付装置300は、管理者の操作により、当該新たな制御プログラムの内容を閲覧するため制御演算装置100にアクセスする。承認受付装置300が制御演算装置100にアクセスすると、制御演算装置100の利用者側I/F部104は、承認受付装置300に対し、ID及びパスワードの送信を要求する(ステップS7)。承認受付装置300の利用者が、制御演算装置100にID及びパスワードを入力すると、承認受付装置300は当該ID及びパスワードを制御演算装置100に送信する。
【0032】
制御演算装置100の利用者側I/F部104は、承認受付装置300からID及びパスワードを受信すると、当該ID及びパスワードの組み合わせが利用者データベース103に記憶されているか否かを判定する(ステップS8)。受信したID及びパスワードの組み合わせが利用者データベース103に記憶されていない場合(ステップS8:NO)、承認受付装置300に対してID及びパスワードの組み合わせが誤っている旨を示す通知を送信し、ID及びパスワードの再度の受信を待機する。
【0033】
他方、受信したID及びパスワードの組み合わせが利用者データベース103に記憶されている場合(ステップS8:YES)、利用者側I/F部104は、当該ID及びパスワードの組み合わせに関連付けて利用者データベース103に記憶されている権限に、閲覧権限が含まれるか否かを判定する(ステップS9)。利用者側I/F部104は、ID及びパスワードの組み合わせに関連付けられた権限に閲覧権限が含まれないと判定した場合(ステップS9:NO)、承認受付装置300に対して当該利用者による制御プログラムの内容の閲覧が許可されていない旨を示す通知を送信してステップS7に戻り、閲覧権限を有する利用者からのアクセスを待機する。
【0034】
他方、利用者側I/F部104は、ID及びパスワードの組み合わせに関連付けられた権限に閲覧権限が含まれると判定した場合(ステップS9:YES)、承認受付装置300に、新たな制御プログラムの内容を示す情報を送信することで、当該情報を承認受付装置300に表示させる(ステップS10)。具体的には、提示部107は、新たな制御プログラムをシミュレートし、当該シミュレートの結果を示す情報を、承認受付装置300に送信する。なお、利用者側I/F部104は、ステップS9において認証が完了すると、承認受付装置300との間でセッションを張り、一定時間の間はステップS7〜ステップS9による認証を行わずとも通信を許可する。
【0035】
承認受付装置300は、制御演算装置100から受信した新たな制御プログラムの内容を示す情報を表示すると、管理者から当該新たな制御プログラムの内容を承認するか否かの入力を受け付ける。次に、承認受付装置300は、管理者から受け付けた承認情報を制御演算装置100に送信する。
【0036】
制御演算装置100の利用者側I/F部104は、ステップS7で受信したID及びパスワードの組み合わせに関連付けて利用者データベース103に記憶されている権限に、承認権限が含まれるか否かを判定する(ステップS11)。利用者側I/F部104は、ID及びパスワードの組み合わせに関連付けられた権限に承認権限が含まれないと判定した場合(ステップS11:NO)、承認受付装置300から承認情報を受信せず、承認の権限が無い旨を示す通知を送信し、承認受付装置300との通信を終了してステップS7に戻り、他の利用者による承認受付装置300からのアクセスを待機する。
【0037】
他方、利用者側I/F部104は、ID及びパスワードの組み合わせに関連付けられた権限に承認権限が含まれると判定した場合(ステップS11:YES)、承認情報受付部108は承認受付装置300から送信された承認情報を受信する(ステップS12)。次に、プログラム変更部109は、受信した承認情報が、新たな制御プログラムへの変更を承認することを示すか否かを判定する(ステップS13)。
【0038】
受信した承認情報が、新たな制御プログラムへの変更を承認することを示す場合(ステップS13:YES)、プログラム変更部109は、バッファ106から新たな制御プログラム並びに第1のCRC符号及び第2のCRC符号を読み出し、第1のCRC符号または第2のCRC符号を用いて、新たな制御プログラムの誤り検出を行う(ステップS14)。
【0039】
第1のCRC符号及び第2のCRC符号の何れによっても、新たな制御プログラムの誤りが検出されない場合(ステップS14:NO)、プログラム変更部109は、制御ロジック内での結線に断線が無いこと、及びコンパイルエラーが発生しないことを確認して、プログラム記憶部101が記憶する制御プログラムを新たな制御プログラムに書き換える(ステップS15)。
【0040】
他方、ステップS13で受信した承認情報が、新たな制御プログラムへの変更を承認しないことを示す場合(ステップS13:NO)、またはステップS14で新たな制御プログラムの誤りが検出された場合(ステップS14:YES)、制御プログラムの変更を行わずに、処理を終了する。
【0041】
なお、制御演算装置100は、新たな制御プログラムを生成した利用者が編集権限を有するか否か(ステップS3)、承認情報を入力した利用者が承認権限を有するか否か(ステップS11)、CRC符号によって誤りが検出されたか否か(ステップS14)、制御ロジック内の結線に断線があるか否か、コンパイルエラーが生じるか否か、の検証結果を、それぞれログとして記録しておくことが好ましい。
【0042】
このように、本実施形態によれば、制御演算装置100は、編集装置200から受け付けた新たな制御プログラムの内容を承認受付装置300に表示させる。承認受付装置300から受け付けた承認情報が新たな制御プログラムを承認するものである場合に、プログラム記憶部101が記憶する制御プログラムを新たな制御プログラムに書き換える。これにより、制御プログラム管理システムは、制御演算装置100が実施する制御プログラムの内容が、過誤がある制御パラメータやロジックへ変更されることを防止することができる。
【0043】
また、本実施形態によれば、制御演算装置100は、編集装置200から受信したID及びパスワードの組み合わせに関連付けられた権限が制御プログラムの編集を許可された権限であり、かつ承認受付装置300から受信したID及びパスワードの組み合わせに関連付けられた権限が制御プログラムの承認を許可された権限である場合に、制御プログラムの変更を行う。これにより、制御プログラム管理システムは、運転員や保守員以外の第三者によるチェックを経て制御プログラムを変更することができる。
【0044】
また、本実施形態によれば、制御演算装置100は、編集装置200から受信した新たな制御プログラムに付された第1のCRC符号及び第2のCRC符号によって誤りが検出されない場合に、制御プログラムの変更を行う。新たな制御プログラムの改ざんがされた場合において、偶然に第1のCRC符号によって誤りが検出できないとき、制御プログラムのビットを反転させた情報に基づく第2のCRC符号による誤り検出によって誤りを検出することができる可能性が高い。したがって、本実施形態によれば、編集装置200が送信した新たな制御プログラムが改ざんされた場合にも、当該改ざんを精度良く検出することができる。
【0045】
《第2の実施形態》
次に、本発明の第2の実施形態について説明する。
図5は、本発明の第2の実施形態による制御プログラム管理システムの構成を示す図である。
第2の実施形態による制御プログラム管理システムは、第1の実施形態の構成に加え、設計・保守管理装置400(プログラムリポジトリ装置)を備える。
設計・保守管理装置400は、制御演算装置100が現在実行している制御プログラム、及び過去に実行していた歴代の制御プログラムを、バージョン情報に関連付けて記憶・管理する。
【0046】
図6は、本発明の第2の実施形態による編集装置200の構成を示す概略ブロック図である。
編集装置200は、チェックアウト部201、編集部202、送信部203、チェックイン部204を備える。
チェックアウト部201は、制御演算装置100が現在実行している制御プログラムを設計・保守管理装置400からチェックアウトし、編集ができないよう当該制御プログラムにロックをかける。チェックアウトとは、リポジトリからデータを取り出してローカルに保存することをいう。
編集部202は、チェックアウト部201がチェックアウトした制御プログラムを編集することで新たな制御プログラムを生成する。
送信部203は、編集部202が生成した新たな制御プログラムを制御演算装置100に送信する。
チェックイン部204は、設計・保守管理装置400に新たな制御プログラムをチェックインし、当該制御プログラムのロックを解除する。チェックインとは、リポジトリへファイルを書き込むことをいう。
【0047】
ここで、第2の実施形態による編集装置200が制御プログラムの編集を行う際の動作について説明する。
運転員や保守員が、制御プログラムの編集を行うために編集装置200の操作を開始すると、編集装置200のチェックアウト部201は、設計・保守管理装置400から、制御演算装置100が現在実行している制御プログラムを設計・保守管理装置400からチェックアウトする。そして、チェックアウト部201は、当該チェックアウトした制御プログラムのロックを行う。次に、運転員や保守員の操作に従って、編集部202がチェックアウトした制御プログラムの編集を行うことで、新たな制御プログラムを生成する。編集が完了すると、送信部203は、当該新たな制御プログラムを制御演算装置100に送信する。また、チェックイン部204は、新たな制御プログラムをチェックインした後、当該新たな制御プログラムのロックを解除する。
【0048】
このとき、設計・保守管理装置400は、制御プログラムのロックしたときの編集装置200の利用者と当該ロックを解除したときの編集装置200の利用者とが同一であるか否かを判定する。これは、編集装置200との通信の際に利用者のIDを取得し、当該IDが一致するか否かを判定することで行うことができる。ロック時とロック解除時とで利用者が同一でない場合、設計・保守管理装置400は、その旨を示す通知を承認受付装置300に送信する。これにより、当該通知を視認することで、制御プログラムが正当に編集されていないことを、承認権限を有する利用者に知らせることができる。
【0049】
次に、承認受付装置300の動作について説明する。
第2の実施形態において、制御演算装置100の提示部107は上述したステップS10において、プログラム実行部102が現在実行している制御プログラムのバージョン情報と、バッファ106が記憶する制御プログラムのバージョン情報とを、承認受付装置300に送信する。そして、承認受付装置300は、設計・保守管理装置400から、受信した2つのバージョン情報に関連付けられた制御プログラムを読み出す。このとき、承認受付装置300は、設計・保守管理装置400から変更仕様書を検索し、当該文書を変更認証装置へ送信するようにしても良い。そして、承認受付装置300は、新たな制御プログラムと現在実行している制御プログラムの差分を生成し、当該差分の情報を表示する。例えば、承認受付装置300は、新たな制御プログラムのうち、変更部分(差分)を赤で表示し、変更が無い部分を黒で表示することで、差分を強調した表示をすることができる。
つまり、本実施形態における提示部107は、新たな制御プログラムと現在実行している制御プログラムとの差分を承認受付装置300に表示させる。
【0050】
このように、本実施形態によれば、承認受付装置300は、現在実行している制御プログラムと異なる部分を強調して表示する。これにより、管理者は制御プログラムのうち変更しようとするパラメータやロジックの過誤部分を見逃す可能性を低減させることができる。
【0051】
また、承認受付装置300は、制御演算装置100において制御プログラムの変更が完了したときに、設計・保守管理装置400に変更後の制御プログラムのバージョン情報を通知する。そして、設計・保守管理装置400は、当該バージョン情報に関連付けて新たな制御プログラムを記憶・管理する。
【0052】
なお、本実施形態では、設計・保守管理装置400を外部装置として設ける場合について説明したが、これに限られず設計・保守管理装置400は、制御演算装置100に実装されていても良い。この場合、承認受付装置300でなく提示部107が制御プログラムの差分の情報を生成し、当該差分の情報を承認受付装置300に表示させる。
【0053】
また、本実施形態において提示部107は、新たな制御プログラムと現在実行している制御プログラムとの差分に加え、設計・保守管理装置400が記憶する複数世代前の制御プログラムそれぞれとの差分を、承認受付装置300に表示させるようにしても良い。これにより、新たな制御プログラムが複数世代前の制御プログラムのロジックに先祖返りすることを防止することができる。
【0054】
《第3の実施形態》
第2の実施形態では、編集装置200が設計・保守管理装置400に対して制御プログラムのチェックイン及びロック解除を行った後に承認受付装置300による承認処理を行う場合について説明した。第3の実施形態では、承認受付装置300が管理者からの承認情報を受け付けた後に、設計・保守管理装置400が記憶する制御プログラムのチェックイン及びロック解除を行う。
【0055】
図7は、本発明の第3の実施形態による制御プログラム管理システムの構成を示す図である。
図7に示すように、第3の実施形態では、承認受付装置300が編集装置200と通信を行う。
【0056】
第3の実施形態による編集装置200のチェックイン部204は、第2の実施形態と異なり、編集部202による編集が完了したときには、新たな制御プログラムのチェックイン及びロック解除を行わない。また、第3の実施形態による編集装置200の送信部203は、第2の実施形態と異なり、編集部202による編集が完了したときに、新たな制御プログラムを制御演算装置100及び承認受付装置300に送信する。
【0057】
他方、承認受付装置300は、新たな制御プログラムと現在実行している制御プログラムの差分を生成を表示して承認情報の入力を受け付けると、当該承認情報を制御演算装置100及び編集装置200に送信する。そして、編集装置200のチェックイン部204は、当該承認情報が変更の承認を示す場合に、編集装置200から受信した新たな制御プログラムをチェックインしてロックを解除する。他方、編集装置200のチェックイン部204は、当該承認情報が変更の否認を示す場合に、新たな制御プログラムをチェックインせずに、ロックを解除する。
【0058】
なお、本実施形態においても、第2の実施形態と同様に、設計・保守管理装置400を制御演算装置100に実装されていても良く、また承認受付装置300が設計・保守管理装置400が記憶する複数世代前の制御プログラムそれぞれとの差分を表示しても良い。
【0059】
《第4の実施形態》
第3の実施形態では、承認受付装置300が管理者からの承認情報を受け付けた後に、編集装置200が制御プログラムのロックを解除する場合について説明した。第4の実施形態では、編集装置200が制御プログラムをロックし、承認受付装置300が管理者からの承認情報を受け付けたときに当該ロックを解除する。
【0060】
第4の実施形態による編集装置200は、第3の実施形態と同様に、編集部202による編集が完了したときには、新たな制御プログラムのチェックイン及びロック解除を行わず、また新たな制御プログラムを制御演算装置100及び承認受付装置300に送信する。
他方、承認受付装置300は、利用者から承認情報の入力を受け付けると、当該承認情報が新たな制御プログラムへの変更を承認することを示すか否かを判定する。承認情報が変更の承認を示す場合、承認受付装置300は、編集装置200から受信した新たな制御プログラムを設計・保守管理装置400にチェックインして、制御プログラムのロックを解除する。他方、承認情報が変更の否認を示す場合、承認受付装置300は、新たな制御プログラムをチェックインせずに、制御プログラムのロックを解除する。
【0061】
このように、本実施形態によれば、承認されない制御プログラムが設計・保守管理装置400に記録されることを防ぐことができる。また、承認があるまで設計・保守管理装置400の制御プログラムがロックされるため、同一のバージョンの制御プログラムに対して同時に異なる設計変更がなされることを防止することができる。また、編集装置200でなく承認受付装置300がロックを解除するため、承認情報を受け付けたときから遅滞無く、新たな制御プログラムを設計・保守管理装置400にチェックインし、またそのロックを解除することができる。
【0062】
なお、本実施形態においても、第2、第3の実施形態と同様に、設計・保守管理装置400を制御演算装置100に実装されていても良く、また承認受付装置300が設計・保守管理装置400が記憶する複数世代前の制御プログラムそれぞれとの差分を表示しても良い。
【0063】
《第5の実施形態》
図8は、本発明の第5の実施形態による制御プログラム管理システムの構成を示す図である。
第1〜第4の実施形態では、1つの制御演算装置100に対して制御プログラムの変更を行う場合について説明した。しかし、実際には冗長化や負荷分散のため、複数の制御演算装置100を用いてプラントの運用することが多い。これは、制御演算装置100の負荷を減らし、多くの制御ロジックを演算させること、または廉価なCPU(Central Processing Unit)を採用することを目的とするものである。そのため、第1〜第4の実施形態の制御プログラム管理システムによって制御プログラムの変更を行おうとすると、管理者は、冗長化された編集装置200のそれぞれに対して承認情報の入力を行う必要がある。そこで、第5の実施形態では、複数の制御演算装置100についての制御プログラムを変更する方法について説明する。
【0064】
編集装置200は、新たな制御プログラムを適用する制御演算装置100を選択する機能を有する。そして、編集装置200は、生成した新たな制御プログラムを、上記機能によって選択された全ての制御演算装置100に送信する。他方、承認受付装置300は、複数の制御演算装置100から新たな制御プログラムの内容を示す情報を表示すると、全ての制御演算装置100に対する変更の承認の可否を包括して示す承認情報を、編集装置200に送信する。
【0065】
編集装置200は、承認受付装置300から受信した承認情報を制御演算装置100に転送する。そして、制御演算装置100の承認情報受付部108は、編集装置200から承認情報を受け付け、プログラム変更部109は、当該承認情報に基づいて制御プログラムの変更の可否を決定する。なお、冗長構成をとる制御演算装置100は、それぞれ処理タイミングの同期を取っているので、プログラム記憶部101に記録された制御プログラムで同期が取れた時点で、全ての制御演算装置100の処理が始まることとなる。
【0066】
このように、本実施形態によれば、複数の制御演算装置100に対して同時に制御プログラムの変更を行うことができる。これにより、制御プログラムの変更のための利用者の負担を低減させることができる。
【0067】
以上、図面を参照してこの発明の一実施形態について詳しく説明してきたが、具体的な構成は上述のものに限られることはなく、この発明の要旨を逸脱しない範囲内において様々な設計変更等をすることが可能である。
【0068】
上述の制御演算装置100、編集装置200及び承認受付装置300は内部に、コンピュータシステムを有している。そして、上述した各処理部の動作は、プログラムの形式でコンピュータ読み取り可能な記録媒体に記憶されており、このプログラムをコンピュータが読み出して実行することによって、上記処理が行われる。ここでコンピュータ読み取り可能な記録媒体とは、磁気ディスク、光磁気ディスク、CD−ROM、DVD−ROM、半導体メモリ等をいう。また、このコンピュータプログラムを通信回線によってコンピュータに配信し、この配信を受けたコンピュータが当該プログラムを実行するようにしても良い。
【0069】
また、上記プログラムは、前述した機能の一部を実現するためのものであっても良い。さらに、前述した機能をコンピュータシステムにすでに記録されているプログラムとの組み合わせで実現できるもの、いわゆる差分ファイル(差分プログラム)であっても良い。