関数 > モーター制御関数 > PmcmGetMotionCp
機能
CPの動作パラメータを取得します。
CP動作について
書式
INT PmcmGetMotionCp(
WORD wID,
WORD wAxis,
PMOTIONPMCM pMotion,
PWORD pwCount
);
typedef struct {
WORD wMoveMode;
WORD wStartMode;
FLOAT fSpeedRate;
WORD wAccDecMode;
FLOAT fLowSpeed;
FLOAT fSpeed;
WORD wAccTime;
WORD wDecTime;
FLOAT fSAccSpeed;
FLOAT fSDecSpeed;
LONG lSlowdown;
LONG lStep;
BOOL bAbsolutePtp;
} MOTIONPMCM, *PMOTIONPMCM;
パラメータ
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 |
pMotion
動作パラメータを格納するバッファへのポインタを指定します。
バッファは取得する数分用意してください。
言語 | C/C++ | C++/CLI | C# | VB(.NET2002以降) | VB6.0/VBA | GCC |
型 | PMOTIONPMCM | MOTIONPMCM* | MOTIONPMCM | MOTIONPMCM | MOTIONPMCM | PMOTIONPMCM |
wMoveMode
動作モード
言語 | C/C++ | C++/CLI | C# | VB(.NET2002以降) | VB6.0/VBA | GCC |
型 | WORD | unsigned short | ushort | Short | Integer | uint16_t |
wStartMode
起動モード
設定値 | 内容 |
PMCM_CONST | 定速起動 |
PMCM_CONST_DEC | 定速-減速起動 |
PMCM_ACC_DEC | 加減速起動 |
言語 | C/C++ | C++/CLI | C# | VB(.NET2002以降) | VB6.0/VBA | GCC |
型 | WORD | unsigned short | ushort | Short | Integer | uint16_t |
fSpeedRate
速度倍率 : 0.3 ~ 600
言語 | C/C++ | C++/CLI | C# | VB(.NET2002以降) | VB6.0/VBA | GCC |
型 | FLOAT | float | float | Single | Single | float |
wAccDecMode
加減速モード
設定値 | 内容 |
PMCM_ACC_LINEAR | 直線加減速 |
PMCM_ACC_SCURVE | S字加減速 |
言語 | C/C++ | C++/CLI | C# | VB(.NET2002以降) | VB6.0/VBA | GCC |
型 | WORD | unsigned short | ushort | Short | Integer | uint16_t |
fLowSpeed
起動速度 : 0.3 ~ 9829800[pps]
言語 | C/C++ | C++/CLI | C# | VB(.NET2002以降) | VB6.0/VBA | GCC |
型 | FLOAT | float | float | Single | Single | float |
fSpeed
移動速度 : 0.3 ~ 9829800[pps]
言語 | C/C++ | C++/CLI | C# | VB(.NET2002以降) | VB6.0/VBA | GCC |
型 | FLOAT | float | float | Single | Single | float |
wAccTime
加速時間[msec]
言語 | C/C++ | C++/CLI | C# | VB(.NET2002以降) | VB6.0/VBA | GCC |
型 | WORD | unsigned short | ushort | Short | Integer | uint16_t |
wDecTime
減速時間[msec]
言語 | C/C++ | C++/CLI | C# | VB(.NET2002以降) | VB6.0/VBA | GCC |
型 | WORD | unsigned short | ushort | Short | Integer | uint16_t |
fSAccSpeed
加速S字区間 : 0, 0.3 ~ 4914600[pps]
言語 | C/C++ | C++/CLI | C# | VB(.NET2002以降) | VB6.0/VBA | GCC |
型 | FLOAT | float | float | Single | Single | float |
fSDecSpeed
減速S字区間 : 0, 0.3 ~ 4914600[pps]
言語 | C/C++ | C++/CLI | C# | VB(.NET2002以降) | VB6.0/VBA | GCC |
型 | FLOAT | float | float | Single | Single | float |
lSlowdown
スローダウンポイント
設定値 | 内容 |
-1 | スローダウンポイントは自動設定 |
0 ~ 16777215 | スローダウンポイントはマニュアル設定 |
言語 | C/C++ | C++/CLI | C# | VB(.NET2002以降) | VB6.0/VBA | GCC |
型 | LONG | long | int | Integer | Long | int32_t |
lStep
移動パルス数、移動方向 : -134217728 ~ +134217727
言語 | C/C++ | C++/CLI | C# | VB(.NET2002以降) | VB6.0/VBA | GCC |
型 | LONG | long | int | Integer | Long | int32_t |
bAbsolutePtp
絶対座標指定
言語 | C/C++ | C++/CLI | C# | VB(.NET2002以降) | VB6.0/VBA | GCC |
型 | BOOL | long | int | Integer | Long | int32_t |
pwCount
取得する動作パラメータ数が格納されているバッファへのポインタ
設定範囲は1 ~ 96
関数実行後は実際に取得した動作パラメータ数が格納されます。
言語 | C/C++ | C++/CLI | C# | VB(.NET2002以降) | VB6.0/VBA | GCC |
型 | PWORD | unsigned short* | ref ushort | Short | Integer | uint16_t* |
戻り値
関数が正常に終了した場合は0(PMCM_RESULT_SUCCESS)が返ります。
正常に終了しなかった場合は0以外が返りますので、その場合はエラーコードを参照してください。
言語 | C/C++ | C++/CLI | C# | VB(.NET2002以降) | VB6.0/VBA | GCC |
型 | INT | int | int | Integer | Long | int32_t |
使用例
IDが0のボードの、X軸のCP動作パラメータを2つ取得します。
C/C++
int nResult;
WORD wAxis;
MOTIONPMCM Motion[2];
WORD wCount;
wAxis = PMCM_AXIS_X;
wCount = 2;
nResult = PmcmGetMotionCp(0, wAxis, Motion, &wCount);
C++/CLI
int result;
unsigned short axis;
MOTIONPMCM motion[2];
unsigned short count;
axis = PMCM_AXIS_X;
count = 2;
result = PmcmGetMotionCp(0, axis, motion, &count);
C#
int result;
ushort axis;
Pmcm.MOTIONPMCM[] motion = new Pmcm.MOTIONPMCM[2];
ushort count;
axis = Pmcm.PMCM_AXIS_X;
count = 2;
result = Pmcm.GetMotionCp(0, axis, motion, ref count);
VB(.NET2002以降)
Dim result As Integer
Dim axis As Short
Dim motion(1) As MOTIONPMCM
Dim count As Short
axis = PMCM_AXIS_X
count = 2
result = PmcmGetMotionCp(0, axis, motion, count)
VB6.0/VBA
Dim lngResult As Long
Dim intAxis As Integer
Dim Motion(1) As MOTIONPMCM
Dim intCount As Integer
intAxis = PMCM_AXIS_X
intCount = 2
lngResult = PmcmGetMotionCp(0, intAxis, Motion(0), intCount)
GCC
int32_t result;
uint16_t axis;
MOTIONPMCM motion[2];
uint16_t count;
axis = PMCM_AXIS_X;
count = 2;
result = PmcmGetMotionCp(0, axis, motion, &count);