(57)【特許請求の範囲】
【請求項１】
複数のウィンドウが表示される表示手段と、
上記ウィンドウに対応するプログラマブルコントローラに対し、上記プログラマブルコントローラでのモニタ処理を要求する処理要求を出力し、上記処理要求に基づく上記プログラマブルコントローラでのモニタ処理の処理結果が入力されると、入力された上記処理結果を上記ウィンドウに出力する管理手段とを有し、
上記処理要求は上記複数のウィンドウそれぞれに対応するプログラマブルコントローラ毎に異なる出力周期で出力され、
複数のウィンドウから任意のウィンドウを選択する入力手段と、
上記入力手段により上記任意のウィンドウが選択された期間を上記複数のウィンドウそれぞれについて計測するタイマとを有し、
前記管理手段は、上記タイマで計測された期間に基づく出力周期で、上記複数のウィンドウそれぞれに対応する各プログラマブルコントローラに処理要求を出力することを特徴とするプログラマブルコントローラの周辺装置。
【請求項２】
任意のウィンドウに対応するプログラマブルコントローラへ出力される処理要求の出力周期は、タイマで計算された複数のウィンドウそれぞれに関する入力手段により選択された期間の中から最大値を選出し、この選出された最大値を上記任意のウィンドウに関する上記期間で除し、この除して得られた値に入力手段により入力された基準周期を乗じて得られるものであることを特徴とする請求項１に記載のプログラマブルコントローラの周辺装置。
【請求項３】
ウィンドウに出力されるプログラマブルコントローラでのモニタ処理の処理結果は、管理手段から上記プログラマブルコントローラに出力された処理要求の出力周期に基づき、プログラマブルコントローラ毎に異なる更新周期で更新されることを特徴とする請求項１または２に記載のプログラマブルコントローラの周辺装置。
【請求項４】
表示手段に表示された複数のウィンドウそれぞれに対応する各プログラマブルコントローラに対し、上記プログラマブルコントローラでのモニタ処理を要求する処理要求を、上記各プログラマブルコントローラ毎に異なる出力周期で出力する第一のステップと、
上記処理要求に基づく上記プログラマブルコントローラでのモニタ処理の処理結果が上記出力周期に基づき入力される第二のステップと、
入力された上記処理結果を上記ウィンドウに出力する第三のステップと、
入力手段で複数のウィンドウから任意のウィンドウを選択する第四のステップと、
タイマで、上記入力手段により上記任意のウィンドウが選択された期間を、上記複数のウィンドウそれぞれについて計測し累積する第五のステップとを有し、
第一のステップでは、上記タイマで計測された期間に基づく出力周期で、処理要求が出力されることを特徴とするプログラマブルコントローラの周辺装置のモニタ方法。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
この発明はプログラマブルコントローラの周辺装置に関するものであり、特に有するディスプレイに表示されるモニタ結果の更新速度が速いプログラマブルコントローラの周辺装置及びその周辺装置のモニタ方法に関するものである。
【０００２】
【従来の技術】
プログラマブルコントローラ（以下、ＰＣと称する。）の周辺装置の例として、第３７図に示されたものがある。
【０００３】
この第３７図は、従来のＰＣの周辺装置の構成を示す構成図である。
【０００４】
この第３７図において、１はＰＣである。２はＰＣインターフェイス（以下、ｉ／Ｆと称する。）部であり、ＰＣ１に接続される。このＰＣｉ／Ｆ部２は、ＰＣ１とデータの授受を行う。３はプログラム転送制御部であり、ＰＣｉ／Ｆ部２に接続される。４はプログラム記憶部であり、プログラム転送制御部３に接続される。５は補助記憶ｉ／Ｆ部であり、プログラム転送制御部３に接続される。６は補助記憶装置であり、補助記憶ｉ／Ｆ部５に接続される。
【０００５】
７はウィンドウ管理部であり、プログラム転送制御部３及びプログラム記憶部４に接続される。このウィンドウ管理部７は、ディスプレイ９に表示されるウィンドウを管理及び制御する。８はオペレータｉ／Ｆであり、ウィンドウ管理部７に接続される。９はディスプレイであり、オペレータｉ／Ｆ８に接続される。１０はマウスであり、オペレータｉ／Ｆ８に接続され、オペレータからの入力を授受する。１１はキーボードであり、オペレータｉ／Ｆ８に接続され、オペレータからの入力を授受する。モニタ処理を実行するためのプログラムや、そのプログラムに対応するキャラクタメモリ上のデータの編集は、マウス１０やキーボード１１をオペレータが操作して行う。
【０００６】
１２はプログラムモニタ部であり、ＰＣｉ／Ｆ部２及びウィンドウ管理部７に接続される。このプログラムモニタ部１２は、キャラクタメモリ作成部１３からモニタする事項に関するデータを取り出す。また、プログラムモニタ部１２は、ＰＣｉ／Ｆ部２を介してＰＣ１から取得されるモニタ結果を、ディスプレイ９上のウィンドウに反映させる。１３はキャラクタメモリ作成部であり、プログラムモニタ部１２及びプログラム記憶部４に接続される。このキャラクタメモリ作成部１３は、プログラム記憶部４及び補助記憶装置６に記憶されたプログラムによるモニタ処理の実行状況を、ラダ−ダイアグラムとして表示するためのキャラクタデータをキャラクタメモリ上に作成する。
【０００７】
１４はプログラム編集部であり、キャラクタメモリ作成部１３及びプログラム記憶部４に接続される。１５はウィンドウ表示制御部であり、ウィンドウ管理部７、プログラムモニタ部１２、キャラクタメモリ作成部１３、及びプログラム編集部１４に接続される。１６はプログラムモニタウィンドウ部であり、プログラム記憶部４に記憶される任意のプログラム毎に、プログラムモニタ部１２、キャラクタメモリ作成部１３、プログラム編集部１４、及びウィンドウ表示制御部１５を有する。
【０００８】
１７はＰＣ１の周辺装置であり、ＰＣｉ／Ｆ部２、プログラム転送制御部３、補助記憶装置ｉ／Ｆ部５、補助記憶装置６、プログラム記憶部４、ウィンドウ管理部７、オペレータｉ／Ｆ部９、プログラムモニタウィンドウ部１６、ディスプレイ９、マウス１０、及びキーボード１１を有する。なお、ＰＣ１の周辺装置１７は、複数のプログラムモニタウィンドウ部１６を有してもよい。
【０００９】
次に、従来のＰＣの周辺装置が有するキャラクタメモリに作成されたキャラクタデータに基づくウィンドウ表示の表示例について、第３８図を用いて説明する。なお、キャラクタメモリはキャラクタメモリ作成部１３が有する。また、キャラクタデータに基づくウィンドウ表示は、ディスプレイ９上に行われる。
【００１０】
第３８図は、キャラクタデータに基づくウィンドウ表示の表示例である。
【００１１】
このキャラクタデータに基づくウィンドウ表示の表示例は、ｎ行ｍ列に分割された領域として表示される。
【００１２】
次に、キャラクタデータのデータ構造について、第３９図を用いて説明する。
第３９図は、キャラクタデータのデータ構造を示す構成図である。
【００１３】
このキャラクタデータのデータ構造は、全体行数データ部と、この全体行数データ部に記録された行数に基づく数の行データ部とが、所定の順番で構成される。また、各行データ部のデータ構造は、全体列数データ部と、この全体列数データ部に記録された列数に基づく数のキャラクタメモリデータ部とが、所定の順番で構成される。
【００１４】
次に、このキャラクタメモリデータ部に記録される１キャラクタメモリデータのデータ構造について、第４０図を用いて説明する。
【００１５】
第４０図は、各キャラクタメモリデータ部に記録される１キャラクタメモリデータのデータ構造を示す構造図である。
【００１６】
１キャラクタメモリデータは４つの部分から構成されており、これら各構成部分には分岐記号、回路記号、アドレス、及び命令コードが所定の順番で記録される。
【００１７】
次に、従来のＰＣの周辺装置が有するキャラクタメモリに作成されたキャラクタデータに基づくウィンドウ表示の他の表示例について、第４１図を用いて説明する。
【００１８】
第４１図は、キャラクタデータに基づくウィンドウ表示の他の表示例である。
【００１９】
このディスプレイ９に表示されるウィンドウ表示に関するデータは、キャラクタメモリ作成部１３のキャラクタメモリに作成される。そして、キャラクタメモリ作成部１３が有するキャラクタメモリに作成されたキャラクタデータに基づき、ウィンドウ表示制御部１５が制御して、当該ウィンドウ表示がディスプレイ９に表示される。
【００２０】
なお、ディスプレイ９に表示されるウィンドウ表示の形態としては、この第４１図に示すようなラダ−ダイアグラムがある。なお、第４１図に示される各回路記号（Ｘ０〜Ｘ７０等）での出力結果の相違は、所定のプログラムに基づくモニタ処理により逐次生じる。また、所定のプログラムに基づくモニタ処理はＰＣ１で実行される。さらに、ウィンドウ管理部７からプログラムモニタ部１２への起動は一定周期毎にかけられる。また、プログラムに基づくモニタ処理は、ウィンドウ管理部７からプログラムモニタ部１２にかけられる起動に基づき行われる。
【００２１】
第４１図に示すようなラダ−ダイアグラムをディスプレイ９上に表示するための処理動作について、第４２図及び第４５図を用いて説明する。
【００２２】
第４２図は、従来のＰＣの周辺装置のプログラムモニタ部１２による従来のＰＣの周辺装置の制御動作を示すフローチャートである。
【００２３】
ステップ（以下、Ｓと称する。）１１０１において、プログラムモニタ部１２では、モニタ要求データが作成されているかどうかチェックする。モニタ要求データが作成されていた場合にはＳ１１０２へ進み、作成されていなかった場合にはＳ１１０３へ進む。
【００２４】
Ｓ１１０２において、プログラムモニタ部１２は、キャラクタデータに変更があるかどうか確認する。このキャラクタデータに変更があった場合にはＳ１１０３へ進み、変更がなかった場合にはＳ１１０５へ進む。
【００２５】
Ｓ１１０３において、プログラムモニタ部１２は、モニタ要求データを作成する。このＳ１１０３が終了するとＳ１１０４へ進む。
【００２６】
Ｓ１１０４において、プログラムモニタ部１２は、Ｓ１１０３で作成したモニタ要求データをＰＣ１に転送する。そして、ＰＣ１に転送されたモニタ要求データは、ＰＣ１に登録される。このＳ１１０４が終了するとＳ１１０５へ進む。
【００２７】
Ｓ１１０５において、プログラムモニタ部１２は、モニタ要求をＰＣ１に転送する。なお、上述のモニタ要求データは、モニタする事項をＰＣ１に登録するためのものである。その一方、モニタ要求は、モニタ要求データで登録した事項に関するモニタの実行を命じるものである。なお、モニタ要求データを使ったＰＣ１へのモニタ事項の登録が一旦行われると、モニタ事項の変更等に伴うキャラクタデータの変更が無い限り、再度モニタ要求データを用いることは無くなる。
【００２８】
Ｓ１１０６において、プログラムモニタ部１２は、Ｓ１１０５でプログラムモニタ部１２からＰＣ１に転送されたモニタ要求に対応するモニタ結果データが、ＰＣ１から出力され当該プログラムモニタ部１２に入力されることを待機する。モニタ結果データがプログラムモニタ部１２に入力されるとＳ１１０７へ進み、入力されない場合には継続して入力を待機する。
【００２９】
Ｓ１１０７で、プログラムモニタ部１２は、入力されたモニタ結果データと、キャラクタデータとを参照し、ウィンドウ表示制御部１５を介して、ディスプレイ９にモニタ結果データを反映させる。
【００３０】
なお、Ｓ１１０１でプログラムモニタ部１２が確認するモニタ要求データの構造を第４３図の左側に示す。第４３図の左側は、モニタ要求データのデータ構造を示す構造図である。このモニタ要求データは、ヘッダ部と、モニタ要求点数部と、このモニタ要求点数部に記録されたモニタ点数に基づく各デバイス箇所が示された個別デバイス部とが、所定の順番で構成される。なお、モニタ要求データのヘッダ部には、モニタ処理を実行するＰＣ１が指定され、またモニタ要求データのデータパケット種別が指定される。また、モニタ要求点数部には、モニタを実行するモニタ箇所の数が明示される。さらに、個別デバイス部には、モニタを実行するモニタ箇所を示すデバイス名が指定される。
【００３１】
また、Ｓ１１０６でプログラムモニタ部１２が確認するモニタ結果データの構造を第４３図の右側に示す。第４３図の右側は、モニタ結果データのデータ構造を示す構造図である。このモニタ結果データは、ヘッダ部と、モニタ結果点数部と、このモニタ結果点数部に記録されたモニタ点数に基づく各デバイス箇所での個別デバイス結果が示された個別デバイス結果部とが、所定の順番で構成される。なお、モニタ結果データのヘッダ部には、モニタ処理を実行したＰＣ１が明示される。また、モニタ結果点数部には、モニタを実行したモニタ箇所の数が明示される。さらに、個別デバイス結果部には、モニタを実行した各モニタ箇所でのモニタ結果データが所定のデータサイズで記録される。
【００３２】
次に、第４１図に示すラダ−ダイアグラムをディスプレイ９に表示するために、プログラムモニタ部１２からＰＣ１に出力されるモニタ要求データの具体例を第４４図の左側に示す。また、第４４図の左側に示すモニタ要求データに対応して、ＰＣ１からプログラムモニタ部１２に出力されるモニタ結果データの具体例を、第４４図の右側に示す。第４４図は、プログラムモニタ部１２からＰＣ１に出力されるモニタ要求データの具体的データ構造、及びＰＣ１からプログラムモニタ部１２に出力されるモニタ結果データの具体的データ構造を示す構造図である。
【００３３】
次に、第４２図のＳ１１０３で行われるモニタ要求データの作成処理について、第４５図を用いて説明する。第４５図は、モニタ要求データの作成処理を示すフローチャートである。
【００３４】
まず、Ｓ１２０１で、プログラムモニタ部１２はキャラクタデータに基づくウィンドウ表示におけるＸ座標の位置を示すＸカウンタを１に初期化する。この初期化により、プログラムモニタ部１２は、例えばキャラクタデータに基づくウィンドウ表示の左端の位置を確認可能な状態に設定できる。このＳ１２０１が終了するとＳ１２０２へ進む。
【００３５】
Ｓ１２０２で、プログラムモニタ部１２はキャラクタデータに基づくウィンドウ表示におけるＹ座標の位置を示すＹカウンタを１に初期化する。この初期化により、プログラムモニタ部１２は、例えばキャラクタデータに基づくウィンドウ表示の上端の位置を確認可能な状態に設定できる。このＳ１２０２が終了するとＳ１２０３へ進む。
【００３６】
Ｓ１２０３で、プログラムモニタ部１２は、キャラクタデータに基づくウィンドウ表示のＸ座標が増加する方向へ順番に確認するトレースを開始する。
【００３７】
このトレースとは、Ｘカウンタ及びＹカウンタで示されるキャラクタデータに基づくウィンドウ表示における任意の位置の命令に、入出力デバイスや内部変数に関する命令が設定されているかどうか確認することである。
【００３８】
なお、この入出力デバイスとしては、接点や、出力結果が示されるコイルや、データを操作する応用命令等が挙げられる。
【００３９】
このトレースした位置の命令に入出力デバイスや内部変数に関する命令が設定されていた場合にはＳ１２０４へ進み、設定されていなかった場合にはＳ１２０６へ進む。
【００４０】
つまり、トレースした位置の命令に入出力デバイスや内部変数に関する命令が設定されていなかった場合には、モニタ要求データに対して何ら設定されることはない。
【００４１】
Ｓ１２０４で、プログラムモニタ部１２は、Ｓ１２０３で確認された命令に設定されていた入出力デバイス名や内部変数名を抽出する。このＳ１２０４が終了するとＳ１２０５へ進む。
【００４２】
Ｓ１２０５で、プログラムモニタ部１２は、Ｓ１２０４で抽出された入出力デバイス名や内部変数名を、モニタ要求データに設定する。このＳ１２０５が終了するとＳ１２０６へ進む。
【００４３】
Ｓ１２０６で、プログラムモニタ部１２は、所定のＹ座標における各Ｘ座標のトレースを終端まで終了したかどうか判断する。所定のＹ座標における終端のトレースが終了した場合にはＳ１２０８へ進み、終端のトレースが終了していない場合にはＳ１２０７へ進む。
【００４４】
Ｓ１２０７で、プログラムモニタ部１２は、Ｘカウンタに１加算してＳ１２０３へ戻り、キャラクタデータに基づくウィンドウ表示の次順の位置のトレースを行う。
【００４５】
Ｓ１２０８で、プログラムモニタ部１２は、Ｘカウンタを１に初期化してＳ１２０９へ進む。
【００４６】
Ｓ１２０９で、プログラムモニタ部１２は、終端のＹ座標におけるトレースが終了したかどうか判断する。終端のＹ座標におけるトレースが終了していた場合には一連の処理を終了し、終了していなかった場合にはＳ１２１０へ進む。
【００４７】
Ｓ１２１０で、プログラムモニタ部１２は、Ｙカウンタに１加算してＳ１２０３へ戻り、キャラクタデータに基づくウィンドウ表示の次順の位置のトレースを行う。
【００４８】
他の従来例として、特開平５−２４１６１９号公報に示すプログラマブルコントローラのプログラミング装置がある。この公報に示されるプログラ・マブルコントローラのプログラミング装置では、複数のプログラマブルコントローラでそれぞれ実行され得られるプログラムの実行結果が、ひとつの表示デバイス上で均等にモニタされる。また、このモニタは、表示デバイス上に表示される全ての接点に対して行われる。
【００４９】
また、他の従来例としては、特開平２−８１２０５号公報に示すＰＣの入出力信号監視方式もある。この公報に示すＰＣの入出力信号監視方式では、ＰＣの入出力信号毎にサンプリング周期が設けられ、この入出力信号のサンプリング周期に基づき高速のモニタ処理や低速のモニタ処理が行われる。
【００５０】
【発明が解決しようとする課題】
以上のように、従来のプログラマブルコントローラの周辺装置では、この周辺装置のディスプレイで任意のプログラムに基づくモニタ処理の処理結果を複数同時にモニタする場合、全てのモニタ結果の更新が均等に行われていた。
【００５１】
このため、モニタ処理を行うプログラムの数が増加すれば増加した分だけＰＣと周辺装置との間、及び周辺装置とディスプレイとの間で行われるデータ交信の頻度が増加し、モニタ処理による処理結果の更新速度が低下するという問題があった
【００５２】
本発明は、このような課題を解決するためになされたものであり、ＰＣと周辺装置との間、及び周辺装置とディスプレイとの間で行われるデータ交信の頻度を抑え、モニタ処理による処理結果の更新速度を向上させるプログラマブルコントローラの周辺装置を提供することを目的とする。
【００５３】
【課題を解決するための手段】
この発明にかかるプログラマブルコントローラの周辺装置は、複数のウィンドウが表示される表示手段と、ウィンドウに対応するプログラマブルコントローラに対し、プログラマブルコントローラでのモニタ処理を要求する処理要求を出力し、処理要求に基づくプログラマブルコントローラでのモニタ処理の処理結果が入力されると、入力された処理結果をウィンドウに出力する管理手段とを有し、上記処理要求は複数のウィンドウそれぞれに対応するプログラマブルコントローラ毎に異なる出力周期で出力され、複数のウィンドウから任意のウィンドウを選択する入力手段と、上記入力手段により上記任意のウィンドウが選択された期間を上記複数のウィンドウそれぞれについて計測するタイマとを有し、前記管理手段は、上記タイマで計測された期間に基づく出力周期で、上記複数のウィンドウそれぞれに対応する各プログラマブルコントローラに処理要求を出力するものである。
【００５４】
さらに、この発明にかかるプログラマブルコントローラの周辺装置は、任意のウィンドウに対応するプログラマブルコントローラへ出力される処理要求の出力周期は、タイマで計算された複数のウィンドウそれぞれに関する入力手段により選択された期間の中から最大値を選出し、この選出された最大値を任意のウィンドウに関する期間で除し、この除して得られた値に入力手段により入力された基準周期を乗じて得られるものであるものである。
【００５５】
さらに、この発明にかかるプログラマブルコントローラの周辺装置は、ウィンドウに出力されるプログラマブルコントローラでのモニタ処理の処理結果は、管理手段からプログラマブルコントローラに出力された処理要求の出力周期に基づき、プログラマブルコントローラ毎に異なる更新周期で更新されるものである。
【００５６】
この発明にかかるプログラマブルコントローラの周辺装置のモニタ方法は、表示手段に表示された複数のウィンドウそれぞれに対応する各プログラマブルコントローラに対し、プログラマブルコントローラでのモニタ処理を要求する処理要求を、各プログラマブルコントローラ毎に異なる出力周期で出力する第一のステップと、処理要求に基づくプログラマブルコントローラでのモニタ処理の処理結果が出力周期に基づき入力される第二のステップと、入力された処理結果をウィンドウに出力する第三のステップと、入力手段で複数のウィンドウから任意のウィンドウを選択する第四のステップと、タイマで、入力手段により任意のウィンドウが選択された期間を、複数のウィンドウそれぞれについて計測し累積する第五のステップとを有し、第一のステップでは、タイマで計測された期間に基づく出力周期で、処理要求が出力されるものである。
【００５７】
【発明の実施の形態】
実施の形態１．
次に、本発明の実施例について、以下の通り説明する。
【００５８】
本発明のＰＣの周辺装置の実施例を、第１図を用いて説明する。第１図は、本実施例のＰＣの周辺装置の構成を示す構成図である。
【００５９】
この第１図において、２１はモニタ条件設定ウィンドウ部であり、プログラム転送制御部３とプログラム記憶部４とウィンドウ管理部７とに接続される。２２は全体モニタ条件記憶部であり、モニタ条件設定ウィンドウ部２１に接続される。２３はプログラム別モニタ条件記憶部であり、モニタ条件設定ウィンドウ部２１に接続される。
【００６０】
２４はアクティブ状態監視部であり、ウィンドウ管理部７に接続される。このアクティブ状態管理部２４は、ウィンドウ管理部７から取得されるウィンドウのアクティブ状態に関する情報に基づき、どのプログラムのウィンドウがアクティブになっているかを確認する。２５はモニタ管理部であり、ウィンドウ管理部７と全体モニタ条件記憶部２２とアクティブ状態監視部２４とに接続される。このモニタ管理部２５は、全体モニタ条件記憶部２２の設定内容やアクティブ状態監視部２４が有する監視データ、及びウィンドウ管理部７から得られるウィンドウのアクティブ状態に関する情報に基づき、各プログラムのプログラムモニタ部２６を起動させる。
【００６１】
２６はプログラムモニタ部であり、プログラム別モニタ条件記憶部２３とモニタ管理部２５とに接続される。このプログラムモニタ部２６は、キャラクタメモリ作成部１３から、モニタする事項に関するデータを抽出する。なお、キャラクタメモリ作成部１３からのデータの抽出は、モニタ管理部２５からの指示に基づき、プログラムモニタ部２６が実行する。また、キャラクタメモリ作成部１３から抽出されるデータは、プログラム別モニタ条件記憶部２３の記憶内容に従う。さらに、プログラムモニタ部２６は、ＰＣ１から取得されるモニタ結果を、ディスプレイ９上のウィンドウに反映させる。
【００６２】
なお、プログラム別モニタ条件記憶部２３及びプログラムモニタ部２６はプログラムモニタウィンドウ部１６毎に設けられる。また、周辺装置１７は、ＰＣ１を動作させるためのプログラムを開発し、このプログラムに基づくモニタ処理のモニタ結果を得るものである。
【００６３】
また、この周辺装置１７は、開発したプログラムに対するデバッグ処理を行うためのものでもある。これらプログラムの開発、モニタ結果の出力、及びデバック処理等を、ティスプレイ上のウィンドウを介して行うため、周辺装置１７のディスプレイには複数のウィンドウが表示されうる。
【００６４】
さらに、第１図において、第３７図に示す従来例と同一又は相当の部分には、同一符号を付してその説明を省略し、第３７図と相違する部分について説明した。
【００６５】
なお、ディスプレイ９が表示手段に相当し、マウス１０及びキーボード１１が入力手段に相当する。また、ウィンドウ管理部７、キャラクタメモリ作成部１３、ウィンドウ表示制御部１５、モニタ条件設定ウィンドウ部２１、モニタ条件記憶部２２、プログラム別モニタ条件記憶部２３、アクティブ状態監視部２４、モニタ管理部２５、及びプログラムモニタ部２６等から管理手段が構成される。
【００６６】
次に、第１図に示す本実施例のＰＣ１の周辺装置１７の制御動作について、第２図を用いて説明する。この第２図は、本実施例のＰＣ１の周辺装置１７の制御動作を示すフローチャートである。
【００６７】
Ｓ１０１において、モニタ管理部２５は、全体モニタ条件記憶部２２の設定状態テーブルに記録されたモニタに関する諸条件を確認する。
【００６８】
この設定状態テーブルに記録されたモニタに関する諸条件が、全てのウィンドウのモニタを均一なモニタ周期で行う通常のモニタ方法に関するものであればＳ１０２へ進む。
【００６９】
また、設定状態テーブルに記録された諸条件が、アクティブなウィンドウのみをモニタする方法に関するものであればＳ１０３へ進む。
【００７０】
さらに、設定状態テーブルに記録された諸条件が、ウィンドウ毎に異なるモニタ周期でモニタする方法に関するものであればＳ１０４へ進む。
【００７１】
また、設定状態テーブルに記録された諸条件が、ウィンドウのアクティブな時間に応じてモニタ周期が変化する自動周期設定によるモニタ方法に関するものであればＳ１０５へ進む。
【００７２】
さらに、設定状態テーブルに記録された諸条件が、アクティブウィンドウ優先のモニタ方法に関するものであればＳ１０６へ進む。なお、アクティブウィンドウ優先のモニタ方法とは、ウィンドウがアクティブであるか否かを判断し、その判断に基づきそれぞれ異なるモニタ周期でモニタ処理が行われる方法である。
【００７３】
なお、モニタ方法の設定状態テーブルへの設定は、オペレータにより行われる。このオペレータによる設定処理は、第３図に示すような全体モニタ設定メニューにて行われる。そして、オペレータにより選択されたモニタ方法は、全体モニタ条件記憶部２２が有する設定状態テーブルに記録される。この全体モニタ条件記憶部２２が有する設定状態テーブルの概念図を第４図のＩに示す。この第４図のＩ中の設定状態領域に、選択されたモニタ方法が記録される。
【００７４】
また、オペレータにより選択されたモニタ方法が、ウィンドウ毎に異なるモニタ周期でモニタするようなモニタ方法が選択された場合には、モニタ周期設定のサブウィンドウが開く。すると、オペレータは、このサブウィンドウに、各プログラム名毎にモニタ周期を設定する。このサブウィンドウに設定された各プログラム名毎のモニタ周期は、全体モニタ条件記憶部２２が有するプログラム名毎の周期テーブルに記録される。このプログラム名毎の周期テーブルを第４図のＩＩに示す。
【００７５】
Ｓ１０２で、本実施例のＰＣ１の周辺装置１７は、通常のモニタ処理を実行し、全てのウィンドウで均等にモニタ処理を実行する。このＳ１０２が終了すると、Ｓ１０１へ戻る。
【００７６】
Ｓ１０３で、本実施例のＰＣ１の周辺装置１７は、アクティブのウィンドウでのみモニタ処理を実行する。このＳ１０３が終了すると、Ｓ１０１へ戻る。
【００７７】
Ｓ１０４で、本実施例のＰＣ１の周辺装置１７は、ウィンドウ毎に異なるモニタ周期でモニタ処理を実行する。このＳ１０４が終了すると、Ｓ１０１へ戻る。
【００７８】
Ｓ１０５で、本実施例のＰＣ１の周辺装置１７は、ウィンドウのアクティブな時間に応じてモニタ周期が変化する自動周期設定によるモニタ処理を実行する。このＳ１０５が終了すると、Ｓ１０１へ戻る。
【００７９】
Ｓ１０６で、本実施例のＰＣ１の周辺装置１７は、ウィンドウがアクティブであるか否かによりモニタ周期が切り替えられるアクティブウィンドウ優先のモニタ処理を実行する。このＳ１０６が終了すると、Ｓ１０１へ戻る。
【００８０】
次に、第２図のＳ１０２で行われる全てのウィンドウのモニタを均一なモニタ周期で行う通常のモニタ処理について、第５図を用いて説明する。第５図は、通常のモニタ処理を示すフローチャートである。なお、各ウィンドウのモニタ処理が均等に行われる通常のモニタ処理が選択されると、全体モニタ条件記憶部２２が有する設定状態テーブルの設定状態領域に、通常のモニタ処理が選択されたことを示す「００」が記録される。
【００８１】
まず、Ｓ２０１で、モニタ管理部２５は、ウィンドウ管理部７から取得されるウィンドウ情報により、全ウィンドウを順にチェックするための準備を行う。このＳ２０１が終了するとＳ２０２へ進む。
【００８２】
Ｓ２０２でモニタ管理部２５は、ディスプレイ９に表示されたあるウィンドウが、モニタするプログラムに関するウィンドウであるかどうかチェックする。チェックしたウィンドウが、モニタするプログラムに関するウィンドウであるプログラムモニタウィンドウであればＳ２０３へ進み、プログラムモニタウィンドウでなければＳ２０４へ進む。
【００８３】
Ｓ２０３でモニタ管理部２５は、当該プログラムモニタウィンドウに関するプログラムモニタ部２６を起動させる。このＳ２０３が終了するとＳ２０４へ進む。
【００８４】
Ｓ２０４でモニタ管理部２５は、ディスプレイ９に表示されている全ウィンドウについて、プログラムモニタウィンドウであるか否かのチェックが完了したかチェックする。そして、全ウィンドウについてプログラムモニタウィンドウであるか否かのチェックが完了した場合にはＳ２０５へ進み、全ウィンドウについてのチェックが完了していない場合にはＳ２０２へ戻る。
【００８５】
Ｓ２０５でモニタ管理部２５は、モニタ状態に変更があったかどうか
確認する。モニタ状態に変更があった場合には一連の処理を終了し、変更が無かった場合にはＳ２０６へ進む。なお、モニタ状態の変更は、モニタ条件の設定や、モニタ条件の設定変更や、モニタの終了などの任意のタイミングで、オペレータにより行われる。
【００８６】
Ｓ２０６でモニタ管理部２５は、モニタ周期に基づく一定時間のスリープを行う。このＳ２０６が終了するとＳ２０７へ進む。
【００８７】
Ｓ２０７でモニタ管理部２５は、モニタ状態に変更があったかどうか確認する。モニタ状態に変更があった場合には一連の処理を終了し、変更が無かった場合にはＳ２０１へ戻る。
【００８８】
これらのことから、モニタ管理部２５は、各プログラムのプログラムモニタ部２６に対して、一定周期で起動をかけることがわかる。
【００８９】
次に、第２図のＳ１０３で行われるアクティブなウィンドウのデバイスのみをモニタするモニタ処理について、第６図を用いて説明する。第６図は、アクティブウィンドウのデバイスのみをモニタするモニタ処理を示すフローチャートである。
【００９０】
なお、モニタの処理方法の選択は、予めオペレータにより行われる。このオペレータによるモニタ処理方法の選択は、第３図に示すような全体モニタ設定メニューにて行われる。そして、オペレータにより選択されたモニタ処理方法は、全体モニタ条件記憶部２２が有する設定状態テーブルに記録される。また、アクティブウィンドウのデバイスのみをモニタするモニタ処理がオペレータにより選択された旨は、全体モニタ条件記憶部２２が有する設定状態テーブルの設定状態領域に、例えば「０１」として記録される。
【００９１】
まず、Ｓ３０１で、モニタ管理部２５は、ウィンドウ管理部７から取得されるウィンドウ情報により、アクティブな状態にあるウィンドウであるアクティブウィンドウを検知する。このＳ３０１が終了するとＳ３０２へ進む。
【００９２】
Ｓ３０２でモニタ管理部２５は、ディスプレイ９に表示されたアクティブウィンドウが、プログラムモニタウィンドウであるかどうかチェックする。チェックしたウィンドウが、プログラムモニタウィンドウであればＳ３０３へ進み、プログラムモニタウィンドウでなければＳ３０４へ進む。
【００９３】
Ｓ３０３でモニタ管理部２５は、Ｓ３０２でチェックされたプログラムモニタウィンドウに関するプログラムモニタ部２６を起動させる。このＳ３０３が終了するとＳ３０４へ進む。
【００９４】
Ｓ３０４でモニタ管理部２５は、モニタ状態に変更があるかどうかチェックする。モニタ状態に変更があった場合には一連の処理を終了し、変更が無かった場合にはＳ３０５へ進む。
【００９５】
Ｓ３０５でモニタ管理部２５は、一定時間のスリープを行う。このＳ３０５が終了するとＳ３０６へ進む。
【００９６】
Ｓ３０６でモニタ管理部２５は、モニタ状態に変更があったかどうか確認する。モニタ状態に変更があった場合には一連の処理を終了し、変更が無かった場合にはＳ３０１へ戻る。
【００９７】
これらのことから、モニタ管理部２５は、ディスプレイ９上のアクティブなウィンドウで起動するプログラムに対するプログラムモニタ部２６へ、一定周期で起動をかけていることがわかる。
【００９８】
このアクティブウィンドウに反映されたプログラムに対してのみ、モニタ管理部２５からプログラムモニタ部２６に起動がかけられている様子を第７図に示す。第７図は、モニタ管理部２５からプログラムモニタ部２６に起動をかけている様子を示す概念図である。この第７図には、プログラムＡのウィンドウがアクティブの時はプログラムＡのみにモニタ管理部２５からモニタ起動司令が司令され、プログラムＢのウィンドウがアクティブの時はプログラムＢのみにモニタ管理部２５からモニタ起動司令が司令されている様子が示されている。
【００９９】
また第７図に示したように、プログラムＡのウィンドウがアクティブで、プログラムＡにのみモニタ起動司令が司令され、ディスプレイ９上のプログラムＡのウィンドウでのみモニタ処理が実行されている様子を第８図に示す。この第８図には、プログラムＡに関するウィンドウがアクティブであり、他のプログラムに関するウィンドウが非アクティブであることが示されている。また、この第８図において、アクティブであるプログラムＡに関するウィンドウのラダ−ダイアグラムには、複数のデバイスでデータの入力や演算が行われていることを示すマークが示され、当該ウィンドウがアクティブである限り逐次更新される。一方、非クティブである他のプログラムに関するウィンドウのラダ−ダイアグラムには、データの入力や演算を示すマークが示されず、当該ウィンドウが非アクティブである限り更新されることはない。
【０１００】
このように、アクティブなウィンドウに関するプログラムのモニタ処理のみを行うため、ＰＣと周辺装置との間、及び周辺装置とディスプレイとの間で行われるデータ交信の交信データ量を抑えることができ、モニタ処理による処理結果の更新速度の速いプログラマブルコントローラの周辺装置が得られる。
【０１０１】
次に、第２図のＳ１０４で行われるウィンドウ毎に異なるモニタ周期でモニタされる設定周期モニタ処理について、第９図を用いて説明する。第９図は、設定周期モニタ処理のフローチャートである。
【０１０２】
なお、モニタの処理方法の選択は、予めオペレータにより行われる。このオペレータによるモニタ処理方法の選択は、第３図に示すような全体モニタ設定メニューにて行われる。なお、モニタ処理方法として設定周期モニタ処理が選択されると、サブウィンドウが表示される。このサブウィンドウのモニタ周期設定テーブルに、各プログラム毎のモニタ周期を設定することにより、設定周期モニタ処理が実現される。このモニタ周期設定テーブルに設定されたプログラム毎のモニタ周期は、全体モニタ条件記憶部２２のプログラム名毎の周期テーブルに記録される。
【０１０３】
そして、オペレータにより選択されたモニタ処理方法は、全体モニタ粂件記憶部２２の設定状態テーブルに記録される。例えば、設定周期モニタ処理がオペレータにより選択された場合は、設定状態テーブルの設定状態領域に「０２」等と記録される。
【０１０４】
これら全体モニタ条件記憶部２２が有するプログラム名毎の周期テーブル及び設定状態テーブルへの記録例を第１０図に示す。第１０図は設定周期モニタ処理におけるプログラム名毎の周期テーブル及び設定状態テーブルの記録例である。
【０１０５】
この設定周期モニタ処理におけるＳ４０１で、モニタ管理部２５は、全体モニタ条件記憶部２２に記録されたプログラム毎のモニタ周期を順にチェックする。このＳ４０１が終了するとＳ４０２へ進む。
【０１０６】
Ｓ４０２でモニタ管理部２５は、ディスプレイ９に表示されたあるウィンドウが、プログラムモニタウィンドウであるかどうかチェックする。チェックしたウィンドウが、プログラムモニタウィンドウであればＳ４０３へ進み、プログラムモニタウィンドウでなければＳ４０６へ進む。
【０１０７】
Ｓ４０３でモニタ管理部２５は、Ｓ４０２でチェックしたプログラムモニタウィンドウに対応する周期カウンタにスリープ時間を加算していく。このＳ４０３が終了するとＳ４０４へ進む。なお、周期カウンタは、モニタ管理部２５が各プログラムモニタウィンドウ毎に設ける。
【０１０８】
Ｓ４０４でモニタ管理部２５は、周期カウンタの値と設定周期の値とを比較する。そして、周期カウンタの値が設定周期の値以上となったらＳ４０５へ進む。また、周期カウンタの値が設定周期の値未満であればＳ４０６へ進む。
【０１０９】
Ｓ４０５でモニタ管理部２５は、当該プログラムモニタウィンドウのプログラムモニタ部２６を起動させる。このＳ４０５が終了するとＳ４０６へ進む。
【０１１０】
Ｓ４０６でモニタ管理部２５は、ディスプレイ９に表示されている全ウィンドウについて、プログラムモニタウィンドウであるか否かのチェックが完了したかチェックする。そして、全ウィンドウについてプログラムモニタウィンドウであるか否かのチェックが完了した場合にはＳ４０７へ進み、全ウィンドウについてのチェックが完了していない場合にはＳ４０２へ戻る。
【０１１１】
Ｓ４０７でモニタ管理部２５は、モニタ状態に変更があったかどうか確認する。モニタ状態に変更があった場合には一連の処理を終了し、変更が無かった場合にはＳ４０８へ進む。
【０１１２】
Ｓ４０８でモニタ管理部２５は、モニタ周期に基づく一定時間のスリープを行う。このＳ４０８が終了するとＳ４０９へ進む。
【０１１３】
Ｓ４０９でモニタ管理部２５は、モニタ状態に変更があったかどうか確認する。モニタ状態に変更があった場合には一連の処理を終了し、変更が無かった場合にはＳ４０１へ戻る。
【０１１４】
これらのことから、モニタ管理部２５は、ウィンドウ毎に異なるモニタ周期で各プログラムのプログラムモニタ部２６に起動をかけることがわかる。
【０１１５】
例えば、第１０図に示すプログラム名毎の周期テーブルのように設定すると、プログラムＡのウィンドウは１０ｍｓ毎にプログラムモニタ部２６に起動がかけられ、モニタ結果が更新される。同様に、プログラムＢのウィンドウは２０ｍｓ毎に、プログラムＣのウィンドウは５０ｍｓ毎にモニタ結果が更新される。
【０１１６】
このように、ウィンドウ毎に異なるモニタ周期で各プログラムのプログラムモニタ部２６に起動がかけられている様子を第１１図に示す。第１１図は、モニタ管理部２５からプログラムモニタ部２６に起動をかけている様子を示す概念図である。この第１１図には、プログラムＡとプログラムＢとプログラムＣとがそれぞれ異なるモニタ周期で、モニタ管理部２５からモニタ起動司令を受けている様子が示されている。
【０１１７】
また第１１図に示したように、プログラムＡとプログラムＢとプログラムＣとがそれぞれ異なるモニタ周期で、モニタ管理部２５からモニタ起動司令を受けている様子を第１２図に示す。この第１２図におけるプログラムＡのウィンドウは、プログラム毎の周期テーブルに設定されたように、１０ｍｓ毎にモニタ結果が更新される。また、プログラムＢのウィンドウは、同様のプログラム毎の周期テーブルに設定されたように、２０ｍｓ毎にモニタ結果が更新される。さらに、プログラムＣのウィンドウは、同様のプログラム毎の周期テーブルに設定されたように、５０ｍｓ毎にモニタ結果が更新される。
【０１１８】
このように、各ウィンドウに対応するプログラム毎に、そのモニタ処理のモニタ周期を変化させるため、ＰＣと周辺装置との間、及び周辺装置とディスプレイとの間で行われるデータ交信の交信頻度を抑え、交信データ量を抑えることができ、モニタ処理による処理結果の更新速度の速いプログラマブルコントローラの周辺装置が得られる。
【０１１９】
次に、第２図のＳ１０５で行われるウィンドウがアクティブである時間に応じてモニタ周期が変化する自動周期設定によるモニタ処理について、第１３図を用いて説明する。第１３図は、この自動周期設定モニタ処理のフローチャートである。
【０１２０】
なお、モニタの処理方法の選択は、予めオペレータにより行われる。このオペレータによるモニタ処理方法の選択は、第３図に示すような全体モニタ設定メニューにて行われる。なお、モニタ処理方法として自動周期設定モニタ処理が選択されると、サブウィンドウが表示される。このサブウィンドウの基準モニタ周期時間テーブルに、任意の値が設定されると、この任意の値に基づき、モニタ周期が算出される。なお、サブウィンドウとしての基準モニタ周期
時間テーブルを第１４図に示す。第１４図は基準モニタ周期時間テーブルに関する概念図である。この基準モニタ周期時間テーブルに設定された基準モニタ周期時間となる任意の値は、全体モニタ条件記憶部２２に記録される。
【０１２１】
そして、オペレータにより選択されたモニタ処理方法は、全体モニタ条件記憶部２２の設定状態テーブルに記録される。例えば、自動周期設定モニタ処理がオペレータにより選択された場合は、設定状態テーブルの設定状態領域に「０３」等と記録される。
【０１２２】
これら全体モニタ条件記憶部２２が有するプログラム名毎の周期テーブル、設定状態テーブル、及び基準モニタ周期時間テーブルへの記録例を第１１５図に示す。第１５図は設定周期モニタ処理におけるプログラム名毎の周期テーブル、設定状態テーブル、及び基準モニタ周期時間テーブルの記録例である。なお、プログラム名毎の周期テーブルに設定されるプログラム毎の周期は、基準モニタ周期時間テーブルに設定された基準モニタ周期時間と、当該プログラムのウィンドウがアクティブである経過時間とに基づく所定の計算式により算出される。この所定の計算式とは、まずアクティブ時間最大値を、処理対象データのアクティブ時間で除する。そして、この除して得られた値に、基準周期である基準モニタ周期時間を乗するものである。この計算式から得られた結果は、その値をモニタ周期としてプログラム毎の周期テーブルに登録される。
【０１２３】
この自動周期設定モニタ処理におけるＳ５０１で、モニタ管理部２５は、アクティブ状態監視部２４より得られるアクティブ状態監視データを取得する。このアクティブ状態監視データとは、ディスプレイ９に表示された任意のウィンドウが、アクティブか否かを通知するものである。そして、モニタ管理部２５は、得られたアクティブ状態監視データと、全体モニタ条件記憶部２２の基準モニタ周期時間テーブルに記録された基準モニタ周期時間とに基づき、全体モニタ条件記憶部２２のプログラム名毎の周期テーブルに設定されるプログラム毎のモニタ周期データを作成する。なお、全体モニタ条件記憶部２２のプログラム名毎の周期テーブルに設定されるプログラム毎のモニタ周期データは、アクティブ状態監視部２４より得られるアクティブ状態監視データに基づき逐次更新される。このＳ５０１が終了するとＳ５０２へ進む。
【０１２４】
そして、Ｓ５０２以降で、モニタ管理部２５は、Ｓ５０１で作成した全体モニタ条件記憶部２２のプログラム毎の周期テーブルに基づき、モニタ処理を行う。なお、このＳ５０２以降の処理は、第９図に示すＳ４０１以降の処理と同様であり、その説明を省略する。ちなみに、Ｓ５０２はＳ４０１に対応し、Ｓ５０３はＳ４０２に対応し、Ｓ５０４はＳ４０３に対応し、Ｓ５０５はＳ４０４に対応し、Ｓ５０６はＳ４０５に対応し、Ｓ５０７はＳ４０６に対応し、Ｓ５０８はＳ４０７に対応し、Ｓ５０９はＳ４０８に対応し、Ｓ５１０はＳ４０９に対応する。
【０１２５】
なお、アクティブ状態監視部２４は、アクティブ状態監視データの状態テーブルを有し、この状態テーブルに基づきモニタ管理部２５へアクティブ状態監視データを出力する。この状態テーブルを第１６図に示す。そして、この状態テーブルには、各プログラムに対応するウィンドウのアクティブ時間が記録される。なお、このアクティブ時間とは、所定のタイミングを基準とした所定の時間において、任意のプログラムのウィンドウがアクティブである期間をタイマで計測し累積して得られるものである。
【０１２６】
このように、閲覧される機会が多くアクティブに指定されるウィンドウに対応するプログラム程そのモニタ処理のモニタ周期を次第に短くさせ、また閲覧される機会が少なくアクティブに指定されることの少ないウィンドウに対応するプログラム程そのモニタ処理のモニタ周期を次第に長くすることから、ＰＣと周辺装置との間、及び周辺装置とディスプレイとの間で行われるデータ交信の交信頻度を抑え、交信データ量を抑えることができ、モニタ処理による処理結果の更新速度の速いプログラマブルコントローラの周辺装置が得られる。
【０１２７】
例えばある瞬間、第１５図に示すように、アクティブ状態監視データと基準モニタ周期時間とに基づくプログラム毎のモニタ周期データが、モニタ管理部２５により全体モニタ条件記憶部２２に設定されたと仮定する。その時、モニタ管理部２５から各プログラムのプログラムモニタ部２６へかけられる起動の様子は、第１７図に示されたような状態となる。この第１７図は、モニタ管理部２５からプログラムモニタ部２６に起動をかけている様子を示す概念図である。
【０１２８】
次に、この第１３図のＳ５０１における全体モニタ条件記憶部２２のプログラム毎の周期テーブルへのモニタ周期データの設定処理について、第１８図を用いて説明する。第１８図は、このモニタ周期データの設定処理を説明するフローチャートである。
【０１２９】
Ｓ１４０１で、モニタ管理部２５は、全体モニタ条件記憶部２２が有するプログラム名毎の周期テーブルを初期化する。このＳ１４０１が終了するとＳ１４０２へ進む。
【０１３０】
Ｓ１４０２で、モニタ管理部２５は、アクティブ状態監視部２４が有するアクティブ状態監視テーブルから、任意のプログラムに関する最大のアクティブ時間（以下、アクティブ時間最大値と称す。）を取得する。なお、このアクティブ状態監視テーブルに記録されたデータをアクティブ状態監視データとする。このアクティブ状態監視データにはプログラム名と、そのプログラムに関するウィンドウがアクティブであった時間を示すアクティブ時間と、当該プログラムがプログラム記憶部４等に記録されているかどうか示す存在確認フラグが示される。このＳ１４０２が終了するとＳ１４０３へ進む。
【０１３１】
Ｓ１４０３で、モニタ管理部２５は、アクティブ状態監視テーブルに登録されたあるアクティブ状態監視データを処理対象データとする。このＳ１４０３が終了するとＳ１４０４へ進む。
【０１３２】
Ｓ１４０４で、モニタ管理部２５は、処理対象データに含まれるプログラム名をプログラム毎の周期テーブルのプログラム名の欄に記録する。このＳ１４０４が終了するとＳ１４０５へ進む。
【０１３３】
Ｓ１４０５で、モニタ管理部２５は、所定の計算式より得られるモニタ周期をプログラム毎の周期テーブルのモニタ周期欄に各プログラム名に対応させて登録する。このＳ１４０５が終了するとＳ１４０６へ進む。
【０１３４】
Ｓ１４０６で、モニタ管理部２５は、アクティブ状態監視データに登録された全てのデータに対してモニタ周期の登録処理が完了したか判別する。このモニタ周期の登録処理が完了した場合には一連の処理を終了し、完了していなかった場合にはＳ１４０７へ進む。
【０１３５】
Ｓ１４０７で、モニタ管理部２５は、アクティブ状態監視テーブルに登録された他のアクティブ状態監視データを処理対象データとする。このＳ１４０７が終了するとＳ１４０４へ戻る。
【０１３６】
次に、上述のモニタ周期の設定処理で用いられるアクティグ状態監視テーブルの作成処理について、第１９図を用いて説明する。第１９図は、このアクティブ状態監視テーブルの作成処理を説明するフローチャートである。なお、アクティブ状態監視テーブルは、アクティブ状態監視部２４が有する。
【０１３７】
Ｓ１００１で、アクティブ状態監視部２４は、ウィンドウ管理部７から取得するウィンドウ情報により全てのウィンドウを順にチェックするための準備を行う。また、アクティブ状態監視部２４は、アクティブ状態監視テーブルの全ての存在確認フラグを０に設定する。このＳ１００１が終了するとＳ１００２へ進む。
【０１３８】
Ｓ１００２で、アクティブ状態監視部２４は、ディスプレイ９上に表示されている各ウィンドウがプログラムモニタウィンドウであるかどうかチェックする。チェックしたウィンドウがプログラムモニタウィンドウである場合にはＳ１００３へ進み、プログラムモニタウィンドウでない場合にはＳ１００８へ進む。なお、プログラムモニタウィンドウとは、プログラムに基づきモニタした結果が出力されたウィンドウのことを示す。
【０１３９】
Ｓ１００３で、アクティブ状態監視部２４は、チェックしたプログラムモニタウィンドウに関するプログラムのプログラム名がアクティブ状態監視テーブルに登録されているか確認する。このＳ１００３が終了するとＳ１００４へ進む。
【０１４０】
Ｓ１００４で、アクティブ状態監視部２４は、Ｓ１００３での検索結果をチェックする。当該プログラム名がアクティブ状態監視テーブルに登録されていた場合にはＳ１００６へ進み、登録されていなかった場合にはＳ１００５へ進む。
【０１４１】
Ｓ１００５で、アクティブ状態監視部２４は、アクティブ状態監視テーブルに当該プログラム名を登録し、対応するアクティブ時間を０に設定する。このＳ１００５が終了するとＳ１００６へ進む。
【０１４２】
Ｓ１００６で、アクティブ状態監視部２４は、当該プログラム名がアクティブ状態監視テーブルに登録され存在していることを示すため、当該プログラム名に対応するアクティブ状態監視テーブルの存在確認フラグ欄に１を設定する。そしてまた、アクティブ状態監視部２４は、当該プログラム名のプログラムに関するプログラムモニタウィンドウがアクティブであるかどうか判別する。当該プログラム名に関するプログラムモニタウィンドウがアクティブである場合にはＳ１００７へ進み、アクティブでなかった場合にはＳ１００８へ進む。
【０１４３】
Ｓ１００７で、アクティブ状態監視部２４は、当該プログラム名に対応するアクティブ状態監視テーブルのアクティブ時間欄に、所定の監視周期時間を加算する。なお、監視周期時間は、アクティブ状態監視部２４が定期的に取得するアクティブ状態監視データの更新周期に相当する。このＳ１００７が終了するとＳ１００８へ進む。
【０１４４】
Ｓ１００８で、アクティブ状態監視部２４は、全ウィンドウについてのチェックが完了したかチェックする。全ウィンドウについてのチェックが完了した場合はＳ１０１０へ進み、完了していない場合はＳ１００９へ進む。
【０１４５】
Ｓ１００９で、アクティブ状態監視部２４は、それまで確認されたウィンドウとは異なるウィンドウがプログラムモニタウィンドウであるかどうかチェックする準備を行う。このＳ１００９が終了するとＳ１００２へ戻る。
【０１４６】
Ｓ１０１０で、アクティブ状態監視部２４は、アクティブ状態監視テーブルの存在確認データに０が設定されているものがあるか確認し、ディスプレイ９上にウィンドウとして表示されていないプログラムがあるかどうかチェックする。ウィンドウとして表示されていないプログラムがある場合にはＳ１０１１へ進み、ない場合にはＳ１０１２へ進む。
【０１４７】
Ｓ１０１１で、アクティブ状態監視部２４は、アクティブ状態監視テーブルの存在確認フラグ欄に０が記録されているプログラムに関するデータを削除する。このＳ１０１１が終了するとＳ１０１２へ進む。
【０１４８】
Ｓ１０１２で、アクティブ状態監視部２４は、所定の期間、スリープを行う。なお、この所定の期間は、アクティブ状態監視部２４が定期的に取得するアクティブ状態監視データの更新周期である監視周期時間に相当する。このＳ１０１２が終了するとＳ１００１に戻る。
【０１４９】
例えば、第１６図に示すアクティブ状態監視テーブルには、プログラム名がＡ、Ｂ、Ｃの３つのプログラムが記録されている。また、このアクティブ状態監視テーブルには、これら各プログラムＡ〜Ｃのプログラムモニタウィンドウがそれぞれ６０秒、２０秒、２０秒の間アクティブであったことを示している。
【０１５０】
また、第１４図に示すように、自動周期設定モニタ設定画面の基準モニタ周期時間テーブルに１０ｍｓを設定したとする。
【０１５１】
これらアクティブ状態監視テーブル及び基準モニタ周期時間テーブルへの設定により、第１５図に示すプログラム名毎の周期テーブルに、各プログラム名が設定されると共に、各プログラム名のプログラムモニタウィンドウに対応するモニタ周期が周期欄に設定される。なお、第１６図及び第１４図に示すようにアクティブ時間及び基準モニタ周期時間が設定されると、各プログラム名Ａ〜Ｃのプログラムモニタウィンドウに関するモニタ周期は順番に１０ｍｓ、３０ｍｓ、３０ｍｓとなる。
【０１５２】
次に、第２図のＳ１０６で行われるウィンドウがアクティブであるか否かによりモニタ周期が切り替えられるアクティブウィンドウ優先のモニタ処理について、第２０図を用いて説明する。第２０図は、このアクティブウィンドウ優先のモニタ処理のフローチャートである。
【０１５３】
なお、モニタの処理方法の選択は、予めオペレータにより行われる。このオペレータによるモニタ処理方法の選択は、第３図に示すような全体モニタ設定メニューにて行われる。なお、モニタ処理方法としてアクティブウィンドウ優先が選択されると、ディスプレイ９にはサブウィンドウが表示される。サブウィンドウとして表示されるアクティブウィンドウ優先設定テーブルには、ウィンドウがアクティブの時のモニタ時間が設定されるアクティブウィンドウモニタ周期時間欄と、ウィンドウが非アクティブの時のモニタ時間が設定される非アクティブウィンドウモニタ周期時間欄とが設けられる。
【０１５４】
なお、サブウィンドウとしてのアクティブウィンドウ優先設定テーブルを第２１図に示す。第２１図はアクティブウィンドウ優先設定テーブルに関する概念図である。これらアクティブウィンドウモニタ周期時間欄と非アクティブウィンドウモニタ周期時間欄とに任意の値が設定されると、モニタ管理部２５はこれらの欄に設定された値をもとに各ウィンドウのモニタ処理を実行する。なお、このアクティブウィンドウ優先設定テーブルは、全体モニタ条件記憶部２２に設けられる。
【０１５５】
そして、オペレータにより選択されたモニタ処理方法は、全体モニタ条件記憶部２２の設定状態テーブルに記録される。例えば、アクティブウィンドウ優先のモニタ処理がオペレータにより選択された場合は、設定状態テーブルの設定状態領域に「０４」等と記録される。
【０１５６】
これら全体モニタ条件記憶部２２が有するプログラム名毎の周期テーブル、設定状態テーブル、及び基準モニタ周期時間テーブルへの記録例を第２２図に示す。第２２図は設定周期モニタ処理におけるプログラム名毎の周期テーブル、設定状態テーブル、及びアクティブウィンドウ優先モニタ周期テーブルの記録例である。なお、全体モニタ条件記憶部２２にはプログラム名毎の周期テーブルを設けず、アクティブウィンドウ優先モニタ周期テーブルを参照して、モニタ管理部２５は各プログラムのプログラムモニタ部２６に起動をかけるようにしてもよい。
【０１５７】
このアクティブウィンドウ優先モニタ処理におけるＳ６０１で、モニタ管理部２５は、各ウィンドウがアクティブ状態にあるか非アクティブ状態にあるかにより、全体モニタ条件記憶部２２のプログラム毎の周期テーブルに、アクティブウィンドウ優先モニタ周期テーブルから得られる所定のモニタ周期データを設定する。このＳ６０１が終了するとＳ６０２へ進む。
【０１５８】
そして、Ｓ６０２以降で、モニタ管理部２５は、Ｓ６０１で作成した全体モニタ条件記憶部２２のプログラム毎の周期テーブルに基づき、モニタ処理を行う。
なお、このＳ６０２以降の処理は、第９図に示すＳ４０１以降の処理と同様であり、その説明を省略する。ちなみに、Ｓ６０２はＳ４０１に対応し、Ｓ６０３はＳ４０２に対応し、Ｓ６０４はＳ４０３に対応し、Ｓ６０５はＳ４０４に対応し、Ｓ６０６はＳ４０５に対応し、Ｓ６０７はＳ４０６に対応し、Ｓ６０８はＳ４０７に対応し、Ｓ６０９はＳ４０８に対応し、Ｓ６１０はＳ４０９に対応する。
【０１５９】
このように、アクティブなウィンドウに対応するプログラムでのモニタ処理のモニタ周期を短く、アクティブではないウィンドウに対応するプログラムでのモニタ処理のモニタ周期を長くするため、ＰＣと周辺装置との間、及び周辺装置とディスプレイとの間で行われるデータ交信の交信頻度を抑え、交信データ量を抑えることができ、モニタ処理による処理結果の更新速度の速いプログラマブルコントローラの周辺装置が得られる。
【０１６０】
例えば、第２３図に示すように、プログラムＡ〜Ｃに関するウィンドウがそれぞれディスプレイ９上に開かれ、アクティブなウィンドウがプログラムＡに関するもののみであった場合、各ウィンドウにおけるモニタ処理は、プログラムＡに関するもののみが、アクティブウィンドウ優先モニタ周期テーブルのアクティブモニタ時間欄に設定されたモニタ周期でモニタ処理される。一方、プログラムＢ及びＣに関するモニタ処理は、これらプログラムＢ及びＣに対応するウィンドウが非アクティブであることから、アクティブウィンドウ優先モニタ周期テーブルの非アクティブモニタ時間欄に設定されたモニタ周期でモニタ処理を実行する。
【０１６１】
この第２３図に示されたウィンドウ状態のモニタ処理を実行するためには、第２２図に示すような設定が全体モニタ条件記憶部２２の設定状態テーブルとプログラム名毎の周期テーブルとアクティブウィンドウ優先モニタテーブルとに行われる。
【０１６２】
このように、アクティブなウィンドウと非アクティブなウィンドウとで、それぞれ異なるモニタ周期をもってモニタ管理部２５からプログラムモニタ部２６へ起動がかけられている様子を第２４図に示す。第２４図は、モニタ管理部２５からプログラムモニタ部２６に起動をかけている様子を示す概念図である。この第２４図には、プログラムＡ及びプログラムＢのアクティブ状態が切り替えられることにより、モニタ周期が変化して、各プログラムがモニタ管理部２５からモニタ起動司令を受けている様子が示されている。
【０１６３】
次に、この第２０図のＳ６０１における全体モニタ条件記憶部２２のプログラム毎の周期テーブルへのモニタ周期データの設定処理について、第２５図を用いて説明する。第２５図は、このモニタ周期データの設定処理を説明するフローチャートである。
【０１６４】
Ｓ１３０１で、モニタ管理部２５は、全体モニタ条件記憶部２２が有するプログラム名毎の周期テーブルを初期化する。このＳ１３０１が終了するとＳ１３０２へ進む。
【０１６５】
Ｓ１３０２で、モニタ管理部２５は、ウィンドウ管理部７から取得するウィンドウ情報により全てのウィンドウを順にチェックするための準備を行う。このＳ１３０２が終了するとＳ１３０３へ進む。
【０１６６】
Ｓ１３０３で、モニタ管理部２５は、ディスプレイ９上に表示されている各ウィンドウがプログラムモニタウィンドウであるかどうかチェックする。チェックしたウィンドウがプログラムモニタウィンドウである場合にはＳ１３０４へ進み、プログラムモニタウィンドウでない場合にはＳ１３０８へ進む。
【０１６７】
Ｓ１３０４で、モニタ管理部２５は、全体モニタ条件記憶部２２のプログラム毎の周期テーブルに当該プログラム名を登録する。このＳ１３０４が終了するとＳ１３０５へ進む。
【０１６８】
Ｓ１３０５で、モニタ管理部２５は、当該プログラム名のプログラムに関するプログラムモニタウィンドウがアクティブであるかどうか判別する。当該プログラム名に関するプログラムモニタウィンドウがアクティブである場合にはＳ１３０６へ進み、アクティブでなかった場合にはＳ１３０７へ進む。
【０１６９】
Ｓ１３０６で、モニタ管理部２５は、当該プログラムに関するモニタ周期として、プログラム毎の周期テーブルの周期欄に、アクティブウィンドウモニタ周期テーブルに登録されたアクティブモニタ時間を設定する。なお、これらプログラム毎の周期テーブル及びアクティブウィンドウモニタ周期テーブルは、全体モニタ条件記憶部２２が有する。このＳ１３０６が終了するとＳ１３０８へ進む。
【０１７０】
Ｓ１３０７で、モニタ管理部２５は、当該プログラムに関するモニタ周期として、プログラム毎の周期テーブルの周期欄に、アクティブウィンドウモニタ周期テーブルに登録された非アクティブモニタ時間を設定する。このＳ１３０７が終了するとＳ１３０８へ進む。
【０１７１】
Ｓ１３０８で、モニタ管理部２５は、全ウィンドウについてのチェックが完了したかチェックする。全ウィンドウについてのチェックが完了した場合は一連の処理を終了し、完了していない場合はＳ１３０９へ進む。
【０１７２】
Ｓ１３０９で、モニタ管理部２５は、それまで確認されたウィンドウとは異なるウィンドウがプログラムモニタウィンドウであるかどうかチェックする準備を行う。このＳ１３０９が終了するとＳ１３０３へ戻る。
【０１７３】
これらのことから、モニタ管理部２５は、各ウィンドウがアクティブ状態にあるか非アクティブ状態にあるかにより、異なるモニタ周期で各プログラムのプログラムモニタ部２６を起動させることがわかる。
【０１７４】
例えば、第２１図に示すように、アクティブウィンドウ優先設定テーブルで、アクティブウィンドウモニタ周期時間に１０ｍｓ、非アクティブウィンドウモニタ周期時間に５０ｍｓが設定された場合を仮定する。そして、ティスプレイ９上に示される各プログラムモニタウィンドウは、第２３図に示すようにプログラムＡに基づくプログラムモニタウィンドウがアクティブになっていると仮定する。なお、同様にディスプレイ上に表示されるプログラムＢ〜Ｃに基づくプログラムモニタウィンドウは非アクティブになっていると仮定する。
【０１７５】
このような時、全体モニタ条件記憶部２２が有するプログラム毎の周期テーブルには、第２２図に示されるような設定が行われる。つまり、プログラム名Ａに対応するプログラムモニタウィンドウのモニタ周期は１０ｍｓに、またプログラム名Ｂに対応するプログラムモニタウィンドウのモニタ周期は５０ｍｓに、さらにプログラム名Ｃに対応するプログラムモニタウィンドウのモニタ周期も５０ｍｓに設定される。そして、各プログラムモニタウィンドウのモニタ処理は、これらの設定に基づき実行される。
【０１７６】
次に、モニタ管理部２５から起動がかけられるプログラムモニタ部２６の動作について、第２６図を用いて説明する。第２６図は、プログラムモニタ部２６の動作を示すフローチャートである。なお、プログラムモニタ部２６は各プログラムモニタウィンドウに対応するよう設けられる。
【０１７７】
まず、Ｓ７０１で、プログラムモニタ部２６は、モニタ要求データが未作成かどうか判定する。モニタ要求データが未作成であるならばＳ７０４へ進み、モニタ要求データが作成済であるならばＳ７０２へ進む。なお、モニタ要求データは、モニタ管理部２５からの指示に基づき、ＰＣ１にモニタする事項を登録するために、プログラムモニタ部２６から出力される。
【０１７８】
Ｓ７０２で、プログラムモニタ部２６は、キャラクタデータに変更があったかどうか判別する。キャラクタデータに変更があった場合にはＳ７０４へ進み、変更が無かった場合にはＳ７０３へ進む。なお、キャラクタデータの変更は、モニタ事項の変更やプログラムの変更などの任意のタイミングで、オペレータにより行われる。
【０１７９】
Ｓ７０３で、プログラムモニタ部２６は、プログラム別モニタ条件記憶部２３に記憶されるプログラム別モニタデータを確認し、このプログラム別モニタデータに記録されるモニタ種類に変更があったかどうか判別する。モニタ種類に変更があった場合にはＳ７０４へ進み、変更が無かった場合にはＳ７０９へ進む。なお、モニタ種類の変更は、モニタ種類の設定や、モニタ種類の設定変更や、モニタの終了などの任意のタイミングで、オペレータにより行われる。また、プログラム別モニタデータに記録されるモニタ種類は、オペレータが第２７図に示すプログラム別設定メニューから選択され、「モニタ条件なし」と「コイルのみモニタ」と「選択範囲モニタ」の３種類がある。また、このプログラム別モニタデータの構造を第２８図に示す。第２８図はプログラム別モニタデータの構造を示す構造図である。
【０１８０】
Ｓ７０４で、プログラムモニタ部２６は、プログラム別モニタデータに記録されたモニタ種類を判別する。このプログラム別モニタデータに記録されるモニタ種類が、「モニタ条件なし」ならばＳ７０５へ進み、「コイルのみモニタ」ならばＳ７０６へ進み、「指定範囲モニタ」ならばＳ７０７へ進む。
【０１８１】
Ｓ７０５で、プログラムモニタ部２６は、第４５図に示す従来のモニタ要求データと同様のモニタ要求データを作成する。このＳ７０５が終了するとＳ７０８へ進む。
【０１８２】
Ｓ７０６で、プログラムモニタ部２６は、コイルのみモニタ要求データを作成する。このコイルのみモニタ要求データは、「コイルのみのモニタ」処理を実行するために、プログラムモニタ部２６からＰＣ１に出力される。そして、ＰＣ１は、この入力されたコイルのみモニタ要求データに基づき、モニタ処理の処理条件を設定する。このＳ７０６が終了するとＳ７０８へ進む。
【０１８３】
Ｓ７０７で、プログラムモニタ部２６は、指定範囲モニタ要求データを作成する。この指定範囲モニタ要求データは、「指定範囲モニタ」処理を実行するために、プログラムモニタ部２６からＰＣ１に出力される。そして、ＰＣ１は、この入力された指定範囲モニタ要求データに基づき、モニタ処理の処理条件を設定する。このＳ７０７が終了するとＳ７０８へ進む。
【０１８４】
Ｓ７０８で、プログラムモニタ部２６は、作成した各種モニタ要求データをＰＣ１に転送し登録する。このＳ７０８が終了するとＳ７０９へ進む。
【０１８５】
Ｓ７０９で、プログラムモニタ部２６は、ＰＣ１に登録したモニタ要求データに対するモニタ要求を所定の出力周期でＰＣ１に転送する。なお、モニタ要求は、モニタ要求データに基づきＰＣ１に登録された事項に関するモニタ処理を、実行させる要求命令である。つまり、ＰＣ１におけるモニタ処理の条件設定をモニタ要求データで行い、ＰＣ１における実際のモニタ処理はモニタ要求がＰＣ１に入力されることにより行われる。そこで、モニタ要求データによる条件設定が一旦行われると、モニタ処理の実行のためには通常モニタ要求が出力されるだけである。そしてまた、モニタ処理に関する条件を変更する場合に、モニタ要求データはプログラムモニタ部２６から出力される。このＳ７０９が終了するとＳ７１０へ進む。
【０１８６】
Ｓ７１０で、プログラムモニタ部２６は、Ｓ７０９でプログラムモニタ部２６からＰＣ１に転送されたモニタ要求に対応する処理結果であるモニタ結果データが、ＰＣ１から出力され当該プログラムモニタ部２６に入力されることを待機する。なお、モニタ結果データは、モニタ要求の出力周期に基づき、所定の更新周期で入力される。モニタ結果データがプログラムモニタ部２６に入力されるとＳ７１１へ進み、入力されない場合には継続して入力を待機する。
【０１８７】
Ｓ７１１で、プログラムモニタ部２６は、入力されたモニタ結果データと、キャラクタデータとを参照し、ウィンドウ表示制御部１５を介して、ディスプレイ９にモニタ結果データを反映させる。なお、モニタ結果データのディスプレイへの反映は、モニタ結果データがＰＣ１からプログラムモニタ部２６に入力される更新周期に基づき行われる。このＳ７１１が終了すると一連の処理も終了する。
【０１８８】
次に、この第２６図のＳ７０６におけるコイルのみモニタ要求データの作成処理について、第２９図を用いて説明する。第２９図は、このコイルのみモニタ要求データの作成処理を説明するフローチャートである。なお、このコイルとは、出力結果が表示される部分のことである。
【０１８９】
まず、Ｓ８０１で、プログラムモニタ部２６はキャラクタデータに基づくウィンドウ表示におけるＸ座標の位置を示すＸカウンタを１に初期化する。この初期化により、プログラムモニタ部２６は、例えば第３０図に示すようなキャラクタデータに基づくウィンドウ表示の左端の位置を確認可能な状態に設定できる。この第３０図は、キャラクタデータに基づくウィンドウ表示の表示例である。このＳ８０１が終了するとＳ８０２へ進む。
【０１９０】
Ｓ８０２で、プログラムモニタ部２６はキャラクタデータに基づくウィンドウ表示におけるＹ座標の位置を示すＹカウンタを１に初期化する。この初期化により、プログラムモニタ部２６は、例えば第３０図に示すようなキャラクタデータに基づくウィンドウ表示の上端の位置を確認可能な状態に設定できる。このＳ８０２が終了するとＳ８０３へ進む。
【０１９１】
Ｓ８０３で、プログラムモニタ部２６は、キャラクタデータに基づくウィンドウ表示におけるＸ座標が増加する方向へ順番にトレースを開始する。そして、Ｘカウンタ及びＹカウンタで示されるキャラクタデータに基づくウィンドウ表示における任意の位置の命令に、出力デバイスであるコイルに関する命令が設定されているかどうか確認する。このトレースした位置の命令にコイルに関する命令が設定されていた場合にはＳ８０４へ進み、設定されていなかった場合にはＳ８０６へ進む。
【０１９２】
Ｓ８０４で、プログラムモニタ部２６は、Ｓ８０３で確認された命令に設定されていたコイルに関する出力デバイスの名前やアドレスを抽出する。このＳ８０４が終了するとＳ８０５へ進む。
【０１９３】
Ｓ８０５で、プログラムモニタ部２６は、Ｓ８０４で抽出された出力デバイスの名前やアドレスを、第３１図（１）に示すようなコイルのみモニタ要求データに設定する。なお、この第３１図（１）は、プログラムモニタ部２６からＰＣ１に出力されるコイルのみモニタ要求データの具体的データ構造を示す構造図である。また、この第３１図（１）に示すコイルのみモニタ要求データに対応して、ＰＣ１からプログラムモニタ部２６に出力されるコイルのみモニタ結果データの具体例を、第３１図（２）に示す。この第３１図（２）は、ＰＣ１からプログラムモニタ部２６に出力されるコイルのみモニタ結果データの具体的データ構造を示す構造図である。このＳ８０５が終了するとＳ８０６へ進む。
【０１９４】
Ｓ８０６で、プログラムモニタ部２６は、所定のＹ座標における各Ｘ座標のトレースを終端まで終了したかどうか判断する。所定のＹ座標における終端のトレースが終了した場合にはＳ８０８へ進み、終端のトレースが終了していない場合にはＳ８０７へ進む。
【０１９５】
Ｓ８０７で、プログラムモニタ部２６は、Ｘカウンタに１加算してＳ８０３へ戻り、キャラクタデータに基づくウィンドウ表示の次順の位置のトレースを行う。
【０１９６】
Ｓ８０８で、プログラムモニタ部２６は、Ｘカウンタを１に初期化してＳ８０９へ進む。
【０１９７】
Ｓ８０９で、プログラムモニタ部２６は、終端のＹ座標におけるトレースが終了したかどうか判断する。終端のＹ座標におけるトレースが終了していた場合には一連の処理を終了し、終了していなかった場合にはＳ８１０へ進む。
【０１９８】
Ｓ８１０で、プログラムモニタ部２６は、Ｙカウンタに１加算してＳ８０３へ戻り、キャラクタデータに基づくウィンドウ表示の次順の位置のトレースを行う。
【０１９９】
上述の一連の処理が終了すると、プログラムモニタ部２６は、作成したコイルのみモニタ要求データをＰＣ１に出力する。その後、プログラムモニタ部２６は、コイルのみモニタ要求データでＰＣ１に設定した条件に基づくコイルのみモニタ処理を実行させるためのコイルのみモニタ要求を所定の出力周期で出力する。そして、プログラムモニタ部２６は、コイルのみモニタ要求に基づくコイルのみモニタ結果に関するデータであるコイルのみモニタ結果データをＰＣ１から受け取る。なお、コイルのみモニタ結果データは、コイルのみモニタ要求の出力周期に基づき、所定の更新周期で入力される。そして、このプログラムモニタ部２６は、受け取ったコイルのみモニタ結果データを、ディスプレイ９上の当該プログラムモニタウィンドウに反映させる。なお、コイルのみモニタ結果データのディスプレイへの反映は、コイルのみモニタ結果データがＰＣ１からプログラムモニタ部２６に入力される更新周期に基づき行われる。
【０２００】
なお、このようなコイルのみモニタ結果データがディスプレイ９上の当該プログラムモニタウィンドウに反映された表示例を第３２図に示す。第３２図は、ディスプレイ９に表示されたキャラクタデータに基づくウィンドウ表示の他の表示例である。
【０２０１】
このように、ウィンドウに表示されたコイル部分のモニタ処理しか実行しないため、ＰＣと周辺装置との間、及び周辺装置とディスプレイとの間で行われるデータ交信の交信データ量を抑えることができ、モニタ処理による処理結果の更新速度の速いプログラマブルコントローラの周辺装置が得られる。
【０２０２】
次に、この第２６図のＳ７０７における指定範囲モニタ要求データの作成処理について、第３３図を用いて説明する。第３３図は、この指定範囲モニタ要求データの作成処理を説明するフローチャートである。
【０２０３】
この指定範囲モニタ要求データを作成するにあたり、オペレータは、まず第２７図に示すプログラム別設定メニューで、所定の事項を選択する。この所定の事項とは、選択範囲にのみモニタ処理の処理結果を表示する旨の事項を示す。当該事項を選択すると、次にオペレータは、マウス１０等の入力手段により、当該選択範囲である部分を指定する。
【０２０４】
これら所定の事項と当該選択範囲に関するデータにより、指定範囲モニタ要求データが作成される。つまり、この指定範囲モニタ要求データには、オペレータより選択されたモニタ処理の種類と、同じくオペレータより指定された選択範囲の左座標、上座標、右座標、及び下座標が記録される。そして、作成された指定範囲モニタ要求データは、プログラム別モニタ条件記憶部２３に記憶される。
【０２０５】
例えば、ある選択範囲がプログラムモニタウィンドウ上で指定された様子を第３４図に示す。この第３４図は、プログラムモニタウィンドウ上の表示範囲である部分が表示された表示例である。
【０２０６】
そして、Ｓ９０１で、プログラムモニタ部２６は、キャラクタデータに基づくウィンドウ表示におけるＸ座標の位置を示すＸカウンタをプログラム別モニタデータに記録された選択範囲の左座標に設定する。
【０２０７】
この設定により、プログラムモニタ部２６は、第３４図に示すようなキャラクタデータに基づくウィンドウの異色部の左端の位置を確認可能な状態に設定できる。
【０２０８】
なお、このＳ９０１で用いられるプログラム別モニタデータは、第３４図に示す表示範囲の表示例に基づくものであるとし、プログラム別モニタ条件記憶部２３に記憶される。
【０２０９】
そして、プログラムモニタ部２６は、このプログラム別モニタ条件記憶部２３を参照してＳ９０１の処理を実行する。このＳ９０１が終了するとＳ９０２へ進む。
【０２１０】
Ｓ９０２で、プログラムモニタ部２６は、キャラクタデータに基づくウィンドウ表示おけるＹ座標の位置を示すＹカウンタをプログラム別モニタデータに記録された選択範囲の上座標に設定する。
【０２１１】
この設定により、プログラムモニタ部２６は、第３４図に示すようなキャラクタデータに基づくウィンドウの異色部の上端の位置を確認可能な状態に設定できる。
【０２１２】
なお、プログラム別モニタデータはプログラム別モニタ条件記憶部２３に記憶されており、プログラムモニタ部２６はこのプログラム別モニタ条件記憶部２３を参照してＳ９０２の処理を実行する。そのＳ９０２が終了するとＳ９０３へ進む。
【０２１３】
Ｓ９０３で、プログラムモニタ部２６は、キャラクタデータに基づくウィンドウ表示おけるＸ座標の位置を１増加する方向へ順番にトレースを開始する。そして、Ｘカウンタ及びＹカウンタで示されるキャラクタデータに基づくウィンドウ表示の任意の位置の命令を読み、その読み出した命令に接点やコイルやデータを操作する応用命令に関するものがあるかどうか確認する。この読み出した命令が接点やコイルや応用命令に関するものである場合にはＳ９０４へ進み、異なる場合にはＳ９０６へ進む。
【０２１４】
Ｓ９０４で、プログラムモニタ部２６は、Ｓ９０３で確認された命令に示された接点やコイルや応用命令等の入出力デバイスの名前やアドレスを、当該データ構造から抽出する。このＳ９０４が終了するとＳ９０５へ進む。
【０２１５】
Ｓ９０５で、プログラムモニタ部２６は、Ｓ９０４で抽出された入出力デバイスの名前やアドレスを、第３５図（１）に示すような指定範囲モニタ要求データに設定する。なお、この第３１図（１）は、プログラムモニタ部２６からＰＣ１に出力される指定範囲モニタ要求データの具体的データ構造を示す構造図である。
【０２１６】
また、この第３１図（１）に示す指定範囲モニタ要求データに対応して、ＰＣ１からプログラムモニタ部２６に出力される指定範囲モニタ結果データの具体例を、第３１図（２）に示す。この第３１図（２）は、ＰＣ１からプログラムモニタ部２６に出力される指定範囲モニタ結果データの具体的データ構造を示す構造図である。このＳ９０５が終了するとＳ９０６へ進む。
【０２１７】
Ｓ９０６で、プログラムモニタ部２６は、所定のＹ座標における各Ｘ座標のトレースを終端まで終了したかどうか判断する。なお、ここでの終端とは、プログラム別モニタデータに示された選択範囲右座標とする。この所定のＹ座標における終端のトレースが終了した場合にはＳ９０８へ進み、終端のトレースが終了していない場合にはＳ９０７へ進む。
【０２１８】
Ｓ９０７で、プログラムモニタ部２６は、Ｘカウンタに１加算してＳ９０３へ戻り、キャラクタデータに基づくウィンドウ表示の次順の位置のトレースを行う。
【０２１９】
Ｓ９０８で、プログラムモニタ部２６は、Ｘカウンタを１に初期化してＳ９０９へ進む。
【０２２０】
Ｓ９０９で、プログラムモニタ部２６は、終端のＹ座標におけるトレースが終了したかどうか判断する。なお、ここでの終端のＹ座標とは、プログラム別モニタデータに示された選択範囲下座標とする。この終端のＹ座標におけるトレース
が終了していた場合には一連の処理を終了し、終了していなかった場合にはＳ９１０へ進む。
【０２２１】
Ｓ９１０で、プログラムモニタ部２６は、Ｙカウンタに１加算してＳ９０３へ戻り、キャラクタデータに基づくウィンドウ表示の次順の位置のトレースを行う。
【０２２２】
上述の一連の処理が終了すると、プログラムモニタ部２６は、作成した指定範囲モニタ要求データをＰＣ１に出力する。その後、プログラムモニタ部２６は、指定範囲モニタ要求データでＰＣ１に設定した条件に基づく指定範囲モニタ処理を実行させるための指定範囲モニタ要求を所定の出力範囲で出力する。そして、プログラムモニタ部２６は、指定範囲モニタ要求に基づく指定範囲モニタ結果に関するデータである指定範囲モニタ結果データをＰＣ１から受け取る。なお、指定範囲モニタ結果データは、指定範囲モニタ要求の出力周期に基づき、所定の更新周期で入力される。
【０２２３】
そして、このプログラムモニタ部２６は、受け取った指定範囲モニタ結果データを、ディスプレイ９上の当該プログラムモニタウィンドウに反映させる。なお、指定範囲モニタ結果データのディスプレイへの反映は、指定範囲モニタ結果データがＰＣ１からプログラムモニタ部２６に入力される更新周期に基づき行われる。
【０２２４】
なお、このような指定範囲モニタ結果データがディスプレイ９上の当該プログラムモニタウィンドウに反映された表示例を第３６図に示す。第３６図は、ディスプレイ９に表示されたキャラクタデータに基づくウィンドウ表示の他の表示例である。
【０２２５】
このように、マウスやキーボードにより指定されたウィンドウ上の範囲しかモニタ処理を実行しないため、ＰＣと周辺装置との間、及び周辺装置とディスプレイとの間で行われるデータ交信の交信データ量を抑えることができ、モニタ処理による処理結果の更新速度の速いプログラマブルコントローラの周辺装置が得られる。
【０２２６】
【発明の効果】
【０２２７】
以上のように、この発明にかかるプログラマブルコントローラの周辺装置は、複数のウィンドウが表示される表示手段と、ウィンドウに対応するプログラマブルコントローラに対し、プログラマブルコントローラでのモニタ処理を要求する処理要求を出力し、処理要求に基づくプログラマブルコントローラでのモニタ処理の処理結果が入力されると、入力された処理結果をウィンドウに出力する管理手段とを有し、処理要求は複数のウィンドウそれぞれに対応するプログラマブルコントローラ毎に異なる出力周期で出力され、複数のウィンドウから任意のウィンドウを選択する入力手段と、上記入力手段により上記任意のウィンドウが選択された期間を上記複数のウィンドウそれぞれについて計測するタイマとを有し、前記管理手段は、上記タイマで計測された期間に基づく出力周期で、上記複数のウィンドウそれぞれに対応する各プログラマブルコントローラに処理要求を出力するため、プログラマブルコントローラと管理手段との間で行われる処理要求及び処理結果の交信の総量を抑えることができ、かつ表示手段と管理手段との間で行われる処理結果の通信総量を抑えることができ、この通信総量の多さから生じうるモニタ処理を要求してからその要求に応じた処理結果をウィンドウ上に表示するまでの時間の遅延を防止する処理速度の速いプログラマブルコントローラの周辺装置が得られる。
【０２２８】
この発明にかかるプログラマブルコントローラの周辺装置のモニタ方法は、表示手段に表示された複数のウィンドウそれぞれに対応する各プログラマブルコントローラに対し、プログラマブルコントローラでのモニタ処理を要求する処理要求を、各プログラマブルコントローラ毎に異なる出力周期で出力する第一のステップと、処理要求に基づくプログラマブルコントローラでのモニタ処理の処理結果が出力周期に基づき入力される第二のステップと、入力された処理結果をウィンドウに出力する第三のステップとを有し、入力手段で複数のウィンドウから任意のウィンドウを選択する第四のステップと、タイマで、上記入力手段により上記任意のウィンドウが選択された期間を、上記複数のウィンドウそれぞれについて計測し累積する第五のステップとを有し、第一のステップでは、上記タイマで計測された期間に基づく出力周期で、処理要求が出力されるため、プログラマブルコントローラと管理手段との間で行われる処理要求及び処理結果の交信の総量を抑えることができ、この交信総量の多さから生じうるモニタ処理を要求してからその要求に応じた処理結果をウィンドウ上に表示するまでの時間の遅延を防止する処理速度の速いプログラマブルコントローラの周辺装置のモニタ方法が得られる。
【０２２９】
以上のように、本発明はプログラマブルコントローラの周辺装置に関するものであり、特に有するディスプレイに表示されるモニタ結果の更新速度が速いプログラマブルコントローラの周辺装置及びその周辺装置のモニタ方法に関するものである。
【図面の簡単な説明】
【０２３０】
【図１】この発明のＰＣ周辺装置の構成を示す構成図である。
【図２】この発明のＰＣ周辺装置における制御動作を示すフローチャートである。
【図３】この発明のＰＣ周辺装置における全体モニタ条件を設定するための全体モニタ設定メニューのイメージを示すイメージ図である。
【図４】（Ｉ）この発明のＰＣ周辺装置の全体モニタ条件記憶部２２が有する設定状態テーブルの概念図である。（ＩＩ）この発明の全体モニタ条件記憶部２２が有するプログラム名毎の周期テーブルの概念図である。
【図５】この発明のＰＣ周辺装置における通常のモニタ処理を示すフローチャートである。
【図６】この発明のＰＣ周辺装置において、アクティブウィンドウのみをモニタするモニタ処理を示すフローチャートである。
【図７】この発明のＰＣ周辺装置において、モニタ管理部２５からプログラムモニタ部２６に起動をかけている様子を示す概念図である。
【図８】この発明のＰＣ周辺装置のディスプレイ９におけるアクティブなプログラムＡのウィンドウのみで、モニタ処理の結果が反映されていることを示す概念図である。
【図９】この発明のＰＣ周辺装置における設定周期モニタ処理のフローチャートである。
【図１０】この発明のＰＣ周辺装置において、オペレータが設定周期モニタ処理を選択して任意のモニタ周期を設定した場合の、全体モニタ条件記憶部２２が有するプログラム名毎の周期テーブル及び設定状態テーブルの記録例である。
【図１１】この発明のＰＣ周辺装置において、ウィンドウ毎に異なるモニタ周期で各プログラムのプログラムモニタ部２６に起動がかけられている様子を示す概念図である。
【図１２】この発明のＰＣ周辺装置のディスプレイ９における各ウィンドウで、オペレータにより設定された任意のモニタ周期によるモニタ処理の結果が反映されていることを示す概念図である。
【図１３】この発明のＰＣ周辺装置における自動周期設定モニタ処理のフローチャートである。
【図１４】この発明のＰＣ周辺装置において、オペレータが自動周期設定モニタ処理を選択した時に、ディスプレイ９に更に表示される基準モニタ周期時間テーブルの概念図である。
【図１５】この発明のＰＣ周辺装置において、オペレータが自動周期設定モニタ処理を選択して任意の基準モニタ周期を設定した場合の、全体モニタ条件記憶部２２が有するプログラム名毎の周期テーブル、設定状態テーブル、及び基準モニタ周期時間テーブルの記録例である。
【図１６】この発明のＰＣ周辺装置において、ディスプレイ９上の各プログラムモニタウィンドウに関するアクティブ時間が記録される状態テーブルである。
【図１７】この発明のＰＣ周辺装置において、各ウィンドウそれぞれのアクティブ時間に基づき、所定のモニタ周期で各プログラムのプログラムモニタ部２６に起動がかけられている様子を示す概念図である。
【図１８】この発明のＰＣ周辺装置における自動周期設定モニタ処理の一部であり、全体モニタ条件記憶部２２のプログラム毎の周期テーブルへのモニタ周期データの設定処理を示すフローチャートである。
【図１９】この発明のＰＣ周辺装置におけるアクティブ状態監視テーブルの作成処理を示すフローチャートである。
【図２０】この発明のＰＣ周辺装置におけるアクティブウィンドウ優先のモニタ処理のフローチャートである。
【図２１】この発明のＰＣ周辺装置において、オペレータがアクティブウィンドウ優先のモニタ処理を選択した時に、ディスプレイ９に更に表示されるアクティブウィンドウ優先設定テーブルの概念図である。
【図２２】この発明のＰＣ周辺装置において、オペレータがアクティブ優先のモニタ処理を選択して各種モニタ周期を設定した場合の、プログラム名毎の周期テーブル、設定状態テーブル、及びアクティブウィンドウ優先モニタ周期テーブルの記録例である。
【図２３】この発明のＰＣ周辺装置のディスプレイ９における各ウィンドウで、各ウィンドウがアクティブか否かによりそれぞれ異なるモニタ周期でモニタ処理される様子が示されている概念図である。
【図２４】この発明のＰＣ周辺装置において、各ウィンドウがアクティブか否かによる所定のモニタ周期で各プログラムのプログラムモニタ部２６に起動がかけられている様子を示す概念図である。
【図２５】この発明のＰＣ周辺装置におけるアクティブウィンドウ優先のモニタ処理の一部であり、全体モニタ条件記憶部２２のプログラム毎の周期テーブルへのモニタ周期データの設定処理を示すフローチャートである。
【図２６】この発明のＰＣ周辺装置において、モニタ管理部２５からの起動に基づき動作するプログラムモニタ部２６の処理動作を示すフローチャートである。
【図２７】この発明のＰＣ周辺装置におけるプログラム別モニタ条件を設定するためのプログラム別モニタ設定メニューのイメージを示すイメージ図である。
【図２８】この発明のＰＣ周辺装置において、プログラム別モニタデータの構造を示す構造図である。
【図２９】この発明のＰＣ周辺装置のプログラムモニタ部におけるコイルのみモニタ要求データの作成処理を示すフローチャートである。
【図３０】この発明のＰＣ周辺装置において、コイルのみモニタされたウィンドウの表示例である。
【図３１】（１）この発明のＰＣ周辺装置において、プログラムモニタ部からＰＣに出力されるコイルのみモニタ要求データの具体的データ構造を示す構造図である。（２）ＰＣからプログラムモニタ部に出力されるコイルのみモニタ結果データの具体的データ構造を示す構造図である。
【図３２】この発明のＰＣ周辺装置のディスプレイ９に表示される、コイルのみモニタされたウィンドウの他の表示例である。
【図３３】この発明のＰＣ周辺装置のプログラムモニタ部における指定範囲モニタ要求データの作成処理を示すフローチャートである。
【図３４】この発明のＰＣ周辺装置において、任意の選択範囲のみモニタするウィンドウの表示例である。
【図３５】（１）この発明のＰＣ周辺装置において、プログラムモニタ部からＰＣに出力される選択範囲のみモニタ要求データの具体的データ構造を示す構造図である。（２）ＰＣからプログラムモニタ部に出力される選択範囲のみモニタ結果データの具体的データ構造を示す構造図である。
【図３６】この発明のＰＣ周辺装置のディスプレイ９に表示される、任意の選択範囲のみモニタされたウィンドウの他の表示例である。
【図３７】従来のＰＣの周辺装置の構成を示す構成図である。
【図３８】従来のＰＣ周辺装置におけるキャラクタデータに基づくウィンドウ表示の表示例である。
【図３９】従来のＰＣ周辺装置におけるキャラクタデータの構造を示す構造図である。
【図４０】従来のＰＣ周辺装置におけるキャラクタデータのキャラクタメモリデータ部に記録される１キャラクタメモリデータのデータ構造を示す構造図である。
【図４１】従来のＰＣの周辺装置のプログラムモニタ部１２による従来のＰＣの周辺装置の制御動作を示すフローチャートである。
【図４２】従来のＰＣの周辺装置のプログラムモニタ部１２による従来のＰＣの周辺装置の制御動作を示すフローチャートである。
【図４３】従来のＰＣ周辺装置において、プログラムモニタ部からＰＣに出力されるモニタ要求データのデータ構造、及びＰＣからプログラムモニタ部に出力されるモニタ結果データのデータ構造を示す構造図である。
【図４４】従来のＰＣ周辺装置において、プログラムモニタ部１２からＰＣ１に出力されるモニタ要求データの具体的データ構造、及びＰＣ１からプログラムモニタ部１２に出力されるモニタ結果データの具体的データ構造を示す構造図である。
【図４５】従来のＰＣ周辺装置のプログラムモニタ部におけるモニタ要求データの作成処理を示すフローチャートである。
【図１】
0003699131.tif 000002
【図２】
0003699131.tif 000003
【図３】
0003699131.tif 000004
【図４】
0003699131.tif 000005
【図５】
0003699131.tif 000006
【図６】
0003699131.tif 000007
【図７】
0003699131.tif 000008
【図８】
0003699131.tif 000009
【図９】
0003699131.tif 000010
【図１０】
0003699131.tif 000011
【図１１】
0003699131.tif 000012
【図１２】
0003699131.tif 000013
【図１３】
0003699131.tif 000014
【図１４】
0003699131.tif 000015
【図１５】
0003699131.tif 000016
【図１６】
0003699131.tif 000017
【図１７】
0003699131.tif 000018
【図１８】
0003699131.tif 000019
【図１９】
0003699131.tif 000020
【図２０】
0003699131.tif 000021
【図２１】
0003699131.tif 000022
【図２２】
0003699131.tif 000023
【図２３】
0003699131.tif 000024
【図２４】
0003699131.tif 000025
【図２５】
0003699131.tif 000026
【図２６】
0003699131.tif 000027
【図２７】
0003699131.tif 000028
【図２８】
0003699131.tif 000029
【図２９】
0003699131.tif 000030
【図３０】
0003699131.tif 000031
【図３１】
0003699131.tif 000032
【図３２】
0003699131.tif 000033
【図３３】
0003699131.tif 000034
【図３４】
0003699131.tif 000035
【図３５】
0003699131.tif 000036
【図３６】
0003699131.tif 000037
【図３７】
0003699131.tif 000038
【図３８】
0003699131.tif 000039
【図３９】
0003699131.tif 000040
【図４０】
0003699131.tif 000041
【図４１】
0003699131.tif 000042
【図４２】
0003699131.tif 000043
【図４３】
0003699131.tif 000044
【図４４】
0003699131.tif 000045
【図４５】
0003699131.tif 000046