(58)【調査した分野】(Int.Cl.,DB名)
前記出力部は、さらに、前記ラダープログラムの実行周期における、前記トレース対象の構成要素に係るラダー回路に含まれるすべての信号の状態を含むトレース結果を時系列で出力する、請求項1に記載のトレース装置。
前記出力部は、前記ラダープログラムの指定された実行周期における前記トレース対象の構成要素に係るラダー回路のラダー図を前記表示器に出力する、請求項3に記載のトレース装置。
【発明の概要】
【発明が解決しようとする課題】
【0005】
通常、トレースサンプリング周期はラダープログラムの実行周期と同期している。このため、トレース対象となる信号は、当該信号の書き込まれたネットを含むラダープログラムの実行直後(実行周期時)の信号がトレースサンプリング周期に対応する時刻の信号として表示される。例えば、トレース対象のコイルの信号(以下「更新信号」ともいう)が存在するネット中で参照される接点の信号の状態(以下「参照信号」ともいう)が、当該ネットが実行された後に別のネットにおいて書込まれた場合、当該トレースサンプリング周期(ラダープログラム実行周期)に対応する時刻におけるトレースサンプリング結果を見ると、トレース対象のネット内の接点(参照信号)とコイル(更新信号)の関係に矛盾が生じる場合がある。
【0006】
矛盾が生じる様子を具体的に
図4A〜
図4Dを参照して説明する。
図4Aには、ラダープログラム及び実行順信号テーブルを例示する。
図4Bには、トレースサンプリング周期の1周期目と2周期目のトレース結果を示す。
図4Cには、1周期目及び2周期目における各信号の状態を示すトレースグラフを示す。
図4Dには、2周期目のネット番号100のラダー図を示す。
図4B及び
図4Cに示すように、2周期目にネット番号100のネットが実行されると、参照信号であるA及びBがいずれもオンであることから、トレース対象となる信号Cはオンとなる。ところが、ネット番号100のネットが実行された後にネット番号151のネットが実行されるため、信号Bがオフとなる。このため、2周期目のトレースサンプリング周期(ラダープログラムの実行周期)に対応する時刻におけるネット番号100のトレース結果をラダー図で表示すると、
図4Dに例示するように、接点Bの信号の状態(参照信号)とコイルCの信号の状態(更新信号)との関係に矛盾が生じる。
このように、複雑なラダープログラムにおいて、例えば、トレース対象のコイルが存在するネット中の参照される接点の信号の状態が、当該ネットが実行された後に別のネットにおいて更新された(書込まれた)場合、トレースサンプリング周期(ラダープログラムの実行周期)時の信号の状態に基づいて当該ネットの信号の状態をラダー図に表示すると、例示したラダープログラムのように矛盾を生じる可能性がある。
そうすると、ユーザは、信号の変化とラダーの実行順序の関係を把握することが必要となる。しかしながら、複雑なラダープログラムにおいて、信号の変化とラダーの実行順序の関係を把握することはユーザにとって困難である。
【0007】
この点、特許文献3には、PLCのデバッグ支援プログラムの表示画面において、表示画面100中の上半分に、ユーザプログラムを表示する回路モニタ表示領域110が設けられ、下半分にトレンドグラフを表示するトレンドグラフ表示領域120が設けられ、下半分のトレンドグラフ上のカーソルの移動と連動して、回路モニタ表示領域110で回路モニタ表示上のデバイスの値を表示することが開示されている。
しかしながら、特許文献3には、前述した課題とその対策については、記載も示唆もなく、複雑なラダープログラムにおいて、トレースサンプリング周期に対応するトレース対象のネットのラダー図を表示した場合、例示したラダープログラムと同様に矛盾が生じる可能性がある。
【0008】
本発明は、トレース対象の構成要素(例えばネット又はコイル)に係るラダー回路の実行直後の信号状態を表示することを可能としたトレース装置又はトレース機能を備えたプログラマブルコントローラを提供することを目的とする。
【課題を解決するための手段】
【0009】
(1)本発明は、複数のラダー回路を含むラダープログラムを実行するプログラマブルコントローラ(例えば後述の「PLC400」)に通信可能に接続されるトレース装置(例えば後述の「トレース装置100」)であって、前記ラダープログラムの実行時におけるトレース対象の構成要素(例えば後述の「ネット」又は「コイル」)を1つ以上設定するトレース対象設定部(例えば後述の「トレース対象設定部112」)と、前記ラダー回路が実行される順序を解析するラダープログラム解析部(例えば後述の「ラダープログラム解析部111」)と、指定された前記ラダープログラムの実行周期における前記トレース対象の構成要素に係るラダー回路のラダー図を出力する出力部(例えば後述の「出力部115」)と、前記トレース対象の構成要素に係るラダー回路の実行される実行順序と、前記ラダー回路に含まれる接点の信号の状態が更新される実行順序と、に基づいて、前記ラダー回路に含まれる接点の信号の状態の補正要否を判定する補正判定部(例えば後述の「補正判定部114」)と、を備え、前記出力部は、前記補正判定部により、前記ラダー回路に含まれる接点の信号の状態の補正が必要と判定された場合、前記ラダー回路に含まれる接点の信号の状態を1つ前の実行周期のトレース結果に基づいて補正した前記ラダー図を出力する、トレース装置に関する。
【0010】
(2) (1)に記載のトレース装置において、前記出力部は、さらに、前記ラダープログラムの実行周期における、前記トレース対象の構成要素に係るラダー回路に含まれるすべての信号の状態を含むトレース結果を時系列で出力するようにしてもよい。
【0011】
(3) (1)または(2)に記載のトレース装置において、前記出力部は表示器(例えば後述の「表示部140」)に出力するようにしてもよい。
【0012】
(4) (3)に記載のトレース装置において、前記出力部は、前記ラダープログラムの指定された実行周期における前記トレース対象の構成要素に係るラダー回路のラダー図を前記表示器に出力するようにしてもよい。
【0013】
(5) (1)から(4)までのいずれかに記載のトレース装置は、前記プログラマブルコントローラに含まれるようにしてもよい。
【発明の効果】
【0014】
本発明によれば、トレース対象の構成要素に係るラダー回路の実行直後の信号状態を表示することを可能としたトレース装置又はトレース機能を備えたプログラマブルコントローラを提供できる。
【発明を実施するための形態】
【0016】
(第1実施形態)
まず、本発明の1つの実施形態の概略を説明する。本実施形態は、ラダープログラムに基づいて信号の入出力を行うPLCに通信可能に接続されたトレース装置100であって、トレース対象の構成要素(ネット)に係るラダー回路に含まれる接点の信号の状態(参照される信号)が当該ラダー回路の実行後に、後続の別のラダー回路により書き込まれた場合であっても、当該トレースサンプリング周期における当該ラダー回路のラダー図を表示するとき、当該接点の信号の状態(参照される信号)を当該サンプリング周期の1つ前の周期のトレース結果で補正することで、当該ラダー回路の実行直後の信号状態を表示することを可能としたトレース装置100に関する。以下の説明では、構成要素としてネットを例示する。特に断らない限り、本実施形態においては、構成要素はネットを指すものとする。
【0017】
次に、本実施形態におけるトレースシステム1000及びトレース装置100の構成について、
図1を参照して説明をする。
図1は、本実施形態の基本的構成の概略図及びトレース装置100の機能ブロック図である。
本実施形態の基本的構成として、
図1に示すトレースシステム1000は、トレース装置100と、PLC(プログラマブルコントローラ)400とを備えている。
トレース装置100と、PLC400とは、例えば、接続インタフェースを介して、通信可能に接続されている。なお、トレース装置100と、PLC400とは、直接又はネットワークを介して接続されてもよい。なお、PLC400は、例えば数値制御装置(図示せず)に含まれてもよい。
【0018】
[PLC400]
PLC400は、ラダープログラム等のシーケンス制御プログラムを実行して、信号の入出力を行う装置である。PLC400は、ラダープログラムにしたがって各種制御や演算処理、通信処理を行うためのCPUやメモリ、通信部等を備えるが、これらの機能は、当業者にとって公知であり、説明及び図示を省略する。
【0019】
[トレース装置100]
トレース装置100は、PLC400で実行されるラダープログラムに含まれる構成要素(ネット)のうち、トレース対象とする構成要素が1つ以上設定されると、ラダープログラムの実行周期毎にトレース対象として設定された構成要素に係るラダー回路のラダー図を出力する。
図1に示すように、トレース装置100は、制御部110と、記憶部120と、入力部130と、表示部140と、通信インタフェース部150と、を備える。
制御部110は、例えばCPU(中央処理装置)であって、記憶部120に記憶されたトレース装置100を制御する各種のプログラムを実行することにより、トレース装置100を統括制御する。制御部110の機能の詳細については、後述する。
【0020】
記憶部120は、制御部110により実行されるプログラム等を記憶する記憶領域である。記憶部120は、プログラム記憶部121と、構成要素記憶部122と、トレースデータ記憶部123と、テーブル記憶部124と、を備える。
プログラム記憶部121は、例えば、上述した制御部110の各種機能を実行するプログラムを記憶する記憶領域である。
構成要素記憶部122は、入力部130を介してトレース対象として設定された構成要素を記憶する記憶領域である。
トレースデータ記憶部123は、取得したトレースデータを記憶する記憶領域である。
テーブル記憶部124は、ラダープログラムが実行された場合に、どのような順番でラダー回路が実行されていくかを示す実行順信号テーブル1241を記憶する記憶領域である。
【0021】
入力部130は、例えば、キーボード、マウス、スイッチボタン等の各種ボタン等の入力装置である。
表示部140は表示装置であり、例えば、CRT(Cathode Ray Tube)やLCD(Liquid Crystal Display)等により構成される。
なお、入力部130と表示部140とが一体になったタッチパネルや、表示器を備えてもよい。
通信インタフェース部150は、例えば、RS232C用コネクタ等の所定のコネクタによって構成され、PLC400との間で直接接続するための通信制御デバイスである。
【0022】
制御部110は、例えばCPU(中央処理装置)であって、記憶部120に記憶されたトレース装置100を制御する各種のプログラムを実行することにより、トレース装置100に所定の機能部(以下、「トレース制御機能部」と総称する)として機能させる。
制御部110(トレース制御機能部)は、任意のトレースサンプリング周期において、トレース対象とする信号の存在するネットのラダー図を表示するとき、当該ネットの実行直後の信号状態を表示することを可能とする。
このため、制御部110は、ラダープログラム解析部111と、トレース対象設定部112と、トレースデータ取得部113と、補正判定部114と、出力部115と、を備える。
【0023】
[ラダープログラム解析部111]
ラダープログラム解析部111は、ラダープログラムにおけるラダー回路の並び順を解析し、ラダープログラムが実行された場合に、どのような順番(実行順)でラダー回路が実行されていくかを示す実行順信号テーブル1241を作成する。実行順信号テーブル1241は、テーブル記憶部124に記憶される。
図2にラダープログラムの一例を示す。
図2に示すように、ラダープログラムは、一般に複数のプログラム(メインプログラムと、メインプログラム又はサブプログラムから呼び出される1以上のサブプログラム)を含む。各プログラムは、ラダー回路からなるネットを1つ以上含み、各ネットにはネット番号が付され、ネット番号の昇順に順次実行される。
ラダープログラム解析部111は、ラダープログラムを先頭から終端までラダー回路の実行順序にしたがって、各ネットを順次解析する。ラダープログラム解析部111は、各ネットに実行順序番号を付与して、当該ネットの位置情報、参照信号、及び更新信号を実行順信号テーブル1241に記録する。ここで、位置情報とは、そのネットが属するプログラム名称及びそのネットが属するプログラムにおけるネット位置(例えばネット番号)を含む情報である。なお、ラダープログラムが1つのプログラムで構成されている場合、プログラム名を含まなくてもよい。また、参照信号とは、前述したように、そのネットで参照される信号の名称、更新信号とは、そのネットで更新される信号の名称を意味する。
【0024】
[実行順信号テーブル1241]
図3に、ラダープログラム解析部111により、
図2に例示したラダープログラムを解析して作成される実行順信号テーブル1241の一例を示す。
図3を参照すると、例えば実行順序番号3において、信号Cを参照して信号Aが更新されている。その後、実行順序番号7において、信号Cが更新されていることがわかる。そうすると、このラダープログラムの実行周期に対応するトレースサンプリング周期で、実行順3に対応するネットのラダー図をそのまま表示した場合、信号Cと信号Aとが矛盾する可能性があることがわかる。
後述の補正判定部114は、実行順信号テーブル1241に基づいて、トレース対象の構成要素(ネット又はコイル)に係るラダー回路の実行される実行順序と、当該ラダー回路に含まれる参照される接点の信号の状態(すなわち参照信号)が更新される実行順序と、を参照することで、当該ラダー回路に含まれる接点の信号の状態(参照信号)の補正要否を判定する。補正判定部114の詳細は後述する。
【0025】
[トレース対象設定部112]
トレース対象設定部112は、PLC400で実行されるラダープログラムに含まれる構成要素のうち、トレース対象とする構成要素が、例えば、入力部130を介してユーザにより、1個以上指定される。ユーザは、構成要素として、1個以上指定してもよい。なお、構成要素としてのネットを指定する場合、当該ネットの位置情報を指定する。
トレース対象設定部112は、実行順信号テーブル1241を参照して、トレース対象として指定された構成要素(ネット)に係るラダー回路中の全ての参照される接点(参照信号)について、当該参照信号が書き込まれる(更新される)ネットについてもトレース対象とする。トレース対象設定部112は、以上のように設定された構成要素を、構成要素記憶部122に記憶させる。
なお、トレース対象設定部112は、トレース対象とする構成要素(ネット)を指定する替わりに、トレース対象とする構成要素(ネット)に係るラダー回路に含まれるコイル(すなわち更新される更新信号)を指定してもよい。その場合、トレース対象設定部112は、当該コイルの存在する構成要素(ネット)の位置情報を、例えば実行順信号テーブル1241を参照して特定してもよい。
【0026】
[トレースデータ取得部113]
トレースデータ取得部113は、トレースサンプリング周期毎にトレース対象の構成要素(ネット)に係るラダー回路に含まれる接点(参照信号)及びコイル(更新信号)の信号の状態を示すトレースデータを、所定のサンプリング周期で取得する。トレースデータ取得部113は、例えば、PLC400からトレースデータを取得する。トレースデータ取得部113は、トレース対象として設定された各構成要素に含まれるすべての信号の状態(ON/OFF)をトレースサンプリング周期毎に取得する。トレースデータ取得部113は、トレースサンプリング周期毎に取得した各構成要素に含まれるすべての信号の状態をトレースサンプリング周期毎に、トレースデータ記憶部123に記憶する。
図2及び
図3を参照すると、例えば、ユーザがプログラムP1のネット1番をトレース対象と指定した場合、トレース対象設定部112は、少なくともサブプログラムP1のネット1番で参照される信号Cを更新するサブプログラムP2のネット1番についてもトレースする。
また、
図4Aを参照すると、例えば、ユーザがネットの位置情報(例えばネット100番)をトレース対象と指定した場合、トレース対象設定部112は、少なくともネット100番で参照される信号Aを更新するネット10番及びネット100番で参照される信号Bを更新するネット番号151についてもトレースする。
【0027】
[補正判定部114]
補正判定部114は、トレース対象の構成要素(ネット)に係るラダー回路のラダー図を出力する場合に、トレース対象の構成要素(ネット)に係るラダー回路の実行される実行順序と、当該ラダー回路に含まれる参照される接点の信号(参照信号)が更新される実行順序と、に基づいて、当該ラダー回路に含まれる参照される接点の信号(参照信号)の補正要否を判定する。
より具体的には、補正判定部114は、トレース対象の構成要素(ネット)に係るラダー回路に含まれるすべての参照される接点の信号(参照信号)について、各接点(参照信号)が更新される(書き込まれる)ラダー回路の実行順序番号を実行順信号テーブル1241を参照して特定する。
図4Aを参照しながら、説明する。前述したように、
図4Aは、トレース対象ネット100中の全ての参照される接点の信号(A,B)について、各接点の信号が書き込まれたネットの位置情報(ネット番号)と実行順序番号を抽出する一例を示す図である。
図4Aに示すように、ネット番号100をトレース対象ネットとした場合、接点A及び接点Bが参照信号である。接点Aの信号は、ネット番号10のネットにより更新され、接点Bの信号はネット番号151のネットにより更新される。
【0028】
補正判定部114は、トレース対象の構成要素(ネット)に係るラダー回路の実行順序番号(N
0)と、参照される各接点の信号(参照信号)が更新される(書き込まれる)ラダー回路の実行順序番号(N
i:(1≦i≦M))と、を比較する。ここで、iは、参照される各接点(参照信号)が更新される(書き込まれる)ラダー回路を識別するためのインデックス、Mは、参照される各接点の信号(参照信号)が更新される(書き込まれる)ラダー回路の個数とする。
補正判定部114は、すべてのi(1≦i≦M)に対して、式1を満たす場合、補正不要と判定する。
N
0> N
i (式1)
すなわち、補正判定部114は、トレース対象の構成要素(ネット)に係るラダー回路が実行される前に、参照されるすべての接点の信号(参照信号)が更新されている場合、信号の関係に矛盾が生じないことから、補正不要と判定する。
これに対して、補正判定部114は、式2を満たすiが存在する場合、式2を満たす全てのiに対応するラダー回路により更新される(書き込まれる)接点の信号(参照信号)について、信号の関係に矛盾が生じる可能性があることから補正が必要と判定する。
N
0< N
i (式2)
すなわち、補正判定部114は、トレース対象の構成要素(ネット)に係るラダー回路が実行された後に、更新される(書き込まれる)当該ラダー回路に含まれる接点の信号(すなわち参照される信号)については、補正が必要と判定する。
【0029】
また、別の例として、
図2及び
図3を参照すると、例えば、ユーザがプログラムP1のネット1番をトレース対象と指定した場合、参照される信号Cは、信号Aが更新された後に更新されていることから、補正が必要と判定する。また、メインプログラムのネット3番をトレース対象と指定した場合、参照される信号Dは、信号Yが更新される前に更新されていることから、補正が不要と判定する。
【0030】
図4Bを参照しながら、補正の要否について具体例で説明する。前述したように、
図4Bは、トレースサンプリング周期(ラダープログラム実行周期)の1周期目及び2周期目のトレース結果を示す図である。
図4Bに示すラダープログラム及びトレース対象のネットは、
図4Aで示したものと同じである。
図4Aで説明したように、接点Aの信号はトレース対象のネット(番号100)が実行される前に、ネット番号10のネットにより更新されることから、接点Aの信号は補正が不要と判定される。これに対して、接点Bの信号はトレース対象のネット(番号100)が実行された後に、ネット番号151のネットにより更新されることから、接点Bの信号は補正が必要と判定される。
【0031】
[出力部115]
出力部115は、トレースサンプリング周期(ラダープログラム実行周期)における、トレース対象の構成要素(ネット)に係るラダー回路に含まれるすべての信号の状態を含むトレース結果を時系列で例えば表示部140に出力するようにしてもよい。以下、トレースサンプリング周期(ラダープログラム実行周期)の時系列で出力される表をトレースグラフという。
より具体的には、トレースグラフには、トレース対象の構成要素(ネット)に係るラダー回路に存在する参照される各接点の信号(参照信号)が更新される(書き込まれる)ラダー回路を含める。
図4Cは、
図4Aに示すラダープログラムのネット番号100のネットをトレース対象としたときに、トレースサンプリング周期(ラダープログラム実行周期)の時系列(1周期目及び2周期目)で出力されたトレースグラフを示す一例である。
図4Cに記載のトレースグラフを参照すると、例えば、ユーザがネット100番をトレース対象に指定した場合、トレースグラフには、信号A、B、Cに加えて、信号Aを更新するネット10番に存在する信号X、信号Bを更新するネット番号151のネットに存在する信号Yを含める。
【0032】
出力部115は、指定されたトレースサンプリング周期(ラダープログラム実行周期)におけるトレース対象のネットのラダー図を出力する。
ここで、トレースサンプリング周期の指定は、例えば、表示部140がタッチパネルの場合、表示部140に出力されたトレースグラフ上の周期にカーソルを合わせることで、指定するようにしてもよい。また、入力部130を介してユーザにより周期番号を入力させるようにしてもよい。
出力部115は、ラダー図の出力に際して、補正判定部114により補正が必要と判定された、トレース対象の構成要素(ネット)に係るラダー回路に含まれる参照される接点の信号(参照信号)については、当該接点の信号(参照信号)を1つ前の実行周期のトレース結果に基づいて補正したラダー図を出力する。
図4Dに補正前のラダー図を、
図4Fに補正後のラダー図を示す。出力部115は、補正判定部114により、補正が必要と判定された場合、
図4Fに示すように、信号Bの状態を1つ前の実行周期のトレース結果に基づいて補正したラダー図を出力する。
なお、以上の説明では、出力部115の出力するラダー図が1個の場合を例示したが、これに限られない。トレース対象の構成要素(ネット)が複数個指定された場合、各構成要素(ネット)に係るラダー回路のラダー図を出力する。
【0033】
また、出力部115は、表示部140に表示されたラダー図のうち、1つのラダー図が指定されると、指定されたラダー図のネットが実行された直後のトレースグラフを出力するようにしてもよい。
図4Eにラダープログラムの実行周期(2周期目)で、ネット100が実行された直後の補正されたトレースグラフを表示する例を示す。
【0034】
出力部115は、上記ラダー図及びトレースグラフを任意の装置に出力することができる。例えば、出力部115は、上記ラダー図及びトレースグラフをファイルに出力してもよい。また、出力部115は、上記ラダー図及びトレースグラフを例えば通信可能に接続される、スマートフォン、タブレット端末、PC等の端末(図示せず)に出力するようにしてもよい。これは、当業者にとって周知のWeb技術によって実施してもよい。
以上、本実施形態のトレースシステム1000の各機能部の実施形態をトレース装置100及びPLC400の構成に基づいて説明した。
【0035】
次に、
図5A及び
図5Bのフローチャートを参照して、本実施形態の動作について説明する。
図5A及び
図5Bは、トレース装置100のラダープログラム解析部111、トレース対象設定部112、トレースデータ取得部113、補正判定部114、及び出力部115により行われる、指定されたトレースサンプリング周期において、指定されたネットの実行直後のラダー図を表示する動作を示すフローチャートである。説明を簡単にするために、トレース対象のネットを1個とするが、複数個の場合、例えば、ステップS13〜ステップS21を各ネットについて実行すればよい。なお、
図5A及び
図5Bで示すフローチャートは一例であって、これに限られない。
【0036】
図5Aを参照すると、ステップS10において、トレース装置100(ラダープログラム解析部111)は、ラダープログラムを解析して、実行順信号テーブル1241を作成し、テーブル記憶部124に記憶する。
ステップS11において、トレース装置100(トレース対象設定部112)は、トレース対象とするネットの位置情報を、例えば入力部130を介して取得する。
ステップS12において、トレース装置100(トレースデータ取得部113)は、PLCにラダープログラムを実行させることで、トレースサンプリング周期毎に、トレースデータを取得し、トレースデータ記憶部123に記憶する。
【0037】
ステップS13において、トレース装置100(補正判定部114)は、実行順信号テーブル1241を参照して、トレース対象のネットの実行順序番号Lを取得する。
ステップS14において、トレース装置100(補正判定部114)は、実行順信号テーブル1241を参照して、トレース対象のネットに含まれる参照される全ての接点iの信号(参照信号)について、当該参照信号が書き込まれる(更新される)ネットの実行順序番号Li(1≦i≦M)を抽出する。
【0038】
ステップS15において、トレース装置100(出力部115)は、ユーザにより選択される、補正対象とするトレース結果の第N周期を、例えば入力部130を介して取得する。
ステップS16において、トレース装置100(補正判定部114)は、i=1とする。
【0039】
図5Bを参照すると、ステップS17において、トレース装置100(補正判定部114)は、Li>Lか否かを判定する。Li>Lの場合(Yesの場合)、ステップS18に移る。Li<Lの場合(Noの場合)、ステップS19に移る。
ステップS18において、トレース装置100(補正判定部114)は、第N周期の実行順序Liのネットのコイル信号を(N−1)周期のトレース結果で補正して、記憶部120に記憶する。
【0040】
ステップS19において、トレース装置100(補正判定部114)は、i=i+1とする。
ステップS20において、トレース装置100(補正判定部114)は、i>Mか否かを判定する。i>Mの場合(Yesの場合)、ステップS21に移る。i≦Mの場合(Noの場合)、ステップS17に移る。
【0041】
ステップS21において、トレース装置100(出力部115)は、補正されたトレース結果に基づいてトレースサンプリング周期Nにおける当該ネットのラダー図を出力する。
【0042】
次に、トレース結果をラダー図及びトレースグラフで見せる場合の具体例を説明する。
(具体例1)ラダー図を補正する必要がない場合
前述した
図4A〜
図4Fでは、トレース対象の構成要素(ネット)に係るラダー回路の実行順序番号にしたがって、補正の必要な場合の具体例を説明したが、ここでは、補正の必要がない例について説明する。
図6Aは、ネットの位置情報(ネット番号)と実行順序番号の一例を示す図である。
図6Bは、補正の必要のないネット番号200(エ)のラダー図及びトレースグラフを表示する一例を示す図である。
図6A及び
図6Bから明らかなように、ネット番号200(エ)の接点A及び接点Bともに、ネット番号200(エ)の実行以前に更新される。したがって、出力部115は、ネット番号200(エ)のラダー図及びトレースグラフを表示する際、ラダー図及びトレースグラフを補正する必要がない。
【0043】
次に、選択したネットに係るラダー回路が実行された直後の(補正された)トレースグラフを表示する具体例を説明する。
(具体例2)
図6Cは、ネット番号100(イ)のラダー図及びトレースグラフを表示する一例を示す図である。
図6A及び
図6Bから明らかなように、接点Bの信号がネット番号151のネットで更新される。したがって、
図6Cに示すように、出力部115は、ネット番号100(イ)のラダー図及びトレースグラフを表示する際、ラダー図及びトレースグラフを補正する。
【0044】
以上により、トレース対象の構成要素(ネット又はコイル)に係るラダー回路に含まれるすべての信号について参照される接点の信号(参照信号)が当該ラダー回路の実行後に、後続の別のラダー回路により書き込まれた場合であっても、当該トレースサンプリング周期における当該ラダー回路のラダー図を表示するとき、当該接点の信号(参照信号)を当該サンプリング周期の1つ前の周期のトレース結果で補正することができる。
それにより、当該ラダー回路を実行した直後の信号状態を確認することができる。また、複雑なラダーを分析する必要がなくなり、デバッグの効率が向上する。
【0045】
また、出力部115は、補正されたラダー図に加えて、当該ネットに係る補正されたトレースグラフを出力することができる。これにより、当該ラダー回路を実行した直後の関連する信号の状態を確認することができ、デバッグの効率が向上する。
【0046】
また、出力部115は、ユーザにより指定された実行周期を含む時系列にしたがって、トレース結果を表示部140に出力することができる。これにより、当該ラダー回路の信号の状態を時系列で確認することができる。該当ネットの実行する直前及び直後の状態が確認でき、デバッグの効率が向上する。
【0047】
本発明で使用する動作プログラムを初めとするプログラムは、様々なタイプの非一時的なコンピュータ可読媒体(non−transitory computer readable medium)を用いて格納され、コンピュータに供給することができる。非一時的なコンピュータ可読媒体は、様々なタイプの実体のある記録媒体(tangible storage medium)を含む。非一時的なコンピュータ可読媒体の例は、磁気記録媒体(例えば、フレキシブルディスク、磁気テープ、ハードディスクドライブ)、光磁気記録媒体(例えば、光磁気ディスク)、CD−ROM(Read Only Memory)、CD−R、CD−R/W、半導体メモリ(例えば、マスクROM、PROM(Programmable ROM)、EPROM(Erasable PROM)、フラッシュROM、RAM(random access memory))を含む。また、プログラムは、様々なタイプの一時的なコンピュータ可読媒体(transitory computer readable medium)によってコンピュータに供給されてもよい。一時的なコンピュータ可読媒体の例は、電気信号、光信号、及び電磁波を含む。一時的なコンピュータ可読媒体は、電線及び光ファイバ等の有線通信路、又は無線通信路を介して、プログラムをコンピュータに供給できる。
【0048】
また、上述した実施形態は、本発明の好適な実施形態の1つではあるが、上記実施形態のみに本発明の範囲を限定するものではなく、本発明の要旨を逸脱しない範囲において種々の変更を施した形態での実施が可能である。
【0049】
<変形例1>
前述した実施形態では、構成要素として、ネットを例示したが、構成要素としてコイルを含めてもよい。また、トレース対象設定部112は、トレース対象として、ラダープログラムに含まれるネットの位置情報を1個以上指定することで、トレース対象とするネットが設定されたが、これに限られない。前述したように、トレース対象設定部112は、トレース対象としてコイルを指定してもよい。その場合、トレース対象設定部112は、当該コイルの存在するネットの位置情報を、例えば実行順信号テーブル1241を参照して特定することができる。
【0050】
<変形例2>
トレース装置100として、前述した実施形態では、パーソナルコンピュータ(PC)又はサーバ装置を例示したが、トレース装置100をPLCが備えるものであってもよい。また、トレース装置100を数値制御装置(図示せず)が備えるものであってもよい。また、PLC400を数値制御装置(図示せず)が備えるものであってもよい。
【0051】
<変形例3>
上述した実施形態では、シーケンス制御プログラムとしてラダー方式のプログラムを例に説明したが、これに限定されない。例えば、SFC(Sequential Function Chart)方式等の他のシーケンス制御プログラムであってもよい。