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

PmcmSetComparatorConfig

機能

コンパレータの設定をします。

コンパレータについて

書式

INT PmcmSetComparatorConfig(
    WORD wID,
    WORD wAxis,
    WORD wMode,
    PCOMPPMCM pComp
);

typedef struct {
    WORD wConfig;
    LONG lCount;
} COMPPMCM, *PCOMPPMCM;

パラメータ

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

wMode

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

設定値 内容
PMCM_COMP_COUNTER 出力パルスコンパレータの比較条件
PMCM_COMP_ENCODER エンコーダコンパレータの比較条件
言語 C/C++ C++/CLI C# VB(.NET2002以降) VB6.0/VBA GCC
WORD unsigned short ushort Short Integer uint16_t

pComp

設定パラメータが格納されているバッファへのポインタを指定します。

バッファは2軸分用意してください

言語 C/C++ C++/CLI C# VB(.NET2002以降) VB6.0/VBA GCC
PCOMPPMCM COMPPMCM* COMPPMCM COMPPMCM COMPPMCM PCOMPPMCM

wConfig

コンパレータ機能設定
設定する項目(wMode)によって値が異なります。

  • wMode : PMCM_COMP_COUNTER

    設定値 内容
    0 コンパレータ機能OFF
    1 設定値 = 出力パルスカウンタ
    2 設定値 > 出力パルスカウンタ
    3 設定値 < 出力パルスカウンタ

    初期値 : 0

  • wMode : PMCM_COMP_ENCODER

    設定値 内容
    0 コンパレータ機能OFF
    1 設定値 = エンコーダカウンタ
    2 設定値 > エンコーダカウンタ
    3 設定値 < エンコーダカウンタ

    初期値 : 0

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

lCount

コンパレータの設定値
設定範囲は-134217728 ~ +134217727

初期値 : 0

言語 C/C++ C++/CLI C# VB(.NET2002以降) VB6.0/VBA GCC
LONG 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

備考

複数軸同時に設定しない場合でも、設定パラメータバッファは2軸分用意し、配列の先頭アドレスを関数へ設定するようにしてください。

COMPPMCM Comp[2]; 2軸分用意
Comp[0] X軸の設定パラメータ
Comp[1] Y軸の設定パラメータ

使用例

IDが0のボードの、X軸の出力パルスコンパレータをOFFに設定します。

C/C++

int nResult;
WORD wAxis;
COMPPMCM Comp[2];
wAxis = PMCM_AXIS_X;
Comp[0].wConfig = 0;
Comp[0].lCount = 0;
nResult = PmcmSetComparatorConfig(0, wAxis, PMCM_COMP_COUNTER, Comp);

C++/CLI

int result;
unsigned short axis;
COMPPMCM comp[2];
axis = PMCM_AXIS_X;
comp[0].wConfig = 0;
comp[0].lCount = 0;
result = PmcmSetComparatorConfig(0, axis, PMCM_COMP_COUNTER, comp);

C#

int result;
ushort axis;
Pmcm.COMPPMCM[] comp = new Pmcm.COMPPMCM[2];
axis = Pmcm.PMCM_AXIS_X;
comp[0].wConfig = 0;
comp[0].lCount = 0;
result = Pmcm.SetComparatorConfig(0, axis, Pmcm.PMCM_COMP_COUNTER, comp);

VB(.NET2002以降)

Dim result As Integer
Dim axis As Short
Dim comp(1) As COMPPMCM
axis = PMCM_AXIS_X
comp(0).wConfig = 0
comp(0).lCount = 0
result = PmcmSetComparatorConfig(0, axis, PMCM_COMP_COUNTER, comp)

VB6.0/VBA

Dim lngResult As Long
Dim intAxis As Integer
Dim Comp(1) As COMPPMCM
intAxis = PMCM_AXIS_X
Comp(0).wConfig = 0
Comp(0).lCount = 0
lngResult = PmcmSetComparatorConfig(0, intAxis, PMCM_COMP_COUNTER, Comp(0))

GCC

int32_t result;
uint16_t axis;
COMPPMCM comp[2];
axis = PMCM_AXIS_X;
comp[0].wConfig = 0;
comp[0].lCount = 0;
result = PmcmSetComparatorConfig(0, axis, PMCM_COMP_COUNTER, comp);