"制御対象を制御するコントローラの使用を支援するためのコントローラサポート装置であって、前記コントローラは、制御サイクルごとに、複数の制御プログラムを、前記制御プログラムの各々について設定された実行優先度と前記制御サイクルの整数倍の実行サイクルとに従って実行することが可能であり、前記コントローラサポート装置は、記憶部と、演算部とを備え、前記記憶部は、コントローラサポートプログラムと、前記制御プログラムとの格納に用いられ、前記コントローラサポートプログラムは、前記コントローラが前記制御プログラムを前記実行優先度と前記実行サイクルとに従って実行するときに、前記実行サイクルの開始からその実行サイクルにおける前記制御プログラムの実行終了までの間に経過する時間であって、前記コントローラにおいて測定された時間または前記コントローラサポート装置において推定された時間である総計実行時間を取得する総計実行時間取得処理と、前記総計実行時間を出力するための出力処理とを、前記演算部に実行させる、コントローラサポート装置。前記コントローラサポートプログラムは、さらに、前記コントローラが前記制御プログラムをその前記実行サイクル内で実際に実行する時間であって、前記コントローラにおいて測定された時間または前記コントローラサポート装置において推定された時間である正味実行時間を取得する正味実行時間取得処理を前記演算部に実行させ、前記総計実行時間取得処理は、前記総計実行時間を取得する対象である前記制御プログラムの前記正味実行時間と、当該制御プログラムの前記実行サイクルの開始からその実行サイクルにおける当該制御プログラムの実行終了までの間に実行される、当該制御プログラムより実行優先度の高い前記制御プログラムの前記正味実行時間とを加算する処理を含む、請求項1に記載のコントローラサポート装置。前記正味実行時間取得処理は、前記正味実行時間として、前記コントローラのシミュレータにおいて測定された前記制御プログラムの実行時間から算出された推定実行時間を取得する処理である、請求項2に記載のコントローラサポート装置。前記コントローラは、前記制御サイクルごとまたは前記制御プログラムの実行サイクルごとに入出力処理を実行し、前記コントローラサポートプログラムは、さらに、前記コントローラが前記入出力処理を実行するのに要する時間であって、前記コントローラにおいて測定された時間または前記コントローラサポート装置において推定された時間である入出力時間を取得する入出力時間取得処理を前記演算部に実行させ、前記総計実行時間取得処理は、前記総計実行時間を取得する対象である前記制御プログラムの前記正味実行時間と、当該制御プログラムの前記実行サイクルの開始からその実行サイクルにおける当該制御プログラムの実行終了までの間に実行される当該制御プログラムより実行優先度の高い前記制御プログラムの前記正味実行時間と、当該制御プログラムの前記実行サイクルの開始からその実行サイクルにおける当該制御プログラムの実行終了までの間に実行される前記入出力処理の前記入出力時間とを加算する処理を含む、請求項2に記載のコントローラサポート装置。前記正味実行時間取得処理は、前記正味実行時間として、前記コントローラのシミュレータにおいて測定された前記制御プログラムの実行時間から算出された推定実行時間を取得する処理である、請求項4に記載のコントローラサポート装置。前記出力処理は、前記総計実行時間を、前記総計実行時間を取得する対象である前記制御プログラムの前記実行サイクルの周期と対比できるグラフの形態で表示するための表示データを出力する処理である、請求項1~5のいずれか1項に記載のコントローラサポート装置。前記出力処理は、前記総計実行時間と、前記総計実行時間に含まれる前記正味実行時間とを表示するための表示データを出力する処理である、請求項2~5のいずれか1項に記載のコントローラサポート装置。制御対象を制御するコントローラの使用を支援するためのコントローラサポート装置において実行されるためのコントローラサポートプログラムであって、前記コントローラは、制御サイクルごとに、複数の制御プログラムを、前記制御プログラムの各々について設定された実行優先度と前記制御サイクルの整数倍の実行サイクルとに従って実行することが可能であり、前記コントローラサポート装置は、記憶部と、演算部とを備え、前記記憶部は、前記コントローラサポートプログラムと、前記制御プログラムとの格納に用いられ、前記コントローラサポートプログラムは、前記コントローラが前記制御プログラムを前記実行優先度と前記実行サイクルとに従って実行するときに、前記実行サイクルの開始からその実行サイクルにおける前記制御プログラムの実行終了までの間に経過する時間であって、前記コントローラにおいて測定された時間または前記コントローラサポート装置において推定された時間である総計実行時間を取得する総計実行時間取得処理と、前記総計実行時間を出力するための出力処理とを、前記演算部に実行させる、コントローラサポートプログラム。前記コントローラサポートプログラムは、さらに、前記コントローラが前記制御プログラムをその前記実行サイクル内で実際に実行する時間であって、前記コントローラにおいて測定された時間または前記コントローラサポート装置において推定された時間である正味実行時間を取得する正味実行時間取得処理を前記演算部に実行させ、前記総計実行時間取得処理は、前記総計実行時間を取得する対象である前記制御プログラムの前記正味実行時間と、当該制御プログラムの前記実行サイクルの開始からその実行サイクルにおける当該制御プログラムの実行終了までの間に実行される、当該制御プログラムより実行優先度の高い前記制御プログラムの前記正味実行時間とを加算する処理を含む、請求項8に記載のコントローラサポートプログラム。前記正味実行時間取得処理は、前記正味実行時間として、前記コントローラのシミュレータにおいて測定された前記制御プログラムの実行時間から算出された推定実行時間を取得する処理である、請求項9に記載のコントローラサポートプログラム。前記コントローラは、前記制御サイクルごとまたは前記制御プログラムの実行サイクルごとに入出力処理を実行し、前記コントローラサポートプログラムは、さらに、前記コントローラが前記入出力処理を実行するのに要する時間であって、前記コントローラにおいて測定された時間または前記コントローラサポート装置において推定された時間である入出力時間を取得する入出力時間取得処理を前記演算部に実行させ、前記総計実行時間取得処理は、前記総計実行時間を取得する対象である前記制御プログラムの前記正味実行時間と、当該制御プログラムの前記実行サイクルの開始からその実行サイクルにおける当該制御プログラムの実行終了までの間に実行される当該制御プログラムより実行優先度の高い前記制御プログラムの前記正味実行時間と、当該制御プログラムの前記実行サイクルの開始からその実行サイクルにおける当該制御プログラムの実行終了までの間に実行される前記入出力処理の前記入出力時間とを加算する処理を含む、請求項9に記載のコントローラサポートプログラム。前記正味実行時間取得処理は、前記正味実行時間として、前記コントローラのシミュレータにおいて測定された前記制御プログラムの実行時間から算出された推定実行時間を取得する処理である、請求項11に記載のコントローラサポートプログラム。前記出力処理は、前記総計実行時間を、前記総計実行時間を取得する対象である前記制御プログラムの前記実行サイクルの周期と対比できるグラフの形態で表示するための表示データを出力する処理である、請求項8~12のいずれか1項に記載のコントローラサポートプログラム。前記出力処理は、前記総計実行時間と、前記総計実行時間に含まれる前記正味実行時間とを表示するための表示データを出力する処理である、請求項9~12のいずれか1項に記載のコントローラサポートプログラム。制御対象を制御するコントローラの使用を支援するためのコントローラサポート装置において実行されるためのコントローラサポートプログラムを格納した記録媒体であって、前記コントローラは、制御サイクルごとに、複数の制御プログラムを、前記制御プログラムの各々について設定された実行優先度と前記制御サイクルの整数倍の実行サイクルとに従って実行することが可能であり、前記コントローラサポート装置は、記憶部と、演算部とを備え、前記記憶部は、前記コントローラサポートプログラムと、前記制御プログラムとの格納に用いられ、前記コントローラサポートプログラムは、前記コントローラが前記制御プログラムを前記実行優先度と前記実行サイクルとに従って実行するときに、前記実行サイクルの開始からその実行サイクルにおける前記制御プログラムの実行終了までの間に経過する時間であって、前記コントローラにおいて測定された時間または前記コントローラサポート装置において推定された時間である総計実行時間を取得する総計実行時間取得処理と、前記総計実行時間を出力するための出力処理とを、前記演算部に実行させる、コントローラサポートプログラムを格納した記録媒体。前記コントローラサポートプログラムは、さらに、前記コントローラが前記制御プログラムをその前記実行サイクル内で実際に実行する時間であって、前記コントローラにおいて測定された時間または前記コントローラサポート装置において推定された時間である正味実行時間を取得する正味実行時間取得処理を前記演算部に実行させ、前記総計実行時間取得処理は、前記総計実行時間を取得する対象である前記制御プログラムの前記正味実行時間と、当該制御プログラムの前記実行サイクルの開始からその実行サイクルにおける当該制御プログラムの実行終了までの間に実行される、当該制御プログラムより実行優先度の高い前記制御プログラムの前記正味実行時間とを加算する処理を含む、請求項15に記載のコントローラサポートプログラムを格納した記録媒体。前記正味実行時間取得処理は、前記正味実行時間として、前記コントローラのシミュレータにおいて測定された前記制御プログラムの実行時間から算出された推定実行時間を取得する処理である、請求項16に記載のコントローラサポートプログラムを格納した記録媒体。前記コントローラは、前記制御サイクルごとまたは前記制御プログラムの実行サイクルごとに入出力処理を実行し、前記コントローラサポートプログラムは、さらに、前記コントローラが前記入出力処理を実行するのに要する時間であって、前記コントローラにおいて測定された時間または前記コントローラサポート装置において推定された時間である入出力時間を取得する入出力時間取得処理を前記演算部に実行させ、前記総計実行時間取得処理は、前記総計実行時間を取得する対象である前記制御プログラムの前記正味実行時間と、当該制御プログラムの前記実行サイクルの開始からその実行サイクルにおける当該制御プログラムの実行終了までの間に実行される当該制御プログラムより実行優先度の高い前記制御プログラムの前記正味実行時間と、当該制御プログラムの前記実行サイクルの開始からその実行サイクルにおける当該制御プログラムの実行終了までの間に実行される前記入出力処理の前記入出力時間とを加算する処理を含む、請求項16に記載のコントローラサポートプログラムを格納した記録媒体。前記正味実行時間取得処理は、前記正味実行時間として、前記コントローラのシミュレータにおいて測定された前記制御プログラムの実行時間から算出された推定実行時間を取得する処理である、請求項18に記載のコントローラサポートプログラムを格納した記録媒体。前記出力処理は、前記総計実行時間を、前記総計実行時間を取得する対象である前記制御プログラムの前記実行サイクルの周期と対比できるグラフの形態で表示するための表示データを出力する処理である、請求項15~19のいずれか1項に記載のコントローラサポートプログラムを格納した記録媒体。前記出力処理は、前記総計実行時間と、前記総計実行時間に含まれる前記正味実行時間とを表示するための表示データを出力する処理である、請求項16~19のいずれか1項に記載のコントローラサポートプログラムを格納した記録媒体。特許文献1においては、制御プログラム全体が複数のタスクに分割構成される場合があることが想定されている。その場合でも、すべてのタスクは常に一連に実行されるので、実行サイクルはすべてのタスクに共通である。したがって、実処理時間の積算値としては、すべてのタスクについての総和の時間が得られればよい。しかしながら、コントローラにおける複数の制御プログラムの実行形態としては、複数の制御プログラムに互いに異なる実行優先度と実行サイクル周期とを定めて実行する形態がある。実行サイクルは、コントローラの動作時間の基本単位である制御サイクルの整数倍に設定される。複数の制御プログラムは、制御サイクルごとに、実行優先度と実行サイクルとに従って実行される。すなわち、各制御プログラムは、自らの新たな実行サイクルが開始すると、実行待ち状態となる。1つの制御サイクルの中では、より高い実行優先度の制御プログラムから先に実行され、より高い実行優先度の制御プログラムの実行が終了すると、より低い実行優先度の制御プログラムが実行される。制御プログラムの実行中に制御サイクルが終了すると、その制御プログラムの実行は中断され、次の制御サイクルにおいて、再びより高い実行優先度の制御プログラムから先に実行される。先の制御サイクルにおいて実行が中断された制御プログラムは、より高い実行優先度の制御プログラムの実行が終了してその制御プログラムの実行が可能になると、未実行の部分から実行を再開する。すなわち、より低い実行優先度の制御プログラムは、実行中断期間をはさみながら断続的に実行されることがある。このような場合に、より低い実行優先度の制御プログラムについて、単に実処理時間の積算値が提示されるだけでは、その制御プログラムを実行するためにどれだけの長さの実行サイクル周期が必要であるのかを知ることができなかった。本発明は、コントローラが複数の制御プログラムをそれらの実行優先度と実行サイクルとに従って実行する場合に、コントローラの使用を支援するためのコントローラサポート装置において、より低い実行優先度の制御プログラムについても、実行サイクル周期との比較が可能である実行時間の情報を出力することを目的とする。本発明のある局面によれば、制御対象を制御するコントローラの使用を支援するためのコントローラサポート装置を提供する。コントローラは、制御サイクルごとに、複数の制御プログラムを、制御プログラムの各々について設定された実行優先度と制御サイクルの整数倍の実行サイクルとに従って実行することが可能である。コントローラサポート装置は、記憶部と、演算部とを含む。記憶部は、コントローラサポートプログラムと、制御プログラムとの格納に用いられる。コントローラサポートプログラムは、コントローラが制御プログラムを実行優先度と実行サイクルとに従って実行するときに、実行サイクルの開始からその実行サイクルにおける制御プログラムの実行終了までの間に経過する時間であって、コントローラにおいて測定された時間またはコントローラサポート装置において推定された時間である総計実行時間を取得する総計実行時間取得処理と、総計実行時間を出力するための出力処理とを、演算部に実行させる。好ましくは、コントローラサポートプログラムは、さらに、コントローラが制御プログラムをその実行サイクル内で実際に実行する時間であって、コントローラにおいて測定された時間またはコントローラサポート装置において推定された時間である正味実行時間を取得する正味実行時間取得処理を演算部に実行させる。総計実行時間取得処理は、総計実行時間を取得する対象である制御プログラムの正味実行時間と、当該制御プログラムの実行サイクルの開始からその実行サイクルにおける当該制御プログラムの実行終了までの間に実行される、当該制御プログラムより実行優先度の高い制御プログラムの正味実行時間とを加算する処理を含む。さらに好ましくは、正味実行時間取得処理は、正味実行時間として、コントローラのシミュレータにおいて測定された制御プログラムの実行時間から算出された推定実行時間を取得する処理である。あるいはさらに好ましくは、コントローラは、制御サイクルごとまたは制御プログラムの実行サイクルごとに入出力処理を実行する。コントローラサポートプログラムは、さらに、コントローラが入出力処理を実行するのに要する時間であって、コントローラにおいて測定された時間またはコントローラサポート装置において推定された時間である入出力時間を取得する入出力時間取得処理を演算部に実行させる。総計実行時間取得処理は、総計実行時間を取得する対象である制御プログラムの正味実行時間と、当該制御プログラムの実行サイクルの開始からその実行サイクルにおける当該制御プログラムの実行終了までの間に実行される当該制御プログラムより実行優先度の高い制御プログラムの正味実行時間と、当該制御プログラムの実行サイクルの開始からその実行サイクルにおける当該制御プログラムの実行終了までの間に実行される入出力処理の入出力時間とを加算する処理を含む。さらに好ましくは、正味実行時間取得処理は、正味実行時間として、コントローラのシミュレータにおいて測定された制御プログラムの実行時間から算出された推定実行時間を取得する処理である。好ましくは、出力処理は、総計実行時間を、総計実行時間を取得する対象である制御プログラムの実行サイクルの周期と対比できるグラフの形態で表示するための表示データを出力する処理である。好ましくは、出力処理は、総計実行時間と、総計実行時間に含まれる正味実行時間とを表示するための表示データを出力する処理である。本発明の別の局面によれば、制御対象を制御するコントローラの使用を支援するためのコントローラサポート装置において実行されるためのコントローラサポートプログラムを提供する。コントローラは、制御サイクルごとに、複数の制御プログラムを、制御プログラムの各々について設定された実行優先度と制御サイクルの整数倍の実行サイクルとに従って実行することが可能である。コントローラサポート装置は、記憶部と、演算部とを含む。記憶部は、コントローラサポートプログラムと、制御プログラムとの格納に用いられる。コントローラサポートプログラムは、コントローラが制御プログラムを実行優先度と実行サイクルとに従って実行するときに、実行サイクルの開始からその実行サイクルにおける制御プログラムの実行終了までの間に経過する時間であって、コントローラにおいて測定された時間またはコントローラサポート装置において推定された時間である総計実行時間を取得する総計実行時間取得処理と、総計実行時間を出力するための出力処理とを、演算部に実行させる。好ましくは、コントローラサポートプログラムは、さらに、コントローラが制御プログラムをその実行サイクル内で実際に実行する時間であって、コントローラにおいて測定された時間またはコントローラサポート装置において推定された時間である正味実行時間を取得する正味実行時間取得処理を演算部に実行させる。総計実行時間取得処理は、総計実行時間を取得する対象である制御プログラムの正味実行時間と、当該制御プログラムの実行サイクルの開始からその実行サイクルにおける当該制御プログラムの実行終了までの間に実行される、当該制御プログラムより実行優先度の高い制御プログラムの正味実行時間とを加算する処理を含む。さらに好ましくは、正味実行時間取得処理は、正味実行時間として、コントローラのシミュレータにおいて測定された制御プログラムの実行時間から算出された推定実行時間を取得する処理である。あるいはさらに好ましくは、コントローラは、制御サイクルごとまたは制御プログラムの実行サイクルごとに入出力処理を実行する。コントローラサポートプログラムは、さらに、コントローラが入出力処理を実行するのに要する時間であって、コントローラにおいて測定された時間またはコントローラサポート装置において推定された時間である入出力時間を取得する入出力時間取得処理を演算部に実行させる。総計実行時間取得処理は、総計実行時間を取得する対象である制御プログラムの正味実行時間と、当該制御プログラムの実行サイクルの開始からその実行サイクルにおける当該制御プログラムの実行終了までの間に実行される当該制御プログラムより実行優先度の高い制御プログラムの正味実行時間と、当該制御プログラムの実行サイクルの開始からその実行サイクルにおける当該制御プログラムの実行終了までの間に実行される入出力処理の入出力時間とを加算する処理を含む。さらに好ましくは、正味実行時間取得処理は、正味実行時間として、コントローラのシミュレータにおいて測定された制御プログラムの実行時間から算出された推定実行時間を取得する処理である。好ましくは、出力処理は、総計実行時間を、総計実行時間を取得する対象である制御プログラムの実行サイクルの周期と対比できるグラフの形態で表示するための表示データを出力する処理である。好ましくは、出力処理は、総計実行時間と、総計実行時間に含まれる正味実行時間とを表示するための表示データを出力する処理である。本発明のさらに別の局面によれば、制御対象を制御するコントローラの使用を支援するためのコントローラサポート装置において実行されるためのコントローラサポートプログラムを格納した記録媒体を提供する。コントローラは、制御サイクルごとに、複数の制御プログラムを、制御プログラムの各々について設定された実行優先度と制御サイクルの整数倍の実行サイクルとに従って実行することが可能である。コントローラサポート装置は、記憶部と、演算部とを含む。記憶部は、コントローラサポートプログラムと、制御プログラムとの格納に用いられる。コントローラサポートプログラムは、コントローラが制御プログラムを実行優先度と実行サイクルとに従って実行するときに、実行サイクルの開始からその実行サイクルにおける制御プログラムの実行終了までの間に経過する時間であって、コントローラにおいて測定された時間またはコントローラサポート装置において推定された時間である総計実行時間を取得する総計実行時間取得処理と、総計実行時間を出力するための出力処理とを、演算部に実行させる。好ましくは、コントローラサポートプログラムは、さらに、コントローラが制御プログラムをその実行サイクル内で実際に実行する時間であって、コントローラにおいて測定された時間またはコントローラサポート装置において推定された時間である正味実行時間を取得する正味実行時間取得処理を演算部に実行させる。総計実行時間取得処理は、総計実行時間を取得する対象である制御プログラムの正味実行時間と、当該制御プログラムの実行サイクルの開始からその実行サイクルにおける当該制御プログラムの実行終了までの間に実行される、当該制御プログラムより実行優先度の高い制御プログラムの正味実行時間とを加算する処理を含む。さらに好ましくは、正味実行時間取得処理は、正味実行時間として、コントローラのシミュレータにおいて測定された制御プログラムの実行時間から算出された推定実行時間を取得する処理である。あるいはさらに好ましくは、コントローラは、制御サイクルごとまたは制御プログラムの実行サイクルごとに入出力処理を実行する。コントローラサポートプログラムは、さらに、コントローラが入出力処理を実行するのに要する時間であって、コントローラにおいて測定された時間またはコントローラサポート装置において推定された時間である入出力時間を取得する入出力時間取得処理を演算部に実行させる。総計実行時間取得処理は、総計実行時間を取得する対象である制御プログラムの正味実行時間と、当該制御プログラムの実行サイクルの開始からその実行サイクルにおける当該制御プログラムの実行終了までの間に実行される当該制御プログラムより実行優先度の高い制御プログラムの正味実行時間と、当該制御プログラムの実行サイクルの開始からその実行サイクルにおける当該制御プログラムの実行終了までの間に実行される入出力処理の入出力時間とを加算する処理を含む。さらに好ましくは、正味実行時間取得処理は、正味実行時間として、コントローラのシミュレータにおいて測定された制御プログラムの実行時間から算出された推定実行時間を取得する処理である。好ましくは、出力処理は、総計実行時間を、総計実行時間を取得する対象である制御プログラムの実行サイクルの周期と対比できるグラフの形態で表示するための表示データを出力する処理である。好ましくは、出力処理は、総計実行時間と、総計実行時間に含まれる正味実行時間とを表示するための表示データを出力する処理である。本発明によれば、コントローラが複数の制御プログラムをそれらの実行優先度と実行サイクルとに従って実行する場合に、コントローラの使用を支援するためのコントローラサポート装置において、より低い実行優先度の制御プログラムについても、実行サイクル周期との比較が可能である実行時間の情報を出力することができる。本発明の実施の形態について、図面を参照しながら詳細に説明する。なお、図中の同一または相当部分については、同一符号を付してその説明は繰り返さない。<A.システム構成>本実施の形態に係るコントローラサポート装置が使用を支援するコントローラの典型例としてPLCについて説明する。PLCは、機械や設備などの制御対象を制御する。PLCは、その構成要素としてCPUユニットを含む。CPUユニットは、マイクロプロセッサと、記憶手段と、通信回路とを含む。記憶手段は、制御プログラムおよびプログラムの実行を制御するシステムプログラムなどの格納に用いられる。マイクロプロセッサは、記憶手段に格納されたシステムプログラムおよび制御プログラムを実行する。通信回路は、出力データを送信しおよび入力データを受信する。まず、図1を参照して、PLC1のシステム構成について説明する。図1は、本実施の形態に係るコントローラPLCサポート装置が使用を支援するPLCシステムの概略構成を示す模式図である。図1を参照して、PLCシステムSYSは、PLC1と、PLC1とフィールドネットワーク2を介して接続されるサーボモータドライバ3およびリモートIOターミナル5と、フィールド機器である検出スイッチ6およびリレー7とを含む。また、PLC1には、接続ケーブル10などを介してコントローラサポート装置8が接続される。PLC1は、主たる演算処理を実行するCPUユニット13と、1つ以上のIOユニット14と、特殊ユニット15とを含む。これらのユニットは、PLCシステムバス11を介して、データを互いに遣り取りできるように構成される。また、これらのユニットには、電源ユニット12によって適切な電圧の電源が供給される。なお、PLC1として構成される各ユニットは、PLCメーカーが提供するものであるので、PLCシステムバス11は、一般にPLCメーカーごとに独自に開発され、使用されている。これに対して、フィールドネットワーク2については、異なるメーカーの製品同士が接続できるように、その規格などが公開されている場合も多い。CPUユニット13の詳細については、図2を参照して後述する。IOユニット14は、一般的な入出力処理に関するユニットであり、オン/オフといった2値化されたデータの入出力を司る。すなわち、IOユニット14は、検出スイッチ6などのセンサが何らかの対象物を検出している状態オンおよび何らの対象物も検出していない状態オフのいずれであるかという情報を収集する。また、IOユニット14は、リレー7やアクチュエータといった出力先に対して、活性化するための指令オンおよび不活性化するための指令オフのいずれかを出力する。特殊ユニット15は、アナログデータの入出力、温度制御、特定の通信方式による通信といった、IOユニット14ではサポートしない機能を有する。フィールドネットワーク2は、CPUユニット13と遣り取りされる各種データを伝送する。フィールドネットワーク2としては、典型的には、各種の産業用イーサネット登録商標を用いることができる。産業用イーサネット登録商標としては、たとえば、EtherCAT登録商標、ProfinetIRT、MECHATROLINK登録商標-III、Powerlink、SERCOS登録商標-III、CIPMotionなどが知られており、これらのうちのいずれを採用してもよい。さらに、産業用イーサネット登録商標以外のフィールドネットワークを用いてもよい。たとえば、モーション制御を行わない場合であれば、DeviceNet、CompoNet/IP登録商標などを用いてもよい。なお、図1には、PLCシステムバス11およびフィールドネットワーク2の両方を有するPLCシステムSYSを例示するが、一方のみを搭載するシステム構成を採用することもできる。たとえば、フィールドネットワーク2ですべてのユニットを接続してもよい。あるいは、フィールドネットワーク2を使用せずに、サーボモータドライバ3をPLCシステムバス11に直接接続してもよい。さらに、フィールドネットワーク2の通信ユニットをPLCシステムバス11に接続し、CPUユニット13から当該通信ユニット経由で、フィールドネットワーク2に接続された機器との間の通信を行うようにしてもよい。なお、PLC1は、CPUユニット13にIOユニット14の機能やサーボモータドライバ3の機能を持たせることにより、IOユニット14やサーボモータドライバ3などを介さずにCPUユニット13が直接制御対象を制御する構成でもよい。サーボモータドライバ3は、フィールドネットワーク2を介してCPUユニット13と接続されるとともに、CPUユニット13からの指令値に従ってサーボモータ4を駆動する。より具体的には、サーボモータドライバ3は、PLC1から一定周期で、位置指令値、速度指令値、トルク指令値といった指令値を受ける。また、サーボモータドライバ3は、サーボモータ4の軸に接続されている位置センサロータリーエンコーダやトルクセンサといった検出器から、位置、速度典型的には、今回位置と前回位置との差から算出される、トルクといったサーボモータ4の動作に係る実測値を取得する。そして、サーボモータドライバ3は、CPUユニット13からの指令値を目標値に設定し、実測値をフィードバック値として、フィードバック制御を行う。すなわち、サーボモータドライバ3は、実測値が目標値に近づくようにサーボモータ4を駆動するための電流を調整する。なお、サーボモータドライバ3は、サーボモータアンプと称されることもある。また、図1には、サーボモータ4とサーボモータドライバ3とを組み合わせたシステム例を示すが、その他の構成、たとえば、パルスモータとパルスモータドライバとを組み合わせたシステムを採用することもできる。図1に示すPLCシステムSYSのフィールドネットワーク2には、さらに、リモートIOターミナル5が接続されている。リモートIOターミナル5は、基本的には、IOユニット14と同様に、一般的な入出力処理に関する処理を行う。より具体的には、リモートIOターミナル5は、フィールドネットワーク2でのデータ伝送に係る処理を行うための通信カプラ52と、1つ以上のIOユニット53とを含む。これらのユニットは、リモートIOターミナルバス51を介して、データを互いに遣り取りできるように構成される。本発明の実施の形態に係るコントローラサポート装置8については後述する。<B.CPUユニットのハードウェア構成>次に、図2を参照して、CPUユニット13のハードウェア構成について説明する。図2は、本発明の実施の形態に係るコントローラPLCサポート装置が使用を支援するCPUユニット13のハードウェア構成を示す模式図である。図2を参照して、CPUユニット13は、マイクロプロセッサ100と、チップセット102と、メインメモリ104と、不揮発性メモリ106と、システムタイマ108と、PLCシステムバスコントローラ120と、フィールドネットワークコントローラ140と、USBコネクタ110とを含む。チップセット102と他のコンポーネントとの間は、各種のバスを介してそれぞれ結合されている。マイクロプロセッサ100およびチップセット102は、典型的には、汎用的なコンピュータアーキテクチャに準じて構成される。すなわち、マイクロプロセッサ100は、チップセット102から内部クロックに従って順次供給される命令コードを解釈して実行する。チップセット102は、接続されている各種コンポーネントとの間で内部的なデータを遣り取りするとともに、マイクロプロセッサ100に必要な命令コードを生成する。さらに、チップセット102は、マイクロプロセッサ100での演算処理の実行の結果得られたデータなどをキャッシュする機能を有する。CPUユニット13は、記憶手段として、メインメモリ104および不揮発性メモリ106を有する。メインメモリ104は、揮発性の記憶領域RAMであり、CPUユニット13への電源投入後にマイクロプロセッサ100で実行されるべき各種プログラムを保持する。また、メインメモリ104は、マイクロプロセッサ100による各種プログラムの実行時の作業用メモリとしても使用される。このようなメインメモリ104としては、DRAMDynamicRandomAccessMemoryやSRAMStaticRandomAccessMemoryといったデバイスが用いられる。一方、不揮発性メモリ106は、リアルタイムOSOperatingSystem、PLC1のシステムプログラム、ユーザプログラム、モーション演算プログラム、システム設定パラメータといったデータを不揮発的に保持する。これらのプログラムやデータは、必要に応じて、マイクロプロセッサ100がアクセスできるようにメインメモリ104にコピーされる。このような不揮発性メモリ106としては、フラッシュメモリのような半導体メモリを用いることができる。あるいは、ハードディスクドライブのような磁気記録媒体や、DVD-RAMDigitalVersatileDiskRandomAccessMemoryのような光学記録媒体などを用いることもできる。システムタイマ108は、一定周期ごとに割り込み信号を発生してマイクロプロセッサ100に提供する。典型的には、ハードウェアの仕様によって、複数の異なる周期でそれぞれ割り込み信号を発生するように構成されるが、OSOperatingSystemやBIOSBasicInputOutputSystemなどによって、任意の周期で割り込み信号を発生するように設定することもできる。このシステムタイマ108が発生する割り込み信号を利用して、後述するような制御サイクルごとの制御動作が実現される。CPUユニット13は、通信回路として、PLCシステムバスコントローラ120およびフィールドネットワークコントローラ140を有する。これらの通信回路は、出力データの送信および入力データの受信を行う。なお、CPUユニット13自体にIOユニット14やサーボモータドライバ3の機能を持たせる場合は、通信回路による出力データの送信および入力データの受信は、それらの機能を担う部分を通信の相手方としてCPUユニット13の内部で行われる送信および受信となる。PLCシステムバスコントローラ120は、PLCシステムバス11を介したデータの遣り取りを制御する。より具体的には、PLCシステムバスコントローラ120は、DMADynamicMemoryAccess制御回路122と、PLCシステムバス制御回路124と、バッファメモリ126とを含む。なお、PLCシステムバスコントローラ120は、PLCシステムバスコネクタ130を介してPLCシステムバス11と内部的に接続される。バッファメモリ126は、PLCシステムバス11を介して他のユニットへ出力されるデータ以下出力データとも称す。の送信バッファ、および、PLCシステムバス11を介して他のユニットから入力されるデータ以下入力データとも称す。の受信バッファとして機能する。なお、マイクロプロセッサ100による演算処理によって作成された出力データは、原始的にはメインメモリ104に格納される。そして、特定のユニットへ転送されるべき出力データは、メインメモリ104から読み出されて、バッファメモリ126に一次的に保持される。また、他のユニットから転送された入力データは、バッファメモリ126に一次的に保持された後、メインメモリ104に移される。DMA制御回路122は、メインメモリ104からバッファメモリ126への出力データの転送、および、バッファメモリ126からメインメモリ104への入力データの転送を行う。PLCシステムバス制御回路124は、PLCシステムバス11に接続される他のユニットとの間で、バッファメモリ126の出力データを送信する処理および入力データを受信してバッファメモリ126に格納する処理を行う。典型的には、PLCシステムバス制御回路124は、PLCシステムバス11における物理層およびデータリンク層の機能を提供する。フィールドネットワークコントローラ140は、フィールドネットワーク2を介したデータの遣り取りを制御する。すなわち、フィールドネットワークコントローラ140は、用いられるフィールドネットワーク2の規格に従い、出力データの送信および入力データの受信を制御する。たとえば、EtherCAT登録商標規格に従うフィールドネットワーク2が採用される場合には、通常のイーサネット登録商標通信を行うためのハードウェアを含む、フィールドネットワークコントローラ140が用いられる。EtherCAT登録商標規格では、通常のイーサネット登録商標規格に従う通信プロトコルを実現する一般的なイーサネット登録商標コントローラを利用できる。フィールドネットワーク2として採用される産業用イーサネット登録商標の種類によっては、通常の通信プロトコルとは異なる専用仕様の通信プロトコルに対応した特別仕様のイーサネット登録商標コントローラが用いられる。また、産業用イーサネット登録商標以外のフィールドネットワークを採用した場合には、当該規格に応じた専用のフィールドネットワークコントローラが用いられる。バッファメモリ146は、フィールドネットワーク2を介して他の装置などへ出力されるデータこのデータについても、以下出力データと称す。の送信バッファ、および、フィールドネットワーク2を介して他の装置などから入力されるデータこのデータについても、以下入力データとも称す。の受信バッファとして機能する。上述したように、マイクロプロセッサ100による演算処理によって作成された出力データは、原始的にはメインメモリ104に格納される。そして、特定の装置へ転送されるべき出力データは、メインメモリ104から読み出されて、バッファメモリ146に一次的に保持される。また、他の装置から転送された入力データは、バッファメモリ146に一次的に保持された後、メインメモリ104に移される。DMA制御回路142は、メインメモリ104からバッファメモリ146への出力データの転送、および、バッファメモリ146からメインメモリ104への入力データの転送を行う。フィールドネットワーク制御回路144は、フィールドネットワーク2に接続される他の装置との間で、バッファメモリ146の出力データを送信する処理および入力データを受信してバッファメモリ146に格納する処理を行う。典型的には、フィールドネットワーク制御回路144は、フィールドネットワーク2における物理層およびデータリンク層の機能を提供する。USBコネクタ110は、コントローラサポート装置8とCPUユニット13とを接続するためのインターフェイスである。典型的には、コントローラサポート装置8から転送される、CPUユニット13のマイクロプロセッサ100で実行可能なプログラムなどは、USBコネクタ110を介してPLC1に取込まれる。<C.CPUユニットのソフトウェア構成>次に、図3を参照して、コントローラPLC1が各種機能を提供するためのソフトウェア群について説明する。これらのソフトウェアに含まれる命令コードは、適切なタイミングで読み出され、CPUユニット13のマイクロプロセッサ100によって実行される。図3は、本発明の実施の形態に係るコントローラPLCサポート装置が使用を支援するCPUユニット13で実行されるソフトウェア構成を示す模式図である。図3を参照して、CPUユニット13で実行されるソフトウェアとしては、リアルタイムOS200と、システムプログラム210と、ユーザプログラム236との3階層になっている。リアルタイムOS200は、CPUユニット13のコンピュータアーキテクチャに応じて設計されており、マイクロプロセッサ100がシステムプログラム210およびユーザプログラム236を実行するための基本的な実行環境を提供する。このリアルタイムOSは、典型的には、PLCのメーカーあるいは専門のソフトウェア会社などによって提供される。システムプログラム210は、PLC1としての機能を提供するためのソフトウェア群である。具体的には、システムプログラム210は、スケジューラプログラム212と、出力処理プログラム214と、入力処理プログラム216と、シーケンス命令演算プログラム232と、モーション演算プログラム234と、その他のシステムプログラム220とを含む。なお、一般には出力処理プログラム214および入力処理プログラム216は、連続的一体としてに実行されるので、これらのプログラムを、IO処理プログラム218と総称する場合もある。ユーザプログラム236は、ユーザにおける制御目的に応じて作成される。すなわち、PLCシステムSYSを用いて制御する対象のラインプロセスなどに応じて、任意に設計されるプログラムである。ユーザプログラム236は、シーケンス命令演算プログラム232およびモーション演算プログラム234と協働して、ユーザにおける制御目的を実現する。すなわち、ユーザプログラム236は、シーケンス命令演算プログラム232およびモーション演算プログラム234によって提供される命令、関数、機能モジュールなどを利用することで、プログラムされた動作を実現する。そのため、ユーザプログラム236、シーケンス命令演算プログラム232、およびモーション演算プログラム234を、制御プログラム230と総称する場合もある。以下、各プログラムについてより詳細に説明する。ユーザプログラム236は、上述したように、ユーザにおける制御目的たとえば、対象のラインやプロセスに応じて作成される。ユーザプログラム236は、典型的には、CPUユニット13のマイクロプロセッサ100で実行可能なオブジェクトプログラム形式になっている。このユーザプログラム236は、コントローラサポート装置8などにおいて、ラダー言語などによって記述されたソースプログラムがコンパイルされることで生成される。そして、生成されたオブジェクトプログラム形式のユーザプログラム236は、コントローラサポート装置8から接続ケーブル10を介してCPUユニット13へ転送され、不揮発性メモリ106などに格納される。スケジューラプログラム212は、出力処理プログラム214、入力処理プログラム216、および制御プログラム230について、各実行サイクルでの処理開始および処理中断後の処理再開を制御する。より具体的には、スケジューラプログラム212は、ユーザプログラム236およびモーション演算プログラム234の実行を制御する。CPUユニット13では、モーション演算プログラム234に適した一定周期の実行サイクル制御サイクルを処理全体の共通サイクルとして採用する。そのため、1つの制御サイクル内で、すべての処理を完了することは難しいので、実行すべき処理の優先度などに応じて、各制御サイクルにおいて実行を完了すべき処理と、複数の制御サイクルに亘って実行してもよい処理とが区分される。スケジューラプログラム212は、これらの区分された処理の実行順序などを管理する。より具体的には、スケジューラプログラム212は、各制御サイクル期間内において、より高い優先度が与えられているプログラムほど先に実行する。出力処理プログラム214は、ユーザプログラム236制御プログラム230の実行によって生成された出力データを、PLCシステムバスコントローラ120および/またはフィールドネットワークコントローラ140へ転送するのに適した形式に再配置する。PLCシステムバスコントローラ120またはフィールドネットワークコントローラ140が、マイクロプロセッサ100からの、送信を実行するための指示を必要とする場合は、出力処理プログラム214がそのような指示を発行する。入力処理プログラム216は、PLCシステムバスコントローラ120および/またはフィールドネットワークコントローラ140によって受信された入力データを、制御プログラム230が使用するのに適した形式に再配置する。シーケンス命令演算プログラム232は、ユーザプログラム236で使用されるある種のシーケンス命令が実行されるときに呼び出されて、その命令の内容を実現するために実行されるプログラムである。モーション演算プログラム234は、ユーザプログラム236による指示に従って実行され、サーボモータドライバ3やパルスモータドライバといったモータドライバに対して出力する指令値を実行されるごとに算出するプログラムである。その他のシステムプログラム220は、図3に個別に示したプログラム以外の、PLC1の各種機能を実現するためのプログラム群をまとめて示したものである。リアルタイムOS200は、複数のプログラムを時間の経過に従い切り替えて実行するための環境を提供する。PLC1においては、CPUユニット13のプログラム実行によって生成された出力データを他のユニットまたは他の装置へ出力送信するためのイベント割り込みとして、制御サイクル開始の割り込みが初期設定される。リアルタイムOS200は、制御サイクル開始の割り込みが発生すると、マイクロプロセッサ100での実行対象を、割り込み発生時点で実行中のプログラムからスケジューラプログラム212に切り替える。なお、リアルタイムOS200は、スケジューラプログラム212およびスケジューラプログラム212がその実行を制御するプログラムが何ら実行されていない場合に、その他のシステムプログラム210に含まれているプログラムを実行する。このようなプログラムとしては、たとえば、CPUユニット13とコントローラサポート装置8との間の接続ケーブル10USBなどを介した通信処理に関するものが含まれる。なお、制御プログラム230およびスケジューラプログラム212は、記憶手段であるメインメモリ104および不揮発性メモリ106に格納される。<D.CPUユニットにおける実行動作>次に、CPUユニット13における実行動作について説明する。図4は、本発明の実施の形態に係るコントローラPLCサポート装置が使用を支援するCPUユニット13における実行動作の一例を示すシーケンス図である。図4においては、紙面の上から下に向かって経過する時間軸に沿って、IO処理プログラム、制御プログラムA、および制御プログラムBが実行される期間が示されている。制御プログラムAおよびBのそれぞれの時間軸に沿って示した破線の角丸の矩形は、対応する制御プログラムの実行サイクルを示す。図4に示す例では、制御プログラムAは、1回分の制御サイクルを実行サイクルとしており、制御プログラムBは、4回分の制御サイクルを実行サイクルとしている。また、制御プログラムAの実行優先度は、制御プログラムBの実行優先度よりも高く設定されているものとする。制御プログラムAのシーケンスプログラムユーザプログラムは、モーション制御を実現するためのモーション命令を含んでおり、モーション命令の実行によりモーション演算プログラム234が呼び出されて実行される。一方、制御プログラムBのシーケンスプログラムは、モーション命令を含んでいない。制御サイクル1が開始すると、スケジューラプログラム212の実行制御により、IO処理プログラムが実行される。IO処理プログラムの実行による出力処理および入力処理が終了すると、スケジューラプログラム212が行う実行制御により、制御プログラムAが実行される。制御プログラムAの実行においては、まずシーケンスプログラムが実行され、引き続いて、モーション演算プログラム234が実行される。シーケンス命令演算プログラム232は、シーケンスプログラムの実行中に、呼び出される都度、実行される。制御プログラムAの全体シーケンスプログラムおよびモーション演算プログラムは1つのスレッドとして構成されており、実行途中でスケジューラプログラム212の関与なしに連続して実行される。制御プログラムAの実行が終了すると、スケジューラプログラム212が行う実行制御により、制御プログラムBが実行される。しかし、制御プログラムBの実行中に制御サイクル1が終了する制御サイクル2が開始するので、その時点で制御プログラムBの実行は中断される。制御サイクル2以降においても、IO処理プログラムおよび制御プログラムAは、制御サイクル1での実行と同様の実行を繰り返す。制御サイクル2における制御プログラムAの実行が終了すると、制御プログラムBの未実行の部分が実行される。しかし、制御サイクル2においても、制御プログラムBの実行中に制御サイクル2が終了するので、制御プログラムBの実行は、再び中断される。制御サイクル3において実行再開した制御プログラムBは、制御サイクル3が終了するまでに実行終了する。制御サイクル4においても制御サイクル1から開始した制御プログラムBの実行サイクルが継続しているが、制御プログラムBは、制御サイクル3においてすでに今回の実行サイクルにおける実行を終了しているため、制御サイクル4においては実行されない。このように、PLC1は、制御サイクルごとに、複数の制御プログラムを、制御プログラムの各々について設定された実行優先度と制御サイクルの整数倍の実行サイクルとに従って実行することが可能となっている。また、PLC1は、制御サイクルごとまたは制御プログラムの実行サイクルごとに入出力処理IO処理を実行する。<E.サポート装置のハードウェア構成>次に、PLC1で実行されるプログラムの作成およびPLC1のメンテナンスなどを行うためのコントローラサポート装置8について説明する。図5は、本発明の実施の形態に係るコントローラサポート装置8のハードウェア構成を示す模式図である。図5を参照して、コントローラサポート装置8は、典型的には、汎用のコンピュータで構成される。なお、メンテナンス性の観点からは、可搬性に優れたノート型のパーソナルコンピュータが好ましい。図5を参照して、コントローラサポート装置8は、OSを含む各種プログラムを実行するCPU81と、BIOSや各種データを格納するROMReadOnlyMemory82と、CPU81でのプログラムの実行に必要なデータを格納するための作業領域を提供するメモリRAM83と、CPU81で実行されるプログラムなどを不揮発的に格納するハードディスクHDD84とを含む。CPU81がコントローラサポート装置8の演算部に相当し、ROM82、RAM83およびハードディスク84がコントローラサポート装置8の記憶部に相当する。コントローラサポート装置8は、さらに、ユーザからの操作を受付けるキーボード85およびマウス86と、情報をユーザに提示するためのモニタ87とを含む。さらに、コントローラサポート装置8は、PLC1CPUユニット13などと通信するための通信インターフェイスIF89を含む。後述するように、コントローラサポート装置8で実行される各種プログラムは、CD-ROM9に格納されて流通する。このCD-ROM9に格納されたプログラムは、CD-ROMCompactDiskReadOnlyMemoryドライブ88によって読取られ、ハードディスクHDD84などへ格納される。あるいは、上位のホストコンピュータなどからネットワークを通じてプログラムをダウンロードするように構成してもよい。上述したように、コントローラサポート装置8は、汎用的なコンピュータを用いて実現されるので、これ以上の詳細な説明は行わない。<F.コントローラサポート装置のソフトウェア構成>次に、図6を参照して、本実施の形態に係るコントローラサポート装置8が各種機能を提供するためのソフトウェア群について説明する。図6は、本発明の実施の形態に係るコントローラサポート装置8のソフトウェア構成を示す模式図である。図6を参照して、コントローラサポート装置8ではOS310が実行され、コントローラサポートプログラム320に含まれる各種のプログラムを実行可能な環境が提供される。コントローラサポートプログラム320は、エディタプログラム321と、コンパイラプログラム322と、デバッガプログラム323と、シミュレータプログラム324と、総計実行時間算出プログラム325と、出力プログラム327と、通信プログラム328と、較正式推定実行時間算出プログラム331と、積算式実行時間算出プログラム332と、推定入出力時間算出プログラム329と、コントローラ実測時間取得プログラム326とを含む。コントローラサポートプログラム320に含まれるそれぞれのプログラムは、典型的には、CD-ROM9に格納された状態で流通して、コントローラサポート装置8にインストールされる。エディタプログラム321は、ユーザプログラムソースプログラム330を作成するための入力および編集といった機能を提供する。より具体的には、エディタプログラム321は、ユーザがキーボード85やマウス86を操作してユーザプログラム236の制御ソースプログラム330を作成する機能に加えて、作成した制御ソースプログラム330の保存機能および編集機能を提供する。また、エディタプログラム321は、外部からの制御プログラム230その中でも特に、ユーザプログラム236のソースプログラムを入力し、またユーザの操作により既存の制御プログラム230のソースプログラムを編集する。コンパイラプログラム322は、制御ソースプログラム330をコンパイルして、CPUユニット13のマイクロプロセッサ100で実行可能なオブジェクトプログラム形式の制御プログラム342を生成する機能を提供する。また、コンパイラプログラム322は、制御ソースプログラム330をコンパイルして、コントローラサポート装置8のCPU81で実行可能なオブジェクトプログラム形式の制御プログラム340を生成する機能を提供する。デバッガプログラム323は、制御ソースプログラム330に対してデバッグを行うための機能を提供する。このデバッグの内容としては、制御ソースプログラム330のうちユーザが指定した範囲を部分的に実行する、制御ソースプログラム330の実行中における変数値の時間的な変化を追跡する、といった動作を含む。シミュレータプログラム324は、実行されると、コントローラサポート装置8内にPLC1のCPUユニット13コントローラのシミュレータを構築する。本シミュレータは、以下のような機能を提供する。1システムタイマの信号により制御サイクルを開始させるCPUユニット13のリアルタイムOSの機能。2制御プログラムの実行優先度と実行サイクルとに従って制御プログラム230の実行を制御する、CPUユニット13のスケジューラプログラム212の機能。3CPUユニット13の出力処理プログラム214および入力処理プログラム216の機能。4制御対象に代わって入力データを与える機能、および、可能な場合には、出力データを受けて動作する制御対象を模倣し、動作の結果を入力データに反映する機能。また、シミュレータプログラム324は、制御プログラムシミュレータ用オブジェクトプログラム340がシミュレータ上で動作するときに必要な、CPUユニット13におけるシーケンス命令演算プログラム232および/またはモーション演算プログラム234に相当するプログラムを提供する。制御プログラムシミュレータ用オブジェクトプログラム340の実行コード自体は、コントローラサポート装置8のCPU81が実行可能なコードであるので、上記の実行環境による実行制御または支援のもと、コントローラサポート装置8のCPU81によって直接実行される。あるいは、シミュレータプログラム324がCPUユニット13のマイクロプロセッサ100を仮想的に構築することにより、シミュレータ上で制御プログラムコントローラ用オブジェクトプログラム342を動作させてもよい。その場合は、制御プログラムシミュレータ用オブジェクトプログラム340と制御プログラムコントローラ用オブジェクトプログラム342とは同一のプログラムとなるので、これらを別々に生成する必要はない。また、コントローラサポート装置8のCPU81とCPUユニット13のマイクロプロセッサ100とが同系列のプロセッサであって、CPU81が制御プログラムコントローラ用オブジェクトプログラム342の実行コードを実行可能である場合も、制御プログラムシミュレータ用オブジェクトプログラム340と制御プログラムコントローラ用オブジェクトプログラム342とは同一のプログラムとなる。総計実行時間算出プログラム325は、実行されることにより、後述する図7の総計実行時間算出部325Aを構成する。出力プログラム327は、実行されることにより、後述する図7の出力部327Aを構成する。較正式推定実行時間算出プログラム331は、実行されることにより、後述する図7の較正式推定実行時間算出部331Aを構成する。積算式実行時間算出プログラム332は、実行されることにより、後述する図7の積算式推定実行時間算出部332Aを構成する。推定入出力時間算出プログラム329は、実行されることにより、後述する図7の推定入出力時間算出部329Aを構成する。出力プログラム327は、実行されることにより、図7の出力部327Aを構成する。これらのプログラムにより提供される処理については、図7を参照して後に詳述する。コントローラ実測時間取得プログラム326は、実行されることにより、コントローラから、実測実行時間、実測入出力時間、実測総計実行時間を取得する。通信プログラム328は、PLC1のCPUユニット13へ制御プログラム230のCPUユニット13用のオブジェクトプログラム342を転送する機能を提供する。一般的には、PLC1に実装されるシステムプログラム210は、CPUユニット13の製造段階でCPUユニット13の不揮発性メモリ106へ格納される。但し、CD-ROM9にシステムプログラム210を格納しておけば、ユーザは、CD-ROM9のシステムプログラム210をコントローラサポート装置8へコピーし、通信プログラム328が提供する機能を利用してコピーしたシステムプログラム210をCPUユニット13へ転送することもできる。さらに、CD-ROM9に、PLC1のCPUユニット13で実行されるリアルタイムOS200を格納しておけば、リアルタイムOS200についてもユーザ操作によってPLC1へ再インストールできる。以上のように、コントローラサポート装置8の記憶部図5に示すROM82、RAM83およびハードディスク84などは、コントローラサポート装置8を実現するためのコントローラローラサポートプログラムに加えて、制御プログラム340,342の格納に用いられる。<G.コントローラサポート装置に関連する全体処理>次に、図7を参照して、コントローラサポート装置8における各処理について説明する。図7は、本発明の実施の形態に係るコントローラサポート装置8に関連する全体処理を示す模式図である。図7を参照して、コントローラサポート装置8は、正味実行時間取得部350と、入出力時間取得部352と、総計実行時間取得部354と、出力部327Aとを含む。また、コントローラサポート装置8は、記憶部図5に示すROM82、RAM83およびハードディスク84などを有している。記憶部図5に示すROM82、RAM83およびハードディスク84などは、図6に示す各プログラムの格納に用いられるほか、較正データ、命令別実行時間データ、システム構成データ、実測実行時間、実測入出力時間、実測総計実行時間の格納に用いられる。さらに、記憶部は、ユーザによって入力される、制御ソースプログラム330およびシステム構成データの格納にも用いられる。コントローラPLC1は、制御プログラムコントローラ用オブジェクトプログラム342を実行し、その実行時間を測定して実測実行時間を得る。また、コントローラは、入出力時間を測定して実測入出力時間を得る。また、コントローラは、後述する総計実行時間を測定して実測総計実行時間を得る。コントローラサポート装置8は、コントローラと通信することにより、実測実行時間、実測入出力時間、および実測総計実行時間を取得する。正味実行時間取得部350は、正味実行時間を取得する処理部である。正味実行時間は、コントローラが制御プログラム342をその実行サイクル内で、すなわち制御プログラム342の実行開始から実行終了までの間に、実際に実行する時間であり、その制御プログラム342の実行が休止している時間を含まない時間である。正味実行時間は、背景技術の説明において言及した実処理時間と同義である。較正式推定実行時間、積算式推定実行時間、および実測実行時間は、いずれも正味実行時間に該当する。正味実行時間取得部350は、較正式推定実行時間の算出、積算式推定実行時間の算出、および実測実行時間の取得を行うための各一連の処理部を総称するものである。すなわち、正味実行時間取得部350は、正味実行時間に含まれるいずれかの時間を取得する。但し、コントローラサポート装置8は、必ずしもこれら3系統の処理部のすべてを有していなくともよく、少なくとも1系統の処理部を有していれば正味実行時間のデータを利用できる。このように、コントローラサポート装置8CPU81は、コントローラサポートプログラムを実行することにより、コントローラが制御プログラム342をその実行サイクル内で実際に実行する時間であって、コントローラにおいて測定された時間またはコントローラサポート装置8において推定された時間である正味実行時間を取得する正味実行時間取得処理を実行する。以下、正味実行時間取得部350の各系統について説明する。まず、較正式推定実行時間算出部331Aは、較正データを用いて、シミュレータ実行時間から較正式推定実行時間を算出する。較正データの算出および較正式推定実行時間の算出についての詳細は、図8を参照して後述する。制御プログラムシミュレータ用オブジェクトプログラム340は、図6のコンパイラプログラム322より具体的には、後述する図8のシミュレータ用コンパイラによって、制御ソースプログラム330から生成される。シミュレータ324Aは、制御プログラムシミュレータ用オブジェクトプログラム340を実行し、その実行時間であるシミュレータ実行時間を測定する。このように、コントローラサポート装置8CPU81は、コントローラサポートプログラムを実行することにより、コントローラPLC1のシミュレータにおいて測定された制御プログラムの実行時間から算出された推定実行時間を、正味実行時間として、取得する処理を実行する。積算式推定実行時間算出部332Aは、制御ソースプログラム330に基づいて制御プログラムの実行をトレースし、制御プログラムの実行される命令ごとにその命令の実行時間データを記憶部から読み出して実行時間を積算することにより、積算式推定実行時間を算出する。命令別実行時間データは、コントローラサポートプログラム320の供給者から提供される。さらに、コントローラにおいて測定され、コントローラから取得される実測実行時間が、正味実行時間として、記憶部に格納される。入出力時間取得部352は、推定入出力時間の算出または実測入出力時間の取得を行うための各一連の処理部を総称するものである。コントローラサポート装置8は、必ずしもこれら2系統の処理部の両方を有していなくてもよく、少なくとも1系統の処理部を有していれば入出力時間のデータを利用できる。このように、コントローラサポート装置8CPU81は、コントローラサポートプログラムを実行することにより、コントローラが入出力処理IO処理を実行するのに要する時間であって、コントローラにおいて測定された時間、または、コントローラサポート装置8において推定された時間である入出力時間を取得する入出力時間取得処理を実行する。推定入出力時間算出部329Aは、システム構成データを参照して推定入出力時間を算出する。入出力処理の実行時間入出力時間は、CPUユニット13に接続される他のユニット通信ノードの数や、制御出力データおよび制御入力データの量と相関があり、それらが多いほど入出力時間が長くなる。推定入出力時間算出部329Aは、記憶部に格納されているシステム構成データに含まれているそれらの情報を用いて、入出力時間の推定値推定入出力時間を算出する。さらに、コントローラにおいて測定され、コントローラから取得される実測入出力時間が、入出力時間として、記憶部に格納される。総計実行時間取得部354は、総計実行時間を算出し、または実測総計実行時間を取得する。総計実行時間は、コントローラが制御プログラム342を実行優先度と実行サイクルとに従って実行するときに、制御プログラム342の実行サイクルが開始してから、その実行サイクルにおいて制御プログラム342が実行終了するまでの時間である。たとえば、図4の制御プログラムAについては、制御プログラムAの実行サイクルは制御サイクルに等しいから、制御プログラムAの総計実行時間は、各制御サイクルの冒頭から、その制御サイクルにおいて制御プログラムAが実行終了するまでの時間である。この時間には、制御プログラムA自身の実行時間のほか、入出力処理IO処理の実行時間入出力時間が加算される。一方、図4の制御プログラムBの実行サイクルは制御サイクル4回分であるから、制御プログラムBの総計実行時間は、制御サイクル1の冒頭から制御サイクル3において制御プログラムBが実行終了するまでの時間である。この時間には、制御プログラムBの実行サイクルの開始から制御プログラムBの実行終了までに実行される、3回の入出力時間と3回の制御プログラムAの実行時間が加算される。このように、本実施の形態に係る総計実行時間取得処理は、総計実行時間を取得する対象である制御プログラムの正味実行時間と、当該制御プログラムの実行サイクルの開始からその実行サイクルにおける当該制御プログラムの実行終了までの間に実行される当該制御プログラムより実行優先度の高い制御プログラムの正味実行時間と、当該制御プログラムの実行サイクルの開始からその実行サイクルにおける当該制御プログラムの実行終了までの間に実行される入出力処理の入出力時間とを加算する処理を含む。総計実行時間算出部325Aは、各制御プログラムについて、総計実行時間を算出する。より具体的には、総計実行時間算出部325Aは、総計実行時間を算出するために、較正式推定実行時間および積算式推定実行時間の一方を正味実行時間として用いる。また、総計実行時間算出部325Aは、推定入出力時間を入出力時間として用いる。但し、推定入出力時間を用いずに、入出力時間が短ければ入出力時間を無視してもよい。あるいは、システム構成の相違による入出力時間の変動が少なければ入出力時間として総計実行時間算出部325Aが予め有している固定値を用いてもよい。このように、本実施の形態に係る総計実行時間取得処理は、少なくとも、総計実行時間を取得する対象である制御プログラムの正味実行時間と、当該制御プログラムの実行サイクルの開始からその実行サイクルにおける当該制御プログラムの実行終了までの間に実行される、当該制御プログラムより実行優先度の高い制御プログラムの正味実行時間とを加算する処理を含む。総計実行時間算出部325Aは、正味実行時間として、実測実行時間を用いてもよい。総計実行時間算出部325Aは、入出力時間として、実測入出力時間を用いてもよい。総計実行時間算出部325Aは、算出した総計実行時間を、出力部327Aにおいて利用できるようにする。また、出力部327Aにおいて正味実行時間および入出力時間を用いる場合には、総計実行時間算出部325Aは、総計実行時間の算出に用いた正味実行時間および入出力時間を、出力部327Aにおいて利用できるようにする。さらに、コントローラにおいて測定され、コントローラから取得される実測総計実行時間が記憶部に格納される。実測総計実行時間も、出力部327Aにおいて利用可能である。すなわち、コントローラサポート装置8CPU81は、コントローラサポートプログラムを実行することにより、総計実行時間を取得する総計実行時間取得処理を実行する。総計実行時間は、コントローラにおいて測定された時間またはコントローラサポート装置において推定された時間であって、コントローラPLC1が制御プログラムを実行優先度と実行サイクルとに従って実行するときに、実行サイクルの開始からその実行サイクルにおける制御プログラムの実行終了までの間に経過する時間である。出力部327Aは、総計実行時間実測総計実行時間である場合を含むを表す出力用データを作成し、出力する処理を行う。すなわち、コントローラサポート装置8CPU81は、コントローラサポートプログラムを実行することにより、総計実行時間を出力するための出力処理を実行する。出力用データには、正味実行時間実測実行時間である場合を含む、入出力時間実測入出力時間である場合を含むを表すデータをさらに含めてもよい。出力用データを作成し、出力する処理は、たとえば、総計実行時間さらに必要に応じて正味実行時間および入出力時間をモニタ画面に表示するための表示用データを作成し、表示させる処理である。出力用データを作成し、出力する処理は、総計実行時間さらに、必要に応じて正味実行時間および入出力時間を他の装置に送信するための送信用データを作成し、送信する処理であってもよい。出力用データを出力する処理は、コントローラサポート装置外からアクセス可能な記憶部に出力用データを格納する処理であってもよい。<H.較正式推定実行時間の算出処理>h1:概要次に、図8を参照して、較正式推定実行時間の算出にいたるまでの一連の処理と、各処理の間のプログラムおよびデータの流れについて説明する。図8は、本発明の実施の形態に係るコントローラサポート装置8における較正式推定実行時間の算出にいたるまでの一連の処理と、各処理の間のプログラムおよびデータの流れを示す模式図である。図8に示される、制御プログラムの実行時間を推定する方法は、較正データ算出処理のステップと較正式推定実行時間算出処理のステップとを中心としている。較正データ算出処理は、較正用のテストプログラムを対象として事前に測定されるシミュレータにおける実行時間第1テスト実行時間とコントローラにおける実行時間第2テスト実行時間とを用いて、それらの間の関係を表す較正データを算出する処理である。較正式推定実行時間算出処理は、シミュレータで測定された制御プログラムの実行時間シミュレータ実行時間を取得し、それを較正データを用いて変換することにより、その制御プログラムをコントローラで実行した場合の実行時間の推定値を算出する処理である。各処理の内容をより詳細に説明すると以下のとおりである。h2:較正データ算出処理まず、テストプログラムのソースプログラムテストソースプログラム370が用意される。テストソースプログラム370から、シミュレータ用コンパイラ380を用いて、シミュレータ用オブジェクトプログラム第1テストプログラム390が生成される。また、テストソースプログラム370から、コントローラ用コンパイラ382を用いて、コントローラ用オブジェクトプログラム第2テストプログラム392が生成される。第2テストプログラム392をコントローラAで実行することで、その実行時間が測定され、第2テストプログラム392の実行時間である第2テスト実行時間のデータが取得される。ここまでの処理は、一般にコントローラの供給者コントローラの製造業者、販売業者、技術サービス業者などにおいて行われ、第1テストプログラム390と第2テスト実行時間とがユーザに提供され、コントローラサポート装置8の記憶部に格納される。なお、ここまでの処理をユーザ自身が行ってもよい。第1テストプログラム390をシミュレータ324Aで実行し、その実行時間を測定することにより、第1テストプログラム390の実行時間である第1テスト実行時間のデータが取得される。そして、第1テスト実行時間と第2テスト実行時間との間の関係を表す較正データが算出される。すなわち、較正データ算出部が、第1テスト実行時間と第2テスト実行時間との間の関係を示す較正データを算出する。このように、較正データ算出処理は、第1テスト実行時間と第2テスト実行時間との間の関係を表す較正データを算出する処理である。h3:較正式推定時間算出処理次に、ユーザにおける制御目的に応じて作成された制御プログラムのソースプログラムである制御ソースプログラム330が用意される。制御ソースプログラム330から、シミュレータ用コンパイラ322Aを用いて、制御プログラムシミュレータ用オブジェクトプログラム340が生成される。制御プログラム340をシミュレータ324Aで実行し、その実行時間を測定することで、シミュレータ実行時間のデータが取得される。較正式推定実行時間算出部331Aは、シミュレータ実行時間を較正データを用いて変換することにより、較正式推定実行時間を算出する。較正式推定実行時間は、制御プログラムコントローラ用オブジェクトプログラム342の、コントローラにおける実行時間の推定値である。コントローラ用コンパイラ322Bは、制御ソースプログラム330から制御プログラムコントローラ用オブジェクト342を生成する。コントローラ用オブジェクト342の実際の生成は、推定実行時間をふまえて、必要に応じて制御ソースプログラム330を修正した後に行えばよい。生成されたコントローラ用オブジェクト342は、コントローラBに転送され、コントローラBにおいて実行される。なお、コントローラAとコントローラBとは、実行時間の観点で同一とみなせる機種である。h4:変形例シミュレータコントローラサポート装置8とコントローラPLC1とが同一のオブジェクトコードを実行できる場合は、シミュレータ用コンパイラとコントローラ用コンパイラとを使い分ける必要はなく、共通のコンパイラを用いればよい。その場合は、第1テストプログラム390と第2テストプログラム392とは同一のプログラムとなり、シミュレータ用オブジェクトプログラム340とコントローラ用オブジェクトプログラム342とは同一のプログラムとなる。テストソースプログラム370のコンパイルに用いるシミュレータ用コンパイラ380と制御ソースプログラム330のコンパイルに用いるシミュレータ用コンパイラ322Aとは、同じソースプログラムをコンパイルすれば同じオブジェクトプログラムを生成できるものを使用する。コントローラ用コンパイラについても同様である。h5:別形態コントローラサポート装置8は、図8に示したように、第1テストプログラム390および第2テスト実行時間を提供された以降のすべての処理を単一の装置で実行できるようにすると便利である。しかし、実行時間推定の観点からは、オブジェクトプログラムの生成を別の装置に行わせてもよい。あるいは、シミュレータを別の装置において構成し、コントローラサポート装置8は、別の装置であるシミュレータからシミュレータ実行時間を取得するようにしてもよい。なお、いずれの場合も、いったん較正データを算出した後は、記憶していた第1テストプログラム390と第2テスト実行時間とについては削除してもよい。さらに、較正データの算出処理を別の装置に行わせ、コントローラサポート装置8は、算出された較正データを取得し、それを記憶して使用するようにしてもよい。<I.較正データの算出処理>次に、第1テスト実行時間と第2テスト実行時間との間の関係を表す較正データの算出処理について説明する。図9は、第1テスト実行時間と第2テスト実行時間との間の関係の一例を示す図。図9において、X軸横軸はシミュレータにおける第1テストプログラム390の実行時間の測定値第1テスト時間を示し、Y軸縦軸はコントローラにおける第2テストプログラム392の実行時間の測定値第2テスト実行時間を示す。上述したように、第1テストプログラム390および第2テストプログラム392は、同一のテストソースプログラム370から生成されたオブジェクトプログラムである。図10のグラフ中に示される測定点P1~P5は、実行される命令の数が異なる5種類のテストソースプログラム370からそれぞれ生成された第1および第2テストプログラムの実行時間を示している。なお、測定点P1~P5は、それぞれプログラムを1回実行したときの実行時間の測定値でもよいが、実行時間は入力変数値等の実行条件によって実行ごとに変動し得ることを考慮して、同じプログラムを複数回実行したときの実行時間の平均値を採用することが好ましい。コントローラサポート装置8として汎用コンピュータを利用する場合は、通常、非リアルタイムオペレーティングシステム環境で第1テストプログラム390を実行することになるので、第1テストプログラムの実行がオペレーティングシステムにより一時中断されることが起こり得る。そのような場合の実行時間の測定値は、大きな値の異常値となるので、実行時間の平均値を求める場合には、そのような異常値を排除して計算する必要がある。同様に、較正式推定実行時間の算出の基礎とする制御プログラムのシミュレータ実行時間にも異常値は発生し得るので、そのような異常値を排除して推定実行時間を算出しなければならない。直線Lは、最小二乗法を用いて測定点P1~P5との誤差が最小になるようにして求めた直線である。この例では、直線Lは、式Y=aXによって表される。この比例係数aが較正データとなる。シミュレータにおいて測定された制御プログラムの実行時間であるシミュレータ実行時間に、この較正データaを乗じることにより、推定実行時間を算出することができる。直線Lは、式Y=aXbによって表すこともでき、その場合には、aおよびbの値が較正データとなる。第1テスト実行時間と第2テスト実行時間とはほぼ比例関係となるため、その間の関係を直線で表現することができるが、より正確に関係を表現するために2次曲線や3次曲線といった多次関数を用いた方がよい場合もある。その場合には、多次関数を規定する各係数が較正データとなる。第1テスト実行時間と第2テスト実行時間との間の関係が直線で表せない場合があることの一つの原因としては、コントローラサポート装置8のCPU81やコントローラのマイクロプロセッサPLC1のマイクロプロセッサ100のキャッシュ機構の動作の影響が考えられる。このようなキャッシュ機構の動作により、短い実行時間の測定値が、ある程度長い実行時間の測定値によって求めた直線上に乗らない場合がある、ということが考えられる。較正データは、Xのいくつかの値に対応するYの値を示す表の形式とすることもできる。その場合、表には存在しないXの値制御プログラムのシミュレータ実行時間に対応するYの値を求めるためには、その近傍の表に存在する値から直線補完または曲線補完によって求めたXの値とYの値との間の関係を用いる。<J.表示例>次に、上述したような処理によって算出された実行時間情報の提示例表示例について説明する。j1:第1態様図10は、本発明の実施の形態に係るコントローラサポート装置8で提供される表示画面の一例を示す図である。図10に示すように、コントローラサポート装置8は、総計実行時間および正味実行時間を表示する。なお、総計実行時間のみを表示するようにしてもよい。図10に示す表示画面例では、図4に示した制御プログラムAおよびBが実行時間推定の対象となっている。本表示画面においては、制御プログラムAはTASKA、制御プログラムBはTASKBとそれぞれ表記されている。図10においては、正味実行時間として、較正式推定実行時間が表示されている。較正式推定実行時間に代えて、積算式推定実行時間および/または実測実行時間を表示するようにしてもよい。上述したように、正味実行時間は、実行休止時間を除いた、その制御プログラムが実際に実行されている時間である。たとえば、図4においては、制御プログラムBは、2回の実行休止期間をはさんで3回に分けて実行されている。この3回に分かれて実際に実行されている時間の合計が正味実行時間である。正味実行時間の表示部には入出力時間も表示されている。入出力処理はI/Oと表記されている。正味実行時間の表示部において500μsとあるのは、制御サイクルの周期が500μsであることを示している。シミュレータにおいて、較正式推定実行時間正味実行時間の算出の元となるシミュレータ実行時間は、制御プログラムAおよびBを別々に、実行休止期間なしに実行することにより測定することができる。また、実際にコントローラにおいて実行されるときと同様に、シミュレータにおいても、図4のシーケンスのとおりに、実行優先度と実行サイクルとに従って実行し、実際に実行されている時間を測定してもよい。シミュレータ実行時間の測定と推定実行時間の算出とは、複数回繰り返して行うのが好ましい。制御プログラムが繰り返し実行されると、制御プログラムにおいて使用する変数の値などの実行条件が変化し、それに応じて実行時間も変動する。正味実行時間のグラフに添えて表示しているMAX値は、繰り返し実行した場合の最大値である。これに加えて、最小値や平均値を表示してもよい。制御プログラムAの推定実行時間は、シーケンス演算部分とモーション演算部分とに分けて算出しており、グラフ表示においても分けて表示している。総計実行時間の表示部において、05msおよび2msとあるのは、それぞれの制御プログラムの実行サイクルの周期を示している。このように、総計実行時間は、総計実行時間を取得する対象である制御プログラムの実行サイクルの周期と対比できるグラフの形態で表示することが好ましい。また、正味実行時間の場合と同様、各制御プログラムの総計実行時間の最大値が表示されている。総計実行時間の表示により、ユーザは、各制御プログラムが実行サイクルの時間内に実行終了できるのかどうかを知ることができる。すなわち、ここでの出力処理は、総計実行時間を、総計実行時間を取得する対象である制御プログラムの実行サイクルの周期と対比できるグラフの形態で表示するための表示データを出力する処理とも言える。j2:第2態様図11は、本発明の実施の形態に係るコントローラサポート装置8から出力される推定実行時間の表示画面の別の一例を示す図である。図11に示す表示画面の例における総計実行時間の表示形態は、図10の場合と同じである。図10との相違点は、正味実行時間の表示部において、入出力処理IO処理の実行時間をTASKAに含めて表示している点である。すなわち、図11に示す表示画面では、制御プログラムこの場合は、制御プログラムAの実行サイクルの周期と同じ周期で実行されるIO処理の実行時間と、その制御プログラムの実行時間とが加算して表示されている。このように、正味実行時間の表示は、その制御プログラムの実行と組み合わせて実行される他の処理の実行時間を加算して表示する場合を含む。言い換えれば、必ずしも、制御プログラムの正味実行時間自体を表示する必要はなく、制御サイクル周期や実行サイクル周期の決定、制御プログラムの分割の仕方の決定などを行うときに、ユーザにとって役立つように、制御プログラムの正味実行時間を含む実質的な正味実行時間として表示されればよい。正味実行時間のタスクAのグラフは、IO処理の実行時間と制御プログラムAの実行時間とがわかるように表示されている。このグラフに添えて表示されているMAX値は、IO処理時間を含めた実行時間であり、制御プログラムの正味実行時間は数値では表示されていない。このように、制御プログラムの正味実行時間自体はグラフのみによって表示してもよい。図4に示すシーケンス図においては、入出力処理IO処理は、制御プログラムAおよびBの両方のための処理であるが、図4に示された入出力処理を制御プログラムAのための処理とし、それとは別に、制御プログラムBのための入出力処理を制御プログラムBの実行サイクルに1回、たとえば制御プログラムBの実行開始前に、行うようにしてもよい。その場合は、図11の表示画面において、タスクBの正味実行時間に制御プログラムBのための入出力処理の実行時間が算入される。j3:第3態様図12は、本発明の実施の形態に係るコントローラサポート装置8から出力される推定実行時間の表示画面のさらに別の一例を示す図である。図12に示す表示画面の例における正味実行時間の表示形態は、図11の場合と同じである。図11との相違点は、総計実行時間の表示部において、実行サイクルが複数の制御サイクルにわたる制御プログラム制御プログラムBについて、グラフ上で制御サイクルの区切りを示している点である。すなわち、図12に示す表示画面では、2msの実行サイクル内を4つに区切る3本の縦線が制御サイクルの区切りを示すマークである。また、図12に示す表示画面では、総計実行時間内でその制御プログラムが実際に実行されている時間の部分だけが着色して表示される。このような表示態様を採用することで、この例では、制御プログラムBについて、実行サイクル内の1番目の制御サイクルにおいて実行開始と中断とが行われ、2番目の制御サイクルにおいて実行再開と中断とが行われ、3番目の制御サイクルにおいては実行再開後、制御サイクル内で実行が終了しており、4番目の制御サイクルにおいては実行されていないことをユーザは一見して把握することができる。さらに、図12に示す表示画面では、制御プログラムの実行が終了した時点がマークで示されている。この例では、三角形をマークとして用いている。これにより、制御プログラムが実行サイクル内で中断期間をはさみながら断続的に実行される場合でも、実行終了の時点がどこであるのかを理解し易くなる。このように、出力処理は、総計実行時間と、総計実行時間に含まれる正味実行時間とを表示するための表示データを出力する処理とも言える。<K.サーバ-クライアント形態>上述の説明においては、制御プログラムの実行時間を推定する処理をスタンドアローンの形態で実現する場合の例を示したが、いわゆるサーバ-クライアントの形態で実現してもよい。図13は、本発明の実施の形態に係るサーバコンピュータで実現されたコントローラサポート装置に関連する全体処理を示す模式図である。図13には、サーバコンピュータでコントローラサポート装置を実現した場合の、較正式推定実行時間の算出にいたるまでの一連の処理と、各処理の間のプログラムおよびデータの流れを示す模式図である。図13を参照して、コントローラサポート装置として機能するサーバコンピュータは、シミュレータ用コンパイラ322A、コントローラ用コンパイラ322B、シミュレータ324A、較正式推定実行時間算出部331A、積算式推定実行時間算出部332A、推定入出力時間算出部329A、総計実行時間算出部325A、および、出力部327Aとして機能するプログラム群を有している。また、サーバコンピュータの記憶部には、制御ソースプログラム、較正データ、命令別実行時間データ、および、システム構成データが格納される。これらのうち制御ソースプログラムおよびシステム構成データは、クライアントコンピュータから送られる。サーバコンピュータは、たとえば、ユーザの事業所内に設置されてLANによってクライアントコンピュータと接続するようにしてもよいし、コントローラ供給者の事業所に設置してインターネットによってユーザの事業所にあるクライアントコンピュータと接続してもよい。図13において記憶部に格納される較正データについても、図8に示したのと同様の処理を経て算出される。別のコンピュータを用いてこのような較正データを算出する処理を行ってもよいし、サーバコンピュータ自体においてこのような較正データを算出する処理の全部または一部を行ってもよい。但し、第1テストプログラム390を実行するシミュレータを別のコンピュータに設ける場合には、サーバコンピュータにおけるシミュレータと比較して、同じプログラムを同じ実行時間で実行できるシミュレータであることが必要である。サーバコンピュータにおいて較正データを求めるまでの一連の処理を行った場合であっても、サーバコンピュータがクライアントコンピュータに対してサービスを提供する段階においては、較正データを使用できれば足りる。そのため、較正データを求めるために使用したプログラムおよびデータは、サーバコンピュータから削除されていても構わない。制御ソースプログラム330は、クライアントコンピュータにおいて作成され、サーバコンピュータに送られる。サーバコンピュータは、コントローラ用コンパイラ322Bにより、クライアントコンピュータからの指示に応じて、制御ソースプログラム330から制御プログラムコントローラ用オブジェクトプログラム342を生成し、クライアントコンピュータに送信する。サーバコンピュータは、コントローラ用コンパイラ322Bを有さないようにして、制御プログラム342の生成サービスを行わないようにしてもよい。図13において、制御プログラムシミュレータ用オブジェクトプログラム340を生成する処理から較正式推定実行時間を算出する処理までは、図8の場合と同様である。積算式推定実行時間を算出する処理および推定入出力時間を算出する処理については、図7の場合と同様である。較正式推定実行時間を算出するための処理系統と積算式推定実行時間を算出するための処理系統とは、どちらか一方だけが備えられるようにしてもよい。総計実行時間を算出する処理については、図7の場合と同様である。但し、コントローラにおいて測定される実測実行時間、実測入出力時間、および実測総計実行時間が利用されない点については、図7の場合とは異なる。出力部327Aは、たとえば、図10、図11または図12に示す形態で正味実行時間および総計実行時間を表示するための出力用データ表示用データを作成し、クライアントコンピュータに送信する。出力用データは、たとえば、ウエブブラウザを用いて表示できるHTML形式のデータである。出力部327Aは、正味実行時間、入出力時間、および総計実行時間を表す数値データだけをクライアントコンピュータに送信し、その表示形態はクライアントコンピュータにまかせるようにしてもよい。サーバコンピュータは、シミュレータ用コンパイラ322Aを有さないようにして、クライアントコンピュータにおいて生成された制御プログラムシミュレータ用オブジェクト340を受信するようにしてもよい。今回開示された実施の形態はすべての点で例示であって制限的なものではないと考えられるべきである。本発明の範囲は、上記した説明ではなく、特許請求の範囲によって示され、特許請求の範囲と均等の意味および範囲内でのすべての変更が含まれることが意図される。"