関数 > モーター制御関数 >

PmcmSetPulseConfig

機能

パルス出力の設定をします。

パルス出力について

書式

INT PmcmSetPulseConfig(
    WORD wID,
    WORD wAxis,
    WORD wMode,
    WORD wConfig
);

パラメータ

wID

ボードのID番号を指定します。

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

wMode

設定する項目を指定します。

設定値 内容
PMCM_PULSE_OUT パルス出力モード
PMCM_DIR_WAIT 方向変化時の遅延
PMCM_FIN_TIMING 動作完了タイミング
PMCM_FH_REVISE 移動速度補正(三角駆動回避)
言語 C/C++ C++/CLI C# VB(.NET2002以降) VB6.0 GCC
WORD unsigned short ushort Short Integer uint16_t

wConfig

設定値を指定します。
設定する項目(wMode)によって値が異なります。

  • wMode : PMCM_PULSE_OUT

    No. CW(+)方向動作時 CCW(-)方向動作時
    OUT出力 DIR出力 OUT出力 DIR出力
    0
    共通パルスモード OUT:負論理 DIR:(+方向)High、(-方向)Low
    1
    共通パルスモード OUT:正論理 DIR:(+方向)High、(-方向)Low
    2
    共通パルスモード OUT:負論理 DIR:(+方向)Low、(-方向)High
    3
    共通パルスモード OUT:正論理 DIR:(+方向)Low、(-方向)High
    4
    2パルスモード 負論理
    5
    90度位相差モード(4逓倍) OUT:進みパルス DIR:遅れパルス
    6
    90度位相差モード(4逓倍) OUT:遅れパルス DIR:進みパルス
    7
    2パルスモード 正論理

    初期値 : 7

  • wMode : PMCM_DIR_WAIT

    モーターの回転方向が変わるときにパルス出力を遅延させることができます。

    設定値 内容
    0 方向変化時に200μsecの遅延あり
    1 方向変化時に遅延なし

    PMCM_PULSE_OUTの設定が0~3の場合のみ有効です

    初期値 : 0

  • wMode : PMCM_FIN_TIMING

    設定値 内容
    0 最終パルスの周期完了時
    1 最終パルスの出力OFF時
    2 INP信号入力時

    INP信号を使用しない場合は、0(周期完了時)を設定してください。
    1(出力OFF時)を設定した場合は、CP動作時や絶対座標指定でのPTP動作時に、最終パルスと次動作のスタートパルスとの間隔が狭くなり、正しく動作しない場合があります。

    初期値 : 0

  • wMode : PMCM_FH_REVISE

    移動速度補正のON/OFFを設定します(三角駆動回避)。
    位置決め動作、CP動作時に有効となります。

    直線加減速の時のみ設定が有効となり、S字加減速の時は自動的にONとなります

    設定値 内容
    0 移動速度補正OFF
    1 移動速度補正ON

    初期値 : 1

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

戻り値

関数が正常に終了した場合は0(PMCM_RESULT_SUCCESS)が返ります。
正常に終了しなかった場合は0以外が返りますので、その場合はエラーコードを参照してください。

言語 C/C++ C++/CLI C# VB(.NET2002以降) VB6.0 GCC
INT int int Integer Long int32_t

使用例

IDが0のボードの、X軸とY軸のパルス出力を0に設定します。

C/C++

int nResult;
WORD wAxis;
wAxis = PMCM_AXIS_X + PMCM_AXIS_Y;
nResult = PmcmSetPulseConfig(0, wAxis, PMCM_PULSE_OUT, 0);

C++/CLI

int result;
unsigned short axis;
axis = PMCM_AXIS_X + PMCM_AXIS_Y;
result = PmcmSetPulseConfig(0, axis, PMCM_PULSE_OUT, 0);

C#

int result;
ushort axis;
axis = Pmcm.PMCM_AXIS_X + Pmcm.PMCM_AXIS_Y;
result = Pmcm.SetPulseConfig(0, axis, Pmcm.PMCM_PULSE_OUT, 0);

VB(.NET2002以降)

Dim result As Integer
Dim axis As Short
axis = PMCM_AXIS_X + PMCM_AXIS_Y
result = PmcmSetPulseConfig(0, axis, PMCM_PULSE_OUT, 0)

VB6.0

Dim lngResult As Long
Dim intAxis As Integer
intAxis = PMCM_AXIS_X + PMCM_AXIS_Y
lngResult = PmcmSetPulseConfig(0, intAxis, PMCM_PULSE_OUT, 0)

GCC

int32_t result;
uint16_t axis;
axis = PMCM_AXIS_X + PMCM_AXIS_Y;
result = PmcmSetPulseConfig(0, axis, PMCM_PULSE_OUT, 0);