YduPmcsGetMotion¶
機能¶
動作パラメータを取得します。
書式¶
INT YduPmcsGetMotion(
WORD unitId,
WORD axis,
WORD moveMode,
MOTIONPMCS* motion
);
// 動作パラメータ構造体
typedef struct {
WORD wAccMode;
DWORD dwLowSpeed;
DWORD dwSpeed;
WORD wAccTime;
LONG lStep;
} MOTIONPMCS, *PMOTIONPMCS;
パラメータ¶
unitId¶
ユニットのID番号を指定します。
言語 | C# | VB(.NET2002以降) | VB6.0/VBA | C++/CLI | C/C++ |
---|---|---|---|---|---|
型 | ushort | Short | Integer | unsigned short | WORD |
axis¶
動作パラメータを読み込む軸を指定します。
複数の軸を指定することができます。
定義 | 値 | 軸 |
---|---|---|
PMC_AXIS_X0 | 0x01 | X0軸 |
PMC_AXIS_Y0 | 0x02 | Y0軸 |
PMC_AXIS_Z0 | 0x04 | Z0軸 |
PMC_AXIS_U0 | 0x08 | U0軸 |
PMC_AXIS_X1 | 0x10 | X1軸 |
PMC_AXIS_Y1 | 0x20 | Y1軸 |
PMC_AXIS_Z1 | 0x40 | Z1軸 |
PMC_AXIS_U1 | 0x80 | U1軸 |
言語 | C# | VB(.NET2002以降) | VB6.0/VBA | C++/CLI | C/C++ |
---|---|---|---|---|---|
型 | ushort | Short | Integer | unsigned short | WORD |
moveMode¶
パラメータを取得する動作モードを指定します。
定義 | 値 | 動作モード |
---|---|---|
PMC_JOG | 0 | 連続動作 |
PMC_ORG | 1 | 原点復帰動作 |
PMC_PTP | 2 | 位置決め動作 |
言語 | C# | VB(.NET2002以降) | VB6.0/VBA | C++/CLI | C/C++ |
---|---|---|---|---|---|
型 | ushort | Short | Integer | unsigned short | WORD |
motion¶
動作パラメータを格納するバッファへのポインタを指定します。
言語 | C# | VB(.NET2002以降) | VB6.0/VBA | C++/CLI | C/C++ |
---|---|---|---|---|---|
型 | MOTIONPMCS | MOTIONPMCS | MOTIONPMCS | MOTIONPMCS* | MOTIONPMCS* |
wAccMode¶
加減速モード
定義 | 値 | 加速モード |
---|---|---|
PMC_ACC_NORMAL | 0 | 直線加減速 |
PMC_ACC_SIN | 1 | S字加減速 |
言語 | C# | VB(.NET2002以降) | VB6.0/VBA | C++/CLI | C/C++ |
---|---|---|---|---|---|
型 | ushort | Short | Integer | unsigned short | WORD |
dwLowSpeed¶
起動時速度 [PPS]
言語 | C# | VB(.NET2002以降) | VB6.0/VBA | C++/CLI | C/C++ |
---|---|---|---|---|---|
型 | uint | Integer | Long | unsigned long | DWORD |
dwSpeed¶
移動速度 [PPS]
言語 | C# | VB(.NET2002以降) | VB6.0/VBA | C++/CLI | C/C++ |
---|---|---|---|---|---|
型 | uint | Integer | Long | unsigned long | DWORD |
wAccTime¶
加減速時間[msec]
言語 | C# | VB(.NET2002以降) | VB6.0/VBA | C++/CLI | C/C++ |
---|---|---|---|---|---|
型 | ushort | Short | Integer | unsigned short | WORD |
lStep¶
移動方向・移動パルス数
動作モードによって値が異なります。
動作モードが「連続動作(PMC_JOG)」または「原点復帰動作(PMC_ORG)」の場合
定義 | 値 | 移動方向 |
---|---|---|
PMC_DIR_CW | 1 | +方向 |
PMC_DIR_CCW | -1 | -方向 |
動作モードが「位置決め動作(PMC_PTP)」の場合
値(範囲) | 設定内容 |
---|---|
-16,777,215 ~ +16,777,215 | 移動パルス数 |
言語 | C# | VB(.NET2002以降) | VB6.0/VBA | C++/CLI | C/C++ |
---|---|---|---|---|---|
型 | int | Integer | Long | long | LONG |
戻り値¶
関数が正常に終了した場合は0(YDU_RESULT_SUCCESS)が返ります。
正常に終了しなかった場合は0以外が返りますので、その場合はエラーコードを参照してください。
言語 | C# | VB(.NET2002以降) | VB6.0/VBA | C++/CLI | C/C++ |
---|---|---|---|---|---|
型 | int | Integer | Long | int | INT |
備考¶
速度及び加減速時間の値はYduPmcsSetMotion関数で設定した値と異なる場合がありますが、ドライバ内での計算による誤差によるものです。
(動作パラメータ計算方法を参照してください)
動作パラメータを複数軸同時に取得することができます。
各軸の動作パラメータは以下のように格納されますので、動作パラメータ格納バッファ(MOTIONPMCS)は軸数分用意し、配列の先頭アドレスを関数へ設定するようにしてください。
// 4軸の場合
MOTIONPMCS motion[4]; // 4軸分用意
motion[0] // X0の動作パラメータ
motion[1] // Y0の動作パラメータ
motion[2] // Z0の動作パラメータ
motion[3] // U0の動作パラメータ
// 8軸の場合
MOTIONPMCS motion[8]; // 8軸分用意
motion[0] // X0の動作パラメータ
motion[1] // Y0の動作パラメータ
motion[2] // Z0の動作パラメータ
motion[3] // U0の動作パラメータ
motion[4] // X1の動作パラメータ
motion[5] // Y1の動作パラメータ
motion[6] // Z1の動作パラメータ
motion[7] // U1の動作パラメータ
使用例¶
ユニットIDが0のユニットから、X0軸とZ0軸の連続動作の動作パラメータを取得します。
motion[0]にX0軸、motion[2]にZ0軸の動作パラメータが格納されます。
C#¶
YduPmcs.MOTIONPMCS[] motion = new YduPmcs.MOTIONPMCS[4];
var result = YduPmcs.GetMotion(0, YduPmcs.PMC_AXIS_X0 + YduPmcs.PMC_AXIS_Z0, YduPmcs.PMC_JOG, motion);
VB(.NET2002以降)¶
Dim motion(3) As MOTIONPMCS
Dim result As Integer = YduPmcsGetMotion(0, PMC_AXIS_X0 + PMC_AXIS_Z0, PMC_JOG, motion)
VB6.0/VBA¶
Dim result As Long
Dim motion(3) As MOTIONPMCS
result = YduPmcsGetMotion(0, PMC_AXIS_X0 + PMC_AXIS_Z0, PMC_JOG, motion(0))
C++/CLI¶
MOTIONPMCS motion[4];
int result = YduPmcsGetMotion(0, PMC_AXIS_X0 + PMC_AXIS_Z0, PMC_JOG, motion);
C/C++¶
MOTIONPMCS motion[4];
INT result = YduPmcsGetMotion(0, PMC_AXIS_X0 + PMC_AXIS_Z0, PMC_JOG, motion);