(57)【要約】【課題】  ＰＬＣのデバッグ機能として、トレース範囲やトレース時間、プログラムのスキャン回数を設定し、動作していない回路情報を抽出することにより、高品質の回路を提供すること。【解決手段】  プログラマブル・コントローラと、サポートツールとして機能するパソコンと、を備えたプログラマブル・コントローラ・システムにおいて、プログラマブル・コントローラは実行するプログラムの各プログラムステップと、対応する実行／非実行を割り付けるメモリ領域を備え、実行されるプログラムをトレースするトレース手段を具備し、当該トレース手段において各プログラムステップの実行／非実行を判定するプログラム実行／非実行判定手段を有し、かつプログラム実行／非実行判定手段の判定結果に対応して、当該プログラムステップに対応するメモリのアドレスに実行ビットをＯＮ／ＯＦＦする手段を備える。【選択図】図１
2007280378.tif 000002
【特許請求の範囲】
【請求項１】
メモリを備えたプログラマブル・コントローラと、当該プログラマブル・コントローラに接続され、サポートツールとして機能するパソコンと、を備えたプログラマブル・コントローラ・システムにおいて、
プログラマブル・コントローラは、
実行されるプログラムの各プログラムステップをトレースするトレース手段と、メモリ内にあって、実行するプログラムの各プログラムステップと各プログラムステップのトレース結果を書き込むメモリ領域と、を具備し、
トレース手段において各プログラムステップの実行／非実行を判定するプログラム実行／非実行判定手段を有し、かつプログラム実行／非実行判定手段の判定結果に対応して、メモリ領域の対応アドレスに実行ビットをＯＮ／ＯＦＦする手段を備え、
パソコンから送信されるデータ送信指示に従い、メモリ内のトレース結果データをパソコン側に送信するデータ送信手段をさらに具備することを特徴とするプログラマブル・コントローラ・システム。
【請求項２】
トレース手段において、トレース対象となるプログラムのトレース範囲を設定するトレース範囲設定手段をさらに具備することを特徴とする請求項１に記載のプログラマブル・コントローラ・システム。
【請求項３】
トレース手段において、トレース対象となるプログラムのトレース回数を設定するトレース回数設定手段をさらに具備することを特徴とする請求項１および２に記載のプログラマブル・コントローラ・システム。
【請求項４】
トレース手段において、トレース対象となるプログラムのトレース時間を設定するトレース時間設定手段をさらに具備することを特徴とする請求項１〜３のいずれかに記載のプログラマブル・コントローラ・システム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、プログラマブル・コントローラに係り、特に当該プログラマブル・コントローラにて実行されるプログラムのデバッグ方法に関する。
【背景技術】
【０００２】
様々な出力機器に接続され、それらの出力機器の動作を制御するプログラムが組みこまれたプログラマブル・コントローラ（以下、「ＰＬＣ」と言う）はよく知られている。そして、当該ＰＬＣにサポートツールを接続したＰＬＣシステムも同様によく知られている。ここで、サポートツールとしては、一般的にパソコンが用いられ、ＰＬＣにて実行されるプログラムの作成、設定、変更等をパソコン側にて行うためのプログラミングツールが組みこまれていると共に、オペレータから当該ＰＬＣにおいて実行されるプログラムのパラメータやプログラム実行命令等を入力する入力端末や、プログラム内容等を表示するための表示装置を兼ねている。プログラミングツールにて作成されたプログラムは、当該サポートツールとＰＬＣのＣＰＵユニットとを接続する通信ケーブル等を介してＰＬＣのＣＰＵユニットへとダウンロードされ、ＰＬＣ側にて実行される。また、サポートツールのプログラミングツールは、ＰＬＣにてプログラムを実行する際に、サポートツール側にてモニタできるように、ＰＬＣのＣＰＵユニットのメモリを読み出して表示装置に表示し、プログラムの処理内容や結果等の様々な情報を表示する機能も有している。
【０００３】
このようなＰＬＣシステムにおいて、ＰＬＣで実行されるプログラムが正常に動作しているか、また、当該プログラムがラダー図で表現される場合は、特定の回路の実行／非実行状態を確認するためのデバッグ機能は不可欠である。そして、プログラミングツールのデバッグ機能としても様々な機能が開発されており、例えば、各種ジャンプを可能とする機能（同一アドレスの接点から出力命令へのジャンプ、出力命令から接点へのジャンプ、指定行コメント付回路へのジャンプ、指定回路番号へのジャンプ）、検索機能（命令語＋指定オペランド／値の組み合わせの検索）、強制セット／リセット機能、微分モニタ機能、停止モニタ機能、タイマ／カウンタの設定値変更機能、クロスレファレンス機能、データトレース／タイムチャートモニタ機能、複数回路のオンラインエディット機能、プログラムの一部分のみのアップロード機能、複数ツールから各々異なるプログラムをオンラインエディットする機能、等が従来より知られている。そして、これらの機能は、特定の回路のデバッグ、または動作確認に使用されるものである。
【０００４】
従来ではこれらの機能を実現するために、（１）プログラミングツールのモニタリング機能のひとつである導通モニタ機能（ＰＬＣ上で実行されているプログラムをパソコンの画面上にラダー図形式で表示するともに、当該ラダー図上の回路の実行状態をＰＬＣから取得し、取得した回路の実行状態をラダー図に重ね合わせて表示するもの）を用いる、（２）プログラミングツールのデータトレース機能を用いる、ということが行われていた（特許文献１参照）。
【特許文献１】特開２００１−１５４７１１号公報
【発明の開示】
【発明が解決しようとする課題】
【０００５】
ところが、上述の（１）プログラミングツールのモニタリング機能における導通モニタ機能においては、回路の実行状態をＰＬＣから取得するために所定の周期でＰＬＣと通信を行なっており、当該周期の途中における回路の実行状態を特定できない、という問題点が指摘されていた。そして、（２）プログラミングツールのデータトレース機能においては、設定したトリガ条件で指定チャンネル、指定接点の状態をトレースするものであり、デバッグ対象のプログラムがラダー図で表現される場合の回路の実行状態をトレースすることできない。そのため、特定回路の実行または非実行を特定することができなかった。
【０００６】
また、これらのデバッグ機能においては、特定回路毎のデバッグを実施することは可能であるが、回路を動作させてデバッグ個所（例えば、入力の繋ぎ間違い、論理の間違い等）を特定する機能は有していなかった。
【０００７】
この発明は、このような従来の問題点に着目してなされたものであり、その目的とするところは、ＰＬＣのデバッグ機能として、トレース範囲やトレース時間、プログラムのスキャン回数を設定し、動作していない回路情報を抽出することにより、回路の品質を向上させることにある。
【０００８】
この発明の他の目的ならびに作用効果については、明細書の以下の記述を参照することにより、当業者であれば容易に理解される筈である。
【課題を解決するための手段】
【０００９】
本発明の実施形態によれば、メモリを備えたプログラマブル・コントローラと、当該プログラマブル・コントローラに接続され、サポートツールとして機能するパソコンと、を備えたプログラマブル・コントローラ・システムにおいて、プログラマブル・コントローラは、実行されるプログラムの各プログラムステップをトレースするトレース手段と、メモリ内にあって、実行するプログラムの各プログラムステップと各プログラムステップのトレース結果を書き込むメモリ領域と、を具備し、トレース手段において各プログラムステップの実行／非実行を判定するプログラム実行／非実行判定手段を有し、かつプログラム実行／非実行判定手段の判定結果に対応して、メモリ領域の対応アドレスに実行ビットをＯＮ／ＯＦＦする手段を備え、パソコンから送信されるデータ送信指示に従い、メモリ内のトレース結果データをパソコン側に送信するデータ送信手段をさらに具備することを特徴とする。
【００１０】
このような構成により、プログラムのトレース後、メモリには実行されたプログラムの各プログラムステップ毎の実行／非実行の判定が執り行われ、その判定結果がメモリ内に対応付けして書き込まれているため、プログラムの実行時に動作していないプログラムステップ（回路）を容易に把握することを可能としたプログラマブル・コントローラ・システムを提供することが可能となる。
【００１１】
また、各プログラムステップの実行／非実行判定の判定結果が書き込まれるメモリのデータをサポートツール（パソコン）側に送信し、パソコンの表示機能を介してオペレータに表示することで、オペレータがプログラムの各プログラムステップ（回路）の実行／非実行を容易に把握することが可能となる。
【００１２】
本発明の実施の形態によれば、トレース手段において、トレース対象となるのプログラムのトレース範囲を設定するトレース範囲設定手段をさらに具備することを特徴とする。
【００１３】
このような構成により、トレース対象となるプログラムの範囲をオペレータが任意に設定することが可能となる。また、この機能により、プログラムの全部、若しくは一部をトレース対象とすることができるため、例えば、プログラムの修正や追加等により、その変更部分のみトレースし、各プログラムステップの実行／非実行を把握することができ、デバッグ作業の効率が飛躍的に向上する。
【００１４】
本発明の実施の形態によれば、トレース対象となるプログラムのトレース回数を設定するトレース回数設定手段をさらに具備することを特徴とする。
【００１５】
このような構成により、トレースの回数（スキャン回数）をオペレータが任意に設定することが可能となる。
【００１６】
本発明の実施の形態によれば、トレース対象となるプログラムのトレース時間を設定するトレース時間設定手段をさらに具備することを特徴とする。
【００１７】
このような構成により、トレースの時間をオペレータが任意に設定することが可能となる。
【発明の効果】
【００１８】
本発明のＰＬＣシステムにおいては、ＰＬＣのデバッグ機能として、トレース範囲やトレース時間、プログラムのスキャン回数を設定し、動作していない回路情報を抽出することにより、回路の品質を向上させたＰＬＣシステムを提供することが可能となる。
【発明を実施するための最良の形態】
【００１９】
以下に、この発明の好適な実施の一形態を添付図面を参照しながら詳細に説明する。尚、以下に説明する実施の形態は、本発明のほんの一例を示すものに過ぎず、本発明の要旨とするところは、特許請求の範囲の記載によってのみ規定されるものである。
【００２０】
本発明におけるＰＬＣシステムのシステム構成図が図１に示されている。同図にて示されるように、このＰＬＣシステムは、ＰＬＣ１と、サポートツールとして機能するパソコン３と、それらを接続する通信ケーブル５とによって概略構成されている。また、ＰＬＣ１には、ファームウェア２１とハードウェア２２とを実装するＣＰＵユニット２が、そして、パソコン３はプログラミングツール４をさらに有するものである。このプログラミングツール４とは、よく知られているように、ＰＬＣにて実行されるプログラムの作成、設定、変更等をパソコン側にて行うためのアプリケーションソフトウェアである。また、ＣＰＵユニット２内に備えられるハードウェア２２とファームウェア２１とは、ＣＰＵユニット２全体の動作を司るものである。
【００２１】
尚、図示しないが、ＰＬＣ１のＣＰＵユニット２は、サポートツールとなるパソコン３のプログラミングツール４とのインターフェースをなすシリアルインターフェースで接続されている。
【００２２】
次に、図２にて、ＰＬＣ１のＣＰＵユニット２におけるハードウェア構成を示すブロック図が示されている。同図にて示されるように、ＣＰＵユニット２は、当該ＣＰＵユニット２全体の動作を司るＭＰＵ（マイクロプロセッサ）２２１を主体として構成されており、このＭＰＵ２２１に、ＲＯＭ２２２、ワークＲＡＭ２２３、データ格納用不揮発性メモリ２２７、並びにＡＳＩＣ２２５が接続されており、またＡＳＩＣ２２５を介してＵＭ（ユーザプログラムメモリ）２２４およびＩＯＭ（Ｉ／Ｏメモリ）２２６に接続している。ここで、ＲＯＭ２２２は、システムファームウェアを格納するメモリであり、ワークＲＡＭ２２３はシステムワークとして利用されるメモリである。そして、ＵＭ２２４はユーザプログラムを格納するメモリであり、ＩＯＭ２２６はその一部を外部機器と接続するための入出力ユニット（図示せず）とのデータ交換用メモリとして使用したり、あるいは、別の一部をユーザプログラム実行時にデータ格納用メモリとして使用される。また、ＡＳＩＣ２２５は、ユーザプログラム（命令）の実行処理、通信インターフェース処理、並びにメモリアクセスバス調停処理等を行うものである。
【００２３】
先に述べたように、ＭＰＵ２２１はＰＬＣ１のＣＰＵユニット２の全体動作を統轄制御するものである。そして、ＲＯＭ２２２には、ＭＰＵ２２１で処理されるシステムプログラムが記憶され、データ格納用不揮発性メモリ２２７にはＵＭ２２４に格納されているユーザプログラムと同一内容のものがバックアップされたユーザプログラムとして記憶されている。また、ワークＲＡＭ２２３には、ＭＰＵ２２１の処理全般にかかる各種データが記憶されている。
【００２４】
そして、ＡＳＩＣ２２５に接続されるＵＭ２２４には、データ格納用不揮発性メモリ２２７に格納されているユーザプログラムと同一内容のユーザプログラムが記憶され、ここから読み出されたユーザプログラムが実行される。ＡＳＩＣ２２５は、ＵＭ２２４からプログラムを順番に読み出し実行し、その実行結果をＩＯＭ２２６へと書き込む。
【００２５】
図３は、サポートツール（パソコン３）のハードウェア構成を示すブロック図である。同図にて示されるように、パソコン３には表示制御用メモリ３１とメモリ３２とＣＰＵ３３とがバス３４を介して接続されている。さらに、メモリ３２には、トレースデータ用データエリア３２１，ユーザプログラムデータエリア３２２，およびプログラミングツールプログラムモジュール３２３が設けられている。また、表示制御用メモリ３１は、パソコン３に接続されるモニタ等の表示装置８に接続されている。バス３４はオペレータが様々な命令や情報を入力するための入力装置９とさらに接続されており、インターフェース（Ｉ／Ｆ）３５を介してＰＬＣ１のＣＰＵユニット２に接続される。
【００２６】
以下に、上述のＰＬＣシステムにおけるＰＬＣ１のＣＰＵユニット２、並びにサポートツール（パソコン３）において実行されるプログラムのデバッグ機能について説明する。
【００２７】
図４は、ＣＰＵユニット２側における全体処理のフローチャートである。同図にて示されるように、先ず、ＰＬＣ１に実装されているユニットの接続状態の認識等の電源ＯＮ時のイニシャル処理が実行される（ステップ４０１）。続いて、ハードウェア、ユーザプログラムメモリのチェックが実行され（ステップ４０２）、チェック結果が正常であれば（ステップ４０３，正常）、ユーザプログラムの実行処理が行われる（ステップ４０６）。ＣＰＵユニットは、ユーザプログラムを実行すると、設定されたサイクルタイムの経過を待ち（ステップ４０７）、サイクルタイムの算出を行う（ステップ４０８）。そして、続いてＩ／Ｏリフレッシュ処理（ステップ４０９）並びに周辺サービス処理（ステップ４１０）が実行され、ステップ４０２に戻り、以後の処理を繰り返す。
【００２８】
ここで、ステップ４０３に戻り、ハードウェア並びにユーザプログラムメモリのチェック結果が異常である場合（ステップ４０３，異常）、各種異常フラグがセットされ（ステップ４０４）、異常内容が判定される（ステップ４０５）。ステップ４０５において運転停止異常（ＰＬＣの運転を継続することができない異常）と判定された場合は、エラー表示用のＬＥＤを点灯後に運転を停止する。一方、ステップ４０５において運転継続異常（ＰＬＣの運転を継続できる異常）と判定された場合は、アラーム表示用のＬＥＤを点滅させつつ、ステップ４０６のユーザプログラムの実行処理へと移行する。
【００２９】
ＰＬＣのＣＰＵユニット２の全体処理としては、よく知られているように、電源ＯＮ時のイニシャル処理（ステップ４０１）、共通処理（ステップ４０２、４０３）、演算処理（ステップ４０６）、サイクルタイム算出処理（ステップ４０７、４０８）、Ｉ／Ｏリフレッシュ処理（ステップ４０９）、そして周辺サービス処理（ステップ４１０）に大別される。そして、通常ＰＬＣのサイクルタイムとは、上記の共通処理、演算処理、サイクルタイム算出処理、Ｉ／Ｏリフレッシュ処理、並びに周辺サービス処理を１サイクルとして表すものである。
【００３０】
続いて、図５および図６を参照して、サポートツールとして機能するパソコン３側、並びにＣＰＵユニット側のデバッグ機能としてのトレース処理の全体動作を説明する。図５には、パソコン３側の処理が示されている。同図にて示されるように、パソコン３は、オペレータが入力装置９を介してトレース実行に必要となるパラメータの入力を待つ（ステップ５０１およびステップ５０１，ＮＯ）。ここで入力されるパラメータは、メモリ３２内のトレースデータ用データエリアに記録される。そして、パラメータの入力があれば（ステップ５０１，ＹＥＳ）、入力されたパラメータをＣＰＵユニット２へと、先に説明したバス３４およびインターフェース３５を介して送信する（ステップ５０２）。続いて、オペレータからのトレース開始指示の入力を待つ（ステップ５０３およびステップ５０３，ＮＯ）。ここでも、オペレータからのトレース開始指示は、パラメータ入力後に上述の入力装置９を介して入力される。そして、オペレータからのトレース開始指示を受けて（ステップ５０３，ＹＥＳ）、ＣＰＵユニット２へとトレース開始指示を送信する（ステップ５０４）。
【００３１】
オペレータからのトレース開始指示がＣＰＵユニット２側に送信されると、ＣＰＵユニット２側は後に詳細に説明するトレース処理を実行する。そして、サポートツール側では、トレース開始指示をＣＰＵユニット２に送信後、ＣＰＵユニット２側におけるトレース完了の確認を行う（ステップ５０５およびステップ５０６，ＮＯ）。ここで言うサポートツール側のトレース完了確認とは、ＣＰＵユニット２側におけるトレース処理が完了したことを示すフラグ（トレース完了フラグ）の状態をＣＰＵユニット２の所定メモリ（例えば、ＩＯＭ２２６）より読み出し確認することにより行われる。そして、トレース完了の確認が取れたら（ステップ５０６，ＹＥＳ）、ＣＰＵユニット２に対してトレースデータの送信を要求する指示を送信する（ステップ５０７）。先に説明したように、ＰＬＣ１のＣＰＵユニット２においては、ＵＭ２２４に記憶されているプログラムをＡＳＩＣ２２５が順番に読み出し実行し、その実行結果をＩＯＭ２２６に記録している。従って、ここで要求されているトレースデータとは、ＩＯＭ２２６に記録されているトレース処理の実行結果を意味する。そして、サポートツールは、ＣＰＵユニット２からのトレースデータの受信を受けて（ステップ５０８，ＹＥＳ）、受信したトレースデータの解析を実行し（ステップ５０９）、そのトレース結果を表示装置８を介してオペレータに表示する（ステップ５１０）。
【００３２】
続いて、ＣＰＵユニット２側の処理を図６を参照しつつ説明する。ＣＰＵユニット２では、先ずトレース実行に必要となるパラメータがパソコン３側から送信されてくるのを待つ（ステップ６０１およびステップ６０１，ＮＯ）。そして、パラメータの送信があれば（ステップ６０１，ＹＥＳ）、受信したパラメータをパラメータメモリに記憶し（ステップ６０２）、続いてパソコン３から送信されるトレース開始指示の受信を待つ（ステップ６０３およびステップ６０３，ＮＯ）。パソコン３からのトレース開始指示の受信後（ステップ６０３，ＹＥＳ）、先に受信したパラメータに従って、後に詳細に説明するトレース・サンプリング処理を実行し、サンプリングして取得したデータをトレースメモリに記憶する（ステップ６０４）。このデータサンプリング処理をトレースが完了するまで繰り返し（ステップ６０５およびステップ６０５，ＮＯ）、トレースが完了すると（ステップ６０５，ＹＥＳ）、トレース完了フラグをセットする（ステップ６０６）。先に説明したように、パソコン３側では、このトレース完了フラグの状態の確認を行っており、トレース完了が確認されるとトレースデータのデータ送信指示をＣＰＵユニット２へと送信するようにされている。そして、ＣＰＵユニット２側では、トレースデータの送信指示がパソコン３側から発行されたことを確認し、当該トレースメモリのトレースデータをパソコン３へと送信する。
【００３３】
次に、上述のＣＰＵユニット２におけるトレース・サンプリング処理を図７〜１２を参照してさらに詳細に説明する。先ず、図７において、ＣＰＵユニット２のトレース・サンプリング処理の全体フローチャートが示されている。同図にて示されるように、トレース・サンプリング処理は、トレース範囲／回数／時間の設定処理が行われる（ステップ７０１）。このトレース範囲／回数／時間の設定処理は、ＣＰＵユニット２の全体処理において共通処理で実行されるように構成すると良い。
【００３４】
ここで、このトレース範囲／回数／時間の各設定処理の詳細が図８〜１０に示されている。図８は、トレース回数（スキャン回数）の設定処理を示すフローチャートである。同図にて示されるように、トレース回数の設定処理は、カウンタ目標値レジスタに所望のトレース回数を設定する（ステップ８０１）、コマンドレジスタのカウンタイネーブル設定（ステップ８０２）、コマンドレジスタの割込みイネーブル設定（ステップ８０３）、そしてコマンドレジスタのカウンタ起動設定（ステップ８０４）を順次実行することにより行なわれる。
【００３５】
また、図９はトレース時間設定処理を示すフローチャートである。同図にて示されるように、トレース時間の設定処理は、タイマ目標値レジスタ設定（ステップ９０１）、コマンドレジスタのタイマイネーブル設定（ステップ９０２）、コマンドレジスタの割込みイネーブル設定（ステップ９０３）、そしてコマンドレジスタのタイマ起動設定（ステップ９０４）を順次実行することにより行なわれる。
【００３６】
そして、図１０はトレース範囲の設定処理を示すフローチャートである。同図にて示されるように、トレース範囲の設定処理は、トレース範囲先頭プログラムステップアドレスの設定（ステップ１００１）と、トレース範囲末尾プログラムステップアドレスを設定する（ステップ１００２）ことにより設定される。
【００３７】
ここで、図７に戻り、上述の処理によりトレース範囲／回数／時間の設定が行われた後に、プログラムの命令実行／非実行の判定が行われる（ステップ７０２）。ここで言うプログラムとは、ＵＭ２２４に格納されているユーザプログラムのことであり、ＡＳＩＣ２２５により順番に読み出され実行されるプログラムである。そして、この命令実行／非実行判定により、プログラム実行と判定された場合（ステップ７０２，ＹＥＳ）、当該プログラムの実行処理に移行する（ステップ７０４）。そして、続いてトレース中であるかどうかの判定が行われ（ステップ７０５）、トレース中であれば（ステップ７０５，ＹＥＳ）、トレースポインタが示すアドレスに実行ビットをＯＮにしてステップ番号を格納する（ステップ７０６）。その後、トレースポインタを次に更新し（ステップ７０７）、残ステップの有無を確認する（ステップ７０８）。
【００３８】
また、ステップ７０２に戻り、プログラムの実行／非実行判定にて非実行と判定された場合（ステップ７０２，非実行）、プログラムの非実行処理が行われ（ステップ７０３）、ステップ７０７のトレースポインタを次に更新し、残ステップの有無を確認するステップ７０８へと移行する。
【００３９】
ステップ７０８に移行し、ここで、残ステップがあると判定された場合（ステップ７０８，ＹＥＳ）、ステップ７０２に戻り、残ステップがなくなるまでトレースポインタの更新を順次行いつつ、上述の処理を繰り返す。そして、残ステップがないと判定された場合（ステップ７０８，ＮＯ）、このトレース・サンプリング処理は完了する。
【００４０】
図１１にて、上記の図７におけるステップ７０２の命令実行／非実行判定の詳細フローチャートが示されている。同図にて示されるように、命令実行／非実行の判定を行うために、先ず命令実行条件の真偽が判定される（ステップ１１０１）。ここで、命令の実行条件が「偽」であると判定された場合（ステップ１１０１，ＹＥＳ）、ＮＯＰ（No Operation）処理（ステップ１１０２）へと移行し、非実行と判定される。尚、ここで言うＮＯＰ処理とは、よく知られているように、マイクロプロセッサの命令の一つであり、何もしないことを表すものである。そして、命令実行条件が「偽」ではない場合（ステップ１１０１，ＮＯ）、続いて命令個別エラーであるかどうかの判定が行われる（ステップ１１０３）。ここで、命令個別エラーであると判定されると、ＮＯＰ処理へと移行し（ステップ１１０４）、非実行と判定される。それに対し、命令実行条件は「偽」ではない（ステップ１１０１，ＮＯ）、並びに命令個別エラーではない（ステップ１１０３，ＮＯ）、という２つの条件が満たされた場合のみ、命令実行という判定が下される。このように、命令のコードや内部の状態に従い、実行／非実行を決定する。
【００４１】
このように、ＰＬＣ１におけるプログラムの実行状態を監視するプログラムのデバッグ方法において、ＵＭ２２４に記憶されたプログラムを順次実行するとき、各プログラムの実行条件判定で、非実行回路と記憶する機能と、実行された回路を記憶する機能を有するプログラムデバッグ方法を有する。また、トレースの条件としてプログラムのトレース範囲およびトレースのプログラム実行時間やプログラムの実行回数（スキャン回数）を設定する方法を有するものである。
【００４２】
図１２は、先に説明したＵＭ２２４対応トレースビットの表を示す図である。同図にて示されるように、この表の縦軸はプログラムステップのアドレスを示し、横軸はビット数を示している。そして、命令のプログラムステップ数分のビット領域が確保されている。また、この領域については、ＡＳＩＣ２２５内部領域、ＩＯＭ２２６、または専用メモリを使用することができる。
【００４３】
そして、図１３にはプログラムパターンの一例が示されている。同図にて示されるように、ＰＬＣにて実行されるプログラムの各プログラムステップ番号（同図における「ステップＮｏ．」欄）に対応して、当該プログラムステップのオブジェクト、ニモニック（mnemonic）表示、並びにＵＭ対応トレースビットが記載されている。尚、同図に示される表の右側のＵＭ対応トレースビット欄にて示されるように、上述の手法による各プログラムステップの命令の実行／非実行の判定結果（ＯＮ／ＯＦＦ、若しくは「操作なし」）が対応するプログラムステップに関連付されて記録されている。尚、同図において、ステップ番号１３および１７のニモニック表示欄に記載されている「Ａ５００．１５」はＯＮとする。
【００４４】
次に、図１４にて、トレーステーブルの使用方法が示されている。同図（ａ）にて示されるのは、先に図１３にて説明したプログラムのトレーステーブルの一例である。ここでは簡略化のために、プログラムのステップ番号（ｎ）、ニモニック表示、並びに実行／非実行判定のみが記載されている。そして、同図（ｂ）にはメモリイメージが示されている。これらの図にて示されるように、プログラムのステップ毎（ｎ、ｎ＋１、ｎ＋２...）にビットが割り付けられている。また、同図（ａ）のトレーステーブルにおけるプログラムのｎステップをｍアドレス：０ビットとし、実行を「１」、非実行を「０」で表している。従って、同図（ｂ）の０ビットアドレス欄には、ｎステップ番号に対応する「実行」が割り付けられ、実行を表す「１」が書き込まれている。他のビットアドレスにも、同様に対応するステップにおける実行／非実行の判定が「１」または「０」にて書き込まれている。これらの図にて示されるように、プログラムステップ番号に対応する実行／非実行判定（ａ〜ｈ）が、メモリイメージの対応するトレースデータアドレスに割り付けられている。尚、この例では、以下の式でビットアドレスが求められる。
ｎステップ／１６＝商（トレースデータアドレス）・・・余り（ビットアドレス）
尚、０ステップでは、先頭アドレスの０ビットとなる。
【００４５】
図１５は、表示装置８の画面表示例を示す図である。この画面例は、サポートツールであるパソコン３を介して接続される表示装置８の表示画面上に表示される画面の一例である。図１５（ａ）はラダー図形式に表示された表示画面の一部を示し、図１５（ｂ）はニモニックウィンドウの表示画面の一部を示している。ＰＬＣにて実行されるプログラムにおいて、上述のトレース処理により、非実行回路であると判定された回路は、同図（ａ）にて示されるように、回路番号の横に符号４０にて示される実行／非実行表示領域に所定の表示を行うことにより明記される。この実行／非実行表示領域に、例えば特定の色を施す、等の処理を行うことにより、対象となる回路が非実行回路であることをオペレータが一見して把握することが可能となる。この場合、オペレータが一見して回路の実行／非実行を把握することができれば良いので、色を施すことのみではなく、そのような視認性が得られるのなら他の手法を用いても良いことは言うまでもない。
【００４６】
また、同図（ｂ）のニモニックウィンドウ画面においても、符号５０が入力フィールドを示し、また符号５１のエクスクラメーションマークが非実行回路を表示している。ここでも、オペレータによって対象となる回路が非実行回路であることが分かれば良いので、エクスクラメーションマーク以外の表示形式を用いても良いことは言うまでもない。このように、オペレータが操作するパソコン３の表示装置８上にて、非実行回路を明確に表示することでプログラムを実行しながら回路の実行／非実行情報を取得することができ、デバッグ作業の効率を飛躍的に高めることが可能である。また、その表示形式においても、ラダー形式とニモニック形式との双方を用いることによって利便性を高めることができる。
【産業上の利用可能性】
【００４７】
以上の説明で明らかなように、本発明によれば、プログラマブル・コントローラのデバッグ機能として、トレース範囲やトレース時間、プログラムのスキャン回数を設定し、動作していない回路情報を抽出することが可能な非実行回路の抽出方法を提供することが可能となる。
【図面の簡単な説明】
【００４８】
【図１】本発明におけるＰＬＣシステムのシステム構成図である。
【図２】ＰＬＣのＣＰＵユニットのハードウェア構成を示すブロック図である。
【図３】サポートツールのハードウェア構成を示すブロック図である。
【図４】ＰＬＣのＣＰＵユニットの全体処理を示すフローチャートである。
【図５】サポートツールのトレース処理を示すフローチャートである。
【図６】ＣＰＵユニット側のトレース処理を示すフローチャートである。
【図７】ＣＰＵユニット側のトレース・サンプリング処理の詳細を示すフローチャートである。
【図８】トレース回数設定処理の詳細を示すフローチャートである。
【図９】トレース時間設定処理の詳細を示すフローチャートである。
【図１０】トレース範囲設定処理の詳細を示すフローチャートである。
【図１１】命令実行／非実行判定処理を示すフローチャートである。
【図１２】ＵＭの対応トレースビットを示す図である。
【図１３】プログラムパターンの一例を示す図である。
【図１４】トレース方法を示す図である。
【図１５】画面表示例を示す図である。
【符号の説明】
【００４９】
１      ＰＬＣ
２      ＣＰＵユニット
３      パソコン（サポートツール）
４      プログラミングツール
５      通信ケーブル
８      表示装置
９      入力装置
２１    ファームウェア
２２    ハードウェア
３１    表示制御用メモリ
３２    メモリ
３３    ＣＰＵ
３４    バス
３５    インターフェース
４０    実行／非実行表示領域
５０    入力フィールド
５１    非実行回路
２２１  ＭＰＵ
２２２  ＲＯＭ
２２３  ワークＲＡＭ
２２４  ＵＭ
２２５  ＡＳＩＣ
２２６  ＩＯＭ
３２１  トレースデータ用データエリア
３２２  ユーザプログラムデータエリア
３２３  サポートツールプログラムモジュール
【図１】
2007280378.tif 000003
【図２】
2007280378.tif 000004
【図３】
2007280378.tif 000005
【図４】
2007280378.tif 000006
【図５】
2007280378.tif 000007
【図６】
2007280378.tif 000008
【図７】
2007280378.tif 000009
【図８】
2007280378.tif 000010
【図９】
2007280378.tif 000011
【図１０】
2007280378.tif 000012
【図１１】
2007280378.tif 000013
【図１２】
2007280378.tif 000014
【図１３】
2007280378.tif 000015
【図１４】
2007280378.tif 000016
【図１５】
2007280378.tif 000017