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

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);