本発明の実施の形態について、図面を参照しながら詳細に説明する。なお、図中の同一または相当部分については、同一符号を付してその説明は繰返さない。
<A.適用例>
まず、本発明が適用される場面の一例について説明する。
図1は、本実施の形態に係る制御システム1の適用例を示す模式図である。本実施の形態に係る制御システム1は、たとえば、IEC 61508などに規定されたセーフティ機能に加えて、非特許文献("IEC 61800-5-2:2016 Adjustable speed electrical power drive systems - Part 5-2: Safety requirements - Functional", International Electrotechnical Commission, 2016-04-18)に規定された、STO(Safe Torque Off)、SS1(Safe Stop 1)、SS2(Safe Stop 2)、SOS(Safe Operating Stop)、SBC(Safe Brake Control)などの、ドライブ装置に関連するいくつかのセーフティ機能を提供する。
図1を参照して、制御システム1は、主として、標準コントローラ100、ならびに、標準コントローラ100とフィールドネットワーク2を介して接続されるセーフティコントローラ200、および1または複数のセーフティドライバ(セーフティサーボドライバ)300を含む。セーフティドライバ300の各々は、電気的に接続されたサーボモータ400を駆動する。なお、サーボモータ400に限らず、任意の種類のモータを採用できる。
標準コントローラ100は、標準制御プログラム1104に従って、サーボモータ400を含む制御対象に対する標準制御150を実行する。典型的には、標準コントローラ100は、1または複数のセンサ(図示していない)などからの入力信号に応じた制御演算をサイクリック実行することで、サーボモータ400などのアクチュエータに対する指令を周期的に算出する。標準制御プログラム1104は、標準コントローラ100と通信可能に接続されたサポート装置500が提供する開発環境を利用して、ユーザによって予め作成され、標準コントローラ100に転送される。
セーフティコントローラ200は、セーフティプログラム2104に従って、セーフティドライバ300に対してセーフティ機能250の動作に係るセーフティ指令を送信する。より具体的には、セーフティコントローラ200は、標準コントローラ100とは独立して、制御対象に対するセーフティ機能250を実現するための監視および制御演算をサイクリック実行する。これにより、セーフティコントローラ200は、制御システム1における安全を管理する。
セーフティコントローラ200は、任意のセーフティデバイス240からの入力信号の受付、および/または、任意のセーフティデバイス240への指令の出力が可能になっている。セーフティプログラム2104は、セーフティコントローラ200と通信可能に接続されたサポート装置500が提供する開発環境を利用して、ユーザによって予め作成され、セーフティコントローラ200に転送される。
セーフティドライバ300は、標準コントローラ100からの指令に従って、サーボモータ400に電力を供給することで、サーボモータ400を駆動する。セーフティドライバ300は、サーボモータ400からのフィードバック信号などに基づいて、サーボモータ400の回転位置、回転速度、回転加速度および発生するトルクなどを周期的に算出する。
さらに、セーフティドライバ300は、セーフティコントローラ200からの指令に従って、サーボモータ400の駆動に関する所定のセーフティ機能250を実行する。より具体的には、セーフティドライバ300は、セーフティ機能250に必要な状態情報をセーフティコントローラ200へ提供するとともに、要求されるセーフティ機能250に応じて、サーボモータ400に供給する電力を調整または遮断する。
サーボモータ400は、セーフティドライバ300からの電力を受けて回転するモータ(後述する三相交流モータ402)を有するとともに、モータの回転軸に結合されたエンコーダ404からの検出信号をフィードバック信号としてセーフティドライバ300へ出力する。
サポート装置500は、標準コントローラ100側の開発およびセーフティコントローラ200側の開発を支援する。より特定的には、サポート装置500は、標準コントローラ100側の開発として、標準コントローラ100で実行される標準制御プログラム1104の開発や後述する標準制御150に係る設定などを支援する。さらに、サポート装置500は、セーフティコントローラ200側の開発として、セーフティコントローラ200で実行されるセーフティプログラム2104の開発や後述するセーフティ機能250に係る設定などを支援する。サポート装置500は、少なくとも1つ以上の命令情報を組み合わせることでプログラムを生成するための開発環境(プログラム作成編集ツール、パーサ、コンパイラなど)をユーザに提供する。
本実施の形態においては、命令情報がファンクションブロックとして規定されており、標準制御プログラム1104やセーフティプログラム2104を生成するための各種ファンクションブロック(ユーザ定義ファンクションブロック)がサポート装置500にインポートされる。ユーザは、サポート装置500にインポートされたファンクションブロックに対して設定値を入力することができ、設定値を入力したファンクションブロック(命令情報)を組み合わせることで、標準制御プログラム1104やセーフティプログラム2104に係るプログラミングが可能である。
セーフティプログラム2104におけるファンクションブロックは、セーフティコントローラ200に関連付けられたセーフティドライバ300が有する機能に対応している。具体的には、ユーザは、セーフティコントローラ200に対して、少なくとも1以上のセーフティドライバ300を通信可能に接続させることが可能であり、各セーフティドライバ300は、実行可能なセーフティ機能250が予め定められている。そして、各セーフティ機能250に対応するように、ファンクションブロック(命令情報)が予め設けられている。セーフティコントローラ200に対して少なくとも1以上のセーフティドライバ300が接続されると、接続されたセーフティドライバ300が有するセーフティ機能250に対応するファンクションブロックが、サポート装置500にインポートされ、ユーザによって利用可能とされる。
サポート装置500は、標準制御150に係る設定時において、サーボモータ400の動作に係る物理量の単位で設定値の入力(たとえば、標準制御プログラム1104に係るファンクションブロックに対する設定値の入力)を受け付ける受付部5111を有する。
本明細書において、「物理量の単位」は、サーボモータ400の駆動によって動作する物体の動作に係る単位を意味し、ユーザによって直感的に理解し易い単位である。たとえば、サーボモータ400の駆動によって動作するワークを想定した場合、物理量の単位に関して、原点からの移動距離の単位としては[mm]で表すことができ、移動速度の単位としては[mm/sec]で表すことができる。なお、[mm]や[mm/sec]に限らず、[μm]や[μm/sec]、[nm]や[nm/sec]など、物理量の単位としてその他の単位で表すこともできる。さらに、物理量の単位に関して、原点からの移動距離や移動速度に限らず、移動加速度の単位を用いてもよい。ユーザは、標準制御150に係る設定時において、ファンクションブロックに対して、このような直感的に理解し易い単位を用いて設定値を入力することができる。
一方、セーフティドライバ300からサーボモータ400に対する指令値では、サーボモータ400の回転数に応じた位置情報(たとえば、パルス数)が用いられている。このため、標準コントローラ100は、標準制御150に係る物理量の単位(たとえば、[mm])での設定値をサーボモータ400に対する位置情報の単位(たとえば、[pulse])での指令値に変換した上で、変換後の指令値をセーフティドライバ300に与えている。なお、セーフティドライバ300からサーボモータ400に対する指令値としては、パルス([pulse])のような位置情報に限らず、サーボモータ400の回転速度に対応する速度情報が用いられてもよい。このような速度情報の単位としては、[r/min]や[rpm]などが用いられる。この場合、標準コントローラ100は、標準制御150に係る物理量の単位(たとえば、[mm/sec])での設定値をサーボモータ400に対する速度情報の単位(たとえば、[r/min])での指令値に変換した上で、変換後の指令値をセーフティドライバ300に与えている。
サポート装置500は、セーフティ機能250に係る設定時において、セーフティドライバ300からサーボモータ400に対する指令値の単位でセーフティ機能250に係る設定における設定値を取り扱う。しかしながら、[pulse]などの指令値の単位は、[mm]などの物理量の単位とは異なり、ユーザにとって直感的に理解し難いため、ユーザのプログラミングにおける利便性が乏しくなりがちである。
そこで、本実施の形態に係る制御システム1においては、サポート装置500は、サーボモータ400の動作に係る物理量の単位とセーフティドライバ300によるサーボモータ400に対する指令値の単位とを相互に変換するための変換用データ5105を保持するデータ保持部5100と、セーフティ機能250に係る設定時において、変換用データ5105に基づき、物理量の単位を指令値の単位に変換する変換部5211とを含む。サポート装置500は、ユーザによって物理量の単位で値が入力されると、変換部5211によって、データ保持部5100に保持された変換用データ5105に基づき、物理量の単位を指令値の単位に変換し、その変換結果を画面に表示したり、セーフティ機能250に係る設定における設定値としたりする。
これにより、セーフティ機能250に係る設定時において、ユーザが物理量の単位で設定値を扱ったとしても、当該物理量の単位での設定値が指令値の単位での設定値に変換されるため、ユーザのプログラミングにおける利便性を向上させることができる。
本明細書において、「デバイス」は、フィールドネットワーク2などの任意のネットワークを介して、他の装置とデータ通信可能な装置の総称である。本実施の形態に係る制御システム1において、「デバイス」は、標準コントローラ100、セーフティコントローラ200、およびセーフティドライバ300を包含する。
本明細書において、「標準制御」および「セーフティ制御」の用語を対比的に用いる。「標準制御」は、予め定められた要求仕様に沿って、制御対象を制御するための処理の総称である。一方、「セーフティ制御」は、設備や機械などによって人の安全が脅かされることを防止するための処理を総称する。「セーフティ制御」は、IEC 61508などに規定されたセーフティ機能250を実現するための要件を満たすように設計される。
本明細書においては、ドライブ装置に特有のセーフティ機能を「モーションセーフティ機能」と総称する。典型的には、「機能」は、上述の非特許文献に規定されるドライブ装置に関連するセーフティ機能を包含する。たとえば、制御軸の位置や速度を監視して安全を確保するための制御を含む。
<B.制御システム1に含まれるデバイスの構成例>
次に制御システム1に含まれるデバイスの構成例について説明する。
(b1:標準コントローラ100)
図2は、本実施の形態に係る制御システム1を構成する標準コントローラ100のハードウェア構成例を示す模式図である。図2を参照して、標準コントローラ100は、プロセッサ102と、メインメモリ104と、ストレージ110と、上位ネットワークコントローラ106と、フィールドネットワークコントローラ108と、USB(Universal Serial Bus)コントローラ120と、メモリカードインターフェイス112と、ローカルバスコントローラ116とを含む。これらのコンポーネントは、プロセッサバス118を介して接続されている。
プロセッサ102は、主として、標準制御150に係る制御演算を実行する演算処理部に相当し、CPU(Central Processing Unit)やGPU(Graphics Processing Unit)などで構成される。具体的には、プロセッサ102は、ストレージ110に格納されたプログラム(一例として、システムプログラム1102および標準制御プログラム1104)を読み出して、メインメモリ104に展開して実行することで、制御対象(たとえば、セーフティドライバ300やサーボモータ400)に応じた制御演算、および、後述するような各種処理を実現する。
メインメモリ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が格納される。さらに、ストレージ110には、標準制御プログラム1104に含まれる物理量の単位での設定値をサーボモータ400に対するパルス数の単位での指令値に変換するための変換用データ1105が格納される。なお、変換用データ1105は、設定情報1106に含まれていてもよいし、標準制御プログラム1104にソースコードとして書き込まれていてもよい。
上位ネットワークコントローラ106は、上位ネットワークを介して、任意の報処理装置との間でデータを遣り取りする。
フィールドネットワークコントローラ108は、フィールドネットワーク2を介して、セーフティコントローラ200およびセーフティドライバ300を含む任意のデバイスとの間でデータを遣り取りする。図2に示す制御システム1においては、標準コントローラ100のフィールドネットワークコントローラ108は、フィールドネットワーク2の通信マスタとして機能する。
USBコントローラ120は、USB接続を介して、サポート装置500などとの間でデータを遣り取りする。
メモリカードインターフェイス112は、着脱可能な記録媒体の一例であるメモリカード114を受け付ける。メモリカードインターフェイス112は、メモリカード114に対してデータを書き込み、メモリカード114から各種データ(ログやトレースデータなど)を読み出すことが可能になっている。
ローカルバスコントローラ116は、ローカルバスを介して、標準コントローラ100に接続される任意のユニットとの間でデータを遣り取りする。
図2には、プロセッサ102がプログラムを実行することで必要な機能が提供される構成例を示したが、これらの提供される機能の一部または全部を、専用のハードウェア回路(たとえば、ASIC(Application Specific Integrated Circuit)またはFPGA(Field-Programmable Gate Array)など)を用いて実装してもよい。あるいは、標準コントローラ100の主要部を、汎用的なアーキテクチャに従うハードウェア(たとえば、汎用パソコンをベースとした産業用パソコン)を用いて実現してもよい。この場合には、仮想化技術を用いて、用途の異なる複数のOS(Operating System)を並列的に実行させるとともに、各OS上で必要なアプリケーションを実行させるようにしてもよい。さらに、標準コントローラ100に表示装置やサポート装置などの機能を統合した構成を採用してもよい。
(b2:セーフティコントローラ200)
図3は、本実施の形態に係る制御システム1を構成するセーフティコントローラ200のハードウェア構成例を示す模式図である。図3を参照して、セーフティコントローラ200は、プロセッサ202と、メインメモリ204と、ストレージ210と、フィールドネットワークコントローラ208と、USBコントローラ220と、セーフティローカルバスコントローラ216とを含む。これらのコンポーネントは、プロセッサバス218を介して接続されている。
プロセッサ202は、主として、セーフティ制御に係る制御演算を実行する演算処理部に相当し、CPUやGPUなどで構成される。具体的には、プロセッサ202は、ストレージ210に格納されたプログラム(一例として、システムプログラム2102およびセーフティプログラム2104)を読み出して、メインメモリ204に展開して実行することで、必要なセーフティ機能250を提供するための制御演算、および、後述するような各種処理を実現する。
メインメモリ204は、DRAMやSRAMなどの揮発性記憶装置などで構成される。ストレージ210は、たとえば、SSDやHDDなどの不揮発性記憶装置などで構成される。
ストレージ210には、基本的な機能を実現するためのシステムプログラム2102に加えて、要求されるセーフティ機能250に応じて作成されたセーフティプログラム2104が格納される。さらに、ストレージ210には、変数などを設定するための設定情報2106が格納される。
フィールドネットワークコントローラ208は、フィールドネットワーク2を介して、標準コントローラ100およびセーフティドライバ300を含む任意のデバイスとの間でデータを遣り取りする。図3に示す制御システム1においては、セーフティコントローラ200のフィールドネットワークコントローラ208は、フィールドネットワーク2の通信スレーブとして機能する。
USBコントローラ220は、USB接続を介して、サポート装置500などの情報処理装置との間でデータを遣り取りする。
セーフティローカルバスコントローラ216は、セーフティローカルバスを介して、セーフティコントローラ200に接続される任意のセーフティユニットとの間でデータを遣り取りする。図3には、セーフティユニットの一例として、セーフティIOユニット230を示す。
セーフティIOユニット230は、任意のセーフティデバイス240との間で入出力信号を遣り取りする。より具体的には、セーフティIOユニット230は、セーフティセンサやセーフティスイッチなどのセーフティデバイス240からの入力信号を受付ける。あるいは、セーフティIOユニット230は、セーフティリレーなどのセーフティデバイス240へ指令を出力する。
図3には、プロセッサ202がプログラムを実行することで必要な機能が提供される構成例を示したが、これらの提供される機能の一部または全部を、専用のハードウェア回路(たとえば、ASICまたはFPGAなど)を用いて実装してもよい。あるいは、セーフティコントローラ200の主要部を、汎用的なアーキテクチャに従うハードウェア(たとえば、汎用パソコンをベースとした産業用パソコン)を用いて実現してもよい。
(b3:セーフティドライバ300およびサーボモータ400)
図4は、本実施の形態に係る制御システム1を構成するセーフティドライバ300およびサーボモータ400のハードウェア構成例を示す模式図である。図4を参照して、セーフティドライバ300は、フィールドネットワークコントローラ302と、制御部310と、ドライブ回路330と、フィードバック受信回路332とを含む。
フィールドネットワークコントローラ302は、フィールドネットワーク2を介して、標準コントローラ100およびセーフティコントローラ200を含む任意のデバイスとの間でデータを遣り取りする。図4に示す制御システム1においては、セーフティドライバ300のフィールドネットワークコントローラ302は、フィールドネットワーク2の通信スレーブとして機能する。
制御部310は、セーフティドライバ300を動作させるために必要な演算処理を実行する。一例として、制御部310は、プロセッサ312,314と、メインメモリ316と、ストレージ320とを含む。
プロセッサ312は、サーボモータ400を駆動するための制御演算を主として実行する演算処理部に相当する。プロセッサ314は、サーボモータ400に係るセーフティ機能250を提供するための制御演算を主として実行する演算処理部に相当する。プロセッサ312,314は、いずれもCPUなどで構成される。
メインメモリ316は、DRAMやSRAMなどの揮発性記憶装置などで構成される。ストレージ320は、たとえば、SSDやHDDなどの不揮発性記憶装置などで構成される。
ストレージ320には、後述するサーボ制御350を実現するためのサーボ制御プログラム3201と、後述するモーションセーフティ機能360を実現するためのモーションセーフティプログラム3202と、他のデバイスに公開される変数などを設定するための設定情報3203とが格納される。
図4には、2つのプロセッサ312,314がそれぞれ異なる目的の制御演算を実行することで信頼性を高める構成を例示するが、これに限らず、要求されるセーフティ機能250を実現できればどのような構成を採用してもよい。たとえば、単一のプロセッサに複数のコアが含まれるような場合には、プロセッサ312,314にそれぞれ対応する制御演算を実行するようにしてもよい。また、図4には、プロセッサ312,314がプログラムを実行することで必要な機能が提供される構成例を示したが、これらの提供される機能の一部または全部を、専用のハードウェア回路(たとえば、ASICまたはFPGAなど)を用いて実装してもよい。
ドライブ回路330は、コンバータ回路およびインバータ回路などを含み、制御部310からの指令に従って、指定された電圧・電流・位相の電力を生成して、サーボモータ400へ供給する。
フィードバック受信回路332は、サーボモータ400からのフィードバック信号を受信して、その受信結果を制御部310へ出力する。
サーボモータ400は、典型的には、三相交流モータ402および三相交流モータ402の回転軸に取付けられたエンコーダ404を含む。
三相交流モータ402は、セーフティドライバ300から供給される電力を受けて回転力を発生するアクチュエータである。図4には、一例として、三相交流モータを例示するが、これに限らず、直流モータであってもよいし、単相交流モータあるいは多相交流モータであってもよい。さらに、リニアサーボのような直線に沿って駆動力を発生するアクチュエータを採用してもよい。
エンコーダ404は、三相交流モータ402の回転数に応じたフィードバック信号(典型的には、回転数に応じた数のパルス信号)を出力する。
(b4:サポート装置500)
図5は、本実施の形態に係る制御システム1を構成するサポート装置500のハードウェア構成例を示す模式図である。サポート装置500は、一例として、汎用的なアーキテクチャに従うハードウェア(たとえば、汎用パソコン)を用いて実現される。
図5を参照して、サポート装置500は、プロセッサ502と、メインメモリ504と、入力部506と、出力部508と、ストレージ510と、光学ドライブ512と、USBコントローラ520とを含む。これらのコンポーネントは、プロセッサバス518を介して接続されている。
プロセッサ502は、CPUやGPUなどで構成され、ストレージ510に格納されたプログラム(一例として、OS5102およびサポートプログラム5104)を読み出して、メインメモリ504に展開して実行することで、後述するような各種処理を実現する。すなわち、プロセッサ502は、サポートプログラム5104を実行するコンピュータの機能を有する。
メインメモリ504は、DRAMやSRAMなどの揮発性記憶装置などで構成される。ストレージ510は、たとえば、HDDやSSDなどの不揮発性記憶装置などで構成される。
ストレージ510には、基本的な機能を実現するためのOS5102に加えて、サポート装置500としての機能を提供するためのサポートプログラム5104が格納される。すなわち、サポートプログラム5104は、制御システム1に接続されるコンピュータにより実行されることで、本実施の形態に係るサポート装置500を実現する。
さらに、ストレージ510には、サポートプログラム5104が実行されることで提供される開発環境においてユーザにより作成されるプロジェクトデータ5106が格納される。
本実施の形態において、サポート装置500は、制御システム1に含まれる各デバイスに対する設定および各デバイスで実行されるプログラムの作成が統合的に可能な開発環境を提供する。プロジェクトデータ5106は、このような統合的な開発環境によって生成されるデータを含む。典型的には、プロジェクトデータ5106は、標準制御ソースプログラム5108と、標準コントローラ設定情報5110と、セーフティソースプログラム5117と、セーフティコントローラ設定情報5114と、セーフティドライバ設定情報5116とを含む。
標準制御ソースプログラム5108は、オブジェクトコードに変換された上で、標準コントローラ100へ送信され、標準制御プログラム1104(図2参照)として格納される。同様に、標準コントローラ設定情報5110についても標準コントローラ100へ送信され、設定情報1106(図2参照)として格納される。
セーフティソースプログラム5117は、オブジェクトコードに変換された上で、セーフティコントローラ200へ送信され、セーフティプログラム2104(図3参照)として格納される。同様に、セーフティコントローラ設定情報5114についてもセーフティコントローラ200へ送信され、設定情報2106(図3参照)として格納される。
セーフティドライバ設定情報5116は、セーフティドライバ300へ送信され、設定情報3203(図4参照)として格納される。
さらに、ストレージ510には、サーボモータ400の動作に係る物理量の単位とセーフティドライバ300によるサーボモータ400に対する指令値の単位とを相互に変換するための変換用データ5105が格納される。このように、ストレージ510は、図1で示したデータ保持部5100の機能を有する。なお、変換用データ5105は、プロジェクトデータ5106に含まれてもよい。
入力部506は、キーボードやマウスなどで構成され、ユーザ操作を受付ける。出力部508は、ディスプレイ、各種インジケータ、プリンタなどで構成され、プロセッサ502からの処理結果などを出力する。
USBコントローラ520は、USB接続を介して、標準コントローラ100などとの間のデータを遣り取りする。
サポート装置500は、光学ドライブ512を有しており、コンピュータ読取可能なプログラムを非一過的に格納する記録媒体514(たとえば、DVD(Digital Versatile Disc)などの光学記録媒体)から、その中に格納されたプログラムが読取られてストレージ510などにインストールされる。
サポート装置500で実行されるサポートプログラム5104などは、コンピュータ読取可能な記録媒体514を介してインストールされてもよいが、ネットワーク上のサーバ装置などからダウンロードする形でインストールするようにしてもよい。また、本実施の形態に係るサポート装置500が提供する機能は、OSが提供するモジュールの一部を利用する形で実現される場合もある。
図5には、プロセッサ502がプログラムを実行することで、サポート装置500として必要な機能が提供される構成例を示したが、これらの提供される機能の一部または全部を、専用のハードウェア回路(たとえば、ASICまたはFPGAなど)を用いて実装してもよい。
なお、制御システム1が稼動中において、サポート装置500は、標準コントローラ100から取り外されていてもよい。
<C.制御システム1の機能分担>
次に、制御システム1における機能分担の一例について説明する。図6は、本実施の形態に係る制御システム1の機能分担の一例を示す模式図である。
図6を参照して、標準コントローラ100が実行する標準制御150に関して、セーフティドライバ300はサーボ制御350を実行する。標準制御150は、制御対象に予め設定されたユーザプログラムに従って、サーボモータ400を駆動するための指令を周期的に算出する処理を含む。また、サーボ制御350は、標準制御150により周期的に算出される指令に従ってサーボモータ400を駆動するための制御、および、サーボモータ400の動作状態を示す状態値を取得して出力する処理を含む。サーボ制御350は、セーフティドライバ300のプロセッサ312(図4参照)が担当する。
一方、セーフティコントローラ200が提供するセーフティ機能250に対応して、セーフティドライバ300はモーションセーフティ機能360を提供する。モーションセーフティ機能360は、セーフティドライバ300のプロセッサ314(図4参照)が担当する。
セーフティ機能250は、標準コントローラ100が実行する標準制御150が保持する状態値、セーフティデバイス240からの信号によって示される状態値、および、セーフティドライバ300が保持する状態値などに基づいて、予め定められた条件が成立すると、予め指定されているセーフティ機能250を有効化する。
予め指定されているセーフティ機能250を有効化する処理は、たとえば、セーフティドライバ300に対するセーフティ指令の出力、あるいは、セーフティデバイス240に対してセーフティ指令の出力(たとえば、特定の装置への電力供給に係るセーフティリレーを遮断する)などを含む。
セーフティドライバ300は、セーフティコントローラ200からのセーフティ指令に応答して、指定されたモーションセーフティ機能360を提供する。指定されたモーションセーフティ機能360の種類に応じて、サーボ制御350によるサーボモータ400の制御に介入して、サーボモータ400への電力供給を遮断する処理、あるいは、サーボ制御350によるサーボモータ400の制御の状態値が予め定められた制限範囲内に収まっているか否かを監視する処理などが実行される。なお、各セーフティドライバ300においては、実行可能なモーションセーフティ機能360が予め定められている。
図7は、本実施の形態に係る制御システム1のセーフティドライバ300によるセーフティ機能250に係る処理手順の一例を示すシーケンス図である。図7を参照して、標準コントローラ100の標準制御150により周期的に指令が算出されて、セーフティドライバ300(サーボ制御350)に出力される(シーケンスSQ2)。セーフティドライバ300のサーボ制御350は、標準制御150からの指令に従って、サーボモータ400を駆動する(シーケンスSQ4)。
あるタイミングにおいて、セーフティデバイス240(たとえば、セーフティセンサ)からのセーフティイベントが発生すると(シーケンスSQ6)、セーフティコントローラ200は、セーフティドライバ300(モーションセーフティ機能360)にセーフティ指令を出力する(シーケンスSQ8)。このセーフティ指令に応答して、セーフティドライバ300のモーションセーフティ機能360は、指定されたセーフティ機能250を有効化する(シーケンスSQ10)。
セーフティ機能250の有効化に応答して、標準コントローラ100の標準制御150からは、当該有効化されたセーフティ機能250に応じた指令が算出および出力されるようになる(シーケンスSQ12)。一方、セーフティドライバ300(モーションセーフティ機能360)は、サーボモータ400の動作状態が予め定められた制限範囲内に収まっているか否かを監視する。サーボモータ400の動作状態が予め定められた制限範囲内に収まっていないと判断されると、あるいは、予め定められた停止時間が到来すると、セーフティドライバ300(モーションセーフティ機能360)は、サーボモータ400への電力供給を遮断する(シーケンスSQ14)。
このように、セーフティドライバ300は、標準コントローラ100(標準制御150)からの指令に従ってサーボモータ400を駆動できるとともに、セーフティ機能250を有効化するための指令に応じて、セーフティコントローラ200(セーフティ機能250)に対するモーションセーフティ機能360を実現することができる。
<D.制御システム1のモーションセーフティ機能360>
次に、制御システム1が提供するモーションセーフティ機能360の一例について説明する。
図8は、本実施の形態に係る制御システム1が提供するモーションセーフティ機能360の一例を示す図である。図8には、SSM(Safe Speed Monitor)に対応するサーボモータ400の挙動の一例を示す。
図8を参照して、セーフティドライバ300による駆動によってワークがある速度V0で動作している状態において、時刻t1でセーフティ指令(SSM)が与えられると、セーフティドライバ300は、予め定められた速度Vsでワークを動作させる。さらに、セーフティドライバ300は、速度Vsでワークの動作を維持しつつ、予め定められた上限値V_u_limitと下限値V_l_limitとの間の制限範囲内でサーボモータ400の動作状態(すなわち、ワークの動作状態)が収まっているか否かを監視する。セーフティドライバ300は、サーボモータ400の動作状態が予め定められた制限範囲内に収まっていないと判断した場合、サーボモータ400への電力供給を遮断して、サーボモータ400で発生するトルクをゼロにする。
<E.サーボモータ400の制御に関する主な機能>
次に、制御システム1が提供するサーボモータ400の制御に関する主な機能の一例について説明する。
図9は、本実施の形態に係る制御システム1においてサーボモータ400の制御に関する主な機能の一例を示す図である。図9を参照して、標準コントローラ100は、標準制御150に係る設定時において、物理量の単位で設定値が入力される。標準コントローラ100は、変換用データ1105に基づき、標準制御プログラム1104に含まれる物理量の単位での値をサーボモータ400に対する指令値の単位での値に変換する変換部1110を有する。変換部1110は、図2に示したプロセッサ102などによって実現される。
セーフティドライバ300は、パルスカウント部3001と、比較部3002と、トルク調整部3003と、ドライブ回路330と、モーションセーフティ機能360とを有する。パルスカウント部3001、比較部3002、トルク調整部3003、およびモーションセーフティ機能360は、図4に示したプロセッサ312,314などによって実現される。
パルスカウント部3001は、サーボモータ400が有するモータの回転軸に結合されたエンコーダからの検出信号に基づき、モータの回転数に応じたパルスのカウント結果を比較部3002に出力する。なお、パルスカウント部3001から比較部3002に出力されるパルス数は、たとえば、モータの回転数に応じた単位時間当たりのパルス数である。
比較部3002は、パルスカウント部3001から取得したパルス数と、標準コントローラ100の変換部1110によって変換された設定値に対応するパルス数とを比較し、その比較結果をトルク調整部3003に出力する。
トルク調整部3003は、比較部3002から取得した比較結果に基づき、サーボモータ400の回転速度を調整するために、ドライブ回路に対してサーボモータ400に供給する電圧や電流などを生成するための指令値をドライブ回路330に出力する。
ドライブ回路330は、トルク調整部3003からの指令値に従って、指定された電圧や電流などを生成して、サーボモータ400へ供給する。
セーフティコントローラ200は、セーフティ機能250に係る設定時において、指令値の単位(たとえば、[pulse])で設定値が入力される。セーフティコントローラ200は、セーフティイベントが発生すると、予め指定されているセーフティ機能250を有効化することで、セーフティドライバ300に対してセーフティ指令を出力する。さらに、セーフティコントローラ200は、セーフティイベントが発生すると、予め指定されているセーフティ機能250を有効化することで、セーフティドライバ300のモーションセーフティ機能360によるサーボモータ400の回転速度の制限範囲(たとえば、図8に示す制限範囲)をパルス数で出力する。
セーフティドライバ300は、セーフティコントローラ200からのセーフティ指令に従って、予め定められた回転速度(たとえば、図8に示す速度Vs)となるようにドライブ回路330を制御し、さらに、セーフティコントローラ200から取得した制限範囲内でサーボモータ400の動作状態が収まっているか否かを監視する。
このように、本実施の形態に係る制御システム1においては、サーボモータ400の制御に関して、標準コントローラ100およびセーフティコントローラ200のそれぞれからパルス数によって指令が与えられる。ただし、ユーザは、標準コントローラ100が実行する標準制御150に係る設定においては、物理量の単位(たとえば、[mm])で設定値を入力することができるのに対して、セーフティコントローラ200が実行するセーフティ機能250に係る設定においては、指令値の単位(たとえば、[pulse])で設定値を入力するようになっている。
<F.単位変換設定のためのユーザインターフェイス550>
次に、サポート装置500が提供する単位変換設定のためのユーザインターフェイス550の一例について説明する。
図10は、本実施の形態に係るサポート装置500が提供する単位変換設定のためのユーザインターフェイス550の一例を示す図である。ユーザは、サポート装置500においてサポートプログラム5104を実行することで、図10に示すようなユーザインターフェイス550における画面を表示させることができる。
図10を参照して、サポート装置500の画面の左側には、各種設定を行うための複数のアイコンが表示されており、ユーザが単位変換設定アイコン551を選択すると、単位変換設定のためのユーザインターフェイス550が利用可能となる。
ユーザインターフェイス550における画面には、単位変換の対象となる単位を選択するための表示単位欄552と、サーボモータ400の駆動によって動作するワークの移動量を設定するための移動量欄553とが含まれる。
表示単位欄552には、「pulse」、「mm」、「μm」、「nm」、「degree」、および「inch」といった各単位を選択するためのラジオボタンが設けられている。なお、表示単位欄552において選択可能な単位には、これら以外のものが含まれていてもよい。
移動量欄553には、モータ1回転のパルス数を入力するためのパルス数欄554と、減速機の未使用を選択するための未使用選択ボタン555と、減速機の使用を選択するための使用選択ボタン556とが含まれる。
移動量欄553には、未使用選択ボタン555によって減速機の未使用を選択した場合に入力可能な欄として、モータ1回転の移動量を入力するための移動量欄555aが含まれる。一方、移動量欄553には、使用選択ボタン556によって減速機の使用を選択した場合に入力可能な欄として、ワーク側1回転の移動量を入力するための移動量欄556aと、ワーク側ギア比を入力するためのワーク側ギア比欄556bと、モータ側ギア比を入力するためのモータ側ギア比欄556cとが含まれる。さらに、移動量欄553には、使用選択ボタン556によって減速機の使用を選択した場合における単位変換式を示す単位変換式欄557が含まれる。
ユーザは、サポート装置500が提供する単位変換設定のためのユーザインターフェイス550を利用することで、サーボモータ400の動作に係る物理量の単位(たとえば、「mm」)とセーフティドライバ300によるサーボモータ400に対する指令値の単位(たとえば、「pulse」)との間の変換の内容を予め設定することができる。
たとえば、図10の例では、モータ1回転のパルス数として“1000”[pulse/rev]が設定されている。さらに、減速機の使用が選択された上で、ワーク側1回転の移動量として“10”[mm/rev]が設定され、ワーク側ギア比として“1”が設定され、モータ側ギア比として“10”が設定されている。これにより、単位変換式欄557で示された単位変換式で計算すれば、ワークの移動量が1[mm]のときに指令値として1000[pulse]に変換されることになる。
ユーザインターフェイス550を利用して生成された単位変換設定のデータは、変換用データ5105としてストレージ510に格納される一方で、サポート装置500から標準コントローラ100に転送される。標準コントローラ100は、取得した単位変換設定のデータを、変換用データ1105としてストレージ110に格納する。
このように、ユーザは、サポート装置500を用いて、物理量の単位と指令値の単位との間の変換の内容を自由に決めて、変換用データ1105を生成することができる。
<G.標準制御プログラム1104>
次に、サポート装置500が提供する標準制御プログラム1104の一例について説明する。
図11は、本実施の形態に係るサポート装置500が提供する標準制御プログラム1104の一例を示す図である。図11を参照して、標準制御プログラム1104は、所定の機能に対応する命令情報を規定する複数のファンクションブロックが組み合わされて構成されている。各ファンクションブロックは、サポート装置500を用いてユーザによって設定値が入力(指定)されることでプログラミングされる。
図11に示す標準制御プログラム1104においては、位置制御用のファンクションブロック1104aと、速度制御用のファンクションブロック1104bと、速度制御用のファンクションブロック1104cとが組み合わされている。
ファンクションブロック1104aにおいては、ユーザによって、入力側の「Position」に対して“300”が指定され、入力側の「Velocity」に対して“10”が指定されている。これにより、ファンクションブロック1104aにおいては、原点から正方向へ300[mm]の場所へ10[mm/sec]の速度で移動する旨の命令情報が規定される。
ファンクションブロック1104bにおいては、ユーザによって、入力側の「Velocity」に対して“20”が指定されている。これにより、ファンクションブロック1104bにおいては、原点から正方向へ20[mm/sec]の速度で移動する旨の命令情報が規定される。
ファンクションブロック1104cにおいては、ユーザによって、入力側の「Velocity」に対して“5”が指定されている。これにより、ファンクションブロック1104cにおいては、原点から正方向へ5[mm/sec]の速度で移動する旨の命令情報が規定される。
このような標準制御プログラム1104に含まれるファンクションブロック1104b,1104cで規定されたプログラムが標準コントローラ100によって実行されると、図8に示したようにサーボモータ400が動作する。具体的には、ファンクションブロック1104bの命令情報に基づき、サーボモータ400が原点から正方向へ20[mm/sec]の速度(速度V0)で動作している状態において、時刻t1でセーフティ指令(SSM)が与えられると、ファンクションブロック1104cの命令情報に基づき、サーボモータ400が原点から正方向へ5[mm/sec]の速度(速度Vs)で動作する。
このように、ユーザは、サポート装置500を用いて、命令情報が規定されたファンクションブロックに設定値を入力することで、標準制御プログラム1104を生成することができる。
<H.変換用ツール表示処理>
次に、サポート装置500が実行する変換用ツール表示処理について説明する。
図12は、本実施の形態に係るサポート装置500が実行する変換用ツール表示処理を説明するためのフローチャートである。図12を参照して、サポート装置500は、安全パラメータ設定画面が表示されているか否かを判定する(S2)。安全パラメータ設定画面は、詳しくは図15を参照しながら後述するが、セーフティプログラム2104の開発やセーフティ機能250に係る設定をするためのユーザインターフェイス900で提供される画面である。サポート装置500は、安全パラメータ設定画面が表示されていない場合(S2でNO)、本処理を終了する。
一方、サポート装置500は、安全パラメータ設定画面が表示されている場合(S2でYES)、セーフティドライバ300とサーボモータ400とが関連付けられているか否かを判定する(S4)。
サポート装置500は、セーフティドライバ300とサーボモータ400とが関連付けられていない場合(S4でNO)、変換用ツール905を非表示、および/または関連付けがない旨を通知する(S6)。変換用ツール905は、詳しくは図15を参照しながら後述するが、サーボモータ400の動作に係る物理量の単位(たとえば、[mm])とセーフティドライバ300によるサーボモータ400に対する指令値の単位(たとえば、[pulse])とを相互に変換するためにユーザによって利用されるツールである。
一方、サポート装置500は、セーフティドライバ300とサーボモータ400とが関連付けられている場合(S4でYES)、変換用ツール905を画面に表示し(S8)、本処理を終了する。
このように、セーフティドライバ300とサーボモータ400とが関連付けられていることを条件として、物理量の単位が指令値の単位に変換されるため、サポート装置500による変換の処理の効率化を図ることができる。
<I.変換結果表示処理>
次に、サポート装置500が実行する変換結果表示処理について説明する。
図13は、本実施の形態に係るサポート装置500が実行する変換結果表示処理を説明するためのフローチャートである。図13を参照して、サポート装置500は、変換用ツール905が表示されているか否かを判定する(S22)。サポート装置500は、変換用ツール905が表示されていない場合(S22でNO)、本処理を終了する。
一方、サポート装置500は、変換用ツール905が表示されている場合(S22でYES)、変換用ツール905に物理量が入力されたか否かを判定する(S24)。サポート装置500は、変換用ツール905に物理量が入力されていない場合(S24でNO)、本処理を終了する。
一方、サポート装置500は、変換用ツール905に物理量が入力されている場合(S24でYES)、変換用データ5105を取得する(S26)。次に、サポート装置500は、変換用データ5105に基づき、入力された物理量をパルス数に変換する(S28)。なお、セーフティドライバ300からサーボモータ400に対する指令値として速度情報を用いている場合、サポート装置500は、変換用データ5105に基づき、入力された物理量(たとえば、単位は[mm/sec])を速度情報(たとえば、単位は[r/min])に変換する。次に、サポート装置500は、変換結果を変換用ツール905に表示し(S30)、本処理を終了する。
<J.開発プログラムの切替のためのユーザインターフェイス800>
次に、サポート装置500が提供する開発プログラムの切替のためのユーザインターフェイス800の一例について説明する。
図14は、本実施の形態に係るサポート装置500が提供する標準制御コントローラ100側の開発からセーフティコントローラ200側の開発へと切り替えるためのユーザインターフェイス800の一例を示す図である。ユーザは、サポート装置500においてサポートプログラム5104を実行することで、図14に示すようなユーザインターフェイス800における画面を表示させることができる。
図14を参照して、サポート装置500の画面の左側には、マルチビューエクスプローラ欄801が設けられている。さらに、マルチビューエクスプローラ欄801には、開発対象となるプログラムを指定するための切替スイッチ811が含まれる。
ユーザは、切替スイッチ811を用いてドロップダウンされたリストの中から「new_Controller_0」を指定することで、標準コントローラ100側の開発をするための画面を表示させることができ、ドロップダウンされたリストの中から「new_SafetyCPU0」を指定することで、セーフティコントローラ200側の開発をするための画面を表示させることができる。
<K.セーフティコントローラ200側の開発のためのユーザインターフェイス900>
次に、サポート装置500が提供するセーフティコントローラ200側の開発をするためのユーザインターフェイス900の一例について説明する。
図15は、本実施の形態に係るサポート装置500が提供するセーフティコントローラ200側の開発をするためのユーザインターフェイス900の一例を示す図である。ユーザは、図14に示した開発プログラムの切替のためのユーザインターフェイス800において「new_SafetyCPU0」を指定することで、図15に示すように、セーフティコントローラ200側の開発をするための安全パラメータ設定画面を表示させることができる。
図15を参照して、サポート装置500の画面の左側には、マルチビューエクスプローラ欄901が設けられている。さらに、マルチビューエクスプローラ欄901には、開発対象となるプログラムを指定するための切替スイッチ911が含まれる。この例では、切替スイッチ911において、セーフティプログラム2104に対応する「new_SafetyCPU0」が指定されている。
また、マルチビューエクスプローラ欄901には、プログラミングに関して設定対象となる項目を指定するための切替スイッチ912が含まれる。切替スイッチ912によってドロップダウンされたリストの中には、プログラムを指定するための切替スイッチ913が含まれる。この例では、切替スイッチ913において、「Program0」が指定されている。
さらに、切替スイッチ912によってドロップダウンされたリストの中には、利用可能なファンクションブロックの一覧を表示するための切替スイッチ914が含まれる。この例では、「new_SafetyCPU0」が有する機能を実現するために利用可能なファンクションブロックとして、「OC_SF_SSM」、「OC_SF_SS1」、および「OC_SF_ResetSafe」が表示されている。
さらに、サポート装置500の画面の右側には、利用可能なセーフティプログラム2104におけるユーザ定義ファンクションブロックのうちからユーザが所望するユーザ定義ファンクションブロックを指定するための切替スイッチ903が設けられている。この例では、切替スイッチ903において、「OC_SF_SSM」が指定されている。
ユーザが切替スイッチ903において、設定値の入力対象として「OC_SF_SSM」のファンクションブロックを指定すると、サポート装置500の画面の中央にセーフティプログラム2104を開発するためのプログラム画面902が表示される。
この例では、図8に示したような、モーションセーフティ機能360としてSSMを実現するためのファンクションブロックが表示されている。ユーザは、セーフティ指令が与えられた後(図8のt1以降)の制限範囲として、「S_U_Limit」と示された入力端子921に対して上限値を入力し、「S_L_Limit」と示された入力端子922に対して下限値を入力することができる。
ここで、本実施の形態においては、ユーザは、入力端子921に対する上限値および入力端子922に対する下限値として、指令値の単位([pulse])で入力しなければならない。しかし、指令値の単位([pulse])は、サーボモータ400の駆動によって動作するワークの動作に係る単位、すなわち物理量の単位([mm])よりも、直感的に理解し難い。そこで、セーフティコントローラ200側の開発をするためのユーザインターフェイス900においては、マルチビューエクスプローラ欄901において変換用ツール905が表示される。
変換用ツール905は、物理量の単位と指令値の単位との間で相互に単位変換し、その変換結果を表示する。具体的には、変換用ツール905には、ワークの移動量の単位、すなわち物理量の単位([mm])で値を入力するための移動量単位欄951と、サーボモータ400に対する指令値の単位([pulse])で値を入力するためのパルス単位欄952とが含まれる。ユーザが直感的に理解し易い物理量の単位で移動量単位欄951に値を入力すれば、その入力値が直感的に理解し難い指令値に変換され、その変換結果がパルス単位欄952に表示される。
このように、セーフティプログラム2104の開発時において、物理量の単位での値が指令値の単位での値に変換された結果が表示される。これにより、ユーザは、その表示された変換結果を参照しながら、容易に指令値の単位で設定値を入力することができるため、ユーザのプログラミングにおける利便性を向上させることができる。たとえば、この例では、移動量単位欄951にワークの移動量として“6”[mm]が入力されており、その変換結果としてパルス単位欄952に“6000”[pulse]の指令値が出力されている。ユーザは、このような変換用ツール905を用いて、直感的に理解し易いワークの移動量を直感的に理解し難い指令値に変換し、その変換結果を参照しながら、入力端子921および入力端子922に設定値を入力することができるため、ユーザのプログラミングにおける利便性を向上させることができる。
なお、図15の例では、変換用ツール905において、物理量の単位として[mm]、指令値の単位として[pulse]を例示したが、これは、図10に示したユーザインターフェイス550においてユーザによって行われた単位変換設定に依存する。たとえば、単位変換設定において、表示単位欄552で「μm」が指定された場合、変換用ツール905においては、物理量の単位として「μm」が指令値の単位として[pulse]に変換される。また、たとえば、単位変換設定において、ワークの移動量が1[μm]のときに指令値として1000000[pulse]に変換されるようにユーザによって設定された場合、変換用ツール905においては、“6”[μm]が入力されたときに、その変換結果としてパルス単位欄952に“6000000”[pulse]の指令値が出力される。
以上のように、サポート装置500を用いたユーザによるセーフティ機能250に係る設定時において、変換用データ5105に基づき、物理量の単位が指令値の単位に変換される。これにより、セーフティ機能250に係る設定時において、ユーザが物理量の単位で設定値を扱ったとしても、当該物理量の単位での設定値が指令値の単位での設定値に変換されるため、開発におけるユーザの利便性を向上させることができる。
<L.変形例>
上述した実施例においては、セーフティ機能250に係る設定時において、ユーザがファンクションブロックに対して指令値の単位([pulse])で値を入力する必要があったが、ユーザがファンクションブロックに対して物理量の単位([mm])で値を入力することができてもよい。このような変形例について、図16および図17を参照しながら説明する。
図16は、変形例に係るサポート装置500aが実行する変換処理を説明するためのフローチャートである。図16を参照して、サポート装置500aは、安全パラメータ設定画面(図15に示す画面)が表示されているか否かを判定する(S102)。サポート装置500aは、安全パラメータ設定画面が表示されていない場合(S2でNO)、本処理を終了する。
一方、サポート装置500aは、安全パラメータ設定画面が表示されている場合(S102でYES)、ファンクションブロックに物理量が入力されたか否かを判定する(S104)。サポート装置500aは、ファンクションブロックに物理量が入力されていない場合(S104でNO)、本処理を終了する。
一方、サポート装置500aは、ファンクションブロックに物理量が入力されている場合(S104でYES)、セーフティドライバ300とサーボモータ400とが関連付けられているか否かを判定する(S106)。サポート装置500aは、セーフティドライバ300とサーボモータ400とが関連付けられていない場合(S106でNO)、関連付けがない旨を通知する(S108)。
一方、サポート装置500aは、セーフティドライバ300とサーボモータ400とが関連付けられている場合(S106でYES)、変換用データ5105を取得する(S110)。次に、サポート装置500aは、変換用データ5105に基づき、入力された物理量をパルス数に変換する(S112)。なお、セーフティドライバ300からサーボモータ400に対する指令値として速度情報を用いている場合、サポート装置500aは、変換用データ5105に基づき、入力された物理量(たとえば、単位は[mm/sec])を速度情報(たとえば、単位は[r/min])に変換する。次に、サポート装置500aは、変換結果をファンクションブロックの設定値とし(S114)、本処理を終了する。
このように、ユーザがファンクションブロックに物理量の単位で設定値を入力した場合であっても、当該物理量の単位が指令値の単位に自動的に変換された上で、その変換後の値が設定値として設定されるため、ユーザの利便性を向上させることができる。
このように、セーフティドライバ300とサーボモータ400とが関連付けられていることを条件として、物理量の単位が指令値の単位に変換されるため、サポート装置500による変換の処理の効率化を図ることができる。
図17は、変形例に係るサポート装置500aが提供するセーフティコントローラ200側の開発をするためのユーザインターフェイス900aの一例を示す図である。なお、図17においては、図15と異なる部分のみ説明する。
図17を参照して、サポート装置500aの画面の左側に配置されたマルチビューエクスプローラ欄901aにおいては、図15で示したような変換用ツール905が表示されていない。その代わり、ユーザは、サポート装置500aの画面の中央に配置されたプログラム画面902aにおいて、ファンクションブロックの入力端子921aおよび入力端子922aに対して物理量の単位([mm])で設定値を入力できるようになっている。そして、入力端子921aおよび入力端子922aに対して入力された設定値は、図16に示したサポート装置500aの変換処理によって、自動的に指令値の単位([pulse])に変換されて、セーフティプログラム2104が生成される。
このように、セーフティ機能250に係る設定時において、ユーザが物理量の単位で設定値を入力した場合であっても、入力された当該設定値が指令値の単位での設定値に変換されてセーフティ機能250に係る設定の設定値となる。これにより、ユーザは、直感的に理解し易い物理量の単位で設定値を入力することができるため、ユーザのプログラミングにおける利便性を向上させることができる。
<M.付記>
以上のように、本実施の形態では以下のような開示を含む。
[構成1]
制御システム(1)であって、
モータ(400)を制御する標準コントローラ(100)と、
前記制御システムにおける安全を管理するセーフティコントローラ(200)と、
前記標準コントローラからの指令に従って前記モータを動作させる一方で、前記セーフティコントローラからの指令に従って所定のセーフティ機能(250)を実行するセーフティドライバ(300)と、
前記標準コントローラで実行される標準制御(150)に係る設定、および前記セーフティコントローラで実行される前記セーフティ機能に係る設定を支援するサポート装置(500)とを備え、
前記サポート装置は、
前記標準制御に係る設定時において、前記モータの動作に係る物理量の単位で当該標準制御に係る設定における設定値の入力を受け付ける受付部(5111)と、
前記モータの動作に係る物理量の単位と前記セーフティドライバによる前記モータに対する指令値の単位とを相互に変換するための変換用データ(5105)を保持するデータ保持部(5100)と、
前記セーフティ機能に係る設定時において、前記変換用データに基づき、前記物理量の単位を前記指令値の単位に変換する変換部(5211)とを含む、制御システム(1)。
[構成2]
前記サポート装置は、前記セーフティ機能に係る設定時において、前記物理量の単位で入力された値を前記変換部によって変換するとともに、当該変換部による変換結果を表示するユーザインターフェイス(900)を提供する、構成1の制御システム。
[構成3]
前記サポート装置は、前記セーフティ機能に係る設定時において、前記物理量の単位で当該セーフティ機能に係る設定における設定値の入力を受け付けた場合、入力された当該設定値を前記変換部によって変換するとともに、当該変換部による変換結果を当該セーフティ機能に係る設定の設定値とするユーザインターフェイス(900a)を提供する、構成1または構成2の制御システム。
[構成4]
前記サポート装置は、前記変換用データを生成するための値の入力を受け付けるユーザインターフェイス(550)を提供する、構成1〜構成3のいずれかの制御システム。
[構成5]
前記変換部は、前記セーフティドライバと前記モータとが関連付けられていることを条件として、前記物理量の単位を前記指令値の単位に変換する、構成1〜構成4のいずれかの制御システム。
[構成6]
モータ(400)を制御する標準コントローラ(100)で実行される標準制御(150)に係る設定、および制御システム(1)における安全を管理するセーフティコントローラ(200)で実行される所定のセーフティ機能(250)に係る設定を支援するサポート装置(500)であって、
前記制御システムには、前記標準コントローラからの指令に従って前記モータを動作させる一方で、前記セーフティコントローラからの指令に従って所定のセーフティ機能(250)を実行するセーフティドライバ(300)が含まれ、
前記サポート装置は、
前記標準制御に係る設定時において、前記モータの動作に係る物理量の単位で当該標準制御に係る設定における設定値の入力を受け付ける受付部(5111)と、
前記モータの動作に係る物理量の単位と前記セーフティドライバによる前記モータに対する指令値の単位とを相互に変換するための変換用データ(5105)を保持するデータ保持部(5100)と、
前記セーフティ機能に係る設定時において、前記変換用データに基づき、前記物理量の単位を前記指令値の単位に変換する変換部(5211)とを備える、サポート装置(500)。
[構成7]
モータ(400)を制御する標準コントローラ(100)で実行される標準制御(150)に係る設定、および制御システム(1)における安全を管理するセーフティコントローラ(200)で実行される所定のセーフティ機能(250)に係る設定を支援するサポートプログラム(5104)であって、
前記制御システムには、前記標準コントローラからの指令に従って前記モータを動作させる一方で、前記セーフティコントローラからの指令に従って所定のセーフティ機能(250)を実行するセーフティドライバ(300)が含まれ、
前記サポートプログラムは、コンピュータ(502)に、
前記標準制御に係る設定時において、前記モータの動作に係る物理量の単位で当該標準制御に係る設定における設定値の入力を受け付けるステップと、
前記セーフティ機能に係る設定時において、前記モータの動作に係る物理量の単位と前記セーフティドライバによる前記モータに対する指令値の単位とを相互に変換するための変換用データ(5105)に基づき、前記物理量の単位を前記指令値の単位に変換するステップとを実行させる、サポートプログラム(5104)。
<N.利点>
本実施の形態に係る制御システム1によれば、サポート装置500を用いたユーザによるセーフティ機能250に係る設定時において、変換用データ5105に基づき、物理量の単位が指令値の単位に変換される。これにより、セーフティ機能250に係る設定時において、ユーザが物理量の単位で設定値を扱ったとしても、当該物理量の単位での設定値が指令値の単位での設定値に変換されるため、開発におけるユーザの利便性を向上させることができる。
今回開示された実施の形態はすべての点で例示であって制限的なものではないと考えられるべきである。本発明の範囲は、上記した説明ではなく、特許請求の範囲によって示され、特許請求の範囲と均等の意味および範囲内でのすべての変更が含まれることが意図される。