(57)【要約】【課題】開発におけるユーザの利便性を向上させる制御システムを提供する。【解決手段】サポート装置５００は、標準制御（１５０）に係る設定時において、サーボモータ４００の動作に係る物理量の単位で当該標準制御に係る設定における設定値の入力を受け付ける受付部５１１１と、サーボモータ４００の動作に係る物理量の単位とセーフティドライバ３００によるサーボモータ４００に対する指令値の単位とを相互に変換するための変換用データ５１０５を保持するデータ保持部５１００と、セーフティ機能２５０に係る設定時において、変換用データ５１０５に基づき、物理量の単位を指令値の単位に変換する変換部５２１１とを含む。【選択図】図１
2020057151.tif 000002
【特許請求の範囲】
【請求項１】
制御システムであって、
モータを制御する標準コントローラと、
前記制御システムにおける安全を管理するセーフティコントローラと、
前記標準コントローラからの指令に従って前記モータを動作させる一方で、前記セーフティコントローラからの指令に従って所定のセーフティ機能を実行するセーフティドライバと、
前記標準コントローラで実行される標準制御に係る設定、および前記セーフティコントローラで実行される前記セーフティ機能に係る設定を支援するサポート装置とを備え、
前記サポート装置は、
前記標準制御に係る設定時において、前記モータの動作に係る物理量の単位で当該標準制御に係る設定における設定値の入力を受け付ける受付部と、
前記モータの動作に係る物理量の単位と前記セーフティドライバによる前記モータに対する指令値の単位とを相互に変換するための変換用データを保持するデータ保持部と、
前記セーフティ機能に係る設定時において、前記変換用データに基づき、前記物理量の単位を前記指令値の単位に変換する変換部とを含む、制御システム。
【請求項２】
前記サポート装置は、前記セーフティ機能に係る設定時において、前記物理量の単位で入力された値を前記変換部によって変換するとともに、当該変換部による変換結果を表示するユーザインターフェイスを提供する、請求項１に記載の制御システム。
【請求項３】
前記サポート装置は、前記セーフティ機能に係る設定時において、前記物理量の単位で当該セーフティ機能に係る設定における設定値の入力を受け付けた場合、入力された当該設定値を前記変換部によって変換するとともに、当該変換部による変換結果を当該セーフティ機能に係る設定の設定値とするユーザインターフェイスを提供する、請求項１または請求項２に記載の制御システム。
【請求項４】
前記サポート装置は、前記変換用データを生成するための値の入力を受け付けるユーザインターフェイスを提供する、請求項１〜請求項３のいずれか１項に記載の制御システム。
【請求項５】
前記変換部は、前記セーフティドライバと前記モータとが関連付けられていることを条件として、前記物理量の単位を前記指令値の単位に変換する、請求項１〜請求項４のいずれか１項に記載の制御システム。
【請求項６】
モータを制御する標準コントローラで実行される標準制御に係る設定、および制御システムにおける安全を管理するセーフティコントローラで実行される所定のセーフティ機能に係る設定を支援するサポート装置であって、
前記制御システムには、前記標準コントローラからの指令に従って前記モータを動作させる一方で、前記セーフティコントローラからの指令に従って所定のセーフティ機能を実行するセーフティドライバが含まれ、
前記サポート装置は、
前記標準制御に係る設定時において、前記モータの動作に係る物理量の単位で当該標準制御に係る設定における設定値の入力を受け付ける受付部と、
前記モータの動作に係る物理量の単位と前記セーフティドライバによる前記モータに対する指令値の単位とを相互に変換するための変換用データを保持するデータ保持部と、
前記セーフティ機能に係る設定時において、前記変換用データに基づき、前記物理量の単位を前記指令値の単位に変換する変換部とを備える、サポート装置。
【請求項７】
モータを制御する標準コントローラで実行される標準制御に係る設定、および制御システムにおける安全を管理するセーフティコントローラで実行される所定のセーフティ機能に係る設定を支援するサポートプログラムであって、
前記制御システムには、前記標準コントローラからの指令に従って前記モータを動作させる一方で、前記セーフティコントローラからの指令に従って所定のセーフティ機能を実行するセーフティドライバが含まれ、
前記サポートプログラムは、コンピュータに、
前記標準制御に係る設定時において、前記モータの動作に係る物理量の単位で当該標準制御に係る設定における設定値の入力を受け付けるステップと、
前記セーフティ機能に係る設定時において、前記モータの動作に係る物理量の単位と前記セーフティドライバによる前記モータに対する指令値の単位とを相互に変換するための変換用データに基づき、前記物理量の単位を前記指令値の単位に変換するステップとを実行させる、サポートプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、制御システム、ならびに、制御システムに用いられるサポート装置およびサポートプログラムに関する。
【背景技術】
【０００２】
近年、様々な生産現場において、生産工程を自動化するＦＡ（Factory  Automation）システムのような制御システムが普及している。制御システムにおいては、製造装置や製造設備などのＦＡ機器が、ＰＬＣ（Programmable Logic Controller）やロボットコントローラなどの産業用のコントローラによって制御される。
【０００３】
このような制御システムとして、モータを動作させるドライバがコントローラに接続され、コントローラからの指令に従ってドライバがモータに対して指令値を送信することでモータを動作させるように構成されたものがある。
【０００４】
たとえば、特開２０１７−１５１９３７号公報（特許文献１）においては、コントローラからの指令に従ってサーボドライバがモータに対して指令値としてパルス数を通知することでモータを動作させるように構成された制御システムが開示されている。
【先行技術文献】
【特許文献】
【０００５】
【特許文献１】特開２０１７−１５１９３７号公報
【発明の概要】
【発明が解決しようとする課題】
【０００６】
特許文献１に開示された制御システムにおいては、コントローラは、ユーザによって入力された設定値を用いて、モータの制御を実現するようになっているが、このコントローラにおいては、ユーザによって入力された設定値をサーボドライバが扱うパルス数の単位に変換した上でサーボドライバに対して指令値を与えている。これは、開発時においては、ユーザが直感的に理解し易いように、モータの動作に係る物理量の単位で設定値を入力するように構成されているのに対して、サーボドライバは指令値（たとえば、［ｐｕｌｓｅ］）の単位でモータに指令値を与える必要があるためである。
【０００７】
ところで、多くの生産現場において、設備や機械を安全に使用するために、セーフティシステムの導入が進みつつある。セーフティシステムは、国際規格に従うセーフティ機能を提供するためのものであり、セーフティコントローラからの指令に従って、モータの挙動が監視される。このようなセーフティコントローラにおいても、開発時においてユーザによって設定値が入力される。セーフティコントローラ側の開発においては、所与の観点から、物理量の単位ではなく指令値の単位で設定値が取り扱われる。しかしながら、指令値の単位での値は、物理量の単位での値とは異なり、ユーザにとって直感的に理解し難いため、開発におけるユーザの利便性が乏しかった。
【０００８】
本発明は、上述したような課題を解決することを一つの目的とし、開発におけるユーザの利便性を向上させる制御システムを提供する。
【課題を解決するための手段】
【０００９】
本開示の一例に従えば、制御システムが提供される。制御システムは、モータを制御する標準コントローラと、制御システムにおける安全を管理するセーフティコントローラと、標準コントローラからの指令に従ってモータを動作させる一方で、セーフティコントローラからの指令に従って所定のセーフティ機能を実行するセーフティドライバと、標準コントローラで実行される標準制御に係る設定、およびセーフティコントローラで実行されるセーフティ機能に係る設定を支援するサポート装置とを備える。サポート装置は、標準制御に係る設定時において、モータの動作に係る物理量の単位で当該標準制御に係る設定における設定値の入力を受け付ける受付部と、モータの動作に係る物理量の単位とセーフティドライバによるモータに対する指令値の単位とを相互に変換するための変換用データを保持するデータ保持部と、セーフティ機能に係る設定時において、変換用データに基づき、物理量の単位を指令値の単位に変換する変換部とを含む。
【００１０】
この開示によれば、サポート装置を用いたユーザによるセーフティ機能に係る設定時において、変換用データに基づき、物理量の単位が指令値の単位に変換される。これにより、セーフティ機能に係る設定時において、ユーザが物理量の単位で設定値を扱ったとしても、当該物理量の単位での設定値が指令値の単位での設定値に変換されるため、開発におけるユーザの利便性を向上させることができる。
【００１１】
上述の開示において、サポート装置は、セーフティ機能に係る設定時において、物理量の単位で入力された値を変換部によって変換するとともに、当該変換部による変換結果を表示するユーザインターフェイスを提供する。
【００１２】
この開示によれば、セーフティ機能に係る設定時において、物理量の単位での値が指令値の単位での値に変換された結果が表示される。これにより、ユーザは、その表示された変換結果を参照しながら、容易に指令値の単位で設定値を入力することができるため、開発におけるユーザの利便性を向上させることができる。
【００１３】
上述の開示において、サポート装置は、セーフティ機能に係る設定時において、物理量の単位で当該セーフティ機能に係る設定における設定値の入力を受け付けた場合、入力された当該設定値を変換部によって変換するとともに、当該変換部による変換結果を当該セーフティ機能に係る設定の設定値とするユーザインターフェイスを提供する。
【００１４】
この開示によれば、セーフティ機能に係る設定時において、ユーザが物理量の単位で設定値を入力した場合であっても、入力された当該設定値が指令値の単位での設定値に変換されてセーフティ機能に係る設定の設定値となる。これにより、ユーザは、直感的に理解し易い物理量の単位で設定値を入力することができるため、開発におけるユーザの利便性を向上させることができる。
【００１５】
上述の開示において、サポート装置は、変換用データを生成するための値の入力を受け付けるユーザインターフェイスを提供する。
【００１６】
この開示によれば、ユーザは、物理量の単位と指令値の単位とを相互に変換する際における変換の内容を適宜決めて、変換用データを生成することができる。
【００１７】
上述の開示において、変換部は、セーフティドライバとモータとが関連付けられていることを条件として、物理量の単位を指令値の単位に変換する。
【００１８】
この開示によれば、セーフティドライバとモータとが関連付けられていることを条件として、物理量の単位が指令値の単位に変換されるため、サポート装置による変換の処理の効率化を図ることができる。
【００１９】
本開示の別の一例に従えば、モータを制御する標準コントローラで実行される標準制御に係る設定、および制御システムにおける安全を管理するセーフティコントローラで実行される所定のセーフティ機能に係る設定を支援するサポート装置が提供される。制御システムには、標準コントローラからの指令に従ってモータを動作させる一方で、セーフティコントローラからの指令に従って所定のセーフティ機能を実行するセーフティドライバが含まれる。サポート装置は、標準制御に係る設定時において、モータの動作に係る物理量の単位で当該標準制御に係る設定における設定値の入力を受け付ける受付部と、モータの動作に係る物理量の単位とセーフティドライバによるモータに対する指令値の単位とを相互に変換するための変換用データを保持するデータ保持部と、セーフティ機能に係る設定時において、変換用データに基づき、物理量の単位を指令値の単位に変換する変換部とを備える。
【００２０】
この開示によれば、サポート装置を用いたユーザによるセーフティ機能に係る設定時において、変換用データに基づき、物理量の単位が指令値の単位に変換される。これにより、セーフティ機能に係る設定時において、ユーザが物理量の単位で設定値を扱ったとしても、当該物理量の単位での設定値が指令値の単位での設定値に変換されるため、開発におけるユーザの利便性を向上させることができる。
【００２１】
本開示の別の一例に従えば、モータを制御する標準コントローラで実行される標準制御に係る設定、および制御システムにおける安全を管理するセーフティコントローラで実行される所定のセーフティ機能に係る設定を支援するサポートプログラムが提供される。制御システムには、標準コントローラからの指令に従ってモータを動作させる一方で、セーフティコントローラからの指令に従って所定のセーフティ機能を実行するセーフティドライバが含まれる。サポートプログラムは、コンピュータに、標準制御に係る設定時において、モータの動作に係る物理量の単位で当該標準制御に係る設定における設定値の入力を受け付けるステップと、セーフティ機能に係る設定時において、モータの動作に係る物理量の単位とセーフティドライバによるモータに対する指令値の単位とを相互に変換するための変換用データに基づき、物理量の単位を指令値の単位に変換するステップとを実行させる。
【００２２】
この開示によれば、サポート装置を用いたユーザによるセーフティ機能に係る設定時において、変換用データに基づき、物理量の単位が指令値の単位に変換される。これにより、セーフティ機能に係る設定時において、ユーザが物理量の単位で設定値を扱ったとしても、当該物理量の単位での設定値が指令値の単位での設定値に変換されるため、開発におけるユーザの利便性を向上させることができる。
【図面の簡単な説明】
【００２３】
【図１】本実施の形態に係る制御システムの適用例を示す模式図である。
【図２】本実施の形態に係る制御システムを構成する標準コントローラのハードウェア構成例を示す模式図である。
【図３】本実施の形態に係る制御システムを構成するセーフティコントローラのハードウェア構成例を示す模式図である。
【図４】本実施の形態に係る制御システムを構成するセーフティドライバおよびサーボモータのハードウェア構成例を示す模式図である。
【図５】本実施の形態に係る制御システムを構成するサポート装置のハードウェア構成例を示す模式図である。
【図６】本実施の形態に係る制御システムの機能分担の一例を示す模式図である。
【図７】本実施の形態に係る制御システムのセーフティドライバによるセーフティ機能に係る処理手順の一例を示すシーケンス図である。
【図８】本実施の形態に係る制御システムが提供するモーションセーフティ機能の一例を示す図である。
【図９】本実施の形態に係る制御システムにおいてサーボモータの制御に関する主な機能の一例を示す図である。
【図１０】本実施の形態に係るサポート装置が提供する単位変換設定のためのユーザインターフェイスの一例を示す図である。
【図１１】本実施の形態に係るサポート装置が提供する標準制御プログラムの一例を示す図である。
【図１２】本実施の形態に係るサポート装置が実行する変換用ツール表示処理を説明するためのフローチャートである。
【図１３】本実施の形態に係るサポート装置が実行する変換結果表示処理を説明するためのフローチャートである。
【図１４】本実施の形態に係るサポート装置が提供する標準制御コントローラ側の開発からセーフティコントローラ側の開発へと切り替えるためのユーザインターフェイスの一例を示す図である。
【図１５】本実施の形態に係るサポート装置が提供するセーフティコントローラ側の開発をするためのユーザインターフェイスの一例を示す図である。
【図１６】変形例に係るサポート装置が実行する変換処理を説明するためのフローチャートである。
【図１７】変形例に係るサポート装置が提供するセーフティコントローラ側の開発をするためのユーザインターフェイスの一例を示す図である。
【発明を実施するための形態】
【００２４】
本発明の実施の形態について、図面を参照しながら詳細に説明する。なお、図中の同一または相当部分については、同一符号を付してその説明は繰返さない。
【００２５】
＜Ａ．適用例＞
まず、本発明が適用される場面の一例について説明する。
【００２６】
図１は、本実施の形態に係る制御システム１の適用例を示す模式図である。本実施の形態に係る制御システム１は、たとえば、ＩＥＣ  ６１５０８などに規定されたセーフティ機能に加えて、非特許文献（"IEC 61800-5-2:2016 Adjustable speed electrical power drive systems - Part 5-2: Safety requirements - Functional", International Electrotechnical Commission, 2016-04-18）に規定された、ＳＴＯ（Safe Torque Off）、ＳＳ１（Safe Stop 1）、ＳＳ２（Safe Stop 2）、ＳＯＳ（Safe Operating Stop）、ＳＢＣ（Safe Brake Control）などの、ドライブ装置に関連するいくつかのセーフティ機能を提供する。
【００２７】
図１を参照して、制御システム１は、主として、標準コントローラ１００、ならびに、標準コントローラ１００とフィールドネットワーク２を介して接続されるセーフティコントローラ２００、および１または複数のセーフティドライバ（セーフティサーボドライバ）３００を含む。セーフティドライバ３００の各々は、電気的に接続されたサーボモータ４００を駆動する。なお、サーボモータ４００に限らず、任意の種類のモータを採用できる。
【００２８】
標準コントローラ１００は、標準制御プログラム１１０４に従って、サーボモータ４００を含む制御対象に対する標準制御１５０を実行する。典型的には、標準コントローラ１００は、１または複数のセンサ（図示していない）などからの入力信号に応じた制御演算をサイクリック実行することで、サーボモータ４００などのアクチュエータに対する指令を周期的に算出する。標準制御プログラム１１０４は、標準コントローラ１００と通信可能に接続されたサポート装置５００が提供する開発環境を利用して、ユーザによって予め作成され、標準コントローラ１００に転送される。
【００２９】
セーフティコントローラ２００は、セーフティプログラム２１０４に従って、セーフティドライバ３００に対してセーフティ機能２５０の動作に係るセーフティ指令を送信する。より具体的には、セーフティコントローラ２００は、標準コントローラ１００とは独立して、制御対象に対するセーフティ機能２５０を実現するための監視および制御演算をサイクリック実行する。これにより、セーフティコントローラ２００は、制御システム１における安全を管理する。
【００３０】
セーフティコントローラ２００は、任意のセーフティデバイス２４０からの入力信号の受付、および／または、任意のセーフティデバイス２４０への指令の出力が可能になっている。セーフティプログラム２１０４は、セーフティコントローラ２００と通信可能に接続されたサポート装置５００が提供する開発環境を利用して、ユーザによって予め作成され、セーフティコントローラ２００に転送される。
【００３１】
セーフティドライバ３００は、標準コントローラ１００からの指令に従って、サーボモータ４００に電力を供給することで、サーボモータ４００を駆動する。セーフティドライバ３００は、サーボモータ４００からのフィードバック信号などに基づいて、サーボモータ４００の回転位置、回転速度、回転加速度および発生するトルクなどを周期的に算出する。
【００３２】
さらに、セーフティドライバ３００は、セーフティコントローラ２００からの指令に従って、サーボモータ４００の駆動に関する所定のセーフティ機能２５０を実行する。より具体的には、セーフティドライバ３００は、セーフティ機能２５０に必要な状態情報をセーフティコントローラ２００へ提供するとともに、要求されるセーフティ機能２５０に応じて、サーボモータ４００に供給する電力を調整または遮断する。
【００３３】
サーボモータ４００は、セーフティドライバ３００からの電力を受けて回転するモータ（後述する三相交流モータ４０２）を有するとともに、モータの回転軸に結合されたエンコーダ４０４からの検出信号をフィードバック信号としてセーフティドライバ３００へ出力する。
【００３４】
サポート装置５００は、標準コントローラ１００側の開発およびセーフティコントローラ２００側の開発を支援する。より特定的には、サポート装置５００は、標準コントローラ１００側の開発として、標準コントローラ１００で実行される標準制御プログラム１１０４の開発や後述する標準制御１５０に係る設定などを支援する。さらに、サポート装置５００は、セーフティコントローラ２００側の開発として、セーフティコントローラ２００で実行されるセーフティプログラム２１０４の開発や後述するセーフティ機能２５０に係る設定などを支援する。サポート装置５００は、少なくとも１つ以上の命令情報を組み合わせることでプログラムを生成するための開発環境（プログラム作成編集ツール、パーサ、コンパイラなど）をユーザに提供する。
【００３５】
本実施の形態においては、命令情報がファンクションブロックとして規定されており、標準制御プログラム１１０４やセーフティプログラム２１０４を生成するための各種ファンクションブロック（ユーザ定義ファンクションブロック）がサポート装置５００にインポートされる。ユーザは、サポート装置５００にインポートされたファンクションブロックに対して設定値を入力することができ、設定値を入力したファンクションブロック（命令情報）を組み合わせることで、標準制御プログラム１１０４やセーフティプログラム２１０４に係るプログラミングが可能である。
【００３６】
セーフティプログラム２１０４におけるファンクションブロックは、セーフティコントローラ２００に関連付けられたセーフティドライバ３００が有する機能に対応している。具体的には、ユーザは、セーフティコントローラ２００に対して、少なくとも１以上のセーフティドライバ３００を通信可能に接続させることが可能であり、各セーフティドライバ３００は、実行可能なセーフティ機能２５０が予め定められている。そして、各セーフティ機能２５０に対応するように、ファンクションブロック（命令情報）が予め設けられている。セーフティコントローラ２００に対して少なくとも１以上のセーフティドライバ３００が接続されると、接続されたセーフティドライバ３００が有するセーフティ機能２５０に対応するファンクションブロックが、サポート装置５００にインポートされ、ユーザによって利用可能とされる。
【００３７】
サポート装置５００は、標準制御１５０に係る設定時において、サーボモータ４００の動作に係る物理量の単位で設定値の入力（たとえば、標準制御プログラム１１０４に係るファンクションブロックに対する設定値の入力）を受け付ける受付部５１１１を有する。
【００３８】
本明細書において、「物理量の単位」は、サーボモータ４００の駆動によって動作する物体の動作に係る単位を意味し、ユーザによって直感的に理解し易い単位である。たとえば、サーボモータ４００の駆動によって動作するワークを想定した場合、物理量の単位に関して、原点からの移動距離の単位としては［ｍｍ］で表すことができ、移動速度の単位としては［ｍｍ／ｓｅｃ］で表すことができる。なお、［ｍｍ］や［ｍｍ／ｓｅｃ］に限らず、［μｍ］や［μｍ／ｓｅｃ］、［ｎｍ］や［ｎｍ／ｓｅｃ］など、物理量の単位としてその他の単位で表すこともできる。さらに、物理量の単位に関して、原点からの移動距離や移動速度に限らず、移動加速度の単位を用いてもよい。ユーザは、標準制御１５０に係る設定時において、ファンクションブロックに対して、このような直感的に理解し易い単位を用いて設定値を入力することができる。
【００３９】
一方、セーフティドライバ３００からサーボモータ４００に対する指令値では、サーボモータ４００の回転数に応じた位置情報（たとえば、パルス数）が用いられている。このため、標準コントローラ１００は、標準制御１５０に係る物理量の単位（たとえば、［ｍｍ］）での設定値をサーボモータ４００に対する位置情報の単位（たとえば、［ｐｕｌｓｅ］）での指令値に変換した上で、変換後の指令値をセーフティドライバ３００に与えている。なお、セーフティドライバ３００からサーボモータ４００に対する指令値としては、パルス（［ｐｕｌｓｅ］）のような位置情報に限らず、サーボモータ４００の回転速度に対応する速度情報が用いられてもよい。このような速度情報の単位としては、［ｒ／ｍｉｎ］や［ｒｐｍ］などが用いられる。この場合、標準コントローラ１００は、標準制御１５０に係る物理量の単位（たとえば、［ｍｍ／ｓｅｃ］）での設定値をサーボモータ４００に対する速度情報の単位（たとえば、［ｒ／ｍｉｎ］）での指令値に変換した上で、変換後の指令値をセーフティドライバ３００に与えている。
【００４０】
サポート装置５００は、セーフティ機能２５０に係る設定時において、セーフティドライバ３００からサーボモータ４００に対する指令値の単位でセーフティ機能２５０に係る設定における設定値を取り扱う。しかしながら、［ｐｕｌｓｅ］などの指令値の単位は、［ｍｍ］などの物理量の単位とは異なり、ユーザにとって直感的に理解し難いため、ユーザのプログラミングにおける利便性が乏しくなりがちである。
【００４１】
そこで、本実施の形態に係る制御システム１においては、サポート装置５００は、サーボモータ４００の動作に係る物理量の単位とセーフティドライバ３００によるサーボモータ４００に対する指令値の単位とを相互に変換するための変換用データ５１０５を保持するデータ保持部５１００と、セーフティ機能２５０に係る設定時において、変換用データ５１０５に基づき、物理量の単位を指令値の単位に変換する変換部５２１１とを含む。サポート装置５００は、ユーザによって物理量の単位で値が入力されると、変換部５２１１によって、データ保持部５１００に保持された変換用データ５１０５に基づき、物理量の単位を指令値の単位に変換し、その変換結果を画面に表示したり、セーフティ機能２５０に係る設定における設定値としたりする。
【００４２】
これにより、セーフティ機能２５０に係る設定時において、ユーザが物理量の単位で設定値を扱ったとしても、当該物理量の単位での設定値が指令値の単位での設定値に変換されるため、ユーザのプログラミングにおける利便性を向上させることができる。
【００４３】
本明細書において、「デバイス」は、フィールドネットワーク２などの任意のネットワークを介して、他の装置とデータ通信可能な装置の総称である。本実施の形態に係る制御システム１において、「デバイス」は、標準コントローラ１００、セーフティコントローラ２００、およびセーフティドライバ３００を包含する。
【００４４】
本明細書において、「標準制御」および「セーフティ制御」の用語を対比的に用いる。「標準制御」は、予め定められた要求仕様に沿って、制御対象を制御するための処理の総称である。一方、「セーフティ制御」は、設備や機械などによって人の安全が脅かされることを防止するための処理を総称する。「セーフティ制御」は、ＩＥＣ  ６１５０８などに規定されたセーフティ機能２５０を実現するための要件を満たすように設計される。
【００４５】
本明細書においては、ドライブ装置に特有のセーフティ機能を「モーションセーフティ機能」と総称する。典型的には、「機能」は、上述の非特許文献に規定されるドライブ装置に関連するセーフティ機能を包含する。たとえば、制御軸の位置や速度を監視して安全を確保するための制御を含む。
【００４６】
＜Ｂ．制御システム１に含まれるデバイスの構成例＞
次に制御システム１に含まれるデバイスの構成例について説明する。
【００４７】
（ｂ１：標準コントローラ１００）
図２は、本実施の形態に係る制御システム１を構成する標準コントローラ１００のハードウェア構成例を示す模式図である。図２を参照して、標準コントローラ１００は、プロセッサ１０２と、メインメモリ１０４と、ストレージ１１０と、上位ネットワークコントローラ１０６と、フィールドネットワークコントローラ１０８と、ＵＳＢ（Universal Serial Bus）コントローラ１２０と、メモリカードインターフェイス１１２と、ローカルバスコントローラ１１６とを含む。これらのコンポーネントは、プロセッサバス１１８を介して接続されている。
【００４８】
プロセッサ１０２は、主として、標準制御１５０に係る制御演算を実行する演算処理部に相当し、ＣＰＵ（Central Processing Unit）やＧＰＵ（Graphics Processing Unit）などで構成される。具体的には、プロセッサ１０２は、ストレージ１１０に格納されたプログラム（一例として、システムプログラム１１０２および標準制御プログラム１１０４）を読み出して、メインメモリ１０４に展開して実行することで、制御対象（たとえば、セーフティドライバ３００やサーボモータ４００）に応じた制御演算、および、後述するような各種処理を実現する。
【００４９】
メインメモリ１０４は、ＤＲＡＭ（Dynamic Random Access Memory）やＳＲＡＭ（Static Random Access Memory）などの揮発性記憶装置などで構成される。ストレージ１１０は、たとえば、ＳＳＤ（Solid State Drive）やＨＤＤ（Hard Disk Drive）などの不揮発性記憶装置などで構成される。
【００５０】
ストレージ１１０には、基本的な機能を実現するためのシステムプログラム１１０２に加えて、制御対象に応じて作成された標準制御プログラム１１０４が格納される。また、ストレージ１１０には、後述するような変数などを設定するための設定情報１１０６が格納される。さらに、ストレージ１１０には、標準制御プログラム１１０４に含まれる物理量の単位での設定値をサーボモータ４００に対するパルス数の単位での指令値に変換するための変換用データ１１０５が格納される。なお、変換用データ１１０５は、設定情報１１０６に含まれていてもよいし、標準制御プログラム１１０４にソースコードとして書き込まれていてもよい。
【００５１】
上位ネットワークコントローラ１０６は、上位ネットワークを介して、任意の報処理装置との間でデータを遣り取りする。
【００５２】
フィールドネットワークコントローラ１０８は、フィールドネットワーク２を介して、セーフティコントローラ２００およびセーフティドライバ３００を含む任意のデバイスとの間でデータを遣り取りする。図２に示す制御システム１においては、標準コントローラ１００のフィールドネットワークコントローラ１０８は、フィールドネットワーク２の通信マスタとして機能する。
【００５３】
ＵＳＢコントローラ１２０は、ＵＳＢ接続を介して、サポート装置５００などとの間でデータを遣り取りする。
【００５４】
メモリカードインターフェイス１１２は、着脱可能な記録媒体の一例であるメモリカード１１４を受け付ける。メモリカードインターフェイス１１２は、メモリカード１１４に対してデータを書き込み、メモリカード１１４から各種データ（ログやトレースデータなど）を読み出すことが可能になっている。
【００５５】
ローカルバスコントローラ１１６は、ローカルバスを介して、標準コントローラ１００に接続される任意のユニットとの間でデータを遣り取りする。
【００５６】
図２には、プロセッサ１０２がプログラムを実行することで必要な機能が提供される構成例を示したが、これらの提供される機能の一部または全部を、専用のハードウェア回路（たとえば、ＡＳＩＣ（Application Specific Integrated Circuit）またはＦＰＧＡ（Field-Programmable Gate Array）など）を用いて実装してもよい。あるいは、標準コントローラ１００の主要部を、汎用的なアーキテクチャに従うハードウェア（たとえば、汎用パソコンをベースとした産業用パソコン）を用いて実現してもよい。この場合には、仮想化技術を用いて、用途の異なる複数のＯＳ（Operating System）を並列的に実行させるとともに、各ＯＳ上で必要なアプリケーションを実行させるようにしてもよい。さらに、標準コントローラ１００に表示装置やサポート装置などの機能を統合した構成を採用してもよい。
【００５７】
（ｂ２：セーフティコントローラ２００）
図３は、本実施の形態に係る制御システム１を構成するセーフティコントローラ２００のハードウェア構成例を示す模式図である。図３を参照して、セーフティコントローラ２００は、プロセッサ２０２と、メインメモリ２０４と、ストレージ２１０と、フィールドネットワークコントローラ２０８と、ＵＳＢコントローラ２２０と、セーフティローカルバスコントローラ２１６とを含む。これらのコンポーネントは、プロセッサバス２１８を介して接続されている。
【００５８】
プロセッサ２０２は、主として、セーフティ制御に係る制御演算を実行する演算処理部に相当し、ＣＰＵやＧＰＵなどで構成される。具体的には、プロセッサ２０２は、ストレージ２１０に格納されたプログラム（一例として、システムプログラム２１０２およびセーフティプログラム２１０４）を読み出して、メインメモリ２０４に展開して実行することで、必要なセーフティ機能２５０を提供するための制御演算、および、後述するような各種処理を実現する。
【００５９】
メインメモリ２０４は、ＤＲＡＭやＳＲＡＭなどの揮発性記憶装置などで構成される。ストレージ２１０は、たとえば、ＳＳＤやＨＤＤなどの不揮発性記憶装置などで構成される。
【００６０】
ストレージ２１０には、基本的な機能を実現するためのシステムプログラム２１０２に加えて、要求されるセーフティ機能２５０に応じて作成されたセーフティプログラム２１０４が格納される。さらに、ストレージ２１０には、変数などを設定するための設定情報２１０６が格納される。
【００６１】
フィールドネットワークコントローラ２０８は、フィールドネットワーク２を介して、標準コントローラ１００およびセーフティドライバ３００を含む任意のデバイスとの間でデータを遣り取りする。図３に示す制御システム１においては、セーフティコントローラ２００のフィールドネットワークコントローラ２０８は、フィールドネットワーク２の通信スレーブとして機能する。
【００６２】
ＵＳＢコントローラ２２０は、ＵＳＢ接続を介して、サポート装置５００などの情報処理装置との間でデータを遣り取りする。
【００６３】
セーフティローカルバスコントローラ２１６は、セーフティローカルバスを介して、セーフティコントローラ２００に接続される任意のセーフティユニットとの間でデータを遣り取りする。図３には、セーフティユニットの一例として、セーフティＩＯユニット２３０を示す。
【００６４】
セーフティＩＯユニット２３０は、任意のセーフティデバイス２４０との間で入出力信号を遣り取りする。より具体的には、セーフティＩＯユニット２３０は、セーフティセンサやセーフティスイッチなどのセーフティデバイス２４０からの入力信号を受付ける。あるいは、セーフティＩＯユニット２３０は、セーフティリレーなどのセーフティデバイス２４０へ指令を出力する。
【００６５】
図３には、プロセッサ２０２がプログラムを実行することで必要な機能が提供される構成例を示したが、これらの提供される機能の一部または全部を、専用のハードウェア回路（たとえば、ＡＳＩＣまたはＦＰＧＡなど）を用いて実装してもよい。あるいは、セーフティコントローラ２００の主要部を、汎用的なアーキテクチャに従うハードウェア（たとえば、汎用パソコンをベースとした産業用パソコン）を用いて実現してもよい。
【００６６】
（ｂ３：セーフティドライバ３００およびサーボモータ４００）
図４は、本実施の形態に係る制御システム１を構成するセーフティドライバ３００およびサーボモータ４００のハードウェア構成例を示す模式図である。図４を参照して、セーフティドライバ３００は、フィールドネットワークコントローラ３０２と、制御部３１０と、ドライブ回路３３０と、フィードバック受信回路３３２とを含む。
【００６７】
フィールドネットワークコントローラ３０２は、フィールドネットワーク２を介して、標準コントローラ１００およびセーフティコントローラ２００を含む任意のデバイスとの間でデータを遣り取りする。図４に示す制御システム１においては、セーフティドライバ３００のフィールドネットワークコントローラ３０２は、フィールドネットワーク２の通信スレーブとして機能する。
【００６８】
制御部３１０は、セーフティドライバ３００を動作させるために必要な演算処理を実行する。一例として、制御部３１０は、プロセッサ３１２，３１４と、メインメモリ３１６と、ストレージ３２０とを含む。
【００６９】
プロセッサ３１２は、サーボモータ４００を駆動するための制御演算を主として実行する演算処理部に相当する。プロセッサ３１４は、サーボモータ４００に係るセーフティ機能２５０を提供するための制御演算を主として実行する演算処理部に相当する。プロセッサ３１２，３１４は、いずれもＣＰＵなどで構成される。
【００７０】
メインメモリ３１６は、ＤＲＡＭやＳＲＡＭなどの揮発性記憶装置などで構成される。ストレージ３２０は、たとえば、ＳＳＤやＨＤＤなどの不揮発性記憶装置などで構成される。
【００７１】
ストレージ３２０には、後述するサーボ制御３５０を実現するためのサーボ制御プログラム３２０１と、後述するモーションセーフティ機能３６０を実現するためのモーションセーフティプログラム３２０２と、他のデバイスに公開される変数などを設定するための設定情報３２０３とが格納される。
【００７２】
図４には、２つのプロセッサ３１２，３１４がそれぞれ異なる目的の制御演算を実行することで信頼性を高める構成を例示するが、これに限らず、要求されるセーフティ機能２５０を実現できればどのような構成を採用してもよい。たとえば、単一のプロセッサに複数のコアが含まれるような場合には、プロセッサ３１２，３１４にそれぞれ対応する制御演算を実行するようにしてもよい。また、図４には、プロセッサ３１２，３１４がプログラムを実行することで必要な機能が提供される構成例を示したが、これらの提供される機能の一部または全部を、専用のハードウェア回路（たとえば、ＡＳＩＣまたはＦＰＧＡなど）を用いて実装してもよい。
【００７３】
ドライブ回路３３０は、コンバータ回路およびインバータ回路などを含み、制御部３１０からの指令に従って、指定された電圧・電流・位相の電力を生成して、サーボモータ４００へ供給する。
【００７４】
フィードバック受信回路３３２は、サーボモータ４００からのフィードバック信号を受信して、その受信結果を制御部３１０へ出力する。
【００７５】
サーボモータ４００は、典型的には、三相交流モータ４０２および三相交流モータ４０２の回転軸に取付けられたエンコーダ４０４を含む。
【００７６】
三相交流モータ４０２は、セーフティドライバ３００から供給される電力を受けて回転力を発生するアクチュエータである。図４には、一例として、三相交流モータを例示するが、これに限らず、直流モータであってもよいし、単相交流モータあるいは多相交流モータであってもよい。さらに、リニアサーボのような直線に沿って駆動力を発生するアクチュエータを採用してもよい。
【００７７】
エンコーダ４０４は、三相交流モータ４０２の回転数に応じたフィードバック信号（典型的には、回転数に応じた数のパルス信号）を出力する。
【００７８】
（ｂ４：サポート装置５００）
図５は、本実施の形態に係る制御システム１を構成するサポート装置５００のハードウェア構成例を示す模式図である。サポート装置５００は、一例として、汎用的なアーキテクチャに従うハードウェア（たとえば、汎用パソコン）を用いて実現される。
【００７９】
図５を参照して、サポート装置５００は、プロセッサ５０２と、メインメモリ５０４と、入力部５０６と、出力部５０８と、ストレージ５１０と、光学ドライブ５１２と、ＵＳＢコントローラ５２０とを含む。これらのコンポーネントは、プロセッサバス５１８を介して接続されている。
【００８０】
プロセッサ５０２は、ＣＰＵやＧＰＵなどで構成され、ストレージ５１０に格納されたプログラム（一例として、ＯＳ５１０２およびサポートプログラム５１０４）を読み出して、メインメモリ５０４に展開して実行することで、後述するような各種処理を実現する。すなわち、プロセッサ５０２は、サポートプログラム５１０４を実行するコンピュータの機能を有する。
【００８１】
メインメモリ５０４は、ＤＲＡＭやＳＲＡＭなどの揮発性記憶装置などで構成される。ストレージ５１０は、たとえば、ＨＤＤやＳＳＤなどの不揮発性記憶装置などで構成される。
【００８２】
ストレージ５１０には、基本的な機能を実現するためのＯＳ５１０２に加えて、サポート装置５００としての機能を提供するためのサポートプログラム５１０４が格納される。すなわち、サポートプログラム５１０４は、制御システム１に接続されるコンピュータにより実行されることで、本実施の形態に係るサポート装置５００を実現する。
【００８３】
さらに、ストレージ５１０には、サポートプログラム５１０４が実行されることで提供される開発環境においてユーザにより作成されるプロジェクトデータ５１０６が格納される。
【００８４】
本実施の形態において、サポート装置５００は、制御システム１に含まれる各デバイスに対する設定および各デバイスで実行されるプログラムの作成が統合的に可能な開発環境を提供する。プロジェクトデータ５１０６は、このような統合的な開発環境によって生成されるデータを含む。典型的には、プロジェクトデータ５１０６は、標準制御ソースプログラム５１０８と、標準コントローラ設定情報５１１０と、セーフティソースプログラム５１１７と、セーフティコントローラ設定情報５１１４と、セーフティドライバ設定情報５１１６とを含む。
【００８５】
標準制御ソースプログラム５１０８は、オブジェクトコードに変換された上で、標準コントローラ１００へ送信され、標準制御プログラム１１０４（図２参照）として格納される。同様に、標準コントローラ設定情報５１１０についても標準コントローラ１００へ送信され、設定情報１１０６（図２参照）として格納される。
【００８６】
セーフティソースプログラム５１１７は、オブジェクトコードに変換された上で、セーフティコントローラ２００へ送信され、セーフティプログラム２１０４（図３参照）として格納される。同様に、セーフティコントローラ設定情報５１１４についてもセーフティコントローラ２００へ送信され、設定情報２１０６（図３参照）として格納される。
【００８７】
セーフティドライバ設定情報５１１６は、セーフティドライバ３００へ送信され、設定情報３２０３（図４参照）として格納される。
【００８８】
さらに、ストレージ５１０には、サーボモータ４００の動作に係る物理量の単位とセーフティドライバ３００によるサーボモータ４００に対する指令値の単位とを相互に変換するための変換用データ５１０５が格納される。このように、ストレージ５１０は、図１で示したデータ保持部５１００の機能を有する。なお、変換用データ５１０５は、プロジェクトデータ５１０６に含まれてもよい。
【００８９】
入力部５０６は、キーボードやマウスなどで構成され、ユーザ操作を受付ける。出力部５０８は、ディスプレイ、各種インジケータ、プリンタなどで構成され、プロセッサ５０２からの処理結果などを出力する。
【００９０】
ＵＳＢコントローラ５２０は、ＵＳＢ接続を介して、標準コントローラ１００などとの間のデータを遣り取りする。
【００９１】
サポート装置５００は、光学ドライブ５１２を有しており、コンピュータ読取可能なプログラムを非一過的に格納する記録媒体５１４（たとえば、ＤＶＤ（Digital Versatile Disc）などの光学記録媒体）から、その中に格納されたプログラムが読取られてストレージ５１０などにインストールされる。
【００９２】
サポート装置５００で実行されるサポートプログラム５１０４などは、コンピュータ読取可能な記録媒体５１４を介してインストールされてもよいが、ネットワーク上のサーバ装置などからダウンロードする形でインストールするようにしてもよい。また、本実施の形態に係るサポート装置５００が提供する機能は、ＯＳが提供するモジュールの一部を利用する形で実現される場合もある。
【００９３】
図５には、プロセッサ５０２がプログラムを実行することで、サポート装置５００として必要な機能が提供される構成例を示したが、これらの提供される機能の一部または全部を、専用のハードウェア回路（たとえば、ＡＳＩＣまたはＦＰＧＡなど）を用いて実装してもよい。
【００９４】
なお、制御システム１が稼動中において、サポート装置５００は、標準コントローラ１００から取り外されていてもよい。
【００９５】
＜Ｃ．制御システム１の機能分担＞
次に、制御システム１における機能分担の一例について説明する。図６は、本実施の形態に係る制御システム１の機能分担の一例を示す模式図である。
【００９６】
図６を参照して、標準コントローラ１００が実行する標準制御１５０に関して、セーフティドライバ３００はサーボ制御３５０を実行する。標準制御１５０は、制御対象に予め設定されたユーザプログラムに従って、サーボモータ４００を駆動するための指令を周期的に算出する処理を含む。また、サーボ制御３５０は、標準制御１５０により周期的に算出される指令に従ってサーボモータ４００を駆動するための制御、および、サーボモータ４００の動作状態を示す状態値を取得して出力する処理を含む。サーボ制御３５０は、セーフティドライバ３００のプロセッサ３１２（図４参照）が担当する。
【００９７】
一方、セーフティコントローラ２００が提供するセーフティ機能２５０に対応して、セーフティドライバ３００はモーションセーフティ機能３６０を提供する。モーションセーフティ機能３６０は、セーフティドライバ３００のプロセッサ３１４（図４参照）が担当する。
【００９８】
セーフティ機能２５０は、標準コントローラ１００が実行する標準制御１５０が保持する状態値、セーフティデバイス２４０からの信号によって示される状態値、および、セーフティドライバ３００が保持する状態値などに基づいて、予め定められた条件が成立すると、予め指定されているセーフティ機能２５０を有効化する。
【００９９】
予め指定されているセーフティ機能２５０を有効化する処理は、たとえば、セーフティドライバ３００に対するセーフティ指令の出力、あるいは、セーフティデバイス２４０に対してセーフティ指令の出力（たとえば、特定の装置への電力供給に係るセーフティリレーを遮断する）などを含む。
【０１００】
セーフティドライバ３００は、セーフティコントローラ２００からのセーフティ指令に応答して、指定されたモーションセーフティ機能３６０を提供する。指定されたモーションセーフティ機能３６０の種類に応じて、サーボ制御３５０によるサーボモータ４００の制御に介入して、サーボモータ４００への電力供給を遮断する処理、あるいは、サーボ制御３５０によるサーボモータ４００の制御の状態値が予め定められた制限範囲内に収まっているか否かを監視する処理などが実行される。なお、各セーフティドライバ３００においては、実行可能なモーションセーフティ機能３６０が予め定められている。
【０１０１】
図７は、本実施の形態に係る制御システム１のセーフティドライバ３００によるセーフティ機能２５０に係る処理手順の一例を示すシーケンス図である。図７を参照して、標準コントローラ１００の標準制御１５０により周期的に指令が算出されて、セーフティドライバ３００（サーボ制御３５０）に出力される（シーケンスＳＱ２）。セーフティドライバ３００のサーボ制御３５０は、標準制御１５０からの指令に従って、サーボモータ４００を駆動する（シーケンスＳＱ４）。
【０１０２】
あるタイミングにおいて、セーフティデバイス２４０（たとえば、セーフティセンサ）からのセーフティイベントが発生すると（シーケンスＳＱ６）、セーフティコントローラ２００は、セーフティドライバ３００（モーションセーフティ機能３６０）にセーフティ指令を出力する（シーケンスＳＱ８）。このセーフティ指令に応答して、セーフティドライバ３００のモーションセーフティ機能３６０は、指定されたセーフティ機能２５０を有効化する（シーケンスＳＱ１０）。
【０１０３】
セーフティ機能２５０の有効化に応答して、標準コントローラ１００の標準制御１５０からは、当該有効化されたセーフティ機能２５０に応じた指令が算出および出力されるようになる（シーケンスＳＱ１２）。一方、セーフティドライバ３００（モーションセーフティ機能３６０）は、サーボモータ４００の動作状態が予め定められた制限範囲内に収まっているか否かを監視する。サーボモータ４００の動作状態が予め定められた制限範囲内に収まっていないと判断されると、あるいは、予め定められた停止時間が到来すると、セーフティドライバ３００（モーションセーフティ機能３６０）は、サーボモータ４００への電力供給を遮断する（シーケンスＳＱ１４）。
【０１０４】
このように、セーフティドライバ３００は、標準コントローラ１００（標準制御１５０）からの指令に従ってサーボモータ４００を駆動できるとともに、セーフティ機能２５０を有効化するための指令に応じて、セーフティコントローラ２００（セーフティ機能２５０）に対するモーションセーフティ機能３６０を実現することができる。
【０１０５】
＜Ｄ．制御システム１のモーションセーフティ機能３６０＞
次に、制御システム１が提供するモーションセーフティ機能３６０の一例について説明する。
【０１０６】
図８は、本実施の形態に係る制御システム１が提供するモーションセーフティ機能３６０の一例を示す図である。図８には、ＳＳＭ（Safe Speed Monitor）に対応するサーボモータ４００の挙動の一例を示す。
【０１０７】
図８を参照して、セーフティドライバ３００による駆動によってワークがある速度Ｖ０で動作している状態において、時刻ｔ１でセーフティ指令（ＳＳＭ）が与えられると、セーフティドライバ３００は、予め定められた速度Ｖｓでワークを動作させる。さらに、セーフティドライバ３００は、速度Ｖｓでワークの動作を維持しつつ、予め定められた上限値Ｖ_ｕ_ｌｉｍｉｔと下限値Ｖ_ｌ_ｌｉｍｉｔとの間の制限範囲内でサーボモータ４００の動作状態（すなわち、ワークの動作状態）が収まっているか否かを監視する。セーフティドライバ３００は、サーボモータ４００の動作状態が予め定められた制限範囲内に収まっていないと判断した場合、サーボモータ４００への電力供給を遮断して、サーボモータ４００で発生するトルクをゼロにする。
【０１０８】
＜Ｅ．サーボモータ４００の制御に関する主な機能＞
次に、制御システム１が提供するサーボモータ４００の制御に関する主な機能の一例について説明する。
【０１０９】
図９は、本実施の形態に係る制御システム１においてサーボモータ４００の制御に関する主な機能の一例を示す図である。図９を参照して、標準コントローラ１００は、標準制御１５０に係る設定時において、物理量の単位で設定値が入力される。標準コントローラ１００は、変換用データ１１０５に基づき、標準制御プログラム１１０４に含まれる物理量の単位での値をサーボモータ４００に対する指令値の単位での値に変換する変換部１１１０を有する。変換部１１１０は、図２に示したプロセッサ１０２などによって実現される。
【０１１０】
セーフティドライバ３００は、パルスカウント部３００１と、比較部３００２と、トルク調整部３００３と、ドライブ回路３３０と、モーションセーフティ機能３６０とを有する。パルスカウント部３００１、比較部３００２、トルク調整部３００３、およびモーションセーフティ機能３６０は、図４に示したプロセッサ３１２，３１４などによって実現される。
【０１１１】
パルスカウント部３００１は、サーボモータ４００が有するモータの回転軸に結合されたエンコーダからの検出信号に基づき、モータの回転数に応じたパルスのカウント結果を比較部３００２に出力する。なお、パルスカウント部３００１から比較部３００２に出力されるパルス数は、たとえば、モータの回転数に応じた単位時間当たりのパルス数である。
【０１１２】
比較部３００２は、パルスカウント部３００１から取得したパルス数と、標準コントローラ１００の変換部１１１０によって変換された設定値に対応するパルス数とを比較し、その比較結果をトルク調整部３００３に出力する。
【０１１３】
トルク調整部３００３は、比較部３００２から取得した比較結果に基づき、サーボモータ４００の回転速度を調整するために、ドライブ回路に対してサーボモータ４００に供給する電圧や電流などを生成するための指令値をドライブ回路３３０に出力する。
【０１１４】
ドライブ回路３３０は、トルク調整部３００３からの指令値に従って、指定された電圧や電流などを生成して、サーボモータ４００へ供給する。
【０１１５】
セーフティコントローラ２００は、セーフティ機能２５０に係る設定時において、指令値の単位（たとえば、［ｐｕｌｓｅ］）で設定値が入力される。セーフティコントローラ２００は、セーフティイベントが発生すると、予め指定されているセーフティ機能２５０を有効化することで、セーフティドライバ３００に対してセーフティ指令を出力する。さらに、セーフティコントローラ２００は、セーフティイベントが発生すると、予め指定されているセーフティ機能２５０を有効化することで、セーフティドライバ３００のモーションセーフティ機能３６０によるサーボモータ４００の回転速度の制限範囲（たとえば、図８に示す制限範囲）をパルス数で出力する。
【０１１６】
セーフティドライバ３００は、セーフティコントローラ２００からのセーフティ指令に従って、予め定められた回転速度（たとえば、図８に示す速度Ｖｓ）となるようにドライブ回路３３０を制御し、さらに、セーフティコントローラ２００から取得した制限範囲内でサーボモータ４００の動作状態が収まっているか否かを監視する。
【０１１７】
このように、本実施の形態に係る制御システム１においては、サーボモータ４００の制御に関して、標準コントローラ１００およびセーフティコントローラ２００のそれぞれからパルス数によって指令が与えられる。ただし、ユーザは、標準コントローラ１００が実行する標準制御１５０に係る設定においては、物理量の単位（たとえば、［ｍｍ］）で設定値を入力することができるのに対して、セーフティコントローラ２００が実行するセーフティ機能２５０に係る設定においては、指令値の単位（たとえば、［ｐｕｌｓｅ］）で設定値を入力するようになっている。
【０１１８】
＜Ｆ．単位変換設定のためのユーザインターフェイス５５０＞
次に、サポート装置５００が提供する単位変換設定のためのユーザインターフェイス５５０の一例について説明する。
【０１１９】
図１０は、本実施の形態に係るサポート装置５００が提供する単位変換設定のためのユーザインターフェイス５５０の一例を示す図である。ユーザは、サポート装置５００においてサポートプログラム５１０４を実行することで、図１０に示すようなユーザインターフェイス５５０における画面を表示させることができる。
【０１２０】
図１０を参照して、サポート装置５００の画面の左側には、各種設定を行うための複数のアイコンが表示されており、ユーザが単位変換設定アイコン５５１を選択すると、単位変換設定のためのユーザインターフェイス５５０が利用可能となる。
【０１２１】
ユーザインターフェイス５５０における画面には、単位変換の対象となる単位を選択するための表示単位欄５５２と、サーボモータ４００の駆動によって動作するワークの移動量を設定するための移動量欄５５３とが含まれる。
【０１２２】
表示単位欄５５２には、「ｐｕｌｓｅ」、「ｍｍ」、「μｍ」、「ｎｍ」、「ｄｅｇｒｅｅ」、および「ｉｎｃｈ」といった各単位を選択するためのラジオボタンが設けられている。なお、表示単位欄５５２において選択可能な単位には、これら以外のものが含まれていてもよい。
【０１２３】
移動量欄５５３には、モータ１回転のパルス数を入力するためのパルス数欄５５４と、減速機の未使用を選択するための未使用選択ボタン５５５と、減速機の使用を選択するための使用選択ボタン５５６とが含まれる。
【０１２４】
移動量欄５５３には、未使用選択ボタン５５５によって減速機の未使用を選択した場合に入力可能な欄として、モータ１回転の移動量を入力するための移動量欄５５５ａが含まれる。一方、移動量欄５５３には、使用選択ボタン５５６によって減速機の使用を選択した場合に入力可能な欄として、ワーク側１回転の移動量を入力するための移動量欄５５６ａと、ワーク側ギア比を入力するためのワーク側ギア比欄５５６ｂと、モータ側ギア比を入力するためのモータ側ギア比欄５５６ｃとが含まれる。さらに、移動量欄５５３には、使用選択ボタン５５６によって減速機の使用を選択した場合における単位変換式を示す単位変換式欄５５７が含まれる。
【０１２５】
ユーザは、サポート装置５００が提供する単位変換設定のためのユーザインターフェイス５５０を利用することで、サーボモータ４００の動作に係る物理量の単位（たとえば、「ｍｍ」）とセーフティドライバ３００によるサーボモータ４００に対する指令値の単位（たとえば、「ｐｕｌｓｅ」）との間の変換の内容を予め設定することができる。
【０１２６】
たとえば、図１０の例では、モータ１回転のパルス数として“１０００”［ｐｕｌｓｅ／ｒｅｖ］が設定されている。さらに、減速機の使用が選択された上で、ワーク側１回転の移動量として“１０”［ｍｍ／ｒｅｖ］が設定され、ワーク側ギア比として“１”が設定され、モータ側ギア比として“１０”が設定されている。これにより、単位変換式欄５５７で示された単位変換式で計算すれば、ワークの移動量が１［ｍｍ］のときに指令値として１０００［ｐｕｌｓｅ］に変換されることになる。
【０１２７】
ユーザインターフェイス５５０を利用して生成された単位変換設定のデータは、変換用データ５１０５としてストレージ５１０に格納される一方で、サポート装置５００から標準コントローラ１００に転送される。標準コントローラ１００は、取得した単位変換設定のデータを、変換用データ１１０５としてストレージ１１０に格納する。
【０１２８】
このように、ユーザは、サポート装置５００を用いて、物理量の単位と指令値の単位との間の変換の内容を自由に決めて、変換用データ１１０５を生成することができる。
【０１２９】
＜Ｇ．標準制御プログラム１１０４＞
次に、サポート装置５００が提供する標準制御プログラム１１０４の一例について説明する。
【０１３０】
図１１は、本実施の形態に係るサポート装置５００が提供する標準制御プログラム１１０４の一例を示す図である。図１１を参照して、標準制御プログラム１１０４は、所定の機能に対応する命令情報を規定する複数のファンクションブロックが組み合わされて構成されている。各ファンクションブロックは、サポート装置５００を用いてユーザによって設定値が入力（指定）されることでプログラミングされる。
【０１３１】
図１１に示す標準制御プログラム１１０４においては、位置制御用のファンクションブロック１１０４ａと、速度制御用のファンクションブロック１１０４ｂと、速度制御用のファンクションブロック１１０４ｃとが組み合わされている。
【０１３２】
ファンクションブロック１１０４ａにおいては、ユーザによって、入力側の「Ｐｏｓｉｔｉｏｎ」に対して“３００”が指定され、入力側の「Ｖｅｌｏｃｉｔｙ」に対して“１０”が指定されている。これにより、ファンクションブロック１１０４ａにおいては、原点から正方向へ３００［ｍｍ］の場所へ１０［ｍｍ／ｓｅｃ］の速度で移動する旨の命令情報が規定される。
【０１３３】
ファンクションブロック１１０４ｂにおいては、ユーザによって、入力側の「Ｖｅｌｏｃｉｔｙ」に対して“２０”が指定されている。これにより、ファンクションブロック１１０４ｂにおいては、原点から正方向へ２０［ｍｍ／ｓｅｃ］の速度で移動する旨の命令情報が規定される。
【０１３４】
ファンクションブロック１１０４ｃにおいては、ユーザによって、入力側の「Ｖｅｌｏｃｉｔｙ」に対して“５”が指定されている。これにより、ファンクションブロック１１０４ｃにおいては、原点から正方向へ５［ｍｍ／ｓｅｃ］の速度で移動する旨の命令情報が規定される。
【０１３５】
このような標準制御プログラム１１０４に含まれるファンクションブロック１１０４ｂ,１１０４ｃで規定されたプログラムが標準コントローラ１００によって実行されると、図８に示したようにサーボモータ４００が動作する。具体的には、ファンクションブロック１１０４ｂの命令情報に基づき、サーボモータ４００が原点から正方向へ２０［ｍｍ／ｓｅｃ］の速度（速度Ｖ０）で動作している状態において、時刻ｔ１でセーフティ指令（ＳＳＭ）が与えられると、ファンクションブロック１１０４ｃの命令情報に基づき、サーボモータ４００が原点から正方向へ５［ｍｍ／ｓｅｃ］の速度（速度Ｖｓ）で動作する。
【０１３６】
このように、ユーザは、サポート装置５００を用いて、命令情報が規定されたファンクションブロックに設定値を入力することで、標準制御プログラム１１０４を生成することができる。
【０１３７】
＜Ｈ．変換用ツール表示処理＞
次に、サポート装置５００が実行する変換用ツール表示処理について説明する。
【０１３８】
図１２は、本実施の形態に係るサポート装置５００が実行する変換用ツール表示処理を説明するためのフローチャートである。図１２を参照して、サポート装置５００は、安全パラメータ設定画面が表示されているか否かを判定する（Ｓ２）。安全パラメータ設定画面は、詳しくは図１５を参照しながら後述するが、セーフティプログラム２１０４の開発やセーフティ機能２５０に係る設定をするためのユーザインターフェイス９００で提供される画面である。サポート装置５００は、安全パラメータ設定画面が表示されていない場合（Ｓ２でＮＯ）、本処理を終了する。
【０１３９】
一方、サポート装置５００は、安全パラメータ設定画面が表示されている場合（Ｓ２でＹＥＳ）、セーフティドライバ３００とサーボモータ４００とが関連付けられているか否かを判定する（Ｓ４）。
【０１４０】
サポート装置５００は、セーフティドライバ３００とサーボモータ４００とが関連付けられていない場合（Ｓ４でＮＯ）、変換用ツール９０５を非表示、および／または関連付けがない旨を通知する（Ｓ６）。変換用ツール９０５は、詳しくは図１５を参照しながら後述するが、サーボモータ４００の動作に係る物理量の単位（たとえば、［ｍｍ］）とセーフティドライバ３００によるサーボモータ４００に対する指令値の単位（たとえば、［ｐｕｌｓｅ］）とを相互に変換するためにユーザによって利用されるツールである。
【０１４１】
一方、サポート装置５００は、セーフティドライバ３００とサーボモータ４００とが関連付けられている場合（Ｓ４でＹＥＳ）、変換用ツール９０５を画面に表示し（Ｓ８）、本処理を終了する。
【０１４２】
このように、セーフティドライバ３００とサーボモータ４００とが関連付けられていることを条件として、物理量の単位が指令値の単位に変換されるため、サポート装置５００による変換の処理の効率化を図ることができる。
【０１４３】
＜Ｉ．変換結果表示処理＞
次に、サポート装置５００が実行する変換結果表示処理について説明する。
【０１４４】
図１３は、本実施の形態に係るサポート装置５００が実行する変換結果表示処理を説明するためのフローチャートである。図１３を参照して、サポート装置５００は、変換用ツール９０５が表示されているか否かを判定する（Ｓ２２）。サポート装置５００は、変換用ツール９０５が表示されていない場合（Ｓ２２でＮＯ）、本処理を終了する。
【０１４５】
一方、サポート装置５００は、変換用ツール９０５が表示されている場合（Ｓ２２でＹＥＳ）、変換用ツール９０５に物理量が入力されたか否かを判定する（Ｓ２４）。サポート装置５００は、変換用ツール９０５に物理量が入力されていない場合（Ｓ２４でＮＯ）、本処理を終了する。
【０１４６】
一方、サポート装置５００は、変換用ツール９０５に物理量が入力されている場合（Ｓ２４でＹＥＳ）、変換用データ５１０５を取得する（Ｓ２６）。次に、サポート装置５００は、変換用データ５１０５に基づき、入力された物理量をパルス数に変換する（Ｓ２８）。なお、セーフティドライバ３００からサーボモータ４００に対する指令値として速度情報を用いている場合、サポート装置５００は、変換用データ５１０５に基づき、入力された物理量（たとえば、単位は［ｍｍ／ｓｅｃ］）を速度情報（たとえば、単位は［ｒ／ｍｉｎ］）に変換する。次に、サポート装置５００は、変換結果を変換用ツール９０５に表示し（Ｓ３０）、本処理を終了する。
【０１４７】
＜Ｊ．開発プログラムの切替のためのユーザインターフェイス８００＞
次に、サポート装置５００が提供する開発プログラムの切替のためのユーザインターフェイス８００の一例について説明する。
【０１４８】
図１４は、本実施の形態に係るサポート装置５００が提供する標準制御コントローラ１００側の開発からセーフティコントローラ２００側の開発へと切り替えるためのユーザインターフェイス８００の一例を示す図である。ユーザは、サポート装置５００においてサポートプログラム５１０４を実行することで、図１４に示すようなユーザインターフェイス８００における画面を表示させることができる。
【０１４９】
図１４を参照して、サポート装置５００の画面の左側には、マルチビューエクスプローラ欄８０１が設けられている。さらに、マルチビューエクスプローラ欄８０１には、開発対象となるプログラムを指定するための切替スイッチ８１１が含まれる。
【０１５０】
ユーザは、切替スイッチ８１１を用いてドロップダウンされたリストの中から「new_Controller_0」を指定することで、標準コントローラ１００側の開発をするための画面を表示させることができ、ドロップダウンされたリストの中から「new_SafetyCPU0」を指定することで、セーフティコントローラ２００側の開発をするための画面を表示させることができる。
【０１５１】
＜Ｋ．セーフティコントローラ２００側の開発のためのユーザインターフェイス９００＞
次に、サポート装置５００が提供するセーフティコントローラ２００側の開発をするためのユーザインターフェイス９００の一例について説明する。
【０１５２】
図１５は、本実施の形態に係るサポート装置５００が提供するセーフティコントローラ２００側の開発をするためのユーザインターフェイス９００の一例を示す図である。ユーザは、図１４に示した開発プログラムの切替のためのユーザインターフェイス８００において「new_SafetyCPU0」を指定することで、図１５に示すように、セーフティコントローラ２００側の開発をするための安全パラメータ設定画面を表示させることができる。
【０１５３】
図１５を参照して、サポート装置５００の画面の左側には、マルチビューエクスプローラ欄９０１が設けられている。さらに、マルチビューエクスプローラ欄９０１には、開発対象となるプログラムを指定するための切替スイッチ９１１が含まれる。この例では、切替スイッチ９１１において、セーフティプログラム２１０４に対応する「new_SafetyCPU0」が指定されている。
【０１５４】
また、マルチビューエクスプローラ欄９０１には、プログラミングに関して設定対象となる項目を指定するための切替スイッチ９１２が含まれる。切替スイッチ９１２によってドロップダウンされたリストの中には、プログラムを指定するための切替スイッチ９１３が含まれる。この例では、切替スイッチ９１３において、「Program0」が指定されている。
【０１５５】
さらに、切替スイッチ９１２によってドロップダウンされたリストの中には、利用可能なファンクションブロックの一覧を表示するための切替スイッチ９１４が含まれる。この例では、「new_SafetyCPU0」が有する機能を実現するために利用可能なファンクションブロックとして、「OC_SF_SSM」、「OC_SF_SS1」、および「OC_SF_ResetSafe」が表示されている。
【０１５６】
さらに、サポート装置５００の画面の右側には、利用可能なセーフティプログラム２１０４におけるユーザ定義ファンクションブロックのうちからユーザが所望するユーザ定義ファンクションブロックを指定するための切替スイッチ９０３が設けられている。この例では、切替スイッチ９０３において、「OC_SF_SSM」が指定されている。
【０１５７】
ユーザが切替スイッチ９０３において、設定値の入力対象として「OC_SF_SSM」のファンクションブロックを指定すると、サポート装置５００の画面の中央にセーフティプログラム２１０４を開発するためのプログラム画面９０２が表示される。
【０１５８】
この例では、図８に示したような、モーションセーフティ機能３６０としてＳＳＭを実現するためのファンクションブロックが表示されている。ユーザは、セーフティ指令が与えられた後（図８のｔ１以降）の制限範囲として、「S_U_Limit」と示された入力端子９２１に対して上限値を入力し、「S_L_Limit」と示された入力端子９２２に対して下限値を入力することができる。
【０１５９】
ここで、本実施の形態においては、ユーザは、入力端子９２１に対する上限値および入力端子９２２に対する下限値として、指令値の単位（［ｐｕｌｓｅ］）で入力しなければならない。しかし、指令値の単位（［ｐｕｌｓｅ］）は、サーボモータ４００の駆動によって動作するワークの動作に係る単位、すなわち物理量の単位（［ｍｍ］）よりも、直感的に理解し難い。そこで、セーフティコントローラ２００側の開発をするためのユーザインターフェイス９００においては、マルチビューエクスプローラ欄９０１において変換用ツール９０５が表示される。
【０１６０】
変換用ツール９０５は、物理量の単位と指令値の単位との間で相互に単位変換し、その変換結果を表示する。具体的には、変換用ツール９０５には、ワークの移動量の単位、すなわち物理量の単位（［ｍｍ］）で値を入力するための移動量単位欄９５１と、サーボモータ４００に対する指令値の単位（［ｐｕｌｓｅ］）で値を入力するためのパルス単位欄９５２とが含まれる。ユーザが直感的に理解し易い物理量の単位で移動量単位欄９５１に値を入力すれば、その入力値が直感的に理解し難い指令値に変換され、その変換結果がパルス単位欄９５２に表示される。
【０１６１】
このように、セーフティプログラム２１０４の開発時において、物理量の単位での値が指令値の単位での値に変換された結果が表示される。これにより、ユーザは、その表示された変換結果を参照しながら、容易に指令値の単位で設定値を入力することができるため、ユーザのプログラミングにおける利便性を向上させることができる。たとえば、この例では、移動量単位欄９５１にワークの移動量として“６”［ｍｍ］が入力されており、その変換結果としてパルス単位欄９５２に“６０００”［ｐｕｌｓｅ］の指令値が出力されている。ユーザは、このような変換用ツール９０５を用いて、直感的に理解し易いワークの移動量を直感的に理解し難い指令値に変換し、その変換結果を参照しながら、入力端子９２１および入力端子９２２に設定値を入力することができるため、ユーザのプログラミングにおける利便性を向上させることができる。
【０１６２】
なお、図１５の例では、変換用ツール９０５において、物理量の単位として［ｍｍ］、指令値の単位として［ｐｕｌｓｅ］を例示したが、これは、図１０に示したユーザインターフェイス５５０においてユーザによって行われた単位変換設定に依存する。たとえば、単位変換設定において、表示単位欄５５２で「μｍ」が指定された場合、変換用ツール９０５においては、物理量の単位として「μｍ」が指令値の単位として［ｐｕｌｓｅ］に変換される。また、たとえば、単位変換設定において、ワークの移動量が１［μｍ］のときに指令値として１００００００［ｐｕｌｓｅ］に変換されるようにユーザによって設定された場合、変換用ツール９０５においては、“６”［μｍ］が入力されたときに、その変換結果としてパルス単位欄９５２に“６００００００”［ｐｕｌｓｅ］の指令値が出力される。
【０１６３】
以上のように、サポート装置５００を用いたユーザによるセーフティ機能２５０に係る設定時において、変換用データ５１０５に基づき、物理量の単位が指令値の単位に変換される。これにより、セーフティ機能２５０に係る設定時において、ユーザが物理量の単位で設定値を扱ったとしても、当該物理量の単位での設定値が指令値の単位での設定値に変換されるため、開発におけるユーザの利便性を向上させることができる。
【０１６４】
＜Ｌ．変形例＞
上述した実施例においては、セーフティ機能２５０に係る設定時において、ユーザがファンクションブロックに対して指令値の単位（［ｐｕｌｓｅ］）で値を入力する必要があったが、ユーザがファンクションブロックに対して物理量の単位（［ｍｍ］）で値を入力することができてもよい。このような変形例について、図１６および図１７を参照しながら説明する。
【０１６５】
図１６は、変形例に係るサポート装置５００ａが実行する変換処理を説明するためのフローチャートである。図１６を参照して、サポート装置５００ａは、安全パラメータ設定画面（図１５に示す画面）が表示されているか否かを判定する（Ｓ１０２）。サポート装置５００ａは、安全パラメータ設定画面が表示されていない場合（Ｓ２でＮＯ）、本処理を終了する。
【０１６６】
一方、サポート装置５００ａは、安全パラメータ設定画面が表示されている場合（Ｓ１０２でＹＥＳ）、ファンクションブロックに物理量が入力されたか否かを判定する（Ｓ１０４）。サポート装置５００ａは、ファンクションブロックに物理量が入力されていない場合（Ｓ１０４でＮＯ）、本処理を終了する。
【０１６７】
一方、サポート装置５００ａは、ファンクションブロックに物理量が入力されている場合（Ｓ１０４でＹＥＳ）、セーフティドライバ３００とサーボモータ４００とが関連付けられているか否かを判定する（Ｓ１０６）。サポート装置５００ａは、セーフティドライバ３００とサーボモータ４００とが関連付けられていない場合（Ｓ１０６でＮＯ）、関連付けがない旨を通知する（Ｓ１０８）。
【０１６８】
一方、サポート装置５００ａは、セーフティドライバ３００とサーボモータ４００とが関連付けられている場合（Ｓ１０６でＹＥＳ）、変換用データ５１０５を取得する（Ｓ１１０）。次に、サポート装置５００ａは、変換用データ５１０５に基づき、入力された物理量をパルス数に変換する（Ｓ１１２）。なお、セーフティドライバ３００からサーボモータ４００に対する指令値として速度情報を用いている場合、サポート装置５００ａは、変換用データ５１０５に基づき、入力された物理量（たとえば、単位は［ｍｍ／ｓｅｃ］）を速度情報（たとえば、単位は［ｒ／ｍｉｎ］）に変換する。次に、サポート装置５００ａは、変換結果をファンクションブロックの設定値とし（Ｓ１１４）、本処理を終了する。
【０１６９】
このように、ユーザがファンクションブロックに物理量の単位で設定値を入力した場合であっても、当該物理量の単位が指令値の単位に自動的に変換された上で、その変換後の値が設定値として設定されるため、ユーザの利便性を向上させることができる。
【０１７０】
このように、セーフティドライバ３００とサーボモータ４００とが関連付けられていることを条件として、物理量の単位が指令値の単位に変換されるため、サポート装置５００による変換の処理の効率化を図ることができる。
【０１７１】
図１７は、変形例に係るサポート装置５００ａが提供するセーフティコントローラ２００側の開発をするためのユーザインターフェイス９００ａの一例を示す図である。なお、図１７においては、図１５と異なる部分のみ説明する。
【０１７２】
図１７を参照して、サポート装置５００ａの画面の左側に配置されたマルチビューエクスプローラ欄９０１ａにおいては、図１５で示したような変換用ツール９０５が表示されていない。その代わり、ユーザは、サポート装置５００ａの画面の中央に配置されたプログラム画面９０２ａにおいて、ファンクションブロックの入力端子９２１ａおよび入力端子９２２ａに対して物理量の単位（［ｍｍ］）で設定値を入力できるようになっている。そして、入力端子９２１ａおよび入力端子９２２ａに対して入力された設定値は、図１６に示したサポート装置５００ａの変換処理によって、自動的に指令値の単位（［ｐｕｌｓｅ］）に変換されて、セーフティプログラム２１０４が生成される。
【０１７３】
このように、セーフティ機能２５０に係る設定時において、ユーザが物理量の単位で設定値を入力した場合であっても、入力された当該設定値が指令値の単位での設定値に変換されてセーフティ機能２５０に係る設定の設定値となる。これにより、ユーザは、直感的に理解し易い物理量の単位で設定値を入力することができるため、ユーザのプログラミングにおける利便性を向上させることができる。
【０１７４】
＜Ｍ．付記＞
以上のように、本実施の形態では以下のような開示を含む。
【０１７５】
［構成１］
制御システム（１）であって、
モータ（４００）を制御する標準コントローラ（１００）と、
前記制御システムにおける安全を管理するセーフティコントローラ（２００）と、
前記標準コントローラからの指令に従って前記モータを動作させる一方で、前記セーフティコントローラからの指令に従って所定のセーフティ機能（２５０）を実行するセーフティドライバ（３００）と、
前記標準コントローラで実行される標準制御（１５０）に係る設定、および前記セーフティコントローラで実行される前記セーフティ機能に係る設定を支援するサポート装置（５００）とを備え、
前記サポート装置は、
前記標準制御に係る設定時において、前記モータの動作に係る物理量の単位で当該標準制御に係る設定における設定値の入力を受け付ける受付部（５１１１）と、
前記モータの動作に係る物理量の単位と前記セーフティドライバによる前記モータに対する指令値の単位とを相互に変換するための変換用データ（５１０５）を保持するデータ保持部（５１００）と、
前記セーフティ機能に係る設定時において、前記変換用データに基づき、前記物理量の単位を前記指令値の単位に変換する変換部（５２１１）とを含む、制御システム（１）。
【０１７６】
［構成２］
前記サポート装置は、前記セーフティ機能に係る設定時において、前記物理量の単位で入力された値を前記変換部によって変換するとともに、当該変換部による変換結果を表示するユーザインターフェイス（９００）を提供する、構成１の制御システム。
【０１７７】
［構成３］
前記サポート装置は、前記セーフティ機能に係る設定時において、前記物理量の単位で当該セーフティ機能に係る設定における設定値の入力を受け付けた場合、入力された当該設定値を前記変換部によって変換するとともに、当該変換部による変換結果を当該セーフティ機能に係る設定の設定値とするユーザインターフェイス（９００ａ）を提供する、構成１または構成２の制御システム。
【０１７８】
［構成４］
前記サポート装置は、前記変換用データを生成するための値の入力を受け付けるユーザインターフェイス（５５０）を提供する、構成１〜構成３のいずれかの制御システム。
【０１７９】
［構成５］
前記変換部は、前記セーフティドライバと前記モータとが関連付けられていることを条件として、前記物理量の単位を前記指令値の単位に変換する、構成１〜構成４のいずれかの制御システム。
【０１８０】
［構成６］
モータ（４００）を制御する標準コントローラ（１００）で実行される標準制御（１５０）に係る設定、および制御システム（１）における安全を管理するセーフティコントローラ（２００）で実行される所定のセーフティ機能（２５０）に係る設定を支援するサポート装置（５００）であって、
前記制御システムには、前記標準コントローラからの指令に従って前記モータを動作させる一方で、前記セーフティコントローラからの指令に従って所定のセーフティ機能（２５０）を実行するセーフティドライバ（３００）が含まれ、
前記サポート装置は、
前記標準制御に係る設定時において、前記モータの動作に係る物理量の単位で当該標準制御に係る設定における設定値の入力を受け付ける受付部（５１１１）と、
前記モータの動作に係る物理量の単位と前記セーフティドライバによる前記モータに対する指令値の単位とを相互に変換するための変換用データ（５１０５）を保持するデータ保持部（５１００）と、
前記セーフティ機能に係る設定時において、前記変換用データに基づき、前記物理量の単位を前記指令値の単位に変換する変換部（５２１１）とを備える、サポート装置（５００）。
【０１８１】
［構成７］
モータ（４００）を制御する標準コントローラ（１００）で実行される標準制御（１５０）に係る設定、および制御システム（１）における安全を管理するセーフティコントローラ（２００）で実行される所定のセーフティ機能（２５０）に係る設定を支援するサポートプログラム（５１０４）であって、
前記制御システムには、前記標準コントローラからの指令に従って前記モータを動作させる一方で、前記セーフティコントローラからの指令に従って所定のセーフティ機能（２５０）を実行するセーフティドライバ（３００）が含まれ、
前記サポートプログラムは、コンピュータ（５０２）に、
前記標準制御に係る設定時において、前記モータの動作に係る物理量の単位で当該標準制御に係る設定における設定値の入力を受け付けるステップと、
前記セーフティ機能に係る設定時において、前記モータの動作に係る物理量の単位と前記セーフティドライバによる前記モータに対する指令値の単位とを相互に変換するための変換用データ（５１０５）に基づき、前記物理量の単位を前記指令値の単位に変換するステップとを実行させる、サポートプログラム（５１０４）。
【０１８２】
＜Ｎ．利点＞
本実施の形態に係る制御システム１によれば、サポート装置５００を用いたユーザによるセーフティ機能２５０に係る設定時において、変換用データ５１０５に基づき、物理量の単位が指令値の単位に変換される。これにより、セーフティ機能２５０に係る設定時において、ユーザが物理量の単位で設定値を扱ったとしても、当該物理量の単位での設定値が指令値の単位での設定値に変換されるため、開発におけるユーザの利便性を向上させることができる。
【０１８３】
今回開示された実施の形態はすべての点で例示であって制限的なものではないと考えられるべきである。本発明の範囲は、上記した説明ではなく、特許請求の範囲によって示され、特許請求の範囲と均等の意味および範囲内でのすべての変更が含まれることが意図される。
【符号の説明】
【０１８４】
１  制御システム、２  フィールドネットワーク、１００  標準コントローラ、１０２，２０２，３１２，３１４，５０２  プロセッサ、１０４，２０４，３１６，５０４  メインメモリ、１０６  上位ネットワークコントローラ、１０８，２０８，３０２  フィールドネットワークコントローラ、１１０，２１０，３２０，５１０  ストレージ、１１２  メモリカードインターフェイス、１１４  メモリカード、１１６  ローカルバスコントローラ、１１８，２１８，５１８  プロセッサバス、１２０，２２０，５２０  ＵＳＢコントローラ、１５０  標準制御、２００  セーフティコントローラ、２１６  セーフティローカルバスコントローラ、２３０  セーフティＩＯユニット、２４０  セーフティデバイス、２５０  セーフティ機能、３００  セーフティドライバ、３１０  制御部、３３０  ドライブ回路、３３２  フィードバック受信回路、３５０  サーボ制御、３６０  モーションセーフティ機能、４００  サーボモータ、４０２  三相交流モータ、４０４  エンコーダ、５００，５００ａ  サポート装置、５０６  入力部、５０８  出力部、５１２  光学ドライブ、５１４  記録媒体、５５０，８００，９００，９００ａ  ユーザインターフェイス、９０５  変換用ツール、１１０２，２１０２  システムプログラム、１１０４  標準制御プログラム、１１０５，５１０５  変換用データ、１１０６，２１０６，３２０３  設定情報、１１１０，５２１１  変換部、２１０４  セーフティプログラム、３００１  パルスカウント部、３００２  比較部、３００３  トルク調整部、３２０１  サーボ制御プログラム、３２０２  モーションセーフティプログラム、５１００  データ保持部、５１０２  ＯＳ、５１０４  サポートプログラム、５１０６  プロジェクトデータ、５１０８  標準制御ソースプログラム、５１１０  標準コントローラ設定情報、５１１１  受付部、５１１４  セーフティコントローラ設定情報、５１１６  セーフティドライバ設定情報、５１１７  セーフティソースプログラム。
【図１】
2020057151.tif 000003
【図２】
2020057151.tif 000004
【図３】
2020057151.tif 000005
【図４】
2020057151.tif 000006
【図５】
2020057151.tif 000007
【図６】
2020057151.tif 000008
【図７】
2020057151.tif 000009
【図８】
2020057151.tif 000010
【図９】
2020057151.tif 000011
【図１０】
2020057151.tif 000012
【図１１】
2020057151.tif 000013
【図１２】
2020057151.tif 000014
【図１３】
2020057151.tif 000015
【図１４】
2020057151.tif 000016
【図１５】
2020057151.tif 000017
【図１６】
2020057151.tif 000018
【図１７】
2020057151.tif 000019