PmcmGetMotionLine¶
機能¶
直線補間動作パラメータを取得します。
書式¶
INT PmcmGetMotionLine(
WORD wID,
WORD wAxis,
PMOTIONLINEPMCM pMotionLine
);
typedef struct {
WORD wStartMode;
FLOAT fSpeedRate;
WORD wAccDecMode;
FLOAT fLowSpeed;
FLOAT fSpeed;
WORD wAccTime;
WORD wDecTime;
FLOAT fSAccSpeed;
FLOAT fSDecSpeed;
LONG lSlowdown;
LONG lStep[2];
BOOL bAbsolute[2];
} MOTIONLINEPMCM, *PMOTIONLINEPMCM;
パラメータ¶
wID¶
ボードのID番号を指定します。
言語 | C/C++ | C++/CLI | C# | VB(.NET2002以降) | VB6.0/VBA | GCC |
---|---|---|---|---|---|---|
型 | WORD | unsigned short | ushort | Short | Integer | uint16_t |
wAxis¶
設定を取得する軸を指定します。2軸以上指定してください。
設定値 | 内容 |
---|---|
PMCM_AXIS_X | X軸 |
PMCM_AXIS_Y | Y軸 |
PMC-M2C-UのwAxisに設定する値はPMCM_AXIS_X + PMCM_AXIS_Yで固定です
言語 | C/C++ | C++/CLI | C# | VB(.NET2002以降) | VB6.0/VBA | GCC |
---|---|---|---|---|---|---|
型 | WORD | unsigned short | ushort | Short | Integer | uint16_t |
pMotionLine¶
動作パラメータを格納するバッファへのポインタを指定します。
言語 | C/C++ | C++/CLI | C# | VB(.NET2002以降) | VB6.0/VBA | GCC |
---|---|---|---|---|---|---|
型 | PMOTIONLINEPMCM | MOTIONLINEPMCM* | out MOTIONLINEPMCM | MOTIONLINEPMCM | MOTIONLINEPMCM | PMOTIONLINEPMCM |
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
2軸の移動パルス数を取得します。
lStep[0] : X軸の移動パルス数
lStep[1] : Y軸の移動パルス数
言語 | C/C++ | C++/CLI | C# | VB(.NET2002以降) | VB6.0/VBA | GCC |
---|---|---|---|---|---|---|
型 | LONG | long | int | Integer | Long | int32_t |
bAbsolute¶
絶対座標指定
設定値 | 内容 |
---|---|
0 | 移動パルス数の設定値は移動量 |
1 | 移動パルス数の設定値は絶対座標 |
2軸の絶対座標指定を取得します。
bAbsolute[0] : X軸の絶対座標指定
bAbsolute[1] : Y軸の絶対座標指定
言語 | C/C++ | C++/CLI | C# | VB(.NET2002以降) | VB6.0/VBA | GCC |
---|---|---|---|---|---|---|
型 | BOOL | long | int | Integer | Long | int32_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のボードの、直線補間動作パラメータを取得します。
C/C++¶
int nResult;
WORD wAxis;
MOTIONLINEPMCM MotionLine;
wAxis = PMCM_AXIS_X + PMCM_AXIS_Y;
nResult = PmcmGetMotionLine(0, wAxis, &MotionLine);
C++/CLI¶
int result;
unsigned short axis;
MOTIONLINEPMCM motionLine;
axis = PMCM_AXIS_X + PMCM_AXIS_Y;
result = PmcmGetMotionLine(0, axis, &motionLine);
C#¶
int result;
ushort axis;
Pmcm.MOTIONLINEPMCM motionLine = new Pmcm.MOTIONLINEPMCM();
motionLine.Initialize();
axis = Pmcm.PMCM_AXIS_X + Pmcm.PMCM_AXIS_Y;
result = Pmcm.GetMotionLine(0, axis, out motionLine);
VB(.NET2002以降)¶
Dim result As Integer
Dim axis As Short
Dim motionLine As MOTIONLINEPMCM
motionLine.Initialize()
axis = PMCM_AXIS_X + PMCM_AXIS_Y
result = PmcmGetMotionLine(0, axis, motionLine)
VB6.0/VBA¶
Dim lngResult As Long
Dim intAxis As Integer
Dim MotionLine As MOTIONLINEPMCM
intAxis = PMCM_AXIS_X + PMCM_AXIS_Y
lngResult = PmcmGetMotionLine(0, intAxis, MotionLine)
GCC¶
int32_t result;
uint16_t axis;
MOTIONLINEPMCM motion_line;
axis = PMCM_AXIS_X + PMCM_AXIS_Y;
result = PmcmGetMotionLine(0, axis, &motion_line);