制御対象機器を制御する制御装置であって、ユーザプログラムを含むタスクを実行するタスク実行手段と、前記タスク実行手段によりタスクが実行されているときに、前記ユーザプログラムにおいて参照および更新される変数を収集する収集手段と、前記収集手段により収集された変数を管理する管理手段とを備え、前記ユーザプログラムは、前記収集手段による変数の収集を指示する収集指示プログラムを含み、前記収集指示プログラムは、前記ユーザプログラムにおける当該収集指示プログラムの位置を利用者が識別するための識別情報を有し、前記管理手段は、前記収集指示プログラムにより変数の収集が指示された場合に、前記収集手段により収集された変数と、前記収集指示プログラムの識別情報とを関連付けるように構成されていることを特徴とする制御装置。請求項1に記載の制御装置であって、前記収集指示プログラムは、前記収集手段により収集される変数を指定する指定情報を有することを特徴とする制御装置。請求項1または請求項2に記載の制御装置であって、前記タスク実行手段は、複数の前記タスクを並行に実行し、かつ、前記複数のタスクの各タスクを前記各タスクに応じた周期で実行するように構成されていることを特徴とする制御装置。請求項1から請求項3までのいずれか一つに記載の制御装置であって、前記収集手段により収集された変数および前記変数に関連付けられた識別情報を、前記変数および前記識別情報を表示するためのツール装置に送信するための第1通信部を備えることを特徴とする制御装置。ユーザプログラムを実行することにより制御対象機器を制御する制御装置と、前記ユーザプログラムを作成するためのツール装置とを備える制御システムであって、前記制御装置は、前記ユーザプログラムを含むタスクを実行するタスク実行手段と、前記タスク実行手段によりタスクが実行されているときに、前記ユーザプログラムにおいて参照および更新される変数を収集する収集手段と、前記収集手段により収集された変数を管理する管理手段と含み、前記ユーザプログラムは、前記収集手段による変数の収集を指示する収集指示プログラムを含み、前記収集指示プログラムは、前記ユーザプログラムにおける当該収集指示プログラムの位置を利用者が識別するための識別情報を有し、前記管理手段は、前記収集指示プログラムにより変数の収集が指示された場合に、前記収集手段により収集された変数と、前記収集指示プログラムの識別情報とを関連付けるように構成されていることを特徴とする制御システム。制御対象機器を制御する制御装置において実行されるユーザプログラムを作成するためのツール装置であって、前記ユーザプログラムを作成するプログラム作成手段と、前記プログラム作成手段により作成されたユーザプログラムを前記制御装置に送信するための第2通信部とを備え、前記ユーザプログラムは、前記ユーザプログラムにおいて参照および更新される変数の収集を指示する収集指示プログラムを含み、前記収集指示プログラムは、前記ユーザプログラムにおける当該収集指示プログラムの位置を利用者が識別するための識別情報を有することを特徴とするツール装置。請求項6に記載のツール装置であって、前記収集指示プログラムは、前記制御装置により収集される変数を指定する指定情報を有することを特徴とするツール装置。請求項6または請求項7に記載のツール装置であって、前記プログラム作成手段により作成されるユーザプログラムを表示する表示部を備え、前記第2通信部は、前記制御装置により収集された変数と、前記変数に関連付けられた識別情報とを前記制御装置から受信するように構成され、前記表示部は、前記第2通信部により受信した変数と、前記変数に関連付けられた識別情報とを表示するように構成されていることを特徴とするツール装置。ユーザプログラムを含むタスクを実行するタスク実行手段と、前記タスク実行手段によりタスクが実行されているときに、前記ユーザプログラムにおいて参照および更新される変数を収集する収集手段と、前記収集手段により収集された変数を管理する管理手段とを備える制御装置に、前記収集手段による変数の収集を指示する手順を実行させるための収集指示プログラムであって、前記ユーザプログラムに含まれており、前記ユーザプログラムにおける位置を利用者が識別するための識別情報を有し、前記管理手段は、前記収集手段により収集された変数と、前記識別情報とを関連付けることを特徴とする収集指示プログラム。しかしながら、特許文献1に開示された従来のPLCにおいて、ユーザプログラムに複数のTRSM命令が含まれている場合に、どのTRSM命令によりどの収集結果が得られたのかを利用者が判断することが困難であるという問題点がある。本発明は、上記の課題を解決するためになされたものであり、本発明の目的は、収集結果がどの収集指示プログラムにより収集されたのかを利用者が判断することが可能な制御装置、その制御装置を備える制御システム、その制御装置において実行されるユーザプログラムを作成するためのツール装置、および、ユーザプログラムに含まれる収集指示プログラムを提供することである。本発明による制御装置は、制御対象機器を制御する制御装置であって、ユーザプログラムを含むタスクを実行するタスク実行手段と、前記タスク実行手段によりタスクが実行されているときに、前記ユーザプログラムにおいて参照および更新される変数を収集する収集手段と、前記収集手段により収集された変数を管理する管理手段とを備え、前記ユーザプログラムは、前記収集手段による変数の収集を指示する収集指示プログラムを含み、前記収集指示プログラムは、前記ユーザプログラムにおける当該収集指示プログラムの位置を利用者が識別するための識別情報を有し、前記管理手段は、前記収集指示プログラムにより変数の収集が指示された場合に、前記収集手段により収集された変数と、前記収集指示プログラムの識別情報とを関連付けるように構成されている。このように構成することによって、ユーザプログラムにおける位置を利用者が識別するための識別情報を収集指示プログラムが有することにより、管理手段が収集された変数収集結果と識別情報とを関連付けることができる。これにより、収集結果がどの収集指示プログラムにより収集されたのかを利用者が識別情報に基づいて判断することができる。上記制御装置において、前記収集指示プログラムは、前記収集手段により収集される変数を指定する指定情報を有していてもよい。このように構成すれば、収集手段により、指定された変数を収集することができる。上記制御装置において、前記タスク実行手段は、複数の前記タスクを並行に実行し、かつ、前記複数のタスクの各タスクを前記各タスクに応じた周期で実行するように構成されていてもよい。なお、複数のタスクを並行に実行するとは、複数のタスクを同時に並行して実行する場合と、時分割により複数のタスクを並行して実行する場合とを含む。このように構成すれば、タスクの処理を効率的に行うことができる。上記制御装置において、前記収集手段により収集された変数および前記変数に関連付けられた識別情報を、前記変数および前記識別情報を表示するためのツール装置に送信するための第1通信部を備えていてもよい。このように構成すれば、利用者がツール装置を用いて、収集結果を識別情報と関連付けて確認することができる。本発明による制御システムは、ユーザプログラムを実行することにより制御対象機器を制御する制御装置と、前記ユーザプログラムを作成するためのツール装置とを備える制御システムであって、前記制御装置は、前記ユーザプログラムを含むタスクを実行するタスク実行手段と、前記タスク実行手段によりタスクが実行されているときに、前記ユーザプログラムにおいて参照および更新される変数を収集する収集手段と、前記収集手段により収集された変数を管理する管理手段と含み、前記ユーザプログラムは、前記収集手段による変数の収集を指示する収集指示プログラムを含み、前記収集指示プログラムは、前記ユーザプログラムにおける当該収集指示プログラムの位置を利用者が識別するための識別情報を有し、前記管理手段は、前記収集指示プログラムにより変数の収集が指示された場合に、前記収集手段により収集された変数と、前記収集指示プログラムの識別情報とを関連付けるように構成されている。このように構成することによって、ユーザプログラムにおける位置を利用者が識別するための識別情報を収集指示プログラムが有することにより、管理手段が収集された変数収集結果と識別情報とを関連付けることができる。これにより、収集結果がどの収集指示プログラムにより収集されたのかを利用者が識別情報に基づいて判断することができる。本発明によるツール装置は、制御対象機器を制御する制御装置において実行されるユーザプログラムを作成するためのツール装置であって、前記ユーザプログラムを作成するプログラム作成手段と、前記プログラム作成手段により作成されたユーザプログラムを前記制御装置に送信するための第2通信部とを備え、前記ユーザプログラムは、前記ユーザプログラムにおいて参照および更新される変数の収集を指示する収集指示プログラムを含み、前記収集指示プログラムは、前記ユーザプログラムにおける当該収集指示プログラムの位置を利用者が識別するための識別情報を有する。このように構成することによって、ユーザプログラムにおける位置を利用者が識別するための識別情報を収集指示プログラムが有することにより、制御装置において収集された変数収集結果と識別情報とを関連付けることができる。これにより、収集結果がどの収集指示プログラムにより収集されたのかを利用者が識別情報に基づいて判断することができる。上記ツール装置において、前記収集指示プログラムは、前記制御装置により収集される変数を指定する指定情報を有していてもよい。このように構成すれば、制御装置において指定された変数を収集することができる。上記ツール装置において、前記プログラム作成手段により作成されるユーザプログラムを表示する表示部を備え、前記第2通信部は、前記制御装置により収集された変数と、前記変数に関連付けられた識別情報とを前記制御装置から受信するように構成され、前記表示部は、前記第2通信部により受信した変数と、前記変数に関連付けられた識別情報とを表示するように構成されていてもよい。このように構成すれば、収集結果を識別情報と関連付けて利用者が確認することができる。本発明の収集指示プログラムは、ユーザプログラムを含むタスクを実行するタスク実行手段と、前記タスク実行手段によりタスクが実行されているときに、前記ユーザプログラムにおいて参照および更新される変数を収集する収集手段と、前記収集手段により収集された変数を管理する管理手段とを備える制御装置に、前記収集手段による変数の収集を指示する手順を実行させるための収集指示プログラムであって、前記ユーザプログラムに含まれており、前記ユーザプログラムにおける位置を利用者が識別するための識別情報を有し、前記管理手段は、前記収集手段により収集された変数と、前記識別情報とを関連付ける。このように構成することによって、ユーザプログラムにおける位置を利用者が識別するための識別情報を収集指示プログラムが有することにより、制御装置において収集された変数収集結果と識別情報とを関連付けることができる。これにより、収集結果がどの収集指示プログラムにより収集されたのかを利用者が識別情報に基づいて判断することができる。本発明の制御装置、その制御装置を備える制御システム、その制御装置において実行されるユーザプログラムを作成するためのツール装置、および、ユーザプログラムに含まれる収集指示プログラムによれば、収集結果がどの収集指示プログラムにより収集されたのかを利用者が判断することができる。以下、本発明の実施形態について図面を参照して説明する。まず、図1~図6を参照して、本発明の一実施形態による制御システム300の構成について説明する。制御システム300は、図1に示すように、産業用機械などの制御対象機器60を制御するPLC100と、PLC100において実行されるユーザプログラムを作成編集するためのツール装置200とを備えている。PLC100は、PLC100を制御するCPUユニット1と、センサ50からの信号が入力される入力ユニット2と、産業用機械などの制御対象機器60に制御信号を出力する出力ユニット3と、各ユニットに電力を供給する電源ユニット4と、各ユニットを接続する内部バス5とを含んでいる。なお、CPUユニット1は、本発明の制御装置の一例である。PLC100は、ユーザプログラムを含むタスクを実行することにより、センサ50からの入力に基づいて制御対象機器60を制御するように構成されている。すなわち、ユーザプログラムは、制御対象機器60を制御するためのプログラムである。CPUユニット1では、ユーザプログラムを含むシステムプログラム12a図2参照がインストールされており、そのシステムプログラム12aが実行されることによりCPUユニット1の動作が制御されるように構成されている。なお、システムプログラム12aには、入力ユニット2に入力された信号をCPUユニット1に取り込む処理を実行するためのプログラムや、CPUユニット1による演算結果を出力ユニット3に送り出す処理を実行するためのプログラムなどが含まれている。CPUユニット1は、制御対象機器60を制御する通常の動作を行うことが可能であり、かつ、データトレースを行うことが可能なように構成されている。ここで、データトレースとは、ユーザプログラムにおいて参照および更新される変数を収集することをいう。具体的には、データトレースは、ユーザプログラムを含むタスクが実行されているときの変数の経時変化を収集する機能である。また、データトレースは、ユーザプログラムをデバッグする際に、ユーザプログラムの動作を確認するために行われる。すなわち、データトレースは、ユーザプログラムの欠陥を検出するために行われる。CPUユニット1は、図2に示すように、CPU11と、ROM12と、RAM13と、通信インターフェース以下、通信IFという14および15とを含んでいる。なお、通信IF15は、本発明の第1通信部の一例である。CPU11は、システムプログラム12aを実行する機能を有する。CPU11は、シングルコアであり、時分割により複数のタスクを並行して実行するように構成されている。すなわち、CPU11では、マルチタスクで処理が実行される。ROM12は、不揮発性のメモリであり、たとえば、フラッシュメモリである。ROM12には、ユーザプログラムを含むシステムプログラム12aが記憶されるとともに、CPUユニット1において実行されるタスクに関する情報L1図4参照が記憶されている。タスクに関する情報L1には、各タスクの名称と、各タスクの優先度と、各タスクが実行される周期と、各タスクで実行されるユーザプログラムとが含まれている。なお、タスクは、優先度の値が小さいタスクが優先的に実行される。また、CPUユニット1では、予め設定された時間間隔たとえば、1msの制御サイクルを処理全体の共通サイクルとして採用している。また、ユーザプログラムは、たとえば、ラダー言語で記述されている。ここで、ユーザプログラムは、プログラム構成単位ProgramOrganizationUnit:POUにより構成されている。プログラム構成単位は、プログラム管理上の最小単位であり、プログラムと、ファンクションと、ファンクションブロックとを含んでいる。そして、ファンクションおよびファンクションブロックは、再利用することが可能である。すなわち、ファンクションおよびファンクションブロックは、複数のユーザプログラムで共用することが可能である。なお、ファンクションは、所定の入力値が入力された場合に、所定の入力値に対応する一定の出力値を出力する関数であり、ファンクションブロックは、内部状態を持てることにより、入力値に対する出力値が一定ではない関数である。また、プログラム構成単位のファンクションブロックの一つとして、図3に示すように、トレースサンプリング命令以下、TRSM命令というPがある。このTRSM命令Pは、ツール装置200を用いて利用者がユーザプログラムを作成編集する際に、ユーザプログラムの任意の位置に挿入することが可能である。なお、TRSM命令Pは、本発明の収集指示プログラムの一例である。TRSM命令Pにはイネーブル入力ENが入力されるとともに、TRSM命令Pからはイネーブル出力ENOが出力されている。そして、TRSM命令Pでは、イネーブル入力ENが0である場合に、ボディ部分のプログラムデータトレースを実行するためのプログラムを実行することなく、イネーブル出力ENOから0が出力される。また、TRSM命令Pでは、イネーブル入力ENが1である場合に、ボディ部分のプログラムを実行し、イネーブル出力ENOから1が出力される。すなわち、CPUユニット1において通常の動作が行われる場合には、イネーブル入力に0が入力され、CPUユニット1においてデータトレースが行われる場合には、イネーブル入力ENに1が入力される。また、TRSM命令Pには、入力パラメータ引数TraceNoおよびPointが入力されている。入力パラメータTraceNoは、トレース番号であり、たとえば、0~3の値が入力される。また、入力パラメータPointは、ポイント番号であり、たとえば、0~255の値が入力される。すなわち、TRSM命令Pは、トレース番号とポイント番号とを有する。なお、トレース番号は、本発明の指定情報の一例であり、ポイント番号は、本発明の識別情報の一例である。トレース番号は、TRSM命令Pにより収集される変数を指定するための情報であり、ツール装置200を用いて利用者がユーザプログラムを作成編集する際に、0~3のうちの所望の値が設定される。すなわち、ユーザプログラムの任意の位置に挿入されるTRSM命令Pのトレース番号は、ユーザプログラムの作成編集時に利用者により予め設定されている。ポイント番号は、ユーザプログラムにおけるTRSM命令Pの位置を利用者が識別するための情報であり、ツール装置200を用いて利用者がユーザプログラムを作成編集する際に、0~255のうちの所望の値が設定される。すなわち、ユーザプログラムの任意の位置に挿入されるTRSM命令Pのポイント番号は、ユーザプログラムの作成編集時に利用者により予め設定されている。そして、ユーザプログラムに複数のTRSM命令Pが挿入される場合には、各TRSM命令Pに異なるポイント番号が利用者により付与されることにより、ユーザプログラムにおけるTRSM命令Pの位置を利用者が識別することが可能である。また、TRSM命令Pからは、出力パラメータ戻り値Outが出力されている。なお、出力パラメータOutは、ブーリアン型であり、常にtrueを出力する。図4に示すタスクに関する情報L1において、タスクAは、タスクBおよびCよりも優先的に実行されるとともに、1msの周期でユーザプログラムP1およびP2を実行する。すなわち、タスクAは、1回分の制御サイクル1msの時間間隔を実行サイクルとしている。ここで、たとえば、ユーザプログラムP1の最後には、トレース番号が0であり、ポイント番号が1であるTRSM命令Pが挿入されている。また、ユーザプログラムP2の最後には、トレース番号が0であり、ポイント番号が2であるTRSM命令Pが挿入されている。また、タスクBは、タスクCよりも優先的に実行されるとともに、2msの周期でユーザプログラムP3およびP4を実行する。すなわち、タスクBは、2回分の制御サイクル2msの時間間隔を実行サイクルとしている。また、タスクBの周期は、タスクAの周期の整数倍2倍に設定されている。ここで、たとえば、ユーザプログラムP3の最後には、トレース番号が0であり、ポイント番号が3であるTRSM命令Pが挿入されている。また、ユーザプログラムP4の最後には、トレース番号が0であり、ポイント番号が4であるTRSM命令Pが挿入されている。また、タスクCは、タスクAおよびBよりも劣後して実行されるとともに、4msの周期でユーザプログラムP5を実行する。すなわち、タスクCは、4回分の制御サイクル4msの時間間隔を実行サイクルとしている。また、タスクCの周期は、タスクAの周期の整数倍4倍に設定されている。ここで、たとえば、ユーザプログラムP5の最後には、トレース番号が0であり、ポイント番号が5であるTRSM命令Pが挿入されている。また、ROM12には、トレース番号に対応付けられた変数に関するトレース番号情報L2図5参照が記憶されている。トレース番号情報L2には、トレース番号と、各トレース番号に対応付けられた変数名とが含まれている。このトレース番号情報L2は、利用者がツール装置200を用いて編集することが可能である。すなわち、利用者がツール装置200を用いて、トレース番号に対応付けられた変数を変更することが可能である。図5の例では、トレース番号0には、変数V1およびV2が設定されている。このため、ユーザプログラムにおいてトレース番号0を有するTRSM命令P図3参照が行われるときに、後述するデータ収集部22図6参照により変数V1およびV2の値が収集される。また、トレース番号1には、変数V3が設定されている。このため、ユーザプログラムにおいてトレース番号1を有するTRSM命令Pが行われるときに、データ収集部22により変数V3の値が収集される。また、トレース番号2には変数V4が設定されている。このため、ユーザプログラムにおいてトレース番号2を有するTRSM命令Pが行われるときに、データ収集部22により変数V4の値が収集される。また、トレース番号3には、変数V5、V6およびV7が設定されている。このため、ユーザプログラムにおいてトレース番号3を有するTRSM命令Pが行われるときに、データ収集部22により変数V5、V6およびV7の値が収集される。RAM13は、揮発性のメモリであり、たとえば、DRAMである。RAM13は、CPU11により実行されるシステムプログラム12aなどを一時的に記憶する機能を有する。具体的には、RAM13は、ユーザプログラムが実行される際に、ユーザプログラムにおいて参照および更新される変数を記憶する機能を有する。通信IF14は、内部バス5に接続されており、CPUユニット1が内部バス5を介して各ユニットと通信するために設けられている。通信IF15は、ツール装置200の通信IF36図2参照に接続されており、CPUユニット1がツール装置200と通信するために設けられている。また、CPUユニット1は、図6に示すように、タスク実行部21と、データ収集部22と、トレース番号設定部23と、収集データ管理部24とを含んでいる。なお、タスク実行部21、データ収集部22、トレース番号設定部23および収集データ管理部24は、CPU11がシステムプログラム12aを実行することにより実現される。また、タスク実行部21は本発明のタスク実行手段の一例であり、データ収集部22は本発明の収集手段の一例であり、収集データ管理部24は本発明の管理手段の一例である。タスク実行部21は、複数のタスクを並行に実行し、かつ、複数のタスクの各タスクを各タスクに応じた周期で実行するように構成されている。具体的には、タスク実行部21は、時分割によりタスクA、BおよびCを並行に実行する。また、タスク実行部21は、タスクAを1msの周期で実行し、タスクBを2msの周期で実行し、タスクCを4msの周期で実行する。データ収集部22は、タスク実行部21によりタスクが実行されているときに、タスクの実行に伴う変数の変化を収集する機能を有する。具体的には、データ収集部22は、TRSM命令P図3参照により変数の収集が指示された場合に、トレース番号により指定された変数を収集するように構成されている。なお、データ収集部22は、TRSM命令Pのボディ部分がCPU11により実行されることによって実現される。トレース番号設定部23は、ツール装置200から受信したトレース番号に基づいて、データトレースの対象となるトレース番号収集データ管理部24により管理される変数を指定するトレース番号を設定する機能を有する。これにより、たとえば、収集データ管理部24は、トレース番号設定部23によりトレース番号0が設定された場合には、データ収集部22により収集された変数V1~V7のうち、変数V1およびV2のみを管理する。収集データ管理部24は、データ収集部22により収集されたデータ収集結果と、そのデータの収集を指示したTRSM命令Pのポイント番号とを関連付ける機能を有する。また、収集データ管理部24は、データ収集部22により収集されたデータに対して、そのデータが収集された順番を示すインデックス番号や、データトレースが開始されてからの経過時間を関連付ける機能も有する。ツール装置200では、サポートプログラム32a図2参照がインストールされており、そのサポートプログラム32aが実行されることにより各種の機能が実現されるように構成されている。ツール装置200は、たとえば、パーソナルコンピュータである。ツール装置200は、図2に示すように、CPU31と、ROM32と、RAM33と、操作部34と、表示部35と、通信IF36とを含んでいる。なお、CPU31は、本発明のプログラム作成手段の一例であり、通信IF36は、本発明の第2通信部の一例である。CPU31は、サポートプログラム32aを実行する機能を有する。ROM32は、不揮発性のメモリであり、たとえば、フラッシュメモリである。ROM32には、サポートプログラム32aが記憶されている。サポートプログラム32aには、たとえば、ユーザプログラムの作成編集用プログラムや、CPUユニット1で行われたデータトレースの結果の表示制御プログラムなどが含まれている。RAM33は、揮発性のメモリであり、たとえば、DRAMである。RAM33は、CPU31により実行されるサポートプログラム32aなどを一時的に記憶する機能を有する。操作部34は、利用者が各種の操作指令を入力するために設けられている。表示部35は、たとえば、液晶ディスプレイであり、作成編集されるユーザプログラムや、データトレースの結果などを表示する機能を有する。通信IF36は、CPUユニット1の通信IF15に接続されており、ツール装置200がCPUユニット1と通信するために設けられている。ツール装置200は、PLC100のCPUユニット1において実行されるユーザプログラムの作成編集機能を有する。したがって、利用者は、ツール装置200を用いて、ユーザプログラムの任意の位置にTRSM命令P図3参照を挿入することが可能である。また、利用者は、ツール装置200を用いて、ユーザプログラムに挿入されるTRSM命令Pのトレース番号およびポイント番号を所望の値に設定することが可能である。また、ツール装置200は、通信IF36により、ユーザプログラムをCPUユニット1からダウンロードするとともに、ユーザプログラムをCPUユニット1にアップロードするように構成されている。これにより、ツール装置200は、TRSM命令Pを含むユーザプログラムを通信IF36からCPUユニット1に送信可能に構成されている。また、ツール装置200は、CPUユニット1に対してデータトレースの実行を指示する機能を有するとともに、利用者がデータトレースの結果を確認するために、CPUユニット1によるトレース結果のグラフを表示部35に表示する機能を有する。次に、図7を参照して、本実施形態による制御システム300のデータトレース時の動作について説明する。まず、ツール装置200図2参照では、ステップS1において、CPU31により、データトレースを受け付けたか否かが判断される。具体的には、たとえば、CPU31により、トレース番号を指定する項目と、データトレース開始ボタンとを表示部35に表示する。その後、利用者により操作部34が操作されることによって、データトレース開始ボタンが押されたか否かが判断される。そして、データトレースを受け付けていないと判断される場合には、ステップS1が繰り返し行われる。すなわち、ツール装置200は、データトレースを受け付けるまで待機する。そして、データトレースを受け付けたと判断される場合には、ステップS2に移る。次に、ステップS2において、CPU31により、データトレース開始指示が通信IF36からPLC100図1参照に送信される。なお、このデータトレース開始指示には、データトレースの対象となる変数を指定するためのトレース番号が含まれている。その後、ステップS3に移る。また、PLC100のCPUユニット1図2参照では、ステップS11において、CPU11により、通信IF15がデータトレース開始指示を受信したか否かが判断される。そして、データトレース開始指示を受信していないと判断される場合には、ステップS11が繰り返し行われる。すなわち、CPUユニット1は、データトレース開始指示を受信するまで待機する。そして、データトレース開始指示を受信したと判断される場合には、ステップS12に移る。次に、ステップS12において、CPU11により、データトレース処理が行われる。これにより、トレース番号により指定された変数が収集される。たとえば、トレース番号が0である場合には、変数V1およびV2が収集される。つまり、CPUユニット1では、ツール装置200から送信されるトレース番号により指定された変数が収集される。そして、データトレース処理が終了すると、ステップS13に移る。なお、データトレース処理については、後で詳細に説明する。次に、ステップS13において、CPU11により、トレース結果が通信IF15からツール装置200に送信される。その後、データトレース時のPLC100の動作が終了される。また、ツール装置200では、ステップS3において、CPU31により、通信IF36がトレース結果を受信したか否かが判断される。そして、トレース結果を受信したと判断される場合には、ステップS4に移る。その一方、トレース結果を受信していないと判断される場合には、ステップS3が繰り返し行われる。次に、ステップS4において、CPU31により、通信IF36により受信したトレース結果が表示部35に表示される。なお、トレース結果の表示については、後で詳細に説明する。その後、データトレース時のツール装置200の動作が終了される。次に、図8~図10を参照して、本実施形態によるCPUユニット1のデータトレース時の動作について説明する。なお、以下の動作は、CPUユニット1図2参照のCPU11によりシステムプログラム12aが実行されることにより行われる。すなわち、システムプログラム12aは、CPUユニット1に以下の動作を実行させるためのシステムプログラムである。なお、以下では、トレース番号が0であるトレース開始指示をツール装置200図2参照から受信した場合を例に説明する。すなわち、トレース番号設定部23図6参照によりトレース番号0が設定されており、収集データ管理部24図6参照により管理される変数が変数V1およびV2である場合を例に説明する。また、以下では、データトレースが開始されてから、変数V1が1ms毎に1、2、3、2、1、2、3と変化し、変数V2が1ms毎に5、4、5、4、5、4、5と変化する場合を例に説明する。まず、CPU11により、制御サイクルと同時にタスクA、BおよびCの実行サイクルが開始される。なお、タスクAは1msの周期で実行され、タスクBは2msの周期で実行され、タスクCは4msの周期で実行される。具体的には、タスク実行部21図6参照により、最も優先度の高いタスクAの処理が開始される。このとき、タスクBおよびCは、タスクAよりも優先度が低いことから、実際の処理が開始されることなく待機状態になる。そして、タスクAのユーザプログラムP1が実行される。ここで、ユーザプログラムP1の最後には、トレース番号が0であり、ポイント番号が1であるTRSM命令P図3参照が挿入されている。このため、データ収集部22図6参照により、トレース番号0により指定される変数V1およびV2の値が収集される。そして、収集データ管理部24により、図9に示すように、収集された変数V1の値1に対して、収集された順番を示すインデックス番号1と、データトレースが開始されてからの経過時間0.15msと、TRSM命令Pのポイント番号1とが関連付けられてRAM13に記憶される。また、収集データ管理部24により、図10に示すように、収集された変数V2の値5に対して、収集された順番を示すインデックス番号1と、データトレースが開始されてからの経過時間0.15msと、TRSM命令Pのポイント番号1とが関連付けられてRAM13に記憶される。これにより、変数V1およびV2の1番目の収集結果がRAM13に蓄積される。そして、タスクAのユーザプログラムP2が実行される。ここで、ユーザプログラムP2の最後には、トレース番号が0であり、ポイント番号が2であるTRSM命令Pが挿入されている。このため、データ収集部22により、トレース番号0により指定される変数V1およびV2の値が収集される。そして、収集データ管理部24により、図9に示すように、収集された変数V1の値1に対して、インデックス番号2と、経過時間0.3msと、ポイント番号2とが関連付けられてRAM13に記憶される。また、収集データ管理部24により、図10に示すように、収集された変数V2の値5に対して、インデックス番号2と、経過時間0.3msと、ポイント番号2とが関連付けられてRAM13に記憶される。これにより、変数V1およびV2の2番目の収集結果がRAM13に蓄積される。次に、タスクAの処理が完了すると、タスクCよりも優先度が高いタスクBの処理が開始される。このとき、タスクCは待機状態のままである。そして、タスクBのユーザプログラムP3が実行される。ここで、ユーザプログラムP3の最後には、トレース番号が0であり、ポイント番号が3であるTRSM命令Pが挿入されている。このため、データ収集部22により、トレース番号0により指定される変数V1およびV2の値が収集される。そして、収集データ管理部24により、図9に示すように、収集された変数V1の値1に対して、インデックス番号3と、経過時間0.6msと、ポイント番号3とが関連付けられてRAM13に記憶される。また、収集データ管理部24により、図10に示すように、収集された変数V2の値5に対して、インデックス番号3と、経過時間0.6msと、ポイント番号3とが関連付けられてRAM13に記憶される。これにより、変数V1およびV2の3番目の収集結果がRAM13に蓄積される。次に、タスクBのユーザプログラムP4が実行される。その後、タスクA、BおよびCの実行サイクルが同時に開始されてから1ms経過すると、タスクAの実行サイクルが経過することから、タスクBのユーザプログラムP4が中断され、タスク実行部21により、タスクAが実行される。このとき、タスクBおよびCは待機状態である。そして、タスクAのユーザプログラムP1が実行される。ここで、ユーザプログラムP1の最後には、トレース番号が0であり、ポイント番号が1であるTRSM命令Pが挿入されている。このため、データ収集部22により、トレース番号0により指定される変数V1およびV2の値が収集される。そして、収集データ管理部24により、図9に示すように、収集された変数V1の値2に対して、インデックス番号4と、経過時間1.15msと、ポイント番号1とが関連付けられてRAM13に記憶される。また、収集データ管理部24により、図10に示すように、収集された変数V2の値4に対して、インデックス番号4と、経過時間1.15msと、ポイント番号1とが関連付けられてRAM13に記憶される。これにより、変数V1およびV2の4番目の収集結果がRAM13に蓄積される。そして、タスクAのユーザプログラムP2が実行される。ここで、ユーザプログラムP2の最後には、トレース番号が0であり、ポイント番号が2であるTRSM命令Pが挿入されている。このため、データ収集部22により、トレース番号0により指定される変数V1およびV2の値が収集される。そして、収集データ管理部24により、図9に示すように、収集された変数V1の値2に対して、インデックス番号5と、経過時間1.3msと、ポイント番号2とが関連付けられてRAM13に記憶される。また、収集データ管理部24により、図10に示すように、収集された変数V2の値4に対して、インデックス番号5と、経過時間1.3msと、ポイント番号2とが関連付けられてRAM13に記憶される。これにより、変数V1およびV2の5番目の収集結果がRAM13に蓄積される。次に、タスクAの処理が完了すると、タスクCよりも優先度が高いタスクBの処理が再開される。このとき、タスクCは待機状態のままである。そして、タスク実行部21によりタスクBのユーザプログラムP4の残りが実行される。ここで、ユーザプログラムP4の最後には、トレース番号が0であり、ポイント番号が4であるTRSM命令Pが挿入されている。このため、データ収集部22により、トレース番号0により指定される変数V1およびV2の値が収集される。そして、収集データ管理部24により、図9に示すように、収集された変数V1の値2に対して、インデックス番号6と、経過時間1.45msと、ポイント番号4とが関連付けられてRAM13に記憶される。また、収集データ管理部24により、図10に示すように、収集された変数V2の値4に対して、インデックス番号6と、経過時間1.45msと、ポイント番号4とが関連付けられてRAM13に記憶される。これにより、変数V1およびV2の6番目の収集結果がRAM13に蓄積される。次に、タスクBの処理が完了すると、タスクCの処理が開始される。そして、タスク実行部21によりタスクCのユーザプログラムP5が実行される。その後、タスクA、BおよびCの実行サイクルが同時に開始されてから2ms経過すると、タスクAの実行サイクルが経過することから、タスクCのユーザプログラムP5が中断され、タスク実行部21により、タスクAが実行される。このとき、タスクBの実行サイクルも経過することから、タスクBおよびCは待機状態である。そして、タスクAのユーザプログラムP1が実行される。ここで、ユーザプログラムP1の最後には、トレース番号が0であり、ポイント番号が1であるTRSM命令Pが挿入されている。このため、データ収集部22により、トレース番号0により指定される変数V1およびV2の値が収集される。そして、収集データ管理部24により、図9に示すように、収集された変数V1の値3に対して、インデックス番号7と、経過時間2.15msと、ポイント番号1とが関連付けられてRAM13に記憶される。また、収集データ管理部24により、図10に示すように、収集された変数V2の値5に対して、インデックス番号7と、経過時間2.15msと、ポイント番号1とが関連付けられてRAM13に記憶される。これにより、変数V1およびV2の7番目の収集結果がRAM13に蓄積される。そして、タスクAのユーザプログラムP2が実行される。ここで、ユーザプログラムP2の最後には、トレース番号が0であり、ポイント番号が2であるTRSM命令Pが挿入されている。このため、データ収集部22により、トレース番号0により指定される変数V1およびV2の値が収集される。そして、収集データ管理部24により、図9に示すように、収集された変数V1の値3に対して、インデックス番号8と、経過時間2.3msと、ポイント番号2とが関連付けられてRAM13に記憶される。また、収集データ管理部24により、図10に示すように、収集された変数V2の値5に対して、インデックス番号8と、経過時間2.3msと、ポイント番号2とが関連付けられてRAM13に記憶される。これにより、変数V1およびV2の8番目の収集結果がRAM13に蓄積される。次に、タスクAの処理が完了すると、タスクCよりも優先度が高いタスクBの処理が開始される。このとき、タスクCは待機状態のままである。そして、タスクBのユーザプログラムP3が実行される。ここで、ユーザプログラムP3の最後には、トレース番号が0であり、ポイント番号が3であるTRSM命令Pが挿入されている。このため、データ収集部22により、トレース番号0により指定される変数V1およびV2の値が収集される。そして、収集データ管理部24により、図9に示すように、収集された変数V1の値3に対して、インデックス番号9と、経過時間2.6msと、ポイント番号3とが関連付けられてRAM13に記憶される。また、収集データ管理部24により、図10に示すように、収集された変数V2の値5に対して、インデックス番号9と、経過時間2.6msと、ポイント番号3とが関連付けられてRAM13に記憶される。これにより、変数V1およびV2の9番目の収集結果がRAM13に蓄積される。次に、タスクBのユーザプログラムP4が実行される。その後、タスクA、BおよびCの実行サイクルが同時に開始されてから3ms経過すると、タスクAの実行サイクルが経過することから、タスクBのユーザプログラムP4が中断され、タスク実行部21により、タスクAが実行される。このとき、タスクBおよびCは待機状態である。そして、タスクAのユーザプログラムP1が実行される。ここで、ユーザプログラムP1の最後には、トレース番号が0であり、ポイント番号が1であるTRSM命令Pが挿入されている。このため、データ収集部22により、トレース番号0により指定される変数V1およびV2の値が収集される。そして、収集データ管理部24により、図9に示すように、収集された変数V1の値2に対して、インデックス番号10と、経過時間3.15msと、ポイント番号1とが関連付けられてRAM13に記憶される。また、収集データ管理部24により、図10に示すように、収集された変数V2の値4に対して、インデックス番号10と、経過時間3.15msと、ポイント番号1とが関連付けられてRAM13に記憶される。これにより、変数V1およびV2の10番目の収集結果がRAM13に蓄積される。そして、タスクAのユーザプログラムP2が実行される。ここで、ユーザプログラムP2の最後には、トレース番号が0であり、ポイント番号が2であるTRSM命令Pが挿入されている。このため、データ収集部22により、トレース番号0により指定される変数V1およびV2の値が収集される。そして、収集データ管理部24により、図9に示すように、収集された変数V1の値2に対して、インデックス番号11と、経過時間3.3msと、ポイント番号2とが関連付けられてRAM13に記憶される。また、収集データ管理部24により、図10に示すように、収集された変数V2の値4に対して、インデックス番号11と、経過時間3.3msと、ポイント番号2とが関連付けられてRAM13に記憶される。これにより、変数V1およびV2の11番目の収集結果がRAM13に蓄積される。次に、タスクAの処理が完了すると、タスクCよりも優先度が高いタスクBの処理が再開される。このとき、タスクCは待機状態のままである。そして、タスク実行部21によりタスクBのユーザプログラムP4の残りが実行される。ここで、ユーザプログラムP4の最後には、トレース番号が0であり、ポイント番号が4であるTRSM命令Pが挿入されている。このため、データ収集部22により、トレース番号0により指定される変数V1およびV2の値が収集される。そして、収集データ管理部24により、図9に示すように、収集された変数V1の値2に対して、インデックス番号12と、経過時間3.45msと、ポイント番号4とが関連付けられてRAM13に記憶される。また、収集データ管理部24により、図10に示すように、収集された変数V2の値4に対して、インデックス番号12と、経過時間3.45msと、ポイント番号4とが関連付けられてRAM13に記憶される。これにより、変数V1およびV2の12番目の収集結果がRAM13に蓄積される。次に、タスクBの処理が完了すると、タスクCの処理が再開される。そして、タスク実行部21によりタスクCのユーザプログラムP5の残りが実行される。ここで、ユーザプログラムP5の最後には、トレース番号が0であり、ポイント番号が5であるTRSM命令Pが挿入されている。このため、データ収集部22により、トレース番号0により指定される変数V1およびV2の値が収集される。そして、収集データ管理部24により、図9に示すように、収集された変数V1の値2に対して、インデックス番号13と、経過時間3.8msと、ポイント番号5とが関連付けられてRAM13に記憶される。また、収集データ管理部24により、図10に示すように、収集された変数V2の値4に対して、インデックス番号13と、経過時間3.8msと、ポイント番号5とが関連付けられてRAM13に記憶される。これにより、変数V1およびV2の13番目の収集結果がRAM13に蓄積される。そして、タスクA、BおよびCの実行サイクルが同時に開始されてから4ms経過すると、タスクAの実行サイクルが経過することから、タスク実行部21により、タスクAが実行される。このとき、タスクBおよびCも実行サイクルが経過することから、タスクBおよびCは待機状態である。その後、上記した動作と同様の動作が繰り返し行われることにより、トレース番号0により指定された変数V1およびV2がRAM13に蓄積されていく。そして、所定の期間たとえば、10秒経過すると、データトレースが終了される。なお、図8~図10では、図面を簡略化するために、データトレースが開始されてから8ms経過するまでの状態を示した。その後、収集結果が蓄積されたトレース結果が通信IF15からツール装置200に送信される。次に、図11A~図11Cを参照して、本実施形態によるツール装置200のトレース結果の表示時の動作について説明する。ツール装置200では、図11Aに示すように、表示部35に、トレース番号が示される項目W1と、トレース番号により指定されることによってデータトレースの対象となる変数が示される項目W2とが表示される。図11Aの例では、項目W1にトレース番号0が表示され、項目W2に変数V1およびV2が表示される。表示部35には、項目W2の変数を選択するためのカーソルC1が表示される。図11Aでは、カーソルC1が変数V1を選択している。カーソルC1は、後述するカーソルC2により選択される変数アクティブな変数を選択するために設けられている。また、表示部35には、トレース結果がグラフGに表示される。このグラフGでは、カーソルC1により選択されている変数V1が実線の折れ線で表され、カーソルC1により選択されていない変数V2が点線の折れ線で表されている。なお、グラフGは、横軸が経過時間であり、縦軸が変数の値である。ここで、グラフGには、水平方向横軸方向に移動可能なカーソルC2が配置されている。そして、カーソルC2の近傍には、カーソルC2により選択されるデータに関する情報インデックス番号、経過時間、ポイント番号を表示する項目W3が配置されている。図11Aの例では、項目W3には、インデックス番号12、経過時間3.45ms、ポイント番号4が表示されている。なお、項目W3には、カーソルC1により選択される変数について、カーソルC2により選択されるデータ収集結果に関する情報が表示される。そして、利用者が操作部34を操作することにより、図11Bに示すように、カーソルC2が水平方向に移動された場合には、カーソルC2により選択されるデータが変更されることにより、項目W3に表示される内容が変更される。これにより、図11Bの例では、項目W3には、インデックス番号22、経過時間6.6ms、ポイント番号3が表示される。また、利用者が操作部34を操作することにより、図11Cに示すように、カーソルC1が切り替えられ、カーソルC1が変数V2を選択する場合には、グラフGにおいて、変数V1が点線の折れ線で表され、変数V2が実線の折れ線で表される。本実施形態では、上記のように、ユーザプログラムにおける位置を利用者が識別するためのポイント番号をTRSM命令Pが有することによって、収集データ管理部24が収集された変数収集結果とポイント番号とを関連付けることができる。これにより、収集結果がどのTRSM命令Pにより収集されたのかを利用者がポイント番号に基づいて判断することができる。したがって、収集結果がユーザプログラムのどの位置で収集されたのかを利用者が判断することができる。その結果、利用者がユーザプログラムをデバッグする際に、ユーザプログラムの欠陥を検出しやすくすることができる。また、本実施形態では、TRSM命令Pがトレース番号を有することによって、データ収集部22により、トレース番号で指定された変数を収集することができる。また、トレース番号には複数の変数を設定することができるので、利用者の所望の変数群について収集結果を収集することができる。また、本実施形態では、ユーザプログラムにTRSM命令Pを利用者の所望の位置に挿入することによって、利用者の所望のタイミングで変数を収集することができる。また、本実施形態では、表示部35の項目W3にポイント番号を表示することによって、収集結果をポイント番号と関連付けて利用者が確認することができる。また、本実施形態では、収集結果が蓄積されたトレース結果をグラフGに表示することによって、トレース結果を利用者が視覚的に理解しやすい状態で確認することができる。また、本実施形態では、CPU11が、シングルコアであり、時分割により複数のタスクを並行して実行することによって、CPU11の処理能力を効率的に利用することができる。なお、今回開示した実施形態は、すべての点で例示であって、限定的な解釈の根拠となるものではない。したがって、本発明の技術的範囲は、上記した実施形態のみによって解釈されるものではなく、特許請求の範囲の記載に基づいて画定される。また、本発明の技術的範囲には、特許請求の範囲と均等の意味および範囲内でのすべての変更が含まれる。たとえば、本実施形態では、PLC100がCPUユニット1と、入力ユニット2と、出力ユニット3と、電源ユニット4とを備える例を示したが、これに限らず、PLCが通信ユニットなどのその他のユニットを備えていてもよいし、PLCに入力ユニットが設けられていなくてもよい。また、本実施形態では、PLC100が複数のユニットにより構成される例を示したが、これに限らず、PLCが1つの筐体により構成され、その筐体に各ユニットの機能が組み込まれていてもよい。また、本実施形態では、CPU11がシングルコアであり、時分割により複数のタスクを並行して実行する例を示したが、これに限らず、CPUがマルチコアであり、複数のタスクを同時に並行して実行するようにしてもよい。このように構成すれば、タスクの処理能力の向上を図ることができる。また、本実施形態では、CPU11がシステムプログラム12aを実行することにより、タスク実行部21、データ収集部22、トレース番号設定部23および収集データ管理部24が実現される例を示したが、これに限らず、タスク実行部21、データ収集部22、トレース番号設定部23および収集データ管理部24がそれぞれハードウェアで構成されていてもよい。また、本実施形態では、収集された変数の値と、収集された順番を示すインデックス番号と、データトレースが開始されてからの経過時間と、TRSM命令Pのポイント番号とが関連付けられてRAM13に記憶される例を示したが、これに限らず、収集された変数の値と、収集された順番を示すインデックス番号と、データトレースが開始されてからの経過時間と、TRSM命令Pのポイント番号とが関連付けられてROM12に記憶されるようにしてもよい。また、本実施形態では、収集された変数の値と、データトレースが開始されてからの経過時間とが関連付けられる例を示したが、これに限らず、収集された変数の値と、変数が収集された時刻情報とが関連付けられるようにしてもよい。なお、時刻情報には、日付に関する情報が含まれていてもよいし、含まれていなくてもよい。また、本実施形態では、トレース番号が0であるTRSM命令PがユーザプログラムP1~P5に挿入され、トレース番号設定部23によりトレース番号0が設定される例を示したが、これに限らず、たとえば、トレース番号が1であるTRSM命令PがユーザプログラムP1~P5に挿入され、トレース番号設定部23によりトレース番号1が設定されてもよい。この場合には、収集データ管理部24により、データ収集部22により収集された変数V1~V7のうち、変数V3のみが管理される。これにより、変数V3についてのトレース結果を表示部35に表示させることができる。なお、同様に、トレース番号を2または3に設定するようにしてもよい。また、本実施形態では、TRSM命令PがユーザプログラムP1~P5の最後に挿入される例を示したが、これに限らず、TRSM命令Pがユーザプログラムの先頭に挿入されていてもよい。また、TRSM命令Pは、ユーザプログラムのどこに挿入されていてもよく、利用者の所望の位置に挿入することが可能である。また、本実施形態では、ユーザプログラムP1~P5の全てにTRSM命令Pが挿入される例を示したが、これに限らず、ユーザプログラムP1~P5のうち少なくとも1つにTRSM命令が挿入されていればよい。また、本実施形態では、1つのユーザプログラムに1つのTRSM命令Pが挿入される例を示したが、これに限らず、1つのユーザプログラムに複数のTRSM命令が挿入されていてもよい。また、本実施形態では、全ての収集結果をグラフ表示する例を示したが、これに限らず、所定のポイント番号たとえば、ポイント番号1の収集結果のみを選択してグラフ表示するようにしてもよい。このように構成すれば、利用者がユーザプログラムをデバッグする際に、ユーザプログラムの欠陥をより検出しやすくすることができる。また、本実施形態では、複数の変数についてのトレース結果を1つのグラフGに表示する例を示したが、これに限らず、複数の変数についてのトレース結果を変数毎にグラフに表示するようにしてもよい。また、アクティブな変数のみをグラフに表示するようにしてもよい。また、本実施形態において、タスクには、定期的に実行されるタスク定周期タスクに加えて、予め設定された実行条件が成立した場合に実行されるタスクイベントタスクが含まれていてもよい。