コンテンツにスキップ
関数 > モーター制御関数 >

YduPmcsGetMotionEx

機能

速度倍率を含めた動作パラメータを取得します。

Note

速度倍率については、動作パラメータ計算方法を参照してください。

書式

INT YduPmcsGetMotionEx(
    WORD unitId,
    WORD axis,
    WORD moveMode,
    MOTIONEXPMCS* motionEx
);

// 動作パラメータ構造体
typedef struct {
    WORD wSpeedRate;
    WORD wAccMode;
    DWORD dwLowSpeed;
    DWORD dwSpeed;
    WORD wAccTime;
    LONG lStep;
} MOTIONEXPMCS, *PMOTIONEXPMCS;

パラメータ

unitId

ユニットのID番号を指定します。

言語 C# VB(.NET2002以降) VB6.0/VBA C++/CLI C/C++
ushort Short Integer unsigned short WORD
言語 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

motionEx

動作パラメータを格納するバッファへのポインタを指定します。

言語 C# VB(.NET2002以降) VB6.0/VBA C++/CLI C/C++
MOTIONEXPMCS MOTIONEXPMCS MOTIONEXPMCS MOTIONEXPMCS* MOTIONEXPMCS*

wSpeedRate

速度倍率

言語 C# VB(.NET2002以降) VB6.0/VBA C++/CLI C/C++
ushort Short Integer unsigned short WORD

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関数またはYduPmcsSetMotionEx関数で設定した値と異なる場合がありますが、ドライバ内での計算による誤差によるものです。
動作パラメータ計算方法を参照してください)

動作パラメータを複数軸同時に取得することができます。
各軸の動作パラメータは以下のように格納されますので、動作パラメータ格納バッファ(MOTIONEXPMCS)は軸数分用意し、配列の先頭アドレスを関数へ設定するようにしてください。

// 4軸の場合
MOTIONEXPMCS motionEx[4];   // 4軸分用意
motionEx[0] // X0の動作パラメータ
motionEx[1] // Y0の動作パラメータ
motionEx[2] // Z0の動作パラメータ
motionEx[3] // U0の動作パラメータ

// 8軸の場合
MOTIONEXPMCS motionEx[8];   // 8軸分用意
motionEx[0] // X0の動作パラメータ
motionEx[1] // Y0の動作パラメータ
motionEx[2] // Z0の動作パラメータ
motionEx[3] // U0の動作パラメータ
motionEx[4] // X1の動作パラメータ
motionEx[5] // Y1の動作パラメータ
motionEx[6] // Z1の動作パラメータ
motionEx[7] // U1の動作パラメータ

使用例

ユニットIDが0のユニットから、X0軸とZ0軸の連続動作の動作パラメータを取得します。
motionEx[0]にX0軸、motionEx[2]にZ0軸の動作パラメータが格納されます。

C#

YduPmcs.MOTIONEXPMCS[] motionEx = new YduPmcs.MOTIONEXPMCS[4];
var result = YduPmcs.GetMotionEx(0, YduPmcs.PMC_AXIS_X0 + YduPmcs.PMC_AXIS_Z0, YduPmcs.PMC_JOG, motionEx);

VB(.NET2002以降)

Dim motionEx(3) As MOTIONEXPMCS
Dim result As Integer = YduPmcsGetMotionEx(0, PMC_AXIS_X0 + PMC_AXIS_Z0, PMC_JOG, motionEx)

VB6.0/VBA

Dim result As Long
Dim motionEx(3) As MOTIONEXPMCS
result = YduPmcsGetMotionEx(0, PMC_AXIS_X0 + PMC_AXIS_Z0, PMC_JOG, motionEx(0))

C++/CLI

MOTIONEXPMCS motionEx[4];
int result = YduPmcsGetMotionEx(0, PMC_AXIS_X0 + PMC_AXIS_Z0, PMC_JOG, motionEx);

C/C++

MOTIONEXPMCS motionEx[4];
INT result = YduPmcsGetMotionEx(0, PMC_AXIS_X0 + PMC_AXIS_Z0, PMC_JOG, motionEx);