(57)【要約】【課題】  本発明は、構成した回路を使用して、診断を実行し、起動時や再起動時の診断に必要とされる時間を短縮し、信頼性を確保した制御装置を提供する。【解決手段】  本発明の制御装置は、記憶部と、再構成可能なＦＰＧＡ（フィールドプログラマブルゲートアレイ）と、を有し、ＦＰＧＡは、起動時や再起動時に起動制御部を構成し、起動制御部は、ＦＰＧＡに、診断部を構成し、診断部が記憶部の診断を実行することを特徴とする。【選択図】  図１
2020173692.tif 000002
【特許請求の範囲】
【請求項１】
記憶部と、再構成可能なフィールドプログラマブルゲートアレイと、を有し、前記フィールドプログラマブルゲートアレイは、起動時に起動制御部を構成し、前記起動制御部は、前記フィールドプログラマブルゲートアレイに、診断部を構成し、前記診断部が前記記憶部の診断を実行することを特徴とする制御装置。
【請求項２】
前記起動制御部は、前記診断部を生成するためのビットストリームデータを格納するデータバッファと、前記ビットストリームデータの出力を制御する出力制御部と、を有することを特徴とする請求項１に記載する制御装置。
【請求項３】
前記診断部は、前記記憶部の診断対象アドレスを設定する診断領域レジスタと、前記診断領域レジスタが設定する診断対象アドレスに基づいて、診断データを生成する診断データ生成部と、前記記憶部へライトする診断ライトデータを格納する診断ライトバッファと、前記記憶部からリードした診断リードデータを格納する診断リードバッファと、前記診断ライトデータと前記診断リードデータとを比較する比較部と、を有することを特徴とする請求項１に記載する制御装置。
【請求項４】
前記記憶部は、デュアルポートメモリであり、前記起動制御部は、診断転送部を構成し、前記診断転送部は、前記記憶部の診断を実行することを特徴とする請求項１に記載する制御装置。
【請求項５】
前記診断部は、第一の診断領域レジスタと、第二の診断領域レジスタと、を有し、前記第一の診断領域レジスタと前記第二の診断領域レジスタとから優先領域を判定し、前記診断データ生成部に、その判定結果を出力する優先領域判定部と、を有することを特徴とする請求項３に記載する制御装置。
【請求項６】
前記記憶部は、複数の記憶部であり、前記起動制御部は、並列診断部を構成し、前記並列診断部は、前記複数の記憶部の診断を実行することを特徴とする請求項１に記載する制御装置。
【請求項７】
記憶部の診断を実行する制御方法であって、
起動時に、再構成可能なフィールドプログラマブルゲートアレイに、起動制御部を構成し、前記起動制御部は、前記フィールドプログラマブルゲートアレイに、診断部を構成し、前記診断部が前記記憶部の診断を実行することを特徴とする制御方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、制御装置及び制御方法に関する。
【背景技術】
【０００２】
各種の産業分野では、制御装置を搭載するコントローラが使用され、制御システムが構築される。こうした制御システムにおいて、コントローラに搭載される制御装置は、電流、温度、圧力などの状態量をフィールド機器から取得し、こうした状態量を計測しながら、制御データ（信号）を操作機器へ出力し、操作機器をリアルタイムに制御する。
【０００３】
これにより、流量の調節や状態量が異常になった場合の緊急停止などの所望の動作を実行し、利便性と共に、安全性や信頼性を担保する。
【０００４】
近年、こうした産業分野では、より良い制御データを操作機器へ出力するため、現実世界に分散配置された大量のフィールド機器から稼働データ（状態量）を収集（計測）し、仮想世界で稼働データを分析し、現実世界へフィードバックするＩｏＴ（Internet of Things）への取り組みが実施されている。
【０００５】
このように制御システムに対して、ＩｏＴへの取り組みを実施すると、従来は扱っていなかった稼働データを可視化し、分析し、活用することができ、保守サービスなど、新たな価値を創出することができる。
【０００６】
一方、制御システムに対して、ＩｏＴへの取り組みを実施するためには、フィールド機器から取得する大量の稼動データを、制御システムに実装されるアルゴリズムやＡＩ（Artificial Intelligence）を使用し、処理する必要がある。
【０００７】
このため、制御装置には、高性能なＣＰＵ（Central Processing Unit）、ＯＳ(Operating System)、アプリケーションプログラムなどが搭載され、動的に回路構成を変更することができる（再構成可能な）ＦＰＧＡ(Field Programmable Gate Array)が使用される。
【０００８】
この結果、大容量の記憶部（メモリ）とＦＰＧＡとの初期化に伴い、制御システムの起動に長い時間を必要とし、制御システムに求められる信頼性の確保が困難になっている。
【０００９】
こうした本技術分野の背景技術として、特開２０１５−１０６７５１号公報（特許文献１）がある。この特許文献１には、動的に回路の少なくとも一部が再構成されるＦＰＧＡと、ＦＰＧＡにおいて回路の少なくとも一部を再構成する回路構成情報を記憶するＲＯＭと、ＲＯＭに記憶された回路構成情報の複製を記憶する、ＲＯＭよりも高速に読み出し可能なＲＡＭを有する画像処理装置が記載されている。そして、実行するジョブに応じてＦＰＧＡの少なくとも一部を、回路構成情報を使用して、ジョブで必要な処理を実行可能な回路に再構成すると共に、ＲＡＭを使用した実時間処理が実行中でないときはＲＡＭに記憶されている回路構成情報を使用してＦＰＧＡを再構成し、ＲＡＭを使用した実時間処理が実行中であるときはＲＯＭに記憶されている回路構成情報を使用してＦＰＧＡを再構成することが記載されている（要約参照）。
【００１０】
また、こうした本技術分野の背景技術として、特開２０１８−１０９９０７号公報（特許文献２）がある。この特許文献２には、ＣＰＵを内蔵したＦＰＧＡの再起動時間を短縮するため、ＦＰＧＡのコンフィグレーション装置は、ＦＰＧＡに起動用回路を構成するための初期コンフィグレーションデータを保持する第１メモリと、ＦＰＧＡにメイン回路を構成するためのメイン回路用コンフィグレーションデータを保持する第２メモリと、稼働中のＦＰＧＡの状態に基づいてメイン回路用コンフィグレーションデータを更新するデータ更新部とを有し、ＦＰＧＡの電源投入時に初期コンフィグレーションデータをＦＰＧＡに提供し、起動用回路の動作に応答してメイン回路用コンフィグレーションデータを提供することが記載されている（要約参照）。
【先行技術文献】
【特許文献】
【００１１】
【特許文献１】特開２０１５−１０６７５１号公報
【特許文献２】特開２０１８−１０９９０７号公報
【発明の概要】
【発明が解決しようとする課題】
【００１２】
特許文献１には、実行するジョブに応じてＦＰＧＡの少なくとも一部を、ジョブで必要な処理を実行可能な回路に再構成する技術が記載されている。また、特許文献２には、ＣＰＵを内蔵したＦＰＧＡの再起動時間を短縮する技術が記載されている。
【００１３】
しかし、特許文献１及び特許文献２には、構成した回路を使用して、診断を実行することは記載されていない。また、特許文献１及び特許文献２には、例えば、ＯＳやアプリケーションプログラムを制御装置に適用する場合、起動時や再起動時の診断に所定の時間を必要とするため、制御装置としての信頼性の確保が困難になるという課題については記載されていない。
【００１４】
そこで、本発明は、構成した回路を使用して、診断を実行し、起動時や再起動時の診断に必要とされる時間を短縮し、信頼性を確保した制御装置及び制御方法を提供する。
【課題を解決するための手段】
【００１５】
上記課題を解決するため、本発明の制御装置は、記憶部と、再構成可能なＦＰＧＡ（フィールドプログラマブルゲートアレイ）と、を有し、ＦＰＧＡは、起動時や再起動時に起動制御部を構成し、起動制御部は、ＦＰＧＡに、診断部を構成し、診断部が記憶部の診断を実行することを特徴とする。
【００１６】
また、本発明の制御方法は、記憶部の診断を実行する制御方法であって、起動時や再起動時に、再構成可能なＦＰＧＡに、起動制御部を構成し、起動制御部は、ＦＰＧＡに、診断部を構成し、診断部が前記記憶部の診断を実行することを特徴とする。
【発明の効果】
【００１７】
本発明によれば、構成した回路を使用して、診断を実行し、起動時や再起動時の診断に必要とされる時間を短縮し、信頼性を確保した制御装置及び制御方法を提供することができる。
【００１８】
なお、上記した以外の課題、構成及び効果は、下記の実施例の説明により明らかにされる。
【図面の簡単な説明】
【００１９】
【図１】実施例１に係る制御装置１００を説明するブロック図である。
【図２】実施例１に係る起動制御部１１を説明するブロック図である。
【図３】実施例１に係る診断部１２を説明するブロック図である。
【図４】実施例１に係る制御方法を説明するフローチャート図である。
【図５】制御装置が起動するまでの流れを説明するタイミングチャート図である。
【図６】実施例１に係る制御装置が起動するまでの流れを説明するタイミングチャート図である。
【図７】実施例２に係る制御装置２００を説明するブロック図である。
【図８】実施例２に係る診断転送部１４を説明するブロック図である。
【図９】実施例２に係る制御装置が起動するまでの流れを説明するタイミングチャート図である。
【図１０】実施例３に係る制御装置３００を説明するブロック図である。
【図１１】実施例３に係る診断部１６を説明するブロック図である。
【図１２】実施例４に係る制御装置４００を説明するブロック図である。
【図１３】実施例４に係る並列診断部１７を説明するブロック図である。
【図１４】本実施例に係る制御装置をプラントＰ１に適用した場合を説明する説明図である。
【図１５】本実施例に係る制御装置をプラントＰ２に適用した場合を説明する説明図である。
【発明を実施するための形態】
【００２０】
以下、図面を参照して、本発明の実施例を説明する。なお、明細書及び図面において、実質的に同一の機能又は構成を有する要素については、同一の符号を付し、説明が重複する場合には、その説明を省略する場合がある。
【実施例１】
【００２１】
まず、実施例１に係る制御装置１００を説明する。
【００２２】
図１は、実施例１に係る制御装置１００を説明するブロック図である。
【００２３】
実施例１に記載する制御装置１００は、ＦＰＧＡ（フィールドプログラマブルゲートアレイ）１０１、ＣＰＵ（中央演算処理装置）２、メモリコントローラ３、記憶部であるメモリ４、及び、不揮発メモリ５を有する。
【００２４】
メモリコントローラ３は、ＣＰＵ２、メモリ４、ＦＰＧＡ１０１の動的部分再構成部１８１と、それぞれ接続する。ＣＰＵ２は、ＯＳやアプリケーションプログラムを動作させるための各種の演算や制御を実行する。不揮発メモリ５は、ＦＰＧＡ１０１が動作するために必要なデータ等を格納する。メモリ４は、ＯＳやアプリケーションプログラムを動作させるための一時的なデータ等を格納する。メモリコントローラ３は、メモリ４にデータ等を一時的に格納するための制御を実行する。
【００２５】
ＦＰＧＡ１０１は、起動制御部１１と動的部分再構成部１８１とを有する。起動制御部１１は、不揮発メモリ５、動的部分再構成部１８１と、それぞれ接続する。動的部分再構成部１８１は、起動制御部１１からの指示に基づき回路を構成する部分である。
【００２６】
起動制御部１１は、不揮発メモリ５に格納されているビットストリームデータを読み込み、ＦＰＧＡ１０１用の回路を構成する機能を有するものであり、起動制御部１１は、制御装置１００の設計時に構成が決定され、実装される。
【００２７】
本実施例では、動的部分再構成部１８１は、回路である診断部１２を構成し、診断部１２から制御装置１００の外部に、診断結果９１が出力される。
【００２８】
このように、本実施例に記載する制御装置１００は、起動制御部１１と動的部分再構成部１８１とを有するＦＰＧＡ１０１を有し、ＦＰＧＡ１０１は、起動時（以下「再起動時」も含む）に、起動制御部１１を構成し、起動制御部１１が、ＦＰＧＡ１０１の動的部分再構成部１８１に、診断部１２を構成し、診断部１２がメモリ４の診断を実行する。
【００２９】
そして、本実施例に記載する制御装置１００は、メモリ４とＦＰＧＡ１０１とを有し、ＦＰＧＡ１０１は、起動時に、ＦＰＧＡ１０１に構成する起動制御部１１と起動制御部１１が、ＦＰＧＡ１０１の動的部分再構成部１８１に構成する診断部１２とを有し、診断部１２がメモリ４の診断を実行する。
【００３０】
つまり、本実施例に記載する、ＣＰＵ２とメモリ４とを搭載し、ＯＳやアプリケーションプログラムを動作させる制御装置１００は、信頼性を確保するため、メモリ４の診断を実行する必要がある場合であっても、メモリ４の診断の実行に長い時間を必要とせず、高速にＯＳやアプリケーションプログラムを動作させることができ、制御装置１００の起動時間を短縮することができる。
【００３１】
これにより、例えば、プラントなどのシステムの起動時間を短縮し、信頼性を確保することができる。
【００３２】
次に、実施例１に係る起動制御部１１を説明する。
【００３３】
図２は、実施例１に係る起動制御部１１を説明するブロック図である。
【００３４】
起動制御部１１は、状態遷移部２０、制御信号生成部２１、マルチプレクサ２２、データバッファ２３、及び、出力制御部２４を有し、制御装置１００の設計時に実装される。
【００３５】
制御装置１００の電源がＯＮになると、状態遷移部２０は、診断部１２を生成する指示信号（制御信号）を出力する状態（モード）になる。制御信号生成部２１は、診断部１２を生成する制御信号と診断結果を指示する制御信号との２つの制御信号を、マルチプレクサ２２に出力する。
【００３６】
マルチプレクサ２２は、状態遷移部２０が出力する制御信号（診断部１２を生成する制御信号）に基づいて、制御信号生成部２１が出力する２つの制御信号のうち、診断部１２を生成する制御信号を、回路生成制御信号７０として、不揮発メモリ５に出力する。
【００３７】
データバッファ２３は、不揮発メモリ５が出力する、診断部１２を生成するためのビットストリームデータ７１を、格納する。データバッファ２３に格納されるビットストリームデータ７１は、出力制御部２４を介して、ビットストリームデータ７２として、動的部分再構成部１８１に出力される。
【００３８】
なお、動的部分再構成部１８１は、ＦＰＧＡ１０１のコンフィギュレーションＲＡＭ（Random Access Memory）で構成される。
【００３９】
つまり、起動制御部１１は、診断部１２を生成するためのビットストリームデータ７１を格納するデータバッファ２３と、ビットストリームデータ７１の出力を制御する出力制御部２４と、を有する。
【００４０】
なお、状態遷移部２０は、動的部分再構成部１８１が出力する診断終了信号７３が入力される。ここで、診断終了信号７３は、メモリ診断が終了していない場合の値は「０」、メモリ診断が終了している場合の値は「１」となる。
【００４１】
出力制御部２４は、診断終了信号７３の値が「１」で無い場合は、つまり、メモリ診断が終了していない場合は、データバッファ２３に格納されるビットストリームデータ７１を、順次、ビットストリームデータ７２として、動的部分再構成部１８１に出力する。
【００４２】
これにより、本実施例に記載する制御装置１００（ＦＰＧＡ１０１）は、動的部分再構成部１８１に、診断部１２を構成する。
【００４３】
メモリ４の診断が終了すると、診断終了を指示する指示信号（制御信号）を出力する状態（モード）になる。
【００４４】
次に、実施例１に係る診断部１２を説明する。
【００４５】
図３は、実施例１に係る診断部１２を説明するブロック図である。
【００４６】
診断部１２は、診断領域レジスタ３０、診断データ生成部３２、診断ライトバッファ３４、診断リードバッファ３５、及び、比較部３３を有する。
【００４７】
診断領域レジスタ３０には、予め、メモリ４の診断対象となるアドレス（例えば、番地や範囲のようなアドレス情報であり、以下「診断対象アドレス」と称して説明する場合がる）が設定される。このアドレス情報（診断対象アドレス）は、診断アドレス７６として、診断データ生成部３２に入力される。
【００４８】
なお、診断領域レジスタ３０には、制御装置１００の設計時に、固定値としてアドレス情報（診断対象アドレス）が設定され、格納される。また、ＣＰＵ２で動作するソフトウェアから、メモリコントローラ３とメモリ４とを共有して設定し、格納することもできる。
【００４９】
診断データ生成部３２は、制御装置１００の設計時に、その動作が設定され、診断領域レジスタ３０が設定する診断対象アドレスに基づいて、診断アドレス７６の範囲を対象に、メモリ４に対して診断を実行するデータ値（診断データ）を生成し、診断ライトバッファ３４に出力する。
【００５０】
ここで診断を実行するデータ値（診断データ）としては、データの全ビットの値が「０」であったり、データの全ビットの値が「１」であったり、そのほか任意の値を設定したりすることができる。なお、制御装置１００の設計時に、診断で使用するデータ値を選択しておいてもよい。
【００５１】
診断ライトバッファ３４は、診断データ生成部３２が出力するデータ値を格納し、このデータ値を、診断ライトデータ７４として、メモリコントローラ３に出力する。診断ライトデータ７４は、メモリ４へライトされる。
【００５２】
なお、メモリコントローラ３は、入力したデータ値を、メモリ４の診断対象アドレスに、ライトする（書く）。ライトした後、ライトしたメモリ４の診断対象アドレスから、データ値をリードする（読む）。リードした後、リードしたデータ値を、診断リードデータ７５として、診断リードバッファ３５に出力する。つまり、メモリコントローラ３は、メモリ４に対して、メモリ４の診断対象アドレスに、データ値を、ライトし、リードする。
【００５３】
診断リードバッファ３５は、メモリコントローラ３が出力する（メモリ４からリードした）データ値を、診断リードデータ７５として、格納する。
【００５４】
つまり、診断部１２は、データ値を、診断ライトデータ７４としてメモリコントローラ３に出力し、診断リードデータ７５としてメモリコントローラ３から入力する。
【００５５】
このように、データ値は、診断ライトバッファ３４から、メモリコントローラ３を経由して出力され、メモリ４の診断対象アドレスにライトされ、ライトされたメモリ４の診断対象アドレスからリードされ、診断リードバッファ３５に、メモリコントローラ３を経由して出力される。
【００５６】
そして、比較部３３では、診断リードバッファ３５に格納されるリード値（診断リードデータ７５であるデータ値）と、診断ライトバッファ３４に格納されるライト値（診断ライトデータ７４であるデータ値）と、を比較（診断）する。
【００５７】
ライト値とリード値とが、一致している場合は、メモリ４の診断対象アドレスは、正常に動作していることになる。しかし、ライト値とリード値とが、一致していない場合（不一致である場合）は、メモリ４の診断対象アドレスは、正常に動作していないことになる。
【００５８】
例えば、正常に動作している場合には、診断結果９１の値（信号）は「０」を、正常に動作していない場合には、診断結果９１の値（信号）は「１」を出力する。
【００５９】
次に、実施例１に係る制御方法を説明する。
【００６０】
本実施例に記載する制御方法は、メモリ４の診断を実行するものであって、起動時に、再構成可能なＦＰＧＡ１０１に、起動制御部１１を構成し、起動制御部１１は、ＦＰＧＡ１０１に、診断部１２を構成し、診断部１２がメモリ４の診断を実行するものである。
【００６１】
図４は、実施例１に係る制御方法を説明するフローチャート図である。
【００６２】
ステップＳ０１は、制御装置１００の電源がＯＮになるステップである。
【００６３】
ステップＳ０２は、起動制御部１１が、動的部分再構成部１８１に、診断部１２を構成するステップである。
【００６４】
ステップＳ０３は、メモリ診断アドレス（診断対象アドレス）をＯＳ用領域と比較するステップである。例えば、このＯＳ用領域は、診断部１２が有する診断領域レジスタ３０に格納される、ＯＳが使用するメモリ領域の開始アドレスや終了アドレスなどである。つまり、比較部３３にて、ＯＳ用領域について、メモリ診断アドレスのライト値とリード値とを比較する。
【００６５】
ステップＳ０４は、ＯＳ用領域のメモリ診断が終了したか否かを判定するステップである。例えば、メモリ診断アドレスが、ＯＳ用領域の終了アドレスを越えているか否かを判定する。超えていない場合（ＮＯ）は、メモリ診断が終了していないと判定し、ステップＳ０５に遷移する。超えている場合（ＹＥＳ）は、メモリ診断が終了していると判定し、ステップＳ０７に遷移する。
【００６６】
ステップＳ０５は、メモリ診断を実行する。
【００６７】
ステップＳ０６は、メモリ診断アドレスを増加させ、ステップＳ０３に遷移する。
【００６８】
ステップＳ０７は、メモリ診断アドレス（診断対象アドレス）をアプリケーション用領域と比較するステップである。例えば、アプリケーション用領域は、診断部１２が有する診断領域レジスタ３０に格納される、アプリケーションプログラムが使用するメモリ領域の開始アドレスや終了アドレスなどである。つまり、比較部３３にて、アプリケーション用領域について、メモリ診断アドレスのライト値とリード値とを比較する。
【００６９】
ステップＳ０８は、アプリケーション用領域のメモリ診断が終了したか否かを判定するステップである。例えば、メモリ診断アドレスが、アプリケーション用領域の終了アドレスを越えているか否か判定する。
超えていない場合（ＮＯ）は、メモリ診断が終了していないと判定し、ステップＳ０９に遷移する。超えている場合（ＹＥＳ）は、メモリ診断が終了していると判定し、ステップＳ１１に遷移する。
【００７０】
ステップＳ０９は、メモリ診断を実行する。
【００７１】
ステップＳ１０は、メモリ診断アドレスを増加させ、ステップＳ０７に遷移する。
【００７２】
ステップＳ１１は、ＯＳデータをメモリ４へ転送する。
【００７３】
ステップＳ１２は、ＯＳを起動する。
【００７４】
ステップＳ１３は、アプリケーションデータをメモリ４へ転送する。
【００７５】
ステップＳ１４は、アプリケーションプログラムを起動する。
【００７６】
これらの一連のステップを経て、本実施例に記載する制御装置１００は起動する。なお、ステップＳ１１が終了した時点でＯＳは起動することができ、ステップＳ１３が終了した時点でアプリケーションプログラムは起動することができる。
【００７７】
次に、タイミングチャート図を使用して、制御装置が起動するまでの流れを説明する。
【００７８】
図５は、制御装置が起動するまでの流れを説明するタイミングチャート図である。
【００７９】
まず、本実施例に記載するＦＰＧＡ１０１を使用しない場合の制御装置（比較例）が起動するまでの流れを説明する。この制御装置（比較例）は、一連のステップを、ＣＰＵによって処理する。つまり、この制御装置（比較例）は、ＣＰＵによって起動処理を実行する。なお、図５において、横軸は、時刻ｔを表現する。
【００８０】
制御装置（比較例）の電源がＯＮになり、ＣＰＵはＯＳ用領域とアプリケーション用領域とのメモリ診断を実行する。つまり、ＣＰＵ（ソフトウェア）によって、逐次的にメモリ診断が実行される。
【００８１】
これらメモリ診断が終了した後、ＯＳデータをメモリへ転送し、その後、アプリケーションデータをメモリへ転送する。システムの起動に必要なこれら一連のステップが終了した後、つまり、これらデータのメモリへの転送が終了した後、ＯＳを起動し、その後、アプリケーションプログラムを起動する。
【００８２】
図５において、電源ＯＮからメモリ診断が終了するまでの時間をｔｍ、電源ＯＮからＯＳ起動が終了するまでの時間をｔｏ、電源ＯＮからアプリケーション起動が終了するまでの時間をｔａとする。一般的に、ＯＳやアプリケーションプログラムが使用するメモリ領域のサイズは大きく、メモリ領域の診断時間ｔｍに多くの時間を必要とする傾向がある。
【００８３】
図６は、実施例１に係る制御装置が起動するまでの流れを説明するタイミングチャート図である。
【００８４】
次に、本実施例に記載するＦＰＧＡ１０１を使用する場合の制御装置１００が起動するまでの流れを説明する。
【００８５】
この制御装置１００は、電源ＯＮ、ＯＳ起動やアプリケーションプログラム起動は、ＣＰＵ２によって処理される。しかし、メモリ領域の診断処理とメモリ領域へのデータの転送処理とは、ＦＰＧＡ１０１によって処理される。つまり、制御装置１００は、ＣＰＵ２及びＦＰＧＡ１０１によって、起動処理が実行される。なお、図６において、横軸は、時刻ｔを表現する。
【００８６】
制御装置１００の電源がＯＮになり、ＦＰＧＡ１０１の動的部分再構成部１８１に、診断部１２が構成される。この診断部１２によって、ＯＳ用領域とアプリケーション用領域とのメモリ診断を実行する。これらメモリ診断が終了した後、ＯＳデータをメモリ４へ転送し、その後、アプリケーションデータをメモリ４へ転送する。
【００８７】
そして、ＯＳデータをメモリ４へ転送した後に、ＯＳを起動する。また、アプリケーションデータをメモリ４へ転送した後に、アプリケーションプログラムを起動する。
【００８８】
図６において、電源ＯＮからメモリ診断が終了するまでの時間をｔｍ、電源ＯＮからＯＳ起動が終了するまでの時間をｔｏ、電源ＯＮからアプリケーション起動が終了するまでの時間をｔａとする。
【００８９】
本実施例では、ＦＰＧＡ１０１の動的部分再構成部１８１に構成される診断部１２によって、ハードウェアによるメモリ診断を実行する（ハードウェアにより、メモリのレーン毎、つまりメモリのライン毎に、並列的にメモリ診断を実行する）ため、電源ＯＮからメモリ診断が終了するまでの時間ｔｍが、図５の場合と比較して、短縮される。これにより、ＯＳ起動が終了するまでの時間ｔｏ及びアプリケーション起動が終了するまでの時間ｔａも短縮される。
【００９０】
また、本実施例では、ＯＳデータをメモリ４へ転送した後に、ＯＳを起動することができ、アプリケーションデータをメモリ４へ転送した後に、アプリケーションプログラムを起動する。つまり、ＯＳの起動とアプリケーションデータのメモリ４への転送とを並列（同時）に実行することができ、ＯＳ起動が終了するまでの時間をｔｏ及びアプリケーション起動が終了するまでの時間をｔａが更に短縮される。
【００９１】
本実施例によれば、ＣＰＵ２とメモリ４とを搭載し、ＯＳやアプリケーションプログラムを動作させる制御装置や制御方法において、高い信頼性を確保するために、起動時や再起動時にメモリ診断を実行する必要がある場合であっても、メモリ診断に長い時間をかけることなく、高速にＯＳやアプリケーションプログラムを起動させることができる制御装置や制御方法を提供することができる。そして、例えば、ＩｏＴに対応した性能が高く、拡張性が高い制御システムを実現することができる。
【実施例２】
【００９２】
まず、実施例２に係る制御装置２００を説明する。
【００９３】
図７は、実施例２に係る制御装置２００を説明するブロック図である。
【００９４】
本実施例に記載する制御装置２００は、メモリ領域の診断処理とメモリ領域へのデータの転送処理とを並列に実行する。
【００９５】
本実施例に記載する制御装置２００は、実施例１（図１）に記載する制御装置１００と比較して、動的部分再構成部１８２に診断転送部１４を構成し、デュアルポートメモリコントローラ５０とデュアルポートメモリ５１とを有する点が相違する。
【００９６】
デュアルポートメモリ５１は、ＯＳやアプリケーションプログラムを動作させるための一時的なデータ等を格納するものであり、一度に複数のアクセスを許可し、複数の読み取りや複数の書き込みを同時に実行することができるものである。また、デュアルポートメモリコントローラ５０は、デュアルポートメモリ５１にデータ等を一時的に格納するための制御を実行するものである。
【００９７】
次に、実施例２に係る診断転送部１４を説明する。
【００９８】
図８は、実施例２に係る診断転送部１４を説明するブロック図である。
【００９９】
ＦＰＧＡ１０２の動的部分再構成部１８２に構成される診断転送部１４は、実施例１（図３）に記載する診断部１２と比較して、転送アドレス生成部３７、転送データバッファ３８、転送データバッファ３９、及び、デュアルポートインタフェース５２を有する点が相違する。
【０１００】
転送アドレス生成部３７は、診断データ生成部３２が生成するデータ値を入力し、転送アドレス（例えば、番地）を生成し、生成される転送アドレスを転送データバッファ３８に出力する。
【０１０１】
転送データバッファ３８は、起動制御部１１が出力するＯＳデータ（又はアプリケーションデータ）８８（ビットストリームデータ７２）と転送アドレス生成部３７が出力する転送アドレスとを入力し、格納し、ＯＳデータ８８と転送アドレスとを転送データバッファ３９に出力する。
【０１０２】
転送データバッファ３９は、転送データバッファ３８が出力するＯＳデータ８８と転送アドレスとを入力し、格納し、ＯＳデータ（又はアプリケーションデータ）８６をデュアルポートインタフェース５２に出力する。
【０１０３】
デュアルポートインタフェース５２は、２組のメモリインタフェースを有し、診断ライトデータ７４とＯＳデータ８６とを入力し、診断ライトデータ８５（診断ライトバッファ３４の値）とＯＳデータ（又はアプリケーションデータ）８７（転送データバッファ３９の値）とをデュアルポートメモリコントローラ５０に出力する。
【０１０４】
そして、デュアルポートメモリコントローラ５０は、診断リードデータ７５を診断リードバッファ３５に出力する。
【０１０５】
つまり、本実施例では、ＯＳ用（メモリ）領域の診断処理とデュアルポートメモリ５０へのＯＳデータの転送処理について、例えば、ＯＳ用領域として、ラインＡ、ラインＢ、ラインＣ、ラインＤを有し、ＯＳデータとして、ラインＡ、ラインＢ、ラインＣ、ラインＤをデュアルポートメモリ５０に転送する場合、ラインＡを診断し、ラインＡを転送する。そして、ラインＡを転送する際に、ラインＢを同時に診断し、ラインＢを転送する際に、ラインＣを同時に診断し、ラインＣを転送する転送の際に、ラインＤを同時に診断し、ラインＤを転送する。
【０１０６】
また、アプリケーション用（メモリ）領域の診断処理とデュアルポートメモリ５０へのアプリケーションデータの転送処理も、ＯＳ用領域の診断処理とデュアルポートメモリ５０へのＯＳデータの転送処理と、同様である。
【０１０７】
なお、ＯＳデータとしてラインＤを転送する際に、アプリケーション用領域としてのラインＥを同時に診断することもできる。
【０１０８】
これにより、本実施例に記載する制御装置２００は、メモリ領域の診断処理とメモリ領域へのデータの転送処理とを並列に実行することができる。
【０１０９】
図９は、実施例２に係る制御装置が起動するまでの流れを説明するタイミングチャート図である。
【０１１０】
次に、本実施例に記載するＦＰＧＡ１０２を使用する場合の制御装置２００が起動するまでの流れを説明する。
【０１１１】
この制御装置２００は、電源ＯＮ、ＯＳ起動やアプリケーションプログラム起動は、ＣＰＵ２によって処理される。しかし、メモリ領域の診断処理とメモリ領域へのデータの転送処理とは、ＦＰＧＡ１０２によって処理される。つまり、制御装置２００は、ＣＰＵ２及びＦＰＧＡ１０２によって、起動処理が実行される。なお、図９において、横軸は、時刻ｔを表現する。
【０１１２】
制御装置２００の電源がＯＮになり、ＦＰＧＡ１０２の動的部分再構成部１８２に、診断転送部１４が構成される。この診断転送部１４によって、ＯＳ用領域とアプリケーション用領域とのメモリ診断を実行する。
【０１１３】
これら領域のライン毎のメモリ診断が終了した後、ライン毎のデータをデュアルポートメモリ５０へライン毎に転送する。そして、ＯＳデータをデュアルポートメモリ５０へ転送した後に、ＯＳを起動する。また、アプリケーションデータをデュアルポートメモリ５０へ転送した後に、アプリケーションプログラムを起動する。
【０１１４】
本実施例（図９）に記載するタイミングチャート図は、実施例１（図６）に記載するタイミングチャート図と比較して、ＦＰＧＡ１０２の動的部分再構成部１８２に構成される診断転送部１４によって、ＯＳ用領域の診断処理とデュアルポートメモリ５０へのＯＳデータの転送処理とをオーバーラップさせ、また、アプリケーション用領域の診断処理とデュアルポートメモリ５０へのアプリケーションデータの転送処理とをオーバーラップさせる点が相違する。
【０１１５】
図９において、電源ＯＮからメモリ診断が終了するまでの時間をｔｍ、電源ＯＮからＯＳ起動が終了するまでの時間をｔｏ、電源ＯＮからアプリケーション起動が終了するまでの時間をｔａとする。これら時間は、実施例１と比較して、いずれの時間も短縮される。
【０１１６】
本実施例によれば、ＣＰＵ２とデュアルポートメモリ５０とを搭載し、ＯＳやアプリケーションプログラムを動作させる制御装置や制御方法において、高い信頼性を確保するために、起動時や再起動時にメモリ診断を実行する必要がある場合であっても、メモリ領域の診断処理とデータの転送処理とを、オーバーラップさせて実行することができ、高速にＯＳやアプリケーションプログラムを起動させることができる制御装置や制御方法を提供することができる。
【実施例３】
【０１１７】
まず、実施例３に係る制御装置３００を説明する。
【０１１８】
図１０は、実施例３に係る制御装置３００を説明するブロック図である。
【０１１９】
本実施例に記載する制御装置３００は、複数のＣＰＵ及び複数のＯＳ（又はアプリケーションプログラム）を搭載する場合において、メモリ領域に優先度を付加して、メモリ領域の診断処理を実行する。
【０１２０】
本実施例に記載する制御装置３００は、実施例１（図１）に記載する制御装置１００と比較して、ＣＰＵ６を追加して、メモリコントローラ３と接続し、診断部１６にて、優先度を判定する点が相違する。
【０１２１】
例えば、ＣＰＵ６は、ＣＰＵ２で動作するＯＳ（又はアプリケーションプログラム）よりも優先度の高い第２のＯＳ（又は第２のアプリケーションプログラム）を、動作させるものである。なお、優先度は、例えば、リアルタイム性の高さなどを考慮して、判定される。
【０１２２】
次に、実施例３に係る転送部１６を説明する。
【０１２３】
図１１は、実施例３に係る診断部１６を説明するブロック図である。
【０１２４】
ＦＰＧＡ１０３の動的部分再構成部１８３に構成される診断部１６は、実施例１（図３）に記載する診断部１２と比較して、診断領域レジスタ３１と優先領域判定部３６とを有する点が相違する。
【０１２５】
診断領域レジスタ（第一の診断領域レジスタ）３０は、ＣＰＵ２で動作するＯＳ（又はアプリケーションプログラム）が使用するメモリ領域の診断アドレス７６を設定する。また、診断領域レジスタ（第二の診断領域レジスタ）３１は、ＣＰＵ６で動作する第２のＯＳ（又は第２のアプリケーションプログラム）が使用するメモリ領域の診断アドレス７７を設定する。
【０１２６】
優先領域判定部３６は、診断アドレス７６又は診断アドレス７７の中から、第２のＯＳ（又は第２のアプリケーションプログラム）が使用する診断アドレス７７を優先して選択する。つまり、診断領域レジスタ３０と第二の診断領域レジスタ３１とから優先領域を判定し、その判定結果を、診断データ生成部３２に、出力する。
【０１２７】
そして、優先領域判定部３６は、診断アドレス７７で指定されたメモリ領域のメモリ診断が終了した後に、診断アドレス７６で指定されたメモリ領域のメモリ診断を実行するように、診断データ生成部３２に対して、判定結果を出力し、指示する。
【０１２８】
本実施例によれば、複数のＣＰＵ、複数のＯＳやアプリケーションプログラムを搭載し、ＯＳやアプリケーションプログラムを動作させる制御装置や制御方法において、高い信頼性を実現するために、特定のＯＳやアプリケーションプログラムを優先して起動させる場合であっても、優先するメモリ領域を、優先して診断し、特定のＯＳやアプリケーションプログラムを高速に起動させることができる制御装置や制御方法を提供することができる。
【実施例４】
【０１２９】
まず、実施例４に係る制御装置４００を説明する。
【０１３０】
図１２は、実施例４に係る制御装置４００を説明するブロック図である。
【０１３１】
本実施例に記載する制御装置４００は、複数のメモリを搭載する場合において、メモリ領域の診断処理を実行する。
【０１３２】
本実施例に記載する制御装置４００は、実施例１（図１）に記載する制御装置１００と比較して、複数のメモリ７、メモリ８、メモリ９を有し、これらメモリと接続することができるメモリコントローラ１０を有し、並列診断部１７にて、複数のこれらメモリのメモリ領域の診断処理を実行する点が相違する。
【０１３３】
次に、実施例４に係る並列診断部１７を説明する
図１３は、実施例４に係る並列診断部１７を説明するブロック図である。
【０１３４】
ＦＰＧＡ１０４の動的部分再構成部１８４に構成される並列診断部１７は、実施例１（図３）に記載する診断部１２と比較して、複数の診断部１２、診断部４０、診断部４１、論理積を演算する論理積演算部４２、論理和を演算する論理和演算部４３を有する点が相違する。
【０１３５】
診断部１２、診断部４０、診断部４１は、実施例１（図３）に記載する診断部１２と同様の構成である。また、診断部１２、診断部４０、診断部４１は、メモリコントローラ１０を介して、メモリ７、メモリ８、メモリ９と接続する。
【０１３６】
つまり、診断部１２は、メモリコントローラ１０を介して、メモリ７と接続する。同様に、診断部４０は、メモリコントローラ１０を介して、メモリ８と接続する。同様に、診断部４１は、メモリコントローラ１０を介して、メモリ９と接続する。
【０１３７】
そして、診断部１２は、メモリコントローラ１０に診断ライトデータ７４を出力し、メモリコントローラ１０から診断リードデータ７５を入力する。同様に、診断部４０は、メモリコントローラ１０に診断ライトデータ８０を出力し、メモリコントローラ１０から診断リードデータ８１を入力する。同様に、診断部４１は、メモリコントローラ１０に診断ライトデータ８２を出力し、メモリコントローラ１０から診断リードデータ８３を入力する。
【０１３８】
また、診断部１２は診断結果（信号）９１を出力する。同様に、診断部４０は診断結果（信号）９２を出力する。同様に、診断部４１は診断結果（信号）９３を出力する。
【０１３９】
また、診断部１２は診断終了（信号）７３を出力する。同様に、診断部４０は診断終了（信号）７８を出力する。同様に、診断部４１は診断終了（信号）７９を出力する。
【０１４０】
論理和演算部４３は、診断部１２から出力される診断結果９１、診断部４０から出力される診断結果９２、及び、診断部４１から出力される診断結果９３を入力し、これらをまとめて、診断結果（信号）９４を出力する。
【０１４１】
診断部１２にて、診断リードデータ７５の値と診断ライトデータ７４の値とが、一致している場合は、メモリ７の診断対象アドレスは、正常に動作していることになる。しかしこれら値が一致しない場合は、メモリ７の診断対象アドレスは、正常に動作していないことになる。そして、例えば、正常に動作している場合には、診断結果９１の値は「０」を、正常に動作していない場合には、診断結果９１の値は「１」を出力する。
【０１４２】
同様に、診断部４０にて、診断リードデータ８０の値と診断ライトデータ８１の値とが、一致している場合は、メモリ８の診断対象アドレスは、正常に動作していることになる。しかしこれら値が一致しない場合は、メモリ８の診断対象アドレスは、正常に動作していないことになる。そして、例えば、正常に動作している場合には、診断結果９２の値は「０」を、正常に動作していない場合には、診断結果９２の値は「１」を出力する。
【０１４３】
同様に、診断部４１にて、診断リードデータ８２の値と診断ライトデータ８３の値とが、一致している場合は、メモリ９の診断対象アドレスは、正常に動作していることになる。しかしこれら値が一致しない場合は、メモリ９の診断対象アドレスは、正常に動作していないことになる。そして、例えば、正常に動作している場合には、診断結果９３の値は「０」を、正常に動作していない場合には、診断結果９３の値は「１」を出力する。
【０１４４】
メモリ７、メモリ８、メモリ９の全てが、正常に動作している場合は、診断結果９１、診断結果９２、診断結果９３の値は、それぞれ「０」が出力されるため、０＋０＋０となり、診断結果９４の値は「０」が出力される。一方、メモリ７、メモリ８、メモリ９のいずれかが、正常に動作していない場合は、いずれかの診断結果は「１」が出力されるため、診断結果９４の値は「０」が出力されない。
【０１４５】
本実施例では、正常に動作している場合、診断結果９１、診断結果９２、診断結果９３の値はそれぞれ「０」が出力され、正常に動作していない場合、診断結果９１、診断結果９２、診断結果９３の値はそれぞれ「１」が出力される。そして、メモリ７、メモリ８、メモリ９の全てが、正常に動作している場合は、診断結果９４の値は「０」が出力され、メモリ７、メモリ８、メモリ９のいずれかが、正常に動作していない場合は、診断結果９４の値は「１」が出力される。
【０１４６】
また、図示はしないが、診断結果９１、診断結果９２、診断結果９３から、どのメモリ（メモリ７、メモリ８、メモリ９）が正常に動作していないかを判定することができる。
【０１４７】
論理積演算部４２は、診断部１２から出力される診断終了７３、診断部４０から出力される診断終了７８、及び、診断部４１から出力される診断終了７９を入力し、これらをまとめて、診断終了（信号）８４を出力する。
【０１４８】
本実施例では、メモリ診断が終了していない場合は、診断終了７３、診断終了７８、診断終了７９の値は、それぞれ「０」が出力され、メモリ診断が終了している場合は、診断終了７３、診断終了７８、診断終了７９の値は、それぞれ「１」が出力される。
【０１４９】
このため、メモリ７、メモリ８、メモリ９のいずれかのメモリ診断が終了していない場合は、診断終了８４の値は「０」が出力され、メモリ７、メモリ８、メモリ９の全てのメモリ診断が終了している場合は、診断終了８４の値は「１」が出力される。
【０１５０】
本実施例によれば、ＣＰＵと複数のメモリとを搭載する制御装置や制御方法において、複数のメモリを並列に診断することができ、ＯＳやアプリケーションプログラムを高速に起動させることができる。また、１つのメモリに対して１つの診断部を割り当てることにより、診断の結果、どのメモリが正常に動作していないかを明示的に判定することができる。
【実施例５】
【０１５１】
ここで、本実施例に係る制御装置をプラントＰ１に適用した場合を説明する。
【０１５２】
図１４は、本実施例に係る制御装置をプラントＰ１に適用した場合を説明する説明図である。
【０１５３】
本実施例に記載するプラントＰ１は、フィールド機器３０１とバルブ３０２（操作機器の一例）とが接続される入出力装置１０３０が、フィールドネットワーク１２１を介して、コントローラ１０１０と接続する。また、フィールド機器３０５とポンプ３０６（操作機器の一例）とが接続される入出力装置１０６０が、フィールドネットワーク１２２を介して、コントローラ１０４０と接続する。
【０１５４】
また、コントローラ１０１０及びコントローラ１０４０は、制御ネットワーク１２４を介して、ＨＭＩ（ヒューマンマシンインタフェース：Human Machine Interface）１０７及びコンピュータ１０８と接続する。
【０１５５】
コントローラ１０１０には、実施例１等に記載される制御装置５０１が内蔵され、また、コントローラ１０４０には、実施例１等に記載される制御装置５０２が内蔵される。
【０１５６】
本実施例において、プラントＰ１を起動させる場合を、説明する。
【０１５７】
システムの電源がＯＮになると、ＨＭＩ１０７とコンピュータ１０８とが起動する。そして、制御ネットワーク１２４を介して、コントローラ１０１０及びコントローラ１０４０が起動する。そして、フィールドネットワーク１２１及びフィールドネットワーク１２２を介して、入出力装置１０３０及び入出力装置１０６０が起動する。そして、フィールド機器３０１及びフィールド機器３０５が起動する。
【０１５８】
ここで、制御ネットワーク１２４を介して、起動信号を受信したコントローラ１０１０は、コントローラ１０１０に内蔵される制御装置５０１により、メモリ診断とＯＳやアプリケーションプログラムの起動を高速に実行する。同様に、制御ネットワーク１２４を介して、起動信号を受信したコントローラ１０４０は、コントローラ１０４０に内蔵される制御装置５０２により、メモリ診断とＯＳやアプリケーションプログラムの起動を高速に実行する。
【０１５９】
本実施例によれば、複数のコントローラやコンピュータで構成されるプラントなどのシステムにおいて、メモリ診断とＯＳやアプリケーションプログラムの起動を高速化することができ、プラントなどのシステムの起動を高速化することができる。
【０１６０】
そして、プラントなどのシステムに停電や瞬停などが発生した場合であっても、起動を高い信頼性で、高速化することができ、再稼働にかかる時間を短縮することができ、システムの迅速な復旧が実現でき、より良いサービスを提供することができる。
【実施例６】
【０１６１】
ここで、本実施例に係る制御装置をプラントＰ２に適用した場合を説明する
図１５は、本実施例に係る制御装置をプラントＰ２に適用した場合を説明する説明図である。
【０１６２】
本実施例に記載するプラントＰ２は、実施例５（図１４）に記載するプラントＰ１と比較して、
ＨＭＩ１０７とコンピュータ１０８とが、情報ネットワーク１２５を介して、監視サーバ１０９と接続する点が相違する。そして、監視サーバ１０９が、プラントＰ２の状態を監視し、異常時や緊急時に指令を発する。
【０１６３】
なお、図示はしないが、フィールド機器３０１やバルブ３０２が接続される入出力装置１０３０と、コントローラ１０１０との間に、更なるコントローラを設置し、このコントローラと入出力装置１０３０とは、フィールドネットワークを介して、接続されてもよい。同様に、フィールド機器３０５やポンプ３０６が接続される入出力装置１０６０と、コントローラ１０４０との間に、更なるコントローラを設置し、このコントローラと入出力装置１０６０とは、フィールドネットワークを介して、接続されてもよい。
【０１６４】
そして、本実施例に記載するプラントＰ２は、監視サーバ１０９が制御装置５０５を、ＨＭＩ１０７が制御装置５０３を、コンピュータ１０８が制御装置５０４を、コントローラ１０１０が制御装置５０１を、コントローラ１０４０が制御装置５０２を、入出力装置１０３０制御装置５０７を、入出力装置１０６０が、制御装置５０８を、それぞれを内蔵している。
【０１６５】
本実施例において、プラントＰ２を起動させる場合を、説明する。
【０１６６】
システムの電源がＯＮになると、制御装置５０５により、監視サーバ１０９のメモリ診断とＯＳやアプリケーションプログラムの起動が実行される。
【０１６７】
そして、情報ネットワーク１２５を介して、制御装置５０３により、ＨＭＩ１０７のメモリ診断とＯＳやアプリケーションプログラムの起動が実行され、また、制御装置５０４により、コンピュータ１０８のメモリ診断とＯＳやアプリケーションプログラムの起動が実行される。
【０１６８】
次に、制御ネットワーク１２４を介して、制御装置５０１により、コントローラ１０１０のメモリ診断とＯＳやアプリケーションプログラムの起動が実行され、また、制御装置５０２により、コントローラ１０４０のメモリ診断とＯＳやアプリケーションプログラムの起動が実行される。
【０１６９】
次に、フィールドネットワーク１２１を介して、制御装置５０７により、入出力装置１０３０のメモリ診断とＯＳやアプリケーションプログラムの起動が実行され、また、フィールドネットワーク１２２を介して、制御装置５０８により、入出力装置１０６０のメモリ診断とＯＳやアプリケーションプログラムの起動が実行される。
【０１７０】
本実施例によれば、複数のコントローラ、コンピュータ、サーバなどで構成されるプラントなどのシステムにおいて、メモリ診断とＯＳやアプリケーションプログラムの起動を高速化することができる。特に、複数の装置（入出力装置、コントローラ、ＨＭＩやコンピュータ、サーバなど）が階層化され、ネットワークで接続されるシステムであっても、その起動を高速化することができる。
【０１７１】
そして、システムに停電や瞬停などが発生した場合であっても、起動を高い信頼性で、高速化することができ、再稼働にかかる時間を短縮することができ、システムの迅速な復旧が実現でき、より良いサービスを提供することができる。
【０１７２】
更に、システムが広域に分散して設置される場合であっても、再稼働にかかる時間を短縮することができ、システムの迅速な復旧が実現でき、より良いサービスを提供することができる。
【０１７３】
なお、これら実施例に記載する制御装置及び制御方法は、エレベーター制御システム、鉄道制御システム、自動車制御システム、建設機械制御システム、発電制御システムなど、種々のシステムに使用することができる。
【０１７４】
また、本発明は上記した実施例に限定されるものではなく、様々な変形例が含まれる。例えば、上記した実施例は本発明を分かりやすく説明するために、制御装置及び制御方法を、詳細かつ具体的に、説明したものであり、必ずしも説明した全ての構成要素を有するものに限定されない。また、ある実施例の構成要件の一部を、他の実施例の構成要素の一部に置き換えることが可能である。また、ある実施例の構成要件に他の実施例の構成要件を加えることも可能である。また、各実施例の構成要件の一部について、他の構成要素の一部を、追加、削除、置換をすることも可能である。
【符号の説明】
【０１７５】
１００、２００、３００、４００、５０１、５０２、５０３、５０４、５０５、５０７、５０８…制御装置、１０１、１０２、１０３、１０４…ＦＰＧＡ、２、６…ＣＰＵ、３、１０…メモリコントローラ、４、７、８、９…メモリ、５…不揮発メモリ、１１…起動制御部、１２、１６、４０、４１…診断部、１４…診断転送部、１７…並列診断部、１８１、１８２、１８３、１８４…動的部分再構成部、２０…状態遷移部、２１…制御信号生成部、２２…マルチプレクサ、２３…データバッファ、２４…出力制御部、３０、３１…診断領域レジスタ、３２…診断データ生成部、３３…比較部、３４…診断ライトバッファ、３５…診断リードバッファ、３６…優先領域判定部、３７…転送アドレス生成部、３８、３９…転送データバッファ、４２…論理積演算部、４３…論理和演算部、５０…デュアルポートメモリコントローラ、５１…デュアルポートメモリ、５２…デュアルポートインタフェース、１０１０、１０４０…コントローラ、１０３０、１０６０…入出力装置、１０７…ＨＭＩ、１０８…コンピュータ、１０９…監視サーバ、３０１、３０５…フィールド機器３０２…バルブ、３０６…ポンプ、Ｐ１、Ｐ２…プラント。
【図１】
2020173692.tif 000003
【図２】
2020173692.tif 000004
【図３】
2020173692.tif 000005
【図４】
2020173692.tif 000006
【図５】
2020173692.tif 000007
【図６】
2020173692.tif 000008
【図７】
2020173692.tif 000009
【図８】
2020173692.tif 000010
【図９】
2020173692.tif 000011
【図１０】
2020173692.tif 000012
【図１１】
2020173692.tif 000013
【図１２】
2020173692.tif 000014
【図１３】
2020173692.tif 000015
【図１４】
2020173692.tif 000016
【図１５】
2020173692.tif 000017