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

PmcmGetStatus

機能

各ステータスを取得します。

書式

INT PmcmGetStatus(
    WORD wID,
    WORD wAxis,
    WORD wMode,
    PWORD pwStatus
);

パラメータ

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_BUSY 動作状態
PMCM_SIG_STATUS 制御信号入力/出力状態
言語 C/C++ C++/CLI C# VB(.NET2002以降) VB6.0/VBA GCC
WORD unsigned short ushort Short Integer uint16_t

pwStatus

設定値を格納するバッファへのポインタを指定します。
取得する項目(wMode)によって値が異なります。

  • wMode : PMCM_BUSY

    内容
    0 停止中
    1 内部同期信号待ち
    2 他軸の停止待ち
    3 ERCタイマー完了待ち
    4 方向変化タイマー完了待ち
    5 起動速度で動作中
    6 移動速度で動作中
    7 加速中
    8 減速中
    9 INP信号入力待ち状態
    10 その他(状態遷移中です。再取得してください)

  • wMode : PMCM_SIG_STATUS

    bit 15 14 13 12 11 10 9 8
    信号 ERC - - - - - EMG Z
    bit 7 6 5 4 3 2 1 0
    信号 PCS LTC INP ALM ORG SD -EL +EL
    各ビットの値 内容
    0 OFF
    1 ON

    PCSはX軸のみ

言語 C/C++ C++/CLI C# VB(.NET2002以降) VB6.0/VBA GCC
PWORD unsigned short* out 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軸の制御信号入力/出力状態を取得します。

C/C++

int nResult;
WORD wAxis;
WORD wStatus;
wAxis = PMCM_AXIS_X;
nResult = PmcmGetStatus(0, wAxis, PMCM_SIG_STATUS, &wStatus);

C++/CLI

int result;
unsigned short axis;
unsigned short status;
axis = PMCM_AXIS_X;
result = PmcmGetStatus(0, axis, PMCM_SIG_STATUS, &status);

C#

int result;
ushort axis;
ushort status;
axis = Pmcm.PMCM_AXIS_X;
result = Pmcm.GetStatus(0, axis, Pmcm.PMCM_SIG_STATUS, out status);

VB(.NET2002以降)

Dim result As Integer
Dim axis As Short
Dim status As Short
axis = PMCM_AXIS_X
result = PmcmGetStatus(0, axis, PMCM_SIG_STATUS, status)

VB6.0/VBA

Dim lngResult As Long
Dim intAxis As Integer
Dim intStatus As Integer
intAxis = PMCM_AXIS_X
lngResult = PmcmGetStatus(0, intAxis, PMCM_SIG_STATUS, intStatus)

GCC

int32_t result;
uint16_t axis;
uint16_t status;
axis = PMCM_AXIS_X;
result = PmcmGetStatus(0, axis, PMCM_SIG_STATUS, &status);