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

PmcmSetEventMask

機能

イベントマスクの設定をします。

イベントについて

書式

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

パラメータ

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_EVENT_STOP 停止イベント
PMCM_EVENT_STATE 状態イベント
言語 C/C++ C++/CLI C# VB(.NET2002以降) VB6.0/VBA GCC
WORD unsigned short ushort Short Integer uint16_t

wConfig

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

  • wMode : PMCM_EVENT_STOP

    bit 15 14 13 12 11 10 9 8
    信号 - - - - - - - -
    bit 7 6 5 4 3 2 1 0
    信号 - - SD EMG ALM -EL +EL STOP

    bit5 : SD入力ONによる減速停止時
    bit4 : EMG入力ONによる停止時
    bit3 : ALM入力ONによる停止時
    bit2 : -EL入力ONによる停止時
    bit1 : +EL入力ONによる停止時
    bit0 : 自動停止時

    各ビットの設定値 内容
    0 イベント発生マスク
    1 イベント発生許可

    初期値 : H'0

  • wMode : PMCM_EVENT_STATE

    bit 15 14 13 12 11 10 9 8
    信号 - - - - - - - SD
    bit 7 6 5 4 3 2 1 0
    信号 ORG LTC CMP2 CMP1 DEC FIN DEC STA ACC FIN ACC STA

    bit8 : SD入力ON時
    bit7 : ORG入力ONによるカウント値のラッチ時
    bit6 : LTC入力によるカウント値のラッチ時
    bit5 : コンパレータ(エンコーダ)条件成立時
    bit4 : コンパレータ(出力パルス)条件成立時
    bit3 : 減速終了時
    bit2 : 減速開始時
    bit1 : 加速終了時
    bit0 : 加速開始時

    各ビットの設定値 内容
    0 イベント発生マスク
    1 イベント発生許可

    初期値 : H'0

言語 C/C++ C++/CLI C# VB(.NET2002以降) VB6.0/VBA GCC
WORD unsigned short 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軸とY軸の停止イベントを全てマスクに設定します。

C/C++

int nResult;
WORD wAxis;
wAxis = PMCM_AXIS_X + PMCM_AXIS_Y;
nResult = PmcmSetEventMask(0, wAxis, PMCM_EVENT_STOP, 0);

C++/CLI

int result;
unsigned short axis;
axis = PMCM_AXIS_X + PMCM_AXIS_Y;
result = PmcmSetEventMask(0, axis, PMCM_EVENT_STOP, 0);

C#

int result;
ushort axis;
axis = Pmcm.PMCM_AXIS_X + Pmcm.PMCM_AXIS_Y;
result = Pmcm.SetEventMask(0, axis, Pmcm.PMCM_EVENT_STOP, 0);

VB(.NET2002以降)

Dim result As Integer
Dim axis As Short
axis = PMCM_AXIS_X + PMCM_AXIS_Y
result = PmcmSetEventMask(0, axis, PMCM_EVENT_STOP, 0)

VB6.0/VBA

Dim lngResult As Long
Dim intAxis As Integer
intAxis = PMCM_AXIS_X + PMCM_AXIS_Y
lngResult = PmcmSetEventMask(0, intAxis, PMCM_EVENT_STOP, 0)

GCC

int32_t result;
uint16_t axis;
axis = PMCM_AXIS_X + PMCM_AXIS_Y;
result = PmcmSetEventMask(0, axis, PMCM_EVENT_STOP, 0);