モード、セッション、停止動作
このリファレンスは制御ソフトウェア開発者向けです。共有コントローラーは、再生、遠隔操作、チューニングのためのセッション セットアップを処理します。 2 番目の手動セットアップ シーケンスを並行して実行しないでください。
リセットするとレガシー モードが選択されます。 Extension 構成は RAM に常駐し、EEPROM から自動的には復元されません。新たに開始する前に、ソフトウェアは機能をチェックし、プロトコル 9.0 をサポートする必要があります。
レガシーモード
レガシー モードは、モーター電力、動作モード、位置および速度コマンド、ステータス読み取りなどの標準 STS レジスタ インターフェイスをサポートします。既存の STS ソフトウェアは、拡張機能を有効にしなくても、レジスタ 0 – 86 を使用できます。
従来の位置モードでは、新しい位置コマンドを使用せずにモーター出力を有効にすると、保存された制限の範囲外であっても測定された位置が保持されます。古いターゲットを再生したり、シャフトを限界に近い位置まで動かしたりすることはありません。新しい位置コマンドは、保存された制限に制限されたままになります。
拡張機能は独自のモーションとコントロール設定を使用します。スケールが異なるため、2 つのモード間でゲイン値を直接コピーしないでください。標準コマンドのサポートは、すべてのサーボ モデルで同一の物理的動作を保証するものではありません。
拡張モードの開始と停止
次のシーケンスでは、後で説明するレジスタ番号とコマンドを使用します。選択するとセッションが準備されます。モーターパワーを有効にすると制御が開始されます。
- 接続されているサーボ ID を見つけて、各サーボの機能を読み取ります。
ARMCとバージョン9.0を確認します。リセットまたはファームウェアの変更後にこのチェックを繰り返します。 - 従来のトルクイネーブルレジスタ 40 を
0に設定して、モーターの電源をオフにします。既存のセッションを終了し、永続的なレガシー設定を適用します。 - 速度フィードフォワード設定や重力スルーレートを含む完全な構成 (
0xA0) を書き込んで読み戻します。 mode=1とゼロ以外の新しいセッション番号を0xB8に書き込みます (合計 3 バイト)。これにより拡張モードが選択され、次の開始の準備が整います。電源はオフのままです。- レジスタ 40 を
1に設定します。ファームウェアはセンサー、保護ステータス、構成、保存された位置制限をチェックし、測定された位置を初期保持ターゲットとしてキャプチャします。コマンドカウンター、I補正、重力補正はゼロからスタートします。0xC1を読み取り、正しいセッション、現在使用可能な測定値、モータードライブが有効になり、出力の準備が完了するまで待ちます。 - ターゲットと重力の最新情報を送信します。フィードバックを読んで、どのコマンドが受け入れられたか、サーボがそれらのコマンドにどれだけ忠実に従っているかを確認します。
- サーボは最後の移動を終了し、新しいターゲットが与えられるまで目的地を保持します。レジスタ 40 を
0に設定して、モーターの電源をオフにし、セッションを終了します。レガシー モードに戻るには、電源をオフにしたまま、mode=0, session=0を0xB8に書き込みます。
起動に失敗した場合は、 を登録し、 40 は 0 に戻ります。通常の書き込み確認だけでは起動の成功を確認できません。レジスタのリードバックとフィードバックを確認してください。開始を試行するたびに、準備されたセッションが消費されます。始動、トルクオフ、または保護シャットダウンに失敗した後は、トルクを再度有効にする前に、原因を修正し、新しいセッション番号を使用して 0xB8 を書き込みます。制御の実行中にトルクの有効化を繰り返すと、そのターゲット、補償、およびコマンドのカウンターが保存されます。
動力付きモーターを移動または調整するコマンドには、ハードウェアが準備されていること、障害が報告されていないこと、およびセンサーの読み取り値が 2 ms 未満であることが必要です。コントローラーは通常、 1 ms ごとに更新し、最大 2 ms の間隔を受け入れます。ギャップが長いとモーター出力が無効になります。
拡張機能の使用中は、オペレーティング モード レジスタ 33 またはモーション レジスタ 41 – 47 へのレガシー書き込みを避けてください。モーターの電源がオフになり、拡張モードが終了します。永続的な設定を保存すると、拡張機能の制御も終了します。レジスタ 40 から 0 を設定すると、拡張モードが選択されたままになり、別のセッション セットアップの準備が整います。
ホストコマンドが到着しなくなった場合
サーボは最後に受け入れられた移動を終了し、その目的地を保持し続けます。重力補正は、最後に要求された値に向かって継続し、そこに留まります。セッションをアクティブに保つためにメッセージを繰り返す必要はなく、ホスト通信が失われてもターゲットが変更されたり、モーターの電源がオフになったりすることはありません。
サーボの移動先を変更するには、別のターゲットを送信します。モーターを解放するには、トルクイネーブルをゼロに設定します。センサーの鮮度チェック、モーター保護、ファームウェア ウォッチドッグは、移動中や保持中にもアクティブなままになります。
3 つのタイミングメカニズムを区別する
| 仕組み | チェック内容 |
|---|---|
| ファームウェアセンサーの鮮度 | 使用可能なローカル測定値。電源付き制御コマンドには、2 ミリ秒以内の読み取り値が必要です |
| ホストチェック | フレーム/フィードバックの年齢と重力の期限。違反があると、該当するクリーンアップ試行がトリガーされます |
| バスメッセージが見つからない | それ自体はホールドまたは最後の重力リクエストをクリアするファームウェア タイムアウトではありません |
ホストコマンド間隔はサーボの 1 ms 制御間隔ではありません。サーボは、ホストの実行が停止した後も、受け入れられた動作を継続できます。
工具停止動作
| ツール・イベント | 期待されるアクション |
|---|---|
| Extension リプレイ: 正常終了または Ctrl+C | 最後のターゲットとパワードホールドを保持します。重力を設定し、残りのモーションをサービスし、最終的な補償を確認します |
| 遠隔操作: 通常完了または Ctrl+C | 新しいターゲットの発行を停止し、パワーホールドを保持します。完了待機は重力が設定されているかどうかによって異なります |
| チューニング:正常終了 | 設定されたベースラインを復元し、保持を保持します |
| チューニング: バッチ中に Ctrl+C | 中断してトルクオフを試みます |
| レガシーリプレイ: 正常終了 | 最後のポーズでホールドを維持する |
| 従来のリプレイ: Ctrl+C または失敗 | トルクオフを試みる |
| レコーダー: 正常に完了しました | 選択したモーターに電力を供給しないままにしておきます |
| ビューアを閉じる | ハードウェア制御には影響しません |
| 強制終了されたプロセスまたは切断されたバス | クリーンアップは決して到着しない可能性があります。ファームウェアは最後のターゲットと重力を保持できます |
重力モデルが構成され、モーターの準備が整うと、共有コントローラーの完了サービスが残りの移動と重力を処理し、30 秒の完了タイムアウトで 200 ミリ秒の静止状態を待機し、最終的な補償を確認します。休止とは、プランナーがアイドル状態であり、各測定位置が 200 ミリ秒を通じて 1 カウントの範囲内にとどまることを意味します。ゼロ目標誤差は確立されません。
モデル エラー、拒否された更新、古いフィードバック、所有権の喪失、アラーム、および 60 °C 以上の検証済み温度により、検証済みトルクオフが試行されます。 1 つの例外は、同じセッションで 2 つの新しいパスで健全な固定モーターが確認された場合、確立されたホールド中に重力期限を逃した場合です。実行は依然として holdRetained: true で失敗し、自動的に再開されません。
重力モデルがなければ、共有コントローラーはこの最後の休止待機を実行しません。名前付きポーズの再生は通常、設定された許容範囲内で各宛先を待機しますが、Ctrl+C を押すと待機を中断できます。したがって、モーターが最後のターゲットに向かって継続している間に、リプレイまたは遠隔操作を終了することができます。
Ctrl+C はハードウェアの緊急停止ではありません。完了とトルク解放は動作中の通信に依存します。設置は安全な機械的状態を提供する必要があります。
ドキュメント ホーム · ソース リビジョン: a995f77 。 Extension 9.0 。

