(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2022-11-08
(45)【発行日】2022-11-16
(54)【発明の名称】制御システム、サポート装置およびプログラム
(51)【国際特許分類】
G05B 19/048 20060101AFI20221109BHJP
【FI】
G05B19/048
(21)【出願番号】P 2018187585
(22)【出願日】2018-10-02
【審査請求日】2020-12-14
(73)【特許権者】
【識別番号】000002945
【氏名又は名称】オムロン株式会社
(74)【代理人】
【識別番号】110001195
【氏名又は名称】弁理士法人深見特許事務所
(72)【発明者】
【氏名】鈴木 悠司
(72)【発明者】
【氏名】佐藤 文明
(72)【発明者】
【氏名】藤村 亮輔
(72)【発明者】
【氏名】田村 嘉英
(72)【発明者】
【氏名】松上 雅一
(72)【発明者】
【氏名】田中 裕
【審査官】牧 初
(56)【参考文献】
【文献】国際公開第2014/041829(WO,A1)
【文献】特開2014-174616(JP,A)
【文献】特開2013-228947(JP,A)
【文献】特開2006-270961(JP,A)
【文献】国際公開第2008/156034(WO,A1)
【文献】特表2011-500336(JP,A)
【文献】米国特許出願公開第2015/0259089(US,A1)
【文献】米国特許出願公開第2007/0168077(US,A1)
(58)【調査した分野】(Int.Cl.,DB名)
G05B 19/04-19/05
G05B 19/418
(57)【特許請求の範囲】
【請求項1】
第1のコントローラと、
前記第1のコントローラからの第1の指令に従ってモータを駆動するドライブ装置と、を備え、
前記ドライブ装置はモータの駆動に関するセーフティ機能を実現するためのセーフティプログラムと、前記セーフティプログラムの実行時に参照されるパラメータ群を格納するメモリ
を含み、
前記ドライブ装置に対して前記セーフティ機能の動作に係る第2の指令を送信する第2のコントローラと、
前記第1のコントローラ、前記ドライブ装置および前記第2のコントローラの間で、データを互いに共有するためのネットワークと、
前記ネットワークに接続可能なサポート装置と、をさらに備え、
前記第2のコントローラは、前記第2の指令を、前記第2のコントローラと前記ドライブ装置との間に前記ネットワークを利用して形成されるコネクションを介して送信し、
前記サポート装置は、
当該サポート装置に対するユーザ操作に従い前記パラメータ群を生成するパラメータ生成部と、
前記生成されたパラメータ群が前記ネットワークを介し転送される際に、当該パラメータ群を前記ドライブ装置で復元可能な方法で低サイズ化する低サイズ化部と、
生成された前記パラメータ群から、所定式に従い、当該パラメータ群の正当性を示す第1のデータを算出する第1算出部を含み、算出された前記第1のデータを、前記第2のコントローラに転送し、
前記ドライブ装置は、
復元されたパラメータ群から、前記所定式に従い、当該復元されたパラメータ群の正当性を示す第2のデータを算出する第2算出部を、さらに含み、
前記第2のコントローラから受信する前記第1のデータを、算出された前記第2のデータと照合し、照合結果が一致を示すとき、前記コネクションの確立を前記第2のコントローラに通知する、制御システム。
【請求項2】
前記パラメータ生成部は、
初期パラメータ群から、前記ユーザ操作に従い変更された変更パラメータ群を生成し、
前記低サイズ化部は、
前記低サイズ化されたパラメータ群として、前記変更パラメータ群と前記初期パラメータ群との相違を示す差分パラメータ群を生成する、請求項1に記載の制御システム。
【請求項3】
前記ドライブ装置の前記メモリは、前記初期パラメータ群を保持する領域を有し、
前記ドライブ装置は、前記メモリに保持された前記初期パラメータ群を、前記ネットワークを介し受信した前記差分パラメータ群を用いて変更することにより、前記変更パラメータ群を復元する、請求項2に記載の制御システム。
【請求項4】
前記パラメータ生成部は、
初期パラメータ群から、前記ユーザ操作に従い変更された変更パラメータ群を生成し、
前記低サイズ化部は、
前記低サイズ化されたパラメータ群として、圧縮された前記変更パラメータ群を生成する、請求項1に記載の制御システム。
【請求項5】
前記ドライブ装置は、前記ネットワークを介し受信した前記圧縮された変更パラメータ群を伸張することにより、前記変更パラメータ群を復元する、請求項4に記載の制御システム。
【請求項6】
前記ドライブ装置は、前記ネットワークを介し受信した前記圧縮された変更パラメータ群を、前記ネットワークを介し受信したコマンドに従い伸張することにより前記変更パラメータ群を復元する、請求項4に記載の制御システム。
【請求項7】
制御システムに接続されるサポート装置であって、
前記制御システムは、
第1のコントローラと、
前記第1のコントローラからの第1の指令に従ってモータを駆動するドライブ装置と、を含み、
前記ドライブ装置はモータの駆動に関するセーフティ機能を実現するためのセーフティプログラムと、前記セーフティプログラムの実行時に参照されるパラメータ群を格納するメモリを有し、
前記制御システムは、さらに、
前記ドライブ装置に対して前記セーフティ機能の動作に係る第2の指令を送信する第2のコントローラと、
前記第1のコントローラ、前記ドライブ装置および前記第2のコントローラの間で、データを互いに共有するためのネットワークと、を含み、
前記第2のコントローラは、前記第2の指令を、前記第2のコントローラと前記ドライブ装置との間に前記ネットワークを利用して形成されるコネクションを介して送信し、
前記サポート装置は、
当該サポート装置に対するユーザ操作に従い前記パラメータ群を生成するパラメータ生成部と、
前記生成されたパラメータ群が前記ネットワークを介し転送される際に、当該パラメータ群を前記ドライブ装置で復元可能な方法で低サイズ化する低サイズ化部と、備え
、
生成された前記パラメータ群から、所定式に従い、当該パラメータ群の正当性を示す第1のデータを算出する第1算出部を含み、算出された前記第1のデータを、前記第2のコントローラに転送し、
前記ドライブ装置は、
復元されたパラメータ群から、前記所定式に従い、当該復元されたパラメータ群の正当性を示す第2のデータを算出する第2算出部を、さらに有し、
前記第2のコントローラから受信する前記第1のデータを、算出された前記第2のデータと照合し、照合結果が一致を示すとき、前記コネクションの確立を前記第2のコントローラに通知する、サポート装置。
【請求項8】
制御システムに接続される情報処理装置で実行されるプログラムであって、
前記制御システムは、
第1のコントローラと、
前記第1のコントローラからの第1の指令に従ってモータを駆動するドライブ装置と、を含み、
前記ドライブ装置はモータの駆動に関するセーフティ機能を実現するためのセーフティプログラムと、前記セーフティプログラムの実行時に参照されるパラメータ群を格納するメモリを有し、
前記制御システムは、さらに、
前記ドライブ装置に対して前記セーフティ機能の動作に係る第2の指令を送信する第2のコントローラと、
前記第1のコントローラ、前記ドライブ装置および前記第2のコントローラの間で、データを互いに共有するためのネットワークと、を含み、
前記第2のコントローラは、前記第2の指令を、前記第2のコントローラと前記ドライブ装置との間に前記ネットワークを利用して形成されるコネクションを介して送信し、
前記プログラムは、前記情報処理装置のプロセッサに、
前記情報処理装置に対するユーザ操作に従い前記パラメータ群を生成するステップと、
前記生成されたパラメータ群が前記ネットワークを介し転送される際に、当該パラメータ群を前記ドライブ装置で復元可能な方法で低サイズ化するステップと、
生成された前記パラメータ群から、所定式に従い、当該パラメータ群の正当性を示す第1のデータを算出するステップと、
算出された前記第1のデータを、前記第2のコントローラに転送するステップを、実行させ、
前記ドライブ装置は、
復元されたパラメータ群から、前記所定式に従い、当該復元されたパラメータ群の正当性を示す第2のデータを算出する第2算出部を、さらに有し、
前記第2のコントローラから受信する前記第1のデータを、算出された前記第2のデータと照合し、照合結果が一致を示すとき、前記コネクションの確立を前記第2のコントローラに通知する、プログラム。
【発明の詳細な説明】
【技術分野】
【0001】
この開示は、製造現場等に設けられるFA(Factory Automation)システムに適用される制御システム、サポート装置およびプログラムに関する。
【背景技術】
【0002】
多くの製造現場のFAシステムにおいて、設備や機械を安全に使用するために、セーフティシステムの導入が進みつつある。セーフティシステムは、国際規格に従うセーフティ機能を提供するためのものであり、セーフティコントローラ、セーフティセンサ、セーフティスイッチ、およびセーフティリレーといったセーフティコンポーネントで構成される。
【0003】
セーフティシステムは、設備や機械を駆動するサーボモータなどのドライブ装置に対してもセーフティ機能を提供することが要求される。このセーフティ機能を実現するため、ドライブ装置を制御するセーフティドライバはセーフティプログラムを実行する。実行時に、セーフティプログラムはパラメータ群を参照する。このようなセーフティ機能を実現するためのパラメータ群は、セーフティドライバに対してダウンロードされることにより提供される。
【0004】
例えば、非特許文献1は、EtherCAT(登録商標:Ethernet for Control Automation Technology、イーサキャット)通信経路上のデータにセーフティシステムに関する安全制御データを混在させる仕組みであるFSoE(Safety over EtherCAT)を提案する。
【先行技術文献】
【非特許文献】
【0005】
【文献】“EtherCAT Protocol Enhancements,Amendments to ETG.5100 FSoE Specification,Document:ETG.5120 S(R)V1.1.0”,EtherCAT Technology Group,2017-07-14
【発明の概要】
【発明が解決しようとする課題】
【0006】
非特許文献1では、セーフティドライバであるFSoEスレーブに対して、セーフティプログラムが実行時に参照するSRA(Safty-Related Application Parameter Set)のパラメータを転送(ダウンロード)する仕組みを開示する。SRAのパラメータを、システムに接続された全てのFSoEスレーブに転送する場合、FSoEスレーブの台数に比例して、転送時間も含めて通信に係る負荷が上昇する。
【0007】
本開示の1つの目的は、制御システムにおいてセーフティプログラムが参照するパラメータの転送に係る負荷を低減する制御システム、サポート装置およびプログラムを提供することである。
【課題を解決するための手段】
【0008】
この開示の一例に係る制御システムは、第1のコントローラと、第1のコントローラからの第1の指令に従ってモータを駆動するドライブ装置と、を備え、ドライブ装置はモータの駆動に関するセーフティ機能を実現するためのセーフティプログラムと、セーフティプログラムの実行時に参照されるパラメータ群を格納するメモリを含み、ドライブ装置に対してセーフティ機能の動作に係る第2の指令を送信する第2のコントローラと、第1のコントローラ、ドライブ装置および第2のコントローラの間で、データを互いに共有するためのネットワークと、ネットワークに接続可能なサポート装置と、をさらに備え、サポート装置は、当該サポート装置に対するユーザ操作に従いパラメータ群を生成するパラメータ生成部と、生成されたパラメータ群が前記ネットワークを介し転送される際に、生成されたパラメータ群をドライブ装置で復元可能な方法で低サイズ化する低サイズ化部と、含む。
【0009】
この開示によれば、サポート装置が生成されたパラメータ群をドライブ装置に転送する場合に、パラメータ群は低サイズ化された後に転送される。したがって、パラメータ群のドライブ装置への転送に係る負荷を軽減することができる。
【0010】
上述の開示において、パラメータ生成部は、初期パラメータ群から、ユーザ操作に従い変更された変更パラメータ群を生成し、低サイズ化部は、低サイズ化されたパラメータ群として、変更パラメータ群と初期パラメータ群との相違を示す差分パラメータ群を生成する。
【0011】
この開示によれば、パラメータ群の低サイズ化を、生成に用いた初期パラメータ群と生成パラメータ群との相違を示す差分パラメータ群を生成することにより、実施することができる。
【0012】
上述の開示において、ドライブ装置のメモリは、初期パラメータ群を保持する領域を有し、ドライブ装置は、メモリに保持された初期パラメータ群をネットワークから受信した差分パラメータ群を用いて変更することにより、変更パラメータ群を復元する。
【0013】
この開示によれば、ドライブ装置は、保持していた初期パラメータ群と、サポート装置から受信する差分パラメータ群を用いて、生成されたパラメータ群(すなわち変更パラメータ群)を復元することができる。
【0014】
上述の開示において、パラメータ生成部は、初期パラメータ群から、ユーザ操作に従い変更された変更パラメータ群を生成し、低サイズ化部は、低サイズ化されたパラメータ群として、圧縮された変更パラメータ群を生成する。
【0015】
この開示によれば、パラメータ群の低サイズ化を、生成されたパラメータ群を圧縮することにより実施することができる。
【0016】
上述の開示において、ドライブ装置は、ネットワークを介し受信した圧縮された変更パラメータ群を伸張することにより、変更パラメータ群を復元する。
【0017】
この開示によれば、ドライブ装置は、ネットワークを介し受信する圧縮パラメータ群を伸張することにより、生成されたパラメータ群(すなわち変更パラメータ群)を復元することができる。
【0018】
上述の開示において、ドライブ装置は、ネットワークを介し受信した圧縮された変更パラメータ群を、ネットワークを介し受信したコマンドに従い伸張することにより変更パラメータ群を復元する。
【0019】
この開示によれば、ドライブ装置は、ネットワークを介しコマンドと圧縮パラメータ群を受信し、受信したコマンドに従い圧縮パラメータを伸張することにより、生成されたパラメータ群(すなわち変更パラメータ群)を復元することができる。
【0020】
上述の開示において、第2の指令は、第2のコントローラとドライブ装置との間にネットワークを利用して形成されるコネクションを介して送信され、サポート装置は、変更パラメータ群から、所定式に従い、当該変更パラメータ群の正当性を示す第1のデータを算出する第1算出部を含み、算出された第1のデータを、第2のコントローラに転送し、ドライブ装置は、復元された変更パラメータ群から、所定式に従い、当該復元された変更パラメータ群の正当性を示す第2のデータを算出する第2算出部を含み、第2のコントローラから受信する第1のデータと、算出された第2のデータとの照合が一致を示すとき、コネクションの確立を第2のコントローラに通知する。
【0021】
この開示によれば、ドライブ装置で復元された変更パラメータ群から算出された正当性を示す値と、サポート装置で生成された変更パラメータ群から算出された正当性を示す値とが一致するとき、ドライブ装置と第2のコントローラとの間でコネクションを確立させることができる。
【0022】
この開示の一例に係るサポート装置は、制御システムに接続される。制御システムは、第1のコントローラと、第1のコントローラからの第1の指令に従ってモータを駆動するドライブ装置と、を含み、ドライブ装置はモータの駆動に関するセーフティ機能を実現するためのセーフティプログラムと、セーフティプログラムの実行時に参照されるパラメータ群を格納するメモリを有し、制御システムは、さらに、ドライブ装置に対してセーフティ機能の動作に係る第2の指令を送信する第2のコントローラと、第1のコントローラ、ドライブ装置および第2のコントローラの間で、データを互いに共有するためのネットワークと、を含み、サポート装置は、当該サポート装置に対するユーザ操作に従いパラメータ群を生成するパラメータ生成部と、生成されたパラメータ群がネットワークを介し転送される際に、生成されたパラメータ群をドライブ装置で復元可能な方法で低サイズ化する低サイズ化部と、備える。
【0023】
この開示によれば、サポート装置により生成されたパラメータ群がネットワークを介し転送される際に、パラメータ群は低サイズ化された後に転送される。したがって、パラメータ群のドライブ装置への転送に係る負荷を軽減することができる。
【0024】
この開示に一例に係るプログラムは、制御システムに接続される情報処理装置で実行されるプログラムである。制御システムは、第1のコントローラと、第1のコントローラからの第1の指令に従ってモータを駆動するドライブ装置と、を含み、ドライブ装置はモータの駆動に関するセーフティ機能を実現するためのセーフティプログラムと、セーフティプログラムの実行時に参照されるパラメータ群を格納するメモリを有し、制御システムは、さらに、ドライブ装置に対してセーフティ機能の動作に係る第2の指令を送信する第2のコントローラと、第1のコントローラ、ドライブ装置および第2のコントローラの間で、データを互いに共有するためのネットワークと、を含み、プログラムは、情報処理装置のプロセッサに、情報処理装置に対するユーザ操作に従いパラメータ群を生成するステップと、生成されたパラメータ群がネットワークを介し転送される際に、当該パラメータ群をドライブ装置で復元可能な方法で低サイズ化するステップと、を実行させる。
【0025】
この開示によれば、プログラムが実行されることにより、パラメータ群が転送される場合に、パラメータ群は低サイズ化された後に転送される。したがって、パラメータ群のドライブ装置への転送に係る負荷を軽減することができる。
【発明の効果】
【0026】
本開示の一例によれば、制御システムにおいてセーフティプログラムが参照するパラメータの転送に係る負荷を低減することができる。
【図面の簡単な説明】
【0027】
【
図1】本実施の形態に係る制御システム1の適用場面の一例を示す模式図である。
【
図2】本実施の形態に係る制御システム1の構成例を示す模式図である。
【
図3】本実施の形態に係る制御システム1を構成する標準コントローラ100のハードウェア構成例を示す模式図である。
【
図4】本実施の形態に係る制御システム1を構成するセーフティコントローラ200のハードウェア構成例を示す模式図である。
【
図5】本実施の形態に係る制御システム1を構成するセーフティドライバ300およびサーボモータ400のハードウェア構成例を示す模式図である。
【
図6】本実施の形態に係る制御システム1を構成するサポート装置500のハードウェア構成例を示す模式図である。
【
図7】本実施の形態に係る制御システム1における通信フレームの伝送形態を説明するための図である。
【
図8】本実施の形態に係る制御システム1の稼働時の機能分担の一例を示す模式図である。
【
図9】本実施の形態に係る制御システム1における標準制御、セーフティ制御およびパラメータ群転送の実装例を示す模式図である。
【
図10】本実施の形態に係る制御システム1における低サイズ化されたパラメータ群の転送のフローの一例を示す模式図である。
【
図11】本実施の形態に係る制御システム1における低サイズ化されたパラメータ群の転送のシーケンスの一例を示す模式図である。
【
図12】本実施の形態に係る差分パラメータ群の導出方法を説明する図である。
【
図13】本実施の形態に係る制御システム1における低サイズ化されたパラメータ群の転送のフローの他の例を示す模式図である。
【
図14】本実施の形態に係る制御システム1における低サイズ化されたパラメータ群の転送のシーケンスの他の例を示す模式図である。
【発明を実施するための形態】
【0028】
本発明の実施の形態について、図面を参照しながら詳細に説明する。なお、図中の同一または相当部分については、同一符号を付してその説明は繰返さない。
【0029】
<A.適用例>
まず、本発明が適用される場面の一例について説明する。
【0030】
図1は、本実施の形態に係る制御システム1の適用場面の一例を示す模式図である。本実施の形態に係る制御システム1は、例えば、ドライブ装置に対するセーフティ機能および上述の非特許文献1に規定されたETG規格で定義されたSRAパラメータをセーフティドライバに転送(ダウンロード)する機能を提供する。
【0031】
図1を参照して、制御システム1は、主として、標準コントローラ100、ならびに、標準コントローラ100とフィールドネットワークを介して接続されるセーフティコントローラ200および1または複数のセーフティドライバ300を含む。セーフティドライバ300の各々は、ドライブ装置の一例であり、電気的に接続されたサーボモータ400を駆動する。なお、サーボモータ400に限らず、任意の種類のアクチュエータ(例えば、三相交流モータ、直流モータ、単相交流モータ、多相交流モータ、リニアサーボなど)を採用できる。また、セーフティドライバ300の実体は、サーボドライバであってもよいし、汎用的なインバータ装置であってもよい。以下の説明においては、セーフティドライバ300をドライブ装置の一例として説明する。
【0032】
標準コントローラ100は、第1のコントローラに相当し、予め作成された標準制御プログラムに従って、サーボモータ400を含む制御対象に対する標準制御を実行する。典型的には、標準コントローラ100は、1または複数のセンサ(図示していない)などからの入力信号に応じた制御演算をサイクリック実行することで、サーボモータ400などのアクチュエータに対する指令(第1の指令)を周期的に算出する。
【0033】
セーフティコントローラ200は、セーフティドライバ300に対してセーフティ機能の動作に係るセーフティ指令(第2の指令)を送信する。より具体的には、セーフティコントローラ200は、標準コントローラ100とは独立して、制御対象に対するセーフティ機能を実現するための監視および制御演算をサイクリック実行する。セーフティコントローラ200は、任意のセーフティデバイス240からの入力信号の受付、および/または、任意のセーフティデバイス240への指令の出力が可能になっている。
【0034】
本明細書において、主に標準コントローラ100が担う「標準制御」およびセーフティコントローラ200またはセーフティドライバ300が担う「セーフティ制御」の用語を対比的に用いる。「標準制御」は、予め定められた要求仕様に沿って、制御対象を制御するための処理の総称である。一方、「セーフティ制御」は、設備や機械などによって人の安全が脅かされることを防止するための処理を総称する。「セーフティ制御」は、IEC 61508などに規定されたセーフティ機能を実現するための要件を満たすように設計される。
【0035】
セーフティドライバ300は、標準コントローラ100からの指令(第1の指令)に従って、サーボモータ400に電力を供給することで、サーボモータ400を駆動する。セーフティドライバ300は、サーボモータ400からのフィードバック信号などに基づいて、サーボモータ400の回転位置、回転速度、回転加速度および発生するトルクなどを周期的に算出する。
【0036】
さらに、セーフティドライバ300は、セーフティ機能に必要な状態情報をセーフティコントローラ200へ提供するとともに、要求されるセーフティ機能に応じたモーションセーフティプログラム3202を実行することによりサーボモータ400に供給する電力を調整または遮断し、また、サーボモータ400の制御軸の位置,速度を監視または調整する。実行時にモーションセーフティプログラム3202は、領域E2に記憶されたパラメータ群を参照して、当該電力の調整または遮断を実施し、また当該監視,調整を実施する。パラメータ群は、モーションセーフティのための値(位置、速度、範囲など)を示す1つ以上のSRAのパラメータを含む。
【0037】
サーボモータ400は、セーフティドライバ300からの電力を受けて回転するモータを有するとともに、モータの回転軸に結合されたエンコーダからの検出信号をフィードバック信号としてセーフティドライバ300へ出力する。
【0038】
セーフティドライバ300は、モーションセーフティプログラム3202を実行することにより、領域E2のパラメータ群の値とサーボモータ400のエンコーダからのフィードバックとを比較することにより、サーボモータ400が正常に制御されていることを監視する。セーフティドライバ300が正常に制御を行なっている限りは、通常の動作を継続することができる。セーフティドライバ300が、サーボモータ400の制御が正しくないと判断した場合には、セーフティドライバ300からサーボモータ400への停止信号を出力する。したがって、セーフティドライバ300が判断基準としている領域E2のパラメータ群はセーフティ制御のために重要なパラメータである、このパラメータ群は、例えば段取り替え等において変更される可能性がある。
【0039】
領域E2のパラメータ群は、フィールドネットワークに接続可能なサポート装置500から、フィールドネットワークを介してセーフティドライバ300に転送される。サポート装置500は、当該サポート装置に対するユーザ操作に従いパラメータ群を生成し、生成されたパラメータ群がセーフティドライバ300に転送される際に、当該生成されたパラメータ群を、セーフティドライバ300で復元可能な方法で低サイズ化する。これにより、「低サイズ化パラメータ群」が生成されて、「低サイズ化パラメータ群」は、フィールドネットワークを介し、セーフティドライバ300に転送される(フローS1,S3)。これにより、生成されたフルサイズのパラメータ群ではなく「低サイズ化パラメータ群」が、セーフティドライバ300へ転送されることで、転送に係る時間などの通信の負荷を低くすることができる。また、パラメータ群の転送に係る時間を短縮できることにより、製造装置の電源投入時等の制御システム1の立ち上げに要する時間を短縮することができる。
【0040】
セーフティドライバ300は「低サイズ化パラメータ群」を使用する場合には、「低サイズ化パラメータ群」から元のパラメータ群(すなわち、サポート装置500が生成したパラメータ群)を復元して、復元されたパラメータ群を領域E2に格納する。
【0041】
また、制御システム1は、復元されたパラメータ群の正当性を検出する仕組みを提供する。具体的には、セーフティドライバ300は、復元されたパラメータ群からCRC(Cyclic Redundancy Check)データを算出する。また、サポート装置500は、生成したパラメータ群から「生成パラメータ群のCRCデータ」を生成し、セーフティコントローラ200に転送する(フローS2)。セーフティコントローラ200は、セーフティドライバ300との論理コネクション4の確立要求とともに、「生成パラメータ群のCRCデータ」をセーフティドライバ300に送信する。セーフティドライバ300は、復元されたパラメータ群のCRCデータと、確立要求とともに受信した「生成パラメータ群のCRCデータ」とを照合する。
【0042】
照合結果が両CRCデータの一致を示すとき、セーフティドライバ300は要求に応答してセーフティコントローラ200との論理コネクションを確立し、モーションセーフティプログラム3202を、領域E2の復元されたパラメータ群を参照して実行する。これにより、低サイズ化の過程で、または転送の過程で、または復元の過程で、パラメータ群に誤りまたは改ざんが含まれる可能性があるとしても、セーフティドライバ300では、モーションセーフティプログラム3202は、正当性が確認されたパラメータ群を参照して実行されることが保証される。
【0043】
以下、本発明のより具体的な応用例として、本実施の形態に係る制御システム1のより詳細な構成および処理について説明する。
【0044】
<B.制御システム1の構成例>
まず、制御システム1の構成例について説明する。
図2は、本実施の形態に係る制御システム1の構成例を示す模式図である。
【0045】
(b1:全体構成)
図2を参照して、制御システム1は、主として、標準コントローラ100、ならびに、標準コントローラ100とフィールドネットワーク2を介して接続されるセーフティコントローラ200および1または複数のセーフティドライバ300を含む。セーフティドライバ300の各々は、電気的に接続されたサーボモータ400を駆動する。なお、サーボモータ400に限らず、任意の種類のモータを採用できる。
【0046】
標準コントローラ100は、予め作成された標準制御プログラムに従って、サーボモータ400を含む制御対象に対する標準制御を実行する。典型的には、標準コントローラ100は、1または複数のセンサ(図示していない)などからの入力信号に応じた制御演算をサイクリック実行することで、サーボモータ400などのアクチュエータに対する指令を周期的に算出する。
【0047】
セーフティコントローラ200は、標準コントローラ100とは独立して、制御対象に対するセーフティ機能を実現するための監視および制御演算をサイクリック実行する。セーフティコントローラ200は、任意のセーフティデバイス240からの入力信号の受付、および/または、任意のセーフティデバイス240への指令の出力が可能になっている。
【0048】
セーフティドライバ300は、標準コントローラ100からの指令に従って、サーボモータ400に電力を供給することで、サーボモータ400を駆動する。セーフティドライバ300は、サーボモータ400からのフィードバック信号などに基づいて、サーボモータ400の回転位置、回転速度、回転加速度および発生するトルクなどを周期的に算出する。
【0049】
セーフティドライバ300は、セーフティ機能に必要な状態情報をセーフティコントローラ200へ提供するとともに、要求されるセーフティ機能に応じて、サーボモータ400に供給する電力を調整または遮断する。
【0050】
サーボモータ400は、セーフティドライバ300からの電力を受けて回転するモータを有するとともに、モータの回転軸に結合されたエンコーダからの検出信号をフィードバック信号としてセーフティドライバ300へ出力する。
【0051】
(b2:標準コントローラ100)
図3は、本実施の形態に係る制御システム1を構成する標準コントローラ100のハードウェア構成例を示す模式図である。
図3を参照して、標準コントローラ100は、プロセッサ102と、メインメモリ104と、ストレージ110と、上位ネットワークコントローラ106と、フィールドネットワークコントローラ108と、USB(Universal Serial Bus)コントローラ120と、メモリカードインターフェイス112と、ローカルバスコントローラ116とを含む。これらのコンポーネントは、プロセッサバス118を介して接続されている。
【0052】
プロセッサ102は、主として、標準制御に係る制御演算を実行する演算処理部に相当し、CPU(Central Processing Unit)やGPU(Graphics Processing Unit)などで構成される。具体的には、プロセッサ102は、ストレージ110に格納されたプログラム(一例として、システムプログラム1102および標準制御プログラム1104)を読出して、メインメモリ104に展開して実行することで、制御対象に応じた制御演算、および、後述するような各種処理を実現する。
【0053】
メインメモリ104は、DRAM(Dynamic Random Access Memory)やSRAM(Static Random Access Memory)などの揮発性記憶装置などで構成される。ストレージ110は、例えば、SSD(Solid State Drive)やHDD(Hard Disk Drive)などの不揮発性記憶装置などで構成される。
【0054】
ストレージ110には、基本的な機能を実現するためのシステムプログラム1102に加えて、制御対象に応じて作成された標準制御プログラム1104が格納される。また、ストレージ110には、各種の変数を設定するための設定情報1106が格納される。
【0055】
上位ネットワークコントローラ106は、上位ネットワークを介して、任意の情報処理装置との間でデータを遣り取りする。
【0056】
フィールドネットワークコントローラ108は、フィールドネットワーク2を介して、セーフティコントローラ200およびセーフティドライバ300を含む任意のデバイスとの間でデータを遣り取りする。
図3に示す制御システム1においては、標準コントローラ100のフィールドネットワークコントローラ108は、フィールドネットワーク2の通信マスタとして機能する。
【0057】
USBコントローラ120は、USB接続を介して、サポート装置500などとの間でデータを遣り取りする。
【0058】
メモリカードインターフェイス112は、着脱可能な記録媒体の一例であるメモリカード114を受付ける。メモリカードインターフェイス112は、メモリカード114に対してデータを書込み、メモリカード114から各種データ(ログやトレースデータなど)を読出すことが可能になっている。
【0059】
ローカルバスコントローラ116は、ローカルバスを介して、標準コントローラ100に接続される任意のユニットとの間でデータを遣り取りする。
【0060】
図2では、サポート装置500は、標準コントローラ100とは独立して備えられるが、標準コントローラ100に表示装置やサポート装置500などの機能を統合した構成を採用してもよい。
図3には、プロセッサ102がプログラムを実行することで必要な機能が提供される構成例を示したが、これらの提供される機能の一部または全部を、専用のハードウェア回路(例えば、ASIC(Application Specific Integrated Circuit)またはFPGA(Field-Programmable Gate Array)など)を用いて実装してもよい。あるいは、標準コントローラ100の主要部を、汎用的なアーキテクチャに従うハードウェア(例えば、汎用パソコンをベースとした産業用パソコン)を用いて実現してもよい。この場合には、仮想化技術を用いて、用途の異なる複数のOS(Operating System)を並列的に実行させるとともに、各OS上で必要なアプリケーションを実行させるようにしてもよい。さらに、標準コントローラ100に表示装置やサポート装置などの機能を統合した構成を採用してもよい。
【0061】
(b3:セーフティコントローラ200)
図4は、本実施の形態に係る制御システム1を構成するセーフティコントローラ200のハードウェア構成例を示す模式図である。
図4を参照して、セーフティコントローラ200は、プロセッサ202と、メインメモリ204と、ストレージ210と、フィールドネットワークコントローラ208と、USBコントローラ220と、セーフティローカルバスコントローラ216とを含む。これらのコンポーネントは、プロセッサバス218を介して接続されている。
【0062】
プロセッサ202は、主として、セーフティ制御に係る制御演算を実行する演算処理部に相当し、CPUやGPUなどで構成される。具体的には、プロセッサ202は、ストレージ210に格納されたプログラム(一例として、システムプログラム2102およびセーフティプログラム2104)を読出して、メインメモリ204に展開して実行することで、必要なセーフティ機能を提供するための制御演算、および、後述するような各種処理を実現する。
【0063】
メインメモリ204は、DRAMやSRAMなどの揮発性記憶装置などで構成される。ストレージ210は、例えば、SSDやHDDなどの不揮発性記憶装置などで構成される。
【0064】
ストレージ210には、基本的な機能を実現するためのシステムプログラム2102に加えて、要求されるセーフティ機能に応じた作成されたセーフティプログラム2104が格納される。さらに、ストレージ210には、変数などを設定するための設定情報2106が格納される。
【0065】
フィールドネットワークコントローラ208は、フィールドネットワーク2を介して、標準コントローラ100およびセーフティドライバ300を含む任意のデバイスとの間でデータを遣り取りする。
図3に示す制御システム1においては、セーフティコントローラ200のフィールドネットワークコントローラ208は、フィールドネットワーク2の通信スレーブとして機能する。
【0066】
USBコントローラ220は、USB接続を介して、サポート装置500などの情報処理装置との間でデータを遣り取りする。
【0067】
セーフティローカルバスコントローラ216は、セーフティローカルバスを介して、セーフティコントローラ200に接続される任意のセーフティユニットとの間でデータを遣り取りする。
図4には、セーフティユニットの一例として、セーフティユニットIOユニット230を示す。
【0068】
セーフティユニットIOユニット230は、任意のセーフティデバイス240との間で入出力信号を遣り取りする。より具体的には、セーフティユニットIOユニット230は、セーフティセンサやセーフティスイッチなどのセーフティデバイス240からの入力信号を受付ける。あるいは、セーフティユニットIOユニット230は、セーフティリレーなどのセーフティデバイス240へ指令を出力する。
【0069】
図4には、プロセッサ202がプログラムを実行することで必要な機能が提供される構成例を示したが、これらの提供される機能の一部または全部を、専用のハードウェア回路(例えば、ASICまたはFPGAなど)を用いて実装してもよい。あるいは、セーフティコントローラ200の主要部を、汎用的なアーキテクチャに従うハードウェア(例えば、汎用パソコンをベースとした産業用パソコン)を用いて実現してもよい。
【0070】
(b4:セーフティドライバ300およびサーボモータ400)
図5は、本実施の形態に係る制御システム1を構成するセーフティドライバ300およびサーボモータ400のハードウェア構成例を示す模式図である。
図5を参照して、セーフティドライバ300は、フィールドネットワークコントローラ302と、制御部310と、ドライブ回路330と、フィードバック受信回路332とを含む。
【0071】
フィールドネットワークコントローラ302は、フィールドネットワーク2を介して、標準コントローラ100およびセーフティコントローラ200を含む任意のデバイスとの間でデータを遣り取りする。
図5に示す制御システム1においては、セーフティドライバ300のフィールドネットワークコントローラ302は、フィールドネットワーク2の通信スレーブとして機能する。
【0072】
制御部310は、セーフティドライバ300を動作させるために必要な演算処理を実行する。一例として、制御部310は、プロセッサ312,314と、メインメモリ316と、ストレージ320とを含む。
【0073】
プロセッサ312は、サーボモータ400を駆動するための制御演算を主として実行する演算処理部に相当する。プロセッサ314は、サーボモータ400に係るセーフティ機能を提供するための制御演算を主として実行する演算処理部に相当する。プロセッサ312,314は、いずれもCPUなどで構成される。
【0074】
メインメモリ316は、DRAMやSRAMなどの揮発性記憶装置などで構成される。ストレージ320は、例えば、SSDやHDDなどの不揮発性記憶装置などで構成される。
【0075】
ストレージ320には、サーボモータ400に係るサーボ制御を実現するためのサーボ制御プログラム3201と、サーボモータ400に係るモーションセーフティ機能を実現するためのモーションセーフティプログラム3202と、他のデバイスに公開される変数などを設定するための設定情報3206とが格納される。ストレージ320は、さらにSRAのパラメータの初期値を示す初期パラメータ群60を保持(格納)するための領域E1および復元パラメータ群70を格納するため領域E2を備える。復元パラメータ群70は、低サイズ化された変更後パラメータ群を、元の変更後パラメータ群に復元することにより生成されるパラメータ群を示す。
【0076】
設定情報3206は、プロセッサ314により実行される復元プログラム3204およびCRC(Cyclic Redundancy Check)データを算出するCRC算出プログラム3205を含む。復元プログラム3204が実行されると、低サイズ化された変更パラメータ群を復元する処理が実施されて、復元により得られた復元パラメータ群70は領域E2に格納される。本実施の形態では「復元」は、低サイズ化された変更パラメータ群を、当該変更パラメータ群の内容を損なうことなく元のサイズに戻す処理を含む。また、本実施の形態では「パラメータ群の内容」は、パラメータの個数、および各パラメータの識別子(名称)、データ型、データ長ならびに値(数値、論理値等)等を含む。CRC算出プログラム3205は、領域E2の復元パラメータ群70から、所定の演算式に従い、誤り検出のためのCRCデータ(値)を算出する。CRCデータは、復元パラメータ群70に誤り(または改ざん)がない等の復元パラメータ群70の正当性を検出するための値であって、例えば復元パラメータ群70のバイナリデータから算出されるチェックサム等を含み得る。なお、CRCデータはチェックサムに限定されない。
【0077】
図5には、2つのプロセッサ312,314がそれぞれ異なる目的の制御演算を実行することで信頼性を高める構成を例示するが、これに限らず、要求されるセーフティ機能を実現できればどのような構成を採用してもよい。例えば、単一のプロセッサに複数のコアが含まれるような場合には、プロセッサ312,314にそれぞれ対応する制御演算を実行するようにしてもよい。また、
図5には、プロセッサ312,314がプログラムを実行することで必要な機能が提供される構成例を示したが、これらの提供される機能の一部または全部を、専用のハードウェア回路(例えば、ASICまたはFPGAなど)を用いて実装してもよい。
【0078】
ドライブ回路330は、コンバータ回路およびインバータ回路などを含み、制御部310からの指令に従って、指定された電圧・電流・位相の電力を生成して、サーボモータ400へ供給する。
【0079】
フィードバック受信回路332は、サーボモータ400からのフィードバック信号を受信して、その受信結果を制御部310へ出力する。
【0080】
サーボモータ400は、典型的には、三相交流モータ402および三相交流モータ402の回転軸に取付けられたエンコーダ404を含む。
【0081】
三相交流モータ402は、セーフティドライバ300から供給される電力を受けて回転力を発生するアクチュエータである。
図5には、一例として、三相交流モータを例示するが、これに限らず、直流モータであってもよいし、単相交流モータあるいは多相交流モータであってもよい。さらに、リニアサーボのような直線に沿って駆動力を発生するアクチュエータを採用してもよい。
【0082】
エンコーダ404は、三相交流モータ402の回転数に応じたフィードバック信号(典型的には、回転数に応じた数のパルス信号)を出力する。
【0083】
(b5:サポート装置500)
図6は、本実施の形態に係る制御システム1を構成するサポート装置500のハードウェア構成例を示す模式図である。サポート装置500は、一例として、汎用的なアーキテクチャに従うハードウェア(例えば、汎用パソコン)を用いて実現される。
【0084】
図6を参照して、サポート装置500は、プロセッサ502と、メインメモリ504と、入力部506と、出力部508と、ストレージ510と、光学ドライブ512と、通信インターフェィスの一実施例であるUSBコントローラ520とを含む。これらのコンポーネントは、プロセッサバス518を介して接続されている。
【0085】
プロセッサ502は、CPUやGPUなどで構成され、ストレージ510に格納されたプログラムを読出して、メインメモリ504に展開して実行することで、後述するような各種処理を実現する。
【0086】
メインメモリ504は、DRAMやSRAMなどの揮発性記憶装置などで構成される。ストレージ510は、例えば、HDDやSSDなどの不揮発性記憶装置などで構成される。
【0087】
ストレージ510には、基本的な機能を実現するためのOS5102に加えて、サポート装置500としての機能を提供するためのサポートプログラム5104が格納される。すなわち、サポートプログラム5104は、制御システム1に接続される情報処理装置のプロセッサにより実行されることで、本実施の形態に係るサポート装置500を実現する。
【0088】
ストレージ510には、初期パラメータ群60を保持(格納)するための領域E3、および変更パラメータ群65を格納するための領域E4を含む。サポートプログラム5104は、実行されることにより、各種の開発環境(ツール等)を提供する。サポートプログラム5104は、パラメータ群を生成するツールを提供するパラメータ生成プログラム5105、低サイズ化プログラム5106およびCRC算出プログラム5107を含む。パラメータ生成プログラム5105は、入力部506を介して受付けるユーザ操作に従い、初期パラメータ群60の内容を変更することにより、変更パラメータ群65を生成する。生成された変更パラメータ群65は、領域E4に格納される。
【0089】
低サイズ化プログラム5106は、領域E4の変更パラメータ群65から、当該変更パラメータ群65のデータサイズよりも小さいサイズを有したパラメータ群を生成するツールを提供する。さらに、低サイズ化プログラム5106は、変更パラメータ群65を低サイズ化する場合に、セーフティドライバ300の復元プログラム3204により復元可能なように低サイズ化を実施する。
【0090】
CRC算出プログラム5107は、領域E3の初期パラメータ群60または領域E4の変更パラメータ群65から、所定の演算式に従い、誤り検出のためのCRCデータ(値)を算出する。CRCデータは、初期パラメータ群60または変更パラメータ群65に誤り(または改ざん)がない等の当該パラメータ群の正当性を検出するための値である。なお、CRC算出プログラム5107に適用される所定の演算式は、セーフティドライバ300のCRC算出プログラム3205に適用される演算式と一致する。
【0091】
入力部506は、キーボードやマウスなどで構成され、サポート装置500に対するユーザ操作を受付ける。出力部508は、ディスプレイ、各種インジケータ、プリンタなどで構成され、プロセッサ502からの処理結果などを出力する。
【0092】
USBコントローラ520は、フィールドネットワーク2に接続可能であり、例えば、USB接続を介して、標準コントローラ100などとの間のデータを遣り取りする。
【0093】
サポート装置500は、光学ドライブ512を有しており、コンピュータ読取可能なプログラムを非一過的に格納する記録媒体514(例えば、DVD(Digital Versatile Disc)などの光学記録媒体)から、その中に格納されたプログラムが読取られてストレージ510などにインストールされる。
【0094】
サポート装置500で実行されるサポートプログラム5104などは、コンピュータ読取可能な記録媒体514を介してインストールされてもよいが、ネットワーク上のサーバ装置などからダウンロードする形でインストールするようにしてもよい。また、本実施の形態に係るサポート装置500が提供する機能は、OSが提供するモジュールの一部を利用する形で実現される場合もある。
【0095】
図6には、プロセッサ502がプログラムを実行することで、サポート装置500として必要な機能が提供される構成例を示したが、これらの提供される機能の一部または全部を、専用のハードウェア回路(例えば、ASICまたはFPGAなど)を用いて実装してもよい。
【0096】
なお、制御システム1が稼動中において、サポート装置500は、標準コントローラ100から取り外されていてもよい。
【0097】
<C.制御システム1のデータ通信>
次に、制御システム1におけるデータ通信の一例について説明する。
【0098】
図7は、本実施の形態に係る制御システム1における通信フレームの伝送形態を説明するための図である。
図7を参照して、制御システム1のフィールドネットワーク2においては、データ通信が行われており、標準コントローラ100を通信マスタとして、通信フレーム600がサイクリック(例えば、数~10数msec)にデバイス間を一巡する。通信フレーム600が伝送する周期をプロセスデータ通信周期とも称する。
【0099】
本実施の形態においては、このような通信フレーム600をサイクリックに伝送するフィールドネットワーク2のプロトコルの一例として、EtherCAT(登録商標)を採用する。
【0100】
通信フレーム600には、デバイス毎にデータ領域が割り当てられている。各デバイスは、通信フレーム600を受信すると、当該受信した通信フレーム600内の自デバイスに割り当てられたデータ領域に予め設定されたデータの現在値を書込む。そして、現在値の書込み後の通信フレーム600を次段のデバイスに送出する。各デバイスにより書込まれたデータの現在値は他のデバイスから参照可能になっている。
【0101】
各デバイスが通信フレーム600に予め設定されたデータの現在値を書込むことで、フィールドネットワーク2を一巡して通信マスタ(標準コントローラ100)に戻る通信フレーム600には、各デバイスにより収集された最新の値が含まれることになる。
【0102】
本実施の形態においては、さらに、このようなデータ通信を利用して、セーフティコントローラ200とセーフティドライバ300の各々との間で論理コネクション4が形成される(
図7参照)。この論理コネクション4は、セーフティ機能を実現するためのデータの遣り取りに用いられる。
【0103】
上述したように、フィールドネットワーク2のプトロコルとしてEtherCATを採用する場合には、FSoEのプロトコルを用いて論理コネクション4を形成できる。
【0104】
<D.制御システム1の機能分担>
次に、制御システム1における稼働時の機能分担の一例について説明する。
図8は、本実施の形態に係る制御システム1の稼働時の機能分担の一例を示す模式図である。
【0105】
図8を参照して、標準コントローラ100が実行する標準制御150に関して、セーフティドライバ300はサーボ制御350を実行する。標準制御150は、制御対象に予め設定されたユーザプログラムに従って、サーボモータ400を駆動するための指令を周期的に算出する処理を含む。また、サーボ制御350は、標準制御150により周期的に算出される指令に従ってサーボモータ400を駆動するための制御、および、サーボモータ400の動作状態を示す状態値を取得して出力する処理を含む。サーボ制御350は、セーフティドライバ300のプロセッサ312(
図5参照)が担当する。
【0106】
一方、セーフティコントローラ200が提供するセーフティ機能250に対応して、セーフティドライバ300はモーションセーフティ機能360を提供する。モーションセーフティ機能360は、セーフティドライバ300のプロセッサ314(
図5参照)が担当する。
【0107】
セーフティ機能250は、標準コントローラ100が実行する標準制御150が保持する状態値、セーフティデバイス240からの信号によって示される状態値、および、セーフティドライバ300が保持する状態値などに基づいて、予め定められた条件が成立すると、予め指定されているセーフティ機能を有効化する。
【0108】
予め指定されているセーフティ機能を有効化する処理は、例えば、セーフティドライバ300に対するセーフティ指令の出力、あるいは、セーフティデバイス240に対してセーフティ指令の出力(例えば、特定の装置への電力供給に係るセーフティリレーを遮断する)などを含む。
【0109】
セーフティドライバ300では、モーションセーフティプログラム3202が実行されると、セーフティコントローラ200からのセーフティ指令に応答して、指定されたモーションセーフティ機能360を提供する。指定されたモーションセーフティ機能360の種類に応じて、サーボ制御プログラム3201が実施するサーボ制御350によるサーボモータ400の制御に介入して、サーボモータ400への電力供給を遮断する処理、あるいは、サーボ制御350によるサーボモータ400の制御の状態値が予め定められた制限範囲内に収まっているか否かを監視する処理などが実行される。モーションセーフティプログラム3202は、領域E1の初期パラメータ群60または領域E2の復元パラメータ群70が示すSRAパラメータを参照して、上記の電力の供給を遮断または上記の監視の処理を実施する。
【0110】
<E.標準制御、セーフティ制御およびSRAパラメータ転送の実装例>
上述したように、本実施の形態に係る制御システム1においては、データ通信および論理コネクション4によるセーフティ通信が可能になっている。次に、それぞれの通信を利用した標準制御、セーフティ制御およびSRAのパラメータの転送の実装例について説明する。
【0111】
図9は、本実施の形態に係る制御システム1における標準制御、セーフティ制御およびパラメータ転送の実装例を示す模式図である。説明の便宜上、
図9には、標準コントローラ100、セーフティコントローラ200およびサポート装置500に加えて、1つのセーフティドライバ300からなる制御システム1の例を示す。
【0112】
図9を参照して、標準コントローラ100は、主たる機能構成として、データ通信レイヤ170およびIO管理モジュール172を有している。セーフティコントローラ200は、主たる機能構成として、データ通信レイヤ270と、IO管理モジュール272と、論理コネクションレイヤ276と、セーフティ機能状態管理エンジン278とを含む。セーフティドライバ300は、主たる機能構成として、データ通信レイヤ370と、論理コネクションレイヤ376と、モーションセーフティ機能状態管理エンジン378と、サーボ制御実行エンジン352と、モーションセーフティ機能実行エンジン362とを含む。セーフティドライバ300は、さらに、SRAのパラメータ群を含む各種パラメータを管理するパラメータマネージャ371を含む。
【0113】
データ通信レイヤ170、データ通信レイヤ270およびデータ通信レイヤ370は、フィールドネットワーク2上の通信フレーム600の転送を担当する。
【0114】
セーフティコントローラ200の論理コネクションレイヤ276およびセーフティドライバ300の論理コネクションレイヤ376は、セーフティ通信フレーム630の遣り取りを担当する。すなわち、論理コネクションレイヤ276および論理コネクションレイヤ376は、論理コネクションを確立するためのプロトコル(本実施の形態においては、FSoE)に従って、通信フレーム600に含まれるセーフティ通信フレーム630を用いて、コマンドおよびデータを遣り取りする。セーフティコントローラ200は、論理コネクションレイヤ276を介してセーフティドライバ300との間で論理コネクション4を確立させるための確立モジュール277を含む。
【0115】
標準コントローラ100において、IO管理モジュール172は、制御対象との間で信号を遣り取りすることで、プロセスデータ174を更新する。標準コントローラ100において実行される標準制御プログラム1104は、プロセスデータ174を参照して制御演算を実行するとともに、制御演算の実行結果でプロセスデータ174を更新する。
【0116】
セーフティコントローラ200において、IO管理モジュール272は、セーフティデバイス240との間で信号を遣り取りすることで、プロセスデータ274を更新する。
【0117】
セーフティコントローラ200において実行されるセーフティプログラム2104は、プロセスデータ274およびセーフティ機能状態管理エンジン278を参照して制御演算を実行するとともに、制御演算の実行結果に基づいて、プロセスデータ274を更新し、あるいは、セーフティ機能状態管理エンジン278に対して内部的な指令を出力する。
【0118】
セーフティ機能状態管理エンジン278は、セーフティプログラム2104による制御演算の実行結果に応じて、特定のセーフティドライバ300に対して特定のモーションセーフティ機能を有効化するための指令を生成する。論理コネクションレイヤ276は、セーフティ機能状態管理エンジン278からの指令に応答して、対象のセーフティドライバ300の論理コネクションレイヤ376との間で、セーフティ通信フレーム630を用いて必要なコマンドおよび情報を遣り取りする。
【0119】
セーフティドライバ300において、サーボ制御実行エンジン352は、プロセスデータ374およびフィードバック受信回路332を介して取得されるフィードバック信号の情報を参照してサーボ制御に係る制御演算を実行する。サーボ制御実行エンジン352は、制御演算の実行結果に基づいて、プロセスデータ374を更新するとともに、ドライブ回路330に内部的な指令を出力する。ドライブ回路330は、サーボ制御実行エンジン352からの指令に従って、サーボモータ400を駆動する。
【0120】
モーションセーフティ機能状態管理エンジン378は、セーフティコントローラ200からのセーフティ指令に従ってモーションセーフティ機能の状態を管理する。モーションセーフティ機能状態管理エンジン378は、セーフティコントローラ200からの指令に応答して、モーションセーフティ機能実行エンジン362に対して内部的な指令を出力する。
【0121】
モーションセーフティ機能実行エンジン362においては、モーションセーフティプログラム3202が実行されることにより、指定されたモーションセーフティ機能が実現される。
【0122】
論理コネクションレイヤ376は、モーションセーフティ機能状態管理エンジン378からの指令に応答して、セーフティコントローラ200の論理コネクションレイヤ276との間で、セーフティ通信フレーム630を用いて必要なコマンドおよび情報を遣り取りする。パラメータマネージャ371は、論理コネクションレイヤ376は、CRC算出プログラム3205を実行することによるCRCデータの算出機能を実現するとともに、算出されたCRCデータとセーフティコントローラ200から受信したCRCデータとを照合する機能を実現する。また、パラメータマネージャ371は、照合の結果が、両CRCデータは一致することを示すとき、論理コネクションレイヤ376に、セーフティコントローラ200に対して、論理コネクション4を確立する旨の応答を送信させる。
【0123】
図9を参照して、サポート装置500は、主たる機能構成として、データ通信レイヤ533およびパラメータマネージャ532を有している。データ通信レイヤ533は、標準コントローラ100を含む各種装置とデータを遣り取りする。パラメータマネージャ532は、パラメータ生成プログラム5105を実行することにより、操作受付部530が入力部506を介し受付けたユーザ操作内容に従い、パラメータ群を生成する。また、パラメータマネージャ532は、低サイズ化プログラム5106を実行することにより、生成されたパラメータ群を低サイズ化する。パラメータマネージャ532は低サイズ化されたパラメータ群を、フィールドネットワーク2を介して、対象のセーフティドライバ300に転送する機能を実現する。
【0124】
<F.低サイズ化されたパラメータ群の転送の一例>
図10は、本実施の形態に係る制御システム1における低サイズ化されたパラメータ群の転送のフローの一例を示す模式図である。
図11は、本実施の形態に係る制御システム1における低サイズ化されたパラメータ群の転送のシーケンスの一例を示す模式図である。
図12は、本実施の形態に係る差分パラメータ群の導出方法を説明する図である。本実施の形態では、例えば制御システム1の起動時などに、サポート装置500から各セーフティドライバ300に対して、SRAのパラメータ群の転送が実施される。サポート装置500は、生成されたパラメータ群を、すなわち領域E4の変更パラメータ群65を低サイズ化して、フィールドネットワーク2を介して各セーフティドライバ300に転送する。
【0125】
本実施の形態では、低サイズ化されたパラメータ群として差分パラメータ群80を適用することができる。例えば、
図12(A)の初期パラメータ群60から
図12(B)の変更パラメータ群65が生成される場合、パラメータマネージャ532が低サイズ化プログラム5106を実行することにより、変更パラメータ群65と初期パラメータ群60との相違が抽出されて、相違を示す
図12(C)の差分パラメータ群80が生成される。
図12に示すパラメータ群の内容は、パラメータ毎に、IndexおよびsubIndexが示す記憶場所(物理アドレスまたは論理アドレス)と、00,01,02等が示す識別子(名称等)およびValueが示す値を含む。図示されるように、低サイズ化により、差分パラメータ群80のデータサイズを、変更パラメータ群65のデータサイズよりも小さくすることができる。
【0126】
図10および
図11を参照して、差分パラメータ群80を各セーフティドライバ300に転送するシーケンスを説明する。
図11中のフローS1~S5は、
図10中のフローS1~S5に対応する。まず、サポート装置500では、パラメータマネージャ532は、パラメータ生成プログラム5105を実行することにより、操作受付部530が受付けたユーザ操作に従い、初期パラメータ群60を変更する。これにより、変更パラメータ群65が生成される(
図11のステップT1)。また、パラメータマネージャ532は、低サイズ化プログラム5106を実行することにより、
図12に示すような差分パラメータ群80が生成される(ステップT3)。パラメータマネージャ532は、セーフティドライバ300(スレーブ)のEtherCATの初期化コマンドに差分パラメータ群80の転送コマンドを設定する(ステップT5)。サポート装置500は、差分パラメータ群80とともに初期化コマンドを標準コントローラ100に転送する(ステップT7)。
【0127】
また、サポート装置500のパラメータマネージャ532は、変更パラメータ群65からCRCデータ85を算出し(ステップT9)、コネクションのパラメータにCRCデータ85を設定し、当該コネクションのパラメータを、フィールドネットワーク2を介してセーフティコントローラ200に送信する(ステップT31)。
【0128】
標準コントローラ100は、サポート装置500から、差分パラメータ群80と初期化コマンドを受信し(ステップT21)、初期化コマンドに設定された転送コマンドを実行することにより、差分パラメータ群80をセーフティドライバ300に転送する(ステップT23)。
【0129】
セーフティドライバ300は、フィールドネットワーク2を介して標準コントローラ100から差分パラメータ群80を受信する(ステップT41)。パラメータマネージャ371は、復元プログラム3204を実行することにより、領域E1から読出した初期パラメータ群60を受信した差分パラメータ群80を用いて変更する。これにより、変更パラメータ群を復元した復元パラメータ群70が生成されて、復元パラメータ群70は領域E2に格納される(ステップT43)。
【0130】
これにより、サポート装置500から各セーフティドライバ300に変更パラメータ群65を転送する場合に、変更パラメータ群65の全パラメータの転送に代えて差分パラメータ群80の転送で済ませることができて、転送に係る時間を短縮でき、またフィールドネットワーク2に係る負荷を軽減することが可能になる。
【0131】
さらに、セーフティドライバ300のパラメータマネージャ371は、CRC算出プログラム3205を実行することにより、領域E2の復元パラメータ群70からCRCデータ90を算出する(ステップT45)。
【0132】
また、セーフティコントローラ200の確立モジュール277はセーフティドライバ300と論理コネクション4を確立させる場合、コネクション確立要求を、サポート装置500から受信したコネクションのパラメータに設定されたCRCデータ85とともに、セーフティドライバ300に転送する(ステップT33)。
【0133】
セーフティドライバ300のパラメータマネージャ371は、セーフティコントローラ200からのコネクション確立要求を受信すると(ステップT47)、コネクション確立要求とともに受信したCRCデータ85とステップT45で生成したCRCデータ90とを照合する(ステップT49)。セーフティドライバ300は、照合の結果が一致を示すと判断すると(ステップT51でYES)、確立要求を受入れて「OK」の応答を生成しセーフティコントローラ200に送信する(ステップT53)。その後、セーフティコントローラ200との間で論理コネクション4を確立させる。また、セーフティドライバ300は、照合の結果が不一致を示すと判断すると(ステップT51でNO)、確立要求を拒否する「NG」の応答を生成しセーフティコントローラ200に送信する(ステップT55)。セーフティコントローラ200の確立モジュール277は、確立要求の応答として、セーフティドライバ300からOKまたはNGの応答を受信する(ステップT35)。
【0134】
セーフティドライバ300は、CRCコードの照合を実施することのより、低サイズ化の過程で、または差分パラメータ群80の転送の過程で、または差分パラメータ群80を用いた復元の過程で、誤りまたは改ざんなどがあったことを検出することができる。また誤りの検出がなされたときは、すなわち復元パラメータ群70の正当性が保証できないときは、復元パラメータ群70に代えて初期パラメータ群60を参照してモーションセーフティプログラム3202を実行させることができる。これにより、誤りの可能性があるパラメータ群を参照してモーションセーフティプログラム3202が実行される事態を防止することができる。
【0135】
<G.低サイズ化されたパラメータ群の転送の他の例>
図13は、本実施の形態に係る制御システム1における低サイズ化されたパラメータ群の転送のフローの他の例を示す模式図である。
図14は、本実施の形態に係る制御システム1における低サイズ化されたパラメータ群の転送のシーケンスの他の例を示す模式図である。上記に述べた例では、変更パラメータ群65の低サイズ化は、差分パラメータ群80の生成により実現したが、低サイズ化の他の方法として、変更パラメータ群65を圧縮する方法であってもよい。
【0136】
図13および
図14を参照して、変更パラメータ群65を各セーフティドライバ300に転送するために、変更パラメータ群65を圧縮した圧縮パラメータ群75を転送するシーケンスを説明する。
図14中のフローS1~S5は、
図13中のフローS1~S5に対応する。まず、サポート装置500のパラメータマネージャ532は、操作受付部530が受付けたユーザ操作に従い、初期パラメータ群60を変更することにより変更パラメータ群65を生成し(
図14のステップT1)、領域E4に格納する。パラメータマネージャ532は、低サイズ化プログラム5106を実行することにより、領域E4から読出した変更パラメータ群65を、所定の圧縮方式で圧縮し、圧縮パラメータ群75を生成する(ステップT3a)。この圧縮方式としては、例えばZIPを採用することができる。サポート装置500は、セーフティドライバ300(スレーブ)のEtherCATの初期化コマンドに圧縮パラメータ群75の転送コマンドを設定する(ステップT5a)。サポート装置500は、圧縮パラメータ群75とともに初期化コマンドを標準コントローラ100に転送する(ステップT7)。
【0137】
また、サポート装置500のパラメータマネージャ532は、変更パラメータ群65からCRCデータ85を算出し(ステップT9)、コネクションのパラメータにCRCデータ85を設定し(ステップT11)、当該コネクションのパラメータを、フィールドネットワーク2を介してセーフティコントローラ200に送信する(ステップT13)。
【0138】
標準コントローラ100は、サポート装置500から初期化コマンドとともに圧縮パラメータ群75を受信し(ステップT21)、初期化コマンドに設定された転送コマンドを実行することにより、圧縮パラメータ群75を、セーフティドライバ300に転送する(ステップT23a)。
【0139】
セーフティドライバ300は、標準コントローラ100から圧縮パラメータ群75を受信し(ステップT41)、パラメータマネージャ371は、復元プログラム3204を実行することにより、受信した圧縮パラメータ群75を、上記の所定の圧縮方式に対応した伸張(解凍、展開)方式に従い復元し、復元パラメータ群70を生成する。生成された復元パラメータ群70は領域E2に格納される(ステップT43a)。
【0140】
これにより、サポート装置500から各セーフティドライバ300に変更パラメータ群65を転送する場合に、変更パラメータ群65を圧縮し低サイズ化した転送で済ませることができて、転送に係る時間を短縮でき、またフィールドネットワーク2に係る負荷を軽減することが可能になる。
【0141】
その後は、サポート装置500、セーフティコントローラ200およびセーフティドライバ300の間で、ステップT31~T55の処理が実行される。
図14のステップT31~T55の処理は
図11に示したそれらの処理と同じであるから、説明は繰返さない。
【0142】
なお、圧縮の方式として、上記のZIPを含む複数の方式から選択した方式を用いることもできる。この場合は、サポート装置500のパラメータマネージャ532は、セーフティドライバ300に、選択した圧縮方式に対応した伸張方式を指定するコマンドを送信する。セーフティドライバ300のパラメータマネージャ371は、セーフティドライバ300から受信するコマンドにより指定された伸張方式に従い、圧縮パラメータ群75を伸張処理する。
【0143】
また、サポート装置500は、伸張方式の指定コマンドを、フィールドネットワーク2を介して、セーフティドライバ300に送信する。また、この伸張方式の指定コマンドは、セーフティドライバ300に転送される圧縮パラメータ群75とともに、または圧縮パラメータ群75の転送とは別の時期にセーフティドライバ300に送信してもよい。
【0144】
また、伸張方式の指定コマンドの圧縮パラメータ群75とともに送信される場合は、指定コマンドを圧縮パラメータ群のヘッダに含ませてもよい。
【0145】
低サイズ化のさらなる他の例として、差分パラメータ群80を圧縮する方法を採用してもよい。また、差分パラメータ群80は、初期パラメータ群60と変更パラメータ群65のバイナリデータどうしの差分であってもよく、パラメータ群が
図12に示すようなCSV形式に従う場合は、CSVデータどうしの差分であってもよい。
【0146】
上記に述べたように、差分パラメータ群80は標準コントローラ100を経てセーフティドライバ300に転送され(
図11)、また圧縮パラメータ群75および伸張方式の指定コマンドは標準コントローラ100を経てセーフティドライバ300に転送されるが(
図14)、転送ルートはこれに限定されない。例えば、差分パラメータ群80は、標準コントローラ100を経ないで、サポート装置500からセーフティドライバ300に転送されてもよく、また圧縮パラメータ群75および伸張方式の指定コマンドも標準コントローラ100を経ないで、サポート装置500からセーフティドライバ300に転送されてもよい。
【0147】
<H.付記>
上述したような本実施の形態は、以下のような技術思想を含む。
[構成1]
第1のコントローラ(100)と、
前記第1のコントローラからの第1の指令に従ってモータ(400)を駆動するドライブ装置(300)と、を備え、
前記ドライブ装置はモータの駆動に関するセーフティ機能を実現するためのセーフティプログラム(3202)と、前記セーフティプログラムの実行時に参照されるパラメータ群(E2)を格納するメモリ(320)を含み、
前記ドライブ装置に対して前記セーフティ機能の動作に係る第2の指令を送信する第2のコントローラ(200)と、
前記第1のコントローラ、前記ドライブ装置および前記第2のコントローラの間で、データを互いに共有するためのネットワーク(2)と、
前記ネットワークに接続可能なサポート装置(500)と、をさらに備え、
前記サポート装置は、
当該サポート装置に対するユーザ操作に従い前記パラメータ群を生成するパラメータ生成部(5105)と、
前記生成されたパラメータ群が前記ネットワークを介し転送される際に、前記生成されたパラメータ群を前記ドライブ装置で復元可能な方法で低サイズ化する低サイズ化部(5106)と、含む、制御システム(1)。
[構成2]
前記パラメータ生成部は、
初期パラメータ群(60)から、前記ユーザ操作に従い変更された変更パラメータ群(65)を生成し、
前記低サイズ化部は、
前記低サイズ化されたパラメータ群として、前記変更パラメータ群と前記初期パラメータ群との相違を示す差分パラメータ群(80)を生成する、構成1に記載の制御システム。
[構成3]
前記ドライブ装置の前記メモリは、前記初期パラメータ群を保持する領域(E1)を有し、
前記ドライブ装置は、前記メモリに保持された前記初期パラメータ群を、前記ネットワークを介し受信した前記差分パラメータ群を用いて変更することにより、前記変更パラメータ群を復元する(3204)、構成2に記載の制御システム。
[構成4]
前記パラメータ生成部は、
初期パラメータ群(60)から、前記ユーザ操作に従い変更された変更パラメータ群(65)を生成し、
前記低サイズ化部は、
前記低サイズ化されたパラメータ群として、圧縮された前記変更パラメータ群(75)を生成する、構成1に記載の制御システム。
[構成5]
前記ドライブ装置は、前記ネットワークを介し受信した前記圧縮された変更パラメータ群を、伸張することにより前記変更パラメータ群を復元する(3204)、構成4に記載の制御システム。
[構成6]
前記ドライブ装置は、前記ネットワークを介し受信した前記圧縮された変更パラメータ群を、前記ネットワークを介し受信したコマンドに従い伸張することにより前記変更パラメータ群を復元する、構成4に記載の制御システム。
[構成7]
前記第2の指令は、前記第2のコントローラと前記ドライブ装置との間に前記ネットワークを利用して形成されるコネクション(4)を介して送信され、
前記サポート装置は、
前記変更パラメータ群から、所定式に従い、当該変更パラメータ群の正当性を示す第1のデータ(85)を算出する第1算出部(5107)を含み、算出された前記第1のデータを、前記第2のコントローラに転送し、
前記ドライブ装置は、
前記復元された変更パラメータ群から、前記所定式に従い、当該復元された変更パラメータ群の正当性を示す第2のデータ(90)を算出する第2算出部(3205)を含み、
前記第2のコントローラから受信する前記第1のデータと、算出された前記第2のデータとの照合が一致を示すとき、前記コネクションの確立を前記第2のコントローラに通知する(T53)、構成2から6のいずれか1に記載の制御システム。
[構成8]
制御システム(1)に接続されるサポート装置(500)であって、
前記制御システムは、
第1のコントローラ(100)と、
前記第1のコントローラからの第1の指令に従ってモータ(400)を駆動するドライブ装置(300)と、を含み、
前記ドライブ装置はモータの駆動に関するセーフティ機能を実現するためのセーフティプログラム(3202)と、前記セーフティプログラムの実行時に参照されるパラメータ群(70)を格納するメモリを有し、
前記制御システムは、さらに、
前記ドライブ装置に対して前記セーフティ機能の動作に係る第2の指令を送信する第2のコントローラ(200)と、
前記第1のコントローラ、前記ドライブ装置および前記第2のコントローラの間で、データを互いに共有するためのネットワーク(2)と、を含み、
前記サポート装置は、
当該サポート装置に対するユーザ操作に従い前記パラメータ群を生成するパラメータ生成部(5105))と、
前記生成されたパラメータ群が前記ネットワークを介し転送される際に、前記生成されたパラメータ群を前記ドライブ装置で復元可能な方法で低サイズ化する低サイズ化部(5106)と、備える、サポート装置。
[構成9]
制御システム(1)に接続される情報処理装置(500)で実行されるプログラムであって、
前記制御システムは、
第1のコントローラ(100)と、
前記第1のコントローラからの第1の指令に従ってモータ(400)を駆動するドライブ装置(300)と、を含み、
前記ドライブ装置はモータの駆動に関するセーフティ機能を実現するためのセーフティプログラム(3202)と、前記セーフティプログラムの実行時に参照されるパラメータ群(70)を格納するメモリを有し、
前記制御システムは、さらに、
前記ドライブ装置に対して前記セーフティ機能の動作に係る第2の指令を送信する第2のコントローラ(200)と、
前記第1のコントローラ、前記ドライブ装置および前記第2のコントローラの間で、データを互いに共有するためのネットワーク(2)と、を含み、
前記プログラムは、前記情報処理装置のプロセッサに、
前記情報処理装置に対するユーザ操作に従い前記パラメータ群を生成するステップ(T1)と、
前記生成されたパラメータ群が前記ネットワークを介し転送される際に、当該パラメータ群を前記ドライブ装置で復元可能な方法で低サイズ化するステップ(T3,T3a)と、を実行させる、プログラム。
【0148】
今回開示された実施の形態はすべての点で例示であって制限的なものではないと考えられるべきである。本発明の範囲は、上記した説明ではなく、特許請求の範囲によって示され、特許請求の範囲と均等の意味および範囲内でのすべての変更が含まれることが意図される。
【符号の説明】
【0149】
1 制御システム、2 フィールドネットワーク、4 論理コネクション、60 初期パラメータ群、65 変更パラメータ群、70 復元パラメータ群、75 圧縮パラメータ群、80 差分パラメータ群、85,90 CRCデータ、100 標準コントローラ、102,202,312,314,502 プロセッサ、104,204,316,504 メインメモリ、106 上位ネットワークコントローラ、108,208,302 フィールドネットワークコントローラ、110,210,320,510 ストレージ、200 セーフティコントローラ、276,376 論理コネクションレイヤ、277 確立モジュール、371,532 パラメータマネージャ、500 サポート装置、506 入力部、530 操作受付部、3202 モーションセーフティプログラム、3204 復元プログラム、3205,5107 CRC算出プログラム、5104 サポートプログラム、5105 パラメータ生成プログラム、5106 低サイズ化プログラム、E1,E2,E3,E4 領域、S1,S2,S3,S5 フロー。