(57)【要約】【課題】配列変数の添え字が変数の場合にも配列変数の配列要素のデータトレースを行うことを可能にしたデータトレース装置２０を提供する。【解決手段】サンプリング条件設定部２５０は、配列変数と配列変数の添え字変数を組み合わせて設定可能であり、配列アドレス演算部２２０は、サンプリング条件設定部２５０に設定されたサンプリングを行う変数が配列変数の場合に、配列変数の添え字変数の値にて特定される配列変数の要素のアドレスを計算して配列変数の添え字変数の値とともにサンプリング実行部２１０に設定し、サンプリング実行部２１０は、配列変数の要素のアドレスから配列変数の要素の値を求めて、配列変数の添え字変数の値とともにサンプリング周期毎にサンプリングバッファ２３０に記録し、記録した配列変数の要素の値と配列変数の添え字変数の値とをサンプリング周期毎に並べて表示する。【選択図】図１
2008159004.tif 000002
【特許請求の範囲】
【請求項１】
プログラマブル・ロジック・コントローラの変数の値を一定の周期でサンプリングして記憶するデータトレース装置において、
サンプリングを行う変数とサンプリングの開始および終了条件を設定するサンプリング条件設定部と、
前記サンプリング条件設定部に設定された条件によりサンプリングを行うサンプリング実行部と、
前記サンプリング実行部がサンプリングを行う配列変数のアドレスを演算する配列アドレス演算部と、
サンプリング実行部のサンプリングした結果を記憶するサンプリングバッファと、
を備え、
前記サンプリング条件設定部は、配列変数と配列変数の添え字変数を組み合わせて設定可能であり、
前記配列アドレス演算部は、前記サンプリング条件設定部に設定されたサンプリングを行う変数が配列変数の場合に、配列変数の添え字変数の値にて特定される配列変数の要素のアドレスを計算して前記配列変数の添え字変数の値とともに前記サンプリング実行部に設定し、
前記サンプリング実行部は、前記配列変数の要素のアドレスから配列変数の要素の値を求めて、前記配列変数の添え字変数の値とともにサンプリング周期毎に前記サンプリングバッファに記録し、前記記録した前記配列変数の要素の値と前記配列変数の添え字変数の値とを前記サンプリング周期毎に並べて表示する、
ことを特徴とするプログラマブル・ロジック・コントローラのデータトレース装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、プログラマブル・ロジック・コントローラ（以下ＰＬＣと略す）の特定の信号を一定の周期でサンプリングして記録する、データトレース装置に関する。
【背景技術】
【０００２】
従来、ＰＬＣの特定の信号を一定の周期でサンプリングして記録するデータトレース装置がＰＬＣの信号の状態の変化を知るために利用されている。近年、マイクロプロセッサの性能向上に伴い、シーケンスプログラムを汎用のマイクロプロセッサを使用してインタプリタ方式やコンパイラ方式で実行し、シーケンスプログラム実行中の実データをモニタ可能とする技術が特許文献１に開示されている。
【０００３】
また、近年ＩＥＣ６１１３１−３に準拠し配列変数を使用したＰＬＣプログラムを作成できるＰＬＣが普及しており配列変数をトレースすることに対する要求が強まっている。
【０００４】
従来におけるデータトレース装置が配列変数をトレースする動作の一例を図４〜図７を参照して説明する。
【０００５】
図４は従来のＰＬＣ及びデータトレース装置の一実施例を示すブロック構成図である。図４に示されるＰＬＣ１０及びデータトレース装置２０は、ＰＬＣ実行部１００及びデータトレース部２００で構成されており、ＰＬＣ実行部１００はＣＰＵ１１０、ＰＬＣデータメモリ１２０、ＰＬＣプログラムメモリ１３０で構成されている。また、データトレース部２００はサンプリング実行部２１０、サンプリングバッファ２３０、画面制御部２４０、サンプリング条件設定部２５０、操作入力制御部２６０で構成されている。画面制御部２４０はモニタ画面３００に接続されて画面表示を行い、操作入力制御部２６０はキーボードやマウス等の入力機器３２０に接続されており、入力機器３２０からの入力を受け付ける。
【０００６】
図５は従来における配列変数をトレースする動作の一例を示すフローチャートである。サンプリング条件設定部２５０は入力機器３２０を使って操作入力制御部２６０に入力され、画面制御部２４０に表示されている配列変数名およびサンプリング回数から、配列の先頭アドレスと、配列のデータ型と、配列の添え字の値と、サンプリング回数を求め、前記配列の先頭アドレスと、配列のデータ型と、配列の添え字の値とから配列要素のアドレスを求め、前記サンプリング回数とあわせてサンプリング実行部２１０に設定する（ステップＳ１３１）。
【０００７】
サンプリング実行部２１０は設定された配列要素のアドレスの値をＰＬＣデータメモリ１２０から読み出して、サンプリングバッファ２３０の所定の位置に書き込み（ステップＳ１４０）、設定されたサンプリング回数だけサンプリングを終了するとトレースを終了する。設定されたサンプリング回数に達しない場合はサンプリング回数をカウントアップしステップＳ１４０に戻ってサンプリングを繰り返す（ステップＳ１５０およびステップＳ１６０）。
【０００８】
図６（ａ）および（ｂ）は配列変数を使用したＰＬＣプログラムの例である。図６（ａ）は左母線から２つ目の接点に添え字が定数＝１０の配列変数ARRAYA[]を使用しており、図６（ｂ）は左母線から２つ目の接点に添え字が変数＝ｉの配列変数ARRAYB[]を使用している。
【０００９】
図７は従来のデータトレース装置で図６（ａ）のＰＬＣプログラムの各変数をトレースした結果を表示した画面の例である。画面例４００の左から、信号名称フィールド４１０、データ型フィールド４２０、トレース結果フィールド４３０を表示している。トレース結果フィールド４３０の上部にはサンプリングした周期を識別するための番号が表示される番号フィールド４３２が配置され、その下には各変数のトレース結果が表示される入力フィールド４３４、配列変数フィールド４３６、出力フィールド４３８が配置される。トレース結果フィールド４３０は横方向にスクロールすることができる。図７の例ではトレース結果を数値で表示しているが、数値をもとにグラフにして表示することも可能であることは言うまでもない。
【００１０】
従来のデータトレース装置では図６（ａ）のＰＬＣプログラムの場合はサンプリング条件設定部２５０が配列の先頭要素を格納するアドレスと、配列の添え字の値と、配列のデータ型とからサンプリングする配列要素を格納するアドレスおよび配列要素のデータ型を求めることができるため、配列変数＝ARRAYA[10]のデータトレースを行うことができるが、図６（ｂ）のＰＬＣプログラムの配列変数＝ARRAYB[i]の場合は配列の添え字の値が変数＝ｉの値でありサンプリングの途中で変化してしまうことがあるため、データトレースを行うことができなかった。
【００１１】
【特許文献１】特開２００５−１１５９６９号公報
【発明の開示】
【発明が解決しようとする課題】
【００１２】
従来のデータトレース装置２０はＰＬＣプログラム中の配列変数の添え字が変数の場合に配列変数の配列要素のアドレスを特定することができないため、添え字が定数の場合しか配列変数の配列要素のデータトレースを行うことができないという問題があった。
【００１３】
本発明は上述のような事情からなされたものであり、本発明の目的は配列変数の添え字が変数の場合にも配列変数の配列要素のデータトレースを行うことを可能にしたデータトレース装置２０を提供することにある。
【課題を解決するための手段】
【００１４】
以上のような目的を達成するために、本発明に係るデータトレース装置は、プログラマブル・ロジック・コントローラの変数の値を一定の周期でサンプリングして記憶する、データトレース装置において、サンプリングを行う変数とサンプリングの開始および終了条件を設定するサンプリング条件設定部と、前記サンプリング条件設定部に設定された条件によりサンプリングを行うサンプリング実行部と、前記サンプリング実行部がサンプリングを行う配列変数のアドレスを演算する配列アドレス演算部と、サンプリング実行部のサンプリングした結果を記憶するサンプリングバッファとを備え、前記サンプリング条件設定部は配列変数と配列変数の添え字変数を組み合わせて設定可能であり、前記配列アドレス演算部は前記サンプリング条件設定部に設定されたサンプリングを行う変数が配列変数の場合に、配列変数の添え字変数の値にて特定される配列変数の要素のアドレスを計算して前記配列変数の添え字変数の値とともに前記サンプリング実行部に設定し、前記サンプリング実行部は前記配列変数の要素のアドレスから配列変数の要素の値を求めて、前記配列変数の添え字変数の値とともにサンプリング周期毎に前記サンプリングバッファに記録し、前記記録した前記配列変数の要素の値と前記配列変数の添え字変数の値とを前記サンプリング周期毎に並べて表示することを特徴とする。
【発明の効果】
【００１５】
本発明を用いることにより、次に示す効果を得ることができる。すなわち、配列変数の添え字が変数の場合にも配列変数の要素のデータトレースを行うことが可能になるため、配列変数を含むＰＬＣプログラムの実際の動作を解析することが容易になる。例えば、次のような場合に配列変数を使った効果的なＰＬＣプログラムを組むことができる。
【００１６】
制御対象の動作モード（運転モード／一時停止モード／緊急停止モード等）を配列変数の添え字変数の値として割り当て、添え字変数の値を変更することでＰＬＣプログラムのモードを一括で切り替えることが容易に実現できる。このように配列変数の添え字を変数で使用すれば同じ変数に複数の意味を持たせるといった使い方が可能になる。このような場合に、本発明によれば配列変数の添え字が変数の場合でもデータトレース機能を使ったデバッグができるため、ＰＬＣプログラム中に配列変数を使用した場合のプログラムのデバッグが極めて容易になる効果を得ることができる。
【発明を実施するための最良の形態】
【００１７】
以下、本発明の実施の形態（以下実施形態という）を、図１〜図３に従って説明する。
【００１８】
図１は、本実施形態のＰＬＣ１０およびデータトレース装置２０を図４に対応させて示すブロック構成図である。なお、同一構成箇所には同符号を付して説明を省略する。本実施形態では配列アドレス演算部２２０が新たに追加されている。
【００１９】
図２は本実施形態に係るデータトレース装置２０におけるサンプリング実行部２１０および配列アドレス演算部２２０の動作の一例を示すフローチャートである。なお、図５と同一構成箇所には同符号を付して説明を省略する。
【００２０】
サンプリング条件設定部２５０は、サンプリングする変数が配列変数の場合、配列の先頭要素を格納するアドレスと、配列のデータ型と、配列の添え字の値または配列の添え字の値を格納するアドレスと、配列の添え字種別のデータ型と、サンプリング回数を求め、配列アドレス演算部２２０に設定する。配列の添え字種別のデータ型には、配列の添え字が定数（数値）であるか、または変数であるかが設定され、変数の場合には、添え字のデータ型が設定されるものとする（ステップＳ１００）。
【００２１】
配列アドレス演算部２２０は設定された配列の添え字が定数か変数かを判定して、変数の場合はステップＳ１２０に進み、定数の場合はステップＳ１３０に進む（ステップＳ１１０）。
【００２２】
次に配列アドレス演算部２２０は前記配列の添え字が変数の場合は、設定された配列の添え字の値を格納するアドレスと、添え字のデータ型をもとに、ＰＬＣデータメモリ１２０から添え字の値を読み出して求める（ステップＳ１２０）。すなわち、配列アドレス演算部２２０は、ＰＬＣデータメモリ１２０内の配列の添え字の値を格納するアドレスへアクセスし、添え字のデータ型（データサイズなど）に基づいて当該アクセス先のアドレスから配列の添え字の値を読み出して求める。
【００２３】
さらに、求めた添え字の値と、前記配列の先頭要素を格納するアドレスと、配列のデータ型とからサンプリングする配列要素を格納するアドレスを求める。例えば、求めた添え字の値がｉ＝５で、先頭要素のアドレスが１０００番地であり、添え字を０以上の整数とした場合、配列のデータ型が配列要素１についてアドレス１番地であれば、先頭要素のアドレスに添え字の値を加算することで、サンプリングする配列要素のアドレスは、１００５番地と求められる。添え字が定数の場合も同様にして配列要素を格納するアドレスを求める。求めた配列要素のアドレスは添え字の値とともにサンプリング実行部２１０に設定する。（ステップＳ１３０）。
【００２４】
サンプリング実行部２１０は設定された配列要素のアドレスより、ＰＬＣデータメモリ１２０から配列要素の値を読み出して、前記添え字の値とともにサンプリングバッファ２３０の所定の位置に書き込み、設定されたサンプリング回数だけサンプリングを終了するとトレースを終了する（ステップＳ１５０）。
【００２５】
設定されたサンプリング回数に達しない場合はサンプリング回数をカウントアップしステップＳ１１０に戻ってサンプリングを繰り返す（ステップＳ１５０およびステップＳ１６０）。
【００２６】
図３は本発明のデータトレース装置で図６（ｂ）のＰＬＣプログラムの各変数をトレースした結果を表示した画面の一例を図７に対比して示した例である。画面には、信号名称フィールド４１０、データ型フィールド４２０、トレース結果フィールド４３０が示される。トレース結果フィールド４３０には、入力フィールド４３４、配列変数フィールド４３６、出力フィールド４３８の他に、配列変数＝ARRAYB[i]の添え字変数＝ｉが表示される添え字変数フィールド４３７が示される。
【００２７】
以上のように本発明によれば配列変数のサンプリングを行う際にサンプリングの都度、配列要素を格納するアドレスの値を計算するため、配列変数の添え字が変数の場合もデータトレースを行うことが可能である。なお、以上は1次元配列についての実施例であるが、多次元配列についても同様にして配列変数の添え字が変数の場合にもデータトレースを行うことが可能である。
【図面の簡単な説明】
【００２８】
【図１】本発明におけるＰＬＣ及びデータトレース装置の一例を示すブロック構成図である。
【図２】本発明におけるデータトレース装置のサンプリング実行部２１０及び配列アドレス演算部２２０の動作の１例を示すフローチャートである。
【図３】本発明におけるデータトレース装置のサンプリング結果を表示したモニタ画面の１例である。
【図４】従来のＰＬＣ及びデータトレース装置の一例を示すブロック構成図である。
【図５】従来のデータトレース装置のサンプリング実行部２１０及び配列アドレス演算部２２０の動作の１例を示すフローチャートである。
【図６】配列変数を含むＰＬＣプログラムの１例である。
【図７】従来のデータトレース装置のサンプリング結果を表示したモニタ画面の１例である。
【符号の説明】
【００２９】
１０    ＰＬＣ、２０    データトレース装置、１００  ＰＬＣ実行部、１１０  ＣＰＵ、１２０  ＰＬＣデータメモリ、１３０  ＰＬＣプログラムメモリ、２００  データトレース部、２１０  サンプリング実行部、２２０  配列アドレス演算部、２３０  サンプリングバッファ、２４０  画面制御部、２５０  サンプリング条件設定部、２６０  操作入力制御部、３００  モニタ画面、３２０  入力機器。
【図１】
2008159004.tif 000003
【図２】
2008159004.tif 000004
【図３】
2008159004.tif 000005
【図４】
2008159004.tif 000006
【図５】
2008159004.tif 000007
【図６】
2008159004.tif 000008
【図７】
2008159004.tif 000009