stepseries.commands -- デバイスコマンド
デバイスへ送信されるメッセージです。
このモジュールは、データで「埋める」ためのテンプレートとして機能するデータクラス・オブジェクトを提供します。これにより、どのように送信するかではなく、何を送信するかに集中することができます。
いくつかのコマンドは、追加の response_cls 属性を持っています。この属性はライブラリ内部で使用されるものですが、もしすると何かの役に立つかもしれません。これはレスポンスのタイプを保持し、デバイスからの実際のレスポンスは保持しません。
デバイスの内部状態の自動報告を制御するすべてのコマンドには、追加の callback 属性があります。この属性は、デバイスから送られてくるレスポンスを処理するためのコールバックを自動的に登録するためのショートカットです。
- class stepseries.commands.Activate(motorID: int, state: bool)[ソース]
電磁ブレーキを有効化・無効化します。
このコマンドを実行するためには、
stepseries.commands.EnableElectromagnetBrakeが有効になっている必要があります。実行可能タイミング
常時
- class stepseries.commands.EnableBusyReport(motorID: int, enable: bool, callback: Optional[Callable[[...], None]] = None)[ソース]
BUSY状態に変化があったら自動でメッセージを送信する設定を行います。
実行可能タイミング
常時
- class stepseries.commands.EnableDirReport(motorID: int, enable: bool, callback: Optional[Callable[[...], None]] = None)[ソース]
モータ回転方向に変化があったら自動でメッセージを送信する設定を行います。
実行可能タイミング
常時
- class stepseries.commands.EnableElectromagnetBrake(motorID: int, enable: bool)[ソース]
電磁ブレーキモードの有効・無効を切り替えます。
実際にブレーキを動作させる
stepseries.commands.Activateと混同しないように注意してください。電磁ブレーキモードが有効になると、電磁ブレーキを開放しないままモータを回すコマンドを送るとデバイスから
ERROR_BRAKE_ENGAGEDが送られます。実行可能タイミング
常時
- class stepseries.commands.EnableHiZReport(motorID: int, enable: bool, callback: Optional[Callable[[...], None]] = None)[ソース]
HiZ状態に変化があったら自動でメッセージを送信する設定を行います。
実行可能タイミング
常時
- class stepseries.commands.EnableHomeSwReport(motorID: int, enable: bool, callback: Optional[Callable[[...], None]] = None)[ソース]
HOMEスイッチの状態に変化があったら自動でメッセージを送信する設定を行います。
stepseries.commands.EnableSwEventReportもご参照ください。実行可能タイミング
常時
- class stepseries.commands.EnableLimitSwReport(motorID: int, enable: bool, callback: Optional[Callable[[...], None]] = None)[ソース]
LIMITスイッチの状態に変化があったら自動でメッセージを送信する設定を行います。
STEP400のみ実行可能タイミング
常時
- class stepseries.commands.EnableLowSpeedOptimize(motorID: int, enable: bool)[ソース]
低速回転時の相電流ひずみ補正の有効無効を切り替えます。
低い電圧で非常にゆっくり回転させると、相電流の歪みにより、モータはスムーズな回転を維持するのがむずかしくなります。その影響を減らすための補正です。この補正が電圧モードでのみ有効で、有効時は
Min Speedが強制的に0になります。詳しくはデータシートを参照してください。
実行可能タイミング
モータ停止時
- class stepseries.commands.EnableMotorStatusReport(motorID: int, enable: bool, callback: Optional[Callable[[...], None]] = None)[ソース]
モータの回転状態に変化があったら自動でメッセージを送信する設定を行います。
有効になっている場合、モータに停止中、加速中、一定速運転中、減速中という状態の変化に発生したら、報告のメッセージを送信します。
実行可能タイミング
常時
- class stepseries.commands.EnableOverCurrentReport(motorID: int, enable: bool, callback: Optional[Callable[[...], None]] = None)[ソース]
指定した電流閾値を越えて電流が流れた場合に報告のメッセージを送信する設定を行います。
この閾値は
stepseries.commands.SetOverCurrentThresholdで指定します。モータドライバが過電流状態になった場合は、通知の有無にかかわらず自動でHiZ状態になります。
この設定は初期状態で有効になっています。
実行可能タイミング
常時
- class stepseries.commands.EnableServoMode(motorID: int, enable: bool)[ソース]
サーボモード(位置追従モード)の有効無効を切り替えます。
このモードで動作している間は、
stepseries.commands.SetOverCurrentThresholdや:py:class:stepseries.commands.GoTo など、他のモータ回転コマンドを送ることはできません。実行可能タイミング
常時
- class stepseries.commands.EnableStallReport(motorID: int, enable: bool, callback: Optional[Callable[[...], None]] = None)[ソース]
モータのストールを検出した際に自動でメッセージを送信する設定を行います。
検出の閾値は
stepseries.commands.SetStallThresholdで設定できます。実行可能タイミング
常時
- class stepseries.commands.EnableSwEventReport(motorID: int, enable: bool, callback: Optional[Callable[[...], None]] = None)[ソース]
HOMEスイッチの状態に変化があったら自動でメッセージを送信する設定を行います。
指定したモータのHOMEスイッチ端子の状態がHIGHレベルからLOWレベルに遷移した際(Falling Edge)に自動でメッセージを送信する設定を行います。
stepseries.commands.EnableHomeSwReportはマイコンのファームウェア上から約1ms毎にモータドライバICのSTATUSレジスタをポーリングすることによって状態を監視していますが、enableSwEventReportはドライバIC内でハードウェアによってイベントが検出されるため、1ms以下のごくわずかな時間だけセンサが反応した場合でももとり逃しません。実行可能タイミング
常時
- class stepseries.commands.EnableThermalStatusReport(motorID: int, enable: bool, callback: Optional[Callable[[...], None]] = None)[ソース]
指定したモータドライバの温度状態(thermalStatus)に変化があったら自動でメッセージを送信するかどうかを指定します。
これはモータドライバがある温度を超えると送信されるものです。。STEP400とSTEP800では Thermal statusの種類や発生条件が異なります。
Bridge shutdown, Device shutdown 状態では、通知の有無にかかわらずモータはHiZ状態になります。ドライバの温度上昇を防ぐために、ドライバチップへの放熱器の取り付けを強くお勧めします。
この設定は初期状態で有効になっています。
実行可能タイミング
常時
STEP400:
TH_STATUS
説明
発生条件
解除条件
0
通常
1
警告
135°C
125°C
2
Bridge shutdown
155°C
145°C
3
Device shutdown
170°C
130°C
STEP800:
TH_STATUS
説明
発生条件
解除条件
0
通常
1
警告
130°C
130°C
2
Bridge shutdown
160°C
130°C
- class stepseries.commands.EnableUvloReport(motorID: int, enable: bool, callback: Optional[Callable[[...], None]] = None)[ソース]
UVLO (Undervoltage Lockout) が発生した際に自動で通知メッセージを送信する設定を行います。
UVLOはモータドライバへ供給されている電圧がUVLO発生条件電圧を下回ったら通知の有無にかかわらず発生します。この状態ではモータを動かすことはできません。供給電圧がUVLO解除条件電圧を上回ったら解除されます。
この設定は初期状態で有効になっています。
実行可能タイミング
常時
- class stepseries.commands.Free(motorID: int)[ソース]
モータ軸と電磁ブレーキ両方を解放します。
警告
このコマンドが送られると、モータの保持力は無くなります。
このコマンドを実行するためには、
stepseries.commands.EnableElectromagnetBrakeが有効になっている必要があります。実行可能タイミング
常時
- class stepseries.commands.GetAdcVal(motorID: int)[ソース]
モータドライバの
ADC_OUTレジスタの値を取り出します。ADC_OUTはモータドライバのADCピンの電圧を5bitでAD変換した値です。STEP400では、個のピンは10kΩの抵抗でプルアップされていて、LIMITSWコネクタに接続されています。STEP800では、このピンはGNDに接続されていて、常時0Vになります。注釈
このコマンドはデバッグ目的のために設けられています。通常このコマンドを使用する必要はありません。
実行可能タイミング
常時
- class stepseries.commands.GetBrakeTransitionDuration(motorID: int)[ソース]
電磁ブレーキの遷移時間を取得します。
ブレーキの動作には物理的にある時間が必要なため、その間モータを励磁しておくのがこの遷移時間です。
実行可能タイミング
常時
- class stepseries.commands.GetConfigName[ソース]
起動時にmicroSDカードから読み込まれたコンフィギュレーションファイルの名称を取得します。
実行可能タイミング
常時
- class stepseries.commands.GetConfigRegister(motorID: int)[ソース]
モータドライバの CONFIG レジスタの値を取得します。
CONFIGレジスタにはモータやアラーム、スイッチの状態などが含まれます。
注釈
このコマンドはデバッグ目的のために設けられています。通常このコマンドを使用する必要はありません。
実行可能タイミング
常時
- class stepseries.commands.GetDecayModeParam(motorID: int)[ソース]
電流制御アルゴリズムのパラメータを設定するレジスタ値を取得します。
STEP400のみ実行可能タイミング
常時
- class stepseries.commands.GetElPos(motorID: int)[ソース]
モータの電気的位置 (electrical postion)を取得します。
実行可能タイミング
常時
- class stepseries.commands.GetFullstepSpeed(motorID: int)[ソース]
マイクロステッピングモードが自動でフルステップモードに切り替わる閾値を取得します。
実行可能タイミング
常時
- class stepseries.commands.GetGoUntilTimeout(motorID: int)[ソース]
stepseries.commands.GoUntil実行時のタイムアウト時間を取得します。実行可能タイミング
常時
- class stepseries.commands.GetLimitSwMode(motorID: int)[ソース]
LIMITスイッチの動作モードを取得します。
STEP400のみ実行可能タイミング
常時
- class stepseries.commands.GetLowSpeedOptimizeThreshold(motorID: int)[ソース]
Low speed optimization threshold の現在の設定値を取得します。
実行可能タイミング
常時
- class stepseries.commands.GetMicrostepMode(motorID: int)[ソース]
モータのマイクロステッピングモードを取得します。
実行可能タイミング
常時
- class stepseries.commands.GetOverCurrentThreshold(motorID: int)[ソース]
過電流アラームの閾値を取得します。
実行可能タイミング
常時
- class stepseries.commands.GetPosition(motorID: int)[ソース]
モータの現在位置を取得します。
stepseries.commands.SetPositionReportIntervalで、指定間隔で自動送信させることもできます。実行可能タイミング
常時
- class stepseries.commands.GetPositionList[ソース]
全モータの現在位置を取得します。
他の方法として、
stepseries.commands.SetPositionListReportIntervalを使用して、一定間隔で現在位置を自動で送信させることもできます。実行可能タイミング
常時
- class stepseries.commands.GetProhibitMotionOnHomeSw(motorID: int)[ソース]
Homeセンサが反応している状態で、原点復帰方向へのモーションコマンドが禁止されているかどうかを返します。
実行可能タイミング
常時
- class stepseries.commands.GetProhibitMotionOnLimitSw(motorID: int)[ソース]
Limitセンサが反応している状態で、原点復帰方向の逆方向へのモーションコマンドが禁止されているかどうかを返します。
STEP400のみ実行可能タイミング
常時
- class stepseries.commands.GetReleaseSwTimeout(motorID: int)[ソース]
stepseries.commands.ReleaseSwのタイムアウト時間を取得します。実行可能タイミング
常時
- class stepseries.commands.GetStatus(motorID: int)[ソース]
モータドライバのSTATUSレジスタの値を返します。
ステータスレジスタにはモータやアラーム、スイッチの状態などが含まれます。
注釈
このコマンドはデバッグ目的のために設けられています。通常このコマンドを使用する必要はありません。
実行可能タイミング
常時
- class stepseries.commands.GetThermalStatus(motorID: int)[ソース]
ThermalStatusの現在の状態を取得します。
STEP400とSTEP800では Thermal statusの種類や発生条件が異なります。
実行可能タイミング
常時
STEP400:
TH_STATUS
説明
発生条件
解除条件
0
通常
1
警告
135°C
125°C
2
Bridge shutdown
155°C
145°C
3
Device shutdown
170°C
130°C
STEP800:
TH_STATUS
説明
発生条件
解除条件
0
通常
1
警告
130°C
130°C
2
Bridge shutdown
160°C
130°C
- class stepseries.commands.GetTval_mA(motorID: int)[ソース]
4つのTVALパラメータを取得します。
stepseries.commands.GetTvalとは異なり、レジスタの値ではなく単位[mA]の設定値で返します。STEP400のみ実行可能タイミング
常時
- class stepseries.commands.GoHome(motorID: int)[ソース]
HOME位置までスピードプロファイルに従って移動します。
実行可能タイミング
BUSY状態でないとき
- class stepseries.commands.GoMark(motorID: int)[ソース]
MARK位置までスピードプロファイルに従って移動します。
実行可能タイミング
BUSY状態でないとき
- class stepseries.commands.GoTo(motorID: int, position: int)[ソース]
事前に設定したスピードプロファイルにしたがって、指定位置まで最短経路で移動します。
※例えば円における0度と360度のように、ドライバ内部では -2,097,152 と 2,097,151 は1周して隣り合った位置になっています。すなわち、モータの現在地が-2097000のときに2097000を指定した場合は、モータは-2097152, さらに2097151を経由し、最終的に2097000に到着します。
stepseries.commands.GoToDirでモータ回転方向を指定することもできます。指定位置まで移動し終わるまではBUSY状態になります。
実行可能タイミング
BUSY状態でないとき
- class stepseries.commands.GoToDir(motorID: int, DIR: bool, position: int)[ソース]
事前に設定したスピードプロファイルにしたがって、指定位置まで指定方向で移動します。指定位置まで移動し終わるまではBUSY状態になります。
※例えば円における0度と360度のように、ドライバ内部では -2,097,152 と 2,097,151 は1周して隣り合った位置になっています。
stepseries.commands.GoToによって自動的に先ほどの「円」に沿って回転方向を決定させることもできます。指定位置まで移動し終わるまではBUSY状態になります。
実行可能タイミング
BUSY状態でないとき
- class stepseries.commands.GoUntil(motorID: int, ACT: bool, speed: float)[ソース]
HOMEスイッチが反応するか、タイムアウトするまでモータを回転させます。
モータは
speedパラメータの値に応じた速さと方向で回転します。初期状態ではモータは softStop しますが、
stepseries.commands.SetSwModeが0に設定されていると hardStop になります。タイムアウトの時間は
stepseries.commands.SetGoUntilTimeoutを使って設定します。このコマンドは
stepseries.commands.SetHomingSpeedやstepseries.commands.SetHomingDirectionの影響は受けません。このコマンドは、モータが停止するまでBUSY状態を保ちます。
実行可能タイミング
常時
- class stepseries.commands.HardHiZ(motorID: int)[ソース]
モータを即時停止します。
スピードプロファイルに従って減速したのち、モータを停止して励磁を解除します。励磁が解除されるとHiZ状態になります。モータが停止するまではBUSY状態になります。サーボモードだった場合は解除されます。電磁ブレーキモードが有効になっている場合は、電磁ブレーキを保持状態にしてからHiZ状態に移行します。
実行可能タイミング
常時
- class stepseries.commands.HardStop(motorID: int)[ソース]
モータを即時停止します。
モータを即時停止し、励磁したままにします。モータが停止するまではBUSY状態になります。もともとHiZ状態だった場合は、停止したままモータが励磁します。
サーボモードだった場合は解除されます。
実行可能タイミング
常時
- class stepseries.commands.Homing(motorID: int)[ソース]
原点復帰動作を開始します。
原点復帰方向に移動し、HOMEセンサが反応すると停止します。その後方向を反転してゆっくり移動し、HOMEセンサが反応しなくなった時点で停止し、現在位置を0 (HOME)にします。
これは
stepseries.commands.GoUntilコマンドを実行し、HOMEセンサが反応すると停止してstepseries.commands.ReleaseSwコマンドを実行することに相当します。原点復帰方向と原点復帰スピードはそれぞれ
stepseries.commands.SetHomingDirectionとstepseries.commands.SetHomingSpeedで設定できるほか、 Config Tool からも設定できます。もし
stepseries.commands.SetGoUntilTimeoutまでにHOMEスイッチが反応しなかった場合や、stepseries.commands.SetReleaseSwTimeoutまでにHOMEスイッチが解除されなかった場合は、タイムアウトとして動作を停止します。実行可能タイミング
常時
- class stepseries.commands.Move(motorID: int, step: int)[ソース]
指定ステップ数移動します。
指定ステップ数を移動し終わるまではBUSY状態になります。
実行可能タイミング
モータ停止時
- class stepseries.commands.OSCCommand[ソース]
OSCコマンドオブジェクトによって実装されることを目的とした抽象クラスです。
もし独自のコマンドを実装する場合は、このクラスを継承する必要があります。
- class stepseries.commands.ReleaseSw(motorID: int, ACT: bool, DIR: bool)[ソース]
HOMEスイッチが解放されるまで最小スピードで移動します。
スイッチが解放されると hardStop し、
ACTに応じた処理を行います。このコマンドのタイムアウトは
stepseries.commands.SetReleaseSwTimeoutで設定できます。このコマンドは
stepseries.commands.SetHomingSpeedやstepseries.commands.SetHomingDirectionの影響は受けません。このコマンドは、モータが停止するまでBUSY状態を保ちます。
実行可能タイミング
常時
- class stepseries.commands.ReportError(enable: bool, callback: Optional[Callable[[...], None]] = None)[ソース]
コマンドエラーの自動送信の有効・無効を切り替えます。
実行可能タイミング
常時
- class stepseries.commands.ResetDevice[ソース]
デバイス全体をリセットします。
基板上のRESETボタンを物理的に押下した場合と同じ動作です。
実行可能タイミング
常時
- class stepseries.commands.ResetMotorDriver(motorID: int)[ソース]
指定したモータドライバ (PowerSTEP01/L6470) をリセットし、初期設定値を再度書き込みます。
注釈
このコマンドはデバッグ目的のために設けられています。通常このコマンドを使用する必要はありません。
実行可能タイミング
常時
非推奨
- class stepseries.commands.Run(motorID: int, speed: float)[ソース]
モータを一定速度で回転させます。
stepseries.commands.SetSpeedProfileで設定したスピードプロファイルに従って加速・減速します。speedに到達するまではBUSY状態になります。実行可能タイミング
常時
- class stepseries.commands.SetAcc(motorID: int, acc: float)[ソース]
スピードプロファイルの、加速度を設定します。
実行可能タイミング
モータ停止時
- class stepseries.commands.SetBemfParam(motorID: int, INT_SPEED: int, ST_SLP: int, FN_SLP_ACC: int, FN_SLP_DEC: int)[ソース]
BEMF補償レジスタを設定します。
BEMFはドライバが電圧モードになっているときだけ有効です。すなわち、STEP800ではBEMF補償は常時有効になっています。
実行可能タイミング
常時
- class stepseries.commands.SetBrakeTransitionDuration(motorID: int, duration: int)[ソース]
電磁ブレーキの保持・開放時に、モータを励磁したままにしておく遷移時間を指定します。
これは物理的にブレーキ機構が動作する時間がかかるため、ブレーキの動作が完了するまでモータ軸を保持しておくために必要な時間です。
実行可能タイミング
常時
- class stepseries.commands.SetCurrentMode(motorID: int)[ソース]
指定したモータを電流モードに切り替えます。
STEP400のみ注釈
STEP800では常に電圧モードで動作しますので、電流モードには切り替えられません。
実行可能タイミング
常時
- class stepseries.commands.SetDec(motorID: int, dec: float)[ソース]
スピードプロファイルの減速度を設定します。
実行可能タイミング
モータ停止時
- class stepseries.commands.SetDecayModeParam(motorID: int, T_FAST: int, TON_MIN: int, TOFF_MIN: int)[ソース]
電流制御アルゴリズムのパラメータのレジスタを設定します。
STEP400のみDecayモードは電流モードにのみ適用されます。すなわちSTEP800では常に無効です。
実行可能タイミング
HiZ
- class stepseries.commands.SetDestIP[ソース]
デバイスが返答を送信する相手のIPアドレスを指定します。
モータの状態に変化があったときに通知するメッセージや、問い合わせへ返答するメッセージなどはこのIPアドレスに送信されるようになります。通常は制御に使うコンピュータのIPアドレスを指定することになります。このメッセージを受信すると、デバイス側は
stepseries.responses.DestIPの返答を送信します。また、このメッセージが受信されるまでは、本デバイスからOSCメッセージの送信は行いませんので、一番最初にこのコマンドを送信してください。唯一の例外は
responses.Bootedメッセージです。Config Tool を用いて、デバイス側がこのメッセージを待つかどうかを変更できます。Note: ライブラリは
stepseries.responses.DestIPを受信するまでは return します。この挙動は将来のアップデートで変更される可能性があります。実行可能タイミング
常時
- class stepseries.commands.SetElPos(motorID: int, newFullstep: int, newMicrostep: int)[ソース]
モータの電気的位置(electrical postion)を設定します。
マイクロステップは0-127の128段階で表現されていますので、設定時は現在のマイクロステップと齟齬のない値を設定する必要があります。
実行可能タイミング
モータ停止時
- class stepseries.commands.SetFullstepSpeed(motorID: int, fullstepSpeed: float)[ソース]
マイクロステッピングモードが自動でフルステップモードに切り替わる閾値を設定します。
実行可能タイミング
常時
- class stepseries.commands.SetGoUntilTimeout(motorID: int, timeOut: int)[ソース]
stepseries.commands.GoUntil実行時のタイムアウトを設定します。この時間内にHOMEセンサに反応がなかった場合にはtimeoutとして動作を中止します。0を指定するとタイムアウトが無効になります。
Config Tool. からも設定できます。
実行可能タイミング
常時
- class stepseries.commands.SetHomeSwMode(motorID: int, SW_MODE: bool)[ソース]
HOMEスイッチ端子に入力があった際に即時停止するかどうか(Switch mode)を指定します。
実行可能タイミング
HiZ
- class stepseries.commands.SetHomingDirection(motorID: int, direction: bool)[ソース]
原点復帰の方向を設定します。
Config Tool. からも設定できます。
実行可能タイミング
常時
- class stepseries.commands.SetHomingSpeed(motorID: int, speed: float)[ソース]
原点復帰の速さを指定します。
Config Tool. からも設定できます。
実行可能タイミング
常時
- class stepseries.commands.SetKval(motorID: int, holdKVAL: int, runKVAL: int, accKVAL: int, decKVAL: int)[ソース]
KVALパラメータ4種をまとめて設定します。
KVALは電圧モードでののみ有効です。すなわち、STEP800では常時有効となります。
実行可能タイミング
常時
- class stepseries.commands.SetLimitSwMode(motorID: int, SW_MODE: bool)[ソース]
LIMITスイッチ端子に入力があった際に即時停止するかどうか(Switch mode)を指定します。
STEP400のみ実行可能タイミング
常時
- class stepseries.commands.SetLowSpeedOptimizeThreshold(motorID: int, lowSpeedOptimizationThreshold: float)[ソース]
低速回転時の相電流ひずみ補正を行う閾値を設定します。
低い電圧で非常に遅く回転した際に、相電流の歪みにより滑らかな回転を維持するのが難しくなる傾向があり、それを補正するためのパラメータです。
注釈
stepseries.commands.EnableLowSpeedOptimizeでこの補正が有効になっていることを確認してください。実行可能タイミング
モータ停止時
- class stepseries.commands.SetMark(motorID: int, MARK: int)[ソース]
MARKを任意の位置に設定します。
このレジスタは位置座標をひとつ保存できます。書き込むと、前回保存した値を上書きします。
実行可能タイミング
常時
- class stepseries.commands.SetMaxSpeed(motorID: int, maxSpeed: float)[ソース]
スピードプロファイルの、最大回転速さを設定します。
実行可能タイミング
常時
- class stepseries.commands.SetMicrostepMode(motorID: int, STEP_SEL: int)[ソース]
マイクロステッピングモードを設定します。
電圧モードでは、初期値である1/128まで設定できます。電流モードでは、1/16までしか設定できません。
実行可能タイミング
常時
- class stepseries.commands.SetMinSpeed(motorID: int, minSpeed: float)[ソース]
スピードプロファイルの最小速さを設定します。
この値は
stepseries.commands.ReleaseSw時のモータ回転速さにも使用されます。stepseries.commands.EnableLowSpeedOptimizeが有効になっている場合は、この値は強制的に0になります。実行可能タイミング
モータ停止時
- class stepseries.commands.SetOverCurrentThreshold(motorID: int, OCD_TH: int)[ソース]
過電流検出の閾値を設定します。STEP400とSTEP800では設定値の範囲と対応する電流が異なっています。
STEP400とSTEP800では Thermal statusの種類や発生条件が異なります。
実行可能タイミング
常時
- class stepseries.commands.SetPosition(motorID: int, newPosition: int)[ソース]
モータの位置座標を指定した値で上書きします。
実行可能タイミング
モータ停止時
- class stepseries.commands.SetPositionListReportInterval(interval: int, callback: Optional[Callable[[...], None]] = None)[ソース]
すべてのモータの現在位置を指定間隔で自動送信します。
有効化された場合、
stepseries.commands.SetPositionReportIntervalは無効になり自動停止します。実行可能タイミング
常時
- class stepseries.commands.SetPositionReportInterval(motorID: int, interval: int, callback: Optional[Callable[[...], None]] = None)[ソース]
指定したモータの現在位置を指定間隔で自動送信します。
いずれかのモータで有効化された場合、
stepseries.commands.SetPositionListReportIntervalは無効になり自動停止します。実行可能タイミング
常時
- class stepseries.commands.SetProhibitMotionOnHomeSw(motorID: int, enable: bool)[ソース]
Homeセンサが反応している状態で、原点復帰方向へのモーションコマンドを禁止します。
原点復帰方向は Config Tool や
stepseries.commands.SetHomingDirectionで設定できます。実行可能タイミング
常時
- class stepseries.commands.SetProhibitMotionOnLimitSw(motorID: int, enable: bool)[ソース]
Limitセンサが反応している状態で、原点復帰方向の逆方向へのモーションコマンドを禁止します。
原点復帰方向は Config Tool や
stepseries.commands.SetHomingDirectionで設定できます。STEP400のみ実行可能タイミング
常時
- class stepseries.commands.SetReleaseSwTimeout(motorID: int, timeOut: int)[ソース]
stepseries.commands.ReleaseSwのタイムアウト時間を設定します。もしHOMEスイッチがこの時間内に解放されたなかった場合は、モータの動作を停止します。0を指定すると無効になります。
Config Tool. からも設定できます。
実行可能タイミング
常時
- class stepseries.commands.SetServoParam(motorID: int, kP: float, kI: float, kD: float)[ソース]
PID制御のパラメータを設定します。
実行可能タイミング
常時
- class stepseries.commands.SetSpeedProfile(motorID: int, acc: float, dec: float, maxSpeed: float)[ソース]
複数のスピードプロファイルを一度に設定します。
このコマンドで、加速度、減速度、最大速さを設定できます。
実行可能タイミング
モータ停止時
- class stepseries.commands.SetStallThreshold(motorID: int, STALL_TH: int)[ソース]
ストール検出の閾値を設定します。
STEP400とSTEP800では Thermal statusの種類や発生条件が異なります。
実行可能タイミング
常時
- class stepseries.commands.SetTargetPosition(motorID: int, position: int)[ソース]
サーボモード時の目標位置を設定します。
あらかじめ
stepseries.commands.EnableServoModeが有効になっている必要があります。実行可能タイミング
常時
- class stepseries.commands.SetTargetPositionList(position1: int, position2: int, position3: int, position4: int, position5: Optional[int] = None, position6: Optional[int] = None, position7: Optional[int] = None, position8: Optional[int] = None)[ソース]
全モータの目標位置を一度に設定します。
注釈
STEP400では、position 5-8 は設定する必要はありません。
- class stepseries.commands.SetTval(motorID: int, holdTVAL: int, runTVAL: int, accTVAL: int, setDecTVAL: int)[ソース]
TVALパラメータ4つをまとめて設定します。
STEP400のみTVALは電流モードでのみ有効です。すなわちSTEP800では使用しません。
実行可能タイミング
常時
- class stepseries.commands.SetVoltageMode(motorID: int)[ソース]
指定したモータを電圧モードに変更します。
STEP400のみ注釈
STEP800では常に電圧モードで動作しますので、電流モードには切り替えられません。
実行可能タイミング
常時
stepseries.exceptions -- デバイスエラー
このライブラリが発生させるカスタムの例外情報 (exceptions) です。
stepseries.responses -- デバイスレスポンス
デバイスからの受信メッセージです。
- class stepseries.responses.Booted(*args, **kwargs)[ソース]
デバイスが(再)起動した際に送信されます。
このメッセージは
stepseries.commands.SetDestIPが受信されたかどうかに関わらず送信されます。このメッセージを監視することによって、何らかの理由で本デバイスがリセットされたことを検出できます。ファームウェアが起動して、Ethernetがリンク状態になった1秒後に送信されます。
サブネット内のすべてのノード (255.255.255.255) へブロードキャストされます。 Config Tool の設定を用いて、このメッセージを送信しないようにも設定できます
- class stepseries.responses.BrakeTransitionDuration(*args, **kwargs)[ソース]
ブレーキモードにおける電磁ブレーキの保持・開放時に、モータを励磁したままにしておく遷移時間を指定します。
- class stepseries.responses.DestIP(*args, **kwargs)[ソース]
stepseries.commands.SetDestIPが受信されたことを示す確認メッセージ。
- exception stepseries.responses.ErrorCommand(*args, **kwargs)[ソース]
コマンド実行時にエラーを検出すると送信されます。
stepseries.commands.ReportErrorで有効・無効を切り替えられます。- errorText: str
エラーテキスト
説明
CommandIgnored
コマンドが実行可能なタイミングでない。コマンドの実行可能タイミングを確認してください。
MotorIdNotMatch
モータIDが適切でない値になっている。
BrakeEngaging
電磁ブレーキが効いた状態のままモーションコマンドを送信した。
HomeSwActivating
Homeセンサが反応している状態で、原点復帰方向へのモーションコマンドを禁止します。
LimitSwActivating
Limitセンサが反応している状態で、原点復帰方向の逆方向へのモーションコマンドを禁止します。
GoUntilTimeout
/goUntilコマンド実行中にタイムアウトした。ReleaseSwTimeout
/releaseSwコマンド実行中にタイムアウトした。InServoMode
サーボモードでは実行できないコマンドを送信した。
- exception stepseries.responses.ErrorOSC(*args, **kwargs)[ソース]
受け取ったOSCメッセージに何らかのエラーがあった場合に送信されます。
- class stepseries.responses.GoUntilTimeout(*args, **kwargs)[ソース]
stepseries.commands.GoUntilコマンドのタイムアウト時間。
- class stepseries.responses.HomeSwMode(*args, **kwargs)[ソース]
スイッチモードは
stepseries.commands.SetHomeSwMode.で説明されています。
- class stepseries.responses.HomingStatus(*args, **kwargs)[ソース]
Documentation: https://ponoor.com/en/docs/step-series/osc-command-reference/automatically-sent-messages-from-step-400/#homingstatus
- class stepseries.responses.LimitSwMode(*args, **kwargs)[ソース]
スイッチモードは
stepseries.commands.SetHomeSwMode.で説明されています。
- class stepseries.responses.LowSpeedOptimizeThreshold(*args, **kwargs)[ソース]
Low speed optimization threshold の現在の設定値。
- class stepseries.responses.MicrostepMode(*args, **kwargs)[ソース]
モータのマイクロステップモード。
- class stepseries.responses.OverCurrent(*args, **kwargs)[ソース]
Documentation: https://ponoor.com/en/docs/step-series/osc-command-reference/automatically-sent-messages-from-step-400/#overcurrent
- class stepseries.responses.PositionList(*args, **kwargs)[ソース]
全モータの現在位置をまとめたもの。
STEP400ではモータ数は4軸ですので、
position5-8はありません。
- class stepseries.responses.ProhibitMotionOnHomeSw(*args, **kwargs)[ソース]
HOMESWが押されている状態で原点復帰方向への動作を許可するかどうか。
- class stepseries.responses.ProhibitMotionOnLimitSw(*args, **kwargs)[ソース]
HOMESWが押されている状態で原点復帰方向への動作を許可するかどうか。
- class stepseries.responses.ReleaseSwTimeout(*args, **kwargs)[ソース]
stepseries.commands.ReleaseSwのタイムアウト時間。
- class stepseries.responses.Stall(*args, **kwargs)[ソース]
Documentation: https://ponoor.com/en/docs/step-series/osc-command-reference/automatically-sent-messages-from-step-400/#stall
- class stepseries.responses.Status(*args, **kwargs)[ソース]
モータドライバのSTATUSレジスタの値。
STATUSの各ビットに含まれる情報についてはデータシートを参照してください。このうち、一部の値はラッチされていて、ステータスレジスタを読み出すとリセットされます。本デバイスではファームウェアによって常時ステータスレジスタを繰り返し取得しているため、これらの値はすぐにリセットされてしまいます。これらの事象を個別に報告する設定が可能ですので、そちらを利用してください。
STEP400 Bits
STEP800 Bits
対応する設定コマンド
UVLO
UVLO
UVLO_ADC
N/A
実装されていません。
OCD
OCD
STALL_A, STALL_B
STEP_LOSS_A, STEP_LOSS_B
CMD_ERROR
WRONG_CMD, NOTPREF_CMD
stepseries.commands.EnableCommandErrorReportTH_STATUS
TH_WRN, TH_SD
SW_EVN
SW_EVN
MOT_STATUS
MOT_STATUS
SW_F
SW_F
BUSY
BUSY
HIZ
HIZ
- class stepseries.responses.ThermalStatus(*args, **kwargs)[ソース]
モータドライバの温度状態 (Thermal Status)。
STEP400とSTEP800ではステータスや閾値が異なります。
stepseries.step400 -- STEP400 デバイス
Ethernet接続可能な4軸ステッピングモータドライバ。
- class stepseries.step400.STEP400(id: int, address: str = '10.0.0.100', port: int = 50000, server_address: str = '0.0.0.0', server_port: int = 50100)[ソース]
STEP400モータドライバとデータを送受信します。
注釈
デフォルトメッセージハンドラを作成することを推奨します。例:
>>> from stepseries.step400 import STEP400 >>> >>> def default_handler(message) -> None: ... print(message) ... >>> driver = STEP400(0, '10.1.21.56') # Your IP and dip ID here >>> driver.on(None, default_handler)
- パラメータ
id (int) -- デバイスのDIPスイッチで設定されたID
address (str) -- デバイスのIPアドレス。初期値は 10.0.0.100 です。
port (int) -- デバイスが受信するローカルポート番号。初期値は 50000 です。
server_address (str) -- サーバ(制御PC)のIPアドレス。常時 0.0.0.0 に設定します。
server_port (int) -- サーバが受信するポート番号。初期値は 50100 です。
add_id_to_args (bool) -- address と server_port に id を加算するかどうか。初期値は True です。
stepseries.step800 -- STEP800 デバイス
Ethernet接続可能な8軸ステッピングモータドライバ。
- class stepseries.step800.STEP800(id: int, address: str = '10.0.0.100', port: int = 50000, server_address: str = '0.0.0.0', server_port: int = 50100)[ソース]
STEP800モータドライバとデータを送受信します。
注釈
デフォルトメッセージハンドラを作成することを推奨します。例:
>>> from stepseries.step800 import STEP800 >>> >>> def default_handler(message) -> None: ... print(message) ... >>> driver = STEP800(0, '10.1.21.56') # Your IP and dip ID here >>> driver.on(None, default_handler)
- パラメータ
id (int) -- デバイスのDIPスイッチで設定されたID
address (str) -- デバイスのIPアドレス。初期値は 10.0.0.100 です。
port (int) -- デバイスが受信するローカルポート番号。初期値は 50000 です。
server_address (str) -- サーバ(制御PC)のIPアドレス。常時 0.0.0.0 に設定します。
server_port (int) -- サーバが受信するポート番号。初期値は 50100 です。
add_id_to_args (bool) -- address と server_port に id を加算するかどうか。初期値は True です。
- get(command: OSCGetCommand, with_callback: bool = True, wait: bool = True) Union[OSCResponse, List[OSCResponse]][ソース]
デバイスに 'get' コマンドを送り、レスポンスを返します。
注釈
レスポンスは該当する各コールバックにも送信されます。
もし ParseError を受信した場合は、そのエラーが発生します。生のレスポンスは、エラーの response 属性で取得できます。
- パラメータ
command (OSCGetCommand) -- 完成したコマンドのテンプレート (stepseries.commands) 。
with_callback (bool) -- レスポンスをコールバックにも送るかどうか(初期値は True )。
wait (bool) -- True の場合はデバイスからのレスポンスを待ち、そうでない場合はレスポンスを待たずに戻ります。初期値は True です。
- 例外
TypeError -- command が
OSCSetCommandではない。InvalidCommandError -- command がSTEP800で実行できない。
- set(command: OSCSetCommand) None[ソース]
'set' コマンドをデバイスに送信します。
- パラメータ
command (OSCCommand) -- 完成したコマンドのテンプレート (stepseries.commands) 。
- 例外
TypeError -- command が
OSCSetCommandではない。