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

PmcmSetSensorConfig

機能

センサの設定をします。

書式

INT PmcmSetSensorConfig(
    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_LOGIC 入力論理(センサ極性)
PMCM_EL_FUNC EL信号入力ON時の処理
PMCM_SD_FUNC SD信号入力ON時の処理
PMCM_SD_ACTIVE SD信号入力方法
PMCM_ORG_FUNC 原点復帰方法
PMCM_EZ_FUNC Z信号入力論理
PMCM_EZ_COUNT Z信号カウント数
PMCM_ALM_FUNC ALM信号入力ON時の処理
PMCM_LTC_FUNC LTC信号入力論理
PMCM_PCS_FUNC PCS信号入力の処理
PMCM_SENS_FILTER 入力フィルタの設定
言語 C/C++ C++/CLI C# VB(.NET2002以降) VB6.0/VBA GCC
WORD unsigned short ushort Short Integer uint16_t

wConfig

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

  • wMode : PMCM_LOGIC

    各センサの入力論理

    bit 15 14 13 12 11 10 9 8
    信号 - - - - - - - -
    bit 7 6 5 4 3 2 1 0
    信号 - - PCS
    ※1,2
    INP
    ※1
    ALM ORG SD ±EL
    各ビットの設定値 内容
    0 オフで検知(正論理)
    1 オンで検知(負論理)

    ※1 汎用デジタル入力として使用する場合は1に設定してください
    ※2 PCSはX軸のみ

    初期値 : H'0(X軸)、H'20(Y軸)

  • wMode : PMCM_EL_FUNC

    +EL、-EL信号がONになった時の停止方法

    設定値 内容
    0 即停止
    1 減速停止

    初期値 : 0

  • wMode : PMCM_SD_FUNC

    SD信号がONになった時の減速方法

    設定値 内容
    0 減速のみ
    1 減速停止
    2 SD無効

    初期値 : 0

  • wMode : PMCM_SD_ACTIVE

    SD信号の入力方法

    設定値 内容
    0 レベル入力
    1 ラッチ入力

    初期値 : 0

  • wMode : PMCM_ORG_FUNC

    ORG、Z信号を使用した原点復帰方法

    設定値 内容
    0 ORG信号のみ使用
    1 ORG信号とZ信号を使用

    初期値 : 0

  • wMode : PMCM_EZ_FUNC

    Z信号の入力論理

    設定値 内容
    0 立ち下がりエッジ
    1 立ち上がりエッジ

    初期値 : 0

  • wMode : PMCM_EZ_COUNT

    原点復帰完了条件のZ信号カウント数
    設定範囲は1 ~ 16

    初期値 : 1

  • wMode : PMCM_ALM_FUNC

    ALM信号がONになった時の停止方法

    設定値 内容
    0 即停止
    1 減速停止

    初期値 : 0

  • wMode : PMCM_LTC_FUNC

    LTC信号の入力論理

    設定値 内容
    0 LTC信号の立ち下がりエッジでラッチ
    1 LTC信号の立ち上がりエッジでラッチ

    汎用デジタル入力として使用する場合は0に設定してください

    初期値 : 0

  • wMode : PMCM_PCS_FUNC

    PCS信号の機能

    設定値 内容
    0 PCS信号として使用しない
    1 PCS信号として使用する(位置のオーバーライド)
    2 自軸のみに有効な外部スタート/同時スタート信号

    初期値 : 0

  • wMode : PMCM_SENS_FILTER

    設定値 内容
    0 フィルタなし
    1 3.2μsec以下のパルス幅は無視
    2 25μsec以下のパルス幅は無視
    3 100μsec以下のパルス幅は無視
    4 1.6msec以下のパルス幅は無視

    +EL、-ELSDORGALMINPにフィルタを挿入します。
    フィルタを挿入すると、指定パルス幅以下の信号は無視されます。

    初期値 : 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軸のPCS、INP、ALM、ORG、SD、-EL、+ELを「オンで検知」に設定します。

C/C++

int nResult;
WORD wAxis;
wAxis = PMCM_AXIS_X + PMCM_AXIS_Y;
nResult = PmcmSetSensorConfig(0, wAxis, PMCM_LOGIC, 0x3F);

C++/CLI

int result;
unsigned short axis;
axis = PMCM_AXIS_X + PMCM_AXIS_Y;
result = PmcmSetSensorConfig(0, axis, PMCM_LOGIC, 0x3F);

C#

int result;
ushort axis;
axis = Pmcm.PMCM_AXIS_X + Pmcm.PMCM_AXIS_Y;
result = Pmcm.SetSensorConfig(0, axis, Pmcm.PMCM_LOGIC, 0x3F);

VB(.NET2002以降)

Dim result As Integer
Dim axis As Short
axis = PMCM_AXIS_X + PMCM_AXIS_Y
result = PmcmSetSensorConfig(0, axis, PMCM_LOGIC, &H3F)

VB6.0/VBA

Dim lngResult As Long
Dim intAxis As Integer
intAxis = PMCM_AXIS_X + PMCM_AXIS_Y
lngResult = PmcmSetSensorConfig(0, intAxis, PMCM_LOGIC, &H3F)

GCC

int32_t result;
uint16_t axis;
axis = PMCM_AXIS_X + PMCM_AXIS_Y;
result = PmcmSetSensorConfig(0, axis, PMCM_LOGIC, 0x3F);