機能
指定したチャネルのステータスを取得します。マルチプロセス対応関数です。
書式
Ret = CntReadStatusEx ( Id , ChNo , Sts )
引数
Id
[ C, C++ : short ] [ Python: ctypes.c_short ]
CntInitで取得したデバイスIDを指定します。
ChNo
[ C, C++ : short ] [ Python: ctypes.c_short ]
取得するチャネル番号を指定します。
Sts
[ C, C++ : int * ] [ Python: ctypes.POINTER(ctypes.c_int) ]
ステータスを取得する変数のアドレスを指定します。各ビットは、次のように定義されています。
D11 |
D10 |
D9 |
D8 |
D7 |
D6 |
D5 |
D4 |
D3 |
D2 |
D1 |
D0 |
ALM |
AI |
FE |
CA |
BO |
Z |
A |
B |
U/D |
EQ1 |
EQ0 |
U |
戻り値
Ret [ C, 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 |
チャネル番号が設定可能範囲外です |
その他のエラー(参照:エラーコード詳細)
初期値
0
説明
・指定したチャネルのステータスを取得します。
ステータスは、カウンタの各相の信号が動作しているかどうかの確認に使用できます。
汎用入力については、専用関数CntInputDIByteを使用した方が便利です。
・「通常版カウンタ搭載デバイス」の場合、CntReadStatusを使用してください。
・フィルタエラー, 異常入力エラー, 断線アラームエラーについては、ステータスをリードした時点でクリアされます。
・カウント一致状態(D1:EQ)は、本関数実行時のカウント値と、比較一致レジスタ設定値が同じであれば、「0:カウントデータ一致」となります。
それ以外の状態では、「1:カウントデータ不一致」となります。
このため、高速にカウント値が変化する場合は、状態変化を認識できません。CntSetCountMatchEvent関数の利用をご検討ください。
CPSN-CNT-3201I2 |
フィルタエラーは非対応です。 D9:FEは、常に「0: フィルタエラー未検出」となります。
断線アラームエラーは検出されません。 D11:ALMは、常に「0: アラームエラー未検出」となります。
|
|||||||||||||||||||||||||||||||||||||||
CNT-3204IN-ETH CNT-3204IN-USB CNT-3204MT-LPE CNT32-4MT(LPCI) CPI-CNT-3201I |
断線アラームエラーは検出されません。 D11:ALMは、常に「0: アラームエラー未検出」となります。
|
|||||||||||||||||||||||||||||||||||||||
CNT-3208M-PE CNT32-8M(PCI) |
|
使用例
チャネル0のステータスを取得します。
C, C++ |
long Ret; unsigned long Sts; Ret = CntReadStatusEx
(Id , 0 , &Sts); |
Python |
Ret = ctypes.c_long() Sts = ctypes.c_ulong() Ret.value = ccnt.CntReadStatusEx
(Id , 0 , ctypes.byref(Sts)) |
関連項目
CntStartCount CntReadStatus CntSetCountMatchEvent