(57)【要約】【課題】誤動作による入出力の誤出力を防ぐことを目的とする。【解決手段】プロセッサが相対的に安全性の高いモードで演算するための入出力値を第１の記憶領域に記憶し、プロセッサが相対的に安全性の低いモードで演算するための入出力値を第２の記憶領域に記憶し、安全性のモードに応じて、第１の記憶領域への転送，第１の記憶領域からの転送，第２の記憶領域への転送、或いは、第２の記憶領域からの転送を制限するように構成した。【選択図】図１
2007042086.tif 000002
【特許請求の範囲】
【請求項１】
プロセッサが相対的に安全要求度の高いモードで演算するための入出力値を記憶する第１の記憶領域と、プロセッサが相対的に安全要求度の低いモードで演算するための入出力値を記憶する第２の記憶領域を有し、安全要求度に関するモードに応じて、前記第１の記憶領域への転送，前記第１の記憶領域からの転送，前記第２の記憶領域への転送、或いは、前記第２の記憶領域からの転送を制限することを特徴とする入出力制御装置。
【請求項２】
請求項１において、プロセッサの動作モードに応じて、前記プロセッサが、前記第１の記憶領域及び前記第２の記憶領域のうちの一部の領域にアクセスすることを制限することを特徴とする入出力制御装置。
【請求項３】
請求項１において、転写可否設定レジスタを有し、前記転送の制限は前記転写可否設定レジスタの内容を参照してなされることを特徴とする入出力制御装置。
【請求項４】
請求項３において、状態レジスタを有し、前記安全要求度に関するモードは前記状態レジスタの内容を参照してなされることを特徴とする入出力制御装置。
【請求項５】
請求項４において、前記第１の記憶領域及び前記第２の記憶領域のそれぞれは、スロットに対して転送され、前記第１の記憶領域と前記第２の記憶領域の互いに関連付けられた記憶領域は、共に、前記スロットの所定の領域に転送されることを特徴とする入出力制御装置。
【請求項６】
請求項５において、前記第１の記憶領域及び前記第２の記憶領域は互いにオフセットを持って類似のアドレス構成を有することを特徴とする入出力制御装置。
【請求項７】
請求項６において、物理的なひとつのメモリに前記第１の記憶領域及び前記第２の記憶領域を構成することを特徴とする入出力制御装置。
【請求項８】
請求項１において、安全要求度に関するモードに応じて、前記第１の記憶領域及び前記第２の記憶領域のアクセス領域が制限され、該制限に対する不正アクセス時に異常報告する手段を持つことを特徴とする入出力制御装置。
【請求項９】
請求項１において、前記制限は、システム初期化時にソフトウェアのシステム構成情報により設定することを特徴とする入出力制御装置。
【請求項１０】
請求項１において、前記制限は、システム初期化時にハードウェアの入出力装置実装情報により設定することを特徴とする入出力制御装置。
【請求項１１】
プラント情報に基づいてプラント制御情報を演算するプロセッサと、前記プロセッサに入出力を行う入出力部を有するプラント制御装置において、前記入出力部は、プロセッサが相対的に安全要求度の高いモードで演算するための入出力値を記憶する第１の記憶領域と、プロセッサが相対的に安全要求度の低いモードで演算するための入出力値を記憶する第２の記憶領域と、安全要求度に関するモードに応じて、前記第１の記憶領域への転送，前記第１の記憶領域からの転送，前記第２の記憶領域への転送、或いは、前記第２の記憶領域からの転送を制限する制限部を有することを特徴とするプラント制御装置。
【請求項１２】
プロセッサが相対的に安全要求度の高いモードで演算するための入出力値を第１の記憶領域に記憶し、プロセッサが相対的に安全要求度の低いモードで演算するための入出力値を第２の記憶領域に記憶し、安全要求度に関するモードに応じて、前記第１の記憶領域への転送，前記第１の記憶領域からの転送，前記第２の記憶領域への転送、或いは、前記第２の記憶領域からの転送を制限することを特徴とする入出力制御方法。
【請求項１３】
プラントの制御情報にかかりプロセッサが相対的に安全要求度の高いモードで演算するための入出力値を第１の記憶領域に記憶し、プロセッサが相対的に安全要求度の低いモードで演算するための入出力値を第２の記憶領域に記憶し、安全要求度に関するモードに応じて、前記第１の記憶領域への転送，前記第１の記憶領域からの転送，前記第２の記憶領域への転送、或いは、前記第２の記憶領域からの転送を制限することを特徴とするプラント制御方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、入出力制御装置，入出力制御方法，プロセス制御装置及びプロセス制御方法に関し、特に、高信頼な制御を目的とする制御装置において、複数の入出力装置に対し出力値の誤入出力を防止することに好適なものに関し、より具体的には、入出力エリアを複数面持ちソフトウェアと連携した、誤入出力の防止を行うものに関する。
【背景技術】
【０００２】
機器の制御装置に適用される制御用計算機では、構成部品の故障や制御プログラムのバグ等によって危険な動作を引き起こさないよう、ハードウェア・ソフトウェア両面から適切な保護を施す必要がある。特に、プログラムおよびデータが格納されるメモリ、ないし入出力装置等の共有リソースを、上記の故障およびバグによる意図しないアクセスから保護するためのアクセス制御手段は、最も重要な機能の一つである。アクセス制御手段の実現に関して、制御プログラムのバグ等が原因でプロセッサがメモリ上の重要な領域に誤ってアクセスしないよう、アドレス変換機構を利用してメモリ領域の保護を実現する方式が知られている。これは、プロセッサに内蔵されているMemory Management Unit（ＭＭＵ）において、プログラムからのアクセスを許可するメモリ領域の情報のみを登録し、それ以外の領域へのアクセスに対してはアクセス違反例外を発生させるようにすることで、本来アクセスされるべきでないメモリ領域への誤アクセスを防ぐものである。
【０００３】
そのほか、特開平６−７５８６１号公報（特許文献１）のメモリアクセス保護装置において、バス上に出力されたアドレスを監視することにより、所定のメモリ領域に対するアクセスを制御する例が開示されている。
【０００４】
【特許文献１】特開平６−７５８６１号公報
【発明の開示】
【発明が解決しようとする課題】
【０００５】
要求される信頼性の要素には可用性と安全性がある。機器の制御では可用性が重要となり、機器の保護では安全性が重要となる。これら２要素の実現手段は二律背反している部分が多い。
【０００６】
可用性を担う部分装置と安全性を担う部分装置に分けた構成とすると、このために装置が複雑にあるだけでなく、運転・保守作業の重複や複雑化が人的要素の信頼低下を招くことがあった。
【０００７】
ここで、高い安全性としては、メモリないし入出力装置等の共有リソースに対して、プロセッサで実行される制御タスクから誤アクセスが発生する場合のみならず、入出力装置自体の故障等によりメモリないし他の入出力装置への誤アクセスが発生する場合までも考慮して、それらを抑止可能なように構成することが望まれる。
【０００８】
ＭＭＵのアドレス変換機能を利用するアクセス制御では、制御プログラムのバグ等によるプロセッサからの誤アクセスには有効であるが、しかし、プロセッサが介在せず、メモリとＰＩ／Ｏ入出力装置間のデータを転送する場合は、十分ではない。
【０００９】
また、アクセス制御情報テーブルを設け、動作モードおよびタスク単位での、特定アドレスのみへのアクセス保護を行う方式では、システム中に何十台と存在する入出力装置一つ一つに対するきめ細かな制御を行うような用途には、ハードウェアリソース増大や性能が低下する。
【００１０】
同一の制御用計算機上で、一般的な制御と、機器の保護を目的とする安全制御とを共存させることを考えた場合、各々のモードに対応する制御タスクと、それに対応する入出力装置がそれぞれ同一の計算機システム内に混在することになる。このとき、通常制御モードと安全制御モードが切り替わる際にプロセッサから共有リソースへのアクセスに対するアクセス制御状態を切り替える必要があるのはもちろんのことであるが、一般用と安全用の入出力装置が混在するシステムに対しては、個別の入出力装置単位での誤入出力保護が必要となる。
【００１１】
本発明の目的は、このような問題点或いは要求の少なくともひとつを解決することにある。
【課題を解決するための手段】
【００１２】
上記目的を達成するために、本発明では、プロセッサが相対的に安全要求度の高いモードで演算するための入出力値を第１の記憶領域に記憶し、プロセッサが相対的に安全要求度の低いモードで演算するための入出力値を第２の記憶領域に記憶し、安全要求度に関するモードに応じて、第１の記憶領域への転送，第１の記憶領域からの転送，第２の記憶領域への転送、或いは、第２の記憶領域からの転送を制限するように構成した。
【発明の効果】
【００１３】
本発明によれば、誤動作による入出力の誤出力を防ぐことが可能となる。
【発明を実施するための最良の形態】
【００１４】
以下、図面を参照し、本発明の実施例について説明する。
【００１５】
以降の実施例では入出力制御装置が有する制御モードとして一般制御モードと安全制御モードの２つを用いている。しかしながら、本発明の実施にあたっては、制御モードを前記の２つのみに限定する必要はない。
【００１６】
例えば、安全制御に関しては、制御対象への影響度によりいくつかの安全レベルを設け、そのそれぞれに対し制限モードを割り当ててもよい。
【００１７】
また、制御モードを分ける基準が必ず、安全性に基づく必要もない。例えば、目的の異なる複数の制御動作を行わせる場合、それぞれの目的に対して制御モードを割り当ててもよい。
【実施例１】
【００１８】
図１に、本発明における第１の実施例である入出力制御装置の全体構成を示す。
【００１９】
プロセッサ１は、Ｉ／Ｏバス６からの入力装置７２，７４からの入力情報を元に演算し、Ｉ／Ｏバス６の出力装置７１，７３を経由してプラント８に指示を与えるアプリケーションプログラムを実行する。
【００２０】
メモリ５は、入出力データを保持する。
【００２１】
入出力装置７は、プラント８の状態入力８２，８４と指示出力８１，８３を行う装置であり、一般制御用７１，７２と安全制御用７３，７４の二種類がある。
【００２２】
制御部３は、上記プロセッサ１，メモリ５，入出力装置７の間に存在し、それぞれ、プロセッサバス２，メモリバス４，Ｉ／Ｏバス６、で接続され、データの入出力の制御を行う。特に入出力装置７とメモリ５間は、初期設定情報に従い、入力装置７２，７４からの情報収集と、出力装置７１，７３に対してメモリ情報を転送する処理を自動で周期的に実施する「データ転写」機能を持つ。
【００２３】
制御部３内のプロセッサＩ／Ｆ部３１，メモリＩ／Ｆ部３３，入出力バスＩ／Ｆ部３２は、それぞれ制御部内部信号３６，３７，３８で接続され、プロセッサＩ／Ｆ部３１は、プロセッサ１からのアクセスを受け、メモリＩ／Ｆ部３３へ接続する。
【００２４】
同様に、入出力バスＩ／Ｆ部３２は、初期設定に従い、プログラムが介在せずに、定期的にメモリ５と入出力装置７間のデータ転写を行う機能を持つ（プロセッサから入出力装置への直接アクセス時も本Ｉ／Ｆ部を経由するのである）。
【００２５】
なお、メモリＩ／Ｆ部３３は、メモリ５に対するリード・ライト制御とモード対メモリエリア不一致検出３３１を行う。
【００２６】
基本的な動作の説明
プロセッサ１は、制御部３に対して初期設定を行う。
【００２７】
初期設定指示は、マイクロプログラムまたはアプリケーションプログラムにより、プロセッサ１からのデータ転写のパラメータを設定する。
【００２８】
アプリケーションプログラム起動後は、オペレーティングシステム（ＯＳ）にて動作モード（安全または一般）を動作モードレジスタ３１１に設定してから、アプリケーションプログラムを実行し、入出力処理を行う。
【００２９】
この際、アプリケーションプログラムによる、アクセス禁止対象となる入出力装置７への誤入出力を防止する。
【００３０】
以下、図２に従い、詳細の実施例を説明する。
【００３１】
図２は、図１の全体構成を、メモリを中心にし、より詳細を表わしたものである。
【００３２】
プロセッサ１は、制御部内の転写可否設定レジスタ３２１に対して事前に登録されているシステム構成情報に従い初期設定を行う。
【００３３】
転写可否設定レジスタ３２１には、スロット単位での入出力装置７に対するデータ送受信の可否を設定する。その後、データの転写周期を設定し、転写開始指示を行う。
【００３４】
ここで、転写可否設定レジスタ３２１の内容として、○が付されているのは、転写されることを意味している。また、×が付されているのは、転写されないことを意味している。例えば、一般Ｉ／Ｏエリア５１のアドレス番号１（一般出力）の出力先の転写可否設定レジスタ３２１には○が付されているが、これは、一般Ｉ／Ｏエリア５１のアドレス番号１（一般出力）にデータが書き込まれると、転写可否設定レジスタ３２１によって、書き込まれたデータが入出力装置７のスロット番号１（７１）（一般出力）に転写されることを意味する。同様に、例えば、一般Ｉ／Ｏエリア５１のアドレス番号７（安全出力）の出力先の転写可否設定レジスタ３２１には×が付されているが、これは、一般Ｉ／Ｏエリア５１のアドレス番号７（安全出力）にデータが書き込まれたとしても、転写可否設定レジスタ３２１によって、書き込まれたデータが入出力装置７のスロット番号７（７３）（一般出力）には転写されないことを意味する。
【００３５】
入出力装置７のスロット番号４（７２）（一般入力）と安全Ｉ／Ｏエリア５２のアドレス番号４（一般入力）の出力先を結ぶ転写可否設定レジスタ３２１には○が付されており、また、入出力装置７のスロット番号１０（７４）（安全入力）と一般Ｉ／Ｏエリア５１のアドレス番号１０（安全入力）の出力先を結ぶ転写可否設定レジスタ３２１には○が付されているが、これらは、初期設定によって、それぞれ、×とすることが可能である。すなわち、初期設定によって、入出力装置７のスロット番号４（７２）（一般入力）に書き込まれたデータを安全Ｉ／Ｏエリア５２のアドレス番号４（一般入力）に転送せず、また、入出力装置７のスロット番号１０（７４）（安全入力）に書き込まれたデータを一般Ｉ／Ｏエリア５１のアドレス番号１０（安全入力）に転送しないように、転写可否設定レジスタ３２１を設定することが可能である。
【００３６】
転写開始指示を受けた後は、入出力バスＩ／Ｆ部３２が自動で、設定周期毎に、メモリ５から入出力装置７間のデータ送受信を行う。
【００３７】
メモリ５は一般Ｉ／Ｏエリア５１と安全Ｉ／Ｏエリア５２の２面を持ち、１つの入出力装置に対し２面の入出力エリアを持つ。データの出力は動作モードレジスタ３１１に従いそれぞれに対応したエリアから出力を行う。一般出力装置７１に対しては一般Ｉ／Ｏエリア５１から行い、安全出力装置７３に対しては安全Ｉ／Ｏエリア５２から出力を行う。
【００３８】
アプリケーションプログラム動作時には、ＯＳは、一般制御モードまたは安全制御モード、いずれかの動作モードを制御モードレジスタ３１１に設定してから、アプリケーションプログラムを実行しアプリケーションプログラムは入出力処理１００を行う。
【００３９】
アプリケーションプログラムは、メモリ５内に存在する入力データを参照し、制御演算を実施する。また、制御演算した出力データをメモリ５上のデータ出力エリアへ書き込み（１００，１０１）を行う。
【００４０】
出力エリアへ書き込まれたデータが、データ転写６０〜６９により、出力装置へ送信されプラントへの出力、また、プラントからのデータ入力を行う。
【００４１】
モード対メモリエリア不一致検出部３３１は設定された動作モードレジスタの内容361に従い、入出力の範囲を限定する。モード対メモリエリア不一致検出部３３１にて許可されたアクセス１０１のみがメモリ５へのアクセスが可能となる。
【００４２】
図２の例では、出力は、各々、一般制御モード時は一般出力２００のみ、安全制御モード時は安全出力２０６のみを可能としている。一般モードでの安全出力２０２、安全モードでの一般出力２０４は不可。
【００４３】
従って、一般モードで動作しているときに、一般Ｉ／Ｏエリア５１内の安全出力への出力指示２０２（メモリ書き込み）があっても、安全出力装置７３へのデータ転写６６は行わない。
【００４４】
このとき、出力を許可されていないエリアへの出力があったことをデータ転写周期とは別にエリアのチェックを行い、出力を許可されていないメモリへの書き込みを検出し、エラー報告３８を行う（エラー割り込み２１，状態レジスタ３１２へ反映等）。
【００４５】
また、一般モードで動作しているとき、安全Ｉ／Ｏエリア５２への出力指示２０４，
２０６（メモリ書き込み）という不許可部へのアクセス指示があった場合、モード対メモリエリア不一致検出部３３１にて現在の動作モードとアクセスアドレスを比較し、安全Ｉ／Ｏエリアへの出力指示２０６（メモリ書き込み）時には、エラー報告３６２を行う（割り込み２１，状態レジスタ３１２へ反映等）。
【００４６】
これにより、アプリケーションプログラムによる、誤出力を防止・検出する。
【００４７】
また、この例では、入力データは、常にメモリの両モードのエリア（２箇所）に書き込む２０１，２０５，２０３，２０７ことを可能としている。
【００４８】
これは、安全入力装置７４のデータを一般Ｉ／Ｏエリア５１から読み込み２０３を行うといった、誤アクセスの場合であっても、不正な入力データを受信し、誤った演算を行わないようにするための処置である。この場合も、不許可部へのアクセスに対するエラー報告３６２は行う（割り込み２１，状態レジスタ３１２へ反映等）。
【００４９】
以上の動作概要を図３に表で示す。
【００５０】
プロセッサ１が一般モードで演算を行う場合は、一般入力と一般出力が有効となる。
【００５１】
従って、一般モードで、安全入力や安全出力を行うと異常動作としてエラー報告３８する。
【００５２】
同様に、プロセッサ１が安全モードで演算を行う場合は、安全入力と安全出力のみが有効となる。
【００５３】
従って、安全モードで、一般入力や一般出力を行うと異常動作としてエラー報告３８する。
【００５４】
さらに詳細に説明する。図３において、例えば、一般モードでは、プロセッサ１は一般Ｉ／Ｏエリア５１のアドレス番号１（一般出力）に書き込むことができ、この場合、書き込まれたデータは該設定値を出力することとなる。同様に、一般モードでは、プロセッサ１は一般Ｉ／Ｏエリア５１のアドレス番号４（一般入力）に書き込まれたデータを読み込むことができ、この場合、書き込まれたデータはプロセッサ１に読み込まれることとなる。
【００５５】
図３において、一般Ｉ／Ｏエリア５１において、動作モードが一般モードである場合の安全入力は「△（設定により読み込み及びアラーム報告［３８］）」と記されているが、これは、初期設定により、読み込み及びアラーム報告［３８］のいずれかが設定できることを示している。
【００５６】
すなわち、図２に示すように、入出力装置７のスロット番号１０（７４）（安全入力）と一般Ｉ／Ｏエリア５１のアドレス番号１０（安全入力）の出力先を結ぶ転写可否設定レジスタ３２１に○が付されている場合は、「○（入力値を読み込み）」と設定し、一方、入出力装置７のスロット番号１０（７４）（安全入力）と一般Ｉ／Ｏエリア５１のアドレス番号１０（安全入力）の出力先を結ぶ転写可否設定レジスタ３２１に×が付されている場合は、「×（出力不可，アラーム報告［３８］）」と設定することを示している。
【００５７】
同様に、安全Ｉ／Ｏエリア５２において、動作モードが安全モードである場合の一般入力は「△（設定により読み込み及びアラーム報告［３８］）」と記されているが、これは、初期設定により、読み込み及びアラーム報告［３８］のいずれかが設定できることを示している。
【００５８】
すなわち、図２に示すように、入出力装置７のスロット番号１０（７４）（安全入力）と一般Ｉ／Ｏエリア５１のアドレス番号１０（安全入力）の出力先を結ぶ転写可否設定レジスタ３２１に○付されている場合は、「○（入力値を読み込み）」と設定し、一方、入出力装置７のスロット番号１０（７４）（安全入力）と一般Ｉ／Ｏエリア５１のアドレス番号１０（安全入力）の出力先を結ぶ転写可否設定レジスタ３２１に×が付されている場合は、「×（出力不可，アラーム報告［３８］）」と設定することを示している。
【００５９】
図２の例では、プロセッサ１が誤って、一般モードで安全入力したり、安全モードで一般入力した場合でも、データは正常な値を読み込めるようにしている。
【００６０】
これは、エラー報告３８により割り込み２１が発生するまでに、ある程度の時間が必要であり、その間プロセッサ１は動きつづけるため、誤ったデータを返すことによる誤演算を防止する為の処置である。
【００６１】
ここで、新たな制限モードとして「△」を定義することで、アクセスが来たらデータを返すと共に、エラー報告３８をオンすることが可能となる。
【００６２】
なお、より可用性を向上させた使い方としては、一般モード時のみモード対メモリエリア不一致検出部３３１で異常としてアラーム３６２を報告し、安全モード時は一般Ｉ／Ｏエリア５１，安全Ｉ／Ｏエリア５２共にアクセス可能とすることも可能である。
【００６３】
本方式を用いることにより、メモリエリア５１，５２を分けられるので、シンプルな構成による確実な保護が可能となる。
【００６４】
ソフトウェアが申告した動作モードとアクセスアドレスが一致している場合のみ正常と判断することで、システムの正当性を確保することができる。
【実施例２】
【００６５】
実施例１において、ＯＳにて制御モードを指示し、プロセッサＩＦ部３１のモード対メモリエリア不一致検出部３３１にて判定を実施している箇所を、プロセッサのＭＭＵ機能を用いて、制御モードに合わせＭＭＵ情報を変更し、書き込み禁止・解除を切り替え、安全Ｉ／Ｏエリアへのアクセスプロテクションを行うことも可能である。
【実施例３】
【００６６】
物理的なメモリを１面とし、制御部内の動作モードレジスタに従い、ハード内でマッピング変更分のオフセットを自動付加することで同様の機能を実現する。
【実施例４】
【００６７】
プロセッサ１から転写可否設定レジスタ３２１への初期設定において、事前に登録されているシステム構成情報に従い設定を行うのではなく、電源投入直後のシステム初期化時に、実際に接続されている入出力装置の情報を読み込み、実装されているスロットと装置種別により自動で設定することも可能である。
【００６８】
以上の通り、各実施例では、入出力装置に入出力エリアを多重に設け、各々ソフトウェアが安全モードで動作する場合もしくは一般モードで動作する場合専用とし、かつ、初期化時にプロセス入出力装置に対して入出力実行可能レベルを設定することにより、各入出力装置の入出力に対しプログラムからのアクセス制限を行うことが出来る。
【００６９】
この結果、各プログラム動作モードに応じた入出力プロテクションが可能となり、プログラムの誤動作による入出力装置の誤出力を防ぐことが可能となる。
【００７０】
また、この結果、プログラマは入出力を行うアドレスのオフセットを変えるだけで安全入出力データへのアクセスが可能となりプログラムの変更も容易である。
【００７１】
なお、実施例は、直接プロセッサから入出力装置へアクセスするのと比較した場合に、より実現が難しい転写方式を前提に記載した。直接アクセスする方式でも本発明を用いることにより、同様のプロテクションが可能である。
【図面の簡単な説明】
【００７２】
【図１】本発明における第１の実施例である入出力制御装置の全体構成。
【図２】メモリを中心に、詳細構成を表わした図。
【図３】動作概要を表わした表。
【符号の説明】
【００７３】
３…制御部、５…メモリ、７…入出力装置、３２１…転写可否設定レジスタ。
【図１】
2007042086.tif 000003
【図２】
2007042086.tif 000004
【図３】
2007042086.tif 000005