(57)【要約】【課題】プログラマブルコントローラにおいて、当該FPGAで構成された信号処理回路の自己診断と、エラー検出時の修復機能と、を備えるプログラマブルコントローラを提供することを目的とする。【解決手段】CPU２と、外部デバイス４と、FPGAで構成されるFPGAインタフェース処理部３と、CPUバス１５と、双方向パラレル転送の外部入出力バス１６と、を備え、FPGAインタフェース処理部は、通常インタフェース処理回路部１４と、比較回路部１３と、を備え、通常インタフェース処理回路１４で処理する前の入力信号と、処理した後の対応する出力信号とを比較して、一致の場合には、処理後のデータを送信し、不一致の場合には再判定を行い、一致の場合は処理後のデータを、不一致の場合は、修正データを送信するようにし、制御プログラムの実行中に、FPGAインタフェース処理部の入出力処理動作の良否を自己診断するようにしたことを特徴とする。【選択図】  図１
2015118468.tif 000002
【特許請求の範囲】
【請求項１】
プログラマブルコントローラは、制御プログラムを実行するCPUと、
前記CPUの外部メモリと、前記CPUの外部入出力デバイスとを備える外部デバイスと、
前記制御プログラムの実行により、前記CPUが前記外部デバイスに書き込むWrite データを出力する出力信号、及び前記CPUが前記外部デバイスから読み出すReadデータを入力する入力信号をインタフェースするFPGAで構成されるFPGAインタフェース処理部と、
前記CPUと前記FPGAインタフェース処理部との間を接続するCPUバスと、前記FPGAインタフェース処理部と前記外部デバイスとを接続する、双方向パラレル転送の外部入出力バスと、を備え、
前記FPGAインタフェース処理部は、前記制御プログラムを実行する場合に前記入力信号及び前記出力信号をインタフェースするとともに、前記Write
データを前記外部入出力バスに出力する第１の比較タイミング信号を生成する、また、前記Readデータを前記CPUバスに出力する第２の比較タイミング信号を生成する、通常インタフェース処理回路部と、
前記CPUが前記CPUバスを介して出力した第１のWriteデータと、当該第１のWriteデータを前記通常インタフェース処理回路部が処理し、前記外部入出力バスに出力する第２のWriteデータとを、前記第１の比較タイミング信号で比較して一致/不一致を判定し、
また、前記外部入出力バスを介して入力される当該第１のReadデータと、当該第１のReadデータを前記通常インタフェース処理回路部が処理し、前記CPUバスに出力する当該第２のReadデータとを、前記第２の比較タイミング信号で比較して一致/不一致を判定する、比較回路部と、
を備え、
前記制御プログラムの実行中に、前記をFPGAインタフェース処理部の入出力処理動作の良否を自己診断するようにしたことを特徴とするプログラマブルコントローラ。
【請求項２】
前記通常インタフェース処理回路部は、前記CPUと当該通常インタフェース処理回路との間で前記CPUバスを介して入出力するCPUバス信号をインタフェースするCPU/インタフェース回路と、
前記外部デバイスと当該通常インタフェース処理回路との間で前記外部入出力バスを介して入出力する外部入出力バス信号とをインタフェースするとともに、前記第１の比較タイミング信号及び前記第２の比較タイミング信号を生成する外部デバイスインタフェース回路と、
前記外部デバイスへのアクセス要求と、前記外部デバイスからのアクセス要求と、を調停する内部回路と、
を備えるようにしたことを特徴とする請求項１に記載のプログラマブルコントローラ。
【請求項３】
前記外部デバイスは、データメモリとワークメモリとを備えるメモリ、及び外部入出力デバイスを備え、
前記外部デバイスインタフェース回路は、前記当該メモリとの間をインタフェースするデータメモリインタフェース回路と、ワークメモリインタフェース回路と、外部入出力インタフェース回路と、を備え、
前記外部入出バスは、当該データメモリと接続するデータメモリバス及びワークメモリと接続するワークメモリバスと、当該外部入出力デバイスと接続する入出力デバイスバスと、を備えるようにした請求項２に記載のプログラマブルコントローラ。
【請求項４】
前記比較回路部は、前記CPUバス信号を記憶する第１のメモリと、
前記外部入出力バス信号を記憶する第２のメモリと、
前記CPUバスを介して出力された第１のWriteデータと、当該第１のWriteデータを前記通常インタフェース処理回路部が処理し、前記外部入出力バスに出力する第２のWriteデータとを、前記第１の比較タイミング信号で比較して一致/不一致を判定し、また、前記外部入出力バスを介して入力される当該第１のReadデータと、当該第１のReadデータを前記通常インタフェース処理回路部が処理し、前記CPUバスに出力する当該第２のReadデータとを、前記第２の比較タイミング信号で比較して一致/不一致を判定する比較制御回路と、
前記第１の比較タイミングでの判定の結果不一致と判定された場合、前記第１のメモリから、対応する前記第１のWriteデータを抽出して再判定要求信号とともに、前記内部回路を介して送信し、
一致の場合には、前記外部デバイスに前記第２のWriteデータの送信を指示する信号を、不一致の場合には再判定要求信号を、夫々対応するインタフェース回路に送信し、
前記第２の比較タイミングでの判定の結果不一致と判定された場合、前記第２のメモリから、対応する前記第１のWriteデータを抽出して再判定要求信号とともに、前記内部回路を介して送信し、
一致の場合には、前記外部デバイスに前記第２のReadデータの送信を指示する信号を、不一致の場合には再判定要求信号を、夫々対応するインタフェース回路に送信する、再処理回路と、
を備え、不一致の場合に修復データを送信して制御プログラムを継続実行するようにしたことを特徴とする請求項１に記載のプログラマブルコントローラ。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明の実施形態は、FPGAを使用して構成されたた信号処理回路を備えるプログラマブルコントローラにおいて、当該FPGAで構成された信号処理回路の自己診断と、エラー検出時の修復機能と、を備えるプログラマブルコントローラに関する。
【背景技術】
【０００２】
FPGA (Field Programmable Gate Array)やCPLD (Complex Programmable Logic Device)などのプログラマブルロジックデバイスは、製造後にユーザで内部論理回路を再構成できる集積回路である。
【０００３】
このプログラマブルロジックデバイスは、携帯電話機器、家電、汎用PC、など幅広い分野で使用され、メーカ独自の機能やインタフェース、Ethernet（R）やRS-232C、SPIなどのI/Oインタフェース、SDRAMやSRAMなどのメモリインタフェースをサポートするなど、様々な用途で使用されている。
【０００４】
高信頼性が要求される制御システム機器に使用されるプログラマブルコントローラおいても、FPGAやCPLDを使用し装置が普及してきている。
【０００５】
このFPGAを使用した回路には、近年、製品の小型化や多機能化の要求などにより、複数の機能を備えた回路ブロックを組み込んだものが使用されるようになっている。
【０００６】
このようなFPGAを使用して製作されたロジック回路(以後、FPGAの回路と称す)では、外部から入力されたアドレス信号やデータ信号が複数の回路ブロックを介して、外部へ出力されることが多く、また、クロック信号の高速化や動作電圧の低下などにより、クロストークや静電気などのノイズの影響を受けやすくなっている。
【０００７】
また、SRAMをベースに回路ロジックを生成したFPGAでは、一過性のソフトエラーなどの影響を受ける恐れもある。
【０００８】
そのため、ロジック回路や動作タイミング設計の不良、ロジック回路へのノイズの混入、内部回路のクロストークなどにより、ロジック回路で意図しないデータへ変換される可能性が高くなっている。
【０００９】
従来からハードウェアの信号品質向上のため、IC回路やメモリ間でECC(Error Check and Correct)付きの信号でデータの送受信を実施し、意図しないデータとなった場合でも訂正、検出できるような手法が広く使用されている。
【００１０】
この方法では、アドレスデコードなどデータ変換が必要な回路では、ECCデータを生成することが困難な構成となり、データの信頼性を向上することはできない。
【００１１】
そこで、CPU周辺のアドレス異常個所を検出して、異常個所やその原因を容易に特定することが可能な自己診断機能を備えた回路装置が開示されている（例えば、特許文献1参照。）。
【００１２】
また、情報処理装置を停止することなく、故障前と同じ情報処理を継続して実行する情報処理装置及び回路再構成装置が知られている（例えば、特許文献２参照。）。
【００１３】
また、回路構成を変更可能な回路が動作している状態で、ソフトエラーを検出し、ソフトエラーを回復することができる電子デバイス及び電子デバイスの故障回復方法（例えば、特許文献３参照。）が知られている。
【先行技術文献】
【特許文献】
【００１４】
【特許文献１】特許第４６２１８２５号号公報
【特許文献２】特開２０１１−２１６０２０号公報
【特許文献３】特開２０１０−１３４６７８号公報
【発明の概要】
【発明が解決しようとする課題】
【００１５】
上述した特許文献１のエラー検出方法は、アドレス信号のみのエラー検出はできるが、エラーを検出した際に正しいデータ信号へ修正し、継続的にプログラマブルコントローラを稼働させることができない問題があった。
【００１６】
また、特許文献２は、機能ブロックの冗長化を図り、出力されたデータの多数決をとることでFPGAの回路の信頼性向上を図っているが、冗長化するロジック回路は同一であるので、同じエラーが検出される可能性が高くなり、同時にエラーが検出された場合には誤判定となる可能性が高くなる問題がある。
【００１７】
また、特許文献３においては、同じFPGAの回路２組を実装する必要があるので、回路を実装するためのスペースに制約が生じる問題がある。
【００１８】
本発明は、上記問題点を解決するためになされたものであり、FPGAを使用して構成されたた信号処理回路を備えるプログラマブルコントローラにおいて、当該FPGAで構成された信号処理回路の自己診断と、エラー検出時の修復機能と、を備えるプログラマブルコントローラを提供することを目的とする。
【課題を解決するための手段】
【００１９】
上記目的を達成するために、本実施形態のプログラマブルコントローラは、制御プログラムを実行するCPUと、前記CPUの外部メモリと、前記CPUの外部入出力デバイスとを備える外部デバイスと、前記制御プログラムの実行により、前記CPUが前記外部デバイスに書き込むWrite データを出力する出力信号、及び前記CPUが前記外部デバイスから読み出すReadデータを入力する入力信号をインタフェースするFPGAで構成されるFPGAインタフェース処理部と、前記CPUと前記FPGAインタフェース処理部との間を接続するCPUバスと、前記FPGAインタフェース処理部と前記外部デバイスとを接続する、双方向パラレル転送の外部入出力バスと、を備え、前記FPGAインタフェース処理部は、前記制御プログラムを実行する場合に前記入力信号及び前記出力信号をインタフェースするとともに、前記Writeデータを前記外部入出力バスに出力する第１の比較タイミング信号を生成する、また、前記Readデータを前記CPUバスに出力する第２の比較タイミング信号を生成する、通常インタフェース処理回路部と、前記CPUが前記CPUバスを介して出力した第１のWriteデータと、当該第１のWriteデータを前記通常インタフェース処理回路部が処理し、前記外部入出力バスに出力する第２のWriteデータとを、前記第１の比較タイミング信号で比較して一致/不一致を判定し、また、前記外部入出力バスを介して入力される当該第１のReadデータと、当該第１のReadデータを前記通常インタフェース処理回路部が処理し、前記CPUバスに出力する当該第２のReadデータとを、前記第２の比較タイミング信号で比較して一致/不一致を判定する、比較回路部と、を備え、前記制御プログラムの実行中に、前記をFPGAインタフェース処理部の入出力処理動作の良否を自己診断するようにしたことを特徴とする。
【図面の簡単な説明】
【００２０】
【図１】実施の形態のプログラマブルコントローラのブロック構成図。
【図２】FPGAインタフェース処理部のブロック構成図。
【図３】比較処理回路部の動作を説明するフローチャート図。
【発明を実施するための形態】
【００２１】
以下、本発明に係るFPGAを使用して構成された信号処理回路を備えるプログラマブルコントローラの実施例について、図１を参照して説明する。
【００２２】
図１は本発明の実施形態のプログラマブルコントローラの概要を示す機能ブロック構成図である。
【００２３】
プログラマブルコントローラ１は、図示しないプログラムメモリに予め記憶された制御プログラムを実行するCPU２と、CPU２のメモリ４ａと、CPU２の外部入出力デバイス４ｂとを備える外部デバイス４と、制御プログラムの実行により、CPU２が外部デバイス４に書き込むWriteデータを出力する出力信号、及びCPU２が外部デバイスから読み出すReadデータを入力する入力信号をインタフェースするFPGAで構成されるFPGAインタフェース処理部３と、を備える。
【００２４】
更に、CPU２とFPGAインタフェース処理部３との間を接続するCPUバス１５と、FPGAインタフェース処理部３と外部デバイス４とを接続する、双方向パラレル転送の外部入出力バス１６と、を備える。
【００２５】
尚、CPUバス１５は、アドレスバス、データバス、制御線で構成され、CPUバス信号はこのCPUバス１５を介してFPGAインタフェース処理部３に転送される。また、外部入出力バス１６には、このバスに接続される夫々のデバイスのアドレス信号、データ信号、及びその制御信号が転送される。
【００２６】
また、CPU２は、CPUバス１５、及び外部入出力バス１６（データメモリバス１６ａ、ワークメモリバス１６ｂ、及び入出力デバイスバス１６ｃ）を介して、夫々の外部デバイス４(データメモリ４ａ１、ワークメモリ４ａ２、外部入出力デバイス４ｂへのWriteデータの書き込み、Readデータの読み出しを双方向で転送する。
【００２７】
ここで、CPU2と外部デバイス４との応答は、CPUバス１５を介してCPU２に入出力する信号について、夫々のインタフェース回路１４ｃからレディ信号をCPU２に送信するようにして、CPU２はレディ信号を受信するまでの間は、次の動作に遷移しないウェイト制御が可能なインタフェース形式としておく。
【００２８】
次に、各部の構成について説明する。FPGAインタフェース処理部３は、入出力するデータと、の一致／不一致を検出し、不一致(エラー）がある場合にデータの修復処理を実行する詳細を後述する比較回路部１３と、外部デバイス４とCPU２との間の入出力信号をインタフェースする通常インタフェース処理回路部１４と、を備える。
【００２９】
即ち、通常インタフェース処理回路部１４は、CPUバス１５信号（アドレス信号、データ信号、制御信号）を入力し、アドレス信号、データ信号、制御信号をデコードして、外部入出力バス１６に出力し、また、外部入出力バス１６から外部デバイス４から読み出すReadデータを入力し、この信号をエンコードしてCPUバス１５に出力し、夫々の外部デバイス４とCPU２との間の入出力データをインタフェースする。
【００３０】
更に、通常インタフェース処理回路部１４は、Write(書き込み)データを外部入出力バス１６に出力する第１の比較タイミング信号を生成する、また、Read(読み出し)データをCPUバス１５に出力する第２の比較タイミング信号を生成する。
【００３１】
比較回路部１３は、CPUバス１５を介して出力された第１のWriteデータと、当該第１のWriteデータを通常インタフェース処理回路部１４が処理し、外部入出力バス１６に出力する第２のWriteデータとを、第１の比較タイミング信号で比較して一致/不一致を判定し、また、外部入出力バス１６を介して入力される当該第１のReadデータと、当該第１のReadデータを通常インタフェース処理回路部１４が処理し、CPUバス１５に出力する当該第２のReadデータとを、第２の比較タイミング信号で比較して一致/不一致を判定する。
【００３２】
第１の比較タイミング信号、第２の比較タイミング信号は、入力するデータ毎に予め設定された時間、遅延させたタイミングとする。即ち、メモリ１３ａ１、または、メモリ１３ａ２にデータが入力されるタイミングから、通常インタフェース処理回路部１３で処理され、対応する比較データが比較可能となるまで遅延する。
【００３３】
このように構成された、プログラマブルコントローラ１は、制御プログラムの実行中に、FPGAインタフェース処理部３の入出力処理動作の良否を自己診断することが出来る。
【００３４】
次に、各部の詳細構成について説明する。通常インタフェース処理回路部１４は、CPU２と当該通常インタフェース処理回路１４との間でCPUバス１５を介して入出力するCPUバス信号ｓ１５をインタフェースするCPU/インタフェース回路１４ａと、外部デバイス４と通常インタフェース処理回路１４との間で外部入出力バス１６を介して入出力する外部入出力バス信号ｓ１６ｃとをインタフェースするとともに、第１の比較タイミング信号及び第２の比較タイミング信号を生成する外部デバイスインタフェース回路１４ｃと、外部デバイス４へのアクセス要求と、外部デバイス４からのアクセス要求と、を調停する内部回路１４ｂと、を備える。
【００３５】
また、CPUインタフェース回路１４ａは、CPUバス１５から入力したデータ、アドレス、及び制御信号をデコードして内部回路１４ｂに送り、また、外部デバイスバス１６から入力したデータ、アドレス、及び制御信号をエンコードしてCPUバス１５を介してCPU２に送る。
【００３６】
尚、更に詳細には、外部デバイス４は、データメモリ４ａ１とワークメモリ４ａ２とを備えるメモリ４ａ、及び外部入出力デバイス４ｂを備え、外部デバイスインタフェース回路１４ｃは、対応するメモリとの間をインタフェースするデータメモリインタフェース回路１４ｃ１と、ワークメモリインタフェース回路１４ｃ２と、外部入出力デバイスインタフェース回路１４ｃ３と、を備える。
【００３７】
外部デバイスインタフェース回路１４ｃの夫々の回路は、外部デバイス４と内部回路１４ｂとの異なる信号形態をインタフェースする変換機能を有する。
【００３８】
一般に、ワークメモリ４ａ２は、SRAM(Static Random Access Memory)で構成され、データメモリ４ａ１はSDRAM(Synchronous Dynamic Random Access Memory)で構成され、CPU２が制御プログラムを実行する場合にアクセスされる。
【００３９】
また、外部入出力デバイス４ｂは、CPU２が制御する被制御対象からの入力信号、及び操作端部などの出力力装置からの信号をインタフェースする。
【００４０】
また、外部入出力バス１６は、データメモリ４ａ１と接続するデータメモリバス１６ａ及びワークメモリ４ａ２と接続するワークメモリバス１６ｂと、外部入出力デバイス４ｂと接続する入出力デバイスバス１６ｃと、を備える。
【００４１】
次に、比較回路部１３の詳細構成について、図２を参照して説明する。比較回路部１３は、CPUバス信号を記憶する第１のメモリ１３ａ１と、外部入出力バス信号を記憶する第２のメモリ１３ａ２と、CPUバス１５を介して出力された第１のWriteデータと、第１のWriteデータを通常インタフェース処理回路部１４が処理し、外部入出力バス１６に出力する第２のWriteデータとを、第１の比較タイミング信号で比較して一致/不一致を判定し、また、外部入出力バス１６を介して入力される第１のReadデータと、当該第１のReadデータを通常インタフェース処理回路部１４が処理し、CPUバス１５に出力する第２のReadデータと、を前記第２の比較タイミング信号で比較して一致/不一致を判定する比較制御回路１３ｂと、を備える。
【００４２】
更に、第１の比較タイミングでの判定の結果不一致と判定された場合、比較制御回路１３ｂから不一致信号(ｓ１３ｂ２)を受信して、第１のメモリ１３ａ１から、対応する第１のWriteデータを抽出して再判定要求信号ｓ１３ｃとともに、内部回路１４ｂを介して送信し、一致の場合には、外部デバイス４に第２のWriteデータの送信を指示する信号を、不一致の場合には再判定要求信号を、夫々対応するインタフェース回路に送信し、または、第２の比較タイミングでの判定の結果不一致と判定された場合、第２のメモリ１３ａ２から、対応する第１のReadデータを抽出して再判定要求信号とともに、内部回路１４ｂを介して送信し、一致の場合には、前記外部デバイスに前記第２のReadデータの送信を指示する信号を、不一致の場合には再判定要求信号を、夫々対応するインタフェース回路に送信する、再処理回路１３ｃと、を備える。
【００４３】
更に、比較制御回路１３ｂから不一致信号ｓ１３ｂ２を受信するとともに、不一致と判定された信号を比較制御回路１３ｂから受信して、エラー内容をロギングする記憶保持可能なメモリと、不一致内容(エラー)を表示するLED等の表示部と、を備えるエラー処理回路１３ｄを備える。このエラー処理回路１３ｄは、別の場所に設けられる外部の表示部に備えるようにしても良い。
【００４４】
このように構成されたFPGAインタフェース処理回路３を備えるプログラマブルコントローラ１は、比較回路部１３により、FPGAインタフェース処理部３の通常インタフェース処理回路１４で処理する前の入力信号と、通常インタフェース処理回路１４で処理した後の対応する出力信号３とを比較して、一致の場合には、外部デバイス４に第２のWriteデータ、または、第２のReadデータの送信を指示する信号を送り、不一致の場合には再判定要求信号を、夫々対応する外部デバイスインタフェース回路１４ｃに送信するようにした。
【００４５】
したがって、通常インタフェース処理回路１４の自己診断と、通常インタフェース処理回路１４の処理にエラーが検出された場合の修復処理とを、制御プログラムを停止することなく実行することができるプログラマブルコントローラを提供することができる。
【００４６】
次に、図３を参照して、本実施形態のFPGAで構成された通常インタフェース処理回路１４の自己診断、及び、エラーの修復機能を備えるプログラマブルコントローラ１の比較回路部１３の処理動作について説明する。
【００４７】
この処理動作（図３のｓ３〜ｓ７）の間、夫々のインタフェース回路１４ｃからレディ信号をCPU２に送信するようにして、CPU２はレディ信号を受信するまでの間は、次の動作に遷移しないウェイト制御を実行する。
【００４８】
図３は、本実施形態の比較回路部１３の処理動作を説明するためのフローチャートである。このフローチャートは、CPU２が外部デバイス４のワークメモリ４ａ２にWriteデータを書き込む場合の自己診断動作を１例として説明する。
【００４９】
先ず、CPU２から処理を実行するためのWriteデータ信号（アドレス・データ・制御信号）が出力されると、このCPUバス信号は、メモリ１３ａ１と通常インタフェース処理回路部１４のCPUインタフェース回路１４ａとに入力される。
【００５０】
メモリ１３ａ１入力された信号は、予め設定されるサイクル数分一次記憶される（ｓ１）。
【００５１】
一方、CPUインタフェース回路１４ａに入力されたCPUバス信号ｓ１５は、内部回路１４ｂ、及びワークメモリインタフェース回路１４ｃ２を介して、ワークメモリ４ａ２に出力される。
【００５２】
そして、比較制御回路１３ｂでは、メモリ１３ａ１に一次記憶されたデータと、通常インタフェース処理回路部１４で処理され、ワークメモリインタフェース回路１４ａ２からメモリバス１６ａに出力された、メモリ１３ａ１の一次記憶データに対応するデータと、を第１の比較タイミング信号で比較する。
【００５３】
比較のデータ入力回路は、雑音の影響を受けないように配慮された構成としておき、比較タイミングは、ワークメモリインタフェース回路１４ｃ２で生成される、ワークメモリバス１６ｂに出力するデータのラッチ信号に同期した比較タイミング信号ｓ１４ｃ２で比較する(ｓ２)。
【００５４】
比較の結果(ｓ３)、一致(エラーなし)と判定された場合には、比較制御回路１３ｂは、一致信号ｓ１３ｂ１をワークメモリインタフェース回路１４ｃ２に送り、ワークメモリインタフェース回路１４ｃ２からラッチされたデータが、そのままメモリバス１６ｂを介してワークメモリ４ａ２に出力される（ｓ７）。
【００５５】
不一致と判定された場合には、比較制御回路１３ｂは、不一致信号ｓ１３ｂ２を再処理回路１３ｃ、エラー処理回路１３ｄ、及びワークメモリインタフェース回路１４ｃ２に送る。
【００５６】
ワークメモリインタフェース回路１４ｃ２では、ワークメモリ４ａ２への信号の出力を停止する。また、エラー処理回路１３ｄでは、エラー内容を図示しない内部レジスタ、及び、バックアップ可能な図示しないバックアップメモリにロギングする。また、必要がある場合は、図示しない表示器よりエラーを表示する(ｓ８)。
【００５７】
エラーを通知された再処理回路１３ｃでは、不一致となったエラー内容から対応するデータをメモリ１３ａ１から抽出し、対応するアドレス、データ、制御信号の情報から、ワークメモリ４ａ２に送信するデータを再生し、内部回路１４ｂに送る（ｓ４）。
【００５８】
そして、比較制御回路１３ｂは、内部回路１４ｂからワークメモリインタフェース回路１４ｃ２で再処理されたワークメモリバス１６ｂへの出力データと、メモリ１３ａ１から再抽出したデータとを再比較する（ｓ５）。
【００５９】
比較の結果一致した場合には、ワークメモリインタフェース回路１４ｃ２からワークメモリバス１６ｂを介してデータを出力し(s７)、CPU２は、このエラーは一過性の故障と判断して制御プログラムの実行を継続する。
【００６０】
この、再比較において、エラーが検出された場合、メモリ１３ａ１に記憶されたデータを正として、再処理回路１３ｃから出力されたデータをワークメモリインタフェース回路１４ｃ２の図示しない出力レジスタに書き込み（ｓ６)、ワークメモリバス１６ｂを介して出力する（ｓ７）。
【００６１】
他の外部デバイス４にWriteデータを書き込む場合、本ワークメモリ４ａ２に書き込む場合と同様であるのでその説明を省略する。
【００６２】
また、外部デバイス４からReadデータを読み出しする場合の動作は、外部デバイス４からWrite データを書き込み(Write)する場合は、比較制御回路１３ｂで比較する一方の基準となる参照データをメモリ１３ａ１から抽出したが、外部デバイス４からReadデータを読み出しする場合は、比較制御回路１３ｂで比較する基準となる参照データをメモリ１３ａ２から抽出する点が異なる。
【００６３】
その他の動作は、外部デバイス４からWriteデータを書き込みする場合と同様であるのでその説明を省略する。
【００６４】
以上説明したように、本実施形態によれば、FPGAを使用して構成されたた信号処理回路を備えるプログラマブルコントローラにおいて、制御プログラムの実行を停止することなく、当該FPGAで構成された信号処理回路の自己診断と、エラー検出時の修復機能と、を備えるプログラマブルコントローラを提供することができる。
【００６５】
本発明のいくつかの実施形態を説明したが、これらの実施形態は、例として提示したものであり、発明の範囲を限定することは意図していない。これら新規な実施形態は、その他の様々な形態で実施されることが可能であり、発明の要旨を逸脱しない範囲で、種々の省略、置き換え、変更を行うことができる。これら実施形態やその変形は、発明の範囲や要旨に含まれるとともに、特許請求の範囲に記載された発明とその均等の範囲に含まれる。
【符号の説明】
【００６６】
１  プログラマブルコントローラ
２  CPU
３  FPGAインタフェース処理部
４  外部デバイス
４ａ  メモリ
４ａ１  データメモリ（SRAM）
４ａ２  ワークメモリ（SDRAM）
４ｂ  外部入出力デバイス
１３  比較回路部
１３ａ１、１３ａ２  メモリ
１３ｂ  比較制御回路
１３ｃ  再処理回路
１３ｄ  エラー処理回路
１４  通常インタフェース処理回路部
１４ａ  CPU インタフェース回路
１４ｂ  内部回路
１４ｃ  外部デバイスインタフェース回路
１４ｃ１  データメモリインタフェース回路
１４ｃ２  ワークメモリインタフェース回路
１４ｃ３  外部入出力インタフェース回路
１５  CPUバス
１６  外部入出力バス
１６ａ、１６ｂ  メモリバス
１６ｃ  入出力デバイスバス
【図１】
2015118468.tif 000003
【図２】
2015118468.tif 000004
【図３】
2015118468.tif 000005