(57)【特許請求の範囲】
【請求項１】
制御演算装置が実行する制御プログラムの変更を管理する制御プログラム管理システムであって、
前記制御演算装置と、
前記制御演算装置が実行している制御プログラムに代えて当該制御演算装置に実行させる新たな制御プログラムを第１の利用者の操作に基づいて生成し、前記制御演算装置に送信する編集装置と、
前記編集装置が生成した新たな制御プログラムを前記制御演算装置に実行させるか否かを示す承認情報の前記第１の利用者と異なる第２の利用者による入力を受け付け、前記制御演算装置に送信する承認受付装置と
を備え、
前記制御演算装置は、
実行すべき制御プログラムを記憶するプログラム記憶部と、
前記プログラム記憶部が記憶する制御プログラムを実行するプログラム実行部と、
前記編集装置から前記新たな制御プログラムを受け付け、当該制御プログラムをバッファに記録する一時記録部と、
前記バッファが記憶する制御プログラムの内容を前記承認受付装置に表示させる提示部と、
前記承認受付装置から承認情報を受け付ける承認情報受付部と、
前記承認情報受付部が受け付けた承認情報が前記制御プログラムを承認するものである場合に、前記プログラム記憶部が記憶する制御プログラムを前記バッファが記憶する制御プログラムに書き換えるプログラム変更部と
を備えることを特徴とする制御プログラム管理システム。
【請求項２】
利用者毎に、当該利用者を識別する識別情報、当該ＩＤの認証に用いる認証情報、及び当該利用者の権限を関連付けて記憶する利用者データベースを備え、
前記編集装置は、前記新たな制御プログラムに加えて、当該新たな制御プログラムを生成した利用者の識別情報及び認証情報を前記制御演算装置に送信し、
前記承認受付装置は、前記承認情報に加えて、当該承認情報を入力した利用者の識別情報及び認証情報を前記制御演算装置に送信し、
前記制御演算装置のプログラム変更部は、前記編集装置から受信した識別情報及び認証情報に関連付けて前記利用者データベースが記憶する権限が、制御プログラムの編集を許可された権限であり、かつ前記承認受付装置から受信した識別情報及び認証情報に関連付けて前記利用者データベースが記憶する権限が、制御プログラムの承認を許可された権限である場合において、前記承認情報受付部が受け付けた承認情報が、前記制御プログラムを承認するものであるときに、前記プログラム記憶部が記憶する制御プログラムを前記バッファが記憶する制御プログラムに書き換える
ことを特徴とする請求項１に記載の制御プログラム管理システム。
【請求項３】
前記編集装置は、前記新たな制御プログラムを用いて生成した第１の誤り検出符号と、当該新たな制御プログラムをビット反転させた情報を用いて生成した第２の誤り検出符号とを、当該新たな制御プログラムに付して前記制御演算装置に送信し、
前記制御演算装置のプログラム変更部は、前記編集装置から受信した新たな制御プログラムに付された第１の誤り検出符号及び第２の誤り検出符号によって誤りが検出されない場合において、前記承認情報受付部が受け付けた承認情報が前記制御プログラムを承認するものであるときに、前記プログラム記憶部が記憶する制御プログラムを前記バッファが記憶する制御プログラムに書き換える
ことを特徴とする請求項１または請求項２に記載の制御プログラム管理システム。
【請求項４】
前記制御演算装置の提示部は、前記バッファが記憶する制御プログラムの実行をシミュレートし、当該シミュレートの結果を前記承認受付装置に表示させる
ことを特徴とする請求項１から請求項３の何れか１項に記載の制御プログラム管理システム。
【請求項５】
前記制御演算装置の提示部は、前記プログラム実行部が実行している制御プログラムと前記バッファが記憶する制御プログラムの差分を前記承認受付装置に表示させる
ことを特徴とする請求項１から請求項４の何れか１項に記載の制御プログラム管理システム。
【請求項６】
過去に前記プログラム記憶部に記憶されていた制御プログラムをそれぞれ記憶するプログラムリポジトリ装置を備え、
前記制御演算装置の提示部は、前記プログラムリポジトリ装置が記憶する制御プログラムそれぞれと前記バッファが記憶する制御プログラムの差分を前記承認受付装置に表示させる
ことを特徴とする請求項５に記載の制御プログラム管理システム。
【請求項７】
前記編集装置は、
前記プログラム実行部が実行している制御プログラムを前記プログラムリポジトリ装置からチェックアウトし、当該制御プログラムの編集ができないようロックをかけるチェックアウト部と、
前記チェックアウトした制御プログラムを編集することで新たな制御プログラムを生成する編集部と、
前記編集部が生成した新たな制御プログラムを前記制御演算装置に送信する送信部と、
前記チェックアウトした制御プログラムのロックを解除し、前記新たな制御プログラムを前記プログラムリポジトリ装置にチェックインするチェックイン部と
を備え、
前記プログラムリポジトリ装置は、前記制御プログラムをロックした利用者と当該ロックを解除した利用者とが同一であるか否かを判定し、同一でない場合、その旨を承認権限を有する利用者に通知する
ことを特徴とする請求項６に記載の制御プログラム管理システム。
【請求項８】
前記編集装置は、
前記プログラム実行部が実行している制御プログラムを前記プログラムリポジトリ装置からチェックアウトし、当該制御プログラムの編集ができないようロックをかけるチェックアウト部と、
前記チェックアウトした制御プログラムを編集することで新たな制御プログラムを生成する編集部と、
前記編集部が生成した新たな制御プログラムを前記制御演算装置に送信する送信部と、
を備え、
前記プログラムリポジトリ装置が記憶する制御プログラムのロックは、前記承認受付装置が前記承認情報を受け付けた後に解除される
ことを特徴とする請求項６に記載の制御プログラム管理システム。
【請求項９】
前記承認受付装置は、前記承認情報を受け付けた場合に前記プログラムリポジトリ装置が記憶する制御プログラムのロックを解除する
ことを特徴とする請求項８に記載の制御プログラム管理システム。
【請求項１０】
前記承認受付装置は、前記承認情報を受け付けた場合に前記編集装置に通知を発し、
前記編集装置は、前記承認受付装置から通知を受けた場合に、前記プログラムリポジトリ装置が記憶する制御プログラムのロックを解除する
ことを特徴とする請求項８に記載の制御プログラム管理システム。
【請求項１１】
前記制御演算装置は、冗長構成により同一の制御プログラムを実行する複数の制御演算装置であって、
前記承認受付装置は、前記承認情報を、前記制御演算装置に代えて前記編集装置に送信し、
前記編集装置は、前記新たな制御プログラムを、当該新たな制御プログラムを適用する全ての前記制御演算装置に送信し、前記承認受付装置から受信した承認情報を制御演算装置に転送し、
前記制御演算装置の承認情報受付部は、前記承認受付装置に代えて前記編集装置から承認情報を受け付ける
ことを特徴とする請求項１から請求項１０の何れか１項に記載の制御プログラム管理システム。
【請求項１２】
制御演算装置が実行する制御プログラムの変更方法であって、
編集装置は、前記制御演算装置が実行している制御プログラムに代えて当該制御演算装置に実行させる新たな制御プログラムを第１の利用者の操作に基づいて生成して前記制御演算装置に送信し、
前記制御演算装置の一時記録部は、前記編集装置から前記新たな制御プログラムを受け付けて当該制御プログラムをバッファに記録し、
前記制御演算装置の提示部は、前記バッファが記憶する制御プログラムの内容を承認受付装置に表示させ、
前記承認受付装置は、前記編集装置が生成した新たな制御プログラムを前記制御演算装置に実行させるか否かを示す承認情報の前記第１の利用者と異なる第２の利用者による入力を受け付けて前記制御演算装置に送信し、
前記制御演算装置の承認情報受付部は、前記承認受付装置から承認情報を受け付け、
前記制御演算装置のプログラム変更部は、前記承認情報受付部が受け付けた承認情報が前記制御プログラムを承認するものである場合に、実行すべき制御プログラムを記憶するプログラム記憶部が記憶する制御プログラムを、前記バッファが記憶する制御プログラムに書き換える
ことを特徴とする制御プログラムの変更方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、制御演算装置が実行する制御プログラムの変更を管理する制御プログラム管理システム、及び当該制御演算装置が実行する制御プログラムの変更方法に関する。
【背景技術】
【０００２】
発電プラントでは、当該発電プラントにおいて制御プログラムを実行する制御演算装置の稼働中に、当該制御プログラムの制御パラメータやロジックを、運転員や保守員が変更したいという要望がある。なお、制御パラメータやロジックの変更は、中央操作室の端末（オペレータステーション、エンジニアリングステーション）から行う。このため、オンラインで設定ファイルや制御プログラムを変更する方法が開発されている（特許文献１、２を参照）。
【０００３】
この際、運転員や保守員が制御プログラムのパラメータを誤った値に設定したり、不完全なロジックに変更したりすることで、プラントの挙動が不安定にならないよう、変更前にチェックを行うことが好ましい。このような誤動作を防止する方法として、プログラムのバージョンチェックを行う方法（特許文献３を参照）や、プログラムの編集権限を有しているか否かのチェックを行う方法（特許文献４を参照）が開示されている。
【０００４】
また、国際機能安全規格（ＩＥＣ（Ｉｎｔｅｒｎａｔｉｏｎａｌ  Ｅｌｅｃｔｒｏｔｅｃｈｎｉｃａｌ  Ｃｏｍｍｉｓｓｉｏｎ）６１５０８、ＪＩＳ（Ｊａｐａｎｅｓｅ  Ｉｎｄｕｓｔｒｉａｌ  Ｓｔａｎｄａｒｄｓ）  Ｃ  ０５０８）では、運転員が誤った制御プログラムに変更しない誤操作防止手段を採ることを推奨している。
【先行技術文献】
【特許文献】
【０００５】
【特許文献１】特表２０１０−５０７８４８号公報
【特許文献２】特開平７−９９６７４号公報
【特許文献３】特開平１１−１１０１９７号公報
【特許文献４】特表２００５−５３５９４５号公報
【発明の概要】
【発明が解決しようとする課題】
【０００６】
しかしながら、特許文献３、４に開示されている方法を用いたとしても、内容自体に過誤がある制御パラメータやロジックへ変更されることを防止することができないという問題がある。また、特許文献３、４に記載の方法では、ＩＥＣ６１５０８やＪＩＳ  Ｃ  ０５０８で要求されている誤操作防止手段が実現されないという問題がある。
本発明の目的は、制御プログラムの内容が、過誤がある制御パラメータやロジックへ変更されることを防止する制御プログラム管理システム、及び制御プログラムの変更方法を提供することにある。
【課題を解決するための手段】
【０００７】
本発明は上記の課題を解決するためになされたものであり、制御演算装置が実行する制御プログラムの変更を管理する制御プログラム管理システムであって、前記制御演算装置と、前記制御演算装置が実行している制御プログラムに代えて当該制御演算装置に実行させる新たな制御プログラムを第１の利用者の操作に基づいて生成し、前記制御演算装置に送信する編集装置と、前記編集装置が生成した新たな制御プログラムを前記制御演算装置に実行させるか否かを示す承認情報の前記第１の利用者と異なる第２の利用者による入力を受け付け、前記制御演算装置に送信する承認受付装置とを備え、前記制御演算装置は、実行すべき制御プログラムを記憶するプログラム記憶部と、前記プログラム記憶部が記憶する制御プログラムを実行するプログラム実行部と、前記編集装置から前記新たな制御プログラムを受け付け、当該制御プログラムをバッファに記録する一時記録部と、前記バッファが記憶する制御プログラムの内容を前記承認受付装置に表示させる提示部と、前記承認受付装置から承認情報を受け付ける承認情報受付部と、前記承認情報受付部が受け付けた承認情報が前記制御プログラムを承認するものである場合に、前記プログラム記憶部が記憶する制御プログラムを前記バッファが記憶する制御プログラムに書き換えるプログラム変更部とを備えることを特徴とする。
【０００８】
また、本発明においては、利用者毎に、当該利用者を識別する識別情報、当該ＩＤの認証に用いる認証情報、及び当該利用者の権限を関連付けて記憶する利用者データベースを備え、前記編集装置は、前記新たな制御プログラムに加えて、当該新たな制御プログラムを生成した利用者の識別情報及び認証情報を前記制御演算装置に送信し、前記承認受付装置は、前記承認情報に加えて、当該承認情報を入力した利用者の識別情報及び認証情報を前記制御演算装置に送信し、前記制御演算装置のプログラム変更部は、前記編集装置から受信した識別情報及び認証情報に関連付けて前記利用者データベースが記憶する権限が、制御プログラムの編集を許可された権限であり、かつ前記承認受付装置から受信した識別情報及び認証情報に関連付けて前記利用者データベースが記憶する権限が、制御プログラムの承認を許可された権限である場合において、前記承認情報受付部が受け付けた承認情報が、前記制御プログラムを承認するものであるときに、前記プログラム記憶部が記憶する制御プログラムを前記バッファが記憶する制御プログラムに書き換えることが好ましい。
【０００９】
また、本発明においては、前記編集装置は、前記新たな制御プログラムを用いて生成した第１の誤り検出符号と、当該新たな制御プログラムをビット反転させた情報を用いて生成した第２の誤り検出符号とを、当該新たな制御プログラムに付して前記制御演算装置に送信し、前記制御演算装置のプログラム変更部は、前記編集装置から受信した新たな制御プログラムに付された第１の誤り検出符号及び第２の誤り検出符号によって誤りが検出されない場合において、前記承認情報受付部が受け付けた承認情報が前記制御プログラムを承認するものであるときに、前記プログラム記憶部が記憶する制御プログラムを前記バッファが記憶する制御プログラムに書き換えることが好ましい。
【００１０】
また、本発明においては、前記制御演算装置の提示部は、前記バッファが記憶する制御プログラムの実行をシミュレートし、当該シミュレートの結果を前記承認受付装置に表示させることが好ましい。
【００１１】
また、本発明においては、前記制御演算装置の提示部は、前記プログラム実行部が実行している制御プログラムと前記バッファが記憶する制御プログラムの差分を前記承認受付装置に表示させることが好ましい。
【００１２】
また、本発明においては、過去に前記プログラム記憶部に記憶されていた制御プログラムをそれぞれ記憶するプログラムリポジトリ装置を備え、前記制御演算装置の提示部は、前記プログラムリポジトリ装置が記憶する制御プログラムそれぞれと前記バッファが記憶する制御プログラムの差分を前記承認受付装置に表示させることが好ましい。
【００１３】
また、本発明においては、前記編集装置は、前記プログラム実行部が実行している制御プログラムを前記プログラムリポジトリ装置からチェックアウトし、当該制御プログラムの編集ができないようロックをかけるチェックアウト部と、前記チェックアウトした制御プログラムを編集することで新たな制御プログラムを生成する編集部と、前記編集部が生成した新たな制御プログラムを前記制御演算装置に送信する送信部と、前記チェックアウトした制御プログラムのロックを解除し、前記新たな制御プログラムを前記プログラムリポジトリ装置にチェックインするチェックイン部とを備え、前記プログラムリポジトリ装置は、前記制御プログラムをロックした利用者と当該ロックを解除した利用者とが同一であるか否かを判定し、同一でない場合、その旨を承認権限を有する利用者に通知することが好ましい。
【００１４】
また、本発明においては、前記編集装置は、前記プログラム実行部が実行している制御プログラムを前記プログラムリポジトリ装置からチェックアウトし、当該制御プログラムの編集ができないようロックをかけるチェックアウト部と、前記チェックアウトした制御プログラムを編集することで新たな制御プログラムを生成する編集部と、前記編集部が生成した新たな制御プログラムを前記制御演算装置に送信する送信部と、を備え、前記プログラムリポジトリ装置が記憶する制御プログラムのロックは、前記承認受付装置が前記承認情報を受け付けた後に解除されることが好ましい。
【００１５】
また、本発明においては、前記承認受付装置は、前記承認情報を受け付けた場合に前記プログラムリポジトリ装置が記憶する制御プログラムのロックを解除することが好ましい。
【００１６】
また、本発明においては、前記承認受付装置は、前記承認情報を受け付けた場合に前記編集装置に通知を発し、前記編集装置は、前記承認受付装置から通知を受けた場合に、前記プログラムリポジトリ装置が記憶する制御プログラムのロックを解除することが好ましい。
【００１７】
また、本発明においては、前記制御演算装置は、冗長構成により同一の制御プログラムを実行する複数の制御演算装置であって、前記承認受付装置は、前記承認情報を、前記制御演算装置に代えて前記編集装置に送信し、前記編集装置は、前記新たな制御プログラムを、当該新たな制御プログラムを適用する全ての前記制御演算装置に送信し、前記承認受付装置から受信した承認情報を制御演算装置に転送し、前記制御演算装置の承認情報受付部は、前記承認受付装置に代えて前記編集装置から承認情報を受け付けることが好ましい。
【００１８】
また、本発明は、制御演算装置が実行する制御プログラムの変更方法であって、編集装置は、前記制御演算装置が実行している制御プログラムに代えて当該制御演算装置に実行させる新たな制御プログラムを第１の利用者の操作に基づいて生成して前記制御演算装置に送信し、前記制御演算装置の一時記録部は、前記編集装置から前記新たな制御プログラムを受け付けて当該制御プログラムをバッファに記録し、前記制御演算装置の提示部は、前記バッファが記憶する制御プログラムの内容を承認受付装置に表示させ、前記承認受付装置は、前記編集装置が生成した新たな制御プログラムを前記制御演算装置に実行させるか否かを示す承認情報の前記第１の利用者と異なる第２の利用者による入力を受け付けて前記制御演算装置に送信し、前記制御演算装置の承認情報受付部は、前記承認受付装置から承認情報を受け付け、前記制御演算装置のプログラム変更部は、前記承認情報受付部が受け付けた承認情報が前記制御プログラムを承認するものである場合に、実行すべき制御プログラムを記憶するプログラム記憶部が記憶する制御プログラムを、前記バッファが記憶する制御プログラムに書き換えることを特徴とする。
【発明の効果】
【００１９】
本発明によれば、制御演算装置は、編集装置が生成した新たな制御プログラムの内容を承認受付装置に表示させることで、運転員や保守員以外の第三者に新たな制御プログラムの内容の確認をさせる。その後、制御演算装置は、承認受付装置から当該第三者による承認を示す承認情報を受信したときに、当該新たな制御プログラムを、実行すべき制御プログラムとする。これにより、制御プログラム管理システムは、制御プログラムの内容が過誤がある制御パラメータやロジックへ変更されることを防止することができる。
【図面の簡単な説明】
【００２０】
【図１】本発明の第１の実施形態による制御プログラム管理システムの構成を示す図である。
【図２】本発明の第１の実施形態による制御演算装置の構成を示す概略ブロック図である。
【図３】利用者データベースが記憶する情報の例を示す図である。
【図４】本発明の第１の実施形態による制御演算装置の動作を示すフローチャートである。
【図５】本発明の第２の実施形態による制御プログラム管理システムの構成を示す図である。
【図６】本発明の第２の実施形態による編集装置の構成を示す概略ブロック図である。
【図７】本発明の第３の実施形態による制御プログラム管理システムの構成を示す図である。
【図８】本発明の第５の実施形態による制御プログラム管理システムの構成を示す図である。
【発明を実施するための形態】
【００２１】
《第１の実施形態》
以下、図面を参照しながら本発明の実施形態について詳しく説明する。
図１は、本発明の第１の実施形態による制御プログラム管理システムの構成を示す図である。
制御プログラム管理システムは、制御演算装置１００、編集装置２００、承認受付装置３００を備える。
制御演算装置１００は、制御プログラムを実行することで、プラントを稼動させる。
編集装置２００は、中央操作室の端末（オペレータステーションやエンジニアリングステーション）に実装され、制御演算装置１００が実行する制御プログラムの編集を行う。編集装置２００は、運転員や保守員（利用者）によって操作される。
承認受付装置３００は、編集装置２００によって生成された制御プログラムで制御演算装置１００を動作させることについての承認を管理者（利用者）から受け付け、承認の可否を示す承認情報を制御演算装置１００に送信する。なお、管理者は、運転員や保守員以外の第三者である。
【００２２】
図２は、本発明の第１の実施形態による制御演算装置１００の構成を示す概略ブロック図である。
制御演算装置１００は、プログラム記憶部１０１、プログラム実行部１０２、利用者データベース１０３、利用者側Ｉ／Ｆ部１０４、一時記録部１０５、バッファ１０６、提示部１０７、承認情報受付部１０８、プログラム変更部１０９、フィールド側Ｉ／Ｆ部１１０を備える。
プログラム記憶部１０１は、プラントの制御のために実行すべき制御プログラムを記憶する。
プログラム実行部１０２は、プログラム記憶部１０１が記憶する制御プログラムを実行し、プラント側Ｉ／Ｆ部１１０を介してフィールド装置（タービン、ボイラ等）を制御する。
利用者データベース１０３は、制御プログラム管理システムの利用者（運転員、保守員、管理者など）の情報を記憶する。
利用者側Ｉ／Ｆ部１０４は、編集装置２００及び承認受付装置３００との通信を行う際に、当該装置の利用者の情報と利用者データベース１０３が記憶する情報とを照合し、正当な利用者であることが確認できた場合に、当該装置との通信を行う。
一時記録部１０５は、編集装置２００が生成した新たな制御プログラムを受け付け、当該新たな制御プログラムをバッファ１０６に記録する。
バッファ１０６は、編集装置２００が生成した新たな制御プログラムを一時的に記憶する。
提示部１０７は、バッファ１０６が記憶する新たな制御プログラムの内容を承認受付装置３００に表示させる。
承認情報受付部１０８は、承認受付装置３００から承認情報の入力を受け付ける。
プログラム変更部１０９は、承認情報に基づいてバッファ１０６が記憶する制御プログラムをプログラム記憶部１０１に記録するか否かを判定する。
フィールド側Ｉ／Ｆ部１１０は、フィールド装置とプログラム実行部との通信を行う。
【００２３】
次に、利用者データベース１０３が記憶する情報について説明する。
図３は、利用者データベース１０３が記憶する情報の例を示す図である。
図３に示すように、利用者データベース１０３は、利用者毎に、当該利用者を識別するＩＤ（識別情報）、ＩＤの認証に用いるパスワード（認証情報）、及び当該利用者の権限を関連付けて記憶する。なお、利用者データベース１０３は、パスワードを暗号化またはハッシュ化して記憶している。
【００２４】
利用者の権限には、編集装置２００にて新たな制御プログラムを生成する編集権限、新たな制御プログラムの動作を検証する検証権限、新たな制御プログラムで制御演算装置１００を動作させることを承認する承認権限、新たな制御プログラムの内容を閲覧する閲覧権限の４つの権限がある。このとき、同一人物が編集及び承認することを防ぐため、編集権限を有する利用者には承認権限が与えられてはならず、同様に承認権限を有する利用者には編集権限が与えられてはならない。
【００２５】
図３に示す例では、利用者Ａは、制御演算装置１００の監査者であるため、閲覧権限のみを有する。また、利用者Ｂは、制御演算装置１００の管理者であるため、承認権限及び閲覧権限を有する。また、利用者Ｃは、制御演算装置１００の運転員または保守員であるため、編集権限、検証権限、及び閲覧権限を有する。また、利用者Ｄは、運転員または保守員による制御プログラムの編集内容をチェックするチェック担当者であるため、編集権限を有さずに検証権限及び閲覧権限を有する。
なお、図３において「○」は該当する権限を有する（実施許可）ことを示し、「×」は該当する権限を有しない（実施拒否）ことを示す。
【００２６】
次に、本実施形態による制御プログラム管理システムの動作について説明する。
図４は、本発明の第１の実施形態による制御演算装置１００の動作を示すフローチャートである。
まず、運転員または保守員が、編集装置２００を操作して新たな制御プログラムを生成すると、当該制御プログラムを制御演算装置１００に送信するため、編集装置２００は、制御演算装置１００にアクセスする。編集装置２００が制御演算装置１００にアクセスすると、制御演算装置１００の利用者側Ｉ／Ｆ部１０４は、編集装置２００に対し、ＩＤ及びパスワードの送信を要求する（ステップＳ１）。編集装置２００の利用者が、編集装置２００にＩＤ及びパスワードを入力すると、編集装置２００は当該ＩＤ及びパスワードを制御演算装置１００に送信する。このとき、ユーザ認証のために、ＰＡＰ（Ｐａｓｓｗｏｒｄ  Ａｕｔｈｅｎｔｉｃａｔｉｏｎ  Ｐｒｏｔｏｃｏｌ）や秘匿性を高めたＣＨＡＰ（Ｃｈａｌｌｅｎｇｅ  Ｈａｎｄｓｈａｋｅ  Ａｕｔｈｅｎｔｉｃａｔｉｏｎ  Ｐｒｏｔｏｃｏｌ）などの認証プロトコルを用いることが好ましい。
【００２７】
制御演算装置１００の利用者側Ｉ／Ｆ部１０４は、編集装置２００からＩＤ及びパスワードを受信すると、当該ＩＤ及びパスワードの組み合わせが利用者データベース１０３に記憶されているか否かを判定する（ステップＳ２）。受信したＩＤ及びパスワードの組み合わせが利用者データベース１０３に記憶されていない場合（ステップＳ２：ＮＯ）、編集装置２００に対してＩＤ及びパスワードの組み合わせが誤っている旨を示す通知を送信し、ステップＳ１に戻り、ＩＤ及びパスワードの再度の受信を待機する。
【００２８】
他方、受信したＩＤ及びパスワードの組み合わせが利用者データベース１０３に記憶されている場合（ステップＳ２：ＹＥＳ）、利用者側Ｉ／Ｆ部１０４は、当該ＩＤ及びパスワードの組み合わせに関連付けて利用者データベース１０３に記憶されている権限に、編集権限が含まれるか否かを判定する（ステップＳ３）。利用者側Ｉ／Ｆ部１０４は、ＩＤ及びパスワードの組み合わせに関連付けられた権限に編集権限が含まれないと判定した場合（ステップＳ３：ＮＯ）、編集装置２００に対して当該利用者による制御プログラムの編集が許可されていない旨を示す通知を送信し、制御プログラムの変更を行わずに、処理を終了する。
【００２９】
他方、利用者側Ｉ／Ｆ部１０４は、ＩＤ及びパスワードの組み合わせに関連付けられた権限に編集権限が含まれると判定した場合（ステップＳ３：ＹＥＳ）、編集装置２００から新たな制御プログラムを受信する（ステップＳ４）。このとき、編集装置２００は、当該新たな制御プログラムを用いて生成したＣＲＣ（Ｃｙｃｌｉｃ  Ｒｅｄｕｎｄａｎｃｙ  Ｃｈｅｃｋ）符号（第１の誤り検出符号）と、当該新たな制御プログラムをビット反転させた情報を用いて生成したＣＲＣ符号（第２の誤り検出符号）とを、当該新たな制御プログラムに付して制御演算装置１００に送信する。なお、利用者側Ｉ／Ｆ部１０４は、ステップＳ３において認証が完了すると、編集装置２００との間でセッションを張り、一定時間の間はステップＳ１〜ステップＳ３による認証を行わずとも通信を許可する。
【００３０】
利用者側Ｉ／Ｆ部１０４が編集装置２００から新たな制御プログラムを受信すると、一時記録部１０５は、当該新たな制御プログラムをバッファ１０６に記録する（ステップＳ５）。このとき、一時記録部１０５は、受信した新たな制御プログラムに付された２つのＣＲＣ符号を除去せずそのままバッファ１０６に記録する。
次に、提示部１０７は、新たな制御プログラムが登録されたことを承認受付装置３００に通知する（ステップＳ６）。
【００３１】
新たな制御プログラムが登録されたことを示す通知を承認受付装置３００が受信すると、承認受付装置３００は、管理者の操作により、当該新たな制御プログラムの内容を閲覧するため制御演算装置１００にアクセスする。承認受付装置３００が制御演算装置１００にアクセスすると、制御演算装置１００の利用者側Ｉ／Ｆ部１０４は、承認受付装置３００に対し、ＩＤ及びパスワードの送信を要求する（ステップＳ７）。承認受付装置３００の利用者が、制御演算装置１００にＩＤ及びパスワードを入力すると、承認受付装置３００は当該ＩＤ及びパスワードを制御演算装置１００に送信する。
【００３２】
制御演算装置１００の利用者側Ｉ／Ｆ部１０４は、承認受付装置３００からＩＤ及びパスワードを受信すると、当該ＩＤ及びパスワードの組み合わせが利用者データベース１０３に記憶されているか否かを判定する（ステップＳ８）。受信したＩＤ及びパスワードの組み合わせが利用者データベース１０３に記憶されていない場合（ステップＳ８：ＮＯ）、承認受付装置３００に対してＩＤ及びパスワードの組み合わせが誤っている旨を示す通知を送信し、ＩＤ及びパスワードの再度の受信を待機する。
【００３３】
他方、受信したＩＤ及びパスワードの組み合わせが利用者データベース１０３に記憶されている場合（ステップＳ８：ＹＥＳ）、利用者側Ｉ／Ｆ部１０４は、当該ＩＤ及びパスワードの組み合わせに関連付けて利用者データベース１０３に記憶されている権限に、閲覧権限が含まれるか否かを判定する（ステップＳ９）。利用者側Ｉ／Ｆ部１０４は、ＩＤ及びパスワードの組み合わせに関連付けられた権限に閲覧権限が含まれないと判定した場合（ステップＳ９：ＮＯ）、承認受付装置３００に対して当該利用者による制御プログラムの内容の閲覧が許可されていない旨を示す通知を送信してステップＳ７に戻り、閲覧権限を有する利用者からのアクセスを待機する。
【００３４】
他方、利用者側Ｉ／Ｆ部１０４は、ＩＤ及びパスワードの組み合わせに関連付けられた権限に閲覧権限が含まれると判定した場合（ステップＳ９：ＹＥＳ）、承認受付装置３００に、新たな制御プログラムの内容を示す情報を送信することで、当該情報を承認受付装置３００に表示させる（ステップＳ１０）。具体的には、提示部１０７は、新たな制御プログラムをシミュレートし、当該シミュレートの結果を示す情報を、承認受付装置３００に送信する。なお、利用者側Ｉ／Ｆ部１０４は、ステップＳ９において認証が完了すると、承認受付装置３００との間でセッションを張り、一定時間の間はステップＳ７〜ステップＳ９による認証を行わずとも通信を許可する。
【００３５】
承認受付装置３００は、制御演算装置１００から受信した新たな制御プログラムの内容を示す情報を表示すると、管理者から当該新たな制御プログラムの内容を承認するか否かの入力を受け付ける。次に、承認受付装置３００は、管理者から受け付けた承認情報を制御演算装置１００に送信する。
【００３６】
制御演算装置１００の利用者側Ｉ／Ｆ部１０４は、ステップＳ７で受信したＩＤ及びパスワードの組み合わせに関連付けて利用者データベース１０３に記憶されている権限に、承認権限が含まれるか否かを判定する（ステップＳ１１）。利用者側Ｉ／Ｆ部１０４は、ＩＤ及びパスワードの組み合わせに関連付けられた権限に承認権限が含まれないと判定した場合（ステップＳ１１：ＮＯ）、承認受付装置３００から承認情報を受信せず、承認の権限が無い旨を示す通知を送信し、承認受付装置３００との通信を終了してステップＳ７に戻り、他の利用者による承認受付装置３００からのアクセスを待機する。
【００３７】
他方、利用者側Ｉ／Ｆ部１０４は、ＩＤ及びパスワードの組み合わせに関連付けられた権限に承認権限が含まれると判定した場合（ステップＳ１１：ＹＥＳ）、承認情報受付部１０８は承認受付装置３００から送信された承認情報を受信する（ステップＳ１２）。次に、プログラム変更部１０９は、受信した承認情報が、新たな制御プログラムへの変更を承認することを示すか否かを判定する（ステップＳ１３）。
【００３８】
受信した承認情報が、新たな制御プログラムへの変更を承認することを示す場合（ステップＳ１３：ＹＥＳ）、プログラム変更部１０９は、バッファ１０６から新たな制御プログラム並びに第１のＣＲＣ符号及び第２のＣＲＣ符号を読み出し、第１のＣＲＣ符号または第２のＣＲＣ符号を用いて、新たな制御プログラムの誤り検出を行う（ステップＳ１４）。
【００３９】
第１のＣＲＣ符号及び第２のＣＲＣ符号の何れによっても、新たな制御プログラムの誤りが検出されない場合（ステップＳ１４：ＮＯ）、プログラム変更部１０９は、制御ロジック内での結線に断線が無いこと、及びコンパイルエラーが発生しないことを確認して、プログラム記憶部１０１が記憶する制御プログラムを新たな制御プログラムに書き換える（ステップＳ１５）。
【００４０】
他方、ステップＳ１３で受信した承認情報が、新たな制御プログラムへの変更を承認しないことを示す場合（ステップＳ１３：ＮＯ）、またはステップＳ１４で新たな制御プログラムの誤りが検出された場合（ステップＳ１４：ＹＥＳ）、制御プログラムの変更を行わずに、処理を終了する。
【００４１】
なお、制御演算装置１００は、新たな制御プログラムを生成した利用者が編集権限を有するか否か（ステップＳ３）、承認情報を入力した利用者が承認権限を有するか否か（ステップＳ１１）、ＣＲＣ符号によって誤りが検出されたか否か（ステップＳ１４）、制御ロジック内の結線に断線があるか否か、コンパイルエラーが生じるか否か、の検証結果を、それぞれログとして記録しておくことが好ましい。
【００４２】
このように、本実施形態によれば、制御演算装置１００は、編集装置２００から受け付けた新たな制御プログラムの内容を承認受付装置３００に表示させる。承認受付装置３００から受け付けた承認情報が新たな制御プログラムを承認するものである場合に、プログラム記憶部１０１が記憶する制御プログラムを新たな制御プログラムに書き換える。これにより、制御プログラム管理システムは、制御演算装置１００が実施する制御プログラムの内容が、過誤がある制御パラメータやロジックへ変更されることを防止することができる。
【００４３】
また、本実施形態によれば、制御演算装置１００は、編集装置２００から受信したＩＤ及びパスワードの組み合わせに関連付けられた権限が制御プログラムの編集を許可された権限であり、かつ承認受付装置３００から受信したＩＤ及びパスワードの組み合わせに関連付けられた権限が制御プログラムの承認を許可された権限である場合に、制御プログラムの変更を行う。これにより、制御プログラム管理システムは、運転員や保守員以外の第三者によるチェックを経て制御プログラムを変更することができる。
【００４４】
また、本実施形態によれば、制御演算装置１００は、編集装置２００から受信した新たな制御プログラムに付された第１のＣＲＣ符号及び第２のＣＲＣ符号によって誤りが検出されない場合に、制御プログラムの変更を行う。新たな制御プログラムの改ざんがされた場合において、偶然に第１のＣＲＣ符号によって誤りが検出できないとき、制御プログラムのビットを反転させた情報に基づく第２のＣＲＣ符号による誤り検出によって誤りを検出することができる可能性が高い。したがって、本実施形態によれば、編集装置２００が送信した新たな制御プログラムが改ざんされた場合にも、当該改ざんを精度良く検出することができる。
【００４５】
《第２の実施形態》
次に、本発明の第２の実施形態について説明する。
図５は、本発明の第２の実施形態による制御プログラム管理システムの構成を示す図である。
第２の実施形態による制御プログラム管理システムは、第１の実施形態の構成に加え、設計・保守管理装置４００（プログラムリポジトリ装置）を備える。
設計・保守管理装置４００は、制御演算装置１００が現在実行している制御プログラム、及び過去に実行していた歴代の制御プログラムを、バージョン情報に関連付けて記憶・管理する。
【００４６】
図６は、本発明の第２の実施形態による編集装置２００の構成を示す概略ブロック図である。
編集装置２００は、チェックアウト部２０１、編集部２０２、送信部２０３、チェックイン部２０４を備える。
チェックアウト部２０１は、制御演算装置１００が現在実行している制御プログラムを設計・保守管理装置４００からチェックアウトし、編集ができないよう当該制御プログラムにロックをかける。チェックアウトとは、リポジトリからデータを取り出してローカルに保存することをいう。
編集部２０２は、チェックアウト部２０１がチェックアウトした制御プログラムを編集することで新たな制御プログラムを生成する。
送信部２０３は、編集部２０２が生成した新たな制御プログラムを制御演算装置１００に送信する。
チェックイン部２０４は、設計・保守管理装置４００に新たな制御プログラムをチェックインし、当該制御プログラムのロックを解除する。チェックインとは、リポジトリへファイルを書き込むことをいう。
【００４７】
ここで、第２の実施形態による編集装置２００が制御プログラムの編集を行う際の動作について説明する。
運転員や保守員が、制御プログラムの編集を行うために編集装置２００の操作を開始すると、編集装置２００のチェックアウト部２０１は、設計・保守管理装置４００から、制御演算装置１００が現在実行している制御プログラムを設計・保守管理装置４００からチェックアウトする。そして、チェックアウト部２０１は、当該チェックアウトした制御プログラムのロックを行う。次に、運転員や保守員の操作に従って、編集部２０２がチェックアウトした制御プログラムの編集を行うことで、新たな制御プログラムを生成する。編集が完了すると、送信部２０３は、当該新たな制御プログラムを制御演算装置１００に送信する。また、チェックイン部２０４は、新たな制御プログラムをチェックインした後、当該新たな制御プログラムのロックを解除する。
【００４８】
このとき、設計・保守管理装置４００は、制御プログラムのロックしたときの編集装置２００の利用者と当該ロックを解除したときの編集装置２００の利用者とが同一であるか否かを判定する。これは、編集装置２００との通信の際に利用者のＩＤを取得し、当該ＩＤが一致するか否かを判定することで行うことができる。ロック時とロック解除時とで利用者が同一でない場合、設計・保守管理装置４００は、その旨を示す通知を承認受付装置３００に送信する。これにより、当該通知を視認することで、制御プログラムが正当に編集されていないことを、承認権限を有する利用者に知らせることができる。
【００４９】
次に、承認受付装置３００の動作について説明する。
第２の実施形態において、制御演算装置１００の提示部１０７は上述したステップＳ１０において、プログラム実行部１０２が現在実行している制御プログラムのバージョン情報と、バッファ１０６が記憶する制御プログラムのバージョン情報とを、承認受付装置３００に送信する。そして、承認受付装置３００は、設計・保守管理装置４００から、受信した２つのバージョン情報に関連付けられた制御プログラムを読み出す。このとき、承認受付装置３００は、設計・保守管理装置４００から変更仕様書を検索し、当該文書を変更認証装置へ送信するようにしても良い。そして、承認受付装置３００は、新たな制御プログラムと現在実行している制御プログラムの差分を生成し、当該差分の情報を表示する。例えば、承認受付装置３００は、新たな制御プログラムのうち、変更部分（差分）を赤で表示し、変更が無い部分を黒で表示することで、差分を強調した表示をすることができる。
つまり、本実施形態における提示部１０７は、新たな制御プログラムと現在実行している制御プログラムとの差分を承認受付装置３００に表示させる。
【００５０】
このように、本実施形態によれば、承認受付装置３００は、現在実行している制御プログラムと異なる部分を強調して表示する。これにより、管理者は制御プログラムのうち変更しようとするパラメータやロジックの過誤部分を見逃す可能性を低減させることができる。
【００５１】
また、承認受付装置３００は、制御演算装置１００において制御プログラムの変更が完了したときに、設計・保守管理装置４００に変更後の制御プログラムのバージョン情報を通知する。そして、設計・保守管理装置４００は、当該バージョン情報に関連付けて新たな制御プログラムを記憶・管理する。
【００５２】
なお、本実施形態では、設計・保守管理装置４００を外部装置として設ける場合について説明したが、これに限られず設計・保守管理装置４００は、制御演算装置１００に実装されていても良い。この場合、承認受付装置３００でなく提示部１０７が制御プログラムの差分の情報を生成し、当該差分の情報を承認受付装置３００に表示させる。
【００５３】
また、本実施形態において提示部１０７は、新たな制御プログラムと現在実行している制御プログラムとの差分に加え、設計・保守管理装置４００が記憶する複数世代前の制御プログラムそれぞれとの差分を、承認受付装置３００に表示させるようにしても良い。これにより、新たな制御プログラムが複数世代前の制御プログラムのロジックに先祖返りすることを防止することができる。
【００５４】
《第３の実施形態》
第２の実施形態では、編集装置２００が設計・保守管理装置４００に対して制御プログラムのチェックイン及びロック解除を行った後に承認受付装置３００による承認処理を行う場合について説明した。第３の実施形態では、承認受付装置３００が管理者からの承認情報を受け付けた後に、設計・保守管理装置４００が記憶する制御プログラムのチェックイン及びロック解除を行う。
【００５５】
図７は、本発明の第３の実施形態による制御プログラム管理システムの構成を示す図である。
図７に示すように、第３の実施形態では、承認受付装置３００が編集装置２００と通信を行う。
【００５６】
第３の実施形態による編集装置２００のチェックイン部２０４は、第２の実施形態と異なり、編集部２０２による編集が完了したときには、新たな制御プログラムのチェックイン及びロック解除を行わない。また、第３の実施形態による編集装置２００の送信部２０３は、第２の実施形態と異なり、編集部２０２による編集が完了したときに、新たな制御プログラムを制御演算装置１００及び承認受付装置３００に送信する。
【００５７】
他方、承認受付装置３００は、新たな制御プログラムと現在実行している制御プログラムの差分を生成を表示して承認情報の入力を受け付けると、当該承認情報を制御演算装置１００及び編集装置２００に送信する。そして、編集装置２００のチェックイン部２０４は、当該承認情報が変更の承認を示す場合に、編集装置２００から受信した新たな制御プログラムをチェックインしてロックを解除する。他方、編集装置２００のチェックイン部２０４は、当該承認情報が変更の否認を示す場合に、新たな制御プログラムをチェックインせずに、ロックを解除する。
【００５８】
なお、本実施形態においても、第２の実施形態と同様に、設計・保守管理装置４００を制御演算装置１００に実装されていても良く、また承認受付装置３００が設計・保守管理装置４００が記憶する複数世代前の制御プログラムそれぞれとの差分を表示しても良い。
【００５９】
《第４の実施形態》
第３の実施形態では、承認受付装置３００が管理者からの承認情報を受け付けた後に、編集装置２００が制御プログラムのロックを解除する場合について説明した。第４の実施形態では、編集装置２００が制御プログラムをロックし、承認受付装置３００が管理者からの承認情報を受け付けたときに当該ロックを解除する。
【００６０】
第４の実施形態による編集装置２００は、第３の実施形態と同様に、編集部２０２による編集が完了したときには、新たな制御プログラムのチェックイン及びロック解除を行わず、また新たな制御プログラムを制御演算装置１００及び承認受付装置３００に送信する。
他方、承認受付装置３００は、利用者から承認情報の入力を受け付けると、当該承認情報が新たな制御プログラムへの変更を承認することを示すか否かを判定する。承認情報が変更の承認を示す場合、承認受付装置３００は、編集装置２００から受信した新たな制御プログラムを設計・保守管理装置４００にチェックインして、制御プログラムのロックを解除する。他方、承認情報が変更の否認を示す場合、承認受付装置３００は、新たな制御プログラムをチェックインせずに、制御プログラムのロックを解除する。
【００６１】
このように、本実施形態によれば、承認されない制御プログラムが設計・保守管理装置４００に記録されることを防ぐことができる。また、承認があるまで設計・保守管理装置４００の制御プログラムがロックされるため、同一のバージョンの制御プログラムに対して同時に異なる設計変更がなされることを防止することができる。また、編集装置２００でなく承認受付装置３００がロックを解除するため、承認情報を受け付けたときから遅滞無く、新たな制御プログラムを設計・保守管理装置４００にチェックインし、またそのロックを解除することができる。
【００６２】
なお、本実施形態においても、第２、第３の実施形態と同様に、設計・保守管理装置４００を制御演算装置１００に実装されていても良く、また承認受付装置３００が設計・保守管理装置４００が記憶する複数世代前の制御プログラムそれぞれとの差分を表示しても良い。
【００６３】
《第５の実施形態》
図８は、本発明の第５の実施形態による制御プログラム管理システムの構成を示す図である。
第１〜第４の実施形態では、１つの制御演算装置１００に対して制御プログラムの変更を行う場合について説明した。しかし、実際には冗長化や負荷分散のため、複数の制御演算装置１００を用いてプラントの運用することが多い。これは、制御演算装置１００の負荷を減らし、多くの制御ロジックを演算させること、または廉価なＣＰＵ（Ｃｅｎｔｒａｌ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ）を採用することを目的とするものである。そのため、第１〜第４の実施形態の制御プログラム管理システムによって制御プログラムの変更を行おうとすると、管理者は、冗長化された編集装置２００のそれぞれに対して承認情報の入力を行う必要がある。そこで、第５の実施形態では、複数の制御演算装置１００についての制御プログラムを変更する方法について説明する。
【００６４】
編集装置２００は、新たな制御プログラムを適用する制御演算装置１００を選択する機能を有する。そして、編集装置２００は、生成した新たな制御プログラムを、上記機能によって選択された全ての制御演算装置１００に送信する。他方、承認受付装置３００は、複数の制御演算装置１００から新たな制御プログラムの内容を示す情報を表示すると、全ての制御演算装置１００に対する変更の承認の可否を包括して示す承認情報を、編集装置２００に送信する。
【００６５】
編集装置２００は、承認受付装置３００から受信した承認情報を制御演算装置１００に転送する。そして、制御演算装置１００の承認情報受付部１０８は、編集装置２００から承認情報を受け付け、プログラム変更部１０９は、当該承認情報に基づいて制御プログラムの変更の可否を決定する。なお、冗長構成をとる制御演算装置１００は、それぞれ処理タイミングの同期を取っているので、プログラム記憶部１０１に記録された制御プログラムで同期が取れた時点で、全ての制御演算装置１００の処理が始まることとなる。
【００６６】
このように、本実施形態によれば、複数の制御演算装置１００に対して同時に制御プログラムの変更を行うことができる。これにより、制御プログラムの変更のための利用者の負担を低減させることができる。
【００６７】
以上、図面を参照してこの発明の一実施形態について詳しく説明してきたが、具体的な構成は上述のものに限られることはなく、この発明の要旨を逸脱しない範囲内において様々な設計変更等をすることが可能である。
【００６８】
上述の制御演算装置１００、編集装置２００及び承認受付装置３００は内部に、コンピュータシステムを有している。そして、上述した各処理部の動作は、プログラムの形式でコンピュータ読み取り可能な記録媒体に記憶されており、このプログラムをコンピュータが読み出して実行することによって、上記処理が行われる。ここでコンピュータ読み取り可能な記録媒体とは、磁気ディスク、光磁気ディスク、ＣＤ−ＲＯＭ、ＤＶＤ−ＲＯＭ、半導体メモリ等をいう。また、このコンピュータプログラムを通信回線によってコンピュータに配信し、この配信を受けたコンピュータが当該プログラムを実行するようにしても良い。
【００６９】
また、上記プログラムは、前述した機能の一部を実現するためのものであっても良い。さらに、前述した機能をコンピュータシステムにすでに記録されているプログラムとの組み合わせで実現できるもの、いわゆる差分ファイル（差分プログラム）であっても良い。
【符号の説明】
【００７０】
１００…制御演算装置  １０１…プログラム記憶部  １０２…プログラム実行部  １０３…利用者データベース  １０４…利用者側Ｉ／Ｆ部  １０５…一時記録部  １０６…バッファ  １０７…提示部  １０８…承認情報受付部  １０９…プログラム変更部  １１０…フィールド側Ｉ／Ｆ部  ２００…編集装置  ２０１…チェックアウト部  ２０２…編集部  ２０３…送信部  ２０４…チェックイン部  ３００…承認受付装置  ４００…設計・保守管理装置
【図１】
0005964077.tif 000002
【図２】
0005964077.tif 000003
【図３】
0005964077.tif 000004
【図４】
0005964077.tif 000005
【図５】
0005964077.tif 000006
【図６】
0005964077.tif 000007
【図７】
0005964077.tif 000008
【図８】
0005964077.tif 000009