2: 2013-09-19 (木) 16:07:31 takaboo | 3: 2013-10-08 (火) 03:54:48 takaboo | ||
---|---|---|---|
Line 96: | Line 96: | ||
コールされるとサーバ内の実行時間[ms]を返す。時間を引数にして処理する場合に利用する。 | コールされるとサーバ内の実行時間[ms]を返す。時間を引数にして処理する場合に利用する。 | ||
++GetAlarmStatus.vi~ | ++GetAlarmStatus.vi~ | ||
- | 各軸のアラームをサーバでの定義有無にかかわらず6軸分の配列で取得する。 | + | 各軸のアラームをサーバでの定義有無にかかわらず6軸分の配列で取得する。~ |
+ | 特に問題が無い軸の値は0、何かしらの問題が発生している軸はそれ相応の数値が返される。 | ||
++SetBlntGain.vi~ | ++SetBlntGain.vi~ | ||
指令角度への遷移時間を設定する。0(=1)ないし1で遅れなし、0よりも大きくするに連れ遷移時間が短くなる。ステップ的な角度指令がなされても動きをあえて鈍らすために用意。 | 指令角度への遷移時間を設定する。0(=1)ないし1で遅れなし、0よりも大きくするに連れ遷移時間が短くなる。ステップ的な角度指令がなされても動きをあえて鈍らすために用意。 | ||
Line 126: | Line 127: | ||
コールされるとサーバ内の実行時間[ms]を返す。時間を引数にして処理する場合に利用する。 | コールされるとサーバ内の実行時間[ms]を返す。時間を引数にして処理する場合に利用する。 | ||
++GetAlarmStatus~ | ++GetAlarmStatus~ | ||
- | 制御している各軸のアラームをサーバでの定義有無にかかわらず6軸分の配列で取得する。 | + | 制御している各軸のアラームをサーバでの定義有無にかかわらず6軸分の配列で取得する。~ |
+ | 特に問題が無い軸の値は0、何かしらの問題が発生している軸はそれ相応の数値が返される。 | ||
++SetBlntGain~ | ++SetBlntGain~ | ||
指令角度への遷移時間を設定する。0(=1)ないし1で遅れなし、0よりも大きくするに連れ遷移時間が短くなる。ステップ的な角度指令がなされても動きをあえて鈍らすために用意。 | 指令角度への遷移時間を設定する。0(=1)ないし1で遅れなし、0よりも大きくするに連れ遷移時間が短くなる。ステップ的な角度指令がなされても動きをあえて鈍らすために用意。 | ||
Line 160: | Line 162: | ||
サーバがデフォルトで使用するI/Fを記述する。 | サーバがデフォルトで使用するI/Fを記述する。 | ||
-Baudrate~ | -Baudrate~ | ||
- | サーバがデフォルトで使用するI/Fの通信速度等を記述する。 | + | サーバがデフォルトで使用するI/Fの通信速度等を記述する。なお、使用する全てのデバイスが同じ通信速度でなくてはならない。 |
-デバイスリスト~ | -デバイスリスト~ | ||
デバイスの一覧が表形式で表示される。マウスの左クリックで選択されたデバイスがウィンドウ下段の編集エリアにて変更可能。右クリックで表示されるポップアップメニューから追加や削除が可能。 | デバイスの一覧が表形式で表示される。マウスの左クリックで選択されたデバイスがウィンドウ下段の編集エリアにて変更可能。右クリックで表示されるポップアップメニューから追加や削除が可能。 | ||
Line 214: | Line 216: | ||
ポートが閉じている時にのみ選択の変更が可能。 | ポートが閉じている時にのみ選択の変更が可能。 | ||
-Running, Alarm (ステータスランプ)~ | -Running, Alarm (ステータスランプ)~ | ||
- | サーバが運転している最中の状態を表示する。Runningは運転中に一定間隔で明滅し、停止中に消灯する。Alarmは運転中に標準化APIから得られるアラームによって点灯ないし消灯する。 | + | サーバが運転している最中の状態を表示する。Runningは運転中に一定間隔で明滅し、停止中に消灯する。Alarmは運転中に標準化APIから得られるアラームによって点灯ないし消灯する。~ |
+ | Alarmが点灯している状態で運用し続けることは好ましくないため、サンプルプログラム等を使用してアラームの要因を調査し適宜対処の事。 | ||
-Start, Stop (開始・停止ボタン)~ | -Start, Stop (開始・停止ボタン)~ | ||
サーバの運転及び停止を指示する。運転中は標準化APIを使用してデバイスとの通信が常に行われている。~ | サーバの運転及び停止を指示する。運転中は標準化APIを使用してデバイスとの通信が常に行われている。~ | ||
Line 222: | Line 225: | ||
+構成ファイルの編集(必要に応じて)~ | +構成ファイルの編集(必要に応じて)~ | ||
テンプレートとして用意されたxmlファイルには、3軸で構成されたアクチュエータが定義されています。まずは自信の環境に合わせて構成を修正します。~ | テンプレートとして用意されたxmlファイルには、3軸で構成されたアクチュエータが定義されています。まずは自信の環境に合わせて構成を修正します。~ | ||
- | ++任意の構成ファイルを選択 | + | ++任意の構成ファイルを選択。 |
- | ++必要な軸数分だけデバイスリストを追加 | + | ++必要な軸数分だけデバイスリストを追加。 |
- | ++ID・デバイス名・位置の範囲・ホームポジション・角度変換係数を適宜修正 | + | ++ID・デバイス名・位置の範囲・ホームポジション・角度変換係数を適宜修正。 |
- | ++保存して終了 | + | ++保存して終了。 |
+I/Fと実機の準備 | +I/Fと実機の準備 | ||
- | アクチュエータに応じたPC用のI/Fを準備し、全ての接続と電源を投入します。次の図はDynamixelを例にしたものですが、概ねどのメーカのアクチュエータも似た構成になるはずです。 | + | ++アクチュエータに応じたPC用のI/Fを準備し、各アクチュエータのIDと通信速度を予め先のエディタで設定したものに変更。 |
+ | ++各社から提供されるツール等で最低限の動作確認を行っておく。 | ||
+ | ++全て接続し電源を投入。~ | ||
+ | 次の図はDynamixelを例にしたものだが、概ねどのメーカのアクチュエータも似た構成になるはず。 | ||
#ref(http://www.besttechnology.co.jp/uploads/fckeditor/fck200912031951039e0b50be55fa7af6.png) | #ref(http://www.besttechnology.co.jp/uploads/fckeditor/fck200912031951039e0b50be55fa7af6.png) | ||
+サーバの運転~ | +サーバの運転~ | ||
Line 256: | Line 262: | ||
**留意事項 [#x6b86e21] | **留意事項 [#x6b86e21] | ||
PCとアクチュエータ間のI/Fの大半は、FTDI社のUSBシリアル変換チップを搭載しているものと思います。このチップを使用している場合、「待ち時間」という設定がデバイスドライバに存在します。この値が大きければ大きいほど遅延が生じ、見かけ以上のパフォーマンスが落ちるため、本サーバで使用する場合は1msに設定を変更して下さい。変更の方法は[[こちら>BTE068#ac1c088b]]。 | PCとアクチュエータ間のI/Fの大半は、FTDI社のUSBシリアル変換チップを搭載しているものと思います。このチップを使用している場合、「待ち時間」という設定がデバイスドライバに存在します。この値が大きければ大きいほど遅延が生じ、見かけ以上のパフォーマンスが落ちるため、本サーバで使用する場合は1msに設定を変更して下さい。変更の方法は[[こちら>BTE068#ac1c088b]]。 | ||
+ | **その他 [#tc1f382f] | ||
+ | ***アラーム [#ua553410] | ||
+ | サーバの運転中にアクチューエータに何かしらの問題が生じていると、サーバのウィンドウに配置されたAlarmのLEDが点灯します。これだけではアラームの要因を特定できないため、SHMIF32.dllのSHGetAlarm(LabVIEWならGetAlarmStatus.vi、simulinkならGetAlarmStatus)を使用して各軸の16bitで表されるアラーム情報を取得して判断してください。~ | ||
+ | メーカごとのアラーム情報のビットアサインは以下の通りです。 | ||
+ | | Vendor | Bit | Information |h | ||
+ | | ROBOTIS | 15 |不正デバイスIDエラー | | ||
+ | |^| 14 |不正IDエラー | | ||
+ | |^| 13 |異IDエラー | | ||
+ | |^| 12 |不正サイズエラー | | ||
+ | |^| 11 |不正パラメータエラー | | ||
+ | |^| 10 |COMポートエラー | | ||
+ | |^| 9 |チェックサムエラー | | ||
+ | |^| 8 |通信タイムアウト | | ||
+ | |^| 7 |- | | ||
+ | |^| 6 |インストラクションエラー | | ||
+ | |^| 5 |過負荷 | | ||
+ | |^| 4 |チェックサムエラー | | ||
+ | |^| 3 |レンジエラー | | ||
+ | |^| 2 |過加熱 | | ||
+ | |^| 1 |アングルエラー | | ||
+ | |^| 0 |過電圧 | | ||
+ | | KONDO | 15 |不正デバイスIDエラー | | ||
+ | |^| 14 |不正IDエラー | | ||
+ | |^| 13 |異IDエラー | | ||
+ | |^| 12 |不正サイズエラー | | ||
+ | |^| 11 |不正パラメータエラー | | ||
+ | |^| 10 |COMポートエラー | | ||
+ | |^| 9 |チェックサムエラー | | ||
+ | |^| 8 |通信タイムアウト | | ||
+ | |^| 7 |- | | ||
+ | |^| 6 |- | | ||
+ | |^| 5 |- | | ||
+ | |^| 4 |レンジエラー | | ||
+ | |^| 3 |- | | ||
+ | |^| 2 |- | | ||
+ | |^| 1 |- | | ||
+ | |^| 0 |- | | ||
+ | | FUTABA | 15 |不正デバイスIDエラー | | ||
+ | |^| 14 |不正IDエラー | | ||
+ | |^| 13 |異IDエラー | | ||
+ | |^| 12 |不正サイズエラー | | ||
+ | |^| 11 |不正パラメータエラー | | ||
+ | |^| 10 |COMポートエラー | | ||
+ | |^| 9 |チェックサムエラー | | ||
+ | |^| 8 |通信タイムアウト | | ||
+ | |^| 7 |温度リミットエラー | | ||
+ | |^| 6 |- | | ||
+ | |^| 5 |温度リミットアラーム | | ||
+ | |^| 4 |- | | ||
+ | |^| 3 |フラッシュROM書き込みエラー | | ||
+ | |^| 2 |- | | ||
+ | |^| 1 |受信パケット処理不能エラー | | ||
+ | |^| 0 |- | | ||
+ | | TECHNO ROAD | 15 |不正デバイスIDエラー | | ||
+ | |^| 14 |不正IDエラー | | ||
+ | |^| 13 |異IDエラー | | ||
+ | |^| 12 |不正サイズエラー | | ||
+ | |^| 11 |SOCKETエラー | | ||
+ | |^| 10 |- | | ||
+ | |^| 9 |- | | ||
+ | |^| 8 |- | | ||
+ | |^| 7 |- | | ||
+ | |^| 6 |- | | ||
+ | |^| 5 |不正PORTエラー | | ||
+ | |^| 4 |不正パラメータエラー | | ||
+ | |^| 3 |メモリエラー | | ||
+ | |^| 2 |タイムアウト | | ||
+ | |^| 1 |未知エラー | | ||
+ | |^| 0 |- | |