JP7024677B2 - 制御システム、サポート装置、サポートプログラム - Google Patents

制御システム、サポート装置、サポートプログラム Download PDF

Info

Publication number
JP7024677B2
JP7024677B2 JP2018183830A JP2018183830A JP7024677B2 JP 7024677 B2 JP7024677 B2 JP 7024677B2 JP 2018183830 A JP2018183830 A JP 2018183830A JP 2018183830 A JP2018183830 A JP 2018183830A JP 7024677 B2 JP7024677 B2 JP 7024677B2
Authority
JP
Japan
Prior art keywords
safety
controller
data
command
control system
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
JP2018183830A
Other languages
English (en)
Other versions
JP2020052898A (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 JP2018183830A priority Critical patent/JP7024677B2/ja
Priority to PCT/JP2019/037852 priority patent/WO2020067286A1/ja
Priority to EP19865237.2A priority patent/EP3859454B1/en
Priority to CN201980051803.0A priority patent/CN112567300A/zh
Priority to US17/269,522 priority patent/US20210216047A1/en
Publication of JP2020052898A publication Critical patent/JP2020052898A/ja
Application granted granted Critical
Publication of JP7024677B2 publication Critical patent/JP7024677B2/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
    • G05B19/042Programme control other than numerical control, i.e. in sequence controllers or logic controllers using digital processors
    • G05B19/0428Safety, monitoring
    • GPHYSICS
    • G05CONTROLLING; REGULATING
    • G05BCONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
    • G05B23/00Testing or monitoring of control systems or parts thereof
    • G05B23/02Electric testing or monitoring
    • G05B23/0205Electric testing or monitoring by means of a monitoring system capable of detecting and responding to faults
    • G05B23/0259Electric testing or monitoring by means of a monitoring system capable of detecting and responding to faults characterized by the response to fault detection
    • G05B23/0264Control of logging system, e.g. decision on which data to store; time-stamping measurements
    • GPHYSICS
    • G05CONTROLLING; REGULATING
    • G05BCONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
    • G05B23/00Testing or monitoring of control systems or parts thereof
    • G05B23/02Electric testing or monitoring
    • G05B23/0205Electric testing or monitoring by means of a monitoring system capable of detecting and responding to faults
    • G05B23/0259Electric testing or monitoring by means of a monitoring system capable of detecting and responding to faults characterized by the response to fault detection
    • G05B23/0286Modifications to the monitored process, e.g. stopping operation or adapting control
    • GPHYSICS
    • G05CONTROLLING; REGULATING
    • G05BCONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
    • G05B9/00Safety arrangements
    • G05B9/02Safety arrangements electric
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/90Details of database functions independent of the retrieved data types
    • G06F16/901Indexing; Data structures therefor; Storage structures
    • G06F16/9024Graphs; Linked lists
    • 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
    • G05B19/058Safety, monitoring
    • 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/418Total factory control, i.e. centrally controlling a plurality of machines, e.g. direct or distributed numerical control [DNC], flexible manufacturing systems [FMS], integrated manufacturing systems [IMS], computer integrated manufacturing [CIM]
    • G05B19/4185Total factory control, i.e. centrally controlling a plurality of machines, e.g. direct or distributed numerical control [DNC], flexible manufacturing systems [FMS], integrated manufacturing systems [IMS], computer integrated manufacturing [CIM] characterised by the network communication
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02PCLIMATE CHANGE MITIGATION TECHNOLOGIES IN THE PRODUCTION OR PROCESSING OF GOODS
    • Y02P90/00Enabling technologies with a potential contribution to greenhouse gas [GHG] emissions mitigation
    • Y02P90/02Total factory control, e.g. smart factories, flexible manufacturing systems [FMS] or integrated manufacturing systems [IMS]

Description

本発明は、制御システム、ならびに、制御システムに用いられるサポート装置およびサポートプログラムに関する。
多くの製造現場において、設備や機械を安全に使用するために、セーフティシステムの導入が進みつつある。セーフティシステムは、国際規格に従うセーフティ機能を提供するためのものであり、セーフティコントローラ、セーフティセンサ、セーフティスイッチ、およびセーフティリレーといったセーフティコンポーネントで構成される。
セーフティシステムは、設備や機械を駆動するサーボモータなどのドライブ装置に対してもセーフティ機能を提供することが要求される。例えば、非特許文献1は、可変速電動ドライブシステムに対して提供すべきセーフティ機能を規定する。
より具体的には、非特許文献1は、STO(Safe Torque Off)、SS1(Safe Stop 1)、SS2(Safe Stop 2)、SOS(Safe Operating Stop)、SBC(Safe Brake Control)などの、ドライブ装置に関連するいくつかのセーフティ機能を規定する。
非特許文献1に開示されるセーフティ機能の仕様を満たしているか否かを確認するための機能として、データトレース機能がある。データトレース機能は、サーボモータの動作に関する状態値(例えば、速度など)の推移を監視する機能である。データトレース機能に関する文献として、特開2009-146040号公報(特許文献1)と、特開2017-79009号公報(特許文献2)とがある。
特開2009-146040号公報 特開2017-79009号公報
特許文献1,2に開示されるデータトレース機能は、サーボモータの速度などのデータトレース結果を出力するだけであるので、ユーザは、データトレース結果を確認したとしても、セーフティ機能の仕様を満たしているか否かを即座に判断することができない。
本開示は上述のような問題点を解決するためになされたものであって、ある局面における目的は、セーフティ機能の仕様を満たしているか否かに関する判断材料を出力できる制御システムを提供することを目的とする。他の局面における目的は、セーフティ機能の仕様を満たしているか否かに関する判断材料を出力できるサポート装置を提供することを目的とする。他の局面における目的は、セーフティ機能の仕様を満たしているか否かに関する判断材料を出力できるサポートプログラムを提供することを目的とする。
本開示の一例では、制御システムは、第1のコントローラと、上記第1のコントローラからの第1の指令に従ってモータを駆動するドライブ装置と、上記ドライブ装置に対してセーフティ機能の動作に係る第2の指令を送信する第2のコントローラと、上記第1の指令に応じて変化する、上記モータの動作状態を示す状態値をトレースするためのデータトレースモジュールとを備える。上記ドライブ装置は、上記セーフティ機能に関するセーフティパラメータを格納するためのストレージと、上記第2のコントローラから上記第2の指令を受けた場合に、上記状態値と上記セーフティパラメータとに基づいて、上記モータの駆動を停止するための制御装置とを含む。上記制御システムは、上記データトレースモジュールによる上記状態値のトレース結果と、上記セーフティパラメータとを取得し、当該トレース結果に重ねて当該セーフティパラメータを表示するためのサポート装置とをさらに備える。
この開示によれば、セーフティパラメータがトレース結果に重ねて表示されることで、ユーザは、ドライブ装置の動作がセーフティ機能の仕様を満たしているか否かを容易に判断することができる。
本開示の一例では、上記サポート装置は、上記トレース結果に示される上記状態値の単位と上記セーフティパラメータの単位とを合わせた上で、上記トレース結果に重ねて上記セーフティパラメータを表示する。
この開示によれば、ユーザは、トレース結果が示す状態値と、セーフティパラメータとを容易に比較することが可能になる。
本開示の一例では、上記サポート装置は、横軸および縦軸の一方の軸が時間を示し、横軸および縦軸の他方の軸が上記状態値の大きさを示すグラフ上に上記トレース結果を表わすとともに、上記グラフ上に上記セーフティパラメータを表わす。
この開示によれば、ユーザは、トレース結果が示す状態値と、セーフティパラメータとを分析しやすくなる。
本開示の一例では、上記セーフティパラメータは、上記状態値の下限値と上記状態値の上限値とを含む。上記サポート装置は、上記下限値と上記上限値とを上記グラフ上に表わす。
この開示によれば、ユーザは、状態値が上限値および下限値の範囲内に収まっているか否かを容易に判断することができる。
本開示の一例では、上記サポート装置は、上記下限値および上記上限値をそれぞれ上記縦軸に直交させて上記グラフに表わす。
この開示によれば、ユーザは、状態値が上限値および下限値の範囲内に収まっているか否かをさらに容易に判断することができる。
本開示の一例では、上記セーフティパラメータは、上記ドライブ装置が上記第2の指令を受けてから上記モータの駆動を停止するまでの停止猶予時間を含む。上記サポート装置は、上記第2の指令を受けた第1のタイミングと、当該第1のタイミングから上記停止猶予時間が経過した第2のタイミングとを上記グラフ上に表わす。
この開示によれば、ユーザは、停止猶予時間における状態値の推移を容易に確認することができる。
本開示の一例では、上記サポート装置は、上記第1のタイミングおよび上記第2のタイミングをそれぞれ上記横軸に直交させて上記グラフに表わす。
この開示によれば、ユーザは、停止猶予時間における状態値の推移をさらに容易に確認することができる。
本開示の他の例では、制御システムに接続されるサポート装置が提供される。上記制御システムは、第1のコントローラと、上記第1のコントローラからの第1の指令に従ってモータを駆動するドライブ装置と、上記ドライブ装置に対してセーフティ機能の動作に係る第2の指令を送信する第2のコントローラと、上記第1の指令に応じて変化する、上記モータの動作状態を示す状態値をトレースするためのデータトレースモジュールとを備える。上記ドライブ装置は、上記セーフティ機能に関するセーフティパラメータを格納するためのストレージと、上記第2のコントローラから上記第2の指令を受けた場合に、上記状態値と上記セーフティパラメータとに基づいて、上記モータの駆動を停止するための制御装置とを含む。上記サポート装置は、上記データトレースモジュールから上記状態値のトレース結果を取得する手段と、上記ドライブ装置から上記セーフティパラメータを取得する手段と、上記取得したトレース結果に重ねて上記取得したセーフティパラメータを表示する手段とを備える。
この開示によれば、セーフティパラメータがトレース結果に重ねて表示されることで、ユーザは、ドライブ装置の動作がセーフティ機能の仕様を満たしているか否かを容易に判断することができる。
本開示の他の例では、制御システムに接続されるコンピュータで実行されるサポートプログラムが提供される。上記制御システムは、第1のコントローラと、上記第1のコントローラからの第1の指令に従ってモータを駆動するドライブ装置と、上記ドライブ装置に対してセーフティ機能の動作に係る第2の指令を送信する第2のコントローラと、上記第1の指令に応じて変化する、上記モータの動作状態を示す状態値をトレースするためのデータトレースモジュールとを備える。上記ドライブ装置は、上記セーフティ機能に関するセーフティパラメータを格納するためのストレージと、上記第2のコントローラから上記第2の指令を受けた場合に、上記状態値と上記セーフティパラメータとに基づいて、上記モータの駆動を停止するための制御装置とを含む。上記サポートプログラムは、上記コンピュータに、上記データトレースモジュールから上記状態値のトレース結果を取得するステップと、上記ドライブ装置から上記セーフティパラメータを取得するステップと、上記取得したトレース結果に重ねて上記取得したセーフティパラメータを表示するステップとを実行させる。
この開示によれば、セーフティパラメータがトレース結果に重ねて表示されることで、ユーザは、ドライブ装置の動作がセーフティ機能の仕様を満たしているか否かを容易に判断することができる。
本発明によれば、セーフティ機能の仕様を満たしているか否かに関する判断材料を出力できる。
実施の形態に係る制御システムの構成例を示す模式図である。 実施の形態に係る制御システムが有する機能を示す模式図である。 実施の形態に係る制御システムを構成する標準コントローラのハードウェア構成例を示す模式図である。 実施の形態に係る制御システムを構成するセーフティコントローラのハードウェア構成例を示す模式図である。 実施の形態に係る制御システムを構成するセーフティドライバおよびサーボモータのハードウェア構成例を示す模式図である。 実施の形態に係る制御システムを構成するサポート装置のハードウェア構成例を示す模式図である。 実施の形態に係る制御システムの機能分担の一例を示す模式図である。 実施の形態に係る制御システムのセーフティドライバによるセーフティ機能に係る処理手順の一例を示すシーケンス図である。 実施の形態に係る制御システムが提供するモーションセーフティ機能の一例を示す図である。 実施の形態に係る制御システムのセーフティドライバに格納されるモーションセーフティ機能を実現するためのパラメータセットの一例を示す図である。 実施の形態に係る制御システムにおける通信フレームの伝送形態を説明するための図である。 実施の形態に係る制御システムにおけるデータ伝送を説明するための図である。 実施の形態に係る制御システムにおける標準制御およびセーフティ制御の実装例を示す模式図である。 データトレース機能を実現するための制御フローの一例を示す図である。 データトレースに関する各種の設定を受け付けるデータトレース画面を示す図である。 トレース対象のデータ群の一括設定画面を示す図である。 トレース対象のデータ群の決定方法を概略的に示す概念図である。 トレース対象のデータ群のサンプリング処理を説明するための図である。 データトレース画面の表示領域を表した図である。 変形例1に従う制御システムを示す図である。 変形例2に従う制御システムを示す図である。 変形例3に従う制御システムを示す図である。
以下、図面を参照しつつ、本発明に従う各実施の形態について説明する。以下の説明では、同一の部品および構成要素には同一の符号を付してある。それらの名称および機能も同じである。したがって、これらについての詳細な説明は繰り返さない。なお、以下で説明される各実施の形態および各変形例は、適宜選択的に組み合わされてもよい。
<A.適用例>
まず、本発明が適用される場面の一例について説明する。
図1は、本実施の形態に係る制御システム1の構成例を示す模式図である。本実施の形態に係る制御システム1は、例えば、IEC 61508などに規定されたセーフティ機能に加えて、上述の非特許文献1に規定されたドライブ装置に対するセーフティ機能を提供する。
図1を参照して、制御システム1は、主として、標準コントローラ100、ならびに、標準コントローラ100とフィールドネットワーク2を介して接続されるセーフティコントローラ200および1または複数のセーフティドライバ300を含む。セーフティドライバ300の各々は、電気的に接続されたサーボモータ400を駆動する。なお、サーボモータ400に限らず、任意の種類のモータを採用できる。さらに、制御システム1は、標準コントローラ100とネットワーク3を介して接続されるサポート装置500を含む。
標準コントローラ100は、第1のコントローラに相当し、予め作成された標準制御プログラムに従って、サーボモータ400を含む制御対象に対する標準制御を実行する。典型的には、標準コントローラ100は、1または複数のセンサ(図示していない)などからの入力信号に応じた制御演算をサイクリック実行することで、サーボモータ400などのアクチュエータに対する指令を周期的に算出する。
セーフティコントローラ200は、セーフティドライバ300に対してセーフティ機能の動作に係るセーフティ指令(第2の指令)を送信する。より具体的には、セーフティコントローラ200は、標準コントローラ100とは独立して、制御対象に対するセーフティ機能を実現するための監視および制御演算をサイクリック実行する。セーフティコントローラ200は、任意のセーフティデバイス240からの入力信号の受付、および/または、任意のセーフティデバイス240への指令の出力が可能になっている。
セーフティドライバ300は、標準コントローラ100からの指令(第1の指令)に従って、サーボモータ400に電力を供給することで、サーボモータ400を駆動する。セーフティドライバ300は、サーボモータ400からのフィードバック信号などに基づいて、サーボモータ400の回転位置、回転速度、回転加速度および発生するトルクなどを周期的に算出する。
さらに、セーフティドライバ300は、サーボモータ400の駆動に関するセーフティ機能を有している。より具体的には、セーフティドライバ300は、セーフティ機能に必要な状態情報をセーフティコントローラ200へ提供するとともに、要求されるセーフティ機能に応じて、サーボモータ400に供給する電力を調整または遮断する。
サーボモータ400は、セーフティドライバ300からの電力を受けて回転するモータを有するとともに、モータの回転軸に結合されたエンコーダからの検出信号をフィードバック信号としてセーフティドライバ300へ出力する。
サポート装置500は、一例として、汎用的なコンピュータアーキテクチャに準じて構成されるコンピュータからなる。サポート装置500は、制御システム1に含まれる各デバイスに対する設定および各デバイスで実行されるプログラムの作成が統合的に可能な開発環境を提供する。一例として、サポート装置500は、標準コントローラ100を制御するための標準制御プログラムや、セーフティコントローラ200を制御するためのセーフティプログラムの開発環境を提供する。設計された標準制御プログラムおよびセーフティプログラムは、フィールドネットワーク2を介して標準コントローラ100およびセーフティコントローラ200にそれぞれ転送される。
本明細書において、「デバイス」は、フィールドネットワーク2などの任意のネットワークを介して、他の装置とデータ通信可能な装置の総称である。本実施の形態に係る制御システム1において、「デバイス」は、標準コントローラ100、セーフティコントローラ200およびセーフティドライバ300を包含する。
本明細書において、「標準制御」および「セーフティ制御」の用語を対比的に用いる。「標準制御」は、予め定められた要求仕様に沿って、制御対象を制御するための処理の総称である。一方、「セーフティ制御」は、設備や機械などによって人の安全が脅かされることを防止するための処理を総称する。「セーフティ制御」は、IEC 61508などに規定されたセーフティ機能を実現するための要件を満たすように設計される。
本明細書においては、ドライブ装置に特有のセーフティ機能を「モーションセーフティ機能」と総称する。典型的には、「機能」は、上述の非特許文献1に規定されるドライブ装置に関連するセーフティ機能を包含する。例えば、制御軸の位置や速度を監視して安全を確保するための制御を含む。
本明細書において、「状態値」および「パラメータ」の用語を対比的に用いる。「状態値」は、標準コントローラ100の状態、セーフティコントローラ200の状態、セーフティドライバ300の状態、およびサーボモータ400の状態の少なくとも1つを表わすデータを意味する。異なる言い方をすれば、「状態値」は、標準コントローラ100の状態、セーフティコントローラ200の状態、セーフティドライバ300の状態、またはサーボモータ400の状態に連動して値が変化するデータを意味する。典型的には、「状態値」は、標準制御プログラムやセーフティプログラムで用いられる変数に相当し、一つの値を表わすデータ、配列として表されるデータ、構造体として表されるデータなどを含み得る。これに対して、「パラメータ」は、標準コントローラ100の状態、セーフティコントローラ200の状態、セーフティドライバ300の状態、およびサーボモータ400の状態に連動しないデータのことを意味する。「パラメータ」との概念は、定数や関数(例えば、一次関数や二次関数など)などを含み得る。
本明細書において、「プロセスデータ」は、標準制御またはセーフティ制御の少なくともいずれかで用いられるデータの総称である。具体的には、「プロセスデータ」は、制御対象から取得される入力情報、制御対象へ出力される出力情報、各デバイスでの制御演算に使用される内部情報などを包含する。
入力情報は、光電センサなどにより検出されるON/OFF信号(デジタル入力)、温度センサなどにより検出される物理信号(アナログ入力)、ならびに、パルスエンコーダなどが発生するパルス信号(パルス入力)などを包含する。出力情報は、リレーなどを駆動するためのON/OFF(デジタル出力)、サーボモータの回転速度などを指示する速度指令(アナログ出力)、ならびに、ステッピングモータの移動量などを指示する変位指令(パルス出力)などを包含する。内部情報は、任意のプロセスデータを入力とする制御演算などによって決定される状態情報などを含む。
基本的には、「プロセスデータ」の値は、制御周期または通信周期毎に更新される。ここで、更新とは、最新の値を反映することを意味し、更新の前後において値が変化しない場合も含み得る。
図2は、本実施の形態に係る制御システム1が有する機能を示す模式図である。図2を参照して、標準コントローラ100は、機能モジュールとして、データトレースモジュール154を含む。セーフティドライバ300は、ハードウェア構成として、制御装置311と、ストレージ320とを含む。
セーフティドライバ300の制御装置311には、標準制御を実現するための指令(第1の指令)が標準コントローラ100から与えられる。制御装置311は、標準コントローラ100からの指令に従ってセーフティドライバ300を制御する。
また、セーフティドライバ300の制御装置311には、セーフティ機能の動作に係る指令(第2の指令)がセーフティコントローラ200から与えられる。制御装置311は、当該第2の指令を受けた場合に、サーボモータ400の状態値とセーフティパラメータSPとに基づいて、サーボモータ400の駆動を停止する。セーフティパラメータSPは、セーフティドライバ300が提供するモーションセーフティ機能の各々に対応する予め定められた1または複数の設定値である。例えば、セーフティパラメータSPとしては、速度範囲、加速度範囲、停止時間などが含まれ得る。制御装置311は、セーフティパラメータSPとサーボモータ400の状態値とを比較し、当該比較結果が異常を示す場合、サーボモータ400を停止する。
データトレースモジュール154は、標準コントローラ100からの指令(第1の指令)に応じて変化する、サーボモータ400の動作に関する各種の状態値を監視する。当該状態値は、例えば、サーボモータ400の回転速度、サーボモータ400の回転加速度、サーボモータ400の駆動対象の現在位置、サーボモータ400の駆動対象の速度、サーボモータ400の駆動対象の加速度などを含む。
サポート装置500は、データトレースモジュール154によるトレース結果DTと、セーフティパラメータSPとを取得し、トレース結果DTに重ねてセーフティパラメータSPを表示する。図2には、セーフティパラメータSPの一例として、サーボモータ400の速度の上限値を示すセーフティパラメータSP1と、サーボモータ400の速度の下限値を示すセーフティパラメータSP2とが示されている。また、図2には、トレース結果DTの一例として、サーボモータ400の速度の推移が示されている。ユーザは、トレース結果DTおよびセーフティパラメータSPを同一のグラフ上で確認することで、サーボモータ400の動作がセーフティ機能の仕様を満たしているか否かを容易に判断することができる。
なお、図2の例では、データトレースモジュール154が標準コントローラ100に実装されているが、データトレースモジュール154は、必ずしも標準コントローラ100に実装される必要はない。データトレースモジュール154は、後述するように、標準コントローラ100に接続される他のユニット(例えば、トレースユニット)に実装されてもよい。あるいは、データトレースモジュール154は、セーフティコントローラ200や外部機器であるサーバに実装されてもよい。
<B.制御システム1に含まれるデバイスの構成例>
次に制御システム1に含まれるデバイスの構成例について説明する。
(b1:標準コントローラ100)
図3は、本実施の形態に係る制御システム1を構成する標準コントローラ100のハードウェア構成例を示す模式図である。図3を参照して、標準コントローラ100は、プロセッサ102と、メインメモリ104と、ストレージ110と、上位ネットワークコントローラ106と、フィールドネットワークコントローラ108と、USB(Universal Serial Bus)コントローラ120と、メモリカードインターフェイス112と、ローカルバスコントローラ116とを含む。これらのコンポーネントは、プロセッサバス118を介して接続されている。
プロセッサ102は、主として、標準制御に係る制御演算を実行する演算処理部に相当し、CPU(Central Processing Unit)やGPU(Graphics Processing Unit)などで構成される。具体的には、プロセッサ102は、ストレージ110に格納されたプログラム(一例として、システムプログラム1102および標準制御プログラム1104)を読出して、メインメモリ104に展開して実行することで、制御対象に応じた制御演算、および、後述するような各種処理を実現する。
メインメモリ104は、DRAM(Dynamic Random Access Memory)やSRAM(Static Random Access Memory)などの揮発性記憶装置などで構成される。ストレージ110は、例えば、SSD(Solid State Drive)やHDD(Hard Disk Drive)などの不揮発性記憶装置などで構成される。
ストレージ110には、基本的な機能を実現するためのシステムプログラム1102に加えて、制御対象に応じて作成された標準制御プログラム1104が格納される。さらに、ストレージ110には、後述するような変数などを設定するための設定情報1106が格納される。
上位ネットワークコントローラ106は、上位ネットワークを介して、任意の報処理装置との間でデータを遣り取りする。
フィールドネットワークコントローラ108は、フィールドネットワーク2を介して、セーフティコントローラ200およびセーフティドライバ300を含む任意のデバイスとの間でデータを遣り取りする。図3に示す制御システム1においては、標準コントローラ100のフィールドネットワークコントローラ108は、フィールドネットワーク2の通信マスタとして機能する。
USBコントローラ120は、USB接続を介して、サポート装置500などとの間でデータを遣り取りする。
メモリカードインターフェイス112は、着脱可能な記録媒体の一例であるメモリカード114を受付ける。メモリカードインターフェイス112は、メモリカード114に対してデータを書込み、メモリカード114から各種データ(ログやトレースデータなど)を読出すことが可能になっている。
ローカルバスコントローラ116は、ローカルバスを介して、標準コントローラ100に接続される任意のユニットとの間でデータを遣り取りする。
図3には、プロセッサ102がプログラムを実行することで必要な機能が提供される構成例を示したが、これらの提供される機能の一部または全部を、専用のハードウェア回路(例えば、ASIC(Application Specific Integrated Circuit)またはFPGA(Field-Programmable Gate Array)など)を用いて実装してもよい。あるいは、標準コントローラ100の主要部を、汎用的なアーキテクチャに従うハードウェア(例えば、汎用パソコンをベースとした産業用パソコン)を用いて実現してもよい。この場合には、仮想化技術を用いて、用途の異なる複数のOS(Operating System)を並列的に実行させるとともに、各OS上で必要なアプリケーションを実行させるようにしてもよい。さらに、標準コントローラ100に表示装置やサポート装置などの機能を統合した構成を採用してもよい。
(b2:セーフティコントローラ200)
図4は、本実施の形態に係る制御システム1を構成するセーフティコントローラ200のハードウェア構成例を示す模式図である。図4を参照して、セーフティコントローラ200は、プロセッサ202と、メインメモリ204と、ストレージ210と、フィールドネットワークコントローラ208と、USBコントローラ220と、セーフティローカルバスコントローラ216とを含む。これらのコンポーネントは、プロセッサバス218を介して接続されている。
プロセッサ202は、主として、セーフティ制御に係る制御演算を実行する演算処理部に相当し、CPUやGPUなどで構成される。具体的には、プロセッサ202は、ストレージ210に格納されたプログラム(一例として、システムプログラム2102およびセーフティプログラム2104)を読出して、メインメモリ204に展開して実行することで、必要なセーフティ機能を提供するための制御演算、および、後述するような各種処理を実現する。
メインメモリ204は、DRAMやSRAMなどの揮発性記憶装置などで構成される。ストレージ210は、例えば、SSDやHDDなどの不揮発性記憶装置などで構成される。
ストレージ210には、基本的な機能を実現するためのシステムプログラム2102に加えて、要求されるセーフティ機能に応じた作成されたセーフティプログラム2104が格納される。さらに、ストレージ210には、後述するような変数などを設定するための設定情報2106が格納される。
フィールドネットワークコントローラ208は、フィールドネットワーク2を介して、標準コントローラ100およびセーフティドライバ300を含む任意のデバイスとの間でデータを遣り取りする。図3に示す制御システム1においては、セーフティコントローラ200のフィールドネットワークコントローラ208は、フィールドネットワーク2の通信スレーブとして機能する。
USBコントローラ220は、USB接続を介して、サポート装置500などの情報処理装置との間でデータを遣り取りする。
セーフティローカルバスコントローラ216は、セーフティローカルバスを介して、セーフティコントローラ200に接続される任意のセーフティユニットとの間でデータを遣り取りする。図4には、セーフティユニットの一例として、セーフティIOユニット230を示す。
セーフティIOユニット230は、任意のセーフティデバイス240との間で入出力信号を遣り取りする。より具体的には、セーフティIOユニット230は、セーフティセンサやセーフティスイッチなどのセーフティデバイス240からの入力信号を受付ける。あるいは、セーフティIOユニット230は、セーフティリレーなどのセーフティデバイス240へ指令を出力する。
図4には、プロセッサ202がプログラムを実行することで必要な機能が提供される構成例を示したが、これらの提供される機能の一部または全部を、専用のハードウェア回路(例えば、ASICまたはFPGAなど)を用いて実装してもよい。あるいは、セーフティコントローラ200の主要部を、汎用的なアーキテクチャに従うハードウェア(例えば、汎用パソコンをベースとした産業用パソコン)を用いて実現してもよい。
(b3:セーフティドライバ300およびサーボモータ400)
図5は、本実施の形態に係る制御システム1を構成するセーフティドライバ300およびサーボモータ400のハードウェア構成例を示す模式図である。図5を参照して、セーフティドライバ300は、フィールドネットワークコントローラ302と、制御ユニット310と、ドライブ回路330と、フィードバック受信回路332とを含む。
フィールドネットワークコントローラ302は、フィールドネットワーク2を介して、標準コントローラ100およびセーフティコントローラ200を含む任意のデバイスとの間でデータを遣り取りする。図5に示す制御システム1においては、セーフティドライバ300のフィールドネットワークコントローラ302は、フィールドネットワーク2の通信スレーブとして機能する。
制御ユニット310は、セーフティドライバ300を動作させるために必要な演算処理を実行する。一例として、制御ユニット310は、セーフティドライバ300を制御する制御装置311と、メインメモリ316と、ストレージ320とを含む。制御装置311は、1つ以上のプロセッサで構成される。例えば、制御装置311は、2つのプロセッサ312,314で構成される。
プロセッサ312は、サーボモータ400を駆動するための制御演算を主として実行する演算処理部に相当する。プロセッサ314は、サーボモータ400に係るセーフティ機能を提供するための制御演算を主として実行する演算処理部に相当する。プロセッサ312,314は、いずれもCPUなどで構成される。
メインメモリ316は、DRAMやSRAMなどの揮発性記憶装置などで構成される。ストレージ320は、例えば、SSDやHDDなどの不揮発性記憶装置などで構成される。
ストレージ320には、サーボ制御350を実現するためのサーボ制御プログラム3202と、モーションセーフティ機能360を実現するためのモーションセーフティプログラム3204と、他のデバイスに公開される変数などを設定するための設定情報3206と、セーフティ機能の種別に関連付けられた複数のセーフティパラメータSPとが格納される。
図5には、2つのプロセッサ312,314がそれぞれ異なる目的の制御演算を実行することで信頼性を高める構成を例示するが、これに限らず、要求されるセーフティ機能を実現できればどのような構成を採用してもよい。例えば、単一のプロセッサに複数のコアが含まれるような場合には、プロセッサ312,314にそれぞれ対応する制御演算を実行するようにしてもよい。また、図5には、プロセッサ312,314がプログラムを実行することで必要な機能が提供される構成例を示したが、これらの提供される機能の一部または全部を、専用のハードウェア回路(例えば、ASICまたはFPGAなど)を用いて実装してもよい。
ドライブ回路330は、コンバータ回路およびインバータ回路などを含み、制御ユニット310からの指令に従って、指定された電圧・電流・位相の電力を生成して、サーボモータ400へ供給する。
フィードバック受信回路332は、サーボモータ400からのフィードバック信号を受信して、その受信結果を制御ユニット310へ出力する。
サーボモータ400は、典型的には、三相交流モータ402および三相交流モータ402の回転軸に取付けられたエンコーダ404を含む。
三相交流モータ402は、セーフティドライバ300から供給される電力を受けて回転力を発生するアクチュエータである。図5には、一例として、三相交流モータを例示するが、これに限らず、直流モータであってもよいし、単相交流モータあるいは多相交流モータであってもよい。さらに、リニアサーボのような直線に沿って駆動力を発生するアクチュエータを採用してもよい。
エンコーダ404は、三相交流モータ402の回転数に応じたフィードバック信号(典型的には、回転数に応じた数のパルス信号)を出力する。
(b4:サポート装置500)
図6は、本実施の形態に係る制御システム1を構成するサポート装置500のハードウェア構成例を示す模式図である。サポート装置500は、一例として、汎用的なアーキテクチャに従うハードウェア(例えば、汎用パソコン)を用いて実現される。
図6を参照して、サポート装置500は、プロセッサ502と、メインメモリ504と、入力部506と、出力部508と、ストレージ510と、光学ドライブ512と、USBコントローラ520とを含む。これらのコンポーネントは、プロセッサバス518を介して接続されている。
プロセッサ502は、CPUやGPUなどで構成され、ストレージ510に格納されたプログラム(一例として、OS5102およびサポートプログラム5104)を読出して、メインメモリ504に展開して実行することで、後述するような各種処理を実現する。
メインメモリ504は、DRAMやSRAMなどの揮発性記憶装置などで構成される。ストレージ510は、例えば、HDDやSSDなどの不揮発性記憶装置などで構成される。
ストレージ510には、基本的な機能を実現するためのOS5102に加えて、サポート装置500としての機能を提供するためのサポートプログラム5104が格納される。すなわち、サポートプログラム5104は、制御システム1に接続されるコンピュータにより実行されることで、本実施の形態に係るサポート装置500を実現する。
さらに、ストレージ510には、サポートプログラム5104が実行されることで提供される開発環境においてユーザにより作成されるプロジェクトデータ5106が格納される。
本実施の形態において、サポート装置500は、制御システム1に含まれる各デバイスに対する設定および各デバイスで実行されるプログラムの作成が統合的に可能な開発環境を提供する。プロジェクトデータ5106は、このような統合的な開発環境によって生成されるデータを含む。典型的には、プロジェクトデータ5106は、標準制御ソースプログラム5108と、標準コントローラ設定情報5110と、セーフティソースプログラム5112と、セーフティコントローラ設定情報5114と、セーフティドライバ設定情報5116と、収集候補情報5118と、軸情報5120と、収集対象のデータ群5121と、単位変換表5122を含む。
標準制御ソースプログラム5108は、オブジェクトコードに変換された上で、標準コントローラ100へ送信され、標準制御プログラム1104(図3参照)として格納される。同様に、標準コントローラ設定情報5110、軸情報5120、収集対象のデータ群5121、および単位変換表5122についても標準コントローラ100へ送信され、設定情報1106(図3参照)として格納される。
セーフティソースプログラム5112は、オブジェクトコードに変換された上で、セーフティコントローラ200へ送信され、セーフティプログラム2104(図4参照)として格納される。同様に、セーフティコントローラ設定情報5114についてもセーフティコントローラ200へ送信され、設定情報2106(図4参照)として格納される。
セーフティドライバ設定情報5116は、セーフティドライバ300へ送信され、設定情報3206(図5参照)として格納される。
入力部506は、キーボードやマウスなどで構成され、ユーザ操作を受付ける。出力部508は、ディスプレイ、各種インジケータ、プリンタなどで構成され、プロセッサ502からの処理結果などを出力する。当該ディスプレイは、サポート装置500と一体的に構成されてもよいし、外付けでサポート装置500に接続されてもよい。
USBコントローラ520は、USB接続を介して、標準コントローラ100などとの間のデータを遣り取りする。
サポート装置500は、光学ドライブ512を有しており、コンピュータ読取可能なプログラムを非一過的に格納する記録媒体514(例えば、DVD(Digital Versatile Disc)などの光学記録媒体)から、その中に格納されたプログラムが読取られてストレージ510などにインストールされる。
サポート装置500で実行されるサポートプログラム5104などは、コンピュータ読取可能な記録媒体514を介してインストールされてもよいが、ネットワーク上のサーバ装置などからダウンロードする形でインストールするようにしてもよい。また、本実施の形態に係るサポート装置500が提供する機能は、OSが提供するモジュールの一部を利用する形で実現される場合もある。
図6には、プロセッサ502がプログラムを実行することで、サポート装置500として必要な機能が提供される構成例を示したが、これらの提供される機能の一部または全部を、専用のハードウェア回路(例えば、ASICまたはFPGAなど)を用いて実装してもよい。
なお、制御システム1が稼動中において、サポート装置500は、標準コントローラ100から取り外されていてもよい。
<C.制御システム1の機能分担>
次に、制御システム1における機能分担の一例について説明する。図7は、本実施の形態に係る制御システム1の機能分担の一例を示す模式図である。
図7を参照して、標準コントローラ100が実行する標準制御150に関して、セーフティドライバ300はサーボ制御350を実行する。標準制御150は、制御対象に予め設定されたユーザプログラムに従って、サーボモータ400を駆動するための指令を周期的に算出する処理を含む。また、サーボ制御350は、標準制御150により周期的に算出される指令に従ってサーボモータ400を駆動するための制御、および、サーボモータ400の動作状態を示す状態値を取得して出力する処理を含む。サーボ制御350は、セーフティドライバ300のプロセッサ312(図5参照)が担当する。
一方、セーフティコントローラ200が提供するセーフティ機能250に対応して、セーフティドライバ300はモーションセーフティ機能360を提供する。モーションセーフティ機能360は、セーフティドライバ300のプロセッサ314(図5参照)が担当する。
セーフティ機能250は、標準コントローラ100が実行する標準制御150が保持する状態値、セーフティデバイス240からの信号によって示される状態値、および、セーフティドライバ300が保持する状態値などに基づいて、予め定められた条件が成立すると、予め指定されているセーフティ機能を有効化する。
予め指定されているセーフティ機能を有効化する処理は、例えば、セーフティドライバ300に対するセーフティ指令の出力、あるいは、セーフティデバイス240に対してセーフティ指令の出力(例えば、特定の装置への電力供給に係るセーフティリレーを遮断する)などを含む。
セーフティドライバ300は、セーフティコントローラ200からのセーフティ指令に応答して、指定されたモーションセーフティ機能360を提供する。指定されたモーションセーフティ機能360の種類に応じて、サーボ制御350によるサーボモータ400の制御に介入して、サーボモータ400への電力供給を遮断する処理、あるいは、サーボ制御350によるサーボモータ400の制御の状態値が予め定められた制限範囲内に収まっているか否かを監視する処理などが実行される。
図8は、本実施の形態に係る制御システム1のセーフティドライバ300によるセーフティ機能に係る処理手順の一例を示すシーケンス図である。図8を参照して、標準コントローラ100の標準制御150により周期的に指令が算出されて、セーフティドライバ300(サーボ制御350)に出力される(シーケンスSQ2)。セーフティドライバ300のサーボ制御350は、標準制御150からの指令に従って、サーボモータ400を駆動する(シーケンスSQ4)。
あるタイミングにおいて、セーフティデバイス240(例えば、セーフティセンサ)からのセーフティイベントが発生すると(シーケンスSQ6)、セーフティコントローラ200は、セーフティドライバ300(モーションセーフティ機能360)にセーフティ指令を出力する(シーケンスSQ8)。このセーフティ指令に応答して、セーフティドライバ300のモーションセーフティ機能360は、指定されたセーフティ機能を有効化する(シーケンスSQ10)。
セーフティ機能の有効化に応答して、標準コントローラ100の標準制御150からは、当該有効化されたセーフティ機能に応じた指令が算出および出力されるようになる(シーケンスSQ12)。一方、セーフティドライバ300(モーションセーフティ機能360)は、サーボモータ400の動作状態が予め定められた制限範囲内に収まっているか否かを監視する。サーボモータ400の動作状態が予め定められた制限範囲内に収まっていないと判断されると、あるいは、予め定められた停止時間が到来すると、セーフティドライバ300(モーションセーフティ機能360)は、サーボモータ400への電力供給を遮断する(シーケンスSQ14)。
このように、セーフティドライバ300は、標準コントローラ100(標準制御150)からの指令に従ってサーボモータ400を駆動できるとともに、セーフティ機能を有効化するための指令に応じて、セーフティコントローラ200(セーフティ機能250)に対するモーションセーフティ機能を実現することができる。
<D.制御システム1のモーションセーフティ機能>
次に、制御システム1が提供するモーションセーフティ機能の一例について説明する。
図9は、本実施の形態に係る制御システム1が提供するモーションセーフティ機能の一例を示す図である。図9(A)には、STO(Safe Torque Off)に対応するサーボモータ400の挙動の一例を示し、図9(B)には、SS1(Safe Stop 1)に対応するサーボモータ400の挙動の一例を示す。
図9(A)を参照して、サーボモータ400がある回転速度で運転している状態において、時刻t1でセーフティ指令(STO)が与えられると、セーフティドライバ300は、サーボモータ400への電力供給を遮断して、サーボモータ400で発生するトルクをゼロにする。この結果、サーボモータ400は惰性で回転した後に停止する。なお、サーボモータ400にブレーキが装着されている場合には、サーボモータ400は即座に停止することもできる。
図9(B)を参照して、サーボモータ400がある回転速度で運転している状態において、時刻t1でセーフティ指令(SS1)が与えられると、セーフティドライバ300は、予め定められた加速度で回転速度を低減する。このとき、セーフティドライバ300は、サーボモータ400からの電力回収(すなわち、回生)などを実行してもよい。そして、時刻t2においてサーボモータ400の回転速度がゼロになると、セーフティドライバ300は、サーボモータ400への電力供給を遮断して、サーボモータ400で発生するトルクをゼロにする。時刻t2以降においては、図9(A)に示すSTOと同様の状態になる。
図9(A)に示されるSTOおよび図9(B)に示されるSS1のうち、サーボモータ400と機械的に連結されている設備の特性などに応じて、より安全に停止できるセーフティ機能が適宜選択される。
上述し非特許文献1は、図9(A)および図9(B)に示すモーションセーフティ機能だけではなく、複数のモーションセーフティ機能を規定する。各モーションセーフティ機能を実現するためには、サーボモータ400の挙動を規定するための設定が必要となる。
図10は、本実施の形態に係る制御システム1のセーフティドライバ300に格納されるモーションセーフティ機能を実現するためのパラメータセット390の一例を示す図である。図10を参照して、パラメータセット390は、セーフティドライバ300が提供するモーションセーフティ機能の各々に対応する1または複数の設定値(セーフティパラメータ)を含む。
例えば、モーションセーフティ機能に対応する設定値としては、速度範囲、加速度範囲、停止時間などが含まれ得る。
典型的には、ユーザがサポート装置500を操作してセーフティドライバ300におけるモーショセーフティ機能における挙動を決定し、その決定された挙動に対応するパラメータセット390がセーフティドライバ300へ転送される。セーフティドライバ300は、サポート装置500からのパラメータセット390を予め格納している。
<E.制御システム1のデータ通信>
次に、制御システム1におけるデータ通信の一例について説明する。
図11は、本実施の形態に係る制御システム1における通信フレームの伝送形態を説明するための図である。図11を参照して、制御システム1のフィールドネットワーク2においては、プロセスデータ通信が行われており、標準コントローラ100を通信マスタとして、通信フレーム600がサイクリック(例えば、数~10数msec)にデバイス間を一巡する。通信フレーム600が伝送する周期をプロセスデータ通信周期とも称する。
本実施の形態においては、このような通信フレーム600をサイクリックに伝送するフィールドネットワーク2のプロトコルの一例として、EtherCAT(登録商標)を採用する。
通信フレーム600には、デバイス毎にデータ領域が割り当てられている。各デバイスは、周期的に伝送される通信フレーム600を受信すると、当該受信した通信フレーム600内の自デバイスに割り当てられたデータ領域に予め設定されたデータの現在値を書込む。そして、現在値の書込み後の通信フレーム600を次段のデバイスに送出する。各デバイスにより書込まれたデータの現在値は他のデバイスから参照可能になっている。
各デバイスが通信フレーム600に予め設定されたデータの現在値を書込むことで、フィールドネットワーク2を一巡して通信マスタ(標準コントローラ100)に戻る通信フレーム600には、各デバイスにより収集された最新の値が含まれることになる。
本実施の形態においては、このようなプロセスデータ通信を利用して、セーフティコントローラ200とセーフティドライバ300の各々との間で論理コネクション4が形成される(図11参照)。この論理コネクション4は、セーフティ機能を実現するためのデータの遣り取りに用いられる。
上述したように、フィールドネットワーク2のプロトコルとしてEtherCATを採用する場合には、FSoE(FailSafe over EtherCAT)と称されるプロトコルを用いて論理コネクション4を形成できる。
より具体的には、論理コネクション4を形成するために遣り取りされるコマンドを格納するための専用のデータ領域が通信フレーム600に割り当てられる。当該専用のデータ領域を用いて、デバイス間でコマンドを遣り取りすることで、論理コネクション4を形成する。
図12は、本実施の形態に係る制御システム1におけるデータ伝送を説明するための図である。図12を参照して、通信フレーム600には、プロセスデータ通信に用いられるデータ領域610に加えて、論理コネクション4に用いられるデータ領域620が規定されている。
データ領域610は、標準コントローラ100に割り当てられたデータ領域611と、セーフティドライバ300に割り当てられたデータ領域612,613,614と、セーフティコントローラ200に割り当てられたデータ領域615とを含む。
データ領域612,613,614,615は、各デバイスから他のデバイスへデータを公開するためのINデータ領域6121,6131,6141,6151と、各デバイスでの指令を受付けるためのOUTデータ領域6122,6132,6142,6152とを含む。
INデータ領域6121,6131,6141,6151は、各デバイスが管理するプロセスデータのうち、他のデバイスへ公開するデータが書込まれるデータ領域である。各デバイスが通信フレーム600内の自デバイスに割り当てられたINデータ領域に必要なデータを書込むことで、他のデバイスは当該書込まれたデータを参照できるようになる。通常、標準コントローラ100は、通信周期毎に、各デバイスにより書込まれたデータを参照して標準制御に係る制御演算を実行することで、各デバイスに対する指令を算出する。
OUTデータ領域6122,6132,6142,6152には、各デバイスに与えられる指令が書込まれる。各デバイスは、通信フレーム600内の自デバイスに割り当てられたOUTデータ領域に格納されているデータを参照することで、制御対象への出力信号を生成し、あるいは、内部の制御状態を更新する。基本的には、各デバイスのOUTデータ領域には、標準コントローラ100によってデータが書込まれる。
プロセスデータ通信に用いられるデータ領域610に対する、各デバイスのデータの書込みおよび読出し動作は、各デバイスに割り当てられるデータ領域に応じて、予め設定されている。このようなデータの書込みおよび読出しの設定操作は、サポート装置500上でユーザによって行われる。そして、サポート装置500から各デバイスに設定情報が送信される。
一方、論理コネクション4に用いられるデータ領域620は、セーフティドライバ300に割り当てられたデータ領域621,622,623と、セーフティコントローラ200に割り当てられたデータ領域624とを含む。各デバイスは、データ領域621,622,623,624に対して、論理コネクション4に係る通信フレーム(以下、「セーフティ通信フレーム630」とも称す。)の書込みおよび読出しを行う。通信マスタである標準コントローラ100は、データ領域621,622,623,624の間で、格納されているセーフティ通信フレーム630を入れ替える。このような通信マスタによる折返し処理によって、セーフティ通信フレーム630は、一種のピアツーピアの通信が可能となる。
図12には、一例として、セーフティコントローラ200から1番目のセーフティドライバ300へセーフティ通信フレーム630を送信する場合の処理を示す。図12に示すようなセーフティ通信フレーム630は、セーフティコントローラ200が特定のセーフティドライバ300に対して特定のモーションセーフティ機能を有効化する場合などに送信される。
まず、セーフティコントローラ200は、送信先のセーフティドライバ300へ送信すべきセーフティ通信フレーム630を生成して、通信フレーム600のデータ領域624に書込む。その後、セーフティ通信フレーム630が書込まれた通信フレーム600が通信マスタである標準コントローラ100へ到着すると、標準コントローラ100は、データ領域624に格納されているセーフティ通信フレーム630をデータ領域621に複製する。データ領域621にセーフティ通信フレーム630が複製された通信フレーム600が送信先のセーフティドライバ300に到着すると、送信先のセーフティドライバ300は、データ領域621を参照して、セーフティ通信フレーム630を受信する。
また、セーフティドライバ300からセーフティコントローラ200へのセーフティ通信フレーム630は、上述とは反対の通信経路で送信される。
このように、本実施の形態に係る制御システム1においては、通信フレーム600内のデータ領域620を用いて、論理コネクション4が形成される。
<F.標準制御およびセーフティ制御の実装例>
上述したように、本実施の形態に係る制御システム1においては、プロセスデータ通信および論理コネクション4によるセーフティ通信が可能になっている。次に、それぞれの通信を利用した標準制御およびセーフティ制御の実装例について説明する。
図13は、本実施の形態に係る制御システム1における標準制御およびセーフティ制御の実装例を示す模式図である。説明の便宜上、図13には、標準コントローラ100およびセーフティコントローラ200に加えて、1つのセーフティドライバ300からなる制御システム1の例を示す。
図13を参照して、標準コントローラ100は、主たる機能構成として、プロセスデータ通信レイヤ170およびIO管理モジュール172を有している。セーフティコントローラ200は、主たる機能構成として、プロセスデータ通信レイヤ270と、IO管理モジュール272と、論理コネクションレイヤ276と、セーフティ機能状態管理エンジン278とを含む。セーフティドライバ300は、主たる機能構成として、プロセスデータ通信レイヤ370と、論理コネクションレイヤ376と、モーションセーフティ機能状態管理エンジン378と、サーボ制御実行エンジン352と、モーションセーフティ機能実行エンジン362とを含む。
プロセスデータ通信レイヤ170、プロセスデータ通信レイヤ270およびプロセスデータ通信レイヤ370は、フィールドネットワーク2上の通信フレーム600の転送を担当する。プロセスデータ通信レイヤ170、プロセスデータ通信レイヤ270およびプロセスデータ通信レイヤ370の各々は、到着した通信フレーム600に含まれるデータに基づいて、各デバイスのプロセスデータ174,274,374を更新する。また、プロセスデータ通信レイヤ170、プロセスデータ通信レイヤ270およびプロセスデータ通信レイヤ370の各々は、予め指定されたプロセスデータを予め割り当てられているデータ領域に書込んだ上で、通信フレーム600を再生成して次段のデバイスに送出する。プロセスデータ通信によりプロセスデータの少なくとも一部は共有されることになる。
セーフティコントローラ200の論理コネクションレイヤ276およびセーフティドライバ300の論理コネクションレイヤ376は、セーフティ通信フレーム630の遣り取りを担当する。すなわち、論理コネクションレイヤ276および論理コネクションレイヤ376は、論理コネクションを形成するためのプロトコル(本実施の形態においては、FSoE)に従って、通信フレーム600に含まれるセーフティ通信フレーム630を用いて、コマンドおよびデータを遣り取りする。
標準コントローラ100において、IO管理モジュール172は、制御対象との間で信号を遣り取りすることで、プロセスデータ174を更新する。標準コントローラ100において実行される標準制御プログラム1104は、プロセスデータ174を参照して制御演算を実行するとともに、制御演算の実行結果でプロセスデータ174を更新する。
セーフティコントローラ200において、IO管理モジュール272は、セーフティデバイス240との間で信号を遣り取りすることで、プロセスデータ274を更新する。図13においては、プロセスデータ274とまとめて表現しているが、プロセスデータ通信により更新されるプロセスデータ(標準制御用)と、セーフティデバイス240との遣り取りにより更新されるプロセスデータ(セーフティ制御用)とを異なるレベルで管理するようにしてもよい。
セーフティコントローラ200において実行されるセーフティプログラム2104は、プロセスデータ274およびセーフティ機能状態管理エンジン278を参照して制御演算を実行するとともに、制御演算の実行結果に基づいて、プロセスデータ274を更新し、あるいは、セーフティ機能状態管理エンジン278に対して内部的な指令を出力する。
セーフティ機能状態管理エンジン278は、セーフティプログラム2104による制御演算の実行結果に応じて、特定のセーフティドライバ300に対して特定のモーションセーフティ機能を有効化するための指令を生成する。論理コネクションレイヤ276は、セーフティ機能状態管理エンジン278からの指令に応答して、対象のセーフティドライバ300の論理コネクションレイヤ376との間で、セーフティ通信フレーム630を用いて必要なコマンドおよび情報を遣り取りする。
セーフティドライバ300において、サーボ制御実行エンジン352は、プロセスデータ374およびフィードバック受信回路332を介して取得されるフィードバック信号の情報を参照してサーボ制御に係る制御演算を実行する。サーボ制御実行エンジン352は、制御演算の実行結果に基づいて、プロセスデータ374を更新するとともに、ドライブ回路330に内部的な指令を出力する。ドライブ回路330は、サーボ制御実行エンジン352からの指令に従って、サーボモータ400を駆動する。
モーションセーフティ機能状態管理エンジン378は、セーフティコントローラ200からのセーフティ指令に従ってモーションセーフティ機能の状態を管理する状態管理部に相当する。モーションセーフティ機能状態管理エンジン378は、セーフティコントローラ200からの指令に応答して、モーションセーフティ機能実行エンジン362に対して内部的な指令を出力する。
モーションセーフティ機能実行エンジン362は、指定されたモーションセーフティ機能を実行する。
論理コネクションレイヤ376は、モーションセーフティ機能状態管理エンジン378からの指令に応答して、セーフティコントローラ200の論理コネクションレイヤ276との間で、セーフティ通信フレーム630を用いて必要なコマンドおよび情報を遣り取りする。
<G.データトレース機能>
図14~図19を参照して、制御システム1におけるデータトレース機能について説明する。図14は、データトレース機能を実現するための制御フローの一例を示す図である。以下、図14に示される各ステップの処理について順に説明する。
(G1.ステップS10)
まず、図14~図17を参照して、ステップS10の処理について説明する。
図14に示されるステップS10において、ユーザは、データトレースに関する各種設定をサポート装置500に対して行う。一例として、ユーザは、トレース条件やトレース対象のデータ群をサポート装置500に対して設定する。
図15は、データトレースに関する各種の設定を受け付けるデータトレース画面530を示す図である。図15に示されるように、データトレース画面530は、トレース条件の設定領域531と、トレース対象のデータ群の設定領域533と、トレース結果の表示領域535とを含む。トレース条件の設定領域531は、設定領域531A~531Eを含む。
設定領域531Aは、トレースタイプの選択を受け付ける。選択可能なトレースタイプの種類は、例えば、シングルトレースと、連続トレースとを含む。シングルトレースが選択された場合、設定領域531Eに設定されたトリガ条件が成立する前後のデータが記録される。連続トレースが選択された場合、設定領域531Eに設定されるトリガ条件に関わらずトレース対象のデータが記録され続ける。
設定領域531Bは、データトレース時におけるサンプリング間隔の設定を受け付ける。サンプリング間隔は、例えば、タスクの指定や時間の指定によって設定される。タスクが指定された場合には、指定されたタスクの実行周期がサンプリング周期として設定される。時間が指定された場合には、指定された時間がサンプリング周期として設定される。
設定領域531Cは、1データ当たりにおけるサンプリング数の上限値の設定を受け付ける。より具体的には、標準コントローラ100は、トレース対象のデータを所定の記憶領域に順次書き込み、サンプリング数が設定された上限値に達した場合には、最も古いデータから順に新しいデータで上書きする。
設定領域531Dは、設定領域531Eに設定されるトリガ条件の成立前後におけるデータの保存比率の設定を受け受ける。より具体的には、標準コントローラ100は、トリガ条件が成立してから、設定された保存比率に相当するサンプリング数のデータを収集するまではデータトレースを継続する。
設定領域531Eは、トリガ条件の設定を受け付ける。設定領域531Eは、例えば、トリガ対象の変数名の指定や、当該変数に対する条件式(例えば、不等式や等式など)などを受け付ける。指定された変数が指定された条件式を満たした場合に、トリガ条件が満たされる。一例として、セーフティ機能に関する変数(例えば、「SS1」など)の立ち上がりなどがトリガ条件として設定される。トリガ条件が満たされると、サンプリング終了条件の監視が開始される。サンプリング終了条件は、設定領域531Cに設定されたサンプリング数と、設定領域531Dに設定された保存比率とに依存する。一例として、サンプリング数が10000回に設定されており、保存比率が50%に設定されている場合、標準コントローラ100は、トリガ条件の成立後において、5000回(=10000回×0.5)のサンプリングを行い、その後、データトレースを停止する。これにより、トリガ条件の成立前における5000回のサンプリングデータと、トリガ条件の成立後における5000回のサンプリングデータとがトレース結果として残ることになる。
設定領域533は、トレース対象のデータ群の設定を受け付ける。設定領域533は、トレース対象のデータ群を表示するデータリスト533Aと、追加ボタンB1と、削除ボタンB2と、一括追加ボタンB3とを含む。
ユーザが追加ボタンB1を押下すると、データリスト533Aにデータの設定欄が一行追加される。ユーザは、追加された設定欄にトレース対象のデータの変数名などを入力することができる。
ユーザは、データリスト533A内のいずれかの設定欄を選択した状態で削除ボタンB2を押下すると、データリスト533Aから選択した設定欄を削除することができる。
ユーザが一括追加ボタンB3を押下すると、サポート装置500は、データトレース画面530とは別ウィンドウで、トレース対象のデータ群の一括設定画面を開く。図16は、トレース対象のデータ群の一括設定画面540を示す図である。
一括設定画面540は、トレース対象の軸の選択を受け付ける設定領域542(モータ受付部)と、セーフティ機能の選択を受け付ける設定領域543(機能受付部)と、トレース対象のデータ群を表示する表示領域545とを含む。ここでいう「軸」とは、サーボモータ400による駆動対象の軸のことを言う。サーボモータ400および軸は、1対1に対応するので、トレース対象の軸を選択することは、トレース対象のサーボモータ400を選択することと同意である。サポート装置500は、設定領域542において選択された軸と、設定領域543において選択されたセーフティ機能とに基づいて、トレース対象のデータ群の候補を決定する。
以下、トレース対象のデータ群の決定方法について説明する。図17は、トレース対象のデータ群の決定方法を概略的に示す概念図である。
図17に示されるように、サポート装置500は、ハードウェア構成として、プロセッサ502と、ストレージ510とを含む。プロセッサ502は、機能構成として、決定モジュール550を含む。ストレージ510は、収集候補情報5118と、軸情報5120とを含む。
収集候補情報5118において、制御システム1内における収集候補のデータ群がセーフティドライバ300のセーフティ機能の種別に対応付けている。収集候補情報5118に規定されるセーフティ機能は、例えば、STO(Safe Torque Off)、SS1(Safe Stop 1)、SS2(Safe Stop 2)、SOS(Safe Operating Stop)、SBC(Safe Brake Control)などを含む。
収集候補情報5118に規定される収集候補の各データ群は、セーフティ機能の実行時に参照される変数を含む。一例として、セーフティ機能「SS1」に関連付けられる変数は、セーフティ機能「SS1」が有効化されたか否かを示すユーザ変数「SS1」、サーボモータ400の速度を示すシステム変数「Act.Vel」、サーボモータ400が通電状態か否かを示すシステム変数「Drvstatus.ServoOn」などを含む。
また、収集候補情報5118に規定される収集候補の各データ群は、セーフティ機能の実行時に参照されるセーフティパラメータを含む。一例として、セーフティ機能「SS1」に関連付けられるセーフティパラメータは、「N_Zero_SS1」と、「-N_Zero_SS1」と、「T_L_SS1」と、「T_SS1」とを含む。
「N_Zero_SS1」は、サーボモータ400の状態値の上限値を示す。「-N_Zero_SS1」は、サーボモータ400の状態値の下限値を示す。
「T_L_SS1」は、セーフティドライバ300の状態値が上限値「N_Zero_SS1」と等しくなってからサーボモータ400の駆動を強制的に停止するまでの停止猶予時間を示す。すなわち、セーフティ機能「SS1」の仕様を満たすためには、サーボモータ400の状態値が、停止猶予時間「T_L_SS1」内に、上限値「N_Zero_SS1」および下限値「-N_Zero_SS1」の範囲内に収められる必要がある。
「T_SS1」は、セーフティ機能「SS1」の実行が開始されてからサーボモータ400の駆動を強制的に停止するまでの停止猶予時間を示す。すなわち、セーフティ機能「SS1」の仕様を満たすためには、サーボモータ400の状態値は、停止猶予時間「T_SS1」内に、上限値「N_Zero_SS1」および下限値「-N_Zero_SS1」の範囲内に収められる必要がある。
軸情報5120は、サポート装置500に対して設定された軸設定を含む。より具体的には、ユーザは、標準制御プログラム1104の設計時または設計前に、サーボモータ400毎に駆動対象の軸を予め設定する。この設定に基づいて、サポート装置500は、設定された軸に対応する構造体をシステム変数として生成する。ユーザは、生成された構造体を用いて各軸に対するプログラムを記述することができる。軸情報5120は、軸設定時に生成された各システム変数(構造体)を規定する。
決定モジュール550は、設定領域542(図16参照)において選択された軸と、設定領域543(図16参照)において選択されたセーフティ機能との組み合わせに基づいて、収集対象のデータ群を決定する。図17に示されるように、軸選択で「MC_Axis000」が選択され、機能選択で「SS1」が選択されたとする。この場合、決定モジュール550は、収集候補情報5118を参照して、セーフティ機能「SS1」に対応する収集候補のデータ群を特定する。決定モジュール550は、特定したデータ群の内、ユーザ変数「SS1」およびセーフティパラメータ「N_Zero_SS1」,「-N_Zero_SS1」,「T_SS1」については、そのまま収集対象のデータ群5121に含める。一方で、決定モジュール550は、特定したデータ群の内、軸に関するシステム変数「Act.Vel」,「Drvstatus.ServoOn」については構造体変数名「MC_Axis000」を付加し、システム変数「MC_Axis000.Act.Vel」,「MC_Axis000.Drvstatus.ServoOn」として収集対象のデータ群5121に含める。
再び図16を参照して、決定モジュール550によって決定された収集対象のデータ群5121は、一括設定画面540の表示領域545に表示される。ユーザがOKボタンB10を押下すると、表示領域545に表示されている収集対象のデータ群5121がデータトレース画面530の設定領域533に反映される。また、チェックボックス544がチェックされている状態でOKボタンB10が押下された場合、トレース条件がデータトレース画面530の設定領域531に自動で反映される。より具体的には、異なるトレース条件がセーフティ機能の種別に予め対応付けられており、選択されたセーフティ機能の種別に対応するトレース条件がデータトレース画面530の設定領域531に反映される。例えば、セーフティ機能「SS1」には、保存比率「100%」と、変数「SS1」の「立ち下がり」とがトレース条件として対応付けられているとする。この場合において、セーフティ機能「SS1」が選択されたときには、設定領域531Dには「100%」が自動で設定され、設定領域531Eには変数「SS1」の「立下り」が自動で設定される。
一方で、ユーザがキャンセルボタンB11を押下すると、一括設定画面540に設定された内容はデータトレース画面530の設定領域533に反映されずに、一括設定画面540が閉じられる。
(G2.ステップS20)
再び図14を参照して、ステップS20の処理について説明する。ステップS20の処理は、ステップS22,S24,S26の処理を含む。
ステップS22において、ユーザは、サポート装置500に対してトレース実行操作を行ったとする。
ステップS24において、サポート装置500は、上述のデータトレース画面530の設定領域533に設定されている収集対象のデータ群の中から変数を抽出する。
ステップS26において、サポート装置500は、抽出した変数を収集対象としてトレース実行命令を標準コントローラ100に出力する。当該トレース実行命令は、上述のデータトレース画面530の設定領域531に設定された情報を含む。
(G3.ステップS30)
引き続き図14を参照して、ステップS30の処理について説明する。
ステップS30において、標準コントローラ100は、サポート装置500からトレース実行命令を受け付けたことに基づいて、トレース対象のデータ群のサンプリング処理を開始する。
図18は、トレース対象のデータ群のサンプリング処理を説明するための図である。図18を参照して、標準コントローラ100のプロセッサ102は、機能モジュールとして、制御モジュール152と、データトレースモジュール154とを含む。
制御モジュール152は、標準制御プログラム1104に従って予め定められた周期毎にセーフティドライバ300に指令を出力する。セーフティドライバ300は、標準コントローラ100からの指令に従ってサーボモータ400を制御する。
データトレースモジュール154は、上述のデータトレース画面530の設定領域531に設定されたトレース条件1108に従って、トレース対象のデータ群をサンプリングする。より具体的には、データトレースモジュール154は、予め定められた周期毎にセーフティドライバ300からトレース対象のデータ群を受信し、当該データ群を時刻情報に関連付けた上で記憶領域104Aに順次書き込む。記憶領域104Aは、標準コントローラ100内の揮発性の記憶領域である。記憶領域104Aは、例えば、メインメモリ104(図3参照)内で確保されている。トレース対象のデータ群のサンプリング数が設定されている上限値に達した場合には、データトレースモジュール154は、記憶領域104Aに格納されているデータ群の内、最も古いデータ群から順に新しいデータ群で上書きする。
(G4.ステップS40)
再び図14を参照して、ステップS40の処理について説明する。ステップS40の処理は、ステップS42,S44,S46,S48の処理を含む。
ステップS42において、ユーザは、上述のデータトレース画面530の設定領域531Eに設定したトリガ条件を成立させるための入力(以下、「トリガ入力」ともいう。)をセーフティデバイス240に対して行う。なお、ユーザは、トリガ条件を成立させるための入力をセーフティデバイス240に対して行う代わりに、サポート装置500に対して行ってもよい。この場合、ユーザは、サポート装置500上でトリガ条件に係る変数の値を変更することでトリガ条件を成立させることができる。
ステップS44において、セーフティデバイス240は、ステップS42でのトリガ入力をセーフティIOユニット230に出力する。
ステップS46において、セーフティIOユニット230は、ステップS44で受け付けたトリガ入力に応じた信号をセーフティコントローラ200に出力する。
ステップS48において、セーフティコントローラ200は、ステップS46で受け付けた信号に応じたセーフティ機能を有効化する。当該有効化は、セーフティ機能のON/OFFを示す変数を書き換えることで実現される。ステップS48の例では、変数「SS1」をONからOFFに設定することで、セーフティ機能「SS1」が有効化されている。
(G5.ステップS50)
引き続き図14を参照して、ステップS50の処理について説明する。
上述のデータトレース画面530の設定領域531Eにおいて変数「SS1」の立ち下がりがトリガ条件として設定されているとする。この場合、ステップS50において、標準コントローラ100は、変数「SS1」がONからOFFに変化したことに基づいて、トレース対象のデータ群の保存処理を実行する。
図18を参照して、ステップS50における保存処理について説明する。データトレースモジュール154は、上述のデータトレース画面530の設定領域531Cにおいて設定されたサンプリング数の上限値と、設定領域531Dにおいて設定された保存比率とを取得し、サンプリング数の保存比率に相当する残りサンプリング数を算出する。一例として、保存比率が50%に設定されており、サンプリング数の上限値が10000回に設定されている場合には、標準コントローラ100は、残りサンプリング数を5000回(=10000回×0.5)とする。データトレースモジュール154は、トリガ条件が成立してから、残りサンプリング数の5000回のサンプリングを継続し、その後、サンプリングを停止する。これにより、トリガ条件の成立前における5000回のサンプリングデータと、トリガ条件の成立後における5000回のサンプリングデータとが記憶領域104Aに残ることになる。
その後、データトレースモジュール154は、揮発性の記憶領域104Aに保存されているデータ群を不揮発性の記憶領域114Aにコピーする。これにより、トレース結果DTが不揮発性の記憶領域114Aに保存される。記憶領域114Aは、標準コントローラ100のストレージ110内に確保されていてもよいし、外部のメモリカード114内に確保されていてもよい。
(G6.ステップS60)
再び図14を参照して、ステップS60の処理について説明する。ステップS60の処理は、ステップS61~S67の処理を含む。
ステップS61において、サポート装置500は、トレース結果DTの取得要求を標準コントローラ100に送信する。
ステップS62において、標準コントローラ100は、当該取得要求を受信したことに基づいて、トレース結果DTをサポート装置500に送信する。
ステップS63において、サポート装置500は、取得したトレース結果DTに基づいて、表示対象の時間範囲を決定する。一例として、サポート装置500は、トレース結果DTに含まれる時間情報の内、最も古い時間情報から最新の時間情報までを表示対象の時間範囲として決定する。
ステップS64において、サポート装置500は、上述のデータトレース画面530の設定領域533に設定されている収集対象のデータ群の中からセーフティパラメータSPを抽出する。
ステップS65において、サポート装置500は、抽出したセーフティパラメータの取得要求を標準コントローラ100を介してセーフティドライバ300に出力する。
ステップS66において、セーフティドライバ300は、受信した取得要求に対応するセーフティパラメータSPをサポート装置500に送信する。
なお、取得対象のセーフティパラメータがサポート装置500内(例えば、上述のプロジェクトデータ5106内)にキャッシュされている場合には、ステップS65,S66の通信は、必ずしも行われる必要はない。この場合、サポート装置500は、ステップS65,S66でセーフティドライバ300と通信を行わずに、キャッシュされているセーフティパラメータを利用する。
ステップS67において、サポート装置500は、ステップS62で受信したトレース結果DTと、ステップS66で受信したセーフティパラメータSPとをデータトレースの実行結果として表示する。このように、サポート装置500は、収集対象のデータ群に含まれるセーフティパラメータSPをセーフティドライバ300から取得し、収集対象のデータ群に含まれる状態値のトレース結果DTを標準コントローラ100のデータトレースモジュール154から取得する。
図19を参照して、ステップS67における表示処理について詳細に説明する。図19は、図15に示されるデータトレース画面530の表示領域535を表した図である。
図19に示されるように、サポート装置500は、横軸が時間を示し、縦軸がセーフティドライバ300の状態値の大きさを示すグラフ上にトレース結果DTを表わすとともに、当該グラフ上にセーフティパラメータSPを表わす。なお、図19の例では、グラフの横軸に時間が示され、グラフの縦軸に状態値の大きさが示されているが、グラフの横軸に状態値の大きさが示され、グラフの縦軸に時間が示されてもよい。
図19の例では、トレース結果DTとして、変数「SS1」の推移と、変数「MC_Axis000.Act.Vel」の推移と、変数「MC_Axis000.Drvstatus.ServoOn」の推移とが示されている。また、セーフティパラメータSPとして、「N_Zero_SS1」と、「-N_Zero_SS1」と、「T_SS1」と、「T_L_SS1」とが示されている。
セーフティパラメータ「N_Zero_SS1」は、セーフティドライバ300の状態値の上限値を示す。セーフティパラメータ「-N_Zero_SS1」は、セーフティドライバ300の状態値の下限値を示す。上限値および下限値が表示されることで、ユーザは、セーフティドライバ300の状態値が上限値および下限値の範囲内に収まっているか否かを容易に判断することができる。
典型的には、サポート装置500は、グラフの縦軸に直交するように上限値「N_Zero_SS1」および下限値「-N_Zero_SS1」を表わす。これにより、ユーザは、セーフティドライバ300の状態値が上限値「N_Zero_SS1」および下限値「-N_Zero_SS1」の範囲内に収まっているか否かをさらに容易に判断することが可能になる。なお、上限値「N_Zero_SS1」および下限値「-N_Zero_SS1」の表示態様は、図19の例に限定されない。例えば、上限値「N_Zero_SS1」および下限値「-N_Zero_SS1」は、単に数値で示されてもよい。
また、サポート装置500は、トレース結果DTに重ねて縦軸AX1~AX4を表示する。縦軸AX1は、上述のデータトレース画面530の設定領域531Eに設定されたトリガ条件が成立したタイミングを示す。当該タイミングは、セーフティ機能「SS1」の実行指令が発せられたタイミングと同意である。縦軸AX1は、時間軸に直交するように表示される。
縦軸AX2は、セーフティドライバ300の状態値が上限値「N_Zero_SS1」と等しくなったタイミングを示す。縦軸AX2は、時間軸に直交するように表示される。
縦軸AX3は、縦軸AX2が示すタイミングから、セーフティパラメータ「T_L_SS1」が示す停止猶予時間が経過したタイミングに相当する。縦軸AX3は、時間軸に直交するように表示される。
縦軸AX4は、縦軸AX1が示すタイミングから、セーフティパラメータ「T_SS1」が示す停止猶予時間が経過したタイミングに相当する。縦軸AX4は、時間軸に直交するように表示される。
典型的には、トレース結果DTおよびセーフティパラメータSPは、単位を合わせた上で表示される。より具体的には、サポート装置500は、トレース結果DTが示す状態値の単位と、セーフティパラメータSPが示す単位とを統一するための単位変換表5122(図6参照)を予め保持している。サポート装置500は、単位変換表5122に基づいて、トレース結果DTが示す状態値の単位と、セーフティパラメータSPが示す単位とを揃える。単位が揃えられることで、ユーザは、トレース結果DTが示す状態値と、セーフティパラメータSPとを容易に比較することが可能になる。
なお、単位変換は、必ずしもサポート装置500によって実行される必要はなく、標準コントローラ100またはセーフティドライバ300によって実行されてもよい。ある局面において、単位変換表5122は、標準コントローラ100に格納される。この場合、標準コントローラ100は、単位変換表5122に基づいて、ステップS26で指定された単位に合うようにトレース結果DTを単位変換し、ステップS62で単位変換後のトレース結果DTをサポート装置500に送信する。他の局面において、単位変換表5122は、セーフティドライバ300に格納される。この場合、セーフティドライバ300は、単位変換表5122に基づいて、ステップS65で指定された単位に合うようにセーフティパラメータSPを単位変換し、ステップS66で単位変換後のセーフティパラメータSPをサポート装置500に送信する。
<H.変形例>
図20~図22を参照して、図1に示される制御システム1の変形例について説明する。
図20は、変形例1に従う制御システム1Aを示す図である。図1に示される制御システム1においては、標準コントローラ100およびセーフティコントローラ200は、フィールドネットワーク2で接続されていた。これに対して、変形例1に従う制御システム1Aにおいては、標準コントローラ100およびセーフティコントローラ200が内部バスを介して接続される。制御システム1Aのその他の点については制御システム1と同じであるので、それらの説明については繰り返さない。
図21は、変形例2に従う制御システム1Bを示す図である。図1に示される制御システム1においては、トレース対象のデータ群を格納するための記憶領域104A,114Aと、データトレースモジュール154とが標準コントローラ100内に設けられていた。これに対して、変形例2に従う制御システム1Bにおいては、記憶領域104A,114Aとデータトレースモジュール154とが専用のトレースユニット180内に設けられる。トレースユニット180は、標準コントローラ100、セーフティコントローラ200、および安全I/O230と内部バスを介して接続される。制御システム1Bのその他の点については制御システム1と同じであるので、それらの説明については繰り返さない。
図22は、変形例3に従う制御システム1Cを示す図である。図1に示される制御システム1においては、サポート装置500がネットワーク3を介して標準コントローラ100に接続されていた。これに対して、変形例3に従う制御システム1Cにおいては、サポート装置500は、ネットワーク3Aを介してトレースユニット180に直接的に接続される。制御システム1Cのその他の点については制御システム1と同じであるので、それらの説明については繰り返さない。
<I.付記>
以上のように、本実施形態は以下のような開示を含む。
[構成1]
第1のコントローラ(100)と、
前記第1のコントローラ(100)からの第1の指令に従ってモータ(400)を駆動するドライブ装置(300)と、
前記ドライブ装置(300)に対してセーフティ機能の動作に係る第2の指令を送信する第2のコントローラ(200)と、
前記第1の指令に応じて変化する、前記モータ(400)の動作状態を示す状態値をトレースするためのデータトレースモジュール(154)とを備え、
前記ドライブ装置(300)は、
前記セーフティ機能に関するセーフティパラメータを格納するためのストレージ(320)と、
前記第2のコントローラ(200)から前記第2の指令を受けた場合に、前記状態値と前記セーフティパラメータとに基づいて、前記モータ(400)の駆動を停止するための制御装置(311)とを含み、
前記データトレースモジュール(154)による前記状態値のトレース結果と、前記セーフティパラメータとを取得し、当該トレース結果に重ねて当該セーフティパラメータを表示するためのサポート装置(500)とをさらに備える、制御システム。
[構成2]
前記サポート装置(500)は、前記トレース結果に示される前記状態値の単位と前記セーフティパラメータの単位とを合わせた上で、前記トレース結果に重ねて前記セーフティパラメータを表示する、構成1に記載の制御システム。
[構成3]
前記サポート装置(500)は、横軸および縦軸の一方の軸が時間を示し、横軸および縦軸の他方の軸が前記状態値の大きさを示すグラフ上に前記トレース結果を表わすとともに、前記グラフ上に前記セーフティパラメータを表わす、構成1または2に記載の制御システム。
[構成4]
前記セーフティパラメータは、前記状態値の下限値と前記状態値の上限値とを含み、
前記サポート装置(500)は、前記下限値と前記上限値とを前記グラフ上に表わす、構成3に記載の制御システム。
[構成5]
前記サポート装置(500)は、前記下限値および前記上限値をそれぞれ前記縦軸に直交させて前記グラフに表わす、構成4に記載の制御システム。
[構成6]
前記セーフティパラメータは、前記ドライブ装置(300)が前記第2の指令を受けてから前記モータ(400)の駆動を停止するまでの停止猶予時間を含み、
前記サポート装置(500)は、前記第2の指令を受けた第1のタイミングと、当該第1のタイミングから前記停止猶予時間が経過した第2のタイミングとを前記グラフ上に表わす、構成3~5のいずれか1項に記載の制御システム。
[構成7]
前記サポート装置(500)は、前記第1のタイミングおよび前記第2のタイミングをそれぞれ前記横軸に直交させて前記グラフに表わす、構成6に記載の制御システム。
[構成8]
制御システム(1)に接続されるサポート装置(500)であって、
前記制御システム(1)は、
第1のコントローラ(100)と、
前記第1のコントローラ(100)からの第1の指令に従ってモータ(400)を駆動するドライブ装置(300)と、
前記ドライブ装置(300)に対してセーフティ機能の動作に係る第2の指令を送信する第2のコントローラ(200)と、
前記第1の指令に応じて変化する、前記モータ(400)の動作状態を示す状態値をトレースするためのデータトレースモジュール(154)とを備え、
前記ドライブ装置(300)は、
前記セーフティ機能に関するセーフティパラメータを格納するためのストレージ(320)と、
前記第2のコントローラ(200)から前記第2の指令を受けた場合に、前記状態値と前記セーフティパラメータとに基づいて、前記モータ(400)の駆動を停止するための制御装置(311)とを含み、
前記サポート装置(500)は、
前記データトレースモジュール(154)から前記状態値のトレース結果を取得する手段(S62)と、
前記ドライブ装置(300)から前記セーフティパラメータを取得する手段(S66)と、
前記取得したトレース結果に重ねて前記取得したセーフティパラメータを表示する手段(S67)とを備える、サポート装置。
[構成9]
制御システム(1)に接続されるコンピュータで実行されるサポートプログラムであって、
前記制御システム(1)は、
第1のコントローラ(100)と、
前記第1のコントローラ(100)からの第1の指令に従ってモータ(400)を駆動するドライブ装置(300)と、
前記ドライブ装置(300)に対してセーフティ機能の動作に係る第2の指令を送信する第2のコントローラ(200)と、
前記第1の指令に応じて変化する、前記モータ(400)の動作状態を示す状態値をトレースするためのデータトレースモジュール(154)とを備え、
前記ドライブ装置(300)は、
前記セーフティ機能に関するセーフティパラメータを格納するためのストレージ(320)と、
前記第2のコントローラ(200)から前記第2の指令を受けた場合に、前記状態値と前記セーフティパラメータとに基づいて、前記モータ(400)の駆動を停止するための制御装置(311)とを含み、
前記サポートプログラムは、前記コンピュータに、
前記データトレースモジュール(154)から前記状態値のトレース結果を取得するステップ(S62)と、
前記ドライブ装置(300)から前記セーフティパラメータを取得するステップ(S65)と、
前記取得したトレース結果に重ねて前記取得したセーフティパラメータを表示するステップ(S67)とを実行させる、サポートプログラム。
今回開示された実施の形態はすべての点で例示であって制限的なものではないと考えられるべきである。本発明の範囲は、上記した説明ではなく、特許請求の範囲によって示され、特許請求の範囲と均等の意味および範囲内でのすべての変更が含まれることが意図される。
1,1A,1B,1C 制御システム、2 フィールドネットワーク、3,3A ネットワーク、4 論理コネクション、100 標準コントローラ、102,202,312,314,502 プロセッサ、104,204,316,504 メインメモリ、104A,114A 記憶領域、106 上位ネットワークコントローラ、108,208,302 フィールドネットワークコントローラ、110,210,320,510 ストレージ、112 メモリカードインターフェイス、114 メモリカード、116 ローカルバスコントローラ、118,218,518 プロセッサバス、120,220,520 USBコントローラ、150 標準制御、152 制御モジュール、154 データトレースモジュール、170,270,370 プロセスデータ通信レイヤ、172,272 管理モジュール、174,274,374 プロセスデータ、180 トレースユニット、200 セーフティコントローラ、216 セーフティローカルバスコントローラ、230 セーフティIOユニット、240 セーフティデバイス、250 セーフティ機能、276,376 論理コネクションレイヤ、278 セーフティ機能状態管理エンジン、300 セーフティドライバ、310 制御ユニット、311 制御装置、330 ドライブ回路、332 フィードバック受信回路、350 サーボ制御、352 サーボ制御実行エンジン、360 モーションセーフティ機能、362 モーションセーフティ機能実行エンジン、378 モーションセーフティ機能状態管理エンジン、390 パラメータセット、400 サーボモータ、402 三相交流モータ、404 エンコーダ、500 サポート装置、506 入力部、508 出力部、512 光学ドライブ、514 記録媒体、530 データトレース画面、531,531A,531B,531C,531D,531E,533,542,543 設定領域、533A データリスト、535,545 表示領域、540 一括設定画面、544 チェックボックス、550 決定モジュール、600 通信フレーム、610,611,612,613,614,615,620,621,622,623,624,6121,6122,6131,6132,6141,6142,6151,6152 データ領域、630 セーフティ通信フレーム、1102,2102 システムプログラム、1104 標準制御プログラム、1106,2106,3206 設定情報、1108 トレース条件、2104 セーフティプログラム、3202 サーボ制御プログラム、3204 モーションセーフティプログラム、5104 サポートプログラム、5106 プロジェクトデータ、5108 標準制御ソースプログラム、5110 標準コントローラ設定情報、5112 セーフティソースプログラム、5114 セーフティコントローラ設定情報、5116 セーフティドライバ設定情報、5118 収集候補情報、5120 軸情報、5121 収集対象のデータ群、5122 単位変換表。

Claims (9)

  1. 第1のコントローラと、
    前記第1のコントローラからの第1の指令に従ってモータを駆動するドライブ装置と、
    前記ドライブ装置に対してセーフティ機能の動作に係る第2の指令を送信する第2のコントローラと、
    前記第1の指令に応じて変化する、前記モータの動作状態を示す状態値をトレースするためのデータトレースモジュールとを備え、
    前記ドライブ装置は、
    前記セーフティ機能に関するセーフティパラメータを格納するためのストレージと、
    前記第2のコントローラから前記第2の指令を受けた場合に、前記状態値と前記セーフティパラメータとに基づいて、前記モータの駆動を停止するための制御装置とを含み、
    前記データトレースモジュールによる前記状態値のトレース結果と、前記セーフティパラメータとを取得し、当該トレース結果に重ねて当該セーフティパラメータを表示するためのサポート装置とをさらに備える、制御システム。
  2. 前記サポート装置は、前記トレース結果に示される前記状態値の単位と前記セーフティパラメータの単位とを合わせた上で、前記トレース結果に重ねて前記セーフティパラメータを表示する、請求項1に記載の制御システム。
  3. 前記サポート装置は、横軸および縦軸の一方の軸が時間を示し、横軸および縦軸の他方の軸が前記状態値の大きさを示すグラフ上に前記トレース結果を表わすとともに、前記グラフ上に前記セーフティパラメータを表わす、請求項1または2に記載の制御システム。
  4. 前記セーフティパラメータは、前記状態値の下限値と前記状態値の上限値とを含み、
    前記サポート装置は、前記下限値と前記上限値とを前記グラフ上に表わす、請求項3に記載の制御システム。
  5. 前記サポート装置は、前記下限値および前記上限値をそれぞれ前記縦軸に直交させて前記グラフに表わす、請求項4に記載の制御システム。
  6. 前記セーフティパラメータは、前記ドライブ装置が前記第2の指令を受けてから前記モータの駆動を停止するまでの停止猶予時間を含み、
    前記サポート装置は、前記第2の指令を受けた第1のタイミングと、当該第1のタイミングから前記停止猶予時間が経過した第2のタイミングとを前記グラフ上に表わす、請求項3~5のいずれか1項に記載の制御システム。
  7. 前記サポート装置は、前記第1のタイミングおよび前記第2のタイミングをそれぞれ前記横軸に直交させて前記グラフに表わす、請求項6に記載の制御システム。
  8. 制御システムに接続されるサポート装置であって、
    前記制御システムは、
    第1のコントローラと、
    前記第1のコントローラからの第1の指令に従ってモータを駆動するドライブ装置と、
    前記ドライブ装置に対してセーフティ機能の動作に係る第2の指令を送信する第2のコントローラと、
    前記第1の指令に応じて変化する、前記モータの動作状態を示す状態値をトレースするためのデータトレースモジュールとを備え、
    前記ドライブ装置は、
    前記セーフティ機能に関するセーフティパラメータを格納するためのストレージと、
    前記第2のコントローラから前記第2の指令を受けた場合に、前記状態値と前記セーフティパラメータとに基づいて、前記モータの駆動を停止するための制御装置とを含み、
    前記サポート装置は、
    前記データトレースモジュールから前記状態値のトレース結果を取得する手段と、
    前記ドライブ装置から前記セーフティパラメータを取得する手段と、
    前記取得したトレース結果に重ねて前記取得したセーフティパラメータを表示する手段とを備える、サポート装置。
  9. 制御システムに接続されるコンピュータで実行されるサポートプログラムであって、
    前記制御システムは、
    第1のコントローラと、
    前記第1のコントローラからの第1の指令に従ってモータを駆動するドライブ装置と、
    前記ドライブ装置に対してセーフティ機能の動作に係る第2の指令を送信する第2のコントローラと、
    前記第1の指令に応じて変化する、前記モータの動作状態を示す状態値をトレースするためのデータトレースモジュールとを備え、
    前記ドライブ装置は、
    前記セーフティ機能に関するセーフティパラメータを格納するためのストレージと、
    前記第2のコントローラから前記第2の指令を受けた場合に、前記状態値と前記セーフティパラメータとに基づいて、前記モータの駆動を停止するための制御装置とを含み、
    前記サポートプログラムは、前記コンピュータに、
    前記データトレースモジュールから前記状態値のトレース結果を取得するステップと、
    前記ドライブ装置から前記セーフティパラメータを取得するステップと、
    前記取得したトレース結果に重ねて前記取得したセーフティパラメータを表示するステップとを実行させる、サポートプログラム。
JP2018183830A 2018-09-28 2018-09-28 制御システム、サポート装置、サポートプログラム Active JP7024677B2 (ja)

Priority Applications (5)

Application Number Priority Date Filing Date Title
JP2018183830A JP7024677B2 (ja) 2018-09-28 2018-09-28 制御システム、サポート装置、サポートプログラム
PCT/JP2019/037852 WO2020067286A1 (ja) 2018-09-28 2019-09-26 制御システム、サポート装置、サポートプログラム
EP19865237.2A EP3859454B1 (en) 2018-09-28 2019-09-26 Control system
CN201980051803.0A CN112567300A (zh) 2018-09-28 2019-09-26 控制系统、支持装置、支持程序
US17/269,522 US20210216047A1 (en) 2018-09-28 2019-09-26 Control system, support device, and storage medium

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2018183830A JP7024677B2 (ja) 2018-09-28 2018-09-28 制御システム、サポート装置、サポートプログラム

Publications (2)

Publication Number Publication Date
JP2020052898A JP2020052898A (ja) 2020-04-02
JP7024677B2 true JP7024677B2 (ja) 2022-02-24

Family

ID=69951895

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2018183830A Active JP7024677B2 (ja) 2018-09-28 2018-09-28 制御システム、サポート装置、サポートプログラム

Country Status (5)

Country Link
US (1) US20210216047A1 (ja)
EP (1) EP3859454B1 (ja)
JP (1) JP7024677B2 (ja)
CN (1) CN112567300A (ja)
WO (1) WO2020067286A1 (ja)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP7147807B2 (ja) 2020-06-26 2022-10-05 株式会社安川電機 エンジニアリング装置、上位制御装置、エンジニアリング方法、処理実行方法、及びプログラム
JP7399349B1 (ja) * 2022-09-21 2023-12-15 三菱電機株式会社 設定支援装置、制御システム、設定支援方法及びプログラム

Family Cites Families (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2007536634A (ja) * 2004-05-04 2007-12-13 フィッシャー−ローズマウント・システムズ・インコーポレーテッド プロセス制御システムのためのサービス指向型アーキテクチャ
JP4883314B2 (ja) 2007-12-12 2012-02-22 オムロン株式会社 Plcを用いたデータトレースシステム
JP5367623B2 (ja) * 2010-03-15 2013-12-11 オムロン株式会社 サーボシステム、サーボモータ駆動装置、セーフティユニットおよびサーボシステムの制御方法
JP4817084B2 (ja) * 2010-03-30 2011-11-16 株式会社安川電機 モータ駆動システム及びモータ制御装置
CN102957379A (zh) * 2011-08-18 2013-03-06 乔山健康科技股份有限公司 跑步机的马达控制系统及其运作方法
JP2013192414A (ja) * 2012-03-15 2013-09-26 Omron Corp 駆動制御装置
JP6015178B2 (ja) * 2012-07-11 2016-10-26 オムロン株式会社 安全システム
CN202813802U (zh) * 2012-10-08 2013-03-20 樱花卫厨(中国)股份有限公司 燃气热水器用智能风压系统
DE112013006837T5 (de) * 2013-04-12 2015-12-03 Mitsubishi Electric Corporation Peripheriegerät für programmierbares Steuergerät und Fehlerbeseitigungsunterstützungsprogramm
JP6626315B2 (ja) * 2015-10-21 2019-12-25 株式会社キーエンス プログラマブル・ロジック・コントローラのモニタ装置及びプログラマブル・ロジック・コントローラ・システム
JP6747104B2 (ja) * 2016-06-30 2020-08-26 オムロン株式会社 セーフティシステム、プログラム、および方法
JP6930150B2 (ja) * 2017-03-14 2021-09-01 オムロン株式会社 制御装置、制御プログラムおよび制御システム

Also Published As

Publication number Publication date
WO2020067286A1 (ja) 2020-04-02
CN112567300A (zh) 2021-03-26
US20210216047A1 (en) 2021-07-15
EP3859454A4 (en) 2022-06-29
JP2020052898A (ja) 2020-04-02
EP3859454B1 (en) 2024-01-03
EP3859454A1 (en) 2021-08-04

Similar Documents

Publication Publication Date Title
JP7024677B2 (ja) 制御システム、サポート装置、サポートプログラム
CN110456707B (zh) 控制装置
JP7327225B2 (ja) ロボット制御システムおよび制御方法
JP7024678B2 (ja) 制御システム、サポート装置、サポートプログラム
JP7200580B2 (ja) 制御システム、サポート装置、サポートプログラム
JP7115195B2 (ja) 制御システム、サポート装置、サポートプログラム
JP7087952B2 (ja) 制御システム、サポート装置、サポートプログラム
JP7087951B2 (ja) 制御システム、制御方法、ドライブ装置
JP7172397B2 (ja) 制御システム、サポート装置およびプログラム
JP7063222B2 (ja) 制御システム、サポート装置およびプログラム
JP6962303B2 (ja) 制御システム、サポート装置、サポートプログラム
JP7040389B2 (ja) 制御システム、サポート装置、およびサポートプログラム
JP2021142625A (ja) ロボット制御システムおよび制御方法

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20201214

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: 20220111

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20220124

R150 Certificate of patent or registration of utility model

Ref document number: 7024677

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150