以下、本発明に係るプログラマブルコントローラシステムの実施形態について、図面を参照して説明する。ここで、互いに同一または類似の部分には共通の符号を付して、重複説明は省略する。
[第1実施形態]
図1は、第1実施形態に係るプログラマブルコントローラシステムの構成を示すブロック図である。
第1実施形態に係るプログラマブルコントローラシステムは、プログラマブルコントローラユニット6Aと、エンジニアリングツール6Bと、表示装置40と、を具備している。プログラマブルコントローラユニット6Aは、エンジニアリングツール6Bに接続され、互いに通信可能である。表示装置40は、エンジニアリングツール6Bに接続され、コンピュータ26を構成する。エンジニアリングツール6Bおよび表示装置40は、プログラマブルコントローラユニット6Aに対して遠隔地に設けられている。
プログラマブルコントローラユニット6Aは、マイクロプロセッサ1と、アクセス制御部2と、複数の構成要素と、を具備している。マイクロプロセッサ1は、通信回線を介してエンジニアリングツール6Bに接続されている。アクセス制御部2は、第1バス7を介してマイクロプロセッサ1に接続され、第2バス8を介して複数の構成要素に接続されている。
アクセス制御部2は、マイクロプロセッサ1と複数の構成要素のうちの1つの構成要素との間のアクセスを制御する。
マイクロプロセッサ1の内蔵メモリ3には、制御プログラムのコードが書き込まれている。制御プログラムは、マイクロプロセッサ1が原子力発電所などのプラント機器100を監視するためのコンピュータプログラムである。
本実施形態では、上記複数の構成要素をデータメモリ4およびプロセス入出力回路5であるものとする。データメモリ4は、マイクロプロセッサ1の実行結果を表すデータを格納する。マイクロプロセッサ1は、通常、内蔵メモリ3に書き込まれた制御プログラムを実行してプロセス入出力回路5を介してプラント機器100を監視する。
ここで、マイクロプロセッサ1とデータメモリ4との間のアクセスについて簡単に説明する。
データメモリ4は、記憶領域を有する複数のチップ32とドライバ31とを備えている。複数のチップ32の各々は複数のメモリセルを有している。ドライバ31は複数のチップ32と第2バス8とに接続されている。
マイクロプロセッサ1は、データメモリ4に演算データを書き込む場合(マイクロプロセッサ1からデータメモリ4への書き込み)、チップイネーブル信号と、アドレス信号(行アドレスおよび列アドレスを含む)と、ライト信号と、演算データとをドライバ31に与える。この場合、ドライバ31は、複数のチップ32のうちの、アドレス信号およびチップイネーブル信号により指定されたチップ32を選択チップ32として選択し、選択チップ32の複数のメモリセルのうちの、アドレス信号により指定されたメモリセルを選択メモリセルとして選択し、ライト信号に応じて、選択メモリセルに演算データを書き込む。
マイクロプロセッサ1は、データメモリ4から演算データを読み出す場合(データメモリ4からマイクロプロセッサ1への読み出し)、チップイネーブル信号と、アドレス信号(行アドレスおよび列アドレスを含む)と、リード信号とをドライバ31に与える。この場合、ドライバ31は、複数のチップ32のうちの、アドレス信号およびチップイネーブル信号により指定されたチップ32を選択チップ32として選択し、選択チップ32の複数のメモリセルのうちの、アドレス信号により指定されたメモリセルを選択メモリセルとして選択し、リード信号に応じて、選択メモリセルから演算データを読み出し、マイクロプロセッサ1に出力する。
次に、マイクロプロセッサ1とプロセス入出力回路5との間のアクセスについて簡単に説明する。
複数のプラント機器100の各々には、プラント機器100のパラメータ(たとえば、温度、開度、圧力)を監視するための複数のセンサ(図示しない)が設けられている。複数のセンサとしては、プラント機器100の温度を監視する温度センサや、プラント機器100の制御弁の開閉を監視する開度センサ、プラント機器100の圧力を監視する圧力センサなどが挙げられる。複数のセンサの各々は、制御信号に応じてプラント機器100を監視して監視データ(温度、開度、圧力)を出力する。複数のセンサの各々にはユニークなアドレス(回路アドレス信号)が割り当てられている。プロセス入出力回路5は、複数のプロセス入出力部34とプロセス制御回路33とを備えている。複数のプロセス入出力部34は複数のセンサと対応して設けられ、プロセス制御回路33は複数のプロセス入出力部34の各々と第2バス8とに接続されている。プロセス入出力部34は、プラント機器100に設けられた複数のセンサに接続されている。
マイクロプロセッサ1は、プロセス入出力回路5に制御信号を出力する場合(マイクロプロセッサ1からプロセス入出力回路5への出力)、回路イネーブル信号と、回路アドレス信号と、ライト信号と、デジタル信号である制御データとをプロセス制御回路33に与える。この場合、プロセス制御回路33は、複数のプロセス入出力部34のうちの、回路アドレス信号および回路イネーブル信号により指定されたプロセス入出力部34を選択プロセス入出力部34として選択し、選択プロセス入出力部34に接続された複数のセンサのうちの、回路アドレス信号により指定されたセンサを選択センサとして選択し、ライト信号に応じて、制御信号(デジタル信号)をアナログ信号に変換してそのアナログ信号を選択センサに出力する。
マイクロプロセッサ1は、プロセス入出力回路5からアナログ信号である監視データを読み出す場合(プロセス入出力回路5からマイクロプロセッサ1への読み出し)、回路イネーブル信号と、回路アドレス信号と、リード信号とをプロセス制御回路33に与える。この場合、プロセス制御回路33は、複数のプロセス入出力部34のうちの、回路アドレス信号および回路イネーブル信号により指定されたプロセス入出力部34を選択プロセス入出力部34として選択し、選択プロセス入出力部34に接続された複数のセンサのうちの、回路アドレス信号により指定されたセンサを選択センサとして選択し、リード信号に応じて、選択センサから監視データ(アナログ信号)を読み出してデジタル信号に変換してそのデジタル信号をマイクロプロセッサ1に出力する。
マイクロプロセッサ1の内蔵メモリ3には、さらに、複数の診断プログラムのコードが書き込まれている。複数の診断プログラムは、マイクロプロセッサ1と複数の構成要素(データメモリ4およびプロセス入出力回路5)のうちの1つの構成要素との間のアクセスの診断を行うためのコンピュータプログラムである。マイクロプロセッサ1は、内蔵メモリ3に書き込まれた複数の診断プログラムのうちの、エンジニアリングツール6Bにより指定される1つの診断プログラムを選択診断プログラムとして選択し、選択診断プログラムを実行する。
ここで、複数の診断プログラムについて説明する。
本実施形態では、複数の診断プログラムをデータメモリライト診断プログラム、データメモリリード診断プログラム、プロセス入出力回路ライト診断プログラム、および、プロセス入出力回路リード診断プログラムであるものとする。
データメモリライト診断プログラムは、マイクロプロセッサ1からデータメモリ4への書き込みの診断を行うためのコンピュータプログラムである。データメモリリード診断プログラムは、データメモリ4からマイクロプロセッサ1への読み出しの診断を行うためのコンピュータプログラムである。プロセス入出力回路ライト診断プログラムは、マイクロプロセッサ1からプロセス入出力回路5への書き込み(出力)の診断を行うためのコンピュータプログラムである。プロセス入出力回路リード診断プログラムは、プロセス入出力回路5からマイクロプロセッサ1への読み出しの診断を行うためのコンピュータプログラムである。
複数の診断プログラムの各々には、後述のトレース設定処理、テスト用アクセス処理、および、トレースデータ転送処理を表すコードが書き込まれている。トレース設定情報は、トレースが行われるデバイス間の信号を選択するトレース選択と、トレースが行われるタイミングを表すトリガと、トレース用クロック信号を決定するためのトレース周期とを設定するための情報を含んでいる。
エンジニアリングツール6Bは、指示部60と、波形表示制御部61と、異常検出部62と、異常表示制御部63と、異常原因データベース64と、を具備している。エンジニアリングツール6Bの各構成要素の動作については後述する。
エンジニアリングツール6Bの各構成要素は、ハードウェアまたはソフトウェアにより構成されている。たとえば、エンジニアリングツール6Bの各構成要素がソフトウェアである場合、第1実施形態に係るプログラマブルコントローラシステムは、さらに、エンジニアリングツール6Bと表示装置40とを備えたコンピュータ26を具備する。そのコンピュータ26は、コンピュータプログラムが格納された記憶部と、そのコンピュータプログラムを記憶部から読み出して実行するCPU(Central Processing Unit)とを備えている。コンピュータプログラムは、後述するエンジニアリングツール6Bの各構成要素の機能を実現する。
図2は、プログラマブルコントローラユニット6Aのアクセス制御部2の構成を示すブロック図である。
アクセス制御部2は、アクセス制御回路9と、トレース制御回路30と、トレースデータ格納メモリ20と、を具備している。
アクセス制御回路9は、第1バス7と第2バス8とに接続され、マイクロプロセッサ1とデータメモリ4およびプロセス入出力回路5との間のアクセスを制御する。
トレース制御回路30は、マイクロプロセッサ1が複数の診断プログラムのうちの1つの診断プログラムを選択診断プログラムとして実行したときに、マイクロプロセッサ1と1つの構成要素間のアクセスに用いられる信号の波形をトレースした測定値トレースデータ16を生成し、測定値トレースデータ16を含む測定結果をトレース制御回路30内のトレースデータ格納メモリ20に格納する。このトレース制御回路30は、さらに、設定レジスタ10と、PLL回路14と、データ選択回路18と、リード・ライト制御回路22と、を具備している。これらの動作については後述する。
図3は、エンジニアリングツール6B内の異常原因データベース64を示す図である。
異常原因データベース64には、マイクロプロセッサ1と1つの構成要素間のアクセス時の理想的な値を表す期待値トレースデータ51〜54と、マイクロプロセッサ1と1つの構成要素間のアクセス時の異常の原因となる因果関係を表す因果関係情報55〜58とが格納されている。
具体的には、異常原因データベース64には、複数の診断プログラムのうちのデータメモリライト診断プログラムを表す情報に対応付けて、マイクロプロセッサ1からデータメモリ4への書き込み時の理想的な値を表す期待値トレースデータ51と、その書き込み時の異常の原因となる因果関係を表す因果関係情報55とが格納されている。期待値トレースデータ51としては、アドレス信号D11(立ち上りタイミング、立ち下りタイミングおよびアドレス値)と、チップイネーブル信号D12(立ち上りタイミングおよび立ち下りタイミング)と、ライト信号D13(立ち上りタイミングおよび立ち下りタイミング)とが挙げられる。因果関係情報55は、ファイル名“○○○”として異常原因データベース64に格納されている。
また、異常原因データベース64には、複数の診断プログラムのうちのデータメモリリード診断プログラムを表す情報に対応付けて、データメモリ4からマイクロプロセッサ1への読み出し時の理想的な値を表す期待値トレースデータ52と、その読み出し時の異常の原因となる因果関係を表す因果関係情報56とが格納されている。期待値トレースデータ52としては、アドレス信号D21(立ち上りタイミング、立ち下りタイミングおよびアドレス値)と、チップイネーブル信号D22(立ち上りタイミングおよび立ち下りタイミング)と、リード信号D23(立ち上りタイミングおよび立ち下りタイミング)と、メモリデータD24(立ち上りタイミング、立ち下りタイミングおよびデータ値)とが挙げられる。因果関係情報56は、ファイル名“○○△”として異常原因データベース64に格納されている。
また、異常原因データベース64には、複数の診断プログラムのうちのプロセス入出力回路ライト診断プログラムを表す情報に対応付けて、マイクロプロセッサ1からプロセス入出力回路5への書き込み(出力)時の理想的な値を表す期待値トレースデータ53と、その書き込み時の異常の原因となる因果関係を表す因果関係情報57とが格納されている。期待値トレースデータ53としては、回路アドレス信号D31(立ち上りタイミング、立ち下りタイミングおよびアドレス値)と、回路イネーブル信号D32(立ち上りタイミングおよび立ち下りタイミング)と、ライト信号D33(立ち上りタイミングおよび立ち下りタイミング)とが挙げられる。因果関係情報57は、ファイル名“○△△”として異常原因データベース64に格納されている。
また、異常原因データベース64には、複数の診断プログラムのうちのプロセス入出力回路リード診断プログラムを表す情報に対応付けて、プロセス入出力回路5からマイクロプロセッサ1への読み出し時の理想的な値を表す期待値トレースデータ54と、その読み出し時の異常の原因となる因果関係を表す因果関係情報58とが格納されている。期待値トレースデータ54としては、回路アドレス信号D41(立ち上りタイミング、立ち下りタイミングおよびアドレス値)と、回路イネーブル信号D42(立ち上りタイミングおよび立ち下りタイミング)と、リード信号D43(立ち上りタイミングおよび立ち下りタイミング)と、監視データD44(立ち上りタイミング、立ち下りタイミングおよびデータ値)とが挙げられる。因果関係情報58は、ファイル名“△△△”として異常原因データベース64に格納されている。
図4は、データメモリリード診断プログラムを表す情報に対応付けて異常原因データベース64に格納された因果関係情報56“○○△”を示す図である。
データメモリリード診断プログラムを例にした場合、異常原因データベース64に格納されている期待値トレースデータ52としては、上述のアドレス信号D21、チップイネーブル信号D22、リード信号D23、および、演算データ(メモリデータ)D24の理想的な値(期待値)が挙げられる。この場合、異常原因データベース64に格納されている因果関係情報56“○○△”は、第1表示レベル情報56Aと第2表示レベル情報56Bと第3表示レベル情報56Cとを含んでいる。
第1表示レベル情報56Aは、データメモリ4からマイクロプロセッサ1への読み出し時の異常の原因を同定するための情報である。たとえば、その異常の原因としては“リード信号異常”、“チップイネーブル信号異常”、“アドレス信号異常”、および、“メモリ素子異常”が挙げられる。
第2表示レベル情報56Bは、第1表示レベル情報56Aが表す異常の前段階の異常を同定するための情報である。第1表示レベル情報56A“リード信号異常”の前段階の異常としては“リード信号セットアップ時間異常”が挙げられる。第1表示レベル情報56A“チップイネーブル信号異常”の前段階の異常としては“チップイネーブル信号セットアップ時間異常”が挙げられる。第1表示レベル情報56A“アドレス信号異常”の前段階の異常としては“アドレス信号値異常”または“アドレス信号セットアップ時間異常”が挙げられる。
第3表示レベル情報56Cは、第2表示レベル情報56Bが表す異常の前段階の異常、または、第2表示レベル情報56Bが表す異常が該当しないときに第1表示レベル情報56Aが表す異常の前段階の異常を同定するための情報である。第2表示レベル情報56B“アドレス信号値異常”の前段階の異常、または、第1表示レベル情報56A“メモリ素子異常”の前段階の異常としては“メモリデータ信号値異常”が挙げられる。第2表示レベル情報56B“リード信号セットアップ時間異常”、“チップイネーブル信号セットアップ時間異常”、および、“アドレス信号セットアップ時間異常”の前段階の異常、または、第1表示レベル情報56A“メモリ素子異常”の前段階の異常としては“メモリデータセットアップ時間異常”が挙げられる。
図5は、プロセス入出力回路リード診断プログラムを表す情報に対応付けて異常原因データベース64に格納された因果関係情報58“△△△”を示す図である。
プロセス入出力回路リード診断プログラムを例にした場合、異常原因データベース64に格納されている期待値トレースデータ54としては、上述の回路アドレス信号D41、回路イネーブル信号D42、リード信号D43、および、監視データD44(温度、開度、圧力)の理想的な値(期待値)が挙げられる。この場合、異常原因データベース64に格納されている因果関係情報58“△△△”は、第1表示レベル情報58Aと第2表示レベル情報58Bと第3表示レベル情報58Cとを含んでいる。
第1表示レベル情報58Aは、プロセス入出力回路5からマイクロプロセッサ1への読み出し時の異常の原因を同定するための情報である。たとえば、その異常の原因としては“リード信号異常”、“回路イネーブル信号異常”、および、“回路アドレス信号異常”が挙げられる。
第2表示レベル情報58Bは、第1表示レベル情報58Aが表す異常の前段階の異常を同定するための情報である。第1表示レベル情報58A“リード信号異常”の前段階の異常としては“リード信号セットアップ時間異常”が挙げられる。第1表示レベル情報58A“回路イネーブル信号異常”の前段階の異常としては“回路イネーブル信号セットアップ時間異常”が挙げられる。第1表示レベル情報58A“回路アドレス信号異常”の前段階の異常としては“回路アドレス信号値異常”または“回路アドレス信号セットアップ時間異常”が挙げられる。
第3表示レベル情報58Cは、第2表示レベル情報58Bが表す異常の前段階の異常、または、第2表示レベル情報58Bが表す異常が該当しないときに第1表示レベル情報58Aが表す異常の前段階の異常を同定するための情報である。第2表示レベル情報58B“回路アドレス信号値異常”の前段階の異常としては“監視データ値異常”が挙げられる。第2表示レベル情報58B“リード信号セットアップ時間異常”、“回路イネーブル信号セットアップ時間異常”、および、“回路アドレス信号セットアップ時間異常”の前段階の異常としては“プロセス入出力回路セットアップ時間異常”が挙げられる。
図6は、第1実施形態に係るプログラマブルコントローラシステムの動作を示すフローチャートである。図7は、データメモリリード診断プログラムが実行されたときに表示装置40に表示されるトレース画面50を示す図である。
エンジニアリングツール6Bの指示部60は、マイクロプロセッサ1の内蔵メモリ3に書き込まれた複数の診断プログラムのうちの1つの診断プログラムを実行させるための指示をマイクロプロセッサ1に送信する(ステップS1)。
マイクロプロセッサ1は、マイクロプロセッサ1の内蔵メモリ3に書き込まれた複数の診断プログラムのうちの、エンジニアリングツール6Bにより指定される1つの診断プログラムを選択診断プログラムとして選択し、選択診断プログラムを実行する(ステップS2)。
たとえば、選択診断プログラムは、データメモリリード診断プログラムであるものとする。この場合、マイクロプロセッサ1は、データメモリリード診断プログラムのトレース設定処理、テスト用アクセス処理、および、トレースデータ転送処理を実行する。
まず、図2に示されるように、トレース設定処理において、マイクロプロセッサ1は、データメモリリード診断プログラムに対するトレース設定情報(トレース選択、トリガ、トレース周期および設定時間の設定に関する情報)をアクセス制御部2の設定レジスタ10に設定する。このとき、マイクロプロセッサ1は、設定レジスタ10に設定されたトレース設定情報の設定時間だけ、基準クロックであるプロセッサクロック信号12をアクセス制御部2に出力する(ステップS3)。
ここで、アクセス制御部2のPLL回路14には、周波数選択信号11およびプロセッサクロック信号12が与えられる。周波数選択信号11は、トレース設定処理において設定レジスタ10に設定されたトレース設定情報のトレース周期を表している。PLL回路14は、周波数選択信号11が表すトレース周期に基づいてプロセッサクロック信号12の周期を分周したクロック(たとえば1/2に分周したクロック)を生成し、そのクロックをトレース用クロック信号13として出力する。PLL回路14は、プロセッサクロック信号12を受け取っている間、トレース用クロック信号13を出力する。すなわち、設定時間だけトレース用クロック信号13を出力する。
また、アクセス制御部2のデータ選択回路18には、設定レジスタ10からトレース・トリガ選択信号15が与えられる。トレース・トリガ選択信号15は、トレース設定処理において設定レジスタ10に設定されたトレース設定情報のトレース選択およびトリガを表している。
次に、テスト用アクセス処理において、マイクロプロセッサ1は、データメモリリード診断プログラムに対するトレース許可信号を“有効”にしてアクセス制御部2の設定レジスタ10に設定する(ステップS4)。
アクセス制御部2のデータ選択回路18は、設定レジスタ10に設定されたトレース設定情報のトレース選択およびトリガ(トレース・トリガ選択信号15)に基づいて、トレースが行われるデバイス間の信号を第2バス8から選択し、その信号を測定値トレースデータ16としてトレースデータ格納メモリ20に出力する(ステップS5)。選択診断プログラムがデータメモリリード診断プログラムである場合、測定値トレースデータ16としては、アドレス信号、チップイネーブル信号、リード信号、および、演算データ(メモリデータ)などを表す値が例示される。この場合のアドレス信号、チップイネーブル信号、リード信号、および、メモリデータをそれぞれアドレス信号C21、チップイネーブル信号C22、リード信号C23、および、メモリデータC24と表記する。
また、アクセス制御部2のデータ選択回路18は、トレースが行われる所定のタイミングとしてトリガ信号17をリード・ライト制御回路22に出力する(ステップS6−YES)。
アクセス制御部2のリード・ライト制御回路22には、トレース許可信号19Aが与えられる。トレース許可信号19Aは、テスト用アクセス処理において設定レジスタ10に設定されたトレース許可信号であり、その信号が“有効”であることを表している。リード・ライト制御回路22は、トリガ信号17を受けとったたきに、設定レジスタ10に設定されたトレース許可信号19A“有効”と、トリガ信号17とに応じて、PLL回路14からのトレース用クロック信号13に同期したトレースライト信号19Cを設定時間だけトレースデータ格納メモリ20に出力する。トレースデータ格納メモリ20は、リード・ライト制御回路22からのトレースライト信号19Cに応じて、測定結果を自身のメモリ領域に格納する(ステップS7)。
測定結果は、データ選択回路18からの測定値トレースデータ16(アドレス信号C21、チップイネーブル信号C22、リード信号C23、および、メモリデータC24などを表す値)と、測定値トレースデータ16を格納するときに用いられるクロック信号としてトレース用クロック信号13とを含んでいる。上記クロック信号は、トレース用クロック信号13の他に、トレース用クロック信号13に基づいて上述の分周比から求められるプロセッサクロック信号12も含んでいてもよい。
アクセス制御部2のリード・ライト制御回路22は、トレース用クロック信号13を受け取れなくなったときに、すなわち、設定時間が経過したときに、トレース許可信号19Aを“無効”にするためのトレース状況信号21を設定レジスタ10に出力する。マイクロプロセッサ1は、トレース許可信号19Aを参照することにより、トレースの実行が終了したことを認識する。この場合、トレースデータ転送処理において、マイクロプロセッサ1は、データメモリリード診断プログラムに対するリード許可信号をアクセス制御部2の設定レジスタ10に設定する(ステップS8)。
アクセス制御部2のリード・ライト制御回路22には、リード許可信号19Bが与えられる。リード許可信号19Bは、トレースデータ転送処理において設定レジスタ10に設定されたリード許可信号を表している。リード・ライト制御回路22は、リード許可信号19Bに応じて、PLL回路14からのトレース用クロック信号13に同期したトレースリード信号19Dをトレースデータ格納メモリ20に出力する。トレースデータ格納メモリ20は、リード・ライト制御回路22からのトレースリード信号19Dに応じて、自身のメモリ領域に格納された測定結果(測定値トレースデータ16、クロック信号)を第2バス8、アクセス制御回路9および第1バス7を介してマイクロプロセッサ1に出力する(ステップS9)。
マイクロプロセッサ1は、測定結果(測定値トレースデータ16、クロック信号)と選択診断プログラム(データメモリリード診断プログラム)を表す情報とをエンジニアリングツール6Bに送信(転送)する(ステップS10)。
エンジニアリングツール6Bの波形表示制御部61は、マイクロプロセッサ1からの測定結果と選択診断プログラムを表す情報とを受け取り、選択診断プログラムの実行結果として、図7に示されるようなトレース画面50を表示装置40に表示する(ステップS11)。
このトレース画面50は、波形表示欄50Aと異常原因表示欄50Bとを含んでいる。波形表示欄50Aはトレース画面50の中央部分に設けられ、異常原因表示欄50Bは、トレース画面50の波形表示欄50A以外の部分、たとえば波形表示欄50Aの下方部分に設けられている。
この場合、波形表示制御部61は、測定結果に含まれるクロック信号(プロセッサクロック信号12、トレース用クロック信号13)を表す波形と、測定結果に含まれる測定値トレースデータ16(アドレス信号C21、チップイネーブル信号C22、リード信号C23、および、メモリデータC24など)を表す波形と、異常原因データベース64に格納された期待値トレースデータ52(アドレス信号C21、チップイネーブル信号C22、リード信号C23、および、メモリデータC24など)を表す波形と、をトレース画面50の波形表示欄50Aに表示する。
波形表示制御部61がトレース画面50を表示装置40に表示したとき、エンジニアリングツール6Bの異常検出部62は、測定値トレースデータ16と期待値トレースデータ52とを比較し、比較結果を生成する(ステップS12)。
ここで、エンジニアリングツール6Bの異常表示制御部63は、異常検出部62による比較結果が測定値トレースデータ16と期待値トレースデータ52との不一致を表す場合、以下に示す処理(異常判定処理、および、異常原因特定処理)により、第1表示レベル情報56Aおよび第2表示レベル情報56Bをトレース画面50上に表示する(ステップS12−YES、S13)。
異常判定処理、および、異常原因特定処理について、図4を例にして説明する。
まず、異常検出部62は、異常判定処理を実施する。
(異常判定処理)
異常検出部62は、測定値トレースデータ16のメモリデータC24(立ち上りタイミング、立ち下りタイミング、および、データ値)と期待値トレースデータ52のメモリデータD24(立ち上りタイミング、立ち下りタイミング、および、データ値)とを比較することにより、異常原因データベース64に格納された因果関係情報56“○○△”の第3表示レベル情報56Cが表す“メモリデータ信号値異常”、および、“メモリデータセットアップ時間異常”が発生しているか否かを判定する。ここで、メモリデータC24のデータ値とメモリデータD24のデータ値とが一致しない場合、異常検出部62は、メモリデータC24のデータ値の異常と判定し、第3表示レベル情報56C“メモリデータ信号値異常”を選択する。一方、メモリデータC24のタイミング(立ち上りおよび立ち下り)とメモリデータD24のタイミング(立ち上りおよび立ち下り)とが一致しない場合、異常検出部62は、メモリデータC24のタイミングの異常と判定し、第3表示レベル情報56C“メモリデータセットアップ時間異常”を選択する。
次に、異常検出部62が第3表示レベル情報56C“メモリデータ信号値異常”を選択した場合、異常原因データベース64に格納された因果関係情報56“○○△”の第2表示レベル情報56Bが表す“アドレス信号値異常”、または、第1表示レベル情報56Aが表す“メモリ素子異常”が異常原因である。この場合、異常検出部62は、以下に示す第1および第2の異常原因特定処理を実施する。
一方、異常検出部62が第3表示レベル情報56C“メモリデータセットアップ時間異常”を選択した場合、異常原因データベース64に格納された因果関係情報56“○○△”の第2表示レベル情報56Bが表す“リード信号セットアップ時間異常”、“チップイネーブル信号セットアップ時間異常”、“アドレス信号セットアップ時間異常”、および、第1表示レベル情報56Aが表す“メモリ素子異常”が異常原因である。この場合、異常検出部62は、以下に示す第3〜第6の異常原因特定処理を実施する。
まず、第1および第2の異常原因特定処理について説明する。
(第1の異常原因特定処理)
異常検出部62は、測定値トレースデータ16のアドレス信号C21(アドレス値)と期待値トレースデータ52のアドレス信号D21(アドレス値)とを比較することにより、上記第2表示レベル情報56Bが表す“アドレス信号値異常”が発生しているか否かを特定する。
ここで、アドレス信号C21のアドレス値とアドレス信号D21のアドレス値とが一致しない場合、異常検出部62は、アドレス信号C21のアドレス値の異常と特定し、第2表示レベル情報56B“アドレス信号値異常”を選択する。さらに、異常検出部62は、第2表示レベル情報56B“アドレス信号値異常”の上位段階を表す第1表示レベル情報56A“アドレス信号異常”を選択する。
異常表示制御部63は、測定値トレースデータ16と期待値トレースデータ52との差異(この場合、アドレス信号C21のアドレス値とアドレス信号D21のアドレス値との差異)として、第2表示レベル情報56B“アドレス信号値異常”をトレース画面50上の上記差異に対応する位置に表示する。この場合、トレース画面50上の第2表示レベル情報56B“アドレス信号値異常”は、斜線や、他の色とは異なる色で表示される。さらに、異常表示制御部63は、第1表示レベル情報56A“アドレス信号異常”を文字にしてトレース画面50の異常原因表示欄50Bに表示する。
(第2の異常原因特定処理)
一方、アドレス信号C21のアドレス値とアドレス信号D21のアドレス値とが一致している場合、異常検出部62は、アドレス信号C21のアドレス値に異常がないと特定し、第1表示レベル情報56A“メモリ素子異常”を選択する。
異常表示制御部63は、第1表示レベル情報56A“メモリ素子異常”を文字にしてトレース画面50の異常原因表示欄50Bに表示する。
次に、第3〜第6の異常原因特定処理について説明する。
(第3の異常原因特定処理)
異常検出部62は、測定値トレースデータ16のリード信号C23(立ち上りタイミングおよび立ち下りタイミング)と期待値トレースデータ52のリード信号D23(立ち上りタイミングおよび立ち下りタイミング)とを比較することにより、上記第2表示レベル情報56Bが表す“リード信号セットアップ時間異常”が発生しているか否かを特定する。ここで、リード信号C23のタイミング(立ち上りおよび立ち下り)とリード信号D23のタイミング(立ち上りおよび立ち下り)とが一致しない場合、異常検出部62は、リード信号C23のタイミングの異常と特定し、第2表示レベル情報56B“リード信号セットアップ時間異常”を選択する。さらに、異常検出部62は、第2表示レベル情報56B“リード信号セットアップ時間異常”の上位段階を表す第1表示レベル情報56A“リード信号異常”を選択する。
異常表示制御部63は、測定値トレースデータ16と期待値トレースデータ52との差異(この場合、リード信号C23のタイミングとリード信号D23のタイミングとの差異)として、第2表示レベル情報56B“リード信号セットアップ時間異常”をトレース画面50上の上記差異に対応する位置に表示する。たとえば、リード信号C23の立ち上がりタイミングが異常の場合、リード信号C23の立ち上がりの時間付近に第2表示レベル情報56B“リード信号セットアップ時間異常”を表示する。この場合、トレース画面50上の第2表示レベル情報56B“リード信号セットアップ時間異常”は、斜線や、他の色とは異なる色で表示される(図7参照)。さらに、異常表示制御部63は、第1表示レベル情報56A“リード信号異常”を文字にしてトレース画面50の異常原因表示欄50Bに表示する(図7参照)。
(第4の異常原因特定処理)
異常検出部62は、測定値トレースデータ16のチップイネーブル信号C22(立ち上りタイミングおよび立ち下りタイミング)と期待値トレースデータ52のチップイネーブル信号D22(立ち上りタイミングおよび立ち下りタイミング)とを比較することにより、上記第2表示レベル情報56Bが表す“チップイネーブル信号セットアップ時間異常”が発生しているか否かを判定する。ここで、チップイネーブル信号C22のタイミング(立ち上りおよび立ち下り)とチップイネーブル信号D22のタイミング(立ち上りおよび立ち下り)とが一致しない場合、異常検出部62は、チップイネーブル信号C22のタイミングの異常と特定し、第2表示レベル情報56B“チップイネーブル信号セットアップ時間異常”を選択する。さらに、異常検出部62は、第2表示レベル情報56B“チップイネーブル信号セットアップ時間異常”の上位段階を表す第1表示レベル情報56A“チップイネーブル信号異常”を選択する。
異常表示制御部63は、測定値トレースデータ16と期待値トレースデータ52との差異(この場合、チップイネーブル信号C22のタイミングとチップイネーブル信号D22のタイミングとの差異)として、第2表示レベル情報56B“チップイネーブル信号セットアップ時間異常”をトレース画面50上の上記差異に対応する位置に表示する。たとえば、チップイネーブル信号C22の立ち上がりタイミングが異常の場合、チップイネーブル信号C22の立ち上がりの時間付近に第2表示レベル情報56B“チップイネーブル信号セットアップ時間異常”を表示する。この場合、トレース画面50上の第2表示レベル情報56B“チップイネーブル信号セットアップ時間異常”は、斜線や、他の色とは異なる色で表示される。さらに、異常表示制御部63は、第1表示レベル情報56A“チップイネーブル信号異常”を文字にしてトレース画面50の異常原因表示欄50Bに表示する。
(第5の異常原因特定処理)
異常検出部62は、測定値トレースデータ16のアドレス信号C21(立ち上りタイミングおよび立ち下りタイミング)と期待値トレースデータ52のアドレス信号D21(立ち上りタイミングおよび立ち下りタイミング)とを比較することにより、上記第2表示レベル情報56Bが表す“アドレス信号セットアップ時間異常”が発生しているか否かを判定する。ここで、アドレス信号C21のタイミング(立ち上りおよび立ち下り)とアドレス信号D21のタイミング(立ち上りおよび立ち下り)とが一致しない場合、異常検出部62は、アドレス信号C21のタイミングの異常と特定し、第2表示レベル情報56B“アドレス信号セットアップ時間異常”を選択する。さらに、異常検出部62は、第2表示レベル情報56B“アドレス信号セットアップ時間異常”の上位段階を表す第1表示レベル情報56A“アドレス信号異常”を選択する。
異常表示制御部63は、測定値トレースデータ16と期待値トレースデータ52との差異(この場合、アドレス信号C21のタイミングとアドレス信号D21のタイミングとの差異)として、第2表示レベル情報56B“アドレス信号セットアップ時間異常”をトレース画面50上の上記差異に対応する位置に表示する。たとえば、アドレス信号C21の立ち上がりタイミングが異常の場合、アドレス信号C21の立ち上がりの時間付近に第2表示レベル情報56B“アドレス信号セットアップ時間異常”を表示する。この場合、トレース画面50上の第2表示レベル情報56B“アドレス信号セットアップ時間異常”は、斜線や、他の色とは異なる色で表示される。さらに、異常表示制御部63は、第1表示レベル情報56A“アドレス信号異常”を文字にしてトレース画面50の異常原因表示欄50Bに表示する。
(第6の異常原因特定処理)
一方、リード信号C23のタイミングとリード信号D23のタイミングとが一致し、チップイネーブル信号C22のタイミングとチップイネーブル信号D22のタイミングとが一致し、アドレス信号C21のタイミングとアドレス信号D21のタイミングとが一致している場合、異常検出部62は、リード信号C23、チップイネーブル信号C22およびアドレス信号C21のタイミングに異常がないと特定し、第1表示レベル情報56A“メモリ素子異常”を選択する。
異常表示制御部63は、第1表示レベル情報56A“メモリ素子異常”を文字にしてトレース画面50の異常原因表示欄50Bに表示する。
本実施形態では、エンジニアリングツール6Bの異常原因データベース64に期待値トレースデータ52と因果関係情報56“○○△”とをデータメモリリード診断プログラムを表す情報に対応付けて予めに格納しておく。プログラマブルコントローラユニット6Aでは、マイクロプロセッサ1がデータメモリライト診断プログラムを実行したときに、アクセス制御部2がマイクロプロセッサ1からデータメモリ4への読み出しに用いられる信号の波形をトレースした測定値トレースデータ16を生成し、測定結果(測定値トレースデータ16、クロック信号)がエンジニアリングツール6Bに送信される。エンジニアリングツール6Bは、測定結果に含まれる測定値トレースデータ16をトレース画面50により作業員に提示する。このように、本実施形態によれば、作業員は観測ツールなどの接続を必要とせずに遠隔地で動作確認を行うことができる。
また、本実施形態では、エンジニアリングツール6Bは、測定結果に含まれる測定値トレースデータ16と異常原因データベース64に格納された期待値トレースデータ52とが一致しないときに、異常原因データベース64に格納された因果関係情報56“○○△”から故障箇所を同定し、それを表す第1表示レベル情報56Aおよび第2表示レベル情報56Bをトレース画面50により作業員に提示する。このように、本実施形態によれば、作業員は観測ツールなどの接続を必要とせずに遠隔地で解析を行うことができる。
図8は、プロセス入出力回路リード診断プログラムが実行されたときに表示装置40に表示されるトレース画面50を示す図である。
上述では、選択診断プログラムがデータメモリリード診断プログラムである場合を例にしている。たとえば、選択診断プログラムがプロセス入出力回路リード診断プログラムである場合では、測定結果に含まれる測定値トレースデータ16は、回路アドレス信号、回路イネーブル信号、リード信号、および、監視データ(温度、開度、圧力)などを表す値となる。この場合の回路アドレス信号、回路イネーブル信号、リード信号、および、監視データをそれぞれ回路アドレス信号C41、回路イネーブル信号C42、リード信号C43、および、監視データC44と表記する。ここで、上述のように、異常原因データベース64に格納された期待値トレースデータ52は、回路アドレス信号D41、回路イネーブル信号D42、リード信号D43、および、監視データD44などを表す理想的な値(期待値)である。
前述のステップS10の後に、エンジニアリングツール6Bの波形表示制御部61は、マイクロプロセッサ1からの測定結果と選択診断プログラムを表す情報とを受け取り、選択診断プログラムの実行結果として、図8に示されるようなトレース画面50を表示装置40に表示する(ステップS11)。
この場合、波形表示制御部61は、測定結果に含まれるクロック信号(プロセッサクロック信号12、トレース用クロック信号13)を表す波形と、測定結果に含まれる測定値トレースデータ16(回路アドレス信号C41、回路イネーブル信号C42、リード信号C43、および、監視データC44など)を表す波形と、異常原因データベース64に格納された期待値トレースデータ54(回路アドレス信号D41、回路イネーブル信号D42、リード信号D43、および、監視データD44など)を表す波形と、をトレース画面50の波形表示欄50Aに表示する。
波形表示制御部61がトレース画面50を表示装置40に表示したとき、エンジニアリングツール6Bの異常検出部62は、測定値トレースデータ16と期待値トレースデータ54とを比較し、比較結果を生成する(ステップS12)。
ここで、エンジニアリングツール6Bの異常表示制御部63は、異常検出部62による比較結果が測定値トレースデータ16と期待値トレースデータ54との不一致を表す場合、以下に示す処理(異常判定処理、および、異常原因特定処理)により、第1表示レベル情報58Aおよび第2表示レベル情報58Bをトレース画面50上に表示する(ステップS12−YES、S13)。
異常判定処理、および、異常原因特定処理について、図4を例にして説明する。
まず、異常検出部62は、異常判定処理を実施する。
(異常判定処理)
異常検出部62は、測定値トレースデータ16の監視データC44(立ち上りタイミング、立ち下りタイミング、および、データ値)と期待値トレースデータ54の監視データD44(立ち上りタイミング、立ち下りタイミング、および、データ値)とを比較することにより、異常原因データベース64に格納された因果関係情報58“△△△”の第3表示レベル情報58Cが表す“監視データ値異常”、および、“プロセス入出力回路セットアップ時間異常”が発生しているか否かを判定する。ここで、監視データC44のデータ値と監視データD44のデータ値とが一致しない場合、異常検出部62は、監視データC44のデータ値の異常と判定し、第3表示レベル情報58C“監視データ値異常”を選択する。一方、監視データC44のタイミング(立ち上りおよび立ち下り)と監視データD44のタイミング(立ち上りおよび立ち下り)とが一致しない場合、異常検出部62は、監視データC44のタイミングの異常と判定し、第3表示レベル情報58C“プロセス入出力回路セットアップ時間異常”を選択する。
次に、異常検出部62が第3表示レベル情報58C“監視データ値異常”を選択した場合、異常原因データベース64に格納された因果関係情報58“△△△”の第2表示レベル情報58Bが表す“回路アドレス信号値異常”が異常原因である。この場合、異常検出部62は、以下に示す第11の異常原因特定処理を実施する。
一方、異常検出部62が第3表示レベル情報58C“プロセス入出力回路セットアップ時間異常”を選択した場合、異常原因データベース64に格納された因果関係情報58“△△△”の第2表示レベル情報58Bが表す“リード信号セットアップ時間異常”、“回路イネーブル信号セットアップ時間異常”、および、“回路アドレス信号セットアップ時間異常”が異常原因である。この場合、異常検出部62は、以下に示す第12〜第14の異常原因特定処理を実施する。
まず、第11の異常原因特定処理について説明する。
(第11の異常原因特定処理)
異常検出部62は、測定値トレースデータ16の回路アドレス信号C41(アドレス値)と期待値トレースデータ54の回路アドレス信号D41(アドレス値)とを比較することにより、上記第2表示レベル情報58Bが表す“回路アドレス信号値異常”が発生しているか否かを特定する。
ここで、回路アドレス信号C41のアドレス値と回路アドレス信号D41のアドレス値とが一致しない場合、異常検出部62は、回路アドレス信号C41のアドレス値の異常と特定し、第2表示レベル情報58B“回路アドレス信号値異常”を選択する。さらに、異常検出部62は、第2表示レベル情報58B“回路アドレス信号値異常”の上位段階を表す第1表示レベル情報58A“回路アドレス信号異常”を選択する。
異常表示制御部63は、測定値トレースデータ16と期待値トレースデータ54との差異(この場合、回路アドレス信号C41のアドレス値と回路アドレス信号D41のアドレス値との差異)として、第2表示レベル情報58B“回路アドレス信号値異常”をトレース画面50上の上記差異に対応する位置に表示する。この場合、トレース画面50上の第2表示レベル情報58B“回路アドレス信号値異常”は、斜線や、他の色とは異なる色で表示される。さらに、異常表示制御部63は、第1表示レベル情報58A“回路アドレス信号異常”を文字にしてトレース画面50の異常原因表示欄50Bに表示する。
次に、第12〜第14の異常原因特定処理について説明する。
(第12の異常原因特定処理)
異常検出部62は、測定値トレースデータ16のリード信号C43(立ち上りタイミングおよび立ち下りタイミング)と期待値トレースデータ54のリード信号D43(立ち上りタイミングおよび立ち下りタイミング)とを比較することにより、上記第2表示レベル情報58Bが表す“リード信号セットアップ時間異常”が発生しているか否かを特定する。ここで、リード信号C43のタイミング(立ち上りおよび立ち下り)とリード信号D43のタイミング(立ち上りおよび立ち下り)とが一致しない場合、異常検出部62は、リード信号C43のタイミングの異常と特定し、第2表示レベル情報58B“リード信号セットアップ時間異常”を選択する。さらに、異常検出部62は、第2表示レベル情報58B“リード信号セットアップ時間異常”の上位段階を表す第1表示レベル情報58A“リード信号異常”を選択する。
異常表示制御部63は、測定値トレースデータ16と期待値トレースデータ54との差異(この場合、リード信号C43のタイミングとリード信号D43のタイミングとの差異)として、第2表示レベル情報58B“リード信号セットアップ時間異常”をトレース画面50上の上記差異に対応する位置に表示する。たとえば、リード信号C43の立ち上がりタイミングが異常の場合、リード信号C43の立ち上がりの時間付近に第2表示レベル情報58B“リード信号セットアップ時間異常”を表示する。この場合、トレース画面50上の第2表示レベル情報58B“リード信号セットアップ時間異常”は、斜線や、他の色とは異なる色で表示される(図8参照)。さらに、異常表示制御部63は、第1表示レベル情報58A“リード信号異常”を文字にしてトレース画面50の異常原因表示欄50Bに表示する(図8参照)。
(第13の異常原因特定処理)
異常検出部62は、測定値トレースデータ16の回路イネーブル信号C42(立ち上りタイミングおよび立ち下りタイミング)と期待値トレースデータ54の回路イネーブル信号D42(立ち上りタイミングおよび立ち下りタイミング)とを比較することにより、上記第2表示レベル情報58Bが表す“回路イネーブル信号セットアップ時間異常”が発生しているか否かを判定する。ここで、回路イネーブル信号C42のタイミング(立ち上りおよび立ち下り)と回路イネーブル信号D42のタイミング(立ち上りおよび立ち下り)とが一致しない場合、異常検出部62は、回路イネーブル信号C42のタイミングの異常と特定し、第2表示レベル情報58B“回路イネーブル信号セットアップ時間異常”を選択する。さらに、異常検出部62は、第2表示レベル情報58B“回路イネーブル信号セットアップ時間異常”の上位段階を表す第1表示レベル情報58A“回路イネーブル信号異常”を選択する。
異常表示制御部63は、測定値トレースデータ16と期待値トレースデータ54との差異(この場合、回路イネーブル信号C42のタイミングと回路イネーブル信号D42のタイミングとの差異)として、第2表示レベル情報58B“回路イネーブル信号セットアップ時間異常”をトレース画面50上の上記差異に対応する位置に表示する。たとえば、回路イネーブル信号C42の立ち上がりタイミングが異常の場合、回路イネーブル信号C42の立ち上がりの時間付近に第2表示レベル情報58B“回路イネーブル信号セットアップ時間異常”を表示する。この場合、トレース画面50上の第2表示レベル情報58B“回路イネーブル信号セットアップ時間異常”は、斜線や、他の色とは異なる色で表示される。さらに、異常表示制御部63は、第1表示レベル情報58A“回路イネーブル信号異常”を文字にしてトレース画面50の異常原因表示欄50Bに表示する。
(第14の異常原因特定処理)
異常検出部62は、測定値トレースデータ16の回路アドレス信号C41(立ち上りタイミングおよび立ち下りタイミング)と期待値トレースデータ54の回路アドレス信号D41(立ち上りタイミングおよび立ち下りタイミング)とを比較することにより、上記第2表示レベル情報58Bが表す“回路アドレス信号セットアップ時間異常”が発生しているか否かを判定する。ここで、回路アドレス信号C41のタイミング(立ち上りおよび立ち下り)と回路アドレス信号D41のタイミング(立ち上りおよび立ち下り)とが一致しない場合、異常検出部62は、回路アドレス信号C41のタイミングの異常と特定し、第2表示レベル情報58B“回路アドレス信号セットアップ時間異常”を選択する。さらに、異常検出部62は、第2表示レベル情報58B“回路アドレス信号セットアップ時間異常”の上位段階を表す第1表示レベル情報58A“回路アドレス信号異常”を選択する。
異常表示制御部63は、測定値トレースデータ16と期待値トレースデータ54との差異(この場合、回路アドレス信号C41のタイミングと回路アドレス信号D41のタイミングとの差異)として、第2表示レベル情報58B“回路アドレス信号セットアップ時間異常”をトレース画面50上の上記差異に対応する位置に表示する。たとえば、回路アドレス信号C41の立ち上がりタイミングが異常の場合、回路アドレス信号C41の立ち上がりの時間付近に第2表示レベル情報58B“回路アドレス信号セットアップ時間異常”を表示する。この場合、トレース画面50上の第2表示レベル情報58B“回路アドレス信号セットアップ時間異常”は、斜線や、他の色とは異なる色で表示される。さらに、異常表示制御部63は、第1表示レベル情報58A“回路アドレス信号異常”を文字にしてトレース画面50の異常原因表示欄50Bに表示する。
本実施形態では、エンジニアリングツール6Bの異常原因データベース64に期待値トレースデータ54と因果関係情報58“△△△”とをプロセス入出力回路リード診断プログラムを表す情報に対応付けて予めに格納しておく。プログラマブルコントローラユニット6Aでは、マイクロプロセッサ1がプロセス入出力回路リード診断プログラムを実行したときに、アクセス制御部2がマイクロプロセッサ1からプロセス入出力回路5への読み出しに用いられる信号の波形をトレースした測定値トレースデータ16を生成し、測定結果(測定値トレースデータ16、クロック信号)がエンジニアリングツール6Bに送信される。エンジニアリングツール6Bは、測定結果に含まれる測定値トレースデータ16をトレース画面50により作業員に提示する。このように、本実施形態によれば、作業員は観測ツールなどの接続を必要とせずに遠隔地で動作確認を行うことができる。
また、本実施形態では、エンジニアリングツール6Bは、測定結果に含まれる測定値トレースデータ16と異常原因データベース64に格納された期待値トレースデータ54とが一致しないときに、異常原因データベース64に格納された因果関係情報58“△△△”から故障箇所を同定し、それを表す第1表示レベル情報58Aおよび第2表示レベル情報58Bをトレース画面50により作業員に提示する。このように、本実施形態によれば、作業員は観測ツールなどの接続を必要とせずに遠隔地で解析を行うことができる。
以上により、本実施形態は、観測ツールなどの接続を必要とせずに遠隔地で動作確認や解析を実施することができる。
[第2実施形態]
第2実施形態に係るプログラマブルコントローラシステムでは、第1実施形態に対して、アクセス制御部2のトレース制御回路30が第1バス7および第2バス8の少なくとも一方のバスの異常をトリガとして測定値トレースデータ16を生成することが異なる。
図9は、プログラマブルコントローラユニット6Aのアクセス制御部2の構成を示すブロック図である。
第2実施形態に係るプログラマブルコントローラシステムでは、プログラマブルコントローラユニット6Aのアクセス制御部2は、さらに、エラー検出回路23を具備している。
アクセス制御部2のエラー検出回路23は、マイクロプロセッサ1が診断プログラムを実行したときに、マイクロプロセッサ1と1つの構成要素間のアクセスに対して第1バス7および第2バス8の少なくとも一方のバスに異常がある場合に、少なくとも一方のバスの異常を表すエラー検出信号23Aを出力する。このとき、アクセス制御部2のトレース制御回路30は、エラー検出信号23Aをトリガとして測定値トレースデータ16を生成する。
図10は、第2実施形態に係るプログラマブルコントローラシステムの動作を示すフローチャートである。
前述のステップS5の後に、アクセス制御部2のエラー検出回路23は、マイクロプロセッサ1と1つの構成要素間のアクセスに対して第1バス7および第2バス8の少なくとも一方のバスに異常があるか否かを調べる。この場合、ECC(Error Correcting Code;誤り訂正符号)などの診断により上記少なくとも一方のバスの異常を検出する。
ここで、エラー検出回路23は、上記少なくとも一方のバスの異常を検出した場合、その旨を表すエラー検出信号23Aをデータ選択回路18に出力する(ステップS21−YES)。
この場合、アクセス制御部2のリード・ライト制御回路22は、エラー検出信号23Aをトリガ信号17として受けとり、設定レジスタ10に設定されたトレース許可信号19A“有効”と、トリガ信号17(エラー検出信号23A)とに応じて、PLL回路14からのトレース用クロック信号13に同期したトレースライト信号19Cを設定時間だけトレースデータ格納メモリ20に出力する。トレースデータ格納メモリ20は、リード・ライト制御回路22からのトレースライト信号19Cに応じて、測定結果を自身のメモリ領域に格納する(ステップS7)。その後、ステップS8以降が行われる。
測定結果は、データ選択回路18からの測定値トレースデータ16(アドレス信号C21、チップイネーブル信号C22、リード信号C23、および、メモリデータC24などを表す値)と、測定値トレースデータ16を格納するときに用いられるクロック信号(プロセッサクロック信号12およびトレース用クロック信号13)と、測定値トレースデータ16を格納するときのエラーログ(エラー検出信号23A)とを含んでいる。
一方、エラー検出回路23が上記少なくとも一方のバスの異常を検出しない場合、アクセス制御部2のデータ選択回路18は、第1実施形態と同様に、トレースが行われる所定のタイミングとしてトリガ信号17をリード・ライト制御回路22に出力する(ステップS21−NO、S6−YES)。
この場合、アクセス制御部2のリード・ライト制御回路22は、トリガ信号17を受けとったたきに、設定レジスタ10に設定されたトレース許可信号19A“有効”と、トリガ信号17とに応じて、PLL回路14からのトレース用クロック信号13に同期したトレースライト信号19Cを設定時間だけトレースデータ格納メモリ20に出力する。トレースデータ格納メモリ20は、リード・ライト制御回路22からのトレースライト信号19Cに応じて、測定結果を自身のメモリ領域に格納する(ステップS7)。その後、ステップS8以降が行われる。
測定結果は、第1実施形態と同様に、データ選択回路18からの測定値トレースデータ16(アドレス信号C21、チップイネーブル信号C22、リード信号C23、および、メモリデータC24などを表す値)と、測定値トレースデータ16を格納するときに用いられるクロック信号(プロセッサクロック信号12およびトレース用クロック信号13)とを含んでいる。
本実施形態では、プログラマブルコントローラユニット6Aのアクセス制御部2は、第1バス7および第2バス8の少なくとも一方のバスの異常を検出した場合、それをトリガとして測定値トレースデータ16を生成し、測定結果(測定値トレースデータ16、クロック信号およびエラーログ)がエンジニアリングツール6Bに送信される。このように、本実施形態によれば、バスの異常をトリガとして測定値トレースデータ16を生成するため、第1実施形態に対して、容易に故障箇所を同定することができる。
[第3実施形態]
第3実施形態に係るプログラマブルコントローラシステムでは、第2実施形態に対して、マイクロプロセッサ1が起動時に診断プログラムを実行することが異なる。
図11は、第3実施形態に係るプログラマブルコントローラシステムの動作を示すフローチャートである。
マイクロプロセッサ1は、起動時に、マイクロプロセッサ1の内蔵メモリ3に書き込まれた複数の診断プログラムのうちの1つの診断プログラムを選択診断プログラムとして選択し、選択診断プログラムを実行する(ステップS31−NO、S32−YES、S2)。マイクロプロセッサ1は、ステップS3、S4、S8およびS10を実行した後、診断プログラムを全て実行していない場合は、マイクロプロセッサ1の内蔵メモリ3に書き込まれた複数の診断プログラムのうちの他の1つの診断プログラムを選択診断プログラムとして選択し、選択診断プログラムを実行する(ステップS33−NO、S34−NO、S2)。マイクロプロセッサ1は、診断プログラムを全て実行するまで(ステップS34−YES)、ステップS3、S4、S8、S10、S33−NO、S34−NO、S2を繰り返す。
一方、エンジニアリングツール6Bにより1つの診断プログラムが指定された場合(ステップS1)、マイクロプロセッサ1は、第1および第2実施形態と同様の処理を実行する(ステップS31−YES、S2、S3、S4、S8、S10、S33−YES)。
本実施形態では、プログラマブルコントローラユニット6Aが、起動時に、診断プログラムを実行して、その実行結果に基づいて測定値トレースデータ16を生成し、測定結果(測定値トレースデータ16、クロック信号およびエラーログ)がエンジニアリングツール6Bに送信される。このように、本実施形態によれば、エンジニアリングツール6Bが診断プログラムを実行させるための指示をマイクロプロセッサ1に送信してから、その指示をプログラマブルコントローラユニット6Aが受け取るまでの時間を短縮することができる。
また、本実施形態によれば、プログラマブルコントローラユニット6Aが起動時に複数の診断プログラムを一括して実行する場合では特に有効である。
また、本実施形態では、プログラマブルコントローラユニット6Aが起動時に自動的に診断プログラムを実行することにより、たとえば本システムまたはプログラマブルコントローラユニット6Aの出荷前に故障箇所を同定することができる。
[第4実施形態]
第4実施形態に係るプログラマブルコントローラシステムでは、第3実施形態に対して、エンジニアリングツール6Bがマイクロプロセッサ1と1つの構成要素間のアクセス時の経年変化による異常の原因を同定することが異なる。
図12は、第4実施形態に係るプログラマブルコントローラシステムの構成を示すブロック図である。
第4実施形態に係るプログラマブルコントローラシステムでは、エンジニアリングツール6Bは、さらに、経年変化データベース65を具備している。
図13は、エンジニアリングツール6B内の経年変化データベース65を示す図である。
経年変化データベース65には、マイクロプロセッサ1から起動時および一定時間毎に送信される測定結果(測定値トレースデータ16、クロック信号およびエラーログ)が順次格納される。
具体的には、経年変化データベース65には、複数の診断プログラムのうちのデータメモリライト診断プログラムを表す情報に対応付けて、マイクロプロセッサ1からデータメモリ4への書き込み時の起動時および一定時間毎に送信される測定結果{測定値トレースデータ16(アドレス信号C11、チップイネーブル信号C12およびライト信号C13などを表す値)、クロック信号(図示省略)およびエラーログ(図示省略)}が格納される。
また、異常原因データベース64には、複数の診断プログラムのうちのデータメモリリード診断プログラムを表す情報に対応付けて、データメモリ4からマイクロプロセッサ1への読み出し時の起動時および一定時間毎に送信される測定結果{測定値トレースデータ16(アドレス信号C21、チップイネーブル信号C22、リード信号C23、および、メモリデータC24などを表す値)、クロック信号(図示省略)およびエラーログ(図示省略)}が格納される。
また、異常原因データベース64には、複数の診断プログラムのうちのプロセス入出力回路ライト診断プログラムを表す情報に対応付けて、マイクロプロセッサ1からプロセス入出力回路5への書き込み(出力)時の起動時および一定時間毎に送信される測定結果{測定値トレースデータ16(回路アドレス信号C31、回路イネーブル信号C32およびライト信号C33などを表す値)、クロック信号(図示省略)およびエラーログ(図示省略)}が格納される。
また、異常原因データベース64には、複数の診断プログラムのうちのプロセス入出力回路リード診断プログラムを表す情報に対応付けて、プロセス入出力回路5からマイクロプロセッサ1への読み出し時の起動時および一定時間毎に送信される測定結果{測定値トレースデータ16(回路アドレス信号C41、回路イネーブル信号C42、リード信号C43、および、監視データC44などを表す値)、クロック信号(図示省略)およびエラーログ(図示省略)}が格納される。
図14は、エンジニアリングツール6B内の異常原因データベース64を示す図である。
異常原因データベース64には、起動時および一定時間毎の期待値トレースデータ51〜54と、マイクロプロセッサ1と1つの構成要素間のアクセス時の異常の原因となる因果関係を表す因果関係情報55〜58とが格納されている。
具体的には、異常原因データベース64には、複数の診断プログラムのうちのデータメモリライト診断プログラムを表す情報に対応付けて、マイクロプロセッサ1からデータメモリ4への書き込み時の起動時および一定時間毎の期待値トレースデータ51(アドレス信号D11、チップイネーブル信号D12、および、ライト信号D13などを表す値)と、その書き込み時の異常の原因となる因果関係を表す因果関係情報55“○○○”とが格納されている。
また、異常原因データベース64には、複数の診断プログラムのうちのデータメモリリード診断プログラムを表す情報に対応付けて、データメモリ4からマイクロプロセッサ1への読み出し時の起動時および一定時間毎の期待値トレースデータ52(アドレス信号D21、チップイネーブル信号D22、リード信号D23、メモリデータD24などを表す値)と、その読み出し時の異常の原因となる因果関係を表す因果関係情報56“○○△”とが格納されている。
また、異常原因データベース64には、複数の診断プログラムのうちのプロセス入出力回路ライト診断プログラムを表す情報に対応付けて、マイクロプロセッサ1からプロセス入出力回路5への書き込み(出力)時の起動時および一定時間毎の期待値トレースデータ53(回路アドレス信号D31、回路イネーブル信号D32、ライト信号D33などを表す値)と、その書き込み時の異常の原因となる因果関係を表す因果関係情報57“○△△”とが格納されている。
また、異常原因データベース64には、複数の診断プログラムのうちのプロセス入出力回路リード診断プログラムを表す情報に対応付けて、プロセス入出力回路5からマイクロプロセッサ1への読み出し時の起動時および一定時間毎の期待値トレースデータ54(回路アドレス信号D41、回路イネーブル信号D42、リード信号D43、監視データD44などを表す値)と、その読み出し時の異常の原因となる因果関係を表す因果関係情報58“△△△”とが格納されている。
図15は、プロセス入出力回路リード診断プログラムを表す情報に対応付けて異常原因データベース64に格納された因果関係情報58“△△△”を示す図である。
プロセス入出力回路リード診断プログラムを例にした場合、異常原因データベース64に格納されている因果関係情報58“△△△”は、第1表示レベル情報58Aと第2表示レベル情報58Bと第3表示レベル情報58Cと、第1経年変化表示レベル情報58Dと第2経年変化表示レベル情報58Eとを含んでいる。
第1表示レベル情報58Aは、プロセス入出力回路5からマイクロプロセッサ1への読み出し時の異常の原因を同定するための情報である。たとえば、その異常の原因としては“リード信号異常”、“回路イネーブル信号異常”、“回路アドレス信号異常”、および、“経年変化による異常”が挙げられる。
第2表示レベル情報58Bは、第1表示レベル情報58Aが表す異常の前段階の異常を同定するための情報である。前述と同様に、第1表示レベル情報58A“リード信号異常”の前段階の異常としては“リード信号セットアップ時間異常”が挙げられる。第1表示レベル情報58A“回路イネーブル信号異常”の前段階の異常としては“回路イネーブル信号セットアップ時間異常”が挙げられる。第1表示レベル情報58A“回路アドレス信号異常”の前段階の異常としては“回路アドレス信号値異常”または“回路アドレス信号セットアップ時間異常”が挙げられる。
第3表示レベル情報58Cは、第2表示レベル情報58Bが表す異常の前段階の異常、または、第2表示レベル情報58Bが表す異常が該当しないときに第1表示レベル情報58Aが表す異常の前段階の異常を同定するための情報である。第2表示レベル情報58B“回路アドレス信号値異常”の前段階の異常、または、第1表示レベル情報58A“経年変化による異常”の前段階の異常としては“監視データ値異常”が挙げられる。第2表示レベル情報58B“リード信号セットアップ時間異常”、“回路イネーブル信号セットアップ時間異常”、および、“回路アドレス信号セットアップ時間異常”の前段階の異常としては“プロセス入出力回路セットアップ時間異常”が挙げられる。
第1経年変化表示レベル情報58Dは、プロセス入出力回路5からマイクロプロセッサ1への読み出し時の経年変化による異常の原因を同定するための情報である。たとえば、その経年変化による異常の原因としては、プラント機器100を監視するセンサの劣化を表す“温度センサ劣化可能性あり”、“開度センサ劣化可能性あり”、および、“圧力センサ劣化可能性あり”が挙げられる。
第2経年変化表示レベル情報58Eは、第1経年変化表示レベル情報58Dが表す経年変化による異常の前段階の異常を同定するための情報である。第1経年変化表示レベル情報58D“温度センサ劣化可能性あり”の前段階の異常としては“温度センサ入力値異常”が挙げられる。第1経年変化表示レベル情報58D“開度センサ劣化可能性あり”の前段階の異常としては“開度センサ入力値異常”が挙げられる。第1経年変化表示レベル情報58D“圧力センサ劣化可能性あり”の前段階の異常としては“圧力センサ入力値異常”が挙げられる。
第1表示レベル情報58A“経年変化による異常”は、第2経年変化表示レベル情報58Eが表す経年変化による異常の前段階の異常を同定するための情報である。
図16は、第4実施形態に係るプログラマブルコントローラシステムの動作を示すフローチャートである。図17は、プロセス入出力回路リード診断プログラムが実行されたときに表示装置40に表示される経年変化画面70を示す図である。図18および図19は、画面表示パターンを示す図である。ここで、図19は、図18とは異なる例を示している。
前述のステップS10の後に、エンジニアリングツール6Bの波形表示制御部61は、マイクロプロセッサ1からの測定結果(測定値トレースデータ16、クロック信号、エラーログ)と選択診断プログラム(たとえばプロセス入出力回路リード診断プログラム)を表す情報とを受け取り、選択診断プログラムに対応付けて異常原因データベース64に測定結果を格納する。また、波形表示制御部61は、選択診断プログラムの実行結果として、トレース画面50を表示装置40に表示する(ステップS11)。
この場合、波形表示制御部61は、測定結果に含まれるクロック信号(プロセッサクロック信号12、トレース用クロック信号13)を表す波形と、測定結果に含まれる測定値トレースデータ16(回路アドレス信号C41、回路イネーブル信号C42、リード信号C43、および、監視データC44など)を表す波形と、異常原因データベース64に格納された期待値トレースデータ54(回路アドレス信号D41、回路イネーブル信号D42、リード信号D43、および、監視データD44など)を表す波形と、をトレース画面50の波形表示欄50Aに表示する。
波形表示制御部61がトレース画面50を表示装置40に表示したとき、エンジニアリングツール6Bの異常検出部62は、測定値トレースデータ16と期待値トレースデータ52とを比較し、比較結果を生成する(ステップS12)。
ここで、エンジニアリングツール6Bの異常表示制御部63は、異常検出部62による比較結果が測定値トレースデータ16と期待値トレースデータ52との不一致を表す場合、以下に示す処理(異常判定処理、および、異常原因特定処理)により、第1表示レベル情報56Aおよび第2表示レベル情報56Bをトレース画面50上に表示する(ステップS12−YES、S13)。
異常判定処理、および、異常原因特定処理について、図15を例にして説明する。図4に示された内容と重複するものについては、その説明を省略する。
(異常判定処理)
ここで、異常検出部62が第3表示レベル情報58C“監視データ値異常”を選択した場合、異常原因データベース64に格納された因果関係情報58“△△△”の第2表示レベル情報58Bが表す“回路アドレス信号値異常”、または、第1表示レベル情報58Aが表す“経年変化による異常”が異常原因である。この場合、異常検出部62は、以下に示す第11の異常原因特定処理を実施する。
(第11の異常原因特定処理)
第11の異常原因特定処理において、回路アドレス信号C41のアドレス値と回路アドレス信号D41のアドレス値とが一致していない場合、異常検出部62は、第2表示レベル情報58B“回路アドレス信号値異常”と第1表示レベル情報58A“回路アドレス信号異常”とを選択している。このとき、異常検出部62は、さらに、経年変化による異常と特定し、第1表示レベル情報58Aが表す“経年変化による異常”を選択する。
この場合、異常表示制御部63は、測定値トレースデータ16と期待値トレースデータ54との差異(回路アドレス信号C41のアドレス値と回路アドレス信号D41のアドレス値との差異)として、第2表示レベル情報58B“回路アドレス信号値異常”をトレース画面50上の上記差異に対応する位置に表示し、第1表示レベル情報58A“回路アドレス信号異常”を文字にしてトレース画面50の異常原因表示欄50Bに表示する。
エンジニアリングツール6Bの波形表示制御部61は、異常検出部62が第1表示レベル情報58A“経年変化による異常”を選択し、選択診断プログラムに対応付けて異常原因データベース64に格納された測定結果が2つ以上存在する場合に、図17に示されるような経年変化画面70を表示装置40に表示する(ステップS41−YES、S42)。
この経年変化画面70は、経年波形表示欄70Aと経年異常原因表示欄70Bとを含んでいる。経年波形表示欄70Aは経年変化画面70の中央部分に設けられ、経年異常原因表示欄70Bは、経年変化画面70の経年波形表示欄70A以外の部分、たとえば経年波形表示欄70Aの下方部分に設けられている。
この場合、波形表示制御部61は、選択診断プログラム(プロセス入出力回路リード診断プログラム)に対応付けて経年変化データベース65に格納された測定結果に含まれる、起動時および一定時間毎の測定値トレースデータ16(回路アドレス信号C41、回路イネーブル信号C42、リード信号C43、および、監視データC44など)と、選択診断プログラムに対応付けて異常原因データベース64に格納された起動時および一定時間毎の期待値トレースデータ54(回路アドレス信号C41、回路イネーブル信号C42、リード信号C43、および、監視データC44など)と、を経年変化画面70の経年波形表示欄70Aに表示する。図17においては、監視データC44(温度)を例にしている。
ステップS42において、波形表示制御部61は、図18に示されるように、トレース画面50と経年変化画面70との両方の画面を表示装置40に表示してもよい。または、図19に示されるように、利用者の切り替え操作に応じてトレース画面50と経年変化画面70との一方の画面を選択的に表示装置40に表示してもよい。
波形表示制御部61が経年変化画面70を表示装置40に表示したとき、エンジニアリングツール6Bの異常検出部62は、選択診断プログラムに対応付けて経年変化データベース65に順次格納された起動時および一定時間毎の測定値トレースデータ16と、選択診断プログラムに対応付けて異常原因データベース64に格納された起動時および一定時間毎の期待値トレースデータ54とを比較し、比較結果を生成する(ステップS43)。
ここで、エンジニアリングツール6Bの異常表示制御部63は、異常検出部62による比較結果が上記測定値トレースデータ16と上記期待値トレースデータ52との不一致を表す場合、以下に示す処理(経年異常原因特定処理)により、第1経年変化表示レベル情報58Dおよび第2経年変化表示レベル情報58Eを経年変化画面70上に表示する(ステップS43−YES、S44)。
経年異常原因特定処理について、図15を例にして説明する。
次に、異常検出部62が第3表示レベル情報58C“監視データ値異常”を選択した場合、異常原因データベース64に格納された因果関係情報58“△△△”の第2経年変化表示レベル情報58Eが表す“回路アドレス信号値異常”、または、第1経年変化表示レベル情報58Dが表す“経年変化による異常”が異常原因である。この場合、異常検出部62は、前述の第11の経年異常原因特定処理を実施した上で、以下に示す第1〜第3の経年異常原因特定処理を実施する。
(第1の経年異常原因特定処理)
異常検出部62は、測定値トレースデータ16の監視データC44(温度センサ入力値)と期待値トレースデータ54の監視データD44(温度センサ入力値)とを比較することにより、上記第2経年変化表示レベル情報58Eが表す“温度センサ入力値異常”が発生しているか否かを特定する。
ここで、監視データC44の温度センサ入力値と監視データD44の温度センサ入力値とが一致しない場合、異常検出部62は、監視データC44の温度センサ入力値の異常と特定し、第2経年変化表示レベル情報58E“温度センサ入力値異常”を選択する。さらに、異常検出部62は、第2経年変化表示レベル情報58E“温度センサ入力値”の上位段階を表す第1経年変化表示レベル情報58D“温度センサ劣化可能性あり”を選択する。
異常表示制御部63は、測定値トレースデータ16と期待値トレースデータ54との差異(この場合、監視データC44の温度センサ入力値と監視データD44の温度センサ入力値との差異)として、第2経年変化表示レベル情報58E“温度センサ入力値”を経年変化画面70上の上記差異に対応する位置に表示する。この場合、経年変化画面70上の第2経年変化表示レベル情報58E“温度センサ入力値”は、斜線や、他の色とは異なる色で表示される(図17参照)。さらに、異常表示制御部63は、第1経年変化表示レベル情報58D“温度センサ劣化可能性あり”を文字にして経年変化画面70の経年異常原因表示欄70Bに表示する(図17参照)。
(第2の経年異常原因特定処理)
異常検出部62は、測定値トレースデータ16の監視データC44(開度センサ入力値)と期待値トレースデータ54の監視データD44(開度センサ入力値)とを比較することにより、上記第2経年変化表示レベル情報58Eが表す“開度センサ入力値異常”が発生しているか否かを特定する。
ここで、監視データC44の開度センサ入力値と監視データD44の開度センサ入力値とが一致しない場合、異常検出部62は、監視データC44の開度センサ入力値の異常と特定し、第2経年変化表示レベル情報58E“開度センサ入力値異常”を選択する。さらに、異常検出部62は、第2経年変化表示レベル情報58E“開度センサ入力値”の上位段階を表す第1経年変化表示レベル情報58D“開度センサ劣化可能性あり”を選択する。
異常表示制御部63は、測定値トレースデータ16と期待値トレースデータ54との差異(この場合、監視データC44の開度センサ入力値と監視データD44の開度センサ入力値との差異)として、第2経年変化表示レベル情報58E“開度センサ入力値”を経年変化画面70上の上記差異に対応する位置に表示する。この場合、経年変化画面70上の第2経年変化表示レベル情報58E“開度センサ入力値”は、斜線や、他の色とは異なる色で表示される。さらに、異常表示制御部63は、第1経年変化表示レベル情報58D“開度センサ劣化可能性あり”を文字にして経年変化画面70の経年異常原因表示欄70Bに表示する。
(第3の経年異常原因特定処理)
異常検出部62は、測定値トレースデータ16の監視データC44(圧力センサ入力値)と期待値トレースデータ54の監視データD44(圧力センサ入力値)とを比較することにより、上記第2経年変化表示レベル情報58Eが表す“圧力センサ入力値異常”が発生しているか否かを特定する。
ここで、監視データC44の圧力センサ入力値と監視データD44の圧力センサ入力値とが一致しない場合、異常検出部62は、監視データC44の圧力センサ入力値の異常と特定し、第2経年変化表示レベル情報58E“圧力センサ入力値異常”を選択する。さらに、異常検出部62は、第2経年変化表示レベル情報58E“圧力センサ入力値”の上位段階を表す第1経年変化表示レベル情報58D“圧力センサ劣化可能性あり”を選択する。
異常表示制御部63は、測定値トレースデータ16と期待値トレースデータ54との差異(この場合、監視データC44の圧力センサ入力値と監視データD44の圧力センサ入力値との差異)として、第2経年変化表示レベル情報58E“圧力センサ入力値”を経年変化画面70上の上記差異に対応する位置に表示する。この場合、経年変化画面70上の第2経年変化表示レベル情報58E“圧力センサ入力値”は、斜線や、他の色とは異なる色で表示される。さらに、異常表示制御部63は、第1経年変化表示レベル情報58D“圧力センサ劣化可能性あり”を文字にして経年変化画面70の経年異常原因表示欄70Bに表示する。
本実施形態では、エンジニアリングツール6Bの異常原因データベース64に期待値トレースデータ54と因果関係情報58“△△△”とをプロセス入出力回路リード診断プログラムを表す情報に対応付けて予めに格納しておき、測定結果(測定値トレースデータ16、クロック信号およびエラーログ)を起動時および一定時間毎に順次格納するための経年変化データベース65をエンジニアリングツール6Bに用意しておく。プログラマブルコントローラユニット6Aでは、マイクロプロセッサ1がプロセス入出力回路リード診断プログラムを実行したときに、測定結果がエンジニアリングツール6Bに送信され、経年変化データベース65に格納される。エンジニアリングツール6Bは、経年変化データベース65に格納された測定結果に含まれる、起動時および一定時間毎の測定値トレースデータ16と、異常原因データベース64に格納された起動時および一定時間毎の期待値トレースデータ54とを経年変化画面70により作業員に提示する。このように、本実施形態によれば、作業員は観測ツールなどの接続を必要とせずに遠隔地で経年変化の確認を行うことができる。
また、本実施形態では、エンジニアリングツール6Bは、経年変化データベース65に格納された測定結果に含まれる、起動時および一定時間毎の測定値トレースデータ16と、異常原因データベース64に格納された起動時および一定時間毎の期待値トレースデータ54とが一致しないときに、異常原因データベース64に格納された因果関係情報58“△△△”から経年変化による故障箇所を同定し、それを表す第1経年変化表示レベル情報58Dおよび第2経年変化表示レベル情報58Eを経年変化画面70により作業員に提示する。このように、本実施形態によれば、作業員は観測ツールなどの接続を必要とせずに遠隔地で経年変化による故障の解析を行うことができる。
以上により、本実施形態は、観測ツールなどの接続を必要とせずに遠隔地で経年変化の確認や経年変化による故障の解析を実施することができる。
[第5実施形態]
第5実施形態に係るプログラマブルコントローラシステムでは、第4実施形態に対して、エンジニアリングツール6Bがマイクロプロセッサ1と通信できないときに、エンジニアリングツール6BがJTAG(Joint Test Action Group)を利用してプログラマブルコントローラユニット6Aから測定結果を取得することが異なる。
図20は、第5実施形態に係るプログラマブルコントローラシステムの構成を示すブロック図である。
第5実施形態に係るプログラマブルコントローラシステムは、さらに、予備プログラマブルコントローラユニット106Aと、JTAG接続ツール25と、JTAG用アダプタ24と、を具備している。
予備プログラマブルコントローラユニット106Aは、プログラマブルコントローラユニット6Aと同じ構成である。プログラマブルコントローラユニット6Aがプラント機器100を監視することが困難であるときに、予備プログラマブルコントローラユニット106Aがプログラマブルコントローラユニット6Aに代わってプラント機器100を監視する。
JTAG接続ツール25は、エンジニアリングツール6Bと共にコンピュータ26に設けられ、エンジニアリングツール6Bに接続されている。
JTAG用アダプタ24は、JTAG接続ツール25に接続される。
プログラマブルコントローラユニット6Aのマイクロプロセッサ1は、OS(Operating System)上で動作する。
マイクロプロセッサ1およびアクセス制御部2は、JTAG用アダプタ24に接続されるJTAGポート41を有している。
第5実施形態に係るプログラマブルコントローラシステムでは、エンジニアリングツール6Bは、さらに、要求部66を具備している。
図21および図22は、第5実施形態に係るプログラマブルコントローラシステムの動作を示すフローチャートである。ここで、図22は、図21とは異なる例を示している。
たとえばエンジニアリングツール6BがOSの異常によりマイクロプロセッサ1と通信ができないときに、図21に示されるように、予備プログラマブルコントローラユニット106Aとプラント機器100とを接続し、プログラマブルコントローラユニット6Aとプラント機器100との接続を解除することにより、プラント機器100の監視をプログラマブルコントローラユニット6Aから予備プログラマブルコントローラユニット106Aに切り替える。同時に、プログラマブルコントローラユニット6Aのマイクロプロセッサ1のJTAGポート41にJTAG用アダプタ24が接続される(ステップS51)。
エンジニアリングツール6Bの要求部66は、測定結果を要求するためのデータ要求をJTAG接続ツール25、JTAG用アダプタ24およびJTAGポート41を介してプログラマブルコントローラユニット6Aのマイクロプロセッサ1に送信する(ステップS52)。
プログラマブルコントローラユニット6Aのマイクロプロセッサ1は、データ要求に応じて、アクセス制御部2のトレースデータ格納メモリ20に格納された測定結果を読み取り、その測定結果をJTAGポート41、JTAG用アダプタ24およびJTAG接続ツール25を介してエンジニアリングツール6Bに送信する。具体的には、マイクロプロセッサ1は、データ要求をアクセス制御部2に転送し(ステップS53)、アクセス制御部2のアクセス制御回路9は、データ要求に応じて、トレースデータ格納メモリ20に格納された測定結果をマイクロプロセッサ1に出力する(ステップS54)、マイクロプロセッサ1は、その測定結果をJTAGポート41、JTAG用アダプタ24およびJTAG接続ツール25を介してエンジニアリングツール6Bに送信(転送)する(ステップS55)。
一方、エンジニアリングツール6BがOSの異常以外によりマイクロプロセッサ1と通信ができないときに、図22に示されるように、プラント機器100の監視をプログラマブルコントローラユニット6Aから予備プログラマブルコントローラユニット106Aに切り替える。同時に、プログラマブルコントローラユニット6Aのアクセス制御部2のJTAGポート41にJTAG用アダプタ24が接続される(ステップS61)。
エンジニアリングツール6Bの要求部66は、測定結果を要求するためのデータ要求をJTAG接続ツール25、JTAG用アダプタ24およびJTAGポート41を介してプログラマブルコントローラユニット6Aのアクセス制御部2に送信する(ステップS62)。
プログラマブルコントローラユニット6Aのアクセス制御部2は、データ要求に応じて、アクセス制御部2のトレースデータ格納メモリ20に格納された測定結果をJTAGポート41、JTAG用アダプタ24およびJTAG接続ツール25を介してエンジニアリングツール6Bに送信する(ステップS63)。
本実施形態では、エンジニアリングツール6Bがマイクロプロセッサ1と通信できないときに、エンジニアリングツール6BがJTAGを利用してプログラマブルコントローラユニット6Aから測定結果(測定値トレースデータ16、クロック信号、エラーログ)を取得することができる。このため、本実施形態によれば、エンジニアリングツール6Bがマイクロプロセッサ1と通信できない原因や、エンジニアリングツール6Bがマイクロプロセッサ1と通信できなくなるときの状況などを測定結果から追究することができる。
[第6実施形態]
第6実施形態に係るプログラマブルコントローラシステムでは、第4実施形態に対して、エンジニアリングツール6Bがマイクロプロセッサ1と通信できなくても、着脱可能な不揮発性メモリモジュールを用いてプログラマブルコントローラユニット6Aから測定結果を取得することが異なる。
図23は、第6実施形態に係るプログラマブルコントローラシステムの構成を示すブロック図である。
第6実施形態に係るプログラマブルコントローラシステムは、さらに、予備プログラマブルコントローラユニット106Aと、不揮発性メモリモジュール27とを具備している。予備プログラマブルコントローラユニット106Aについては第5実施形態と同様である。
不揮発性メモリモジュール27は、プログラマブルコントローラユニット6Aに着脱可能である。不揮発性メモリモジュール27としては、フラッシュメモリが例示される。
この場合、アクセス制御部2のトレース制御回路30は、マイクロプロセッサ1が診断プログラムを実行したときに前述の測定結果(測定値トレースデータ16、クロック信号、エラーログ)をトレースデータ格納メモリ20と不揮発性メモリモジュール27とに格納する。
具体的には、前述のステップS7において、アクセス制御部2のリード・ライト制御回路22は、設定レジスタ10に設定されたトレース許可信号19A“有効”と、トリガ信号17(エラー検出信号23A)とに応じて、PLL回路14からのトレース用クロック信号13に同期したトレースライト信号19Cを設定時間だけトレースデータ格納メモリ20および不揮発性メモリモジュール27に出力する。トレースデータ格納メモリ20は、リード・ライト制御回路22からのトレースライト信号19Cに応じて、測定結果(測定値トレースデータ16、クロック信号、エラーログ)を自身のメモリ領域に格納する。不揮発性メモリモジュール27は、リード・ライト制御回路22からのトレースライト信号19Cに応じて、測定結果(測定値トレースデータ16、クロック信号、エラーログ)を自身のメモリ領域に格納する。
本実施形態では、エンジニアリングツール6Bがマイクロプロセッサ1と通信できないときに、着脱可能な不揮発性メモリモジュール27を用いてプログラマブルコントローラユニット6Aから測定結果(測定値トレースデータ16、クロック信号、エラーログ)を取得することができる。このため、本実施形態によれば、エンジニアリングツール6Bがマイクロプロセッサ1と通信できない原因や、エンジニアリングツール6Bがマイクロプロセッサ1と通信できなくなるときの状況などを測定結果から追究することができる。
[他の実施形態]
以上、本発明のいくつかの実施形態を説明したが、これらの実施形態は、例として提示したものであり、発明の範囲を限定することは意図していない。これら新規な実施形態は、その他の様々な形態で実施されることが可能であり、発明の要旨を逸脱しない範囲で、種々の省略、置き換え、変更、また各実施形態の特徴を組み合わせることができる。これら実施形態やその変形は、発明の範囲や要旨に含まれるとともに、特許請求の範囲に記載された発明とその均等の範囲に含まれる。