CntNotifyCountUp


機能

カウント一致による通知の指定と比較レジスタの設定を行ないます。マルチプロセス対応関数です。

書式

Ret = CntNotifyCountUp ( Id , ChNo , RegNo , Count , hWnd )

引数

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 ]
設定するチャネル番号を指定します。

RegNo [ VB.NET: Short ] [ C, C++: short ] [ C#: short ] [ Python: ctypes.c_short ]
比較レジスタのレジスタ番号を指定します。

指定可能範囲:
サンプリング機能搭載デバイスの場合 : 0 or 1
サンプリング機能搭載デバイス以外  : 0 固定

Count [ VB.NET: Integer ] [ C, C++: unsigned long ] [ C#: uint ] [ Python: ctypes.c_ulong ]
比較レジスタに設定する比較値を指定してください。

指定可能範囲:
2
4ビットカウンタデバイスの場合 : 0H <= Count <= FFFFFFH
32ビットカウンタデバイスの場合 : 0H <= Count <= FFFFFFFFH

hWnd [ VB.NET: IntPtr ] [ C, C++: HWND ] [ C#: IntPtr ] [ Python: ctypes.wintypes.HANDLE ]
カウント一致メッセージを受け取るウィンドウハンドルを指定します。
ウィンドウハンドルは、VCの場合は、m_hWndで取得できます。ウインドウメッセージを使用せず、コールバックを使用する場合は0を指定してください。

戻り値

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_CREATE_THREAD

10005

スレッドの作成に失敗しました(CreateThread失敗)

CNT_ERR_DLL_HWND

10200

ウィンドウハンドルが指定可能範囲外です

CNT_ERR_SYS_NOT_SUPPORTED

20001

このデバイスではこの関数は使用できません

CNT_ERR_SYS_BOARD_EXECUTING

20002

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

CNT_ERR_SYS_USING_OTHER_PROCESS

20003

他のプロセスがデバイスを使用しているため、実行できません

CNT_ERR_SYS_CH_VALUE

20203

カウンタ値が設定可能範囲外です

CNT_ERR_SYS_CH_NO

20201

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

CNT_ERR_SYS_REGNO

20204

比較レジスタ番号が設定可能範囲外です

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

初期値

比較レジスタの初期値は0です。

説明

・この関数は、カウンタデバイスの機能であるカウント値比較による割り込みの設定と、比較レジスタの設定を行ないます。
 比較レジスタを設定することにより、設定した比較値とカウント値が一致した時に、メッセージ通知を行なうことができます。
 また、CntSetPulseWidth関数で指定した長さのパルス(ワンショットパルス)が外部に出力されます。
 ワンショットパルス出力のみを行い、アプリケーションでカウント一致を検出する必要がない場合、引数のhWndに0を指定してください。

CntResetDeviceを呼び出すと、割り込みが無効になります。

・利用デバイスによって、イベントを受け付けることができるプロセス数が異なります。
 詳細は、利用可能プロセス数の一覧表を参照ください。

・割り込みが発生すると、指定したウィンドウハンドルに、以下のメッセージがPostMessageされます。

定義

意味

CNTM_COUNTUP_CH0

1100H

カウント一致、チャネル番号0

CNTM_COUNTUP_CH1

1101H

          "                 1

CNTM_COUNTUP_CH2

1102H

          "             2

CNTM_COUNTUP_CH3

1103H

          "                  3

CNTM_COUNTUP_CH4

1104H

          "              4

CNTM_COUNTUP_CH5

1105H

          "              5

CNTM_COUNTUP_CH6

1106H

          "                     6

CNTM_COUNTUP_CH7

1107H

            "                        7

ッセージのパラメータである、wParam、lParamには、それぞれ以下の情報が入ります。
※HIWORD、LOWORDは、それぞれ上位ワード、下位ワードを表します。

定義

意味

LOWORD(wParam)

CntInit関数で取得したID

HIWORD(wParam)

方向

lParam

比較値


【方向定義】

定義

意味

CNTM_DIR_UP

1

UP

CNTM_DIR_DOWN

2

DOWN

メッセージ処理の記述方法詳細については、各言語のサンプルプログラムを参照してください。

CPSN-CNT-3201I を CPSN-MCB271-xxx と組み合わせて使用する場合
   この関数を使用することで、ワンショットパルスを出力するカウントの比較値を設定できます。
   ただし、アプリケーションへのイベント通知を行うことはできません。
   hWndには0を指定してください。

Ethernetデバイスの場合
   デバイスとの通信が途切れるとプロセスの登録が解除され、イベントが通知されなくなります。
   イベント通知を再び行う場合、本関数で再度設定を行ってしてください。

   現在のプロセスの登録状況は、CntGetNetCommunicationInfo関数で確認できます。

使用例

チャネル0について、比較レジスタ値10000でカウント一致通知設定を行います。

VB.NET

Dim Ret As Integer
Ret = CntNotifyCountUp ( Id , 0 , 0 , 10000 , Handle )
 

C, C++

long Ret;
Ret = CntNotifyCountUp ( Id , 0 , 0 , 10000 , m_hWnd );
 

C#

int Ret;
Ret = cnt.NotifyCountUp ( Id , 0 , 0 , 10000 , Handle );
 

Python

Ret = ctypes.c_long()
handle = ctypes.windll.user32.FindWindowW(0, "割り込み")
Ret.value = ccnt.CntNotifyCountUp ( Id , 0 , 0 , 10000 , handle )
 

関連項目

CntStopNotifyCountUp CntSetPulseWidth CntSetOutputHardwareEvent CntGetNetCommunicationInfo