(57)【特許請求の範囲】
【請求項１】
シーケンサのユーザプログラムを試験するためのデータトレースにおいて、シーケンサ本体にデータメモリより容量の大きいトレースメモリを設け、前記データメモリの全部をプロセッサによりこのトレースメモリに転送し、該トレースメモリへの転送処理は、ローダの指令又はユーザプログラムの指令により停止、再開するようにするとともに、停止後、ローダからの指令でトレースメモリの内容をローダにロードできるようにしたシーケンサのデータトレース方法であって、
前記プロセッサは、データトレース処理を実行する第１のプロセッサと、ユーザプログラムを実行する第２のプロセッサとに機能を分割し、
前記第２のプロセッサにデータメモリコピーエリアを接続し、この第２のプロセッサがアイドル状態でデータメモリからデータメモリコピーエリアにデータを転送し、該転送においては、
入出力データは一括転送し、その他のデータは分割して転送をするようにしたことを特徴とするシーケンサのデータトレース方法。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、シーケンサ（プログラマブルコントローラ）のデータトレース方法に関する。
【０００２】
【従来の技術】
従来、シーケンサのユーザプログラムの試験を行う場合、データトレース機能が用いられる。このデータトレース機能は、シーケンサにプログラミングツール（通称ローダ）を接続し、ローダからトレースしたいメモリアドレスを指定することで、シーケンサが指定データの変化を調べ、変化のあった時刻およびデータ内容をローダに通知して、ローダがその内容を画面にタイムチャート等の形式で表示するものである。
【０００３】
ローダから指定する項目は、
（１）対象となるデータの単位（ビット，ワード，倍精度）とアドレス。
【０００４】
（２）対象となるデータの数
（３）トレースの開始と中断および再開
（４）トレース結果のリード
これらの指定を組み合わせて、データトレース処理を実現する。
【０００５】
【発明が解決しようとする課題】
上記のデータトレースを行う場合、ユーザプログラムが短く、処理が簡単な場合には、前記のデータトレース機能だけでも十分であり、また、現象に再現性がある場合もデータトレース機能で対応できる。
【０００６】
しかし、次の場合は、上記のデータトレース機能では対応できない。
【０００７】
（１）ユーザプログラムが複雑で対象となるデータ数が非常に多い場合、この場合は、ローダで同時に指定できるデータ数に限りがあるため、多くのデータを参照しようとしても、一度にはできないことになる。
【０００８】
（２）現象に再現性がない場合、この場合は、一過性の現象であれば、ローダを使ってデータトレースをすることができない。
【０００９】
以上の点に鑑み本発明の目的は、ユーザプログラムが複雑で対象となるデータ数が多い場合でも、また現象に再現性がない場合でも、データトレースができるようにすることにある。
【００１０】
【課題を解決するための手段】
本発明において上記の課題を解決するための手段は、シーケンサのユーザプログラムを試験するためのデータトレースにおいて、シーケンサ本体にデータメモリより容量の大きいトレースメモリを設け、前記データメモリの全部をプロセッサにより常時このトレースメモリに転送し、該トレースメモリへの転送処理は、ローダの指令又はユーザプログラムの指令により停止、再開するようにするとともに、停止後、ローダからの指令でトレースメモリの内容をローダにロードできるようにするものである。
【００１１】
このように、トレースメモリはデータメモリに比べて非常に大きいものを使用しているので、対象となるデータ数が多く、複雑であってもデータトレース機能は発揮でき、また、常にデータメモリとの内容をトレースメモリに転送し、データトレースを行っているので、一過性の現象でも、データの取りこぼしを生ずることはない。
【００１２】
また、上記のプロセッサを、データトレース処理を実行する第１のプロセッサと、ユーザプログラムを実行する第２のプロセッサに機能を分割し、データメモリがこの両プロセッサからアクセス可能な２ポートメモリとして、ユーザプログラム処理の高速化を図る。
【００１３】
更に、上記の第２のプロセッサにデータメモリコピーエリアを接続し、この第２のプロセッサがアイドル状態でデータメモリからデータメモリコピーエリアにデータを転送するようにし、また、このデータメモリからデータメモリコピーエリアへのデータの転送は、入出力データは一括転送し、その他のデータは分割して転送するようにして演算速度の向上と、トレースメモリの使用効率の向上を図る。
【００１４】
そして、ローダには、トレースメモリのデータを使用して、各指定データの変化をタイムチャート形式で表示したり、トレースメモリのデータおよびユーザプログラムを使用して、ユーザプログラムの動作又はデータの状態変化を時系列に表示したり、通常状態でのトレースデータとトラブル発生時のトレースデータの比較を行い、その違いを表示できるようにする。
【００１５】
【発明の実施の形態】
以下、本発明の実施の形態を図面によって説明するに当たり、一般的なシーケンサのデータトレース方法を、まず説明する。
【００１６】
図１はシーケンサのデータトレース方法のフロー図で、図１において、１はデータメモリ、２はプロセッサ、３はトレースメモリ、４はローダを示し、常時、演算終了時にデータメモリ１の内容をプロセッサ２によってトレースメモリ３に転送するようにする。トレースメモリ３は、データメモリ１の容量に比べて相当大きいものを使用し、データメモリ１のデータを順番に格納する。また、トレースメモリ３へのデータ転送の中止はローダ４からの指令およびシーケンサのユーザプログラムからの指令によるものとし、再開も同様とする。また、トレースメモリ３のデータはローダ４にアップロードできるようにする。
【００１７】
ローダ４では、トレースメモリ３のデータを使用して、各指定データの変化をタイムチャート形式で表示できるようにし、また、トレースメモリ３のデータおよびユーザプログラムを使用して、ユーザプログラムおよびデータの状態変化を時系列順に表示できるようにするとともに、通常状態でのトレースデータとトラブル発生時のトレースデータの比較を行い、その違いを表示できるようにする。
【００１８】
上記のように、図１に示すデータトレースでは、データトレースをローダから指令されたとき、シーケンサが行うのではなく、常にデータトレースを行っているので、一過性の現象でも、データの取りこぼしがない。
【００１９】
図２は本発明の実施の形態を示すフロー図で、ユーザプログラム処理を高速化するために、プロセッサを、データトレース処理を実行する第１のプロセッサ２-1と、ユーザプログラムを実行する第２のプロセッサ２-2に機能を分割したものである。
【００２０】
第２のプロセッサ２-2の演算と第１のプロセッサ２-1との間に同期用信号を設けて、演算処理とトレース処理の同期をとる。
【００２１】
本発明の実施の形態では、第１のプロセッサ２-1と第２のプロセッサ２-2との間にデータメモリコピーエリア５を設け、第２のプロセッサ２-2はアイドル状態（演算していない状態）で、データメモリ１からデータメモリコピーエリア５にデータ転送を行うようにする。このとき、全データを転送（コピー）するのではなく、入出力データは一括コピーし、その他のデータは分割してコピーするようにして処理の高速化を図るようにする。
【００２２】
上記のようにすることにより、演算速度が向上し、更に、データメモリの転送を常に全部行うよりもトレースメモリの使用効率が向上する。
【００２３】
上記の実施の形態において、トレースメモリ３には、最新のトレースデータが格納されていることになる。データトレースが必要になるときは、システムに何等かのトラブル（故障）が発生するときであり、それはユーザプログラムで認識できる場合が多い。よって、ユーザプログラムでそのタイミングを指定し、データトレースを停止するようにする。（勿論、ローダからの停止も可能）このようにすることで、トレースメモリにはトラブル発生までのすべての情報（データ）が記憶され、この状態で、ローダからの指令によって、トレースメモリの内容をローダにロードできるようになる。
【００２４】
後はローダ側で、時系列にデータ表示が可能となり、ローダにはデータメモリの全データが格納されているので、次に示す処理が可能となる。
【００２５】
（ａ）指定データのデータトレース処理（これまでのデータトレースと同じ）
（ｂ）プログラムをモニタしながらのトレース
ユーザプログラムのある部分を表示して、ある時点のプログラムの動作状態をトレースメモリを参照しながら表示する。ユーザの操作によって時系列にプログラムの動作を表示する。
【００２６】
（ｃ）あるデータが変化した時刻のデータメモリの状態の表示
問題となっているデータが検出された時点での他のデータの表示を行う。これはトラブル結果になったデータがどのようなデータを基にしているかを調べるために用いられる。つまり、そのタイミングで変化したデータを表示する機能である。
【００２７】
（ｄ）通常時との相違チェック
システムが正常動作している時のトレースメモリの内容をあらかじめセーブしておき、トラブル発生時のトレースメモリの内容と比較する機能を用意する。これにより、通常との違いにより起きた原因が明瞭となる。
【００２８】
【発明の効果】
以上のように本発明は、従来のようにデータトレースをローダから指定されたときに、シーケンサが処理を行うのではなく、常時演算終了時にデータメモリの内容をトレースメモリに転送し、常にデータトレースを行っているので、次の効果を奏する。
【００２９】
（１）一過性の現象でもデータの取りこぼしがない。このことは、大規模なシステムになればなるほど、現象に再現性がなくなり、且つ、再現試験を実施する機械もないので、極めて優れた効果となる。
【００３０】
（２）データメモリの全体をトレースメモリにトレースしているので、個別で指定するデータに限りがある従来方式に比べてデータを取りこぼすことがない。
【００３１】
（３）トレースメモリとローダのディスク等にセーブすることにより、何度でもデータ参照が可能となる。
【００３２】
（４）ローダにセーブしたトレースデータとユーザプログラムを結び付けることにより、データの変化したプログラムを表示しながら、データがどのように変化して行くかをみることができる。
【図面の簡単な説明】
【図１】シーケンサのデータトレース方法のフロー図。
【図２】本発明の実施の形態のフロー図。
【符号の説明】
１…データメモリ
２-1…第１のプロセッサ
２-2…第２のプロセッサ
３…トレースメモリ
４…ローダ
５…データメモリコピーエリア
【図１】
0003543516.tif 000002
【図２】
0003543516.tif 000003