CntReadStatus


機能

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

書式

Ret = CntReadStatus ( Id , ChNo , Sts )

引数

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

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

Sts [ C: 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 [ C: long ] [ Python: ctypes.c_long ]

定義

意味

CNT_ERR_SUCCESS

0

正常終了

CNT_ERR_DLL_INVALID_ID

10001

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

CNT_ERR_DLL_CALL_DRIVER

10002

ドライバを呼び出せません。(ioctlに失敗)

CNT_ERR_DLL_BUFF_ADDRESS

10101

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

CNT_ERR_SYS_CH_NO

20201

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

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

初期値

なし

説明

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

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

・異常入力検出(D7:AI)は、ステータスをリードした時点でクリアされます。

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

使用例

C

Ret = CntReadStatus(Id, ChNo, &Sts);
 

Python

Ret = ccnt.CntReadStatus(Id, ChNo, ctypes.byref(Sts))
 

関連項目

CntStartCount CntReadStatusEx CntSetCountMatchEvent