XScript マニュアル · Chapter 10
title: "Motor — モーション制御オブジェクト" chapter: 10 images:
- xscript-motor-example.png
Motor — モーション制御オブジェクト
Motor[name] は装置のモーション軸オブジェクトです。各軸は Motor Editor で登録
(名前・ボード・初期パラメータ)した後、同じ名前でスクリプトから参照します。
캡처 대기
public/manual/gui/xscript-motor-example.png例
Motor[X].SetSpeed(50.0, 200.0, 200.0); // 速度・加速度・減速度
Motor[X].MoveAbs(100.0, true); // 100mm へ移動、完了待ち
if (Motor[X].CheckInPosition(100.0) == false) {
ShowError("E_POS_FAIL");
return false;
}移動メソッド
| シグネチャ | 用途 |
|---|---|
bool MoveAbs(double position, bool wait) | 絶対位置移動 |
bool MoveRel(double position, bool wait) | 現在位置からの相対移動 |
bool MoveVel(bool plusDirection) | 速度モード連続移動 |
bool MoveSearchStop(bool plusDirection, SearchSignal signal, bool isUpEdge, bool emgStop) | 信号検出で停止するサーチ移動 |
bool Stop(bool wait = true, bool setStopExitSignal = false) | 通常停止 |
bool StopEmergency(bool wait = true, bool setStopExitSignal = true) | 非常停止 |
トルク制御
| シグネチャ | 用途 |
|---|---|
bool SetTorqueLimit(double plusDirLimit, double minusDirLimit) | トルク上限設定 |
bool MoveTorque(bool plusDirection, double torquePercent, double velocity) | トルク制御移動 |
bool StopTorque(void) | トルク制御終了 |
待機・検査
| シグネチャ | 用途 |
|---|---|
bool Wait(int timeout = 0) | 現在の移動完了待ち(ms、0 は無限) |
bool WaitPosition(double position, int timeout = 0) | 目標位置到達まで待ち |
bool WaitHome(int timeout = 0) | ホーム完了待ち |
bool CheckInPosition(double pos) | 現在位置が許容範囲内か |
uint GetEndStatus(void) | 終了ステータスフラグ(0 は正常) |
string GetEndStatusString(uint endStatus) | 終了ステータスを文字列化 |
ホーム・初期化
| シグネチャ | 用途 |
|---|---|
bool InitBoard(void) | ボード初期化 |
bool Home(void) | ホーム(同期) |
bool ThreadHome(void) | ホーム(別スレッドで非同期) |
HomeSubFunctionResult ApiHomeFunction(void) | 低レベルホーム API |
void ClearAlarm(void) | サーボアラーム解除 |
速度・位置
| シグネチャ | 用途 |
|---|---|
void SetSpeed(double vel) | 速度のみ設定 |
void SetSpeed(double vel, double accel, double decel = 0) | 速度・加減速 |
void SaveSpeed(void) / void RestoreSpeed(void) | 速度の一時保存・復元 |
bool OverridePos(double pos) | 現在位置の強制変更(移動せず) |
bool OverrideVel(double vel) | 移動中の速度オーバーライド |
IO・アラーム
| シグネチャ | 用途 |
|---|---|
bool ReadInBit(int bit) / bool ReadOutBit(int bit) | モーションボードのデジタル IO 読み取り |
bool WriteOutBit(int bit, bool on) | モーションボードのデジタル出力書き込み |
ヒント
MoveAbs(pos, true)は完了までブロック。非同期ならMoveAbs(pos, false)+Wait()またはWaitPosition()を明示的に。- 成功検証は必ず
GetEndStatus()またはCheckInPosition()で。 - サーボアラーム発生後、再稼働前に必ず
ClearAlarm()。