CntReadStatus


機能

指定したチャネルのステータスを取得します。マルチプロセス対応関数です。

書式

Ret = CntReadStatus ( Id , ChNo , Sts )

引数

Id [ VB.NET: Short ] [ C, C++: short ] [ C#: short ] [ Python: ctypes.c_short ]
CntInitで取得したデバイスIDを指定します。

ChNo [ VB.NET: Short ] [ C, C++: short ] [ C#: short ] [ Python: ctypes.c_short ]
取得するチャネル番号を指定します。

Sts [ VB.NET: Short ] [ C, C++: short * ] [ C#: out short ] [ Python: ctypes.POINTER(ctypes.c_short) ]
ステータスを取得する変数のアドレスを指定します。
各ビットは、次のように定義されています。

D7

D6

D5

D4

D3

D2

D1

D0

AI

Z

A

B

1

U/D

EQ

U

 

ビット

意味

D0 :U

汎用入力状態

0:汎用入力「0」
1:汎用入力「1」

D1 :EQ

カウント一致状態

0:カウントデータ一致
1:カウントデータ不一致

D2 :U/D

カウント方向状態

0:アップカウント中
1:ダウンカウント中

D3

未使用

1固定

D4 :B

B相入力状態

0:B相入力「0」
1:B相入力「1」

D5 :A

A相入力状態

0:A相入力「0」
1:A相入力「1」

D6 :Z

Z相入力状態

0:Z相入力「0」
1:Z相入力「1」

D7 :AI

異常入力検出

0:正常
1:異常

戻り値

Ret [ VB.NET: Integer ] [ C, C++: long ] [ C#: int ] [ Python: ctypes.c_long ]

定義

意味

CNT_ERR_SUCCESS

0

正常終了

CNT_ERR_SYS_RECOVERED_FROM_STANDBY

7

スタンバイモードから復帰したため、CntResetDevice関数を実行してください

CNT_ERR_DLL_INVALID_ID

10001

無効なIDが指定されました

CNT_ERR_DLL_CALL_DRIVER

10002

ドライバーを呼び出せません。(デバイスI/Oコントロールに失敗)

CNT_ERR_DLL_BUFF_ADDRESS

10101

データバッファアドレスが不正です

CNT_ERR_SYS_BOARD_EXECUTING

20002

デバイスが動作中のため実行できません

CNT_ERR_SYS_CH_NO

20201

チャネル番号が設定可能範囲外です

その他のエラー(参照:エラーコード詳細

初期値

0

説明

・指定したチャネルのステータスを取得します。
 ステータスは、カウンタの各相の信号が動作しているかどうかの確認に使用できます。
 汎用入力については、専用関数CntInputDIByteを使用した方が便利です。

・「サンプリング機能搭載デバイス」の場合、CntReadStatusExを使用してください。
 CntReadStatusでは一部のステータスしか取得できません。

・異常入力検出(D7:AI)は、ステータスをリードした時点でクリアされます。
 ただし、CntNotifyCounterErrorにて、カウンタエラーの通知を有効にしているとこのステータスは常に0となります。

CntSetInputHardwareEventにて、汎用入力以外を設定した場合も、汎用入力状態の読み取りが可能です。

・カウント一致状態(D1:EQ)は、本関数実行時のカウント値と、比較一致レジスタ設定値が同じであれば、「0:カウントデータ一致」となります。
 それ以外の状態では、「1:カウントデータ不一致」となります。
 このため、高速にカウント値が変化する場合は、状態変化を認識できません。CntNotifyCountUp関数の利用をご検討ください。

使用例

チャネル0のステータスを取得します。

VB.NET

Dim Ret As Integer
Dim Sts As Short
Ret = CntReadStatus ( Id , 0 , Sts )
 

C, C++

long Ret;
short Sts;
Ret = CntReadStatus ( Id , 0 , &Sts );
 

C#

int Ret;
short Sts;
Ret = cnt.ReadStatus ( Id , 0 , out Sts );
 

Python

Ret = ctypes.c_long()
Sts = ctypes.c_short()
Ret.value = ccnt.CntReadStatus ( Id , 0 , ctypes.byref(Sts) )
 

関連項目

CntInputDIByte CntReadStatusEx CntNotifyCounterError CntSetInputHardwareEvent CntNotifyCountUp