[go: up one dir, main page]

JP4905597B1 - コントローラサポート装置、その装置において実行されるためのコントローラサポートプログラム、およびそのプログラムを格納する記録媒体 - Google Patents

コントローラサポート装置、その装置において実行されるためのコントローラサポートプログラム、およびそのプログラムを格納する記録媒体 Download PDF

Info

Publication number
JP4905597B1
JP4905597B1 JP2011056777A JP2011056777A JP4905597B1 JP 4905597 B1 JP4905597 B1 JP 4905597B1 JP 2011056777 A JP2011056777 A JP 2011056777A JP 2011056777 A JP2011056777 A JP 2011056777A JP 4905597 B1 JP4905597 B1 JP 4905597B1
Authority
JP
Japan
Prior art keywords
execution
time
controller
program
execution time
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
JP2011056777A
Other languages
English (en)
Other versions
JP2012194671A (ja
Inventor
文明 成谷
拓 大谷
義也 柴田
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Omron Corp
Original Assignee
Omron Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Omron Corp filed Critical Omron Corp
Priority to JP2011056777A priority Critical patent/JP4905597B1/ja
Priority to US14/005,317 priority patent/US10061281B2/en
Priority to CN201180069923.7A priority patent/CN103477290B/zh
Priority to PCT/JP2011/056774 priority patent/WO2012124138A1/ja
Priority to EP11861252.2A priority patent/EP2687928B1/en
Application granted granted Critical
Publication of JP4905597B1 publication Critical patent/JP4905597B1/ja
Publication of JP2012194671A publication Critical patent/JP2012194671A/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G05CONTROLLING; REGULATING
    • G05BCONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
    • G05B19/00Programme-control systems
    • G05B19/02Programme-control systems electric
    • G05B19/04Programme control other than numerical control, i.e. in sequence controllers or logic controllers
    • GPHYSICS
    • G05CONTROLLING; REGULATING
    • G05BCONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
    • G05B19/00Programme-control systems
    • G05B19/02Programme-control systems electric
    • G05B19/04Programme control other than numerical control, i.e. in sequence controllers or logic controllers
    • G05B19/05Programmable logic controllers, e.g. simulating logic interconnections of signals according to ladder diagrams or function charts
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • G06F11/34Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment
    • G06F11/3409Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment for performance assessment
    • G06F11/3419Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment for performance assessment by assessing time
    • G06F11/3423Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment for performance assessment by assessing time where the assessed time is active or idle time
    • GPHYSICS
    • G05CONTROLLING; REGULATING
    • G05BCONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
    • G05B2219/00Program-control systems
    • G05B2219/10Plc systems
    • G05B2219/14Plc safety
    • G05B2219/14042Process time
    • GPHYSICS
    • G05CONTROLLING; REGULATING
    • G05BCONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
    • G05B2219/00Program-control systems
    • G05B2219/10Plc systems
    • G05B2219/15Plc structure of the system
    • G05B2219/15126Calculate duration of cycle
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2201/00Indexing scheme relating to error detection, to error correction, and to monitoring
    • G06F2201/865Monitoring of software

Landscapes

  • Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Automation & Control Theory (AREA)
  • Computer Hardware Design (AREA)
  • Quality & Reliability (AREA)
  • Programmable Controllers (AREA)
  • Stored Programmes (AREA)

Abstract

【課題】コントローラが複数の制御プログラムをそれらの実行優先度と実行サイクルとに従って実行する場合に、コントローラの使用を支援するためのコントローラサポート装置において、より低い実行優先度の制御プログラムについても、実行サイクル周期との比較が可能である実行時間の情報を出力する。
【解決手段】コントローラサポートプログラムは、コントローラが制御プログラムを実行優先度と実行サイクルとに従って実行するときに、実行サイクルの開始からその実行サイクルにおける制御プログラムの実行終了までの間に経過する時間であって、コントローラにおいて測定された時間またはコントローラサポート装置において推定された時間である総計実行時間を取得する総計実行時間取得処理と、総計実行時間を出力するための出力処理とを、演算部に実行させる。
【選択図】図7

Description

本発明は、機械や設備などの動作を制御するために用いられるPLC(Programmable Logic Controller。プログラマブルコントローラともよばれる。)などのコントローラの使用を支援するためのコントローラサポート装置における制御プログラムの実行時間情報の提示に関する。
機械や設備などの動作を制御するために用いられるコントローラには、汎用のPLCや、個別の機械等に専用のプログラム制御のコントローラがある。
PLCは、たとえば、制御プログラムを実行するマイクロプロセッサを含むCPU(Central Processing Unit)ユニット、外部のスイッチやセンサからの信号入力および外部のリレーやアクチュエータへの信号出力を担当するIO(Input Output)ユニット、といった複数のユニットで構成される。それらのユニット間で、制御プログラム実行サイクルごとに、PLCシステムバスおよび/またはフィールドネットワークを経由してデータの授受をしながら、PLCは制御動作を実行する。
コントローラサポート装置は、コントローラに実行させる制御プログラムやコントローラに対する各種の設定情報を作成し、それらをコントローラに転送するために用いられる。コントローラサポート装置は、たとえば、汎用のコンピュータにコントローラサポートプログラムをインストールすることで構成される。コントローラサポート装置は、たとえば、制御プログラムのソースリストを作成するエディタ機能、制御プログラムのソースリストからコントローラで動作するオブジェクトプログラムを生成するコンパイラ機能、制御プログラムをコントローラサポート装置において試験実行させるためのコントローラのシミュレータ機能、および、コントローラとの通信機能などを有する。
制御プログラムの開発段階では、コントローがその制御プログラムを実行するのに要する実行時間を知る必要がある。この制御プログラムの実行時間は、その制御プログラムの実行サイクルの周期を定めるときに参照される。
特開2001−209411号公報(特許文献1)には、制御プログラムをPLCで実行した場合の実行時間を、PLCサポート装置において求める方法を開示する。具体的には、制御プログラムに使用される各命令のPLCにおける実処理時間データを用意しておき、シミュレータにおけるプログラム模擬実行処理において、個々の命令が処理されるごとに実処理時間データを参照して、その命令に対応する実処理時間を積算する方法が開示されている。また、制御プログラム全体が複数のタスクに分割構成されている場合に、タスクごとに実行所要時間を求める方法も開示されている。
特開2001−209411号公報
特許文献1においては、制御プログラム全体が複数のタスクに分割構成される場合があることが想定されている。その場合でも、すべてのタスクは常に一連に実行されるので、実行サイクルはすべてのタスクに共通である。したがって、実処理時間の積算値としては、すべてのタスクについての総和の時間が得られればよい。
しかしながら、コントローラにおける複数の制御プログラムの実行形態としては、複数の制御プログラムに互いに異なる実行優先度と実行サイクル周期とを定めて実行する形態がある。実行サイクルは、コントローラの動作時間の基本単位である制御サイクルの整数倍に設定される。複数の制御プログラムは、制御サイクルごとに、実行優先度と実行サイクルとに従って実行される。すなわち、各制御プログラムは、自らの新たな実行サイクルが開始すると、実行待ち状態となる。1つの制御サイクルの中では、より高い実行優先度の制御プログラムから先に実行され、より高い実行優先度の制御プログラムの実行が終了すると、より低い実行優先度の制御プログラムが実行される。制御プログラムの実行中に制御サイクルが終了すると、その制御プログラムの実行は中断され、次の制御サイクルにおいて、再びより高い実行優先度の制御プログラムから先に実行される。先の制御サイクルにおいて実行が中断された制御プログラムは、より高い実行優先度の制御プログラムの実行が終了してその制御プログラムの実行が可能になると、未実行の部分から実行を再開する。
すなわち、より低い実行優先度の制御プログラムは、実行中断期間をはさみながら断続的に実行されることがある。このような場合に、より低い実行優先度の制御プログラムについて、単に実処理時間の積算値が提示されるだけでは、その制御プログラムを実行するためにどれだけの長さの実行サイクル周期が必要であるのかを知ることができなかった。
本発明は、コントローラが複数の制御プログラムをそれらの実行優先度と実行サイクルとに従って実行する場合に、コントローラの使用を支援するためのコントローラサポート装置において、より低い実行優先度の制御プログラムについても、実行サイクル周期との比較が可能である実行時間の情報を出力することを目的とする。
本発明のある局面によれば、制御対象を制御するコントローラの使用を支援するためのコントローラサポート装置を提供する。コントローラは、制御サイクルごとに、複数の制御プログラムを、制御プログラムの各々について設定された実行優先度と制御サイクルの整数倍の実行サイクルとに従って実行することが可能である。コントローラサポート装置は、記憶部と、演算部とを含む。記憶部は、コントローラサポートプログラムと、制御プログラムとの格納に用いられる。コントローラサポートプログラムは、コントローラが制御プログラムを実行優先度と実行サイクルとに従って実行するときに、実行サイクルの開始からその実行サイクルにおける制御プログラムの実行終了までの間に経過する時間であって、コントローラにおいて測定された時間またはコントローラサポート装置において推定された時間である総計実行時間を取得する総計実行時間取得処理と、総計実行時間を出力するための出力処理とを、演算部に実行させる。
好ましくは、コントローラサポートプログラムは、さらに、コントローラが制御プログラムをその実行サイクル内で実際に実行する時間であって、コントローラにおいて測定された時間またはコントローラサポート装置において推定された時間である正味実行時間を取得する正味実行時間取得処理を演算部に実行させる。総計実行時間取得処理は、総計実行時間を取得する対象である制御プログラムの正味実行時間と、当該制御プログラムの実行サイクルの開始からその実行サイクルにおける当該制御プログラムの実行終了までの間に実行される、当該制御プログラムより実行優先度の高い制御プログラムの正味実行時間とを加算する処理を含む。
さらに好ましくは、正味実行時間取得処理は、正味実行時間として、コントローラのシミュレータにおいて測定された制御プログラムの実行時間から算出された推定実行時間を取得する処理である。
あるいはさらに好ましくは、コントローラは、制御サイクルごとまたは制御プログラムの実行サイクルごとに入出力処理を実行する。コントローラサポートプログラムは、さらに、コントローラが入出力処理を実行するのに要する時間であって、コントローラにおいて測定された時間またはコントローラサポート装置において推定された時間である入出力時間を取得する入出力時間取得処理を演算部に実行させる。総計実行時間取得処理は、総計実行時間を取得する対象である制御プログラムの正味実行時間と、当該制御プログラムの実行サイクルの開始からその実行サイクルにおける当該制御プログラムの実行終了までの間に実行される当該制御プログラムより実行優先度の高い制御プログラムの正味実行時間と、当該制御プログラムの実行サイクルの開始からその実行サイクルにおける当該制御プログラムの実行終了までの間に実行される入出力処理の入出力時間とを加算する処理を含む。
さらに好ましくは、正味実行時間取得処理は、正味実行時間として、コントローラのシミュレータにおいて測定された制御プログラムの実行時間から算出された推定実行時間を取得する処理である。
好ましくは、出力処理は、総計実行時間を、総計実行時間を取得する対象である制御プログラムの実行サイクルの周期と対比できるグラフの形態で表示するための表示データを出力する処理である。
好ましくは、出力処理は、総計実行時間と、総計実行時間に含まれる正味実行時間とを表示するための表示データを出力する処理である。
本発明の別の局面によれば、制御対象を制御するコントローラの使用を支援するためのコントローラサポート装置において実行されるためのコントローラサポートプログラムを提供する。コントローラは、制御サイクルごとに、複数の制御プログラムを、制御プログラムの各々について設定された実行優先度と制御サイクルの整数倍の実行サイクルとに従って実行することが可能である。コントローラサポート装置は、記憶部と、演算部とを含む。記憶部は、コントローラサポートプログラムと、制御プログラムとの格納に用いられる。コントローラサポートプログラムは、コントローラが制御プログラムを実行優先度と実行サイクルとに従って実行するときに、実行サイクルの開始からその実行サイクルにおける制御プログラムの実行終了までの間に経過する時間であって、コントローラにおいて測定された時間またはコントローラサポート装置において推定された時間である総計実行時間を取得する総計実行時間取得処理と、総計実行時間を出力するための出力処理とを、演算部に実行させる。
好ましくは、コントローラサポートプログラムは、さらに、コントローラが制御プログラムをその実行サイクル内で実際に実行する時間であって、コントローラにおいて測定された時間またはコントローラサポート装置において推定された時間である正味実行時間を取得する正味実行時間取得処理を演算部に実行させる。総計実行時間取得処理は、総計実行時間を取得する対象である制御プログラムの正味実行時間と、当該制御プログラムの実行サイクルの開始からその実行サイクルにおける当該制御プログラムの実行終了までの間に実行される、当該制御プログラムより実行優先度の高い制御プログラムの正味実行時間とを加算する処理を含む。
さらに好ましくは、正味実行時間取得処理は、正味実行時間として、コントローラのシミュレータにおいて測定された制御プログラムの実行時間から算出された推定実行時間を取得する処理である。
あるいはさらに好ましくは、コントローラは、制御サイクルごとまたは制御プログラムの実行サイクルごとに入出力処理を実行する。コントローラサポートプログラムは、さらに、コントローラが入出力処理を実行するのに要する時間であって、コントローラにおいて測定された時間またはコントローラサポート装置において推定された時間である入出力時間を取得する入出力時間取得処理を演算部に実行させる。総計実行時間取得処理は、総計実行時間を取得する対象である制御プログラムの正味実行時間と、当該制御プログラムの実行サイクルの開始からその実行サイクルにおける当該制御プログラムの実行終了までの間に実行される当該制御プログラムより実行優先度の高い制御プログラムの正味実行時間と、当該制御プログラムの実行サイクルの開始からその実行サイクルにおける当該制御プログラムの実行終了までの間に実行される入出力処理の入出力時間とを加算する処理を含む。
さらに好ましくは、正味実行時間取得処理は、正味実行時間として、コントローラのシミュレータにおいて測定された制御プログラムの実行時間から算出された推定実行時間を取得する処理である。
好ましくは、出力処理は、総計実行時間を、総計実行時間を取得する対象である制御プログラムの実行サイクルの周期と対比できるグラフの形態で表示するための表示データを出力する処理である。
好ましくは、出力処理は、総計実行時間と、総計実行時間に含まれる正味実行時間とを表示するための表示データを出力する処理である。
本発明のさらに別の局面によれば、制御対象を制御するコントローラの使用を支援するためのコントローラサポート装置において実行されるためのコントローラサポートプログラムを格納した記録媒体を提供する。コントローラは、制御サイクルごとに、複数の制御プログラムを、制御プログラムの各々について設定された実行優先度と制御サイクルの整数倍の実行サイクルとに従って実行することが可能である。コントローラサポート装置は、記憶部と、演算部とを含む。記憶部は、コントローラサポートプログラムと、制御プログラムとの格納に用いられる。コントローラサポートプログラムは、コントローラが制御プログラムを実行優先度と実行サイクルとに従って実行するときに、実行サイクルの開始からその実行サイクルにおける制御プログラムの実行終了までの間に経過する時間であって、コントローラにおいて測定された時間またはコントローラサポート装置において推定された時間である総計実行時間を取得する総計実行時間取得処理と、総計実行時間を出力するための出力処理とを、演算部に実行させる。
好ましくは、コントローラサポートプログラムは、さらに、コントローラが制御プログラムをその実行サイクル内で実際に実行する時間であって、コントローラにおいて測定された時間またはコントローラサポート装置において推定された時間である正味実行時間を取得する正味実行時間取得処理を演算部に実行させる。総計実行時間取得処理は、総計実行時間を取得する対象である制御プログラムの正味実行時間と、当該制御プログラムの実行サイクルの開始からその実行サイクルにおける当該制御プログラムの実行終了までの間に実行される、当該制御プログラムより実行優先度の高い制御プログラムの正味実行時間とを加算する処理を含む。
さらに好ましくは、正味実行時間取得処理は、正味実行時間として、コントローラのシミュレータにおいて測定された制御プログラムの実行時間から算出された推定実行時間を取得する処理である。
あるいはさらに好ましくは、コントローラは、制御サイクルごとまたは制御プログラムの実行サイクルごとに入出力処理を実行する。コントローラサポートプログラムは、さらに、コントローラが入出力処理を実行するのに要する時間であって、コントローラにおいて測定された時間またはコントローラサポート装置において推定された時間である入出力時間を取得する入出力時間取得処理を演算部に実行させる。総計実行時間取得処理は、総計実行時間を取得する対象である制御プログラムの正味実行時間と、当該制御プログラムの実行サイクルの開始からその実行サイクルにおける当該制御プログラムの実行終了までの間に実行される当該制御プログラムより実行優先度の高い制御プログラムの正味実行時間と、当該制御プログラムの実行サイクルの開始からその実行サイクルにおける当該制御プログラムの実行終了までの間に実行される入出力処理の入出力時間とを加算する処理を含む。
さらに好ましくは、正味実行時間取得処理は、正味実行時間として、コントローラのシミュレータにおいて測定された制御プログラムの実行時間から算出された推定実行時間を取得する処理である。
好ましくは、出力処理は、総計実行時間を、総計実行時間を取得する対象である制御プログラムの実行サイクルの周期と対比できるグラフの形態で表示するための表示データを出力する処理である。
好ましくは、出力処理は、総計実行時間と、総計実行時間に含まれる正味実行時間とを表示するための表示データを出力する処理である。
本発明によれば、コントローラが複数の制御プログラムをそれらの実行優先度と実行サイクルとに従って実行する場合に、コントローラの使用を支援するためのコントローラサポート装置において、より低い実行優先度の制御プログラムについても、実行サイクル周期との比較が可能である実行時間の情報を出力することができる。
本実施の形態に係るコントローラ(PLC)サポート装置が使用を支援するPLCシステムの概略構成を示す模式図である。 本発明の実施の形態に係るコントローラ(PLC)サポート装置が使用を支援するCPUユニットのハードウェア構成を示す模式図である。 本発明の実施の形態に係るコントローラ(PLC)サポート装置が使用を支援するCPUユニットで実行されるソフトウェア構成を示す模式図である。 本発明の実施の形態に係るコントローラ(PLC)サポート装置が使用を支援するCPUユニットにおける実行動作の一例を示すシーケンス図である。 本発明の実施の形態に係るコントローラサポート装置のハードウェア構成を示す模式図である。 本発明の実施の形態に係るコントローラサポート装置のソフトウェア構成を示す模式図である。 本発明の実施の形態に係るコントローラサポート装置に関連する全体処理を示す模式図である。 本発明の実施の形態に係るコントローラサポート装置における較正式推定実行時間の算出にいたるまでの一連の処理と、各処理の間のプログラムおよびデータの流れを示す模式図である。 第1テスト実行時間と第2テスト実行時間との間の関係の一例を示す図である。 本発明の実施の形態に係るコントローラサポート装置で提供される表示画面の一例を示す図である。 本発明の実施の形態に係るコントローラサポート装置から出力される推定実行時間の表示画面の別の一例を示す図である。 本発明の実施の形態に係るコントローラサポート装置から出力される推定実行時間の表示画面のさらに別の一例を示す図である。 本発明の実施の形態に係るサーバコンピュータで実現されたコントローラサポート装置に関連する全体処理を示す模式図である。
本発明の実施の形態について、図面を参照しながら詳細に説明する。なお、図中の同一または相当部分については、同一符号を付してその説明は繰り返さない。
<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(登録商標)、Profinet IRT、MECHATROLINK(登録商標)−III、Powerlink、SERCOS(登録商標)−III、CIP Motionなどが知られており、これらのうちのいずれを採用してもよい。さらに、産業用イーサネット(登録商標)以外のフィールドネットワークを用いてもよい。たとえば、モーション制御を行わない場合であれば、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としては、DRAM(Dynamic Random Access Memory)やSRAM(Static Random Access Memory)といったデバイスが用いられる。
一方、不揮発性メモリ106は、リアルタイムOS(Operating System)、PLC1のシステムプログラム、ユーザプログラム、モーション演算プログラム、システム設定パラメータといったデータを不揮発的に保持する。これらのプログラムやデータは、必要に応じて、マイクロプロセッサ100がアクセスできるようにメインメモリ104にコピーされる。このような不揮発性メモリ106としては、フラッシュメモリのような半導体メモリを用いることができる。あるいは、ハードディスクドライブのような磁気記録媒体や、DVD−RAM(Digital Versatile Disk Random Access Memory)のような光学記録媒体などを用いることもできる。
システムタイマ108は、一定周期ごとに割り込み信号を発生してマイクロプロセッサ100に提供する。典型的には、ハードウェアの仕様によって、複数の異なる周期でそれぞれ割り込み信号を発生するように構成されるが、OS(Operating System)やBIOS(Basic Input Output System)などによって、任意の周期で割り込み信号を発生するように設定することもできる。このシステムタイマ108が発生する割り込み信号を利用して、後述するような制御サイクルごとの制御動作が実現される。
CPUユニット13は、通信回路として、PLCシステムバスコントローラ120およびフィールドネットワークコントローラ140を有する。これらの通信回路は、出力データの送信および入力データの受信を行う。
なお、CPUユニット13自体にIOユニット14やサーボモータドライバ3の機能を持たせる場合は、通信回路による出力データの送信および入力データの受信は、それらの機能を担う部分を通信の相手方としてCPUユニット13の内部で行われる送信および受信となる。
PLCシステムバスコントローラ120は、PLCシステムバス11を介したデータの遣り取りを制御する。より具体的には、PLCシステムバスコントローラ120は、DMA(Dynamic Memory Access)制御回路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との間の接続ケーブル10(USB)などを介した通信処理に関するものが含まれる。
なお、制御プログラム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や各種データを格納するROM(Read Only Memory)82と、CPU81でのプログラムの実行に必要なデータを格納するための作業領域を提供するメモリRAM83と、CPU81で実行されるプログラムなどを不揮発的に格納するハードディスク(HDD)84とを含む。CPU81がコントローラサポート装置8の演算部に相当し、ROM82、RAM83およびハードディスク84がコントローラサポート装置8の記憶部に相当する。
コントローラサポート装置8は、さらに、ユーザからの操作を受付けるキーボード85およびマウス86と、情報をユーザに提示するためのモニタ87とを含む。さらに、コントローラサポート装置8は、PLC1(CPUユニット13)などと通信するための通信インターフェイス(IF)89を含む。
後述するように、コントローラサポート装置8で実行される各種プログラムは、CD−ROM9に格納されて流通する。このCD−ROM9に格納されたプログラムは、CD−ROM(Compact Disk-Read Only Memory)ドライブ88によって読取られ、ハードディスク(HDD)84などへ格納される。あるいは、上位のホストコンピュータなどからネットワークを通じてプログラムをダウンロードするように構成してもよい。
上述したように、コントローラサポート装置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の機能。
(3)CPUユニット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系統の処理部を有していれば正味実行時間のデータを利用できる。
このように、コントローラサポート装置8(CPU81)は、コントローラサポートプログラムを実行することにより、コントローラが制御プログラム342をその実行サイクル内で実際に実行する時間であって、コントローラにおいて測定された時間またはコントローラサポート装置8において推定された時間である正味実行時間を取得する正味実行時間取得処理を実行する。以下、正味実行時間取得部350の各系統について説明する。
まず、較正式推定実行時間算出部331Aは、較正データを用いて、シミュレータ実行時間から較正式推定実行時間を算出する。較正データの算出および較正式推定実行時間の算出についての詳細は、図8を参照して後述する。
制御プログラム(シミュレータ用オブジェクトプログラム)340は、図6のコンパイラプログラム322(より具体的には、後述する図8のシミュレータ用コンパイラ)によって、制御ソースプログラム330から生成される。シミュレータ324Aは、制御プログラム(シミュレータ用オブジェクトプログラム)340を実行し、その実行時間であるシミュレータ実行時間を測定する。
このように、コントローラサポート装置8(CPU81)は、コントローラサポートプログラムを実行することにより、コントローラ(PLC1)のシミュレータにおいて測定された制御プログラムの実行時間から算出された推定実行時間を、正味実行時間として、取得する処理を実行する。
積算式推定実行時間算出部332Aは、制御ソースプログラム330に基づいて制御プログラムの実行をトレースし、制御プログラムの実行される命令ごとにその命令の実行時間データを記憶部から読み出して実行時間を積算することにより、積算式推定実行時間を算出する。
命令別実行時間データは、コントローラサポートプログラム320の供給者から提供される。
さらに、コントローラにおいて測定され、コントローラから取得される実測実行時間が、正味実行時間として、記憶部に格納される。
入出力時間取得部352は、推定入出力時間の算出または実測入出力時間の取得を行うための各一連の処理部を総称するものである。コントローラサポート装置8は、必ずしもこれら2系統の処理部の両方を有していなくてもよく、少なくとも1系統の処理部を有していれば入出力時間のデータを利用できる。
このように、コントローラサポート装置8(CPU81)は、コントローラサポートプログラムを実行することにより、コントローラが入出力処理(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において利用可能である。
すなわち、コントローラサポート装置8(CPU81)は、コントローラサポートプログラムを実行することにより、総計実行時間を取得する総計実行時間取得処理を実行する。総計実行時間は、コントローラにおいて測定された時間またはコントローラサポート装置において推定された時間であって、コントローラ(PLC1)が制御プログラムを実行優先度と実行サイクルとに従って実行するときに、実行サイクルの開始からその実行サイクルにおける制御プログラムの実行終了までの間に経過する時間である。
出力部327Aは、総計実行時間(実測総計実行時間である場合を含む)を表す出力用データを作成し、出力する処理を行う。すなわち、コントローラサポート装置8(CPU81)は、コントローラサポートプログラムを実行することにより、総計実行時間を出力するための出力処理を実行する。
出力用データには、正味実行時間(実測実行時間である場合を含む)、入出力時間(実測入出力時間である場合を含む)を表すデータをさらに含めてもよい。
出力用データを作成し、出力する処理は、たとえば、総計実行時間(さらに必要に応じて正味実行時間および入出力時間)をモニタ画面に表示するための表示用データを作成し、表示させる処理である。出力用データを作成し、出力する処理は、総計実行時間(さらに、必要に応じて正味実行時間および入出力時間)を他の装置に送信するための送信用データを作成し、送信する処理であってもよい。出力用データを出力する処理は、コントローラサポート装置外からアクセス可能な記憶部に出力用データを格納する処理であってもよい。
<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=aX+bによって表すこともでき、その場合には、「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は「TASK A」、制御プログラムBは「TASK B」とそれぞれ表記されている。
図10においては、正味実行時間として、較正式推定実行時間が表示されている。較正式推定実行時間に代えて、積算式推定実行時間および/または実測実行時間を表示するようにしてもよい。
上述したように、正味実行時間は、実行休止時間を除いた、その制御プログラムが実際に実行されている時間である。たとえば、図4においては、制御プログラムBは、2回の実行休止期間をはさんで3回に分けて実行されている。この3回に分かれて実際に実行されている時間の合計が正味実行時間である。
正味実行時間の表示部には入出力時間も表示されている。入出力処理は「I/O」と表記されている。
正味実行時間の表示部において「500μs」とあるのは、制御サイクルの周期が500μsであることを示している。
シミュレータにおいて、較正式推定実行時間(正味実行時間)の算出の元となるシミュレータ実行時間は、制御プログラムAおよびBを別々に、実行休止期間なしに実行することにより測定することができる。また、実際にコントローラにおいて実行されるときと同様に、シミュレータにおいても、図4のシーケンスのとおりに、実行優先度と実行サイクルとに従って実行し、実際に実行されている時間を測定してもよい。
シミュレータ実行時間の測定と推定実行時間の算出とは、複数回繰り返して行うのが好ましい。制御プログラムが繰り返し実行されると、制御プログラムにおいて使用する変数の値などの実行条件が変化し、それに応じて実行時間も変動する。正味実行時間のグラフに添えて表示しているMAX値は、繰り返し実行した場合の最大値である。これに加えて、最小値や平均値を表示してもよい。
制御プログラムAの推定実行時間は、シーケンス演算部分とモーション演算部分とに分けて算出しており、グラフ表示においても分けて表示している。
総計実行時間の表示部において、「0.5ms」および「2ms」とあるのは、それぞれの制御プログラムの実行サイクルの周期を示している。
このように、総計実行時間は、総計実行時間を取得する対象である制御プログラムの実行サイクルの周期と対比できるグラフの形態で表示することが好ましい。また、正味実行時間の場合と同様、各制御プログラムの総計実行時間の最大値が表示されている。総計実行時間の表示により、ユーザは、各制御プログラムが実行サイクルの時間内に実行終了できるのかどうかを知ることができる。すなわち、ここでの出力処理は、総計実行時間を、総計実行時間を取得する対象である制御プログラムの実行サイクルの周期と対比できるグラフの形態で表示するための表示データを出力する処理とも言える。
(j2:第2態様)
図11は、本発明の実施の形態に係るコントローラサポート装置8から出力される推定実行時間の表示画面の別の一例を示す図である。
図11に示す表示画面の例における総計実行時間の表示形態は、図10の場合と同じである。図10との相違点は、正味実行時間の表示部において、入出力処理(IO処理)の実行時間を「TASK A」に含めて表示している点である。
すなわち、図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を受信するようにしてもよい。
今回開示された実施の形態はすべての点で例示であって制限的なものではないと考えられるべきである。本発明の範囲は、上記した説明ではなく、特許請求の範囲によって示され、特許請求の範囲と均等の意味および範囲内でのすべての変更が含まれることが意図される。
1 PLC、2 フィールドネットワーク、3 サーボモータドライバ、4 サーボモータ、5 リモートIOターミナル、6 検出スイッチ、7 リレー、8 コントローラサポート装置、9 CD−ROM、10 接続ケーブル、11 PLCシステムバス、12 電源ユニット、13 CPUユニット、14,53 IOユニット、15 特殊ユニット、51 ターミナルバス、52 通信カプラ、81 CPU、82 ROM、83 RAM、84 ハードディスク、85 キーボード、86 マウス、87 モニタ、88 CD−ROMドライブ、100 マイクロプロセッサ、102 チップセット、104 メインメモリ、106 不揮発性メモリ、108 システムタイマ、110 USBコネクタ、120 PLCシステムバスコントローラ、122 DMA制御回路、124 PLCシステムバス制御回路、126,146 バッファメモリ、130 コネクタ、140 フィールドネットワークコントローラ、142 DMA制御回路、144 フィールドネットワーク制御回路、210 システムプログラム、212 スケジューラプログラム、214 出力処理プログラム、216 入力処理プログラム、218 IO処理プログラム、220 その他のシステムプログラム、230 制御プログラム、232 シーケンス命令演算プログラム、234 モーション演算プログラム、236 ユーザプログラム、320 コントローラサポートプログラム、321 エディタプログラム、322 コンパイラプログラム、322A,380 シミュレータ用コンパイラ、322B,382 コントローラ用コンパイラ、323 デバッガプログラム、324 シミュレータプログラム、324A シミュレータ、325 総計実行時間算出プログラム、325A 総計実行時間算出部、326 コントローラ実測時間取得プログラム、327 出力プログラム、327A 出力部、328 通信プログラム、329 推定入出力時間算出プログラム、329A 推定入出力時間算出部、330 制御ソースプログラム、331 較正式推定実行時間算出プログラム、331A 較正式推定実行時間算出部、332 積算式実行時間算出プログラム、332A 積算式推定実行時間算出部、340 制御プログラム、340 シミュレータ用オブジェクトプログラム、342 コントローラ用オブジェクトプログラム、350 正味実行時間取得部、352 入出力時間取得部、354 総計実行時間取得部、370 テストソースプログラム、390 第1テストプログラム、392 第2テストプログラム、200 リアルタイムOS、SYS システム。

Claims (21)

  1. 制御対象を制御するコントローラの使用を支援するためのコントローラサポート装置であって、
    前記コントローラは、制御サイクルごとに、複数の制御プログラムを、前記制御プログラムの各々について設定された実行優先度と前記制御サイクルの整数倍の実行サイクルとに従って実行することが可能であり、
    前記コントローラサポート装置は、記憶部と、演算部とを備え、
    前記記憶部は、コントローラサポートプログラムと、前記制御プログラムとの格納に用いられ、
    前記コントローラサポートプログラムは、
    前記コントローラが前記複数の制御プログラムをそれぞれの前記実行優先度とそれぞれの前記実行サイクルとに従って実行するときに、対応の実行サイクルの開始からその実行サイクルにおける制御プログラムの実行終了までの間に経過する時間であって、前記コントローラにおいて測定された時間または前記コントローラサポート装置において推定された時間である総計実行時間をそれぞれ取得する総計実行時間取得処理と、
    前記総計実行時間を出力するための出力処理とを、前記演算部に実行させる、コントローラサポート装置。
  2. 前記コントローラサポートプログラムは、さらに、前記コントローラが前記制御プログラムをその前記実行サイクル内で実際に実行する時間であって、前記コントローラにおいて測定された時間または前記コントローラサポート装置において推定された時間である正味実行時間を取得する正味実行時間取得処理を前記演算部に実行させ、
    前記総計実行時間取得処理は、前記総計実行時間を取得する対象である前記制御プログラムの前記正味実行時間と、当該制御プログラムの前記実行サイクルの開始からその実行サイクルにおける当該制御プログラムの実行終了までの間に実行される、当該制御プログラムより実行優先度の高い前記制御プログラムの前記正味実行時間とを加算する処理を含む、請求項1に記載のコントローラサポート装置。
  3. 前記正味実行時間取得処理は、前記正味実行時間として、前記コントローラのシミュレータにおいて測定された前記制御プログラムの実行時間から算出された推定実行時間を取得する処理である、請求項2に記載のコントローラサポート装置。
  4. 前記コントローラは、前記制御サイクルごとまたは前記制御プログラムの実行サイクルごとに入出力処理を実行し、
    前記コントローラサポートプログラムは、さらに、前記コントローラが前記入出力処理を実行するのに要する時間であって、前記コントローラにおいて測定された時間または前記コントローラサポート装置において推定された時間である入出力時間を取得する入出力時間取得処理を前記演算部に実行させ、
    前記総計実行時間取得処理は、前記総計実行時間を取得する対象である前記制御プログラムの前記正味実行時間と、当該制御プログラムの前記実行サイクルの開始からその実行サイクルにおける当該制御プログラムの実行終了までの間に実行される当該制御プログラムより実行優先度の高い前記制御プログラムの前記正味実行時間と、当該制御プログラムの前記実行サイクルの開始からその実行サイクルにおける当該制御プログラムの実行終了までの間に実行される前記入出力処理の前記入出力時間とを加算する処理を含む、請求項2に記載のコントローラサポート装置。
  5. 前記正味実行時間取得処理は、前記正味実行時間として、前記コントローラのシミュレータにおいて測定された前記制御プログラムの実行時間から算出された推定実行時間を取得する処理である、請求項4に記載のコントローラサポート装置。
  6. 前記出力処理は、前記総計実行時間を、前記総計実行時間を取得する対象である前記制御プログラムの前記実行サイクルの周期と対比できるグラフの形態で表示するための表示データを出力する処理である、請求項1〜5のいずれか1項に記載のコントローラサポート装置。
  7. 前記出力処理は、前記総計実行時間と、前記総計実行時間に含まれる前記正味実行時間とを表示するための表示データを出力する処理である、請求項2〜5のいずれか1項に記載のコントローラサポート装置。
  8. 制御対象を制御するコントローラの使用を支援するためのコントローラサポート装置において実行されるためのコントローラサポートプログラムであって、
    前記コントローラは、制御サイクルごとに、複数の制御プログラムを、前記制御プログラムの各々について設定された実行優先度と前記制御サイクルの整数倍の実行サイクルとに従って実行することが可能であり、
    前記コントローラサポート装置は、記憶部と、演算部とを備え、
    前記記憶部は、前記コントローラサポートプログラムと、前記制御プログラムとの格納に用いられ、
    前記コントローラサポートプログラムは、
    前記コントローラが前記複数の制御プログラムをそれぞれの前記実行優先度とそれぞれの前記実行サイクルとに従って実行するときに、対応の実行サイクルの開始からその実行サイクルにおける制御プログラムの実行終了までの間に経過する時間であって、前記コントローラにおいて測定された時間または前記コントローラサポート装置において推定された時間である総計実行時間をそれぞれ取得する総計実行時間取得処理と、
    前記総計実行時間を出力するための出力処理とを、前記演算部に実行させる、コントローラサポートプログラム。
  9. 前記コントローラサポートプログラムは、さらに、前記コントローラが前記制御プログラムをその前記実行サイクル内で実際に実行する時間であって、前記コントローラにおいて測定された時間または前記コントローラサポート装置において推定された時間である正味実行時間を取得する正味実行時間取得処理を前記演算部に実行させ、
    前記総計実行時間取得処理は、前記総計実行時間を取得する対象である前記制御プログラムの前記正味実行時間と、当該制御プログラムの前記実行サイクルの開始からその実行サイクルにおける当該制御プログラムの実行終了までの間に実行される、当該制御プログラムより実行優先度の高い前記制御プログラムの前記正味実行時間とを加算する処理を含む、請求項8に記載のコントローラサポートプログラム。
  10. 前記正味実行時間取得処理は、前記正味実行時間として、前記コントローラのシミュレータにおいて測定された前記制御プログラムの実行時間から算出された推定実行時間を取得する処理である、請求項9に記載のコントローラサポートプログラム。
  11. 前記コントローラは、前記制御サイクルごとまたは前記制御プログラムの実行サイクルごとに入出力処理を実行し、
    前記コントローラサポートプログラムは、さらに、前記コントローラが前記入出力処理を実行するのに要する時間であって、前記コントローラにおいて測定された時間または前記コントローラサポート装置において推定された時間である入出力時間を取得する入出力時間取得処理を前記演算部に実行させ、
    前記総計実行時間取得処理は、前記総計実行時間を取得する対象である前記制御プログラムの前記正味実行時間と、当該制御プログラムの前記実行サイクルの開始からその実行サイクルにおける当該制御プログラムの実行終了までの間に実行される当該制御プログラ
    ムより実行優先度の高い前記制御プログラムの前記正味実行時間と、当該制御プログラムの前記実行サイクルの開始からその実行サイクルにおける当該制御プログラムの実行終了までの間に実行される前記入出力処理の前記入出力時間とを加算する処理を含む、請求項9に記載のコントローラサポートプログラム。
  12. 前記正味実行時間取得処理は、前記正味実行時間として、前記コントローラのシミュレータにおいて測定された前記制御プログラムの実行時間から算出された推定実行時間を取得する処理である、請求項11に記載のコントローラサポートプログラム。
  13. 前記出力処理は、前記総計実行時間を、前記総計実行時間を取得する対象である前記制御プログラムの前記実行サイクルの周期と対比できるグラフの形態で表示するための表示データを出力する処理である、請求項8〜12のいずれか1項に記載のコントローラサポートプログラム。
  14. 前記出力処理は、前記総計実行時間と、前記総計実行時間に含まれる前記正味実行時間とを表示するための表示データを出力する処理である、請求項9〜12のいずれか1項に記載のコントローラサポートプログラム。
  15. 制御対象を制御するコントローラの使用を支援するためのコントローラサポート装置において実行されるためのコントローラサポートプログラムを格納した記録媒体であって、
    前記コントローラは、制御サイクルごとに、複数の制御プログラムを、前記制御プログラムの各々について設定された実行優先度と前記制御サイクルの整数倍の実行サイクルとに従って実行することが可能であり、
    前記コントローラサポート装置は、記憶部と、演算部とを備え、
    前記記憶部は、前記コントローラサポートプログラムと、前記制御プログラムとの格納に用いられ、
    前記コントローラサポートプログラムは、
    前記コントローラが前記複数の制御プログラムをそれぞれの前記実行優先度とそれぞれの前記実行サイクルとに従って実行するときに、対応の実行サイクルの開始からその実行サイクルにおける制御プログラムの実行終了までの間に経過する時間であって、前記コントローラにおいて測定された時間または前記コントローラサポート装置において推定された時間である総計実行時間をそれぞれ取得する総計実行時間取得処理と、
    前記総計実行時間を出力するための出力処理とを、前記演算部に実行させる、コントローラサポートプログラムを格納した記録媒体。
  16. 前記コントローラサポートプログラムは、さらに、前記コントローラが前記制御プログラムをその前記実行サイクル内で実際に実行する時間であって、前記コントローラにおいて測定された時間または前記コントローラサポート装置において推定された時間である正味実行時間を取得する正味実行時間取得処理を前記演算部に実行させ、
    前記総計実行時間取得処理は、前記総計実行時間を取得する対象である前記制御プログラムの前記正味実行時間と、当該制御プログラムの前記実行サイクルの開始からその実行サイクルにおける当該制御プログラムの実行終了までの間に実行される、当該制御プログラムより実行優先度の高い前記制御プログラムの前記正味実行時間とを加算する処理を含む、請求項15に記載のコントローラサポートプログラムを格納した記録媒体。
  17. 前記正味実行時間取得処理は、前記正味実行時間として、前記コントローラのシミュレータにおいて測定された前記制御プログラムの実行時間から算出された推定実行時間を取得する処理である、請求項16に記載のコントローラサポートプログラムを格納した記録媒体。
  18. 前記コントローラは、前記制御サイクルごとまたは前記制御プログラムの実行サイクルごとに入出力処理を実行し、
    前記コントローラサポートプログラムは、さらに、前記コントローラが前記入出力処理を実行するのに要する時間であって、前記コントローラにおいて測定された時間または前記コントローラサポート装置において推定された時間である入出力時間を取得する入出力時間取得処理を前記演算部に実行させ、
    前記総計実行時間取得処理は、前記総計実行時間を取得する対象である前記制御プログラムの前記正味実行時間と、当該制御プログラムの前記実行サイクルの開始からその実行サイクルにおける当該制御プログラムの実行終了までの間に実行される当該制御プログラムより実行優先度の高い前記制御プログラムの前記正味実行時間と、当該制御プログラムの前記実行サイクルの開始からその実行サイクルにおける当該制御プログラムの実行終了までの間に実行される前記入出力処理の前記入出力時間とを加算する処理を含む、請求項16に記載のコントローラサポートプログラムを格納した記録媒体。
  19. 前記正味実行時間取得処理は、前記正味実行時間として、前記コントローラのシミュレータにおいて測定された前記制御プログラムの実行時間から算出された推定実行時間を取得する処理である、請求項18に記載のコントローラサポートプログラムを格納した記録媒体。
  20. 前記出力処理は、前記総計実行時間を、前記総計実行時間を取得する対象である前記制御プログラムの前記実行サイクルの周期と対比できるグラフの形態で表示するための表示データを出力する処理である、請求項15〜19のいずれか1項に記載のコントローラサポートプログラムを格納した記録媒体。
  21. 前記出力処理は、前記総計実行時間と、前記総計実行時間に含まれる前記正味実行時間とを表示するための表示データを出力する処理である、請求項16〜19のいずれか1項に記載のコントローラサポートプログラムを格納した記録媒体。
JP2011056777A 2011-03-15 2011-03-15 コントローラサポート装置、その装置において実行されるためのコントローラサポートプログラム、およびそのプログラムを格納する記録媒体 Active JP4905597B1 (ja)

Priority Applications (5)

Application Number Priority Date Filing Date Title
JP2011056777A JP4905597B1 (ja) 2011-03-15 2011-03-15 コントローラサポート装置、その装置において実行されるためのコントローラサポートプログラム、およびそのプログラムを格納する記録媒体
US14/005,317 US10061281B2 (en) 2011-03-15 2011-03-22 Controller support device, method, and recording medium
CN201180069923.7A CN103477290B (zh) 2011-03-15 2011-03-22 控制器辅助装置
PCT/JP2011/056774 WO2012124138A1 (ja) 2011-03-15 2011-03-22 コントローラサポート装置、その装置において実行されるためのコントローラサポートプログラム、およびそのプログラムを格納する記録媒体
EP11861252.2A EP2687928B1 (en) 2011-03-15 2011-03-22 Controller support device, controller support program to be executed in said device, and recording medium storing said program

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2011056777A JP4905597B1 (ja) 2011-03-15 2011-03-15 コントローラサポート装置、その装置において実行されるためのコントローラサポートプログラム、およびそのプログラムを格納する記録媒体

Publications (2)

Publication Number Publication Date
JP4905597B1 true JP4905597B1 (ja) 2012-03-28
JP2012194671A JP2012194671A (ja) 2012-10-11

Family

ID=46060751

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2011056777A Active JP4905597B1 (ja) 2011-03-15 2011-03-15 コントローラサポート装置、その装置において実行されるためのコントローラサポートプログラム、およびそのプログラムを格納する記録媒体

Country Status (5)

Country Link
US (1) US10061281B2 (ja)
EP (1) EP2687928B1 (ja)
JP (1) JP4905597B1 (ja)
CN (1) CN103477290B (ja)
WO (1) WO2012124138A1 (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10915438B2 (en) * 2017-02-17 2021-02-09 Mitsubishi Heavy Industries Engineering, Ltd. Software-testing device, software-testing system, software-testing method, and program

Families Citing this family (31)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP6171386B2 (ja) * 2013-02-15 2017-08-02 オムロン株式会社 コントローラ、情報処理装置およびプログラム
JP5715195B2 (ja) * 2013-07-03 2015-05-07 ファナック株式会社 プログラム実行ペースを指定できるモーションコントローラ
US9779243B2 (en) * 2013-11-13 2017-10-03 Via Technologies, Inc. Fuse-enabled secure BIOS mechanism in a trusted computing system
US10055588B2 (en) 2013-11-13 2018-08-21 Via Technologies, Inc. Event-based apparatus and method for securing BIOS in a trusted computing system during execution
US10049217B2 (en) 2013-11-13 2018-08-14 Via Technologies, Inc. Event-based apparatus and method for securing bios in a trusted computing system during execution
US9507942B2 (en) * 2013-11-13 2016-11-29 Via Technologies, Inc. Secure BIOS mechanism in a trusted computing system
US9779242B2 (en) * 2013-11-13 2017-10-03 Via Technologies, Inc. Programmable secure bios mechanism in a trusted computing system
US9183394B2 (en) 2013-11-13 2015-11-10 Via Technologies, Inc. Secure BIOS tamper protection mechanism
US9367689B2 (en) 2013-11-13 2016-06-14 Via Technologies, Inc. Apparatus and method for securing BIOS in a trusted computing system
US9798880B2 (en) * 2013-11-13 2017-10-24 Via Technologies, Inc. Fuse-enabled secure bios mechanism with override feature
US9547767B2 (en) 2013-11-13 2017-01-17 Via Technologies, Inc. Event-based apparatus and method for securing bios in a trusted computing system during execution
US9767288B2 (en) * 2013-11-13 2017-09-19 Via Technologies, Inc. JTAG-based secure BIOS mechanism in a trusted computing system
US10095868B2 (en) 2013-11-13 2018-10-09 Via Technologies, Inc. Event-based apparatus and method for securing bios in a trusted computing system during execution
JP6218645B2 (ja) * 2014-03-05 2017-10-25 三菱電機株式会社 プログラム解析装置及びプログラム解析方法及びプログラム
CN105159656A (zh) * 2014-06-16 2015-12-16 上海宝信软件股份有限公司 Plc软件编程辅助设计方法
JP2016012191A (ja) * 2014-06-27 2016-01-21 オムロン株式会社 情報処理装置、情報処理方法、およびプログラム
US10437699B2 (en) 2015-01-21 2019-10-08 International Business Machines Corporation Measuring execution time of benchmark programs in a simulated environment
TWI539276B (zh) * 2015-06-18 2016-06-21 致伸科技股份有限公司 操作時間監控系統
JP6731227B2 (ja) * 2015-10-02 2020-07-29 シャープ株式会社 制御システム、動作決定装置、機器、制御方法、及び制御プログラム
KR101743836B1 (ko) * 2015-10-22 2017-06-07 엘에스산전 주식회사 범용 마이크로 프로세서를 이용한 plc의 디버깅 방법
US10012979B2 (en) * 2016-01-20 2018-07-03 Rockwell Automation Technologies, Inc. Emulated industrial control execution rate scaling
DE102017001765B4 (de) 2016-02-29 2024-08-08 Fanuc Corporation Numerische steuerung für werkzeugmaschine
US10824119B2 (en) * 2016-03-29 2020-11-03 International Business Machines Corporation Intelligent energy switch
CN109643093A (zh) * 2016-08-30 2019-04-16 三菱电机株式会社 程序编辑装置、程序编辑方法及程序编辑程序
EP3349082B1 (de) * 2017-01-16 2019-07-31 Siemens Aktiengesellschaft System zur abschaltbaren simulation von anlagen oder maschinen innerhalb von speicherprogrammierbaren steuerungen
JP6406466B1 (ja) * 2017-04-07 2018-10-17 オムロン株式会社 制御装置、制御方法および制御プログラム
WO2019041145A1 (zh) * 2017-08-29 2019-03-07 西门子公司 一种数据读取周期的确定方法和装置
TWI639921B (zh) * 2017-11-22 2018-11-01 大陸商深圳大心電子科技有限公司 指令處理方法及使用所述方法的儲存控制器
US10649038B2 (en) * 2018-04-19 2020-05-12 Siemens Industry, Inc. Output module, control system and method for testing an output module connected to a complex load
JP7067406B2 (ja) * 2018-10-12 2022-05-16 オムロン株式会社 制御システム、制御装置および制御方法
JP7512886B2 (ja) 2020-12-23 2024-07-09 オムロン株式会社 制御装置、制御方法および制御プログラム

Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS62245443A (ja) * 1986-04-18 1987-10-26 Mitsubishi Electric Corp プログラムの実行時間測定方法
JPH05257830A (ja) * 1992-03-13 1993-10-08 Nippon Telegr & Teleph Corp <Ntt> 入出力処理完了監視方法および装置
JPH08278804A (ja) * 1995-04-06 1996-10-22 Fanuc Ltd シーケンス・プログラムの診断方式
JPH09128243A (ja) * 1995-10-30 1997-05-16 Fujitsu Ltd ファイル制御装置のサポートシステム
JPH1063603A (ja) * 1996-08-27 1998-03-06 Nec Corp 周辺制御装置およびその負荷状況設定方法
JP2008310748A (ja) * 2007-06-18 2008-12-25 Honda Motor Co Ltd タスク実行時間記録装置、タスク実行時間記録方法、及びタスク実行時間記録用プログラム
JP2009076073A (ja) * 2001-03-05 2009-04-09 Cadence Design Systems Inc 組込形ソフトウェアの実行時間の統計的評価のための方法及び装置

Family Cites Families (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6973417B1 (en) 1999-11-05 2005-12-06 Metrowerks Corporation Method and system for simulating execution of a target program in a simulated target system
JP3901417B2 (ja) 2000-01-25 2007-04-04 オムロン株式会社 Plcシミュレータ
DE10238575A1 (de) 2002-08-22 2004-03-04 Siemens Ag Verfahren zur Messung der Nettolaufzeit eines Datenverarbeitungsprogramms
JP2005056196A (ja) * 2003-08-05 2005-03-03 Fanuc Ltd プログラマブルコントローラ
JP4105102B2 (ja) * 2004-01-09 2008-06-25 株式会社東芝 パイプラインプロセッサ生成装置及びパイプラインプロセッサ生成方法
US7099215B1 (en) * 2005-02-11 2006-08-29 North Carolina State University Systems, methods and devices for providing variable-latency write operations in memory devices
US7698686B2 (en) 2005-04-15 2010-04-13 Microsoft Corporation Method and apparatus for performance analysis on a software program
CN102057356A (zh) 2008-06-11 2011-05-11 高通股份有限公司 用于测量任务负载的方法和系统
CN103069386B (zh) * 2010-08-16 2016-06-22 三菱电机株式会社 控制程序生成装置、控制程序生成程序以及控制程序生成方法
US8977534B2 (en) 2011-03-15 2015-03-10 Omron Corporation Controller support apparatus, controller support program executed on the apparatus, storage medium storing the program, and method of estimating execution time of control program

Patent Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS62245443A (ja) * 1986-04-18 1987-10-26 Mitsubishi Electric Corp プログラムの実行時間測定方法
JPH05257830A (ja) * 1992-03-13 1993-10-08 Nippon Telegr & Teleph Corp <Ntt> 入出力処理完了監視方法および装置
JPH08278804A (ja) * 1995-04-06 1996-10-22 Fanuc Ltd シーケンス・プログラムの診断方式
JPH09128243A (ja) * 1995-10-30 1997-05-16 Fujitsu Ltd ファイル制御装置のサポートシステム
JPH1063603A (ja) * 1996-08-27 1998-03-06 Nec Corp 周辺制御装置およびその負荷状況設定方法
JP2009076073A (ja) * 2001-03-05 2009-04-09 Cadence Design Systems Inc 組込形ソフトウェアの実行時間の統計的評価のための方法及び装置
JP2008310748A (ja) * 2007-06-18 2008-12-25 Honda Motor Co Ltd タスク実行時間記録装置、タスク実行時間記録方法、及びタスク実行時間記録用プログラム

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10915438B2 (en) * 2017-02-17 2021-02-09 Mitsubishi Heavy Industries Engineering, Ltd. Software-testing device, software-testing system, software-testing method, and program

Also Published As

Publication number Publication date
EP2687928A4 (en) 2014-10-22
EP2687928B1 (en) 2017-05-10
US20140088734A1 (en) 2014-03-27
JP2012194671A (ja) 2012-10-11
CN103477290A (zh) 2013-12-25
EP2687928A1 (en) 2014-01-22
WO2012124138A1 (ja) 2012-09-20
US10061281B2 (en) 2018-08-28
CN103477290B (zh) 2016-06-29

Similar Documents

Publication Publication Date Title
JP4905597B1 (ja) コントローラサポート装置、その装置において実行されるためのコントローラサポートプログラム、およびそのプログラムを格納する記録媒体
US8977534B2 (en) Controller support apparatus, controller support program executed on the apparatus, storage medium storing the program, and method of estimating execution time of control program
JP4748286B1 (ja) コントローラサポート装置、その装置において実行されるためのコントローラサポートプログラム、そのプログラムを格納した記録媒体、および、制御プログラムの実行時間を推定する方法
JP6540166B2 (ja) 制御装置
JP4807475B1 (ja) 演算ユニット、出力制御方法、およびプログラム
JP6488830B2 (ja) 制御装置
JP6409557B2 (ja) 制御装置、コントローラ・システム、出力制御方法、およびプログラム
JP4752984B1 (ja) Plcのcpuユニット、plc用のシステムプログラムおよびplc用のシステムプログラムを格納した記録媒体
WO2013011713A1 (ja) Plcのcpuユニット、plc用のシステムプログラム、plc用のシステムプログラムを格納した記録媒体、plcシステム、plcサポート装置、plcサポートプログラム、および、plcサポートプログラムを格納した記録媒体
WO2012124133A1 (ja) Plcのcpuユニット、plc用システムプログラムおよびplc用システムプログラムを格納した記録媒体
JP6299064B2 (ja) 制御装置、制御方法、およびプログラム
JP5891891B2 (ja) 情報処理装置、情報処理方法、およびプログラム
JP2018132829A (ja) 制御装置
JP7067406B2 (ja) 制御システム、制御装置および制御方法
JP2016012191A (ja) 情報処理装置、情報処理方法、およびプログラム
JP2019049947A (ja) 制御装置および制御方法
JP2016194831A (ja) 制御装置
JP6729746B2 (ja) 制御装置
WO2012124137A1 (ja) Plcのcpuユニット、plc用のシステムプログラムおよびplc用のシステムプログラムを格納した記録媒体
JP2012194955A (ja) 支援装置、表示制御方法、およびプログラム
WO2012124145A1 (ja) 演算ユニット、支援装置、支援プログラム、支援プログラムを格納した記憶媒体、および、支援装置における動作方法
JP7600788B2 (ja) 情報処理装置、方法およびプログラム

Legal Events

Date Code Title Description
TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20111213

A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20111226

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20150120

Year of fee payment: 3

R150 Certificate of patent or registration of utility model

Ref document number: 4905597

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

Free format text: JAPANESE INTERMEDIATE CODE: R150