PmcmChangeSpeed¶
機能¶
動作中に速度の変更をします。
書式¶
INT PmcmChangeSpeed(
WORD wID,
WORD wAxis,
WORD wMode,
PFLOAT pfSpeed
);
パラメータ¶
wID¶
ボードのID番号を指定します。
言語 | C/C++ | C++/CLI | C# | VB(.NET2002以降) | VB6.0/VBA | GCC |
---|---|---|---|---|---|---|
型 | WORD | unsigned short | ushort | Short | Integer | uint16_t |
wAxis¶
速度を変更する軸を指定します。複数の軸を指定することができます。
設定値 | 内容 |
---|---|
PMCM_AXIS_X | X軸 |
PMCM_AXIS_Y | Y軸 |
言語 | C/C++ | C++/CLI | C# | VB(.NET2002以降) | VB6.0/VBA | GCC |
---|---|---|---|---|---|---|
型 | WORD | unsigned short | ushort | Short | Integer | uint16_t |
wMode¶
設定する項目を指定します。
設定値 | 内容 |
---|---|
PMCM_CHG_IMM_LOW_SPEED | 起動速度へ即変更 |
PMCM_CHG_IMM_SPEED | 移動速度へ即変更 |
PMCM_CHG_DEC_LOW_SPEED | 起動速度へ減速して変更 |
PMCM_CHG_ACC_SPEED | 移動速度へ加速して変更 |
PMCM_CHG_NEW_SPEED | 指定速度へ変更 |
言語 | C/C++ | C++/CLI | C# | VB(.NET2002以降) | VB6.0/VBA | GCC |
---|---|---|---|---|---|---|
型 | WORD | unsigned short | ushort | Short | Integer | uint16_t |
pfSpeed¶
速度を指定します。
wModeの設定値によって設定する内容が異なります。
バッファは2軸分用意してください
wModeの設定値 | 設定値 |
---|---|
PMCM_CHG_IMM_LOW_SPEED PMCM_CHG_IMM_SPEED PMCM_CHG_DEC_LOW_SPEED PMCM_CHG_ACC_SPEED | 0を指定してください |
PMCM_CHG_NEW_SPEED | 速度を指定します。 SetMotionで指定した速度倍率によって設定範囲は異なります。 |
言語 | C/C++ | C++/CLI | C# | VB(.NET2002以降) | VB6.0/VBA | GCC |
---|---|---|---|---|---|---|
型 | PFLOAT | float* | float | Single | Single | float* |
戻り値¶
関数が正常に終了した場合は0(PMCM_RESULT_SUCCESS)が返ります。
正常に終了しなかった場合は0以外が返りますので、その場合はエラーコードを参照してください。
言語 | C/C++ | C++/CLI | C# | VB(.NET2002以降) | VB6.0/VBA | GCC |
---|---|---|---|---|---|---|
型 | INT | int | int | Integer | Long | int32_t |
備考¶
PMCM_CHG_NEW_SPEEDをおこなった後はPMCM_CHG_IMM_SPEEDとPMCM_CHG_ACC_SPEEDは無効となります。
複数軸同時に設定しない場合でも、速度バッファは2軸分用意し、配列の先頭アドレスを関数へ設定するようにしてください。
FLOAT fSpeed[2]; ←2軸分用意
fSpeed[0] ←X軸の速度
fSpeed[1] ←Y軸の速度
使用例¶
IDが0のボードの、Y軸の速度を2000ppsに変更します。
C/C++¶
int nResult;
WORD wAxis;
FLOAT fSpeed[2];
wAxis = PMCM_AXIS_Y;
fSpeed[0] = 0;
fSpeed[1] = 2000;
nResult = PmcmChangeSpeed(0, wAxis, PMCM_CHG_NEW_SPEED, fSpeed);
C++/CLI¶
int result;
unsigned short axis;
float speed[2];
axis = PMCM_AXIS_Y;
speed[0] = 0;
speed[1] = 2000;
result = PmcmChangeSpeed(0, axis, PMCM_CHG_NEW_SPEED, speed);
C#¶
int result;
ushort axis;
float[] speed = new float[2];
axis = Pmcm.PMCM_AXIS_Y;
speed[0] = 0;
speed[1] = 2000;
result = Pmcm.ChangeSpeed(0, axis, Pmcm.PMCM_CHG_NEW_SPEED, speed);
VB(.NET2002以降)¶
Dim result As Integer
Dim axis As Short
Dim speed(1) As Single
axis = PMCM_AXIS_Y
speed(0) = 0
speed(1) = 2000
result = PmcmChangeSpeed(0, axis, PMCM_CHG_NEW_SPEED, speed)
VB6.0/VBA¶
Dim lngResult As Long
Dim intAxis As Integer
Dim sngSpeed(1) As Single
intAxis = PMCM_AXIS_Y
sngSpeed(0) = 0
sngSpeed(1) = 2000
lngResult = PmcmChangeSpeed(0, intAxis, PMCM_CHG_NEW_SPEED, sngSpeed(0))
GCC¶
int32_t result;
uint16_t axis;
float speed[2];
axis = PMCM_AXIS_Y;
speed[0] = 0;
speed[1] = 2000;
result = PmcmChangeSpeed(0, axis, PMCM_CHG_NEW_SPEED, speed);