(57)【特許請求の範囲】
【請求項１】
複数の命令を含むシーケンスプログラムをステップ毎に命令実行するシーケンスプログラム実行部と、
上記シーケンスプログラムの１シーケンススキャン内にデバイス値が変化した場合、デバイス値が変化したデバイス番号及びステップ番号を格納するとともに、シーケンスプログラムのＥＮＤ命令実行時に外部機器の書き込みによりデバイス値が変化した場合、デバイス値が変化したデバイス番号及びステップ番号に加え上記外部機器の種別情報を格納するメモリと、
を備えたことを特徴とするプログラマブルコントローラ。
【請求項２】
請求項１に記載のプログラムコントローラのメモリより格納されている情報を取得し、ＥＮＤ命令実行時に外部機器の書き込みによりデバイス値が変化していた場合には当該外部機器の種別を表示することを特徴とするプログラマブルコントローラの周辺装置。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明はプログラマブルコントローラ（以下、ＰＣと称す）の制御プログラムのデバッグに関わり、特にＰＣ内の動作中の状態を格納するデバイスが、どのタイミングで変化したかをロギングし、ロギング結果をもとに同一デバイスへの重複アクセス箇所の解析、解析結果の表示を行うプログラマブルコントローラ及びその周辺装置に関する。
【０００２】
【従来の技術】
従来のＰＣ内のデバイス値をモニタする動作を、図８のＰＣのデバッグ装置構成図と、図９及び図１０のフローチャートを用いて説明する。
【０００３】
図８は、従来におけるＰＣ内のデバイス値をモニタするデバッグ装置構成を示した構成図である。
図において、１０１はシーケンスプログラムの実行、デバイス値モニタへの応答等を行うＰＣ、１０２はＰＣ１０１内の現在のデバイス値をモニタするＰＣの周辺装置、１０３は周辺装置１０２に接続されデバイス値などのモニタ情報をオペレータに対して表示するためのＣＲＴ等の表示手段、１０４は周辺装置１０２に接続され所定の入力を行う入力手段、例えばキーボードである。
【０００４】
ＰＣ１０１において、１１０はシーケンスプログラムやデバイス値を格納するメモリであり、シーケンスプログラムを格納するプログラムメモリ１１０ａ、デバイス値を格納するデバイスメモリ１１０ｂを有している。
１１１はプログラムメモリ１１０ａに格納されているシーケンスプログラムを読みとり、命令を順次実行し、結果となるデバイス値をデバイスメモリ１１０ｂに格納していくシーケンスプログラム実行部、１１２はＰＣの周辺装置１０２との間でデータの授受を行う周辺Ｉ／Ｆ部である。
【０００５】
ＰＣ周辺装置１０２において、１２０はＰＣ１０１との間でデータの授受を行うＰＣＩ／Ｆ部、１２１はデバイス値をＰＣＩ／Ｆ部１２０及びＰＣの周辺Ｉ／Ｆ部１１２を介してデバイスメモリ１１０ｂから収集するモニタ実行部、１２２はモニタ実行部１２１が収集したデバイス値に従い実際に表示手段１０３にモニタ結果を表示するモニタ結果表示処理部、１２３はキーボード１０４からの入力を処理するキー入力処理部である。
【０００６】
次に、ＰＣのシーケンスプログラム実行部１１１のＰＣ内の現在のデバイス値をモニタする動作について、図９のフローチャートを用いて説明する。
ステップＳ５１にて、プログラムメモリ１１０ａに格納されているシーケンスプログラム内の１命令を実行する。
次にステップＳ５２２で、デバイスメモリ１１０ｂにアクセスし、ステップＳ５１により変化したデバイス値をデバイスメモリ１１０ｂへ格納する。
その後、ステップＳ５３にて、実行した命令がＥＮＤ命令かどうかを判断し、ＥＮＤ命令であればシーケンスプログラムスキャンが完了したので、ステップＳ５４に移行し、ＰＣの周辺装置１０２からのデバイス値要求（ステップＳ６１）が無いかチェックし、デバイス値要求（ステップＳ６１）があれば、ステップＳ５５でデバイス値取得（ステップＳ６２）に基づきＰＣの周辺装置１０２へデバイスメモリ１１０ｂのデータを転送する。
そして、デバイスメモリ１１０ｂのデータ転送が完了したらステップＳ５１の動作へ戻る。
一方、ステップＳ５３にて実行した命令がＥＮＤ命令でない場合や、ステップＳ５４にて周辺装置１０２からのデバイス値要求（ステップＳ６１）がない場合も、再びステップＳ５１の命令実行へ戻る。
この動作を繰り返すことによりプログラムメモリ１０ａに格納されたシーケンスプログラムを実行する。
【０００７】
次に、ＰＣの周辺装置１０２から現在のデバイス値をモニタする動作について、図１０のフローチャートを用いて説明する。
キーボード１０４からモニタ開始指令が入力されると、キー入力処理部１２３によりデバイス値モニタが開始する。
デバイス値モニタ処理を開始すると、デバイス値要求（ステップＳ６１）とデバイス値取得（ステップＳ６２）で、ＰＣ内のデバイスメモリ１１０ｂのデバイス値を取得する。
ＰＣ１０１ではシーケンスプログラム実行部１１１の処理が、ステップＳ５４で示される「周辺装置からの取得要求有り？」の処理に達した時にデバイス値要求を受け付け、ステップＳ５５でＰＣの周辺装置１０２にデバイス値が転送される。
次にステップＳ６３にて、取得したデバイス値をモニタ結果として、モニタ実行部１２１により現在のデバイス値を分析し、モニタ結果表示処理部１２２により表示情報を作成し、モニタ結果として多重アクセス情報と同時に表示手段１０３に表示する。
その後、ステップＳ６４にて、キーボード１０４よりデバイス値モニタ終了要求が有るかをチェックし、デバイス値モニタ終了要求があればデバイス値モニタ処理を終了し、デバイス値モニタ終了要求が無ければステップＳ６１以降の処理を繰り返す。
【０００８】
以上のように、図９及び図１０のフローチャートの処理を繰り返し実行することにより、ＰＣの周辺装置１０２によるＰＣ１０１内のデバイスメモリ１１０ｂのモニタが行われる。
【０００９】
【発明が解決しようとする課題】
従来のＰＣの周辺装置によりＰＣ内のデバイス値をモニタする場合、プログラムの開始から、プログラムの終了を示すＥＮＤ命令が実行されるまでを１シーケンススキャンとし、ＥＮＤ命令実行時にモニタ結果としてデバイス値の現在の状態のみをＰＣの周辺装置に出力している。
そのため、同じデバイスがＯＮ／ＯＦＦを繰り返した場合、あるいは同じデバイスのデバイス値が複数回変化した場合に、ＥＮＤ命令処理直前に実行した処理がデバイスメモリにセットした値のみがモニタ結果として出力される。
このモニタ結果では、“いつ”、“どのようにして”デバイス値が変化したのかを知ることはできず、シーケンスプログラムの動作やデバイス値が複数回変化するような動作をした場合に、“なぜ”デバイス値が変わってしまったのか、あるいは“どのシーケンスプログラム処理により”値が書き換えられてしまったのかを特定することが困難であり、誤ってデバイス値を書き換えてしまっている等のシーケンスプログラムのプログラムミス箇所を検出するのは困難であった。
【００１０】
本発明の目的は、同一デバイスへ複数回アクセスがあった場合（以下、多重アクセスと称す）、多重アクセス時のデバイス番号をロギングし、デバック効率を向上するものである。
また、同一デバイスへ複数回アクセスがあった場合（以下、多重アクセスと称す）、多重アクセス時の外部より値を書き換えた外部機器の情報をロギングし、デバッグ効率を向上するものである。
また、シーケンススキャン毎のデバイス番号のロギングを可能とし、シーケンスプログラムのプログラムミス箇所を容易に検出し、シーケンスプログラムのデバック／修正を容易に行い、デバック効率を向上するものである。
【００１１】
【課題を解決するための手段】
本発明に係わるプログラマブルコントローラは、複数の命令を含むシーケンスプログラムをステップ毎に命令実行するシーケンスプログラム実行部と、上記シーケンスプログラムの１シーケンススキャン内にデバイス値が変化した場合、デバイス値が変化したデバイス番号及びステップ番号を格納するとともに、シーケンスプログラムのＥＮＤ命令実行時に外部機器の書き込みによりデバイス値が変化した場合、デバイス値が変化したデバイス番号及びステップ番号に加え上記外部機器の種別情報を格納するメモリと、を備えたものである。
【００１３】
さらに、デバイス変化記憶領域は、シーケンスプログラムのＥＮＤ命令実行時に、外部機器の書き込みによりデバイス値が変化したデバイス番号の履歴をも格納するものである。
【００１４】
さらにまた、多重アクセス記憶領域にデバイス値が変化したデバイス番号が格納された後、シーケンスプログラムの実行を中断するものである。
【００１６】
また、本発明に係わるプログラマブルコントローラの周辺装置は、プログラムコントローラのメモリより格納されている情報を取得し、ＥＮＤ命令実行時に外部機器の書き込みによりデバイス値が変化した場合に当該外部機器の種別を表示するものである。
【００１８】
【発明の実施の形態】
本発明の実施の形態について、図１のＰＣ及び、ＰＣの周辺装置であるデバッグ装置からなるシステム構成図と、図２及び図３のフローチャートを用いて説明する。
【００１９】
図１は、本発明におけるＰＣ内のデバイス値をモニタするデバッグ装置構成を示した構成図である。
図において、１はシーケンスプログラムの実行、デバイス値モニタへの応答、多重アクセス情報のロギング等を行うＰＣ、２はＰＣ１内の現在のデバイス値及びＰＣ内のデバイスの多重アクセス状況をモニタするＰＣの周辺装置、３は周辺装置２に接続されデバイス値と多重アクセス結果などのモニタ情報をオペレータに対して表示するためのＣＲＴ等の表示手段、４は周辺装置２に接続され所定の入力を行う入力手段、例えばキーボード、５はＰＣ１に接続された外部機器（例えばアナログ入力ユニット等）である。
【００２０】
ＰＣ１において、１０はシーケンスプログラムやデバイス値を格納するメモリであり、シーケンスプログラムを格納するプログラム記憶領域としてのプログラムメモリ１０ａ、デバイス値を格納するデバイス記憶領域としてのデバイスメモリ１０ｂ、実行した命令のステップを格納する実行ステップ格納エリア１０ｃ、シーケンスプログラムがアクセスしたデバイス番号と、そのシーケンスプログラムのステップ番号を格納するデバイス変化記憶領域としてのデバイス変化テーブル１０ｄ、デバイス変化テーブル１０５のデータの中から、同一のデバイスにアクセスしている箇所を格納した多重アクセス記憶領域としての多重アクセステーブル１０ｅを有している。
１１はプログラムメモリ１０ａに格納されているシーケンスプログラムを読みとり、命令を順次実行し、結果となるデバイス値をデバイスメモリ１０ｂに格納していくシーケンスプログラム実行部、１２はＰＣの周辺装置２との間でデータの授受を行う周辺Ｉ／Ｆ部、１３はＰＣ１に接続された外部機器５からの入力をデバイスメモリ１０ｂへ書き込む外部機器アクセス処理部である。
【００２１】
ＰＣ周辺装置２において、２０はＰＣ１との間でデータの授受を行うＰＣＩ／Ｆ部、２１はデバイス値をＰＣＩ／Ｆ部２０及びＰＣの周辺Ｉ／Ｆ部１２を介してデバイスメモリ１０ｂから収集するモニタ実行部、２２はモニタ実行部２１が収集したデバイス値に従い実際に表示手段３にモニタ結果を表示するモニタ結果表示処理部、２３はキーボード４から入力された各種入力を処理しＰＣＩ／Ｆ部２０に入力情報の指示をだすキー入力処理部、２４は多重アクセス結果をＰＣＩ／Ｆ部２０及びＰＣ１の周辺Ｉ／Ｆ部１２を介して、多重アクセステーブル１０ｅに格納されているデータを分析する多重アクセス分析部、２５は多重アクセス分析部２４がデバイス番号を比較した結果、デバイス番号が重複していた場合に、重複した部分を多重アクセスと判断し、表示手段３に多重アクセス結果を表示する多重アクセス結果表示処理部である。
【００２２】
次に、ＰＣのシーケンスプログラム実行部１１の動作について、図２のフローチャートを用いて説明する。
図２のフローチャートは、ＰＣ１がシーケンスプログラムの実行を開始すると同時に実行を開始する。
ＰＣのシーケンスプログラム実行部１１は、ステップＳ１でＰＣの周辺装置２から多重アクセスモニタ開始要求が有るかを判断し、多重アクセスモニタ要求が無ければステップＳ２に移行して、プログラムメモリ１０ａに格納されているシーケンスプログラム内の１命令を実行する。
次にステップＳ３で、デバイスメモリ１０ｂにアクセスし、ステップＳ２により変化したデバイス値をデバイスメモリ１０ｂへ格納する。
その後、ステップＳ４にて、実行した命令がＥＮＤ命令かどうかを判断し、ＥＮＤ命令であればシーケンスプログラムスキャンが完了したので、ステップＳ５に移行し、ＰＣの周辺装置２からのデバイス値要求（ステップＳ３２）が無いかチェックし、デバイス値要求（ステップＳ３２）があれば、ステップＳ６でデバイス値取得（ステップＳ３３）に基づきＰＣの周辺装置２へデバイスメモリ１０ｂのデータを転送する。
そして、デバイスメモリ１０ｂのデータ転送が完了したらステップＳ１の動作へ戻る。
一方、ステップＳ４にて実行した命令がＥＮＤ命令でない場合や、ステップＳ５にて周辺装置２からのデバイス値要求（ステップＳ３２）がない場合も、再びステップＳ１の命令実行へ戻る。
この動作を繰り返すことによりプログラムメモリ１０ａに格納されたシーケンスプログラムを実行する。
【００２３】
なお、ステップＳ１における多重アクセスモニタ開始要求有りの判断処理を設けることにより、オペレータが多重アクセスモニタを実行しない場合のＰＣ１の１スキャン動作の延びを最小限（従来のデバイス値モニタ時と同等）にとどめることが可能である。
【００２４】
ステップＳ１において、ＰＣの周辺装置２より多重アクセスモニタ要求があれば、ステップＳ７に移行し、プログラムメモリ１０ａに格納されているシーケンスプログラム内の１命令を実行し、実行した命令のステップ番号をステップＳ１０で参照するために、ＰＣのメモリ１０内の実行ステップ格納エリア１０ｃへ保存しておく。
なお、実行ステップ格納エリア１０ｃは、図４の様にステップ番号格納エリアにより構成されており、命令実行を繰り返すたびに実行した命令のステップ番号を順次上書きする形で格納する。
【００２５】
次に、ステップＳ８によりデバイスメモリ１０ｂにアクセスし、ステップＳ２により変化したデバイス値をデバイスメモリ１０ｂへ格納する。
その後、ステップＳ９では、ステップＳ７で実行した命令がＥＮＤ命令かどうかを判断を行う。
ステップＳ７で実行した命令がＥＮＤ命令で無い場合は、ステップＳ１０に移行し、シーケンスプログラムがステップＳ７によりデータの書き込みを行った際に併せて取得したデバイス番号をデバイス変化テーブル１０ｄのｎ番地のデバイス番号格納位置へ格納し、その後、ステップＳ１１では、ステップＳ７にて実行ステップ格納エリア１０ｃに保存したステップ番号を同様にデバイス変化テーブル１０ｄのｎ番地のステップ番号格納位置へ格納し、ｎの値を＋１する。
なお、デバイス変化テーブル１０ｄは、図５に示す様に、各番地に応じて、デバイス番号、ステップ番号並びに、予めプログラマブルコントローラ及び外部機器に登録された機器種別情報を格納するアクセス元により構成されており、命令が実行される度にステップＳ１０、ステップＳ１１と同様の処理を繰り返すことによりデバイス番号とステップ番号を格納する。
【００２６】
次に、ステップＳ１２にて、同一のデバイス番号がデバイス変化テーブル１０ｄへ格納されているかを確認するために、シーケンスプログラム実行部により今回格納したデバイス番号と既に格納されているデバイス番号が一致しているかをデバイス変化テーブルの先頭から順番に比較し、デバイス番号が一致するデータが見つかった場合にデバイス番号が重複していたと判断する。
ステップＳ１２にてデバイス番号が重複していた場合に、既にデバイス変化テーブル１０ｄに格納済みであると判断し、ステップＳ１３に移行して、多重アクセステーブル１０ｅへ、今回デバイス変化テーブル１０ｄに格納したデバイス番号とステップ番号を、図６に示すデバイス番号とステップ番号により構成された多重アクセステーブル１０ｅのｍ番地にも同じデータ（デバイス番号、今回検出したステップ番号）を多重アクセステーブルへコピーし、ｍの値を＋１する。
一方、ステップＳ１２にて、デバイス番号が重複していないと判断した場合は、ステップＳ１３における多重アクセステーブル１０ｅへの多重アクセス情報格納処理をスキップし、ステップＳ７の命令実行へ戻り同様の処理を繰り返す。
【００２７】
ステップＳ９において、ステップＳ７で実行した命令がＥＮＤ命令であれば、ステップＳ１４に移行し、外部機器アクセス有りのチェック処理によりアナログ入力ユニット等の外部機器５から外部機器アクセス処理部１３を通してＥＮＤ処理実行時にアナログ入力情報等の書き込みが有ったどうかをシーケンスプログラム実行部のＥＮＤ処理によりチェックする。
チェックの結果、外部機器５からの書き込みがなければ、ステップＳ１９に移行して、周辺装置２からの取得要求有り？のチェック処理を行う。
一方、外部機器５から書き込みがあれば、ステップＳ１５に移行して、外部機器５から外部機器アクセス処理部１３を通してデータの書き込みを行った際に併せて取得したデバイス番号をデバイス変化テーブル１０ｄのｎ番地のデバイス番号格納位置へ格納し、その後、ステップＳ１６にて、アクセスした外部機器種別をデバイス変化テーブル１０ｄのｎ番地のアクセス元格納位置へ格納し、ｎの値を＋１する。
【００２８】
次に、ステップＳ１７にて、同一のデバイス番号がデバイス変化テーブル１０ｄへ格納されているかを、今回格納したデバイス番号と既に格納されているデバイス番号が一致しているかをデバイス変化テーブル１０ｄの先頭から順番に比較し、デバイス番号が一致するデータが見つかった場合にデバイス番号が重複していたと判断する。
ステップＳ１７にてデバイス番号が重複していた場合に、既にデバイス変化テーブル１０ｄに格納済みであると判断し、ステップＳ１８に移行して、多重アクセステーブル１０ｅへ、今回デバイス変化テーブル１０ｄに格納したデバイス番号とステップ番号を、図６に示す多重アクセステーブル１０ｅのｍ番地にも同じデータ（デバイス番号、ステップ番号、アクセス元）を多重アクセステーブルへコピーし、ｍの値を＋１する。
一方、ステップＳ１７にて、デバイス番号が重複していないと判断した場合は、ステップＳ１８における多重アクセステーブル１０ｅへの多重アクセス情報格納処理をスキップし、ステップＳ１９へ移行する。
【００２９】
ステップＳ１９では、ＰＣの周辺装置２がデバイスの多重アクセス情報を表示するために、周辺装置２からデバイス値多重アクセス情報取得要求を行なっているか否かをチェックする。
ステップＳ１９にて、周辺装置２からデバイス値多重アクセス要求（ステップＳ３６）がない場合は、再びステップＳ７へ戻る。
一方、デバイス値多重アクセス情報要求（ステップＳ３６）があれば、周辺装置２へデバイスの多重アクセス情報を転送する必要があるので、ステップＳ２０に移行し、デバイス値多重アクセス情報取得処理（ステップＳ３７）に基づきＰＣの周辺装置２へデバイスメモリ１０ｂのデータと、多重アクセステーブル１０ｅのデータを、周辺Ｉ／Ｆ部１２及びＰＣＩ／Ｆ部２０を介して多重アクセステーブル内の全データを多重アクセステーブルに格納した状態のまま転送する。
【００３０】
ここでＥＮＤ命令時のみステップＳ１９における周辺装置からの取得要求有りのチェック処理を実行するのは、多重アクセスモニタ中もＰＣ１のスキャンタイムを極力延ばさないよう、周辺装置へデバイス値多重アクセス情報転送処理（ステップＳ２０）の処理回数を制限するためである。
【００３１】
ステップＳ２０による処理が完了した場合は、新規に多重アクセス情報を取得するために、ステップＳ２１にて、デバイス変化テーブル／多重アクセステーブル初期化処理を行い、デバイス変化テーブル１０ｄと多重アクセステーブル１０ｅを初期化しすると共に、デバイス変化テーブル１０ｄと多重アクセステーブル１０ｅの格納位置を示すｎ及びｍの値も初期化する。
その後、ステップＳ２２における多重アクセスモニタ終了の判断処理により、周辺装置２から多重アクセスモニタ終了要求（ステップＳ４０）があるかをチェックし、多重アクセスモニタ終了要求があれば、ステップＳ１における多重アクセスモニタ開始チェック処理に戻り同様の処理を繰り返す。
一方、多重アクセスモニタ終了要求が無ければ、ステップＳ７における命令実行処理へ戻る。
この動作を繰り返すことにより、ＰＣ内の動作中の状態を格納するデバイスがどのタイミングで変化したか及び、多重アクセス情報ロギングしながら、シーケンスプログラムを実行する。
【００３２】
次に、ＰＣの周辺装置２の動作について、図３のフローチャートを用いて説明する。
オペレータがＰＣの周辺措置２のキーボード４よりモニタ開始要求を出すことにより図３のフローチャートは開始する。
ステップＳ３１における多重アクセスモニタ要求有りのチェック処理により、オペレータがキーボード４から多重アクセスモニタ要求を出しているかをチェックし、多重アクセスモニタ要求がなければ、デバイス値要求（ステップＳ３２）とデバイス値取得（ステップＳ３３）で、ＰＣ内のデバイスメモリ１０ｂのデバイス値を取得する。
ＰＣ１ではシーケンスプログラム実行部１１の処理が、ステップＳ５で示される「周辺装置からの取得要求有り？」の処理に達した時にデバイス値要求を受け付け、ステップＳ６でＰＣの周辺装置２にデバイス値が転送される。
次にステップＳ３４にて、取得したデバイス値をモニタ結果として、モニタ実行部２１により現在のデバイス値を分析し、モニタ結果表示処理部２２により表示情報を作成し、モニタ結果として多重アクセス情報と同時に表示手段３に表示する。
その後、ステップＳ３５にて、キーボード４よりデバイス値モニタ終了要求が有るかをチェックし、デバイス値モニタ終了要求があればデバイス値モニタ処理を終了し、デバイス値モニタ終了要求が無ければステップＳ３１以降の処理を繰り返す。
【００３３】
なお、多重アクセスモニタ要求有無のチェック処理（ステップＳ３１）を設けることにより、多重アクセスモニタを実行しない場合のＰＣの周辺装置２のデバイスモニタ間隔を従来とどぼ同等の性能で実行可能とする。
【００３４】
ステップＳ３１による多重アクセスモニタ要求有無のチェックの結果、オペレータより多重アクセスモニタ要求がある場合には、ステップＳ３６に移行し、周辺装置２のＰＣＩ／Ｆ部２０及びＰＣ１の周辺Ｉ／Ｆ部１２を通して、多重アクセステーブルに格納された多重アクセス情報の転送をＰＣ１に要求する。
そして、ステップＳ３７における、デバイス値多重アクセス情報取得処理で、周辺装置２のＰＣＩ／Ｆ部２０及び、ＰＣ１の周辺Ｉ／Ｆ部１２を通して、ＰＣ１内のデバイスメモリ１０ｂのデバイス値と、多重アクセステーブル１０ｅの多重アクセス情報を取得する。
ＰＣ１ではシーケンスプログラム実行部１１が、ステップＳ１９に達した時にこの多重アクセス情報要求を受け付け、周辺装置２へデバイス値多重アクセス情報転送処理（ステップＳ２０）でＰＣ１の周辺Ｉ／Ｆ部１２及び、周辺装置２のＰＣＩ／Ｆ部２０を通して、周辺装置２にデバイス値と多重アクセス情報が転送される。
【００３５】
次に、ステップＳ３８におけるデバイス値モニタ多重アクセス情報表示処理により、ステップＳ３７で取得したデバイス値と多重アクセス情報を、多重アクセス分析部２４により多重アクセステーブルの内容を元に、同一のデバイス番号が多重アクセステーブルに複数回登録されているか、複数回登録されていた場合のアクセス元は同一か/異なるか等を分析し、多重アクセス結果表示処理部２５により表示情報を作成してモニタ結果として表示手段３へ表示する。
また、ステップＳ３８における多重アクセス情報表示処理と同時に、モニタ実行部２１により現在のデバイス値を従来技術同様に分析し、モニタ結果表示処理部２２により表示情報を作成し、モニタ結果として多重アクセス情報と同時に表示手段３に表示する。
【００３６】
図７は、多重アクセス情報と現在のデバイス値を併せて表示した表示例を示した図である。
図において、７１はモニタ対象のデバイス番号を格納したデバイス欄、７２はモニタ実行部２１によりモニタした各デバイスの現在のデバイス値を２進数化してＯＮ／ＯＦＦ状態として表示、７３はデバイス変化テーブルに格納されたデバイス番号と現在モニタ中のデバイス番号が一致した場合に、各デバイスに対して値を書き込んだ命令の実行ステップ番号（デバイス変化テーブルのステップ番号）が示される書込みステップ欄、７４は命令実行により多重アクセスが発生した場合（多重アクセステーブルに格納されたデバイス番号と現在モニタ中のデバイス番号が一致した場合）に、該多重アクセスの発生したデバイスの多重アクセスステップ番号（多重アクセステーブルのステップ番号）を表示する多重アクセスステップ表示欄、７５は多重アクセステーブルに格納されたデバイス番号と現在モニタ中のデバイス番号が一致した場合に、多重アクセス実行を行った多重アクセステーブルのアクセス元に格納されたアクセス元（命令実行で多重アクセス発生時はシーケンスプログラム、外部機器から多重アクセス発生時は外部接続機器等）を表示する多重アクセス実行元欄である。
【００３７】
その後、ステップＳ３９における多重アクセスモニタ終了要求ありのチェック処理により、オペレータがキーボード４から多重アクセスモニタ終了要求を出しているかをチェックし、多重アクセスモニタ終了要求がなければ、ステップＳ３６のデバイス値多重アクセス要求の処理以降を繰り返し実行し、多重アクセスモニタ終了要求があれば、ステップＳ４０にて、周辺装置２のＰＣＩ／Ｆ部２０及びＰＣ１の周辺Ｉ／Ｆ部１２を通して多重アクセスモニタ終了要求をＰＣ１に要求する。
ステップＳ４０の多重アクセスモニタ終了要求により、プログラマブルコントローラはステップＳ２２の判断により多重アクセスモニタ処理を終了する。
【００３８】
本実施の形態によれば、シーケンスプログラムの１命令ごとに、デバイスの変化の履歴を格納しておくので、複数回同一デバイスへのデバイス値の書込によりＯＮ／ＯＦＦの状態、ＰＣ内のデバイス値の変化が複数回発生するような動作をした場合、同一デバイスへデバイス値の書込が行われたデバイス番号と多重アクセスを行ったシーケンスプログラムの命令実行ステップ番号を知ることができ、“いつ”、“どのようにして”、“どの命令実行時によって”デバイス値が変化したのかを即座に知ることができる。
そのため、従来の重複アクセス時に“いつ”、“どのようにして”デバイス値が変化したのかを知ることがでず、原因調査が困難であったＰＣの周辺装置に比べ、シーケンスプログラムのプログラムミスの検出を容易にする効果がある。
これにより、ＰＣシステム開発に置けるデバック効率向上が可能となる。
また、ＰＣに接続した外部機器からの書き込み結果についても、“いつ”、“どの外部機器から”デバイス値が書き換えられたかを知ることができ、同様にＰＣを含むシステムの動作に関するミス検出を容易にする効果が得られる。
さらに、シーケンスプログラム実行部のステップＳ１３の処理の後に、重複書き込み発生時にはシーケンスプログラムの実行を中断する処理を設けることにより、重複書き込み発生時には重複書き込みが発生した状態を保持したままプログラム実行を中断し、エラー発生状態を確認することも可能である。
さらにまた、ＰＣまたはＰＣの周辺装置に、デバイスメモリへの書き込み禁止の命令や外部機器情報を登録する多重アクセス禁止命令テーブル及び、多重アクセス禁止機器テーブルを設け、デバイス変化テーブルのアクセス元に登録された命令又は外部機器情報と多重アクセス禁止命令テーブル及び、多重アクセス禁止機器テーブルを比較しながら、重複アクセスモニタを実行することにより、（説明に無いので、実施の形態欄に一例として、説明を追記ください）書き込み禁止命令及び外部機器から書き込みが有った場合に重複書き込みが発生した状態を保持したままプログラム実行を中断し、エラー発生状態を確認することも可能である。
また、本発明ではＰＣ側にて実行しているデバイスの重複チェック処理を、ＰＣの周辺装置側の多重アクセスモニタ処理のステップＳ３３の後に設けることにより、多重アクセスモニタ実行中のＰＣのスキャンタイムへの影響を無くすことも可能である。
【００３９】
【発明の効果】
本発明によれば、複数回同一デバイスへのデバイス値の書込によりＯＮ／ＯＦＦの状態、ＰＣ内のデバイス値の変化が複数回発生するような動作をした場合、同一デバイスへデバイス値の書込が行われたデバイス番号と多重アクセスを行ったシーケンスプログラムの命令実行ステップ番号を知ることができ、“いつ”、“どのようにして”、“どの命令実行時によって”デバイス値が変化したのかを即座に知ることができる。
そのため、シーケンスプログラムのプログラムミスの検出を容易にすることができ、ＰＣシステム開発に置けるデバック効率向上が可能となる。
【図面の簡単な説明】
【図１】  本発明におけるデバッグ装置構成を示した構成図である。
【図２】  本発明におけるＰＣのシーケンスプログラム実行部の動作を示したフローチャートである。
【図３】  本発明におけるＰＣの周辺装置の動作を示したフローチャートである。
【図４】  本発明における実行ステップ格納エリアの構成を示した図である。
【図５】  本発明におけるデバイス変化テーブルの構成を示した図である。
【図６】  本発明における多重アクセステーブルの構成を示した図である。
【図７】  本発明で提案するモニタ結果の表示例である。
【図８】  従来のデバッグ装置構成をしめした構成図である。
【図９】  従来のＰＣのシーケンスプログラム実行部の動作を示したフローチャートである。
【図１０】  従来のＰＣの周辺装置の動作を示したフローチャートである。
【符号の説明】
１  ＰＣ、２  ＰＣ周辺装置、３  表示手段、４  キーボード、５  外部機器、１０  メモリ、１０ａ  プログラムメモリ、１０ｂ  デバイスメモリ、１０ｃ実行ステップ格納エリア、１０ｄ  デバイス変化テーブル、１０ｅ  多重アクセステーブル、１１  シーケンスプログラム実行部、１２  周辺Ｉ／Ｆ部、１３外部機器アクセス処理部、２０  ＰＣＩ／Ｆ部、２１  モニタ実行部、２２  モニタ結果表示処理部、２３  キー入力処理部、２４  多重アクセス分析部、２５  多重アクセス結果表示処理部。
【図１】
0004569011.tif 000002
【図２】
0004569011.tif 000003
【図３】
0004569011.tif 000004
【図４】
0004569011.tif 000005
【図５】
0004569011.tif 000006
【図６】
0004569011.tif 000007
【図７】
0004569011.tif 000008
【図８】
0004569011.tif 000009
【図９】
0004569011.tif 000010
【図１０】
0004569011.tif 000011