(57)【特許請求の範囲】
【請求項１】
制御装置とこの制御装置よりも有利な条件下に置かれたモニタ装置を備えた制御装置のモニタシステムであって、
前記制御装置は、
制御装置が制御プログラムを実行した結果をモニタ装置に送信する実行結果送信手段を有し、
前記モニタ装置は、
前記制御装置が実行した制御プログラムと同一の制御プログラムを実行する実行手段と、
前記実行結果送信手段により送信されてきた実行結果と前記実行手段により得られた実行結果とを表示する表示手段と、
を有することを特徴とする制御装置のモニタシステム。
【請求項２】
請求項１記載の制御装置のモニタシステムにおいて、
前記制御装置は、制御プログラムが使用した変数データを収集する収集手段と、
前記収集手段により収集された変数データを使用された順序で前記モニタ装置に送信する変数送信手段と、を有し、
前記モニタ装置の実行手段は、前記制御プログラムを実行する際に、前記制御装置から送信されてきた変数データを送信の順序で用いることを特徴とする制御装置のモニタシステム。
【請求項３】
請求項１又は２記載の制御装置のモニタシステムにおいて、
前記有利な条件下は、前記制御装置が配置された環境よりもノイズの影響を受けにくい環境であることを特徴とする制御装置のモニタシステム。
【請求項４】
請求項１乃至３のいずれかに記載の制御装置のモニタシステムにおいて、
前記有利な条件下は、前記制御装置よりも前記モニタ装置の方が低速で動作することを特徴とする制御装置のモニタシステム。
【請求項５】
請求項１乃至４のいずれかに記載の制御装置のモニタシステムにおいて、
前記実行結果送信手段は、制御プログラムについて指定されたモニタ範囲における実行結果を送信することを特徴とする制御装置のモニタシステム。
【請求項６】
請求項２記載の制御装置のモニタシステムにおいて、
前記モニタ装置は、前記変数送信手段により送信されてきた変数データを、制御プログラムの実行手順に基づいて変数名と関連付けて記憶する記憶手段を有することを特徴とする制御装置のモニタシステム。
【請求項７】
請求項６記載の制御装置のモニタシステムにおいて、
前記モニタ装置は、前記記憶手段により記憶された変数データと、これとは別に設定された変数データとを選択する選択手段を有し、
前記実行手段は、前記選択手段により選択された変数データを用いて制御プログラムを実行することを特徴とする制御装置のモニタシステム。
【請求項８】
請求項１乃至７のいずれかに記載の制御装置のモニタシステムにおいて、
前記表示手段は、前記制御装置による実行結果と、前記モニタ装置による実行結果と、前記制御装置又は前記モニタ装置の少なくとも一方が使用した変数データとを指定された順序で表示することを特徴とする制御装置のモニタシステム。
【請求項９】
請求項１乃至８のいずれかに記載の制御装置のモニタシステムにおいて、
前記制御装置は、制御プログラムをステップ毎またはスキャン毎に実行する実行手段を有することを特徴とする制御装置のモニタシステム。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、鉄鋼プラントや製紙プラント、自動車産業等の組み立てプラント、化学プラント、上下水道システム等の公共システムや、その他の産業用システム等の制御に広く使用されている制御装置の動作を監視するための制御装置のモニタシステムに関する。
【０００２】
【従来の技術】
図１２は、従来の制御装置のモニタシステムの構成を示す図である。同図の制御装置のモニタシステムは、産業用システム等を制御するために所定の制御プログラムを実行する制御装置５１と、制御装置５１が制御プログラムを実行した結果等を表示するモニタ装置５２と、制御装置５１とモニタ装置５２とを接続する伝送路５３を有する構成である。
【０００３】
図１３は、制御装置５１が制御プログラムを実行するときの処理の流れ図である。同図に示すように、制御装置５１は、ステップ５０で図示していない制御対象に対し変数データの入出力を行なった後、ステップ５１で制御プログラムを実行し、ステップ５２で制御プログラムの実行が一通り終了したところで変数データをモニタ装置５２へ送信する。ステップ５３では全スキャンが終了したか否かを判定し、全スキャンを実行していない場合にはステップ５０へ戻って所定の回数だけ制御プログラムを繰り返して実行する。ここで、１スキャンとは制御プログラムを一通り実行することをいうものとする。モニタ装置５２では、制御装置５１から受信した変数データと制御装置５１が実行したものと同一の制御プログラムとを表示する。
【０００４】
このように使用された変数データと制御プログラムを表示することとしたのは、制御装置５１の配置場所がプラントの製造ラインや強い磁場の発生する場所等である場合には外部ノイズの影響によって制御装置５１が誤動作して制御プログラムの実行結果が誤ることが考えられ、また、制御装置５１が高速に動作する場合には、変数データの入出力を失敗して制御プログラムの実行結果が誤ることも考えられることから、モニタ装置５２の表示画面を通して制御装置５１による実行結果の正当性を監視できるようにするためである。
【０００５】
【発明が解決しようとする課題】
ところが、従来の制御装置のモニタシステムでは、モニタ装置５２が制御装置５１から送信されてきた変数データを制御プログラムと共に表示するにすぎないものであったため、制御装置５１による実行結果の正当性の判断は操作者が行なっていた。このため、制御プログラムが簡単な論理を演算する場合には実行結果の正当性を判断することができるが、複雑な論理を演算する場合には解析に時間がかかる上その判断が困難になるという問題があった。
【０００６】
本発明は、上記に鑑みてなされたものであり、その目的とするところは、制御装置が制御プログラムを実行した結果の正当性を操作者が容易かつ正確に判断し得るようにした制御装置のモニタシステムを提供することにある。
【０００７】
【課題を解決するための手段】
上記目的を達成するため、第１の本発明に係る制御装置のモニタシステムは、制御装置が制御プログラムを実行した結果を前記制御装置とは異なる所定の条件下で動作するモニタ装置に送信する実行結果送信手段と、前記モニタ装置に設けられ、前記制御装置が実行した制御プログラムと同一の制御プログラムを実行する実行手段と、前記実行結果送信手段により送信されてきた実行結果と、前記実行手段により得られた実行結果とを表示する表示手段と、を有することを要旨とする。
【０００８】
本発明にあっては、制御装置が制御プログラムを実行した実行結果と、制御装置による実行結果の検証のため、制御装置よりも有利な条件下で動作するモニタ装置が制御装置で実行したものと同一の制御プログラムを実行した実行結果とを表示することで、制御装置による実行結果とモニタ装置による正確な実行結果とを比較することを可能として、制御装置による実行結果の正当性を容易に判断できるようにしている。
【０００９】
第２の本発明は、第１の制御装置のモニタシステムにおいて、前記所定の条件は、前記制御装置が配置された環境よりも前記モニタ装置が配置された環境の方がノイズの影響を受けにくいことを要旨とする。
【００１０】
第３の本発明は、第１又は第２の制御装置のモニタシステムにおいて、前記所定の条件は、前記制御装置よりも前記モニタ装置の方が低速で動作することを要旨とする。
【００１１】
第２，第３の本発明にあっては、制御装置が磁場の強い製造ライン等のノイズによる影響を受けやすい環境に配置されている場合や、制御装置が高速に動作するために変数データの入出力を失敗するおそれのある場合に、モニタ装置を制御室等のノイズの影響を受けにくい環境に配置したり、モニタ装置を低速に動作させることで、モニタ装置で正確な実行結果が確実に得られるようにして、制御装置による実行結果の正当性を正確に判断できるようにしている。
【００１２】
第４の本発明は、第１乃至第３のいずれかの制御装置のモニタシステムにおいて、前記実行結果送信手段は、制御プログラムについて指定されたモニタ範囲における実行結果を送信することを要旨とする。
【００１３】
第５の本発明は、第１乃至第４のいずれかの制御装置のモニタシステムにおいて、前記制御装置は、指定されたモニタ範囲で制御プログラムが使用した変数データを収集する収集手段と、前記収集手段により収集された変数データを使用された順序で前記モニタ装置に送信する変数送信手段と、を有することを要旨とする。
【００１４】
第４，第５の本発明にあっては、指定されたモニタ範囲における実行結果や変数データをモニタ装置に送信するようにしたことで、膨大な量の実行結果や変数データを一定の範囲に限定し、効率的に制御装置による実行結果の正当性を判断できるようにしている。
【００１５】
また、変数データを使用された順序でモニタ装置に送信するようにしたことで、モニタ装置が、受信した順序に従って変数データを用いることにより、制御装置で実際に使用した変数データと同一の変数データに基づいて制御プログラムを実行できるようにして、制御装置による実行結果の正当性を正確に検証できるようにしている。
【００１６】
第６の本発明は、第５の制御装置のモニタシステムにおいて、前記モニタ装置は、前記変数送信手段により送信されてきた変数データを、制御プログラムの実行手順に基づいて変数名と関連付けて記憶する記憶手段を有することを要旨とする。
【００１７】
本発明にあっては、制御装置から送信されてきた変数データを、モニタ装置が、制御プログラムにおける変数の出現順などの実行手順に基づいて変数名と関連付けて記憶するようにしたことで、制御装置で使用した変数データをモニタ装置が使用する変数データに正しく対応させ、制御装置で実行した演算と同一の演算をモニタ装置でも行なうことを可能として、制御装置による実行結果の正当性を正確に判断できるようにしている。
【００１８】
第７の本発明は、第６の制御装置のモニタシステムにおいて、前記モニタ装置は、前記記憶手段により記憶された変数データと、これとは別に設定された変数データとを選択する選択手段を有し、前記実行手段は、前記選択手段により選択された変数データを用いて制御プログラムを実行することを要旨とする。
【００１９】
本発明にあっては、記憶手段により記憶された変数データと、これとは別に任意に設定された変数データとを選択可能にしたことで、制御装置による実行結果に誤りが検証された場合には、任意に設定された方の変数データを選択して制御装置による実行結果の検証用演算に使用することにより、実行結果の誤りの原因が入力用の変数データによるものなのか、制御プログラムの論理によるものなのかを判断することを可能として、制御装置による実行結果の正当性をより正確に判断できるようにしている。
【００２０】
第８の本発明は、第１乃至第７のいずれかの制御装置のモニタシステムにおいて、前記表示手段は、前記制御装置による実行結果と、前記モニタ装置による実行結果と、前記制御装置又は前記モニタ装置の少なくとも一方が使用した変数データとを指定された順序で表示することを要旨とする。
【００２１】
本発明にあっては、制御装置による実行結果と、モニタ装置による実行結果と、使用した変数データとを指定された順序で表示するようにしたことで、操作者が見やすいように並べて表示できるようにして、制御装置による実行結果とモニタ装置による実行結果との相違を容易に判断できるようにしている。
【００２２】
第９の本発明は、第１乃至第８のいずれかの制御装置のモニタシステムにおいて、前記制御装置は、制御プログラムをステップ毎またはスキャン毎に実行する実行手段を有することを要旨とする。
【００２３】
本発明にあっては、制御装置が制御プログラムをステップ毎またはスキャン毎に実行するようにしたことで、制御装置からモニタ装置へ送信される変数データの量が膨大で、その送信が制御装置における制御プログラムの実行に比較して遅れる場合に、制御装置での演算を適当な時間だけ待たせることを可能として、モニタ装置が制御装置からの全ての変数データを確実に収集できるようにしている。
【００２４】
【発明の実施の形態】
以下、本発明の実施の形態について図面を用いて説明する。
【００２５】
［第１の実施の形態］
図１は、第１の実施の形態に係る制御装置のモニタシステムの構成を示す図である。同図の制御装置１は、例えば磁場の強い製造ライン等に配置されており、外部ノイズによる誤動作を引き起こす可能性があるものとする。制御装置１は、伝送路３を介して制御室などのノイズによる影響を受けにくい環境に配置されたモニタ装置２に接続されている。
【００２６】
まず、制御装置１の構成と動作について説明する。
【００２７】
同図の制御装置１は、制御装置１の全体の動作を制御するＣＰＵ１１と、制御プログラムを実行するシーケンス演算プロセッサ１４と、制御プログラムを格納する制御プログラムメモリ１５と、制御プログラムの実行に使用する変数データを格納するデータメモリ１６と、制御装置１の全体を動作させるためのプログラムが格納されたプログラムメモリ１２と、制御プログラムを実行するときの作業用のワークメモリ１３と、ＣＰＵ１１や他の構成要素を接続するためのシステムバス１７と、モニタ装置２と通信するために伝走路３に接続された通信インタフェイス１８と、図示していない制御対象に対して変数データの入出力を行なうための入出力（Ｉ／Ｏ）インタフェイス１９とを有する構成である。
【００２８】
図２は、シーケンス演算プロセッサ１４の構成を示す図である。同図のシーケンス演算プロセッサ１４は、実行中の制御プログラムのアドレスを格納しておくシーケンス命令ポインタ４０３と、実行中のシーケンス命令のコードを格納しておくシーケンス命令レジスタ４０４と、シーケンス命令の演算対象となるデータを格納しておくオペランドデータレジスタ４０５と、モニタ装置２から指定されたモニタ範囲に対応するモニタ開始アドレスを格納しておくモニタ開始アドレスレジスタ４０６と、モニタ終了アドレスを格納しておくモニタ終了アドレスレジスタ４０７と、モニタ範囲となった命令のアドレスを格納しておくモニタ命令アドレスレジスタ４０８と、アドレスレジスタ４０６乃至４０８の内容とシーケンス命令ポインタ４０３やシーケンス命令レジスタ４０４、オペランドデータレジスタ４０５の内容とを比較して一致した場合にその旨をデータ蓄積制御回路４１０へ伝送する比較回路４０９と、変数データを蓄積する開始および停止のタイミングを制御したり、蓄積すべき変数データを実行中の命令種別によって判定するなどの動作や変数データを蓄積する動作全体の制御の他、必要時にはシステムバス１７を介してＣＰＵ１１に割込み信号の送出を行なうデータ蓄積制御回路４１０と、制御プログラムを１ステップ実行する毎に実行を中断してモニタ装置２との同期を図る場合に使用するステップモニタ指定フラグ４１１と、データ蓄積メモリ４１３が蓄積した変数データの数をカウントするカウンタ４１２と、データ蓄積用のバッファとして使用され、ビットデータ、ワードデータなどの単位で変数データを蓄積するデータ蓄積メモリ４１３と、システムバス１７を介して制御プログラム１５から読み出した制御プログラムを実行するシーケンス演算回路４０１と、演算実行に必要な変数データを一時的に格納しておく内部レジスタ４０２とを有する構成である。なお、シーケンス演算プロセッサ１４は、同等の論理をソフトウエアにより実現したものでもよい。
【００２９】
シーケンス演算プロセッサ１４は、Ｉ／Ｏインタフェイス１９を介して外部の制御対象の状態が入力された後、制御プログラムメモリ１５から制御プログラムを読み出し、必要に応じてデータメモリ１６に格納されている変数データにアクセスしながら制御プログラムを実行し、その実行結果をＩ／Ｏインタフェイス１９を介して外部の制御対象に出力する。また、モニタ装置２によりモニタ範囲が指定された場合には、制御プログラムを実行する際にそのモニタ範囲で使用した入力用の変数データおよび実行結果を示す出力用の変数データを時系列的に蓄積し、その蓄積した変数データを通信インタフェイス１８を介してモニタ装置２に送信する。
【００３０】
図３は、制御装置１が制御プログラムを実行するときの処理の流れ図である。
【００３１】
まず、ステップ１０でＩ／Ｏインタフェイス１９を介して制御対象に対して変数データの入出力を行ない、ステップ１１で制御プログラムの実行を開始する。
【００３２】
ステップ１２で、シーケンス演算プロセッサ１４は、モニタ装置２により指定されたモニタ範囲に対応してＣＰＵ１１から送られてきたモニタ開始アドレスをモニタ開始アドレスレジスタ４０６にセットし、同様にモニタ終了アドレスをモニタ終了アドレスレジスタ４０７にセットする。
【００３３】
制御プログラムを実行する際には、比較回路４０９がシーケンス命令ポインタ４０３の値とモニタ開始アドレスレジスタ４０６の値とを比較する。両者の一致が検出されると、データ蓄積制御回路４１０がそれ以降の必要な変数データをデータ蓄積メモリ４１３に格納し、蓄積データカウンタ４１２の値を更新していく。ここで格納される変数データには、入力用として用いられた変数データの他、実行結果を示す出力用の変数データ等が含まれる。命令ポインタ４０３の値がモニタ終了アドレスレジスタ４０７の値と一致するか、蓄積データカウンタ４１２の値が規定値に達した場合には、データ蓄積制御回路４１０はその旨をＣＰＵ１１に通知する。
【００３４】
ステップ１３では、ＣＰＵ１１は、通信インタフェイス１８を介してモニタ装置２へモニタデータを送信する。このモニタデータには、収集した入力用の変数データと実行結果を示す出力用の変数データが含まれる。
【００３５】
ステップ１４では、残りの制御プログラムを実行する。ステップ１５では、全スキャンが終了したか否か、すなわち、一通り制御プログラムを実行することを所定の回数だけ繰り返したか否かを判定し、全スキャンを終了していない場合にはステップ１０へ戻って上記処理を繰り返し、全スキャンが終了した場合には制御プログラムの実行処理を終了する。
【００３６】
このように、制御装置１は、モニタ範囲で制御プログラムが使用した入力用の変数データをその使用の順序に従って時系列的に収集し、モニタ装置２へ送信することができるようになっている。
【００３７】
次に、モニタ装置２の構成と動作について説明する。
【００３８】
図４は、モニタ装置２の構成を示す図である。同図のモニタ装置２は、全体の動作を制御するＣＰＵ２０１と、制御装置１が格納する制御プログラムと同一の制御プログラムを格納しておく制御プログラムメモリ２０４と、変数データを格納するデータメモリ２０５と、モニタ装置２の全体を動作させるためのプログラムが格納されたプログラムメモリ２０２と、制御プログラムを実行するときの作業用のワークメモリ２０３と、ＣＰＵ２０１や他の構成要素を接続するためのシステムバス２０７と、制御装置１と通信するために伝走路３に接続された通信インタフェイス２０８と、操作者がモニタ範囲を指定したり変数データを指定するためのキーボード等により構成される入力装置２１０と、入力装置２１０をシステムバス２０７に接続するためのＩ／Ｏインタフェイス２０９と、制御プログラムや変数データ等を表示する表示装置２１１と、表示装置２１１をシステムバス２０７に接続するための表示インタフェイス２０６とを有する構成である。
【００３９】
図５は、モニタ装置２が制御プログラムを実行するときの処理の流れ図である。この処理を開始する前準備として、モニタ装置２の操作者は、表示装置２１１と入力装置２１０とを使用して制御プログラムのモニタ範囲を指定する。この指定されたモニタ範囲は、通信インタフェイス２０８を介して制御装置１へ送信されるとともに、ワークメモリ２０３にも格納される。
【００４０】
ステップ２１では、操作者が制御装置１による制御プログラムの実行結果の検証の指示をした場合に、ＣＰＵ２０１がこの指示を認識し、ステップ２２へ進む。
【００４１】
ステップ２２では、ＣＰＵ２０１がモニタ範囲の制御プログラムを制御プログラムメモリ２０４から読み出す。
【００４２】
ステップ２３では、制御装置１からモニタデータを受信するまで待ち続ける。このモニタデータは、前述したように入力用の変数データの他、実行結果を示す出力用の変数データにより構成される。そして、モニタデータを受信した場合には、ステップ２４へ進み、モニタデータを後述する手法で変数名に対応させてデータメモリ２０５に格納する。
【００４３】
ステップ２５では、制御プログラムの実行を開始し、ステップ２６で実行結果データをワークメモリ２０３に格納し、ステップ２７でこの実行結果データと制御装置１による実行結果データとを後述する手法で表示装置２１１に表示させる。
【００４４】
ステップ２８では、全スキャンが終了したか否かを判定し、全スキャンが終了していない場合にはステップ２１へ戻って上記処理を繰り返し、全スキャンが終了した場合には制御プログラムの実行処理を終了する。
【００４５】
続いて、制御装置１から送信されてきたモニタデータをモニタ装置２で変数名に対応させる手法について説明する。
【００４６】
図６は、制御装置１が制御プログラムをコンパイルした状態の一例を示す図である。同図（ａ）は、制御プログラムがソースプログラムとして表現されたときの例を示している。ここでは、変数Ｂと変数Ｃとの積に変数Ｄを加算した結果を変数Ａに代入するプログラムを示している。
【００４７】
同図（ｂ）は、このソースプログラムをコンパイルしてシーケンス命令に変換した例を示している。ここでは、ソースプログラムがシーケンス命令の種類に応じた形式に変形され、命令の順序も逆ポーランド形式に変更されている。
【００４８】
”ＬＤ”はオペランドの内容をアキュムレータに代入する命令のニーモニック表記である。”ＭＵＬ”はオペランドの内容とアキュムレータの内容との積をアキュムレータに代入する命令のニーモニック表記である。”ＡＤＤ”はオペランドの内容とアキュムレータの内容との和をアキュムレータに代入するニーモニック表記である。”ＳＴ”はアキュムレータの内容をオペランドに代入するニーモニック表記である。この状態では、変数はまだ変数名として扱われている。
【００４９】
同図（ｃ）は、このシーケンス命令列をさらにコンパイルして機械語に変換した例を示している。ここでは、命令語は命令コードに変換され、変数名は変数の格納されている物理アドレスに変換されている。制御装置１が実際に実行する制御プログラムは、この機械語形式のプログラムである。よって、制御装置１がモニタ範囲内で収集する変数データは、この機械語の順で収集されることになる。
【００５０】
図７は、制御装置１がモニタ装置２に送信するモニタデータの順序を示す図である。モニタ装置２では、自己が保持する制御プログラムのモニタ範囲における変数名の順序やシーケンス命令列等に基づいて、制御装置が送信してくるモニタデータの順序を予め知ることができる。
【００５１】
そこで、モニタ装置２では、図８に示すような変数名とその内容を格納するデータメモリ２０５上のアドレスとの対応表を予めワークメモリ２０３に準備しておき、制御装置１が送信してきたモニタデータ、すなわち、変数Ｂの内容、変数Ｃの内容等を、データメモリ２０５の対応するアドレスに格納する。このようにして、モニタ装置２は、制御装置１が送信してくる変数データを変数名に対応させて記憶することができる。
【００５２】
次に、制御装置１による実行結果データとモニタ装置２による実行結果データとを表示装置２１１に表示させる手法について説明する。
【００５３】
図９は、モニタ装置２のデータメモリ２０５と検証用データメモリ５０１の構造を示す図である。モニタ装置２は、同図（ａ）に示すように、制御装置１から送られてきた変数データをデータメモリ２０５の予め定めた物理アドレスに格納するとともに、同図（ｂ）に示すように、比較用メモリとして検証用データメモリ５０１をワークメモリ２０３の内部に作成する。
【００５４】
検証用データメモリ５０１には、制御装置１から送られてきた変数データのうち、入力用の変数データだけを格納する。実行結果を示す出力用の変数データとしては、その入力用の変数データを用いてモニタ装置２のＣＰＵ２０１で演算した実行結果を格納するようにする。
【００５５】
図６で用いた制御プログラムを例に説明すると、変数Ｂ、変数Ｃ、変数Ｄが入力用の変数データに相当し、変数Ａが出力用の変数データに相当する。すなわち、検証用データメモリ５０１には、制御装置１から送信されてきた変数Ｂ、変数Ｃ、変数Ｄのそれぞれの内容と、ＣＰＵ２０１がこれらの変数を用いて制御プログラムを実行した結果を示す変数Ａ’の内容が格納される。
【００５６】
図１０は、表示装置２１１の画面上における表示形式の一例を示す図である。制御プログラムの実行回数、制御装置１による実行結果を示す変数Ａ、モニタ装置２による実行結果を示す変数Ａ’、入力用の変数Ｂ、変数Ｃ、変数Ｄ等の各項目に対応する内容が表形式で表示される。この表示を実現するために、モニタ装置２は、ワークメモリ２０３の内部に図１０のデータ表と同一のデータ表を設けておき、このデータ表を読み出して表示するものとする。
【００５７】
ワークメモリ２０３に設けられたデータ表の各項目は、操作者が入力装置２１０を用いて指定した順序で並べ替えができるようになっており、各項目は、比較のしやすいように任意の順序に並べられて表示装置２１１の画面に表示される。
【００５８】
例えば、同図に示すように、制御装置１による実行結果を示す変数Ａと、モニタ装置２による実行結果を示す変数Ａ’とを並べて表示した場合には、両者の相違が簡単に分かり、実行回数２回目の変数Ａの内容が４０であるのに対し、変数Ａ’の内容が５３と異なっていることから、制御装置１による実行結果が誤りであることを容易に判断することができる。
【００５９】
したがって、本実施の形態によれば、制御装置１が制御プログラムを実行した実行結果と、この実行結果の検証のために制御装置１よりもノイズの影響を受けにくい環境に配置されたモニタ装置２が制御装置１で実行したものと同一の制御プログラムを実行した実行結果と、を並べて表示装置２１１に表示することで、制御装置１による実行結果とモニタ装置２による正確な実行結果とを比較することが可能となるので、制御装置１による実行結果の正当性を容易に判断することができる。
【００６０】
また、本実施の形態によれば、制御装置１が、指定されたモニタ範囲における実行結果とこのモニタ範囲で制御プログラムが使用した変数データとを収集して送信することで、膨大な量の変数データが一定の範囲に限定されるので、効率的に制御装置１による実行結果の正当性を判断することができる。また、制御装置１が収集した変数データを使用された順序でモニタ装置２に送信することで、モニタ装置２は、受信した順序に従って変数データを用いることにより、制御装置１が実際に使用した変数データと同一の変数データに基づいて制御プログラムを実行できるので、制御装置１による実行結果の正当性を正確に判断することができる。
【００６１】
さらに、本実施の形態によれば、制御装置１から送信されてきた変数データを、モニタ装置２が、制御プログラムにおける変数の出現順等に基づいて変数名に関連付けて記憶するようにしたことで、制御装置１で使用した変数データをモニタ装置２が使用する変数データに正しく対応させることができ、制御装置１で実行した演算と同一の演算をモニタ装置２でも行なうことが可能となるので、制御装置１による実行結果の正当性を正確に判断することができる。
【００６２】
さらに、本実施の形態によれば、制御装置１による実行結果と、モニタ装置２による実行結果と、使用した入力用の変数データとを指定された順序で表示装置２１１に表示するようにしたことで、操作者が見やすいように並べて表示することができるので、制御装置１による実行結果とモニタ装置２による実行結果の相違を容易に判断することができる。
【００６３】
なお、本実施の形態においては、制御装置１が外部ノイズによる誤動作を引き起こす可能性がある環境に配置された場合に、モニタ装置２を制御室などの外部ノイズによる影響を受けにくい環境に配置して正確な実行結果が得られるようにしたが、その他の例として、制御装置１が高速に動作するために変数データの入出力を失敗する可能性がある場合には、モニタ装置２を制御装置１よりも低速で動作させることにより正確な実行結果が得られるようにしてもよい。
【００６４】
また、制御装置１の全体がハードウエアのみで構成されている場合に、モニタ装置２をソフトウエアとハードウエアとにより構成することにより、制御装置１と同一の処理を異なった動作で行なうこととして、制御装置１の故障を発見できるようにしてもよい。
【００６５】
［第２の実施の形態］
本発明の第２の実施の形態に係る制御装置のモニタシステムの基本的な構成は第１の実施の形態のものと同様であり、その特徴としては、モニタ装置２で制御装置１による実行結果を検証するために用いる入力用の変数データを、任意に設定できるようにしたことにある。
【００６６】
図１１は、入力用の変数データを任意に設定可能とする仕組みを示す図である。モニタ装置２のＣＰＵ２０１は、操作者が入力装置２１０を用いて行なう指示に従い、図９（ｂ）に示した検証用データメモリ５０１の他に、設定用データメモリ５０２をワークメモリ２０３の内部に用意する。この設定用データメモリ５０２の構造は、検証用データメモリ５０１のものと同様であり、制御装置１から送られてきた変数データが格納される一方、操作者がその変数データを任意に変更できるようになっている。
【００６７】
ステップ３１では、操作者がデータ選択用のフラグを指定することにより、検証のために使用するデータメモリを検証用データメモリ５０１にするか、設定用データメモリ５０２にするのかを選択する。ステップ３２では、選択されたデータメモリに格納された変数データを検証用の演算に使用し、ステップ３３で検証結果を表示装置２１１に送信する。
【００６８】
したがって、本実施の形態によれば、制御装置１から送信されてきた変数データと任意に設定された変数データとを選択可能としたことで、制御プログラムの実行結果に誤りが発生した場合には、任意に設定された変数データを選択して制御装置１による実行結果の検証用演算に使用することにより、実行結果の誤りが入力データによるものなのか、制御論理によるものなのかを判断することが可能となるので、実行結果の正当性をより正確に判断することができる。
【００６９】
［第３の実施の形態］
本発明の第３の実施の形態に係る制御装置のモニタシステムの基本的な構成は、第１の実施の形態のものと同様であり、その特徴としては、一般に制御装置１の実行速度は高速であるため、モニタ装置２で制御装置１による制御プログラムの実行結果をすべて収集して検証することは困難であることに鑑みて、制御装置１による制御プログラムの実行結果を検証する際に、制御装置１に制御プログラムをステップ毎あるいはスキャン毎に実行させるようにしたことにある。
【００７０】
制御装置１に制御プログラムをステップ毎に実行させる場合には、モニタ装置２のＣＰＵ２０１は、制御装置１のＣＰＵ１１に対してその旨を通知する。制御装置１のＣＰＵ１１は、図２に示したシーケンス演算プロセッサ１４内部のステップモニタ指定フラグ４１１をセットする。このステップモニタ指定フラグ４１１がセットされると、シーケンス演算プロセッサ１４は、シーケンス命令を１ステップ（１命令）ずつ実行し、１ステップの実行毎にＣＰＵ１１に割込み信号４１４を出力するとともに、次のステップを開始する操作者からの指示を待つ。ＣＰＵ１１は、割込み信号４１４が入力される毎にデータ蓄積メモリ４１３に格納された変数データの内容をモニタ装置２へ送信する。このようにして、制御装置１の実行結果をステップ毎にモニタすることが可能となる。
【００７１】
また、制御装置１に制御プログラムをスキャン毎に実行させる場合には、モニタ装置２のＣＰＵ２０１は、制御装置１のＣＰＵ１１に対してその旨を通知する。このとき、制御装置１のＣＰＵ１１は、スキャン実行モードであることを記憶し、シーケンス演算プロセッサ１４が制御プログラムを１スキャン実行した後、データ蓄積メモリ４１３に格納された変数データの内容をモニタ装置２へ送信し、次のスキャンを開始する操作者からの指示を待つ。このようにして、制御装置１の実行結果をスキャン毎にモニタすることが可能となる。
【００７２】
したがって、本実施の形態によれば、制御装置１が制御プログラムをステップ毎またはスキャン毎に実行するようにしたことで、制御装置１からモニタ装置２へ送信される変数データの量が膨大で、その送信時間が制御装置１における制御プログラムの実行時間に比較して遅くなる場合には、制御装置１での演算を適当な時間だけ待たせることができるので、モニタ装置において制御装置１からの全ての変数データを確実に収集することができる。
【００７３】
なお、本実施の形態においては、制御装置１だけが制御プログラムをステップ毎またはスキャン毎に実行することとしたが、モニタ装置２でも、ステップ毎又はスキャン毎に制御プログラムを実行するようにしてもよい。
【００７４】
かかる場合には、制御装置１およびモニタ装置２にステップ毎またはスキャン毎に制御プログラムを実行させ、リアルタイムで両者の実行結果を比較することができる。
【００７５】
【発明の効果】
以上、説明したように、第１の本発明によれば、制御装置による実行結果とモニタ装置による正確な実行結果とを比較することが可能となるので、制御装置による実行結果の正当性を容易に判断することができる。
【００７６】
第２，第３の本発明によれば、モニタ装置を制御室等のノイズの影響を受けにくい環境に配置したり、モニタ装置を低速に動作させることで、モニタ装置で正確な実行結果が確実に得られるので、制御装置による実行結果の正当性を正確に判断することができる。
【００７７】
第４，第５の本発明によれば、膨大な量の実行結果や変数データが一定の範囲に限定されるので、効率的に制御装置による実行結果の正当性を判断することができる。
【００７８】
第６の本発明によれば、制御装置で使用した変数データをモニタ装置が使用する変数データに正しく対応させることができ、制御装置で実行した演算と同一の演算をモニタ装置でも行なうことが可能となるので、制御装置による実行結果の正当性を正確に判断することができる。
【００７９】
第７の本発明によれば、実行結果の誤りの原因が入力用の変数データによるものなのか、制御プログラムの論理によるものなのかを判断することが可能となるので、制御装置による実行結果の正当性をより正確に判断することができる。
【００８０】
第８の本発明によれば、制御装置による実行結果と、モニタ装置による実行結果と、使用した変数データとを操作者が見やすいように並べて表示できるので、制御装置による実行結果とモニタ装置による実行結果との相違を容易に判断することができる。
【００８１】
第９の本発明によれば、制御装置での演算を適当な時間だけ待たせることが可能となるので、モニタ装置が制御装置からの全ての変数データを確実に収集することができる。
【図面の簡単な説明】
【図１】第１の実施の形態に係る制御装置のモニタシステムの構成を示す図である。
【図２】シーケンス演算プロセッサ１４の構成を示す図である。
【図３】制御装置１が制御プログラムを実行するときの処理の流れ図である。
【図４】モニタ装置２の構成を示す図である。
【図５】モニタ装置２が制御プログラムを実行するときの処理の流れ図である。
【図６】制御装置１が制御プログラムをコンパイルした状態の一例を示す図である。
【図７】制御装置１がモニタ装置２に送信するモニタデータの順序を示す図である。
【図８】変数名とデータメモリアドレスとの対応を示す表である。
【図９】モニタ装置２のデータメモリ２０５と検証用データメモリ５０１の構造を示す図である。
【図１０】表示装置２１１の画面上における表示形式の一例を示す図である。
【図１１】制御装置による実行結果を検証するために用いる入力用の変数データを任意に設定できる仕組みを示す図である。
【図１２】従来の制御装置のモニタシステムの構成を示す図である。
【図１３】従来の制御装置５１が制御プログラムを実行するときの処理の流れ図である。
【符号の説明】
１，５１…制御装置
２，５２…モニタ装置
３，５３…伝送路
１１，２０１…ＣＰＵ
１２，２０２…プログラムメモリ
１３，２０３…ワークメモリ
１４…シーケンス演算プロセッサ
１５，２０４…制御プログラムメモリ
１６，２０５…データメモリ
１７，２０７…システムバス
１８，２０８…通信インタフェイス
１９，２０９…Ｉ／Ｏインタフェイス
２０６…表示インタフェイス
２１０…入力装置
２１１…表示装置
４０１…シーケンス演算回路
４０２…内部レジスタ
４０３…シーケンス命令ポインタ
４０４…シーケンス命令レジスタ
４０５…オペランドデータレジスタ
４０６…モニタ開始アドレスレジスタ
４０７…モニタ終了アドレスレジスタ
４０８…モニタ命令アドレスレジスタ
４０９…比較回路
４１０…データ蓄積制御回路
４１１…ステップモニタ指定フラグ
４１２…蓄積データカウンタ
４１３…データ蓄積メモリ
５０１…検証用データメモリ
５０２…設定用データメモリ
【図１】
0003715499.tif 000002
【図２】
0003715499.tif 000003
【図３】
0003715499.tif 000004
【図４】
0003715499.tif 000005
【図５】
0003715499.tif 000006
【図６】
0003715499.tif 000007
【図７】
0003715499.tif 000008
【図８】
0003715499.tif 000009
【図９】
0003715499.tif 000010
【図１０】
0003715499.tif 000011
【図１１】
0003715499.tif 000012
【図１２】
0003715499.tif 000013
【図１３】
0003715499.tif 000014