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

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