SmcWSetMotionChangeReady


機能

モータ動作の速度変更、停止位置変更の設定を行います。

書式

Ret = SmcWSetMotionChangeReady( Id , AxisNo , ChangeType )

引数

Id [ VB.NET: Short ] [ C, C++: short ] [ C#: short ] [ Python: ctypes.c_short ]
SmcWInit 関数で取得したデバイスIDを指定します。

AxisNo [ VB.NET: Short ] [ C, C++: short ] [ C#: short ] [ Python: ctypes.c_short ]
軸番号を指定します。

ChangeType [ VB.NET: Short ] [ C, C++: short ] [ C#: short ] [ Python: ctypes.c_short ]
モータ動作変更タイプを設定します。

0

瞬時に開始速度(FL速度)へ変更

1

瞬時に目標速度(FH速度)へ変更

2

減速して開始速度(FL速度)へ変更

3

加速して目標速度(FH速度)へ変更

4

動作速度と加減速時間を変更

5

モータ停止位置変更 (目標位置オーバーライド1)

6

PCS信号によるモータ停止位置変更設定 (目標位置オーバーライド2)

7

加減速レートを変更せずに動作速度のみ変更

戻り値

Ret [ VB.NET: Integer ] [ C, C++: long ] [ C#: int ] [ Python: ctypes.c_long ]

0

正常終了

0以外

異常終了

参照:エラーコード詳細

初期値

0 : 瞬時に開始速度(FL速度)へ変更

説明

モータ停止中は実行できません。

軸が最終減速を行っている場合の速度変更はできません。

停止位置変更PTP動作時のみ可能です。

この関数実行後、SmcWMotionChange関数を実行するまでは基本動作パラメータの設定関数(SmcWSetTargetSpeed等)を実行しないでください。正常に動作しなくなる恐れがあります。

ChangeType = 0-3設定時:
PTP動作中に本設定にて動作変更を行うと、多くの場合、最終減速を正常に行うことができません。
これは、PTP動作は設定パルス数出力を最優先としている為です。
従って、PTP動作中に本設定にて動作変更を行う場合、上記に留意する必要があります。

ChangeType = 4設定時:
PTP動作中に、本設定(動作速度と加減速時間を変更)を実行しても、設定した減速時間で停止しません。
同様に速度変更を行うことで減速時間が変更される場合があり、減速動作が意図した動作とならない場合があります。
従って、PTP動作中に本引数設定で本動作を行う場合は、ご留意ください。

ChangeType = 6 設定時:
SmcWMotionChange関数実行により、PCS入力代行コマンド(PCS入力信号ONと同等処理を行います)を発行します。
またSmcWSetCtrlTypeIn関数の CtrlIn のビット5(PCS)をONする必要があります。
外部PCS入力による停止位置変更を行う場合は本関数とSmcWMotionChange関数を実行する必要はありません。

SmcWSetCtrlTypeIn関数の CtrlIn のビット5(PCS)をONした場合、PCS信号入力待ち状態となるため、PCS信号が入力されるまで (もしくは、PCS入力代行コマンド発行まで) 無条件でJOG動作となります。
PCS信号が入力されたタイミングから指定パルス位置まで動作します。

ChangeType = 7 設定時:
設定した開始速度と目標速度、加減速時間から加減速レート(傾き)が算出され、モーションスタートします。
SmcWMotionChange関数実行により、このレートのまま速度のみ変更を行います。レートの変更はできません。
なお、SmcWMotionStop関数による減速停止時には、設定した減速時間にて減速停止します。

PTP動作中に本設定にて動作変更を行うと、多くの場合、最終減速を正常に行うことができません。
これは、PTP動作は設定パルス数出力を最優先としている為です。
PTP動作中に本設定にて動作変更を行う場合、ご留意ください。

使用例

軸番号1の動作変更タイプを、「瞬時に開始速度へ変更」 に設定します。

VB
Dim Ret As Integer
Ret = SmcWSetMotionChangeReady( Id , 1, 0 )

C, C++
long Ret;
Ret = SmcWSetMotionChangeReady( Id , 1, 0 );

C#
int Ret;
Ret = Smc.WSetMotionChangeReady( Id , 1, 0 );

Python
Ret = ctypes.c_long()
Ret.value = csmc.SmcWSetMotionChangeReady( Id , 1, 0 )

関連項目

SmcWGetMotionChangeReady