(57)【要約】【課題】モータに関する設定を簡略化することが要望されている。【解決手段】モータに関する設定を行うための情報処理装置は、所定のユーザ操作を受付けたことに基づいて、同一の制御対象を駆動する複数のモータのそれぞれを指定するための複数のモータ情報を生成するための生成部と、当該生成された複数のモータ情報のそれぞれを、所定の座標系を定義する複数の軸のいずれかに割付けるための割付け部とを備える。【選択図】図６
2018169762.tif 000002
【特許請求の範囲】
【請求項１】
モータに関する設定を行うための情報処理装置であって、
所定のユーザ操作を受付けたことに基づいて、同一の制御対象を駆動する複数のモータのそれぞれを指定するための複数のモータ情報を生成するための生成部と、
前記生成された複数のモータ情報のそれぞれを、所定の座標系を定義する複数の軸のいずれかに割付けるための割付け部とを備える、情報処理装置。
【請求項２】
前記情報処理装置は、前記生成された複数のモータ情報に関する設定を受付けるユーザインターフェイスを提供するための提供部をさらに備え、
前記ユーザインターフェイスは、モータ数の設定を受付けるように構成されており、
前記生成部は、前記所定のユーザ操作を受付けたことに基づいて、前記設定されたモータ数と同数のモータ情報を生成する、請求項１に記載の情報処理装置。
【請求項３】
前記ユーザインターフェイスは、前記生成された複数のモータ情報を表示するとともに、各モータ情報に割付けられた軸を各モータ情報に並べて表示する、請求項２に記載の情報処理装置。
【請求項４】
前記ユーザインターフェイスは、
前記複数のモータ情報に割付けられている軸の種類が所定数よりも少ない場合には、予め定められた第１候補群の中から各モータ情報に割付ける軸を指定可能に構成されており、
前記複数のモータ情報に割付けられている軸の種類が前記所定数以上である場合には、各モータ情報に既に割付けられている軸を第２候補群として当該第２候補群の中から各モータ情報に割付ける軸を指定可能に構成されている、請求項３に記載の情報処理装置。
【請求項５】
前記生成部は、互いに重複しないように前記複数のモータ情報を生成する、請求項１〜４のいずれか１項に記載の情報処理装置。
【請求項６】
モータに関する設定を行うための情報処理方法であって、
所定のユーザ操作を受付けたことに基づいて、同一の制御対象を駆動する複数のモータのそれぞれを指定するための複数のモータ情報を生成するステップと、
前記生成された複数のモータ情報のそれぞれを、所定の座標系を定義する複数の軸のいずれかに割付けるステップとを備える、情報処理方法。
【請求項７】
モータに関する設定を行うための情報処理プログラムであって、
前記情報処理プログラムは、情報処理装置に、
所定のユーザ操作を受付けたことに基づいて、同一の制御対象を駆動する複数のモータのそれぞれを指定するための複数のモータ情報を生成するステップと、
前記生成された複数のモータ情報のそれぞれを、所定の座標系を定義する複数の軸のいずれかに割付けるステップとを実行させる、情報処理プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本開示は、モータに関する設定を行うための情報処理装置、情報処理方法、および情報処理プログラムに関する。
【背景技術】
【０００２】
複雑な形状のワークを加工することが可能な工作機械が普及している。工作機械は、ユーザによって設計されたＮＣ（Numerical Control）プログラムに基づいて動作する。ＮＣプログラムが実行する制御には、モータの駆動を制御するためのモーション制御が含まれている。通常、モータは工作機械において複数設けられており、単一のメカニカル機構（制御対象）が複数のモータ（複数の軸）で駆動される。複数のモータがＮＣプログラムによって同期して駆動されることで様々な挙動が実現される。このような複数のモータを管理する方法として、非特許文献１では、座標変換や状態管理を行う単位として「軸グループ」を定義することが提案されている。
【先行技術文献】
【非特許文献】
【０００３】
【非特許文献１】Technical Specification PLCopen - Technical Committee 2 - Task Force，Function blocks for motion control(Formerly Part 1 and Part 2)，PLCopen Working Draft，Version 1.99 - Release for comments - till August 16, 2010
【発明の概要】
【発明が解決しようとする課題】
【０００４】
設計者は、ＮＣプログラムを設計する前に、ＮＣプログラム上で各モータを一意に識別するためのモータ情報（以下、「論理モータ」ともいう。）を予め設定し、各論理モータについて座標系を登録する必要がある。座標系は、各論理モータに軸（たとえば、Ｘ軸，Ｙ軸，Ｚ軸など）を割付けることにより登録される。その後、設計者は、生成した論理モータを利用してＮＣプログラムを設計する。座標系が登録されることで、設計者は、当該座標系における各論理モータの位置などを指定したり、当該座標系に属する物体の位置などを指定したりすることが可能になる。
【０００５】
このように、設計者は、ＮＣプログラムを設計する前に、論理モータの設定や論理モータについての座標系の登録などを行う必要がある。このようなモータに関する設定を簡略化することが望まれている。
【課題を解決するための手段】
【０００６】
ある局面に従うと、モータに関する設定を行うための情報処理装置は、所定のユーザ操作を受付けたことに基づいて、同一の制御対象を駆動する複数のモータのそれぞれを指定するための複数のモータ情報を生成するための生成部と、上記生成された複数のモータ情報のそれぞれを、所定の座標系を定義する複数の軸のいずれかに割付けるための割付け部とを備える。
【０００７】
好ましくは、上記情報処理装置は、上記生成された複数のモータ情報に関する設定を受付けるユーザインターフェイスを提供するための提供部をさらに備える。上記ユーザインターフェイスは、モータ数の設定を受付けるように構成されている。上記生成部は、上記所定のユーザ操作を受付けたことに基づいて、上記設定されたモータ数と同数のモータ情報を生成する。
【０００８】
好ましくは、上記ユーザインターフェイスは、上記生成された複数のモータ情報を表示するとともに、各モータ情報に割付けられた軸を各モータ情報に並べて表示する。
【０００９】
好ましくは、上記ユーザインターフェイスは、上記複数のモータ情報に割付けられている軸の種類が所定数よりも少ない場合には、予め定められた第１候補群の中から各モータ情報に割付ける軸を指定可能に構成されており、上記複数のモータ情報に割付けられている軸の種類が上記所定数以上である場合には、各モータ情報に既に割付けられている軸を第２候補群として当該第２候補群の中から各モータ情報に割付ける軸を指定可能に構成されている。
【００１０】
好ましくは、上記生成部は、互いに重複しないように上記複数のモータ情報を生成する。
【００１１】
他の局面に従うと、モータに関する設定を行うための情報処理方法は、所定のユーザ操作を受付けたことに基づいて、同一の制御対象を駆動する複数のモータのそれぞれを指定するための複数のモータ情報を生成するステップと、上記生成された複数のモータ情報のそれぞれを、所定の座標系を定義する複数の軸のいずれかに割付けるステップとを備える。
【００１２】
他の局面に従うと、モータに関する設定を行うための情報処理プログラムは、情報処理装置に、所定のユーザ操作を受付けたことに基づいて、同一の制御対象を駆動する複数のモータのそれぞれを指定するための複数のモータ情報を生成するステップと、上記生成された複数のモータ情報のそれぞれを、所定の座標系を定義する複数の軸のいずれかに割付けるステップとを実行させる。
【発明の効果】
【００１３】
ある局面において、モータに関する設定を簡略化することができる。
【図面の簡単な説明】
【００１４】
【図１】実施の形態に従う制御システムの構成例を示す模式図である。
【図２】ステップＳ１におけるユーザインターフェイスの状態を示す図である。
【図３】ステップＳ２におけるユーザインターフェイスの状態を示す図である。
【図４】ステップＳ３におけるユーザインターフェイスの状態を示す図である。
【図５】ステップＳ４におけるユーザインターフェイスの状態を示す図である。
【図６】ステップＳ５におけるユーザインターフェイスの状態を示す図である。
【図７】ステップＳ４Ｘにおけるユーザインターフェイスの状態を示す図である。
【図８】ステップＳ５Ｘにおけるユーザインターフェイスの状態を示す図である。
【図９】ステップＳ６Ｘにおけるユーザインターフェイスの状態を示す図である。
【図１０】ステップＳ７Ｘにおけるユーザインターフェイスの状態を示す図である。
【図１１】論理モータの種類が変更されている様子を時系列で示す図である。
【図１２】論理モータ数を変更している様子を時系列で示す図である。
【図１３】論理モータに割付けられている軸の変更操作を示す図である。
【図１４】実施の形態に従うコントローラのハードウェア構成の一例を示す模式図である。
【図１５】実施の形態に従う情報処理装置のハードウェア構成の一例を示す模式図である。
【図１６】実施の形態に従うコントローラに接続されるサーボドライバの機能構成の一例を示す模式図である。
【図１７】実施の形態に従う情報処理装置の機能構成の一例を示す図である。
【図１８】論理モータの生成処理を表わすフローチャートである。
【図１９】論理モータの変更処理を表わすフローチャートである。
【図２０】論理モータに割付け済みの軸の変更処理を表わすフローチャートである。
【発明を実施するための形態】
【００１５】
以下、図面を参照しつつ、本発明に従う各実施の形態について説明する。以下の説明では、同一の部品および構成要素には同一の符号を付してある。それらの名称および機能も同じである。したがって、これらについての詳細な説明は繰り返さない。
【００１６】
＜Ａ．制御システムの構成例＞
まず、本実施の形態に従う制御システム１の構成例について説明する。図１は、本実施の形態に従う制御システム１の構成例を示す模式図である。図１には、制御システム１の制御対象として工作機械２が駆動されている例が示されている。
【００１７】
制御システム１は、ＰＬＣ（Programmable Logic Controller）などのコントローラ１００と、情報処理装置２００と、１または複数のサーボドライバとを含む。図１に示す構成においては、コントローラ１００には、３つのサーボドライバ３００Ｘ，３００Ｙ，３００Ｚ（以下、「サーボドライバ３００」とも総称する。）が接続されている。サーボドライバ３００は、対応するサーボモータを駆動する。
【００１８】
コントローラ１００には、フィールドネットワークＮＷ１を介して情報処理装置２００が接続されている。フィールドネットワークＮＷ１には、たとえば、ＥｔｈｅｒＮＥＴ（登録商標）が採用される。但し、フィールドネットワークＮＷ１は、ＥｔｈｅｒＮＥＴに限定されず、任意の通信手段が採用され得る。たとえば、コントローラ１００および情報処理装置２００は、信号線で直接接続されてもよい。情報処理装置２００は、工作機械２を制御するためのＮＣプログラムを設計する環境を提供する。情報処理装置２００上で設計されたＮＣプログラムは、フィールドネットワークＮＷ１を介してコントローラ１００に送られる。
【００１９】
コントローラ１００は、設計されたＮＣプログラムに従って１または複数のサーボドライバ３００に対してそれぞれ目標値を与えることで、サーボモータを含む制御対象を制御する。コントローラ１００と１または複数のサーボドライバ３００との間では、目標値を含むデータの遣り取りが可能になっている。
【００２０】
コントローラ１００には、１または複数のサーボドライバ３００が接続されている。コントローラ１００およびサーボドライバ３００は、フィールドネットワークＮＷ２を介してデイジーチェーンで接続されている。フィールドネットワークＮＷ２には、たとえば、ＥｔｈｅｒＣＡＴ（登録商標）が採用される。但し、フィールドネットワークＮＷ２は、ＥｔｈｅｒＣＡＴに限定されず、任意の通信手段が採用され得る。一例として、コントローラ１００およびサーボドライバ３００は、信号線で直接接続されてもよい。また、コントローラ１００およびサーボドライバ３００は、一体的に構成されてもよい。
【００２１】
工作機械２は、ワークＷが置載されるワーキングプレート３を互いに直交するＸＹ方向にそれぞれ移動させることができるとともに、主軸１０をＺ方向移動させることができる機構である。
【００２２】
より具体的には、第１ベースプレート４には、ワーキングプレート３をＸ方向に沿って任意に移動させるボールネジ６が配置されている。ボールネジ６は、ワーキングプレート３に含まれるナットと係合されている。ボールネジ６の一端に連結されたサーボモータ４００Ｘが回転駆動することで、ワーキングプレート３に含まれるナットとボールネジ６とが相対回転し、その結果、ワーキングプレート３がＸ方向に沿って移動する。
【００２３】
さらに、第２ベースプレート７は、ワーキングプレート３および第１ベースプレート４をＹ方向に沿って任意に移動させるボールネジ９が配置されている。ボールネジ９は、第１ベースプレート４に含まれるナットと係合されている。ボールネジ９の一端に連結されたサーボモータ４００Ｙが回転駆動することで、第１ベースプレート４に含まれるナットとボールネジ９とが相対回転し、その結果、ワーキングプレート３および第１ベースプレート４がＹ方向に沿って移動する。
【００２４】
さらに、主軸１０は、サーボモータ４００Ｚに連結されている。サーボモータ４００Ｚが回転駆動することで、主軸１０が上下方向（Ｚ方向）に移動する。
【００２５】
コントローラ１００は、予め指定された目標軌跡に沿って、サーボドライバ３００Ｘに対してＸ方向の目標位置を目標値として与えるとともに、サーボドライバ３００Ｙに対してＹ方向の目標位置を目標値として与え、サーボドライバ３００Ｚに対してＺ方向の目標位置を目標値として与える。Ｘ〜Ｚ方向のそれぞれの目標位置が順次更新されることで、工作機械２は、ワークＷと主軸１０との相対的な位置関係を制御し、ワークＷを任意の形状に加工することができる。
【００２６】
サーボドライバ３００は、後述するような制御ループに係る演算を実行するためのコントローラ３０２と、コントローラ３０２での演算結果に基づいて、サーボモータ４００に対して動力信号を与えるドライブ回路３０４とを含む。後述するように、サーボドライバ３００には、工作機械２の状態（すなわち、位置などの制御量）を示すフィードバック値を受信するようになっている。
【００２７】
本実施の形態においては、一例として、サーボモータ４００の回転軸に結合されたエンコーダからの出力信号をフィードバック値とする構成例を示す。エンコーダからの出力信号により、サーボモータ４００の位置、回転位相、回転速度、累積回転数などを検出できる。なお、サーボモータ４００からのフィードバック値は、コントローラ１００へ直接入力されてもよい。
【００２８】
＜Ｂ．論理モータを生成するためのユーザインターフェイス＞
情報処理装置２００は、工作機械２を制御するためのＮＣプログラムを設計する環境を提供する。設計者は、ＮＣプログラムを設計する前に、サーボモータ４００の各々をＮＣプログラム上で一意に識別するためのモータ情報（すなわち、論理モータ）を予め生成し、各論理モータについて座標系を登録する必要がある。座標系は、各論理モータに軸（たとえば、Ｘ軸，Ｙ軸，Ｚ軸など）を割付けることにより登録される。その後、設計者は、生成した論理モータを利用してＮＣプログラムを設計することができる。設計者は、登録した座標系において各論理モータの位置などを指定したり、当該座標系に属する物体の位置などを指定したりすることが可能になる。
【００２９】
本実施の形態に従う情報処理装置２００は、所定のユーザ操作を受付けたことに基づいて、論理モータを自動で生成する。これにより、ＮＣプログラムの設計効率が改善される。以下では、図２〜図６を参照して、論理モータに関する設定を受付けるユーザインターフェイス５００について説明する。図２は、ステップＳ１におけるユーザインターフェイス５００の状態を示す図である。図３は、ステップＳ２におけるユーザインターフェイス５００の状態を示す図である。図４は、ステップＳ３におけるユーザインターフェイス５００の状態を示す図である。図５は、ステップＳ４におけるユーザインターフェイス５００の状態を示す図である。図６は、ステップＳ５におけるユーザインターフェイス５００の状態を示す図である。
【００３０】
ステップＳ１におけるユーザインターフェイス５００は、プロジェクト設定領域５０１を有する。プロジェクト設定領域５０１は、設計対象のＮＣプログラムを管理するためのプロジェクトの設定を受付ける。一例として、プロジェクト設定領域５０１は、プロジェクト名、プログラムの作成者、コメント、プログラムの種類などの入力を受付ける。
【００３１】
また、ステップＳ１におけるユーザインターフェイス５００は、コントローラ設定領域５０２を有する。コントローラ設定領域５０２は、コントローラ１００に関する設定を受付ける。一例として、コントローラ設定領域５０２は、コントローラ１００の種類、コントローラ１００の型番、コントローラ１００のバージョンなどの入力を受付ける。
【００３２】
作成ボタン５０３が押下されると、情報処理装置２００は、プロジェクト設定領域５０１およびコントローラ設定領域５０２に入力された情報に従って新規のプロジェクトを生成し、ユーザインターフェイス５００の画面態様を図３に示される状態に遷移させる。
【００３３】
ステップＳ２において、ユーザインターフェイス５００は、新規プロジェクト画面を表示している。当該ユーザインターフェイス５００の座標系設定欄５２１が右クリックなどで選択されると、追加選択項目５２２が展開される。展開された追加選択項目５２２が選択されると、座標系設定項目５２３がさらに展開される。座標系設定項目５２３が選択されると、Ｓ３に示されるように、座標系設定欄５２１に座標系項目５３１が追加される。
【００３４】
ステップＳ４において、追加された座標系項目５３１がダブルクリックされたとする。これにより、ユーザインターフェイス５００は、座標系の登録を行うための座標系設定画面５４１を表示する。設計者は、座標系設定画面５４１において論理モータに軸を割付けることができる。
【００３５】
座標系の登録を行う前に、設計者は、論理モータを予め生成する必要がある。一例として、ステップＳ５におけるユーザインターフェイス５００に対して生成ボタン５５１の押下操作など所定のユーザ操作が行われたとする。このことに基づいて、情報処理装置２００は、論理モータ５５２を自動で生成する。論理モータ５５２の各々は、ＮＣプログラム上でモータを一意に識別するためのモータ情報である。典型的には、論理モータ５５２は、ＮＣプログラム上で利用され得る変数として表され、設計者は、ＮＣプログラム上で当該変数を記述することで特定のモータに対する挙動を定義することができる。
【００３６】
好ましくは、ユーザインターフェイス５００は、モータ数の設定を受付けるモータ数設定欄５５７を有し、モータ数設定欄５５７において設定されたモータ数と同数の論理モータを生成する。図６の例では、モータ数設定欄５５７において「３個」が指定されており、論理モータ「ＣＮＣ＿Ｍｏｔｏｒ０００（０）」，論理モータ「ＣＮＣ＿Ｍｏｔｏｒ００１（１）」，論理モータ「ＣＮＣ＿Ｍｏｔｏｒ００２（２）」が生成されている。論理モータ「ＣＮＣ＿Ｍｏｔｏｒ０００（０）」はモータ「ＣＮＣモータＰ０」に関連付けられている。論理モータ「ＣＮＣ＿Ｍｏｔｏｒ００１（１）」はモータ「ＣＮＣモータＰ１」に関連付けられている。論理モータ「ＣＮＣ＿Ｍｏｔｏｒ０００（０）」はモータ「ＣＮＣモータＰ２」に関連付けられている。
【００３７】
好ましくは、情報処理装置２００は、予め定められた生成ルールに従って互いに重複しないように論理モータを生成する。一例として、情報処理装置２００は、各論理モータに連番を付すことにより論理モータの名前を異ならせる。あるいは、情報処理装置２００は、各論理モータに連続する英文字を付すことにより論理モータの名前を異ならせてもよい。
【００３８】
論理モータ５５２が生成されたことに基づいて、論理モータ５５２に相当する論理モータ情報５５４が座標系項目５３１に追加される。同時に、論理モータ５５２に相当する論理モータ情報５５６がモータ設定項目５５５に追加される。
【００３９】
情報処理装置２００は、生成された各論理モータを、所定の座標系を定義する複数の軸のいずれかに割付ける。各論理モータに軸が割付けられることで座標系が定義される。初期値として割付けられる軸は、任意に割付けられる。図６の例では、論理モータ「ＣＮＣ＿Ｍｏｔｏｒ０００（０）」には「Ｘ軸」が初期値として割付けられている。論理モータ「ＣＮＣ＿Ｍｏｔｏｒ００１（１）」には「Ｙ軸」が初期値として割付けられている。論理モータ「ＣＮＣ＿Ｍｏｔｏｒ００２（２）」には「Ｚ軸」が初期値として割付けられている。
【００４０】
好ましくは、ユーザインターフェイス５００は、生成された論理モータ５５２を表示するとともに、論理モータ５５２に割付けられた軸を各論理モータに並べて表示する。これにより、設計者は、各論理モータに割付けられている軸を即座に理解することができる。
【００４１】
設計者は、各論理モータに割付けられている軸の種類を任意に変更することができる。割付け可能な軸の候補は、予め決められている。一例として、割付け可能な軸の候補は、Ｘ軸、Ｙ軸、Ｚ軸、Ａ軸、Ｂ軸、Ｃ軸を含む。Ｘ軸は、水平方向に対するサーボモータの駆動を表わす。Ｙ軸は、水平面上におけるＸ軸の直交方向に対するサーボモータの駆動を表わす。Ｚ軸は、ＸＹ平面の直交方向である鉛直方向に対するサーボモータの駆動を表わす。Ａ軸は、Ｘ軸の回転方向に対するサーボモータの駆動を表わす。Ｂ軸は、Ｙ軸の回転方向に対するサーボモータの駆動を表わす。Ｃ軸は、Ｚ軸の回転方向に対するサーボモータの駆動を表わす。展開ボタン５５８が押下されると割付け可能な軸の候補が展開され、設計者は、展開された候補のいずれかを選択することで、各論理モータについて割付ける軸を変更することができる。
【００４２】
以上のようにして、設計者は、論理モータの生成と、各論理モータへの軸の割付けを行う。情報処理装置２００は、モータ数設定欄５５７において設定されたモータ数に従って論理モータの自動生成機能を有するので、モータに関する設定が簡略化され、ＮＣプログラムの設計工数が削減される。
【００４３】
＜Ｃ．比較例＞
論理モータの自動生成機能の意義を説明するために、図７〜図１０を参照して、論理モータの自動生成機能を利用しない場合における設計手順について説明する。図７は、ステップＳ４Ｘにおけるユーザインターフェイス５００Ｘの状態を示す図である。図８は、ステップＳ５Ｘにおけるユーザインターフェイス５００Ｘの状態を示す図である。図９は、ステップＳ６Ｘにおけるユーザインターフェイス５００Ｘの状態を示す図である。図１０は、ステップＳ７Ｘにおけるユーザインターフェイス５００Ｘの状態を示す図である。
【００４４】
図７示されるステップＳ４Ｘにおけるユーザインターフェイス５００Ｘの画面は、上述のステップＳ３（図４参照）に表示される画面の続きを表わす。ステップＳ４Ｘにおいて、ユーザインターフェイス５００Ｘにおけるモータ設定欄５７１が右クリックなどで選択されたとする。これにより、追加選択項目５７２が展開される。展開された追加選択項目５７２が選択されると、モータ設定項目５７３がさらに展開される。モータ設定項目５７３が選択されると、ステップＳ５Ｘに示されるように、情報処理装置２００は、モータ設定欄５７１に論理モータ５７５を新たに追加する。
【００４５】
ステップＳ６Ｘにおいて、追加された座標系項目５３１がダブルクリックされたとする。このことに基づいて、ユーザインターフェイス５００は、座標系設定画面５４１を表示する。展開ボタン５５８が押下されると、追加された論理モータ５７５に相当する「ＣＮＣ＿Ｍｏｔｏｒ０００（０）」が論理モータの選択肢として展開される。
【００４６】
ステップＳ７Ｘにおいて、展開された論理モータ「ＣＮＣ＿Ｍｏｔｏｒ０００（０）」が選択されたとする。これにより、論理モータ「ＣＮＣ＿Ｍｏｔｏｒ０００（０）」がサーボモータ「ＣＮＣモータＰ０」に関連付けられる。
【００４７】
設計者は、工作機械２におけるモータの数の分だけステップＳ４Ｘ〜Ｓ７Ｘに示される操作を繰り返す。このように、設計者は、論理モータの自動生成機能を利用しない場合には、論理モータの追加と選択とを繰り返し行う必要がある。論理モータの自動生成機能が利用された場合には、このような手間が省かれるため、ＮＣプログラムの設計工数が削減される。
【００４８】
＜Ｄ．論理モータの変更操作＞
図１１を参照して、ユーザインターフェイス５００における論理モータの変更操作について説明する。図１１は、論理モータの種類が変更されている様子を時系列で示す図である。図１１に示されるユーザインターフェイス５００は、図６に示されるユーザインターフェイス５００の一部に相当する。
【００４９】
ユーザインターフェイス５００は、論理モータ５５２の種類を変更可能に構成される。一例として、論理モータ５５２には展開ボタン５５３が準備されており、展開ボタン５５３が押下されることで、論理モータの選択肢が展開される。図１１の例では、サーボモータ「ＣＮＣモータＰ２」の展開ボタン５５３が押下されることで、選択肢５５９が論理モータの候補として表示されている。設計者は、選択肢５５９の中から特定の論理モータを選択することで、サーボモータ「ＣＮＣモータＰ２」に論理モータ「ＣＮＣ＿Ｍｏｔｏｒ００２（２）」を関連付けることができる。図１１の例では、サーボモータ「ＣＮＣモータＰ２」に関連付けられている論理モータ「ＣＮＣ＿Ｍｏｔｏｒ００２（２）」が論理モータ「ＣＮＣ＿Ｍｏｔｏｒ００５（５）」に変更されている。
【００５０】
好ましくは、情報処理装置２００は、現在の設定対象の座標系に属する論理モータについては選択肢５５９に含めない。すなわち、図１１の例では、論理モータ「ＣＮＣ＿Ｍｏｔｏｒ０００（０）」，「ＣＮＣ＿Ｍｏｔｏｒ００１（１）」は、選択肢５５９に含まれない。
【００５１】
選択肢５５９から論理モータが新たに選択されると、情報処理装置２００は、選択された論理モータが現在の設定対象の座標系とは異なる他の座標系に既に割付けられているか否かを判断する。選択された論理モータが他の座標系に既に割付けられていると判断した場合、ユーザインターフェイス５００は、そのことを示す警告５８０を表示する。警告５８０上のＯＫボタン５８１が押下されると、情報処理装置２００は、選択された論理モータを他の座標系から削除する。キャンセルボタン５８２が押下されると、情報処理装置２００は、現在の設定を維持した状態で警告５８０を閉じる。
【００５２】
図１１の例では、ＯＫボタン５８１が押下されたとする。これにより、他の座標系に割付けられていた論理モータ「ＣＮＣ＿Ｍｏｔｏｒ００５（５）」が現在の設定対象の座標系に割付けられる。
【００５３】
＜Ｅ．論理モータの数の変更操作＞
図１２を参照して、論理モータ数の変更操作について説明する。図１２は、論理モータ数を変更している様子を時系列で示す図である。図１２に示されるユーザインターフェイス５００は、図６に示されるユーザインターフェイス５００の一部に相当する。
【００５４】
上述したように、ユーザインターフェイス５００は、モータ数の設定を受付けるモータ数設定欄５５７を有する。モータ数設定欄５５７におけるモータ数が変更されると、ユーザインターフェイス５００は、変更後のモータ数に応じて論理モータの設定欄を追加／削除する。図１２の例では、モータ数設定欄５５７におけるモータ数が「３個」から「５個」に変更されている。このことに基づいて、２つの論理モータの設定欄５６０が追加される。
【００５５】
一例として、設定欄５６０の追加直後においては、論理モータは、設定欄５６０に割付けられない。設定欄５６０が追加された状態で生成ボタン５５１が押下されると、設定欄５６０の追加数に応じた論理モータが新たに生成され、生成された論理モータが設定欄５６０に反映される。
【００５６】
一方で、追加された設定欄５６０には、予め定められた複数の軸のいずれかの軸が初期値として割付けられる。図１２の例では、サーボモータ「ＣＮＣモータＰ３」には「Ａ軸」が初期値として割付けられている。サーボモータ「ＣＮＣモータＰ４」には「Ｘ軸」が初期値として割付けられている。
【００５７】
論理モータに割付け可能な軸の最大数は、国によっては法律で規制されている場合がある。割付ける軸が任意に設定されると、兵器などに利用される部品が生成され得るためである。そのため、好ましくは、既に割付けられている軸の種類が割付け可能な最大数を超えないように新たな軸が割付けられる。たとえば、割付け可能な軸の最大数が４種類であり、設定欄５６０の追加前には既に「Ｘ軸」，「Ｙ軸」，「Ｚ軸」の３種類が既に割付けられているとする。この場合において、「Ａ軸」が新たに設定欄５６０の１つに割付けられると、割付け済の軸が４種類になる。その後、軸の種類が増えないように、残りの１つの設定欄５６０に軸が割付けられる。すなわち、「Ｘ軸」，「Ｙ軸」，「Ｚ軸」，「Ａ軸」のいずれかが残りの１つの設定欄５６０に割付けられる。これにより、割付けられる軸の種類が所定数に制限されるため、設計者による設計ミスが抑制される。
【００５８】
＜Ｆ．軸の変更操作＞
図１３を参照して、論理モータに割付けられている軸の変更操作について説明する。図１３は、論理モータに割付けられている軸の変更操作を示す図である。図１３（Ａ），図１３（Ｂ）に示されるユーザインターフェイス５００は、図６に示されるユーザインターフェイス５００の一部に相当する。
【００５９】
上述したように、割付け可能な軸の最大数は、国によっては法律で規制されている場合がある。そこで、ユーザインターフェイス５００は、論理モータに既に割付けられている軸の種類数に応じて選択可能な軸の種類を調整する。
【００６０】
より具体的には、論理モータに既に割付けられている軸の種類が所定数よりも少ない場合には、ユーザインターフェイス５００は、予め定められた第１候補群の中から各論理モータに割付ける軸を指定可能に構成される。一方で、論理モータに既に割付けられている軸の種類が所定数以上である場合には、ユーザインターフェイス５００は、当該割付け済みの軸を第２候補群として当該第２候補群の中から各論理モータに割付ける軸を指定可能に構成される。
【００６１】
たとえば、割付け可能な軸の最大数が４種類に設定されているとする。この場合において、図１３（Ａ）に示されるように、「Ｘ軸」，「Ｙ軸」，「Ｚ軸」の３種類の軸が論理モータに既に割付けられているとする。この場合、予め定められた全軸（すなわち、Ｘ軸、Ｙ軸、Ｚ軸、Ａ軸、Ｂ軸、Ｃ軸）が第１候補群５６１として決定され、設計者は、第１候補群５６１の中から各論理モータに割付ける軸を指定できる。
【００６２】
他の例として、図１３（Ｂ）に示されるように、「Ｘ軸」，「Ｙ軸」，「Ｚ軸」，「Ｃ軸」の４種類の軸が論理モータに既に割付けられているとする。この場合、既に割付けられている軸の種類（すなわち、Ｘ軸、Ｙ軸、Ｚ軸、Ｃ軸）が第２候補群５６２として決定され、設計者は、第２候補群５６２の中から各論理モータに割付ける軸を指定できる。
【００６３】
このように、既に割付けられている軸の種類数に応じて、選択可能な軸の種類が第１候補群５６１から第２候補群５６２に制限される。すなわち、第２候補群５６２に含まれる軸の種類数は、第１候補群５６１に含まれる軸の種類数よりも少ない。これにより、選択され得る軸の種類数が一定以下に保たれ、設計者による設計ミスが抑制される。
【００６４】
＜Ｇ．装置構成＞
次に、図１４〜図１６を参照して、本実施の形態に従う制御システム１を構成する各装置の装置構成について説明する。
【００６５】
（ｇ１．コントローラ１００）
まず、図１４を参照して、制御システム１を構成するコントローラ１００のハードウェア構成について説明する。図１４は、コントローラ１００のハードウェア構成の一例を示す模式図である。
【００６６】
コントローラ１００は、ＣＰＵ（Central Processing Unit）やＭＰＵ（Micro-Processing Unit）などのプロセッサ１０２と、チップセット１０４と、メインメモリ１０６と、フラッシュメモリ１０８と、外部ネットワークコントローラ１１６と、メモリカードインターフェイス１１８と、内部バスコントローラ１２２と、フィールドバスコントローラ１２４とを含む。
【００６７】
プロセッサ１０２は、フラッシュメモリ１０８に格納されたシステムプログラム１１０およびユーザプログラム１１２を読み出して、メインメモリ１０６に展開して実行することで、工作機械２などの制御対象に対する任意の制御を実現する。プロセッサ１０２がシステムプログラム１１０およびユーザプログラム１１２を実行することで、後述するような、サーボドライバへの目標値の出力、サーボドライバからのフィードバック値の取得、フィールドバスを介したデータ通信に係る処理などを実行する。
【００６８】
システムプログラム１１０は、データの入出力処理や実行タイミング制御などの、コントローラ１００の基本的な機能を提供するための命令コードを含む。ユーザプログラム１１２は、制御対象に応じて任意に設計され、シーケンス制御を実行するためのシーケンスプログラム１１２Ａおよびモーション制御を実行するためのモーションプログラム１１２Ｂとを含む。ユーザプログラム１１２は、たとえば、ＮＣプログラムである。
【００６９】
チップセット１０４は、各コンポーネントを制御することで、コントローラ１００全体としての処理を実現する。
【００７０】
内部バスコントローラ１２２は、コントローラ１００と内部バスを通じて連結される各種デバイスとデータを遣り取りするインターフェイスである。このようなデバイスの一例として、Ｉ／Ｏユニット１２６が接続されている。
【００７１】
フィールドバスコントローラ１２４は、コントローラ１００とフィールドバスを通じて連結される各種デバイスとデータを遣り取りするインターフェイスである。このようなデバイスの一例として、サーボドライバ３００が接続されている。
【００７２】
内部バスコントローラ１２２およびフィールドバスコントローラ１２４は、接続されているデバイスに対して任意の指令を与えることができるとともに、デバイスが管理している任意のデータ（測定値を含む）を取得することができる。また、内部バスコントローラ１２２および／またはフィールドバスコントローラ１２４は、サーボドライバ３００との間でデータを遣り取りするためのインターフェイスとしても機能する。
【００７３】
外部ネットワークコントローラ１１６は、各種の有線／無線ネットワークを通じたデータの遣り取りを制御する。メモリカードインターフェイス１１８は、メモリカード１２０を着脱可能に構成されており、メモリカード１２０に対してデータを書込み、メモリカード１２０からデータを読出すことが可能になっている。
【００７４】
（ｇ２．情報処理装置２００）
次に、図１５を参照して、情報処理装置２００のハードウェア構成について例示する。図１５は、情報処理装置２００のハードウェア構成の一例を示す模式図である。
【００７５】
情報処理装置２００は、ノートＰＣ（Personal Computer）、タブレット端末、スマートフォンなどの携帯端末であってもよいし、デスクトップ型のＰＣなどの非携帯端末であってもよい。
【００７６】
情報処理装置２００は、主たるコンポーネントとして、オペレーティングシステム（ＯＳ：Operating System）およびＮＣプログラムなどの制御プログラムを実行するプロセッサ２０２と、プロセッサ２０２でのプログラム実行に必要なデータを格納するための作業領域を提供するメモリ２０４と、キーボードやマウスなどのユーザ操作を受付ける操作ユニット２０６と、ディスプレイ、各種インジケータ、プリンタなどの処理結果を出力する出力ユニット２０８と、外部ネットワークと通信するためのネットワークインターフェイス（Ｉ／Ｆ：Inter Face）２１０と、光学ドライブ２１２と、コントローラ１００などと通信するためのローカル通信インターフェイス（Ｉ／Ｆ）２１６と、補助記憶装置２２０とを含む。これらのコンポーネントは、内部バス２１８などを介してデータ通信可能に接続される。
【００７７】
情報処理装置２００は、光学ドライブ２１２を有しており、コンピュータ読取可能なプログラムを非一過的に格納する光学記録媒体（たとえば、ＤＶＤ（Digital Versatile Disc）など）のコンピュータ読取可能な記録媒体２１４から、各種プログラムを読取って補助記憶装置２２０などにインストールする。本実施の形態に従うＮＣプログラムの生成処理は、コントローラ１００に対する設定、プログラミング、デバッグなどの機能を提供する開発環境プログラムの一部として提供されてもよい。
【００７８】
情報処理装置２００で実行される各種プログラムは、コンピュータ読取可能な記録媒体２１４を介してインストールされてもよいが、ネットワーク上のサーバ装置などからダウンロードする形でインストールするようにしてもよい。また、本実施の形態に従うＮＣプログラムの生成機能に係るプログラムは、ＯＳが提供するモジュールの一部を利用する形で実現される場合もある。このような場合には、本実施の形態に従うＮＣプログラムの生成機能の実現に必要なすべてのソフトウェアモジュールが配布されるのではなく、その一部のみが配布されることになる。このような場合であっても、本発明の技術的範囲に包含されることは自明である。また、本実施の形態に従うＮＣプログラムの生成機能が、他のプログラムまたはソフトウェアの一部として実装されてもよい。
【００７９】
補助記憶装置２２０は、たとえば、ＨＤＤ（Hard Disk Drive）やＳＳＤ（Flash Solid State Drive）などで構成され、プロセッサ２０２で実行されるプログラムを格納する。具体的には、補助記憶装置２２０は、上述のユーザインターフェイス５００などを提供するための情報処理プログラム２２２、後述のコントローラ情報２２４、後述の設定情報２２６などを含む。
【００８０】
図１５には、汎用コンピュータがプログラムを実行することで、本実施の形態に従うＮＣプログラムの生成機能を実現するが、このような構成に代えて、その全部または一部をハードワイヤード回路で実装してもよい。たとえば、プロセッサ２０２が上述の各種プログラムを実行することで提供される機能をＡＳＩＣ（Application Specific Integrated Circuit）やＦＰＧＡ（Field-Programmable Gate Array）を用いて実装してもよい。
【００８１】
（ｇ３．サーボドライバ３００）
本実施の形態に従うコントローラ１００に接続されるサーボドライバ３００の機能構成について説明する。図１６は、本実施の形態に従うコントローラ１００に接続されるサーボドライバ３００の機能構成の一例を示す模式図である。
【００８２】
本実施の形態に従う制御システム１においては、コントローラ１００からサーボドライバ３００に対して目標値として目標位置が与えられるとともに、サーボモータ４００に結合されたエンコーダ４０２からの出力信号がフィードバック値として与えられる。
【００８３】
本実施の形態に従う制御システム１に含まれるサーボドライバ３００は、エンコーダ４０２からのフィードバック値により得られる実位置がコントローラ１００などから与えられる目標位置に追従するように、ドライブ回路３０４に対する操作量である電流指令を調整する。一例として、本実施の形態に従うサーボドライバ３００においては、モデル追従制御系の制御ループが構成される。すなわち、サーボドライバ３００では、モデル追従制御系の制御ループに従う制御演算が実行される。
【００８４】
これらの制御ループに設定される制御ゲインなどの制御パラメータは、制御対象に応じて予め最適化されることになる。すなわち、サーボドライバ３００は、制御対象に応じて決定された制御パラメータに基づいて、サーボモータ４００を駆動するための操作量を決定する制御演算を実行するように構成されている。具体的には、サーボドライバ３００のコントローラ３０２にて実行される制御演算は、メインループとしての位置制御ループに加えて、マイナーループとしての速度制御ループを含む。
【００８５】
より具体的には、サーボドライバ３００のコントローラ３０２は、機能構成として、差分演算部３１０，３１４と、位置制御部３１２と、速度制御部３１６と、加算部３１８と、トルク制御部３２０と、速度検出部３２２と、モデル追従制御部３３０とを含む。
【００８６】
位置制御部３１２は、位置についての制御ループを構成する制御演算部であり、差分演算部３１０からの位置偏差に応じた速度指令を操作量として出力する。差分演算部３１０は、モデル追従制御部３３０からの位置指令と実位置（フィードバック値）との偏差を算出する。
【００８７】
速度制御部３１６は、速度についての制御ループを構成する制御演算部であり、差分演算部３１４からの速度偏差に応じたトルク指令を操作量として出力する。差分演算部３１４は、位置制御部３１２からの操作量（速度指令）と実速度（フィードバック値）との偏差を算出する。
【００８８】
速度検出部３２２は、エンコーダ４０２からのフィードバック値（たとえば、サーボモータ４００の回転数に比例した数のパルス）からサーボモータ４００の実速度（あるいは実回転速度）を検出する。
【００８９】
トルク制御部３２０は、トルクについての制御ループを構成する制御演算部であり、速度検出部３２２からの操作量（トルク指令）に応じた電流指令を操作量として出力する。
【００９０】
ドライブ回路３０４では、トルク制御部３２０からの操作量（電流指令）を実現できるように、サーボモータ４００へ供給される電流の大きさ、タイミング、波形などが調整される。
【００９１】
モデル追従制御部３３０は、チューニングにより、制御対象（サーボドライバ３００およびサーボドライバ３００により駆動される負荷（機械））の動特性を示す特性パラメータを予め取得している。モデル追従制御部３３０は、コントローラ１００などから与えられる目標位置に対して、この特性パラメータに基づいて、位置制御ループにおける目標値となる位置指令と、速度制御ループに対する速度フィードフォワードと、トルク制御ループに対するトルクフィードフォワードとを算出する。
【００９２】
＜Ｈ．機能構成＞
図１７を参照して、情報処理装置２００の機能について説明する。図１７は、情報処理装置２００の機能構成の一例を示す図である。
【００９３】
図１７に示されるように、情報処理装置２００は、主要なハードウェア構成として、プロセッサ２０２と、出力ユニット２０８と、補助記憶装置２２０とを含む。プロセッサ２０２は、機能構成として、提供部２８２と、生成部２８４と、割付け部２８６とを含む。補助記憶装置２２０は、データとして、コントローラ情報２２４と、設定情報２２６とを格納している。
【００９４】
提供部２８２は、ＮＣプログラムを設計するためのアプリケーションが起動されたことに基づいて、ＮＣプログラムの設計画面であるユーザインターフェイス５００を出力ユニット２０８に表示する。ユーザインターフェイス５００については図２〜図６で説明した通りであるので、その説明については繰り返さない。
【００９５】
生成部２８４は、所定のユーザ操作を受付けたことに基づいて、ユーザインターフェイス５００のモータ数設定欄５５７（図６参照）に設定されたモータ数と同数の論理モータを生成する。より具体的には、まず、生成部２８４は、コントローラ情報２２４を参照して、コントローラ設定領域５０２（図２参照）において指定されたコントローラに接続可能なモータの最大数を取得する。コントローラ情報２２４は、接続可能なモータの最大数をコントローラの種類ごとに規定しているデータである。生成済みの論理モータ数と生成予定の論理モータ数との合計が接続可能なモータの最大数を超えている場合、生成部２８４は、論理モータを生成せずに処理を終了する。そうでない場合には、生成部２８４は、モータ数設定欄５５７に設定されたモータ数と同数の論理モータを生成する。
【００９６】
好ましくは、生成部２８４は、論理モータに関する設定情報２２６を参照して、互いに重複しないように論理モータの名前を決定する。設定情報２２６は、モータ番号と、登録済であるか否かを示す情報と、論理モータの名称と、論理モータに割付けられている軸とを関連付けているデータである。生成部２８４は、設定情報２２６に既に規定されている論理モータ名を論理モータ名の候補から除外する。これにより、論理モータの名前が重複しなくなる。生成部２８４によって生成された論理モータは、設定情報２２６に書き込まれる。
【００９７】
割付け部２８６は、生成部２８４によって生成された論理モータのそれぞれを、所定の座標系を定義する複数の軸のいずれかに割付ける。このとき、割付け部２８６は、割付ける軸の種類の数が所定数を超えないように各論理モータに軸を割付ける。たとえば、割付け可能な軸の最大数が４種類に制限されている場合には、割付け部２８６は、論理モータに割付ける軸の種類数が４種類に収まるように各論理モータに軸を割付ける。各論理モータに割付けられた軸は、設定情報２２６に書き込まれる。
【００９８】
＜Ｉ．情報処理装置２００制御構造＞
図１８〜図２０を参照して、情報処理装置２００の制御構造について説明する。図１８は、論理モータの生成処理を表わすフローチャートである。図１９は、論理モータの変更処理を表わすフローチャートである。図２０は、論理モータに割付け済みの軸の変更処理を表わすフローチャートである。図１８〜図２０の処理は、情報処理装置２００のプロセッサ２０２がプログラムを実行することにより実現される。他の局面において、処理の一部または全部が、回路素子またはその他のハードウェアによって実行されてもよい。
【００９９】
（ｉ１．論理モータの生成フロー）
まず、図１８を参照して、論理モータの生成処理のフローについて説明する。
【０１００】
ステップＳ１０において、プロセッサ２０２は、論理モータを生成するためのユーザ操作を受付けたか否かを判断する。一例として、当該ユーザ操作は、ユーザインターフェイス５００における生成ボタン５５１（図６参照）の押下操作を含む。プロセッサ２０２は、論理モータを生成するためのユーザ操作を受付けたと判断した場合（ステップＳ１０においてＹＥＳ）、制御をステップＳ１２に切り替える。そうでない場合には（ステップＳ１０においてＮＯ）、プロセッサ２０２は、ステップＳ１０の処理を再び実行する。
【０１０１】
ステップＳ１２において、プロセッサ２０２は、上述のコントローラ情報２２４（図１７参照）を参照して、ユーザインターフェイス５００のコントローラ設定領域５０２（図２参照）において指定されたコントローラに接続可能なモータの最大数を取得する。
【０１０２】
ステップＳ１４において、プロセッサ２０２は、上述の設定情報２２６を参照して、生成済みの論理モータの数を取得する。
【０１０３】
ステップＳ２０において、プロセッサ２０２は、ステップＳ１４で取得した生成済みの論理モータ数と、ユーザインターフェイス５００のモータ数設定欄５５７（図６参照）に設定されたモータ数との合計を算出し、当該合計がステップＳ１２で取得したモータ最大数を超えているか否かを判断する。プロセッサ２０２は、当該合計が接続可能なモータの最大数を超えていると判断した場合（ステップＳ２０においてＹＥＳ）、図１８に示される処理を終了する。そうでない場合には（ステップＳ２０においてＮＯ）、プロセッサ２０２は、制御をステップＳ２２に切り替える。
【０１０４】
ステップＳ２２において、プロセッサ２０２は、上述の生成部２８４（図１７参照）として、ユーザインターフェイス５００のモータ数設定欄５５７に設定されたモータ数と同数の論理モータを生成する。このとき、プロセッサ２０２は、予め定められた生成ルールに従って互いに重複しないように論理モータの名前を決定する。一例として、プロセッサ２０２は、各論理モータに連番を付すことにより論理モータの名前を異ならせる。あるいは、情報処理装置２００は、各論理モータに連続する英文字を付すことにより論理モータの名前を異ならせてもよい。
【０１０５】
ステップＳ２４において、プロセッサ２０２は、上述の割付け部２８６（図１７参照）として、予め定められた割付けルールに従って、生成された論理モータに対する軸割付けを行う。一例として、プロセッサ２０２は、論理モータに割付ける軸の種類の数が所定数を超えないように各論理モータに軸を割付ける。たとえば、割付け可能な軸の最大数が４種類に制限されている場合には、プロセッサ２０２は、論理モータに割付ける軸の種類数が４種類に収まるように各論理モータに割付ける軸を決定する。
【０１０６】
（ｉ２．論理モータの変更フロー）
次に、図１９を参照して、論理モータの変更処理のフローについて説明する。
【０１０７】
ステップＳ５０において、プロセッサ２０２は、論理モータの選択肢を展開する操作を受付けたか否かを判断する。一例として、当該操作は、ユーザインターフェイス５００上の各論理モータに付されたコンボボックスを押下する操作を含む。プロセッサ２０２は、論理モータの選択肢を展開する操作を受付けたと判断した場合（ステップＳ５０においてＹＥＳ）、制御をステップＳ６０に切り替える。そうでない場合には（ステップＳ５０においてＮＯ）、プロセッサ２０２は、ステップＳ５０の処理を再び実行する。
【０１０８】
ステップＳ６０において、プロセッサ２０２は、展開された選択肢の中から論理モータが選択されたか否かを判断する。プロセッサ２０２は、展開された選択肢の中から論理モータが選択されたと判断した場合（ステップＳ６０においてＹＥＳ）、制御をステップＳ７０に切り替える。そうでない場合には（ステップＳ６０においてＮＯ）、プロセッサ２０２は、ステップＳ６０の処理を再び実行する。
【０１０９】
ステップＳ７０において、プロセッサ２０２は、選択された論理モータが現在の設定対象の座標系とは異なる他の座標系に既に割付けられているか否かを判断する。典型的には、論理モータの割付けを管理するための設定情報２２６（図１７参照）が座標系の種類ごとに準備されている。プロセッサ２０２は、現在の設定対象の座標系に対応する設定情報２２６とは異なる設定情報２２６において、選択された論理モータが規定されている場合に、当該論理モータが他の座標系に既に割付けられていると判断する。プロセッサ２０２は、選択された論理モータが他の座標系に既に割付けられていると判断した場合（ステップＳ７０においてＹＥＳ）、制御をステップＳ７２に切り替える。そうでない場合には（ステップＳ７０においてＮＯ）、プロセッサ２０２は、制御をステップＳ８４に切り替える。
【０１１０】
ステップＳ７２において、プロセッサ２０２は、ステップＳ６０で選択された論理モータが他の座標系に既に割付けられていることを示す警告５８０（図１１参照）をユーザインターフェイス５００上に表示する。
【０１１１】
ステップＳ８０において、プロセッサ２０２は、ステップＳ６０で選択された論理モータを現在の設定対象の座標系に割付けることを許可する操作を受付けたか否かを判断する。一例として、当該操作は、ステップＳ７２で表示された警告５８０上のＯＫボタン５８１（図１１参照）の押下操作を含む。プロセッサ２０２は、ＯＫボタン５８１の押下操作を受付けたと判断した場合（ステップＳ８０においてＹＥＳ）、制御をステップＳ８２に切り替える。そうでない場合には（ステップＳ８０においてＮＯ）、プロセッサ２０２は、図１９に示される処理を終了する。
【０１１２】
ステップＳ８２において、プロセッサ２０２は、他の座標系におけるステップＳ６０で選択された論理モータの割付けを解除する。より具体的には、プロセッサ２０２は、他の座標系に対応する設定情報２２６（図１７参照）から当該論理モータの割付け情報を削除する。
【０１１３】
ステップＳ８４において、プロセッサ２０２は、ステップＳ６０で選択された論理モータの割付け先を他の座標系から現在の設定対象の座標系に変更する。より具体的には、プロセッサ２０２は、現在の設定対象の座標系に対応する設定情報２２６（図１７参照）にステップＳ６０で選択された論理モータの情報を追加する。
【０１１４】
（ｉ３．論理モータの変更フロー）
次に、図２０を参照して、論理モータに割付けられている軸の変更処理のフローについて説明する。
【０１１５】
ステップＳ１００において、プロセッサ２０２は、論理モータに対する軸の選択肢を展開する操作を受付けたか否かを判断する。一例として、当該操作は、ユーザインターフェイス５００上の各論理モータに付されたコンボボックスを押下する操作を含む。プロセッサ２０２は、論理モータに対する軸の選択肢を展開する操作を受付けたと判断した場合（ステップＳ１００においてＹＥＳ）、制御をステップＳ１１０に切り替える。そうでない場合には（ステップＳ１００においてＮＯ）、プロセッサ２０２は、ステップＳ１００の処理を再び実行する。
【０１１６】
ステップＳ１１０において、プロセッサ２０２は、割付け済みの軸の種類が割付け可能最大数よりも少ないか否かを判断する。プロセッサ２０２は、割付け済みの軸の種類が割付け可能最大数よりも少ないと判断した場合（ステップＳ１１０においてＹＥＳ）、制御をステップＳ１１２に切り替える。そうでない場合には（ステップＳ１１０においてＮＯ）、プロセッサ２０２は、制御をステップＳ１１４に切り替える。
【０１１７】
ステップＳ１１２において、プロセッサ２０２は、ユーザインターフェイス５００上において、予め定められた第１候補群を軸の選択肢として展開する。たとえば、割付け可能最大数が４種類に設定されており、３種類の軸が登録済みの論理モータに既に割付けられているとする。この場合、プロセッサ２０２は、予め定められた全軸（たとえば、Ｘ軸、Ｙ軸、Ｚ軸、Ａ軸、Ｂ軸、Ｃ軸）を第１候補群とし、当該第１候補群を選択肢として展開する。
【０１１８】
ステップＳ１１４において、プロセッサ２０２は、各論理モータに既に割付けられている軸を第２候補群として決定し、ユーザインターフェイス５００上において当該第２候補群を軸の選択肢として展開する。たとえば、割付け可能最大数が４種類に設定されており、４種類の軸が登録済みの論理モータに既に割付けられているとする。この場合、プロセッサ２０２は、割付け済の４種類の軸を第２候補群とし、当該第２候補群を選択肢として展開する。
【０１１９】
ステップＳ１２０において、プロセッサ２０２は、ユーザインターフェイス５００上で展開されている候補群から軸を選択する操作を受付けたか否かを判断する。プロセッサ２０２は、ユーザインターフェイス５００上で展開されている候補群から軸を選択する操作を受付けたと判断した場合（ステップＳ１２０においてＹＥＳ）、制御をステップＳ１２２に切り替える。そうでない場合には（ステップＳ１２０においてＮＯ）、プロセッサ２０２は、ステップＳ１２０の処理を再び実行する。
【０１２０】
ステップＳ１２２において、プロセッサ２０２は、選択された軸を対応する論理モータに割付ける。より具体的には、プロセッサ２０２は、選択された軸を対応する論理モータに関連付けた上で、これらの情報を設定情報２２６（図１７参照）に書き込む。
【０１２１】
＜Ｊ．まとめ＞
以上のようにして、情報処理装置２００は、所定のユーザ操作を受付けたことに基づいて、同一の制御対象を駆動する複数のモータのそれぞれを指定するための論理モータを生成する。その後、情報処理装置２００は、所定の座標系を定義する複数の軸のいずれかを、生成された論理モータに割付ける。このような論理モータの自動生成機能が実装されることで、モータに関する設定が簡略化され、ＮＣプログラムの設計工数が削減される。
【０１２２】
今回開示された実施の形態はすべての点で例示であって制限的なものではないと考えられるべきである。本発明の範囲は上記した説明ではなくて特許請求の範囲によって示され、特許請求の範囲と均等の意味および範囲内でのすべての変更が含まれることが意図される。
【符号の説明】
【０１２３】
１  制御システム、２  工作機械、３  ワーキングプレート、４  第１ベースプレート、６，９  ボールネジ、７  第２ベースプレート、１０  主軸、１００，３０２  コントローラ、１０２，２０２  プロセッサ、１０４  チップセット、１０６  メインメモリ、１０８  フラッシュメモリ、１１０  システムプログラム、１１２  ユーザプログラム、１１２Ａ  シーケンスプログラム、１１２Ｂ  モーションプログラム、１１６  外部ネットワークコントローラ、１１８  メモリカードインターフェイス、１２０  メモリカード、１２２  内部バスコントローラ、１２４  フィールドバスコントローラ、１２６  Ｉ／Ｏユニット、２００  情報処理装置、２０４  メモリ、２０６  操作ユニット、２０８  出力ユニット、２１２  光学ドライブ、２１４  記録媒体、２１８  内部バス、２２０  補助記憶装置、２２２  情報処理プログラム、２２４  コントローラ情報、２２６  設定情報、２８２  提供部、２８４  生成部、２８６  割付け部、３００，３００Ｘ，３００Ｙ，３００Ｚ  サーボドライバ、３０４  ドライブ回路、３１０，３１４  差分演算部、３１２  位置制御部、３１６  速度制御部、３１８  加算部、３２０  トルク制御部、３２２  速度検出部、３３０  モデル追従制御部、４００，４００Ｘ，４００Ｙ，４００Ｚ  サーボモータ、４０２  エンコーダ、５００，５００Ｘ  ユーザインターフェイス、５０１  プロジェクト設定領域、５０２  コントローラ設定領域、５０３  作成ボタン、５２１  座標系設定欄、５２２，５７２  選択項目、５２３  座標系設定項目、５３１  座標系項目、５４１  座標系設定画面、５５１  生成ボタン、５５２，５７５  論理モータ、５５３，５５８  展開ボタン、５５４，５５６  論理モータ情報、５５５，５７３  モータ設定項目、５５７  モータ数設定欄、５５９  選択肢、５６０  設定欄、５６１  第１候補群、５６２  第２候補群、５７１  モータ設定欄、５８０  警告、５８１  ＯＫボタン、５８２  キャンセルボタン。
【図１】
2018169762.tif 000003
【図２】
2018169762.tif 000004
【図３】
2018169762.tif 000005
【図４】
2018169762.tif 000006
【図５】
2018169762.tif 000007
【図６】
2018169762.tif 000008
【図７】
2018169762.tif 000009
【図８】
2018169762.tif 000010
【図９】
2018169762.tif 000011
【図１０】
2018169762.tif 000012
【図１１】
2018169762.tif 000013
【図１２】
2018169762.tif 000014
【図１３】
2018169762.tif 000015
【図１４】
2018169762.tif 000016
【図１５】
2018169762.tif 000017
【図１６】
2018169762.tif 000018
【図１７】
2018169762.tif 000019
【図１８】
2018169762.tif 000020
【図１９】
2018169762.tif 000021
【図２０】
2018169762.tif 000022
【手続補正書】
【提出日】平成30年6月28日(2018.6.28)
【手続補正１】
【補正対象書類名】明細書
【補正対象項目名】００３３
【補正方法】変更
【補正の内容】
【００３３】
ステップＳ２において、ユーザインターフェイス５００は、新規プロジェクト画面を表示している。当該ユーザインターフェイス５００の座標系設定欄５２１が右クリックなどで選択されると、追加選択項目５２２が展開される。展開された追加選択項目５２２が選択されると、座標系設定項目５２３がさらに展開される。座標系設定項目５２３が選択されると、ステップＳ３に示されるように、座標系設定欄５２１に座標系項目５３１が追加される。
【手続補正２】
【補正対象書類名】明細書
【補正対象項目名】００３６
【補正方法】変更
【補正の内容】
【００３６】
好ましくは、ユーザインターフェイス５００は、モータ数の設定を受付けるモータ数設定欄５５７を有し、モータ数設定欄５５７において設定されたモータ数と同数の論理モータを生成する。図６の例では、モータ数設定欄５５７において「３個」が指定されており、論理モータ「ＣＮＣ＿Ｍｏｔｏｒ０００（０）」，論理モータ「ＣＮＣ＿Ｍｏｔｏｒ００１（１）」，論理モータ「ＣＮＣ＿Ｍｏｔｏｒ００２（２）」が生成されている。論理モータ「ＣＮＣ＿Ｍｏｔｏｒ０００（０）」はモータ「ＣＮＣモータＰ０」に関連付けられている。論理モータ「ＣＮＣ＿Ｍｏｔｏｒ００１（１）」はモータ「ＣＮＣモータＰ１」に関連付けられている。論理モータ「ＣＮＣ＿Ｍｏｔｏｒ０００（２）」はモータ「ＣＮＣモータＰ２」に関連付けられている。
【手続補正３】
【補正対象書類名】明細書
【補正対象項目名】００４４
【補正方法】変更
【補正の内容】
【００４４】
図７に示されるステップＳ４Ｘにおけるユーザインターフェイス５００Ｘの画面は、上述のステップＳ３（図４参照）に表示される画面の続きを表わす。ステップＳ４Ｘにおいて、ユーザインターフェイス５００Ｘにおけるモータ設定欄５７１が右クリックなどで選択されたとする。これにより、追加選択項目５７２が展開される。展開された追加選択項目５７２が選択されると、モータ設定項目５７３がさらに展開される。モータ設定項目５７３が選択されると、ステップＳ５Ｘに示されるように、情報処理装置２００は、モータ設定欄５７１に論理モータ５７５を新たに追加する。
【手続補正４】
【補正対象書類名】明細書
【補正対象項目名】００４５
【補正方法】変更
【補正の内容】
【００４５】
ステップＳ６Ｘにおいて、追加された座標系項目５３１がダブルクリックされたとする。このことに基づいて、ユーザインターフェイス５００は、座標系設定画面５４１を表示する。展開ボタン５５３が押下されると、追加された論理モータ５７５に相当する「ＣＮＣ＿Ｍｏｔｏｒ０００（０）」が論理モータの選択肢として展開される。
【手続補正５】
【補正対象書類名】図面
【補正対象項目名】図１１
【補正方法】変更
【補正の内容】
【図１１】
2018169762.tif 000023