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

YduPmcsSetSensorConfig

機能

センサの設定をします。

書式

INT YduPmcsSetSensorConfig(
    WORD unitId,
    WORD axis,
    WORD mode,
    WORD config
);

パラメータ

unitId

ユニットのID番号を指定します。

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

axis

センサの設定をする軸を指定します。
複数の軸を指定することができます。

定義
PMC_AXIS_X0 0x01 X0軸
PMC_AXIS_Y0 0x02 Y0軸
PMC_AXIS_Z0 0x04 Z0軸
PMC_AXIS_U0 0x08 U0軸
PMC_AXIS_X1 0x10 X1軸
PMC_AXIS_Y1 0x20 Y1軸
PMC_AXIS_Z1 0x40 Z1軸
PMC_AXIS_U1 0x80 U1軸
言語 C# VB(.NET2002以降) VB6.0/VBA C++/CLI C/C++
ushort Short Integer unsigned short WORD

mode

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

定義 設定する項目
PMC_LOGIC 0 センサ極性
PMC_STA_STP 1 STA/STP信号の有効・無効
PMC_SD_CFG 2 SD信号の有効・無効
言語 C# VB(.NET2002以降) VB6.0/VBA C++/CLI C/C++
ushort Short Integer unsigned short WORD

config

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

  • wMode : PMC_LOGIC

    各センサの入力論理

    bit 15 14 13 12 11 10 9 8
    信号 - - - - - - - STP1
    (※1)
    STP3
    (※2)
    bit 7 6 5 4 3 2 1 0
    信号 STP0
    (※1)
    STP2
    (※2)
    STA1
    (※1)
    STA3
    (※2)
    STA0
    (※1)
    STA2
    (※2)
    ORG +SD -SD +EL -EL
    各ビットの設定値 内容
    0 オフで検知(初期値)
    1 オンで検知

    ※1 X0・Y0・Z0・U0指定時
    ※2 X1・Y1・Z1・U1指定時

  • wMode : PMC_STA_STP

    STA/STP信号の有効または無効

    bit 7 6 5 4 3 2 1 0
    信号 - - - - STP1
    (※1)
    STP3
    (※2)
    STP0
    (※1)
    STP2
    (※2)
    STA1
    (※1)
    STA3
    (※2)
    STA0
    (※1)
    STA2
    (※2)
    各ビットの設定値 内容
    0 無効(初期値)
    1 有効

    ※1 X0・Y0・Z0・U0指定時
    ※2 X1・Y1・Z1・U1指定時

  • wMode : PMC_SD_CFG

    SD信号の有効または無効

    設定値 内容
    0 無効(初期値)
    1 有効
言語 C# VB(.NET2002以降) VB6.0/VBA C++/CLI C/C++
ushort Short Integer unsigned short WORD

戻り値

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

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

備考

センサ極性のSTAx・STPxの極性設定はサブボード毎に共通です。
4軸の場合は全ての軸が共通の設定です。
8軸の場合はX0・Y0・Z0・U0が共通の設定、X1・Y1・Z1・U1が共通の設定です。

X0軸に対してSTA0のセンサ極性を「オンで検知」に設定し、その後Y0軸に対してSTA0のセンサ極性を「オフで検知」に設定した場合、後から設定した値が有効となりますので、X0軸のSTA0も「オフで検知」となります。

使用例

ユニットIDが0のユニットの、X0・Y0・Z0・U0軸のORG・+SD・-SD・+EL・-EL信号を「オンで検知」に設定します。

C#

ushort axis = YduPmcs.PMC_AXIS_X0 + YduPmcs.PMC_AXIS_Y0 + YduPmcs.PMC_AXIS_Z0 + YduPmcs.PMC_AXIS_U0;
var result = YduPmcs.SetSensorConfig(0, axis, YduPmcs.PMC_LOGIC, 0x1F);

VB(.NET2002以降)

Dim axis As Short = PMC_AXIS_X0 + PMC_AXIS_Y0 + PMC_AXIS_Z0 + PMC_AXIS_U0
Dim result As Integer = YduPmcsSetSensorConfig(0, axis, PMC_LOGIC, &H1F)

VB6.0/VBA

Dim result As Long
Dim axis As Integer
axis = PMC_AXIS_X0 + PMC_AXIS_Y0 + PMC_AXIS_Z0 + PMC_AXIS_U0
result = YduPmcsSetSensorConfig(0, axis, PMC_LOGIC, &H1F)

C++/CLI

unsigned short axis = PMC_AXIS_X0 + PMC_AXIS_Y0 + PMC_AXIS_Z0 + PMC_AXIS_U0;
int result = YduPmcsSetSensorConfig(0, axis, PMC_LOGIC, 0x1F);

C/C++

WORD axis = PMC_AXIS_X0 + PMC_AXIS_Y0 + PMC_AXIS_Z0 + PMC_AXIS_U0;
INT result = YduPmcsSetSensorConfig(0, axis, PMC_LOGIC, 0x1F);