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

PmcmSetEncoderConfig

機能

エンコーダ入力の設定をします。

カウンタについて

書式

INT PmcmSetEncoderConfig(
    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_ENCODER_MODE エンコーダ入力モード
PMCM_ENCODER_DIR A/B入力カウント方向
PMCM_ENCODER_FILTER 入力フィルタ
言語 C/C++ C++/CLI C# VB(.NET2002以降) VB6.0 GCC
WORD unsigned short ushort Short Integer uint16_t

wConfig

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

  • wMode : PMCM_ENCODER_MODE

    設定値 内容
    0 1逓倍
    1 2逓倍
    2 4逓倍
    3 アップ・ダウンの2パルス入力

    初期値 : 0

  • wMode : PMCM_ENCODER_DIR

    設定値 内容
    0 Aの位相が進んでいる時、またはAの立ち上がりでカウントアップ
    1 Bの位相が進んでいる時、またはBの立ち上がりでカウントアップ

    初期値 : 0

  • wMode : PMCM_ENCODER_FILTER

    設定値 内容
    0 フィルタ機能OFF
    1 フィルタ機能ON

    A+、A-、B+、B-、Z+、Z-にフィルタを挿入します。
    フィルタ機能をONにすると、0.15μsec以下のパルス入力を無効にします。

    初期値 : 0

言語 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軸のエンコーダ入力モードをアップ・ダウンの2パルス入力に設定します。

C/C++

int nResult;
WORD wAxis;
wAxis = PMCM_AXIS_X + PMCM_AXIS_Y;
nResult = PmcmSetEncoderConfig(0, wAxis, PMCM_ENCODER_MODE, 3);

C++/CLI

int result;
unsigned short axis;
axis = PMCM_AXIS_X + PMCM_AXIS_Y;
result = PmcmSetEncoderConfig(0, axis, PMCM_ENCODER_MODE, 3);

C#

int result;
ushort axis;
axis = Pmcm.PMCM_AXIS_X + Pmcm.PMCM_AXIS_Y;
result = Pmcm.SetEncoderConfig(0, axis, Pmcm.PMCM_ENCODER_MODE, 3);

VB(.NET2002以降)

Dim result As Integer
Dim axis As Short
axis = PMCM_AXIS_X + PMCM_AXIS_Y
result = PmcmSetEncoderConfig(0, axis, PMCM_ENCODER_MODE, 3)

VB6.0

Dim lngResult As Long
Dim intAxis As Integer
intAxis = PMCM_AXIS_X + PMCM_AXIS_Y
lngResult = PmcmSetEncoderConfig(0, intAxis, PMCM_ENCODER_MODE, 3)

GCC

int32_t result;
uint16_t axis;
axis = PMCM_AXIS_X + PMCM_AXIS_Y;
result = PmcmSetEncoderConfig(0, axis, PMCM_ENCODER_MODE, 3);