以下、一実施形態について図面を参照しつつ説明する。なお、本明細書及び図面において、実質的に同一の機能を有する構成要素については、原則として同一の符号で表し、これらの構成要素についての重複説明は、適宜省略する。
ここで、以下で説明する一実施形態に係るセンサシステムは、コントローラと、該コントローラから送信された信号を順次受け渡すように該コントローラにケーブルを介して直列に接続された複数のセンサと、を有するシステムである。このセンサシステムは、様々なタイプのセンサシステムに適用可能である。但し、以下では、センサシステムの理解が容易になるように、複数のセンサのうちにモータに用いられるエンコーダを少なくとも含むエンコーダシステムを例に挙げて説明する。他のタイプのセンサシステムに適用する場合には、エンコーダを他のセンサに変更する等、適切な変更を加えることで可能であるので、詳しい説明は省略する。
また、エンコーダシステムは、回転型(ロータリタイプ)や直線型(リニアタイプ)等、様々なタイプのエンコーダシステムに適用可能である。但し、エンコーダシステムの理解が容易になるように、以下では、回転型のエンコーダシステムを例に挙げて説明する。他のタイプのエンコーダシステムに適用する場合には、モータを回転型のモータから直線型のリニアモータに変更し、被測定対象を回転型のディスクから直線型のリニアスケールに変更する等、適切な変更を加えることで可能であるので、詳しい説明は省略する。
<1.エンコーダシステムの構成の概略>
まず、図1を参照しつつ、本実施形態に係るエンコーダシステムの構成の概略について説明する。
図1に示すように、エンコーダシステムES(センサシステムの一例に相当)は、7つのサーボモータSM1,SM2,SM3,SM4,SM5,SM6,SM7と、コントローラCTとを有する。なお、エンコーダシステムESにおけるサーボモータの数は、7つに限定されるものではなく、他の数であってもよい。但し、説明の便宜上、以下では、エンコーダシステムESにおけるサーボモータSMの数が7つである場合について説明する。また、以下では、サーボモータSM1〜SM7を区別なく示す場合には、単に「サーボモータSM」ともいう。
各サーボモータSM1〜SM7は、モータと、エンコーダとを有する。すなわち、サーボモータSM1は、モータM1及びエンコーダE1を有し、サーボモータSM2は、モータM2及びエンコーダE2を有し、サーボモータSM3は、モータM3及びエンコーダE3を有し、サーボモータSM4は、モータM4及びエンコーダE4を有し、サーボモータSM5は、モータM5及びエンコーダE5を有し、サーボモータSM6は、モータM6及びエンコーダE6を有し、サーボモータSM7は、モータM7及びエンコーダE7を有する。また、以下では、モータM1〜M7を区別なく示す場合には、単に「モータM」ともいい、エンコーダE1〜E7を区別なく示す場合には、単に「エンコーダE」ともいう。
各モータM1〜M7は、エンコーダEを含まない動力発生源の一例である。これら各モータM1〜M7は、シャフトSHをその軸心(図示省略)周りに回転させることで、回転力を出力する。本明細書中では、各モータM1〜M7の回転力出力側を「負荷側」といい、その反対側を「反負荷側」ということにする。なお、各モータM1〜M7は、位置や速度等を、各エンコーダE1〜E7が検出可能なモータであれば特に限定されるものではない。
ここで、モータM1〜M7単体をサーボモータという場合もあるが、本実施形態では、エンコーダEを含む構成をサーボモータSM1〜SM7ということにする。つまり、各サーボモータSM1〜SM7は、エンコーダ付モータの一例に相当する。なお、説明の便宜上、以下では、各エンコーダ付モータが、位置や速度等の目標値に追従するように制御されるサーボモータである場合について説明するが、各エンコーダ付モータは、サーボモータに限定されるものではない。各エンコーダ付モータは、例えばエンコーダEの出力を表示のみに用いる場合等、エンコーダEが付設されていれば、サーボモータ以外のモータであってもよい。
また、各モータM1〜M7は、動力源として電気を使用する電動式モータである場合に限定されるものではなく、例えば油圧式モータ、エア式モータ、蒸気式モータ等の他の動力源を使用したモータであってもよい。但し、説明の便宜上、以下では、各モータM1〜M7が電動式モータである場合について説明する。
各エンコーダE1〜E7は、各モータM1〜M7のシャフトSHの反負荷側に連結されている。なお、各エンコーダE1〜E7の連結位置は、各モータM1〜M7のシャフトSHの反負荷側に限定されるものではなく、シャフトSHの負荷側であってもよい。これら各エンコーダE1〜E7は、各モータM1〜M7のシャフトSHの位置を検出することで、各モータM1〜M7の位置(「回転位置」や「回転角度」等ともいう。)を検出し、その位置を表す位置データを出力する。
なお、各エンコーダE1〜E7は、各モータM1〜M7の位置等を検出可能なエンコーダであれば特に限定されるものではない。各エンコーダE1〜E7としては、例えば磁気式エンコーダや光学式エンコーダ、磁気式及び光学式の両方を併用したエンコーダ(いわゆるハイブリッド式エンコーダ)等が使用可能である。
また、各エンコーダE1〜E7は、各モータM1〜M7の位置に加えて又は代えて、各モータM1〜M7の速度(「回転速度」や「角速度」等ともいう。)及び加速度(「回転加速度」や「角加速度」等ともいう。)の少なくとも一方を検出してもよい。この場合、速度及び加速度は、例えば位置を時間で1又は2階微分したり、検出信号を所定時間カウントする等の処理により、検出可能である。但し、説明の便宜上、以下では、各エンコーダE1〜E7が検出する物理量が位置である場合について説明する。
また、本実施形態では、エンコーダEを少なくとも含む複数のセンサが、コントローラCTにケーブル10を介して直列に接続されている。なお、本明細書中での「直列」とは、数珠繋ぎの配列、つまりデイジーチェーン状の配列を指す。
ここで、コントローラCTに接続される複数のセンサのうちには、エンコーダEが含まれていれば、エンコーダE以外のセンサが含まれてもよい。エンコーダE以外のセンサとしては、例えばトルクセンサや圧力センサ、温度センサ等が挙げられる。但し、説明の便宜上、以下では、コントローラCTに接続される複数のセンサが、エンコーダEのみである場合について説明する。また、コントローラCTに接続されるエンコーダEの数は、2つ以上であれば、いくつであってもよい。但し、説明の便宜上、以下では、コントローラCTに接続されるエンコーダEの数が7つである場合について説明する。
すなわち、コントローラCTには、エンコーダE1〜E7がケーブル10を介して直列に接続されている。この際、エンコーダE1は、コントローラCTにケーブル10を介して直接的に接続されている。エンコーダE2は、エンコーダE1にケーブル10を介して接続されることで、コントローラCTにエンコーダE1を介して間接的に接続されている。エンコーダE3は、エンコーダE2にケーブル10を介して接続されることで、コントローラCTにエンコーダE1,E2を介して間接的に接続されている。エンコーダE4は、エンコーダE3にケーブル10を介して接続されることで、コントローラCTにエンコーダE1〜E3を介して間接的に接続されている。エンコーダE5は、エンコーダE4にケーブル10を介して接続されることで、コントローラCTにエンコーダE1〜E4を介して間接的に接続されている。エンコーダE6は、エンコーダE5にケーブル10を介して接続されることで、コントローラCTにエンコーダE1〜E5を介して間接的に接続されている。エンコーダE7は、エンコーダE6にケーブル10を介して接続されることで、コントローラCTにエンコーダE1〜E6を介して間接的に接続されている。つまり、エンコーダE1は、コントローラの最も近くに接続されたセンサの一例に相当し、エンコーダE7は、最も離れて接続されたセンサの一例に相当する。
そして、上記のようにコントローラCTに直列に接続されたエンコーダE1〜E7は、コントローラCTから送信された信号を、コントローラCTに近い側から順次受け渡す(詳細は後述)。
コントローラCTは、各エンコーダE1〜E7から位置データを取得し、該位置データに基づいて各モータM1〜M7の動作を制御する。従って、各モータM1〜M7として電動式モータが使用される本実施形態では、コントローラCTは、各エンコーダE1〜E7から取得した位置データに基づいて各モータM1〜M7に印加する電流又は電圧等を制御することで、各モータM1〜M7の動作を制御する。更に、コントローラCTは、上位コントローラ(図示省略)から上位制御信号を取得し、該上位制御信号に表された位置等を実現可能な回転力がシャフトSHから出力されるように、各モータM1〜M7の動作を制御することも可能である。なお、各モータM1〜M7が、油圧式、エア式、蒸気式等の他の動力源を使用する場合には、コントローラCTは、それらの動力源の供給を制御することで、各モータM1〜M7の動作を制御可能である。
ここで、エンコーダシステムESの構成は、コントローラCTと、コントローラCTから送信された信号を順次受け渡すように、コントローラCTに直列に接続されたエンコーダE1〜E7とを有する構成であれば、特に限定されるものではない。但し、説明の便宜上、以下では、エンコーダシステムESが、エンコーダEの機能に関わる設定を変更可能に構成される場合について説明する。
<2.コントローラ及びエンコーダの構成>
次に、図2及び図3を参照しつつ、コントローラCT及び各エンコーダE1〜E7の要部の構成について説明する。
図2及び図3に示すように、コントローラCTは、通信部150と、制御部100とを有する。また、各エンコーダE1〜E7は、2つの通信部250,260と、制御部200とを有する。
コントローラCTの通信部150は、所定の通信プロトコルに基づいて、エンコーダE1との間で通信を行う。このコントローラCTの通信部150は、コントローラCTに備えられた通信装置923(後述の図11参照)により実装可能である。
各エンコーダE1〜E7の通信部250は、所定の通信プロトコルに基づいて、コントローラCT又は前のエンコーダEとの間で通信を行う。これら各エンコーダE1〜E7の通信部250は、各エンコーダE1〜E7に備えられた通信装置823(後述の図12参照)により実装可能である。
各エンコーダE1〜E7の通信部260は、所定の通信プロトコルに基づいて、次のエンコーダEとの間で通信を行う。これら各エンコーダE1〜E7の通信部260は、各エンコーダE1〜E7に備えられた通信装置825(後述の図12参照)により実装可能である。なお、本実施形態のように、エンコーダE7がコントローラCTに最も離れて接続されたエンコーダEであり、エンコーダE7に次のエンコーダEが存在しない場合には、エンコーダE7は、通信部260を有していなくてもよい。
コントローラCTの制御部100は、検出対象の所定のタイミング(第2タイミングの一例に相当)における検出データを取得させる要求信号を、通信部150を介してエンコーダE1に送信する。要求信号としては、検出対象の所定のタイミングにおける検出データを取得させる要求信号であれば特に限定されるものではないが、例えば位置要求コマンド等が挙げられる。位置要求コマンドは、対応するモータM(検出対象の一例に相当)の所定のタイミング(「位置ラッチタイミング」ともいう。)における位置データ(検出データの一例に相当)を取得させる要求信号である。説明の便宜上、以下では、制御部100が送信する要求信号が位置要求コマンドである場合について説明する。
コントローラCTからエンコーダE1に送信された位置要求コマンドは、エンコーダE1〜E7により、エンコーダE7まで順次受け渡される。なお、コントローラCTからエンコーダE1に送信された位置要求コマンドは、エンコーダE1から該位置要求コマンドの対象とするエンコーダEまでの1つ以上のエンコーダEにより、該位置要求コマンドの対象とするエンコーダEまで順次受け渡されてもよい。但し、以下では、説明の便宜上、コントローラCTからエンコーダE1に送信された位置要求コマンドが、エンコーダE1〜E7により、エンコーダE7まで順次受け渡される場合について説明する。
また、コントローラCTの制御部100は、エンコーダEの機能に関わる設定を現在の設定から所定の設定に変更させる指令信号を、通信部150を介してエンコーダE1に送信する。エンコーダEの機能に関わる設定としては、例えばコントローラCTとの通信態様(例えばコントローラCTとの通信速度や伝送路符号等)や上記位置ラッチタイミング等が挙げられる。
コントローラCTからエンコーダE1に送信された指令信号は、エンコーダE1〜E7により、エンコーダE7まで順次受け渡される。なお、コントローラCTからエンコーダE1に送信された指令信号は、エンコーダE1から該指令信号の対象とするエンコーダEまでの1つ以上のエンコーダEにより、該指令信号の対象とするエンコーダEまで順次受け渡されてもよい。但し、以下では、説明の便宜上、コントローラCTからエンコーダE1に送信された指令信号が、エンコーダE1〜E7により、エンコーダE7まで順次受け渡される場合について説明する。
各エンコーダE1〜E7の制御部200は、位置要求コマンドを受信した場合に、対応するモータMの上記位置ラッチタイミングにおける位置データを取得し、直接的に又はコントローラCTとの間の1つ以上のエンコーダEを経由させてコントローラCTに送信する。また、各エンコーダE1〜E7の制御部200は、指令信号を受信した場合に、該エンコーダEの機能に関わる設定を所定の設定に変更する。
つまり、コントローラCTの制御部100と各エンコーダE1〜E7の制御部200とは、複数のセンサの機能に関わる設定を現在の設定から所定の設定に変更する手段の一例に相当する。
この際、コントローラCTの制御部100は、エンコーダE1〜E7のうちの一のエンコーダEを指定して該エンコーダEの機能に関わる設定を変更させるように、指令信号を生成してもよい。
また、各エンコーダE1〜E7の制御部200は、該エンコーダE自身を指定する指令信号を受信した場合において、該エンコーダEの機能に関わる設定を所定の設定に変更可能な場合に、応答信号を直接的に又はコントローラCTとの間の1つ以上のエンコーダEを経由させてコントローラCTに送信し、上記設定を変更してもよい。
また、コントローラCTの制御部100は、エンコーダE1〜E7の各々を指定する指令信号を、エンコーダE1を指定する指令信号からエンコーダE7を指定する指令信号への順番で順次送信してもよい。この際、コントローラCTの制御部100は、指令信号を送信したエンコーダEから応答信号を受信した場合に、上記順番において該エンコーダEの次のエンコーダEを指定する指令信号を送信してもよい。
また、各エンコーダE1〜E7の制御部200は、コントローラCTからの信号の受信結果に基づいて、該エンコーダEの機能に関わる設定を変更するタイミング(第1タイミングの一例に相当。以下「変更タイミング」ともいう。)が他のエンコーダEと実質的に同時となるように、該変更タイミングの同期をとってもよい。この際、各エンコーダE1〜E7の制御部200は、エンコーダE7を指定する指令信号を受信してから所定の期間(第1期間の一例に相当。以下「第1期間」ともいう。)が経過した場合に、上記設定を変更してもよい。より具体的には、各エンコーダE1〜E7の制御部200は、第1期間が経過する間にコントローラCTからの信号を受信していない場合に、上記設定を変更してもよい。
また、コントローラCTの制御部100は、エンコーダE7から応答信号を受信した場合に、コントローラCTの機能に関わる設定を現在の設定からエンコーダEの変更後の設定に対応する所定の設定に変更してもよい。コントローラCTの機能に関わる設定としては、例えばエンコーダEとの通信態様(例えばエンコーダEとの通信速度や伝送路符号等)等が挙げられる。この際、コントローラCTの制御部100は、エンコーダE7を指定する指令信号を送信した後に、エンコーダEへの信号の送信を停止し、エンコーダE7を指定する指令信号を送信してから第1期間よりも長い所定の期間(第2期間の一例に相当。以下「第2期間」ともいう。)が経過した場合に、上記設定を変更してもよい。
また、コントローラCTの制御部100は、指令信号として、コントローラCTとの通信態様(エンコーダの機能に関わる設定の一例に相当)を現在の通信態様(現在の設定の一例に相当)から所定の通信態様(所定の設定の一例に相当)に変更させる通信態様変更コマンド(第1指令信号の一例に相当)を、エンコーダE1に送信してもよい。この際、コントローラCTの制御部100は、通信態様変更コマンドの一例として、コントローラCTとの通信速度(コントローラとの通信態様の一例に相当)を現在の第1速度(現在の通信態様の一例に相当)よりも速い第2速度(所定の通信態様の一例に相当)に変更させる速度変更コマンド(第2指令信号の一例に相当)を、第1速度でエンコーダE1に送信してもよい。そして、各エンコーダE1〜E7の制御部200は、速度変更コマンドを受信した場合に、コントローラCTとの通信速度を第2速度に変更してもよい。この際、コントローラCTの制御部100は、コントローラCTに接続されたエンコーダEの数に基づいて、第2速度を設定してもよい。
以下、コントローラCTの制御部100及び各エンコーダE1〜E7の制御部200の構成の一例について、より具体的に機能ブロックで実装した例を説明する。
(2−1.コントローラの制御部)
図2に示すように、コントローラCTの制御部100は、要求送信部128と、受信部102と、指令送信部110と、検出部104と、速度設定部108と、指令生成部106と、第1受信判定部114と、送信制御部116と、送信判定部118と、送信停止部120と、第2期間判定部122と、第2設定変更部126とを有する。これら制御部100の各機能部は、コントローラCTに備えられたCPU901(後述の図11参照)が実行するプログラム、又は、コントローラCTに備えられた制御装置907(後述の図12参照)により実装可能である。
要求送信部128は、上記位置要求コマンドを、通信部150を介して所定の通信周期でエンコーダE1に送信する。なお、コントローラCTからエンコーダE1に送信された位置要求コマンドは、エンコーダE1〜E7により、エンコーダE7まで順次受け渡される。また、要求送信部128は、エンコーダE1〜E7のうちの一のエンコーダEを指定した位置要求コマンドを送信してもよいし、一のエンコーダEを指定せずに、エンコーダE1〜E7の各々に共通の位置要求コマンドを送信してもよい。但し、説明の便宜上、以下では、要求送信部128がエンコーダE1〜E7の各々に共通の位置要求コマンドを送信する場合について説明する。
受信部102は、エンコーダE1から送信された信号(位置データや応答信号等)を、通信部150を介して受信する。
指令送信部108は、上記指令信号を、通信部150を介してエンコーダE1に送信する。指令信号としては、エンコーダEの機能に係わる設定を変更させる指令信号であれば特に限定されるものではないが、例えば、上記通信態様変更コマンドや、上記位置ラッチタイミングを変更させる指令信号等が挙げられる。但し、説明の便宜上、以下では、指令送信部108が送信する指令信号が通信態様変更コマンドである場合について説明する。すなわち、指令送信部108は、第1指令送信部110を有する。
第1指令送信部110は、上記通信態様変更コマンドを、通信部150を介してエンコーダE1に送信する。通信態様変更コマンドとしては、エンコーダEのコントローラCTとの通信態様を変更させる通信態様変更コマンドであれば特に限定されるものではないが、例えば、上記速度変更コマンドや、伝送路符号を変更させる伝送路符号変更コマンド、通信速度と伝送路符号との両方を変更させる通信態様変更コマンド等が挙げられる。但し、説明の便宜上、以下では、第1指令送信部110が送信する通信態様変更コマンドが速度変更コマンドである場合について説明する。すなわち、第1指令送信部110は、通信態様変更コマンドとして、速度変更コマンドを、通信部150を介して上記第1速度でエンコーダE1に送信する。つまり、第1指令送信部110は、第2指令送信部の一例にも相当する。
すなわち、本実施形態では、コントローラCTのエンコーダEとの通信速度、つまり通信部150の通信速度が、予め定められた複数の速度に変更設定可能となっている。なお、通信部150の通信速度として変更設定可能な速度の値及び数は、特に限定されるものではない。但し、説明の便宜上、以下では、通信部150の通信速度として変更設定可能な速度が、速度V1(例えば4Mbps)、速度V1よりも速い速度V2(例えば8Mbps)、及び速度V2よりも速い速度V3(例えば16Mbps)の3つである場合について説明する。すなわち、上記コントローラCTの通信部150は、通信速度を速度V1、速度V2、及び速度V3の3つの間で変更設定し、設定した速度で通信を実行する。
同様に、各エンコーダE1〜E7のコントローラCTとの通信速度、つまり通信部250,260の通信速度も、予め定められた複数の速度に変更設定可能となっている。なお、通信部250,260の通信速度として変更設定可能な速度の値及び数は、特に限定されるものではない。但し、説明の便宜上、以下では、通信部250,260の通信速度として変更設定可能な速度が、コントローラCTの通信部250,260の通信速度と同様の、速度V1、速度V2、及び速度V3の3つである場合について説明する。すなわち、上記各エンコーダE1〜E7の通信部250,260は、通信速度を速度V1、速度V2、及び速度V3の3つの間で変更設定し、設定した速度で通信を実行する。
なお、コントローラCTの通信部150、及び、各エンコーダE1〜E7の通信部250,260の通信速度は、速度V1、速度V2、及び速度V3のいずれに初期設定されていてもよい。但し、説明の便宜上、以下では、コントローラCTの通信部150、及び、各エンコーダE1〜E7の通信部250,260の通信速度が、それぞれ、最も遅い速度V1に初期設定されている場合について説明する。
図4Aに、上記速度変更コマンドのデータ構造の一例を示す。
図4Aに示す例では、速度変更コマンドは、16個のデータD0〜D15を含む。データD0は、速度変更コマンドである旨を表す内容となっている。データD1は、空白となっている。データD2は、上記第2速度を示す速度パラメータとなっている。データD3〜D15については、説明を省略するが、それぞれ、何らかの内容又は空白となっている。
なお、図4Aに示す速度変更コマンドのデータ構造は、あくまで一例であり、上記以外のデータ構造であってもよい。
図2に示すように、検出部104は、受信部102の受信結果(例えばコントローラCTからの信号に応答したエンコーダEからの信号を受信した数等)に基づいて、コントローラCTに接続されたエンコーダEの数を検出する。本実施形態では、コントローラCTにエンコーダE1〜E7が直列に接続されているので、検出部104は、コントローラCTに接続されたエンコーダEの数が7つであると検出するはずである。なお、コントローラCTに接続するエンコーダEの数が決まっている場合や、コントローラCTに接続されたエンコーダEの数を操作者が操作入力する場合、コントローラCTに接続されたエンコーダEの数に基づく第2速度の設定を行わない場合等には、検出部104は省略されてもよい。但し、説明の便宜上、以下では、検出部104が存在する場合について説明する。
速度設定部108は、検出部104により検出されたエンコーダEの数に基づいて、上記第2速度を設定する。なお、第2速度を操作者が操作入力する場合や、第2速度を一定とする場合等には、速度設定部108は省略されてもよい。但し、説明の便宜上、以下では、速度設定部108が存在する場合について説明する。
指令生成部106は、第1指令送信部が送信する速度変更コマンドを生成する。この際、指令生成部106は、通信部250,260の通信速度を、速度設定部108により設定された第2速度に変更させるように、速度変更コマンドを生成する。なお、指令生成部106は、通信部250,260の通信速度を、予め定められた第2速度に変更させるように、速度変更コマンドを生成してもよい。但し、説明の便宜上、以下では、指令生成部106が、通信部250,260の通信速度を、速度設定部108により設定された第2速度に変更させるように、速度変更コマンドを生成する場合について説明する。また、指令生成部106は、エンコーダE1〜E7のうちの一のエンコーダEを指定して、速度変更コマンドを生成する。なお、指令生成部106は、エンコーダEを指定せずに、エンコーダE1〜E7の各々に共通の速度変更コマンドを生成してもよい。但し、説明の便宜上、以下では、指令生成部106が一のエンコーダEを指定して速度変更コマンドを生成する場合について説明する。そして、本実施形態では、指令生成部106は、エンコーダE1〜E7のうちの一のエンコーダEをコントローラCTに近い側から遠い側へ順次指定して、速度変更コマンドを生成する。
第1受信判定部114は、受信部102の受信結果に基づいて、第1指令送信部112により速度変更コマンドを送信したエンコーダEから応答信号を受信したか否かを判定する。なお、エンコーダEが応答信号を送信しない場合等には、第1受信判定部114は省略されてもよい。但し、説明の便宜上、以下では、第1受信判定部114が存在する場合について説明する。
送信制御部116は、指令生成部106により生成されたエンコーダE1〜E7の各々を指定する速度変更コマンドを、エンコーダE1を指定する速度変更コマンド、エンコーダE2を指定する速度変更コマンド、エンコーダE3を指定する速度変更コマンド、エンコーダE4を指定する速度変更コマンド、エンコーダE5を指定する速度変更コマンド、エンコーダE6を指定する速度変更コマンド、エンコーダE7を指定する速度変更コマンドの順番で順次送信するように、第1指令送信部112を制御する。この際、送信制御部116は、第1受信判定部114によりエンコーダEから応答信号を受信したと判定された場合に、上記順番において該エンコーダEの次のエンコーダEを指定する速度変更コマンドを送信するように、第1指令送信部112を制御する。
なお、エンコーダEが応答信号を送信しない場合等には、送信制御部116は、エンコーダE1〜E7の各々を指定する速度変更コマンドを、上記順番において所定の周期で順次送信するように、第1指令送信部112を制御してもよい。但し、説明の便宜上、以下では、第1受信判定部114によりエンコーダEから応答信号を受信したと判定された場合に、送信制御部116が上記順番において該エンコーダEの次のエンコーダEを指定する速度変更コマンドを送信するように第1指令送信部112を制御する場合について説明する。また、エンコーダE1〜E7の各々に共通の速度変更コマンドを送信する場合等には、送信制御部116は省略されてもよい。但し、説明の便宜上、以下では、送信制御部116が存在する場合について説明する。
また、本実施形態では、送信制御部116は、一のエンコーダEを指定する速度変更コマンドを、所定の時間間隔(例えば25ms間隔)以下で所定の期間(例えば75ms間)又は所定の回数(例えば3回)繰り返し送信するように、第1指令送信部112を制御する。なお、送信制御部116は、一のエンコーダEを指定する変更コマンドを、1回のみ送信したり応答信号が受信されるまで繰り返し送信するように、第1指令送信部112を制御してもよい。但し、説明の便宜上、以下では、送信制御部116が一のエンコーダEを指定する速度変更コマンドを所定の時間間隔以下で所定の回数繰り返し送信するように第1指令送信部112を制御する場合について説明する。
送信判定部118は、第1指令送信部112によりエンコーダE7を指定する速度変更コマンドが送信されたか否かを判定する。なお、エンコーダE7を指定する速度変更コマンドが送信されたか否かを判定する必要性がない場合には、送信判定部118は省略されてもよい。但し、説明の便宜上、以下では、送信判定部118が存在する場合について説明する。
送信停止部120は、エンコーダE7を指定する速度変更コマンドを第1指令送信部112が送信した後に、エンコーダEへの信号の送信を停止する。すなわち、送信停止部120は、第1指令送信部112による速度変更コマンドの送信、及び、要求送信部128による位置要求コマンドの送信を含む、エンコーダEへの信号の送信をすべて停止する。なお、送信停止部120は、第1指令送信部112による速度変更コマンドの送信のみを停止してもよい。但し、説明の便宜上、以下では、送信停止部120がエンコーダEへの信号の送信をすべて停止する場合について説明する。この際、送信停止部120は、送信判定部118によって、第1指令送信部112によりエンコーダE7を指定する速度変更コマンドが送信されたと判定された場合に、上記送信を停止する。なお、エンコーダE7を指定する速度変更コマンドを送信した後にエンコーダEへの信号の送信を停止する必要性がない場合には、送信停止部120は省略されてもよい。但し、説明の便宜上、以下では、送信停止部120が存在する場合について説明する。
第2期間判定部122は、エンコーダE7を指定する速度変更コマンドを第1指令送信部112が送信してから上記第2期間(例えば40ms)が経過したか否かの判定を行う。この際、第2期間判定部122は、送信判定部118によって、第1指令送信部112によりエンコーダE7を指定する速度変更コマンドが送信されたと判定された場合に、上記判定を行う。なお、エンコーダE7を指定する速度変更コマンドを送信してから第2期間が経過したか否かを判定する必要性がない場合には、第2期間判定部122は省略されてもよい。但し、説明の便宜上、以下では、第2期間判定部122が存在する場合について説明する。
第2設定変更部124は、第1受信判定部114によりエンコーダE7から応答信号を受信したと判定された場合に、コントローラCTの機能に関わる設定を現在の設定からエンコーダEの変更後の設定に対応する所定の設定に変更する。速度変更コマンドが送信される本実施形態では、第2設定変更部124は、コントローラCTの機能に関わる設定として、通信部150の通信速度を、現在の速度(現在の設定の一例に相当)、つまり上記第1速度から、エンコーダEの変更後の速度に対応する所定の速度(エンコーダの変更後の設定に対応する所定の設定の一例に相当)、つまり速度設定部108により設定された上記第2速度に変更する。この際、第2設定変更部124は、第2期間判定部122により第2期間が経過したと判定された場合に、通信部150の通信速度を第2速度に変更する。なお、第2設定変更部124による通信部150の通信速度の変更のタイミングは、エンコーダE7から応答信号を受信したと判定された後であれば、必ずしも第2期間が経過したと判定された後でなくてもよい。但し、説明の便宜上、以下では、第2設定変更部124による通信部150の通信速度の変更のタイミングが、第2期間が経過したと判定された後である場合について説明する。また、コントローラCTの機能に関わる設定を変更しない場合等には、第2設定変更部124は省略されてもよい。
また、コントローラCTは、第2設定変更部124により通信部150の通信速度を第2速度に変更した後に、エンコーダEの通信部250,260の通信速度が第2速度に変更されているのを確認する(応答信号の返信を要求する)コマンド(以下「確認コマンド」ともいう。)を、通信部150を介して第2速度でエンコーダE1に送信してもよい。エンコーダE1に送信された確認コマンドは、エンコーダE1〜E7により、エンコーダE7まで順次受け渡される。この際、コントローラCTは、エンコーダE1〜E7のうち1つでも確認コマンドに対する応答信号が受信できなかった場合、つまり通信部250,260の通信速度が第2速度に変更されなかったエンコーダEが1つでも存在する場合には、所定のエラー処理を行うことで、各エンコーダE1〜E7の通信部250,260の通信速度を変更前の速度又は初期値である速度V1に戻す。所定のエラー処理としては、例えば、各エンコーダE1〜E7に対し通信部250,260の通信速度を変更前の速度に戻すコマンドを送信する処理や、各エンコーダE1〜E7を再起動(電源オフ→電源オン)させる処理等が挙げられる。あるいは、コントローラCTは、通信部250,260の通信速度が第2速度に変更されなかったエンコーダEが存在する旨を報知するのみで、操作者が、例えば各エンコーダE1〜E7を再起動(電源オフ→電源オン)させることで、各エンコーダE1〜E7の通信部250,260の通信速度を速度V1に初期化してもよい。
なお、以上説明した図2に示すコントローラCTの制御部100の各構成の切り分けは、あくまで一例であり、上記以外の切り分けであってもよい。
(2−2.エンコーダの制御部)
図3及び図4に示すように、エンコーダE1〜E7の制御部200は、2つの受信部202,204と、データ取得部220と、データ送信部222と、第3受信判定部206と、設定可能判定部207と、指令応答部208と、同機制御部210と、第1設定変更部218とを有する。これら制御部200の各機能部は、各エンコーダE1〜E7に備えられたCPU801(後述の図12参照)が実行するプログラム、又は、各エンコーダE1〜E7に備えられた制御装置807(後述の図12参照)により実装可能である。
受信部202は、コントローラCT又は前のエンコーダEから送信された信号(速度変更コマンドや位置要求コマンド等)を、通信部250を介して受信する。
受信部204は、次のエンコーダEから送信された信号(位置データや応答信号等)を、通信部260を介して受信し、通信部250を介してコントローラCT又は前のエンコーダEに転送する。つまり、エンコーダE2〜E7から送信された信号は、それぞれ、自身よりもコントローラCTに近い1つ以上のエンコーダEにより、コントローラCTまで順次受け渡される。
データ取得部220は、受信部202により受信された位置要求コマンドに応じて、該エンコーダEに備えられた図示しない検出部(例えば受光素子や磁気検出素子等)から、対応するモータMの上記位置ラッチタイミングにおける位置データを取得する。
データ送信部222は、データ取得部220により取得された位置データを、通信部250を介してコントローラCT又は前のエンコーダEに送信する。
第3受信判定部206は、受信部202の受信結果に基づいて、該エンコーダE自身を指定する速度変更コマンドを受信したか否かを判定する。なお、コントローラCTからエンコーダE1〜E7の各々に共通の速度変更コマンドが送信される場合等には、第3受信判定部206は省略されてもよい。但し、説明の便宜上、以下では、第3受信判定部206が存在する場合について説明する。
設定可能判定部207は、第3受信判定部206により該エンコーダE自身を指定する速度変更コマンドを受信したと判定された場合に、通信部250,260の通信速度を速度変更コマンドによる第2速度に変更可能か否かを判定する。なお、コントローラCTから送信される速度変更コマンドによる第2速度が必ず該エンコーダEの通信部250,260が設定可能な第2速度である場合等には、設定可能判定部207は省略されてもよい。但し、説明の便宜上、以下では、設定可能判定部207が存在する場合について説明する。
指令応答部208は、該エンコーダE自身を指定する速度変更コマンドを受信した場合において、通信部250,260の通信速度を速度変更コマンドによる第2速度に変更可能な場合に、応答信号を、通信部250を介してコントローラCT又は前のエンコーダEに送信する。この例では、指令応答部208は、第3受信判定部206により該エンコーダE自身を指定する速度変更コマンドを受信したと判定され、且つ設定可能判定部207により通信部250,260の通信速度を第2速度に変更可能と判定された場合に、応答信号を送信する。なお、応答信号をコントローラCTに送信する必要性がない場合には、指令応答部208は省略されてもよい。但し、説明の便宜上、以下では、指令応答部208が存在する場合について説明する。
図4Bに、上記応答信号のデータ構造の一例を示す。
図4Bに示す例では、応答信号は、上記図4Aに示す速度変更コマンドのデータD1に対しステータスフラグを割り当てたデータ構造となっている。ステータスフラグは、通信部250,260の通信速度がデータD2の速度パラメータに表された第2速度に設定可能である旨を表すものである。
なお、図4Bに示す応答信号のデータ構成は、あくまで一例であって、上記以外のデータ構成であってもよい。
図3に示すように、同期制御部210は、受信部202の受信結果に基づいて、第1設定変更部218により通信部250,260の通信速度を変更する上記変更タイミングが、他のエンコーダEと実質的に同時となるように、該変更タイミングの同期をとる。なお、エンコーダE1〜E7間で変更タイミングを略同時としなくてもよい場合には、同期制御部210は省略されてもよい。但し、説明の便宜上、以下では、同期制御部210が存在する場合について説明する。この同期制御部210としては、変更タイミングの同期をとることが可能な構成であれば特に限定されるものではないが、説明の便宜上、以下では、同期制御部210が次のように構成される場合について説明する。すなわち、同期制御部210は、第4受信判定部212と、第1期間判定部216と、第2受信判定部214とを備える。
第4受信判定部212は、受信部202の受信結果に基づいて、エンコーダE7を指定する速度変更コマンドを受信したか否かを判定する。
第1期間判定部216は、第4受信判定部212によりエンコーダE7を指定する速度変更コマンドを受信したと判定された場合に、該速度変更コマンドを受信部202が受信してから上記第1期間(例えば30ms)が経過したか否かを判定する。
第2受信判定部214は、受信部202の受信結果に基づいて、第1期間が経過するまでの間に、受信部202,204がコントローラCT又は他のエンコーダEから信号を受信したか否かを判定する。なお、第1期間が経過するまでの間に信号を受信した場合でも速度変更を行う場合には、第2受信判定部214は省略される。但し、説明の便宜上、以下では、第2受信判定部214が存在する場合について説明する。
第1設定変更部218は、受信部202が速度変更コマンドを受信した場合に、通信部250.260の通信速度を、速度変更コマンドによる第2速度に変更する。この際、第1設定変更部218は、指令応答部208が応答信号をコントローラCT又は前のエンコーダEに送信した場合に、通信部250.260の通信速度を変更する。より具体的には、第1設定変更部218は、指令応答部208が応答信号を送信した後、第1期間判定部216により第1期間が経過したと判定された場合に、通信部250.260の通信速度を変更する。更に具体的には、第1設定変更部218は、第1期間判定部216により第1期間が経過したと判定され、且つ第2受信判定部214によりコントローラCT又は他のエンコーダEから信号を受信していないと判定された場合に、通信部250.260の通信速度を変更する。
なお、第1設定変更部218が通信部250.260の通信速度を変更する条件は、第1期間が経過したと判定され、且つコントローラCT又は他のエンコーダEから信号を受信していないと判定されたことに限定されるものではなく、第1期間が経過したと判定されたことであってもよい。また、該条件は、第1期間が経過したと判定されたことにも限定されるものではなく、応答信号をコントローラCT又は前のエンコーダEに送信したことであってもよい。更には、該条件は、応答信号をコントローラCT又は前のエンコーダEに送信したことにも限定されるものではなく、速度変更コマンドを受信したことであってもよい。但し、説明の便宜上、以下では、第1設定変更部218が通信部250.260の通信速度を変更する条件が、第1期間が経過したと判定され、且つコントローラCT又は他のエンコーダEから信号を受信していないと判定されたことである場合について説明する。
なお、以上説明した図3に示す各エンコーダE1〜E7の制御部200の各構成の切り分けは、あくまで一例であり、上記以外の切り分けであってもよい。
<3.コントローラ及びエンコーダの動作>
次に、図5〜図9を参照しつつ、コントローラCT及び各エンコーダE1〜E7の要部の動作について説明する。
(3−1.コントローラの動作)
まず、図5及び図6を参照しつつ、コントローラCTの要部の動作について説明する。なお、図5に示す処理及び図6に示す処理は、並行して処理される。
図5に示すように、ステップSC1では、要求送信部128が、位置要求コマンドを通信部105を介してエンコーダE1に送信する。このステップSC1は、所定の通信周期で処理される。
また、図6に示すように、ステップSC10では、検出部104が、コントローラCTに接続されたエンコーダEの数を検出する。つまり、ステップSC10は、検出ステップの一例に相当する。本実施形態では、コントローラCTにエンコーダE1〜E7が直列に接続されているので、このステップSC10では、コントローラCTに接続されたエンコーダEの数が7つであると検出されるはずである。
その後、ステップSC20で、速度設定部108が、上記ステップSC10で検出されたエンコーダEの数に基づいて、第2速度を設定する。つまり、ステップSC20は、速度設定ステップの一例に相当する。
そして、ステップSC30で、指令生成部106が、エンコーダE1〜E7のうちの一のエンコーダEを指定して、通信部250,260の通信速度を、上記ステップSC20で設定された第2速度に変更させるように、速度変更コマンドを生成する。なお、このステップSC30は繰り返し実行され、エンコーダE1〜E7の各々を指定する速度変更コマンドが生成される。つまり、ステップSC30は、指令生成ステップの一例に相当する。
その後、ステップSC40で、第1指令送信部112が、送信制御部116の制御により、上記ステップSC30で生成されたエンコーダE1〜E7の各々を指定する速度変更コマンドを、前述の順番で順次、通信部150を介して第1速度でエンコーダE1に送信する。なお、1回のステップSC40では、一のエンコーダE7を指定する速度変更コマンドのみが送信され、次回のステップSC40で、上記順番において次のエンコーダEを指定する速度変更コマンドが送信される。つまり、ステップSC40は、指令送信ステップ、第1指令送信ステップ、第2指令送信ステップ、及び送信制御ステップの一例に相当する。
そして、ステップSC50で、送信判定部118が、直前に実行された上記ステップSC40でエンコーダE7を指定する速度変更コマンドが送信されたか否かを判定する。エンコーダE7以外のエンコーダEを指定する速度変更コマンドが送信されていた場合には、ステップSC50の判定は満たされず、ステップSC60に移る。
ステップSC60では、第1受信判定部114が、受信部102の受信結果に基づいて、直前に実行された上記ステップSC40で速度変更コマンドを送信したエンコーダEから応答信号を受信したか否かを判定する。エンコーダEから応答信号を受信するまでステップSC60の判定は満たされず、ループして待機し、エンコーダEから応答信号を受信したらステップSC60の判定が満たされて、上記ステップSC40が再度実行される。なお、例えば、コントローラCTとエンコーダEとの間の通信が不調なことや、エンコーダEが速度変更コマンドによる第2速度に変更不可能なこと等により、エンコーダEから応答信号が所定の期間経過しても受信されない場合には、エラーとなる。
一方、ステップSC50において、エンコーダE7を指定する速度変更コマンドが送信されていた場合には、ステップSC50の判定が満たされて、ステップSC70に移る。
ステップSC70では、送信停止部120が、エンコーダEへの信号の送信を停止する。つまり、ステップSC70は、送信停止ステップの一例に相当する。
その後、ステップSC80で、第1受信判定部114が、受信部102の受信結果に基づいて、直前に実行された上記ステップSC40で速度変更コマンドを送信したエンコーダE7から応答信号を受信したか否かを判定する。つまり、上記ステップSC60及びステップSC80は、第1受信判定ステップの一例に相当する。エンコーダE7から応答信号を受信するまでステップSC80の判定は満たされず、ループして待機し、エンコーダE7から応答信号を受信したらステップSC80の判定が満たされて、ステップSC90に移る。なお、例えば、コントローラCTとエンコーダE7との間の通信が不調なことや、エンコーダE7が速度変更コマンドによる第2速度に変更不可能なこと等により、エンコーダE7から応答信号が所定の期間経過しても受信されない場合には、エラーとなる。
ステップSC90では、第2期間判定部122が、直前に実行された上記ステップSC40でエンコーダE7を指定する速度変更コマンドを送信してから第2期間が経過したか否かを判定する。つまり、ステップSC90は、第2期間判定ステップの一例に相当する。第2期間が経過するまでステップSC90の判定は満たされず、ループして待機し、第2期間が経過したらステップSC90の判定が満たされて、ステップSC100に移る。
ステップSC100では、第2設定変更部124が、通信部150の通信速度を、第1速度から第2速度に変更する。つまり、ステップSC100は、第2設定変更ステップの一例に相当する。
(3−2.エンコーダの動作)
次に、図7〜図9を参照しつつ、各エンコーダE1〜E7の要部の動作について説明する。なお、図7に示す処理、図8に示す処理、及び図9に示す処理は、並行して処理される。
図7に示すように、受信部202は、ステップSE1で、コントローラCT又は前のエンコーダEから送信された位置要求コマンドを、通信部250を介して受信すると、ステップSE2で、その位置要求コマンドを、通信部260を介して次のエンコーダEに転送する。なお、エンコーダE7では、ステップSE2は実行されない。
そして、ステップSE3で、データ取得部220が、上記ステップSE1で受信された位置要求コマンドに応じて、対応するモータMの位置ラッチタイミングにおける位置データを取得する。つまり、ステップSE3は、データ取得ステップの一例に相当する。
その後、ステップSE4で、データ送信部222が、上記ステップSE3で取得された位置データを、通信部250を介してコントローラCT又は前のエンコーダEに送信する。なお、つまり、ステップSE4は、データ送信ステップの一例に相当する。
また、図8に示すように、受信部204は、ステップSE10で、次のエンコーダEから送信された位置データを、通信部260を介して受信すると、ステップSE20で、その位置データをプールする。なお、これらステップSE10,SE20は、それぞれ繰り返し実行される。
そして、受信部202は、上記ステップSE4で位置データを送信した後に、ステップSE30で、上記ステップSE20でプールされた1つ以上の位置データを、コントローラCTに近いエンコーダEに対応する位置データから順次、コントローラCT又は前のエンコーダEに送信する。
なお、エンコーダE7では、図8に示す処理は実行されない。
また、図9に示すように、受信部202は、ステップSE110でコントローラCT又は前のエンコーダEから送信された速度変更コマンドを、通信部250を介して受信すると、ステップSE2120で、その速度変更コマンドを、通信部260を介して次のエンコーダEに転送する。なお、エンコーダE7では、ステップSE120は実行されない。
その後、ステップSE130で、第3受信判定部206が、受信部202の受信結果に基づいて、直前に実行された上記ステップSE110で受信された速度変更コマンドが該エンコーダE自身を指定する速度変更コマンドであったか否かを判定する。該エンコーダE自身を指定する速度変更コマンドであった場合には、ステップSE130の判定が満たされて、ステップSE140に移る。
ステップSE140では、設定可能判定部207が、通信部250,260の通信速度を、上記ステップSE110で受信された速度変更コマンドによる第2速度に変更可能か否かを判定する。速度変更コマンドによる第2速度に変更可能である場合には、ステップSE140の判定が満たされて、ステップSE150に移る。
ステップSE150では、指令応答部208が、応答信号を、通信部250を介してコントローラCT又は前のエンコーダEに送信する。つまり、ステップSE150は、指令応答ステップの一例に相当する。その後、上記ステップSE110に戻り同様の手順を繰り返す。
一方、ステップSE140において、速度変更コマンドによる第2速度に変更不可能である場合には、ステップSE140の判定は満たされず、上記ステップSE110に戻り同様の手順を繰り返す。
また、ステップSE130において、該エンコーダE自身を指定する速度変更コマンドでなかった場合には、ステップSE130の判定は満たされず、ステップSE160に移る。
ステップSE160では、第4受信判定部212が、受信部202の受信結果に基づいて、直前に実行された上記ステップSE110で受信された速度変更コマンドがエンコーダE7を指定する速度変更コマンドであったか否かを判定する。エンコーダE7を指定する速度変更コマンドでなかった場合には、ステップSE160の判定は満たされず、上記ステップSE110に戻り同様の手順が繰り返される。一方、エンコーダE7を指定する速度変更コマンドであった場合には、ステップSE160の判定が満たされて、ステップSE170に移る。
ステップSE170では、第1期間判定部216が、直前に実行された上記ステップSE110でエンコーダE7を指定する速度変更コマンドが受信してから第1期間が経過したか否かを判定する。第1期間が経過していない場合には、ステップSE170の判定は満たされず、ステップSE180に移る。
ステップSE180では、第2受信判定部214が、受信部202の受信結果に基づいて、受信部202,204がコントローラCT又は他のエンコーダEから信号を受信したか否かを判定する。信号を受信していない場合には、ステップSE180の判定は満たされず、上記ステップSE170に戻り同様の手順を繰り返す。一方、信号を受信した場合には、ステップSE180の判定が満たされて、通信部250,260の通信速度の変更が行われないで(現状の第1速度が維持されて)、図9に示す処理が終了される。
つまり、上記ステップSE160,SE170,SE180は、同期制御ステップの一例に相当し、そのうち、ステップSE170は、第1期間判定ステップの一例に相当し、ステップSE180は、第2受信判定ステップの一例に相当する。
一方、ステップSE170において、第1期間が経過した場合には、ステップSE170の判定が満たされて、ステップSE190に移る。
ステップSE190では、第1設定変更部218が、通信部250.260の通信速度を、上記ステップSE110で受信された速度変更コマンドによる第2速度に変更する。つまり、ステップSE190は、第1設定変更ステップの一例に相当する。
また、以上説明した図5〜図9に示すコントローラCT及び各エンコーダE1〜E7の要部の動作は、あくまで一例であり、上記以外の動作であってもよい。
<4.コントローラ及びエンコーダの通信速度変更までの動作例>
次に、エンコーダシステムESの格別な作用効果等の理解が容易になるように、図10を参照しつつ、コントローラCT及び各エンコーダE1〜E7の通信速度変更までの動作例について説明する。なお、図10では、図中横向きに時間軸をとって、コントローラCT及び各エンコーダE1〜E7の通信速度変更までの動作の一例を模式的に示している。
図10に示すように、時刻t0では、コントローラCT及び各エンコーダE1〜E7の通信速度は、それぞれ速度V1に初期設定されている。
そして、時刻t1に、コントローラCTから、エンコーダE1を指定する速度変更コマンド(図中では「C#1」と記載。ここでは『速度変更コマンド「C#1」』ともいう。)が、エンコーダE1に速度V1で送信される。コントローラCTから送信された速度変更コマンド「C#1」は、エンコーダE1〜E7に順次、速度V1で受け渡される。この際、自身を指定する速度変更コマンド「C#1」を受信したエンコーダE1からは、応答信号(図中では「R#1」と記載。ここでは『応答信号「R#1」』ともいう。)が、速度V1でコントローラCTに送信され、コントローラCTにて速度V1で受信される。
その後、時刻t2に、コントローラCTから、エンコーダE2を指定する速度変更コマンド(図中では「C#2」と記載。ここでは『速度変更コマンド「C#2」』ともいう。)が、エンコーダE1に速度V1で送信される。コントローラCTから送信された速度変更コマンド「C#2」は、エンコーダE1〜E7に順次、速度V1で受け渡される。この際、自身を指定する速度変更コマンド「C#2」を受信したエンコーダE2からは、応答信号(図中では「R#2」と記載。ここでは『応答信号「R#2」』ともいう。)が、速度V1でエンコーダE1に送信される。エンコーダE2から送信された応答信号「R#2」は、エンコーダE1に速度V1で受け渡され、その後、エンコーダE1からコントローラCTに速度V1で送信され、コントローラCTにて速度V1で受信される。
そして、時刻t3に、コントローラCTから、エンコーダE3を指定する速度変更コマンド(図中では「C#3」と記載。ここでは『速度変更コマンド「C#3」』ともいう。)が、エンコーダE1に速度V1で送信される。コントローラCTから送信された速度変更コマンド「C#3」は、エンコーダE1〜E7に順次、速度V1で受け渡される。この際、自身を指定する速度変更コマンド「C#3」を受信したエンコーダE3からは、応答信号(図中では「R#3」と記載。ここでは『応答信号「R#3」』ともいう。)が、速度V1でエンコーダE2に送信される。エンコーダE3から送信された応答信号「R#3」は、エンコーダE2,E1の順に速度V1で受け渡され、その後、エンコーダE1からコントローラCTに速度V1で送信され、コントローラCTにて速度V1で受信される。
その後、図示を省略するが、時刻t3後の時刻(ここでは「時刻t4」ともいう。)に、コントローラCTから、エンコーダE4を指定する速度変更コマンド(ここでは『速度変更コマンド「C#4」』ともいう。)が、エンコーダE1に速度V1で送信される。また、時刻t4後の時刻(ここでは「時刻t5」ともいう。)に、コントローラCTから、エンコーダE5を指定する速度変更コマンド(ここでは『速度変更コマンド「C#5」』ともいう。)が、エンコーダE1に速度V1で送信される。また、時刻t5後の時刻(ここでは「時刻t6」ともいう。)に、コントローラCTから、エンコーダE6を指定する速度変更コマンド(ここでは『速度変更コマンド「C#6」』ともいう。)が、エンコーダE1に速度V1で送信される。また、時刻t6後の時刻t7に、コントローラCTから、エンコーダE7を指定する速度変更コマンド(図中では「R#7」と記載。ここでは『応答信号「R#7」』ともいう。)が、エンコーダE1に速度V1で送信される。この場合、図示を省略するが、各エンコーダE1〜E7は、上記と同様の挙動を示す。
そして、エンコーダE1が速度変更コマンド「C#7」を受信した時刻t8から第1期間T11が経過した際に、エンコーダE1の通信速度が、速度V1から速度V3に変更される。また、エンコーダE2が速度変更コマンド「C#7」を受信した時刻t9から第1期間T12が経過した際に、エンコーダE2の通信速度が、速度V1から速度V3に変更される。また、エンコーダE3が速度変更コマンド「C#7」を受信した時刻t10から第1期間T13が経過した際に、エンコーダE3の通信速度が、速度V1から速度V3に変更される。また、特に図示はしないが、各エンコーダE4〜E6が速度変更コマンド「C#7」を受信した時刻から第1期間が経過した際に、各エンコーダE4〜E6の通信速度が、速度V1から速度V3に変更される。また、エンコーダE7が速度変更コマンド「C#7」を送受信した時刻t11から第1期間T17が経過した際に、エンコーダE7の通信速度が、速度V1から速度V3に変更される。この際、各エンコーダE1〜E7の通信速度を変更する変更タイミングは、時刻t13で略同時となっている。
その後、コントローラCTが速度変更コマンド「C#7」を送信した時刻t7から第2期間T2が経過した時刻14に、コントローラCTの通信速度が、速度V1から速度V3に変更される。
<5.本実施形態による効果の例>
以上説明したように、本実施形態のエンコーダシステムESでは、エンコーダE1〜E7が、コントローラCTにケーブル10を介して直列に接続され、コントローラCTから送信された信号を順次受け渡す。これにより、コントローラCTと各エンコーダE1〜E7とが1対1でケーブル接続される場合に比べて、コントローラCTとエンコーダEとの間の配線を大幅に省配線化することができる。
また、本実施形態において、コントローラCTの指令送信部110が、エンコーダEの機能に関わる設定を現在の設定から所定の設定に変更させる指令信号をエンコーダEに送信し、エンコーダEの第1設定変更部218が、指令信号を受信した場合に、上記設定を所定の設定に変更する場合には、次のような効果を得る。つまり、上記構成により、システム構成に応じてエンコーダEの機能に関わる設定を最適な設定に変更することができるので、多様なシステム構成に柔軟に対応することが可能となる。
また、本実施形態において、コントローラCTの指令生成部106が、エンコーダE1〜E7のうちの一のエンコーダEを指定して上記設定を変更させるように指令信号を生成する場合には、次のような効果を得る。つまり、上記構成により、特定のエンコーダEを指定して設定を変更したり、設定変更を行う順番をエンコーダEの配列に関わらずに指定する等が可能となる。
また、本実施形態において、エンコーダEの指令応答部208が、該エンコーダE自身を指定する指令信号を受信した場合において、上記設定を所定の設定に変更可能な場合に、応答信号をコントローラCTに送信し、第1設定変更部218が、指令応答部208が応答信号をコントローラCTに送信した場合に、上記設定を変更する場合には、次のような効果を得る。つまり、上記構成により、特定のエンコーダEを指定して通信可能であるかを確認しつつ、設定変更を行うことができるので、エンコーダEの設定変更の確実性を高めることができる。また、エンコーダEが所望の設定変更に対応可能であるかを判別する判別機能をコントローラCTに設ける必要がなくなるので、コントローラCTの構成(機能構成及びハードウェア構成)を簡素化できる。
また、本実施形態において、コントローラCTの送信制御部116が、エンコーダE1〜E7の各々を指定する指令信号を、エンコーダE1を指定する指令信号からエンコーダE7を指定する指令信号への順番で順次送信するように、指令送信部110を制御する場合には、次のような効果を得る。つまり、上記構成により、例えば、エンコーダE1から応答信号がない場合にはコントローラCTとエンコーダE1の間に通信異常(配線不良やノイズの影響等)があり、エンコーダE6までは応答信号が返信されたがエンコーダE7からは応答信号がない場合にはエンコーダE6とエンコーダE7の間に通信異常(配線不良やノイズの影響等)があるというように、通信異常の箇所を特定することができる。
また、本実施形態において、コントローラCTの第1受信判定部114が、指令信号を送信したエンコーダEから応答信号を受信したか否かを判定し、送信制御部116が、第1受信判定部114によりエンコーダEから応答信号を受信したと判定された場合に、上記順番において該エンコーダEの次のエンコーダEを指定する指令信号を送信するように指令送信部110を制御する場合には、次のような効果を得る。つまり、上記構成により、コントローラCTに近い側から各エンコーダE1〜E7に対し通信可能であることを個別に確認しつつ、設定変更を行うことができるので、エンコーダEの設定変更の確実性を高めることができる。また、エンコーダEから応答信号を受信できない場合に、エンコーダEの設定変更処理を途中で中止し、アラームを出す等の別の処理を実行することが可能となる。
ここで、コントローラCTに直列に接続されたエンコーダE1〜E7では、例えばコントローラCTとの通信態様に関わる設定を変更するタイミングがエンコーダE間でずれた場合、その期間において通信が成立しない可能性がある。つまり、通信態様に関わる設定等については、全てのエンコーダEについて同時に変更する必要がある。本実施形態において、エンコーダEの同期制御部210が、受信部102による受信結果に基づいて、第1設定変更部218により設定を変更する変更タイミングが他のエンコーダEと実質的に同時となるように変更タイミングの同期をとる場合には、次のような効果を得る。つまり、上記構成により、コントローラCTに近い側から各エンコーダE1〜E7に対し通信可能であることを個別に確認しつつ指令信号を送信する場合でも、同期制御部210によりエンコーダE1〜E7間において設定変更のタイミングを略同時とすることができる。これにより、設定変更のタイミングのずれによる影響を低減し、システムの信頼性を向上することができる。
ここで、エンコーダE7を指定する指令信号は、コントローラCTより最後に送信され途中の全てのエンコーダEを通って該エンコーダE7に受信される。このとき、各エンコーダE1〜E7の受信部202が該指令信号を受信するのは略同時となることから、本実施形態において、同期制御部210の第1期間判定部216が、エンコーダE7を指定する指令信号を受信部202が受信してから第1期間が経過したか否かを判定し、第1設定変更部218が、第1期間判定部216により第1期間が経過したと判定された場合に、上記設定を変更する場合には、次のような効果を得る。つまり、上記構成により、エンコーダE1〜E7間において設定変更のタイミングの同期をとる確実性を向上できる。
ここで、エンコーダEの設定の変更をする際に、第1設定変更部218が何らかの処理(信号の送受信等)を実行している場合、設定を正常に変更できない可能性がある。本実施形態において、第2受信判定部214により受信部202がコントローラCTから信号を受信していないと判定された場合に、第1設定変更部218が設定を変更する場合には、第1期間が経過する間に第1設定変更部218の非処理状態を確保し、その上で設定の変更を実行することができるので、設定変更の確実性を向上できる。
また、本実施形態において、コントローラCTの第2設定変更部126が、第1受信判定部114によりエンコーダE7から応答信号を受信したと判定された場合に、コントローラCTの機能に関わる設定を現在の設定からエンコーダEの変更後の設定に対応する所定の設定に変更する場合には、次のような効果を得る。つまり、上記構成により、全てのエンコーダEが所望の設定変更に対応可能であることを判別した上で、コントローラCTの設定を対応する設定に変更できるので、コントローラCTとエンコーダEとを連携させて設定を変更することができる。
また、本実施形態において、コントローラCTの送信停止部120が、エンコーダE7を指定する指令信号を指令送信部110が送信した後に、エンコーダEへの信号の送信を停止し、第2期間判定部122が、エンコーダE7を指定する指令信号を指令送信部110が送信してから第2期間が経過したか否かを判定し、第2設定変更部126が、第2期間判定部122により第2期間が経過したと判定された場合に、上記設定を変更する場合には、次のような効果を得る。つまり、上記構成により、第2期間が経過する間にコントローラCTの第2設定変更部126の非処理状態を確保し、その上で設定の変更を実行することができるので、コントローラCTの設定変更の確実性を向上できる。また、コントローラCTから最も離れて接続されたエンコーダE7に対応する指令信号を送信してから設定を変更するまでの第2期間を第1期間よりも長く設定することで、エンコーダE側での設定の変更に要する時間を確保でき、エンコーダE側での設定変更の確実性を向上できる。
また、本実施形態において、指令送信部110の第1指令送信部112が、通信速度を第2速度に変更させる速度変更コマンドをエンコーダEに送信し、第1設定変更部218が、速度変更コマンドを受信した場合に、コントローラCTとの通信速度を第2速度に変更する場合には、次のような効果を得る。つまり、上記構成により、システム構成に応じてコントローラCTとエンコーダEとの通信速度を最適な通信速度に変更することができるので、多様なシステム構成に柔軟に対応することが可能となる。このとき、コントローラCTの指令送信部110が、指令信号を第1速度でエンコーダEに送信する。つまり、エンコーダEの通信速度を変更する場合、コントローラCTは遅い方の速度で通信してエンコーダEの通信速度を速い方の速度に変更する。これにより、通信速度が高速になると物理的仕様の影響で通信遅れが生じ誤検出の可能性があることから、例えばコントローラCTが速い方の速度で通信してエンコーダEの通信速度を遅い方の速度に変更する場合に比べて、指令信号を送信する際の通信の信頼性を向上することができる。
ここで、コントローラCTとエンコーダEとの通信周期は、コントローラCTの制御周期によって決定されるので、エンコーダE数に関わらず一定である。このため、コントローラCTに接続されたエンコーダEの数が多いほど、一定の通信周期内で多くのエンコーダEから位置データを収集しなければならないので、通信速度を高速化して個々のエンコーダEのデータ転送時間を短縮する必要がある。本実施形態において、速度設定部108がエンコーダEの数に基づいて第2速度を設定する場合には、システム構成に応じてコントローラCTとエンコーダEとの通信速度を最適な通信速度に変更することができる。したがって、多様なシステム構成に柔軟に対応することが可能となる。
<6.変形例等>
以上、添付図面を参照しながら一実施形態について詳細に説明した。しかしながら、特許請求の範囲に記載された技術的思想の範囲は、ここで説明した実施形態に限定されるものではない。本開示の実施形態の属する技術の分野における通常の知識を有する者であれば、技術的思想の範囲内において、様々な変更や修正、組み合わせなどを行うことに想到できることは明らかである。従って、これらの変更や修正、組み合わせなどが行われた後の技術も、当然に技術的思想の範囲に属するものである。以下、そのような変形例等について順を追って説明する。
(6−1.伝送路符号を変更する場合)
上記実施形態では、各エンコーダE1〜E7のコントローラCTとの通信速度を変更する場合を例に挙げて説明した。しかし、各エンコーダE1〜E7のコントローラCT間の伝送路符号を変更することも可能である。伝送路符号としては、例えばRZ符号やNRZ符号、NRZI符号、AMI符号、CMI符号、マンチェスタ符号等が挙げられる。
本変形例では、コントローラCTにおける指令送信部110の第1指令送信部110が、前述の伝送路符号変更コマンドを、通信部150を介してエンコーダE1に送信する。なお、コントローラCTからエンコーダE1に送信された伝送路符号変更コマンドは、エンコーダE1〜E7により、エンコーダE7まで順次受け渡される。そして、各エンコーダE1〜E7における第1設定変更部218が、伝送路符号変更コマンドを受信した場合に、通信部250.260の伝送路符号を、伝送路符号変更コマンドによる所定の伝送路符号に変更する。
本変形例によれば、システム構成に応じてコントローラCTとエンコーダEとの伝送路符号を最適な伝送路符号に変更することができるので、多様なシステム構成に柔軟に対応することが可能となる。
(6−2.位置ラッチタイミングを変更する場合)
上記実施形態や上記変形例では、各エンコーダE1〜E7のコントローラCTとの通信速度や伝送路符号、つまり通信態様を変更する場合を例に挙げて説明した。しかし、各エンコーダE1〜E7の前述の位置ラッチタイミングを変更することも可能である。
本変形例では、コントローラCTにおける指令送信部110の第3指令送信部(図示省略)が、位置ラッチタイミングを現在のタイミングから所定のタイミングに変更させるタイミング変更コマンド(第3指令信号の一例に相当)をエンコーダE1に送信する。なお、コントローラCTからエンコーダE1に送信されたタイミング変更コマンドは、エンコーダE1〜E7により、エンコーダE7まで順次受け渡される。そして、各エンコーダE1〜E7における第1設定変更部218が、タイミング変更コマンドを受信した場合に、位置ラッチタイミングを、タイミング変更コマンドによる所定のタイミングに変更する。
本変形例によれば、次のような効果を得ることができる。つまり、エンコーダE1〜E7がコントローラCTに直列に接続される場合、コントローラCTから送信された位置要求コマンドがエンコーダEで受信される時期が、コントローラCTより離れたエンコーダEほど遅れることになる。このため、各エンコーダE1〜E7が位置要求コマンドに応じて位置データを取得する場合、各エンコーダE1〜E7で位置データを取得する位置ラッチタイミングが相違してしまい、位置データの信頼性が低下する可能性がある。本変形例では、各エンコーダE1〜E7において位置データを取得するタイミングを一致させることができるので、位置データの信頼性を向上できる。
<7.コントローラ及びエンコーダの構成例>
(7−1.コントローラの構成例)
以下、図11を参照しつつ、以上説明した実施形態や各変形例に係る制御部100による処理を実現するコントローラCTの構成例について説明する。
図11に示すように、コントローラCTは、例えば、CPU901と、ROM903、RAM905と、ASICやFPGAの特定の用途向けに構築された専用集積回路、その他の電気回路等の制御装置907と、入力装置913と、出力装置915と、ストレージ装置917と、ドライブ919と、接続ポート921と、通信装置923とを有する。これらの構成は、バス909や入出力インターフェース911を介して相互に信号を伝達可能に接続されている。
プログラムは、例えば、ROM903やRAM905、ストレージ装置917等の記録装置に記録しておくことができる。
また、プログラムは、例えば、フレキシブルディスク等の磁気ディスク、各種のCD・MOディスク・DVD等の光ディスク、半導体メモリ等のリムーバブル記憶媒体925に、一時的又は永続的に記録しておくこともできる。このようなリムーバブル記憶媒体925は、いわゆるパッケージソフトウエアとして提供することもできる。この場合、これらのリムーバブル記憶媒体925に記録されたプログラムは、ドライブ919により読み出されて、入出力インターフェース911やバス909等を介し上記記録装置に記録されてもよい。
また、プログラムは、例えば、ダウンロードサイト・他のコンピュータ・他の記録装置等(図示せず)に記録しておくこともできる。この場合、プログラムは、LANやインターネット等のネットワークNWを介し転送され、通信装置923がこのプログラムを受信する。そして、通信装置923が受信したプログラムは、入出力インターフェース911やバス909等を介し上記記録装置に記録されてもよい。
また、プログラムは、例えば、適宜の外部接続機器927に記録しておくこともできる。この場合、プログラムは、適宜の接続ポート921を介し転送され、入出力インターフェース911やバス909等を介し上記記録装置に記録されてもよい。
そして、CPU901が、上記記録装置に記録されたプログラムに従い各種の処理を実行することにより、上記制御部100による処理を実現可能である。この際、CPU901は、例えば、上記記録装置からプログラムを、直接読み出して実行してもよく、RAM905に一旦ロードした上で実行してもよい。更に、CPU901は、例えば、プログラムを通信装置923やドライブ919、接続ポート921を介し受信する場合、受信したプログラムを記録装置に記録せずに直接実行してもよい。
また、CPU901は、必要に応じて、例えばマウス・キーボード・マイク(図示せず)等の入力装置913から入力する信号や情報に基づいて各種の処理を行ってもよい。
そして、CPU901は、上記の処理を実行した結果を、例えば表示装置や音声出力装置等の出力装置915から出力してもよく、更に、CPU901は、必要に応じてこの処理結果を通信装置923や接続ポート921を介し送信してもよく、上記記録装置やリムーバブル記憶媒体925に記録させてもよい。
なお、上記では、制御部100による処理が、CPU901が実行するプログラムにより実装される場合について説明したが、これらの処理の一部又は全部が制御装置907により実行されてもよい。
(7−2.エンコーダの構成例)
以下、図12を参照しつつ、以上説明した実施形態や各変形例に係る制御部200による処理を実現する各エンコーダE1〜E7の構成例について説明する。
図12に示すように、各エンコーダE1〜E7は、例えば、CPU801と、ROM803、RAM805と、ASICやFPGAの特定の用途向けに構築された専用集積回路、その他の電気回路等の制御装置807と、入力装置813と、出力装置815と、ストレージ装置817と、ドライブ819と、接続ポート821と、通信装置823,825とを有する。これらの構成は、バス809や入出力インターフェース811を介して相互に信号を伝達可能に接続されている。
プログラムは、例えば、ROM803やRAM805、ストレージ装置817等の記録装置に記録しておくことができる。
また、プログラムは、例えば、フレキシブルディスク等の磁気ディスク、各種のCD・MOディスク・DVD等の光ディスク、半導体メモリ等のリムーバブル記憶媒体825に、一時的又は永続的に記録しておくこともできる。このようなリムーバブル記憶媒体825は、いわゆるパッケージソフトウエアとして提供することもできる。この場合、これらのリムーバブル記憶媒体825に記録されたプログラムは、ドライブ819により読み出されて、入出力インターフェース811やバス809等を介し上記記録装置に記録されてもよい。
また、プログラムは、例えば、ダウンロードサイト・他のコンピュータ・他の記録装置等(図示せず)に記録しておくこともできる。この場合、プログラムは、LANやインターネット等のネットワークNWを介し転送され、通信装置823,825がこのプログラムを受信する。そして、通信装置823が受信したプログラムは、入出力インターフェース811やバス809等を介し上記記録装置に記録されてもよい。
また、プログラムは、例えば、適宜の外部接続機器827に記録しておくこともできる。この場合、プログラムは、適宜の接続ポート821を介し転送され、入出力インターフェース811やバス809等を介し上記記録装置に記録されてもよい。
そして、CPU801が、上記記録装置に記録されたプログラムに従い各種の処理を実行することにより、上記制御部200による処理を実現可能である。この際、CPU801は、例えば、上記記録装置からプログラムを、直接読み出して実行してもよく、RAM805に一旦ロードした上で実行してもよい。更に、CPU801は、例えば、プログラムを通信装置823やドライブ819、接続ポート821を介し受信する場合、受信したプログラムを記録装置に記録せずに直接実行してもよい。
また、CPU801は、必要に応じて、例えばマウス・キーボード・マイク(図示せず)等の入力装置813から入力する信号や情報に基づいて各種の処理を行ってもよい。
そして、CPU801は、上記の処理を実行した結果を、例えば表示装置や音声出力装置等の出力装置815から出力してもよく、更に、CPU801は、必要に応じてこの処理結果を通信装置823や接続ポート821を介し送信してもよく、上記記録装置やリムーバブル記憶媒体825に記録させてもよい。
なお、上記では、制御部200による処理が、CPU801が実行するプログラムにより実装される場合について説明したが、これらの処理の一部又は全部が制御装置907により実行されてもよい。
なお、図2、図3、図11、及び図12中に示す矢印は、信号の流れの一例を示すものであり、信号の流れ方向を限定するものではない。
また、図5〜図9に示すフローチャートに記述されたステップは、記載された順序に沿って時系列的に行われる処理はもちろん、必ずしも時系列的に処理されなくとも、並列的に又は個別的に実行される処理をも含む。また時系列的に処理されるステップでも、場合によっては適宜順序を変更することが可能である。
また、以上既に述べた以外にも、上記実施形態や各変形例による手法を適宜組み合わせて利用してもよい。
その他、一々例示はしないが、上記実施形態や各変形例は、その趣旨を逸脱しない範囲内において、種々の変更が加えられて実施されるものである。