UCNT(PCI/C-PCI)
www.interface.co.jp
GPC-6320 万能/高速カウンタインタフェースモジュール用 Windows ドライバ
Help for Windows
GPC-6320 Help for Windows
© 2004, 2014 Interface Corporation. All rights reserved.
1
目 次
第 1 章 はじめに .................................................2
1.1 概要 ...........................................................................2
1.2 特長 ...........................................................................2
第 2 章 製品仕様 .................................................3
2.1 基本仕様 .......................................................................3
2.2 製品構成 .......................................................................4
2.3 x64 環境上の使用について........................................................6
第 3 章 導入方法 .................................................7
3.1 インストール手順 ...............................................................7
3.2 実行手順 .......................................................................7
3.3 パルス出力開始前、停止後のレベルを設定する方法 ................................11
3.4 インタフェースモジュール固有情報 ..............................................12
第 4 章 リファレンス ............................................13
4.1 DLL関数一覧(万能カウンタ) ...................................................13
4.2 関数個別説明(万能カウンタ) ..................................................15
4.3 DLL関数一覧(高速カウンタ) ..................................................193
4.4 関数個別説明(高速カウンタ) .................................................194
4.5 構造体説明 ...................................................................260
4.6 戻り値一覧 ...................................................................267
第 5 章 サンプルプログラム .....................................270
5.1 実行手順 .....................................................................270
5.2 サンプルプログラム一覧 .......................................................270
第 6 章 ユーティリティ .........................................271
6.1 動作確認プログラム(IFUcntCounter) ..........................................271
6.2 CardBusID設定ユーティリティ ..................................................278
6.3 メモリサイズ設定ユーティリティ ...............................................279
第 7 章 重要な情報 .............................................281
GPC-6320 Help for Windows
© 2004, 2014 Interface Corporation. All rights reserved.
2
第1章 はじめに
1.1 概要 GPC-6320 は、Windows 上のアプリケーションから、弊社万能カウンタ・高速カウンタ製品を制御
する為のソフトウェアです。
Windows 上のアプリケーションから DLL をダイナミックリンクし、API をコールすることにより制
御します。
本ドキュメントは、Windows 上で GPC-6320 を使用するための情報を掲載しています。
1.2 特長 ●機能モードを切り替える事で、パルスカウント、平均周波数測定、周期測定、位相差幅測定、
タイマ、分周器、パルスジェネレータとして各チャンネルを使用することが可能です。
●エンコーダからのパルスカウントに対応しています。
● 大 6チャンネル(万能 4 チャンネル/高速 2 チャンネル)を独立に制御することが可能です。
●ラッチしたカウンタ値と入力端子状態を、指定した件数分メモリ上に保存することが可能です。
内部クロックを使用したラッチを行うことで、指定周期でのサンプリング動作を行います。
●豊富な割り込み機能を搭載しており、割り込み発生時にはコールバックイベントを発生させる
ことが可能です。
●外部信号によるスタート・ストップ機能/汎用入出力機能を搭載しています。
●各種モードを使用したカウント機能を使用する為の、動作確認用アプリケーションが付属して
います。また、各カウントモードのプログラム作成時に参考となる、サンプルプログラムを用
意しています。
●画面上で機能や使い方を説明する Help をサポートしていますので、開発中に関数の詳細説明な
ど、簡単に参照することができます。
GPC-6320 Help for Windows
© 2004, 2014 Interface Corporation. All rights reserved.
3
第2章 製品仕様
2.1 基本仕様 大デバイス数 各型式毎にそれぞれ 16 デバイスまで
万能カウンタの各チャンネルを下記の動作モードで使用するこ
とが可能です。
・パルスカウント
(1パルス/DIR、UP/DOWN パルス、位相差パルス、内部基準クロ
ック)
・平均周波数測定
(1パルス/DIR、UP/DOWN パルス、位相差パルス)
・周期(パルス幅)測定
(全周期、High パルス幅、Low パルス幅、デューティ比(High/Low
パルス幅))
・位相差幅測定
(位相差幅、全位相差幅)
・タイマ
・分周出力
・パルスジェネレータ
動作モード
高速カウンタの各チャンネルを下記の動作モードで使用するこ
とが可能です。
・パルスカウント
(ゲート付き単層パルス)
サンプリング 万能カウンタでは内部/外部クロックのタイミングでカウンタ
値のサンプリングを行うことが可能です。
汎用入出力 ・各チャンネル 7点(万能カウンタ側)
・4点(高速カウンタ側)
イベントコールバック アプリケーションでイベント待ちおよびコールバック関数呼び
出しを行うことができます。
本 DLL は、以下のイベントを通知することができます。
・キャリー発生
・ボロー発生
・カウンタ値とプリセット値の一致検出
(OUTA/OUTB)
・外部トリガ(スタート/ストップ)
・位相差パルス異常検出
・外部ラッチ、基準クロックラッチ発生
・外部プリロード
・サンプリング完了
・指定件数サンプリング完了
・サンプリング用 FIFO オーバーランエラー発生時
GPC-6320 Help for Windows
© 2004, 2014 Interface Corporation. All rights reserved.
4
2.2 製品構成 製品構成 ファイル名 説明
弊社管理用ファイル GPC6320.VER 弊社ソフト管理用ファイル
新情報ドキュメント README.HTM 新ドキュメント掲載ファイル
インストールプログラム SETUP.EXE インストール用ファイル
万能カウンタユーティリティ IFUCNTCOUNTER.EXE ユーティリティ
メモリサイズ設定ユーティリ
ティ
IFUCNTMEM.exe DMA 転送用メインメモリサイズ設定ユーティリ
ティ※64bitOS 専用
サンプルプログラム
Visual C# .NET IFCUcnt
IFCHScnt
UcntPulseCount
HScntPulseCount
Visual C# .NET 用サンプルプログラム
Visual C++ UcntPulseCount
UcntFreqAvg
UcntCycle
UcntPhaseDiff
UcntTimer
UcntFreqDivider
UcntPulseGenerator
UcntSampling
HscntPulseCount
EncoderPulseCount
PulseDutySampling
SinglePulseCount
Visual C++(MFC)用サンプルプログラム
Visual Basic .NET IFCUcnt
IFCHScnt
UcntPulseCount
HScntPulseCount
Visual Basic .NET 用サンプルプログラム
Visual Basic UcntPulseCount
UcntFreqAvg
UcntCycle
UcntPhaseDiff
UcntTimer
UcntFreqDivider
UcntPulseGenerator
UcntSampling
HscntPulseCount
EncoderPulseCount
PulseDutySampling
SinglePulseCount
Visual Basic 用サンプルプログラム
GPC-6320 Help for Windows
© 2004, 2014 Interface Corporation. All rights reserved.
5
Delphi UcntPulseCount
UcntFreqAvg
UcntCycle
UcntPhaseDiff
UcntTimer
UcntFreqDivider
UcntPulseGenerator
UcntSampling
HscntPulseCount
EncoderPulseCount
PulseDutySampling
SinglePulseCount
Delphi 用サンプルプログラム
DLL IFUCNT.DLL
IFHSCNT.DLL
ダイナミックリンクライブラリファイル
IFUCNT.LIB
IFHSCNT.LIB
インポートライブラリファイル
MSVCRT.DLL C ランタイム共有 DLL
デバイスドライバ CP63201.SYS
CP63202.SYS Windows 2000 以降の OS 用ドライバ
CP63201.INF
CP63202.INF
CP63203.INF
PCI6323041.INF
PCI6323042.INF
CP63201.CAT
CP63202.CAT
CP63203.CAT
PCI6323041.CAT
PCI6323042.CAT
Windows 2000 以降の OS 用ドライバ イン
ストールファイル
CP63201.SLD
CP63202.SLD
CP63203.SLD
Windows Embedded 用ドライバ SLD ファイル
ヘッダファイル IFUCNT.H
IFHSCNT.H
Visual C++用ヘッダファイル
IFUCNT.BAS
IFHSCNT.BAS
Visual Basic 用ヘッダファイル
IFUCNT.PAS
IFHSCNT.PAS
Delphi 用ヘッダファイル
HELP.PDF Help(PDF 形式) Help
HELP_NET.PDF .NET 用 補足 Help(PDF 形式)
※Visual C# .NET,Visual Basic.NET 用サンプルプログラムは、それぞれ Viausl C# .NET 2003,
Visual Basic .NET 2003 を使用して作成しています。
GPC-4116 On-line Help for Windows
© 2004, 2013 Interface Corporation. All rights reserved.
6
2.3 x64 環境上の使用について x64環境下でサンプリング機能を使用する場合、サンプリング件数の設定値に制限があります。
ドライバインストール後は、初期設定として各チャンネル 大 16,384 件となります。
サンプリング機能は、ドライバ内で確保された内部バッファに対してカウンタデータのバスマ
スタ転送を行っており、内部バッファのサイズは UctSetSamplingConfig 関数で指定するサンプリ
ング件数によって決まります。
x64 環境上では、OS が起動してドライバがロードされるタイミングで、内部バッファの確保が
行われます。内部バッファの確保サイズは、「メモリ設定ユーティリティ」を使用して、任意の値
に設定する事ができます。
16,384 件を超えるサンプリング件数でご使用になる場合は、メモリ設定ユーティリティにて内
部バッファの確保サイズを増加させてください。
GPC-6320 Help for Windows
© 2004, 2014 Interface Corporation. All rights reserved.
7
第3章 導入方法
3.1 インストール手順
README.HTM のインストール方法を参照してください。
3.2 実行手順
基本的な制御の手順は以下の通りです。
(関数の記述例には C言語を使用しています。)
1.初期化
デバイスを UcntOpen関数で初期化します。
使用するデバイスに割り当てられたデバイス名(“IFUCNT1”~“IFUCNT256”)を引数として渡す
ことで、指定したデバイスの初期化を行います。
初期化が正常終了すると、以後、デバイスへのアクセスが可能となります。
hDevice = UcntOpen(“IFUCNT1”); 戻り値として返されるデバイスハンドルは、以降のデバイスの制御を行う際に必要となります。
2.機能モードの設定
使用目的に応じて 適な機能モードの設定を行います。
設定可能なカウントモードは次の 7種類となります。
(それぞれ同名のモード設定用関数を使用して基本的な設定を行います)
・パルスカウントモード: (UcntSetPulseCountMode)
・平均周波数測定モード: (UcntSetFreqAvgMode)
・周期測定モード: (UcntSetCycleMode)
・位相差幅測定モード: (UcntSetPhaseDiffMode)
・タイマモード: (UcntSetTimerMode)
・分周器モード: (UcntSetFreqDividerMode)
・パルスジェネレータモード: (UcntSetPulseGeneratorMode)
各機能モードから別の機能モードへ設定変更を行った場合、各種設定が初期化されます。
機能モードの変更は、カウンタ及びサンプリングを停止した状態で行ってください。
UcntOpen 関数によるオープン直後、もしくは UcntReset 関数によるデバイスの初期化直後には、
パルスカウントモードが初期モードとして設定されます。
3.カウンタ機能設定
機能モード設定用の関数を使用して基本的な動作設定を行った後に、その他のカウンタ機能の設
定を行います。
設定可能な機能は下記の用になります。(括弧内は設定用の関数名となります。)
GPC-6320 Help for Windows
© 2004, 2014 Interface Corporation. All rights reserved.
8
・プリロードデータ設定: (UcntSetLoadData)
・基準クロック設定: (UcntSetBaseClock)
・スタート/ストップトリガモード設定: (UcntSetTriggerConfig)
・トリガチャンネル設定: (UcntSetTriggerConfig)
・一致検出モード設定: (UcntSetTriggerChannel)
・デジタルフィルタ設定: (UcntSetFilter)
※現在の機能モードによって、設定変更が可能な機能が異なります。
設定変更を行うことができない機能モードを使用している場合には、各関数の実行時に
「IFUCNT_ERROR_INVALID_FUNC_MODE」が戻り値として返されます。
4.カウントの開始
カウント機能を有効にする為に、UcntStartCount関数を実行します。
nRet = UcntStartCount(hDevice, 0x01, IFUCNT_CMD_START);
第 2 引数にカウントを開始するチャンネルを指定することで、複数チャンネルのスタートを同時
に行うことが可能となります。(上記の例ではチャンネル 1のみ開始しています。)
スタートトリガに設定した外部入力のタイミングでカウントを開始したい場合には、スタートコ
マンドに IFUCNT_CMD_EXWAIT を指定します。
nRet = UcntStartCount(hDevice, 0x01, IFUCNT_CMD_EXWAIT);
5.カウントの停止
カウント機能を停止する場合、UcntStopCount関数を実行します。
nRet = UcntStopCount(hDevice, 0x01, IFUCNT_CMD_STOP);
第 2 引数にカウントを停止するチャンネルを指定することで、複数チャンネルのストップを同時
に行うことが可能となります。(上記の例ではチャンネル 1のみ停止しています。)
6.カウンタ値の設定・取得
予めカウンタに値を設定したい場合には、UcntSetCounter関数を実行します。
dwCounter[0] = 10000;
nRet = UcntSetCounter(hDevice, 0x01, dwCounter);
配列に指定した値が、カウンタの初期値として設定されます。
第 2 引数にカウンタ値を設定するチャンネルを指定することで、複数チャンネルのカウンタ値を
同時に設定することが可能となります。(上記の例ではチャンネル 1のみ設定しています。)
カウンタ値の取得を行う際には、通常のカウンタ読み出しとラッチカウンタの読み出しの 2 種類
の関数があります。
nRet = UcntReadCounter(hDevice, 0x01, dwCounter);
UcntReadCounter関数を実行した場合、関数実行時点の 新のカウンタ値を読み出すことが可能と
なります。
GPC-6320 Help for Windows
© 2004, 2014 Interface Corporation. All rights reserved.
9
nRet = UcntReadLatchCounter(hDevice, 0x01, dwCounter);
UcntReadLatchCounter関数を実行した場合には、前回のラッチタイミング時にデバイスに保持さ
れたカウンタ値を読み出すことが可能となります。
周期測定モード、位相差幅測定モードの使用時には、ラッチカウンタの値を読み出す必要があり
ます。
その他の機能モードでは、必要に応じてカウンタとラッチカウンタの読み出しを選択してくださ
い。
また、カウンタ値のラッチ動作をソフトウェアで指定したタイミングで行いたい場合には、
UcntLatchCount関数を実行します。
(複数チャンネルの同時ラッチが可能です。)
7.ステータス情報の取得
各チャンネル毎の入力端子状態を取得したい場合には、UcntGetStatus 関数を実行します。
nRet = UcntGetStatus(hDevice, 0x01, dwStatus);
配列の先頭要素のアドレスを関数に渡すことで、複数チャンネルのステータス情報を同時に取得
することが可能です。
(上記の例ではチャンネル 1のステータスのみ取得しています。)
8.ラッチカウンタ値のサンプリング
ラッチ動作のタイミングで保持されたカウンタ値と入力端子の状態を、指定した件数分取得する
ことが可能です。
(内部クロックのタイミングでラッチを行う設定にすることで、指定周期でのサンプリング動作
を実行可能です。)
各動作モードの設定後、サンプリングデータを保持する件数や繰り返し回数、イベントを発生さ
せる件数等のサンプリングに関する設定を行います。
UCNTSMPLCONFIG SmplConfig;
SmplConfig.dwSmplNum = 1000;
SmplConfig.dwSmplEventNum = 500;
SmplConfig.dwRepeat = 1;
SmplConfig.dwStatusMode = IFUCNT_NO_STATUS;
SmplConfig.dwErrCtrl = IFUCNT_FREERUN;
nRet = UcntSetSampingConfig(hDevice, 1, &SmplConfig);
UcntSetSamplingConfig関数でサンプリングに関する設定を完了後、UcntStartCount関数でサンプ
リング動作を開始します。
nRet = UcntStartCount(hDevice, 0x01, IFUCNT_CMD_START | IFUCNT_CMD_SAMPLING);
カウンタのスタートコマンドと、サンプリングスタートのコマンドを OR で指定します。
サンプリング動作を停止する場合は、UcntStopCount関数を実行します。
GPC-6320 Help for Windows
© 2004, 2014 Interface Corporation. All rights reserved.
10
nRet = UcntStopCount(hDevice, 0x01, IFUCNT_CMD_STOP | IFUCNT_CMD_SAMPLING);
カウンタのストップコマンドと、サンプリングストップのコマンドを OR で指定します。
サンプリング状態を取得する場合は、UcntGetSamplingStatus関数を実行します。
nRet = UcntGetSamplingStatus(hDevice, 1, &dwSmplStatus, &dwSmplCount, &dwRepCount);
指定した変数に現在のサンプリング状態、サンプリング完了件数、繰り返し回数が格納されます。
サンプリングが完了したデータを取得する場合には、UcntGetSamplingData関数を実行します。
DWORD dwSmplData[1000];
DWORD dwSmplDataNum = 1000;
nRet = UcntGetSamplingData(hDevice, 1, dwSmplData, &dwSmplDataNum);
9.汎用入出力
汎用入出力の制御は UcntOutputDO関数,UcntInputDI関数で行います。
デバイスのオープン直後は各チャンネルのOUTA、OUTBのみ汎用出力を制御可能な状態となってい
ます。OUTA、OUTB以外の端子の汎用出力制御を行う際には、UcntSetDOEnable関数を実行して、出
力制御を許可する必要があります。
nRet = UcntSetDOEnable(hDevice, 0xFF);
UcntSetDOEnable関数で出力許可を行った端子に、エンコーダなどの出力を行う機器を接続しない
でください。
デバイス及び外部機器が破損する恐れがあります。
10.コールバック関数
各種割り込み発生時にコールバック関数(メッセージ、イベント)を実行することができます。
UcntSetEventMask関数にて、コールバック関数、メッセージ、イベントを発生させる要因を設定
します。
各割り込みイベントに対応したビットに”1”を設定することでコールバック関数・メッセージが有
効になります。
UcntSetEvent関数でコールバック関数、メッセージ、イベントの登録を行います。
11.終了処理
UcntClose関数でデバイスの終了処理を行います。アプリケーションでは、必ずクローズ処理を行
ってから終了してください。
nRet = UcntClose(hDevice);
GPC-6320 Help for Windows
© 2004, 2014 Interface Corporation. All rights reserved.
11
3.3 パルス出力開始前、停止後のレベルを設定する方法
パルス出力前の開始及び停止後のレベル(High, Low)を設定するには、以下の方法で設定すること
が出来ます。
(関数の記述例には C言語を使用しています。)
1.パルス出力前のレベルを変更する
デバイスオープン直後のパルス出力レベルは High となっています。パルス出力開始前の出力を
Low に設定するには、UcntSetPulseGeneratorMode 関数を使用します。
パルス出力後の出力レベルは、出力が停止したときのレベルとなっています(停止した状態がHigh
ならば High を出力、停止したときが Low ならば、Low を出力)。パルス出力停止後の出力を Low
に設定するには、再度 UcntSetPulseGeneratorMode 関数を使用します。
以下の手順で、パルス出力前のレベルを Low に設定します。
①パルスジェネレータモードの設定(OUTA の出力を設定。384KHz、DUTY20%)
nRet = UcntSetPulseGeneratorMode(hDeviceHandle, 1, 1, 26, 13, IFUCNT_OUTB_NO);
②パルス出力
nRet = UcntStartCount(hDeviceHandle, 0x0F, IFUCNT_CMD_START);
③パルス停止
nRet = UcntStopCount(hDeviceHandle, 0x0F, IFUCNT_CMD_STOP);
④パルスジェネレータモードの設定(OUTA の出力が High → Low と設定されます。)
nRet = UcntSetPulseGeneratorMode(hDeviceHandle, 1, 1, 26, 5, IFUCNT_OUTB_NO);
⑤パルス出力(パルス出力の初期値を Low の状態からパルス出力します)
nRet = UcntStartCount(hDeviceHandle, 0x0F, IFUCNT_CMD_START);
GPC-6320 Help for Windows
© 2004, 2014 Interface Corporation. All rights reserved.
12
3.4 インタフェースモジュール固有情報
3.4.1 マザコン カウンタタイプ / エコ 3 カウンタタイプ固有情報
弊社マザコン製品(IMC-x6323xx),エコ 3 製品(ECC-xxxx)に搭載されているカウンタは、デバイス
マネージャ上で下記のように表示されます。
・CH 1~4 「Interface PCI-632304[UCNT]<CNT1>」
・CH 5~8 「Interface PCI-632304[UCNT]<CNT2>」
上記製品はデバイスが 2個搭載されている製品です。
そのため、2つのデバイスのそれぞれにデバイス名が割り振られます。
各関数による制御を行う際は、それぞれでデバイスオープンを行い、制御を行ってください。
GPC-6320 Help for Windows
© 2004, 2014 Interface Corporation. All rights reserved.
13
第4章 リファレンス
4.1 DLL 関数一覧(万能カウンタ) No 関数名 機能
●初期化
1 UcntOpen デバイスをオープンします。
2 UcntClose デバイスをクローズします。
3 UcntGetDeviceInfo デバイス情報を取得します。
4 UcntReset 各種設定の初期化、カウンタのクリアを行います。
●動作モード設定/取得
5 UcntSetPulseCountMode パルスカウントモードに設定します。
6 UcntGetPulseCountMode パルスカウントモードの設定情報を取得します。
7 UcntSetFreqAvgMode 平均周波数測定モードに設定します。
8 UcntGetFreqAvgMode 平均周波数測定モードの設定情報を取得します。
9 UcntSetCycleMode 周期測定モードに設定します。
10 UcntGetCycleMode 周期測定モードの設定情報を取得します。
11 UcntSetPhaseDiffMode 位相差幅測定モードに設定します。
12 UcntGetPhaseDiffMode 位相差幅測定モードの設定情報を取得します。
13 UcntSetTimerMode タイマモードに設定します。
14 UcntGetTimerMode タイマモードの設定情報を取得します。
15 UcntSetFreqDividerMode 分周器モードに設定します。
16 UcntGetFreqDividerMode 分周器モードの設定情報を取得します。
17 UcntSetPulseGeneratorMode パルスジェネレータモードに設定します。
18 UcntGetPulseGeneratorMode パルスジェネレータモードの設定情報を取得します。
●機能設定/取得
19 UcntSetLoadData ロードデータを設定します。
20 UcntGetLoadData ロードデータの設定情報を取得します。
21 UcntSetBaseClock 内部基準クロックを設定します。
22 UcntGetBaseClock 内部基準クロックの設定情報を取得します。
23 UcntSetTriggerConfig 外部トリガを設定します。
24 UcntGetTriggerConfig 外部トリガの設定情報を取得します。
25 UcntSetTriggerChannel 外部トリガチャンネルを設定します。
26 UcntGetTriggerChannel 外部トリガチャンネルの設定情報を取得します。
27 UcntSetComparatorConfig 一致検出条件を設定します。
28 UcntGetComparatorConfig 一致検出条件の設定情報を取得します。
29 UcntSetFilter デジタルフィルタを設定します。
30 UcntGetFilter デジタルフィルタの設定情報を取得します。
31 UcntSetLatchMode ラッチモードを設定します。
32 UcntGetLatchMode ラッチモードの設定情報を取得します。
●カウンタ設定/取得
33 UcntSetCounter カウンタにプリロード値を設定します。
34 UcntReadCounter カウンタを読み出します。
35 UcntReadLatchCounter ラッチカウンタを読み出します。
36 UcntSetComparator 比較カウンタを設定します。
GPC-6320 Help for Windows
© 2004, 2014 Interface Corporation. All rights reserved.
14
37 UcntGetComparator 比較カウンタの設定情報を取得します。
●ステータス取得
38 UcntGetStatus カウンタステータス情報を取得します。
●サンプリング
39 UcntSetSamplingConfig サンプリング条件を設定します。
40 UcntGetSamplingConfig サンプリング条件の設定情報を取得します。
41 UcntGetSamplingData 内部バッファからサンプリングデータを取得します。
42 UcntClearSamplingData 内部バッファのサンプリングデータをクリアします。
43 UcntGetSamplingStatus サンプリングステータス情報を取得します。
●スタート/ストップ
44 UcntStartCount カウントを開始します。
45 UcntStopCount カウントを停止します。
46 UcntLatchCount カウンタをラッチします。
●汎用入出力
47 UcntSetDOEnable 汎用出力の許可設定を行います。
48 UcntGetDOEnable 汎用出力の許可設定情報を取得します。
49 UcntInputDI 汎用入力の状態を取得します。
50 UcntOutputDO 汎用出力を制御します。
●割り込み設定/取得
51 UcntSetEventMask イベントマスクを設定します。
52 UcntGetEventMask イベントマスクの設定情報を取得します。
53 UcntSetEvent イベントコールバック関数、メッセージを登録します。
54 UcntKillEvent イベントコールバック関数、メッセージを解除します。
●内部同期設定
55 UcntOutputSync 内部同期出力を制御します。
(PCI-632302 でのみ使用できます。)
●64bitOS 用
56 UcntSetPhysicalMemorysSize 内部バッファサイズを設定します。
57 UcntGetDriverInfo OS 情報と内部バッファサイズを取得します。
GPC-6320 Help for Windows
© 2004, 2014 Interface Corporation. All rights reserved.
15
4.2 関数個別説明(万能カウンタ)
1. UcntOpen 【機能】
万能カウンタのオープンを行い、以後のインタフェースモジュールへのアクセスを行えるよう
にします。
【書式】
●C言語(x86 専用)
HANDLE UcntOpen(
LPCTSTR lpszName // デバイス名
);
●C 言語(x64 専用)
HANDLE UcntOpen(
LPCSTR lpszName // デバイス名
);
●Visual Basic
Declare Function UcntOpen Lib "IFUcnt.DLL"(_
ByVal lpszName As String_ ‘ デバイス名
)As Long
●Delphi
function UcntOpen(
lpszName: String // デバイス名
):THandle; stdcall; external 'IFUcnt.DLL';
【パラメータ】
lpszName オープンするインタフェースモジュールのデバイス名を指定してください。
【戻り値】
UcntOpen 関数が正常に終了した場合には、有効なハンドルが返されます。
他の関数は、本関数により取得したハンドルを使用してデバイスの制御を行います。
オープンに失敗した場合には、INVALID_HANDLE_VALUE(FFFFFFFFh)が返されます。
【備考】
●デバイス名について
オープンするにはデバイス名を指定します。
万能カウンタのデバイス名は「IFUCNTx」(xは 1~256)となります。
各デバイス名はデバイスマネージャにて確認できます。
●UNICODE 文字列について
C 言語(x86 専用)で、UcntOpen の引数 Name に指定する文字列は LPCTSTR 型として定義していま
すが、UNICODE 文字列には対応しておりません。
x86 環境でご使用になる場合、使用例に沿って記述してください。
GPC-6320 Help for Windows
© 2004, 2014 Interface Corporation. All rights reserved.
16
【使用例】
●C言語(32bit 用コンパイラ)
HANDLE DeviceHandle;
DeviceHandle = UcntOpen(“IFUCNT1”);
●C 言語(32bit 用コンパイラで UNICODE を定義している場合)
HANDLE DeviceHandle;
DeviceHandle = UcntOpen((LPCTSTR)“IFUCNT1”);
HANDLE DeviceHandle;
char* lpszName = “IFUCNT1”;
DeviceHandle = UcntOpen((LPCTSTR)lpszName);
HANDLE DeviceHandle;
LPCWSTR UnicodeName = L"IFUCNT1";
char DeviceName[256];
int len;
len = WideCharToMultiByte(CP_ACP, 0, UnicodeName, -1, NULL, 0, NULL, NULL);
WideCharToMultiByte(CP_ACP, 0, UnicodeName, -1, DeviceName, len, NULL, NULL);
DeviceHandle = UcntOpen((LPCTSTR)DeviceName);
●C 言語(64bit 用コンパイラ)
HANDLE DeviceHandle;
DeviceHandle = UcntOpen(“IFUCNT1”);
●Visual Basic
Dim Name As String
Dim DeviceHandle As Long
Name = "IFUCNT1" & Chr( 0 )
DeviceHandle = UcntOpen(Name)
GPC-6320 Help for Windows
© 2004, 2014 Interface Corporation. All rights reserved.
17
●Delphi
var
Name: String;
DeviceHandle: THandle;
Name := IFUCNT1;
DeviceHandle := UcntOpen(Name);
デバイス名「IFUCNT1」のデバイスをオープンします。
GPC-6320 Help for Windows
© 2004, 2014 Interface Corporation. All rights reserved.
18
2. UcntClose 【機能】
万能カウンタをクローズします。
デバイスアクセスのために使用されていた各種リソースの解放を行い、以後のデバイスへのア
クセスを禁止します。
【書式】
●C言語
INT UcntClose(
HANDLE hDeviceHandle // デバイスハンドル
);
●Visual Basic
Declare Function UcntClose Lib "IFUcnt.DLL"(_
ByVal hDeviceHandle As Long_ ‘ デバイスハンドル
)As Long
●Delphi
function UcntClose (
hDeviceHandle: THandle // デバイスハンドル
): Integer; stdcall; external 'IFUcnt.DLL';
【パラメータ】
hDeviceHandle UcntOpen 関数で取得したデバイスハンドルを指定してください。
【戻り値】
正常終了した場合は、IFUCNT_ERROR_SUCCESSが返されます。
IFUCNT_ERROR_SUCCESS以外の値が返された場合については、『4.6 戻り値一覧』をご参照くだ
さい。
【備考】
再度、インタフェースモジュールへのアクセスを行う場合にはオープン処理(UcntOpen 関数)
を呼び出してください。
サンプリング中に本関数を実行した場合、サンプリング動作を停止します。
デバイスクローズ後、各種設定はクリアされます。
GPC-6320 Help for Windows
© 2004, 2014 Interface Corporation. All rights reserved.
19
【使用例】
●C言語
INT nRet;
HANDLE hDeviceHandle;
hDeviceHandle = UcntOpen(“IFUCNT1”); :
:
nRet = UcntClose(hDeviceHandle);
●Visual Basic
Dim lpszName As String
Dim hDeviceHandle As Long
lpszName = "IFUCNT1" & Chr( 0 )
hDeviceHandle = UcntOpen(lpszName)
:
:
nRet = UcntClose(hDeviceHandle)
●Delphi
var
lpszName: String;
hDeviceHandle: THandle;
lpszName := 'IFUCNT1';
hDeviceHandle := UcntOpen(lpszName);
:
:
nRet := UcntClose(hDeviceHandle);
デバイス名「IFUCNT1」のデバイスのクローズ処理を行います。
GPC-6320 Help for Windows
© 2004, 2014 Interface Corporation. All rights reserved.
20
3. UcntGetDeviceInfo 【機能】
万能カウンタのデバイス情報を取得します。
【書式】
●C言語
INT UcntGetDeviceInfo(
HANDLE hDeviceHandle, // デバイスハンドル
PUCNTDEVICEINFO pDeviceInfo // UCNTDEVICEINFO 構造体への
// ポインタ
);
●Visual Basic
Declare Function UcntGetDeviceInfo Lib "IFUcnt.DLL"(_
ByVal hDeviceHandle As Long,_ ‘ デバイスハンドル
ByRef pDeviceInfo As UCNTDEVICEINFO_ ‘ UCNTDEVICEINFO 構造体への
‘ 参照渡し
)As Long
●Delphi
function UcntGetDeviceInfo (
hDeviceHandle: THandle; // デバイスハンドル
var pDeviceInfo: UCNTDEVICEINFO // UCNTDEVICEINFO 構造体への
// 参照渡し
): Integer; stdcall; external 'IFUcnt.DLL';
【パラメータ】
hDeviceHandle UcntOpen 関数で取得したデバイスハンドルを指定してください。
pDeviceInfo 取得したデバイス情報を格納する UCNTDEVICEINFO 構造体へのポインタを指定してくださ
い。
構造体の説明については、『4.5 構造体』をご参照ください。
【戻り値】
正常終了した場合は、IFUCNT_ERROR_SUCCESSが返されます。
IFUCNT_ERROR_SUCCESS以外の値が返された場合については、『4.6 戻り値一覧』をご参照くだ
さい。
GPC-6320 Help for Windows
© 2004, 2014 Interface Corporation. All rights reserved.
21
【使用例】
●C言語
INT nRet;
HANDLE hDeviceHandle;
UCNTDEVICEINFO DeviceInfo;
hDeviceHandle = UcntOpen(“IFUCNT1”); :
:
nRet = UcntGetDeviceInfo(hDeviceHandle, &DeviceInfo);
●Visual Basic
Dim lpszName As String
Dim hDeviceHandle As Long
Dim DeviceInfo As UCNTDEVICEINFO
lpszName = "IFUCNT1" & Chr( 0 )
hDeviceHandle = UcntOpen(lpszName)
:
:
nRet = UcntGetDeviceInfo(hDeviceHandle, DeviceInfo)
●Delphi
var
lpszName: String;
hDeviceHandle: THandle;
DeviceInfo: UCNTDEVICEINFO;
lpszName := 'IFUCNT1';
hDeviceHandle := UcntOpen(lpszName);
:
:
nRet := UcntGetDeviceInfo(hDeviceHandle, DeviceInfo);
デバイス名「IFUCNT1」のデバイスのデバイス情報を取得します。
GPC-6320 Help for Windows
© 2004, 2014 Interface Corporation. All rights reserved.
22
4. UcntReset 【機能】
各種設定の初期化、カウンタのクリアを行います。
【書式】
●C言語
INT UcntReset(
HANDLE hDeviceHandle, // デバイスハンドル
DWORD dwChSel, // チャンネル選択
DWORD dwMode // リセット項目
);
●Visual Basic
Declare Function UcntReset Lib "IFUcnt.DLL"(_
ByVal hDeviceHandle As Long,_ ‘ デバイスハンドル
ByVal dwChSel As Long,_ ‘ チャンネル選択
ByVal dwMode As Long_ ‘ リセット項目
)As Long
●Delphi
function UcntReset(
hDeviceHandle: THandle; // デバイスハンドル
dwChSel: Dword; // チャンネル選択
dwMode: Dword // リセット項目
): Integer; stdcall; external 'IFUcnt.DLL';
【パラメータ】
hDeviceHandle UcntOpen 関数で取得したデバイスハンドルを指定してください。
dwChSel 各種設定の初期化、カウンタのクリアを行うチャンネルを指定してください。
ビット bit31~4 bit3 bit2 bit1 bit0
内容 予約 CH4 CH3 CH2 CH1
該当するビットに“1”を指定してチャンネル指定を行います。
複数チャンネルの指定が可能です。
例)CH1~CH4 の 4 チャンネル:Fh を指定
GPC-6320 Help for Windows
© 2004, 2014 Interface Corporation. All rights reserved.
23
dwMode リセット項目を指定してください。
識別子 意味
IFUCNT_RESET_DEVICE 動作設定リセット
指定チャンネルの動作設定がリセットされデフォルト値
に設定されます。
サンプリング中の場合はサンプリングを停止します。
IFUCNT_RESET_COUNTER カウンタクリア
カウンタ、ラッチカウンタ、カウンタ FIFO、ステータス
をクリアします。
該当する識別子を指定してリセットを行います。
動作設定リセットとカウンタクリアを同時に実行する場合には、それぞれの識別子を OR
で指定します。
【戻り値】
正常終了した場合は、IFUCNT_ERROR_SUCCESSが返されます。
IFUCNT_ERROR_SUCCESS以外の値が返された場合については、『4.6 戻り値一覧』をご参照くだ
さい。
【使用例】
●C言語
INT nRet;
HANDLE hDeviceHandle;
hDeviceHandle = UcntOpen(“IFUCNT1”); :
:
nRet = UcntReset(hDeviceHandle, 0x01, IFUCNT_RESET_DEVICE | IFUCNT_RESET_COUNTER);
●Visual Basic
Dim lpszName As String
Dim hDeviceHandle As Long
lpszName = "IFUCNT1" & Chr( 0 )
hDeviceHandle = UcntOpen(lpszName)
:
:
nRet = UcntReset(hDeviceHandle, &H01, IFUCNT_RESET_DEVICE or IFUCNT_RESET_COUNTER)
GPC-6320 Help for Windows
© 2004, 2014 Interface Corporation. All rights reserved.
24
●Delphi
var
lpszName: String;
hDeviceHandle: THandle;
lpszName := 'IFUCNT1';
hDeviceHandle := UcntOpen(lpszName);
:
:
nRet := UcntReset(hDeviceHandle, $01, IFUCNT_RESET_DEVICE | IFUCNT_RESET_COUNTER);
デバイス名「IFUCNT1」のデバイスのチャンネル 1の初期化とカウンタリセットを行います。
GPC-6320 Help for Windows
© 2004, 2014 Interface Corporation. All rights reserved.
25
5. UcntSetPulseCountMode 【機能】
パルスカウントモードに設定します。
【書式】
●C言語
INT UcntSetPulseCountMode(
HANDLE hDeviceHandle, // デバイスハンドル
INT nChannel, // チャンネル選択
DWORD dwCountMode, // カウントモード
DWORD dwLoadMode, // プリロードモード
DWORD dwLatchMode // ラッチモード
);
●Visual Basic
Declare Function UcntSetPulseCountMode Lib "IFUcnt.DLL"(_
ByVal hDeviceHandle As Long,_ ‘ デバイスハンドル
ByVal nChannel As Long,_ ‘ チャンネル選択
ByVal dwCountMode As Long,_ ‘ カウントモード
ByVal dwLoadMode As Long,_ ‘ プリロードモード
ByVal dwLatchMode As Long_ ‘ ラッチモード
)As Long
●Delphi
function UcntSetPulseCountMode(
hDeviceHandle: THandle; // デバイスハンドル
nChannel: Integer; // チャンネル選択
dwCountMode: Dword; // カウントモード
dwLoardMode: Dword; // プリロードモード
dwLatchMode: Dword // ラッチモード
): Integer; stdcall; external 'IFUcnt.DLL';
【パラメータ】
hDeviceHandle UcntOpen 関数で取得したインタフェースモジュールのデバイスハンドルを指定してくだ
さい。
nChannel 設定を行うチャンネルを指定してください。
GPC-6320 Help for Windows
© 2004, 2014 Interface Corporation. All rights reserved.
26
dwCountMode パルスカウントのモードとカウント方向の識別子を論理和で指定してください。
カウント方向を省略した場合には、デフォルトで通常方向が選択されます。
カウントモード
識別子 カウントモード
IFUCNT_COUNT_P_DIR_1 方向付き単相パルスカウントモード 1 逓倍
IFUCNT_COUNT_P_DIR_2 方向付き単相パルスカウントモード 2 逓倍
IFUCNT_COUNT_U_D_1 UP/DOWN パルスカウントモード 1 逓倍
IFUCNT_COUNT_PHASE_1 位相差パルスカウントモード 1 逓倍
IFUCNT_COUNT_PHASE_2 位相差パルスカウントモード 2 逓倍
IFUCNT_COUNT_PHASE_4 位相差パルスカウントモード 4 逓倍
IFUCNT_COUNT_INTERNAL_CLOCK 内部基準クロックカウントモード
カウント方向
識別子 内容
IFUCNT_DIR_NORMAL 通常方向(カウントアップ)
IFUCNT_DIR_REVERS リバース方向(カウントダウン)
dwLoadMode プリロードモード設定値を指定してください。
ビット bit31~6 bit5 bit4 bit3 bit2 bit1 bit0
内容 予約 CLC1 CLC0 L1P ZP CLS1 CLS0
CLS1,CLS0:カウンタ外部ロード(クリア)条件を指定します。
CLS1 CLS0 内容
0 0 外部ロード無効
0 1 Z 相有効時
1 0 LA と Z 相が共に有効時
1 1 設定禁止
ZP:Z 相の論理を指定します。
ZP 内容
0 Z 相通常(立ち上がり、“High”で有効)
1 Z 相反転(立ち下がり、“Low”で有効)
GPC-6320 Help for Windows
© 2004, 2014 Interface Corporation. All rights reserved.
27
LAP:LA の極性を指定します。
LA 内容
0 LA 相通常(立ち下がり、“Low”で有効)
1 LA 相反転(立ち上がり、“High”で有効)
CLC1,CLC0:外部ロード(クリア)モードを指定します。
CLC1 CLC0 内容
0 0 非同期エッジ
0 1 同期エッジ
1 0 非同期レベル
1 1 設定禁止
dwLatchMode ラッチモード設定値を指定してください。
ビット bit31~16
内容 予約
ビット bit15 bit14 bit13~bit12 bit11 bit10 bit9~bit8
内容 SYNC2 SYNC1 予約 C/B PEAK 予約
ビット bit7 bit6 bit5 bit4 bit3 bit2 bit1 bit0
内容 CKL
LOAD
EXL
LOAD
予約 CKL LBF
LT
LBR
LT
LAF
LT
LAR
LT
※ SYNC1, SYNC2 は PCI-632302 のみ設定できます。
※ PEAK, C/B は PCI-632304 のみ設定できます。
LARLT:LA 立ち上がりでのラッチ設定を指定します。
LAFLT:LA 立ち下がりでのラッチ設定を指定します。
LBRLT:LB 立ち上がりでのラッチ設定を指定します。
LBFLT:LB 立ち下がりでのラッチ設定を指定します。
LBFLT、LBRLT、LAFLT、LARLT 内容
0 無効
1 有効
CKL:内部基準クロックによるラッチ設定を指定します。
CKL 内容
0 無効
1 有効
EXLLOAD:外部ラッチ後のカウンタロード設定を指定します。
EXLLOAD 内容
0 ロードしない
1 ロードする
GPC-6320 Help for Windows
© 2004, 2014 Interface Corporation. All rights reserved.
28
CKLLOAD:内部基準クロックラッチ後のカウンタロード設定を指定します。
CKLLOAD 内容
0 ロードしない
1 ロードする
PEAK:ピークホールド(カウンタの回転方向が変わったとき)でのラッチ設定を指定します。
※PCI-632304 のみ設定できます。
PEAK 内容
0 無効
1 有効
C/B:キャリー/ボロー発生によるラッチ設定を指定します。
※PCI-632304 のみ設定できます。
C/B 内容
0 無効
1 有効
SYNC1:内部同期ライン 1によるラッチ設定を指定します。
※PCI-632302 のみ設定できます。
SYNC1 内容
0 無効
1 有効
SYNC2:内部同期ライン 2によるラッチ設定を指定します。
※PCI-632302 のみ設定できます。
SYNC2 内容
0 無効
1 有効
【戻り値】
正常終了した場合は、IFUCNT_ERROR_SUCCESSが返されます。
IFUCNT_ERROR_SUCCESS以外の値が返された場合については、『4.6 戻り値一覧』をご参照くだ
さい。
GPC-6320 Help for Windows
© 2004, 2014 Interface Corporation. All rights reserved.
29
【備考】
●パルスカウントモードの概要について
パルスカウントモードでは、各チャンネルのA・B相からの外部パルスと、内部基準クロック
(UcntSetBaseClock関数で設定)のカウントを行います。
外部ロード機能はZ相またはZ相+LAの入力タイミングで、プリロードデータをカウンタにロ
ードします。プリロードデータを 0(初期値)に設定している場合にはクリア動作となります。
プリロードデータの設定は UcntSetLoadData関数で行います。
また、LA、LB による外部ラッチや、内部基準クロックによる一定周期ラッチの設定を行うこと
が可能です。
<パルスカウントモードのタイミングチャート>
比較レジスタ A(200)
カウント値
スタート/ストップ
0リードレジスタ
FIFO
OUTA カウンタ=200
OUTB 200≦カウンタ≦500
スタート
Z
LA
LB
外部ロード(クリア)
外部ラッチストップ
350
350
比較レジスタ B(500)
A
B
UP/DOWN パルス
A
B
方向付き単相パルス
A
B
位相差パルス
外部パルス
一致出力
一致出力
GPC-6320 Help for Windows
© 2004, 2014 Interface Corporation. All rights reserved.
30
【使用例】
●C言語
INT nRet;
HANDLE hDeviceHandle;
hDeviceHandle = UcntOpen(“IFUCNT1”); :
:
nRet = UcntSetPulseCountMode(hDeviceHandle, 1, IFUCNT_COUNT_PHASE_4, 0x01, 0x00);
●Visual Basic
Dim lpszName As String
Dim hDeviceHandle As Long
lpszName = "IFUCNT1" & Chr( 0 )
hDeviceHandle = UcntOpen(lpszName)
:
:
nRet = UcntSetPulseCountMode(hDeviceHandle, 1, IFUCNT_COUNT_PHASE_4, &H01, &H00)
●Delphi
var
lpszName: String;
hDeviceHandle: THandle;
lpszName := 'IFUCNT1';
hDeviceHandle := UcntOpen(lpszName);
:
:
nRet := UcntSetPulseCountMode(hDeviceHandle, 1, IFUCNT_COUNT_PHASE_4, $01, $00);
デバイス名「IFUCNT1」のデバイスのチャンネル 1 をパルスカウントモード(位相差パルスカ
ウントモード 4逓倍、Z相立ち上がりエッジ入力によるカウンタクリア(ロード)、外部ラッチ
なし)に設定します。
GPC-6320 Help for Windows
© 2004, 2014 Interface Corporation. All rights reserved.
31
6. UcntGetPulseCountMode 【機能】
パルスカウントモードの設定情報を取得します。
【書式】
●C言語
INT UcntGetPulseCountMode(
HANDLE hDeviceHandle, // デバイスハンドル
INT nChannel, // チャンネル選択
PDWORD pdwCountMode, // カウントモード取得変数
// へのポインタ
PDWORD pdwLoadMode, // プリロードモード取得変数
// へのポインタ
PDWORD pdwLatchMode // ラッチモード取得変数
// へのポインタ
);
●Visual Basic
Declare Function UcntGetPulseCountMode Lib "IFUcnt.DLL"(_
ByVal hDeviceHandle As Long,_ ‘ デバイスハンドル
ByVal nChannel As Long,_ ‘ チャンネル選択
ByRef pdwCountMode As Long,_ ‘ カウントモード取得変数
‘ への参照渡し
ByRef pdwLoadMode As Long,_ ‘ プリロードモード取得変数
‘ への参照渡し
ByRef pdwLatchMode As Long_ ‘ ラッチモード取得変数
‘ への参照渡し
)As Long
●Delphi
function UcntGetPulseCountMode(
hDeviceHandle: THandle; // デバイスハンドル
nChannel: Integer; // チャンネル選択
var pdwCountMode: Dword; // カウントモード取得変数
// への参照渡し
var pdwLoadMode: Dword; // プリロードモード取得変数
// への参照渡し
var pdwLatchMode: Dword // ラッチモード取得変数
// への参照渡し
): Integer; stdcall; external 'IFUcnt.DLL';
GPC-6320 Help for Windows
© 2004, 2014 Interface Corporation. All rights reserved.
32
【パラメータ】
hDeviceHandle UcntOpen 関数で取得したインタフェースモジュールのデバイスハンドルを指定してくだ
さい。
nChannel 設定情報を取得するチャンネルを指定してください。
pdwCountMode カウントモード設定値を格納する変数へのポインタを指定してください。
格納される値の詳細については下記の様になります。
変数にはカウントモードとカウント方向の識別子が論理和で指定されます。
カウントモード
識別子 カウントモード
IFUCNT_COUNT_P_DIR_1 方向付き単相パルスカウントモード 1 逓倍
IFUCNT_COUNT_P_DIR_2 方向付き単相パルスカウントモード 2 逓倍
IFUCNT_COUNT_U_D_1 UP/DOWN パルスカウントモード 1 逓倍
IFUCNT_COUNT_PHASE_1 位相差パルスカウントモード 1 逓倍
IFUCNT_COUNT_PHASE_2 位相差パルスカウントモード 2 逓倍
IFUCNT_COUNT_PHASE_4 位相差パルスカウントモード 4 逓倍
IFUCNT_COUNT_INTERNAL_CLOCK 内部基準クロックカウントモード
カウント方向
識別子 内容
IFUCNT_DIR_NORMAL 通常方向(カウントアップ)
IFUCNT_DIR_REVERS リバース方向(カウントダウン)
pdwLoadMode プリロードモード設定値を格納する変数へのポインタを指定してください。
格納される値の詳細については下記の様になります。
ビット bit31~6 bit5 bit4 bit3 bit2 bit1 bit0
内容 予約 CLC1 CLC0 L1P ZP CLS1 CLS0
CLS1,CLS0:カウンタ外部ロード(クリア)条件を取得します。
CLS1 CLS0 内容
0 0 外部ロード無効
0 1 Z 相有効時
1 0 LA と Z 相が有効時
1 1 設定禁止
GPC-6320 Help for Windows
© 2004, 2014 Interface Corporation. All rights reserved.
33
ZP:Z 相の論理を取得します。
ZP 内容
0 Z 相通常(立ち上がり、“High”で有効)
1 Z 相反転(立ち下がり、“Low”で有効)
LAP:LA の極性を取得します。
LA 内容
0 LA 相通常(立ち下がり、“Low”で有効)
1 LA 相反転(立ち上がり、“High”で有効)
CLC1,CLC0:外部ロード(クリア)モードを取得します。
CLC1 CLC0 内容
0 0 非同期エッジ
0 1 同期エッジ
1 0 非同期レベル
1 1 設定禁止
pdwLatchMode ラッチモード設定値を格納する変数へのポインタを指定してください。
格納される値の詳細については下記の様になります。
ビット bit31~16
内容 予約
ビット bit15 bit14 bit13~bit12 bit11 bit10 bit9~bit8
内容 SYNC2 SYNC1 予約 C/B PEAK 予約
ビット bit7 bit6 bit5 bit4 bit3 bit2 bit1 bit0
内容 CKL
LOAD
EXL
LOAD
予約 CKL LBF
LT
LBR
LT
LAF
LT
LAR
LT
LARLT:LA 立ち上がりでのラッチ設定を取得します。
LAFLT:LA 立ち下がりでのラッチ設定を取得します。
LBRLT:LB 立ち上がりでのラッチ設定を取得します。
LBFLT:LB 立ち下がりでのラッチ設定を取得します。
LBFLT、LBRLT、LAFLT、LARLT 内容
0 無効
1 有効
CKL:内部基準クロックによるラッチ設定を取得します。
CKL 内容
0 無効
1 有効
GPC-6320 Help for Windows
© 2004, 2014 Interface Corporation. All rights reserved.
34
EXLLOAD:外部ラッチ後のカウンタロード設定を取得します。
EXLLOAD 内容
0 ロードしない
1 ロードする
CKLLOAD:内部基準クロックラッチ後のカウンタロード設定を取得します。
CKLLOAD 内容
0 ロードしない
1 ロードする
PEAK:ピークホールド(カウンタの回転方向が変わったとき)でのラッチ設定を取得します。
PEAK 内容
0 無効
1 有効
C/B:キャリー/ボロー発生によるラッチ設定を取得します。
C/B 内容
0 無効
1 有効
SYNC1:内部同期ライン 1によるラッチ設定を取得します。
SYNC1 内容
0 無効
1 有効
SYNC2:内部同期ライン 2によるラッチ設定を取得します。
SYNC2 内容
0 無効
1 有効
【戻り値】
正常終了した場合は、IFUCNT_ERROR_SUCCESSが返されます。
IFUCNT_ERROR_SUCCESS以外の値が返された場合については、『4.6 戻り値一覧』をご参照くだ
さい。
GPC-6320 Help for Windows
© 2004, 2014 Interface Corporation. All rights reserved.
35
【使用例】
●C言語
INT nRet;
HANDLE hDeviceHandle;
DWORD dwCountMode;
DWORD dwLoadMode;
DWORD dwLatchMode;
hDeviceHandle = UcntOpen(“IFUCNT1”); :
:
nRet = UcntGetPulseCountMode(hDeviceHandle, 2, &dwCountMode, &dwLoadMode,
&dwLatchMode);
●Visual Basic
Dim lpszName As String
Dim hDeviceHandle As Long
Dim dwCountMode As Long
Dim dwLoadMode As Long
Dim dwLatchMode As Long
lpszName = "IFUCNT1" & Chr( 0 )
hDeviceHandle = UcntOpen(lpszName)
:
:
nRet = UcntGetPulseCountMode(hDeviceHandle, 2, dwCountMode, dwLoadMode, _
dwLatchMode)
●Delphi
var
lpszName: String;
hDeviceHandle: THandle;
dwCountMode: Dword;
dwLoadMode: Dword;
dwLatchMode: Dword;
lpszName := 'IFUCNT1';
hDeviceHandle := UcntOpen(lpszName);
:
:
nRet := UcntGetPulseCountMode(hDeviceHandle, 1, dwCountMode, dwLoadMode,
dwLatchMode);
デバイス名「IFUCNT1」のデバイスのチャンネル 2 のパルスカウントモード設定情報を取得し
ます。
GPC-6320 Help for Windows
© 2004, 2014 Interface Corporation. All rights reserved.
36
7. UcntSetFreqAvgMode 【機能】
平均周波数測定モードに設定します。
【書式】
●C言語
INT UcntSetFreqAvgMode(
HANDLE hDeviceHandle, // デバイスハンドル
INT nChannel, // チャンネル選択
DWORD dwCountMode, // カウントモード
DWORD dwClock // 基準クロック
);
●Visual Basic
Declare Function UcntSetFreqAvgMode Lib "IFUcnt.DLL"(_
ByVal hDeviceHandle As Long,_ ‘ デバイスハンドル
ByVal nChannel As Long,_ ‘ チャンネル選択
ByVal dwCountMode As Long,_ ‘ カウントモード
ByVal dwClock As Long_ ‘ 基準クロック
)As Long
●Delphi
function UcntSetFreqAvgMode(
hDeviceHandle: THandle; // デバイスハンドル
nChannel: Integer; // チャンネル選択
dwCountMode: Dword; // カウントモード
dwClock: Dword // 基準クロック
): Integer; stdcall; external 'IFUcnt.DLL';
【パラメータ】
hDeviceHandle UcntOpen 関数で取得したデバイスのデバイスハンドルを指定してください。
nChannel 設定を行うチャンネルを指定してください。
GPC-6320 Help for Windows
© 2004, 2014 Interface Corporation. All rights reserved.
37
dwCountMode パルスカウントのモードとカウント方向の識別子を論理和で指定してください。
カウント方向を省略した場合には、デフォルトで通常方向が選択されます。
カウントモード
識別子 カウントモード
IFUCNT_COUNT_P_DIR_1 方向付き単相パルスカウントモード 1 逓倍
IFUCNT_COUNT_P_DIR_2 方向付き単相パルスカウントモード 2 逓倍
IFUCNT_COUNT_U_D_1 UP/DOWN パルスカウントモード 1 逓倍
IFUCNT_COUNT_PHASE_1 位相差パルスカウントモード 1 逓倍
IFUCNT_COUNT_PHASE_2 位相差パルスカウントモード 2 逓倍
IFUCNT_COUNT_PHASE_4 位相差パルスカウントモード 4 逓倍
カウント方向
識別子 内容
IFUCNT_DIR_NORMAL 通常方向(カウントアップ)
IFUCNT_DIR_REVERS リバース方向(カウントダウン)
dwClock 基準クロック設定値を指定してください。
設定範囲:0 ~ 16,777,215(FFFFFFh)
dwClock 基準クロック周期
0 停止
1 100 [ns]
・
・
・
・
・
・
16,777,215 1.6777215 [s]
GPC-6320 Help for Windows
© 2004, 2014 Interface Corporation. All rights reserved.
38
【戻り値】
正常終了した場合は、IFUCNT_ERROR_SUCCESSが返されます。
IFUCNT_ERROR_SUCCESS以外の値が返された場合については、『4.6 戻り値一覧』をご参照くだ
さい。
【備考】
●平均周波数測定モードの概要について
平均周波数測定モードでは A・B相からの入力されたパルスの平均周波数をカウントします。
具体的な測定方法としては、dwClock で指定した内部基準クロック周期のタイミングでカウン
タラッチ(&クリア)を行うことで、一定時間内に入力されたパルスをカウントして平均周波
数を取得します。
ラッチ時のデータが一周期分のデータとなるため、カウンタ値の取得には
UcntReadLatchCounter関数を使用してください。(UcntReadCounter関数では測定途中のカウ
ント値を取得してしまう為、無意味なデータを取得する可能性があります。)
また、 終的な平均周波数[Hz]は下記の式で算出します。
平均周波数[Hz] = カウントクロック数 / 基準クロック周期
基準クロック周期に 1[s]を指定した場合には、UcntReadLatchCounter関数にて取得したカウン
ト値がそのまま周波数となります。(基準クロックは 100[ns]単位で設定可能です。)
カウントスタート時(UcntStartCount関数)はソフトスタート(IFUCNT_CMD_START)を指定し
てください。
<平均周波数測定モードのタイミングチャート>
カウント値
内部基準クロック
クリア
0 400 500 600リードレジスタ
FIFO
OUTA
OUTB
600
400
500
ソフトスタート
ラッチ
クリア
ラッチ
クリア
ラッチ
LA
スタート
A
B
UP/DOWN パルス
A
B
方向付き単相パルス
A
B
位相差パルス
外部パルス
比較レジスタ A(550)比較レジスタ B(650)
GPC-6320 Help for Windows
© 2004, 2014 Interface Corporation. All rights reserved.
39
【使用例】
●C言語
INT nRet;
HANDLE hDeviceHandle;
hDeviceHandle = UcntOpen(“IFUCNT1”); :
:
nRet = UcntSetFreqAvgMode(hDeviceHandle, 1, IFUCNT_COUNT_P_DIR_1, 100000);
●Visual Basic
Dim lpszName As String
Dim hDeviceHandle As Long
lpszName = "IFUCNT1" & Chr( 0 )
hDeviceHandle = UcntOpen(lpszName)
:
:
nRet = UcntSetFreqAvgMode(hDeviceHandle, 1, IFUCNT_COUNT_P_DIR_1, 100000)
●Delphi
var
lpszName: String;
hDeviceHandle: THandle;
lpszName := 'IFUCNT1';
hDeviceHandle := UcntOpen(lpszName);
:
:
nRet := UcntSetFreqAvgMode(hDeviceHandle, 1, IFUCNT_COUNT_P_DIR_1, 100000);
デバイス名「IFUCNT1」のデバイスのチャンネル 1 を平均周波数測定モード(方向付き単層パ
ルスカウントモード 1逓倍、基準クロック 10[ms])に設定します。
GPC-6320 Help for Windows
© 2004, 2014 Interface Corporation. All rights reserved.
40
8. UcntGetFreqAvgMode 【機能】
平均周波数測定モードの設定情報を取得します。
【書式】
●C言語
INT UcntGetFreqAvgMode(
HANDLE hDeviceHandle, // デバイスハンドル
INT nChannel, // チャンネル選択
PDWORD pdwCountMode, // カウントモード取得変数
// へのポインタ
PDWORD pdwClock // 基準クロック取得変数
// へのポインタ
);
●Visual Basic
Declare Function UcntGetFreqAvgMode Lib "IFUcnt.DLL"(_
ByVal hDeviceHandle As Long,_ ‘ デバイスハンドル
ByVal nChannel As Long,_ ‘ チャンネル選択
ByRef pdwCountMode As Long,_ ‘ カウントモード取得変数
‘ への参照渡し
ByRef pdwClock As Long_ ‘ 基準クロック取得変数
‘ への参照渡し
)As Long
●Delphi
function UcntGetFreqAvgMode(
hDeviceHandle: THandle; // デバイスハンドル
nChannel: Integer; // チャンネル選択
var pdwCountMode: Dword; // カウントモード取得変数
// への参照渡し
var pdwClock: Dword // 基準クロック取得変数
// への参照渡し
): Integer; stdcall; external 'IFUcnt.DLL';
【パラメータ】
hDeviceHandle UcntOpen 関数で取得したインタフェースモジュールのデバイスハンドルを指定してくだ
さい。
nChannel 取得を行うチャンネルを指定してください。
GPC-6320 Help for Windows
© 2004, 2014 Interface Corporation. All rights reserved.
41
pdwCountMode カウントモード設定値を格納する変数へのポインタを指定してください。
格納される値の詳細については下記の様になります。
変数にはカウントモードとカウント方向の識別子が論理和で指定されます。
カウントモード
識別子 カウントモード
IFUCNT_COUNT_P_DIR_1 方向付き単相パルスカウントモード 1 逓倍
IFUCNT_COUNT_P_DIR_2 方向付き単相パルスカウントモード 2 逓倍
IFUCNT_COUNT_U_D_1 UP/DOWN パルスカウントモード 1 逓倍
IFUCNT_COUNT_PHASE_1 位相差パルスカウントモード 1 逓倍
IFUCNT_COUNT_PHASE_2 位相差パルスカウントモード 2 逓倍
IFUCNT_COUNT_PHASE_4 位相差パルスカウントモード 4 逓倍
カウント方向
識別子 内容
IFUCNT_DIR_NORMAL 通常方向(カウントアップ)
IFUCNT_DIR_REVERS リバース方向(カウントダウン)
pdwClock 基準クロック設定値を格納する変数へのポインタを指定してください。
格納される値の詳細については下記の様になります。
設定範囲:0 ~ 16,777,215(FFFFFFh)
dwClock 基準クロック周期
0 停止
1 100 [ns]
・
・
・
・
・
・
16,777,215 1.6777215 [s]
GPC-6320 Help for Windows
© 2004, 2014 Interface Corporation. All rights reserved.
42
【戻り値】
正常終了した場合は、IFUCNT_ERROR_SUCCESSが返されます。
IFUCNT_ERROR_SUCCESS以外の値が返された場合については、『4.6 戻り値一覧』をご参照くだ
さい。
【使用例】
●C言語
INT nRet;
HANDLE hDeviceHandle;
DWORD dwCountMode;
DWORD dwClock;
hDeviceHandle = UcntOpen(“IFUCNT1”); :
:
nRet = UcntGetFreqAvgMode(hDeviceHandle, 1, &dwCountMode, &dwClock);
●Visual Basic
Dim lpszName As String
Dim hDeviceHandle As Long
Dim dwCountMode As Long
Dim dwClock As Long
lpszName = "IFUCNT1" & Chr( 0 )
hDeviceHandle = UcntOpen(lpszName)
:
:
nRet = UcntGetFreqAvgMode(hDeviceHandle, 1, dwCountMode, dwClock)
●Delphi
var
lpszName: String;
hDeviceHandle: THandle;
dwCountMode: Dword;
dwClock: Dword;
lpszName := 'IFUCNT1';
hDeviceHandle := UcntOpen(lpszName);
:
:
nRet := UcntGetFreqAvgMode(hDeviceHandle, 1, dwCountMode, dwClock);
デバイス名「IFUCNT1」のデバイスのチャンネル 1 の平均周波数測定モード設定情報を取得し
ます。
GPC-6320 Help for Windows
© 2004, 2014 Interface Corporation. All rights reserved.
43
9. UcntSetCycleMode 【機能】
周期測定モードに設定します。
【書式】
●C言語
INT UcntSetCycleMode(
HANDLE hDeviceHandle, // デバイスハンドル
INT nChannel, // チャンネル選択
DWORD dwCountType, // 周期測定タイプ
DWORD dwClock // 基準クロック
);
●Visual Basic
Declare Function UcntSetCycleMode Lib "IFUcnt.DLL"(_
ByVal hDeviceHandle As Long,_ ‘ デバイスハンドル
ByVal nChannel As Long,_ ‘ チャンネル選択
ByVal dwCountType As Long,_ ‘ 周期測定タイプ
ByVal dwClock As Long_ ‘ 基準クロック
)As Long
●Delphi
function UcntSetCycleMode(
hDeviceHandle: THandle; // デバイスハンドル
nChannel: Integer; // チャンネル選択
dwCountType: Dword; // 周期測定タイプ
dwClock: Dword // 基準クロック
): Integer; stdcall; external 'IFUcnt.DLL';
【パラメータ】
hDeviceHandle UcntOpen 関数で取得したインタフェースモジュールのデバイスハンドルを指定してくだ
さい。
nChannel 設定を行うチャンネルを指定してください。
dwCountType 周期測定タイプを指定してください。
識別子 内容
IFUCNT_CYCLE_NORMAL パルス周期を測定します
IFUCNT_CYCLE_HIGH High パルス幅を測定します
IFUCNT_CYCLE_LOW Low パルス幅を測定します
IFUCNT_CYCLE_HIGH_LOW High、Low パルス幅を測定します
GPC-6320 Help for Windows
© 2004, 2014 Interface Corporation. All rights reserved.
44
dwClock 基準クロック設定値を指定してください。
設定範囲:0 ~ 16,777,215(FFFFFFh)
dwClock 基準クロック周期
0 停止
1 100 [ns]
・
・
・
・
・
・
16,777,215 1.6777215 [s]
【戻り値】
正常終了した場合は、IFUCNT_ERROR_SUCCESSが返されます。
IFUCNT_ERROR_SUCCESS以外の値が返された場合については、『4.6 戻り値一覧』をご参照くだ
さい。
【備考】
●周期測定モードの概要について
周期測定モードでは、測定対象のパルスは LA から入力して周期測定を行います。
具体的な測定方法としては、内部基準クロックによるカウントを LA 信号の立ち上がりタイミ
ングでラッチ(&クリア)することで、LA からの入力パルスの幅をラッチカウンタから取得し
ます。
dwClock で指定した内部クロックのカウント値が測定周期となる為、内部クロック周期の設定
が短いほど周期測定の精度が良くなります。(クロック周期を短くすると、測定可能な 大周
期は短くなります。)
ラッチ時のデータが一周期分のデータとなるため、カウンタ値の取得には
UcntReadLatchCounter関数を使用してください。(UcntReadCounter関数では測定途中のカウ
ント値を取得してしまう為、無意味なデータを取得する可能性があります。)
終的なパルス周期は下記の式で算出します。
周期[s] = カウントクロック数 × 基準クロック
カウントスタート時(UcntStartCount関数)は外部スタートウェイト(トリガ待ち)
(IFUCNT_CMD_EXWAIT)を指定してください。
スタート関数の実行後、 初の入力パルス(LA)の立ち上がりでカウントを開始します。
GPC-6320 Help for Windows
© 2004, 2014 Interface Corporation. All rights reserved.
45
<周期数測定のタイミングチャート>
比較レジスタ A(550)
カウント値
LA
0 500 500 600リードレジスタ
FIFO
OUTA
基準クロック
OUTB
600500
スタート
クリア
ラッチ
クリア
ラッチ
クリア
ラッチ
比較レジスタ B(650)
周期測定モードでは、LA 信号の立ち上がりから次の立ち上がりまでの間にカウントした基準ク
ロックのカウント値をラッチします。
<High パルス幅測定(Low パルス幅測定)のタイミングチャート>
比較レジスタ A(450)
カウント値
LA
0 400 500リードレジスタ
FIFO
OUTA
基準クロック
OUTB
500
400
スタート ストップ スタート ストップ
クリア
ラッチ
クリア
ラッチ
比較レジスタ B(600)
High パルス幅測定モードでは、LA 信号の立ち上がりから立ち下がりまでの間にカウントした
基準クロックのカウント値をラッチします。
Low パルス幅測定モードでは、LA 信号の立ち下がりから立ち上がりまでの間にカウントした基
準クロックのカウント値をラッチします。
GPC-6320 Help for Windows
© 2004, 2014 Interface Corporation. All rights reserved.
46
<デューティ比測定(High/Low パルス幅測定)のタイミングチャート>
比較レジスタ A(550)
カウント値
LA
0 400 600 500リードレジスタ
FIFO
OUTA
基準クロック
OUTB
600
400
スタート
クリア
ラッチ
クリア
ラッチ
クリア
ラッチ
比較レジスタ B(650)
デューティ比測定モード(High/Low パルス幅測定モード)では、LA 信号の全ての立ち上がり
と立ち下がりのエッジでカウント値をラッチ(&クリア)します。
これにより、ラッチカウンタには High パルス幅と Low パルス幅の値が交互にラッチされる状
態となります。両方のパルス幅の比率からデューティ比を測定することが可能となります。
測定したラッチカウント値がHighパルスとLowパルスのどちらを示しているかを確認する為
に、UcntGetStatus関数を使用してカウントラッチ時のステータス状態を確認する必要があり
ます。
ステータス情報から、ラッチタイミングの直前・直後の LA 信号の状態が確認できる為、
・LABEF(ラッチ直前):Low
・LAAFT(ラッチ直後):High
の場合には、LA の立ち上がりによってラッチが発生したことを示し、ラッチカウント値は Low
パルスの幅となります。
・LABEF(ラッチ直前):High
・LAAFT(ラッチ直後):Low
逆の場合には、LA の立ち下がりによってラッチが発生した事を示す為、High パルス幅となり
ます。
LABEF、LAAFT の値が変化していない場合には、LA 信号以外の要因でラッチが発生した事を示
します。(High/Low パルス幅の測定中には、無効なカウント値となります。)
また、サンプリングの設定(UcntSetSamplingConfig関数)を行う際に、ステータス情報を付
加する設定(IFUCNT_ADD_STATUS)にしている場合には、カウンタラッチのタイミングでカウ
ント値と上記のステータス情報を同時に取得することが可能となっています。
デューティ比測定を行う場合には、このサンプリング時のステータス取得機能をご使用いただ
くと便利です。
GPC-6320 Help for Windows
© 2004, 2014 Interface Corporation. All rights reserved.
47
【使用例】
●C言語
INT nRet;
HANDLE hDeviceHandle;
hDeviceHandle = UcntOpen(“IFUCNT1”); :
:
nRet = UcntSetCycleMode(hDeviceHandle, 1, IFUCNT_CYCLE_HIGH, 10000);
●Visual Basic
Dim lpszName As String
Dim hDeviceHandle As Long
lpszName = "IFUCNT1" & Chr( 0 )
hDeviceHandle = UcntOpen(lpszName)
:
:
nRet = UcntSetCycleMode(hDeviceHandle, 1, IFUCNT_CYCLE_HIGH, 10000)
●Delphi
var
lpszName: String;
hDeviceHandle: THandle;
lpszName := 'IFUCNT1';
hDeviceHandle := UcntOpen(lpszName);
:
:
nRet := UcntSetCycleMode(hDeviceHandle, 1, IFUCNT_CYCLE_HIGH, 10000);
デバイス名「IFUCNT1」のデバイスのチャンネル 1 を周期測定モード(High パルス幅測定モー
ド、基準クロック 1[ms])に設定します。
GPC-6320 Help for Windows
© 2004, 2014 Interface Corporation. All rights reserved.
48
10. UcntGetCycleMode
【機能】
周期測定モード設定情報を取得します。
【書式】
●C言語
INT UcntGetCycleMode(
HANDLE hDeviceHandle, // デバイスハンドル
INT nChannel, // チャンネル選択
PDWORD pdwCountType, // 周期測定タイプ取得変数
// へのポインタ
PDWORD pdwClock // 基準クロック取得変数
// へのポインタ
);
●Visual Basic
Declare Function UcntGetCycleMode Lib "IFUcnt.DLL"(_
ByVal hDeviceHandle As Long,_ ‘ デバイスハンドル
ByVal nChannel As Long,_ ‘ チャンネル選択
ByRef pdwCountType As Long,_ ‘ 周期測定タイプ取得変数
‘ への参照渡し
ByRef pdwClock As Long_ ‘ 基準クロック取得変数
‘ への参照渡し
)As Long
●Delphi
function UcntGetCycleMode(
hDeviceHandle: THandle; // デバイスハンドル
nChannel: Integer; // チャンネル選択
var pdwCountType: Dword; // 周期測定タイプ取得変数
// への参照渡し
var pdwClock: Dword // 基準クロック取得変数
// への参照渡し
): Integer; stdcall; external 'IFUcnt.DLL';
【パラメータ】
hDeviceHandle UcntOpen 関数で取得したインタフェースモジュールのデバイスハンドルを指定してくだ
さい。
nChannel 設定を行うチャンネルを指定してください。
GPC-6320 Help for Windows
© 2004, 2014 Interface Corporation. All rights reserved.
49
pdwCountType 周期測定タイプ設定値を格納する変数へのポインタを指定してください。
格納される値の詳細については下記の様になります。
識別子 内容
IFUCNT_CYCLE_NORMAL パルス周期を測定します
IFUCNT_CYCLE_HIGH High パルス幅を測定します
IFUCNT_CYCLE_LOW Low パルス幅を測定します
IFUCNT_CYCLE_HIGH_LOW High、Low パルス幅を測定します
pdwClock 基準クロック設定値を格納する変数へのポインタを指定してください。
格納される値の詳細については下記の様になります。
設定範囲:0 ~ 16,777,215(FFFFFFh)
dwClock 基準クロック周期
0 停止
1 100 [ns]
・
・
・
・
・
・
16,777,215 1.6777215 [s]
【戻り値】
正常終了した場合は、IFUCNT_ERROR_SUCCESSが返されます。
IFUCNT_ERROR_SUCCESS以外の値が返された場合については、『4.6 戻り値一覧』をご参照くだ
さい。
【使用例】
●C言語
INT nRet;
HANDLE hDeviceHandle;
DWORD dwCountType;
DWORD dwClock;
hDeviceHandle = UcntOpen(“IFUCNT1”); :
:
nRet = UcntGetCycleMode(hDeviceHandle, 2, &dwCountType, &dwClock);
GPC-6320 Help for Windows
© 2004, 2014 Interface Corporation. All rights reserved.
50
●Visual Basic
Dim lpszName As String
Dim hDeviceHandle As Long
Dim dwCountType As Long
Dim dwClock As Long
lpszName = "IFUCNT1" & Chr( 0 )
hDeviceHandle = UcntOpen(lpszName)
:
:
nRet = UcntGetCycleMode(hDeviceHandle, 2, dwCountType, dwClock)
●Delphi
var
lpszName: String;
hDeviceHandle: THandle;
dwCountType: Dword;
dwClock: Dword;
lpszName := 'IFUCNT1';
hDeviceHandle := UcntOpen(lpszName);
:
:
nRet := UcntGetCycleMode(hDeviceHandle, 2, dwCountType, dwClock);
デバイス名「IFUCNT1」のデバイスのチャンネル 2の周期測定モード設定情報を取得します。
GPC-6320 Help for Windows
© 2004, 2014 Interface Corporation. All rights reserved.
51
11. UcntSetPhaseDiffMode
【機能】
位相差幅測定モードに設定します。
【書式】
●C言語
INT UcntSetPhaseDiffMode(
HANDLE hDeviceHandle, // デバイスハンドル
INT nChannel, // チャンネル選択
DWORD dwCountType, // 位相差幅測定タイプ
DWORD dwClock // 基準クロック
);
●Visual Basic
Declare Function UcntSetPhaseDiffMode Lib "IFUcnt.DLL"(_
ByVal hDeviceHandle As Long,_ ‘ デバイスハンドル
ByVal nChannel As Long,_ ‘ チャンネル選択
ByVal dwCountType As Long,_ ‘ 位相差幅測定タイプ
ByVal dwClock As Long_ ‘ 基準クロック
)As Long
●Delphi
function UcntSetPhaseDiffMode(
hDeviceHandle: THandle; // デバイスハンドル
nChannel: Integer; // チャンネル選択
dwCountType: Dword; // 位相差幅測定タイプ
dwClock: Dword // 基準クロック
): Integer; stdcall; external 'IFUcnt.DLL';
【パラメータ】
hDeviceHandle UcntOpen 関数で取得したインタフェースモジュールのデバイスハンドルを指定してくだ
さい。
nChannel 設定を行うチャンネルを指定してください。
dwCountType 位相差幅測定タイプを指定してください。
識別子 内容
IFUCNT_PHASE_DIFF_NORMAL LA-LB 間の位相差幅を測定します
IFUCNT_PHASE_DIFF_ALL LA,LB の全位相差幅を測定します
GPC-6320 Help for Windows
© 2004, 2014 Interface Corporation. All rights reserved.
52
dwClock 基準クロック設定値を指定してください。
設定範囲:0 ~ 16,777,215(FFFFFFh)
dwClock 基準クロック周期
0 停止
1 100 [ns]
・
・
・
・
・
・
16,777,215 1.6777215 [s]
【戻り値】
正常終了した場合は、IFUCNT_ERROR_SUCCESSが返されます。
IFUCNT_ERROR_SUCCESS以外の値が返された場合については、『4.6 戻り値一覧』をご参照くだ
さい。
【備考】
●位相差幅測定モードの概要について
位相差幅測定モードでは、LA・LB からの入力パルスの位相差幅を測定します。
具体的な測定方法としては、内部基準クロックによるカウントを LA の立ち上がりタイミング
でカウントスタートし、LB の立ち上がりでラッチ(&クリア)することで、LA 入力から LB の
入力までの幅をラッチカウンタから取得します。
dwClock で指定した内部クロックのカウント値が測定幅となる為、内部クロック周期の設定が
短いほど位相差幅測定の精度が良くなります。(クロック周期を短くすると、測定可能な 大
位相差幅は短くなります。)
ラッチ時のデータが一周期分のデータとなるため、カウンタ値の取得には
UcntReadLatchCounter関数を使用してください。(UcntReadCounter関数では測定途中のカウ
ント値を取得してしまう為、無意味なデータを取得する可能性があります。)
位相差幅は下記の式で算出できます。
位相差幅[s] = カウントクロック数 × 基準クロック
カウントスタート時(UcntStartCount関数)は外部スタートウェイト(トリガ待ち)
(IFUCNT_CMD_EXWAIT)を指定してください。
スタート関数の実行後、 初の入力パルス(LA)の立ち上がりでカウントを開始します。
GPC-6320 Help for Windows
© 2004, 2014 Interface Corporation. All rights reserved.
53
<位相差幅測定モードのタイミングチャート>
カウント値
LB
0 500 600リードレジスタ
FIFO
OUTA
基準クロック
OUTB
比較レジスタ A(550)600500
LA
スタート
ストップ
スタート
ストップ
クリア
ラッチ
クリア
ラッチ
比較レジスタ B(700)
位相差幅測定モードでは、LA 信号の立ち上がりでカウントを開始し、LB 信号の立ち上がりで
カウントをストップ・ラッチ(&クリア)します。
<全位相差幅測定モードのタイミングチャート>
比較レジスタ A(550)
カウント値
LA
リードレジスタ
FIFO
OUTA
基準クロック
OUTB
600
500
LB
400
0 500 600 500500 500 400
スタート
クリア
ラッチ
クリア
ラッチ
クリア
ラッチ
クリア
ラッチ
クリア
ラッチ
クリア
ラッチ
比較レジスタ B(650)
全位相差幅測定モードでは、LA 信号の立ち上がりでカウントを開始し、LA 信号の立ち上がり・
立ち下がりと LB 信号の立ち上がり・立ち下がりでカウンタ値をラッチ(&クリア)します。
GPC-6320 Help for Windows
© 2004, 2014 Interface Corporation. All rights reserved.
54
測定したラッチカウント値がどの信号のラッチによるものかを確認する為に、
UcntGetStatus関数を使用してカウントラッチ時のステータス状態を確認する必要があります。
ステータス情報から、ラッチタイミングの直前・直後の LA 信号の状態が確認できる為、
・LABEF(ラッチ直前):Low
・LAAFT(ラッチ直後):High
の場合には、LA の立ち上がりによってラッチが発生したことを示します。
・LABEF(ラッチ直前):High
・LAAFT(ラッチ直後):Low
逆の場合には、LA の立ち下がりによってラッチが発生した事を示します。
(LB のステータスについても同様に確認できます。)
また、サンプリングの設定(UcntSetSamplingConfig関数)を行う際に、ステータス情報を付
加する設定(IFUCNT_ADD_STATUS)にしている場合には、カウンタラッチのタイミングでカウ
ント値と上記のステータス情報を同時に取得することが可能となっています。
全位相差幅測定を行う場合には、このサンプリング時のステータス取得機能をご使用いただく
と便利です。
【使用例】
●C言語
INT nRet;
HANDLE hDeviceHandle;
hDeviceHandle = UcntOpen(“IFUCNT1”); :
:
nRet = UcntSetPhaseDiffMode(hDeviceHandle, 1, IFUCNT_PHASE_DIFF_NORMAL, 1000);
●Visual Basic
Dim lpszName As String
Dim hDeviceHandle As Long
lpszName = "IFUCNT1" & Chr( 0 )
hDeviceHandle = UcntOpen(lpszName)
:
:
nRet = UcntSetPhaseDiffMode(hDeviceHandle, 1, IFUCNT_PHASE_DIFF_NORMAL, 1000)
GPC-6320 Help for Windows
© 2004, 2014 Interface Corporation. All rights reserved.
55
●Delphi
var
lpszName: String;
hDeviceHandle: THandle;
lpszName := 'IFUCNT1';
hDeviceHandle := UcntOpen(lpszName);
:
:
nRet := UcntSetPhaseDiffMode(hDeviceHandle, 1, IFUCNT_PHASE_DIFF_NORMAL, 1000);
デバイス名「IFUCNT1」のデバイスのチャンネル 1を位相差幅測定モード(LA-LB 間位相差幅測
定モード、基準クロック 100[us])に設定します。
GPC-6320 Help for Windows
© 2004, 2014 Interface Corporation. All rights reserved.
56
12. UcntGetPhaseDiffMode
【機能】
位相差幅測定モード設定情報を取得します。
【書式】
●C言語
INT UcntGetPhaseDiffMode(
HANDLE hDeviceHandle, // デバイスハンドル
INT nChannel, // チャンネル選択
PDWORD pdwCountType, // 位相差幅測定タイプ取得変数
// へのポインタ
PDWORD pdwClock // 基準クロック取得変数
// へのポインタ
);
●Visual Basic
Declare Function UcntGetPhaseDiffMode Lib "IFUcnt.DLL"(_
ByVal hDeviceHandle As Long,_ ‘ デバイスハンドル
ByVal nChannel As Long,_ ‘ チャンネル選択
ByRef pdwCountType As Long,_ ‘ 位相差幅測定タイプ取得変数
‘ への参照渡し
ByRef pdwClock As Long_ ‘ 基準クロック取得変数
‘ への参照渡し
)As Long
●Delphi
function UcntGetPhaseDiffMode(
hDeviceHandle: THandle; // デバイスハンドル
nChannel: Integer; // チャンネル選択
var pdwCountType: Dword; // 位相差幅測定タイプ取得変数
// への参照渡し
var pdwClock: Dword // 基準クロック取得変数
// への参照渡し
): Integer; stdcall; external 'IFUcnt.DLL';
【パラメータ】
hDeviceHandle UcntOpen 関数で取得したインタフェースモジュールのデバイスハンドルを指定してくだ
さい。
nChannel 設定情報を取得するチャンネルを指定してください。
GPC-6320 Help for Windows
© 2004, 2014 Interface Corporation. All rights reserved.
57
pdwCountType 位相差幅測定タイプ設定値を格納する変数へのポインタを指定してください。
格納される値の詳細については下記の様になります。
識別子 内容
IFUCNT_PHASE_DIFF_NORMAL LA-LB 間の位相差幅を測定します
IFUCNT_PHASE_DIFF_ALL LA,LB の全位相差幅を測定します
dwClock 基準クロック設定値を格納する変数へのポインタを指定してください。
格納される値の詳細については下記の様になります。
設定範囲:0 ~ 16,777,215(FFFFFFh)
dwClock 基準クロック周期
0 停止
1 100 [ns]
・
・
・
・
・
・
16,777,215 1.6777215 [s]
【戻り値】
正常終了した場合は、IFUCNT_ERROR_SUCCESSが返されます。
IFUCNT_ERROR_SUCCESS以外の値が返された場合については、『4.6 戻り値一覧』をご参照くだ
さい。
【使用例】
●C言語
INT nRet;
HANDLE hDeviceHandle;
DWORD dwCountType;
DWORD dwClock;
hDeviceHandle = UcntOpen(“IFUCNT1”); :
:
nRet = UcntGetPhaseDiffMode(hDeviceHandle, 1, &dwCountType, &dwClock);
GPC-6320 Help for Windows
© 2004, 2014 Interface Corporation. All rights reserved.
58
●Visual Basic
Dim lpszName As String
Dim hDeviceHandle As Long
Dim dwCountType As Long
Dim dwClock As Long
lpszName = "IFUCNT1" & Chr( 0 )
hDeviceHandle = UcntOpen(lpszName)
:
:
nRet = UcntGetPhaseDiffMode(hDeviceHandle, 1, dwCountType, dwClock)
●Delphi
var
lpszName: String;
hDeviceHandle: THandle;
dwCountType: Dword;
dwClock: Dword;
lpszName := 'IFUCNT1';
hDeviceHandle := UcntOpen(lpszName);
:
:
nRet := UcntGetPhaseDiffMode(hDeviceHandle, 1, dwCountType, dwClock);
デバイス名「IFUCNT1」のデバイスのチャンネル 1 の位相差幅測定モード設定情報を取得しま
す。
GPC-6320 Help for Windows
© 2004, 2014 Interface Corporation. All rights reserved.
59
13. UcntSetTimerMode
【機能】
タイマモードに設定します。
【書式】
●C言語
INT UcntSetTimerMode(
HANDLE hDeviceHandle, // デバイスハンドル
INT nChannel, // チャンネル選択
DWORD dwClock // タイマクロック
);
●Visual Basic
Declare Function UcntSetTimerMode Lib "IFUcnt.DLL"(_
ByVal hDeviceHandle As Long,_ ‘ デバイスハンドル
ByVal nChannel As Long,_ ‘ チャンネル選択
ByVal dwClock As Long_ ‘ タイマクロック
)As Long
●Delphi
function UcntSetTimerMode(
hDeviceHandle: THandle; // デバイスハンドル
nChannel: Integer; // チャンネル選択
dwClock: Dword // タイマクロック
): Integer; stdcall; external 'IFUcnt.DLL';
【パラメータ】
hDeviceHandle UcntOpen 関数で取得したインタフェースモジュールのデバイスハンドルを指定してくだ
さい。
nChannel 設定を行うチャンネルを指定してください。
dwClock タイマクロック設定値を指定してください。
設定範囲:0 ~ 16,777,215(FFFFFFh)
dwClock 基準クロック周期
0 停止
1 100 [ns]
・
・
・
・
・
・
16,777,215 1.6777215 [s]
GPC-6320 Help for Windows
© 2004, 2014 Interface Corporation. All rights reserved.
60
【戻り値】
正常終了した場合は、IFUCNT_ERROR_SUCCESSが返されます。
IFUCNT_ERROR_SUCCESS以外の値が返された場合については、『4.6 戻り値一覧』をご参照くだ
さい。
【備考】
●タイマモードの概要について
タイマモードでは、内部基準クロックをカウントすることで、時間計測を行います。
カウンタ値の取得方法は、UcntReadCounter関数と UcntReadLatchCounter関数のどちらでもか
まいません。用途に合わせてご使用下さい。(ラッチカウンタを使用する場合には、任意のタ
イミングでカウントラッチを行う必要があります。)
dwClock に指定した内部基準クロック周期で、カウンタがカウントアップします。
UcntSetComparatorConfig関数を使用してカウンタ一致検出のイベントを設定し、一致検出時
にカウンタクリアを行う設定にすることで、指定した時間周期でインターバルタイマイベント
を発生させることも可能です。
<タイマモードのカウント内容>
×内部基準クロック
(100ns~1.6777251s)
比較レジスタA
32bit カウンタ(1~4,294,967,295)
比較レジスタB
【使用例】
●C言語
INT nRet;
HANDLE hDeviceHandle;
hDeviceHandle = UcntOpen(“IFUCNT1”); :
:
nRet = UcntSetTimerMode(hDeviceHandle, 1, 10000000);
●Visual Basic
Dim lpszName As String
Dim hDeviceHandle As Long
lpszName = "IFUCNT1" & Chr( 0 )
hDeviceHandle = UcntOpen(lpszName)
:
:
nRet = UcntSetTimerMode(hDeviceHandle, 1, 10000000)
●Delphi
GPC-6320 Help for Windows
© 2004, 2014 Interface Corporation. All rights reserved.
61
var
lpszName: String;
hDeviceHandle: THandle;
lpszName := 'IFUCNT1';
hDeviceHandle := UcntOpen(lpszName);
:
:
nRet := UcntSetTimerMode(hDeviceHandle, 1, 10000000);
デバイス名「IFUCNT1」のデバイスのチャンネル 1 をタイマモード(タイマクロック 1[s])に
設定します。
GPC-6320 Help for Windows
© 2004, 2014 Interface Corporation. All rights reserved.
62
14. UcntGetTimerMode
【機能】
タイマモード設定情報を取得します。
【書式】
●C言語
INT UcntGetTimerMode(
HANDLE hDeviceHandle, // デバイスハンドル
INT nChannel, // チャンネル選択
PDWORD pdwClock // タイマクロック取得変数
// へのポインタ
);
●Visual Basic
Declare Function UcntGetTimerMode Lib "IFUcnt.DLL"(_
ByVal hDeviceHandle As Long,_ ‘ デバイスハンドル
ByVal nChannel As Long,_ ‘ チャンネル選択
ByRef pdwClock As Long_ ‘ タイマクロック取得変数
‘ への参照渡し
)As Long
●Delphi
function UcntGetTimerMode(
hDeviceHandle: THandle; // デバイスハンドル
nChannel: Integer; // チャンネル選択
var pdwClock: Dword // タイマクロック取得変数
// への参照渡し
): Integer; stdcall; external 'IFUcnt.DLL';
【パラメータ】
hDeviceHandle UcntOpen 関数で取得したインタフェースモジュールのデバイスハンドルを指定してくだ
さい。
nChannel 設定情報を取得するチャンネルを指定してください。
GPC-6320 Help for Windows
© 2004, 2014 Interface Corporation. All rights reserved.
63
pdwClock タイマクロック設定値を格納する変数へのポインタを指定してください。
格納される値の詳細については下記の様になります。
設定範囲:0 ~ 16,777,215(FFFFFFh)
dwClock 基準クロック周期
0 停止
1 100 [ns]
・
・
・
・
・
・
16,777,215 1.6777215 [s]
【戻り値】
正常終了した場合は、IFUCNT_ERROR_SUCCESSが返されます。
IFUCNT_ERROR_SUCCESS以外の値が返された場合については、『4.6 戻り値一覧』をご参照くだ
さい。
【使用例】
●C言語
INT nRet;
HANDLE hDeviceHandle;
DWORD dwClock;
hDeviceHandle = UcntOpen(“IFUCNT1”); :
:
nRet = UcntGetTimerMode(hDeviceHandle, 1,&dwClock);
●Visual Basic
Dim lpszName As String
Dim hDeviceHandle As Long
Dim dwClock As Long
lpszName = "IFUCNT1" & Chr( 0 )
hDeviceHandle = UcntOpen(lpszName)
:
:
nRet = UcntGetTimerMode(hDeviceHandle, 1, dwClock)
GPC-6320 Help for Windows
© 2004, 2014 Interface Corporation. All rights reserved.
64
●Delphi
var
lpszName: String;
hDeviceHandle: THandle;
dwClock: THandle;
lpszName := 'IFUCNT1';
hDeviceHandle := UcntOpen(lpszName);
:
:
nRet := UcntGetTimerMode(hDeviceHandle, 1, dwClock);
デバイス名「IFUCNT1」のデバイスのチャンネル 1のタイマモード設定情報を取得します。
GPC-6320 Help for Windows
© 2004, 2014 Interface Corporation. All rights reserved.
65
15. UcntSetFreqDividerMode
【機能】
分周器モードに設定します。
【書式】
●C言語
INT UcntSetFreqDividerMode(
HANDLE hDeviceHandle, // デバイスハンドル
INT nChannel, // チャンネル選択
DWORD dwDivisor, // 分周周期(パルス数)
DWORD dwPulseWide, // 出力幅(パルス数)
DWORD dwLogic, // 出力論理
DWORD dwOUTB // OUTB 出力設定
);
●Visual Basic
Declare Function UcntSetFreqDividerMode Lib "IFUcnt.DLL"(_
ByVal hDeviceHandle As Long,_ ‘ デバイスハンドル
ByVal nChannel As Long,_ ‘ チャンネル選択
ByVal dwDivisor As Long,_ ‘ 分周周期(パルス数)
ByVal dwPulseWide As Long,_ ‘ 出力幅(パルス数)
ByVal dwLogic As Long,_ ‘ 出力論理
ByVal dwOUTB As Long_ ‘ OUTB 出力設定
)As Long
●Delphi
function UcntSetFreqDividerMode(
hDeviceHandle: THandle; // デバイスハンドル
nChannel: Integer; // チャンネル選択
dwDivisor: Dword; // 分周周期(パルス数)
dwPulseWide: Dword; // 出力幅(パルス数)
dwLogic: Dword; // 出力論理
dwOUTB: Dword // OUTB 出力設定
): Integer; stdcall; external 'IFUcnt.DLL';
【パラメータ】
hDeviceHandle UcntOpen 関数で取得したインタフェースモジュールのデバイスハンドルを指定してくだ
さい。
nChannel 設定を行うチャンネルを指定してください。
GPC-6320 Help for Windows
© 2004, 2014 Interface Corporation. All rights reserved.
66
dwDivisor 入力パルスの分周周期設定値を指定してください。
設定範囲:0 ~ 4,294,967,294(FFFFFFFEh)
dwPulseWide 出力パルス幅設定値を指定してください。
設定範囲:0 ~ 4,294,967,294(FFFFFFFEh)
※ 出力パルス幅には分周周期以下の値を指定してください。
dwLogic 出力論理を指定してください。
dwLogic 内容
0 通常(正論理)
1 反転(負論理)
dwOUTB OUTB の出力設定を指定してください。
識別子 内容
IFUCNT_OUTB_STOP 出力なし
IFUCNT_OUTB_OUT OUTA と同一パルス出力
IFUCNT_OUTB_REV OUTA の反転パルス出力
【戻り値】
正常終了した場合は、IFUCNT_ERROR_SUCCESSが返されます。
IFUCNT_ERROR_SUCCESS以外の値が返された場合については、『4.6 戻り値一覧』をご参照くだ
さい。
【備考】
●分周器モードの概要について
分周器モードでは、A 相からの入力パルスを元にして、OUTA 及び OUTB 端子から指定した分周
周期でパルス出力を行います。
具体的なパルスの生成方法としては、A 相のパルスカウントを行い(UP/DOWN パルスカウント
モード 1 逓倍でカウントします)、比較カウンタ A から比較カウンタ B に設定したカウント値
の間 OUTA(OUTB)信号を Low にすることで、任意の周期のパルスを生成します。
比較カウンタ Aの値が High パルス幅、比較カウンタ Bの値が分周周期に相当します。
GPC-6320 Help for Windows
© 2004, 2014 Interface Corporation. All rights reserved.
67
<分周器モードのタイミングチャート>
OUTA
比較レジスタ A
比較レジスタ Bカウント
外部クロック
LA
スタート
ソフトスタート
A
B
UP/DOWN パルス
外部パルス
上記のタイミングチャートで示した様に、外部クロックのカウントと一致検出出力機能の組み
合わせによってパルスを生成しているため、動作中に比較レジスタ値の変更
(UcntSetComparator関数)を行うと分周周期が変化してしまいますので、ご注意ください。
【使用例】
●C言語
INT nRet;
HANDLE hDeviceHandle;
hDeviceHandle = UcntOpen(“IFUCNT1”); :
:
nRet = UcntSetFreqDividerMode(hDeviceHandle, 1, 1000, 10, 0, IFUCNT_OUTB_REV);
●Visual Basic
Dim lpszName As String
Dim hDeviceHandle As Long
lpszName = "IFUCNT1" & Chr( 0 )
hDeviceHandle = UcntOpen(lpszName)
:
:
nRet = UcntSetFreqDividerMode(hDeviceHandle, 1, 1000, 10, 0, IFUCNT_OUTB_REV)
GPC-6320 Help for Windows
© 2004, 2014 Interface Corporation. All rights reserved.
68
●Delphi
var
lpszName: String;
hDeviceHandle: THandle;
lpszName := 'IFUCNT1';
hDeviceHandle := UcntOpen(lpszName);
:
:
nRet := UcntSetFreqDividerMode(hDeviceHandle, 1, 1000, 10, 0, IFUCNT_OUTB_REV);
デバイス名「IFUCNT1」のデバイスのチャンネル 1 を分周器モード(分周周期 1000 分の 1、出
力パルス幅 10、正論理、OUTB 反転出力)に設定します。
GPC-6320 Help for Windows
© 2004, 2014 Interface Corporation. All rights reserved.
69
16. UcntGetFreqDividerMode
【機能】
分周器モード設定情報を取得します。
【書式】
●C言語
INT UcntGetFreqDividerMode(
HANDLE hDeviceHandle, // デバイスハンドル
INT nChannel, // チャンネル選択
PDWORD pdwDivisor, // 分周周期取得変数への
// ポインタ
PDWORD pdwPulseWide, // 出力幅取得変数への
// ポインタ
PDWORD pdwLogic, // 出力論理取得変数への
// ポインタ
PDWORD pdwOUTB // OUTB 出力設定取得変数
// へのポインタ
);
●Visual Basic
Declare Function UcntGetFreqDividerMode Lib "IFUcnt.DLL"(_
ByVal hDeviceHandle As Long,_ ‘ デバイスハンドル
ByVal nChannel As Long,_ ‘ チャンネル選択
ByRef pdwDivisor As Long,_ ‘ 分周周期取得変数への
‘ 参照渡し
ByRef pdwPulseWide As Long,_ ‘ 出力幅取得変数への
‘ 参照渡し
ByRef pdwLogic As Long,_ ‘ 出力論理取得変数への
‘ 参照渡し
ByRef pdwOUTB As Long_ ‘ OUTB 出力設定取得変数
‘ への参照渡し
)As Long
●Delphi
function UcntGetFreqDividerMode(
hDeviceHandle: THandle; // デバイスハンドル
nChannel: Integer; // チャンネル選択
var pdwDivisor: Dword; // 分周周期取得変数への
// 参照渡し
var pdwPulseWide: Dword; // 出力幅取得変数への
// 参照渡し
var pdwLogic: Dword; // 出力論理取得変数への
// 参照渡し
var pdwOUTB: Dword // OUTB 出力設定取得変数
// への参照渡し
): Integer; stdcall; external 'IFUcnt.DLL';
GPC-6320 Help for Windows
© 2004, 2014 Interface Corporation. All rights reserved.
70
【パラメータ】
hDeviceHandle UcntOpen 関数で取得したインタフェースモジュールのデバイスハンドルを指定してくだ
さい。
nChannel 設定情報を取得するチャンネルを指定してください。
pdwDivisor 入力パルスの分周周期設定値を格納する変数へのポインタを指定してください。
格納される値の詳細については下記の様になります。
設定範囲:0 ~ 4,294,967,294(FFFFFFFEh)
pdwPulseWide 出力パルス幅設定値を格納する変数へのポインタを指定してください。
格納される値の詳細については下記の様になります。
設定範囲:0 ~ 4,294,967,294(FFFFFFFEh)
pdwLogic 出力論理設定値を格納する変数へのポインタを指定してください。
格納される値の詳細については下記の様になります。
dwLogic 内容
0 通常(正論理)
1 反転(負論理)
pdwOUTB OUTB の出力設定を格納する変数へのポインタを指定してください。
格納される値の詳細については下記の様になります。
識別子 内容
IFUCNT_OUTB_STOP 出力なし
IFUCNT_OUTB_OUT OUTA と同一パルス出力
IFUCNT_OUTB_REV OUTA の反転パルス出力
【戻り値】
正常終了した場合は、IFCNT_ERROR_SUCCESSが返されます。
IFUCNT_ERROR_SUCCESS以外の値が返された場合については、『4.6 戻り値一覧』をご参照くだ
さい。
GPC-6320 Help for Windows
© 2004, 2014 Interface Corporation. All rights reserved.
71
【使用例】
●C言語
INT nRet;
HANDLE hDeviceHandle;
DWORD dwDivisor;
DWORD dwPulseWide;
DWORD dwLogic;
DWORD dwOUTB;
hDeviceHandle = UcntOpen(“IFUCNT1”); :
:
nRet = UcntGetFreqDividerMode(hDeviceHandle, 1, &dwDivisor, &dwPulseWide,
&dwLogic, &dwOUTB);
●Visual Basic
Dim lpszName As String
Dim hDeviceHandle As Long
Dim dwDivisor As Long
Dim dwPulseWide As Long
Dim dwLogic As Long
Dim dwOUTB As Long
lpszName = "IFUCNT1" & Chr( 0 )
hDeviceHandle = UcntOpen(lpszName)
:
:
nRet = UcntGetFreqDividerMode(hDeviceHandle, 1, dwDivisor, dwPulseWide, _
dwLogic, dwOUTB)
●Delphi
var
lpszName: String;
hDeviceHandle: THandle;
dwDivisor: Dword;
dwPulseWide: Dword;
dwLogic: Dword;
dwOUTB: Dword;
lpszName := 'IFUCNT1';
hDeviceHandle := UcntOpen(lpszName);
:
:
nRet := UcntGetFreqDividerMode(hDeviceHandle, 1, dwDivisor, dwPulseWide,
dwLogic, dwOUTB);
デバイス名「IFUCNT1」のデバイスのチャンネル 1の分周器モード設定情報を取得します。
GPC-6320 Help for Windows
© 2004, 2014 Interface Corporation. All rights reserved.
72
17. UcntSetPulseGeneratorMode
【機能】
パルスジェネレーターモードに設定します。
【書式】
●C言語
INT UcntSetPulseGeneratorMode(
HANDLE hDeviceHandle, // デバイスハンドル
INT nChannel, // チャンネル選択
DWORD dwClock, // 基準クロック
DWORD dwCycleWide, // パルス周期幅
DWORD dwHPulseWide, // High パルス幅
DWORD dwOUTB // OUTB 出力設定
);
●Visual Basic
Declare Function UcntSetPulseGeneratorMode Lib "IFUcnt.DLL"(_
ByVal hDeviceHandle As Long,_ ‘ デバイスハンドル
ByVal nChannel As Long,_ ‘ チャンネル選択
ByVal dwClock As Long,_ ‘ 基準クロック
ByVal dwCycleWide As Long,_ ‘ パルス周期幅
ByVal dwHPulseWide As Long,_ ‘ High パルス幅
ByVal dwOUTB As Long_ ‘ OUTB 出力設定
)As Long
●Delphi
function UcntSetPulseGeneratorMode(
hDeviceHandle: THandle; // デバイスハンドル
nChannel: Integer; // チャンネル選択
dwClock: Dword; // 基準クロック
dwCycleWide: Dword; // パルス周期幅
dwHPulseWide: Dword; // High パルス幅
dwOUTB: Dword // OUTB 出力設定
): Integer; stdcall; external 'IFUcnt.DLL';
【パラメータ】
hDeviceHandle UcntOpen 関数で取得したインタフェースモジュールのデバイスハンドルを指定してくだ
さい。
nChannel 設定を行うチャンネルを指定してください。
GPC-6320 Help for Windows
© 2004, 2014 Interface Corporation. All rights reserved.
73
dwClock 基準クロック設定値を指定してください。
設定範囲:0 ~ 16,777,215(FFFFFFh)
dwClock 基準クロック周期
0 停止
1 100 [ns]
・
・
・
・
・
・
16,777,215 1.6777215 [s]
dwCycleWide パルス周期幅(クロック数)設定値を指定してください。
設定範囲:0 ~ 4,294,967,294(FFFFFFFEh)
dwHPulseWide High パルス幅(クロック数)設定値を指定してください。
設定範囲:0 ~ 4,294,967,294(FFFFFFFEh)
※ High パルス幅にはパルス周期幅以下の値を指定してください。
dwOUTB OUTB の出力設定を指定してください。
識別子 内容
IFUCNT_OUTB_STOP 出力なし
IFUCNT_OUTB_OUT OUTA と同一パルス出力
IFUCNT_OUTB_REV OUTA の反転パルス出力
【戻り値】
正常終了した場合は、IFUCNT_ERROR_SUCCESSが返されます。
IFUCNT_ERROR_SUCCESS以外の値が返された場合については、『4.6 戻り値一覧』をご参照くだ
さい。
【備考】
●パルスジェネレータモードの概要について
パルスジェネレータモードでは、各チャンネルの OUTA 及び OUTB 端子から、指定した周期でパ
ルス出力を行います。
具体的なパルスの生成方法としては、内部基準クロックによるカウントを行い、比較カウンタ
Aから比較カウンタ Bに設定したカウント値の間 OUTA(OUTB)信号を Low にすることで、任意
の周期のパルスを生成します。
比較カウンタ A の値が High パルス幅、比較カウンタ B の値がパルスの周期に相当する為、こ
れらの比較カウンタ値の比率でデューティ比を決定します。
出力パルスの周波数は、基準クロックとパルス周期幅の値から下記の計算式で算出できます。
出力周波数[Hz] = 10,000,000 / ( dwClock × dwCycleWide )
GPC-6320 Help for Windows
© 2004, 2014 Interface Corporation. All rights reserved.
74
出力パルスのデューティ比はパルス周期幅と High パルス幅の値から下記の計算式で算出でき
ます。
デューティ比[%] = ( dwHPulseWide / dwCycleWide )× 100
<パルスジェネレータモードのタイミングチャート>
OUTA
比較レジスタ A
比較レジスタ Bカウント
内部基準クロック
LA
スタート
ソフトスタート
上記のタイミングチャートで示した様に、内部基準クロックのカウントと一致検出出力機能の
組み合わせによってパルスを生成しているため、動作中に内部基準クロック
(UcntSetBaseClock関数)や比較レジスタ値の変更(UcntSetComparator関数)を行うとパル
ス周期が変化してしまいますので、ご注意ください。
【使用例】
●C言語
INT nRet;
HANDLE hDeviceHandle;
hDeviceHandle = UcntOpen(“IFUCNT1”); :
:
nRet = UcntSetPulseGeneratorMode(hDeviceHandle, 1, 1, 2, 1, IFUCNT_OUTB_NO);
●Visual Basic
Dim lpszName As String
Dim hDeviceHandle As Long
lpszName = "IFUCNT1" & Chr( 0 )
hDeviceHandle = UcntOpen(lpszName)
:
:
nRet = UcntSetPulseGeneratorMode(hDeviceHandle, 1, 1, 2, 1, IFUCNT_OUTB_NO)
GPC-6320 Help for Windows
© 2004, 2014 Interface Corporation. All rights reserved.
75
●Delphi
var
lpszName: String;
hDeviceHandle: THandle;
lpszName := 'IFUCNT1';
hDeviceHandle := UcntOpen(lpszName);
:
:
nRet := UcntSetPulseGeneratorMode(hDeviceHandle, 1, 1, 2, 1, IFUCNT_OUTB_NO);
デバイス名「IFUCNT1」のデバイスのチャンネル 1 をパルスジェネレーターモード(出力周波
数 5MHz、デューティ比 50%)に設定します。
GPC-6320 Help for Windows
© 2004, 2014 Interface Corporation. All rights reserved.
76
18. UcntGetPulseGeneratorMode
【機能】
パルスジェネレーターモード設定情報を取得します。
【書式】
●C言語
INT UcntGetPulseGeneratorMode(
HANDLE hDeviceHandle, // デバイスハンドル
INT nChannel, // チャンネル選択
PDWORD pdwClock, // 基準クロック取得変数
// へのポインタ
PDWORD pdwCycleWide, // パルス周期幅取得変数
// へのポインタ
PDWORD pdwHPulseWide, // High パルス幅取得変数
// へのポインタ
PDWORD pdwOUTB // OUTB 出力設定取得変数
// へのポインタ
);
●Visual Basic
Declare Function UcntGetPulseGeneratorMode Lib "IFUcnt.DLL"(_
ByVal hDeviceHandle As Long,_ ‘ デバイスハンドル
ByVal nChannel As Long,_ ‘ チャンネル選択
ByRef pdwClock As Long,_ ‘ 基準クロック取得変数
‘ への参照渡し
ByRef pdwCycleWide As Long,_ ‘ パルス周期幅取得変数
‘ への参照渡し
ByRef pdwHPulseWide As Long,_ ‘ High パルス幅取得変数
‘ への参照渡し
ByRef pdwOUTB As Long_ ‘ OUTB 出力設定取得変数
‘ への参照渡し
)As Long
●Delphi
function UcntGetPulseGeneratorMode(
hDeviceHandle: THandle; // デバイスハンドル
nChannel: Integer; // チャンネル選択
var pdwClock: Dword; // 基準クロック取得変数
// への参照渡し
var pdwCycleWide: Dword; // パルス周期幅取得変数
// への参照渡し
var pdwHPulseWide: Dword; // High パルス幅取得変数
// への参照渡し
var pdwOUTB: Dword // OUTB 出力設定取得変数
// への参照渡し
): Integer; stdcall; external 'IFUcnt.DLL';
GPC-6320 Help for Windows
© 2004, 2014 Interface Corporation. All rights reserved.
77
【パラメータ】
hDeviceHandle UcntOpen 関数で取得したインタフェースモジュールのデバイスハンドルを指定してくだ
さい。
nChannel 設定情報を取得するチャンネルを指定してください。
pdwClock 基準クロック設定値を格納する変数へのポインタを指定してください。
格納される値の詳細については下記の様になります。
取得範囲:0 ~ 16,777,215(FFFFFFh)
dwClock 基準クロック周期
0 停止
1 100 [ns]
・
・
・
・
・
・
16,777,215 1.6777215 [s]
dwCycleWide パルス周期幅(クロック数)設定値を格納する変数へのポインタを指定してください。
格納される値の詳細については下記の様になります。
取得範囲:0 ~ 4,294,967,294(FFFFFFFEh)
dwHPulseWide High パルス幅(クロック数)設定値を格納する変数へのポインタを指定してください。
格納される値の詳細については下記の様になります。
取得範囲:0 ~ 4,294,967,294(FFFFFFFEh)
dwOUTB OUTB の出力設定を格納する変数へのポインタを指定してください。
識別子 内容
IFUCNT_OUTB_STOP 出力なし
IFUCNT_OUTB_OUT OUTA と同一パルス出力
IFUCNT_OUTB_REV OUTA の反転パルス出力
【戻り値】
正常終了した場合は、IFUCNT_ERROR_SUCCESSが返されます。
IFUCNT_ERROR_SUCCESS以外の値が返された場合については、『4.6 戻り値一覧』をご参照くだ
さい。
GPC-6320 Help for Windows
© 2004, 2014 Interface Corporation. All rights reserved.
78
【使用例】
●C言語
INT nRet;
HANDLE hDeviceHandle;
DWORD dwClock;
DWORD dwCycleWide;
DWORD dwHPulseWide;
DWORD dwOUTB;
hDeviceHandle = UcntOpen(“IFUCNT1”); :
:
nRet = UcntGetPulseGeneratorMode(hDeviceHandle, 1, &dwClock, &dwCycleWide,
&dwHPulseWide, &OUTB);
●Visual Basic
Dim lpszName As String
Dim hDeviceHandle As Long
Dim dwClock As Long
Dim dwCycleWide As Long
Dim dwHPulseWide As Long
Dim dwOUTB As Long
lpszName = "IFUCNT1" & Chr( 0 )
hDeviceHandle = UcntOpen(lpszName)
:
:
nRet = UcntGetPulseGeneratorMode(hDeviceHandle, 1, dwClock, dwCycleWide, _
dwHPulseWide, dwOUTB)
GPC-6320 Help for Windows
© 2004, 2014 Interface Corporation. All rights reserved.
79
●Delphi
var
lpszName: String;
hDeviceHandle: THandle;
dwClock: Dword;
dwCycleWide: Dword;
dwHPulseWide: Dword;
dwOUTB: Dword;
lpszName := 'IFUCNT1';
hDeviceHandle := UcntOpen(lpszName);
:
:
nRet := UcntGetPulseGeneratorMode(hDeviceHandle, 1, dwClock, dwCycleWide,
dwHPulseWide, dwOUTB);
デバイス名「IFUCNT1」のデバイスのチャンネル 1 のパルスジェネレーターモード設定情報を
取得します。
GPC-6320 Help for Windows
© 2004, 2014 Interface Corporation. All rights reserved.
80
19. UcntSetLoadData
【機能】
プリロードデータを設定します。
【書式】
●C言語
INT UcntSetLoadData(
HANDLE hDeviceHandle, // デバイスハンドル
INT nChannel, // チャンネル選択
DWORD dwLoadData // プリロードデータ
);
●Visual Basic
Declare Function UcntSetLoadData Lib "IFUcnt.DLL"(_
ByVal hDeviceHandle As Long,_ ‘ デバイスハンドル
ByVal nChannel As Long,_ ‘ チャンネル選択
ByVal dwLoadData As Long_ ‘ プリロードデータ
)As Long
●Delphi
function UcntSetLoadData(
hDeviceHandle: THandle; // デバイスハンドル
nChannel: Integer; // チャンネル選択
dwLoadData: Dword // プリロードデータ
): Integer; stdcall; external 'IFUcnt.DLL';
【パラメータ】
hDeviceHandle UcntOpen 関数で取得したインタフェースモジュールのデバイスハンドルを指定してくだ
さい。
nChannel 設定を行うチャンネルを指定してください。
dwLoadData プリロードデータ設定値を指定してください。
設定範囲:0 ~ 4,294,967,295(FFFFFFFFh)
【戻り値】
正常終了した場合は、IFUCNT_ERROR_SUCCESSが返されます。
IFUCNT_ERROR_SUCCESS以外の値が返された場合については、『4.6 戻り値一覧』をご参照くだ
さい。
GPC-6320 Help for Windows
© 2004, 2014 Interface Corporation. All rights reserved.
81
【使用例】
●C言語
INT nRet;
HANDLE hDeviceHandle;
hDeviceHandle = UcntOpen(“IFUCNT1”); :
:
nRet = UcntSetLoadData(hDeviceHandle, 1, 0);
●Visual Basic
Dim lpszName As String
Dim hDeviceHandle As Long
lpszName = "IFUCNT1" & Chr( 0 )
hDeviceHandle = UcntOpen(lpszName)
:
:
nRet = UcntSetLoadData(hDeviceHandle, 1, 0)
●Delphi
var
lpszName: String;
hDeviceHandle: THandle;
lpszName := 'IFUCNT1';
hDeviceHandle := UcntOpen(lpszName);
:
:
nRet := UcntSetLoadData(hDeviceHandle, 1, 0);
デバイス名「IFUCNT1」のデバイスのチャンネル 1のプリロードデータを 0に設定します。
GPC-6320 Help for Windows
© 2004, 2014 Interface Corporation. All rights reserved.
82
20. UcntGetLoadData
【機能】
プリロードデータ設定情報を取得します。
【書式】
●C言語
INT UcntGetLoadData(
HANDLE hDeviceHandle, // デバイスハンドル
INT nChannel, // チャンネル選択
PDWORD pdwLoadData // プリロードデータ取得変数
// へのポインタ
);
●Visual Basic
Declare Function UcntGetLoadData Lib "IFUcnt.DLL"(_
ByVal hDeviceHandle As Long,_ ‘ デバイスハンドル
ByVal nChannel As Long,_ ‘ チャンネル選択
ByRef pdwLoadData As Long_ ‘ プリロードデータ取得変数
‘ への参照渡し
)As Long
●Delphi
function UcntGetLoadData(
hDeviceHandle: THandle; // デバイスハンドル
nChannel: Integer; // チャンネル選択
var pdwLoadData: Dword // プリロードデータ取得変数
// への参照渡し
): Integer; stdcall; external 'IFUcnt.DLL';
【パラメータ】
hDeviceHandle UcntOpen 関数で取得したインタフェースモジュールのデバイスハンドルを指定してくだ
さい。
nChannel 設定情報を取得するチャンネルを指定してください。
pdwLoadData プリロードデータ設定値を格納する変数へのポインタを指定してください。
格納される値の詳細については下記の様になります。
設定範囲:0 ~ 4,294,967,295(FFFFFFFFh)
【戻り値】
正常終了した場合は、IFUCNT_ERROR_SUCCESSが返されます。
IFUCNT_ERROR_SUCCESS以外の値が返された場合については、『4.6 戻り値一覧』をご参照くだ
さい。
GPC-6320 Help for Windows
© 2004, 2014 Interface Corporation. All rights reserved.
83
【使用例】
●C言語
INT nRet;
HANDLE hDeviceHandle;
DWORD dwLoadData;
hDeviceHandle = UcntOpen(“IFUCNT1”); :
:
nRet = UcntGetLoadData(hDeviceHandle, 1, &dwLoadData);
●Visual Basic
Dim lpszName As String
Dim hDeviceHandle As Long
Dim dwLoadData As Long
lpszName = "IFUCNT1" & Chr( 0 )
hDeviceHandle = UcntOpen(lpszName)
:
:
nRet = UcntGetLoadData(hDeviceHandle, 1, dwLoadData)
●Delphi
var
lpszName: String;
hDeviceHandle: THandle;
dwLoadData: Dword;
lpszName := 'IFUCNT1';
hDeviceHandle := UcntOpen(lpszName);
:
:
nRet := UcntGetLoadData(hDeviceHandle, 1, dwLoadData);
デバイス名「IFUCNT1」のデバイスのチャンネル 1のプリロードデータ設定値を取得します。
GPC-6320 Help for Windows
© 2004, 2014 Interface Corporation. All rights reserved.
84
21. UcntSetBaseClock
【機能】
内部基準クロックを設定します。
【書式】
●C言語
INT UcntSetBaseClock(
HANDLE hDeviceHandle, // デバイスハンドル
INT nChannel, // チャンネル選択
DWORD dwClock // 内部基準クロック
);
●Visual Basic
Declare Function UcntSetBaseClock Lib "IFUcnt.DLL"(_
ByVal hDeviceHandle As Long,_ ‘ デバイスハンドル
ByVal nChannel As Long,_ ‘ チャンネル選択
ByVal dwClock As Long_ ‘ 内部基準クロック
)As Long
●Delphi
function UcntSetBaseClock(
hDeviceHandle: THandle; // デバイスハンドル
nChannel: Integer; // チャンネル選択
dwClock: Dword // 内部基準クロック
): Integer; stdcall; external 'IFUcnt.DLL';
【パラメータ】
hDeviceHandle UcntOpen 関数で取得したインタフェースモジュールのデバイスハンドルを指定してくだ
さい。
nChannel 設定を行うチャンネルを指定してください。
dwClock 内部基準クロック設定値を指定してください。
設定範囲:0 ~ 16,777,215(FFFFFFh)
dwClock 基準クロック周期
0 停止
1 100 [ns]
・
・
・
・
・
・
16,777,215 1.6777215 [s]
GPC-6320 Help for Windows
© 2004, 2014 Interface Corporation. All rights reserved.
85
【戻り値】
正常終了した場合は、IFUCNT_ERROR_SUCCESSが返されます。
IFUCNT_ERROR_SUCCESS以外の値が返された場合については、『4.6 戻り値一覧』をご参照くだ
さい。
【使用例】
●C言語
INT nRet;
HANDLE hDeviceHandle;
hDeviceHandle = UcntOpen(“IFUCNT1”); :
:
nRet = UcntSetBaseClock(hDeviceHandle, 1, 1000 * 10);
●Visual Basic
Dim lpszName As String
Dim hDeviceHandle As Long
lpszName = "IFUCNT1" & Chr( 0 )
hDeviceHandle = UcntOpen(lpszName)
:
:
nRet = UcntSetBaseClock(hDeviceHandle, 1, 1000 * 10)
●Delphi
var
lpszName: String;
hDeviceHandle: THandle;
lpszName := 'IFUCNT1';
hDeviceHandle := UcntOpen(lpszName);
:
:
nRet := UcntSetBaseClock(hDeviceHandle, 1, 1000 * 10);
デバイス名「IFUCNT1」のデバイスのチャンネル 1の内部基準クロックを 1[ms]に設定します。
GPC-6320 Help for Windows
© 2004, 2014 Interface Corporation. All rights reserved.
86
22. UcntGetBaseClock
【機能】
内部基準クロック設定情報を取得します。
【書式】
●C言語
INT UcntGetBaseClock(
HANDLE hDeviceHandle, // デバイスハンドル
INT nChannel, // チャンネル選択
PDWORD pdwClock // 内部基準クロック取得変数
// へのポインタ
);
●Visual Basic
Declare Function UcntGetBaseClock Lib "IFUcnt.DLL"(_
ByVal hDeviceHandle As Long,_ ‘ デバイスハンドル
ByVal nChannel As Long,_ ‘ チャンネル選択
ByRef pdwClock As Long_ ‘ 内部基準クロック取得変数
‘ への参照渡し
)As Long
●Delphi
function UcntGetBaseClock(
hDeviceHandle: THandle; // デバイスハンドル
nChannel: Integer; // チャンネル選択
var pdwClock: Dword // 内部基準クロック取得変数
// への参照渡し
): Integer; stdcall; external 'IFUcnt.DLL';
【パラメータ】
hDeviceHandle UcntOpen 関数で取得したインタフェースモジュールのデバイスハンドルを指定してくだ
さい。
nChannel 設定情報を取得するチャンネルを指定してください。
GPC-6320 Help for Windows
© 2004, 2014 Interface Corporation. All rights reserved.
87
pdwClock 内部基準クロック設定値を格納する変数へのポインタを指定してください。
格納される値の詳細については下記の様になります。
設定範囲:0 ~ 16,777,215(FFFFFFh)
dwClock 基準クロック周期
0 停止
1 100 [ns]
・
・
・
・
・
・
16,777,215 1.6777215 [s]
【戻り値】
正常終了した場合は、IFUCNT_ERROR_SUCCESSが返されます。
IFUCNT_ERROR_SUCCESS以外の値が返された場合については、『4.6 戻り値一覧』をご参照くだ
さい。
【使用例】
●C言語
INT nRet;
HANDLE hDeviceHandle;
DWORD dwClock;
hDeviceHandle = UcntOpen(“IFUCNT1”); :
:
nRet = UcntGetBaseClock(hDeviceHandle, 1, &dwClock);
●Visual Basic
Dim lpszName As String
Dim hDeviceHandle As Long
Dim dwClock As Long
lpszName = "IFUCNT1" & Chr( 0 )
hDeviceHandle = UcntOpen(lpszName)
:
:
nRet = UcntGetBaseClock(hDeviceHandle, 1, dwClock)
GPC-6320 Help for Windows
© 2004, 2014 Interface Corporation. All rights reserved.
88
●Delphi
var
lpszName: String;
hDeviceHandle: THandle;
dwClock: Dword;
lpszName := 'IFUCNT1';
hDeviceHandle := UcntOpen(lpszName);
:
:
nRet := UcntGetBaseClock(hDeviceHandle, 1, dwClock);
デバイス名「IFUCNT1」のデバイスのチャンネル 1の内部基準クロック設定値を取得します。
GPC-6320 Help for Windows
© 2004, 2014 Interface Corporation. All rights reserved.
89
23. UcntSetTriggerConfig
【機能】
トリガ条件を設定します。
【書式】
●C言語
INT UcntSetTriggerConfig(
HANDLE hDeviceHandle, // デバイスハンドル
INT nChannel, // チャンネル選択
DWORD dwTrgStart, // スタートトリガ条件
DWORD dwTrgStop // ストップトリガ条件
);
●Visual Basic
Declare Function UcntSetTriggerConfig Lib "IFUcnt.DLL"(_
ByVal hDeviceHandle As Long,_ ‘ デバイスハンドル
ByVal nChannel As Long,_ ‘ チャンネル選択
ByVal dwTrgStart As Long,_ ‘ スタートトリガ条件
ByVal dwTrgStop As Long_ ‘ ストップトリガ条件
)As Long
●Delphi
function UcntSetTriggerConfig(
hDeviceHandle: THandle; // デバイスハンドル
nChannel: Integer; // チャンネル選択
dwTrgStart: Dword; // スタートトリガ条件
dwTrgStop: Dword // ストップトリガ条件
): Integer; stdcall; external 'IFUcnt.DLL';
【パラメータ】
hDeviceHandle UcntOpen 関数で取得したインタフェースモジュールのデバイスハンドルを指定してくだ
さい。
nChannel 設定を行うチャンネルを指定してください。
dwTrgStart スタートトリガ条件設定値を指定してください。
下記の識別子を組み合わせて指定します。
(2つ以上の条件を選択する場合には識別子を OR で指定します。)
識別子 内容
IFUCNT_LA_R LA の立ち上がりエッジ
IFUCNT_LA_F LA の立ち下がりエッジ
IFUCNT_LB_R LB の立ち上がりエッジ
IFUCNT_LB_F LB の立ち下がりエッジ
GPC-6320 Help for Windows
© 2004, 2014 Interface Corporation. All rights reserved.
90
dwTrgStop ストップトリガ条件設定値を指定してください。
下記の識別子を組み合わせて指定します。
(2つ以上の条件を選択する場合には識別子を OR で指定します。)
識別子 内容
IFUCNT_LA_R LA の立ち上がりエッジ
IFUCNT_LA_F LA の立ち下がりエッジ
IFUCNT_LB_R LB の立ち上がりエッジ
IFUCNT_LB_F LB の立ち下がりエッジ
【戻り値】
正常終了した場合は、IFUCNT_ERROR_SUCCESSが返されます。
IFUCNT_ERROR_SUCCESS以外の値が返された場合については、『4.6 戻り値一覧』をご参照くだ
さい。
【使用例】
●C言語
INT nRet;
HANDLE hDeviceHandle;
hDeviceHandle = UcntOpen(“IFUCNT1”); :
:
nRet = UcntSetTriggerConfig(hDeviceHandle, 2, IFUCNT_LA_R, IFUCNT_LB_F);
●Visual Basic
Dim lpszName As String
Dim hDeviceHandle As Long
lpszName = "IFUCNT1" & Chr( 0 )
hDeviceHandle = UcntOpen(lpszName)
:
:
nRet = UcntSetTriggerConfig(hDeviceHandle, 2, IFUCNT_LA_R, IFUCNT_LB_F)
GPC-6320 Help for Windows
© 2004, 2014 Interface Corporation. All rights reserved.
91
●Delphi
var
lpszName: String;
hDeviceHandle: THandle;
lpszName := 'IFUCNT1';
hDeviceHandle := UcntOpen(lpszName);
:
:
nRet := UcntSetTriggerConfig(hDeviceHandle, 2, IFUCNT_LA_R, IFUCNT_LB_F);
デバイス名「IFUCNT1」のデバイスのチャンネル 2 のトリガ条件(LA 立ち上がりスタート、LB
立ち上がりストップ)を設定します。
GPC-6320 Help for Windows
© 2004, 2014 Interface Corporation. All rights reserved.
92
24. UcntGetTriggerConfig
【機能】
トリガ条件設定値を取得します。
【書式】
●C言語
INT UcntGetTriggerConfig(
HANDLE hDeviceHandle, // デバイスハンドル
INT nChannel, // チャンネル選択
PDWORD pdwTrgStart, // スタートトリガ条件取得
// 変数へのポインタ
PDWORD pdwTrgStop // ストップトリガ条件取得
// 変数へのポインタ
);
●Visual Basic
Declare Function UcntGetTriggerConfig Lib "IFUcnt.DLL"(_
ByVal hDeviceHandle As Long,_ ‘ デバイスハンドル
ByVal nChannel As Long,_ ‘ チャンネル選択
ByRef pdwTrgStart As Long,_ ‘ スタートトリガ条件取得
‘ 変数への参照渡し
ByRef pdwTrgStop As Long_ ‘ ストップトリガ条件取得
‘ 変数への参照渡し
)As Long
●Delphi
function UcntGetTriggerConfig(
hDeviceHandle: THandle; // デバイスハンドル
nChannel: Integer; // チャンネル選択
var pdwTrgStart: Dword; // スタートトリガ条件取得
// 変数への参照渡し
var pdwTrgStop: Dword // ストップトリガ条件取得
// 変数への参照渡し
): Integer; stdcall; external 'IFUcnt.DLL';
【パラメータ】
hDeviceHandle UcntOpen 関数で取得したインタフェースモジュールのデバイスハンドルを指定してくだ
さい。
nChannel 設定情報を取得するチャンネルを指定してください。
dwTrgStart スタートトリガ条件設定値を格納する変数へのポインタを指定してください。
格納される値の詳細については下記の様になります。
GPC-6320 Help for Windows
© 2004, 2014 Interface Corporation. All rights reserved.
93
識別子 内容
IFUCNT_LA_R LA の立ち上がりエッジ
IFUCNT_LA_F LA の立ち下がりエッジ
IFUCNT_LB_R LB の立ち上がりエッジ
IFUCNT_LB_F LB の立ち下がりエッジ
dwTrgStop ストップトリガ条件設定値を格納する変数へのポインタを指定してください。
格納される値の詳細については下記の様になります。
識別子 内容
IFUCNT_LA_R LA の立ち上がりエッジ
IFUCNT_LA_F LA の立ち下がりエッジ
IFUCNT_LB_R LB の立ち上がりエッジ
IFUCNT_LB_F LB の立ち下がりエッジ
【戻り値】
正常終了した場合は、IFUCNT_ERROR_SUCCESSが返されます。
IFUCNT_ERROR_SUCCESS以外の値が返された場合については、『4.6 戻り値一覧』をご参照くだ
さい。
【使用例】
●C言語
INT nRet;
HANDLE hDeviceHandle;
DWORD dwTrgStart;
DWORD dwTrgStop;
hDeviceHandle = UcntOpen(“IFUCNT1”); :
:
nRet = UcntGetTriggerConfig(hDeviceHandle, 2, &dwTrgStart, &dwTrgStop);
●Visual Basic
Dim lpszName As String
Dim hDeviceHandle As Long
Dim dwTrgStart As Long
Dim dwTrgStop As Long
lpszName = "IFUCNT1" & Chr( 0 )
hDeviceHandle = UcntOpen(lpszName)
:
:
nRet = UcntGetTriggerConfig(hDeviceHandle, 2, dwTrgStart, dwTrgStop)
GPC-6320 Help for Windows
© 2004, 2014 Interface Corporation. All rights reserved.
94
●Delphi
var
lpszName: String;
hDeviceHandle: THandle;
dwTrgStart: Dword;
dwTrgStop: Dword;
lpszName := 'IFUCNT1';
hDeviceHandle := UcntOpen(lpszName);
:
:
nRet := UcntGetTriggerConfig(hDeviceHandle, 2, dwTrgStart, dwTrgStop);
デバイス名「IFUCNT1」のデバイスのチャンネル 2のトリガ条件設定値を取得します。
GPC-6320 Help for Windows
© 2004, 2014 Interface Corporation. All rights reserved.
95
25. UcntSetTriggerChannel
【機能】
トリガチャンネルを設定します。
【書式】
●C言語
INT UcntSetTriggerChannel(
HANDLE hDeviceHandle, // デバイスハンドル
INT nChannel, // チャンネル選択
INT nTrgChannel, // トリガチャンネル選択
DWORD dwTrgMode // トリガモード
);
●Visual Basic
Declare Function UcntSetTriggerChannel Lib "IFUcnt.DLL"(_
ByVal hDeviceHandle As Long,_ ‘ デバイスハンドル
ByVal nChannel As Long,_ ‘ チャンネル選択
ByVal nTrgChannel As Long,_ ‘ トリガチャンネル選択
ByVal dwTrgMode As Long_ ‘ トリガモード
)As Long
●Delphi
function UcntSetTriggerChannel(
hDeviceHandle: THandle; // デバイスハンドル
nChannel: Integer; // チャンネル選択
nTrgChannel: Integer; // トリガチャンネル選択
dwTrgMode: Dword // トリガモード
): Integer; stdcall; external 'IFUcnt.DLL';
【パラメータ】
hDeviceHandle UcntOpen 関数で取得したインタフェースモジュールのデバイスハンドルを指定してくだ
さい。
nChannel 設定を行うチャンネルを指定してください。
nTrgChannel トリガ要因として使用するチャンネルを指定してください。
GPC-6320 Help for Windows
© 2004, 2014 Interface Corporation. All rights reserved.
96
dwTrgMode トリガモードを指定してください。
スタート/ストップ機能の繰り返し設定を指定します。
識別子 内容
IFUCNT_TRG_NORMAL ノーマルモード(スタート/ストップを繰り返す)
IFUCNT_TRG_SINGLE シングルモード(1回のみスタート/ストップを行う)
【戻り値】
正常終了した場合は、IFUCNT_ERROR_SUCCESSが返されます。
IFUCNT_ERROR_SUCCESS以外の値が返された場合については、『4.6 戻り値一覧』をご参照くだ
さい。
【備考】
dwTrgChannel に指定したチャンネルのスタート・ストップトリガのタイミングで任意のチャン
ネルのカウンタ動作を制御することが可能となります。
UcntSetTriggerChannel(hDeviceHandle, 1, 1, IFUCNT_TRG_NORMAL);
UcntSetTriggerChannel(hDeviceHandle, 2, 1, IFUCNT_TRG_NORMAL);
UcntSetTriggerChannel(hDeviceHandle, 3, 1, IFUCNT_TRG_NORMAL);
UcntSetTriggerChannel(hDeviceHandle, 4, 1, IFUCNT_TRG_NORMAL);
上記の様に設定を行った場合、チャンネル 1に設定したのスタート・ストップの条件で、チャ
ンネル 1~チャンネル 4までのカウンタのスタート・ストップが同時に制御されます。
また、UcntStartCount 関数/ UcntStopCount 関数を実行する際には、トリガチャンネルに設定
したチャンネル(上記設定の場合はチャンネル 1)を指定して、カウンタの制御を行います。
【使用例】
●C言語
INT nRet;
HANDLE hDeviceHandle;
hDeviceHandle = UcntOpen(“IFUCNT1”); :
:
nRet = UcntSetTriggerConfig(hDeviceHandle, 4, IFUCNT_LA_R, IFUCNT_LB_F);
nRet = UcntSetTriggerChannel(hDeviceHandle, 1, 4, IFUCNT_TRG_NORMAL);
nRet = UcntSetTriggerChannel(hDeviceHandle, 2, 4, IFUCNT_TRG_NORMAL);
nRet = UcntSetTriggerChannel(hDeviceHandle, 3, 4, IFUCNT_TRG_NORMAL);
nRet = UcntSetTriggerChannel(hDeviceHandle, 4, 4, IFUCNT_TRG_NORMAL);
:
:
nRet = UcntStartCount(hDeviceHandle, 0x08, IFUCNT_CMD_EXWAIT);
GPC-6320 Help for Windows
© 2004, 2014 Interface Corporation. All rights reserved.
97
●Visual Basic
Dim lpszName As String
Dim hDeviceHandle As Long
lpszName = "IFUCNT1" & Chr( 0 )
hDeviceHandle = UcntOpen(lpszName)
:
:
nRet = UcntSetTriggerConfig(hDeviceHandle, 4, IFUCNT_LA_R, IFUCNT_LB_F)
nRet = UcntSetTriggerChannel(hDeviceHandle, 1, 4, IFUCNT_TRG_NORMAL)
nRet = UcntSetTriggerChannel(hDeviceHandle, 2, 4, IFUCNT_TRG_NORMAL)
nRet = UcntSetTriggerChannel(hDeviceHandle, 3, 4, IFUCNT_TRG_NORMAL)
nRet = UcntSetTriggerChannel(hDeviceHandle, 4, 4, IFUCNT_TRG_NORMAL)
:
:
nRet = UcntStartCount(hDeviceHandle, &H08, IFUCNT_CMD_EXWAIT)
●Delphi
var
lpszName: String;
hDeviceHandle: THandle;
lpszName := 'IFUCNT1';
hDeviceHandle := UcntOpen(lpszName);
:
:
nRet := UcntSetTriggerConfig(hDeviceHandle, 4, IFUCNT_LA_R, IFUCNT_LB_F);
nRet := UcntSetTriggerChannel(hDeviceHandle, 1, 4, IFUCNT_TRG_NORMAL);
nRet := UcntSetTriggerChannel(hDeviceHandle, 2, 4, IFUCNT_TRG_NORMAL);
nRet := UcntSetTriggerChannel(hDeviceHandle, 3, 4, IFUCNT_TRG_NORMAL);
nRet := UcntSetTriggerChannel(hDeviceHandle, 4, 4, IFUCNT_TRG_NORMAL);
:
:
nRet := UcntStartCount(hDeviceHandle, $08, IFUCNT_CMD_EXWAIT);
デバイス名「IFUCNT1」のデバイスのチャンネル 1~チャンネル 4 のスタート/ストップトリガ
をチャンネル 4に設定します。
(カウンタ制御時にはチャンネル 4に対してコマンドを実行します。)
GPC-6320 Help for Windows
© 2004, 2014 Interface Corporation. All rights reserved.
98
26. UcntGetTriggerChannel
【機能】
トリガチャンネルを設定します。
【書式】
●C言語
INT UcntGetTriggerChannel(
HANDLE hDeviceHandle, // デバイスハンドル
INT nChannel, // チャンネル選択
PINT pnTrgChannel, // トリガチャンネル取得変数
// へのポインタ
PDWORD pdwTrgMode // トリガモード取得変数
// へのポインタ
);
●Visual Basic
Declare Function UcntGetTriggerChannel Lib "IFUcnt.DLL"(_
ByVal hDeviceHandle As Long,_ ‘ デバイスハンドル
ByVal nChannel As Long,_ ‘ チャンネル選択
ByRef pnTrgChannel As Long,_ ‘ トリガチャンネル取得変数
‘ への参照渡し
ByRef pdwTrgMode As Long_ ‘ トリガモード取得変数
‘ への参照渡し
)As Long
●Delphi
function UcntGetTriggerChannel(
hDeviceHandle: THandle; // デバイスハンドル
nChannel: Integer; // チャンネル選択
var pnTrgChannel: Integer; // トリガチャンネル取得変数
// への参照渡し
var pdwTrgMode: Dword // トリガモード取得変数
// への参照渡し
): Integer; stdcall; external 'IFUcnt.DLL';
【パラメータ】
hDeviceHandle UcntOpen 関数で取得したインタフェースモジュールのデバイスハンドルを指定してくだ
さい。
nChannel 設定情報を取得するチャンネルを指定してください。
pnTrgChannel トリガチャンネル設定値を格納する変数へのポインタを指定してください。
GPC-6320 Help for Windows
© 2004, 2014 Interface Corporation. All rights reserved.
99
pdwTrgMode トリガモード設定値を格納する変数へのポインタを指定してください。
下記の値が格納されます。
識別子 内容
IFUCNT_TRG_NORMAL ノーマルモード(スタート/ストップを繰り返す)
IFUCNT_TRG_SINGLE シングルモード(1回のみスタート/ストップを行う)
【戻り値】
正常終了した場合は、IFUCNT_ERROR_SUCCESSが返されます。
IFUCNT_ERROR_SUCCESS以外の値が返された場合については、『4.6 戻り値一覧』をご参照くだ
さい。
【使用例】
●C言語
INT nRet;
INT nTrgChannel;
DWORD dwTrgMode;
HANDLE hDeviceHandle;
hDeviceHandle = UcntOpen(“IFUCNT1”); :
:
nRet = UcntGetTriggerChannel(hDeviceHandle, 1, &nTrgChannel, &dwTrgMode);
●Visual Basic
Dim lpszName As String
Dim hDeviceHandle As Long
Dim nTrgChannel As Long
Dim dwTrgMode As Long
lpszName = "IFUCNT1" & Chr( 0 )
hDeviceHandle = UcntOpen(lpszName)
:
:
nRet = UcntGetTriggerChannel(hDeviceHandle, 1, nTrgChannel, dwTrgMode)
GPC-6320 Help for Windows
© 2004, 2014 Interface Corporation. All rights reserved.
100
●Delphi
var
lpszName: String;
hDeviceHandle: THandle;
nTrgChannel: Integer;
dwTrgMode: Dword;
lpszName := 'IFUCNT1';
hDeviceHandle := UcntOpen(lpszName);
:
:
nRet := UcntGetTriggerChannel(hDeviceHandle, 1, nTrgChannel, dwTrgMode);
デバイス名「IFUCNT1」のデバイスのチャンネル 1のトリガチャンネル設定条件を取得します。
GPC-6320 Help for Windows
© 2004, 2014 Interface Corporation. All rights reserved.
101
27. UcntSetComparatorConfig
【機能】
一致検出条件を設定します。
【書式】
●C言語
INT UcntSetComparatorConfig(
HANDLE hDeviceHandle, // デバイスハンドル
INT nChannel, // チャンネル選択
DWORD dwCmpChSel, // チャンネル条件(OUTA)
DWORD dwOUTAConfig, // 一致検出条件(OUTA)
DWORD dwOUTBConfig // 一致検出条件(OUTB)
);
●Visual Basic
Declare Function UcntSetComparatorConfig Lib "IFUcnt.DLL"(_
ByVal hDeviceHandle As Long,_ ‘ デバイスハンドル
ByVal nChannel As Long,_ ‘ チャンネル選択
ByVal dwCmpChSel As Long,_ ‘ チャンネル条件(OUTA)
ByVal dwOUTAConfig As Long,_ ‘ 一致検出条件(OUTA)
ByVal dwOUTBConfig As Long_ ‘ 一致検出条件(OUTB)
)As Long
●Delphi
function UcntSetComparatorConfig(
hDeviceHandle: THandle; // デバイスハンドル
nChannel: Integer; // チャンネル選択
dwCmpChSel: Dword; // チャンネル条件(OUTA)
dwOUTAConfig: Dword; // 一致検出条件(OUTA)
dwOUTBConfig: Dword // 一致検出条件(OUTB)
): Integer; stdcall; external 'IFUcnt.DLL';
【パラメータ】
hDeviceHandle UcntOpen 関数で取得したインタフェースモジュールのデバイスハンドルを指定してくだ
さい。
nChannel 設定を行うチャンネルを指定してください。
dwCmpChSel 一致検出条件を使用するチャンネル設定を指定してください。
ビット bit31~4 bit3 bit2 bit1 bit0
内容 予約 AEQCH4 AEQCH3 AEQCH2 AEQCH1
GPC-6320 Help for Windows
© 2004, 2014 Interface Corporation. All rights reserved.
102
AEQCH4~AEQCH1:チャンネル条件設定を指定します。
AEQCH4 AEQCH3 AEQCH2 AEQCH1 内容
0 0 0 0 設定禁止
0 0 0 1 CH1 の比較一致条件
: : : : :
1 1 1 1 CH1~CH4 の比較一致条件の AND 条件
※ 本設定で指定した一致検出条件は OUTA にのみ有効となります。
dwOUTAConfig OUTA 一致検出条件設定値を指定してください。
ビット bit31~bit7 bit6 bit5 bit4 bit3 bit2 bit1 bit0
内容 予約 AEQ1 AEQ0 AEQT AEQ
LD
AEQ
OP2
AEQ
OP1
AEQ
OP0
AEQOP2~AEQOP0:OUTA の出力形式設定を指定します。
AEQOP2 AEQOP1 AEQOP0 内容
0 0 0 一致検出出力無効
0 0 1 条件が一致している間 Low 出力
0 1 0 条件が一致している間 High 出力
0 1 1 1[us](Low パルス)
1 0 0 10[us](Low パルス)
1 0 1 100[us](Low パルス)
1 1 0 Low ラッチ出力
1 1 1 High ラッチ出力
AEQLD:一致検出時のプリロード設定を指定します。
AEQLD 内容
0 プリロードしない
1 プリロードする
AEQT:比較タイミング設定を指定します。
AEQT 内容
0 常に比較
1 リードレジスタにラッチ時に比較
AEQ1、AEQ0:比較条件設定を指定します。
AEQ1 AEQ0 内容
0 0 カウンタ値 = 比較レジスタ A
0 1 カウンタ値 ≦ 比較レジスタ A
1 0 カウンタ値 ≧ 比較レジスタ A
1 1 比較レジスタ A ≦ カウンタ値 ≦ 比較レジスタ B
GPC-6320 Help for Windows
© 2004, 2014 Interface Corporation. All rights reserved.
103
dwOUTBConfig OUTB 一致検出条件設定値を指定してください。
ビット bit31~bit7 bit6 bit5 bit4 bit3 bit2 bit1 bit0
内容 予約 BEQ1 BEQ0 BEQT BEQ
LD
BEQ
OP2
BEQ
OP1
BEQ
OP0
BEQOP2~BEQOP0:OUTB の出力形式設定を指定します。
BEQOP2 BEQOP1 BEQOP0 内容
0 0 0 一致検出出力無効
0 0 1 条件が一致している間 Low 出力
0 1 0 条件が一致している間 High 出力
0 1 1 1[us](Low パルス)
1 0 0 10[us](Low パルス)
1 0 1 100[us](Low パルス)
1 1 0 Low ラッチ出力
1 1 1 High ラッチ出力
BEQLD:一致検出時のプリロード設定を指定します。
BEQLD 内容
0 プリロードしない
1 プリロードする
BEQT:比較タイミング設定を指定します。
BEQT 内容
0 常に比較
1 リードレジスタにラッチ時に比較
BEQ1、BEQ0:比較条件設定を指定します。
BEQ1 BEQ0 内容
0 0 カウンタ値 = 比較レジスタ B
0 1 カウンタ値 ≦ 比較レジスタ B
1 0 カウンタ値 ≧ 比較レジスタ B
1 1 比較レジスタ A ≦ カウンタ値 ≦ 比較レジスタ B
【戻り値】
正常終了した場合は、IFUCNT_ERROR_SUCCESSが返されます。
IFUCNT_ERROR_SUCCESS以外の値が返された場合については、『4.6 戻り値一覧』をご参照くだ
さい。
GPC-6320 Help for Windows
© 2004, 2014 Interface Corporation. All rights reserved.
104
【使用例】
●C言語
INT nRet;
HANDLE hDeviceHandle;
hDeviceHandle = UcntOpen(“IFUCNT1”); :
:
nRet = UcntSetComparatorConfig(hDeviceHandle, 1, 0x1, 0x01, 0x00);
●Visual Basic
Dim lpszName As String
Dim hDeviceHandle As Long
lpszName = "IFUCNT1" & Chr( 0 )
hDeviceHandle = UcntOpen(lpszName)
:
:
nRet = UcntSetComparatorConfig(hDeviceHandle, 1, &H1, &H01, &H00)
●Delphi
var
lpszName: String;
hDeviceHandle: THandle;
lpszName := 'IFUCNT1';
hDeviceHandle := UcntOpen(lpszName);
:
:
nRet := UcntSetComparatorConfig(hDeviceHandle, 1, $1, $01, $00);
デバイス名「IFUCNT1」のデバイスのチャンネル 1 の一致検出条件(OUTA:チャンネル 1 条件
を使用、比較レジスタ A との一致時に Low レベル出力、OUTB:一致検出なし)を設定します。
GPC-6320 Help for Windows
© 2004, 2014 Interface Corporation. All rights reserved.
105
28. UcntGetComparatorConfig
【機能】
一致検出条件設定情報を取得します。
【書式】
●C言語
INT UcntGetComparatorConfig(
HANDLE hDeviceHandle, // デバイスハンドル
INT nChannel, // チャンネル選択
PDWORD pdwCmpChSel, // チャンネル条件(OUTA)
// 取得変数へのポインタ
PDWORD pdwOUTAConfig, // 一致検出条件(OUTA)
// 取得変数へのポインタ
PDWORD pdwOUTBConfig // 一致検出条件(OUTB)
// 取得変数へのポインタ
);
●Visual Basic
Declare Function UcntGetComparatorConfig Lib "IFUcnt.DLL"(_
ByVal hDeviceHandle As Long,_ ‘ デバイスハンドル
ByVal nChannel As Long,_ ‘ チャンネル選択
ByRef pdwCmpChSel As Long,_ ‘ チャンネル条件(OUTA)
‘ 取得変数への参照渡し
ByRef pdwOUTAConfig As Long,_ ‘ 一致検出条件(OUTA)
‘ 取得変数への参照渡し
ByRef pdwOUTBConfig As Long_ ‘ 一致検出条件(OUTB)
‘ 取得変数への参照渡し
)As Long
●Delphi
function UcntGetComparatorConfig(
hDeviceHandle: THandle; // デバイスハンドル
nChannel: Integer; // チャンネル選択
var pdwCmpChSel: Dword; // チャンネル条件(OUTA)
// 取得変数への参照渡し
var pdwOUTAConfig: Dword; // 一致検出条件(OUTA)
// 取得変数への参照渡し
var pdwOUTBConfig: Dword // 一致検出条件(OUTB)
// 取得変数への参照渡し
): Integer; stdcall; external 'IFUcnt.DLL';
GPC-6320 Help for Windows
© 2004, 2014 Interface Corporation. All rights reserved.
106
【パラメータ】
hDeviceHandle UcntOpen 関数で取得したインタフェースモジュールのデバイスハンドルを指定してくだ
さい。
nChannel 設定情報を取得するチャンネルを指定してください。
pdwCmpChSel 一致検出条件を使用するチャンネル設定値を格納する変数へのポインタを指定してくだ
さい。
格納される値の詳細については下記の様になります。
ビット bit31~4 bit3 bit2 bit1 bit0
内容 予約 AEQCH4 AEQCH3 AEQCH2 AEQCH1
AEQCH4~AEQCH1:チャンネル条件設定を取得します。
AEQCH4 AEQCH3 AEQCH2 AEQCH1 内容
0 0 0 0 設定禁止
0 0 0 1 CH1 の比較一致条件
: : : : :
1 1 1 1 CH1~CH4 の比較一致条件の AND 条件
※ 本設定で取得した一致検出条件は OUTA にのみ有効となります。
pdwOUTAConfig OUTA 一致検出条件設定値を格納する変数へのポインタを指定してください。
格納される値の詳細については下記の様になります。
ビット bit31~bit7 bit6 bit5 bit4 bit3 bit2 bit1 bit0
内容 予約 AEQ1 AEQ0 AEQT AEQ
LD
AEQ
OP2
AEQ
OP1
AEQ
OP0
AEQOP2~AEQOP0:OUTA の出力形式設定を取得します。
AEQOP2 AEQOP1 AEQOP0 内容
0 0 0 一致検出出力無効
0 0 1 条件が一致している間 Low 出力
0 1 0 条件が一致している間 High 出力
0 1 1 1[us](Low パルス)
1 0 0 10[us](Low パルス)
1 0 1 100[us](Low パルス)
1 1 0 Low ラッチ出力
1 1 1 High ラッチ出力
GPC-6320 Help for Windows
© 2004, 2014 Interface Corporation. All rights reserved.
107
AEQLD:一致検出時のプリロード設定を取得します。
AEQLD 内容
0 プリロードしない
1 プリロードする
AEQT:比較タイミング設定を取得します。
AEQT 内容
0 常に比較
1 リードレジスタにラッチ時に比較
AEQ1、AEQ0:比較条件設定を取得します。
AEQ1 AEQ0 内容
0 0 カウンタ値 = 比較レジスタ A
0 1 カウンタ値 ≦ 比較レジスタ A
1 0 カウンタ値 ≧ 比較レジスタ A
1 1 比較レジスタ A ≦ カウンタ値 ≦ 比較レジスタ B
pdwOUTBConfig OUTB 一致検出条件設定値を格納する変数へのポインタを指定してください。
格納される値の詳細については下記の様になります。
ビット bit31~bit7 bit6 bit5 bit4 bit3 bit2 bit1 bit0
内容 予約 BEQ1 BEQ0 BEQT BEQ
LD
BEQ
OP2
BEQ
OP1
BEQ
OP0
BEQOP2~BEQOP0:OUTA の出力形式設定を取得します。
BEQOP2 BEQOP1 BEQOP0 内容
0 0 0 一致検出出力無効
0 0 1 条件が一致している間 Low 出力
0 1 0 条件が一致している間 High 出力
0 1 1 1[us](Low パルス)
1 0 0 10[us](Low パルス)
1 0 1 100[us](Low パルス)
1 1 0 Low ラッチ出力
1 1 1 High ラッチ出力
BEQLD:一致検出時のプリロード設定を取得します。
BEQLD 内容
0 プリロードしない
1 プリロードする
GPC-6320 Help for Windows
© 2004, 2014 Interface Corporation. All rights reserved.
108
BEQT:比較タイミング設定を取得します。
BEQT 内容
0 常に比較
1 リードレジスタにラッチ時に比較
BEQ1、BEQ0:比較条件設定を取得します。
BEQ1 BEQ0 内容
0 0 カウンタ値 = 比較レジスタ B
0 1 カウンタ値 ≦ 比較レジスタ B
1 0 カウンタ値 ≧ 比較レジスタ B
1 1 比較レジスタ A ≦ カウンタ値 ≦ 比較レジスタ B
【戻り値】
正常終了した場合は、IFUCNT_ERROR_SUCCESSが返されます。
IFUCNT_ERROR_SUCCESS以外の値が返された場合については、『4.6 戻り値一覧』をご参照くだ
さい。
【使用例】
●C言語
INT nRet;
HANDLE hDeviceHandle;
DWORD dwCmpChSel;
DWORD dwOUTAConfig;
DWORD dwOUTBConfig;
hDeviceHandle = UcntOpen(“IFUCNT1”); :
:
nRet = UcntGetComparatorConfig(hDeviceHandle, 1, &dwCmpChSel, &dwOUTAConfig,
&dwOUTBConfig);
●Visual Basic
Dim lpszName As String
Dim hDeviceHandle As Long
Dim dwCompChannel As Long
Dim dwOUTAConfig As Long
Dim dwOUTBConfig As Long
lpszName = "IFUCNT1" & Chr( 0 )
hDeviceHandle = UcntOpen(lpszName)
:
:
nRet = UcntGetComparatorConfig(hDeviceHandle, 1, dwCmpChSel, dwOUTAConfig,
dwOUTBChannel)
GPC-6320 Help for Windows
© 2004, 2014 Interface Corporation. All rights reserved.
109
●Delphi
var
lpszName: String;
hDeviceHandle: THandle;
dwCompChannel: Dword;
dwOUTAConfig: Dword;
dwOUTBConfig: Dword;
lpszName := 'IFUCNT1';
hDeviceHandle := UcntOpen(lpszName);
:
:
nRet := UcntGetComparatorConfig(hDeviceHandle, 1, dwCmpChSel, dwOUTAConfig,
dwOUTBChannel);
デバイス名「IFUCNT1」のデバイスのチャンネル 1の一致検出条件設定情報を取得します。
GPC-6320 Help for Windows
© 2004, 2014 Interface Corporation. All rights reserved.
110
29. UcntSetFilter
【機能】
デジタルフィルタを設定します。
【書式】
●C言語
INT UcntSetFilter(
HANDLE hDeviceHandle, // デバイスハンドル
INT nChannel, // チャンネル選択
DWORD dwFilter // デジタルフィルタ
);
●Visual Basic
Declare Function UcntSetFilter Lib "IFUcnt.DLL"(_
ByVal hDeviceHandle As Long,_ ‘ デバイスハンドル
ByVal nChannel As Long,_ ‘ チャンネル選択
ByVal dwFilter As Long_ ‘ デジタルフィルタ
)As Long
●Delphi
function UcntSetFilter(
hDeviceHandle: THandle; // デバイスハンドル
nChannel: Integer; // チャンネル選択
dwFilter: Dword // デジタルフィルタ
): Integer; stdcall; external 'IFUcnt.DLL';
【パラメータ】
hDeviceHandle UcntOpen 関数で取得したインタフェースモジュールのデバイスハンドルを指定してくだ
さい。
nChannel 設定を行うチャンネルを指定してください。
dwFilter デジタルフィルタ設定値を指定してください。
ビット bit15 bit14 bit13 bit12 bit11 bit10 bit9 bit8
内容 FCLK FCNT14 FCNT13 FCNT12 FCNT11 FCNT10 FCNT9 FCNT8
ビット bit7 bit6 bit5 bit4 bit3 bit2 bit1 bit0
内容 FCNT7 FCNT6 FCNT5 FCNT4 FCNT3 FCNT2 FCNT1 FCNT0
GPC-6320 Help for Windows
© 2004, 2014 Interface Corporation. All rights reserved.
111
FCLK:デジタルフィルタの基準クロックを指定します。
FCNT14~FCNT0:デジタルフィルタのカウント数を指定します。
0 1 基準クロック
カウント数 FCLK
FCNT14~FCNT0 100[ns] 10[us]
0 停止 停止
1 100[ns] 10[us]
2 200[ns] 20[us]
: : :
32,767 3.2767[ms] 327.67[ms]
【戻り値】
正常終了した場合は、IFUCNT_ERROR_SUCCESSが返されます。
IFUCNT_ERROR_SUCCESS以外の値が返された場合については、『4.6 戻り値一覧』をご参照くだ
さい。
【使用例】
●C言語
INT nRet;
HANDLE hDeviceHandle;
hDeviceHandle = UcntOpen(“IFUCNT1”); :
:
nRet = UcntSetFilter(hDeviceHandle, 1, 0x8064);
●Visual Basic
Dim lpszName As String
Dim hDeviceHandle As Long
lpszName = "IFUCNT1" & Chr( 0 )
hDeviceHandle = UcntOpen(lpszName)
:
:
nRet = UcntSetFilter(hDeviceHandle, 1, &H8064)
GPC-6320 Help for Windows
© 2004, 2014 Interface Corporation. All rights reserved.
112
●Delphi
var
lpszName: String;
hDeviceHandle: THandle;
lpszName := 'IFUCNT1';
hDeviceHandle := UcntOpen(lpszName);
:
:
nRet = UcntSetFilter(hDeviceHandle, 1, $8064);
デバイス名「IFUCNT1」のデバイスのチャンネル 1のデジタルフィルタ(フィルタ周期 1ms)を
設定します。
GPC-6320 Help for Windows
© 2004, 2014 Interface Corporation. All rights reserved.
113
30. UcntGetFilter
【機能】
デジタルフィルタ設定情報を取得します。
【書式】
●C言語
INT UcntGetFilter(
HANDLE hDeviceHandle, // デバイス番号
INT nChannel, // 取得チャンネル
PDWORD pdwFilter // デジタルフィルタ取得変数
// へのポインタ
);
●Visual Basic
Declare Function UcntGetFilter Lib "IFUcnt.DLL"(_
ByVal hDeviceHandle, As Long,_ ‘ デバイス番号
ByVal nChannel, As Long,_ ‘ 取得チャンネル
ByRef pdwFilter As Long_ ‘ デジタルフィルタ取得変数
‘ への参照渡し
)As Long
●Delphi
function UcntGetFilter(
hDeviceHandle: THandle; // デバイス番号
nChannel: Integer; // 取得チャンネル
var pdwFilter: Dword // デジタルフィルタ取得変数
// への参照渡し
): Integer; stdcall; external 'IFUcnt.DLL';
【パラメータ】
hDeviceHandle UcntOpen 関数で取得したインタフェースモジュールのデバイスハンドルを指定してくだ
さい。
nChannel 設定情報を取得するチャンネルを指定してください。
pdwFilter デジタルフィルタ設定値を格納する変数へのポインタを指定してください。
格納される値の詳細については下記の様になります。
ビット bit15 bit14 bit13 bit12 bit11 bit10 bit9 bit8
内容 FCLK FCNT14 FCNT13 FCNT12 FCNT11 FCNT10 FCNT9 FCNT8
ビット bit7 bit6 bit5 bit4 bit3 bit2 bit1 bit0
内容 FCNT7 FCNT6 FCNT5 FCNT4 FCNT3 FCNT2 FCNT1 FCNT0
GPC-6320 Help for Windows
© 2004, 2014 Interface Corporation. All rights reserved.
114
FCLK:デジタルフィルタの基準クロックを取得します。
FCNTR14~FCNT0:デジタルフィルタのカウントを取得します。
0 1 基準クロック
カウント数 FCLK
FCNT14~FCNT0 100[ns] 10[us]
0 停止 停止
1 100[ns] 10[us]
2 200[ns] 20[us]
: : :
32,767 3.2767[ms] 327.67[ms]
【戻り値】
正常終了した場合は、IFUCNT_ERROR_SUCCESSが返されます。
IFUCNT_ERROR_SUCCESS以外の値が返された場合については、『4.6 戻り値一覧』をご参照くだ
さい。
【使用例】
●C言語
INT nRet;
HANDLE hDeviceHandle;
DWORD dwFilter;
hDeviceHandle = UcntOpen(“IFUCNT1”); :
:
nRet = UcntGetFilter(hDeviceHandle, 1, &dwFilter);
●Visual Basic
Dim lpszName As String
Dim hDeviceHandle As Long
Dim dwFilter As Long
lpszName = "IFUCNT1" & Chr( 0 )
hDeviceHandle = UcntOpen(lpszName)
:
:
nRet = UcntGetFilter(hDeviceHandle, 1, dwFilter)
GPC-6320 Help for Windows
© 2004, 2014 Interface Corporation. All rights reserved.
115
●Delphi
var
lpszName: String;
hDeviceHandle: THandle;
dwFilter: Dword;
lpszName := 'IFUCNT1';
hDeviceHandle := UcntOpen(lpszName);
:
:
nRet := UcntGetFilter(hDeviceHandle, 1, dwFilter);
デバイス名「IFUCNT1」のデバイスのチャンネル 1のデジタルフィルタ設定情報を取得します。
GPC-6320 Help for Windows
© 2004, 2014 Interface Corporation. All rights reserved.
116
31. UcntSetLatchMode
【機能】
ラッチモードを設定します。
【書式】
●C言語
INT UcntSetLatchMode(
HANDLE hDeviceHandle, // デバイスハンドル
INT nChannel, // チャンネル選択
DWORD dwLatchMode // ラッチモード
);
●Visual Basic
Declare Function UcntSetLatchMode Lib "IFUcnt.DLL"(_
ByVal hDeviceHandle As Long,_ ‘ デバイスハンドル
ByVal nChannel As Long,_ ‘ チャンネル選択
ByVal dwLatchMode As Long_ ‘ ラッチモード
)As Long
●Delphi
function UcntSetLatchMode(
hDeviceHandle: THandle; // デバイスハンドル
nChannel: Integer; // チャンネル選択
dwLatchMode: Dword // ラッチモード
): Integer; stdcall; external 'IFUcnt.DLL';
【パラメータ】
hDeviceHandle UcntOpen 関数で取得したインタフェースモジュールのデバイスハンドルを指定してくだ
さい。
nChannel 設定を行うチャンネルを指定してください。
GPC-6320 Help for Windows
© 2004, 2014 Interface Corporation. All rights reserved.
117
dwLatchMode ラッチモード設定値を指定してください。
ビット bit31~16
内容 予約
ビット bit15 bit14 bit13~bit12 bit11 bit10 bit9~bit8
内容 SYNC2 SYNC1 予約 C/B PEAK 予約
ビット bit7 bit6 bit5 bit4 bit3 bit2 bit1 bit0
内容 CKL
LOAD
EXL
LOAD
予約 CKL LBF
LT
LBR
LT
LAF
LT
LAR
LT
※ SYNC1, SYNC2 は PCI-632302 のみ設定できます。
※ PEAK, C/B は PCI-632304 のみ設定できます。
LARLT:LA 立ち上がりでのラッチ設定を指定します。
LAFLT:LA 立ち下がりでのラッチ設定を指定します。
LBRLT:LB 立ち上がりでのラッチ設定を指定します。
LBFLT:LB 立ち下がりでのラッチ設定を指定します。
LBFLT、LBRLT、LAFLT、LARLT 内容
0 無効
1 有効
CKL:内部基準クロックによるラッチ設定を指定します。
CKL 内容
0 無効
1 有効
EXLLOAD:外部ラッチ後のカウンタロード設定を指定します。
EXLLOAD 内容
0 ロードしない
1 ロードする
CKLLOAD:内部基準クロックラッチ後のカウンタロード設定を指定します。
CKLLOAD 内容
0 ロードしない
1 ロードする
GPC-6320 Help for Windows
© 2004, 2014 Interface Corporation. All rights reserved.
118
PEAK:ピークホールド(カウンタの回転方向が変わったとき)でのラッチ設定を指定します。
※PCI-632304 のみ設定できます。
PEAK 内容
0 無効
1 有効
C/B:キャリー/ボロー発生によるラッチ設定を指定します。
※PCI-632304 のみ設定できます。
C/B 内容
0 無効
1 有効
SYNC1:内部同期ライン 1によるラッチ設定を指定します。
※PCI-632302 のみ設定できます。
SYNC1 内容
0 無効
1 有効
SYNC2:内部同期ライン 2によるラッチ設定を指定します。
※PCI-632302 のみ設定できます。
SYNC2 内容
0 無効
1 有効
GPC-6320 Help for Windows
© 2004, 2014 Interface Corporation. All rights reserved.
119
【戻り値】
正常終了した場合は、IFUCNT_ERROR_SUCCESSが返されます。
IFUCNT_ERROR_SUCCESS以外の値が返された場合については、『4.6 戻り値一覧』をご参照くだ
さい。
【使用例】
●C言語
INT nRet;
HANDLE hDeviceHandle;
hDeviceHandle = UcntOpen(“IFUCNT1”); :
:
nRet = UcntSetLatchMode(hDeviceHandle, 1, 0x800);
●Visual Basic
Dim lpszName As String
Dim hDeviceHandle As Long
lpszName = "IFUCNT1" & Chr( 0 )
hDeviceHandle = UcntOpen(lpszName)
:
:
nRet = UcntSetLatchMode(hDeviceHandle, 1, &H800)
●Delphi
var
lpszName: String;
hDeviceHandle: THandle;
lpszName := 'IFUCNT1';
hDeviceHandle := UcntOpen(lpszName);
:
:
nRet = UcntSetLatchMode(hDeviceHandle, 1, $800);
デバイス名「IFUCNT1」のデバイスのチャンネル 1のラッチモード(キャリー/ボロー発生によ
るラッチ)を設定します。
GPC-6320 Help for Windows
© 2004, 2014 Interface Corporation. All rights reserved.
120
32. UcntGetLatchMode
【機能】
ラッチモードの設定情報を取得します。
【書式】
●C言語
INT UcntGetLatchMode(
HANDLE hDeviceHandle, // デバイス番号
INT nChannel, // 取得チャンネル
PDWORD pdwLatchMode // ラッチモード取得変数
// へのポインタ
);
●Visual Basic
Declare Function UcntGetLatchMode Lib "IFUcnt.DLL"(_
ByVal hDeviceHandle, As Long,_ ‘ デバイス番号
ByVal nChannel, As Long,_ ‘ 取得チャンネル
ByRef pdwLatchMode As Long_ ‘ ラッチモード取得変数
‘ への参照渡し
)As Long
●Delphi
function UcntGetLatchMode(
hDeviceHandle: THandle; // デバイス番号
nChannel: Integer; // 取得チャンネル
var pdwLatchMode: Dword // ラッチモード取得変数
// への参照渡し
): Integer; stdcall; external 'IFUcnt.DLL';
【パラメータ】
hDeviceHandle UcntOpen 関数で取得したインタフェースモジュールのデバイスハンドルを指定してくだ
さい。
nChannel 設定情報を取得するチャンネルを指定してください。
GPC-6320 Help for Windows
© 2004, 2014 Interface Corporation. All rights reserved.
121
pdwLatchMode ラッチモード設定値を格納する変数へのポインタを指定してください。
格納される値の詳細については下記の様になります。
ビット bit31~16
内容 予約
ビット bit15 bit14 bit13~bit12 bit11 bit10 bit9~bit8
内容 SYNC2 SYNC1 予約 C/B PEAK 予約
ビット bit7 bit6 bit5 bit4 bit3 bit2 bit1 bit0
内容 CKL
LOAD
EXL
LOAD
予約 CKL LBF
LT
LBR
LT
LAF
LT
LAR
LT
LARLT:LA 立ち上がりでのラッチ設定を取得します。
LAFLT:LA 立ち下がりでのラッチ設定を取得します。
LBRLT:LB 立ち上がりでのラッチ設定を取得します。
LBFLT:LB 立ち下がりでのラッチ設定を取得します。
LBFLT、LBRLT、LAFLT、LARLT 内容
0 無効
1 有効
CKL:内部基準クロックによるラッチ設定を取得します。
CKL 内容
0 無効
1 有効
EXLLOAD:外部ラッチ後のカウンタロード設定を取得します。
EXLLOAD 内容
0 ロードしない
1 ロードする
CKLLOAD:内部基準クロックラッチ後のカウンタロード設定を取得します。
CKLLOAD 内容
0 ロードしない
1 ロードする
PEAK:ピークホールド(カウンタの回転方向が変わったとき)でのラッチ設定を取得します。
PEAK 内容
0 無効
1 有効
GPC-6320 Help for Windows
© 2004, 2014 Interface Corporation. All rights reserved.
122
C/B:キャリー/ボロー発生によるラッチ設定を取得します。
C/B 内容
0 無効
1 有効
SYNC1:内部同期ライン 1によるラッチ設定を取得します。
SYNC1 内容
0 無効
1 有効
SYNC2:内部同期ライン 2によるラッチ設定を取得します。
SYNC2 内容
0 無効
1 有効
【戻り値】
正常終了した場合は、IFUCNT_ERROR_SUCCESSが返されます。
IFUCNT_ERROR_SUCCESS以外の値が返された場合については、『4.6 戻り値一覧』をご参照くだ
さい。
【使用例】
●C言語
INT nRet;
HANDLE hDeviceHandle;
DWORD dwLatchMode;
hDeviceHandle = UcntOpen(“IFUCNT1”); :
:
nRet = UcntGetLatchMode(hDeviceHandle, 1, &dwLatchMode);
●Visual Basic
Dim lpszName As String
Dim hDeviceHandle As Long
Dim dwLatchMode As Long
lpszName = "IFUCNT1" & Chr( 0 )
hDeviceHandle = UcntOpen(lpszName)
:
:
nRet = UcntGetLatchMode(hDeviceHandle, 1, dwLatchMode)
GPC-6320 Help for Windows
© 2004, 2014 Interface Corporation. All rights reserved.
123
●Delphi
var
lpszName: String;
hDeviceHandle: THandle;
dwLatchMode: Dword;
lpszName := 'IFUCNT1';
hDeviceHandle := UcntOpen(lpszName);
:
:
nRet := UcntGetLatchMode(hDeviceHandle, 1, dwLatchMode);
デバイス名「IFUCNT1」のデバイスのチャンネル 1のラッチモードの設定情報を取得します。
GPC-6320 Help for Windows
© 2004, 2014 Interface Corporation. All rights reserved.
124
33. UcntSetCounter
【機能】
カウンタ値を設定します。
【書式】
●C言語
INT UcntSetCounter(
HANDLE hDeviceHandle, // デバイスハンドル
DWORD dwChSel, // チャンネル選択
PDWORD pdwCounter // プリロードデータを格納
// する配列へのポインタ
);
●Visual Basic
Declare Function UcntSetCounter Lib "IFUcnt.DLL"(_
ByVal hDeviceHandle As Long,_ ‘ デバイスハンドル
ByVal dwChSel As Long,_ ‘ チャンネル選択
ByRef pdwCounter As Long_ ‘ プリロードデータを格納
‘ する配列への参照渡し
)As Long
●Delphi
function UcntSetCounter(
hDeviceHandle: THandle; // デバイスハンドル
dwChSel: Dword; // チャンネル選択
var pdwCounter: Dword // プリロードデータを格納
// する配列への参照渡し
): Integer; stdcall; external 'IFUcnt.DLL';
【パラメータ】
hDeviceHandle UcntOpen 関数で取得したインタフェースモジュールのデバイスハンドルを指定してくだ
さい。
dwChSel 設定を行うチャンネルを指定してください。
各チャンネルに対応した bit に 1 を指定して、複数チャンネルを同時に設定します。
ビット bit31~bit4 bit3 bit2 bit1 bit0
内容 予約 CH4 CH3 CH2 CH1
pdwCounter プリロードデータを格納する配列のポインタを指定してください。
配列の各要素には下記の値を格納します。
GPC-6320 Help for Windows
© 2004, 2014 Interface Corporation. All rights reserved.
125
取得範囲:0 ~ 4,294,967,295(FFFFFFFFh)
dwCounter[0] チャンネル 1のプリロードデータ
dwCounter[1] チャンネル 2のプリロードデータ
dwCounter[2] チャンネル 3のプリロードデータ
dwCounter[3] チャンネル 4のプリロードデータ
【戻り値】
正常終了した場合は、IFUCNT_ERROR_SUCCESSが返されます。
IFUCNT_ERROR_SUCCESS以外の値が返された場合については、『4.6 戻り値一覧』をご参照くだ
さい。
【使用例】
●C言語
INT nRet;
HANDLE hDeviceHandle;
DWORD dwCounter[4];
hDeviceHandle = UcntOpen(“IFUCNT1”); :
:
dwCounter[0] = 100;
dwCounter[1] = 100;
dwCounter[2] = 100;
dwCounter[3] = 100;
nRet = UcntSetCounter(hDeviceHandle, 0x0F, dwCounter);
●Visual Basic
Dim lpszName As String
Dim hDeviceHandle As Long
Dim dwCounter(0 To 3) As Long
lpszName = "IFUCNT1" & Chr( 0 )
hDeviceHandle = UcntOpen(lpszName)
:
:
dwCounter(0) = 100;
dwCounter(1) = 100;
dwCounter(2) = 100;
dwCounter(3) = 100;
nRet = UcntSetCounter(hDeviceHandle, &H0F, dwCounter(0))
GPC-6320 Help for Windows
© 2004, 2014 Interface Corporation. All rights reserved.
126
●Delphi
var
lpszName: String;
hDeviceHandle: THandle;
dwCounter: Array[0..3] of Dword;
lpszName := 'IFUCNT1';
hDeviceHandle := UcntOpen(lpszName);
:
:
dwCounter[0] := 100;
dwCounter[1] := 100;
dwCounter[2] := 100;
dwCounter[3] := 100;
nRet := UcntSetCounter(hDeviceHandle, $0F, dwCounter[0]);
デバイス名「IFUCNT1」のデバイスのチャンネル 1~チャンネル 4のカウンタ値を全て 100 に設
定します。
GPC-6320 Help for Windows
© 2004, 2014 Interface Corporation. All rights reserved.
127
34. UcntReadCounter
【機能】
カウンタ値を取得します。
【書式】
●C言語
INT UcntReadCounter(
HANDLE hDeviceHandle, // デバイスハンドル
DWORD dwChSel, // チャンネル選択
PDWORD pdwCounter // カウンタ値を格納
// する配列へのポインタ
);
●Visual Basic
Declare Function UcntReadCounter Lib "IFUcnt.DLL"(_
ByVal hDeviceHandle As Long,_ ‘ デバイスハンドル
ByVal dwChSel As Long,_ ‘ チャンネル選択
ByRef pdwCounter As Long_ ‘ カウンタ値を格納
‘ する配列への参照渡し
)As Long
●Delphi
function UcntReadCounter(
hDeviceHandle: THandle; // デバイスハンドル
dwChSel: Dword; // チャンネル選択
var pdwCounter: Dword // カウンタ値を格納
// する配列への参照渡し
): Integer; stdcall; external 'IFUcnt.DLL';
【パラメータ】
hDeviceHandle UcntOpen 関数で取得したインタフェースモジュールのデバイスハンドルを指定してくだ
さい。
dwChSel 取得するチャンネルを指定してください。
各チャンネルに対応した bit に 1 を指定して、複数チャンネルを同時に取得します。
ビット bit31~bit4 bit3 bit2 bit1 bit0
内容 予約 CH4 CH3 CH2 CH1
pdwCounter カウンタ値を格納する配列のポインタを指定してください。
配列の各要素には下記の値が格納されます。
GPC-6320 Help for Windows
© 2004, 2014 Interface Corporation. All rights reserved.
128
取得範囲:0 ~ 4,294,967,295(FFFFFFFFh)
dwCounter[0] チャンネル 1のカウンタ値
dwCounter[1] チャンネル 2のカウンタ値
dwCounter[2] チャンネル 3のカウンタ値
dwCounter[3] チャンネル 4のカウンタ値
【戻り値】
正常終了した場合は、IFUCNT_ERROR_SUCCESSが返されます。
IFUCNT_ERROR_SUCCESS以外の値が返された場合については、『4.6 戻り値一覧』をご参照くだ
さい。
【使用例】
●C言語
INT nRet;
HANDLE hDeviceHandle;
DWORD dwCounter[4];
hDeviceHandle = UcntOpen(“IFUCNT1”); :
:
nRet = UcntReadCounter(hDeviceHandle, 0x0F, dwCounter);
●Visual Basic
Dim lpszName As String
Dim hDeviceHandle As Long
Dim dwCounter(0 To 3) As Long
lpszName = "IFUCNT1" & Chr( 0 )
hDeviceHandle = UcntOpen(lpszName)
:
:
nRet = UcntReadCounter(hDeviceHandle, &H0F, dwCounter(0))
●Delphi
var
lpszName: String;
hDeviceHandle: THandle;
dwCounter: Array[0..3] of Dword;
lpszName := 'IFUCNT1';
hDeviceHandle := UcntOpen(lpszName);
:
:
nRet := UcntReadCounter(hDeviceHandle, $0F, dwCounter[0]);
デバイス名「IFUCNT1」のデバイスのチャンネル 1~チャンネル 4 のカウンタ値を取得します。
GPC-6320 Help for Windows
© 2004, 2014 Interface Corporation. All rights reserved.
129
35. UcntReadLatchCounter
【機能】
ラッチカウンタ値を取得します。
【書式】
●C言語
INT UcntReadLatchCounter(
HANDLE hDeviceHandle, // デバイスハンドル
DWORD dwChSel, // チャンネル選択
PDWORD pdwLatchCounter // ラッチカウンタ値を格納
// する配列へのポインタ
);
●Visual Basic
Declare Function UcntReadLatchCounter Lib "IFUcnt.DLL"(_
ByVal hDeviceHandle As Long,_ ‘ デバイスハンドル
ByVal dwChSel As Long,_ ‘ チャンネル選択
ByRef pdwLatchCounter As Long_ ‘ ラッチカウンタ値を格納
‘ する配列への参照渡し
)As Long
●Delphi
function UcntReadLatchCounter(
hDeviceHandle: THandle; // デバイスハンドル
dwChSel: Dword; // チャンネル選択
var pdwLatchCounter: Dword // ラッチカウンタ値を格納
// する配列への参照渡し
): Integer; stdcall; external 'IFUcnt.DLL';
【パラメータ】
hDeviceHandle UcntOpen 関数で取得したインタフェースモジュールのデバイスハンドルを指定してくだ
さい。
dwChSel 取得するチャンネルを指定してください。
各チャンネルに対応した bit に 1 を指定して、複数チャンネルを同時に取得します。
ビット bit31~bit4 bit3 bit2 bit1 bit0
内容 予約 CH4 CH3 CH2 CH1
pdwLatchCounter ラッチカウンタ値を格納する配列のポインタを指定してください。
配列の各要素には下記の値が格納されます。
GPC-6320 Help for Windows
© 2004, 2014 Interface Corporation. All rights reserved.
130
取得範囲:0 ~ 4,294,967,295(FFFFFFFFh)
dwLatchCounter[0] チャンネル 1のラッチカウンタ値
dwLatchCounter[1] チャンネル 2のラッチカウンタ値
dwLatchCounter[2] チャンネル 3のラッチカウンタ値
dwLatchCounter[3] チャンネル 4のラッチカウンタ値
【戻り値】
正常終了した場合は、IFUCNT_ERROR_SUCCESSが返されます。
IFUCNT_ERROR_SUCCESS以外の値が返された場合については、『4.6 戻り値一覧』をご参照くだ
さい。
【使用例】
●C言語
INT nRet;
HANDLE hDeviceHandle;
DWORD dwLatchCounter[4];
hDeviceHandle = UcntOpen(“IFUCNT1”); :
:
nRet = UcntReadCounter(hDeviceHandle, 0x0F, dwLatchCounter);
●Visual Basic
Dim lpszName As String
Dim hDeviceHandle As Long
Dim dwLatchCounter(0 To 3) As Long
lpszName = "IFUCNT1" & Chr( 0 )
hDeviceHandle = UcntOpen(lpszName)
:
:
nRet = UcntReadCounter(hDeviceHandle, &H0F, dwLatchCounter(0))
●Delphi
var
lpszName: String;
hDeviceHandle: THandle;
dwLatchCounter: Array[0..3] of Dword;
lpszName := 'IFUCNT1';
hDeviceHandle := UcntOpen(lpszName);
:
nRet := UcntReadCounter(hDeviceHandle, $0F, dwLatchCounter[0]);
デバイス名「IFUCNT1」のデバイスのチャンネル 1~チャンネル 4のラッチカウンタ値を取得し
ます。
GPC-6320 Help for Windows
© 2004, 2014 Interface Corporation. All rights reserved.
131
36. UcntSetComparator
【機能】
比較カウンタ値を設定します。
【書式】
●C言語
INT UcntSetComparator(
HANDLE hDeviceHandle, // デバイスハンドル
DWORD dwChSel, // チャンネル選択
DWORD dwComSel, // コンパレータ選択
PDWORD pdwComparatorA, // 比較カウンタ A設定値を
// 格納する配列へのポインタ
PDWORD pdwComparatorB // 比較カウンタ B設定値を
// 格納する配列へのポインタ
);
●Visual Basic
Declare Function UcntSetComparator Lib "IFUcnt.DLL"(_
ByVal hDeviceHandle As Long,_ ‘ デバイスハンドル
ByVal dwChSel As Long,_ ‘ チャンネル選択
ByVal dwCmpSel As Long,_ ‘ コンパレータ選択
ByRef pdwComparatorA As Long,_ ‘ 比較カウンタ A設定値を
‘ 格納する配列への参照渡し
ByRef pdwComparatorB As Long_ ‘ 比較カウンタ B設定値を
‘ 格納する配列への参照渡し
)As Long
●Delphi
function UcntSetComparator(
hDeviceHandle: THandle; // デバイスハンドル
dwChSel: Dword; // チャンネル選択
dwCmpSel: Dword; // コンパレータ選択
var pdwComparatorA: Dword; // 比較カウンタ A設定値を
// 格納する配列へのポインタ
var pdwComparatorB: Dword // 比較カウンタ B設定値を
// 格納する配列への参照渡し
): Integer; stdcall; external 'IFUcnt.DLL';
【パラメータ】
hDeviceHandle UcntOpen 関数で取得したインタフェースモジュールのデバイスハンドルを指定してくだ
さい。
GPC-6320 Help for Windows
© 2004, 2014 Interface Corporation. All rights reserved.
132
dwChSel 設定を行うチャンネルを指定してください。
各チャンネルに対応した bit に 1 を指定して、複数チャンネルを同時に設定します。
ビット bit31~bit4 bit3 bit2 bit1 bit0
内容 予約 CH4 CH3 CH2 CH1
dwCmpSel 設定を行うコンパレータを指定してください。
dwCmpSel 内容
0 比較カウンタ A,B に対して設定を行う
1 サブ比較カウンタ A,B に対して設定を行う
サブ比較カウンタ A,Bへの設定を行った場合、すぐに比較カウンタ設定は変更されません。
現在の設定値で一致検出が行われた直後に、比較カウンタの値が更新されます。
pdwComparatorA 比較カウンタ Aまたは設定値を格納する配列のポインタを指定してください。
配列の各要素には下記の値を格納します。
設定範囲:0 ~ 4,294,967,295(FFFFFFFFh)
dwComparatorA[0] チャンネル 1の比較カウンタ A設定
dwComparatorA[1] チャンネル 2の比較カウンタ A設定
dwComparatorA[2] チャンネル 3の比較カウンタ A設定
dwComparatorA[3] チャンネル 4の比較カウンタ A設定
pdwComparatorB 比較カウンタ B設定値を格納する配列のポインタを指定してください。
配列の各要素には下記の値を格納します。
設定範囲:0 ~ 4,294,967,295(FFFFFFFFh)
dwComparatorB[0] チャンネル 1の比較カウンタ B設定
dwComparatorB[1] チャンネル 2の比較カウンタ B設定
dwComparatorB[2] チャンネル 3の比較カウンタ B設定
dwComparatorB[3] チャンネル 4の比較カウンタ B設定
【戻り値】
正常終了した場合は、IFUCNT_ERROR_SUCCESSが返されます。
IFUCNT_ERROR_SUCCESS以外の値が返された場合については、『4.6 戻り値一覧』をご参照くだ
さい。
GPC-6320 Help for Windows
© 2004, 2014 Interface Corporation. All rights reserved.
133
【使用例】
●C言語
INT nRet;
HANDLE hDeviceHandle;
DWORD dwComparatorA[4];
DWORD dwComparatorB[4];
hDeviceHandle = UcntOpen(“IFUCNT1”); :
:
dwComparatorA[0] = 100;
dwComparatorB[0] = 200;
nRet = UcntSetComparator(hDeviceHandle, 0x01, 0, dwComparatorA, dwComparatorB);
●Visual Basic
Dim lpszName As String
Dim hDeviceHandle As Long
Dim dwComparatorA(0 To 3) As Long
Dim dwComparatorB(0 To 3) As Long
lpszName = "IFUCNT1" & Chr( 0 )
hDeviceHandle = UcntOpen(lpszName)
:
:
dwComparatorA(0) = 100;
dwComparatorB(0) = 200;
nRet = UcntSetComparator(hDeviceHandle, &H01, 0, dwComparatorA(0), dwComparatorB(0))
●Delphi
var
lpszName: String;
hDeviceHandle: THandle;
dwComparatorA: Array[0..3] of Dword;
dwComparatorB: Array[0..3] of Dword;
lpszName := 'IFUCNT1';
hDeviceHandle := UcntOpen(lpszName);
:
:
dwComparatorA[0] := 100;
dwComparatorB[0] := 200;
nRet := UcntSetComparator(hDeviceHandle, $01, 0,
dwComparatorA[0], dwComparatorB[0]);
デバイス名「IFUCNT1」のデバイスのチャンネル 1 の比較カウンタ値(A=100、B=200)を設
定します。
GPC-6320 Help for Windows
© 2004, 2014 Interface Corporation. All rights reserved.
134
37. UcntGetComparator
【機能】
比較カウンタ設定値を取得します。
【書式】
●C言語
INT UcntGetComparator(
HANDLE hDeviceHandle, // デバイスハンドル
DWORD dwChSel, // チャンネル選択
PDWORD pdwComparatorA, // 比較カウンタ A設定値を
// 格納する配列へのポインタ
PDWORD pdwComparatorB // 比較カウンタ B設定値を
// 格納する配列へのポインタ
);
●Visual Basic
Declare Function UcntGetComparator Lib "IFUcnt.DLL"(_
ByVal hDeviceHandle As Long,_ ‘ デバイスハンドル
ByVal dwChSel As Long,_ ‘ チャンネル選択
ByRef pdwComparatorA As Long,_ ‘ 比較カウンタ A設定値を
‘ 格納する配列への参照渡し
ByRef pdwComparatorB As Long_ ‘ 比較カウンタ B設定値を
‘ 格納する配列への参照渡し
)As Long
●Delphi
function UcntGetComparator(
hDeviceHandle: THandle; // デバイスハンドル
dwChSel: Dword; // チャンネル選択
var pdwComparatorA: Dword; // 比較カウンタ A設定値を
// 格納する配列へのポインタ
var pdwComparatorB: Dword // 比較カウンタ B設定値を
// 格納する配列への参照渡し
): Integer; stdcall; external 'IFUcnt.DLL';
【パラメータ】
hDeviceHandle UcntOpen 関数で取得したインタフェースモジュールのデバイスハンドルを指定してくだ
さい。
dwChSel 取得するチャンネルを指定してください。
各チャンネルに対応した bit に 1 を指定して、複数チャンネルを同時に取得します。
ビット bit31~bit4 bit3 bit2 bit1 bit0
内容 予約 CH4 CH3 CH2 CH1
GPC-6320 Help for Windows
© 2004, 2014 Interface Corporation. All rights reserved.
135
pdwComparatorA 比較カウンタ A設定値を格納する配列のポインタを指定してください。
配列の各要素には下記の値が格納されます。
取得範囲:0 ~ 4,294,967,295(FFFFFFFFh)
dwComparatorA[0] チャンネル 1の比較カウンタ A設定値
dwComparatorA[1] チャンネル 2の比較カウンタ A設定値
dwComparatorA[2] チャンネル 3の比較カウンタ A設定値
dwComparatorA[3] チャンネル 4の比較カウンタ A設定値
pdwComparatorB 比較カウンタ B設定値を格納する配列のポインタを指定してください。
配列の各要素には下記の値が格納されます。
取得範囲:0 ~ 4,294,967,295(FFFFFFFFh)
dwComparatorB[0] チャンネル 1の比較カウンタ B設定値
dwComparatorB[1] チャンネル 2の比較カウンタ B設定値
dwComparatorB[2] チャンネル 3の比較カウンタ B設定値
dwComparatorB[3] チャンネル 4の比較カウンタ B設定値
【戻り値】
正常終了した場合は、IFUCNT_ERROR_SUCCESSが返されます。
IFUCNT_ERROR_SUCCESS以外の値が返された場合については、『4.6 戻り値一覧』をご参照くだ
さい。
【使用例】
●C言語
INT nRet;
HANDLE hDeviceHandle;
DWORD dwComparatorA[4];
DWORD dwComparatorB[4];
hDeviceHandle = UcntOpen(“IFUCNT1”); :
:
nRet = UcntGetComparator(hDeviceHandle, 0x01, dwComparatorA, dwComparatorB);
GPC-6320 Help for Windows
© 2004, 2014 Interface Corporation. All rights reserved.
136
●Visual Basic
Dim lpszName As String
Dim hDeviceHandle As Long
Dim dwComparatorA(0 To 3) As Long
Dim dwComparatorB(0 To 3) As Long
lpszName = "IFUCNT1" & Chr( 0 )
hDeviceHandle = UcntOpen(lpszName)
:
:
nRet = UcntGetComparator(hDeviceHandle, &H01, dwComparatorA(0), dwComparatorB(0))
●Delphi
var
lpszName: String;
hDeviceHandle: THandle;
dwComparatorA: Array[0..3] of Dword;
dwComparatorB: Array[0..3] of Dword;
lpszName := 'IFUCNT1';
hDeviceHandle := UcntOpen(lpszName);
:
:
nRet := UcntGetComparator(hDeviceHandle, $01, dwComparatorA[0], dwComparatorB[0]);
デバイス名「IFUCNT1」のデバイスのチャンネル 1の比較カウンタ設定値を取得します。
GPC-6320 Help for Windows
© 2004, 2014 Interface Corporation. All rights reserved.
137
38. UcntGetStatus
【機能】
動作ステータス情報を取得します。
【書式】
●C言語
INT UcntGetStatus(
HANDLE hDeviceHandle, // デバイスハンドル
DWORD dwChSel, // チャンネル選択
PDWORD pdwStatus // ステータスを格納する配列
// へのポインタ
);
●Visual Basic
Declare Function UcntGetStatus Lib "IFUcnt.DLL"(_
ByVal hDeviceHandle As Long,_ ‘ デバイスハンドル
ByVal dwChSel As Long,_ ‘ チャンネル選択
ByRef pdwStatus As Long_ ‘ ステータスを格納する配列
‘ への参照渡し
)As Long
●Delphi
function UcntGetStatus(
hDeviceHandle: THandle; // デバイスハンドル
dwChSel: Dword; // チャンネル選択
var pdwStatus: Dword // ステータスを格納する配列
// への参照渡し
): Integer; stdcall; external 'IFUcnt.DLL';
【パラメータ】
hDeviceHandle UcntOpen 関数で取得したインタフェースモジュールのデバイスハンドルを指定してくだ
さい。
dwChSel 取得するチャンネルを指定してください。
各チャンネルに対応した bit に 1 を指定して、複数チャンネルを同時に取得します。
ビット bit31~bit4 bit3 bit2 bit1 bit0
内容 予約 CH4 CH3 CH2 CH1
GPC-6320 Help for Windows
© 2004, 2014 Interface Corporation. All rights reserved.
138
pdwStatus ステータスを格納する配列へのポインタを指定してください。
配列の各要素には下記の値が格納されます。
dwStatus[3]~dwStatus[0]:チャンネル 4~チャンネル 1のステータス情報
ビット bit31~20 bit19 bit18 bit17 bit16
内容 予約 BL CL ItoR RtoI
ビット bit15 bit14 bit13 bit12 bit11 bit10 bit9 bit8
内容 予約 LTST2 LTST1 LTST0 LBAFT LAAFT LBBEF LABEF
ビット bit7 bit6 bit5 bit4 bit3 bit2 bit1 bit0
内容 ST1 ST0 U/D LB LA Z B A
LB、LA、Z、B、A:入力端子ステータス
LB、LA、Z、B、A 内容
0 Low
1 High
U/D:カウント方向
U/D 内容
0 ダウンカウント
1 アップカウント
ST1、ST0:スタート/ストップステータス
ST1 ST0 内容
0 0 ストップ
0 1 スタート
1 0 外部スタートウェイト
1 1 未使用
LBBEF、LABEF:外部ラッチ直前の LA、LB ステータス
LBBEF、LABEF 内容
0 Low
1 High
LBAFT、LAAFT:外部ラッチ直後の LA、LB ステータス
LBAFT、LAAFT 内容
0 Low
1 High
GPC-6320 Help for Windows
© 2004, 2014 Interface Corporation. All rights reserved.
139
LTST2、LTST1、LTST0:ラッチステータス
LTST2 LTST1 LTST0 内容
0 0 0 ラッチされていない
0 0 1 ソフトラッチ
0 1 0 外部ラッチ
0 1 1 内部基準クロックラッチ
1 0 0 内部同期ライン 1ラッチ
1 0 1 内部同期ライン 2ラッチ
1 1 0 予約
1 1 1 予約
RtoI:正回転(カウントアップ)から逆回転(カウントダウン)の回転方向変更によるラッチ
※PCI-632304 でのみ取得できます。
RtoI 内容
0 ラッチされていない
1 ラッチされた
ItoR:逆回転(カウントダウン)から正回転(カウントアップ)の回転方向変更によるラッチ
※PCI-632304 でのみ取得できます。
ItoR 内容
0 ラッチされていない
1 ラッチされた
CL:キャリーによるラッチ
※PCI-632304 でのみ取得できます。
CL 内容
0 ラッチされていない
1 ラッチされた
BL:ボローによるラッチ
※PCI-632304 でのみ取得できます。
BL 内容
0 ラッチされていない
1 ラッチされた
【戻り値】
正常終了した場合は、IFUCNT_ERROR_SUCCESSが返されます。
IFUCNT_ERROR_SUCCESS以外の値が返された場合については、『4.6 戻り値一覧』をご参照くだ
さい。
GPC-6320 Help for Windows
© 2004, 2014 Interface Corporation. All rights reserved.
140
【使用例】
●C言語
INT nRet;
DWORD dwStatus[4];
HANDLE hDeviceHandle;
hDeviceHandle = UcntOpen(“IFUCNT1”); :
:
nRet = UcntGetStatus(hDeviceHandle, 0x0F, dwStatus);
●Visual Basic
Dim lpszName As String
Dim hDeviceHandle As Long
Dim dwStatus(0 To 3) As Long
lpszName = "IFUCNT1" & Chr( 0 )
hDeviceHandle = UcntOpen(lpszName)
:
:
nRet = UcntGetStatus(hDeviceHandle, &H0F, dwStatus(0))
●Delphi
var
lpszName: String;
hDeviceHandle: THandle;
dwStatus: array[0..3] of Dword;
lpszName := 'IFUCNT1';
hDeviceHandle := UcntOpen(lpszName);
:
:
nRet := UcntGetStatus(hDeviceHandle, $0F, dwStatus[0]);
デバイス名「IFUCNT1」のデバイスの CH1~CH4 のステータスを取得します。
GPC-6320 Help for Windows
© 2004, 2014 Interface Corporation. All rights reserved.
141
39. UcntSetSamplingConfig
【機能】
サンプリング条件を設定します。
【書式】
●C言語
INT UcntSetSamplingConfig(
HANDLE hDeviceHandle, // デバイスハンドル
INT nChannel, // チャンネル選択
PUCNTSMPLCONFIG pSmplConfig // サンプリング条件設定
// 構造体へのポインタ
);
●Visual Basic
Declare Function UcntSetSamplingConfig Lib "IFUcnt.DLL"(_
ByVal hDeviceHandle As Long,_ ‘ デバイスハンドル
ByVal nChannel As Long,_ ‘ チャンネル選択
ByRef pSmplConfig As UCNTSMPLCONFIG_ ‘ サンプリング条件設定
‘ 構造体への参照渡し
)As Long
●Delphi
function UcntSetSamplingConfig(
hDeviceHandle: THandle; // デバイスハンドル
nChannel: Integer; // チャンネル選択
var pSmplConfig: UCNTSMPLCONFIG // サンプリング条件設定
// 構造体への参照渡し
): Integer; stdcall; external 'IFUcnt.DLL';
【パラメータ】
hDeviceHandle UcntOpen 関数で取得したインタフェースモジュールのデバイスハンドルを指定してくだ
さい。
nChannel 設定を行うチャンネルを指定してください。
pSmplConfig サンプリング条件設定を格納する UCNTSMPLCONFIG 構造体へのポインタを指定してくださ
い。
構造体の説明については、『4.5 構造体』をご参照ください。
GPC-6320 Help for Windows
© 2004, 2014 Interface Corporation. All rights reserved.
142
【戻り値】
正常終了した場合は、IFUCNT_ERROR_SUCCESSが返されます。
IFUCNT_ERROR_SUCCESS以外の値が返された場合については、『4.6 戻り値一覧』をご参照くだ
さい。
【使用例】
●C言語
INT nRet;
HANDLE hDeviceHandle;
UCNTSMPLCONFIG SmplConfig;
hDeviceHandle = UcntOpen(“IFUCNT1”); :
:
SmplConfig.dwSmplNum = 1000;
SmplConfig.dwSmplEventNum = 100;
SmplConfig.dwSmplRepeat = 1;
SmplConfig.dwStatusMode = IFUCNT_ADD_STATUS;
SmplConfig.dwErrCtrl = IFUCNT_FREERUN;
nRet = UcntSetSamplingConfig(hDeviceHandle, 1, &SmplConfig);
●Visual Basic
Dim lpszName As String
Dim hDeviceHandle As Long
Dim SmplConfig As UCNTSMPLCONFIG
lpszName = "IFUCNT1" & Chr( 0 )
hDeviceHandle = UcntOpen(lpszName)
:
:
SmplConfig.dwSmplNum = 1000
SmplConfig.dwSmplEventNum = 100
SmplConfig.dwSmplRepeat = 1
SmplConfig.dwStatusMode = IFUCNT_ADD_STATUS
SmplConfig.dwErrCtrl = IFUCNT_FREERUN
nRet = UcntSetSamplingConfig(hDeviceHandle, 1, SmplConfig)
GPC-6320 Help for Windows
© 2004, 2014 Interface Corporation. All rights reserved.
143
●Delphi
var
lpszName: String;
hDeviceHandle: THandle;
SmplConfig: UCNTSMPLCONFIG;
lpszName := 'IFUCNT1';
hDeviceHandle := UcntOpen(lpszName);
:
:
SmplConfig.dwSmplNum := 1000;
SmplConfig.dwSmplEventNum := 100;
SmplConfig.dwSmplRepeat := 1;
SmplConfig.dwStatusMode := IFUCNT_ADD_STATUS;
SmplConfig.dwErrCtrl := IFUCNT_FREERUN;
nRet := UcntSetSamplingConfig(hDeviceHandle, 1, SmplConfig);
デバイス名「IFUCNT1」のデバイスのチャンネル 1のサンプリング条件を設定します。
GPC-6320 Help for Windows
© 2004, 2014 Interface Corporation. All rights reserved.
144
40. UcntGetSamplingConfig
【機能】
サンプリング条件設定を取得します。
【書式】
●C言語
INT UcntGetSamplingConfig(
HANDLE hDeviceHandle, // デバイスハンドル
INT nChannel, // チャンネル選択
PUCNTSMPLCONFIG pSmplConfig // サンプリング条件取得
// 構造体へのポインタ
);
●Visual Basic
Declare Function UcntGetSamplingConfig Lib "IFUcnt.DLL"(_
ByVal hDeviceHandle As Long,_ ‘ デバイスハンドル
ByVal nChannel As Long,_ ‘ チャンネル選択
ByRef pSmplConfig As UCNTSMPLCONFIG_ ‘ サンプリング条件取得
‘ 構造体への参照渡し
)As Long
●Delphi
function UcntGetSamplingConfig(
hDeviceHandle: THandle; // デバイスハンドル
nChannel: Integer; // チャンネル選択
var pSmplConfig: UCNTSMPLCONFIG // サンプリング条件取得
// 構造体への参照渡し
): Integer; stdcall; external 'IFUcnt.DLL';
【パラメータ】
hDeviceHandle UcntOpen 関数で取得したインタフェースモジュールのデバイスハンドルを指定してくだ
さい。
nChannel 設定を行うチャンネルを指定してください。
pSmplConfig サンプリング条件設定を格納する UCNTSMPLCONFIG 構造体へのポインタを指定してくださ
い。
構造体の説明については、『4.5 構造体』をご参照ください。
GPC-6320 Help for Windows
© 2004, 2014 Interface Corporation. All rights reserved.
145
【戻り値】
正常終了した場合は、IFUCNT_ERROR_SUCCESSが返されます。
IFUCNT_ERROR_SUCCESS以外の値が返された場合については、『4.6 戻り値一覧』をご参照くだ
さい。
【使用例】
●C言語
INT nRet;
HANDLE hDeviceHandle;
UCNTSMPLCONFIG SmplConfig;
hDeviceHandle = UcntOpen(“IFUCNT1”); :
:
nRet = UcntGetSamplingConfig(hDeviceHandle, 1, &SmplConfig);
●Visual Basic
Dim lpszName As String
Dim hDeviceHandle As Long
Dim SmplConfig As UCNTSMPLCONFIG
lpszName = "IFUCNT1" & Chr( 0 )
hDeviceHandle = UcntOpen(lpszName)
:
:
nRet = UcntGetSamplingConfig(hDeviceHandle, 1, SmplConfig)
●Delphi
var
lpszName: String;
hDeviceHandle: THandle;
SmplConfig: UCNTSMPLCONFIG;
lpszName := 'IFUCNT1';
hDeviceHandle := UcntOpen(lpszName);
:
:
nRet := UcntGetSamplingConfig(hDeviceHandle, 1, SmplConfig);
デバイス名「IFUCNT1」のデバイスのチャンネル 1のサンプリング条件設定を取得します。
GPC-6320 Help for Windows
© 2004, 2014 Interface Corporation. All rights reserved.
146
41. UcntGetSamplingData
【機能】
内部バッファからサンプリングデータを取得します。
【書式】
●C言語
INT UcntGetSamplingData(
HANDLE hDeviceHandle, // デバイスハンドル
INT nChannel, // チャンネル選択
PVOID pSmplData, // サンプリングデータを格納
// する配列へのポインタ
PDWORD pdwDataNum // 取得データ件数格納変数
// へのポインタ
);
●Visual Basic
Declare Function UcntGetSamplingData Lib "IFUcnt.DLL"(_
ByVal hDeviceHandle As Long,_ ‘ デバイスハンドル
ByVal nChannel As Long,_ ‘ チャンネル選択
ByRef pSmplData As Any,_ ‘ サンプリングデータを格納
‘ する配列への参照渡し
ByRef pdwDataNum As Long_ ‘ 取得データ件数格納変数
‘ への参照渡し
)As Long
●Delphi
function UcntGetSamplingData(
hDeviceHandle: THandle; // デバイスハンドル
nChannel: Integer; // チャンネル選択
pSmplData: Pointer; // サンプリングデータを格納
// する配列の先頭アドレス
var pdwDataNum: Dword // 取得データ件数格納変数
// への参照渡し
): Integer; stdcall; external 'IFUcnt.DLL';
【パラメータ】
hDeviceHandle UcntOpen 関数で取得したインタフェースモジュールのデバイスハンドルを指定してくだ
さい。
nChannel サンプリングデータを取得するチャンネルを指定してください。
GPC-6320 Help for Windows
© 2004, 2014 Interface Corporation. All rights reserved.
147
pSmplData サンプリングデータを格納する配列へのポインタを指定してください。
pdwDataNum サンプリングデータの取得を希望する件数を格納した変数のポインタを指定します。
関数が正常終了後、実際に取得したデータ件数が格納されます。
【戻り値】
正常終了した場合は、IFUCNT_ERROR_SUCCESSが返されます。
IFUCNT_ERROR_SUCCESS以外の値が返された場合については、『4.6 戻り値一覧』をご参照くだ
さい。
【使用例】
●C言語
INT nRet;
PVOID pSmplData;
DWORD dwDataNum;
HANDLE hDeviceHandle;
HANDLE hHeap;
hDeviceHandle = UcntOpen(“IFUCNT1”); :
:
dwDataNum = 1000;
hHeap = GetProcessHeap();
pSmplData = HeapAlloc(hHeap, HEAP_ZERO_MEMORY, dwDataNum * sizeof(DWORD) * 2);
nRet = UcntGetSamplingData(hDeviceHandle, 1, pSmplData, &dwDataNum);
●Visual Basic
Dim lpszName As String
Dim hDeviceHandle As Long
Dim SmplData(1000, 2) As Long
Dim dwDataNum As Long
lpszName = "IFUCNT1" & Chr( 0 )
hDeviceHandle = UcntOpen(lpszName)
:
:
dwDataNum = 1000
nRet = UcntGetSamplingData(hDeviceHandle, 1, SmplData(0,0) , dwDataNum)
GPC-6320 Help for Windows
© 2004, 2014 Interface Corporation. All rights reserved.
148
●Delphi
var
lpszName: String;
hDeviceHandle: THandle;
pSmplData: Pointer;
dwDataNum: Dword;
lpszName := 'IFUCNT1';
hDeviceHandle := UcntOpen(lpszName);
:
:
dwDataNum := 1000;
pSmplData := AllocMem(dwDataNum * SizeOf(Dword) * 2);
nRet := UcntGetSamplingData(hDeviceHandle, 1, pSmplData, dwDataNum);
デバイス名「IFUCNT1」のデバイスのチャンネル 1のサンプリングデータ(32bit カウンタ、ス
テータス情報あり)を 1000 件分取得します。
GPC-6320 Help for Windows
© 2004, 2014 Interface Corporation. All rights reserved.
149
42. UcntClearSamplingData
【機能】
内部バッファをクリアします。
【書式】
●C言語
INT UcntClearSamplingData(
HANDLE hDeviceHandle, // デバイスハンドル
INT nChannel // チャンネル選択
);
●Visual Basic
Declare Function UcntClearSamplingData Lib "IFUcnt.DLL"(_
ByVal hDeviceHandle As Long,_ ‘ デバイスハンドル
ByVal nChannel As Long_ ‘ チャンネル選択
)As Long
●Delphi
function UcntClearSamplingData(
hDeviceHandle: THandle; // デバイスハンドル
nChannel: Integer // チャンネル選択
): Integer; stdcall; external 'IFUcnt.DLL';
【パラメータ】
hDeviceHandle UcntOpen 関数で取得したインタフェースモジュールのデバイスハンドルを指定してくだ
さい。
nChannel サンプリングデータをクリアするチャンネルを指定してください。
【戻り値】
正常終了した場合は、IFUCNT_ERROR_SUCCESSが返されます。
IFUCNT_ERROR_SUCCESS以外の値が返された場合については、『4.6 戻り値一覧』をご参照くだ
さい。
GPC-6320 Help for Windows
© 2004, 2014 Interface Corporation. All rights reserved.
150
【使用例】
●C言語
INT nRet;
HANDLE hDeviceHandle;
hDeviceHandle = UcntOpen(“IFUCNT1”); :
:
nRet = UcntClearSamplingData(hDeviceHandle, 1);
●Visual Basic
Dim lpszName As String
Dim hDeviceHandle As Long
lpszName = "IFUCNT1" & Chr( 0 )
hDeviceHandle = UcntOpen(lpszName)
:
:
nRet = UcntClearSamplingData(hDeviceHandle, 1)
●Delphi
var
lpszName: String;
hDeviceHandle: THandle;
lpszName := 'IFUCNT1';
hDeviceHandle := UcntOpen(lpszName);
:
:
nRet := UcntClearSamplingData(hDeviceHandle, 1);
デバイス名「IFUCNT1」のデバイスのチャンネル 1 のサンプリングデータ格納用内部バッファ
をクリアします。
GPC-6320 Help for Windows
© 2004, 2014 Interface Corporation. All rights reserved.
151
43. UcntGetSamplingStatus
【機能】
サンプリングステータス情報を取得します。
【書式】
●C言語
INT UcntGetSamplingStatus(
HANDLE hDeviceHandle, // デバイスハンドル
INT nChannel, // チャンネル選択
PDWORD pdwSmplStatus, // ステータスを格納する変数
// へのポインタ
PDWORD pdwSmplCount, // サンプリング完了件数を格納
// する変数へのポインタ
PDWORD pdwRepCount // 繰り返し回数を格納する変数
// へのポインタ
);
●Visual Basic
Declare Function UcntGetSamplingStatus Lib "IFUcnt.DLL"(_
ByVal hDeviceHandle As Long,_ ‘ デバイスハンドル
ByVal nChannel As Long,_ ‘ チャンネル選択
ByRef pdwSmplStatus As Long,_ ‘ ステータスを格納する変数
‘ への参照渡し
ByRef pdwSmplCount As Long,_ ‘ サンプリング完了件数を格納
‘ する変数への参照渡し
ByRef pdwRepCount As Long_ ‘ 繰り返し回数を格納する変数
‘ への参照渡し
)As Long
●Delphi
function UcntGetSamplingStatus(
hDeviceHandle: THandle; // デバイスハンドル
nChannel: Integer; // チャンネル選択
var pdwSmplStatus: Dword; // ステータスを格納する変数
// への参照渡し
var pdwSmplCount: Dword; // サンプリング完了件数を格納
// する変数への参照渡し
var pdwRepCount: Dword // 繰り返し回数を格納する変数
// への参照渡し
): Integer; stdcall; external 'IFUcnt.DLL';
【パラメータ】
hDeviceHandle UcntOpen 関数で取得したインタフェースモジュールのデバイスハンドルを指定してくだ
さい。
GPC-6320 Help for Windows
© 2004, 2014 Interface Corporation. All rights reserved.
152
nChannel 取得するチャンネルを指定してください。
pdwSmplStatus サンプリングステータスを格納する変数へのポインタを指定してください。
変数には下記の値が格納されます。
値 識別子 内容
1 IFUCNT_SMPL_START サンプリング動作中です。
2 IFUCNT_SMPL_STOP サンプリング停止中です。
3 IFUCNT_SMPL_ERR_STOP エラーによりサンプリングが中止されました。
pdwSmplCount サンプリングが完了した件数を格納する変数へのポインタを指定してください。
pdwRepCount 現在のサンプリング繰り返し回数を格納する変数へのポインタを指定してください。
【戻り値】
正常終了した場合は、IFUCNT_ERROR_SUCCESSが返されます。
IFUCNT_ERROR_SUCCESS以外の値が返された場合については、『4.6 戻り値一覧』をご参照くだ
さい。
【使用例】
●C言語
INT nRet;
DWORD dwSmplStatus;
DWORD dwSmplCount;
DWORD dwRepCount;
HANDLE hDeviceHandle;
hDeviceHandle = UcntOpen(“IFUCNT1”); :
:
nRet = UcntGetSmplStatus(hDeviceHandle, 1, &dwSmplStatus,
&dwSmplCount, &dwRepCount);
GPC-6320 Help for Windows
© 2004, 2014 Interface Corporation. All rights reserved.
153
●Visual Basic
Dim lpszName As String
Dim hDeviceHandle As Long
Dim dwSmplStatus As Long
Dim dwSmplCount As Long
Dim dwRepCount As Long
lpszName = "IFUCNT1" & Chr( 0 )
hDeviceHandle = UcntOpen(lpszName)
:
:
nRet = UcntGetSmplStatus(hDeviceHandle, 1, dwSmplStatus,
dwSmplCount, dwReplCount)
●Delphi
var
lpszName: String;
hDeviceHandle: THandle;
dwSmplStatus: Dword;
dwSmplCount: Dword;
dwRepCount: Dword;
lpszName := 'IFUCNT1';
hDeviceHandle := UcntOpen(lpszName);
:
:
nRet := UcntGetSmplStatus(hDeviceHandle, 1, dwSmplStatus,
dwSmplCount, dwRepCount);
デバイス名「IFUCNT1」のデバイスの CH1 のサンプリングステータスを取得します。
GPC-6320 Help for Windows
© 2004, 2014 Interface Corporation. All rights reserved.
154
44. UcntStartCount
【機能】
カウントを開始します。
【書式】
●C言語
INT UcntStartCount(
HANDLE hDeviceHandle, // デバイスハンドル
DWORD dwChSel, // チャンネル選択
DWORD dwStartMode // スタートモード
);
●Visual Basic
Declare Function UcntStartCount Lib "IFUcnt.DLL"(_
ByVal hDeviceHandle As Long,_ ‘ デバイスハンドル
ByVal dwChSel As Long,_ ‘ チャンネル選択
ByVal dwStartMode As Long_ ‘ スタートモード
)As Long
●Delphi
function UcntStartCount(
hDeviceHandle: THandle; // デバイスハンドル
dwChSel: Dword; // チャンネル選択
dwStartMode: Dword // スタートモード
): Integer; stdcall; external 'IFUcnt.DLL';
【パラメータ】
hDeviceHandle UcntOpen 関数で取得したインタフェースモジュールのデバイスハンドルを指定してくだ
さい。
dwChSel 設定を行うチャンネルを指定してください。
各チャンネルに対応した bit に 1 を指定して、複数チャンネルを同時に設定します。
ビット bit31~bit4 bit3 bit2 bit1 bit0
内容 予約 CH4 CH3 CH2 CH1
GPC-6320 Help for Windows
© 2004, 2014 Interface Corporation. All rights reserved.
155
dwStartMode スタートモードを指定してください。
識別子 内容
IFUCNT_CMD_START ソフトスタート
IFUCNT_CMD_EXWAIT 外部スタートウェイト
(外部トリガスタート)
サンプリングを開始する場合は下記の識別子を指定してください。
識別子 内容
IFUCNT_CMD_SAMPLING サンプリングスタート
※ サンプリング開始とスタートモード指定は論理和で同時に指定することが可能です。
StartMode = IFUCNT_CMD_START | IFUCNT_CMD_SAMPLING;
StartMode = IFUCNT_CMD_EXWAIT | IFUCNT_CMD_SAMPLING;
※ ソフトスタートと外部スタートウェイトは同時に指定できません。
【戻り値】
正常終了した場合は、IFUCNT_ERROR_SUCCESSが返されます。
IFUCNT_ERROR_SUCCESS以外の値が返された場合については、『4.6 戻り値一覧』をご参照くだ
さい。
【備考】
・複数チャンネル同時に動作させた場合、ドライバ内で順に処理を行っています。よって、チ
ャンネル間のスタート時間に 500ns程度ズレが発生します。
ハードウェアを使用した同時スタートを利用する場合は、UcntSetTriggerChannel関数を使
用してカウンタの制御を同期させてください。
また、UcntSetTriggerChannel関数で同期を行う場合はスタート・ストップ・ウェイトなど
全ての制御が同期します。
・IFUCNT_CMD_EXWAIT を指定した場合、外部入力スタートでのカウントスタートを待つ状態と
なります。
・IFUCNT_CMD_SAMPLING はその他のコマンドと or で指定します。このコマンドを指定すること
で、予め設定されているドライバ内部バッファに対してサンプリングデータの転送を開始
します。
GPC-6320 Help for Windows
© 2004, 2014 Interface Corporation. All rights reserved.
156
・UcntSetTriggerChannel 関数を実行して、トリガチャンネルを別のチャンネルに変更してい
る場合には、サンプリングの開始とカウンタスタートコマンドを分けて実行する必要があ
ります。
(例)C言語
チャンネル 1 → チャンネル 3のトリガ条件を使用、サンプリングを行う
チャンネル 2 → チャンネル 3のトリガ条件を使用、サンプリングを行う
チャンネル 3 → チャンネル 3のトリガ条件を使用、サンプリングを行わない
UcntSetTriggerConfig(hDeviceHandle, 3, IFUCNT_LA_R, IFUCNT_LB_F);
UcntSetTriggerChannel(hDeviceHandle, 1, 3, IFUCNT_TRG_NORMAL);
UcntSetTriggerChannel(hDeviceHandle, 2, 3, IFUCNT_TRG_NORMAL);
UcntSetTriggerChannel(hDeviceHandle, 3, 3, IFUCNT_TRG_NORMAL);
// チャンネル 1、チャンネル 2のサンプリングを設定
UcntStartCount(hDeviceHandle, 0x03, IFUCNT_CMD_SAMPLING);
// チャンネル 3を外部トリガ待ち状態に設定
UcntStartCount(hDeviceHandle, 0x04, IFUCNT_CMD_EXWAIT);
【使用例】
●C言語
INT nRet;
HANDLE hDeviceHandle;
hDeviceHandle = UcntOpen(“IFUCNT1”); :
:
nRet = UcntStartCount(hDeviceHandle, 0x0F, IFUCNT_CMD_START);
●Visual Basic
Dim lpszName As String
Dim hDeviceHandle As Long
lpszName = "IFUCNT1" & Chr( 0 )
hDeviceHandle = UcntOpen(lpszName)
:
:
nRet = UcntStartCount(hDeviceHandle, &H0F, IFUCNT_CMD_START)
GPC-6320 Help for Windows
© 2004, 2014 Interface Corporation. All rights reserved.
157
●Delphi
var
lpszName: String;
hDeviceHandle: THandle;
lpszName := 'IFUCNT1';
hDeviceHandle := UcntOpen(lpszName);
:
:
nRet := UcntStartCount(hDeviceHandle, $0F, IFUCNT_CMD_START);
デバイス名「IFUCNT1」のデバイスのチャンネル 1~チャンネル 4のカウントを開始します。
GPC-6320 Help for Windows
© 2004, 2014 Interface Corporation. All rights reserved.
158
45. UcntStopCount
【機能】
カウントを停止します。
【書式】
●C言語
INT UcntStopCount(
HANDLE hDeviceHandle, // デバイスハンドル
DWORD dwChSel, // チャンネル選択
DWORD dwStopMode // ストップモード
);
●Visual Basic
Declare Function UcntStopCount Lib "IFUcnt.DLL"(_
ByVal hDeviceHandle As Long,_ ‘ デバイスハンドル
ByVal dwChSel As Long,_ ‘ チャンネル選択
ByVal dwStopMode As Long_ ‘ ストップモード
)As Long
●Delphi
function UcntStopCount(
hDeviceHandle: THandle; // デバイスハンドル
dwChSel: Dword; // チャンネル選択
dwStopMode: Dword // ストップモード
): Integer; stdcall; external 'IFUcnt.DLL';
【パラメータ】
hDeviceHandle UcntOpen 関数で取得したインタフェースモジュールのデバイスハンドルを指定してくだ
さい。
dwChSel 設定を行うチャンネルを指定してください。
各チャンネルに対応した bit に 1 を指定して、複数チャンネルを同時に設定します。
ビット bit31~bit4 bit3 bit2 bit1 bit0
内容 予約 CH4 CH3 CH2 CH1
dwStopMode ストップモードを指定してください。
識別子 内容
IFUCNT_CMD_STOP カウントストップ
IFUCNT_CMD_SAMPLING サンプリングストップ
※ サンプリング停止とカウントストップは論理和で同時に指定することが可能です。
StopMode = IFUCNT_CMD_STOP | IFUCNT_CMD_SAMPLING;
GPC-6320 Help for Windows
© 2004, 2014 Interface Corporation. All rights reserved.
159
【戻り値】
正常終了した場合は、IFUCNT_ERROR_SUCCESSが返されます。
IFUCNT_ERROR_SUCCESS以外の値が返された場合については、『4.6 戻り値一覧』をご参照くだ
さい。
【備考】
・複数チャンネル同時に動作させた場合、ドライバ内で順に処理を行っています。よって、チ
ャンネル間のスタート時間に 500ns程度ズレが発生します。
ハードウェアを使用した同時スタートを利用する場合は、UcntSetTriggerChannel関数を使
用してカウンタの制御を同期させてください。
また、UcntSetTriggerChannel関数で同期を行う場合はスタート・ストップ・ウェイトなど
全ての制御が同期します。
【使用例】
●C 言語
INT nRet;
HANDLE hDeviceHandle;
hDeviceHandle = UcntOpen(“IFUCNT1”); :
:
nRet = UcntStopCount(hDeviceHandle, 0x01, IFUCNT_CMD_STOP | IFUCNT_CMD_SAMPLING);
●Visual Basic
Dim lpszName As String
Dim hDeviceHandle As Long
lpszName = "IFUCNT1" & Chr( 0 )
hDeviceHandle = UcntOpen(lpszName)
:
:
nRet = UcntStopCount(hDeviceHandle, &H01, IFUCNT_CMD_STOP or IFUCNT_CMD_SAMPLING)
●Delphi
var
lpszName: String;
hDeviceHandle: THandle;
lpszName := 'IFUCNT1';
hDeviceHandle := UcntOpen(lpszName);
:
:
nRet := UcntStopCount(hDeviceHandle, $01, IFUCNT_CMD_STOP | IFUCNT_CMD_SAMPLING);
デバイス名「IFUCNT1」のデバイスのチャンネル 1 のカウントを停止し、サンプリングを終了
します。
GPC-6320 Help for Windows
© 2004, 2014 Interface Corporation. All rights reserved.
160
46. UcntLatchCount
【機能】
カウンタ値をラッチします。
【書式】
●C言語
INT UcntLatchCount(
HANDLE hDeviceHandle, // デバイスハンドル
DWORD dwChSel // チャンネル選択
);
●Visual Basic
Declare Function UcntLatchCount Lib "IFUcnt.DLL"(_
ByVal hDeviceHandle As Long,_ ‘ デバイスハンドル
ByVal dwChSel As Long_ ‘ チャンネル選択
)As Long
●Delphi
function UcntLatchCount(
hDeviceHandle: THandle; // デバイスハンドル
dwChSel: Dword // チャンネル選択
): Integer; stdcall; external 'IFUcnt.DLL';
【パラメータ】
hDeviceHandle UcntOpen 関数で取得したインタフェースモジュールのデバイスハンドルを指定してくだ
さい。
dwChSel 設定を行うチャンネルを指定してください。
各チャンネルに対応した bit に 1 を指定して、複数チャンネルを同時に設定します。
ビット bit31~bit4 bit3 bit2 bit1 bit0
内容 予約 CH4 CH3 CH2 CH1
【戻り値】
正常終了した場合は、IFUCNT_ERROR_SUCCESSが返されます。
IFUCNT_ERROR_SUCCESS以外の値が返された場合については、『4.6 戻り値一覧』をご参照くだ
さい。
GPC-6320 Help for Windows
© 2004, 2014 Interface Corporation. All rights reserved.
161
【使用例】
●C言語
INT nRet;
HANDLE hDeviceHandle;
hDeviceHandle = UcntOpen(“IFUCNT1”); :
:
nRet = UcntLatchCount(hDeviceHandle, 0x0F);
●Visual Basic
Dim lpszName As String
Dim hDeviceHandle As Long
lpszName = "IFUCNT1" & Chr( 0 )
hDeviceHandle = UcntOpen(lpszName)
:
:
nRet = UcntLatchCount(hDeviceHandle, &H0F)
●Delphi
var
lpszName: String;
hDeviceHandle: THandle;
lpszName := 'IFUCNT1';
hDeviceHandle := UcntOpen(lpszName);
:
:
nRet := UcntLatchCount(hDeviceHandle, $0F);
デバイス名「IFUCNT1」のデバイスのチャンネル 1~チャンネル 4のカウンタ値をラッチします。
GPC-6320 Help for Windows
© 2004, 2014 Interface Corporation. All rights reserved.
162
47. UcntSetDOEnable
【機能】
汎用出力の機能を設定します。
【書式】
●C言語
INT UcntSetDOEnable(
HANDLE hDeviceHandle, // デバイスハンドル
DWORD dwOutEnable // 出力許可端子指定
);
●Visual Basic
Declare Function UcntSetDOEnable Lib "IFUcnt.DLL"(_
ByVal hDeviceHandle As Long,_ ‘ デバイスハンドル
ByVal dwOutEnable As Long_ ‘ 出力許可端子指定
)As Long
●Delphi
function UcntSetDOEnable(
hDeviceHandle: THandle; // デバイスハンドル
dwOutEnable: Dword // 出力許可端子指定
): Integer; stdcall; external 'IFUcnt.DLL';
【パラメータ】
hDeviceHandle UcntOpen 関数で取得したインタフェースモジュールのデバイスハンドルを指定してくだ
さい。
dwOutEnable 出力許可を行う端子を指定してください。
ビット bit7 bit6 bit5 bit4 bit3 bit2 bit1 bit0
内容 IO7 IO6 IO5 IO4 IO3 IO2 IO1 IO0
IO0:1A,1B,1Z,1LA 端子の汎用出力の許可・禁止を設定します。
IO1:2A,2B,2Z,2LA 端子の汎用出力の許可・禁止を設定します。
IO2:3A,3B,3Z,3LA 端子の汎用出力の許可・禁止を設定します。
IO3:4A,4B,4Z,4LA 端子の汎用出力の許可・禁止を設定します。
IO4:1LB,2LB,3LB,4LB 端子の汎用出力の許可・禁止を設定します。
IO5:1OUTA,1OUTB,2OUTA,2OUTB 端子の汎用出力の許可・禁止を設定します。
IO6:3OUTA,3OUTB,4OUTA,4OUTB 端子の汎用出力の許可・禁止を設定します。
IO7:1CLR,1GATE,2CLR,2GATE 端子の入出力方向の許可・禁止を設定します。
IO0,IO1,IO2,IO3,IO4,IO5,IO6,IO7 内容
0 汎用出力を禁止
1 汎用出力を許可
GPC-6320 Help for Windows
© 2004, 2014 Interface Corporation. All rights reserved.
163
【戻り値】
正常終了した場合は、IFUCNT_ERROR_SUCCESSが返されます。
IFUCNT_ERROR_SUCCESS以外の値が返された場合については、『4.6 戻り値一覧』をご参照くだ
さい。
【備考】
●UcntOutputDO 関数について
UcntOpen 関数でデバイスオープン時、デフォルトでは各チャンネルの OUTA,OUTB 端子
(IO5,IO6)のみ出力を許可された状態となります。UcntOutputDO 関数を使用する前には、
UcntSetDOEnable 関数を実行して制御したい端子の出力許可設定を行う必要があります。
また、OUTA,OUTB 端子(IO5,IO6)の汎用出力を禁止に設定すると、分周出力・パルスジェネレ
ータ出力が出力されなくなります。これらのモードを使用される場合には OUTA,OUTB 端子
(IO5,IO6)の汎用出力を許可に設定する必要があります。
【使用例】
●C言語
INT nRet;
HANDLE hDeviceHandle;
hDeviceHandle = UcntOpen(“IFUCNT1”); :
:
nRet = UcntSetDOEnable(hDeviceHandle, 0x61);
●Visual Basic
Dim lpszName As String
Dim hDeviceHandle As Long
lpszName = "IFUCNT1" & Chr( 0 )
hDeviceHandle = UcntOpen(lpszName)
:
:
nRet = UcntSetDOEnable(hDeviceHandle, &H61)
●Delphi
var
lpszName: String;
hDeviceHandle: THandle;
lpszName := 'IFUCNT1';
hDeviceHandle := UcntOpen(lpszName);
:
nRet := UcntSetDOEnable(hDeviceHandle, $61);
デバイス名「IFUCNT1」のデバイスの 1A,1B,1Z,1LA と、1OUTA,1OUTB, 2OUTA,2OUTB,31OUTA,3OUTB,
4OUTA,4OUTB の汎用出力を許可に設定します。
GPC-6320 Help for Windows
© 2004, 2014 Interface Corporation. All rights reserved.
164
48. UcntGetDOEnable
【機能】
汎用出力機能の設定情報を取得します。
【書式】
●C言語
INT UcntGetDOEnable(
HANDLE hDeviceHandle, // デバイスハンドル
PDWORD pdwOutEnable // 出力許可状態取得変数
// へのポインタ
);
●Visual Basic
Declare Function UcntGetDOEnable Lib "IFUcnt.DLL"(_
ByVal hDeviceHandle As Long,_ ‘ デバイスハンドル
ByRef pdwOutEnable As Long_ ‘ 出力許可状態取得変数
‘ への参照渡し
)As Long
●Delphi
function UcntGetDOEnable(
hDeviceHandle: THandle; // デバイスハンドル
var pdwOutEnable: Dword // 出力許可状態取得変数
// への参照渡し
): Integer; stdcall; external 'IFUcnt.DLL';
【パラメータ】
hDeviceHandle UcntOpen 関数で取得したインタフェースモジュールのデバイスハンドルを指定してくだ
さい。
pdwOutEnable 出力許可状態設定値を格納する変数へのポインタを指定してください。
格納される値の詳細については下記の様になります。
ビット bit7 bit6 bit5 bit4 bit3 bit2 bit1 bit0
内容 IO7 IO6 IO5 IO4 IO3 IO2 IO1 IO0
IO0:1A,1B,1Z,1LA 端子の汎用出力の許可・禁止状態を取得します。
IO1:2A,2B,2Z,2LA 端子の汎用出力の許可・禁止状態を取得します。
IO2:3A,3B,3Z,3LA 端子の汎用出力の許可・禁止状態を取得します。
IO3:4A,4B,4Z,4LA 端子の汎用出力の許可・禁止状態を取得します。
IO4:1LB,2LB,3LB,4LB 端子の汎用出力の許可・禁止状態を取得します。
IO5:1OUTA,1OUTB,2OUTA,2OUTB 端子の汎用出力の許可・禁止状態を取得します。
IO6:3OUTA,3OUTB,4OUTA,4OUTB 端子の汎用出力の許可・禁止状態を取得します。
IO7:1CLR,1GATE,2CLR,2GATE 端子の入出力方向の許可・禁止状態を取得します。
GPC-6320 Help for Windows
© 2004, 2014 Interface Corporation. All rights reserved.
165
IO0,IO1,IO2,IO3,IO4,IO5,IO6,IO7 内容
0 汎用出力を禁止
1 汎用出力を許可
【戻り値】
正常終了した場合は、IFUCNT_ERROR_SUCCESSが返されます。
IFUCNT_ERROR_SUCCESS以外の値が返された場合については、『4.6 戻り値一覧』をご参照くだ
さい。
【使用例】
●C言語
INT nRet;
HANDLE hDeviceHandle;
DWORD dwOutEnabl;
hDeviceHandle = UcntOpen(“IFUCNT1”); :
:
nRet = UcntGetDOEnable(hDeviceHandle, &dwOutEnable);
●Visual Basic
Dim lpszName As String
Dim hDeviceHandle As Long
Dim dwOutEnable As Long
lpszName = "IFUCNT1" & Chr( 0 )
hDeviceHandle = UcntOpen(lpszName)
:
:
nRet = UcntGetDOEnable(hDeviceHandle, dwOutEnable)
●Delphi
var
lpszName: String;
hDeviceHandle: THandle;
dwOutEnable: THandle;
lpszName := 'IFUCNT1';
hDeviceHandle := UcntOpen(lpszName);
:
:
nRet := UcntGetOutEnable(hDeviceHandle, dwOutEnable);
デバイス名「IFUCNT1」の汎用出力端子の許可設定情報を取得します。
GPC-6320 Help for Windows
© 2004, 2014 Interface Corporation. All rights reserved.
166
49. UcntInputDI
【機能】
汎用入力の状態を取得します。
【書式】
●C言語
INT UcntInputDI(
HANDLE hDeviceHandle, // デバイスハンドル
INT nChannel, // チャンネル選択
PDWORD pdwDI // 汎用入力状態取得変数へのポインタ
);
●Visual Basic
Declare Function UcntInputDI Lib "IFUcnt.DLL"(_
ByVal hDeviceHandle As Long,_ ‘ デバイスハンドル
ByRef nChannel As Long,_ ‘ チャンネル選択
ByRef pdwDI As Long_ ‘ 汎用入力状態取得変数への参照渡し
)As Long
●Delphi
function UcntInputDI(
hDeviceHandle: THandle; // デバイスハンドル
nChannel: Dword; // チャンネル選択
var pdwDI: Dword // 汎用入力状態取得変数への参照渡し
): Integer; stdcall; external 'IFUcnt.DLL';
【パラメータ】
hDeviceHandle UcntOpen 関数で取得したインタフェースモジュールのデバイスハンドルを指定してくだ
さい。
nChannel 汎用入力値を取得するチャンネルを指定してください。
指定範囲は、1~4と IFUCNT_CH_HS になります。
GPC-6320 Help for Windows
© 2004, 2014 Interface Corporation. All rights reserved.
167
pdwDI 入力状態の取得変数へのポインタを指定してください。
(nChannel で指定した値に応じて、異なる端子の状態を取得します。)
nChannel が 1~4 の場合
ビット bit31~bit7 bit6 bit5 bit4 bit3 bit2 bit1 bit0
内容 予約 OUTB OUTA LB LA Z B A
PCI-632302 では下記になります。
nChannel=1 の場合
ビット bit31~bit16
内容 予約
ビット bit15~bit11 bit10 bit9 bit8
内容 予約 IN3 IN2 IN1
ビット bit7~bit5 bit4 bit3 bit2 bit1 bit0
内容 予約 LB LA Z B A
nChannel=2 の場合
ビット bit31~bit16
内容 予約
ビット bit15~bit11 bit10 bit9 bit8
内容 予約 IN6 IN5 IN4
ビット bit7~bit5 bit4 bit3 bit2 bit1 bit0
内容 予約 LB LA Z B A
nChannel が IFUCNT_CH_HS の場合
ビット bit31~bit4 bit3 bit2 bit1 bit0
内容 予約 2GATE 1GATE 2CLR 1CLR
・ビットデータ = 1 → “High”
・ビットデータ = 0 → “Low”
【戻り値】
正常終了した場合は、IFUCNT_ERROR_SUCCESSが返されます。
IFUCNT_ERROR_SUCCESS以外の値が返された場合については、『4.6 戻り値一覧』をご参照くだ
さい。
GPC-6320 Help for Windows
© 2004, 2014 Interface Corporation. All rights reserved.
168
【使用例】
●C言語
INT nRet;
DWORD dwDI;
HANDLE hDeviceHandle;
hDeviceHandle = UcntOpen(“IFUCNT1”); :
:
nRet = UcntInputDI(hDeviceHandle, 1, &dwDI);
●Visual Basic
Dim lpszName As String
Dim hDeviceHandle As Long
Dim dwDI As Long
lpszName = "IFUCNT1" & Chr( 0 )
hDeviceHandle = UcntOpen(lpszName)
:
:
nRet = UcntInputDI(hDeviceHandle, 1, dwDI)
●Delphi
var
lpszName: String;
hDeviceHandle: THandle;
dwDI: Dword;
lpszName := 'IFUCNT1';
hDeviceHandle := UcntOpen(lpszName);
:
:
nRet := UcntInputDI(hDeviceHandle, 1, dwDI);
デバイス名「IFUCNT1」のデバイスのチャンネル 1の汎用入力状態を取得します。
GPC-6320 Help for Windows
© 2004, 2014 Interface Corporation. All rights reserved.
169
50. UcntOutputDO
【機能】
汎用出力を制御します。
【書式】
●C言語
INT UcntOutputDO(
HANDLE hDeviceHandle, // デバイスハンドル
INT nChannel, // チャンネル選択
DWORD dwDO // 汎用出力
);
●Visual Basic
Declare Function UcntOutputDO Lib "IFUcnt.DLL"(_
ByVal hDeviceHandle As Long,_ ‘ デバイスハンドル
ByVal nChannel As Long,_ ‘ チャンネル選択
ByVal dwDO As Long_ ‘ 汎用出力
)As Long
●Delphi
function UcntOutputDO(
hDeviceHandle: THandle; // デバイスハンドル
nChannel: Dword; // チャンネル選択
dwDO: Dword // 汎用出力
): Integer; stdcall; external 'IFUcnt.DLL';
【パラメータ】
hDeviceHandle UcntOpen 関数で取得したインタフェースモジュールのデバイスハンドルを指定してくだ
さい。
nChannel 汎用出力を制御するチャンネルを指定してください。
指定範囲は、1~4と IFUCNT_CH_HS になります。
GPC-6320 Help for Windows
© 2004, 2014 Interface Corporation. All rights reserved.
170
dwDO 汎用出力を指定してください。
(nChannel で指定した値に応じて、異なる端子の状態を制御します。)
nChannel が 1~4 の場合
ビット bit31~bit7 bit6 bit5 bit4 bit3 bit2 bit1 bit0
内容 予約 OUTB OUTA LB LA Z B A
PCI-632302 では下記になります。
nChannel=1 の場合
ビット bit31~bit16
内容 予約
ビット bit15~bit12 bit11 bit10 bit9 bit8
内容 予約 OUT4 OUT3 OUT2 OUT1
ビット bit7 bit6 bit5 bit4~bit0
内容 予約 OUTB OUTA 予約
nChannel=2 の場合
ビット bit31~bit16
内容 予約
ビット bit15~bit12 bit11 bit10 bit9 bit8
内容 予約 OUT8 OUT7 OUT6 OUT5
ビット bit7 bit6 bit5 bit4~bit0
内容 予約 OUTB OUTA 予約
nChannel が IFUCNT_CH_HS の場合
ビット bit31~bit4 bit3 bit2 bit1 bit0
内容 予約 2GATE 1GATE 2CLR 1CLR
・ビットデータ = 1 → “High”
・ビットデータ = 0 → “Low”
【戻り値】
正常終了した場合は、IFUCNT_ERROR_SUCCESSが返されます。
IFUCNT_ERROR_SUCCESS以外の値が返された場合については、『4.6 戻り値一覧』をご参照くだ
さい。
GPC-6320 Help for Windows
© 2004, 2014 Interface Corporation. All rights reserved.
171
【備考】
PCI-632302 以外の型式で使用する場合
●UcntOutputDO 使用時の注意事項について
UcntOutputDO 関数では、A, B, Z, LA, LB 等の本来入力用として使用する端子の出力状態を
変更することが可能となります。
その為、これらの端子にパルス出力を行う外部機器を接続した状態で UcntOutputDO 関数を
実行すると、接続した機器が破損する可能性があります。
UcntOutputDO 関数を使用する前には必ず、出力を行っても問題ない接続となっていることを
ご確認の上ご使用下さい。
●UcntSetDOEnebale 関数について
UcntOpen 関数でデバイスオープン時、デフォルトでは各チャンネルの OUTA,OUTB 端子のみ出
力を許可された状態となります。
UcntOutputDO 関数を使用する前には、UcntSetDOEnable 関数を実行して制御したい端子の出
力許可設定を行ってから、本関数をご使用下さい。
【使用例】
●C言語
INT nRet;
HANDLE hDeviceHandle;
DWORD dwOutEnable;
hDeviceHandle = UcntOpen(“IFUCNT1”); :
:
nRet = UcntGetOutEnable(hDeviceHandle, &dwOutEnable);
nRet = UcntSetOutEnable(hDeviceHandle, dwOutEnable | 0x01);
nRet = UcntOutputDO(hDeviceHandle, 1, 0x01);
●Visual Basic
Dim lpszName As String
Dim hDeviceHandle As Long
Dim dwOutEnable As Long
lpszName = "IFUCNT1" & Chr( 0 )
hDeviceHandle = UcntOpen(lpszName)
:
:
nRet = UcntGetDOEnable(hDeviceHandle, dwOutEnable)
nRet = UcntSetDOEnable(hDeviceHandle, dwOutEnable or &H01)
nRet = UcntOutputDO(hDeviceHandle, 1, &H01)
GPC-6320 Help for Windows
© 2004, 2014 Interface Corporation. All rights reserved.
172
●Delphi
var
lpszName: String;
hDeviceHandle: THandle;
dwOutEnable: Dword;
lpszName := 'IFUCNT1';
hDeviceHandle := UcntOpen(lpszName);
:
:
nRet := UcntGetDOEnable(hDeviceHandle, dwOutEnable);
nRet := UcntSetDOEnable(hDeviceHandle, dwOutEnable | $01);
nRet := UcntOutputDO(hDeviceHandle, 1, $01);
デバイス名「IFUCNT1」のデバイスのチャンネル 1の Aを High に設定します。
GPC-6320 Help for Windows
© 2004, 2014 Interface Corporation. All rights reserved.
173
51. UcntSetEventMask
【機能】
割り込みイベントのマスク設定を行います。
【書式】
●C言語
INT UcntSetEventMask(
HANDLE hDeviceHandle, // デバイスハンドル
INT nChannel, // チャンネル指定
DWORD dwEventMask // 割り込みマスク
);
●Visual Basic
Declare Function UcntSetEventMask Lib "IFUcnt.DLL"(_
ByVal hDeviceHandle As Long,_ ‘ デバイスハンドル
ByVal nChannel As Long,_ ‘ チャンネル選択
ByVal dwEventMask As Long_ ‘ 割り込みマスク
)As Long
●Delphi
function UcntSetEventMask(
hDeviceHandle: THandle; // デバイスハンドル
nChannel: Integer; // チャンネル選択
dwEventMask: Dword // 割り込みマスク
): Integer; stdcall; external 'IFUcnt.DLL';
【パラメータ】
hDeviceHandle UcntOpen 関数で取得したインタフェースモジュールのデバイスハンドルを指定してくだ
さい。
nChannel 設定を行うチャンネルを指定してください。
dwEventMask 割り込みイベントのマスクデータを指定してください。
GPC-6320 Help for Windows
© 2004, 2014 Interface Corporation. All rights reserved.
174
ビット bit23~bit19 bit18 bit17 bit16
内容 予約 ORER SMPL
EQ
SMPL
END
ビット bit15 bit14 bit13 bit12 bit11 bit10 bit9 bit8
内容 予約 EX
LOAD
CLOCK
LATCH
EX
LATCH
PERR 予約 EX
STOP
EX
START
ビット bit7 bit6 bit5 bit4 bit3 bit2 bit1 bit0
内容 OUTB
FALL
OUTB
RISE
OUTA
FALL
OUTA
RISE
予約 予約 BRF CRF
dwEventMask 1:アンマスク(割り込み有効)
0:マスク(割り込み無効)
CRF パルスカウンタキャリー割り込みイベントマスク
BRF パルスカウンタボロー割り込みイベントマスク
OUTA RISE OUTA の一致検出割り込みイベントマスク
OUTA FALL OUTA の一致解除割り込みイベントマスク
OUTB RISE OUTB の一致検出割り込みイベントマスク
OUTB FALL OUTB の一致解除割り込みイベントマスク
EX START 外部スタート割り込みイベントマスク
EX STOP 外部ストップ割り込みイベントマスク
PERR パルス異常検出割り込みイベントマスク
EX LATCH 外部ラッチ割り込みイベントマスク
CLOCK LATCH 基準クロックラッチ割り込みイベントマスク
EX LOAD 外部プリロード割り込みイベントマスク
SMPL END サンプリング完了割り込みイベントマスク
SMPL EQ サンプリング指定件数割り込みイベントマスク
ORER サンプリング用 FIFO のオーバーランエラー割り込みイベントマスク
【戻り値】
正常終了した場合は、IFUCNT_ERROR_SUCCESSが返されます。
IFUCNT_ERROR_SUCCESS以外の値が返された場合については、『4.6 戻り値一覧』をご参照くだ
さい。
GPC-6320 Help for Windows
© 2004, 2014 Interface Corporation. All rights reserved.
175
【使用例】
●C言語
INT nRet;
HANDLE hDeviceHandle;
hDeviceHandle = UcntOpen(“IFUCNT1”); :
:
nRet = UcntSetEventMask(hDeviceHandle, 1, 0x03);
●Visual Basic
Dim lpszName As String
Dim hDeviceHandle As Long
lpszName = "IFUCNT1" & Chr( 0 )
hDeviceHandle = UcntOpen(lpszName)
:
:
nRet = UcntSetEventMask(hDeviceHandle, 1, &H03)
●Delphi
var
lpszName: String;
hDeviceHandle: THandle;
lpszName := 'IFUCNT1';
hDeviceHandle := UcntOpen(lpszName);
:
:
nRet := UcntSetEventMask(hDeviceHandle, 1, $03);
デバイス名「IFUCNT1」のデバイスのチャンネル 1の割り込みイベントマスクを設定します。
GPC-6320 Help for Windows
© 2004, 2014 Interface Corporation. All rights reserved.
176
52. UcntGetEventMask
【機能】
割り込みイベントのマスク設定を取得します。
【書式】
●C言語
INT UcntGetEventMask(
HANDLE hDeviceHandle, // デバイスハンドル
INT nChannel, // チャンネル選択
PDWORD pdwEventMask // 割り込みマスク状態取得変数
// へのポインタ
);
●Visual Basic
Declare Function UcntGetEventMask Lib "IFUcnt.DLL"(_
ByVal hDeviceHandle As Long,_ ‘ デバイスハンドル
ByVal nChannel As Long,_ ‘ チャンネル選択
ByRef pdwEventMask As Long_ ‘ 割り込みマスク状態取得変数
‘ への参照渡し
)As Long
●Delphi
function UcntGetEventMask(
hDeviceHandle: THandle; // デバイスハンドル
nChannel: Integer; // チャンネル選択
var pdwEventMask: Dword // 割り込みマスク状態取得変数
// への参照渡し
): Integer; stdcall; external 'IFUcnt.DLL';
【パラメータ】
hDeviceHandle UcntOpen 関数で取得したインタフェースモジュールのデバイスハンドルを指定してくだ
さい。
nChannel 設定を行うチャンネルを指定してください。
pdwEventMask 割り込みイベント設定値を格納する変数へのポインタを指定してください。
格納される値の詳細については下記の様になります。
GPC-6320 Help for Windows
© 2004, 2014 Interface Corporation. All rights reserved.
177
ビット bit23~bit19 bit18 bit17 bit16
内容 予約 ORER SMPL
EQ
SMPL
END
ビット bit15 bit14 bit13 bit12 bit11 bit10 bit9 bit8
内容 予約 EX
LOAD
CLOCK
LATCH
EX
LATCH
PERR 予約 EX
STOP
EX
START
ビット bit7 bit6 bit5 bit4 bit3 bit2 bit1 bit0
内容 OUTB
FALL
OUTB
RISE
OUTA
FALL
OUTA
RISE
予約 予約 BRF CRF
dwEventMask 1:アンマスク(割り込み有効)
0:マスク(割り込み無効)
CRF パルスカウンタキャリー割り込みイベントマスク
BRF パルスカウンタボロー割り込みイベントマスク
OUTA RISE OUTA の一致検出割り込みイベントマスク
OUTA FALL OUTA の一致解除割り込みイベントマスク
OUTB RISE OUTB の一致検出割り込みイベントマスク
OUTB FALL OUTB の一致解除割り込みイベントマスク
EX START 外部スタート割り込みイベントマスク
EX STOP 外部ストップ割り込みイベントマスク
PERR パルス異常検出割り込みイベントマスク
EX LATCH 外部ラッチ割り込みイベントマスク
CLOCK LATCH 基準クロックラッチ割り込みイベントマスク
EX LOAD 外部プリロード割り込みイベントマスク
SMPL END サンプリング完了割り込みイベントマスク
SMPL EQ サンプリング指定件数割り込みイベントマスク
ORER サンプリング用 FIFO のオーバーランエラー割り込みイベントマスク
【戻り値】
正常終了した場合は、IFUCNT_ERROR_SUCCESSが返されます。
IFUCNT_ERROR_SUCCESS以外の値が返された場合については、『4.6 戻り値一覧』をご参照くだ
さい。
GPC-6320 Help for Windows
© 2004, 2014 Interface Corporation. All rights reserved.
178
【使用例】
●C言語
INT nRet;
HANDLE hDeviceHandle;
DWORD dwEventMask;
hDeviceHandle = UcntOpen(“IFUCNT1”); :
:
nRet = UcntGetEventMask(hDeviceHandle, 1, &dwEventMask);
●Visual Basic
Dim lpszName As String
Dim hDeviceHandle As Long
Dim dwEventMask As Long
lpszName = "IFUCNT1" & Chr( 0 )
hDeviceHandle = UcntOpen(lpszName)
:
:
nRet = UcntGetEventMask(hDeviceHandle, 1, dwEventMask)
●Delphi
var
lpszName: String;
hDeviceHandle: THandle;
dwEventMask: Dword;
lpszName := 'IFUCNT1';
hDeviceHandle := UcntOpen(lpszName);
:
:
nRet := UcntGetEventMask(hDeviceHandle, 1, dwEventMask);
デバイス名「IFUCNT1」のデバイスのチャンネル 1の割り込みマスク設定状態を取得します。
GPC-6320 Help for Windows
© 2004, 2014 Interface Corporation. All rights reserved.
179
53. UcntSetEvent
【機能】
割り込み発生時に起動するコールバック関数、メッセージの登録を行います。
【書式】
●C言語
INT UcntSetEvent(
HANDLE hDeviceHandle, // デバイスハンドル
PUCNTEVENTREQ pEvent // 割り込み設定構造体
// へのポインタ
);
●Visual Basic
Declare Function UcntSetEvent Lib "IFUcnt.DLL"(_
ByVal hDeviceHandle As Long,_ ‘ デバイスハンドル
ByRef pEvent UCNTEVENTREQ_ ‘ 割り込み設定構造体
‘ への参照渡し
)As Long
●Delphi
function UcntSetEvent(
hDeviceHandle: THandle; // デバイスハンドル
var pEvent: UCNTEVENTREQ // 割り込み設定構造体
// への参照渡し
): Integer; stdcall; external 'IFUcnt.DLL';
【パラメータ】
hDeviceHandle UcntOpen 関数で取得したインタフェースモジュールのデバイスハンドルを指定してくだ
さい。
pEvent 割り込み発生時に呼び出されるユーザ・コールバック関数、メッセージの設定を行う構造
体へのポインタを指定してください。
構造体の説明については、『4.5 構造体』をご参照ください。
【戻り値】
正常終了した場合は、IFUCNT_ERROR_SUCCESSが返されます。
IFUCNT_ERROR_SUCCESS以外の値が返された場合については、『4.6 戻り値一覧』をご参照くだ
さい。
GPC-6320 Help for Windows
© 2004, 2014 Interface Corporation. All rights reserved.
180
【備考】
●コールバック関数の書式
コールバック関数の書式は以下の通りです。
VOID CALLBACK lpCallBackProc(INT nChannel, DWORD dwEvent, DWORD dwUser );
○nChannel
割り込み発生チャンネル。
○dwEvent
コールバック関数実行要因。
コールバック関数が実行された要因の該当ビットに”1”がセットされます。
○dwUser
ユーザデータ
イベント設定時に指定したユーザデータがセットされます。
【使用例】
●C言語(コールバック関数の設定)
// コールバック関数
VOID CALLBACK lpEventProc(INT nChannel, DWORD dwEvent, DWORD dwUser){
// 割り込み処理を記述します
:
:
}
// メインルーチン
INT nRet;
HANDLE hDeviceHandle;
UCNTEVENTREQ Event;
hDeviceHandle = UcntOpen(“IFUCNT1”); :
:
nRet = UcntSetEventMask(hDeviceHandle, 1, 0x03);
Event.hWnd = NULL;
Event.uMessage[0] = WM_NULL;
Event.uMessage[1] = WM_NULL;
Event.uMessage[2] = WM_NULL;
Event.uMessage[3] = WM_NULL;
Event.hEvent = NULL;
Event.lpCallBackProc = (PLPUCNTCALLBACK)lpEventProc;
Event.dwUser = 0x1234;
nRet = UcntSetEvent(hDeviceHandle, &Event);
GPC-6320 Help for Windows
© 2004, 2014 Interface Corporation. All rights reserved.
181
●C 言語(イベント待ちの設定)
INT nRet;
HANDLE hDeviceHandle;
OVERLAPPED OverLapped;
UCNTEVENTREQ Event;
hDeviceHandle = UcntOpen(“IFUCNT1”); :
:
nRet = UcntSetEventMask(hDeviceHandle, 1, 0x03);
OverLapped.hEvent = CreateEvent(0,FALSE,FALSE,NULL);
Event.hWnd = NULL;
Event.uMessage[0] = WM_NULL;
Event.uMessage[1] = WM_NULL;
Event.uMessage[2] = WM_NULL;
Event.uMessage[3] = WM_NULL;
Event.hEvent = OverLapped.hEvent;
Event.lpCallBackProc = NULL;
Event.dwUser = 0x1234;
nRet = UcntSetEvent(hDeviceHandle, &Event);
if (nRet == IFUCNT_ERROR_SUCCESS) {
// イベント待ち
WaitForSingleObject(OverLapped.hEvent, INFINITE);
}
GPC-6320 Help for Windows
© 2004, 2014 Interface Corporation. All rights reserved.
182
●Visual Basic(イベント待ちの設定)
※ Visual Basic Ver. 6.0 では言語仕様上の制限によりコールバック関数はご使用いただけま
せん。メッセージ及びベント機能をご使用ください。
Dim lpszName As String
Dim hDeviceHandle As Long
Dim Event As UCNTEVENTREQ
Public lpOverlapped As OVERLAPPED
lpszName = "IFUCNT1" & Chr( 0 )
hDeviceHandle = UcntOpen(lpszName)
:
:
nRet = UcntSetEventMask(hDeviceHandle, 1, &H03)
lpOverlapped.hEvent = CreateEvent(nul, False, False, nul)
Event.hWnd = 0
Event.uMessage(0) = 0
Event.uMessage(1) = 0
Event.uMessage(2) = 0
Event.uMessage(3) = 0
Event.hEvent = lpOverlapped.hEvent
Event.lpCallBackProc = 0
Event.dwUser = &H1234
nRet = UcntSetEvent(hDeviceHandle, Event);
' イベント待ち
nRet = WaitForSingleObject(lpOverlapped.hEvent, 0)
GPC-6320 Help for Windows
© 2004, 2014 Interface Corporation. All rights reserved.
183
●Delphi(コールバック関数の設定)
// コールバック関数
procedure lpEventProc(nChannel: Integer; dwEvent: DWORD; dwUser: DWORD); stdcall;
var
//変数定義
begin
// 割り込み処理を記述します
:
:
end;
// メインルーチン
var
lpszName: String;
hDeviceHandle: THandle;
Event: UCNTEVENTREQ;
lpszName := 'IFUCNT1';
hDeviceHandle := UcntOpen(lpszName);
:
:
nRet := UcntSetEventMask(hDeviceHandle, 1, $03);
Event.hWnd := 0;
Event.uMessage[0] := WM_NULL;
Event.uMessage[1] := WM_NULL;
Event.uMessage[2] := WM_NULL;
Event.uMessage[3] := WM_NULL;
Event.hEvent := 0;
Event.lpCallBackProc := lpEventProc;
Event.dwUser := $1234;
nRet := UcntSetEvent(hDeviceHandle, Event)
GPC-6320 Help for Windows
© 2004, 2014 Interface Corporation. All rights reserved.
184
●Delphi(イベント待ちの設定)
var
lpszName: String;
hDeviceHandle: THandle;
Event: UCNTEVENTREQ;
OverLapped : TOverLapped;
nRet : Integer;
begin
lpszName := 'IFUCNT1';
hDeviceHandle := UcntOpen(lpszName);
:
:
nRet := UcntSetEventMask(hDeviceHandle, 1, $03);
OverLapped.hEvent := CreateEvent(nil, False, False, Nil);
Event.hWnd := 0;
Event.uMessage[0] := WM_NULL;
Event.uMessage[1] := WM_NULL;
Event.uMessage[2] := WM_NULL;
Event.uMessage[3] := WM_NULL;
Event.hEvent := OverLapped.hEvent;
Event.lpCallBackProc := 0;
Event.dwUser := $1234;
nRet := UcntSetEvent(hDeviceHandle, Event);
// イベント待ち
WaitForSingleObject(OverLapped.hEvent, INFINITE);
:
end;
デバイス名「IFUCNT1」のデバイスの CH1 の割り込みマスク、コールバック関数(もしくはイ
ベント)を設定します。
GPC-6320 Help for Windows
© 2004, 2014 Interface Corporation. All rights reserved.
185
54. UcntKillEvent
【機能】
割り込み発生時に起動するコールバック関数、メッセージの解除を行います。
【書式】
●C言語
INT UcntKillEvent(
HANDLE hDeviceHandle // デバイスハンドル
);
●Visual Basic
Declare Function UcntKillEvent Lib "IFUcnt.DLL"(_
ByVal hDeviceHandle As Long_ ‘ デバイスハンドル
)As Long
●Delphi
function UcntKillEvent(
hDeviceHandle: THandle // デバイスハンドル
): Integer; stdcall; external 'IFUcnt.DLL';
【パラメータ】
hDeviceHandle UcntOpen 関数で取得したインタフェースモジュールのデバイスハンドルを指定してくだ
さい。
【戻り値】
正常終了した場合は、IFUCNT_ERROR_SUCCESSが返されます。
IFUCNT_ERROR_SUCCESS以外の値が返された場合については、『4.6 戻り値一覧』をご参照くだ
さい。
【使用例】
●C言語
INT nRet;
HANDLE hDeviceHandle;
hDeviceHandle = UcntOpen(“IFUCNT1”); :
:
nRet = UcntKillEvent(hDeviceHandle);
GPC-6320 Help for Windows
© 2004, 2014 Interface Corporation. All rights reserved.
186
●Visual Basic
Dim lpszName As String
Dim hDeviceHandle As Long
lpszName = "IFUCNT1" & Chr( 0 )
hDeviceHandle = UcntOpen(lpszName)
:
:
nRet = UcntKillEvent(hDeviceHandle)
●Delphi
var
lpszName: String;
hDeviceHandle: THandle;
lpszName := 'IFUCNT1';
hDeviceHandle := UcntOpen(lpszName);
:
:
nRet := UcntKillEvent(hDeviceHandle);
デバイス名「IFUCNT1」のデバイスのコールバック関数の解除を行います。
GPC-6320 Help for Windows
© 2004, 2014 Interface Corporation. All rights reserved.
187
55. UcntOutputSync
【機能】
内部同期出力を制御します。
PCI-632302 でのみ使用できます。
【書式】
●C言語
INT UcntOutputSync(
HANDLE DeviceHandle, // デバイスハンドル
INT Channel, // チャンネル選択
INT TrgLine, // 同期ライン
DWORD TrgMode // トリガモード
);
●Visual Basic
Declare Function UcntOutputSync Lib "IFUcnt.DLL"(_
ByVal hDeviceHandle As Long,_ ‘ デバイスハンドル
ByVal nChannel As Long,_ ‘ チャンネル選択
ByVal TrgLine As Long,_ ‘ 同期ライン
ByVal TrgMode As Long_ ‘ トリガモード
)As Long
●Delphi
function UcntOutputSync(
hDeviceHandle: THandle; // デバイスハンドル
nChannel: Dword; // チャンネル選択
TrgLine: Dword; // 同期ライン
TrgMode: Dword // トリガモード
): Integer; stdcall; external 'IFUcnt.DLL';
【パラメータ】
hDeviceHandle UcntOpen 関数で取得したインタフェースモジュールのデバイスハンドルを指定してくだ
さい。
nChannel 同期信号ラインを制御するチャンネルを指定してください。
TrgLine 制御する同期ラインを指定してください。
識別子 内容
IFUCNT_SYNC1 同期ライン 1
IFUCNT_SYNC2 同期ライン 2
GPC-6320 Help for Windows
© 2004, 2014 Interface Corporation. All rights reserved.
188
TrgMode 同期ラインのトリガモードを指定してください。
識別子 内容
IFUCNT_DISABLE 無効
IFUCNT_UPDN アップダウン
【戻り値】
正常終了した場合は、IFUCNT_ERROR_SUCCESSが返されます。
IFUCNT_ERROR_SUCCESS以外の値が返された場合については、『4.6 戻り値一覧』をご参照くだ
さい。
【備考】
・本関数は、PCI-632302 でのみ使用できます。
【使用例】
●C言語
INT nRet;
HANDLE hDeviceHandle;
hDeviceHandle = UcntOpen(“IFUCNT1”); :
nRet = UcntOutputSync(hDeviceHandle, 1, IFUCNT_SYNC1, IFUCNT_UPDN);
●Visual Basic
Dim lpszName As String
Dim hDeviceHandle As Long
lpszName = "IFUCNT1" & Chr( 0 )
hDeviceHandle = UcntOpen(lpszName)
:
nRet = UcntOutputSync(hDeviceHandle, 1, IFUCNT_SYNC1, IFUCNT_UPDN)
●Delphi
var
lpszName: String;
hDeviceHandle: THandle;
lpszName := 'IFUCNT1';
hDeviceHandle := UcntOpen(lpszName);
:
nRet := UcntOutputSync(hDeviceHandle, 1, IFUCNT_SYNC1, IFUCNT_UPDN);
デバイス名「IFUCNT1」のデバイスのチャンネル 1 の内部同期ライン 1 からカウンタアップダ
ウンを有効に設定します。
GPC-6320 Help for Windows
© 2004, 2014 Interface Corporation. All rights reserved.
189
56. UcntSetPhysicalMemorysSize
【機能】
64bit 環境専用の API 関数です。内部バッファの確保サイズを設定します。サイズ設定は
IFUCNTMEM.EXE でも行えますが、本 API 関数でも設定する事が可能です。
関数が成功後、設定サイズを反映させるには、OS を再起動する必要があります。
【書式】
●C言語
INT UcntSetPhysicalMemorysSize(
HANDLE DeviceHandle, // デバイスハンドル
INT Channel, // チャンネル選択
DWORD PhysicalMemorysSize // 確保サイズ
);
●Visual Basic
Declare Function UcntSetPhysicalMemorysSize Lib "IFUcnt.DLL"(_
ByVal hDeviceHandle As Long,_ ‘ デバイスハンドル
ByVal nChannel As Long,_ ‘ チャンネル選択
ByVal PhysicalMemorysSize As Long_ ‘ 確保サイズ
)As Long
●Delphi
function UcntSetPhysicalMemorysSize(
hDeviceHandle: THandle; // デバイスハンドル
nChannel: Dword; // チャンネル選択
PhysicalMemorysSize: Dword // 確保サイズ
): Integer; stdcall; external 'IFUcnt.DLL';
【パラメータ】
hDeviceHandle UcntOpen 関数で取得したインタフェースモジュールのデバイスハンドルを指定してくだ
さい。
nChannel 設定を行うチャンネルを指定してください。
PhysicalMemorysSize 内部バッファの確保サイズを指定します。( 大 67,076,032byte)
【戻り値】
正常終了した場合は、IFUCNT_ERROR_SUCCESSが返されます。
IFUCNT_ERROR_SUCCESS以外の値が返された場合については、『4.6 戻り値一覧』をご参照くだ
さい。
GPC-6320 Help for Windows
© 2004, 2014 Interface Corporation. All rights reserved.
190
【使用例】
●C言語
INT nRet;
HANDLE hDeviceHandle;
hDeviceHandle = UcntOpen(“IFUCNT1”); :
nRet = UcntSetPhysicalMemorysSize(hDeviceHandle, 1, 32768);
●Visual Basic
Dim lpszName As String
Dim hDeviceHandle As Long
lpszName = "IFUCNT1" & Chr( 0 )
hDeviceHandle = UcntOpen(lpszName)
:
nRet = UcntSetPhysicalMemorysSize(hDeviceHandle, 1, 32768)
●Delphi
var
lpszName: String;
hDeviceHandle: THandle;
lpszName := 'IFUCNT1';
hDeviceHandle := UcntOpen(lpszName);
:
nRet := UcntSetPhysicalMemorysSize(hDeviceHandle, 1, 32768);
デバイス名「IFUCNT1」のデバイスのチャンネル 1 の内部バッファ確保サイズを 32768byte に
設定します。
GPC-6320 Help for Windows
© 2004, 2014 Interface Corporation. All rights reserved.
191
57. UcntGetDriverInfo
【機能】
OS のアーキテクチャ情報と、各チャンネルの内部バッファ確保済サイズを取得できます。物理
メモリ確保済サイズは 64bitOS 専用の機能となります。
【書式】
●C言語
INT UcntGetDriverInfo (
HANDLE DeviceHandle, // デバイスハンドル
PDWORD OsArchitecture // OS 情報
PDWORD PhysicalMemorysSize // 内部バッファサイズ
);
●Visual Basic
Declare Function UcntGetDriverInfo Lib "IFUcnt.DLL"(_
ByVal hDeviceHandle As Long,_ ‘ デバイスハンドル
ByRef OsArchitecture As Long,_ ‘ OS 情報
ByRef PhysicalMemorysSize As Long_ ‘ 内部バッファサイズ
)As Long
●Delphi
function UcntGetDriverInfo (
hDeviceHandle: THandle; // デバイスハンドル
var OsArchitecture: Dword; // OS 情報
var PhysicalMemorysSize: Dword // 内部バッファサイズ
): Integer; stdcall; external 'IFUcnt.DLL';
【パラメータ】
hDeviceHandle UcntOpen 関数で取得したインタフェースモジュールのデバイスハンドルを指定してくだ
さい。
OsArchitecture OS 情報を格納する変数へのポインタを指定してください。
変数には OS 情報の識別子が返ります。
識別子 OS 環境
IFUCNT_OS_ARCHITECTURE_x64 64bit 環境
IFUCNT_OS_ARCHITECTURE_x86 32bit 環境
PhysicalMemorysSize 各チャンネルの内部バッファサイズを格納する配列のポインタを指定してください。
配列は 32bit 配列の 4要素にしてください。
配列[0] : チャンネル 1の内部バッファサイズ
配列[1] : チャンネル 2の内部バッファサイズ
GPC-6320 Help for Windows
© 2004, 2014 Interface Corporation. All rights reserved.
192
配列[2] : チャンネル 3の内部バッファサイズ
配列[3] : チャンネル 4の内部バッファサイズ
【戻り値】
正常終了した場合は、IFUCNT_ERROR_SUCCESSが返されます。
IFUCNT_ERROR_SUCCESS以外の値が返された場合については、『4.6 戻り値一覧』をご参照くだ
さい。
【使用例】
●C言語
INT nRet;
HANDLE hDeviceHandle;
DWORD Architecture;
DWORD PhysicalMemorysSize[4];
hDeviceHandle = UcntOpen(“IFUCNT1”); :
nRet = UcntGetDriverInfo(hDeviceHandle, &Architecture, PhysicalMemorysSize);
●Visual Basic
Dim lpszName As String
Dim hDeviceHandle As Long
Dim Architecture As Long
Dim PhysicalMemorysSize(0 To 3) As Long
lpszName = "IFUCNT1" & Chr( 0 )
hDeviceHandle = UcntOpen(lpszName)
:
nRet = UcntGetDriverInfo (hDeviceHandle, Architecture, PhysicalMemorysSize(0))
●Delphi
var
lpszName: String;
hDeviceHandle: THandle;
Architecture: Dword;
PhysicalMemorysSize: Array[0..3] of Dword;
lpszName := 'IFUCNT1';
hDeviceHandle := UcntOpen(lpszName);
:
nRet := UcntGetDriverInfo(hDeviceHandle, Architecture, PhysicalMemorysSize[0]);
デバイス名「IFUCNT1」のデバイスがインストールされている OS 情報と、内部バッファ確保サ
イズを取得します。
GPC-6320 Help for Windows
© 2004, 2014 Interface Corporation. All rights reserved.
193
4.3 DLL 関数一覧(高速カウンタ) No 関数名 機能
●初期化
58 HScntOpen デバイスをオープンします。
59 HScntClose デバイスをクローズします。
60 HScntGetDeviceInfo デバイス情報を取得します。
61 HScntReset 各種設定の初期化、カウンタのクリアを行います。
●モード設定/取得
62 HScntSetMode カウンタのモードを設定します。
63 HScntGetMode カウンタのモード設定情報を取得します。
●カウンタ値取得
64 HScntReadCounter カウンタを読み出します。
●ステータス取得
65 HScntGetStatus ステータス情報を取得します。
●カウンタ制御
66 HScntStartCount カウンタを開始します。
67 HScntStopCount カウントを停止します。
●割り込み設定/取得
68 HScntSetEventMask イベントマスクを設定します。
69 HScntGetEventMask イベントマスクの設定情報を取得します。
70 HScntSetEvent イベントコールバック関数、メッセージを登録します。
71 HScntKillEvent イベントコールバック関数、メッセージを解除します。
●汎用入出力※
72 HScntSetDOEnable 汎用出力の機能を設定します。
73 HScntGetDOEnable 汎用出力機能の設定情報を取得します。
74 HScntInputDI 汎用入力の状態を取得します。
75 HScntOutputDO 汎用出力を制御します。
●インターバルタイマ設定/取得※
76 HScntSetTimerConfig インターバルタイマを設定します。
77 HScntGetTimerConfig インターバルタイマの設定情報を取得します。
78 HScntGetTimerCount インターバルタイマのカウント値を取得します。
●デジタルフィルタ設定/取得※
79 HScntSetFilter デジタルフィルタを設定します。
80 HScntGetFilter デジタルフィルタの設定情報を取得します。
※この関数は下記、製品型式のみ対応しています。ご注意ください。
LPC-632102、PEX-632102
GPC-6320 Help for Windows
© 2004, 2014 Interface Corporation. All rights reserved.
194
4.4 関数個別説明(高速カウンタ)
58. HScntOpen
【機能】
高速カウンタのオープンを行い、以後のインタフェースモジュールへのアクセスを行えるよう
にします。
【書式】
●C言語(x86 専用)
HANDLE HScntOpen(
LPCTSTR lpszName, // デバイス名
);
●C 言語(x64 専用)
HANDLE HScntOpen(
LPCSTR lpszName, // デバイス名
);
●Visual Basic
Declare Function HScntOpen Lib "IFHScnt.DLL"(_
ByVal lpszName As String,_ ‘ デバイス名
)As Long
●Delphi
function HScntOpen(
lpszName: String; // デバイス名
):THandle; stdcall; external 'IFHScnt.DLL';
【パラメータ】
lpszName オープンするインタフェースモジュールのデバイス名を指定してください。
【戻り値】
HScntOpen 関数が正常に終了した場合には、有効なハンドルが返されます。
他の関数は、本関数により取得したハンドルを使用してデバイスの制御を行います。
オープンに失敗した場合には、INVALID_HANDLE_VALUE(FFFFFFFFh)が返されます。
GPC-6320 Help for Windows
© 2004, 2014 Interface Corporation. All rights reserved.
195
【備考】
●デバイス名について
オープンするにはデバイス名を指定します。
高速カウンタのデバイス名は「IFHSCNTx」(xは 1~16)となります。
各デバイス名はデバイスマネージャにて確認できます。
【使用例】
●C言語(32bit 用コンパイラ)
HANDLE DeviceHandle;
DeviceHandle = HScntOpen(“IFHSCNT1”);
●C 言語(32bit 用コンパイラで UNICODE を定義している場合)
HANDLE DeviceHandle;
DeviceHandle = HScntOpen((LPCTSTR)“IFHSCNT1”);
HANDLE DeviceHandle;
char* lpszName = “IFHSCNT1”;
DeviceHandle = HScntOpen((LPCTSTR)lpszName);
HANDLE DeviceHandle;
LPCWSTR UnicodeName = L"IFHSCNT1";
char DeviceName[256];
int len;
len = WideCharToMultiByte(CP_ACP, 0, UnicodeName, -1, NULL, 0, NULL, NULL);
WideCharToMultiByte(CP_ACP, 0, UnicodeName, -1, DeviceName, len, NULL, NULL);
DeviceHandle = HScntOpen((LPCTSTR)DeviceName);
●C 言語(64bit 用コンパイラ)
HANDLE DeviceHandle;
DeviceHandle = HScntOpen(“IFHSCNT1”);
●Visual Basic
Dim Name As String
Dim DeviceHandle As Long
Name = "IFHSCNT1" & Chr( 0 )
DeviceHandle = HScntOpen(Name)
GPC-6320 Help for Windows
© 2004, 2014 Interface Corporation. All rights reserved.
196
●Delphi
var
Name: String;
DeviceHandle: THandle;
Name := 'IFHSCNT1';
DeviceHandle := HScntOpen(Name);
デバイス名「IFHSCNT1」のデバイスをオープンします。
GPC-6320 Help for Windows
© 2004, 2014 Interface Corporation. All rights reserved.
197
59. HScntClose
【機能】
高速カウンタをクローズします。
デバイスアクセスのために使用されていた各種リソースの解放を行い、以後のデバイスへのア
クセスを禁止します。
【書式】
●C言語
INT HScntClose(
HANDLE hDeviceHandle // デバイスハンドル
);
●Visual Basic
Declare Function HScntClose Lib "IFHScnt.DLL"(_
ByVal hDeviceHandle As Long_ ‘ デバイスハンドル
)As Long
●Delphi
function HScntClose (
hDeviceHandle: THandle // デバイスハンドル
): Integer; stdcall; external 'IFHScnt.DLL';
【パラメータ】
hDeviceHandle HScntOpen 関数で取得したデバイスハンドルを指定してください。
【戻り値】
正常終了した場合は、IFHSCNT_ERROR_SUCCESSが返されます。
IFHSCNT_ERROR_SUCCESS以外の値が返された場合については、『4.6 戻り値一覧』をご参照くだ
さい。
【備考】
再度、デバイスへのアクセスを行う場合にはオープン処理(HScntOpen 関数)を呼び出してくだ
さい。
デバイスクローズ後、各種設定はクリアされます。
GPC-6320 Help for Windows
© 2004, 2014 Interface Corporation. All rights reserved.
198
【使用例】
●C言語
INT nRet;
HANDLE hDeviceHandle;
hDeviceHandle = HScntOpen(“IFHSCNT1”); :
:
nRet = HScntClose(hDeviceHandle);
●Visual Basic
Dim lpszName As String
Dim hDeviceHandle As Long
lpszName = "IFHSCNT1" & Chr( 0 )
hDeviceHandle = HScntOpen(lpszName)
:
:
nRet = HScntClose(hDeviceHandle)
●Delphi
var
lpszName: String;
hDeviceHandle: THandle;
lpszName := 'IFHSCNT1';
hDeviceHandle := HScntOpen(lpszName);
:
:
nRet := HScntClose(hDeviceHandle);
デバイス名「IFHSCNT1」のデバイスのクローズ処理を行います。
GPC-6320 Help for Windows
© 2004, 2014 Interface Corporation. All rights reserved.
199
60. HScntGetDeviceInfo
【機能】
高速カウンタのデバイス情報を取得します。
【書式】
●C言語
INT HScntGetDeviceInfo(
HANDLE hDeviceHandle, // デバイスハンドル
PHSCNTDEVICEINFO pDeviceInfo // HSCNTDEVICEINFO 構造体
// へのポインタ
);
●Visual Basic
Declare Function HScntGetDeviceInfo Lib "IFHScnt.DLL"(_
ByVal hDeviceHandle As Long,_ ‘ デバイスハンドル
ByRef pDeviceInfo As HSCNTDEVICEINFO_ ‘ HSCNTDEVICEINFO 構造体
‘ への参照渡し
)As Long
●Delphi
function HScntGetDeviceInfo(
hDeviceHandle: THandle; // デバイスハンドル
var pDeviceInfo: HSCNTDEVICEINFO // HSCNTDEVICEINFO 構造体
// への参照渡し
): Integer; stdcall; external 'IFHScnt.DLL';
【パラメータ】
hDeviceHandle HScntOpen 関数で取得したデバイスハンドルを指定してください。
pDeviceInfo 取得したデバイス情報を格納する HSCNTDEVICEINFO 構造体へのポインタを指定してくださ
い。
構造体の説明については、『4.5 構造体』をご参照ください。
【戻り値】
正常終了した場合は、IFHSCNT_ERROR_SUCCESSが返されます。
IFHSCNT_ERROR_SUCCESS以外の値が返された場合については、『4.6 戻り値一覧』をご参照くだ
さい。
GPC-6320 Help for Windows
© 2004, 2014 Interface Corporation. All rights reserved.
200
【使用例】
●C言語
INT nRet;
HANDLE hDeviceHandle;
HSCNTDEVICEINFO DeviceInfo;
hDeviceHandle = HScntOpen(“IFHSCNT1”); :
:
nRet = HScntGetDeviceInfo(hDeviceHandle, &DeviceInfo);
●Visual Basic
Dim lpszName As String
Dim hDeviceHandle As Long
Dim DeviceInfo As HSCNTDEVICEINFO
lpszName = "IFHSCNT1" & Chr( 0 )
hDeviceHandle = HScntOpen(lpszName)
:
:
nRet = HScntGetDeviceInfo(hDeviceHandle, DeviceInfo)
●Delphi
var
lpszName: String;
hDeviceHandle: THandle;
DeviceInfo: HSCNTDEVICEINFO;
lpszName := 'IFHSCNT1';
hDeviceHandle := HScntOpen(lpszName);
:
:
nRet := HScntGetDeviceInfo(hDeviceHandle, DeviceInfo);
デバイス名「IFHSCNT1」のデバイスのデバイス情報を取得します。
GPC-6320 Help for Windows
© 2004, 2014 Interface Corporation. All rights reserved.
201
61. HScntReset
【機能】
各種設定の初期化、カウンタのクリアを行います。
【書式】
●C言語
INT HScntReset(
HANDLE hDeviceHandle, // デバイスハンドル
DWORD dwChSel, // チャンネル選択
DWORD dwMode // リセット項目
);
●Visual Basic
Declare Function HScntReset Lib "IFHScnt.DLL"(_
ByVal hDeviceHandle As Long,_ ‘ デバイスハンドル
ByVal dwChSel As Long,_ ‘ チャンネル選択
ByVal dwMode As Long_ ‘ リセット項目
)As Long
●Delphi
function HScntReset(
hDeviceHandle: THandle; // デバイスハンドル
dwChSel: Dword; // チャンネル選択
dwMode: Dword // リセット項目
): Integer; stdcall; external 'IFHScnt.DLL';
【パラメータ】
hDeviceHandle HScntOpen 関数で取得したデバイスハンドルを指定してください。
dwChSel 各種設定の初期化、カウンタのクリアを行うチャンネルを指定してください。
ビット bit31~2 bit1 bit0
内容 予約 CH2 CH1
該当するビットに“1”を指定してチャンネル指定を行います。
複数チャンネルの指定が可能です。
GPC-6320 Help for Windows
© 2004, 2014 Interface Corporation. All rights reserved.
202
dwMode リセット項目を指定してください。
識別子 意味
IFHSCNT_RESET_DEVICE 動作設定リセット
指定チャンネルの動作設定がリセットされデフォルト
値に設定されます。
サンプリング中の場合はサンプリングを停止します。
IFHSCNT_RESET_COUNTER カウンタクリア
カウンタをクリアします。
該当する識別子を指定してリセットを行います。
動作設定リセットとカウンタクリアを同時に実行する場合には、それぞれの識別子を OR
で指定します。
【戻り値】
正常終了した場合は、IFHSCNT_ERROR_SUCCESSが返されます。
IFHSCNT_ERROR_SUCCESS以外の値が返された場合については、『4.6 戻り値一覧』をご参照くだ
さい。
【使用例】
●C言語
INT nRet;
HANDLE hDeviceHandle;
hDeviceHandle = HScntOpen(“IFHSCNT1”); :
:
nRet = HScntReset(hDeviceHandle, 0x01,
IFHSCNT_RESET_DEVICE | IFHSCNT_CLEAR_COUNTER);
●Visual Basic
Dim lpszName As String
Dim hDeviceHandle As Long
lpszName = "IFHSCNT1" & Chr( 0 )
hDeviceHandle = HScntOpen(lpszName)
:
:
nRet = HScntReset(hDeviceHandle, &H01,
IFHSCNT_RESET_DEVICE or IFHSCNT_CLEAR_COUNTER)
GPC-6320 Help for Windows
© 2004, 2014 Interface Corporation. All rights reserved.
203
●Delphi
var
lpszName: String;
hDeviceHandle: THandle;
lpszName := 'IFUCNT1';
hDeviceHandle := HScntOpen(lpszName);
:
:
nRet := HScntReset(hDeviceHandle, $01,
IFHSCNT_RESET_DEVICE | IFHSCNT_CLEAR_COUNTER);
デバイス名「IFHSCNT1」のデバイスのチャンネル 1 の初期化とカウンタリセットを行います。
GPC-6320 Help for Windows
© 2004, 2014 Interface Corporation. All rights reserved.
204
62. HScntSetMode
【機能】
カウンタの外部制御モードを設定します。
【書式】
●C言語
INT HScntSetMode(
HANDLE hDeviceHandle, // デバイスハンドル
INT nChannel, // チャンネル選択
DWORD dwMode // カウントモード
);
●Visual Basic
Declare Function HScntSetMode Lib "IFHScnt.DLL"(_
ByVal hDeviceHandle As Long,_ ‘ デバイスハンドル
ByVal nChannel As Long,_ ‘ チャンネル選択
ByVal dwMode As Long_ ‘ カウントモード
)As Long
●Delphi
function HScntSetMode(
hDeviceHandle: THandle; // デバイスハンドル
nChannel: Dword; // チャンネル選択
dwMode: Dword // カウントモード
): Integer; stdcall; external 'IFHScnt.DLL';
【パラメータ】
hDeviceHandle HScntOpen 関数で取得したインタフェースモジュールのデバイスハンドルを指定してくだ
さい。
nChannel 設定を行うチャンネルを指定してください。
dwMode カウントモード設定値を指定してください。
ビット bit31~3 bit2 bit1 bit0
内容 予約 CLR GATE 予約
GATE:GATE 信号によるカウンタ外部イネーブル機能の設定を行います。
GATE 内容
0 外部イネーブル機能 無効
1 外部イネーブル機能 有効
GPC-6320 Help for Windows
© 2004, 2014 Interface Corporation. All rights reserved.
205
CLR:CLR 信号によるカウンタ外部クリア機能の設定を行います。
CLR 内容
0 外部クリア機能 無効
1 外部クリア機能 有効
【戻り値】
正常終了した場合は、IFHSCNT_ERROR_SUCCESSが返されます。
IFHSCNT_ERROR_SUCCESS以外の値が返された場合については、『4.6 戻り値一覧』をご参照くだ
さい。
【備考】
GATE信号によるカウンタイネーブルの制御を行う場合には、HScntStartCount関数によるカウ
ントスタートを行わないで下さい。
カウントスタートを行った場合、強制的にカウンタがイネーブル状態となるため、GATE 信号に
よるカウンタイネーブルの制御が無効となります。
【使用例】
●C言語
INT nRet;
HANDLE hDeviceHandle;
hDeviceHandle = HScntOpen(“IFHSCNT1”); :
:
nRet = HScntSetMode(hDeviceHandle, 1, 0x06);
●Visual Basic
Dim lpszName As String
Dim hDeviceHandle As Long
lpszName = "IFHSCNT1" & Chr( 0 )
hDeviceHandle = HScntOpen(lpszName)
:
:
nRet = HScntSetMode(hDeviceHandle, 1, &H06)
GPC-6320 Help for Windows
© 2004, 2014 Interface Corporation. All rights reserved.
206
●Delphi
var
lpszName: String;
hDeviceHandle: THandle;
lpszName := 'IFHSCNT1';
hDeviceHandle := HScntOpen(lpszName);
:
:
nRet := HScntSetMode(hDeviceHandle, 1, $06);
デバイス名「IFHSCNT1」のデバイスのチャンネル 1の外部イネーブル機能と外部クリア機能を
有効に設定します。
GPC-6320 Help for Windows
© 2004, 2014 Interface Corporation. All rights reserved.
207
63. HScntGetMode
【機能】
カウンタの外部制御モードを設定情報を取得します。
【書式】
●C言語
INT HScntGetMode(
HANDLE hDeviceHandle, // デバイスハンドル
INT nChannel, // チャンネル選択
PDWORD *pdwMode // カウントモード取得
// 変数へのポインタ
);
●Visual Basic
Declare Function HScntGetMode Lib "IFHScnt.DLL"(_
ByVal hDeviceHandle As Long,_ ‘ デバイスハンドル
ByVal nChannel As Long,_ ‘ チャンネル選択
ByRef pdwMode As Long_ ‘ カウントモード取得
‘ 変数への参照渡し
)As Long
●Delphi
function HScntGetMode(
hDeviceHandle: THandle; // デバイスハンドル
nChannel: Dword; // チャンネル選択
var pdwMode: Dword // カウントモード取得
// 変数への参照渡し
): Integer; stdcall; external 'IFHScnt.DLL';
【パラメータ】
hDeviceHandle HScntOpen 関数で取得したインタフェースモジュールのデバイスハンドルを指定してくだ
さい。
nChannel 取得を行うチャンネルを指定してください。
pdwMode カウントモード設定情報を格納する変数へのポインタを指定してください。
格納される値の詳細については下記の様になります。
ビット bit31~3 bit2 bit1 bit0
内容 予約 CLR GATE 予約
GPC-6320 Help for Windows
© 2004, 2014 Interface Corporation. All rights reserved.
208
GATE:GATE 信号によるカウンタ外部イネーブル機能の設定を取得します。
GATE 内容
0 外部イネーブル機能 無効
1 外部イネーブル機能 有効
CLR:CLR 信号によるカウンタ外部クリア機能の設定を取得します。
CLR 内容
0 外部クリア機能 無効
1 外部クリア機能 有効
【戻り値】
正常終了した場合は、IFHSCNT_ERROR_SUCCESSが返されます。
IFHSCNT_ERROR_SUCCESS以外の値が返された場合については、『4.6 戻り値一覧』をご参照くだ
さい。
【使用例】
●C言語
INT nRet;
HANDLE hDeviceHandle;
DWORD dwMode;
hDeviceHandle = HScntOpen(“IFHSCNT1”); :
:
nRet = HScntGetMode(hDeviceHandle, 2, &dwMode);
●Visual Basic
Dim lpszName As String
Dim hDeviceHandle As Long
Dim dwMode As Long
lpszName = "IFHSCNT1" & Chr( 0 )
hDeviceHandle = HScntOpen(lpszName)
:
:
nRet = HScntGetMode(hDeviceHandle, 2, dwMode)
GPC-6320 Help for Windows
© 2004, 2014 Interface Corporation. All rights reserved.
209
●Delphi
var
lpszName: String;
hDeviceHandle: THandle;
dwMode: Dword;
lpszName := 'IFHSCNT1';
hDeviceHandle := HScntOpen(lpszName);
:
:
nRet := HScntGetMode(hDeviceHandle, 2, dwMode);
デバイス名「IFHSCNT1」のデバイスのチャンネル 2のカウンタモード設定を取得します。
GPC-6320 Help for Windows
© 2004, 2014 Interface Corporation. All rights reserved.
210
64. HScntReadCounter
【機能】
カウンタ値を取得します。
【書式】
●C言語
INT HScntReadCounter(
HANDLE hDeviceHandle, // デバイスハンドル
DWORD dwChSel, // チャンネル選択
PDWORD pdwCounter // カウンタ値を格納
// する配列へのポインタ
);
●Visual Basic
Declare Function HScntReadCounter Lib "IFHScnt.DLL"(_
ByVal hDeviceHandle As Long,_ ‘ デバイスハンドル
ByVal dwChSel As Long,_ ‘ チャンネル選択
ByRef pdwCounter As Long_ ‘ カウンタ値を格納
‘ する配列への参照渡し
)As Long
●Delphi
function HScntReadCounter(
hDeviceHandle: THandle; // デバイスハンドル
dwChSel: Dword; // チャンネル選択
var pdwCounter: Dword // カウンタ値を格納
// する配列へのポインタ
): Integer; stdcall; external 'IFHScnt.DLL';
【パラメータ】
hDeviceHandle HscntOpen 関数で取得したインタフェースモジュールのデバイスハンドルを指定してくだ
さい。
dwChSel 取得するチャンネルを指定してください。
各チャンネルに対応した bit に 1 を指定して、複数チャンネルを同時に取得します。
ビット bit31~bit2 bit1 bit0
内容 予約 CH2 CH1
pdwCounter カウンタ値を格納する配列のポインタを指定してください。
配列の各要素には下記の値が格納されます。
dwCounter[1]~dwCounter[0]:チャンネル 2~チャンネル 1のカウンタ値
設定範囲:0 ~ 4,294,967,295(FFFFFFFFh)
GPC-6320 Help for Windows
© 2004, 2014 Interface Corporation. All rights reserved.
211
【戻り値】
正常終了した場合は、IFHSCNT_ERROR_SUCCESSが返されます。
IFHSCNT_ERROR_SUCCESS以外の値が返された場合については、『4.6 戻り値一覧』をご参照くだ
さい。
【使用例】
●C言語
INT nRet;
HANDLE hDeviceHandle;
DWORD dwCounter[2];
hDeviceHandle = HScntOpen(“IFHSCNT1”); :
:
nRet = HScntReadCounter(hDeviceHandle, 0x03, dwCounter);
●Visual Basic
Dim lpszName As String
Dim hDeviceHandle As Long
Dim dwCounter(0 To 1) As Long
lpszName = "IFHSCNT1" & Chr( 0 )
hDeviceHandle = HScntOpen(lpszName)
:
:
nRet = HScntReadCounter(hDeviceHandle, &H03, dwCounter(0))
●Delphi
var
lpszName: String;
hDeviceHandle: THandle;
dwCounter: Array[0..1] of Dword;
lpszName := 'IFHSCNT1';
hDeviceHandle := HScntOpen(lpszName);
:
:
nRet := HScntReadCounter(hDeviceHandle, $03, dwCounter[0]);
デバイス名「IFHSCNT1」のデバイスのチャンネル 1~チャンネル 2のカウンタ値を取得します。
GPC-6320 Help for Windows
© 2004, 2014 Interface Corporation. All rights reserved.
212
65. HScntGetStatus
【機能】
動作ステータス情報を取得します。
【書式】
●C言語
INT HScntGetStatus(
HANDLE hDeviceHandle, // デバイスハンドル
DWORD dwChSel, // チャンネル選択
PDWORD pdwStatus // ステータスを格納する配列
// へのポインタ
);
●Visual Basic
Declare Function HScntGetStatus Lib "IFHScnt.DLL"(_
ByVal hDeviceHandle As Long,_ ‘ デバイスハンドル
ByVal dwChSel As Long,_ ‘ チャンネル選択
ByRef pdwStatus As Long_ ‘ ステータスを格納する配列
‘ への参照渡し
)As Long
●Delphi
function HScntGetStatus(
hDeviceHandle: THandle; // デバイスハンドル
dwChSel: Dword; // チャンネル選択
var pdwStatus: Dword // ステータスを格納する配列
// への参照渡し
): Integer; stdcall; external 'IFHScnt.DLL';
【パラメータ】
hDeviceHandle HScntOpen 関数で取得したインタフェースモジュールのデバイスハンドルを指定してくだ
さい。
dwChSel 取得するチャンネルを指定してください。
各チャンネルに対応した bit に 1 を指定して、複数チャンネルを同時に取得します。
ビット bit31~bit2 bit1 bit0
内容 予約 CH2 CH1
GPC-6320 Help for Windows
© 2004, 2014 Interface Corporation. All rights reserved.
213
pdwStatus ステータスを格納する配列へのポインタを指定してください。
配列の各要素には下記の値が格納されます。
dwStatus[1]~dwStatus[0]:チャンネル 2~チャンネル 1のステータス情報
ビット bit31~bit7 bit6 bit5~bit3 bit2 bit1 bit0
内容 予約 ST0 予約 CLR GATE CLK
ST0:スタートストップ状態
ST0 内容
0 ストップ
1 スタート
CLK、GATE、CLR:入力端子ステータス
CLK、GATE、CLR 内容
0 Low
1 High
【戻り値】
正常終了した場合は、IFHSCNT_ERROR_SUCCESSが返されます。
IFHSCNT_ERROR_SUCCESS以外の値が返された場合については、『4.6 戻り値一覧』をご参照くだ
さい。
【使用例】
●C言語
INT nRet;
DWORD dwStatus[2];
HANDLE hDeviceHandle;
hDeviceHandle = HScntOpen(“IFHSCNT1”); :
:
nRet = HScntGetStatus(hDeviceHandle, 0x03, dwStatus);
●Visual Basic
Dim lpszName As String
Dim hDeviceHandle As Long
Dim dwStatus(0 To 1) As Long
lpszName = "IFHSCNT1" & Chr( 0 )
hDeviceHandle = HScntOpen(lpszName)
:
:
nRet = HScntGetStatus(hDeviceHandle, &H03, dwStatus(0))
GPC-6320 Help for Windows
© 2004, 2014 Interface Corporation. All rights reserved.
214
●Delphi
var
lpszName: String;
hDeviceHandle: THandle;
dwStatus: array[0..1] of Dword;
lpszName := 'IFHSCNT1';
hDeviceHandle := HScntOpen(lpszName);
:
:
nRet := HScntGetStatus(hDeviceHandle, $03, dwStatus[0]);
デバイス名「IFHSCNT1」のデバイスのチャンネル 1~チャンネル 2のステータスを取得します。
GPC-6320 Help for Windows
© 2004, 2014 Interface Corporation. All rights reserved.
215
66. HScntStartCount
【機能】
カウントを開始します。
【書式】
●C言語
INT HScntStartCount(
HANDLE hDeviceHandle, // デバイスハンドル
DWORD dwChSel, // チャンネル選択
DWORD dwStartMode // スタートモード
);
●Visual Basic
Declare Function HScntStartCount Lib "IFHScnt.DLL"(_
ByVal hDeviceHandle As Long,_ ‘ デバイスハンドル
ByVal dwChSel As Long,_ ‘ チャンネル選択
ByVal dwStartMode As Long_ ‘ スタートモード
)As Long
●Delphi
function HScntStartCount(
hDeviceHandle: THandle; // デバイスハンドル
dwChSel: Dword; // チャンネル選択
dwStartMode: Dword // スタートモード
): Integer; stdcall; external 'IFHScnt.DLL';
【パラメータ】
hDeviceHandle HScntOpen 関数で取得したインタフェースモジュールのデバイスハンドルを指定してくだ
さい。
dwChSel 設定を行うチャンネルを指定してください。
各チャンネルに対応した bit に 1 を指定して、複数チャンネルを同時に設定します。
ビット bit31~bit2 bit1 bit0
内容 予約 CH2 CH1
dwStartMode スタートモードを指定してください。
識別子 内容
IFHSCNT_CMD_START カウントスタート
GPC-6320 Help for Windows
© 2004, 2014 Interface Corporation. All rights reserved.
216
【戻り値】
正常終了した場合は、IFHSCNT_ERROR_SUCCESSが返されます。
IFHSCNT_ERROR_SUCCESS以外の値が返された場合については、『4.6 戻り値一覧』をご参照くだ
さい。
【使用例】
●C言語
INT nRet;
HANDLE hDeviceHandle;
hDeviceHandle = HScntOpen(“IFHSCNT1”); :
:
nRet = HScntStartCount(hDeviceHandle, 0x03, IFHSCNT_CMD_START);
●Visual Basic
Dim lpszName As String
Dim hDeviceHandle As Long
lpszName = "IFHSCNT1" & Chr( 0 )
hDeviceHandle = HScntOpen(lpszName)
:
:
nRet = HScntStartCount(hDeviceHandle, &H03, IFHSCNT_CMD_START)
●Delphi
var
lpszName: String;
hDeviceHandle: THandle;
lpszName := 'IFHSCNT1';
hDeviceHandle := HScntOpen(lpszName);
:
:
nRet := HScntStartCount(hDeviceHandle, $03, IFHSCNT_CMD_START);
デバイス名「IFHSCNT1」のデバイスのチャンネル 1~チャンネル 2のカウントを開始します。
GPC-6320 Help for Windows
© 2004, 2014 Interface Corporation. All rights reserved.
217
67. HScntStopCount
【機能】
カウントを停止します。
【書式】
●C言語
INT HScntStopCount(
HANDLE hDeviceHandle, // デバイスハンドル
DWORD dwChSel, // チャンネル選択
DWORD dwStopMode // ストップモード
);
●Visual Basic
Declare Function HScntStopCount Lib "IFHScnt.DLL"(_
ByVal hDeviceHandle As Long,_ ‘ デバイスハンドル
ByVal dwChSel As Long,_ ‘ チャンネル選択
ByVal dwStopMode As Long_ ‘ ストップモード
)As Long
●Delphi
function HScntStopCount(
hDeviceHandle: THandle; // デバイスハンドル
dwChSel: Dword; // チャンネル選択
dwStopMode: Dword // ストップモード
): Integer; stdcall; external 'IFHScnt.DLL';
【パラメータ】
hDeviceHandle HScntOpen 関数で取得したインタフェースモジュールのデバイスハンドルを指定してくだ
さい。
dwChSel 設定を行うチャンネルを指定してください。
各チャンネルに対応した bit に 1 を指定して、複数チャンネルを同時に設定します。
ビット bit31~bit2 bit1 bit0
内容 予約 CH2 CH1
dwStopMode ストップモードを指定してください。
識別子 内容
IFHSCNT_CMD_STOP カウントストップ
GPC-6320 Help for Windows
© 2004, 2014 Interface Corporation. All rights reserved.
218
【戻り値】
正常終了した場合は、IFHSCNT_ERROR_SUCCESSが返されます。
IFHSCNT_ERROR_SUCCESS以外の値が返された場合については、『4.6 戻り値一覧』をご参照くだ
さい。
【使用例】
●C 言語
INT nRet;
HANDLE hDeviceHandle;
hDeviceHandle = HScntOpen(“IFHSCNT1”); :
:
nRet = HScntStopCount(hDeviceHandle, 0x01, IFHSCNT_CMD_STOP);
●Visual Basic
Dim lpszName As String
Dim hDeviceHandle As Long
lpszName = "IFHSCNT1" & Chr( 0 )
hDeviceHandle = HScntOpen(lpszName)
:
:
nRet = HScntStopCount(hDeviceHandle, &H01, IFHSCNT_CMD_STOP)
●Delphi
var
lpszName: String;
hDeviceHandle: THandle;
lpszName := 'IFHSCNT1';
hDeviceHandle := HScntOpen(lpszName);
:
:
nRet := HScntStopCount(hDeviceHandle, $01, IFHSCNT_CMD_STOP);
デバイス名「IFHSCNT1」のデバイスのチャンネル 1のカウントを停止します。
GPC-6320 Help for Windows
© 2004, 2014 Interface Corporation. All rights reserved.
219
68. HScntSetEventMask
【機能】
割り込みイベントのマスク設定を行います。
【書式】
●C言語
INT HScntSetEventMask(
HANDLE hDeviceHandle, // デバイスハンドル
INT nChannel, // チャンネル指定
DWORD dwEventMask // 割り込みマスク
);
●Visual Basic
Declare Function HScntSetEventMask Lib "IFHScnt.DLL"(_
ByVal hDeviceHandle As Long,_ ‘ デバイスハンドル
ByVal nChannel As Long,_ ‘ チャンネル選択
ByVal dwEventMask As Long_ ‘ 割り込みマスク
)As Long
●Delphi
function HScntSetEventMask(
hDeviceHandle: THandle; // デバイスハンドル
nChannel: Integer; // チャンネル選択
dwEventMask: Dword // 割り込みマスク
): Integer; stdcall; external 'IFHScnt.DLL';
【パラメータ】
hDeviceHandle HScntOpen 関数で取得したインタフェースモジュールのデバイスハンドルを指定してくだ
さい。
nChannel 設定を行うチャンネルを指定してください。
IFHSCNT_EVENT_CH_TIMER、IFHSCNT_EVENT_CH_EDGE を指定すると、インターバルタイマ割
り込みと入力エッジ割り込みのマスク設定を行うことができます。
IFHSCNT_EVENT_CH_TIMER、IFHSCNT_EVENT_CH_EDGE は、LPC/PEX-632102 でのみ指定可能で
す。
dwEventMask 割り込みイベントのマスクデータを指定してください。
GPC-6320 Help for Windows
© 2004, 2014 Interface Corporation. All rights reserved.
220
・nChannel:1~2
ビット bit31~bit8
内容 予約
ビット bit7 bit6 bit5 bit4 bit3 bit2 bit1 bit0
内容 CLR
FALL
CLR
RISE
GATE
FALL
GATE
RISE
予約 予約 予約 CRF
dwEventMask 1:アンマスク(割り込み有効)
0:マスク(割り込み無効)
CRF カウンタキャリー割り込みマスク
GATE RISE GATE 信号の立ち上がり検出割り込みマスク
GATE FALL GATE 信号の立ち下がり検出割り込みマスク
CLR RISE CLR 信号の立ち上がり検出割り込みマスク
CLR FALL CLR 信号の立ち下がり検出割り込みマスク
・nChannel:IFHSCNT_EVENT_CH_TIMER
ビット bit31~bit8
内容 予約
ビット bit7 bit6 bit5 bit4 bit3 bit2 bit1 bit0
内容 予約 予約 予約 SIGT 予約 予約 予約 予約
dwEventMask 1:アンマスク(割り込み有効)
0:マスク(割り込み無効)
SIGT インターバルタイマ割り込みマスク ※
※インターバルタイマ割り込みマスクは LPC/PEX-632102 でのみ設定可能です。
・nChannel:IFHSCNT_EVENT_CH_EDGE
ビット bit31 bit30 bit29 bit28 bit27 bit26 bit25 bit24
内容 SF
IN16
SF
IN15
SF
IN14
SF
IN13
SF
IN12
SF
IN11
SF
IN10
SF
IN9
ビット bit23 bit22 bit21 bit20 bit19 bit18 bit17 bit16
内容 SF
IN8
SF
IN7
SF
IN6
SF
IN5
SF
IN4
SF
IN3
SF
IN2
SF
IN1
ビット bit15 bit14 bit13 bit12 bit11 bit10 bit9 bit8
内容 SR
IN16
SR
IN15
SR
IN14
SR
IN13
SR
IN12
SR
IN11
SR
IN10
SR
IN9
ビット bit7 bit6 bit5 bit4 bit3 bit2 bit1 bit0
内容 SR
IN8
SR
IN7
SR
IN6
SR
IN5
SR
IN4
SR
IN3
SR
IN2
SR
IN1
GPC-6320 Help for Windows
© 2004, 2014 Interface Corporation. All rights reserved.
221
dwEventMask 1:アンマスク(割り込み有効)
0:マスク(割り込み無効)
SR IN1
~
SR IN16
IN1~IN16 信号の立ち上がり検出割り込みマスク ※
SF IN1
~
SF IN16
IN1~IN16 信号の立ち下がり検出割り込みマスク ※
※エッジ検出割り込みマスクは LPC/PEX-632102 でのみ設定可能です。
【戻り値】
正常終了した場合は、IFHSCNT_ERROR_SUCCESSが返されます。
IFHSCNT_ERROR_SUCCESS以外の値が返された場合については、『4.6 戻り値一覧』をご参照くだ
さい。
【使用例】
●C言語
INT nRet;
HANDLE hDeviceHandle;
hDeviceHandle = HScntOpen(“IFHSCNT1”); :
:
nRet = HScntSetEventMask(hDeviceHandle, 1, 0x01);
●Visual Basic
Dim lpszName As String
Dim hDeviceHandle As Long
lpszName = "IFHSCNT1" & Chr( 0 )
hDeviceHandle = HScntOpen(lpszName)
:
:
nRet = HScntSetEventMask(hDeviceHandle, 1, &H01)
GPC-6320 Help for Windows
© 2004, 2014 Interface Corporation. All rights reserved.
222
●Delphi
var
lpszName: String;
hDeviceHandle: THandle;
lpszName := 'IFHSCNT1';
hDeviceHandle := HScntOpen(lpszName);
:
:
nRet := HScntSetEventMask(hDeviceHandle, 1, $01);
デバイス名「IFHSCNT1」のデバイスのチャンネル 1のカウンタキャリー割り込みイベントを有
効に設定します。
GPC-6320 Help for Windows
© 2004, 2014 Interface Corporation. All rights reserved.
223
69. HScntGetEventMask
【機能】
割り込みイベントのマスク設定を取得します。
【書式】
●C言語
INT HScntGetEventMask(
HANDLE hDeviceHandle, // デバイスハンドル
INT nChannel, // チャンネル選択
PDWORD pdwEventMask // 割り込みマスク状態取得変数
// へのポインタ
);
●Visual Basic
Declare Function HScntGetEventMask Lib "IFHScnt.DLL"(_
ByVal hDeviceHandle As Long,_ ‘ デバイスハンドル
ByVal nChannel As Long,_ ‘ チャンネル選択
ByRef pdwEventMask As Long_ ‘ 割り込みマスク状態取得変数
‘ への参照渡し
)As Long
●Delphi
function HScntGetEventMask(
hDeviceHandle: THandle; // デバイスハンドル
nChannel: Integer; // チャンネル選択
var pdwEventMask: Dword // 割り込みマスク状態取得変数
// への参照渡し
): Integer; stdcall; external 'IFHScnt.DLL';
【パラメータ】
hDeviceHandle HScntOpen 関数で取得したインタフェースモジュールのデバイスハンドルを指定してくだ
さい。
nChannel 取得を行うチャンネルを指定してください。
HSCNT_EVENT_CH_TIMER、HSCNT_EVENT_CH_EDGE を指定すると、インターバルタイマ割り込
みと入力エッジ割り込みのマスク設定値を取得することができます。
HSCNT_EVENT_CH_TIMER、HSCNT_EVENT_CH_EDGE は、LPC/PEX-632102 でのみ指定可能です。
pdwEventMask 割り込みイベント設定値を格納する変数へのポインタを指定してください。
格納される値の詳細については下記の様になります。
GPC-6320 Help for Windows
© 2004, 2014 Interface Corporation. All rights reserved.
224
・nChannel:1~2
ビット bit31~bit8
内容 予約
ビット bit7 bit6 bit5 bit4 bit3 bit2 bit1 bit0
内容 CLR
FALL
CLR
RISE
GATE
FALL
GATE
RISE
予約 予約 予約 CRF
dwEventMask 1:アンマスク(割り込み有効)
0:マスク(割り込み無効)
CRF カウンタキャリー割り込みマスク
GATE RISE GATE 信号の立ち上がり検出割り込みマスク
GATE FALL GATE 信号の立ち下がり検出割り込みマスク
CLR RISE CLR 信号の立ち上がり検出割り込みマスク
CLR FALL CLR 信号の立ち下がり検出割り込みマスク
・nChannel:HSCNT_EVENT_CH_TIMER
ビット bit31~bit8
内容 予約
ビット bit7 bit6 bit5 bit4 bit3 bit2 bit1 bit0
内容 予約 予約 予約 SIGT 予約 予約 予約 予約
dwEventMask 1:アンマスク(割り込み有効)
0:マスク(割り込み無効)
SIGT インターバルタイマ割り込みマスク ※
※インターバルタイマ割り込みマスク設定は LPC/PEX-632102 でのみ取得可能です。
・nChannel:HSCNT_EVENT_CH_EDGE
ビット bit31 bit30 bit29 bit28 bit27 bit26 bit25 bit24
内容 SF
IN16
SF
IN15
SF
IN14
SF
IN13
SF
IN12
SF
IN11
SF
IN10
SF
IN9
ビット bit23 bit22 bit21 bit20 bit19 bit18 bit17 bit16
内容 SF
IN8
SF
IN7
SF
IN6
SF
IN5
SF
IN4
SF
IN3
SF
IN2
SF
IN1
ビット bit15 bit14 bit13 bit12 bit11 bit10 bit9 bit8
内容 SR
IN16
SR
IN15
SR
IN14
SR
IN13
SR
IN12
SR
IN11
SR
IN10
SR
IN9
ビット bit7 bit6 bit5 bit4 bit3 bit2 bit1 bit0
内容 SR
IN8
SR
IN7
SR
IN6
SR
IN5
SR
IN4
SR
IN3
SR
IN2
SR
IN1
GPC-6320 Help for Windows
© 2004, 2014 Interface Corporation. All rights reserved.
225
dwEventMask 1:アンマスク(割り込み有効)
0:マスク(割り込み無効)
SR IN1
~
SR IN16
IN1~IN16 信号の立ち上がり検出割り込みマスク ※
SF IN1
~
SF IN16
IN1~IN16 信号の立ち下がり検出割り込みマスク ※
※エッジ検出割り込みマスク設定は LPC/PEX-632102 でのみ取得可能です。
【戻り値】
正常終了した場合は、IFHSCNT_ERROR_SUCCESSが返されます。
IFHSCNT_ERROR_SUCCESS以外の値が返された場合については、『4.6 戻り値一覧』をご参照くだ
さい。
【使用例】
●C言語
INT nRet;
HANDLE hDeviceHandle;
DWORD dwEventMask;
hDeviceHandle = HScntOpen(“IFHSCNT1”); :
:
nRet = HScntGetEventMask(hDeviceHandle, 1, &dwEventMask);
●Visual Basic
Dim lpszName As String
Dim hDeviceHandle As Long
Dim dwEventMask As Long
lpszName = "IFHSCNT1" & Chr( 0 )
hDeviceHandle = HScntOpen(lpszName)
:
:
nRet = HScntGetEventMask(hDeviceHandle, 1, dwEventMask)
GPC-6320 Help for Windows
© 2004, 2014 Interface Corporation. All rights reserved.
226
●Delphi
var
lpszName: String;
hDeviceHandle: THandle;
dwEventMask: Dword;
lpszName := 'IFHSCNT1';
hDeviceHandle := HScntOpen(lpszName);
:
:
nRet := HScntGetEventMask(hDeviceHandle, 1, dwEventMask);
デバイス名「IFHSCNT1」のデバイスのチャンネル 1 の割り込みマスク設定状態を取得します。
GPC-6320 Help for Windows
© 2004, 2014 Interface Corporation. All rights reserved.
227
70. HScntSetEvent
【機能】
割り込み発生時に起動するコールバック関数、メッセージの登録を行います。
【書式】
●C言語
INT HScntSetEvent(
HANDLE hDeviceHandle, // デバイスハンドル
PHSCNTEVENTREQ pEvent // 割り込み設定構造体
// へのポインタ
);
●Visual Basic
Declare Function HScntSetEvent Lib "IFHScnt.DLL"(_
ByVal hDeviceHandle As Long,_ ‘ デバイスハンドル
ByRef pEvent HSCNTEVENTREQ_ ‘ 割り込み設定構造体
‘ への参照渡し
)As Long
●Delphi
function HScntSetEvent(
hDeviceHandle: THandle; // デバイスハンドル
var pEvent: HSCNTEVENTREQ // 割り込み設定構造体
// への参照渡し
): Integer; stdcall; external 'IFHScnt.DLL';
【パラメータ】
hDeviceHandle HScntOpen 関数で取得したインタフェースモジュールのデバイスハンドルを指定してくだ
さい。
pEvent 割り込み発生時に呼び出されるユーザ・コールバック関数、メッセージの設定を行う構造
体へのポインタを指定してください。
構造体の説明については、『4.5 構造体』をご参照ください。
【戻り値】
正常終了した場合は、IFHSCNT_ERROR_SUCCESSが返されます。
IFHSCNT_ERROR_SUCCESS以外の値が返された場合については、『4.6 戻り値一覧』をご参照くだ
さい。
GPC-6320 Help for Windows
© 2004, 2014 Interface Corporation. All rights reserved.
228
【備考】
●コールバック関数の書式
コールバック関数の書式は以下の通りです。
VOID CALLBACK lpCallBackProc(INT nChannel, DWORD dwEvent, DWORD dwUser );
○nChannel
割り込み発生チャンネル。
○dwEvent
コールバック関数実行要因。
コールバック関数が実行された要因の該当ビットに”1”がセットされます。
○dwUser
ユーザデータ
イベント設定時に指定したユーザデータがセットされます。
【使用例】
●C言語(コールバック関数)
// コールバック関数
void CALLBACK lpEventProc(INT nChannel, DWORD dwEvent, DWORD dwUser){
// 割り込み処理を記述します
:
:
}
// メインルーチン
INT nRet;
HANDLE hDeviceHandle;
HSCNTEVENTREQ Event;
hDeviceHandle = HScntOpen(“IFHSCNT1”); :
:
nRet = HScntSetEventMask(hDeviceHandle, 1, 0xF1);
Event.hWnd = NULL;
Event.uMessage[0] = WM_NULL;
Event.uMessage[1] = WM_NULL;
Event.uMessage[2] = WM_NULL;
Event.uMessage[3] = WM_NULL;
Event.uMessage[4] = WM_NULL;
Event.uMessage[5] = WM_NULL;
Event.uMessage[6] = WM_NULL;
Event.uMessage[7] = WM_NULL;
Event.lpCallBackProc = (PLPHSCNTCALLBACK)lpEventProc;
Event.dwUser = 0x1234;
nRet = HScntSetEvent(hDeviceHandle, &Event);
GPC-6320 Help for Windows
© 2004, 2014 Interface Corporation. All rights reserved.
229
●C 言語(イベント待ちの設定)
非同期処理
INT nRet;
OVERLAPPED OverLapped;
HANDLE hDeviceHandle;
HSCNTEVENTREQ Event;
hDeviceHandle = HScntOpen(“IFHSCNT1”); :
:
nRet = HScntSetEventMask(hDeviceHandle, 1, 0xF1);
OverLapped.hEvent = CreateEvent(0,FALSE,FALSE,NULL);
Event.hWnd = NULL;
Event.uMessage[0] = WM_NULL;
Event.uMessage[1] = WM_NULL;
Event.uMessage[2] = WM_NULL;
Event.uMessage[3] = WM_NULL;
Event.uMessage[4] = WM_NULL;
Event.uMessage[5] = WM_NULL;
Event.uMessage[6] = WM_NULL;
Event.uMessage[7] = WM_NULL;
Event.hEvent = OverLapped.hEvent;
Event.lpCallBackProc = NULL;
Event.dwUser = 0x1234;
nRet = HScntSetEvent(hDeviceHandle, &Event);
if (nRet == IFHSCNT_ERROR_SUCCESS) {
// イベント待ち
// WaitFirSingleObject を使ってイベントを待つ
WaitForSingleObject(OverLapped.hEvent, INFINITE);
}
GPC-6320 Help for Windows
© 2004, 2014 Interface Corporation. All rights reserved.
230
●Visual Basic(イベント待ちの設定)
※ Visual Basic Ver. 6.0 では言語仕様上の制限によりコールバック関数はご使用いただけま
せん。メッセージ及びベント機能をご使用ください。
非同期処理
Public lpOverlapped As OVERLAPPED
Dim lpszName As String
Dim hDeviceHandle As Long
Dim Event As HSCNTEVENTREQ
lpszName = "IFHSCNT1" & Chr( 0 )
hDeviceHandle = HScntOpen(lpszName)
:
:
nRet = HScntSetEventMask(hDeviceHandle, 1, &HF1)
lpOverlapped.hEvent = CreateEvent(nul, False, False, nul)
Event.hWnd = 0
Event.uMessage(0) = 0
Event.uMessage(1) = 0
Event.uMessage(2) = 0
Event.uMessage(3) = 0
Event.uMessage(4) = 0
Event.uMessage(5) = 0
Event.uMessage(6) = 0
Event.uMessage(7) = 0
Event.hEvent = OverLapped.hEvent
Event.lpCallBackProc = 0
Event.dwUser = &H1234
nRet = HScntSetEvent(hDeviceHandle, Event)
' イベント待ち
' WaitFirSingleObject を使ってイベントを待つ
nRet = WaitForSingleObject(lpOverlapped.hEvent, 0)
GPC-6320 Help for Windows
© 2004, 2014 Interface Corporation. All rights reserved.
231
●Delphi(コールバック関数)
// コールバック関数
procedure lpEventProc(nChannel: Integer; dwEvent: DWORD; dwUser: DWORD); stdcall;
var
//変数定義
begin
// 割り込み処理を記述します
:
:
end;
// メインルーチン
var
lpszName: String;
hDeviceHandle: THandle;
Event: HSCNTEVENTREQ;
begin
lpszName := 'IFHSCNT1';
hDeviceHandle := HScntOpen(lpszName);
:
:
nRet := HScntSetEventMask(hDeviceHandle, 1, $F1);
Event.hWnd := 0;
Event.uMessage[0] := WM_NULL;
Event.uMessage[1] := WM_NULL;
Event.uMessage[2] := WM_NULL;
Event.uMessage[3] := WM_NULL;
Event.uMessage[4] := WM_NULL;
Event.uMessage[5] := WM_NULL;
Event.uMessage[6] := WM_NULL;
Event.uMessage[7] := WM_NULL;
Event.hEvent := 0;
Event.lpCallBackProc := lpEventProc;
Event.dwUser := $1234;
nRet := HScntSetEvent(hDeviceHandle, Event);
:
end;
GPC-6320 Help for Windows
© 2004, 2014 Interface Corporation. All rights reserved.
232
●Delphi(イベント待ちの設定)
非同期処理
var
OverLapped : TOverLapped;
nRet : Integer;
lpszName: String;
hDeviceHandle: THandle;
Event: HSCNTEVENTREQ;
begin
lpszName := 'IFHSCNT1';
hDeviceHandle := HScntOpen(lpszName);
:
:
nRet := HScntSetEventMask(hDeviceHandle, 1, $F1);
OverLapped.hEvent := CreateEvent(nil, False, False, Nil);
Event.hWnd := 0;
Event.uMessage[0] := WM_NULL;
Event.uMessage[1] := WM_NULL;
Event.uMessage[2] := WM_NULL;
Event.uMessage[3] := WM_NULL;
Event.uMessage[4] := WM_NULL;
Event.uMessage[5] := WM_NULL;
Event.uMessage[6] := WM_NULL;
Event.uMessage[7] := WM_NULL;
Event.hEvent := OverLapped.hEvent;
Event.lpCallBackProc := lpEventProc;
Event.dwUser := $1234;
nRet := HScntSetEvent(hDeviceHandle, Event);
// イベント待ち
// WaitFirSingleObject を使ってイベントを待つ
WaitForSingleObject(OverLapped.hEvent, INFINITE);
:
end;
デバイス名「IFHSCNT1」のデバイスの CH1 の割り込みマスク、コールバック関数(もしくはイ
ベント)を設定します。
GPC-6320 Help for Windows
© 2004, 2014 Interface Corporation. All rights reserved.
233
71. HScntKillEvent
【機能】
割り込み発生時に起動するコールバック関数、メッセージの解除を行います。
【書式】
●C言語
INT HScntKillEvent(
HANDLE hDeviceHandle // デバイスハンドル
);
●Visual Basic
Declare Function HScntKillEvent Lib "IFHScnt.DLL"(_
ByVal hDeviceHandle As Long_ ‘ デバイスハンドル
)As Long
●Delphi
function HScntKillEvent(
hDeviceHandle: THandle // デバイスハンドル
): Integer; stdcall; external 'IFHScnt.DLL';
【パラメータ】
hDeviceHandle HScntOpen 関数で取得したインタフェースモジュールのデバイスハンドルを指定してくだ
さい。
【戻り値】
正常終了した場合は、IFHSCNT_ERROR_SUCCESSが返されます。
IFHSCNT_ERROR_SUCCESS以外の値が返された場合については、『4.6 戻り値一覧』をご参照くだ
さい。
【使用例】
●C言語
INT nRet;
HANDLE hDeviceHandle;
hDeviceHandle = HScntOpen(“IFHSCNT1”); :
:
nRet = HScntKillEvent(hDeviceHandle);
GPC-6320 Help for Windows
© 2004, 2014 Interface Corporation. All rights reserved.
234
●Visual Basic
Dim lpszName As String
Dim hDeviceHandle As Long
lpszName = "IFHSCNT1" & Chr( 0 )
hDeviceHandle = HScntOpen(lpszName)
:
:
nRet = HScntKillEvent(hDeviceHandle)
●Delphi
var
lpszName: String;
hDeviceHandle: THandle;
lpszName := 'IFHSCNT1';
hDeviceHandle := HScntOpen(lpszName);
:
:
nRet := HScntKillEvent(hDeviceHandle);
デバイス名「IFHSCNT1」のデバイスのコールバック関数の解除を行います。
GPC-6320 Help for Windows
© 2004, 2014 Interface Corporation. All rights reserved.
235
72. HScntSetDOEnable
【機能】
汎用出力の機能を設定します。
※この関数は下記、製品型式のみ対応しています。ご注意ください。
LPC-632102、PEX-632102
【書式】
●C言語
INT HScntSetDOEnable(
HANDLE hDeviceHandle, // デバイスハンドル
DWORD dwOutEnable // 出力許可端子指定
);
●Visual Basic
Declare Function HScntSetDOEnable Lib "IFHScnt.DLL"(_
ByVal hDeviceHandle As Long,_ ‘ デバイスハンドル
ByVal dwOutEnable As Long_ ‘ 出力許可端子指定
)As Long
●Delphi
function HScntSetDOEnable(
hDeviceHandle: THandle; // デバイスハンドル
dwOutEnable: Dword // 出力許可端子指定
): Integer; stdcall; external 'IFHScnt.DLL';
【パラメータ】
hDeviceHandle HScntOpen 関数で取得したインタフェースモジュールのデバイスハンドルを指定してくだ
さい。
dwOutEnable 出力許可を行う端子を指定してください。
ビット bit31~bit8
内容 予約
ビット bit7 bit6 bit5 bit4 bit3 bit2 bit1 bit0
内容 予約 予約 予約 予約 IO3 IO2 IO1 IO0
IO0:OUT1~OUT4 端子の汎用出力の許可・禁止を設定します。
IO1:OUT5~OUT8 端子の汎用出力の許可・禁止を設定します。
IO2:OUT9~OUT12 端子の汎用出力の許可・禁止を設定します。
IO3:OUT13~OUT16 端子の汎用出力の許可・禁止を設定します。
IO0,IO1,IO2,IO3 内容
0 汎用出力を禁止
1 汎用出力を許可
GPC-6320 Help for Windows
© 2004, 2014 Interface Corporation. All rights reserved.
236
【戻り値】
正常終了した場合は、IFHSCNT_ERROR_SUCCESSが返されます。
IFHSCNT_ERROR_SUCCESS以外の値が返された場合については、『4.6 戻り値一覧』をご参照くだ
さい。
【備考】
●HScntOutputDO 関数について
HScntOpen 関数でデバイスオープン時、デフォルトでは OUT1~OUT16 端子は出力禁止状態とな
っています。HScntOutputDO 関数を使用する際は、HScntSetDOEnable 関数を実行して制御した
い端子の出力許可設定を行う必要があります。
【使用例】
●C言語
INT nRet;
HANDLE hDeviceHandle;
hDeviceHandle = HScntOpen(“IFHSCNT1”); :
:
nRet = HScntSetDOEnable(hDeviceHandle, 0x01);
●Visual Basic
Dim lpszName As String
Dim hDeviceHandle As Long
lpszName = "IFHSCNT1" & Chr( 0 )
hDeviceHandle = HScntOpen(lpszName)
:
:
nRet = HScntSetDOEnable(hDeviceHandle, &H01)
●Delphi
var
lpszName: String;
hDeviceHandle: THandle;
lpszName := 'IFHSCNT1';
hDeviceHandle := HScntOpen(lpszName);
:
:
nRet := HScntSetDOEnable(hDeviceHandle, $01);
デバイス名「IFHSCNT1」のデバイスの OUT1~OUT4 端子の汎用出力を許可に設定します。
GPC-6320 Help for Windows
© 2004, 2014 Interface Corporation. All rights reserved.
237
73. HScntGetDOEnable
【機能】
汎用出力機能の設定情報を取得します。
※この関数は下記、製品型式のみ対応しています。ご注意ください。
LPC-632102、PEX-632102
【書式】
●C言語
INT HScntGetDOEnable(
HANDLE hDeviceHandle, // デバイスハンドル
PDWORD pdwOutEnable // 出力許可状態取得変数
// へのポインタ
);
●Visual Basic
Declare Function HScntGetDOEnable Lib "IFHScnt.DLL"(_
ByVal hDeviceHandle As Long,_ ‘ デバイスハンドル
ByRef pdwOutEnable As Long_ ‘ 出力許可状態取得変数
‘ への参照渡し
)As Long
●Delphi
function HScntGetDOEnable(
hDeviceHandle: THandle; // デバイスハンドル
var pdwOutEnable: Dword // 出力許可状態取得変数
// への参照渡し
): Integer; stdcall; external 'IFHScnt.DLL';
【パラメータ】
hDeviceHandle HScntOpen 関数で取得したインタフェースモジュールのデバイスハンドルを指定してくだ
さい。
GPC-6320 Help for Windows
© 2004, 2014 Interface Corporation. All rights reserved.
238
pdwOutEnable 出力許可状態設定値を格納する変数へのポインタを指定してください。
格納される値の詳細については下記の様になります。
ビット bit31~bit8
内容 予約
ビット bit7 bit6 bit5 bit4 bit3 bit2 bit1 bit0
内容 予約 予約 予約 予約 IO3 IO2 IO1 IO0
IO0:OUT1~OUT4 端子の汎用出力の許可・禁止状態を取得します。
IO1:OUT5~OUT8 端子の汎用出力の許可・禁止状態を取得します。
IO2:OUT9~OUT12 端子の汎用出力の許可・禁止状態を取得します。
IO3:OUT13~OUT16 端子の汎用出力の許可・禁止状態を取得します。
IO0,IO1,IO2,IO3 内容
0 汎用出力を禁止
1 汎用出力を許可
【戻り値】
正常終了した場合は、IFHSCNT_ERROR_SUCCESSが返されます。
IFHSCNT_ERROR_SUCCESS以外の値が返された場合については、『4.6 戻り値一覧』をご参照くだ
さい。
【使用例】
●C言語
INT nRet;
HANDLE hDeviceHandle;
DWORD dwOutEnabl;
hDeviceHandle = HScntOpen(“IFHSCNT1”); :
:
nRet = HScntGetDOEnable(hDeviceHandle, &dwOutEnable);
●Visual Basic
Dim lpszName As String
Dim hDeviceHandle As Long
Dim dwOutEnable As Long
lpszName = "IFHSCNT1" & Chr( 0 )
hDeviceHandle = HScntOpen(lpszName)
:
:
nRet = HScntGetDOEnable(hDeviceHandle, dwOutEnable)
GPC-6320 Help for Windows
© 2004, 2014 Interface Corporation. All rights reserved.
239
●Delphi
var
lpszName: String;
hDeviceHandle: THandle;
dwOutEnable: THandle;
lpszName := 'IFHSCNT1';
hDeviceHandle := HScntOpen(lpszName);
:
:
nRet := HScntGetOutEnable(hDeviceHandle, dwOutEnable);
デバイス名「IFHSCNT1」の汎用出力端子の許可設定情報を取得します。
GPC-6320 Help for Windows
© 2004, 2014 Interface Corporation. All rights reserved.
240
74. HScntInputDI
【機能】
汎用入力の状態を取得します。
※この関数は下記、製品型式のみ対応しています。ご注意ください。
LPC-632102、PEX-632102
【書式】
●C言語
INT HScntInputDI(
HANDLE hDeviceHandle, // デバイスハンドル
PDWORD pdwDI // 汎用入力状態取得変数へのポインタ
);
●Visual Basic
Declare Function HScntInputDI Lib "IFHScnt.DLL"(_
ByVal hDeviceHandle As Long,_ ‘ デバイスハンドル
ByRef pdwDI As Long_ ‘ 汎用入力状態取得変数への参照渡し
)As Long
●Delphi
function HScntInputDI(
hDeviceHandle: THandle; // デバイスハンドル
var pdwDI: Dword // 汎用入力状態取得変数への参照渡し
): Integer; stdcall; external 'IFHScnt.DLL';
【パラメータ】
hDeviceHandle HScntOpen 関数で取得したインタフェースモジュールのデバイスハンドルを指定してくだ
さい。
pdwDI 入力状態の取得変数へのポインタを指定してください。
ビット bit31~bit16
内容 予約
ビット bit15 bit14 bit13 bit12 bit11 bit10 bit9 bit8
内容 IN16 IN15 IN14 IN13 IN12 IN11 IN10 IN9
ビット bit7 bit6 bit5 bit4 bit3 bit2 bit1 bit0
内容 IN8 IN7 IN6 IN5 IN4 IN3 IN2 IN1
・ビットデータ = 1 → “High”
・ビットデータ = 0 → “Low”
GPC-6320 Help for Windows
© 2004, 2014 Interface Corporation. All rights reserved.
241
【戻り値】
正常終了した場合は、IFHSCNT_ERROR_SUCCESSが返されます。
IFHSCNT_ERROR_SUCCESS以外の値が返された場合については、『4.6 戻り値一覧』をご参照くだ
さい。
【使用例】
●C言語
INT nRet;
DWORD dwDI;
HANDLE hDeviceHandle;
hDeviceHandle = HScntOpen(“IFHSCNT1”); :
:
nRet = HScntInputDI(hDeviceHandle, &dwDI);
●Visual Basic
Dim lpszName As String
Dim hDeviceHandle As Long
Dim dwDI As Long
lpszName = "IFHSCNT1" & Chr( 0 )
hDeviceHandle = HScntOpen(lpszName)
:
:
nRet = HScntInputDI(hDeviceHandle, dwDI)
●Delphi
var
lpszName: String;
hDeviceHandle: THandle;
dwDI: Dword;
lpszName := 'IFHSCNT1';
hDeviceHandle := HScntOpen(lpszName);
:
:
nRet := HScntInputDI(hDeviceHandle, dwDI);
デバイス名「IFHSCNT1」のデバイスの IN1~IN16 の汎用入力状態を取得します。
GPC-6320 Help for Windows
© 2004, 2014 Interface Corporation. All rights reserved.
242
75. HScntOutputDO
【機能】
汎用出力を制御します。
※この関数は下記、製品型式のみ対応しています。ご注意ください。
LPC-632102、PEX-632102
【書式】
●C言語
INT HScntOutputDO(
HANDLE hDeviceHandle, // デバイスハンドル
DWORD dwDO // 汎用出力
);
●Visual Basic
Declare Function HScntOutputDO Lib "IFHScnt.DLL"(_
ByVal hDeviceHandle As Long,_ ‘ デバイスハンドル
ByVal dwDO As Long_ ‘ 汎用出力
)As Long
●Delphi
function HScntOutputDO(
hDeviceHandle: THandle; // デバイスハンドル
dwDO: Dword // 汎用出力
): Integer; stdcall; external 'IFHScnt.DLL';
【パラメータ】
hDeviceHandle HScntOpen 関数で取得したインタフェースモジュールのデバイスハンドルを指定してくだ
さい。
dwDO 汎用出力を指定してください。
ビット bit31~bit16
内容 予約
ビット bit15 bit14 bit13 bit12 bit11 bit10 bit9 bit8
内容 OUT16 OUT15 OUT14 OUT13 OUT12 OUT11 OUT10 OUT9
ビット bit7 bit6 bit5 bit4 bit3 bit2 bit1 bit0
内容 OTU8 OUT7 OUT6 OUT5 OUT4 OUT3 OUT2 OUT1
・ビットデータ = 1 → “High”
・ビットデータ = 0 → “Low”
GPC-6320 Help for Windows
© 2004, 2014 Interface Corporation. All rights reserved.
243
【戻り値】
正常終了した場合は、IFHSCNT_ERROR_SUCCESSが返されます。
IFHSCNT_ERROR_SUCCESS以外の値が返された場合については、『4.6 戻り値一覧』をご参照くだ
さい。
【備考】
●HScntOutputDO 使用時の注意事項について
HScntOutputDO 関数では、IN1/OUT1~IN16/OUT16 等の入出力共用として使用可能な端子の出力
状態を変更することが可能です。その為、これらの端子に出力を行う外部機器を接続した状態
で HScntOutputDO 関数を実行すると、接続した機器が破損する可能性があります。
HScntOutputDO 関数を使用する際は必ず、出力を行っても問題ない接続となっていることをご
確認の上ご使用下さい。
●HScntSetDOEnebale 関数について
HScntOpen 関数でデバイスオープン時、デフォルトでは OUT1~OUT16 端子は出力禁止状態とな
っています。HScntOutputDO 関数を使用する際は、HScntSetDOEnable 関数を実行して制御した
い端子の出力許可設定を行ってから、本関数をご使用下さい。
【使用例】
●C言語
INT nRet;
HANDLE hDeviceHandle;
hDeviceHandle = HScntOpen(“IFHSCNT1”); :
:
nRet = HScntSetOutEnable(hDeviceHandle, 0x01);
nRet = HScntOutputDO(hDeviceHandle, 0x01);
●Visual Basic
Dim lpszName As String
Dim hDeviceHandle As Long
lpszName = "IFHSCNT1" & Chr( 0 )
hDeviceHandle = HScntOpen(lpszName)
:
:
nRet = HScntSetDOEnable(hDeviceHandle, &H01)
nRet = HScntOutputDO(hDeviceHandle, &H01)
GPC-6320 Help for Windows
© 2004, 2014 Interface Corporation. All rights reserved.
244
●Delphi
var
lpszName: String;
hDeviceHandle: THandle;
lpszName := 'IFHSCNT1';
hDeviceHandle := HScntOpen(lpszName);
:
:
nRet := HScntSetDOEnable(hDeviceHandle, $01);
nRet := HScntOutputDO(hDeviceHandle, $01);
デバイス名「IFHSCNT1」のデバイスの OUT1 端子を High に設定します。
GPC-6320 Help for Windows
© 2004, 2014 Interface Corporation. All rights reserved.
245
76. HScntSetTimerConfig
【機能】
インターバルタイマを設定します。
※この関数は下記、製品型式のみ対応しています。ご注意ください。
LPC-632102、PEX-632102
【書式】
●C言語
INT HScntSetTimerConfig(
HANDLE hDeviceHandle, // デバイスハンドル
BYTE bTimerConfigValue // タイマ設定値
);
●Visual Basic
Declare Function HScntSetTimerConfig Lib "IFHScnt.DLL"( _
ByVal hDeviceHandle As Long, _ ‘ デバイスハンドル
ByVal bTimerConfigValue As Byte _ ‘ タイマ設定値
)As Long
●Delphi
function HScntSetTimerConfig(
hDeviceHandle: THandle; // デバイスハンドル
bTimerConfigValue: Byte // タイマ設定値
): Integer; stdcall; external 'IFHScnt.DLL';
【パラメータ】
hDeviceHandle HScntOpen 関数で取得したインタフェースモジュールのデバイスハンドルを指定してくだ
さい。
bTimerConfigValue インターバルタイマの設定値を指定してください。
タイマ周期は CTL5~CTL7 で設定した基準周期と、CTL1~CTL4 で設定した分周値の積とな
ります。(周期=基準周期×分周値)
ビット bit7 bit6 bit5 bit4 bit3 bit2 bit1 bit0
内容 予約 CTL7 CTL6 CTL5 CTL4 CTL3 CTL2 CTL1
GPC-6320 Help for Windows
© 2004, 2014 Interface Corporation. All rights reserved.
246
CTL1~CTL4 分周値設定
CTL4 CTL3 CTL2 CTL1
タイマ停止 0 0 0 0
1 分周 0 0 0 1
2 分周 0 0 1 0
3 分周 0 0 1 1
4 分周 0 1 0 0
5 分周 0 1 0 1
6 分周 0 1 1 0
7 分周 0 1 1 1
8 分周 1 0 0 0
9 分周 1 0 0 1
10 分周 1 0 1 0
11 分周 1 0 1 1
12 分周 1 1 0 0
13 分周 1 1 0 1
14 分周 1 1 1 0
15 分周 1 1 1 1
CTL5~CTL7 基準周期設定
CTL7 CTL6 CTL5
10μs 0 0 0
100μs 0 0 1
1ms 0 1 0
10ms 0 1 1
100ms 1 0 0
【戻り値】
正常終了した場合は、IFHSCNT_ERROR_SUCCESSが返されます。
IFHSCNT_ERROR_SUCCESS以外の値が返された場合については、『4.6 戻り値一覧』をご参照くだ
さい。
【備考】
インターバルタイマ割り込みを使用する場合は、HScntSetEventMask関数と HScntSetEvent関数
を実行してインターバルタイマの割り込み要因を有効にし、イベントを登録する必要がありま
す。
GPC-6320 Help for Windows
© 2004, 2014 Interface Corporation. All rights reserved.
247
【使用例】
●C言語
INT nRet;
HANDLE hDeviceHandle;
hDeviceHandle = HScntOpen(“IFHSCNT1”); :
:
nRet = HScntSetTimerConfig(hDeviceHandle, 0x4A);
●Visual Basic
Dim lpszName As String
Dim hDeviceHandle As Long
lpszName = "IFHSCNT1" & Chr( 0 )
hDeviceHandle = HScntOpen(lpszName)
:
:
nRet = HScntSetTimerConfig(hDeviceHandle, &H4A)
●Delphi
var
lpszName: String;
hDeviceHandle: THandle;
lpszName := 'IFHSCNT1';
hDeviceHandle := HScntOpen(lpszName);
:
:
nRet := HScntSetTimerConfig(hDeviceHandle, $4A);
デバイス名「IFHSCNT1」のデバイスのインターバルタイマを 1s(100ms×10)に設定します。
GPC-6320 Help for Windows
© 2004, 2014 Interface Corporation. All rights reserved.
248
77. HScntGetTimerConfig
【機能】
インターバルタイマの設定情報を取得します。
※この関数は下記、製品型式のみ対応しています。ご注意ください。
LPC-632102、PEX-632102
【書式】
●C言語
INT HScntGetTimerConfig(
HANDLE hDeviceHandle, // デバイスハンドル
PBYTE *pbTimerConfigValue // インターバルタイマ設定
// 格納変数へのポインタ
);
●Visual Basic
Declare Function HScntGetTimerConfig Lib "IFHScnt.DLL"( _
ByVal hDeviceHandle As Long, _ ‘ デバイスハンドル
ByRef pbTimerConfigValue As Byte _ ‘ インターバルタイマ設定
‘ 格納変数への参照渡し
)As Long
●Delphi
function HScntGetTimerConfig(
hDeviceHandle: THandle; // デバイスハンドル
var pbTimerConfigValue: Byte // インターバルタイマ設定
// 格納変数への参照渡し
): Integer; stdcall; external 'IFHScnt.DLL';
【パラメータ】
hDeviceHandle HScntOpen 関数で取得したインタフェースモジュールのデバイスハンドルを指定してくだ
さい。
bTimerConfigValue インターバルタイマの設定情報を格納する変数へのポインタ(参照渡し)を指定してくだ
さい。
タイマ周期は CTL5~CTL7 で設定した基準周期と、CTL1~CTL4 で設定した分周値の積とな
ります。(周期=基準周期×分周値)
ビット bit7 bit6 bit5 bit4 bit3 bit2 bit1 bit0
内容 予約 CTL7 CTL6 CTL5 CTL4 CTL3 CTL2 CTL1
GPC-6320 Help for Windows
© 2004, 2014 Interface Corporation. All rights reserved.
249
CTL1~CTL4 分周値設定
CTL4 CTL3 CTL2 CTL1
タイマ停止 0 0 0 0
1 分周 0 0 0 1
2 分周 0 0 1 0
3 分周 0 0 1 1
4 分周 0 1 0 0
5 分周 0 1 0 1
6 分周 0 1 1 0
7 分周 0 1 1 1
8 分周 1 0 0 0
9 分周 1 0 0 1
10 分周 1 0 1 0
11 分周 1 0 1 1
12 分周 1 1 0 0
13 分周 1 1 0 1
14 分周 1 1 1 0
15 分周 1 1 1 1
CTL5~CTL7 基準周期設定
CTL7 CTL6 CTL5
10μs 0 0 0
100μs 0 0 1
1ms 0 1 0
10ms 0 1 1
100ms 1 0 0
【戻り値】
正常終了した場合は、IFHSCNT_ERROR_SUCCESSが返されます。
IFHSCNT_ERROR_SUCCESS以外の値が返された場合については、『4.6 戻り値一覧』をご参照くだ
さい。
【使用例】
●C言語
INT nRet;
HANDLE hDeviceHandle;
BYTE bTimerConfigValue;
hDeviceHandle = HScntOpen(“IFHSCNT1”); :
:
nRet = HScntGetTimerConfig(hDeviceHandle, &bTimerConfigValue);
GPC-6320 Help for Windows
© 2004, 2014 Interface Corporation. All rights reserved.
250
●Visual Basic
Dim lpszName As String
Dim hDeviceHandle As Long
Dim bTimerConfigValue As Byte
lpszName = "IFHSCNT1" & Chr( 0 )
hDeviceHandle = HScntOpen(lpszName)
:
:
nRet = HScntGetTimerConfig(hDeviceHandle, bTimerConfigValue)
●Delphi
var
lpszName: String;
hDeviceHandle: THandle;
bTimerConfigValue: Byte;
lpszName := 'IFHSCNT1';
hDeviceHandle := HScntOpen(lpszName);
:
:
nRet := HScntGetTimerConfig(hDeviceHandle, bTimerConfigValue);
デバイス名「IFHSCNT1」のデバイスのインターバルタイマ設定を取得します。
GPC-6320 Help for Windows
© 2004, 2014 Interface Corporation. All rights reserved.
251
78. HScntGetTimerCount
【機能】
インターバルタイマのカウント値を取得します。
※この関数は下記、製品型式のみ対応しています。ご注意ください。
LPC-632102、PEX-632102
【書式】
●C言語
INT HScntGetTimerCount(
HANDLE hDeviceHandle, // デバイスハンドル
PBYTE *pbTimerCount // タイマカウント値
// 格納変数へのポインタ
);
●Visual Basic
Declare Function HScntGetTimerCount Lib "IFHScnt.DLL"( _
ByVal hDeviceHandle As Long, _ ‘ デバイスハンドル
ByRef pbTimerCount As Byte _ ‘ タイマカウント値
‘ 格納変数への参照渡し
)As Long
●Delphi
function HScntGetTimerCount(
hDeviceHandle: THandle; // デバイスハンドル
var pbTimerCount: Byte // タイマカウント値
// 格納変数への参照渡し
): Integer; stdcall; external 'IFHScnt.DLL';
【パラメータ】
hDeviceHandle HScntOpen 関数で取得したインタフェースモジュールのデバイスハンドルを指定してくだ
さい。
pbTimerCount インターバルタイマの設定情報を格納する変数へのポインタ(参照渡し)を指定してくだ
さい。
HScntSetTimerConfig関数により設定した周期における、現在の状態を 4bitカウンタで取
得します。
ビット bit7 bit6 bit5 bit4 bit3 bit2 bit1 bit0
内容 予約 予約 予約 予約 CTL4 CTL3 CTL2 CTL1
GPC-6320 Help for Windows
© 2004, 2014 Interface Corporation. All rights reserved.
252
CTL1~CTL4 分周値設定
CTL4 CTL3 CTL2 CTL1
0 カウント 0 0 0 0
1 カウント 0 0 0 1
2 カウント 0 0 1 0
3 カウント 0 0 1 1
4 カウント 0 1 0 0
5 カウント 0 1 0 1
6 カウント 0 1 1 0
7 カウント 0 1 1 1
8 カウント 1 0 0 0
9 カウント 1 0 0 1
10 カウント 1 0 1 0
11 カウント 1 0 1 1
12 カウント 1 1 0 0
13 カウント 1 1 0 1
14 カウント 1 1 1 0
15 カウント 1 1 1 1
【戻り値】
正常終了した場合は、IFHSCNT_ERROR_SUCCESSが返されます。
IFHSCNT_ERROR_SUCCESS以外の値が返された場合については、『4.6 戻り値一覧』をご参照くだ
さい。
【使用例】
●C言語
INT nRet;
HANDLE hDeviceHandle;
BYTE bTimerCount;
hDeviceHandle = HScntOpen(“IFHSCNT1”); :
:
nRet = HScntGetTimerCount(hDeviceHandle, &pbTimerCount);
●Visual Basic
Dim lpszName As String
Dim hDeviceHandle As Long
Dim bTimerCount As Byte
lpszName = "IFHSCNT1" & Chr( 0 )
hDeviceHandle = HScntOpen(lpszName)
:
:
nRet = HScntGetTimerCount(hDeviceHandle, pbTimerCount)
GPC-6320 Help for Windows
© 2004, 2014 Interface Corporation. All rights reserved.
253
●Delphi
var
lpszName: String;
hDeviceHandle: THandle;
bTimerCount: Byte;
lpszName := 'IFHSCNT1';
hDeviceHandle := HScntOpen(lpszName);
:
:
nRet := HScntGetTimerCount(hDeviceHandle, pbTimerCount);
デバイス名「IFHSCNT1」のデバイスのインターバルタイマのカウント値を取得します。
GPC-6320 Help for Windows
© 2004, 2014 Interface Corporation. All rights reserved.
254
79. HScntSetFilter
【機能】
デジタルフィルタを設定します。
※この関数は下記、製品型式のみ対応しています。ご注意ください。
LPC-632102、PEX-632102
【書式】
●C言語
INT HScntSetFilter(
HANDLE hDeviceHandle, // デバイスハンドル
DWORD dwFilter // デジタルフィルタ
);
●Visual Basic
Declare Function HScntSetFilter Lib "IFHScnt.DLL"(_
ByVal hDeviceHandle As Long,_ ‘ デバイスハンドル
ByVal dwFilter As Long_ ‘ デジタルフィルタ
)As Long
●Delphi
function HScntSetFilter(
hDeviceHandle: THandle; // デバイスハンドル
dwFilter: Dword // デジタルフィルタ
): Integer; stdcall; external 'IFHScnt.DLL';
【パラメータ】
hDeviceHandle UcntOpen 関数で取得したインタフェースモジュールのデバイスハンドルを指定してくだ
さい。
dwFilter デジタルフィルタ設定値を指定してください。
ビット bit31~bit16
内容 予約
ビット bit15 bit14 bit13 bit12 bit11 bit10 bit9 bit8
内容 DCLK21 DCLK20 予約 DCNT24 DCNT23 DCNT22 DCNT21 DCNT20
ビット bit7 bit6 bit5 bit4 bit3 bit2 bit1 bit0
内容 DCLK11 DCLK10 予約 DCNT14 DCNT13 DCNT12 DCNT11 DCNT10
GPC-6320 Help for Windows
© 2004, 2014 Interface Corporation. All rights reserved.
255
・IN1~IN8 のデジタルフィルタ設定
0 1 DCLCK11 カウント数
DCNT14~DCNT10 0 1 0 1 DCLCK10
0 停止 停止 停止 -
1 1[us] 10[us] 100[us] -
2 2[us] 20[us] 200[us] -
: : : : -
31 31[us] 310[us] 3100[us] -
・IN9~IN16 のデジタルフィルタ設定
0 1 DCLCK21 カウント数
DCNT24~DCNT20 0 1 0 1 DCLCK20
0 停止 停止 停止 -
1 1[us] 10[us] 100[us] -
2 2[us] 20[us] 200[us] -
: : : : -
31 31[us] 310[us] 3100[us] -
【戻り値】
正常終了した場合は、IFHSCNT_ERROR_SUCCESSが返されます。
IFHSCNT_ERROR_SUCCESS以外の値が返された場合については、『4.6 戻り値一覧』をご参照くだ
さい。
【使用例】
●C言語
INT nRet;
HANDLE hDeviceHandle;
hDeviceHandle = HScntOpen(“IFHSCNT1”); :
:
nRet = HScntSetFilter(hDeviceHandle, 0x8A8A);
●Visual Basic
Dim lpszName As String
Dim hDeviceHandle As Long
lpszName = "IFHSCNT1" & Chr( 0 )
hDeviceHandle = HScntOpen(lpszName)
:
:
nRet = HScntSetFilter(hDeviceHandle, &H8A8A)
GPC-6320 Help for Windows
© 2004, 2014 Interface Corporation. All rights reserved.
256
●Delphi
var
lpszName: String;
hDeviceHandle: THandle;
lpszName := 'IFHSCNT1';
hDeviceHandle := HScntOpen(lpszName);
:
:
nRet = HScntSetFilter(hDeviceHandle, $8A8A);
デバイス名「IFHSCNT1」のデバイスの IN1~IN8 と IN9~IN16 にデジタルフィルタ(フィルタ
周期 1ms)を設定します。
GPC-6320 Help for Windows
© 2004, 2014 Interface Corporation. All rights reserved.
257
80. HScntGetFilter
【機能】
デジタルフィルタ設定情報を取得します。
※この関数は下記、製品型式のみ対応しています。ご注意ください。
LPC-632102、PEX-632102
【書式】
●C言語
INT HScntGetFilter(
HANDLE hDeviceHandle, // デバイス番号
PDWORD pdwFilter // デジタルフィルタ取得変数
// へのポインタ
);
●Visual Basic
Declare Function HScntGetFilter Lib "IFHScnt.DLL"(_
ByVal hDeviceHandle, As Long,_ ‘ デバイス番号
ByRef pdwFilter As Long_ ‘ デジタルフィルタ取得変数
‘ への参照渡し
)As Long
●Delphi
function HScntGetFilter(
hDeviceHandle: THandle; // デバイス番号
var pdwFilter: Dword // デジタルフィルタ取得変数
// への参照渡し
): Integer; stdcall; external 'IFHScnt.DLL';
【パラメータ】
hDeviceHandle UcntOpen 関数で取得したインタフェースモジュールのデバイスハンドルを指定してくだ
さい。
pdwFilter デジタルフィルタ設定値を格納する変数へのポインタを指定してください。
格納される値の詳細については下記の様になります。
ビット bit31~bit16
内容 予約
ビット bit15 bit14 bit13 bit12 bit11 bit10 bit9 bit8
内容 DCLK21 DCLK20 予約 DCNT24 DCNT23 DCNT22 DCNT21 DCNT20
ビット bit7 bit6 bit5 bit4 bit3 bit2 bit1 bit0
内容 DCLK11 DCLK10 予約 DCNT14 DCNT13 DCNT12 DCNT11 DCNT10
GPC-6320 Help for Windows
© 2004, 2014 Interface Corporation. All rights reserved.
258
・IN1~IN8 のデジタルフィルタ設定
0 1 DCLCK11 カウント数
DCNT14~DCNT10 0 1 0 1 DCLCK10
0 停止 停止 停止 -
1 1[us] 10[us] 100[us] -
2 2[us] 20[us] 200[us] -
: : : : -
31 31[us] 310[us] 3100[us] -
・IN9~IN16 のデジタルフィルタ設定
0 1 DCLCK21 カウント数
DCNT24~DCNT20 0 1 0 1 DCLCK20
0 停止 停止 停止 -
1 1[us] 10[us] 100[us] -
2 2[us] 20[us] 200[us] -
: : : : -
31 31[us] 310[us] 3100[us] -
【戻り値】
正常終了した場合は、IFHSCNT_ERROR_SUCCESSが返されます。
IFHSCNT_ERROR_SUCCESS以外の値が返された場合については、『4.6 戻り値一覧』をご参照くだ
さい。
【使用例】
●C言語
INT nRet;
HANDLE hDeviceHandle;
DWORD dwFilter;
hDeviceHandle = HScntOpen(“IFHSCNT1”); :
:
nRet = HScntGetFilter(hDeviceHandle, &dwFilter);
●Visual Basic
Dim lpszName As String
Dim hDeviceHandle As Long
Dim dwFilter As Long
lpszName = "IFHSCNT1" & Chr( 0 )
hDeviceHandle = HScntOpen(lpszName)
:
:
nRet = HScntGetFilter(hDeviceHandle, dwFilter)
●Delphi
GPC-6320 Help for Windows
© 2004, 2014 Interface Corporation. All rights reserved.
259
var
lpszName: String;
hDeviceHandle: THandle;
dwFilter: Dword;
lpszName := 'IFHSCNT1';
hDeviceHandle := HScntOpen(lpszName);
:
:
nRet := HScntGetFilter(hDeviceHandle, dwFilter);
デバイス名「IFHSCNT1」のデバイスの IN1~IN8 と IN9~IN16 のデジタルフィルタ設定情報を
取得します。
GPC-6320 Help for Windows
© 2004, 2014 Interface Corporation. All rights reserved.
260
4.5 構造体説明
● UCNTDEVICEINFO 構造体 UcntGetDeviceInfo 関数で使用し、デバイス情報を格納する構造体です。
typedef struct {
DWORD dwBoardType;
DWORD dwBoardID;
} UCNTDEVICEINFO, *PUCNTDEVICEINFO;
メンバ 説明
dwBoardType インタフェースモジュールの型式番号を格納します。
例:CBI-632106 であれば 632106 が格納されます。
dwBoardID インタフェースモジュールの識別番号を格納します。
GPC-6320 Help for Windows
© 2004, 2014 Interface Corporation. All rights reserved.
261
● UCNTSMPLCONFIG 構造体 UcntSetSamplingConfig 関数/UcntGetSamplingConfig 関数で指定するサンプリング条件設定
用構造体です。
typedef struct {
DWORD dwSmplNum;
DWORD dwSmplEventNnm;
DWORD dwSmplRepeat;
DWORD dwStatusMode;
DWORD dwErrCtrl;
} UCNTSMPLCONFIG, *PUCNTSMPLCONFIG;
メンバ 説明
dwSmplNum サンプリング件数を指定します。
■ステータス情報なしの場合(dwStatusMode=IFUCNT_NO_STATUS)
1~16,769,008(FFDFF0 h)
64bitOS 環境の場合は、1~16,384(4000 h)となります。
16,384 件を超える件数を指定する場合、メモリ設定ユーティリティ
(IFUCNTMEM.EXE)にて内部バッファサイズを変更する必要があります。
■ステータス情報ありの場合(dwStatusMode=IFUCNT_ADD_STATUS)
1~8,384,504(7FEFF8 h)
64bitOS 環境の場合は、1~8,192(2000 h)となります。
8,192 件を超える件数を指定する場合、メモリ設定ユーティリティ
(IFUCNTMEM.EXE)にて内部バッファサイズを変更する必要があります。
dwSmplEventNnm イベント通知サンプリング件数を指定します。
・ステータス情報なしの場合(dwStatusMode=IFUCNT_NO_STATUS)
0、1~1,073,741,824(40000000 h)
(0 を指定すると、イベントが発生しません。)
・ステータス情報ありの場合(dwStatusMode=IFUCNT_ADD_STATUS)
0、1~536,870,912(20000000 h)
(0 を指定すると、イベントが発生しません。)
dwSmplRepeat サンプリング繰り返し回数を指定します。
0、1~65,535
0 を指定すると UcntStopSampling を実行するまでサンプリングを停止しませ
ん。
サンプリングデータへのステータスの付加を指定します。(※)
識別子 意味
IFUCNT_NO_STATUS ステータス情報なし(デフォルト)
IFUCNT_ADD_STATUS ステータス情報付加
dwStatusMode
サンプリングエラー発生時の処理を指定します。
識別子 意味
IFUCNT_FREERUN 処理なし
IFUCNT_STOP_ORER オーバーランエラーにより処理を停止
dwErrCtrl
GPC-6320 Help for Windows
© 2004, 2014 Interface Corporation. All rights reserved.
262
※IFUCNT_ADD_STATUS を指定した場合、カウンタラッチが発生した時点のカウンタデータ
(32bit)とステータスデータ(32bit)がセットで保持されます。
ステータスデータ(32bit)には下記の値が格納されます。
ビット bit31~20 bit19 bit18 bit17 bit16
内容 予約 BL CL ItoR RtoI
ビット bit15 bit14 bit13 bit12 bit11 bit10 bit9 bit8
内容 予約 LTST2 LTST1 LTST0 LBAFT LAAFT LBBEF LABEF
ビット bit7 bit6 bit5 bit4 bit3 bit2 bit1 bit0
内容 予約 予約 予約 予約 予約 予約 予約 予約
LBBEF、LABEF:外部ラッチ直前の LA、LB ステータス
LBBEF、LABEF 内容
0 Low
1 High
LBAFT、LAAFT:外部ラッチ直後の LA、LB ステータス
LBAFT、LAAFT 内容
0 Low
1 High
LTST2、LTST1、LTST0:ラッチステータス
LTST2 LTST1 LTST0 内容
0 0 0 ラッチされていない
0 0 1 ソフトラッチ
0 1 0 外部ラッチ
0 1 1 内部基準クロックラッチ
1 0 0 内部同期ライン 1でのラッチ(※)
1 0 1 内部同期ライン 2でのラッチ(※)
※PCI-632302 でのみ使用できます。
RtoI:正回転(カウントアップ)から逆回転(カウントダウン)の回転方向変更によるラッチ
※PCI-632304 でのみ取得できます。
RtoI 内容
0 ラッチされていない
1 ラッチされた
ItoR:逆回転(カウントダウン)から正回転(カウントアップ)の回転方向変更によるラッチ
※PCI-632304 でのみ取得できます。
ItoR 内容
0 ラッチされていない
1 ラッチされた
GPC-6320 Help for Windows
© 2004, 2014 Interface Corporation. All rights reserved.
263
CL:キャリーによるラッチ
※PCI-632304 でのみ取得できます。
CL 内容
0 ラッチされていない
1 ラッチされた
BL:ボローによるラッチ
※PCI-632304 でのみ取得できます。
BL 内容
0 ラッチされていない
1 ラッチされた
GPC-6320 Help for Windows
© 2004, 2014 Interface Corporation. All rights reserved.
264
● UCNTEVENTREQ 構造体 割り込みイベントを設定する構造体です。コールバック関数、ウィンドウメッセージの設定に
使用します。
typedef struct {
HWND hWnd;
UINT uMessage[8];
HANDLE hInterruptEvent;
PUCNTCALLBACK lpCallBackProc;
DWORD dwUser;
} UCNTEVENTREQ, *PUCNTEVENTREQ;
メンバ 説明
hWnd メッセージ送出ウィンドウハンドル
UcntSetEventMask 関数にて設定した各種割り込み発生時に送出するメッセー
ジのポスト先ウィンドウハンドルを指定します。
(メッセージ送出時に、WPARAMには割り込み要因、LPARAMにはdwUserの値が
格納されます。フォーマットは UcntSetEventMask/UcntGetEventMaskで使用す
る各要因と同じになります。配列データではなく、(メッセージで指定したチ
ャンネルのみの)WORD型のデータとなります。)
メッセージポストを行わない場合には、C言語では NULL、Visual Basic,
Delphi では 0を指定してください。
uMessage[8] 割り込みメッセージ(チャンネル 1~チャンネル 4)
割り込み発生時に送出するメッセージコードを指定します。
メッセージポストを行わない場合には、C 言語では WM_NULL、Visual Basic
では 0、Delphi では WM_NULL を指定してください。
uMessage[0]:チャンネル 1割り込みメッセージコード
uMessage[1]:チャンネル 2割り込みメッセージコード
uMessage[2]:チャンネル 3割り込みメッセージコード
uMessage[3]:チャンネル 4割り込みメッセージコード
uMessage[4]~uMessage[7]:予約(使用しません)
hEvent イベント発生時にシグナル状態となるイベントオブジェクトのハンドルを
指定してください。
イベントオブジェクトを使用しない場合には、C 言語ではNULL、Visual
Basic,Delphi では 0 を指定してください。
lpCallBackProc 割り込み発生時に呼び出されるユーザ・コールバック関数のポインタを指定
してください。(コールバック関数は全チャンネル共通となります)
コールバック関数を使用しない場合は、C 言語ではNULL、Visual Basic,
Delphi では 0 を指定してください。
dwUser コールバック関数へ引き渡すユーザ・データを指定してください。
GPC-6320 Help for Windows
© 2004, 2014 Interface Corporation. All rights reserved.
265
● HSCNTDEVICEINFO 構造体 HScntGetDeviceInfo 関数で使用し、デバイス情報を格納する構造体です。
typedef struct {
DWORD dwBoardType;
DWORD dwBoardID;
} HSCNTDEVICEINFO, *PHSCNTDEVICEINFO;
メンバ 説明
dwBoardType インタフェースモジュールの型式番号を格納します。
例:CBI-632106 であれば 632106 が格納されます。
dwBoardID インタフェースモジュールの識別番号を格納します。
GPC-6320 Help for Windows
© 2004, 2014 Interface Corporation. All rights reserved.
266
● HSCNTEVENTREQ 構造体 割り込みイベントを設定する構造体です。コールバック関数、ウィンドウメッセージの設定に
使用します。
typedef struct {
HWND hWnd;
UINT uMessage[8];
HANDLE hInterruptEvent;
PHSCNTCALLBACK lpCallBackProc;
DWORD dwUser;
} HSCNTEVENTREQ, *PHSCNTEVENTREQ;
メンバ 説明
hWnd メッセージ送出ウィンドウハンドル
HScntSetEventMask 関数にて設定した各種割り込み発生時に送出するメッセ
ージのポスト先ウィンドウハンドルを指定します。
(メッセージ送出時に、WPARAMには割り込み要因、LPARAMにはdwUserの値が
格納されます。フォーマットは HScntSetEventMask/HScntGetEventMaskで使用
する各要因と同じになります。配列データではなく、(メッセージで指定した
チャンネルのみの)WORD型のデータとなります。)
メッセージポストを行わない場合には、C言語では NULL、Visual Basic,
Delphi では 0を指定してください。
uMessage[8] 割り込みメッセージ(チャンネル 1~チャンネル 2)
割り込み発生時に送出するメッセージコードを指定します。
メッセージポストを行わない場合には、C 言語では WM_NULL、Visual Basic
では 0、Delphi では WM_NULL を指定してください。
uMessage[0]:チャンネル 1割り込みメッセージコード
uMessage[1]:チャンネル 2割り込みメッセージコード
uMessage[2]~uMessage[5]:予約(使用しません)
uMessage[6]:インターバルタイマ割り込みメッセージコード
uMessage[7]:入力エッジ割り込みメッセージコード
hEvent イベント発生時にシグナル状態となるイベントオブジェクトのハンドルを
指定してください。
イベントオブジェクトを使用しない場合には、C 言語ではNULL、Visual
Basic,Delphi では 0 を指定してください。
lpCallBackProc 割り込み発生時に呼び出されるユーザ・コールバック関数のポインタを指定
してください。(コールバック関数は全チャンネル共通となります)
コールバック関数を使用しない場合は、C 言語ではNULL、Visual Basic,
Delphi では 0 を指定してください。
dwUser コールバック関数へ引き渡すユーザ・データを指定してください。
GPC-6320 Help for Windows
© 2004, 2014 Interface Corporation. All rights reserved.
267
4.6 戻り値一覧 <万能カウンタ用関数 戻り値>
エラー識別子 値 意味 対処方法
IFUCNT_ERROR_SUCCESS 0 正常終了 -
IFUCNT_ERROR_NOT_DEVICE C0000001h
(-1073741823)
ドライバを呼び出せませ
ん。
指定したデバイスが見つかりません
でした。
指定したデバイス番号が存在するか
どうかを確認してください。
IFUCNT_ERROR_NOT_OPEN C0000002h
(-1073741822)
ドライバを OPEN できませ
ん。
デバイスのオープン時、何らかのエラ
ーが発生しました。
ドライバ内部のメモリ確保に失敗し
たなど。
IFUCNT_ERROR_INVALID_HANDLE C0000003h
(-1073741821)
デバイスハンドルが正し
くありません。
不正なデバイスハンドルで呼び出し
を行おうとしました。
OPEN 関数で返されたデバイスハンド
ルを使用してください。
IFUCNT_ERROR_ALREADY_OPEN C0000004h
(-1073741820)
既に OPEN しているデバイ
スを OPEN しようとしまし
た。
既に OPEN されているデバイスです。
IFUCNT_ERROR_NOT_SUPPORTED C0000009h
(-1073741815)
サポート外の機能です。 指定したデバイスにおいて、サポート
外の機能を選択しました。
IFUCNT_ERROR_INVALID_PARAME
TER
C0000010h
(-1073741808)
不正なパラメータを指定
しました。
正しい設定値を指定してください。
IFUCNT_ERROR_NOT_ALLOCATE_M
EMORY
C0000021h
(-1073741792)
必要なメモリ領域を確保
していません。
事前にサンプリング設定を行ってく
ださい。
IFUCNT_ERROR_NOW_SAMPLING C0001000h
(-1073737728)
サンプリング動作中です。 サンプリング動作中に実行できない
関数です。
IFUCNT_ERROR_NOW_STOP C0001001h
(-1073737727)
サンプリング停止中です。 サンプリング停止中に実行できない
関数です。
IFUCNT_ERROR_NULL_POINTER C0001002h
(-1073737726)
NULL ポインタを指定しま
した。
NULL ポインタは指定できません、正
しいアドレスを指定してください。
IFHSCNT_ERROR_INVALID_OUT_E
NABLE
C0001006h
(-1073737722)
出力許可設定に誤りがあ
ります。
正しい設定値を指定してください
IFHSCNT_ERROR_INVALID_DO C0001007h
(-1073737721)
出力設定に誤りがありま
す。
正しい設定値を指定してください
IFHSCNT_ERROR_INVALID_FILTE
R
C0001008h
(-1073737720)
デジタルフィルタ設定に
誤りがあります。
正しい設定値を指定してください
IFHSCNT_ERROR_INVALID_TIMER C0001009h
(-1073737719)
タイマ設定に誤りがあり
ます。
正しい設定値を指定してください
IFUCNT_ERROR_INVALID_FUNC_M
ODE
C0001010h
(-1073737712)
不正な機能モードが設定
されています。
現在の機能モードでは使用できない
関数を実行しました。
IFUCNT_ERROR_INVALID_CHANNE
L
C0001011h
(-1073737711)
チャンネル番号指定に誤
りがあります。
チャンネル番号が正しくありません。
1h~fh 以外のチャンネル番号を指定
しています。
指定した関数では実行できないチャ
ンネル番号を指定しています。
IFUCNT_ERROR_INVALID_RESET_
MODE
C0001012h
(-1073737710)
リセットモードが不正で
す。
正しい設定値を指定してください。
IFUCNT_ERROR_INVALID_COUNT_
MODE
C0001013h
(-1073737709)
カウントモードが不正で
す。
正しい設定値を指定してください。
GPC-6320 Help for Windows
© 2004, 2014 Interface Corporation. All rights reserved.
268
IFUCNT_ERROR_INVALID_LOAD C0001014h
(-1073737708)
ロードモードが不正です。 正しい設定値を指定してください。
IFUCNT_ERROR_INVALID_LATCH C0001015h
(-1073737707)
ラッチモードが不正です。 正しい設定値を指定してください。
IFUCNT_ERROR_INVALID_CLOCK C0001016h
(-1073737706)
クロック設定が不正です。 正しい設定値を指定してください。
IFUCNT_ERROR_INVALID_TYPE C0001017h
(-1073737705)
カウントタイプが不正で
す。
正しい設定値を指定してください。
IFUCNT_ERROR_INVALID_DIVISO
R
C0001018h
(-1073737704)
分周周期が不正です。 正しい設定値を指定してください。
IFUCNT_ERROR_INVALID_PWIDE C0001019h
(-1073737703)
パルス幅が不正です。 正しい設定値を指定してください。
IFUCNT_ERROR_INVALID_LOGIC C000101ah
(-1073737702)
論理設定が不正です。 正しい設定値を指定してください。
IFUCNT_ERROR_INVALID_OUTB C000101bh
(-1073737701)
OUTB 出力指定が不正です。 正しい設定値を指定してください。
IFUCNT_ERROR_INVALID_CYCLE C000101ch
(-1073737700)
周期設定が不正です。 正しい設定値を指定してください。
IFUCNT_ERROR_INVALID_HPULSE C000101dh
(-1073737699)
High パルス幅設定が不正
です。
正しい設定値を指定してください。
IFUCNT_ERROR_INVALID_TRG_ST
ART
C000101eh
(-1073737698)
スタートトリガ設定が不
正です。
正しい設定値を指定してください。
IFUCNT_ERROR_INVALID_TRG_ST
OP
C000101fh
(-1073737697)
ストップトリガ設定が不
正です。
正しい設定値を指定してください。
IFUCNT_ERROR_INVALID_TRG_CH
ANNEL
C0001020h
(-1073737696)
トリガチャンネルが不正
です。
正しい設定値を指定してください。
IFUCNT_ERROR_INVALID_TRG_MO
DE
C0001021h
(-1073737695)
トリガモードが不正です。 正しい設定値を指定してください。
IFUCNT_ERROR_INVALID_CMP_CH
ANNEL
C0001022h
(-1073737694)
比較カウンタチャンネル
設定が不正です。
正しい設定値を指定してください。
IFUCNT_ERROR_INVALID_CMP_OU
TA
C0001023h
(-1073737693)
OUTA の一致検出設定が不
正です。
正しい設定値を指定してください。
IFUCNT_ERROR_INVALID_CMP_OU
TB
C0001024h
(-1073737692)
OUTB の一致検出設定が不
正です。
正しい設定値を指定してください。
IFUCNT_ERROR_INVALID_FILTER C0001025h
(-1073737691)
デジタルフィルタが不正
です。
正しい設定値を指定してください。
IFUCNT_ERROR_INVALID_COUNTE
R
C0001026h
(-1073737690)
カウンタ設定が不正です。 正しい設定値を指定してください。
IFUCNT_ERROR_INVALID_CMP_SE
LECT
C0001027h
(-1073737689)
比較カウンタ選択が不正
です。
正しい設定値を指定してください。
IFUCNT_ERROR_INVALID_COMPAR
ATOR
C0001028h
(-1073737688)
比較カウンタA設定値が不
正です。
正しい設定値を指定してください。
IFUCNT_ERROR_INVALID_BUFFER
_SIZE
C0001029h
(-1073737687)
比較カウンタB設定値が不
正です。
正しい設定値を指定してください。
IFUCNT_ERROR_INVALID_DATA_N
UM
C000102ah
(-1073737686)
サンプリングデータの取
得件数が不正です。
正しい設定値を指定してください。
IFUCNT_ERROR_INVALID_COMMAN
D
C000102bh
(-1073737685)
カウンタ制御コマンドが
不正です。
正しい設定値を指定してください。
IFUCNT_ERROR_INVALID_OUT_EN
ABLE
C000102ch
(-1073737684)
汎用出力許可設定が不正
です。
正しい設定値を指定してください。
IFUCNT_ERROR_INVALID_DO C000102dh
(-1073737683)
汎用出力値の指定が不正
です。
正しい設定値を指定してください。
IFUCNT_ERROR_INVALID_MASK C000102eh
(-1073737682)
割り込みマスク設定が不
正です。
正しい設定値を指定してください。
GPC-6320 Help for Windows
© 2004, 2014 Interface Corporation. All rights reserved.
269
IFUCNT_ERROR_NO_DATA C0001030h
(-1073737680)
取得できるサンプリング
データがありません。
-
IFUCNT_ERROR_NO_DMAMEMORY C0001032h
(-1073737678)
指定したサンプリング件
数分のメモリサイズが、0
値、または内部バッファサ
イズを超えています。
IFUCNTMEM.exe で内部バッファサイ
ズを確認してください。
IFUCNT_ERROR_FAILED_MEMMAP C0001033h
(-1073737677)
内部バッファのマッピン
グ処理に失敗しました。
何かしらの原因で、ドライバ内の処理
が失敗しています。
<高速カウンタ用関数 戻り値>
エラー識別子 値 意味 対処方法
IFHSCNT_ERROR_SUCCESS 0 正常終了 -
IFHSCNT_ERROR_NOT_DEVICE C0000001h
(-1073741823)
ドライバを呼び出せませ
ん。
指定したデバイスが見つかりません
でした。
指定したデバイス番号が存在するか
どうかを確認してください。
IFHSCNT_ERROR_NOT_OPEN C0000002h
(-1073741822)
ドライバを OPEN できませ
ん。
デバイスのオープン時、何らかのエラ
ーが発生しました。
ドライバ内部のメモリ確保に失敗し
たなど。
IFHSCNT_ERROR_INVALID_HANDL
E
C0000003h
(-1073741821)
デバイスハンドルが正し
くありません。
不正なデバイスハンドルで呼び出し
を行おうとしました。
OPEN 関数で返されたデバイスハンド
ルを使用してください。
IFHSCNT_ERROR_ALREADY_OPEN C0000004h
(-1073741820)
既に OPEN しているデバイ
スを OPEN しようとしまし
た。
既に OPEN されているデバイスです。
IFHSCNT_ERROR_NOT_SUPPORTED C0000009h
(-1073741815)
サポート外の機能です。 指定したデバイスにおいて、サポート
外の機能を選択しました。
IFHSCNT_ERROR_INVALID_PARAM
ETER
C0000010h
(-1073741808)
不正なパラメータを指定
しました。
正しい設定値を指定してください。
IFHSCNT_ERROR_NULL_POINTER C0001000h
(-1073737728)
NULL ポインタを指定しま
した。
NULL ポインタは指定できません、正
しいアドレスを指定してください。
IFHSCNT_ERROR_INVALID_CHANN
EL
C0001001h
(-1073737727)
チャンネル番号指定に誤
りがあります。
チャンネル番号が正しくありません。
1h~fh 以外のチャンネル番号を指定
しています。
指定した関数では実行できないチャ
ンネル番号を指定しています。
IFHSCNT_ERROR_INVALID_RESET
_MODE
C0001002h
(-1073737726)
リセットモードが不正で
す。
正しい設定値を指定してください。
IFHSCNT_ERROR_INVALID_COUNT
_MODE
C0001003h
(-1073737725)
カウントモードが不正で
す。
正しい設定値を指定してください。
IFHSCNT_ERROR_INVALID_MASK C0001004h
(-1073737724)
割り込みマスク設定が不
正です。
正しい設定値を指定してください。
IFHSCNT_ERROR_INVALID_COMMA
ND
C0001005h
(-1073737723)
カウンタ制御コマンドが
不正です。
正しい設定値を指定してください。
GPC-6320 Help for Windows
© 2004, 2014 Interface Corporation. All rights reserved.
270
第5章 サンプルプログラム
以下、各サンプルプログラムの概要を説明します。
5.1 実行手順 各サンプルプログラム共に、「Visual C++」、「Visual Basic」、「Delphi」用のサンプルプログラム
を用意しています。
【実行手順】
サンプルプログラムには実行形式のファイルが付属していません。
ソースコードをコンパイルして実行ファイルを生成してから、動作させてください。
● Visual C++の場合
Visual C++(Visual Studio)を起動し、「ファイル」メニューから「ワークスペースを開く」
を選び、プロジェクトファイル「*.dsp」を開き、ビルドしてください。
● Visual Basic の場合
Visual Basic を起動し、プロジェクトファイル「*.vbp」を開き、ビルドしてください。
● Delphi の場合
Delphi を起動し、プロジェクトファイル「*.dpr」を開き、ビルドしてください。
作成後、生成された実行ファイル*.exe を起動してください。
5.2 サンプルプログラム一覧 各サンプルプログラムの概要は、下記の様になります。
サンプルプログラム名 概要
UcntPulseCount パルスカウントモードを使用して基本的なパルスカウントを行うプ
ログラムです。
UcntFreqAvg 平均周波数測定モードを使用して、各種入力パルスの周波数測定を行
うプログラムです。
UcntCycle 周期測定モードを使用して、入力パルスの周期測定(High/Low パル
ス幅)を行うプログラムです。
UcntPhaseDiff 位相差幅測定モードを使用して、A 相・B 相の入力パルスの位相差幅
測定を行うプログラムです。
UcntTimer タイマモードを使用して、タイマカウント動作を行うプログラムで
す。
UcntFreqDivider 分周器モードを使用して入力パルスの分周出力を行うプログラムで
す。
UcntPulseGenerator パルスジェネレータモードを使用して、パルス出力を行うプログラム
です。
UcntSampling カウンタ値のサンプリングを行うプログラムです。
HScntPulseCount 高速カウンタを使用してカウントを行うプログラムです。
EncoderPulseCount エンコーダ出力の位相差パルスをカウントするプログラムです。
PulseDutySampling 入力パルスのデューティ比をサンプリングするプログラムです。
SinglePulseCount 単層パルスをカウントするサンプルプログラムです。
GPC-6320 Help for Windows
© 2004, 2014 Interface Corporation. All rights reserved.
271
第6章 ユーティリティ
以下、各ユーティリティの概要を説明します。
6.1 動作確認プログラム(IFUcntCounter) 「スタート」メニューの「プログラム」から、「Interface GPC-6320」→「IFUcntCounter」を選
択すると、動作確認用のユーティリティが起動します。
起動すると、使用可能なデバイスの一覧が表示されますので使用するデバイスを選択して「OK」
をクリックします。
<オープンダイアログ>
デバイスのオープンに成功した場合には、メインメニューと全チャンネルの制御用パネルが表示
されて下図の様な状態となります。
GPC-6320 Help for Windows
© 2004, 2014 Interface Corporation. All rights reserved.
272
<ユーティリティ画面(全体図)>
各チャンネル毎に異なるパネル上から操作を行うことが可能です。
(パネルの配置は自由に変更可能です。)
使用しないチャンネルについては、操作パネルのメニューにある「終了」を押すか、
メインメニュー上の「表示チャンネル」のチェックを外すことで削除できます。
<メインメニュー>
メインメニューでは「デバイス」→「クローズ」を選択することで現在使用中のデバイスをクロ
ーズして、新たに別のデバイスを開始することが可能です。
ユーティリティを終了したい場合には、メインメニューの「終了」を選択してください。
GPC-6320 Help for Windows
© 2004, 2014 Interface Corporation. All rights reserved.
273
カウンタ制御パネルでは、各チャンネル毎に 7 つの動作モードを切り替えて制御することが可能
です。
それぞれの動作モードは、パネル上部のタブを切り替えて選択します。
<カウンタ操作パネル(パルスカウントモード)>
パルスカウントモードでは、デフォルトで「方向付き単相パルスカウント 1 逓倍」が設定
されています。この他のモード設定についてはメニューの「設定」を選択して、詳細なモード設
定を行うことが可能です。
また、スタートボタンをクリックすることでカウントを開始します。表示パネルに現在のカウン
ト値が表示されます。(10 進数と 16 進数の切り替えが可能です)
<カウンタ操作パネル(平均周波数測定モード)>
平均周波数測定モードも基本的な使用方法は同様で、スタートボタンで周波数測定を開始します。
表示パネル下部の基準クロックの設定では、基本的な測定周期を 5 種類のクロックから選択可能
です。詳細な設定を「設定」メニューから行った場合には、Custom が選択されます。
また表示パネルの表示単位を右側のチェックボックスで設定可能です。
GPC-6320 Help for Windows
© 2004, 2014 Interface Corporation. All rights reserved.
274
<カウンタ操作パネル(周期測定モード)>
周期測定モードでは、基準クロックと表示単位の選択をパネル上で行うことが可能です。
デフォルトでは全周期の測定を行う設定となっています。
Highパルス幅測定などの詳細な設定モードの変更を行う場合には「設定」メニューを選択します。
(詳細設定を行うと、基準クロックがカスタムに設定されます。)
<カウンタ操作パネル(位相差幅測定モード)>
位相差幅測定モードでは、基準クロックと表示単位の選択をパネル上で行うことが可能です。
デフォルトでは通常の位相差幅測定を行う設定となっています。
全位相差幅測定などの詳細な設定モードの変更を行う場合には「設定」メニューを選択します。
(詳細設定を行うと、基準クロックがカスタムに設定されます。)
GPC-6320 Help for Windows
© 2004, 2014 Interface Corporation. All rights reserved.
275
<カウンタ操作パネル(タイマモード)>
タイマモードでは、カウント周期と表示形式の選択をパネル上で行うことが可能です。
スタートをクリックするとタイマを開始します。
更に詳細なクロック設定を行う場合には「設定」メニューを選択します。
(詳細設定を行うと、基準クロックがカスタムに設定されます。)
<カウンタ操作パネル(分周器モード)>
分周器モードでは、分周周期と表示形式の選択をパネル上で行うことが可能です。
スタートをクリックするとクロック分周を開始します。
パネル上の設定では、1/2、1/3、1/4、1/5、1/10 の分周設定と論理変更を行うことが可能となっ
ています。
更に詳細な分周設定や OUTB からの出力を行う場合には、「設定」メニューから設定を行ってくだ
さい。
(詳細設定を行うと、分周値がカスタムに設定されます。)
GPC-6320 Help for Windows
© 2004, 2014 Interface Corporation. All rights reserved.
276
<カウンタ操作パネル(パルスジェネレータモード)>
パルスジェネレータモードでは、基本周波数と乗数(周波数倍率)の設定と表示単位の選択をパ
ネル上で行うことが可能です。スタートをクリックするとパルス出力を開始します。
(出力パルスのデューティ比は 50%で固定となります。)
更に詳細な出力パルス設定や OUTB からの出力を行う場合には、「設定」メニューから設定を行っ
てください。
(詳細設定を行うと、カスタムに設定されます。)
また、表示パネル上には現在の出力周波数が表示されます。
<詳細設定パネル>
GPC-6320 Help for Windows
© 2004, 2014 Interface Corporation. All rights reserved.
277
各モードの毎の詳細設定を行う際には、「設定」メニューから起動する設定パネルを使用します。
カウンタ操作パネルと同じく設定モード毎に用意されたタブを選択して、各モード毎の設定を行
います。
各モードで設定可能な項目はそれぞれ機能モード設定関数の設定用引数の値に対応しています。
設定項目の意味については、各関数の詳細説明をご参照下さい。
各チャンネル毎の操作パネルは完全に独立している為、それぞれ別のモードで動作させる事も可
能です。
また、各操作パネルの下部には現在のステータス状態が表示されています。
カウントスタート・ストップとは関係なく常に、各端子の入力状態とカウンタの状態を確認する
ことが可能です。
GPC-6320 Help for Windows
© 2004, 2014 Interface Corporation. All rights reserved.
278
6.2 CardBusID 設定ユーティリティ このユーティリティは複数枚の同一型式 CardBus 製品を使用するためのものです。カード毎に異
なる ID 番号を設定します。この ID 番号は PCI インタフェースモジュールで言えば RSW 番号と同
等の意味を持ち、デバイスマネージャ、自己診断プログラムでも、RSW1 として表示されます。
【操作方法】
1. ドライバソフトウェアのインストール完了後、「コントロールパネル」の「Interface CardBus ID
Utility」を開きます。
2. 現在挿入されている弊社 CardBus 製品の情報が表示されます。左から「バス番号」、「デバイス番
号」、「ファンクション番号」、「型式」、「ID 番号」を示します。ID 番号の設定を行いたい製品を
ダブルクリックして下さい。
3. ID 番号を設定するダイアログが開きますので、コンボボックス内で設定したい ID 番号を選択し、
「Ok」ボタンをクリックします。
4. これで ID 番号の設定は完了です。
※ 設定できる ID 番号は 0h~Fh までです。
※ 変更した ID 番号をドライバに認識させるには、一度カードを抜き差しするか、システムを再
起動して下さい。
※ 設定した ID 番号が分かるように番号を記したシールをカードに貼ることをお勧めします。
GPC-6320 Help for Windows
© 2004, 2014 Interface Corporation. All rights reserved.
279
6.3 メモリサイズ設定ユーティリティ
※本ユーティリティは64bit環境専用のユーティリティです。
1.ユーティリティの起動
「スタート」メニューから、「プログラム」-「Interface GPC-6320」-「IFUcntMem」を選択し、
メモリ確保サイズ設定ユーティリティを起動します。以下の画面が表示されます。
2.インタフェースモジュールの選択
「メモリサイズ設定」-「デバイス選択」コンボボックスより、設定を行いたいデバイスを選択し
ます。選択すると、「確保サイズ(byte)」欄に各チャンネルの現在確保済のバッファサイズが表示され
ます。
3.メモリサイズ設定
「確保サイズ(byte)」欄に、各チャンネルの確保するバッファサイズを16進数で入力してください。
入力後、「設定」ボタンをクリックします。
例)サンプリングデータ(32bitカウンタ、ステータス情報あり)を 大20,000件分サンプリング。
1件当りのデータサイズは、32bit(4byte)、ステータス情報(4byte)の計8byteとなります。
よって、20,000件だと、
20000 × 8 = 160000(byte)
となり、設定値は16進数で27100となります。
GPC-6320 Help for Windows
© 2004, 2014 Interface Corporation. All rights reserved.
280
設定が失敗すると以下のようなダイアログが表示されます。
設定したいデバイスが複数ある場合、2~3の操作を繰り返してください。
4.ユーティリティプログラムの終了
設定後、「閉じる」ボタンをクリックすると、以下のダイアログが表示されます。
「OK」ボタンをクリックするとアプリケーションが終了します。
サイズ変更を反映させるには、OSの再起動を行う必要があります。OS再起動後にメモリ設定ユーティ
リティを起動すると「確保サイズ(byte)」欄に確保できたサイズが表示されています。
(注意)
ご使用の PC 環境によっては、指定したサイズで物理メモリを確保できるとは限りません。
お客様自身で 適なサイズを確保していただきますようお願い致します。
GPC-6320 Help for Windows
© 2004, 2014 Interface Corporation. All rights reserved.
281
第7章 重要な情報
保証の内容と制限
弊社は本ドキュメントに含まれるソースプログラムの実行が中断しないこと、またはその実行に
誤りが無いことを保証していません。
本製品の品質や使用に起因する、性能に起因するいかなるリスクも使用者が負うものとします。
弊社はドキュメント内の情報の正確さに万全を期しています。万一、誤記または誤植などがあっ
た場合、弊社は予告無く改訂する場合があります。ドキュメントまたはドキュメント内の情報に
起因するいかなる損害に対しても弊社は責任を負いません。
ドキュメント内の図や表は説明のためであり、ユーザ個別の応用事例により変化する場合があり
ます。
著作権、知的所有権
弊社は本製品に含まれるおよび本製品に対する権利や知的所有権を保持しています。
本製品はコンピュータ ソフトウェア、映像/音声(例えば図、文章、写真など)を含んでいます。
医療機器/器具への適用における注意
弊社の製品は人命に関わるような状況下で使用される機器に用いられる事を目的として設計、製
造された物では有りません。
弊社の製品は人体の検査などに使用するに適する信頼性を確保する事を意図された部品や検査機
器と共に設計された物では有りません。
医療機器、治療器具などの本製品の適用により、製品の故障、ユーザ、設計者の過失などにより、
損傷/損害を引き起こす場合が有ります。
複製の禁止
弊社の許可なく、本ドキュメントの全て、または一部に関わらず、複製、改変などを行うことは
できません。
責任の制限
弊社は、弊社または再販売者の予見の有無にかかわらず発生したいかなる特別損害、偶発的損害、
間接的な損害、重大な損害について、責任を負いません。
本製品(ハードウェア,ソフトウェア)のシステム組み込み、使用、ならびに本製品から得られる
結果に関する一切のリスクについては、本製品の使用者に帰属するものとします。
本製品に含まれるバグ、あるいは本製品の供給(納期遅延)、性能もしくは使用に起因する付帯的
損害もしくは間接的損害に対して、弊社に全面的に責がある場合でも、弊社はその製品に対する
改良(正常に動作する)、代品交換までとし、金銭面での賠償の責任は負わないものとしますので、
予めご了承ください。
本製品(ソフトウェアを含む)は、日本国内仕様です。本製品を日本国外で使用された場合、弊
社は一切責任を負いかねます。また、弊社は本製品に関し、海外での保守サービスおよび技術サ
ポート等は行っておりません。
GPC-6320 Help for Windows
© 2004, 2014 Interface Corporation. All rights reserved.
282
商標/登録商標
本書に掲載されている会社名、製品名は、それぞれ各社の商標または登録商標です。