(57)【特許請求の範囲】
【請求項１】
プログラマブルコントローラユニットと、このプログラマブルコントローラユニットと通信可能なエンジニアリングツールと、を具備するプログラマブルコントローラシステムにおいて、
前記プログラマブルコントローラユニットは、複数の構成要素と、自身と前記複数の構成要素のうちの１つの構成要素との間のアクセスの診断を行うための診断プログラムを実行するマイクロプロセッサと、アクセス制御部と、を具備し、
前記アクセス制御部は、
トレースデータ格納メモリを備えて、第１バスおよび第２バスに接続されて、前記マイクロプロセッサが前記診断プログラムを実行したときに、前記マイクロプロセッサと前記１つの構成要素間のアクセスに用いられる信号の波形をトレースした測定値トレースデータを生成し、前記測定値トレースデータを含む測定結果を前記トレースデータ格納メモリに格納するトレース制御回路、
を具備し、
前記マイクロプロセッサは、前記トレースデータ格納メモリに格納された前記測定結果を前記エンジニアリングツールに送信し、
前記エンジニアリングツールは、
前記マイクロプロセッサと前記１つの構成要素間のアクセス時において理想的な値を表す期待値トレースデータと、前記マイクロプロセッサと前記１つの構成要素間のアクセス時の異常の原因となる因果関係を表す因果関係情報とが格納された異常原因データベースと、
前記測定結果に含まれる前記測定値トレースデータおよび前記異常原因データベースに格納された前記期待値トレースデータを表すトレース画面を表示装置に表示する波形表示制御部と、
前記測定値トレースデータと前記期待値トレースデータとが一致しないときに、前記異常原因データベースに格納された前記因果関係情報のうちの、前記マイクロプロセッサと前記１つの構成要素間のアクセス時の異常の原因を同定する第１表示レベル情報を前記トレース画面上に表示する異常表示制御部と、
を具備することを特徴とするプログラマブルコントローラシステム。
【請求項２】
前記異常原因データベースに格納された前記因果関係情報のうちの、前記第１表示レベル情報が表す異常の前段階の異常を同定する第２表示レベル情報は、前記測定結果に含まれる前記測定値トレースデータと前記異常原因データベースに格納された前記期待値トレースデータとの差異を表し、
前記異常表示制御部は、前記第２表示レベル情報を前記トレース画面上の前記差異に対応する位置に表示する、
ことを特徴とする請求項１に記載のプログラマブルコントローラシステム。
【請求項３】
前記複数の構成要素は、
前記第２バスに接続され、前記マイクロプロセッサの実行結果を表すデータを格納するデータメモリと、
プラント機器と前記第２バスとに接続され、前記マイクロプロセッサからのデジタル信号をアナログ信号に変換してそのアナログ信号を前記プラント機器に出力し、前記プラント機器からのアナログ信号をデジタル信号に変換してそのデジタル信号を前記マイクロプロセッサに出力するプロセス入出力回路と、
を含む
ことを特徴とする請求項１または請求項２に記載のプログラマブルコントローラシステム。
【請求項４】
前記エンジニアリングツールは、前記診断プログラムを実行させるための指示を前記マイクロプロセッサに送信する指示部、をさらに具備し、
前記マイクロプロセッサは、前記指示部からの指示に応じて、前記診断プログラムを実行する、
ことを特徴とする請求項１ないし請求項３のいずれか１項に記載のプログラマブルコントローラシステム。
【請求項５】
前記マイクロプロセッサは、起動時に、前記診断プログラムを実行する、
ことを特徴とする請求項１ないし請求項４のいずれか１項に記載のプログラマブルコントローラシステム。
【請求項６】
前記マイクロプロセッサは、一定時間毎に前記診断プログラムを実行し、一定時間毎に前記トレースデータ格納メモリに格納された前記測定結果を前記エンジニアリングツールに送信し、
前記エンジニアリングツールは、前記マイクロプロセッサから一定時間毎に送信される前記測定結果を順次格納する経年変化データベース、をさらに具備し、
前記異常原因データベースには、一定時間毎の前記期待値トレースデータが格納され、
前記波形表示制御部は、前記経年変化データベースに格納された前記測定結果に含まれる一定時間毎の前記測定値トレースデータと、前記異常原因データベースに格納された一定時間毎の前記期待値トレースデータとを表す経年変化画面を前記表示装置に表示し、
前記異常表示制御部は、前記経年変化データベースに順次格納された一定時間毎の前記測定値トレースデータと前記異常原因データベースに格納された一定時間毎の前記期待値トレースデータとが一致しないときに、前記異常原因データベースに格納された前記因果関係情報のうちの、前記マイクロプロセッサと前記１つの構成要素間のアクセス時の経年変化による異常の原因を同定する第１経年変化表示レベル情報を前記経年変化画面上に表示する、
ことを特徴とする請求項１ないし請求項５のいずれか１項に記載のプログラマブルコントローラシステム。
【請求項７】
前記異常原因データベースに格納された前記因果関係情報のうちの、前記第１経年変化表示レベル情報が表す経年変化による異常の前段階の異常を同定する第２経年変化表示レベル情報は、一定時間毎の前記測定値トレースデータと一定時間毎の前記期待値トレースデータとの差異を表し、
前記異常表示制御部は、前記第２経年変化表示レベル情報を前記経年変化画面上の前記差異に対応する位置に表示する、
ことを特徴とする請求項６に記載のプログラマブルコントローラシステム。
【請求項８】
前記波形表示制御部は、前記トレース画面と前記経年変化画面との両方の画面を前記表示装置に表示する、
ことを特徴とする請求項６または請求項７に記載のプログラマブルコントローラシステム。
【請求項９】
前記波形表示制御部は、利用者の切り替え操作に応じて前記トレース画面と前記経年変化画面との一方の画面を選択的に前記表示装置に表示する、
ことを特徴とする請求項６または請求項７に記載のプログラマブルコントローラシステム。
【請求項１０】
前記アクセス制御部の前記トレース制御回路は、前記マイクロプロセッサが前記診断プログラムを実行したときに、前記マイクロプロセッサと前記１つの構成要素間のアクセスに対して、所定のタイミングで前記測定値トレースデータを生成する、
ことを特徴とする請求項１ないし請求項９のいずれか１項に記載のプログラマブルコントローラシステム。
【請求項１１】
前記アクセス制御部は、
前記マイクロプロセッサが前記診断プログラムを実行したときに、前記マイクロプロセッサと前記１つの構成要素間のアクセスに対して前記第１バスおよび前記第２バスの少なくとも一方のバスに異常がある場合に、前記少なくとも一方のバスの異常を表すエラー検出信号を出力するエラー検出回路、
をさらに具備し、
前記アクセス制御部の前記トレース制御回路は、前記エラー検出信号をトリガとして前記測定値トレースデータを生成し、
前記測定結果は、さらに、前記少なくとも一方のバスの異常を表すエラーログを含む、
ことを特徴とする請求項１ないし請求項９のいずれか１項に記載のプログラマブルコントローラシステム。
【請求項１２】
前記アクセス制御部の前記トレース制御回路は、前記マイクロプロセッサが前記診断プログラムを実行したときに、前記少なくとも一方のバスに異常がない場合に、前記マイクロプロセッサと前記１つの構成要素間のアクセスに対して、所定のタイミングで前記測定値トレースデータを生成する、
ことを特徴とする請求項１１に記載のプログラマブルコントローラシステム。
【請求項１３】
前記エンジニアリングツールと共にコンピュータに設けられ、前記エンジニアリングツールに接続されたＪＴＡＧ（Ｊｏｉｎｔ  Ｔｅｓｔ  Ａｃｔｉｏｎ  Ｇｒｏｕｐ）接続ツールと、
前記ＪＴＡＧ接続ツールに接続されるＪＴＡＧ用アダプタと、
をさらに具備し、
前記プログラマブルコントローラユニットの前記マイクロプロセッサは、ＯＳ（Ｏｐｅｒａｔｉｎｇ  Ｓｙｓｔｅｍ）上で動作し、前記ＪＴＡＧ用アダプタに接続されるＪＴＡＧポートを有し、
前記エンジニアリングツールは、
前記ＯＳの異常により前記マイクロプロセッサと通信ができないときに、前記測定結果を要求するためのデータ要求を前記ＪＴＡＧ接続ツール、前記ＪＴＡＧ用アダプタおよび前記ＪＴＡＧポートを介して前記マイクロプロセッサに送信する要求部、
をさらに具備し、
前記マイクロプロセッサは、前記データ要求に応じて、前記アクセス制御部の前記トレースデータ格納メモリに格納された前記測定結果を読み取り、前記測定結果を前記ＪＴＡＧポート、前記ＪＴＡＧ用アダプタおよび前記ＪＴＡＧ接続ツールを介して前記エンジニアリングツールに送信する、
ことを特徴とする請求項１ないし請求項１２のいずれか１項に記載のプログラマブルコントローラシステム。
【請求項１４】
前記エンジニアリングツールと共にコンピュータに設けられ、前記エンジニアリングツールに接続されたＪＴＡＧ（Ｊｏｉｎｔ  Ｔｅｓｔ  Ａｃｔｉｏｎ  Ｇｒｏｕｐ）接続ツールと、
前記ＪＴＡＧ接続ツールに接続されるＪＴＡＧ用アダプタと、
をさらに具備し、
前記プログラマブルコントローラユニットの前記アクセス制御部は、前記ＪＴＡＧ用アダプタに接続されるＪＴＡＧポートを有し、
前記エンジニアリングツールは、
前記マイクロプロセッサと通信ができないときに、前記測定結果を要求するためのデータ要求を前記ＪＴＡＧ接続ツール、前記ＪＴＡＧ用アダプタおよび前記ＪＴＡＧポートを介して前記アクセス制御部に送信する要求部、
をさらに具備し、
前記アクセス制御部は、前記データ要求に応じて、前記トレースデータ格納メモリに格納された前記測定結果を前記ＪＴＡＧポート、前記ＪＴＡＧ用アダプタおよび前記ＪＴＡＧ接続ツールを介して前記エンジニアリングツールに送信する、
ことを特徴とする請求項１ないし請求項１２のいずれか１項に記載のプログラマブルコントローラシステム。
【請求項１５】
前記プログラマブルコントローラユニットに着脱可能な不揮発性メモリモジュール、
をさらに具備し、
前記アクセス制御部の前記トレース制御回路は、前記マイクロプロセッサが前記診断プログラムを実行したときに前記測定結果を前記トレースデータ格納メモリと前記不揮発性メモリモジュールとに格納する、
ことを特徴とする請求項１ないし請求項１２のいずれか１項に記載のプログラマブルコントローラシステム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明の実施形態は、プログラマブルコントローラシステムに関する。
【背景技術】
【０００２】
制御用ディジタルコントローラの自己診断を行う技術が特許文献１に記載されている。特許文献１に記載された制御用ディジタルコントローラは、マイクロプロセッサを用いて制御処理を行うものであって、自己診断を行う手段と、この自己診断により検出された重大なエラーをエラーログファイルに記憶する手段と、検出された軽微なエラーに対して再試行を行う手段と、この再試行回数をリトライカウンタ・ログファイルに記憶する手段と、上記再試行回数からエラーの重大性を判断する手段と、を備えている。
【０００３】
制御用ディジタルコントローラでは、重大なエラーの内容を予め設定しておき、自己診断を行った結果、エラーが発生した場合にそのエラーが重大なエラーであるのか否かを判別する。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開平４−２４５３０９号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
上述した特許文献１に記載の制御用ディジタルコントローラでは、エラーが発生したことや、そのエラーが重大なものであるか否かなどの事実が分かるだけであり、それ以上の情報が得られない。このため、エラーが発生した要因を追究するために、観測ツールなどを制御用ディジタルコントローラに接続して、動作確認や解析を行う必要があり、多くの時間を費やしてしまう。そのため、観測ツールなどの接続を必要とせずに動作確認や解析を実施できることが望ましい。
【０００６】
また、制御用ディジタルコントローラをプラント機器に接続する場合に、エラーが発生する度に観測ツールを制御用ディジタルコントローラに接続することも多くの時間を費やしてしまう。そのため、遠隔地で動作確認や解析を実施できることが望ましい。
【０００７】
本発明が解決しようとする課題は、観測ツールなどの接続を必要とせずに遠隔地で動作確認や解析を実施することにある。
【課題を解決するための手段】
【０００８】
実施形態のプログラマブルコントローラシステムは、プログラマブルコントローラユニットと、このプログラマブルコントローラユニットと通信可能なエンジニアリングツールと、を具備し、前記プログラマブルコントローラユニットは、複数の構成要素と、自身と前記複数の構成要素のうちの１つの構成要素との間のアクセスの診断を行うための診断プログラムを実行するマイクロプロセッサと、アクセス制御部と、を具備し、前記アクセス制御部は、トレースデータ格納メモリを備えて、第１バスおよび第２バスに接続されて、前記マイクロプロセッサが前記診断プログラムを実行したときに、前記マイクロプロセッサと前記１つの構成要素間のアクセスに用いられる信号の波形をトレースした測定値トレースデータを生成し、前記測定値トレースデータを含む測定結果を前記トレースデータ格納メモリに格納するトレース制御回路、を具備し、前記マイクロプロセッサは、前記トレースデータ格納メモリに格納された前記測定結果を前記エンジニアリングツールに送信し、前記エンジニアリングツールは、前記マイクロプロセッサと前記１つの構成要素間のアクセス時において理想的な値を表す期待値トレースデータと、前記マイクロプロセッサと前記１つの構成要素間のアクセス時の異常の原因となる因果関係を表す因果関係情報とが格納された異常原因データベースと、前記測定結果に含まれる前記測定値トレースデータおよび前記異常原因データベースに格納された前記期待値トレースデータを表すトレース画面を表示装置に表示する波形表示制御部と、前記測定値トレースデータと前記期待値トレースデータとが一致しないときに、前記異常原因データベースに格納された前記因果関係情報のうちの、前記マイクロプロセッサと前記１つの構成要素間のアクセス時の異常の原因を同定する第１表示レベル情報を前記トレース画面上に表示する異常表示制御部と、を具備することを特徴とする。
【発明の効果】
【０００９】
本発明によれば、観測ツールなどの接続を必要とせずに遠隔地で動作確認や解析を実施することができる。
【図面の簡単な説明】
【００１０】
【図１】第１実施形態に係るプログラマブルコントローラシステムの構成を示すブロック図である。
【図２】第１実施形態に係るプログラマブルコントローラシステムにおけるプログラマブルコントローラユニットのアクセス制御部の構成を示すブロック図である。
【図３】第１実施形態に係るプログラマブルコントローラシステムにおけるエンジニアリングツール内の異常原因データベースを示す図である。
【図４】第１実施形態に係るプログラマブルコントローラシステムにおいて、データメモリリード診断プログラムを表す情報に対応付けて異常原因データベースに格納された因果関係情報を示す図である。
【図５】第１実施形態に係るプログラマブルコントローラシステムにおいて、プロセス入出力回路リード診断プログラムを表す情報に対応付けて異常原因データベースに格納された因果関係情報を示す図である。
【図６】第１実施形態に係るプログラマブルコントローラシステムの動作を示すフローチャートである。
【図７】第１実施形態に係るプログラマブルコントローラシステムにおいて、データメモリリード診断プログラムが実行されたときに表示装置に表示されるトレース画面を示す図である。
【図８】第１実施形態に係るプログラマブルコントローラシステムにおいて、プロセス入出力回路リード診断プログラムが実行されたときに表示装置に表示されるトレース画面を示す図である。
【図９】第２実施形態に係るプログラマブルコントローラシステムにおけるプログラマブルコントローラユニットのアクセス制御部の構成を示すブロック図である。
【図１０】第２実施形態に係るプログラマブルコントローラシステムの動作を示すフローチャートである。
【図１１】第３実施形態に係るプログラマブルコントローラシステムの動作を示すフローチャートである。
【図１２】第４実施形態に係るプログラマブルコントローラシステムの構成を示すブロック図である。
【図１３】第４実施形態に係るプログラマブルコントローラシステムにおけるエンジニアリングツール内の経年変化データベースを示す図である。
【図１４】第４実施形態に係るプログラマブルコントローラシステムにおけるエンジニアリングツール内の異常原因データベースを示す図である。
【図１５】第４実施形態に係るプログラマブルコントローラシステムにおいて、プロセス入出力回路リード診断プログラムを表す情報に対応付けて異常原因データベースに格納された因果関係情報を示す図である。
【図１６】第４実施形態に係るプログラマブルコントローラシステムの動作を示すフローチャートである。
【図１７】第４実施形態に係るプログラマブルコントローラシステムにおいて、プロセス入出力回路リード診断プログラムが実行されたときに表示装置に表示される経年変化画面を示す図である。
【図１８】第４実施形態に係るプログラマブルコントローラシステムにおける画面表示パターンを示す図である。
【図１９】第４実施形態に係るプログラマブルコントローラシステムにおける画面表示パターンを示す図であって、図１８とは異なる例を示している。
【図２０】第５実施形態に係るプログラマブルコントローラシステムの構成を示すブロック図である。
【図２１】第５実施形態に係るプログラマブルコントローラシステムの動作を示すフローチャートである。
【図２２】第５実施形態に係るプログラマブルコントローラシステムの動作を示すフローチャートであって、図２１とは異なる例を示している。
【図２３】第６実施形態に係るプログラマブルコントローラシステムの構成を示すブロック図である。
【発明を実施するための形態】
【００１１】
以下、本発明に係るプログラマブルコントローラシステムの実施形態について、図面を参照して説明する。ここで、互いに同一または類似の部分には共通の符号を付して、重複説明は省略する。
【００１２】
［第１実施形態］
図１は、第１実施形態に係るプログラマブルコントローラシステムの構成を示すブロック図である。
【００１３】
第１実施形態に係るプログラマブルコントローラシステムは、プログラマブルコントローラユニット６Ａと、エンジニアリングツール６Ｂと、表示装置４０と、を具備している。プログラマブルコントローラユニット６Ａは、エンジニアリングツール６Ｂに接続され、互いに通信可能である。表示装置４０は、エンジニアリングツール６Ｂに接続され、コンピュータ２６を構成する。エンジニアリングツール６Ｂおよび表示装置４０は、プログラマブルコントローラユニット６Ａに対して遠隔地に設けられている。
【００１４】
プログラマブルコントローラユニット６Ａは、マイクロプロセッサ１と、アクセス制御部２と、複数の構成要素と、を具備している。マイクロプロセッサ１は、通信回線を介してエンジニアリングツール６Ｂに接続されている。アクセス制御部２は、第１バス７を介してマイクロプロセッサ１に接続され、第２バス８を介して複数の構成要素に接続されている。
【００１５】
アクセス制御部２は、マイクロプロセッサ１と複数の構成要素のうちの１つの構成要素との間のアクセスを制御する。
【００１６】
マイクロプロセッサ１の内蔵メモリ３には、制御プログラムのコードが書き込まれている。制御プログラムは、マイクロプロセッサ１が原子力発電所などのプラント機器１００を監視するためのコンピュータプログラムである。
【００１７】
本実施形態では、上記複数の構成要素をデータメモリ４およびプロセス入出力回路５であるものとする。データメモリ４は、マイクロプロセッサ１の実行結果を表すデータを格納する。マイクロプロセッサ１は、通常、内蔵メモリ３に書き込まれた制御プログラムを実行してプロセス入出力回路５を介してプラント機器１００を監視する。
【００１８】
ここで、マイクロプロセッサ１とデータメモリ４との間のアクセスについて簡単に説明する。
【００１９】
データメモリ４は、記憶領域を有する複数のチップ３２とドライバ３１とを備えている。複数のチップ３２の各々は複数のメモリセルを有している。ドライバ３１は複数のチップ３２と第２バス８とに接続されている。
【００２０】
マイクロプロセッサ１は、データメモリ４に演算データを書き込む場合（マイクロプロセッサ１からデータメモリ４への書き込み）、チップイネーブル信号と、アドレス信号（行アドレスおよび列アドレスを含む）と、ライト信号と、演算データとをドライバ３１に与える。この場合、ドライバ３１は、複数のチップ３２のうちの、アドレス信号およびチップイネーブル信号により指定されたチップ３２を選択チップ３２として選択し、選択チップ３２の複数のメモリセルのうちの、アドレス信号により指定されたメモリセルを選択メモリセルとして選択し、ライト信号に応じて、選択メモリセルに演算データを書き込む。
【００２１】
マイクロプロセッサ１は、データメモリ４から演算データを読み出す場合（データメモリ４からマイクロプロセッサ１への読み出し）、チップイネーブル信号と、アドレス信号（行アドレスおよび列アドレスを含む）と、リード信号とをドライバ３１に与える。この場合、ドライバ３１は、複数のチップ３２のうちの、アドレス信号およびチップイネーブル信号により指定されたチップ３２を選択チップ３２として選択し、選択チップ３２の複数のメモリセルのうちの、アドレス信号により指定されたメモリセルを選択メモリセルとして選択し、リード信号に応じて、選択メモリセルから演算データを読み出し、マイクロプロセッサ１に出力する。
【００２２】
次に、マイクロプロセッサ１とプロセス入出力回路５との間のアクセスについて簡単に説明する。
【００２３】
複数のプラント機器１００の各々には、プラント機器１００のパラメータ（たとえば、温度、開度、圧力）を監視するための複数のセンサ（図示しない）が設けられている。複数のセンサとしては、プラント機器１００の温度を監視する温度センサや、プラント機器１００の制御弁の開閉を監視する開度センサ、プラント機器１００の圧力を監視する圧力センサなどが挙げられる。複数のセンサの各々は、制御信号に応じてプラント機器１００を監視して監視データ（温度、開度、圧力）を出力する。複数のセンサの各々にはユニークなアドレス（回路アドレス信号）が割り当てられている。プロセス入出力回路５は、複数のプロセス入出力部３４とプロセス制御回路３３とを備えている。複数のプロセス入出力部３４は複数のセンサと対応して設けられ、プロセス制御回路３３は複数のプロセス入出力部３４の各々と第２バス８とに接続されている。プロセス入出力部３４は、プラント機器１００に設けられた複数のセンサに接続されている。
【００２４】
マイクロプロセッサ１は、プロセス入出力回路５に制御信号を出力する場合（マイクロプロセッサ１からプロセス入出力回路５への出力）、回路イネーブル信号と、回路アドレス信号と、ライト信号と、デジタル信号である制御データとをプロセス制御回路３３に与える。この場合、プロセス制御回路３３は、複数のプロセス入出力部３４のうちの、回路アドレス信号および回路イネーブル信号により指定されたプロセス入出力部３４を選択プロセス入出力部３４として選択し、選択プロセス入出力部３４に接続された複数のセンサのうちの、回路アドレス信号により指定されたセンサを選択センサとして選択し、ライト信号に応じて、制御信号（デジタル信号）をアナログ信号に変換してそのアナログ信号を選択センサに出力する。
【００２５】
マイクロプロセッサ１は、プロセス入出力回路５からアナログ信号である監視データを読み出す場合（プロセス入出力回路５からマイクロプロセッサ１への読み出し）、回路イネーブル信号と、回路アドレス信号と、リード信号とをプロセス制御回路３３に与える。この場合、プロセス制御回路３３は、複数のプロセス入出力部３４のうちの、回路アドレス信号および回路イネーブル信号により指定されたプロセス入出力部３４を選択プロセス入出力部３４として選択し、選択プロセス入出力部３４に接続された複数のセンサのうちの、回路アドレス信号により指定されたセンサを選択センサとして選択し、リード信号に応じて、選択センサから監視データ（アナログ信号）を読み出してデジタル信号に変換してそのデジタル信号をマイクロプロセッサ１に出力する。
【００２６】
マイクロプロセッサ１の内蔵メモリ３には、さらに、複数の診断プログラムのコードが書き込まれている。複数の診断プログラムは、マイクロプロセッサ１と複数の構成要素（データメモリ４およびプロセス入出力回路５）のうちの１つの構成要素との間のアクセスの診断を行うためのコンピュータプログラムである。マイクロプロセッサ１は、内蔵メモリ３に書き込まれた複数の診断プログラムのうちの、エンジニアリングツール６Ｂにより指定される１つの診断プログラムを選択診断プログラムとして選択し、選択診断プログラムを実行する。
【００２７】
ここで、複数の診断プログラムについて説明する。
【００２８】
本実施形態では、複数の診断プログラムをデータメモリライト診断プログラム、データメモリリード診断プログラム、プロセス入出力回路ライト診断プログラム、および、プロセス入出力回路リード診断プログラムであるものとする。
【００２９】
データメモリライト診断プログラムは、マイクロプロセッサ１からデータメモリ４への書き込みの診断を行うためのコンピュータプログラムである。データメモリリード診断プログラムは、データメモリ４からマイクロプロセッサ１への読み出しの診断を行うためのコンピュータプログラムである。プロセス入出力回路ライト診断プログラムは、マイクロプロセッサ１からプロセス入出力回路５への書き込み（出力）の診断を行うためのコンピュータプログラムである。プロセス入出力回路リード診断プログラムは、プロセス入出力回路５からマイクロプロセッサ１への読み出しの診断を行うためのコンピュータプログラムである。
【００３０】
複数の診断プログラムの各々には、後述のトレース設定処理、テスト用アクセス処理、および、トレースデータ転送処理を表すコードが書き込まれている。トレース設定情報は、トレースが行われるデバイス間の信号を選択するトレース選択と、トレースが行われるタイミングを表すトリガと、トレース用クロック信号を決定するためのトレース周期とを設定するための情報を含んでいる。
【００３１】
エンジニアリングツール６Ｂは、指示部６０と、波形表示制御部６１と、異常検出部６２と、異常表示制御部６３と、異常原因データベース６４と、を具備している。エンジニアリングツール６Ｂの各構成要素の動作については後述する。
【００３２】
エンジニアリングツール６Ｂの各構成要素は、ハードウェアまたはソフトウェアにより構成されている。たとえば、エンジニアリングツール６Ｂの各構成要素がソフトウェアである場合、第１実施形態に係るプログラマブルコントローラシステムは、さらに、エンジニアリングツール６Ｂと表示装置４０とを備えたコンピュータ２６を具備する。そのコンピュータ２６は、コンピュータプログラムが格納された記憶部と、そのコンピュータプログラムを記憶部から読み出して実行するＣＰＵ（Ｃｅｎｔｒａｌ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ）とを備えている。コンピュータプログラムは、後述するエンジニアリングツール６Ｂの各構成要素の機能を実現する。
【００３３】
図２は、プログラマブルコントローラユニット６Ａのアクセス制御部２の構成を示すブロック図である。
【００３４】
アクセス制御部２は、アクセス制御回路９と、トレース制御回路３０と、を具備している。
【００３５】
アクセス制御回路９は、第１バス７と第２バス８とに接続され、マイクロプロセッサ１とデータメモリ４およびプロセス入出力回路５との間のアクセスを制御する。
【００３６】
トレース制御回路３０は、マイクロプロセッサ１が複数の診断プログラムのうちの１つの診断プログラムを選択診断プログラムとして実行したときに、マイクロプロセッサ１と１つの構成要素間のアクセスに用いられる信号の波形をトレースした測定値トレースデータ１６を生成し、測定値トレースデータ１６を含む測定結果をトレース制御回路３０内のトレースデータ格納メモリ２０に格納する。このトレース制御回路３０は、さらに、設定レジスタ１０と、ＰＬＬ回路１４と、データ選択回路１８と、リード・ライト制御回路２２と、を具備している。これらの動作については後述する。
【００３７】
図３は、エンジニアリングツール６Ｂ内の異常原因データベース６４を示す図である。
【００３８】
異常原因データベース６４には、マイクロプロセッサ１と１つの構成要素間のアクセス時の理想的な値を表す期待値トレースデータ５１〜５４と、マイクロプロセッサ１と１つの構成要素間のアクセス時の異常の原因となる因果関係を表す因果関係情報５５〜５８とが格納されている。
【００３９】
具体的には、異常原因データベース６４には、複数の診断プログラムのうちのデータメモリライト診断プログラムを表す情報に対応付けて、マイクロプロセッサ１からデータメモリ４への書き込み時の理想的な値を表す期待値トレースデータ５１と、その書き込み時の異常の原因となる因果関係を表す因果関係情報５５とが格納されている。期待値トレースデータ５１としては、アドレス信号Ｄ１１（立ち上りタイミング、立ち下りタイミングおよびアドレス値）と、チップイネーブル信号Ｄ１２（立ち上りタイミングおよび立ち下りタイミング）と、ライト信号Ｄ１３（立ち上りタイミングおよび立ち下りタイミング）とが挙げられる。因果関係情報５５は、ファイル名“○○○”として異常原因データベース６４に格納されている。
【００４０】
また、異常原因データベース６４には、複数の診断プログラムのうちのデータメモリリード診断プログラムを表す情報に対応付けて、データメモリ４からマイクロプロセッサ１への読み出し時の理想的な値を表す期待値トレースデータ５２と、その読み出し時の異常の原因となる因果関係を表す因果関係情報５６とが格納されている。期待値トレースデータ５２としては、アドレス信号Ｄ２１（立ち上りタイミング、立ち下りタイミングおよびアドレス値）と、チップイネーブル信号Ｄ２２（立ち上りタイミングおよび立ち下りタイミング）と、リード信号Ｄ２３（立ち上りタイミングおよび立ち下りタイミング）と、メモリデータＤ２４（立ち上りタイミング、立ち下りタイミングおよびデータ値）とが挙げられる。因果関係情報５６は、ファイル名“○○△”として異常原因データベース６４に格納されている。
【００４１】
また、異常原因データベース６４には、複数の診断プログラムのうちのプロセス入出力回路ライト診断プログラムを表す情報に対応付けて、マイクロプロセッサ１からプロセス入出力回路５への書き込み（出力）時の理想的な値を表す期待値トレースデータ５３と、その書き込み時の異常の原因となる因果関係を表す因果関係情報５７とが格納されている。期待値トレースデータ５３としては、回路アドレス信号Ｄ３１（立ち上りタイミング、立ち下りタイミングおよびアドレス値）と、回路イネーブル信号Ｄ３２（立ち上りタイミングおよび立ち下りタイミング）と、ライト信号Ｄ３３（立ち上りタイミングおよび立ち下りタイミング）とが挙げられる。因果関係情報５７は、ファイル名“○△△”として異常原因データベース６４に格納されている。
【００４２】
また、異常原因データベース６４には、複数の診断プログラムのうちのプロセス入出力回路リード診断プログラムを表す情報に対応付けて、プロセス入出力回路５からマイクロプロセッサ１への読み出し時の理想的な値を表す期待値トレースデータ５４と、その読み出し時の異常の原因となる因果関係を表す因果関係情報５８とが格納されている。期待値トレースデータ５４としては、回路アドレス信号Ｄ４１（立ち上りタイミング、立ち下りタイミングおよびアドレス値）と、回路イネーブル信号Ｄ４２（立ち上りタイミングおよび立ち下りタイミング）と、リード信号Ｄ４３（立ち上りタイミングおよび立ち下りタイミング）と、監視データＤ４４（立ち上りタイミング、立ち下りタイミングおよびデータ値）とが挙げられる。因果関係情報５８は、ファイル名“△△△”として異常原因データベース６４に格納されている。
【００４３】
図４は、データメモリリード診断プログラムを表す情報に対応付けて異常原因データベース６４に格納された因果関係情報５６“○○△”を示す図である。
【００４４】
データメモリリード診断プログラムを例にした場合、異常原因データベース６４に格納されている期待値トレースデータ５２としては、上述のアドレス信号Ｄ２１、チップイネーブル信号Ｄ２２、リード信号Ｄ２３、および、演算データ（メモリデータ）Ｄ２４の理想的な値（期待値）が挙げられる。この場合、異常原因データベース６４に格納されている因果関係情報５６“○○△”は、第１表示レベル情報５６Ａと第２表示レベル情報５６Ｂと第３表示レベル情報５６Ｃとを含んでいる。
【００４５】
第１表示レベル情報５６Ａは、データメモリ４からマイクロプロセッサ１への読み出し時の異常の原因を同定するための情報である。たとえば、その異常の原因としては“リード信号異常”、“チップイネーブル信号異常”、“アドレス信号異常”、および、“メモリ素子異常”が挙げられる。
【００４６】
第２表示レベル情報５６Ｂは、第１表示レベル情報５６Ａが表す異常の前段階の異常を同定するための情報である。第１表示レベル情報５６Ａ“リード信号異常”の前段階の異常としては“リード信号セットアップ時間異常”が挙げられる。第１表示レベル情報５６Ａ“チップイネーブル信号異常”の前段階の異常としては“チップイネーブル信号セットアップ時間異常”が挙げられる。第１表示レベル情報５６Ａ“アドレス信号異常”の前段階の異常としては“アドレス信号値異常”または“アドレス信号セットアップ時間異常”が挙げられる。
【００４７】
第３表示レベル情報５６Ｃは、第２表示レベル情報５６Ｂが表す異常の前段階の異常、または、第２表示レベル情報５６Ｂが表す異常が該当しないときに第１表示レベル情報５６Ａが表す異常の前段階の異常を同定するための情報である。第２表示レベル情報５６Ｂ“アドレス信号値異常”の前段階の異常、または、第１表示レベル情報５６Ａ“メモリ素子異常”の前段階の異常としては“メモリデータ信号値異常”が挙げられる。第２表示レベル情報５６Ｂ“リード信号セットアップ時間異常”、“チップイネーブル信号セットアップ時間異常”、および、“アドレス信号セットアップ時間異常”の前段階の異常、または、第１表示レベル情報５６Ａ“メモリ素子異常”の前段階の異常としては“メモリデータセットアップ時間異常”が挙げられる。
【００４８】
図５は、プロセス入出力回路リード診断プログラムを表す情報に対応付けて異常原因データベース６４に格納された因果関係情報５８“△△△”を示す図である。
【００４９】
プロセス入出力回路リード診断プログラムを例にした場合、異常原因データベース６４に格納されている期待値トレースデータ５４としては、上述の回路アドレス信号Ｄ４１、回路イネーブル信号Ｄ４２、リード信号Ｄ４３、および、監視データＤ４４（温度、開度、圧力）の理想的な値（期待値）が挙げられる。この場合、異常原因データベース６４に格納されている因果関係情報５８“△△△”は、第１表示レベル情報５８Ａと第２表示レベル情報５８Ｂと第３表示レベル情報５８Ｃとを含んでいる。
【００５０】
第１表示レベル情報５８Ａは、プロセス入出力回路５からマイクロプロセッサ１への読み出し時の異常の原因を同定するための情報である。たとえば、その異常の原因としては“リード信号異常”、“回路イネーブル信号異常”、および、“回路アドレス信号異常”が挙げられる。
【００５１】
第２表示レベル情報５８Ｂは、第１表示レベル情報５８Ａが表す異常の前段階の異常を同定するための情報である。第１表示レベル情報５８Ａ“リード信号異常”の前段階の異常としては“リード信号セットアップ時間異常”が挙げられる。第１表示レベル情報５８Ａ“回路イネーブル信号異常”の前段階の異常としては“回路イネーブル信号セットアップ時間異常”が挙げられる。第１表示レベル情報５８Ａ“回路アドレス信号異常”の前段階の異常としては“回路アドレス信号値異常”または“回路アドレス信号セットアップ時間異常”が挙げられる。
【００５２】
第３表示レベル情報５８Ｃは、第２表示レベル情報５８Ｂが表す異常の前段階の異常、または、第２表示レベル情報５８Ｂが表す異常が該当しないときに第１表示レベル情報５８Ａが表す異常の前段階の異常を同定するための情報である。第２表示レベル情報５８Ｂ“回路アドレス信号値異常”の前段階の異常としては“監視データ値異常”が挙げられる。第２表示レベル情報５８Ｂ“リード信号セットアップ時間異常”、“回路イネーブル信号セットアップ時間異常”、および、“回路アドレス信号セットアップ時間異常”の前段階の異常としては“プロセス入出力回路セットアップ時間異常”が挙げられる。
【００５３】
図６は、第１実施形態に係るプログラマブルコントローラシステムの動作を示すフローチャートである。図７は、データメモリリード診断プログラムが実行されたときに表示装置４０に表示されるトレース画面５０を示す図である。
【００５４】
エンジニアリングツール６Ｂの指示部６０は、マイクロプロセッサ１の内蔵メモリ３に書き込まれた複数の診断プログラムのうちの１つの診断プログラムを実行させるための指示をマイクロプロセッサ１に送信する（ステップＳ１）。
【００５５】
マイクロプロセッサ１は、マイクロプロセッサ１の内蔵メモリ３に書き込まれた複数の診断プログラムのうちの、エンジニアリングツール６Ｂにより指定される１つの診断プログラムを選択診断プログラムとして選択し、選択診断プログラムを実行する（ステップＳ２）。
【００５６】
たとえば、選択診断プログラムは、データメモリリード診断プログラムであるものとする。この場合、マイクロプロセッサ１は、データメモリリード診断プログラムのトレース設定処理、テスト用アクセス処理、および、トレースデータ転送処理を実行する。
【００５７】
まず、図２に示されるように、トレース設定処理において、マイクロプロセッサ１は、データメモリリード診断プログラムに対するトレース設定情報（トレース選択、トリガ、トレース周期および設定時間の設定に関する情報）をアクセス制御部２の設定レジスタ１０に設定する。このとき、マイクロプロセッサ１は、設定レジスタ１０に設定されたトレース設定情報の設定時間だけ、基準クロックであるプロセッサクロック信号１２をアクセス制御部２に出力する（ステップＳ３）。
【００５８】
ここで、アクセス制御部２のＰＬＬ回路１４には、周波数選択信号１１およびプロセッサクロック信号１２が与えられる。周波数選択信号１１は、トレース設定処理において設定レジスタ１０に設定されたトレース設定情報のトレース周期を表している。ＰＬＬ回路１４は、周波数選択信号１１が表すトレース周期に基づいてプロセッサクロック信号１２の周期を分周したクロック（たとえば１／２に分周したクロック）を生成し、そのクロックをトレース用クロック信号１３として出力する。ＰＬＬ回路１４は、プロセッサクロック信号１２を受け取っている間、トレース用クロック信号１３を出力する。すなわち、設定時間だけトレース用クロック信号１３を出力する。
【００５９】
また、アクセス制御部２のデータ選択回路１８には、設定レジスタ１０からトレース・トリガ選択信号１５が与えられる。トレース・トリガ選択信号１５は、トレース設定処理において設定レジスタ１０に設定されたトレース設定情報のトレース選択およびトリガを表している。
【００６０】
次に、テスト用アクセス処理において、マイクロプロセッサ１は、データメモリリード診断プログラムに対するトレース許可信号を“有効”にしてアクセス制御部２の設定レジスタ１０に設定する（ステップＳ４）。
【００６１】
アクセス制御部２のデータ選択回路１８は、設定レジスタ１０に設定されたトレース設定情報のトレース選択およびトリガ（トレース・トリガ選択信号１５）に基づいて、トレースが行われるデバイス間の信号を第２バス８から選択し、その信号を測定値トレースデータ１６としてトレースデータ格納メモリ２０に出力する（ステップＳ５）。選択診断プログラムがデータメモリリード診断プログラムである場合、測定値トレースデータ１６としては、アドレス信号、チップイネーブル信号、リード信号、および、演算データ（メモリデータ）などを表す値が例示される。この場合のアドレス信号、チップイネーブル信号、リード信号、および、メモリデータをそれぞれアドレス信号Ｃ２１、チップイネーブル信号Ｃ２２、リード信号Ｃ２３、および、メモリデータＣ２４と表記する。
【００６２】
また、アクセス制御部２のデータ選択回路１８は、トレースが行われる所定のタイミングとしてトリガ信号１７をリード・ライト制御回路２２に出力する（ステップＳ６−ＹＥＳ）。
【００６３】
アクセス制御部２のリード・ライト制御回路２２には、トレース許可信号１９Ａが与えられる。トレース許可信号１９Ａは、テスト用アクセス処理において設定レジスタ１０に設定されたトレース許可信号であり、その信号が“有効”であることを表している。リード・ライト制御回路２２は、トリガ信号１７を受けとったたきに、設定レジスタ１０に設定されたトレース許可信号１９Ａ“有効”と、トリガ信号１７とに応じて、ＰＬＬ回路１４からのトレース用クロック信号１３に同期したトレースライト信号１９Ｃを設定時間だけトレースデータ格納メモリ２０に出力する。トレースデータ格納メモリ２０は、リード・ライト制御回路２２からのトレースライト信号１９Ｃに応じて、測定結果を自身のメモリ領域に格納する（ステップＳ７）。
【００６４】
測定結果は、データ選択回路１８からの測定値トレースデータ１６（アドレス信号Ｃ２１、チップイネーブル信号Ｃ２２、リード信号Ｃ２３、および、メモリデータＣ２４などを表す値）と、測定値トレースデータ１６を格納するときに用いられるクロック信号としてトレース用クロック信号１３とを含んでいる。上記クロック信号は、トレース用クロック信号１３の他に、トレース用クロック信号１３に基づいて上述の分周比から求められるプロセッサクロック信号１２も含んでいてもよい。
【００６５】
アクセス制御部２のリード・ライト制御回路２２は、トレース用クロック信号１３を受け取れなくなったときに、すなわち、設定時間が経過したときに、トレース許可信号１９Ａを“無効”にするためのトレース状況信号２１を設定レジスタ１０に出力する。マイクロプロセッサ１は、トレース許可信号１９Ａを参照することにより、トレースの実行が終了したことを認識する。この場合、トレースデータ転送処理において、マイクロプロセッサ１は、データメモリリード診断プログラムに対するリード許可信号をアクセス制御部２の設定レジスタ１０に設定する（ステップＳ８）。
【００６６】
アクセス制御部２のリード・ライト制御回路２２には、リード許可信号１９Ｂが与えられる。リード許可信号１９Ｂは、トレースデータ転送処理において設定レジスタ１０に設定されたリード許可信号を表している。リード・ライト制御回路２２は、リード許可信号１９Ｂに応じて、ＰＬＬ回路１４からのトレース用クロック信号１３に同期したトレースリード信号１９Ｄをトレースデータ格納メモリ２０に出力する。トレースデータ格納メモリ２０は、リード・ライト制御回路２２からのトレースリード信号１９Ｄに応じて、自身のメモリ領域に格納された測定結果（測定値トレースデータ１６、クロック信号）を第２バス８、アクセス制御回路９および第１バス７を介してマイクロプロセッサ１に出力する（ステップＳ９）。
【００６７】
マイクロプロセッサ１は、測定結果（測定値トレースデータ１６、クロック信号）と選択診断プログラム（データメモリリード診断プログラム）を表す情報とをエンジニアリングツール６Ｂに送信（転送）する（ステップＳ１０）。
【００６８】
エンジニアリングツール６Ｂの波形表示制御部６１は、マイクロプロセッサ１からの測定結果と選択診断プログラムを表す情報とを受け取り、選択診断プログラムの実行結果として、図７に示されるようなトレース画面５０を表示装置４０に表示する（ステップＳ１１）。
【００６９】
このトレース画面５０は、波形表示欄５０Ａと異常原因表示欄５０Ｂとを含んでいる。波形表示欄５０Ａはトレース画面５０の中央部分に設けられ、異常原因表示欄５０Ｂは、トレース画面５０の波形表示欄５０Ａ以外の部分、たとえば波形表示欄５０Ａの下方部分に設けられている。
【００７０】
この場合、波形表示制御部６１は、測定結果に含まれるクロック信号（プロセッサクロック信号１２、トレース用クロック信号１３）を表す波形と、測定結果に含まれる測定値トレースデータ１６（アドレス信号Ｃ２１、チップイネーブル信号Ｃ２２、リード信号Ｃ２３、および、メモリデータＣ２４など）を表す波形と、異常原因データベース６４に格納された期待値トレースデータ５２（アドレス信号Ｃ２１、チップイネーブル信号Ｃ２２、リード信号Ｃ２３、および、メモリデータＣ２４など）を表す波形と、をトレース画面５０の波形表示欄５０Ａに表示する。
【００７１】
波形表示制御部６１がトレース画面５０を表示装置４０に表示したとき、エンジニアリングツール６Ｂの異常検出部６２は、測定値トレースデータ１６と期待値トレースデータ５２とを比較し、比較結果を生成する（ステップＳ１２）。
【００７２】
ここで、エンジニアリングツール６Ｂの異常表示制御部６３は、異常検出部６２による比較結果が測定値トレースデータ１６と期待値トレースデータ５２との不一致を表す場合、以下に示す処理（異常判定処理、および、異常原因特定処理）により、第１表示レベル情報５６Ａおよび第２表示レベル情報５６Ｂをトレース画面５０上に表示する（ステップＳ１２−ＹＥＳ、Ｓ１３）。
【００７３】
異常判定処理、および、異常原因特定処理について、図４を例にして説明する。
【００７４】
まず、異常検出部６２は、異常判定処理を実施する。
【００７５】
（異常判定処理）
異常検出部６２は、測定値トレースデータ１６のメモリデータＣ２４（立ち上りタイミング、立ち下りタイミング、および、データ値）と期待値トレースデータ５２のメモリデータＤ２４（立ち上りタイミング、立ち下りタイミング、および、データ値）とを比較することにより、異常原因データベース６４に格納された因果関係情報５６“○○△”の第３表示レベル情報５６Ｃが表す“メモリデータ信号値異常”、および、“メモリデータセットアップ時間異常”が発生しているか否かを判定する。ここで、メモリデータＣ２４のデータ値とメモリデータＤ２４のデータ値とが一致しない場合、異常検出部６２は、メモリデータＣ２４のデータ値の異常と判定し、第３表示レベル情報５６Ｃ“メモリデータ信号値異常”を選択する。一方、メモリデータＣ２４のタイミング（立ち上りおよび立ち下り）とメモリデータＤ２４のタイミング（立ち上りおよび立ち下り）とが一致しない場合、異常検出部６２は、メモリデータＣ２４のタイミングの異常と判定し、第３表示レベル情報５６Ｃ“メモリデータセットアップ時間異常”を選択する。
【００７６】
次に、異常検出部６２が第３表示レベル情報５６Ｃ“メモリデータ信号値異常”を選択した場合、異常原因データベース６４に格納された因果関係情報５６“○○△”の第２表示レベル情報５６Ｂが表す“アドレス信号値異常”、または、第１表示レベル情報５６Ａが表す“メモリ素子異常”が異常原因である。この場合、異常検出部６２は、以下に示す第１および第２の異常原因特定処理を実施する。
【００７７】
一方、異常検出部６２が第３表示レベル情報５６Ｃ“メモリデータセットアップ時間異常”を選択した場合、異常原因データベース６４に格納された因果関係情報５６“○○△”の第２表示レベル情報５６Ｂが表す“リード信号セットアップ時間異常”、“チップイネーブル信号セットアップ時間異常”、“アドレス信号セットアップ時間異常”、および、第１表示レベル情報５６Ａが表す“メモリ素子異常”が異常原因である。この場合、異常検出部６２は、以下に示す第３〜第６の異常原因特定処理を実施する。
【００７８】
まず、第１および第２の異常原因特定処理について説明する。
【００７９】
（第１の異常原因特定処理）
異常検出部６２は、測定値トレースデータ１６のアドレス信号Ｃ２１（アドレス値）と期待値トレースデータ５２のアドレス信号Ｄ２１（アドレス値）とを比較することにより、上記第２表示レベル情報５６Ｂが表す“アドレス信号値異常”が発生しているか否かを特定する。
【００８０】
ここで、アドレス信号Ｃ２１のアドレス値とアドレス信号Ｄ２１のアドレス値とが一致しない場合、異常検出部６２は、アドレス信号Ｃ２１のアドレス値の異常と特定し、第２表示レベル情報５６Ｂ“アドレス信号値異常”を選択する。さらに、異常検出部６２は、第２表示レベル情報５６Ｂ“アドレス信号値異常”の上位段階を表す第１表示レベル情報５６Ａ“アドレス信号異常”を選択する。
【００８１】
異常表示制御部６３は、測定値トレースデータ１６と期待値トレースデータ５２との差異（この場合、アドレス信号Ｃ２１のアドレス値とアドレス信号Ｄ２１のアドレス値との差異）として、第２表示レベル情報５６Ｂ“アドレス信号値異常”をトレース画面５０上の上記差異に対応する位置に表示する。この場合、トレース画面５０上の第２表示レベル情報５６Ｂ“アドレス信号値異常”は、斜線や、他の色とは異なる色で表示される。さらに、異常表示制御部６３は、第１表示レベル情報５６Ａ“アドレス信号異常”を文字にしてトレース画面５０の異常原因表示欄５０Ｂに表示する。
【００８２】
（第２の異常原因特定処理）
一方、アドレス信号Ｃ２１のアドレス値とアドレス信号Ｄ２１のアドレス値とが一致している場合、異常検出部６２は、アドレス信号Ｃ２１のアドレス値に異常がないと特定し、第１表示レベル情報５６Ａ“メモリ素子異常”を選択する。
【００８３】
異常表示制御部６３は、第１表示レベル情報５６Ａ“メモリ素子異常”を文字にしてトレース画面５０の異常原因表示欄５０Ｂに表示する。
【００８４】
次に、第３〜第６の異常原因特定処理について説明する。
【００８５】
（第３の異常原因特定処理）
異常検出部６２は、測定値トレースデータ１６のリード信号Ｃ２３（立ち上りタイミングおよび立ち下りタイミング）と期待値トレースデータ５２のリード信号Ｄ２３（立ち上りタイミングおよび立ち下りタイミング）とを比較することにより、上記第２表示レベル情報５６Ｂが表す“リード信号セットアップ時間異常”が発生しているか否かを特定する。ここで、リード信号Ｃ２３のタイミング（立ち上りおよび立ち下り）とリード信号Ｄ２３のタイミング（立ち上りおよび立ち下り）とが一致しない場合、異常検出部６２は、リード信号Ｃ２３のタイミングの異常と特定し、第２表示レベル情報５６Ｂ“リード信号セットアップ時間異常”を選択する。さらに、異常検出部６２は、第２表示レベル情報５６Ｂ“リード信号セットアップ時間異常”の上位段階を表す第１表示レベル情報５６Ａ“リード信号異常”を選択する。
【００８６】
異常表示制御部６３は、測定値トレースデータ１６と期待値トレースデータ５２との差異（この場合、リード信号Ｃ２３のタイミングとリード信号Ｄ２３のタイミングとの差異）として、第２表示レベル情報５６Ｂ“リード信号セットアップ時間異常”をトレース画面５０上の上記差異に対応する位置に表示する。たとえば、リード信号Ｃ２３の立ち上がりタイミングが異常の場合、リード信号Ｃ２３の立ち上がりの時間付近に第２表示レベル情報５６Ｂ“リード信号セットアップ時間異常”を表示する。この場合、トレース画面５０上の第２表示レベル情報５６Ｂ“リード信号セットアップ時間異常”は、斜線や、他の色とは異なる色で表示される（図７参照）。さらに、異常表示制御部６３は、第１表示レベル情報５６Ａ“リード信号異常”を文字にしてトレース画面５０の異常原因表示欄５０Ｂに表示する（図７参照）。
【００８７】
（第４の異常原因特定処理）
異常検出部６２は、測定値トレースデータ１６のチップイネーブル信号Ｃ２２（立ち上りタイミングおよび立ち下りタイミング）と期待値トレースデータ５２のチップイネーブル信号Ｄ２２（立ち上りタイミングおよび立ち下りタイミング）とを比較することにより、上記第２表示レベル情報５６Ｂが表す“チップイネーブル信号セットアップ時間異常”が発生しているか否かを判定する。ここで、チップイネーブル信号Ｃ２２のタイミング（立ち上りおよび立ち下り）とチップイネーブル信号Ｄ２２のタイミング（立ち上りおよび立ち下り）とが一致しない場合、異常検出部６２は、チップイネーブル信号Ｃ２２のタイミングの異常と特定し、第２表示レベル情報５６Ｂ“チップイネーブル信号セットアップ時間異常”を選択する。さらに、異常検出部６２は、第２表示レベル情報５６Ｂ“チップイネーブル信号セットアップ時間異常”の上位段階を表す第１表示レベル情報５６Ａ“チップイネーブル信号異常”を選択する。
【００８８】
異常表示制御部６３は、測定値トレースデータ１６と期待値トレースデータ５２との差異（この場合、チップイネーブル信号Ｃ２２のタイミングとチップイネーブル信号Ｄ２２のタイミングとの差異）として、第２表示レベル情報５６Ｂ“チップイネーブル信号セットアップ時間異常”をトレース画面５０上の上記差異に対応する位置に表示する。たとえば、チップイネーブル信号Ｃ２２の立ち上がりタイミングが異常の場合、チップイネーブル信号Ｃ２２の立ち上がりの時間付近に第２表示レベル情報５６Ｂ“チップイネーブル信号セットアップ時間異常”を表示する。この場合、トレース画面５０上の第２表示レベル情報５６Ｂ“チップイネーブル信号セットアップ時間異常”は、斜線や、他の色とは異なる色で表示される。さらに、異常表示制御部６３は、第１表示レベル情報５６Ａ“チップイネーブル信号異常”を文字にしてトレース画面５０の異常原因表示欄５０Ｂに表示する。
【００８９】
（第５の異常原因特定処理）
異常検出部６２は、測定値トレースデータ１６のアドレス信号Ｃ２１（立ち上りタイミングおよび立ち下りタイミング）と期待値トレースデータ５２のアドレス信号Ｄ２１（立ち上りタイミングおよび立ち下りタイミング）とを比較することにより、上記第２表示レベル情報５６Ｂが表す“アドレス信号セットアップ時間異常”が発生しているか否かを判定する。ここで、アドレス信号Ｃ２１のタイミング（立ち上りおよび立ち下り）とアドレス信号Ｄ２１のタイミング（立ち上りおよび立ち下り）とが一致しない場合、異常検出部６２は、アドレス信号Ｃ２１のタイミングの異常と特定し、第２表示レベル情報５６Ｂ“アドレス信号セットアップ時間異常”を選択する。さらに、異常検出部６２は、第２表示レベル情報５６Ｂ“アドレス信号セットアップ時間異常”の上位段階を表す第１表示レベル情報５６Ａ“アドレス信号異常”を選択する。
【００９０】
異常表示制御部６３は、測定値トレースデータ１６と期待値トレースデータ５２との差異（この場合、アドレス信号Ｃ２１のタイミングとアドレス信号Ｄ２１のタイミングとの差異）として、第２表示レベル情報５６Ｂ“アドレス信号セットアップ時間異常”をトレース画面５０上の上記差異に対応する位置に表示する。たとえば、アドレス信号Ｃ２１の立ち上がりタイミングが異常の場合、アドレス信号Ｃ２１の立ち上がりの時間付近に第２表示レベル情報５６Ｂ“アドレス信号セットアップ時間異常”を表示する。この場合、トレース画面５０上の第２表示レベル情報５６Ｂ“アドレス信号セットアップ時間異常”は、斜線や、他の色とは異なる色で表示される。さらに、異常表示制御部６３は、第１表示レベル情報５６Ａ“アドレス信号異常”を文字にしてトレース画面５０の異常原因表示欄５０Ｂに表示する。
【００９１】
（第６の異常原因特定処理）
一方、リード信号Ｃ２３のタイミングとリード信号Ｄ２３のタイミングとが一致し、チップイネーブル信号Ｃ２２のタイミングとチップイネーブル信号Ｄ２２のタイミングとが一致し、アドレス信号Ｃ２１のタイミングとアドレス信号Ｄ２１のタイミングとが一致している場合、異常検出部６２は、リード信号Ｃ２３、チップイネーブル信号Ｃ２２およびアドレス信号Ｃ２１のタイミングに異常がないと特定し、第１表示レベル情報５６Ａ“メモリ素子異常”を選択する。
【００９２】
異常表示制御部６３は、第１表示レベル情報５６Ａ“メモリ素子異常”を文字にしてトレース画面５０の異常原因表示欄５０Ｂに表示する。
【００９３】
本実施形態では、エンジニアリングツール６Ｂの異常原因データベース６４に期待値トレースデータ５２と因果関係情報５６“○○△”とをデータメモリリード診断プログラムを表す情報に対応付けて予めに格納しておく。プログラマブルコントローラユニット６Ａでは、マイクロプロセッサ１がデータメモリライト診断プログラムを実行したときに、アクセス制御部２がマイクロプロセッサ１からデータメモリ４への読み出しに用いられる信号の波形をトレースした測定値トレースデータ１６を生成し、測定結果（測定値トレースデータ１６、クロック信号）がエンジニアリングツール６Ｂに送信される。エンジニアリングツール６Ｂは、測定結果に含まれる測定値トレースデータ１６をトレース画面５０により作業員に提示する。このように、本実施形態によれば、作業員は観測ツールなどの接続を必要とせずに遠隔地で動作確認を行うことができる。
【００９４】
また、本実施形態では、エンジニアリングツール６Ｂは、測定結果に含まれる測定値トレースデータ１６と異常原因データベース６４に格納された期待値トレースデータ５２とが一致しないときに、異常原因データベース６４に格納された因果関係情報５６“○○△”から故障箇所を同定し、それを表す第１表示レベル情報５６Ａおよび第２表示レベル情報５６Ｂをトレース画面５０により作業員に提示する。このように、本実施形態によれば、作業員は観測ツールなどの接続を必要とせずに遠隔地で解析を行うことができる。
【００９５】
図８は、プロセス入出力回路リード診断プログラムが実行されたときに表示装置４０に表示されるトレース画面５０を示す図である。
【００９６】
上述では、選択診断プログラムがデータメモリリード診断プログラムである場合を例にしている。たとえば、選択診断プログラムがプロセス入出力回路リード診断プログラムである場合では、測定結果に含まれる測定値トレースデータ１６は、回路アドレス信号、回路イネーブル信号、リード信号、および、監視データ（温度、開度、圧力）などを表す値となる。この場合の回路アドレス信号、回路イネーブル信号、リード信号、および、監視データをそれぞれ回路アドレス信号Ｃ４１、回路イネーブル信号Ｃ４２、リード信号Ｃ４３、および、監視データＣ４４と表記する。ここで、上述のように、異常原因データベース６４に格納された期待値トレースデータ５２は、回路アドレス信号Ｄ４１、回路イネーブル信号Ｄ４２、リード信号Ｄ４３、および、監視データＤ４４などを表す理想的な値（期待値）である。
【００９７】
前述のステップＳ１０の後に、エンジニアリングツール６Ｂの波形表示制御部６１は、マイクロプロセッサ１からの測定結果と選択診断プログラムを表す情報とを受け取り、選択診断プログラムの実行結果として、図８に示されるようなトレース画面５０を表示装置４０に表示する（ステップＳ１１）。
【００９８】
この場合、波形表示制御部６１は、測定結果に含まれるクロック信号（プロセッサクロック信号１２、トレース用クロック信号１３）を表す波形と、測定結果に含まれる測定値トレースデータ１６（回路アドレス信号Ｃ４１、回路イネーブル信号Ｃ４２、リード信号Ｃ４３、および、監視データＣ４４など）を表す波形と、異常原因データベース６４に格納された期待値トレースデータ５４（回路アドレス信号Ｄ４１、回路イネーブル信号Ｄ４２、リード信号Ｄ４３、および、監視データＤ４４など）を表す波形と、をトレース画面５０の波形表示欄５０Ａに表示する。
【００９９】
波形表示制御部６１がトレース画面５０を表示装置４０に表示したとき、エンジニアリングツール６Ｂの異常検出部６２は、測定値トレースデータ１６と期待値トレースデータ５４とを比較し、比較結果を生成する（ステップＳ１２）。
【０１００】
ここで、エンジニアリングツール６Ｂの異常表示制御部６３は、異常検出部６２による比較結果が測定値トレースデータ１６と期待値トレースデータ５４との不一致を表す場合、以下に示す処理（異常判定処理、および、異常原因特定処理）により、第１表示レベル情報５８Ａおよび第２表示レベル情報５８Ｂをトレース画面５０上に表示する（ステップＳ１２−ＹＥＳ、Ｓ１３）。
【０１０１】
異常判定処理、および、異常原因特定処理について、図４を例にして説明する。
【０１０２】
まず、異常検出部６２は、異常判定処理を実施する。
【０１０３】
（異常判定処理）
異常検出部６２は、測定値トレースデータ１６の監視データＣ４４（立ち上りタイミング、立ち下りタイミング、および、データ値）と期待値トレースデータ５４の監視データＤ４４（立ち上りタイミング、立ち下りタイミング、および、データ値）とを比較することにより、異常原因データベース６４に格納された因果関係情報５８“△△△”の第３表示レベル情報５８Ｃが表す“監視データ値異常”、および、“プロセス入出力回路セットアップ時間異常”が発生しているか否かを判定する。ここで、監視データＣ４４のデータ値と監視データＤ４４のデータ値とが一致しない場合、異常検出部６２は、監視データＣ４４のデータ値の異常と判定し、第３表示レベル情報５８Ｃ“監視データ値異常”を選択する。一方、監視データＣ４４のタイミング（立ち上りおよび立ち下り）と監視データＤ４４のタイミング（立ち上りおよび立ち下り）とが一致しない場合、異常検出部６２は、監視データＣ４４のタイミングの異常と判定し、第３表示レベル情報５８Ｃ“プロセス入出力回路セットアップ時間異常”を選択する。
【０１０４】
次に、異常検出部６２が第３表示レベル情報５８Ｃ“監視データ値異常”を選択した場合、異常原因データベース６４に格納された因果関係情報５８“△△△”の第２表示レベル情報５８Ｂが表す“回路アドレス信号値異常”が異常原因である。この場合、異常検出部６２は、以下に示す第１１の異常原因特定処理を実施する。
【０１０５】
一方、異常検出部６２が第３表示レベル情報５８Ｃ“プロセス入出力回路セットアップ時間異常”を選択した場合、異常原因データベース６４に格納された因果関係情報５８“△△△”の第２表示レベル情報５８Ｂが表す“リード信号セットアップ時間異常”、“回路イネーブル信号セットアップ時間異常”、および、“回路アドレス信号セットアップ時間異常”が異常原因である。この場合、異常検出部６２は、以下に示す第１２〜第１４の異常原因特定処理を実施する。
【０１０６】
まず、第１１の異常原因特定処理について説明する。
【０１０７】
（第１１の異常原因特定処理）
異常検出部６２は、測定値トレースデータ１６の回路アドレス信号Ｃ４１（アドレス値）と期待値トレースデータ５４の回路アドレス信号Ｄ４１（アドレス値）とを比較することにより、上記第２表示レベル情報５８Ｂが表す“回路アドレス信号値異常”が発生しているか否かを特定する。
【０１０８】
ここで、回路アドレス信号Ｃ４１のアドレス値と回路アドレス信号Ｄ４１のアドレス値とが一致しない場合、異常検出部６２は、回路アドレス信号Ｃ４１のアドレス値の異常と特定し、第２表示レベル情報５８Ｂ“回路アドレス信号値異常”を選択する。さらに、異常検出部６２は、第２表示レベル情報５８Ｂ“回路アドレス信号値異常”の上位段階を表す第１表示レベル情報５８Ａ“回路アドレス信号異常”を選択する。
【０１０９】
異常表示制御部６３は、測定値トレースデータ１６と期待値トレースデータ５４との差異（この場合、回路アドレス信号Ｃ４１のアドレス値と回路アドレス信号Ｄ４１のアドレス値との差異）として、第２表示レベル情報５８Ｂ“回路アドレス信号値異常”をトレース画面５０上の上記差異に対応する位置に表示する。この場合、トレース画面５０上の第２表示レベル情報５８Ｂ“回路アドレス信号値異常”は、斜線や、他の色とは異なる色で表示される。さらに、異常表示制御部６３は、第１表示レベル情報５８Ａ“回路アドレス信号異常”を文字にしてトレース画面５０の異常原因表示欄５０Ｂに表示する。
【０１１０】
次に、第１２〜第１４の異常原因特定処理について説明する。
【０１１１】
（第１２の異常原因特定処理）
異常検出部６２は、測定値トレースデータ１６のリード信号Ｃ４３（立ち上りタイミングおよび立ち下りタイミング）と期待値トレースデータ５４のリード信号Ｄ４３（立ち上りタイミングおよび立ち下りタイミング）とを比較することにより、上記第２表示レベル情報５８Ｂが表す“リード信号セットアップ時間異常”が発生しているか否かを特定する。ここで、リード信号Ｃ４３のタイミング（立ち上りおよび立ち下り）とリード信号Ｄ４３のタイミング（立ち上りおよび立ち下り）とが一致しない場合、異常検出部６２は、リード信号Ｃ４３のタイミングの異常と特定し、第２表示レベル情報５８Ｂ“リード信号セットアップ時間異常”を選択する。さらに、異常検出部６２は、第２表示レベル情報５８Ｂ“リード信号セットアップ時間異常”の上位段階を表す第１表示レベル情報５８Ａ“リード信号異常”を選択する。
【０１１２】
異常表示制御部６３は、測定値トレースデータ１６と期待値トレースデータ５４との差異（この場合、リード信号Ｃ４３のタイミングとリード信号Ｄ４３のタイミングとの差異）として、第２表示レベル情報５８Ｂ“リード信号セットアップ時間異常”をトレース画面５０上の上記差異に対応する位置に表示する。たとえば、リード信号Ｃ４３の立ち上がりタイミングが異常の場合、リード信号Ｃ４３の立ち上がりの時間付近に第２表示レベル情報５８Ｂ“リード信号セットアップ時間異常”を表示する。この場合、トレース画面５０上の第２表示レベル情報５８Ｂ“リード信号セットアップ時間異常”は、斜線や、他の色とは異なる色で表示される（図８参照）。さらに、異常表示制御部６３は、第１表示レベル情報５８Ａ“リード信号異常”を文字にしてトレース画面５０の異常原因表示欄５０Ｂに表示する（図８参照）。
【０１１３】
（第１３の異常原因特定処理）
異常検出部６２は、測定値トレースデータ１６の回路イネーブル信号Ｃ４２（立ち上りタイミングおよび立ち下りタイミング）と期待値トレースデータ５４の回路イネーブル信号Ｄ４２（立ち上りタイミングおよび立ち下りタイミング）とを比較することにより、上記第２表示レベル情報５８Ｂが表す“回路イネーブル信号セットアップ時間異常”が発生しているか否かを判定する。ここで、回路イネーブル信号Ｃ４２のタイミング（立ち上りおよび立ち下り）と回路イネーブル信号Ｄ４２のタイミング（立ち上りおよび立ち下り）とが一致しない場合、異常検出部６２は、回路イネーブル信号Ｃ４２のタイミングの異常と特定し、第２表示レベル情報５８Ｂ“回路イネーブル信号セットアップ時間異常”を選択する。さらに、異常検出部６２は、第２表示レベル情報５８Ｂ“回路イネーブル信号セットアップ時間異常”の上位段階を表す第１表示レベル情報５８Ａ“回路イネーブル信号異常”を選択する。
【０１１４】
異常表示制御部６３は、測定値トレースデータ１６と期待値トレースデータ５４との差異（この場合、回路イネーブル信号Ｃ４２のタイミングと回路イネーブル信号Ｄ４２のタイミングとの差異）として、第２表示レベル情報５８Ｂ“回路イネーブル信号セットアップ時間異常”をトレース画面５０上の上記差異に対応する位置に表示する。たとえば、回路イネーブル信号Ｃ４２の立ち上がりタイミングが異常の場合、回路イネーブル信号Ｃ４２の立ち上がりの時間付近に第２表示レベル情報５８Ｂ“回路イネーブル信号セットアップ時間異常”を表示する。この場合、トレース画面５０上の第２表示レベル情報５８Ｂ“回路イネーブル信号セットアップ時間異常”は、斜線や、他の色とは異なる色で表示される。さらに、異常表示制御部６３は、第１表示レベル情報５８Ａ“回路イネーブル信号異常”を文字にしてトレース画面５０の異常原因表示欄５０Ｂに表示する。
【０１１５】
（第１４の異常原因特定処理）
異常検出部６２は、測定値トレースデータ１６の回路アドレス信号Ｃ４１（立ち上りタイミングおよび立ち下りタイミング）と期待値トレースデータ５４の回路アドレス信号Ｄ４１（立ち上りタイミングおよび立ち下りタイミング）とを比較することにより、上記第２表示レベル情報５８Ｂが表す“回路アドレス信号セットアップ時間異常”が発生しているか否かを判定する。ここで、回路アドレス信号Ｃ４１のタイミング（立ち上りおよび立ち下り）と回路アドレス信号Ｄ４１のタイミング（立ち上りおよび立ち下り）とが一致しない場合、異常検出部６２は、回路アドレス信号Ｃ４１のタイミングの異常と特定し、第２表示レベル情報５８Ｂ“回路アドレス信号セットアップ時間異常”を選択する。さらに、異常検出部６２は、第２表示レベル情報５８Ｂ“回路アドレス信号セットアップ時間異常”の上位段階を表す第１表示レベル情報５８Ａ“回路アドレス信号異常”を選択する。
【０１１６】
異常表示制御部６３は、測定値トレースデータ１６と期待値トレースデータ５４との差異（この場合、回路アドレス信号Ｃ４１のタイミングと回路アドレス信号Ｄ４１のタイミングとの差異）として、第２表示レベル情報５８Ｂ“回路アドレス信号セットアップ時間異常”をトレース画面５０上の上記差異に対応する位置に表示する。たとえば、回路アドレス信号Ｃ４１の立ち上がりタイミングが異常の場合、回路アドレス信号Ｃ４１の立ち上がりの時間付近に第２表示レベル情報５８Ｂ“回路アドレス信号セットアップ時間異常”を表示する。この場合、トレース画面５０上の第２表示レベル情報５８Ｂ“回路アドレス信号セットアップ時間異常”は、斜線や、他の色とは異なる色で表示される。さらに、異常表示制御部６３は、第１表示レベル情報５８Ａ“回路アドレス信号異常”を文字にしてトレース画面５０の異常原因表示欄５０Ｂに表示する。
【０１１７】
本実施形態では、エンジニアリングツール６Ｂの異常原因データベース６４に期待値トレースデータ５４と因果関係情報５８“△△△”とをプロセス入出力回路リード診断プログラムを表す情報に対応付けて予めに格納しておく。プログラマブルコントローラユニット６Ａでは、マイクロプロセッサ１がプロセス入出力回路リード診断プログラムを実行したときに、アクセス制御部２がマイクロプロセッサ１からプロセス入出力回路５への読み出しに用いられる信号の波形をトレースした測定値トレースデータ１６を生成し、測定結果（測定値トレースデータ１６、クロック信号）がエンジニアリングツール６Ｂに送信される。エンジニアリングツール６Ｂは、測定結果に含まれる測定値トレースデータ１６をトレース画面５０により作業員に提示する。このように、本実施形態によれば、作業員は観測ツールなどの接続を必要とせずに遠隔地で動作確認を行うことができる。
【０１１８】
また、本実施形態では、エンジニアリングツール６Ｂは、測定結果に含まれる測定値トレースデータ１６と異常原因データベース６４に格納された期待値トレースデータ５４とが一致しないときに、異常原因データベース６４に格納された因果関係情報５８“△△△”から故障箇所を同定し、それを表す第１表示レベル情報５８Ａおよび第２表示レベル情報５８Ｂをトレース画面５０により作業員に提示する。このように、本実施形態によれば、作業員は観測ツールなどの接続を必要とせずに遠隔地で解析を行うことができる。
【０１１９】
以上により、本実施形態は、観測ツールなどの接続を必要とせずに遠隔地で動作確認や解析を実施することができる。
【０１２０】
［第２実施形態］
第２実施形態に係るプログラマブルコントローラシステムでは、第１実施形態に対して、アクセス制御部２のトレース制御回路３０が第１バス７および第２バス８の少なくとも一方のバスの異常をトリガとして測定値トレースデータ１６を生成することが異なる。
【０１２１】
図９は、プログラマブルコントローラユニット６Ａのアクセス制御部２の構成を示すブロック図である。
【０１２２】
第２実施形態に係るプログラマブルコントローラシステムでは、プログラマブルコントローラユニット６Ａのアクセス制御部２は、さらに、エラー検出回路２３を具備している。
【０１２３】
アクセス制御部２のエラー検出回路２３は、マイクロプロセッサ１が診断プログラムを実行したときに、マイクロプロセッサ１と１つの構成要素間のアクセスに対して第１バス７および第２バス８の少なくとも一方のバスに異常がある場合に、少なくとも一方のバスの異常を表すエラー検出信号２３Ａを出力する。このとき、アクセス制御部２のトレース制御回路３０は、エラー検出信号２３Ａをトリガとして測定値トレースデータ１６を生成する。
【０１２４】
図１０は、第２実施形態に係るプログラマブルコントローラシステムの動作を示すフローチャートである。
【０１２５】
前述のステップＳ５の後に、アクセス制御部２のエラー検出回路２３は、マイクロプロセッサ１と１つの構成要素間のアクセスに対して第１バス７および第２バス８の少なくとも一方のバスに異常があるか否かを調べる。この場合、ＥＣＣ（Ｅｒｒｏｒ  Ｃｏｒｒｅｃｔｉｎｇ  Ｃｏｄｅ；誤り訂正符号）などの診断により上記少なくとも一方のバスの異常を検出する。
【０１２６】
ここで、エラー検出回路２３は、上記少なくとも一方のバスの異常を検出した場合、その旨を表すエラー検出信号２３Ａをデータ選択回路１８に出力する（ステップＳ２１−ＹＥＳ）。
【０１２７】
この場合、アクセス制御部２のリード・ライト制御回路２２は、エラー検出信号２３Ａをトリガ信号１７として受けとり、設定レジスタ１０に設定されたトレース許可信号１９Ａ“有効”と、トリガ信号１７（エラー検出信号２３Ａ）とに応じて、ＰＬＬ回路１４からのトレース用クロック信号１３に同期したトレースライト信号１９Ｃを設定時間だけトレースデータ格納メモリ２０に出力する。トレースデータ格納メモリ２０は、リード・ライト制御回路２２からのトレースライト信号１９Ｃに応じて、測定結果を自身のメモリ領域に格納する（ステップＳ７）。その後、ステップＳ８以降が行われる。
【０１２８】
測定結果は、データ選択回路１８からの測定値トレースデータ１６（アドレス信号Ｃ２１、チップイネーブル信号Ｃ２２、リード信号Ｃ２３、および、メモリデータＣ２４などを表す値）と、測定値トレースデータ１６を格納するときに用いられるクロック信号（プロセッサクロック信号１２およびトレース用クロック信号１３）と、測定値トレースデータ１６を格納するときのエラーログ（エラー検出信号２３Ａ）とを含んでいる。
【０１２９】
一方、エラー検出回路２３が上記少なくとも一方のバスの異常を検出しない場合、アクセス制御部２のデータ選択回路１８は、第１実施形態と同様に、トレースが行われる所定のタイミングとしてトリガ信号１７をリード・ライト制御回路２２に出力する（ステップＳ２１−ＮＯ、Ｓ６−ＹＥＳ）。
【０１３０】
この場合、アクセス制御部２のリード・ライト制御回路２２は、トリガ信号１７を受けとったたきに、設定レジスタ１０に設定されたトレース許可信号１９Ａ“有効”と、トリガ信号１７とに応じて、ＰＬＬ回路１４からのトレース用クロック信号１３に同期したトレースライト信号１９Ｃを設定時間だけトレースデータ格納メモリ２０に出力する。トレースデータ格納メモリ２０は、リード・ライト制御回路２２からのトレースライト信号１９Ｃに応じて、測定結果を自身のメモリ領域に格納する（ステップＳ７）。その後、ステップＳ８以降が行われる。
【０１３１】
測定結果は、第１実施形態と同様に、データ選択回路１８からの測定値トレースデータ１６（アドレス信号Ｃ２１、チップイネーブル信号Ｃ２２、リード信号Ｃ２３、および、メモリデータＣ２４などを表す値）と、測定値トレースデータ１６を格納するときに用いられるクロック信号（プロセッサクロック信号１２およびトレース用クロック信号１３）とを含んでいる。
【０１３２】
本実施形態では、プログラマブルコントローラユニット６Ａのアクセス制御部２は、第１バス７および第２バス８の少なくとも一方のバスの異常を検出した場合、それをトリガとして測定値トレースデータ１６を生成し、測定結果（測定値トレースデータ１６、クロック信号およびエラーログ）がエンジニアリングツール６Ｂに送信される。このように、本実施形態によれば、バスの異常をトリガとして測定値トレースデータ１６を生成するため、第１実施形態に対して、容易に故障箇所を同定することができる。
【０１３３】
［第３実施形態］
第３実施形態に係るプログラマブルコントローラシステムでは、第２実施形態に対して、マイクロプロセッサ１が起動時に診断プログラムを実行することが異なる。
【０１３４】
図１１は、第３実施形態に係るプログラマブルコントローラシステムの動作を示すフローチャートである。
【０１３５】
マイクロプロセッサ１は、起動時に、マイクロプロセッサ１の内蔵メモリ３に書き込まれた複数の診断プログラムのうちの１つの診断プログラムを選択診断プログラムとして選択し、選択診断プログラムを実行する（ステップＳ３１−ＮＯ、Ｓ３２−ＹＥＳ、Ｓ２）。マイクロプロセッサ１は、ステップＳ３、Ｓ４、Ｓ８およびＳ１０を実行した後、診断プログラムを全て実行していない場合は、マイクロプロセッサ１の内蔵メモリ３に書き込まれた複数の診断プログラムのうちの他の１つの診断プログラムを選択診断プログラムとして選択し、選択診断プログラムを実行する（ステップＳ３３−ＮＯ、Ｓ３４−ＮＯ、Ｓ２）。マイクロプロセッサ１は、診断プログラムを全て実行するまで（ステップＳ３４−ＹＥＳ）、ステップＳ３、Ｓ４、Ｓ８、Ｓ１０、Ｓ３３−ＮＯ、Ｓ３４−ＮＯ、Ｓ２を繰り返す。
【０１３６】
一方、エンジニアリングツール６Ｂにより１つの診断プログラムが指定された場合（ステップＳ１）、マイクロプロセッサ１は、第１および第２実施形態と同様の処理を実行する（ステップＳ３１−ＹＥＳ、Ｓ２、Ｓ３、Ｓ４、Ｓ８、Ｓ１０、Ｓ３３−ＹＥＳ）。
【０１３７】
本実施形態では、プログラマブルコントローラユニット６Ａが、起動時に、診断プログラムを実行して、その実行結果に基づいて測定値トレースデータ１６を生成し、測定結果（測定値トレースデータ１６、クロック信号およびエラーログ）がエンジニアリングツール６Ｂに送信される。このように、本実施形態によれば、エンジニアリングツール６Ｂが診断プログラムを実行させるための指示をマイクロプロセッサ１に送信してから、その指示をプログラマブルコントローラユニット６Ａが受け取るまでの時間を短縮することができる。
【０１３８】
また、本実施形態によれば、プログラマブルコントローラユニット６Ａが起動時に複数の診断プログラムを一括して実行する場合では特に有効である。
【０１３９】
また、本実施形態では、プログラマブルコントローラユニット６Ａが起動時に自動的に診断プログラムを実行することにより、たとえば本システムまたはプログラマブルコントローラユニット６Ａの出荷前に故障箇所を同定することができる。
【０１４０】
［第４実施形態］
第４実施形態に係るプログラマブルコントローラシステムでは、第３実施形態に対して、エンジニアリングツール６Ｂがマイクロプロセッサ１と１つの構成要素間のアクセス時の経年変化による異常の原因を同定することが異なる。
【０１４１】
図１２は、第４実施形態に係るプログラマブルコントローラシステムの構成を示すブロック図である。
【０１４２】
第４実施形態に係るプログラマブルコントローラシステムでは、エンジニアリングツール６Ｂは、さらに、経年変化データベース６５を具備している。
【０１４３】
図１３は、エンジニアリングツール６Ｂ内の経年変化データベース６５を示す図である。
【０１４４】
経年変化データベース６５には、マイクロプロセッサ１から起動時および一定時間毎に送信される測定結果（測定値トレースデータ１６、クロック信号およびエラーログ）が順次格納される。
【０１４５】
具体的には、経年変化データベース６５には、複数の診断プログラムのうちのデータメモリライト診断プログラムを表す情報に対応付けて、マイクロプロセッサ１からデータメモリ４への書き込み時の起動時および一定時間毎に送信される測定結果｛測定値トレースデータ１６（アドレス信号Ｃ１１、チップイネーブル信号Ｃ１２およびライト信号Ｃ１３などを表す値）、クロック信号（図示省略）およびエラーログ（図示省略）｝が格納される。
【０１４６】
また、異常原因データベース６４には、複数の診断プログラムのうちのデータメモリリード診断プログラムを表す情報に対応付けて、データメモリ４からマイクロプロセッサ１への読み出し時の起動時および一定時間毎に送信される測定結果｛測定値トレースデータ１６（アドレス信号Ｃ２１、チップイネーブル信号Ｃ２２、リード信号Ｃ２３、および、メモリデータＣ２４などを表す値）、クロック信号（図示省略）およびエラーログ（図示省略）｝が格納される。
【０１４７】
また、異常原因データベース６４には、複数の診断プログラムのうちのプロセス入出力回路ライト診断プログラムを表す情報に対応付けて、マイクロプロセッサ１からプロセス入出力回路５への書き込み（出力）時の起動時および一定時間毎に送信される測定結果｛測定値トレースデータ１６（回路アドレス信号Ｃ３１、回路イネーブル信号Ｃ３２およびライト信号Ｃ３３などを表す値）、クロック信号（図示省略）およびエラーログ（図示省略）｝が格納される。
【０１４８】
また、異常原因データベース６４には、複数の診断プログラムのうちのプロセス入出力回路リード診断プログラムを表す情報に対応付けて、プロセス入出力回路５からマイクロプロセッサ１への読み出し時の起動時および一定時間毎に送信される測定結果｛測定値トレースデータ１６（回路アドレス信号Ｃ４１、回路イネーブル信号Ｃ４２、リード信号Ｃ４３、および、監視データＣ４４などを表す値）、クロック信号（図示省略）およびエラーログ（図示省略）｝が格納される。
【０１４９】
図１４は、エンジニアリングツール６Ｂ内の異常原因データベース６４を示す図である。
【０１５０】
異常原因データベース６４には、起動時および一定時間毎の期待値トレースデータ５１〜５４と、マイクロプロセッサ１と１つの構成要素間のアクセス時の異常の原因となる因果関係を表す因果関係情報５５〜５８とが格納されている。
【０１５１】
具体的には、異常原因データベース６４には、複数の診断プログラムのうちのデータメモリライト診断プログラムを表す情報に対応付けて、マイクロプロセッサ１からデータメモリ４への書き込み時の起動時および一定時間毎の期待値トレースデータ５１（アドレス信号Ｄ１１、チップイネーブル信号Ｄ１２、および、ライト信号Ｄ１３などを表す値）と、その書き込み時の異常の原因となる因果関係を表す因果関係情報５５“○○○”とが格納されている。
【０１５２】
また、異常原因データベース６４には、複数の診断プログラムのうちのデータメモリリード診断プログラムを表す情報に対応付けて、データメモリ４からマイクロプロセッサ１への読み出し時の起動時および一定時間毎の期待値トレースデータ５２（アドレス信号Ｄ２１、チップイネーブル信号Ｄ２２、リード信号Ｄ２３、メモリデータＤ２４などを表す値）と、その読み出し時の異常の原因となる因果関係を表す因果関係情報５６“○○△”とが格納されている。
【０１５３】
また、異常原因データベース６４には、複数の診断プログラムのうちのプロセス入出力回路ライト診断プログラムを表す情報に対応付けて、マイクロプロセッサ１からプロセス入出力回路５への書き込み（出力）時の起動時および一定時間毎の期待値トレースデータ５３（回路アドレス信号Ｄ３１、回路イネーブル信号Ｄ３２、ライト信号Ｄ３３などを表す値）と、その書き込み時の異常の原因となる因果関係を表す因果関係情報５７“○△△”とが格納されている。
【０１５４】
また、異常原因データベース６４には、複数の診断プログラムのうちのプロセス入出力回路リード診断プログラムを表す情報に対応付けて、プロセス入出力回路５からマイクロプロセッサ１への読み出し時の起動時および一定時間毎の期待値トレースデータ５４（回路アドレス信号Ｄ４１、回路イネーブル信号Ｄ４２、リード信号Ｄ４３、監視データＤ４４などを表す値）と、その読み出し時の異常の原因となる因果関係を表す因果関係情報５８“△△△”とが格納されている。
【０１５５】
図１５は、プロセス入出力回路リード診断プログラムを表す情報に対応付けて異常原因データベース６４に格納された因果関係情報５８“△△△”を示す図である。
【０１５６】
プロセス入出力回路リード診断プログラムを例にした場合、異常原因データベース６４に格納されている因果関係情報５８“△△△”は、第１表示レベル情報５８Ａと第２表示レベル情報５８Ｂと第３表示レベル情報５８Ｃと、第１経年変化表示レベル情報５８Ｄと第２経年変化表示レベル情報５８Ｅとを含んでいる。
【０１５７】
第１表示レベル情報５８Ａは、プロセス入出力回路５からマイクロプロセッサ１への読み出し時の異常の原因を同定するための情報である。たとえば、その異常の原因としては“リード信号異常”、“回路イネーブル信号異常”、“回路アドレス信号異常”、および、“経年変化による異常”が挙げられる。
【０１５８】
第２表示レベル情報５８Ｂは、第１表示レベル情報５８Ａが表す異常の前段階の異常を同定するための情報である。前述と同様に、第１表示レベル情報５８Ａ“リード信号異常”の前段階の異常としては“リード信号セットアップ時間異常”が挙げられる。第１表示レベル情報５８Ａ“回路イネーブル信号異常”の前段階の異常としては“回路イネーブル信号セットアップ時間異常”が挙げられる。第１表示レベル情報５８Ａ“回路アドレス信号異常”の前段階の異常としては“回路アドレス信号値異常”または“回路アドレス信号セットアップ時間異常”が挙げられる。
【０１５９】
第３表示レベル情報５８Ｃは、第２表示レベル情報５８Ｂが表す異常の前段階の異常、または、第２表示レベル情報５８Ｂが表す異常が該当しないときに第１表示レベル情報５８Ａが表す異常の前段階の異常を同定するための情報である。第２表示レベル情報５８Ｂ“回路アドレス信号値異常”の前段階の異常、または、第１表示レベル情報５８Ａ“経年変化による異常”の前段階の異常としては“監視データ値異常”が挙げられる。第２表示レベル情報５８Ｂ“リード信号セットアップ時間異常”、“回路イネーブル信号セットアップ時間異常”、および、“回路アドレス信号セットアップ時間異常”の前段階の異常としては“プロセス入出力回路セットアップ時間異常”が挙げられる。
【０１６０】
第１経年変化表示レベル情報５８Ｄは、プロセス入出力回路５からマイクロプロセッサ１への読み出し時の経年変化による異常の原因を同定するための情報である。たとえば、その経年変化による異常の原因としては、プラント機器１００を監視するセンサの劣化を表す“温度センサ劣化可能性あり”、“開度センサ劣化可能性あり”、および、“圧力センサ劣化可能性あり”が挙げられる。
【０１６１】
第２経年変化表示レベル情報５８Ｅは、第１経年変化表示レベル情報５８Ｄが表す経年変化による異常の前段階の異常を同定するための情報である。第１経年変化表示レベル情報５８Ｄ“温度センサ劣化可能性あり”の前段階の異常としては“温度センサ入力値異常”が挙げられる。第１経年変化表示レベル情報５８Ｄ“開度センサ劣化可能性あり”の前段階の異常としては“開度センサ入力値異常”が挙げられる。第１経年変化表示レベル情報５８Ｄ“圧力センサ劣化可能性あり”の前段階の異常としては“圧力センサ入力値異常”が挙げられる。
【０１６２】
第１表示レベル情報５８Ａ“経年変化による異常”は、第２経年変化表示レベル情報５８Ｅが表す経年変化による異常の前段階の異常を同定するための情報である。
【０１６３】
図１６は、第４実施形態に係るプログラマブルコントローラシステムの動作を示すフローチャートである。図１７は、プロセス入出力回路リード診断プログラムが実行されたときに表示装置４０に表示される経年変化画面７０を示す図である。図１８および図１９は、画面表示パターンを示す図である。ここで、図１９は、図１８とは異なる例を示している。
【０１６４】
前述のステップＳ１０の後に、エンジニアリングツール６Ｂの波形表示制御部６１は、マイクロプロセッサ１からの測定結果（測定値トレースデータ１６、クロック信号、エラーログ）と選択診断プログラム（たとえばプロセス入出力回路リード診断プログラム）を表す情報とを受け取り、選択診断プログラムに対応付けて異常原因データベース６４に測定結果を格納する。また、波形表示制御部６１は、選択診断プログラムの実行結果として、トレース画面５０を表示装置４０に表示する（ステップＳ１１）。
【０１６５】
この場合、波形表示制御部６１は、測定結果に含まれるクロック信号（プロセッサクロック信号１２、トレース用クロック信号１３）を表す波形と、測定結果に含まれる測定値トレースデータ１６（回路アドレス信号Ｃ４１、回路イネーブル信号Ｃ４２、リード信号Ｃ４３、および、監視データＣ４４など）を表す波形と、異常原因データベース６４に格納された期待値トレースデータ５４（回路アドレス信号Ｄ４１、回路イネーブル信号Ｄ４２、リード信号Ｄ４３、および、監視データＤ４４など）を表す波形と、をトレース画面５０の波形表示欄５０Ａに表示する。
【０１６６】
波形表示制御部６１がトレース画面５０を表示装置４０に表示したとき、エンジニアリングツール６Ｂの異常検出部６２は、測定値トレースデータ１６と期待値トレースデータ５２とを比較し、比較結果を生成する（ステップＳ１２）。
【０１６７】
ここで、エンジニアリングツール６Ｂの異常表示制御部６３は、異常検出部６２による比較結果が測定値トレースデータ１６と期待値トレースデータ５２との不一致を表す場合、以下に示す処理（異常判定処理、および、異常原因特定処理）により、第１表示レベル情報５６Ａおよび第２表示レベル情報５６Ｂをトレース画面５０上に表示する（ステップＳ１２−ＹＥＳ、Ｓ１３）。
【０１６８】
異常判定処理、および、異常原因特定処理について、図１５を例にして説明する。図４に示された内容と重複するものについては、その説明を省略する。
【０１６９】
（異常判定処理）
ここで、異常検出部６２が第３表示レベル情報５８Ｃ“監視データ値異常”を選択した場合、異常原因データベース６４に格納された因果関係情報５８“△△△”の第２表示レベル情報５８Ｂが表す“回路アドレス信号値異常”、または、第１表示レベル情報５８Ａが表す“経年変化による異常”が異常原因である。この場合、異常検出部６２は、以下に示す第１１の異常原因特定処理を実施する。
【０１７０】
（第１１の異常原因特定処理）
第１１の異常原因特定処理において、回路アドレス信号Ｃ４１のアドレス値と回路アドレス信号Ｄ４１のアドレス値とが一致していない場合、異常検出部６２は、第２表示レベル情報５８Ｂ“回路アドレス信号値異常”と第１表示レベル情報５８Ａ“回路アドレス信号異常”とを選択している。このとき、異常検出部６２は、さらに、経年変化による異常と特定し、第１表示レベル情報５８Ａが表す“経年変化による異常”を選択する。
【０１７１】
この場合、異常表示制御部６３は、測定値トレースデータ１６と期待値トレースデータ５４との差異（回路アドレス信号Ｃ４１のアドレス値と回路アドレス信号Ｄ４１のアドレス値との差異）として、第２表示レベル情報５８Ｂ“回路アドレス信号値異常”をトレース画面５０上の上記差異に対応する位置に表示し、第１表示レベル情報５８Ａ“回路アドレス信号異常”を文字にしてトレース画面５０の異常原因表示欄５０Ｂに表示する。
【０１７２】
エンジニアリングツール６Ｂの波形表示制御部６１は、異常検出部６２が第１表示レベル情報５８Ａ“経年変化による異常”を選択し、選択診断プログラムに対応付けて異常原因データベース６４に格納された測定結果が２つ以上存在する場合に、図１７に示されるような経年変化画面７０を表示装置４０に表示する（ステップＳ４１−ＹＥＳ、Ｓ４２）。
【０１７３】
この経年変化画面７０は、経年波形表示欄７０Ａと経年異常原因表示欄７０Ｂとを含んでいる。経年波形表示欄７０Ａは経年変化画面７０の中央部分に設けられ、経年異常原因表示欄７０Ｂは、経年変化画面７０の経年波形表示欄７０Ａ以外の部分、たとえば経年波形表示欄７０Ａの下方部分に設けられている。
【０１７４】
この場合、波形表示制御部６１は、選択診断プログラム（プロセス入出力回路リード診断プログラム）に対応付けて経年変化データベース６５に格納された測定結果に含まれる、起動時および一定時間毎の測定値トレースデータ１６（回路アドレス信号Ｃ４１、回路イネーブル信号Ｃ４２、リード信号Ｃ４３、および、監視データＣ４４など）と、選択診断プログラムに対応付けて異常原因データベース６４に格納された起動時および一定時間毎の期待値トレースデータ５４（回路アドレス信号Ｃ４１、回路イネーブル信号Ｃ４２、リード信号Ｃ４３、および、監視データＣ４４など）と、を経年変化画面７０の経年波形表示欄７０Ａに表示する。図１７においては、監視データＣ４４（温度）を例にしている。
【０１７５】
ステップＳ４２において、波形表示制御部６１は、図１８に示されるように、トレース画面５０と経年変化画面７０との両方の画面を表示装置４０に表示してもよい。または、図１９に示されるように、利用者の切り替え操作に応じてトレース画面５０と経年変化画面７０との一方の画面を選択的に表示装置４０に表示してもよい。
【０１７６】
波形表示制御部６１が経年変化画面７０を表示装置４０に表示したとき、エンジニアリングツール６Ｂの異常検出部６２は、選択診断プログラムに対応付けて経年変化データベース６５に順次格納された起動時および一定時間毎の測定値トレースデータ１６と、選択診断プログラムに対応付けて異常原因データベース６４に格納された起動時および一定時間毎の期待値トレースデータ５４とを比較し、比較結果を生成する（ステップＳ４３）。
【０１７７】
ここで、エンジニアリングツール６Ｂの異常表示制御部６３は、異常検出部６２による比較結果が上記測定値トレースデータ１６と上記期待値トレースデータ５２との不一致を表す場合、以下に示す処理（経年異常原因特定処理）により、第１経年変化表示レベル情報５８Ｄおよび第２経年変化表示レベル情報５８Ｅを経年変化画面７０上に表示する（ステップＳ４３−ＹＥＳ、Ｓ４４）。
【０１７８】
経年異常原因特定処理について、図１５を例にして説明する。
【０１７９】
次に、異常検出部６２が第３表示レベル情報５８Ｃ“監視データ値異常”を選択した場合、異常原因データベース６４に格納された因果関係情報５８“△△△”の第２経年変化表示レベル情報５８Ｅが表す“回路アドレス信号値異常”、または、第１経年変化表示レベル情報５８Ｄが表す“経年変化による異常”が異常原因である。この場合、異常検出部６２は、前述の第１１の経年異常原因特定処理を実施した上で、以下に示す第１〜第３の経年異常原因特定処理を実施する。
【０１８０】
（第１の経年異常原因特定処理）
異常検出部６２は、測定値トレースデータ１６の監視データＣ４４（温度センサ入力値）と期待値トレースデータ５４の監視データＤ４４（温度センサ入力値）とを比較することにより、上記第２経年変化表示レベル情報５８Ｅが表す“温度センサ入力値異常”が発生しているか否かを特定する。
【０１８１】
ここで、監視データＣ４４の温度センサ入力値と監視データＤ４４の温度センサ入力値とが一致しない場合、異常検出部６２は、監視データＣ４４の温度センサ入力値の異常と特定し、第２経年変化表示レベル情報５８Ｅ“温度センサ入力値異常”を選択する。さらに、異常検出部６２は、第２経年変化表示レベル情報５８Ｅ“温度センサ入力値”の上位段階を表す第１経年変化表示レベル情報５８Ｄ“温度センサ劣化可能性あり”を選択する。
【０１８２】
異常表示制御部６３は、測定値トレースデータ１６と期待値トレースデータ５４との差異（この場合、監視データＣ４４の温度センサ入力値と監視データＤ４４の温度センサ入力値との差異）として、第２経年変化表示レベル情報５８Ｅ“温度センサ入力値”を経年変化画面７０上の上記差異に対応する位置に表示する。この場合、経年変化画面７０上の第２経年変化表示レベル情報５８Ｅ“温度センサ入力値”は、斜線や、他の色とは異なる色で表示される（図１７参照）。さらに、異常表示制御部６３は、第１経年変化表示レベル情報５８Ｄ“温度センサ劣化可能性あり”を文字にして経年変化画面７０の経年異常原因表示欄７０Ｂに表示する（図１７参照）。
【０１８３】
（第２の経年異常原因特定処理）
異常検出部６２は、測定値トレースデータ１６の監視データＣ４４（開度センサ入力値）と期待値トレースデータ５４の監視データＤ４４（開度センサ入力値）とを比較することにより、上記第２経年変化表示レベル情報５８Ｅが表す“開度センサ入力値異常”が発生しているか否かを特定する。
【０１８４】
ここで、監視データＣ４４の開度センサ入力値と監視データＤ４４の開度センサ入力値とが一致しない場合、異常検出部６２は、監視データＣ４４の開度センサ入力値の異常と特定し、第２経年変化表示レベル情報５８Ｅ“開度センサ入力値異常”を選択する。さらに、異常検出部６２は、第２経年変化表示レベル情報５８Ｅ“開度センサ入力値”の上位段階を表す第１経年変化表示レベル情報５８Ｄ“開度センサ劣化可能性あり”を選択する。
【０１８５】
異常表示制御部６３は、測定値トレースデータ１６と期待値トレースデータ５４との差異（この場合、監視データＣ４４の開度センサ入力値と監視データＤ４４の開度センサ入力値との差異）として、第２経年変化表示レベル情報５８Ｅ“開度センサ入力値”を経年変化画面７０上の上記差異に対応する位置に表示する。この場合、経年変化画面７０上の第２経年変化表示レベル情報５８Ｅ“開度センサ入力値”は、斜線や、他の色とは異なる色で表示される。さらに、異常表示制御部６３は、第１経年変化表示レベル情報５８Ｄ“開度センサ劣化可能性あり”を文字にして経年変化画面７０の経年異常原因表示欄７０Ｂに表示する。
【０１８６】
（第３の経年異常原因特定処理）
異常検出部６２は、測定値トレースデータ１６の監視データＣ４４（圧力センサ入力値）と期待値トレースデータ５４の監視データＤ４４（圧力センサ入力値）とを比較することにより、上記第２経年変化表示レベル情報５８Ｅが表す“圧力センサ入力値異常”が発生しているか否かを特定する。
【０１８７】
ここで、監視データＣ４４の圧力センサ入力値と監視データＤ４４の圧力センサ入力値とが一致しない場合、異常検出部６２は、監視データＣ４４の圧力センサ入力値の異常と特定し、第２経年変化表示レベル情報５８Ｅ“圧力センサ入力値異常”を選択する。さらに、異常検出部６２は、第２経年変化表示レベル情報５８Ｅ“圧力センサ入力値”の上位段階を表す第１経年変化表示レベル情報５８Ｄ“圧力センサ劣化可能性あり”を選択する。
【０１８８】
異常表示制御部６３は、測定値トレースデータ１６と期待値トレースデータ５４との差異（この場合、監視データＣ４４の圧力センサ入力値と監視データＤ４４の圧力センサ入力値との差異）として、第２経年変化表示レベル情報５８Ｅ“圧力センサ入力値”を経年変化画面７０上の上記差異に対応する位置に表示する。この場合、経年変化画面７０上の第２経年変化表示レベル情報５８Ｅ“圧力センサ入力値”は、斜線や、他の色とは異なる色で表示される。さらに、異常表示制御部６３は、第１経年変化表示レベル情報５８Ｄ“圧力センサ劣化可能性あり”を文字にして経年変化画面７０の経年異常原因表示欄７０Ｂに表示する。
【０１８９】
本実施形態では、エンジニアリングツール６Ｂの異常原因データベース６４に期待値トレースデータ５４と因果関係情報５８“△△△”とをプロセス入出力回路リード診断プログラムを表す情報に対応付けて予めに格納しておき、測定結果（測定値トレースデータ１６、クロック信号およびエラーログ）を起動時および一定時間毎に順次格納するための経年変化データベース６５をエンジニアリングツール６Ｂに用意しておく。プログラマブルコントローラユニット６Ａでは、マイクロプロセッサ１がプロセス入出力回路リード診断プログラムを実行したときに、測定結果がエンジニアリングツール６Ｂに送信され、経年変化データベース６５に格納される。エンジニアリングツール６Ｂは、経年変化データベース６５に格納された測定結果に含まれる、起動時および一定時間毎の測定値トレースデータ１６と、異常原因データベース６４に格納された起動時および一定時間毎の期待値トレースデータ５４とを経年変化画面７０により作業員に提示する。このように、本実施形態によれば、作業員は観測ツールなどの接続を必要とせずに遠隔地で経年変化の確認を行うことができる。
【０１９０】
また、本実施形態では、エンジニアリングツール６Ｂは、経年変化データベース６５に格納された測定結果に含まれる、起動時および一定時間毎の測定値トレースデータ１６と、異常原因データベース６４に格納された起動時および一定時間毎の期待値トレースデータ５４とが一致しないときに、異常原因データベース６４に格納された因果関係情報５８“△△△”から経年変化による故障箇所を同定し、それを表す第１経年変化表示レベル情報５８Ｄおよび第２経年変化表示レベル情報５８Ｅを経年変化画面７０により作業員に提示する。このように、本実施形態によれば、作業員は観測ツールなどの接続を必要とせずに遠隔地で経年変化による故障の解析を行うことができる。
【０１９１】
以上により、本実施形態は、観測ツールなどの接続を必要とせずに遠隔地で経年変化の確認や経年変化による故障の解析を実施することができる。
【０１９２】
［第５実施形態］
第５実施形態に係るプログラマブルコントローラシステムでは、第４実施形態に対して、エンジニアリングツール６Ｂがマイクロプロセッサ１と通信できないときに、エンジニアリングツール６ＢがＪＴＡＧ（Ｊｏｉｎｔ  Ｔｅｓｔ  Ａｃｔｉｏｎ  Ｇｒｏｕｐ）を利用してプログラマブルコントローラユニット６Ａから測定結果を取得することが異なる。
【０１９３】
図２０は、第５実施形態に係るプログラマブルコントローラシステムの構成を示すブロック図である。
【０１９４】
第５実施形態に係るプログラマブルコントローラシステムは、さらに、予備プログラマブルコントローラユニット１０６Ａと、ＪＴＡＧ接続ツール２５と、ＪＴＡＧ用アダプタ２４と、を具備している。
【０１９５】
予備プログラマブルコントローラユニット１０６Ａは、プログラマブルコントローラユニット６Ａと同じ構成である。プログラマブルコントローラユニット６Ａがプラント機器１００を監視することが困難であるときに、予備プログラマブルコントローラユニット１０６Ａがプログラマブルコントローラユニット６Ａに代わってプラント機器１００を監視する。
【０１９６】
ＪＴＡＧ接続ツール２５は、エンジニアリングツール６Ｂと共にコンピュータ２６に設けられ、エンジニアリングツール６Ｂに接続されている。
【０１９７】
ＪＴＡＧ用アダプタ２４は、ＪＴＡＧ接続ツール２５に接続される。
【０１９８】
プログラマブルコントローラユニット６Ａのマイクロプロセッサ１は、ＯＳ（Ｏｐｅｒａｔｉｎｇ  Ｓｙｓｔｅｍ）上で動作する。
【０１９９】
マイクロプロセッサ１およびアクセス制御部２は、ＪＴＡＧ用アダプタ２４に接続されるＪＴＡＧポート４１を有している。
【０２００】
第５実施形態に係るプログラマブルコントローラシステムでは、エンジニアリングツール６Ｂは、さらに、要求部６６を具備している。
【０２０１】
図２１および図２２は、第５実施形態に係るプログラマブルコントローラシステムの動作を示すフローチャートである。ここで、図２２は、図２１とは異なる例を示している。
【０２０２】
たとえばエンジニアリングツール６ＢがＯＳの異常によりマイクロプロセッサ１と通信ができないときに、図２１に示されるように、予備プログラマブルコントローラユニット１０６Ａとプラント機器１００とを接続し、プログラマブルコントローラユニット６Ａとプラント機器１００との接続を解除することにより、プラント機器１００の監視をプログラマブルコントローラユニット６Ａから予備プログラマブルコントローラユニット１０６Ａに切り替える。同時に、プログラマブルコントローラユニット６Ａのマイクロプロセッサ１のＪＴＡＧポート４１にＪＴＡＧ用アダプタ２４が接続される（ステップＳ５１）。
【０２０３】
エンジニアリングツール６Ｂの要求部６６は、測定結果を要求するためのデータ要求をＪＴＡＧ接続ツール２５、ＪＴＡＧ用アダプタ２４およびＪＴＡＧポート４１を介してプログラマブルコントローラユニット６Ａのマイクロプロセッサ１に送信する（ステップＳ５２）。
【０２０４】
プログラマブルコントローラユニット６Ａのマイクロプロセッサ１は、データ要求に応じて、アクセス制御部２のトレースデータ格納メモリ２０に格納された測定結果を読み取り、その測定結果をＪＴＡＧポート４１、ＪＴＡＧ用アダプタ２４およびＪＴＡＧ接続ツール２５を介してエンジニアリングツール６Ｂに送信する。具体的には、マイクロプロセッサ１は、データ要求をアクセス制御部２に転送し（ステップＳ５３）、アクセス制御部２のアクセス制御回路９は、データ要求に応じて、トレースデータ格納メモリ２０に格納された測定結果をマイクロプロセッサ１に出力する（ステップＳ５４）、マイクロプロセッサ１は、その測定結果をＪＴＡＧポート４１、ＪＴＡＧ用アダプタ２４およびＪＴＡＧ接続ツール２５を介してエンジニアリングツール６Ｂに送信（転送）する（ステップＳ５５）。
【０２０５】
一方、エンジニアリングツール６ＢがＯＳの異常以外によりマイクロプロセッサ１と通信ができないときに、図２２に示されるように、プラント機器１００の監視をプログラマブルコントローラユニット６Ａから予備プログラマブルコントローラユニット１０６Ａに切り替える。同時に、プログラマブルコントローラユニット６Ａのアクセス制御部２のＪＴＡＧポート４１にＪＴＡＧ用アダプタ２４が接続される（ステップＳ６１）。
【０２０６】
エンジニアリングツール６Ｂの要求部６６は、測定結果を要求するためのデータ要求をＪＴＡＧ接続ツール２５、ＪＴＡＧ用アダプタ２４およびＪＴＡＧポート４１を介してプログラマブルコントローラユニット６Ａのアクセス制御部２に送信する（ステップＳ６２）。
【０２０７】
プログラマブルコントローラユニット６Ａのアクセス制御部２は、データ要求に応じて、アクセス制御部２のトレースデータ格納メモリ２０に格納された測定結果をＪＴＡＧポート４１、ＪＴＡＧ用アダプタ２４およびＪＴＡＧ接続ツール２５を介してエンジニアリングツール６Ｂに送信する（ステップＳ６３）。
【０２０８】
本実施形態では、エンジニアリングツール６Ｂがマイクロプロセッサ１と通信できないときに、エンジニアリングツール６ＢがＪＴＡＧを利用してプログラマブルコントローラユニット６Ａから測定結果（測定値トレースデータ１６、クロック信号、エラーログ）を取得することができる。このため、本実施形態によれば、エンジニアリングツール６Ｂがマイクロプロセッサ１と通信できない原因や、エンジニアリングツール６Ｂがマイクロプロセッサ１と通信できなくなるときの状況などを測定結果から追究することができる。
【０２０９】
［第６実施形態］
第６実施形態に係るプログラマブルコントローラシステムでは、第４実施形態に対して、エンジニアリングツール６Ｂがマイクロプロセッサ１と通信できなくても、着脱可能な不揮発性メモリモジュールを用いてプログラマブルコントローラユニット６Ａから測定結果を取得することが異なる。
【０２１０】
図２３は、第６実施形態に係るプログラマブルコントローラシステムの構成を示すブロック図である。
【０２１１】
第６実施形態に係るプログラマブルコントローラシステムは、さらに、予備プログラマブルコントローラユニット１０６Ａと、不揮発性メモリモジュール２７とを具備している。予備プログラマブルコントローラユニット１０６Ａについては第５実施形態と同様である。
【０２１２】
不揮発性メモリモジュール２７は、プログラマブルコントローラユニット６Ａに着脱可能である。不揮発性メモリモジュール２７としては、フラッシュメモリが例示される。
【０２１３】
この場合、アクセス制御部２のトレース制御回路３０は、マイクロプロセッサ１が診断プログラムを実行したときに前述の測定結果（測定値トレースデータ１６、クロック信号、エラーログ）をトレースデータ格納メモリ２０と不揮発性メモリモジュール２７とに格納する。
【０２１４】
具体的には、前述のステップＳ７において、アクセス制御部２のリード・ライト制御回路２２は、設定レジスタ１０に設定されたトレース許可信号１９Ａ“有効”と、トリガ信号１７（エラー検出信号２３Ａ）とに応じて、ＰＬＬ回路１４からのトレース用クロック信号１３に同期したトレースライト信号１９Ｃを設定時間だけトレースデータ格納メモリ２０および不揮発性メモリモジュール２７に出力する。トレースデータ格納メモリ２０は、リード・ライト制御回路２２からのトレースライト信号１９Ｃに応じて、測定結果（測定値トレースデータ１６、クロック信号、エラーログ）を自身のメモリ領域に格納する。不揮発性メモリモジュール２７は、リード・ライト制御回路２２からのトレースライト信号１９Ｃに応じて、測定結果（測定値トレースデータ１６、クロック信号、エラーログ）を自身のメモリ領域に格納する。
【０２１５】
本実施形態では、エンジニアリングツール６Ｂがマイクロプロセッサ１と通信できないときに、着脱可能な不揮発性メモリモジュール２７を用いてプログラマブルコントローラユニット６Ａから測定結果（測定値トレースデータ１６、クロック信号、エラーログ）を取得することができる。このため、本実施形態によれば、エンジニアリングツール６Ｂがマイクロプロセッサ１と通信できない原因や、エンジニアリングツール６Ｂがマイクロプロセッサ１と通信できなくなるときの状況などを測定結果から追究することができる。
【０２１６】
［他の実施形態］
以上、本発明のいくつかの実施形態を説明したが、これらの実施形態は、例として提示したものであり、発明の範囲を限定することは意図していない。これら新規な実施形態は、その他の様々な形態で実施されることが可能であり、発明の要旨を逸脱しない範囲で、種々の省略、置き換え、変更、また各実施形態の特徴を組み合わせることができる。これら実施形態やその変形は、発明の範囲や要旨に含まれるとともに、特許請求の範囲に記載された発明とその均等の範囲に含まれる。
【符号の説明】
【０２１７】
１  …  マイクロプロセッサ
２  …  アクセス制御部
３  …  内蔵メモリ
４  …  データメモリ
５  …  プロセス入出力回路
６Ａ  …  プログラマブルコントローラユニット
６Ｂ  …  エンジニアリングツール
７  …  第１バス
８  …  第２バス
９  …  アクセス制御回路
１０  …  設定レジスタ
１１  …  周波数選択信号
１２  …  プロセッサクロック信号
１３  …  トレース用クロック信号
１４  …  ＰＬＬ回路
１５  …  トレース・トリガ選択信号
１６  …  測定値トレースデータ
１７  …  トリガ信号
１８  …  データ選択回路
１９Ａ  …  トレース許可信号
１９Ｂ  …  リード許可信号
１９Ｃ  …  トレースライト信号
１９Ｄ  …  トレースリード信号
２０  …  トレースデータ格納メモリ
２１  …  トレース状況信号
２２  …  リード・ライト制御回路
２３  …  エラー検出回路
２３Ａ  …  エラー検出信号
２４  …  ＪＴＡＧ用アダプタ
２５  …  ＪＴＡＧ接続ツール
２６  …  コンピュータ
２７  …  不揮発性メモリモジュール
３０  …  トレース制御回路
３１  …  ドライバ
３２  …  チップ
３３  …  プロセス制御回路
３４  …  プロセス入出力部
４０  …  表示装置
４１  …  ＪＴＡＧポート
５０  …  トレース画面
５０Ａ  …  波形表示欄
５０Ｂ  …  異常原因表示欄
５１〜５４  …  期待値トレースデータ
５５〜５８  …  因果関係情報
５６Ａ  …  第１表示レベル情報
５６Ｂ  …  第２表示レベル情報
５６Ｃ  …  第３表示レベル情報
５８Ａ  …  第１表示レベル情報
５８Ｂ  …  第２表示レベル情報
５８Ｃ  …  第３表示レベル情報
５８Ｄ  …  第１経年変化表示レベル情報
５８Ｅ  …  第２経年変化表示レベル情報
６０  …  指示部
６１  …  波形表示制御部
６２  …  異常検出部
６３  …  異常表示制御部
６４  …  異常原因データベース
６５  …  経年変化データベース
６６  …  要求部
７０  …  経年変化画面
７０Ａ  …  経年波形表示欄
７０Ｂ  …  経年異常原因表示欄
１００  …  プラント機器
１０６Ａ  …  予備プログラマブルコントローラユニット
Ｃ１１  …  アドレス信号
Ｃ１２  …  チップイネーブル信号
Ｃ１３  …  ライト信号
Ｃ２１  …  アドレス信号
Ｃ２２  …  チップイネーブル信号
Ｃ２３  …  リード信号
Ｃ２４  …  メモリデータ
Ｃ３１  …  回路アドレス信号
Ｃ３２  …  回路イネーブル信号
Ｃ３３  …  ライト信号
Ｃ４１  …  回路アドレス信号
Ｃ４２  …  回路イネーブル信号
Ｃ４３  …  リード信号
Ｃ４４  …  監視データ
Ｄ１１  …  アドレス信号
Ｄ１２  …  チップイネーブル信号
Ｄ１３  …  ライト信号
Ｄ２１  …  アドレス信号
Ｄ２２  …  チップイネーブル信号
Ｄ２３  …  リード信号
Ｄ２４  …  メモリデータ
Ｄ３１  …  回路アドレス信号
Ｄ３２  …  回路イネーブル信号
Ｄ３３  …  ライト信号
Ｄ４１  …  回路アドレス信号
Ｄ４２  …  回路イネーブル信号
Ｄ４３  …  リード信号
Ｄ４４  …  監視データ
【図１】
0005777483.tif 000002
【図２】
0005777483.tif 000003
【図３】
0005777483.tif 000004
【図４】
0005777483.tif 000005
【図５】
0005777483.tif 000006
【図６】
0005777483.tif 000007
【図７】
0005777483.tif 000008
【図８】
0005777483.tif 000009
【図９】
0005777483.tif 000010
【図１０】
0005777483.tif 000011
【図１１】
0005777483.tif 000012
【図１２】
0005777483.tif 000013
【図１３】
0005777483.tif 000014
【図１４】
0005777483.tif 000015
【図１５】
0005777483.tif 000016
【図１６】
0005777483.tif 000017
【図１７】
0005777483.tif 000018
【図１８】
0005777483.tif 000019
【図１９】
0005777483.tif 000020
【図２０】
0005777483.tif 000021
【図２１】
0005777483.tif 000022
【図２２】
0005777483.tif 000023
【図２３】
0005777483.tif 000024