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

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

動作モード

設定値 内容
PMCM_PTP 位置決め動作
言語 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

絶対座標指定

設定値 内容
0 移動パルス数の設定値は移動量
言語 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);