チュートリアル visual basicによるad入門書正)gconfig.smplchreq(1).ulrange = ad_5v 1.4...

96
www.interface.co.jp チュートリアル Visual BasicによるAD入門書 AD

Upload: dangkien

Post on 04-Oct-2018

271 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: チュートリアル Visual BasicによるAD入門書正)gConfig.SmplChReq(1).ulRange = AD_5V 1.4 2002年10月 ・CardBus対応 ・標準モジュール、リファレンスの変更(関数の追加)

www.interface.co.jp

チュートリアル

Visual BasicによるAD入門書

AD

Page 2: チュートリアル Visual BasicによるAD入門書正)gConfig.SmplChReq(1).ulRange = AD_5V 1.4 2002年10月 ・CardBus対応 ・標準モジュール、リファレンスの変更(関数の追加)

www.interface.co.jp

商標/登録商標 本ドキュメントに掲載されている会社名,製品名は、それぞれ各社の商標または登録商標です。 保障の内容と制限 弊社はドキュメント内の情報の正確さに万全を期しています。万一、誤記または誤植等があった

場合、弊社は予告なく改訂する場合があります。ドキュメントまたはドキュメント内の情報に起

因するいかなる損害に対しても弊社は責任を負いません。 製品に含まれるバグ、あるいは製品の供給(納期遅延),性能、もしくは使用に起因する付帯的損害もしくは間接的損害に対して、弊社に全面的に責がある場合でも、弊社はその製品に対する改良

(正常に動作する)、代品交換までとし、金銭面での賠償の責任は一切負わないものとしますので、予めご了承ください。 ドキュメント内の図や表は説明のためであり、ユーザ個別の応用事例により変化する場合があり

ます。 著作権,知的所有権 弊社は本製品に含まれるおよび本製品に対する権利や知的所有権を保持しています。 本製品はコンピュータ ソフトウェア(プログラム),図,文章,写真等を含んでいます。 複製の禁止 弊社の許可なく、本製品(ドキュメント含む)の全て、または一部に関わらず、複製,改変等を行うことはできません。 責任の制限 弊社は、弊社または再販売者の予見の有無に関わらず、発生したいかなる特別損害,偶発的損害,間接的な損害,重大な損害について、責任を負いません。 補償の内容 本ドキュメントで使用している弊社製品の補償については、各製品のマニュアルを参照してくだ

さい。

本書の内容の一部または全部を、無断で転載することを禁止します。 本書の内容は、将来予告なく変更することがありますので、予めご了承ください。 © 2000, 2007 Interface Corporation. All rights reserved.

Page 3: チュートリアル Visual BasicによるAD入門書正)gConfig.SmplChReq(1).ulRange = AD_5V 1.4 2002年10月 ・CardBus対応 ・標準モジュール、リファレンスの変更(関数の追加)

TUT-0021

- 1 - Interface Corporation

改訂履歴

Ver. 年 月 改 訂 内 容 2.0 2007年12月 ・製品紹介削除。

・対応型式追加。 ・『第5章 FbiAd.DLLリファレンス』更新。 ・技術資料一覧更新。 ・フォーマット変更。

1.9 2005年6月 ・CompactPCI CPZシリーズ, CardBus CSIシリーズ対応 ・ADボードのインストール変更 ・技術資料一覧更新

1.8 2004年8月 ・対応型式を追加 ・標準モジュール、リファレンスの修正 ・インストール説明 Windows XP/2000へ変更 ・技術資料一覧更新

1.7 2003年8月 ・対応型式を追加 ・標準モジュール、リファレンスの変更(関数の追加)

1.6 2003年5月 ・対応型式を追加 1.5 2003年3月 誤記修正(P52)

(誤)gConfig.Config.SmplChReq(0).ulRange = AD_5V (正)gConfig.SmplChReq(0).ulRange = AD_5V (誤)gConfig.Config.SmplChReq(1).ulRange = AD_5V (正)gConfig.SmplChReq(1).ulRange = AD_5V

1.4 2002年10月 ・CardBus対応 ・標準モジュール、リファレンスの変更(関数の追加)

1.3 2002年6月 ・CompactPCI対応 ・4-4 同期化処理の追加 ・4-2, 4-3のサンプルプログラムを2チャンネル対応に変更 ・標準モジュール、リファレンスの変更(関数の追加)

1.2 2000年11月 ・発売予定の製品を変更 ・対応型式追加 ・P.3 図1-2追加 ・基本フォーム作成手順を具体化 ・アナログ入力[2]のプログラムコード変更 (FbiAd.DLLリファレンスのついて) AdSyncSampling関数の追加(P.54) fnConv関数の追加(P.62) CallBackProc関数の追加(P.62)

1.1 2000年6月 P.38 (誤)pX=I * (pXMax / numSampCount) (正)pX=I * (pXMax / gConfig.ulSmplNum)

1.0 2000年6月 新規作成

本チュートリアルをご使用の際は、必ず各製品型式の最新のドキュメント(USER'S MANUAL, Help)を併せて参照してください。また、最新のドライバソフトウェアをご使用ください。 USER'S MANUAL, ドライバソフトウェアは弊社Web site(www.interface.co.jp)からダウンロードできます。(Helpはドライバソフトウェアに含まれています)

Page 4: チュートリアル Visual BasicによるAD入門書正)gConfig.SmplChReq(1).ulRange = AD_5V 1.4 2002年10月 ・CardBus対応 ・標準モジュール、リファレンスの変更(関数の追加)

TUT-0021

Interface Corporation - 2 -

目 次

第 1章 アナログ出力概要 6

1.1 A/Dコンバータ .............................................................................................................................. 6 1.2 A/Dコンバータの用途 .................................................................................................................. 7 1.3 分解能と精度 ................................................................................................................................. 7 1.4 シングルエンド入力と差動入力................................................................................................. 9 1.5 バイポーラとユニポーラ........................................................................................................... 10 1.6 変換時間とサンプリング周波数............................................................................................... 10 1.7 標本化定理 ................................................................................................................................... 11 1.8 マルチADC方式とマルチプレクサ方式 .................................................................................. 11 1.9 データ転送方式 ........................................................................................................................... 13 1.10 アナログ入力製品を使用時の指針 ........................................................................................ 15

第 2章 AD製品のインストール 16

2.1 コンピュータへの設置方法....................................................................................................... 16

第 3章 ソフトウェアのインストール 17

3.1 Windows用.................................................................................................................................... 17 3.1.1 デバイスドライバのインストール................................................................................ 18 ■Windows Vistaをご使用の場合 ....................................................................................... 18 ■Windows XP Embedded, Windows XP, Windows Server 2003をご使用の場合.......... 21 ■Windows 2000をご使用の場合 ....................................................................................... 23

3.2 ソフトウェアセットアップ....................................................................................................... 24

第 4章 Visual BasicによるAD制御 25

4.1 ピンアサインメント................................................................................................................... 26 4.2 DLLプロシージャ呼び出しによるプログラミング(概要).................................................... 29 4.3 AD製品制御概略 ......................................................................................................................... 29

第 5章 チュートリアル 30

5.1 アナログ入力[1] ..................................................................................................................... 31 Step 1.基本フォーム作成 ............................................................................................................. 31 Step 2.DLLプロシージャ宣言と構造体定義 ............................................................................. 33 Step 3.初期化処理と終了処理 ..................................................................................................... 43 Step 4.サンプリング ..................................................................................................................... 46

5.2 アナログ入力[2] ..................................................................................................................... 48 Step 1.基本フォーム作成 ............................................................................................................. 48 Step 2.サンプリング ..................................................................................................................... 49

5.3 ファイル出力 ............................................................................................................................... 53 5.4 同期化処理 ................................................................................................................................... 55

Page 5: チュートリアル Visual BasicによるAD入門書正)gConfig.SmplChReq(1).ulRange = AD_5V 1.4 2002年10月 ・CardBus対応 ・標準モジュール、リファレンスの変更(関数の追加)

TUT-0021

- 3 - Interface Corporation

第 6章 DLLリファレンス 61

6.1 FbiAd.DLL関数リファレンス.................................................................................................... 61 6.1.1 DLL関数一覧 1 ................................................................................................................. 61 6.1.2 DLL関数一覧 2 ................................................................................................................. 63 6.1.3 DLL関数一覧 3 ................................................................................................................. 65 6.1.4 DLL関数一覧 4 ................................................................................................................. 67 6.1.5 DLL関数一覧 5 ................................................................................................................. 69 6.1.6 DLL関数一覧 6 ................................................................................................................. 71 6.1.7 DLL関数一覧 7 ................................................................................................................. 73 6.1.8 DLL関数一覧 8 ................................................................................................................. 75 6.1.9 DLL関数一覧 9 ................................................................................................................. 77 6.1.10 DLL関数一覧 10 ............................................................................................................. 79 6.1.11 DLL関数一覧 11 ............................................................................................................. 81 6.1.12 DLL関数一覧 12 ............................................................................................................. 82 6.1.13 DLL関数一覧 13 ............................................................................................................. 84 6.1.14 DLL関数一覧 14 ............................................................................................................. 86 6.1.15 DLL関数一覧 15 ............................................................................................................. 88

技術資料紹介 90

Page 6: チュートリアル Visual BasicによるAD入門書正)gConfig.SmplChReq(1).ulRange = AD_5V 1.4 2002年10月 ・CardBus対応 ・標準モジュール、リファレンスの変更(関数の追加)

TUT-0021

Interface Corporation - 4 -

はじめに

平素は格別のご高配を賜り、厚く御礼申し上げます。本冊子は、初めて弊社AD製品を利用し、Visual Basicにて制御プログラムの作成を行われる方を対象に、製品の導入からプログラム作成までに関し説明したものです。プログラム初心者の方が弊社製品をご利用頂き、またVisual Basicにてプログラムの開発を行われる際の手助けになればと考えております。 記述する内容に関しましては、基本的なことにとどまっております。 また、弊社Web site(www.interface.co.jp)ではFAQ, 製品マニュアル, および本チュートリアル記載のサンプルプログラムのソース(BPC-0809)の公開を行っておりますので、こちらも併せてご覧頂けますと、より一層ご理解を深めて頂けるものと思います。

注意事項

本冊子では、使用する環境をWindows Vista/XP/XP Embedded/Server 2003/2000+Visual Basicを想定し、記載しております。 Windows NT/Me/98/95をご利用の場合、インタフェースモジュールのインストール方法が本冊子に記載した内容とは異なりますのでご注意ください。こちらに関しましては、弊社製品マニュアル

をご確認ください。 対応OSはインタフェースモジュール型式によって異なりますので、対応ソフトウェア(GPC-3100)のReadmeもしくはHelpでご確認ください。

Page 7: チュートリアル Visual BasicによるAD入門書正)gConfig.SmplChReq(1).ulRange = AD_5V 1.4 2002年10月 ・CardBus対応 ・標準モジュール、リファレンスの変更(関数の追加)

TUT-0021

- 5 - Interface Corporation

対象環境 本チュートリアルは以下の制約事項があります。 対象型式 (PCI)

PCI-3120 PCI-3135 PCI-3161 PCI-3166 PCI-3171A PCI-3174 PCI-3177C PCI-3180 PCI-320416 PCI-3523A PCI-360116

PCI-3126 PCI-3153 PCI-3163 PCI-3168C PCI-3172A PCI-3175 PCI-3178 PCI-320112 PCI-3521 PCI-3525 PCI-360216

PCI-3133 PCI-3155 PCI-3165 PCI-3170A PCI-3173A PCI-3176 PCI-3179 PCI-320412 PCI-3522A PCI-360112

対象型式 (CPZ)

CPZ-3120A CPZ-3126 CPZ-3165 CPZ-3170 CPZ-3173 CPZ-3177 CPZ-3180A CPZ-3182 CPZ-320416 CPZ-3523

CPZ-3120B CPZ-3133 CPZ-3167 CPZ-3171 CPZ-3174 CPZ-3178 CPZ-3180B CPZ-3183 CPZ-3521 CPZ-360112

CPZ-3120C CPZ-3135 CPZ-3168 CPZ-3172 CPZ-3175 CPZ-3179 CPZ-3180C CPZ-320412 CPZ-3522 CPZ-360116

対象型式 (CTP)

CTP-3120A CTP-3126 CTP-3165 CTP-3170 CTP-3173 CTP-3177 CTP-3180A CTP-3182 CTP-320416 CTP-3523 CTP-360116

CTP-3120B CTP-3133 CTP-3167 CTP-3171 CTP-3174 CTP-3178 CTP-3180B CTP-3183 CTP-3521 CTP-3525

CTP-3120C CTP-3135 CTP-3168 CTP-3172 CTP-3175 CTP-3179 CTP-3180C CTP-320412 CTP-3522 CTP-360112

対象型式 (CSI)

CSI-320110 CSI-320412 CSI-360116

CSI-320212 CSI-320416

CSI-320312 CSI-360112

対象型式 (PEX)

PEX-320724 PEX-321116 PEX-321416

PEX-320910 PEX-321216

PEX-321012 PEX-321316

対象型式 (LPC)

LPC-320724 LPC-321116 LPC-321416

LPC-320910 LPC-321216

LPC-321012 LPC-321316

対象ユーザ 制御用電子機器および、コンピュータ等に関して基本的な知識を有している方。

※ 本冊子は上記の弊社製品型式のみに対応しています。 製品の詳細は弊社Web siteを参照してください。

Page 8: チュートリアル Visual BasicによるAD入門書正)gConfig.SmplChReq(1).ulRange = AD_5V 1.4 2002年10月 ・CardBus対応 ・標準モジュール、リファレンスの変更(関数の追加)

TUT-0021

Interface Corporation - 6 -

第1章 アナログ出力概要

これまでに、アナログ(analog)という言葉を一度は耳にしたことがあると思います。 ではアナログとは何でしょう。しばしばデジタルという言葉と対比し使われますが、デジタルが

「1つ2つと区切って数えられる」のに対し、アナログとは「連続した量で、1つ2つと区切って数えられない」ものを言います。 デジタル時計とアナログ時計を例に挙げてみます。

デジタル時計では、「1:53」と単純に読み取ればよいわけですが、アナログ時計で仮に小数点以下を読み取っていくとしたらいかがでしょう。「1:53」, 「1:53.1」, 「1:53.124」, 「1:53.1245……..」と、きりがありません。

1.1 A/Dコンバータ

私たちが普段の生活で目や耳にする「光」, 「音」の情報は全てアナログ信号です。 今のコンピュータでは音楽や映像の録音や録画ができますが、本来デジタル信号しか処理できな

いコンピュータが、一体どうやってこのようなアナログ信号を取り扱っているのでしょうか? 実は、ある段階でアナログ信号をデジタル信号に変換し、コンピュータに処理させているのです。

これをAD変換といいます。 アナログ信号からデジタル信号に変換する装置を、A/Dコンバータと言います。A/Dコンバータとは、Analog to Digital Converterの略で、アナログ・デジタル変換器と訳され、これによりアナログ信号をデジタル信号に変換することができるのです。 本冊子で紹介するアナログ入力製品もA/Dコンバータが搭載された、インタフェースモジュールです。 「光」, 「音」, 「熱」等の変化は、専用の「センサ」を使用することで、電圧の変化として捉えることができます。この電圧はアナログ信号となり、A/Dコンバータによってデジタル信号に変換され、ハードディスク等の記録媒体に記録されます。

Page 9: チュートリアル Visual BasicによるAD入門書正)gConfig.SmplChReq(1).ulRange = AD_5V 1.4 2002年10月 ・CardBus対応 ・標準モジュール、リファレンスの変更(関数の追加)

TUT-0021

- 7 - Interface Corporation

1.2 A/Dコンバータの用途

私たちの身の回りにある、全ての事象はアナログ的な情報として成り立っています。しかし、コ

ンピュータは直接アナログ情報を扱うことができないため、A/Dコンバータでデジタル値に変換して、処理を行います。 A/Dコンバータを使った主な用途としては、 ・ 音声入力/音声認識 ・ 画像入力/画像認識 ・ 温度/湿度測定 ・ レーダー ・ 電圧/電流の計測

等があります。

1.3 分解能と精度

アナログをデジタルに変換することは、連続した量を不連続な値に変換することを意味します。 ここで、0~1.0Vの電圧値を2ビットのデジタル値に変換するとします。 2ビットで表現できる値は、「00」「01」「10」「11」の4つとなります。従って、電圧をアナログ量からデジタル量に変換するには、これら4つのデジタル値のうちいずれか1つに変換しなければなりません。つまり、0~1.0Vまでの範囲を4で割った値(=0.25V)がデジタル値1つ分の幅となります。 2つの電圧値V1とV2がこの幅(0.25V)を越えると、デジタル値が変化しV1とV2の差が区別できるようになります。

V1 V2 V1V2

アナログ値 アナログ値

デジタル値 デジタル値

0.25V 0.25V

2 つのアナログ値が0.25V範囲外

デジタル値に差が出る

2つのアナログ値が 0.25V範囲内

デジタル値が同じ

Page 10: チュートリアル Visual BasicによるAD入門書正)gConfig.SmplChReq(1).ulRange = AD_5V 1.4 2002年10月 ・CardBus対応 ・標準モジュール、リファレンスの変更(関数の追加)

TUT-0021

Interface Corporation - 8 -

この区別できる電圧の範囲、言い換えれば最小単位の1ビットに対するアナログ量を分解能といい、LSB(Least Significant Bit)として表現されます。一般的には分解能nビットといった具合に表現されています。入力電圧が0~5Vで分解能12ビットの時は、

5 ÷ 4096 ≒ 0.00122(V)

が、1LSBとなります。 AD変換されたデジタル値は、1LSBを単位とした離散値になります。このように、それ以上分割できない最小の単位(この場合LSB)に分割することを量子化といいます。 また、量子化することによって、連続した量が不連続な値になる際、誤差が必ず含まれてしまい

ます。この誤差のことを量子化誤差といいます。 上記の場合、精度が±1LSBならば、-1.22mV~+1.22mVの範囲で誤差があることを示しています。したがって、誤差がもっとも大きい場合、測定値+1.22mVまたは測定値-1.22mVとなります。

-1.22mV +1.22mV

最大誤差

測定値

分解能をnビットと表現する場合、本来の分解能はフルスケール(FSR:Full Scale Range)を2のビット数乗で割った値となります。入力電圧が0~+5Vの場合はFSR=5、入力電圧が-5V~+5Vの場合はFSR=10となります。

n

FSRLSB2

1 =

12ビットのAD変換では、最小値0, 最大値4095(FFFh)となり、精度±0.04%FSRの場合、入力電圧が0~+10Vならば、FSRの±0.04%、つまり-0.004V~+0.004Vの範囲内で誤差があることを意味します。

★レンジの上限値 変換データのデジタル値の最大値に相当する電圧は、レンジの上限になりません。 例えば、12ビット分解能,±5Vレンジの時は4095が最大値となり、それに相当する電圧は 10÷4096×4095-5≒4.9975V となります。

★量子化誤差 高分解能のA/Dコンバータを使えば、より高精度のAD変換が可能です。 入力電圧が0~+5Vの時、12ビット分解能と16ビット分解能では、以下の違いが生じます。 12ビット分解能:5÷4096 ≒0.00122V(1.22mV) 16ビット分解能:5÷65536≒0.00007629V(76μV) ただ、高分解能のA/Dコンバータは比例して高価なので、計測に要求される精度に合わせて選択する必要があります。

Page 11: チュートリアル Visual BasicによるAD入門書正)gConfig.SmplChReq(1).ulRange = AD_5V 1.4 2002年10月 ・CardBus対応 ・標準モジュール、リファレンスの変更(関数の追加)

TUT-0021

- 9 - Interface Corporation

1.4 シングルエンド入力と差動入力

シングルエンド入力は、もっとも一般的な入力方式です。 信号源を、グランド線と信号線の2本の線で入力し、グランド線と信号線間の電圧が入力電圧としてAD変換されます。 これに対し、差動入力は信号源を3本の信号線で接続し入力する方式です。3本の信号線はそれぞれグランド線, 信号線(+), 信号線(-)です。入力するデータは、グランド線と信号線(+)間の電圧(A)とグランド線と信号線(-)間の電圧(B)の差、つまりA-Bの値が入力電圧としてAD変換されます。 アナログ信号はノイズにより信号そのものが変化します。このような場合、差動入力を行うこと

で、同相ノイズの影響を受けにくくすることができます。一般的にノイズは、グランドに対して

影響することが多く、シングルエンド入力ではデータに影響がでますが、差動入力についてはA, Bの電圧は影響を受けますが、A-Bの値は、ノイズ分が相殺され影響を受けていないデータが得られます。差動入力を図にすると下図のようになります。

ノイズが加わっても… ノイズの影響を差し引いた

データが得られるノイズ

入力A(+)

入力B(-)

グランド

入力A-Bの差がデータ

差動入力の問題点は、入力に使用する信号線が、シングルエンド入力方式が2本の信号線で構成できるのに対して、3本の信号線を必要とすることです。 このため、 ・入力に使用するチャンネル数を多く確保したい場合は、シングルエンド入力 ・ノイズの影響をなるべく排したい場合は、差動入力 といった具合に、目的に応じて使い分けます。

Page 12: チュートリアル Visual BasicによるAD入門書正)gConfig.SmplChReq(1).ulRange = AD_5V 1.4 2002年10月 ・CardBus対応 ・標準モジュール、リファレンスの変更(関数の追加)

TUT-0021

Interface Corporation - 10 -

1.5 バイポーラとユニポーラ

アナログ入力は、入力電圧域の違いにより「ユニポーラ(unipolar)」と「バイポーラ(bipolar)」に区別することができます。ポーラとは「極」を意味し、それぞれ「単極性」, 「双極性」と訳されます。 電位差(最大入力電圧-最小入力電圧)が5Vの場合、ユニポーラでは最小入力電圧0Vから最大入力電圧+5Vの入力を行います。一方、バイポーラでは0Vを中心に最小入力電圧-2.5Vから最大入力電圧+2.5Vの出力を行います。

0

0.5

1

1.5

2

2.5

3

3.5

4

4.5

5

-2.5

-2

-1.5

-1

-0.5

0

0.5

1

1.5

2

2.5

ユニポーラ バイポーラ

電圧[V]電圧[V]

時間→

時間→

1.6 変換時間とサンプリング周波数

A/Dコンバータを用いて、アナログ信号をデジタル信号に変換する時、様々な方式を用いた回路で変換が行われます。 (変換には、逐次変換型, 積分型, 並列型等と呼ばれる変換方式が用いられます) アナログ信号をデジタル信号に変換するには、ある一定の時間が必要です。 カタログやマニュアルの仕様等に記載されている5μsや0.2μs等の値は、A/Dコンバータがデジタル信号に変換するために必要な時間を指します。 変換時間が5μsとは、A/Dコンバータがアナログ信号からデジタル信号への変換を開始し、その結果が得られるまでに、5μsかかることを意味します。

★変換時間とデータの取得にかかる時間の違い A/Dコンバータが変換にかかる時間とコンピュータのプログラムが、そのデータを受け取る時間は、同じではありません。 変換時間とは、インタフェースモジュール上のA/Dコンバータが変換結果を算出する時間です。 実際には、そこからデータがPCI/CompactPCIバスのバス信号線を経由しCPUを通して、データを格納する領域に値が書き込まれるまで、様々な要因が複雑に絡みます。 (それは、OS, 割込みのオーバーヘッド, メモリ, CPUの速度等です)

これとは別の速度指標として、「サンプリング周波数」という用語があります。 サンプリング周波数とは、1秒間に何回AD変換するかを示します。単位はHzで表されます。 例えば、サンプリング周波数500Hzとは、1秒間に500回周期的にAD変換させることを意味します。 お客様がデバイスドライバに対して指示する速度指標は、通常こちらが使われます。

Page 13: チュートリアル Visual BasicによるAD入門書正)gConfig.SmplChReq(1).ulRange = AD_5V 1.4 2002年10月 ・CardBus対応 ・標準モジュール、リファレンスの変更(関数の追加)

TUT-0021

- 11 - Interface Corporation

1.7 標本化定理

下図は、9kHzの入力に対し10kHzでサンプリングした例です。 サンプリングした点を繋いでいくと、予想外の信号が現れてきます。 この予想外の擬似信号を「折り返し信号」と言います。

このように、音声等の入力信号に対し正確にサンプリング(標本化)を行うためには、入力信号の周波数に対して、2倍以上の周波数でサンプリングする必要があります。 これを、標本化定理と言います。

1.8 マルチADC方式とマルチプレクサ方式

複数チャンネルの入力信号を取り扱う方式として、マルチプレクサ方式とマルチADC(同時変換)方式があります。 マルチADC方式とは、1つのチャンネルに対して、1つのA/Dコンバータが対に対応している方式です。

チャンネル 1

AIN1

COM1

A/D

コンバータ

チャンネル 2

AIN2

COM2

A/D

コンバータ

チャンネル 3

AIN3

COM3

A/D

コンバータ

Page 14: チュートリアル Visual BasicによるAD入門書正)gConfig.SmplChReq(1).ulRange = AD_5V 1.4 2002年10月 ・CardBus対応 ・標準モジュール、リファレンスの変更(関数の追加)

TUT-0021

Interface Corporation - 12 -

対して、マルチプレクサ方式とは、複数のチャンネルが1つのA/Dコンバータをマルチプレクサという切り替えスイッチで共有する方式です。

チャンネル 1

AIN1

COM1

A/D

コンバータチャンネル 2

AIN2

COM2

チャンネル 3

AIN3

COM3

マ ル チ プ レ ク サ

このため、複数のチャンネルをサンプリングすると、マルチADC方式とマルチプレクサ方式で実際のAD変換の時間にズレが生じます。

マルチ ADC方式

マルチプレクサ方式

チャンネル 1

チャンネル 2

チャンネル 3

チャンネル 1

チャンネル 2

チャンネル 3

サンプリング サンプリング

チャンネル 1

チャンネル 2

チャンネル 3

チャンネル 1

チャンネル 2

チャンネル 3

上図は、マルチADC方式とマルチプレクサ方式で、AD変換のタイミングを表したものです。 マルチADC方式では、各チャンネルに対してA/Dコンバータがあるため、同時にAD変換します。対してマルチプレクサ方式では、複数のチャンネルをマルチプレクサによって切り替えながら使

用するため、AD変換の開始時刻に差が生じます。 両方式のメリット/デメリットを示します。

マルチADC方式 マルチプレクサ方式 メリット 各チャンネルのAD変換に時間的

なズレは生じません。 A/Dコンバータが1つで済むため、比較的安価に購入できます。

デメリット A/Dコンバータが複数搭載されるため、どうしても高価になります。

各チャンネルのAD変換に時間的なズレが生じます。

マルチプレクサ方式では時間的なズレは生じますが、位相は保たれています。 サンプリングの同時性を重視したい場合はマルチADC、複数信号の同時性は重要視されないならマルチプレクサ、という風に選択すると良いでしょう。

Page 15: チュートリアル Visual BasicによるAD入門書正)gConfig.SmplChReq(1).ulRange = AD_5V 1.4 2002年10月 ・CardBus対応 ・標準モジュール、リファレンスの変更(関数の追加)

TUT-0021

- 13 - Interface Corporation

1.9 データ転送方式

アナログ信号からデジタル信号にAD変換された情報は、何らかの形でコンピュータ内のCPUに取り込む必要があります。 このCPUが、AD変換された情報にアクセスする方式にも様々なやり方があります。

方 式 内 容

I/O方式 AD変換された情報は、CPUがI/Oポートを経由して1つずつアクセスします。

A/D

コンバータ

データ CPU

データ取得

AD変換されたデータは、次のサンプリングが開始される前に、そのデータを取り込まないと、次のデータで上書きされてしまいます。 システム構成は比較的簡素なため、一般に安価です。

FIFO方式 AD変換された情報は、一旦インタフェースモジュール内のFIFOと呼ばれる バッファ領域に格納されます。 CPUは、このFIFOバッファにアクセスして、情報を取り出します。

A/D

コンバータ

データ

CPU

データ取得データ

データ

FIFOバッファ

AD変換されたデータは、FIFOバッファに溜め込まれるため、バッファがオーバフローしない限り、次のAD変換データに上書きされてしまうことはありません。 このため、高速なサンプリングを行うのに向いています。 ただし、システム構成は複雑になるため、I/O方式に比べて高価になります。

Page 16: チュートリアル Visual BasicによるAD入門書正)gConfig.SmplChReq(1).ulRange = AD_5V 1.4 2002年10月 ・CardBus対応 ・標準モジュール、リファレンスの変更(関数の追加)

TUT-0021

Interface Corporation - 14 -

方 式 内 容

メモリ方式 AD変換された情報は、インタフェースモジュール内のメモリ領域に書き込まれます。 CPUは、このメモリ領域にアクセスして、データを取り出します。 (コンピュータのメモリ空間に空いた窓から、インタフェースモジュールのメモリにアクセスするイメージです)

A/D

コンバータ

データ

CPU

データ取得

データ

データ

メモリ

コンピュータのメモリ空間 A/Dコンバータとメモリは直結されており、AD変換されたデータが高速に書き込まれていきます。 このため、非常に高速なサンプリングを行うのに向いています。 ただし、システム構成は複雑になるため、高価になります。

バスマスタ方式 AD変換された情報は、コンピュータ内の指定されたメモリ領域に対して書き込まれます。 CPUは、このメモリ領域にアクセスして、データを取り出します。

A/D

コンバータ

データ

データ

データ

CPU

データ取得

特定のメモリ領域

コンピュータのメモリ空間 AD変換されたデータを書き込むメモリは、コンピュータのメモリに対して行われるため、コンピュータのメモリを消費します。 しかし、メモリ方式と異なり、コンピュータのメモリが多ければ、それだけ多くのバッファを確保できます。 (メモリ方式では、インタフェースモジュール上のメモリに左右されます) メモリ方式同様、非常に高速なサンプリングを行うのに向いています。 ただし、システム構成は複雑になるため、高価になります。

Page 17: チュートリアル Visual BasicによるAD入門書正)gConfig.SmplChReq(1).ulRange = AD_5V 1.4 2002年10月 ・CardBus対応 ・標準モジュール、リファレンスの変更(関数の追加)

TUT-0021

- 15 - Interface Corporation

1.10 アナログ入力製品を使用時の指針

アナログ入力製品を使って計測を行う際一番重要なのは、ノイズ等の外的要因を受けずに安定し

て計測できる環境を構築することです。 計測に望ましい環境の構築の指針を幾つか提示します。 ・コンピュータあるいはユニットの電源を安定させる。 アナログ入力製品は、コンピュータ/ユニットから電源を供給されています。 従って、コンピュータ/ユニットの電源が安定すれば、自ずと測定環境も改善されます。 例えば、電源を供給する個所を主電源の近くに配置し、タコ足状態のタップに接続しない、あ

るいはノイズフィルタ付きのUPS等の装置を介して電源を供給する等、3端子コンセントを使用し、グランドをアースする等の対策があります。

・計測環境と入力源とのグランドを同電位にする。 アナログ入力製品のグランドと入力源のグランドをケーブル等で接続し、同電位状態とします。

・絶縁タイプのインタフェースモジュールを使用する。 バス絶縁タイプと呼ばれるインタフェースモジュールを使用します。 インタフェースモジュール上のアナログ回路とデジタル回路が絶縁されているため、デジタル

ノイズがアナログ回路に混入するのを防ぐことができるので、計測に悪影響を及ぼす恐れを低

減できます。 ・入力方式を差動入力にする。 差動方式を採用することで、ノイズによる計測の悪影響を抑えることが可能です。 高精度な計測を行う時、一番推奨できる入力方式です。

・アナログ入力製品と信号源との間を短くする。 短いケーブルを使用します。長いケーブルでアナログ入力製品と信号源を接続すると、それだ

け外部からノイズが混入する恐れが高まります。

アナログ信号の取り扱いには、オシロスコープ等の計測機器を扱うのと同程度の慎重さが求めら

れます。 環境によっては、計測精度は大きく異なりますので、これらの事項を参考に環境を整えてくださ

い。

Page 18: チュートリアル Visual BasicによるAD入門書正)gConfig.SmplChReq(1).ulRange = AD_5V 1.4 2002年10月 ・CardBus対応 ・標準モジュール、リファレンスの変更(関数の追加)

TUT-0021

Interface Corporation - 16 -

第2章 AD製品のインストール

作成するアプリケーションからアナログ入力制御を行う場合、当然のことながらアプリケーショ

ンを実行するコンピュータにAD製品が組み込まれていなければなりません。 ここではWindowsVista/XP Embedded/XP/Server 2003/2000環境における、弊社AD製品のインストール方法を記載します。Windows NT/Me/98/95ではインストール方法がここに記載する内容とは異なります。こちらに関しては、製品マニュアルまたはオンラインドキュメントをご確認ください。

2.1 コンピュータへの設置方法

※ 写真は実物と異なる場合があります。

①コンピュータ本体の電源が“OFF”であることを確認し、電源ケーブルをACコンセントから外します。その後、外装カバー, スロットカバーを外します。

②拡張用スロットへインタフェースモジュールを差し込みます。

注意!

製品は正しい向きに実装してください。間違った向きに実装した場合、コンピュータ, インタ フェースモジュールを破損する恐れがあります。

③パネルをコンピュータ本体とビス留めしてください。

④本体へ外装カバーを元通り取り付け、電源ケーブルをACコンセントに接続します。その後、コンピュータを起動します。

以上でインタフェースモジュールの設置は完了です。次にドライバのインストールを行います。

基板の左右の端に力を入れ、カツンとショックがあるまで押し込む。

インタフェースモジュール

コンピュータ

PCIコネクタ

金メッキ端子がコネクタに隠れていることを確認する。

ビス留め

Page 19: チュートリアル Visual BasicによるAD入門書正)gConfig.SmplChReq(1).ulRange = AD_5V 1.4 2002年10月 ・CardBus対応 ・標準モジュール、リファレンスの変更(関数の追加)

TUT-0021

- 17 - Interface Corporation

第3章 ソフトウェアのインストール

本製品を使用するためには、デバイスドライバをインストールする必要があります。

お知らせ

デバイスドライバは、弊社Web siteよりダウンロード(無料)できます。 ダウンロードするためには、ユーザID登録が必要になります。

DLL関数, サンプルプログラム, ユーティリティの使用方法等につきましては、ソフトウェア付

属のHelpを参照してください。

3.1 Windows用

弊社ソフトウェアは、次のように構成されています。 • ドライバディスク デバイスドライバが入っています。 ダウンロード方法 >> 弊社Web siteよりご使用のOSに対応しているのDriver Diskをダウンロードします。 >> ダウンロードしたプログラムを実行すると、フォルダが作成されます。

※ 詳細は、『18ページ 3.1.1 デバイスドライバのインストール』を参照してください。

• ユーティリティディスク Readme, Help, サンプルプログラム, ユーティリティ等が入っています。 ダウンロード方法 >> 弊社Web siteよりのUtility Diskをダウンロードします。 >> ダウンロードしたプログラムを実行すると、「SETUP」フォルダが作成されます。 >>「SETUP」フォルダ内のSETUP.EXEを実行してください。プログラムが起動しインストール

が開始されます。

Page 20: チュートリアル Visual BasicによるAD入門書正)gConfig.SmplChReq(1).ulRange = AD_5V 1.4 2002年10月 ・CardBus対応 ・標準モジュール、リファレンスの変更(関数の追加)

TUT-0021

Interface Corporation - 18 -

3.1.1 デバイスドライバのインストール

■Windows Vistaをご使用の場合

Administratorsのグループに所属しているユーザが、インストールを行ってください。 ※ 「続行するにはあなたの許可が必要です」と警告が表示されることがあります。その場合、 「続行」をクリックしてください。

①Windows Vistaが起動すると、「新しいハードウェアが見つかりました」が表示されます。

②「ドライバソフトウェアを検索してインストールします(推奨)」をクリックします。

③「オンラインで検索しません」をクリックします。

Page 21: チュートリアル Visual BasicによるAD入門書正)gConfig.SmplChReq(1).ulRange = AD_5V 1.4 2002年10月 ・CardBus対応 ・標準モジュール、リファレンスの変更(関数の追加)

TUT-0021

- 19 - Interface Corporation

④「ディスクはありません。他の方法を試します」をクリックします。

⑤「コンピュータを参照してドライバソフトウェアを検索します(上級)」をクリックします。

⑥ドライバ保存先の「¥Win2000」フォルダを指定し、「次へ」をクリックします。

Page 22: チュートリアル Visual BasicによるAD入門書正)gConfig.SmplChReq(1).ulRange = AD_5V 1.4 2002年10月 ・CardBus対応 ・標準モジュール、リファレンスの変更(関数の追加)

TUT-0021

Interface Corporation - 20 -

⑦ファイルのコピーが始まります。

※ 「ドライバソフトウェアの発行元を検証できません」と表示された場合、「このドライバ ソフトウェアをインストールします」をクリックします。

⑧インストールが完了した旨のダイアログボックスが表示されるので、「閉じる」ボタンをクリックします。

以上で、Windows Vista用のドライバインストールは完了です。

Page 23: チュートリアル Visual BasicによるAD入門書正)gConfig.SmplChReq(1).ulRange = AD_5V 1.4 2002年10月 ・CardBus対応 ・標準モジュール、リファレンスの変更(関数の追加)

TUT-0021

- 21 - Interface Corporation

■Windows XP Embedded, Windows XP, Windows Server 2003をご使用の場合

Administratorsのグループに所属しているユーザが、インストールを行ってください。 ※ Windows XP Embeddedは、Windows XPと同様の手順で、ドライバのインストールができます。

(ただし、OSイメージにデバイスの検出に必要なコンポーネントが含まれている必要があります。)

①Windows XP Embedded, Windows XP, Windows Server 2003が起動すると、「新しいハードウェアの検出ウィザード」が表示されます。

②「一覧または特定の場所からインストールする(詳細)」が選択されていることを確認し、「次へ」をクリックします。

③「次の場所で最適のドライバを検索する」を選択し、「次の場所を含める」にチェックをつけ、

ドライバ保存先の「¥Win2000」フォルダを指定し、「次へ」をクリックします。

ドライバ保存先の「¥Win2000」フォルダを指定します。

④ファイルのコピーが始まります。

⑤インストールが完了した旨のダイアログボックスが表示されるので、「完了」ボタンをクリッ

クします。

Page 24: チュートリアル Visual BasicによるAD入門書正)gConfig.SmplChReq(1).ulRange = AD_5V 1.4 2002年10月 ・CardBus対応 ・標準モジュール、リファレンスの変更(関数の追加)

TUT-0021

Interface Corporation - 22 -

以上で、Windows XP Embedded, Windows XP, Windows Server 2003用のデバイスドライバの インストールは完了です。デバイスドライバのインストール完了後以降は、システム起動時に前

頁②のように「新しいハードウェアの検索ウィザード」が起動することはありません。デバイス

ドライバのインストールが完了したら、ユーティリティディスクのインストールを行ってくださ

い。

• Windows XP Embedded 用ハードウェア情報ファイルのインポートをする場合 ・ドライバダウンロード方法 ①弊社Web siteよりのDriver Disk [Windows Vista, XPe, XP, 2003, 2000]をダウンロードします。

②ダウンロードしたプログラムを実行すると、「Win2000」フォルダが作成されます。

・ドライバインストール方法 ①Windows XP Embedded 開発環境の Component Database Manager を起動します。

②弊社製品のハードウェア情報ファイルをインポートします。作成した「Win2000」フォルダ内の拡張子がSLDのファイルを、画面の指示に従ってインポートしてください。

③以上で、ハードウェア情報のインポートは完了です。

Page 25: チュートリアル Visual BasicによるAD入門書正)gConfig.SmplChReq(1).ulRange = AD_5V 1.4 2002年10月 ・CardBus対応 ・標準モジュール、リファレンスの変更(関数の追加)

TUT-0021

- 23 - Interface Corporation

■Windows 2000をご使用の場合

Administratorsのグループに所属しているユーザが、インストールを行ってください。 ①Windows 2000が起動すると、「新しいハードウェアの検出ウィザード」が表示されるので、「次へ」ボタンをクリックします。

②「デバイスドライバに最適なドライバを検索する(推奨)」を選択し、「次へ」ボタンをクリックします。

③「検索場所のオプション」で「場所を指定」を選択し、「次へ」ボタンをクリックします。

④「参照」ボタンをクリックし、「製造元のファイルのコピー元」にドライバ保存先の「¥Win2000」フォルダを指定します。その後、「OK」ボタンをクリックします。

⑤デバイスドライバが見つかった旨のダイアログボックスが表示されるので、「次へ」ボタンを

クリックします。 ⑥ファイルのコピーが始まります。 ⑦インストールが完了した旨のダイアログボックスが表示されるので、「完了」ボタンをクリッ

クします。

以上で、Windows 2000用のデバイスドライバのインストールは完了です。 デバイスドライバのインストール完了後以降は、システム起動時に②のように「新しいハードウ

ェアの検索ウィザード」が起動することはありません。デバイスドライバのインストールが完了

したら、ユーティリティディスクのインストールを行ってください。

Page 26: チュートリアル Visual BasicによるAD入門書正)gConfig.SmplChReq(1).ulRange = AD_5V 1.4 2002年10月 ・CardBus対応 ・標準モジュール、リファレンスの変更(関数の追加)

TUT-0021

Interface Corporation - 24 -

インストールを完了したら、リソース(I/Oアドレス, 割り込みレベル)の設定, 競合の有無の確認を行ってください。 ドライバのインストールが正常に行われると、システムプロパティのデバイスマネージャに表示

されます。

3.2 ソフトウェアセットアップ

次の手順で、ソフトウェアGPC-3100のインストールを行ってください。 (1)弊社Web siteからダウンロードした圧縮ファイルを解凍して、解凍フォルダ内の「SETUP.EXE」を実行してください。Help, サンプルプログラム等が指定ドライブにインストールされます。

(2)画面に表示される指示に従って操作してください。

インストールに成功すると、「スタート」メニューの「プログラム」に「Interface GPC-3100」が登録されます。ソフトウェアの使用方法につきましては、README.HTM, Helpをご覧ください。

ここにインタフェースモジュール

が追加されます。

Page 27: チュートリアル Visual BasicによるAD入門書正)gConfig.SmplChReq(1).ulRange = AD_5V 1.4 2002年10月 ・CardBus対応 ・標準モジュール、リファレンスの変更(関数の追加)

TUT-0021

- 25 - Interface Corporation

第4章 Visual BasicによるAD制御

Visual Basicより、AD製品を制御するには、DLLを利用します。Windowsアプリケーションプログラムおいては直接I/Oやメモリにアクセスすることは禁止されています。従って、AD製品に対して直接制御を行うことができません。そこで、Visual Basicではインタフェースモジュールに対して制御を行うプログラム(DLL)から必要なプロシージャ(関数)を呼び出し、このDLLを介してインタフェースモジュールの制御を行います。

AD製品

仮想デバイスドライバ (CP31xx.sys)

Win32 API

ダイナミックリンクライブラリ

Visual Basic アプリケーション

信号源

(DLL)

Page 28: チュートリアル Visual BasicによるAD入門書正)gConfig.SmplChReq(1).ulRange = AD_5V 1.4 2002年10月 ・CardBus対応 ・標準モジュール、リファレンスの変更(関数の追加)

TUT-0021

Interface Corporation - 26 -

4.1 ピンアサインメント

AD製品への信号入力は、インタフェースモジュールのコネクタ部分より行われますが、使用する製品型式によって、各ピンに割り当てられた役割が異なります。配線時には、これらピンアサイ

ンメントをよく確認の上、配線してください。 以下、弊社PCI-3153のピンアサインメントを一例として記載します。

●使用コネクタ メーカ:本多通信工業 型 式:PCR-E50LMDA(相当品)

25 42 23 3 2 1

50 49 48 28 27 26 ※ メーカ指定のピンアサインメントとは異なります。

●適合コネクタ メーカ:本多通信工業 型 式:PCR-E50FS+PCS-E50LK(相当品)

AIN 1AIN 9AIN 2AIN10AIN 3AIN11AIN 4AIN12AIN 5AIN13AIN 6AIN14AIN 7AIN15AIN 8AIN16

NCNC

ATRG OUTEXCLK INEXINT IN

EXTRG INREF(-5V)REF(+5V)-15V※

COM 1COM 9COM 2COM10COM 3COM11COM 4COM12COM 5COM13COM 6COM14COM 7COM15COM 8COM16NCIN1IN2OUT1OUT2DCOMACOM+5V※

+15V※

1 262 273 284 295 306 317 328 339 3410 3511 3612 3713 3814 3915 4016 4117 4218 4319 4420 4521 4622 4723 4824 4925 50

NC:未接続

注意!

※ジャンパスイッチの設定により、出力またはNC(未接続)にすることができます。

Page 29: チュートリアル Visual BasicによるAD入門書正)gConfig.SmplChReq(1).ulRange = AD_5V 1.4 2002年10月 ・CardBus対応 ・標準モジュール、リファレンスの変更(関数の追加)

TUT-0021

- 27 - Interface Corporation

【シングルエンド入力時】 信号名 端子番号 チャンネル 機 能 用 途 仕 様 AIN 1 1 CH 1 AIN 2 3 CH 2 AIN 3 5 CH 3 AIN 4 7 CH 4 AIN 5 9 CH 5 AIN 6 11 CH 6 AIN 7 13 CH 7 AIN 8 15 CH 8 AIN 9 2 CH 9 AIN 10 4 CH 10 AIN 11 6 CH 11 AIN 12 8 CH 12 AIN 13 10 CH 13 AIN 14 12 CH 14 AIN 15 14 CH 15 AIN 16 16 CH 16

アナログ入力信号

COM 1 26 CH 1 COM 2 28 CH 2 COM 3 30 CH 3 COM 4 32 CH 4 COM 5 34 CH 5 COM 6 36 CH 6 COM 7 38 CH 7 COM 8 40 CH 8 COM 9 27 CH 9 COM 10 29 CH 10 COM 11 31 CH 11 COM 12 33 CH 12 COM 13 35 CH 13 COM 14 37 CH 14 COM 15 39 CH 15 COM 16 41 CH 16

アナログ入力コモン

外部アナログ信号の入力端子

入力インピーダンス: 10MΩ(±5%) 過電圧入力保護 ・インタフェースモジュール電源ON時: ±35V(MAX) ・インタフェースモジュール電源OFF時: ±20V(MAX)

【差動入力時】 信号名 端子番号 チャンネル 機 能 用 途 仕 様 AIN 9 2 CH 1 AIN 10 4 CH 2 AIN 11 6 CH 3 AIN 12 8 CH 4 AIN 13 10 CH 5 AIN 14 12 CH 6 AIN 15 14 CH 7 AIN 16 16 CH 8

アナログ入力信号(+)

AIN 1 1 CH 1 AIN 2 3 CH 2 AIN 3 5 CH 3 AIN 4 7 CH 4 AIN 5 9 CH 5 AIN 6 11 CH 6 AIN 7 13 CH 7 AIN 8 15 CH 8

アナログ入力信号(-)

COM 1 26 CH 1 COM 2 28 CH 2 COM 3 30 CH 3 COM 4 32 CH 4 COM 5 34 CH 5 COM 6 36 CH 6 COM 7 38 CH 7 COM 8 40 CH 8

アナログ入力コモン

外部アナログ信号の入力端子

入力インピーダンス:10MΩ(±5%) 過電圧入力保護 ・インタフェースモジュール電源 ON時: ±35V(MAX) ・インタフェースモジュール電源OFF時: ±20V(MAX)

Page 30: チュートリアル Visual BasicによるAD入門書正)gConfig.SmplChReq(1).ulRange = AD_5V 1.4 2002年10月 ・CardBus対応 ・標準モジュール、リファレンスの変更(関数の追加)

TUT-0021

Interface Corporation - 28 -

信号名 端子番号 機 能 用 途 仕 様

ATRG OUT 19 アナログトリガ 出力

レベルトリガ,アウトレンジトリガ発生時にパルスを出力し、他のインタフェースモジュールと同期してサンプリングできます。

TTLレベル出力 電源投入時:Highレベル ・最大負荷電流 24mA ・ 最小Highレベル出力電圧:2.4V・ 最大Lowレベル出力電圧:0.4V

EXCLK IN 20 外部サンプリング クロック入力

外部からのサンプリングクロックに同期してAD変換を行う時に使用

EXINT IN 21 外部割り込み入力 (コンピュータ割り込み)

ドライバソフトウェアのトリガ設定で外部トリガを選択したときに使用

EXTRG IN 22 AD変換スタート外部入力 (1件サンプリング)

ドライバソフトウェアにより、任意のタイミングで1件のサンプリングを行います。

TTLレベル入力 ・外部駆動電流2mA以上 ・Lowレベル最大入力電圧:0.8V ・Highレベル最小入力電圧:2.0V ・ 立ち下がりエッジで有効 ソフトウェアにより、立ち上がりエッジ有効に変更できます。 ・最小パルス幅:33ns

IN1 43

IN2 44

デジタル入力 (チャンネル1,2)

ドライバソフトウェアにより入力が可能 ドライバソフトウェアのトリガ設定で外部トリガ条件に設定することができます。

無電圧接点オープンコレクタ入力 ・最大定格電圧:DC+50V ・ 入力信号電圧:DC+5V~+48V (推奨:DC+5V~+24V) ・ 入力信号電流:0.2mA

OUT1 45

OUT2 46

デジタル出力 (チャンネル1,2)

ドライバソフトウェアにより任意の出力が可能

TTLオープンコレクタ出力 (プルアップ抵抗付) ・最大定格電圧:DC+5V ・ 出力信号電圧:DC+5V ・ 最大出力電流:40mA ・出力抵抗:10kΩプルアップ抵抗付

+5V 49 デジタル回路用 +5V出力

外部デジタル回路用の+5V電源として利用可能 (通常は使用しません。)

最大負荷電流 100mA ・ ジャンパスイッチ設定により、出力またはNC(未接続)にすることができます。

DCOM 47 デジタル共通グランド ATRG OUT, EXCLK IN, EXINT IN, EXTRG IN, IN1, IN2, OUT1, OUT2, +5V用のデジタル共通グランド

REF(+5V) 24 外部リファレンス出力 +5.000V

REF(-5V) 23 外部リファレンス出力 -5.000V

外部回路用基準電圧出力として利用可能 (通常は使用しません。)

最大負荷電流 2mA

+15V 50

-15V 25

アナログ回路用 ±15V出力

外部アナログ回路用の ±15V電源として利用可能(通常は使用しません。)

最大負荷電流 10mA ・ ジャンパスイッチ設定により、出力またはNC(未接続)にすることができます。

ACOM 48 アナログ共通グランド REF(+5V), REF(-5V), ±15V用のアナログ共通グランド

他製品型式に関しては、製品マニュアル、もしくは弊社製品カタログを参照してください。

Page 31: チュートリアル Visual BasicによるAD入門書正)gConfig.SmplChReq(1).ulRange = AD_5V 1.4 2002年10月 ・CardBus対応 ・標準モジュール、リファレンスの変更(関数の追加)

TUT-0021

- 29 - Interface Corporation

4.2 DLLプロシージャ呼び出しによるプログラミング(概要)

Visual BasicよりDLLプロシージャ呼び出しプログラミングを行うには、弊社AD製品制御用ソフトウェア(FBIAD.DLL)をダイナミックリンクし使用します。DLLとはダイナミックリンクライブラリ(Dynamic Link Library)の略でアプリケーションの実行時に動的にリンクして利用できるプロシージャのライブラリです。プロシージャとは実行時に1つの単位として処理されるコードの集

まりを意味します。 Visual BasicにてDLLプロシージャを利用するには、Declareステートメントを使ってプロシージャの位置を指定します。

プログラム記述例 'ADインタフェースモジュールのオープンを行います。 lpszName = "FBIAD1" hDeviceHandle = AdOpen(lpszName)

外部プロシージャ

4.3 AD製品制御概略

AD製品への制御を行う場合、基本的に下記の制御シーケンス(順番)で行います。 インタフェースモジュール

の初期化

条件設定

入力処理

終了処理

プログラム起動

サンプリング条件の設定

データのサンプリング

プログラム終了

(1)

(2)

(3)

(4)

(1)インタフェースモジュールの初期化

Visual Basicで作成されたアプリケーションがAD製品への操作を行う場合、まずアプリケーションは、AD製品を利用可能な状態にする必要があります。 この処理がインタフェースモジュールの初期化です。インタフェースモジュールの初期化を

行うと、プログラムはAD製品へのアクセスが可能となります。本処理が行われないとAD製品へのアクセスは行えません。

(2)条件設定

サンプリング周期,サンプリング数,入力レンジ等、アナログ信号をサンプリングする条件を設定します。

(3)入力処理

インタフェースモジュールに入力されるアナログ信号を読み取ります。 (4)終了

インタフェースモジュールの使用終了を行うための手続きです。プログラム終了時には必ず

必要です。

Page 32: チュートリアル Visual BasicによるAD入門書正)gConfig.SmplChReq(1).ulRange = AD_5V 1.4 2002年10月 ・CardBus対応 ・標準モジュール、リファレンスの変更(関数の追加)

TUT-0021

Interface Corporation - 30 -

第5章 チュートリアル

ここでは、実際にアナログ入力製品を用い、アナログ信号の入力(シングルエンド入力)を行う、簡単な波形表示プログラムの作成を行います。 コンピュータにアナログ入力製品(PCI-3153)を1枚実装し、信号線接続用に「垂直50ピンネジ変換端子台(TNS-5001)」を接続します。インタフェースモジュールと端子台の接続には「50ピンハーフピッチケーブル(ECO-7620)」を使用しています。 また、アナログ信号生成にはファンクションジェネレータを使用しています。

AD製品

端子台

波形データ

ファンクションジェネレータ

100.0 Hz

PCI-3153以外では、対応する端子台および接続用ケーブルの製品型式が異なる場合がありますのでご注意ください。 チュートリアルではアナログ信号の入力はシングルエンド入力でCH1(AIN1)より行います。ファンクションジェネレータからの出力を、端子台の同チャンネルに対応する端子に接続してくださ

い。

注意!

PCI-3153, TNS-5001の組み合わせの場合、端子台の1C番ピンがCOMに、AI1番ピンが

CH1の入力になります。

Page 33: チュートリアル Visual BasicによるAD入門書正)gConfig.SmplChReq(1).ulRange = AD_5V 1.4 2002年10月 ・CardBus対応 ・標準モジュール、リファレンスの変更(関数の追加)

TUT-0021

- 31 - Interface Corporation

5.1 アナログ入力[1]

ここでは、ファンクションジェネレータから出力されるアナログ信号のデータを、コンピュータ

に実装したアナログ入力製品(PCI-3153)を用いて1件のみ取得します。取得したデータを電圧値に変換し、画面に出力するプログラムの作成を行います。 ファンクションジェネレータからはバイポーラ±2.5Vで周波数100Hzの信号が出力されているものとします。

[V]

時間 →

-2.5

-2

-1.5

-1

-0.5

0

0.5

1

1.5

2

2.5

Step 1.基本フォーム作成

ここでは、これから作成するプログラムの画面作成を行います。

1. Visual Basicを起動し、新しい標準EXEプロジェクトを作成します。 ・新規作成タグより「標準EXE」を選択した後「開く」ボタンをクリックします。

標準 EXEを選択します。

Page 34: チュートリアル Visual BasicによるAD入門書正)gConfig.SmplChReq(1).ulRange = AD_5V 1.4 2002年10月 ・CardBus対応 ・標準モジュール、リファレンスの変更(関数の追加)

TUT-0021

Interface Corporation - 32 -

2. プロジェクト名を“AdSmp_1”に変更します。 ・画面上にプロジェクトが表示されているので、そのプロジェクトを選択し、プロパティウィン

ドウに値を設定します。オブジェクト名を「AdSmp_1」に変更します。

プロジェクトを選択します。

プロジェクト名を設定します。

画面上にフォームが1つ表示されているので、そのフォームを選択し、プロパティウィンドウに

値を設定します。(オブジェクト名)を“frmAdTest”にCaptionを“アナログ入力”にそれぞれ変更します。

オブジェクト名を変更します

Captionを変更します

フォームを選択します

Page 35: チュートリアル Visual BasicによるAD入門書正)gConfig.SmplChReq(1).ulRange = AD_5V 1.4 2002年10月 ・CardBus対応 ・標準モジュール、リファレンスの変更(関数の追加)

TUT-0021

- 33 - Interface Corporation

3. プロジェクトに標準モジュールを追加します。

標準モジュールを選択します

追加を選択します

右クリックします

ここまでで、基本フォームの作成は完了です。

Step 2.DLLプロシージャ宣言と構造体定義

DLLプロシージャを利用するには、Declareステートメントを使ってプロシージャの位置を指定し、プロシージャの呼び出しに使う引数の識別を行わなければなりません。 DLLとはダイナミックリンクライブラリ(Dynamic Link Library)の略でアプリケーションの実行時に動的にリンクして利用できるプロシージャのライブラリです。そもそも、Windowsアプリケーションプログラミングでは直接I/Oやメモリにアクセスすることは禁止されています。言い換えれば、AD製品に対して直接制御を行うことができません。そこで、インタフェースモジュールに対して制御を行うプログラム(DLL)から必要な手続き(プロシージャ)を呼び出し、このDLLを介してインタフェースモジュールの制御を行います。 ここで一度宣言したDLLプロシージャは、Visual Basicのプロシージャと同じようにコードで呼び出すことが可能となります。 また、一部のDLLプロシージャは構造体を使用します。ここでは、これら必要な構造体の定義も行います。

Page 36: チュートリアル Visual BasicによるAD入門書正)gConfig.SmplChReq(1).ulRange = AD_5V 1.4 2002年10月 ・CardBus対応 ・標準モジュール、リファレンスの変更(関数の追加)

TUT-0021

Interface Corporation - 34 -

1. 標準モジュールにList 1-1を追加します。

(List 1-1:標準モジュールのプロシージャ宣言のコード) Attribute VB_Name = "FbiAd" '----------------------------------------------------------------------------------------------- ' ' GPC/GPF-3100 Visual Basic Overlapped Process Identifier ' '----------------------------------------------------------------------------------------------- Public Const FLAG_SYNC = 1 ' Sampling as an non-overlapped operation Public Const FLAG_ASYNC = 2 ' Sampling as overlapped operation '----------------------------------------------------------------------------------------------- ' ' GPC/GPF-3100 Visual Basic File Format Identifier ' '----------------------------------------------------------------------------------------------- Public Const FLAG_BIN = 1 ' Binary format file Public Const FLAG_CSV = 2 ' CSV format file '----------------------------------------------------------------------------------------------- ' ' GPC/GPF-3100 Visual Basic Sampling Status Identifier ' '----------------------------------------------------------------------------------------------- Public Const AD_STATUS_STOP_SAMPLING = 1 ' The sampling is stopped. Public Const AD_STATUS_WAIT_TRIGGER = 2 ' The sampling is waiting for a trigger. Public Const AD_STATUS_NOW_SAMPLING = 3 ' The sampling is running. '----------------------------------------------------------------------------------------------- ' ' GPC/GPF-3100 Visual Basic Event Factor Identifier ' '----------------------------------------------------------------------------------------------- Public Const AD_EVENT_SMPLNUM = 1 ' The specified number of samples has been acquired. Public Const AD_EVENT_STOP_TRIGGER = 2 ' The sampling has been stopped because a trigger is asserted. Public Const AD_EVENT_STOP_FUNCTION = 3 ' The sampling has been stopped by software. Public Const AD_EVENT_STOP_TIMEOUT = 4 ' The sampling has been stopped because a time-out interval elapsed. Public Const AD_EVENT_STOP_SAMPLING = 5 ' The sampling is stopped. Public Const AD_EVENT_STOP_SCER = 6 ' The sampling is stopped by a clock error. Public Const AD_EVENT_STOP_ORER = 7 ' The sampling is stopped by an overrun error. Public Const AD_EVENT_SCER = 8 ' The sampling pacer clock error is occurred. Public Const AD_EVENT_ORER = 9 ' The overrun error is occurred. Public Const AD_EVENT_STOP_LV_1 = 10 ' The channel 1 sampling is stopped. (Only applicable to

the PCI-3179) Public Const AD_EVENT_STOP_LV_2 = 11 ' The channel 2 sampling is stopped. (Only applicable to

the PCI-3179) Public Const AD_EVENT_STOP_LV_3 = 12 ' The channel 3 sampling is stopped. (Only applicable to

the PCI-3179) Public Const AD_EVENT_STOP_LV_4 = 13 ' The channel 4 sampling is stopped. (Only applicable to

the PCI-3179) Public Const AD_EVENT_RANGE = 14 ' The AD conversion value reached the full-scale range. Public Const AD_EVENT_STOP_RANGE = 15 ' The sampling is stopped by the full-scale range detection. Public Const AD_EVENT_OVPM = 16 ' The AD conversion value reached the OVPM. Public Const AD_EVENT_STOP_OVPM = 17 ' The sampling is stopped by theOVPM. '----------------------------------------------------------------------------------------------- ' ' GPC/GPF-3100 Visual Basic Input Configuration Identifier ' '----------------------------------------------------------------------------------------------- Public Const AD_INPUT_SINGLE = 1 ' Single-ended input Public Const AD_INPUT_DIFF = 2 ' Differential input '----------------------------------------------------------------------------------------------- ' ' GPC/GPF-3100 Visual Basic Volume Identifier ' '----------------------------------------------------------------------------------------------- Public Const AD_ADJUST_BIOFFSET = 1 ' Bipolar offset Public Const AD_ADJUST_UNIOFFSET = 2 ' Unipolar offset Public Const AD_ADJUST_BIGAIN = 3 ' Bipolar gain Public Const AD_ADJUST_UNIGAIN = 4 ' Unipolar gain

Page 37: チュートリアル Visual BasicによるAD入門書正)gConfig.SmplChReq(1).ulRange = AD_5V 1.4 2002年10月 ・CardBus対応 ・標準モジュール、リファレンスの変更(関数の追加)

TUT-0021

- 35 - Interface Corporation

'----------------------------------------------------------------------------------------------- ' ' GPC/GPF-3100 Visual Basic Calibration Item Identifier ' '----------------------------------------------------------------------------------------------- Public Const AD_ADJUST_UP = 1 ' Increases the volume. Public Const AD_ADJUST_DOWN = 2 ' Decreases the volume. Public Const AD_ADJUST_STORE = 3 ' Saves the present value to the non-volatile memory. Public Const AD_ADJUST_STANDBY = 4 ' Places the electronic volume device into the standby mode. Public Const AD_ADJUST_NOT_STORE = 5 ' Not save the value. '----------------------------------------------------------------------------------------------- ' ' GPC/GPF-3100 Visual Basic Data Identifier ' '----------------------------------------------------------------------------------------------- Public Const AD_DATA_PHYSICAL = 1 ' Physical value (voltage [V] or current [mA]) Public Const AD_DATA_BIN8 = 2 ' 8-bit binary Public Const AD_DATA_BIN12 = 3 ' 12-bit binary Public Const AD_DATA_BIN16 = 4 ' 16-bit binary Public Const AD_DATA_BIN24 = 5 ' 24-bit binary Public Const AD_DATA_BIN10 = 6 ' 10-bit binary '----------------------------------------------------------------------------------------------- ' ' GPC-3100 VisualBasic Data Conversion Identifier ' '----------------------------------------------------------------------------------------------- Public Const AD_CONV_SMOOTH = 1 ' Converts the data with interpolation. Public Const AD_CONV_AVERAGE1 = &H100 ' Converts the data with the simple averaging. Public Const AD_CONV_AVERAGE2 = &H200 ' Converts the data with the shifted averaging. '----------------------------------------------------------------------------------------------- ' ' GPC/GPF-3100 Visual Basic Sampling Mode Identifier ' '----------------------------------------------------------------------------------------------- Public Const AD_IO_SAMPLING = 1 ' Programmed I/O Public Const AD_FIFO_SAMPLING = 2 ' FIFO Public Const AD_MEM_SAMPLING = 4 ' Memory Public Const AD_BM_SAMPLING = 8 ' Bus master '----------------------------------------------------------------------------------------------- ' ' GPC/GPF-3100 Visual Basic Trigger Timing Identifier ' '----------------------------------------------------------------------------------------------- Public Const AD_TRIG_START = 1 ' Start-trigger (Default setting) Public Const AD_TRIG_STOP = 2 ' Stop-trigger Public Const AD_TRIG_START_STOP = 3 ' Start/stop-trigger

Page 38: チュートリアル Visual BasicによるAD入門書正)gConfig.SmplChReq(1).ulRange = AD_5V 1.4 2002年10月 ・CardBus対応 ・標準モジュール、リファレンスの変更(関数の追加)

TUT-0021

Interface Corporation - 36 -

'----------------------------------------------------------------------------------------------- ' ' GPC/GPF-3100 Visual Basic Trigger Level Identifier ' '----------------------------------------------------------------------------------------------- Public Const AD_FREERUN = 1 ' No trigger (default setting) Public Const AD_EXTTRG = 2 ' External trigger Public Const AD_EXTTRG_DI = 3 ' External trigger with mask using general purpose digital input pin Public Const AD_LEVEL_P = 4 ' Analog trigger (low-to-high transition) Public Const AD_LEVEL_M = 5 ' Analog trigger (high-to-low transition) Public Const AD_LEVEL_D = 6 ' Analog trigger (low-to-high or high-to-low transition) Public Const AD_INRANGE = 7 ' Analog trigger (into the range) Public Const AD_OUTRANGE = 8 ' Analog trigger (out of the range) Public Const AD_ETERNITY = 9 ' Infinite sampling Public Const AD_SMPLNUM = 10 ' Specified number Public Const AD_START_SIGTIMER = 11 ' Interval timer Public Const AD_START_DA_START = 12 ' Analog output start (DaStartSampling) Public Const AD_START_DA_STOP = 13 ' Analog output stop Public Const AD_START_DA_IO = 14 ' Analog output (DaOutputDA) Public Const AD_START_DA_SMPLNUM = 15 ' Analog output number Public Const AD_STOP_DA_START = 12 ' Analog output start (DaStartSampling) Public Const AD_STOP_DA_STOP = 13 ' Analog output stop Public Const AD_STOP_DA_IO = 14 ' Analog output (DaOutputDA) Public Const AD_STOP_DA_SMPLNUM = 15 ' Analog output num Public Const AD_START_P1 = &H10 ' Start-trigger (Level 1): low-to- high transition Public Const AD_START_M1 = &H20 ' Start-trigger (Level 1): high-to-low transition Public Const AD_START_D1 = &H40 ' Start-trigger (Level 1): high-to-low or low -to-high transition (direction DON'T

CARE) Public Const AD_START_P2 = &H80 ' Start-trigger (Level 2): low-to-high transition Public Const AD_START_M2 = &H100 ' Start-trigger (Level 2): high-to-low transition Public Const AD_START_D2 = &H200 ' Start-trigger (Level 2): high-to-low or low -to-high transition (direction DON'T

CARE) Public Const AD_STOP_P1 = &H400 ' Stop-trigger (Level 1): low-to-high transition Public Const AD_STOP_M1 = &H800 ' Stop-trigger (Level 1): high-to-low transition Public Const AD_STOP_D1 = &H1000 ' Stop-trigger (Level 1): high-to-low or low -to-high transition (direction DON'T

CARE) Public Const AD_STOP_P2 = &H2000 ' Stop-trigger (Level 2): low-to-high transition Public Const AD_STOP_M2 = &H4000 ' Stop-trigger (Level 2): high-to-low transition Public Const AD_STOP_D2 = &H8000 ' Stop-trigger (Level 2): high-to-low or low -to-high transition (direction DON'T CARE) Public Const AD_ANALOG_FILTER = &H10000 ' Uses an analog trigger filter. Public Const AD_START_CNT_EQ = &H20000 ' Start-trigger: Counter equal Public Const AD_STOP_CNT_EQ = &H40000 ' Stop-trigger: Counter equal Public Const AD_START_DI_EQ = &H80000 ' Stop-trigger: DI equal Public Const AD_STOP_DI_EQ = &H100000 ' Stop-trigger: DI equal Public Const AD_STOP_SOFT = &H200000 ' Stop-trigger: Soft stop Public Const AD_START_Z_CLR = &H400000 ' Start-trigger: Z clear Public Const AD_STOP_Z_CLR = &H800000 ' Stop-trigger: Z clear 'MATLAB Public Const AD_START_SOFT = &H1000000 Public Const AD_SOFTTRG = &H2000000 '----------------------------------------------------------------------------------------------- ' ' GPC/GPF-3100 Visual Basic Polarity Identifier ' '----------------------------------------------------------------------------------------------- Public Const AD_DOWN_EDGE = 1 ' Falling edge (default setting) Public Const AD_UP_EDGE = 2 ' Rising edge Public Const AD_EXTRG_IN = 3 ' External trigger input Public Const AD_EXCLK_IN = 4 ' External clock input Public Const AD_LOW_LEVEL = 5 ' Negative level (default setting) Public Const AD_HIGH_LEVEL = 6 ' Positive level Public Const AD_EDGE_P1 = &H10 ' Level 1: low-to-high transition Public Const AD_EDGE_M1 = &H20 ' Level 1: high-to-low transition Public Const AD_EDGE_D1 = &H40 ' Level 1: high-to-low or low -to-high transition (direction DON'T CARE) Public Const AD_EDGE_P2 = &H80 ' Level 2: low-to-high transition Public Const AD_EDGE_M2 = &H100 ' Level 2: high-to-low transition Public Const AD_EDGE_D2 = &H200 ' Level 2: high-to-low or low -to-high transition (direction DON'T CARE) Public Const AD_DISABLE = &H80000000 ' No pulse output (defult setting) Public Const AD_TRIG_MODE = 2 ' Public Const AD_BUSY_MODE = 3 ' Public Const AD_POST_MODE = 4 ' Public Const AD_ENABLE = 5 ' Public Const AD_SMP1_MODE = 6 ' Public Const AD_SMP2_MODE = 7 ' '----------------------------------------------------------------------------------------------- ' ' GPC/GPF-3100 Visual Basic Pulse Polarity Identifier ' '----------------------------------------------------------------------------------------------- Public Const AD_LOW_PULSE = 1 ' Negative pulse (default setting) Public Const AD_HIGH_PULSE = 2 ' Positive pulse

Page 39: チュートリアル Visual BasicによるAD入門書正)gConfig.SmplChReq(1).ulRange = AD_5V 1.4 2002年10月 ・CardBus対応 ・標準モジュール、リファレンスの変更(関数の追加)

TUT-0021

- 37 - Interface Corporation

'----------------------------------------------------------------------------------------------- ' ' GPC/GPF-3100 Visual Basic Double-Clocked Mode Identifier ' '----------------------------------------------------------------------------------------------- Public Const AD_NORMAL_MODE = 1 ' Normal mode (default setting) Public Const AD_FAST_MODE = 2 ' Double-clocked mode '----------------------------------------------------------------------------------------------- ' ' GPC/GPF-3100 Visual Basic Status Identifier ' '----------------------------------------------------------------------------------------------- Public Const AD_NO_STATUS = 1 ' Adds no bus master sampling status. (default setting) Public Const AD_ADD_STATUS = 2 ' Adds bus master sampling status. '----------------------------------------------------------------------------------------------- ' ' GPC/GPF-3100 Visual Basic Error Control Identifier ' '----------------------------------------------------------------------------------------------- Public Const AD_STOP_SCER = 2 ' Stops sampling by a sampling clock error. Public Const AD_STOP_ORER = 4 ' Stops sampling by an overrun error. '----------------------------------------------------------------------------------------------- ' ' GPC/GPF-3100 Visual Basic Data Save Identifier ' '----------------------------------------------------------------------------------------------- Public Const AD_APPEND = 1 ' Adds new data at the end of the buffer. (default setting) Public Const AD_OVERWRITE = 2 ' Oversrites new data on existing data. '----------------------------------------------------------------------------------------------- ' ' GPC/GPF-3100 Visual Basic Range Identifier ' '----------------------------------------------------------------------------------------------- Public Const AD_0_1V = &H1 ' Voltage: unipolar 0 V to 1 V Public Const AD_0_2P5V = &H2 ' Voltage: unipolar 0 V to 2.5 V Public Const AD_0_5V = &H4 ' Voltage: unipolar 0 V to 5 V Public Const AD_0_10V = &H8 ' Voltage: unipolar 0 V to 10 V Public Const AD_1_5V = &H10 ' Voltage: unipolar 1 V to 5 V Public Const AD_0_2V = &H20 ' Voltage: unipolar 0 V to 2 V Public Const AD_0_0P125V = &H40 ' Voltage: unipolar 0 V to 0.125V Public Const AD_0_1P25V = &H80 ' Voltage: unipolar 0 V to 1.25v Public Const AD_0_0P625V = &H100 ' Voltage: unipolar 0 V to 0.625V Public Const AD_0_0P156V = &H200 ' Voltage: unipolar 0 V to 0.156V Public Const AD_0_20mA = &H1000 ' Current: unipolar 0 mA to 20 mA Public Const AD_4_20mA = &H2000 ' Current: unipolar 4 mA to 20 mA Public Const AD_1V = &H10000 ' Voltage: bipolar +/- 1 V Public Const AD_2P5V = &H20000 ' Voltage: bipolar +/- 2.5 V Public Const AD_5V = &H40000 ' Voltage: bipolar +/- 5 V Public Const AD_10V = &H80000 ' Voltage: bipolar +/- 10 V Public Const AD_20V = &H100000 ' Voltage: bipolar +/- 20 V Public Const AD_50V = &H200000 ' Voltage: bipolar +/- 50 V Public Const AD_0P125V = &H400000 ' Voltage: bipolar +/- 0.125 V Public Const AD_1P25V = &H800000 ' Voltage: bipolar +/- 1.25 V Public Const AD_0P625V = &H1000000 ' Voltage: bipolar +/- 0.625 V Public Const AD_0P156V = &H2000000 ' Voltage: bipolar +/- 0.156 V Public Const AD_1P25V_AC = &H4000000 ' Voltage: bipolar +/- 1.25 V (AC-Coupling) Public Const AD_0P625V_AC = &H8000000 ' Voltage: bipolar +/- 0.625 V (AC-Coupling) Public Const AD_0P156V_AC = &H10000000 ' Voltage: bipolar +/- 0.156 V (AC-Coupling) Public Const AD_AC_COUPLING = &H40000000 ' AC-Coupling Public Const AD_GNG = &H80000000 ' GNG '----------------------------------------------------------------------------------------------- ' ' GPC/GPF-3100 Visual Basic Isolation Identifier ' '----------------------------------------------------------------------------------------------- Public Const AD_ISOLATION = 1 ' Isolated Public Const AD_NOT_ISOLATION = 2 ' Not isolated

Page 40: チュートリアル Visual BasicによるAD入門書正)gConfig.SmplChReq(1).ulRange = AD_5V 1.4 2002年10月 ・CardBus対応 ・標準モジュール、リファレンスの変更(関数の追加)

TUT-0021

Interface Corporation - 38 -

'----------------------------------------------------------------------------------------------- ' ' GPC/GPF-3100 Visual Basic Synchronous Mode Identifier ' '----------------------------------------------------------------------------------------------- Public Const AD_MASTER_MODE = 1 ' Master mode Public Const AD_SLAVE_MODE = 2 ' Slave mode '----------------------------------------------------------------------------------------------- ' ' GPC/GPF-3100 Synchronous Number Identifier ' '----------------------------------------------------------------------------------------------- Public Const AD_SYNC_NUM_1 = &H100 Public Const AD_SYNC_NUM_2 = &H200 Public Const AD_SYNC_NUM_3 = &H400 Public Const AD_SYNC_NUM_4 = &H800 Public Const AD_SYNC_NUM_5 = &H1000 Public Const AD_SYNC_NUM_6 = &H2000 Public Const AD_SYNC_NUM_7 = &H4000 ' ----------------------------------------------------------------------------------------------- ' ' GPC/GPF-3100 Degital Filter Identifier ' ' ----------------------------------------------------------------------------------------------- Public Const AD_DF_8 = 0 ' 8 (default setting) Public Const AD_DF_16 = 1 ' 16 Public Const AD_DF_32 = 2 ' 32 Public Const AD_DF_64 = 3 ' 64 Public Const AD_DF_128 = 4 ' 128 Public Const AD_DF_256 = 5 ' 256 '----------------------------------------------------------------------------------------------- ' ' GPC/GPF-3100 Visual Basic Calibration Identifier ' '----------------------------------------------------------------------------------------------- Public Const AD_SELF_CALIBRATION = 1 ' Self calibration of the AD converter Public Const AD_ZEROSCALE_CALIBRATION = 2 ' Zero voltage calibration (system calibration) Public Const AD_FULLSCALE_CALIBRATION = 3 ' Full scale voltage calibration (system calibration) '----------------------------------------------------------------------------------------------- ' ' GPC/GPF-3100 Visual Basic Full-scale Identifier ' '----------------------------------------------------------------------------------------------- Public Const AD_STATUS_NEGATIVE_FULL_SCALE = 1 ' Negative full-scale Public Const AD_STATUS_POSITIVE_FULL_SCALE = 2 ' Positive full-scale Public Const AD_STATUS_UNDER_RANGE = 1 ' Negative full-scale Public Const AD_STATUS_OVER_RANGE = 2 ' Positive full-scale '----------------------------------------------------------------------------------------------- ' ' GPC/GPF-3100 OVPM Identifier ' '----------------------------------------------------------------------------------------------- Public Const AD_STATUS_OVPM_NORMA = 0 ' NormalRange Public Const AD_STATUS_OVPM_HIGH_RANGE = 1 ' Voltage: bipolar +/- 50 V Range Public Const AD_STATUS_OVPM_GND_RANGE = 2 ' GND '----------------------------------------------------------------------------------------------- ' ' GPC/GPF-3100 Visual Basic PCI-3525 CN3,4 Function Identifier ' '----------------------------------------------------------------------------------------------- Public Const AD_CN_FREE = 0 ' Not used Public Const AD_CN_EXTRG_IN = 1 ' External trigger input Public Const AD_CN_EXTRG_OUT = 2 ' External trigger output Public Const AD_CN_EXCLK_IN = 3 ' External clock input Public Const AD_CN_EXCLK_OUT = 4 ' External clock output Public Const AD_CN_EXINT_IN = 5 ' External interrupt input Public Const AD_CN_ATRG_OUT = 6 ' Analog trigger out Public Const AD_CN_DI = 7 ' Digital input Public Const AD_CN_DO = 8 ' Digital output Public Const AD_CN_DAOUT = 9 ' Analog output Public Const AD_CN_OPEN = 10 ' Open Public Const AD_CN_EXSMP1_OUT = 12 ' Sampling Status1 Public Const AD_CN_EXSMP2_OUT = 13 'Sampling Status2

Page 41: チュートリアル Visual BasicによるAD入門書正)gConfig.SmplChReq(1).ulRange = AD_5V 1.4 2002年10月 ・CardBus対応 ・標準モジュール、リファレンスの変更(関数の追加)

TUT-0021

- 39 - Interface Corporation

' ----------------------------------------------------------------------------------------------- ' ' GPC/GPF-3100 CPZ-360810 DIN/DOUT Function Identifier ' ' ----------------------------------------------------------------------------------------------- Public Const AD_EX_DIO1 = 1 ' DIN/DOUT1 Public Const AD_EX_DIO2 = 2 ' DIN/DOUT2 Public Const AD_EX_DIO3 = 3 ' DIN/DOUT3 Public Const AD_EX_DIO4 = 4 ' DIN/DOUT4 Public Const AD_EX_DIO5 = 5 ' DIN/DOUT5 '------------------------------------------------- ' ' GPC/GPF-3100 Visual Basic Structure Declaration ' '------------------------------------------------- ' ----------------------------------------------------------------------- ' Sampling Condition Structure for Each Channel ' ----------------------------------------------------------------------- Type ADSMPLCHREQ ulChNo As Long ulRange As Long End Type ' ----------------------------------------------------------------------- ' Analog Trigger Condition Structure for Each Channel ' ----------------------------------------------------------------------- Type ADTRIGCHREQ ulChNo As Long fTrigLevel As Single fHysteresis As Single End Type ' ----------------------------------------------------------------------- ' Sampling Condition Structure ' ----------------------------------------------------------------------- Type ADSMPLREQ ulChCount As Long SmplChReq(0 To 255) As ADSMPLCHREQ ulSamplingMode As Long ulSingleDiff As Long ulSmplNum As Long ulSmplEventNum As Long fSmplFreq As Single ulTrigPoint As Long ulTrigMode As Long lTrigDelay As Long ulTrigCh As Long fTrigLevel1 As Single fTrigLevel2 As Single ulEClkEdge As Long ulATrgPulse As Long ulTrigEdge As Long ulTrigDI As Long ulFastMode As Long End Type ' ----------------------------------------------------------------------- ' Sampling Condition Structure for Bus Master ' ----------------------------------------------------------------------- Type ADBMSMPLREQ ulChCount As Long SmplChReq(0 To 255) As ADSMPLCHREQ ulSingleDiff As Long ulSmplNum As Long ulSmplEventNum As Long ulSmplRepeat As Long ulBufferMode As Long fSmplFreq As Single fScanFreq As Single ulStartMode As Long ulStopMode As Long ulPreTrigDelay As Long ulPostTrigDelay As Long TrigChReq(0 To 1) As ADTRIGCHREQ ulATrgMode As Long ulATrgPulse As Long ulStartTrigEdge As Long ulStopTrigEdge As Long ulTrigDI As Long ulEClkEdge As Long ulFastMode As Long ulStatusMode As Long ulErrCtrl As Long End Type

Page 42: チュートリアル Visual BasicによるAD入門書正)gConfig.SmplChReq(1).ulRange = AD_5V 1.4 2002年10月 ・CardBus対応 ・標準モジュール、リファレンスの変更(関数の追加)

TUT-0021

Interface Corporation - 40 -

' ----------------------------------------------------------------------- ' Sampling Condition Structure for Memory ' ----------------------------------------------------------------------- Type ADMEMSMPLREQ ulChCount As Long SmplChReq(0 To 255) As ADSMPLCHREQ ulSingleDiff As Long fSmplFreq As Single ulStopMode As Long ulPreTrigDelay As Long ulPostTrigDelay As Long TrigChReq(0 To 1) As ADTRIGCHREQ ulATrgMode As Long ulATrgPulse As Long ulStopTrigEdge As Long ulEClkEdge As Long ulFastMode As Long ulStatusMode As Long ulErrCtrl As Long End Type ' ----------------------------------------------------------------------- ' Board Specification Structure ' ----------------------------------------------------------------------- Type ADBOARDSPEC ulBoardType As Long ulBoardID As Long dwSamplingMode As Long ulChCountS As Long ulChCountD As Long ulResolution As Long dwRange As Long ulIsolation As Long ulDi As Long ulDo As Long End Type '----------------------------------------------------------------------------------------------- ' ' GPC/GPF-3100 Visual Basic Error Identifier ' '----------------------------------------------------------------------------------------------- Public Const AD_ERROR_SUCCESS = 0 Public Const AD_ERROR_NOT_DEVICE = &HC0000001 Public Const AD_ERROR_NOT_OPEN = &HC0000002 Public Const AD_ERROR_INVALID_HANDLE = &HC0000003 Public Const AD_ERROR_ALREADY_OPEN = &HC0000004 Public Const AD_ERROR_NOT_SUPPORTED = &HC0000009 Public Const AD_ERROR_NOW_SAMPLING = &HC0001001 Public Const AD_ERROR_STOP_SAMPLING = &HC0001002 Public Const AD_ERROR_START_SAMPLING = &HC0001003 Public Const AD_ERROR_SAMPLING_TIMEOUT = &HC0001004 Public Const AD_ERROR_INVALID_PARAMETER = &HC0001021 Public Const AD_ERROR_ILLEGAL_PARAMETER = &HC0001022 Public Const AD_ERROR_NULL_POINTER = &HC0001023 Public Const AD_ERROR_GET_DATA = &HC0001024 Public Const AD_ERROR_USED_DA = &HC0001025 Public Const AD_ERROR_FILE_OPEN = &HC0001041 Public Const AD_ERROR_FILE_CLOSE = &HC0001042 Public Const AD_ERROR_FILE_READ = &HC0001043 Public Const AD_ERROR_FILE_WRITE = &HC0001044 Public Const AD_ERROR_INVALID_DATA_FORMAT = &HC0001061 Public Const AD_ERROR_INVALID_AVERAGE_OR_SMOOTHING = &HC0001062 Public Const AD_ERROR_INVALID_SOURCE_DATA = &HC0001063 Public Const AD_ERROR_NOT_ALLOCATE_MEMORY = &HC0001081 Public Const AD_ERROR_NOT_LOAD_DLL = &HC0001082 Public Const AD_ERROR_CALL_DLL = &HC0001083

Page 43: チュートリアル Visual BasicによるAD入門書正)gConfig.SmplChReq(1).ulRange = AD_5V 1.4 2002年10月 ・CardBus対応 ・標準モジュール、リファレンスの変更(関数の追加)

TUT-0021

- 41 - Interface Corporation

'----------------------------------------------------------------------------------------------- ' ' GPC/GPF-3100 Visual Basic Function Declaration ' '----------------------------------------------------------------------------------------------- Declare Function AdOpen Lib "fbiad.dll" (ByVal lpszName As String) As Long Declare Function AdClose Lib "fbiad.dll" (ByVal hdevicehandle As Long) As Long Declare Function AdGetDeviceInfo Lib "fbiad.dll" (ByVal hdevicehandle As Long, ByRef pBoardSpec As ADBOARDSPEC) As Long Declare Function AdSetBoardConfig Lib "fbiad.dll" (ByVal hdevicehandle As Long, ByVal hEvent As Long, ByVal lpCallBackProc As Long, ByVal dwUser As Long) As Long Declare Function AdGetBoardConfig Lib "fbiad.dll" (ByVal hdevicehandle As Long, ByRef ulAdSmplEventFactor As Long) As Long Declare Function AdSetSamplingConfig Lib "fbiad.dll" (ByVal hdevicehandle As Long, ByRef pAdSmplConfig As ADSMPLREQ) As Long Declare Function AdGetSamplingConfig Lib "fbiad.dll" (ByVal hdevicehandle As Long, ByRef pAdSmplConfig As ADSMPLREQ) As Long Declare Function AdGetSamplingData Lib "fbiad.dll" (ByVal hdevicehandle As Long, ByRef pSmplData As Any, ByRef ulSmplNum As Long) As Long Declare Function AdClearSamplingData Lib "fbiad.dll" (ByVal hdevicehandle As Long) As Long Declare Function AdStartSampling Lib "fbiad.dll" (ByVal hdevicehandle As Long, ByVal ulSyncFlag As Long) As Long Declare Function AdStartFileSampling Lib "fbiad.dll" (ByVal hdevicehandle As Long, ByVal pszPathName As String, ByVal ulFileFlag As Long) As Long Declare Function AdTriggerSampling Lib "fbiad.dll" (ByVal hdevicehandle As Long, ByVal ulChNo As Long, ByVal ulRange As Long, ByVal ulSingleDiff As Long, ByVal ulTriggerMode As Long, ByVal ulTrigEdge As Long, ByVal ulSmplNum As Long) As Long Declare Function AdMemTriggerSampling Lib "fbiad.dll" (ByVal hdevicehandle As Long, ByVal ulChCount As Long, ByRef lpSmplChReq As ADSMPLCHREQ, ByVal ulSmplNum As Long, ByVal ulRepeatCount As Long, ByVal ulTrigEdge As Long, ByVal fSmplFreq As Single, ByVal ulEClkEdge As Long, ByVal ulFastMode As Long) As Long Declare Function AdSyncSampling Lib "fbiad.dll" (ByVal hdevicehandle As Long, ByVal ulMode As Long) As Long Declare Function AdStopSampling Lib "fbiad.dll" (ByVal hdevicehandle As Long) As Long Declare Function AdGetStatus Lib "fbiad.dll" (ByVal hdevicehandle As Long, ByRef ulAdSmplStatus As Long, ByRef ulAdSmplCount As Long, ByRef ulAdAvailCount As Long) As Long Declare Function AdInputAD Lib "fbiad.dll" (ByVal hdevicehandle As Long, ByVal ulCh As Long, ByVal ulSingleDiff As Long, ByRef lpAdSmplChReq As ADSMPLCHREQ, ByRef lpData As Any) As Long Declare Function AdInputDI Lib "fbiad.dll" (ByVal hdevicehandle As Long, ByRef dwData As Long) As Long Declare Function AdOutputDO Lib "fbiad.dll" (ByVal hdevicehandle As Long, ByVal dwData As Long) As Long Declare Function AdAdjustVR Lib "fbiad.dll" (ByVal hdevicehandle As Long, ByVal ulAdjustCh As Long, ByVal ulSingleDiff As Long, ByVal ulSelVolume As Long, ByVal ulControl As Long, ByVal ulTap As Long) As Long Declare Function AdReadAdjustVR Lib "fbiad.dll" (ByVal hdevicehandle As Long, ByVal ulAdjustCh As Long) As Long Declare Function AdDataConv Lib "FbiAdDC.DLL" (ByVal uSrcFormCode As Long, ByRef pSrcData As Any, ByVal uSrcSmplDataNum As Long, ByRef pSrcSmplReq As ADSMPLREQ, ByVal uDestFormCode As Long, ByRef pDestData As Any, ByRef puDestSmplDataNum As Long, ByRef pDestSmplReq As ADSMPLREQ, ByVal uEffect As Long, ByVal uCount As Long, ByVal lpfnConv As Long) As Long Declare Function AdReadFile Lib "FbiAdDC.DLL" (ByVal pszPathName As String, ByRef pSmplData As Any, ByVal uFormCode As Long) As Long Declare Function AdBmSetSamplingConfig Lib "fbiad.dll" (ByVal hdevicehandle As Long, ByRef pAdBmSmplConfig As ADBMSMPLREQ) As Long Declare Function AdBmGetSamplingConfig Lib "fbiad.dll" (ByVal hdevicehandle As Long, ByRef pAdBmSmplConfig As ADBMSMPLREQ) As Long Declare Function AdBmGetSamplingData Lib "fbiad.dll" (ByVal hdevicehandle As Long, ByRef pBmSmplData As Any, ByRef ulBmSmplNum As Long) As Long Declare Function AdBmStartFileSampling Lib "fbiad.dll" (ByVal hdevicehandle As Long, ByVal pszPathName As String, ByVal ulFileFlag As Long) As Long Declare Function AdLvSetSamplingConfig Lib "fbiad.dll" (ByVal hdevicehandle As Long, ByVal ulChNo As Long, ByVal ulSmplNum As Long, ByVal fSmplFreq As Single, ByVal ulRange As Long, ByVal hEvent As Long, ByVal lpCallBackProc As Long, ByVal dwUser As Long) As Long Declare Function AdLvGetSamplingConfig Lib "fbiad.dll" (ByVal hdevicehandle As Long, ByVal ulChNo As Long, ByRef ulSmplNum As Long, ByRef fSmplFreq As Single, ByRef ulRange As Long) As Long Declare Function AdLvCalibration Lib "fbiad.dll" (ByVal hdevicehandle As Long, ByVal ulChNo As Long, ByVal ulCalibration As Long) As Long Declare Function AdLvGetSamplingData Lib "fbiad.dll" (ByVal hdevicehandle As Long, ByVal ulChNo As Long, ByRef pSmplData As Any, ByRef ulSmplNum As Long) As Long Declare Function AdLvStartSampling Lib "fbiad.dll" (ByVal hdevicehandle As Long, ByVal ulChNo As Long) As Long Declare Function AdLvStopSampling Lib "fbiad.dll" (ByVal hdevicehandle As Long, ByVal ulChNo As Long) As Long Declare Function AdLvGetStatus Lib "fbiad.dll" (ByVal hdevicehandle As Long, ByVal ulChNo As Long, ByRef ulAdSmplStatus As Long, ByRef ulAdSmplCount As Long, ByRef ulAdAvailCount As Long) As Long Declare Function AdMeasureTemperature Lib "fbiad.dll" (ByVal hdevicehandle As Long, ByRef fTemperature As Single) As Long Declare Function AdAllocateSamplingBuffer Lib "fbiad.dll" (ByVal hdevicehandle As Long) As Long Declare Function AdReadSamplingBuffer Lib "fbiad.dll" (ByVal hdevicehandle As Long, ByVal lOffset As Long, ByRef ulSmplNum As Long, ByRef pSmplData As Any) As Long Declare Function AdSetRangeEvent Lib "fbiad.dll" (ByVal hdevicehandle As Long, ByVal dwEventMask As Long, ByVal dwStopMode As Long) As Long Declare Function AdGetRangeEventStatus Lib "fbiad.dll" (ByVal hdevicehandle As Long, ByRef ulEventChNo As Long, ByRef ulEventStatus As Long) As Long Declare Function AdResetRangeEvent Lib "fbiad.dll" (ByVal hdevicehandle As Long) As Long Declare Function AdGetOverRangeChStatus Lib "fbiad.dll" (ByVal hdevicehandle As Long, ByRef ulChStatusNo As Long) As Long Declare Function AdResetOverRangeCh Lib "fbiad.dll" (ByVal hdevicehandle As Long) As Long

Page 44: チュートリアル Visual BasicによるAD入門書正)gConfig.SmplChReq(1).ulRange = AD_5V 1.4 2002年10月 ・CardBus対応 ・標準モジュール、リファレンスの変更(関数の追加)

TUT-0021

Interface Corporation - 42 -

Declare Function AdSetInterval Lib "fbiad.dll" (ByVal hdevicehandle As Long, ByVal ulInterval As Long) As Long Declare Function AdGetInterval Lib "fbiad.dll" (ByVal hdevicehandle As Long, ByRef ulInterval As Long) As Long Declare Function AdSetFunction Lib "fbiad.dll" (ByVal hdevicehandle As Long, ByVal ulChNo As Long, ByVal ulFunction As Long) As Long Declare Function AdGetFunction Lib "fbiad.dll" (ByVal hdevicehandle As Long, ByVal ulChNo As Long, ByRef ulFunction As Long) As Long Declare Function AdSetFilter Lib "fbiad.dll" (ByVal hdevicehandle As Long, ByVal ulFilter As Long) As Long Declare Function AdGetFilter Lib "fbiad.dll" (ByVal hdevicehandle As Long, ByRef ulFilter As Long) As Long Declare Function AdMemSetSamplingConfig Lib "fbiad.dll" (ByVal hdevicehandle As Long, ByRef pAdMemSmplConfig As ADMEMSMPLREQ) As Long Declare Function AdMemGetSamplingConfig Lib "fbiad.dll" (ByVal hdevicehandle As Long, ByRef pAdMemSmplConfig As ADMEMSMPLREQ) As Long Declare Function AdSetOutMode Lib "fbiad.dll" (ByVal hdevicehandle As Long, ByVal ulExTrgMode As Long, ByVal ulExClkMode As Long) As Long Declare Function AdGetOutMode Lib "fbiad.dll" (ByVal hdevicehandle As Long, ByRef ulExTrgMode As Long, ByRef ulExClkMode As Long) As Long Declare Function AdMemSetDiPattern Lib "fbiad.dll" (ByVal hdevicehandle As Long, ByVal ulCh As Long, ByRef ulPatternTrig As Long) As Long Declare Function AdMemGetDiPattern Lib "fbiad.dll" (ByVal hdevicehandle As Long, ByRef ulPatternTrig As Long) As Long Declare Function AdCommonGetPciDeviceInfo Lib "fbiad.dll" (ByVal hdevicehandle As Long, ByRef dwDeviceID As Long, ByRef dwVendorID As Long, ByRef dwClassCode As Long, ByRef dwRevisionID As Long, ByRef dwBaseAddress0 As Long, ByRef dwBaseAddress1 As Long, ByRef dwBaseAddress2 As Long, ByRef dwBaseAddress3 As Long, ByRef dwBaseAddress4 As Long, ByRef dwBaseAddress5 As Long, ByRef dwSubsystemID As Long, ByRef dwSubsystemVendorID As Long, ByRef dwInterruptLine As Long, ByRef dwBoardID As Long) As Long Declare Function AdFifoGetSamplingData Lib "fbiad.dll" (ByVal hdevicehandle As Long, ByRef pSmplData As Any, ByRef pDiData As Any, ByRef ulSmplNum As Long) As Long Declare Function AdBmStartSampling Lib "fbiad.dll" (ByVal hdevicehandle As Long, ByRef pBmSmplData As Any, ByVal ulSize As Long) As Long Declare Function CreateEvent Lib "kernel32" Alias "CreateEventA" (ByVal lpEventAttributes As Long, ByVal ManualReset As Long, ByVal bInitialState As Long, ByVal lpName As String) As Long Declare Function WaitForSingleObject Lib "kernel32" (ByVal hHandle As Long, ByVal dwMilliseconds As Long) As Long Declare Function CloseHandle Lib "kernel32" (ByVal hObject As Long) As Long Declare Function ResetEvent Lib "kernel32" (ByVal hEvent As Long) As Long

本コードは、製品に添付されるサンプルプログラムに、同じものが記載されております。また、

弊社Web siteからもダウンロードできますので、それを流用してください。

注意!

製品に添付されるサンプルプログラムは、プログラム中のコメントが全て英文となります。

Page 45: チュートリアル Visual BasicによるAD入門書正)gConfig.SmplChReq(1).ulRange = AD_5V 1.4 2002年10月 ・CardBus対応 ・標準モジュール、リファレンスの変更(関数の追加)

TUT-0021

- 43 - Interface Corporation

Step 3.初期化処理と終了処理

ここでは、実際のプログラム作成を行う前に、AD製品の初期化処理と終了処理に関して、知っておかなければならないこと、および制約事項について記載します。 AD製品の制御を行うには、まずインタフェースモジュールの初期化を行わなければなりません。インタフェースモジュールの初期化は以下のコード(List 1-2)により行います。

(List 1-2:インタフェースモジュールの初期化) Dim lpszName As String Dim hDeviceHandle as Long 'インタフェースモジュール初期化を行います lpszName = "FBIAD1" hDeviceHandle = AdOpen(lpszName)

このとき、文字列変数lpszNameに設定する値は、使用するインタフェースモジュールのデバイス名を指定します。デバイス名は、「システムのプロパティ」の「デバイス マネージャ」より確認できます。

ここに表示

されます

Page 46: チュートリアル Visual BasicによるAD入門書正)gConfig.SmplChReq(1).ulRange = AD_5V 1.4 2002年10月 ・CardBus対応 ・標準モジュール、リファレンスの変更(関数の追加)

TUT-0021

Interface Corporation - 44 -

インタフェースモジュールの初期化はAdOpen関数により行います。

また、アプリケーションの終了時、もしくは処理の終了時に、インタフェースモジュールに対し

て必ず終了処理を行わなければなりません。 インタフェースモジュールの終了処理は以下のコード(List 1-3)により行います。

(List 1-3:インタフェースモジュールの終了処理) ‘終了処理 Dim nRet As Integer nRet = AdClose(hDeviceHandle)

インタフェースモジュールの終了処理はAdClose関数より行います。ここで、注意しなければならないのは、設定する引数のhDeviceHandleです。hDeviceHandle にはインタフェースモジュール初期化の際の、AdOpen関数の戻り値を指定します。AdOpen実行時、その戻り値であるhDeviceHandleには有効なハンドル(番号)が格納されています(List 1-2参照)。ハンドルとは使用するデバイスの接続に関する情報が格納されたメモリ領域を、識別するための値を示します。 プログラム作成時、このhDeviceHandleの値が、終了処理を行うデバイスの、AdOpen実行時に取得された値となるよう、AdOpenとAdCloseは必ず組になるようにしてください。

AdOpen

AdClose

ハンドル

「使用例」

hDeviceHandle = AdOpen(lpszName)

デバイスハンドルを格納する長整数(Long)型の変数を指定します。

使用する製品のデバイス名を指定します。

「使用例」

nRet = AdClose(hDeviceHandle)

関数が失敗するとエラーコードが格納されます。

製品のオープン時に取得したデバイスハンドルを指定します。

Page 47: チュートリアル Visual BasicによるAD入門書正)gConfig.SmplChReq(1).ulRange = AD_5V 1.4 2002年10月 ・CardBus対応 ・標準モジュール、リファレンスの変更(関数の追加)

TUT-0021

- 45 - Interface Corporation

では、実際にインタフェースモジュールの初期化と終了を行うプログラムを作成します。 1. フォーム(frmAdTest)をダブルクリックしコードエディタウィンドウを開き、フォームのGeneralセクションにList 1-4を記述します。 コードエディタウィンドウのオブジェクトボックス, プロシージャボックスが、それそれ「(General)」と「(Declarations)」となる個所に記述します。

2. フォーム(frmAdTest)のLoadイベントにList 1-5を記述します。 3. フォーム(frmAdTest)のUnloadイベントにList 1-6を記述します。

(List 1-4フォーム(frmAdTest)の Generalセクションのコード) Dim nRet As Long ' 関数戻り値 Dim lpszName As String ' デバイス名 Dim hDeviceHandle As Long ' デバイスハンドル Dim hCannel As Long ' チャンネル番号 Dim gConfig As ADSMPLREQ ' ADSMPLREQ構造体 Dim gInfo As ADBOARDSPEC ' ADBOARDSPEC構造体 (List 1-5フォーム(frmAdTest)の Loadイベントのコード) Private Sub Form_Load() lpszName = "FBIAD1" hDeviceHandle = AdOpen(lpszName) If hDeviceHandle = -1 Then MsgBox "インタフェースモジュールの初期化に失敗しました" End Else ' サンプリング設定情報読み出し nRet = AdGetSamplingConfig(hDeviceHandle, gConfig) If nRet <> AD_ERROR_SUCCESS Then MsgBox "サンプリング設定情報取得に失敗しました" End If nRet = AdGetDeviceInfo(hDeviceHandle, gInfo) If nRet <> AD_ERROR_SUCCESS Then MsgBox "デバイスの情報取得に失敗しました" End If End If End Sub (List 1-6フォーム(frmAdTest)の Unloadイベントのコード) Private Sub Form_Unload(Cancel As Integer) '終了処理 nRet = AdClose(hDeviceHandle) End Sub

プログラムの入力が終わって保存した後、プログラムを実行してみてください。何もエラーが表

示されなければ、インタフェースモジュールの初期化および終了処理部分のプログラムは完成で

す。 List 1-5にAdGetSamplingConfig関数、およびAdGetDeviceInfoの呼び出しを行う記述がありますが、ここでは、これから使用する構造体に初期値を格納しています。通常のアプリケーション作成に

おいて、必ずしも必要な手続きではありません。

Page 48: チュートリアル Visual BasicによるAD入門書正)gConfig.SmplChReq(1).ulRange = AD_5V 1.4 2002年10月 ・CardBus対応 ・標準モジュール、リファレンスの変更(関数の追加)

TUT-0021

Interface Corporation - 46 -

Step 4.サンプリング

1. フォーム上にコマンドボタン(CommandButton)コントロールを描画し、オブジェクト名を「cmdInputAD」に、Captionプロパティを「アナログ入力」に変更します。 2. 作成したコマンドボタン(cmdInputAD)のClickイベントにList 1-7を記述します。

(List 1-7コマンドボタン(cmdInputAD)の Clickイベントのコード) Private Sub cmdInputAD_Click() Dim nRet As Long Dim SmplChInf As ADSMPLCHREQ Dim SmpData(1) As Integer Dim szDisp As String SmplChInf.ulChNo = 1 SmplChInf.ulRange = AD_5V 'サンプリング nRet = AdInputAD(hDeviceHandle, 1, gConfig.ulSingleDiff, SmplChInf, SmpData(0)) If nRet <> AD_ERROR_SUCCESS Then MsgBox "アナログ入力に失敗しました" Exit Sub Else '電圧算出 szDisp = Format(10 / (2 ^ gInfo.ulResolution - 1) * SmpData(0) - 5, "#0.000") MsgBox "入力電圧は " & szDisp & " V です。" End If End Sub

プログラムの入力が終わったら、保存した後、プログラムを実行してください。 次に、ファンクションジェネレータよりアナログ波形を出力後、「アナログ入力」ボタンをクリ

ックしてください。 ボタンをクリックした時点でのAD製品への入力電圧が表示されます。

では、List 1-7の処理を読み取ってみましょう。List 1-7では、まず、サンプリングを行う際の条件を設定設定しています。

SmplChInf.ulChNo = 1 SmplChInf.ulRange = AD_5V

上記は、アナログ入力を行う入力チャンネル番号とそのチャンネルのレンジを指定しています。

サンプリング条件は、ADSMPLCHREQ構造体に定義します。その他の設定内容はインタフェースモジュールの初期値を使用しています。サンプリングを行う際は、その環境に適した条件を設定

しなければなりません。

Page 49: チュートリアル Visual BasicによるAD入門書正)gConfig.SmplChReq(1).ulRange = AD_5V 1.4 2002年10月 ・CardBus対応 ・標準モジュール、リファレンスの変更(関数の追加)

TUT-0021

- 47 - Interface Corporation

次に、プログラムはアナログデータ取得を行っています。1件のみのアナログデータの入力には、AdInputAD関数を使用します。

「使用例」

nRet = AdInputAD(hDeviceHandle, 1, AD_INPUT_SINGLE, SmplChInf, SmpData(0))

関数が失敗するとエラーコードが格納されます。

オープン時に取得したデバイスハンドルを指定します。

アナログデータを格納するバッファを指定します。

入力方式を指定します。

ADSMPLCHREQ 構造体を指定します。

入力されたアナログデータは配列変数SmpData(0)に格納されています。 ところでSmpData(0)にはAD製品の分解能に応じたバイナリデータが格納されています。従って、実際の数式処理等においては、この読み取った値を物理量に変換する必要があります。 List 1-7では、電圧バイポーラ±5 Vでのサンプリングを行っているので、変換式は下式となります。

52

10 −×= サンプリングデータ物理量分解能

Page 50: チュートリアル Visual BasicによるAD入門書正)gConfig.SmplChReq(1).ulRange = AD_5V 1.4 2002年10月 ・CardBus対応 ・標準モジュール、リファレンスの変更(関数の追加)

TUT-0021

Interface Corporation - 48 -

5.2 アナログ入力[2]

『31ページ 5.1 アナログ入力[1]』では、アナログデータを1件のみ取得する方法を記載しましたが、ここでは、2つのチャンネルを使用して任意の周期でサンプリングを行い、その結果をグラフに表示する、言い換えればオシロスコープの簡易版となるプログラムの作成を行います。

Step 1.基本フォーム作成

ここでは、これから作成するプログラムの画面作成を行います。(『31ページ 5.1 アナログ入力[1]』のStep1~Step3を参照してください) 1. Visual Basicを起動し、新しい標準EXEプロジェクトを作成します。 2. 既定のフォームの名前を“frmAdTest”に変更し、フォームのタイトルを"波形表示"に変更します。 3. 作成したフォーム(frmAdTest)上にピクチャボックス(PictureBox)コントロールを描画し、オブジェクト名を「picGraph」に変更します。

4. ピクチャボックス(PictureBox)コントロールのBackColorプロパティを「&H00000000&」に変更します。

5. プロジェクトに標準モジュールを追加します。 6. 標準モジュールにList 1-1を追加します。 7. フォーム(frmAdTest)をダブルクリックしコードエディタウィンドウを開き、フォームのGeneralセクションにList 1-4を記述します。

8. フォーム(frmAdTest)のLoadイベントにList 1-5を記述します。 9. フォーム(frmAdTest)のUnloadイベントにList 1-6を記述します。

Page 51: チュートリアル Visual BasicによるAD入門書正)gConfig.SmplChReq(1).ulRange = AD_5V 1.4 2002年10月 ・CardBus対応 ・標準モジュール、リファレンスの変更(関数の追加)

TUT-0021

- 49 - Interface Corporation

Step 2.サンプリング

1. フォーム上にコマンドボタン(CommandButton)コントロールを描画し、オブジェクト名を「cmdSampling」に、Captionプロパティを「アナログ入力」に変更します。 2. 作成したコマンドボタン(cmdSampling)のClickイベントにList 2-1を記述します。

(List 2-1コマンドボタン(cmdSampling)の Clickイベントのコード) Private Sub cmdSampling_Click() Dim bSmpData(4096) As Byte ' データ格納用変数(分解能8ビット) Dim wSmpData(4096) As Integer ' データ格納用変数(分解能12,16ビット) Dim dwSmpData(4096) As Long ' データ格納用変数(分解能24ビット) Dim dwData(4096) As Long ' グラフ描画用データ格納用変数 Dim dwLength As Long ' データ数 Dim i, j As Long ' 繰り返し用変数 Dim pX1, pY2, bpX1, bpX2, bpY1, bpY2 As Long ' グラフ描画用 Dim nResolution As Long ' 分解能 'インタフェースモジュール情報取得 nResolution = 2 ^ gInfo.ulResolution ' サンプリング条件設定 gConfig.ulChCount = 2 gConfig.SmplChReq(0).ulChNo = 1 gConfig.SmplChReq(1).ulChNo = 2 gConfig.SmplChReq(0).ulRange = AD_5V gConfig.SmplChReq(1).ulRange = AD_5V gConfig.fSmplFreq = 5000 gConfig.ulSmplNum = 1024 nRet = AdSetSamplingConfig(hdevicehandle, gConfig) If nRet <> AD_ERROR_SUCCESS Then MsgBox "サンプリング条件設定に失敗しました" Exit Sub End If ' 連続サンプリングを開始します nRet = AdStartSampling(hdevicehandle, FLAG_SYNC) If nRet <> AD_ERROR_SUCCESS Then MsgBox "サンプリングに失敗しました" Exit Sub End If ' サンプリングデータを取得します dwLength = gConfig.ulSmplNum ' 分解能が8Bitのインタフェースモジュールの時は、第2引数をbSmpDataに変更してください nRet = AdGetSamplingData(hdevicehandle, wSmpData(0), dwLength) If nRet <> AD_ERROR_SUCCESS Then MsgBox "サンプリングデータ取得に失敗しました" Exit Sub End If ' 分解能が16Bitの場合オーバーフローするので、データを32ビット配列へ格納 For j = 0 To dwLength If wSmpData(j) < 0 Then dwData(j) = 65536 + wSmpData(j) Else dwData(j) = wSmpData(j) End If Next j ' 取得したデータをグラフに描画します。 picGraph.Cls ' 画面初期化 pXMax = picGraph.Width pYMax = picGraph.Height picGraph.DrawWidth = 2 picGraph.Cls ' 画面初期化 '描画する波形の初期値を設定します bpY1 = picGraph.Height - (pYMax / nResolution) * dwData(0) bpX1 = 0 bpY2 = picGraph.Height - (pYMax / nResolution) * dwData(1) bpX2 = 0 '中心に線を描画します picGraph.Line (0, picGraph.Height / 2)-(picGraph.Width, picGraph.Height / 2), QBColor(5)

Page 52: チュートリアル Visual BasicによるAD入門書正)gConfig.SmplChReq(1).ulRange = AD_5V 1.4 2002年10月 ・CardBus対応 ・標準モジュール、リファレンスの変更(関数の追加)

TUT-0021

Interface Corporation - 50 -

'サンプリングデータを描画します For i = 0 To gConfig.ulSmplNum - 1 ' チャンネル1の描画 pY1 = picGraph.Height - (pYMax / nResolution) * dwData(i * 2) pX1 = (i * 2) * (pXMax / gConfig.ulSmplNum) picGraph.Line (bpX1, bpY1)-(pX1, pY1), QBColor(10) bpX1 = pX1 bpY1 = pY1 ' チャンネル2の描画 pY2 = picGraph.Height - (pYMax / nResolution) * dwData(i * 2 + 1) pX2 = (i * 2 + 1) * (pXMax / gConfig.ulSmplNum) picGraph.Line (bpX2, bpY2)-(pX2, pY2), QBColor(7) bpX2 = pX2 bpY2 = pY2 Next i End Sub

プログラムの入力が終わったら、保存した後、プログラムを実行し、「アナログ入力」ボタンを

クリックしてください。ファンクションジェネレータから出力されている信号がフォームに描画

されます。

では、List 2-1の処理を読み取ってみましょう。

List 2-1では、まず後のデータ処理に使用する、インタフェースモジュールの分解能の情報を取得しています。インタフェースモジュールの情報はList 1-5においてAdGetDeviceInfo関数にて取得し、ADBOARDSPEC構造体(サンプルコードではgInfoに定義しています)に格納されています。 従って、gInfo. ulResolutionを読み出すことでインタフェースモジュールの分解能をビット数で取得することができます。 この読み取った値をもとに2のべき乗を求めることで、インタフェースモジュールより取得できる最大値を取得することができます。 次に、プログラムはこれから行う2チャンネル分のサンプリング条件を設定しています。サンプリングの条件設定にはAdSetSamplingConfig関数を使用します。

「使用例」

nRet = AdSetSamplingConfig(hDeviceHandle, gConfig)

関数が失敗するとエラーコードが格納されます。

オープン時に取得したデバイスハンドルを指定します。

サンプリング条件設定構造体を指定します。

Page 53: チュートリアル Visual BasicによるAD入門書正)gConfig.SmplChReq(1).ulRange = AD_5V 1.4 2002年10月 ・CardBus対応 ・標準モジュール、リファレンスの変更(関数の追加)

TUT-0021

- 51 - Interface Corporation

サンプリング条件のパラメータはサンプリング条件設定構造体(ADSMPLREQ構造体)に設定します。List 2-1ではADSMPLREQ構造体をgConfig変数に定義しパラメータの設定を行っています。 gConfig.ulChCount = 2 ‘チャンネル数=2 gConfig.SmplChReq(0).ulChNo = 1 ‘入力チャンネル=チャンネル1 gConfig.SmplChReq(1).ulChNo = 2 ‘入力チャンネル=チャンネル2 gConfig.SmplChReq(0).ulRange = AD_5V ‘チャンネル1の入力レンジ=±5 V gConfig.SmplChReq(1).ulRange = AD_5V ‘チャンネル2の入力レンジ=±5 V gConfig.fSmplFreq = 5000 ‘サンプリングレート= 5 kHz gConfig.ulSmplNum = 1024 ‘入力件数=1024 件

上記設定は、上から、「チャンネル数を2」, 「入力チャンネルをチャンネル1,2」, 「入力レンジをそれぞれ±5 V」, 「サンプリングレートを5kHz」, 「入力件数を1024件」を意味しています。 ADSMPLREQ構造体でのその他のパラメータに関しては本サンプルプログラムでは初期値を適用しています(List 1-5)。 設定項目の詳細に関しては、HelpのADSMPLREQ構造体およびADSMPLCHREQ構造体の項目を参照してください。 ではList 2-1において設定したサンプリング条件についてみてみましょう。 まず、入力チャンネル(ulChNo)と入力レンジ(ulRange)ですが、チャンネル1,2において±2.5 Vの信号の入力を行うので、それぞれ、「1」と、上下限に余裕を加味し「AD_5V」を設定しています。AD_5VはList 1-1で宣言した定数です。 次にサンプリングレート(fSmplFreq)は、データをどういった間隔でインタフェースモジュールに取り込むかを「Hz」を単位として設定します。ここでは5000(=5 kHz)※を設定していますので、サンプリング時には「0.2ms[=1/(5 kHz)]」ごとにデータが取り込まれます。

0 0.2 0.4 0.6 ・・・・・・・・・ 単位: ms

1回目の入力

2回目の入力

・・・・・・・・・

1024回目の入力

入力値

&H0

&HFFF

チャンネル 1の

データ

チャンネル 2の

データ

※ fSmplFreqに設定できる最大値は、使用する製品およびコンピュータのスペックにより異なります。本チュートリアルで使用したPCI-3135の場合、約100kHz(100000Hz)まで設定可能です。また、同時変換の製品の場合は上図のようにチャンネル1と2を同じタイミングで読み込みますが、それ以外の製品の場合、チャンネル1と2の間にタイムラグが発生します。

Page 54: チュートリアル Visual BasicによるAD入門書正)gConfig.SmplChReq(1).ulRange = AD_5V 1.4 2002年10月 ・CardBus対応 ・標準モジュール、リファレンスの変更(関数の追加)

TUT-0021

Interface Corporation - 52 -

次にプログラムは、データの取り込みを開始します。データ取り込みの開始は、AdStartSampling関数で行います。

本関数を実行後、サンプリングが開始されアナログデータがバッファに取り込まれます。 第2引数の同期/非同期フラグですが、同期(FLAG_SYNC)に設定した場合、先に設定した入力件数(1024件)の入力が完了するまで、アプリケーション側に処理が戻りません。非同期(FLAG_ASYNC)に設定した場合、サンプリング完了はイベントで通知されます。イベントの検知にはWin32APIのWaitForSingleObject関数を使用します。 バッファに取り込まれたデータを、取得するには、AdGetSamplingData関数を使用します。

本関数実行後、インタフェースモジュールより取り込まれたアナログデータが第2引数の配列変数SmpData()※に格納されます。第3引数にはその配列変数に格納する有効なデータ件数を指定します。

<2チャンネルでのサンプリングの場合> SmpDate(0) : チャンネル1の1件目 SmpDate(1) : チャンネル2の1件目 SmpDate(2) : チャンネル1の2件目 SmpDate(3) : チャンネル2の2件目 SmpDate(4) : チャンネル1の3件目 SmpDate(5) : チャンネル2の3件目 : :

の順にデータが変数に格納されていきます。 配列変数SmplData()はサンプル中では整数型(Integer)で宣言していますが、分解能が24ビットの製品をご利用の場合、長整数型(Long)で宣言してください。 最後に、プログラムはこの取得した値をもとにグラフの描画を行っています。

「使用例」

nRet = AdStartSampling(hDeviceHandle, FLAG_SYNC)

関数が失敗するとエラーコードが格納されます。

オープン時に取得したデバイスハンドルを指定します。

同期/非同期フラグを指定します。

「使用例」

nRet = AdGetSamplingData(hDeviceHandle, SmpData(0), nLength)

関数が失敗するとエラーコードが格納されます。

オープン時に取得したデバイスハンドルを指定します。

入力データを格納する配列変数を指定します。

取得する件数を指定します。

Page 55: チュートリアル Visual BasicによるAD入門書正)gConfig.SmplChReq(1).ulRange = AD_5V 1.4 2002年10月 ・CardBus対応 ・標準モジュール、リファレンスの変更(関数の追加)

TUT-0021

- 53 - Interface Corporation

5.3 ファイル出力

FbiAd.DLLでは、AD製品に入力されるアナログデータをCSV(Comma Separated Value)形式でファイルに保存することが可能です。CSV形式で保存されたファイルはMicrosoft Excel等で容易に分析/解析等を行うことができます。以下にその方法を記載します

1. 『48ページ 5.2 アナログ入力[2]』で作成したフォーム上にコマンドボタン(CommandButton)コントロールを描画し、オブジェクト名を「cmdFileOut」に、Captionプロパティを「CSV作成」に変更します。

2. 作成したコマンドボタン(cmdFileOut)のClickイベントにList 3-1を記述します。

(List 3-1コマンドボタン(cmdFileOut)の Clickイベントのコード) Private Sub cmdFileOut_Click() Dim nRet As Long Dim pszFname As String 'インタフェースモジュール情報取得 nResolution = 2 ^ gInfo.ulResolution ' サンプリング条件設定 gConfig.ulChCount = 2 gConfig.SmplChReq(0).ulChNo = 1 gConfig.SmplChReq(1).ulChNo = 2 gConfig.ulSmplNum = 1024 gConfig.fSmplFreq = 5000 gConfig.SmplChReq(0).ulRange = AD_5V gConfig.SmplChReq(1).ulRange = AD_5V nRet = AdSetSamplingConfig(hdevicehandle, gConfig) If nRet <> AD_ERROR_SUCCESS Then MsgBox "サンプリング条件設定に失敗しました" Exit Sub End If pszFname = "DATA.CSV" & Chr(0) nRet = AdStartFileSampling(hdevicehandle, pszFname, FLAG_CSV) If nRet <> AD_ERROR_SUCCESS Then MsgBox "CSV作成に失敗しました" Exit Sub End If End Sub

プログラムの入力が終わったら、保存した後、プログラムを実行し、「CSV作成」ボタンをクリックしてください。プロジェクトのカレントパスに「DATA.CSV」というファイルが作成されます。

Page 56: チュートリアル Visual BasicによるAD入門書正)gConfig.SmplChReq(1).ulRange = AD_5V 1.4 2002年10月 ・CardBus対応 ・標準モジュール、リファレンスの変更(関数の追加)

TUT-0021

Interface Corporation - 54 -

このファイルを、Microsoft Excel等で開くとチャンネル1から入力された電圧(サンプルでは0.2msごとの電圧の変化)を確認することができます。

サンプリングデータのファイルへの出力にはAdStartFileSampling関数を使用します。

本関数実行後、AdSetSamplingConfig関数で定義された条件によるサンプリングが開始され、その結果がファイルに出力されます。 CSV形式でデータを保存する場合、取り込んだデータ(バイナリ値)をDLL内部で物理量に変換するためオーバーヘッドがかかり、設定したサンプリングレートでサンプリングが行えない場合があ

ります。

「使用例」

nRet = AdStartFileSampling(hDeviceHandle, pszFname, FLAG_CSV)

関数が失敗するとエラーコードが格納されます。

オープン時に取得したデバイスハンドルを指定します。

データファイルのファイルパスを指定します。

ファイル形式を指定します。

Page 57: チュートリアル Visual BasicによるAD入門書正)gConfig.SmplChReq(1).ulRange = AD_5V 1.4 2002年10月 ・CardBus対応 ・標準モジュール、リファレンスの変更(関数の追加)

TUT-0021

- 55 - Interface Corporation

5.4 同期化処理

弊社インタフェースモジュールでは、同一型式のインタフェースモジュールを複数枚使用して、

同じクロックでサンプリングを行う同期化処理をサポートしています。 複数枚のインタフェースモジュールを同じコンピュータ上で使用して、同じクロックでサンプリ

ングを行うためには、全インタフェースモジュールに外部クロックを入力しトリガによりスター

トさせるか、同期化を使用する方法があります。以下に同期化を使用した方法を記載します。 1. 同じコンピュータ上に、同期化処理を行うためのインタフェースモジュールを複数枚(ここでは

2枚)用意します。インタフェースモジュール上の同期用コネクタ間を専用のケーブルで接続してください。(下図参照)※

複数枚で同期アナログ入出力を行うには、AD/DA同期化ケーブル(COP-3801、またはCOP-3804)でインタフェースモジュール同士を接続する必要があります。複数枚のインタフェースモジュー

ルのうち1枚をマスタとして使用し、残りのインタフェースモジュールをスレーブとして使用します。(マスタ/スレーブの設定はソフトウェアにより行います。)

機 能 説 明 マスタ 同期信号を出力するインタフェースモジュールです。本製品自身も、同期信号に同

期してアナログ入出力を行います。接続されているインタフェースモジュールにおいて、1枚のみ設定可能です。

スレーブ マスタが出力する同期信号に同期してアナログ入出力を行います。 ①全てのインタフェースモジュールID(PCIインタフェースモジュール識別用ロータリスイッチ)の設定を行います。設定方法については『各部説明』を参照してください。

②必要な枚数の製品を拡張用スロットへ差し込みます。

③全てのインタフェースモジュールパネルをビス留めしてください。

④マスタとして使用するインタフェースモジュールのCN3(白)に同期化ケーブルの白コネクタを接続し、青コネクタをスレーブ1のCN2(青)に接続してください。

⑤3枚以上の場合、図のように、スレーブn-1のCN3(白)に同期化ケーブルの白コネクタを接続し、青コネクタをスレーブnのCN2(青)に接続するというように、それぞれのインタフェースモジュールをカスケードに接続してください。

Page 58: チュートリアル Visual BasicによるAD入門書正)gConfig.SmplChReq(1).ulRange = AD_5V 1.4 2002年10月 ・CardBus対応 ・標準モジュール、リファレンスの変更(関数の追加)

TUT-0021

Interface Corporation - 56 -

<接続例>

マスタ

スレーブ 1

スレーブ 2

スレーブ n-1

スレーブ n

※ 写真の外観は、実際にご使用にな

る製品と異なる場合があります。

← COP-3801

注意!

同期化ケーブルの接続は、図のように隣接するスロット間で行ってください。

3枚以上のインタフェースモジュールをカスケード接続する場合、先頭のインタフェースモジュー

ルのみマスタに設定してください。

ソフトウェアにて複数枚同期アナログ入出力を使用する場合、それぞれのインタフェースモジ

ュールで使用するチャンネル数は全て同じにしてください。

複数枚同期アナログ入出力は、同一型式でのみ動作します。他の型式のインタフェースモ ジュールは、接続しないでください。

複数枚同期アナログ入出力の最大枚数は、16枚となっています。ただし、利用可能なPCIス ロットの数に制限される場合があります。

色の異なるコネクタには、絶対に接続しないでください。故障,破損の原因となります。

インタフェースモジュール上のクロックにてサンプリング動作する方をマスタ、相手のクロックでサンプリング動作する方をスレーブと呼びます。

※ 製品によって同期化をサポートしていないものがあります。 詳細は、GPC-3100のHelpを参照してください。

Page 59: チュートリアル Visual BasicによるAD入門書正)gConfig.SmplChReq(1).ulRange = AD_5V 1.4 2002年10月 ・CardBus対応 ・標準モジュール、リファレンスの変更(関数の追加)

TUT-0021

- 57 - Interface Corporation

2. フォームを作成します。 『48ページ 5.2 アナログ入力[2]』のStep1. 1~6の手順でフォームを作成してください。

3. フォーム(frmAdTest)をダブルクリックしコードエディタウィンドウを開き、フォームのGeneralセクションにList 4-1を記述します。

(List 4-1フォーム(frmAdSmp3)の Generalセクションのコード) Dim nRet As Long Dim lpszName1 As String ' Device Name 1 Dim lpszName2 As String ' Device Name 2 Dim hdevicehandle_master As Long ' Device handle master Dim hdevicehandle_slave As Long ' Device handle slave Dim hChannel As Long ' Channel number Dim gConfig_master As ADSMPLREQ ' Sampling request condition structure master Dim gConfig_slave As ADSMPLREQ ' Sampling request condition structure slave Dim gInfo_master As ADBOARDSPEC ' Board Spec master Dim gInfo_slave As ADBOARDSPEC ' Board Spec slave

4. フォーム(frmAdTest)のLoadイベントにList 4-2を記述します。 lpszName1, lpszName2には、それぞれマスタインタフェースモジュールのデバイス名、スレーブインタフェースモジュールのデバイス名を入れてください。

(List 4-2フォーム(frmAdSmp3)の Loadイベントのコード) Private Sub Form_Load() Dim szMode As String Dim szTop As String Dim szMid As String Dim szBtm As String lpszName1 = "FBIAD1" lpszName2 = "FBIAD2" hdevicehandle_master = AdOpen(lpszName1) hdevicehandle_slave = AdOpen(lpszName2) If hdevicehandle_master = -1 Then MsgBox "マスタインタフェースモジュールの初期化に失敗しました" End ElseIf hdevicehandle_slave = -1 Then MsgBox "スレーブインタフェースモジュールの初期化に失敗しました" End Else ' Read a sampling request condition nRet = AdGetSamplingConfig(hdevicehandle_master, gConfig_master) If nRet <> AD_ERROR_SUCCESS Then MsgBox "マスタインタフェースモジュールのサンプリング情報取得に失敗しました" End If nRet = AdGetSamplingConfig(hdevicehandle_slave, gConfig_slave) If nRet <> AD_ERROR_SUCCESS Then MsgBox "スレーブインタフェースモジュールのサンプリング情報取得に失敗しました" End If nRet = AdGetDeviceInfo(hdevicehandle_master, gInfo_master) If nRet <> AD_ERROR_SUCCESS Then MsgBox "マスタインタフェースモジュールのデバイス情報取得に失敗しました" End If nRet = AdGetDeviceInfo(hdevicehandle_slave, gInfo_slave) If nRet <> AD_ERROR_SUCCESS Then MsgBox "スレーブインタフェースモジュールのデバイス情報取得に失敗しました" End If End If End Sub

5. フォーム(frmAdTest)のUnloadイベントにList 4-3を記述します。

(List 4-3フォーム(frmAdSmp3)の Unloadイベントのコード) Private Sub Form_Unload(Cancel As Integer) '終了処理 nRet = AdClose(hdevicehandle_master) nRet = AdClose(hdevicehandle_slave) End Sub

Page 60: チュートリアル Visual BasicによるAD入門書正)gConfig.SmplChReq(1).ulRange = AD_5V 1.4 2002年10月 ・CardBus対応 ・標準モジュール、リファレンスの変更(関数の追加)

TUT-0021

Interface Corporation - 58 -

6. サンプリング 『48ページ 5.2 アナログ入力[2]』のStep 2.と同様に、ボタンを作成し、作成したコマンドボタン(cmdSampling)のClickイベントにList 4-4を記述します。

(List 4-4コマンドボタン(cmdSampling)の Clickイベントのコード) Private Sub cmdSampling_Click() Dim nRet As Long Dim bSmpData1(4096) As Byte Dim wSmpData1(4096) As Integer Dim dwSmpData1(4096) As Long Dim bSmpData2(4096) As Byte Dim wSmpData2(4096) As Integer Dim dwSmpData2(4096) As Long Dim dwLength As Long Dim dwData(4096) As Long Dim i, j As Long ' 繰り返し用変数 Dim pX1, pY2, bpX1, bpX2, bpY1, bpY2 As Long ' グラフ描画用 Dim cSamp As Integer Dim nResolution1 As Long Dim nResolution2 As Long Dim hEvent As Long Dim pszFname As String 'インタフェースモジュール情報取得 nResolution1 = 2 ^ gInfo_master.ulResolution nResolution2 = 2 ^ gInfo_slave.ulResolution ' マスタインタフェースモジュールのサンプリング条件設定 gConfig_master.ulChCount = 1 gConfig_master.SmplChReq(0).ulChNo = 1 gConfig_master.SmplChReq(0).ulRange = AD_5V gConfig_master.ulSmplNum = 1024 gConfig_master.fSmplFreq = 5000 nRet = AdSetSamplingConfig(hdevicehandle_master, gConfig_master) If nRet <> AD_ERROR_SUCCESS Then MsgBox "マスタインタフェースモジュールのサンプリング条件設定に失敗しました" Exit Sub End If ' スレーブインタフェースモジュールのサンプリング条件設定 gConfig_slave.ulChCount = 1 gConfig_slave.SmplChReq(0).ulChNo = 1 gConfig_slave.SmplChReq(0).ulRange = AD_5V gConfig_slave.ulSmplNum = 1024 gConfig_slave.fSmplFreq = 5000 nRet = AdSetSamplingConfig(hdevicehandle_slave, gConfig_slave) If nRet <> AD_ERROR_SUCCESS Then MsgBox "スレーブインタフェースモジュールのサンプリング条件設定に失敗しました" Exit Sub End If ' イベント設定 hEvent = CreateEvent(0, True, False, 0) nRet = AdSetBoardConfig(hdevicehandle_slave, hEvent, 0, 0) If nRet <> AD_ERROR_SUCCESS Then nRet = CloseHandle(hEvent) Exit Sub End If ' スレーブ側のサンプリングを開始します nRet = AdSyncSampling(hdevicehandle_slave, AD_SLAVE_MODE) If nRet <> AD_ERROR_SUCCESS Then MsgBox "スレーブインタフェースモジュールのサンプリング開始に失敗しました" nRet = CloseHandle(hEvent) Exit Sub End If ' マスタ側のサンプリングを開始します nRet = AdSyncSampling(hdevicehandle_master, AD_MASTER_MODE) If nRet <> AD_ERROR_SUCCESS Then MsgBox "マスタインタフェースモジュールのサンプリング開始に失敗しました" nRet = CloseHandle(hEvent) Exit Sub End If ' サンプリング完了を待ちます nRet = WaitForSingleObject(hEvent, 10000) nRet = ResetEvent(hEvent) nRet = CloseHandle(hEvent) ' サンプリングデータを取得します dwLength = 1024

Page 61: チュートリアル Visual BasicによるAD入門書正)gConfig.SmplChReq(1).ulRange = AD_5V 1.4 2002年10月 ・CardBus対応 ・標準モジュール、リファレンスの変更(関数の追加)

TUT-0021

- 59 - Interface Corporation

' 分解能が8Bitのインタフェースモジュールの時は、第2引数をbSmpDataに変更してください nRet = AdGetSamplingData(hdevicehandle_master, wSmpData1(0), dwLength) If nRet <> AD_ERROR_SUCCESS Then MsgBox "マスタインタフェースモジュールのサンプリングデータ取得に失敗しました" Exit Sub End If nRet = AdGetSamplingData(hdevicehandle_slave, wSmpData2(0), dwLength) If nRet <> AD_ERROR_SUCCESS Then MsgBox "スレーブインタフェースモジュールのサンプリングデータ取得に失敗しました" Exit Sub End If ' 分解能が16Bitの場合オーバーフローするので、データを32ビット配列へ格納 For j = 0 To gConfig_master.ulSmplNum - 1 If wSmpData1(j) < 0 Then dwData(j * 2) = 65536 + wSmpData1(j) Else dwData(j * 2) = wSmpData1(j) End If If wSmpData2(j) < 0 Then dwData(j * 2 + 1) = 65536 + wSmpData2(j) Else dwData(j * 2 + 1) = wSmpData2(j) End If Next j ' 取得したデータをグラフに描画します。 picGraph.Cls ' 画面初期化 pXMax = picGraph.Width pYMax = picGraph.Height picGraph.DrawWidth = 2 picGraph.Cls ' 画面初期化 '描画する波形の初期値を設定します bpY1 = picGraph.Height - (pYMax / nResolution1) * dwData(0) bpX1 = 0 bpY2 = picGraph.Height - (pYMax / nResolution2) * dwData(1) bpX2 = 0 '中心に線を描画します picGraph.Line (0, picGraph.Height / 2)-(picGraph.Width, picGraph.Height / 2), QBColor(5) 'サンプリングデータを描画します For i = 0 To gConfig_master.ulSmplNum - 1 ' マスタインタフェースモジュールの描画 pY1 = picGraph.Height - (pYMax / nResolution1) * dwData(i * 2) pX1 = (i * 2) * (pXMax / gConfig_master.ulSmplNum) picGraph.Line (bpX1, bpY1)-(pX1, pY1), QBColor(10) bpX1 = pX1 bpY1 = pY1 ' スレーブインタフェースモジュールの描画 pY2 = picGraph.Height - (pYMax / nResolution2) * dwData(i * 2 + 1) pX2 = (i * 2 + 1) * (pXMax / gConfig_master.ulSmplNum) picGraph.Line (bpX2, bpY2)-(pX2, pY2), QBColor(7) bpX2 = pX2 bpY2 = pY2 Next i End Sub

Page 62: チュートリアル Visual BasicによるAD入門書正)gConfig.SmplChReq(1).ulRange = AD_5V 1.4 2002年10月 ・CardBus対応 ・標準モジュール、リファレンスの変更(関数の追加)

TUT-0021

Interface Corporation - 60 -

では、List 4-4の処理を読み取ってみましょう。 List 4-4は、List 1-2と処理はほぼ同じです。まず同期化を行う2枚のインタフェースモジュール(マスタ・スレーブ)のサンプリング条件を設定します。 次にイベントの設定を行います。同期処理は、サンプリング開始は非同期となり、処理がすぐ戻

るため、イベント設定により、サンプリング完了を通知するようにします。 ここではコールバック関数は使用しないので、第3, 4引数は0とします。

次にサンプリングを開始します。スレーブインタフェースモジュールはマスタインタフェースモ

ジュールから送られてくるクロックと同期してサンプリングを行うため、必ずスレーブインタフ

ェースモジュールを先に開始させます。

マスタインタフェースモジュールのサンプリング開始と同時にスレーブインタフェースモジュー

ルのサンプリングも開始されます。 サンプリング開始直後、WaitForSingleObjectというWin32APIにて、サンプリング完了を待ちます。引数は、イベントハンドルとタイムアウト時間[ms]です。 nRet = WaitForSingleObject(hEvent, 10000)

最後に、プログラムはこの取得した値をもとにグラフの描画を行っています。

「使用例」

nRet = AdSetBoardConfig(hDeviceHandle, hEvent, 0, 0)

関数が失敗すると エラーコードが格納されます。

オープン時に取得したデバイスハンドルを指定します。

サンプリング条件設定構造体を指定します。

コールバック関数に渡す32ビットの値を設定します。

サンプリング停止時に呼び出すコールバック関数のアドレスを設定します。

「使用例」

nRet = AdSyncSampling(hDeviceHandle, AD_SLAVE_MODE)

関数が失敗するとエラーコードが格納されます。

オープン時に取得したデバイスハンドルを指定します。

マスタ・スレーブを指定します。

Page 63: チュートリアル Visual BasicによるAD入門書正)gConfig.SmplChReq(1).ulRange = AD_5V 1.4 2002年10月 ・CardBus対応 ・標準モジュール、リファレンスの変更(関数の追加)

TUT-0021

- 61 - Interface Corporation

第6章 DLLリファレンス

6.1 FbiAd.DLL関数リファレンス

関数の詳細説明についてはHelpを参照してください。

6.1.1 DLL関数一覧1

【対応型式】

PCI-3120, PCI-3126, PCI-3133, PCI-3135, PCI-3155, PCI-3163, PCI-3165, PCI-3166, PCI-3168C, PCI-3170A, PCI-3171A, PCI-3172A, PCI-3173A, PCI-3177C, PCI-3178, PCI-3180, PCI-3521, PCI-3522A, PCI-3523A

No 関 数 名 機 能 1 AdOpen アナログ入力デバイスのオープンを行い、以後デバイスへのア

クセスを行えるようにします。 2 AdClose アナログ入力デバイスのクローズを行い、デバイスアクセスの

ために使用されていた各種リソースの解放を行い、以後デバイスへのアクセスを禁止します。

3 AdGetDeviceInfo アナログ入力デバイスの仕様を取得します。 4 AdSetBoardConfig アナログ入力デバイスのイベント設定を行います。 5 AdGetBoardConfig アナログ入力デバイスのイベント要因を取得します。 6 AdSetSamplingConfig アナログ入力デバイスのサンプリング条件の設定を行います。7 AdGetSamplingConfig アナログ入力デバイスの現在設定されているサンプリング条件

を取得します。 8 AdAllocateSamplingBuffer アナログ入力デバイスのサンプリングバッファを確保します。9 AdGetSamplingData アナログ入力デバイスから入力されたサンプリングデータを取

得します。 10 AdClearSamplingData サンプリング入力バッファ内のサンプリングデータをクリアし

ます。 11 AdReadSamplingBuffer サンプリングバッファに格納されているサンプリングデータを

取得します。 12 AdStartSampling アナログ入力デバイスの連続サンプリングをスタートさせま

す。 13 AdSyncSampling 複数枚同期サンプリング機能を使用したサンプリングを行いま

す。 14 AdStartFileSampling アナログ入力デバイスからのサンプリングデータをデータファ

イルに書き込みながらサンプリングを行います。 15 AdTriggerSampling トリガ(EXTRG IN)が入力されるたびに、アナログ入力デバイス

から1件のアナログ入力を行います。 16 AdMemTriggerSampling 外部トリガが入力されるたびに、アナログ入力デバイスから指

定件数のサンプリングを行います。 17 AdStopSampling アナログ入力デバイスのサンプリングを停止させます。 18 AdGetStatus アナログ入力デバイスのサンプリング動作状態を取得します。19 AdInputAD アナログ入力デバイスから1件のアナログ入力を行います。 20 AdInputDI アナログ入力デバイスのデジタル入力端子を読み出します。 21 AdOutputDO アナログ入力デバイスのデジタル出力端子へデータを出力

します。

Page 64: チュートリアル Visual BasicによるAD入門書正)gConfig.SmplChReq(1).ulRange = AD_5V 1.4 2002年10月 ・CardBus対応 ・標準モジュール、リファレンスの変更(関数の追加)

TUT-0021

Interface Corporation - 62 -

No 関 数 名 機 能 22 AdAdjustVR アナログ入力デバイスの電子ボリューム制御を行います。 23 AdDataConv アナログデータの形式を変換します。形式の変換とともにデー

タに対し平均処理やスムージング処理を行うことができます。24 AdReadFile ファイルに保存されているサンプリングデータを、指定のバッ

ファに読み込む。 25 fnConv AdDataConv関数で使用するコールバック関数のプレースホル

ダです。データ変換時にffnConv関数を呼び出すことができます。ffnConv関数は、データ1点ごとに呼び出されます。

26 CallBackProc 非同期サンプリング終了時に呼び出されるコールバック関数のプレースホルダです。非同期サンプリング終了時にCallBackProc関数を呼び出すことができます。

27 AdCommonGetPciDeviceInfo アナログ入力デバイスのリソース情報を取得します。

Page 65: チュートリアル Visual BasicによるAD入門書正)gConfig.SmplChReq(1).ulRange = AD_5V 1.4 2002年10月 ・CardBus対応 ・標準モジュール、リファレンスの変更(関数の追加)

TUT-0021

- 63 - Interface Corporation

6.1.2 DLL関数一覧2

【対応型式】

PCI-3161, CTP/CPZ-3120A, CTP/CPZ-3120B, CTP/CPZ-3120C, CTP/CPZ-3126, CTP/CPZ-3133, CTP/CPZ-3135, CTP/CPZ-3165, CTP/CPZ-3168, CTP/CPZ-3170, CTP/CPZ-3171, CTP/CPZ-3172, CTP/CPZ-3173, CTP/CPZ-3177, CTP/CPZ-3178, CTP/CPZ-3180A, CTP/CPZ-3180B, CTP/CPZ-3180C, CTP/CPZ-3521, CTP/CPZ-3522, CTP/CPZ-3523 No 関 数 名 機 能 1 AdOpen アナログ入力デバイスのオープンを行い、以後デバイスへのア

クセスを行えるようにします。 2 AdClose アナログ入力デバイスのクローズを行い、デバイスアクセスの

ために使用されていた各種リソースの解放を行い、以後デバイスへのアクセスを禁止します。

3 AdGetDeviceInfo アナログ入力デバイスの仕様を取得します。 4 AdSetBoardConfig アナログ入力デバイスのイベント設定を行います。 5 AdGetBoardConfig アナログ入力デバイスのイベント要因を取得します。 6 AdSetSamplingConfig アナログ入力デバイスのサンプリング条件の設定を行います。7 AdGetSamplingConfig アナログ入力デバイスの現在設定されているサンプリング条件

を取得します。 8 AdAllocateSamplingBuffer アナログ入力デバイスのサンプリングバッファを確保します。9 AdGetSamplingData アナログ入力デバイスから入力されたサンプリングデータを取

得します。 10 AdClearSamplingData サンプリング入力バッファ内のサンプリングデータをクリアし

ます。 11 AdReadSamplingBuffer サンプリングバッファに格納されているサンプリングデータを

取得します。 12 AdStartSampling アナログ入力デバイスの連続サンプリングをスタートさせ

ます。 13 AdStartFileSampling アナログ入力デバイスからのサンプリングデータをデータファ

イルに書き込みながらサンプリングを行います。 14 AdTriggerSampling トリガ(EXTRG IN)が入力されるたびに、アナログ入力デバイス

から1件のアナログ入力を行います。 15 AdMemTriggerSampling 外部トリガが入力されるたびに、アナログ入力デバイスから指

定件数のサンプリングを行います。 16 AdSyncSampling 複数枚同期サンプリング機能を使用したサンプリングを行い

ます。 17 AdStopSampling アナログ入力デバイスのサンプリングを停止させます。 18 AdGetStatus アナログ入力デバイスのサンプリング動作状態を取得します。19 AdInputAD アナログ入力デバイスから1件のアナログ入力を行います。 20 AdInputDI アナログ入力デバイスのデジタル入力端子を読み出します。 21 AdOutputDO アナログ入力デバイスのデジタル出力端子へデータを出力

します。 22 AdSetRangeEvent アナログ入力デバイスのフルスケール検出イベント条件の設定

を行います。 23 AdGetRangeEventStatus アナログ入力デバイスのフルスケール検出イベントのステータ

スを取得します。 24 AdResetRangeEvent アナログ入力デバイスのフルスケール検出イベントをリセット

します。

Page 66: チュートリアル Visual BasicによるAD入門書正)gConfig.SmplChReq(1).ulRange = AD_5V 1.4 2002年10月 ・CardBus対応 ・標準モジュール、リファレンスの変更(関数の追加)

TUT-0021

Interface Corporation - 64 -

No 関 数 名 機 能 25 AdAdjustVR アナログ入力デバイスの電子ボリューム制御を行います。 26 AdDataConv アナログデータの形式を変換します。形式の変換とともにデー

タに対し平均処理やスムージング処理を行うことができます。27 AdReadFile ファイルに保存されているサンプリングデータを、指定のバッ

ファに読み込む。 28 fnConv AdDataConv関数で使用するコールバック関数のプレースホル

ダです。データ変換時にffnConv関数を呼び出すことができます。ffnConv関数は、データ1点ごとに呼び出されます。

29 CallBackProc 非同期サンプリング終了時に呼び出されるコールバック関数のプレースホルダです。非同期サンプリング終了時にCallBackProc関数を呼び出すことができます。

30 AdCommonGetPciDeviceInfo アナログ入力デバイスのリソース情報を取得します。

Page 67: チュートリアル Visual BasicによるAD入門書正)gConfig.SmplChReq(1).ulRange = AD_5V 1.4 2002年10月 ・CardBus対応 ・標準モジュール、リファレンスの変更(関数の追加)

TUT-0021

- 65 - Interface Corporation

6.1.3 DLL関数一覧3

【対応型式】

PCI-3525, CPZ-3525 No 関 数 名 機 能 1 AdOpen アナログ入力デバイスのオープンを行い、以後デバイスへのア

クセスを行えるようにします。 2 AdClose アナログ入力デバイスのクローズを行い、デバイスアクセスの

ために使用されていた各種リソースの解放を行い、以後デバイスへのアクセスを禁止します。

3 AdGetDeviceInfo アナログ入力デバイスの仕様を取得します。 4 AdSetBoardConfig アナログ入力デバイスのイベント設定を行います。 5 AdGetBoardConfig アナログ入力デバイスのイベント要因を取得します。 6 AdSetSamplingConfig アナログ入力デバイスのサンプリング条件の設定を行います。7 AdGetSamplingConfig アナログ入力デバイスの現在設定されているサンプリング条件

を取得します。 8 AdBmSetSamplingConfig アナログ入力デバイスのサンプリング条件の設定を行います。9 AdBmGetSamplingConfig アナログ入力デバイスの現在設定されているサンプリング条件

を取得します。 10 AdAllocateSamplingBuffer アナログ入力デバイスのサンプリングバッファを確保します。11 AdGetSamplingData アナログ入力デバイスから入力されたサンプリングデータを取

得します。 12 AdClearSamplingData サンプリング入力バッファ内のサンプリングデータをクリアし

ます。 13 AdReadSamplingBuffer サンプリングバッファに格納されているサンプリングデータを

取得します。 14 AdStartSampling アナログ入力デバイスの連続サンプリングをスタートさせ

ます。 15 AdBmStartSampling アナログ入力デバイスの連続サンプリングをスタートさせま

す。(DMA直接転送) 16 AdStartFileSampling アナログ入力デバイスからのサンプリングデータをデータファ

イルに書き込みながらサンプリングを行います。 17 AdSyncSampling 複数枚同期サンプリング機能を使用したサンプリングを行い

ます。 18 AdStopSampling アナログ入力デバイスのサンプリングを停止させます。 19 AdGetStatus アナログ入力デバイスのサンプリング動作状態を取得します。20 AdInputAD アナログ入力デバイスから1件のアナログ入力を行います。 21 AdInputDI アナログ入力デバイスのデジタル入力端子を読み出します。 22 AdOutputDO アナログ入力デバイスのデジタル出力端子へデータを出力

します。 23 AdSetRangeEvent アナログ入力デバイスのフルスケール検出イベント条件の設定

を行います。 24 AdGetRangeEventStatus アナログ入力デバイスのフルスケール検出イベントのステータ

スを取得します。 25 AdResetRangeEvent アナログ入力デバイスのフルスケール検出イベントをリセット

します。

Page 68: チュートリアル Visual BasicによるAD入門書正)gConfig.SmplChReq(1).ulRange = AD_5V 1.4 2002年10月 ・CardBus対応 ・標準モジュール、リファレンスの変更(関数の追加)

TUT-0021

Interface Corporation - 66 -

No 関 数 名 機 能 26 AdSetInterval アナログ入力デバイスのインターバルタイマの設定を行いま

す。 27 AdGetInterval アナログ入力デバイスのインターバルタイマ設定を取得しま

す。 28 AdSetFunction PCI-3525, CPZ-3525のCN3, CN4の機能設定を行います。 29 AdGetFunction PCI-3525, CPZ-3525のCN3, CN4の機能設定を取得します。 30 AdAdjustVR アナログ入力デバイスの電子ボリューム制御を行います。 31 AdDataConv アナログデータの形式を変換します。形式の変換とともにデー

タに対し平均処理やスムージング処理を行うことができます。32 AdReadFile ファイルに保存されているサンプリングデータを、指定のバッ

ファに読み込む。 33 fnConv AdDataConv関数で使用するコールバック関数のプレースホル

ダです。データ変換時にffnConv関数を呼び出すことができます。ffnConv関数は、データ1点ごとに呼び出されます。

34 CallBackProc 非同期サンプリング終了時に呼び出されるコールバック関数のプレースホルダです。非同期サンプリング終了時にCallBackProc関数を呼び出すことができます。

35 AdCommonGetPciDeviceInfo アナログ入力デバイスのリソース情報を取得します。

Page 69: チュートリアル Visual BasicによるAD入門書正)gConfig.SmplChReq(1).ulRange = AD_5V 1.4 2002年10月 ・CardBus対応 ・標準モジュール、リファレンスの変更(関数の追加)

TUT-0021

- 67 - Interface Corporation

6.1.4 DLL関数一覧4

【対応型式】

PCI-320112, CTP/CPZ-3183 No 関 数 名 機 能 1 AdOpen アナログ入力デバイスのオープンを行い、以後デバイスへのア

クセスを行えるようにします。 2 AdClose アナログ入力デバイスのクローズを行い、デバイスアクセスの

ために使用されていた各種リソースの解放を行い、以後デバイスへのアクセスを禁止します。

3 AdGetDeviceInfo アナログ入力デバイスの仕様を取得します。 4 AdSetBoardConfig アナログ入力デバイスのイベント設定を行います。 5 AdGetBoardConfig アナログ入力デバイスのイベント要因を取得します。 6 AdSetSamplingConfig アナログ入力デバイスのサンプリング条件の設定を行います。7 AdGetSamplingConfig アナログ入力デバイスの現在設定されているサンプリング条件

を取得します。 8 AdBmSetSamplingConfig アナログ入力デバイスのサンプリング条件の設定を行います。9 AdBmGetSamplingConfig アナログ入力デバイスの現在設定されているサンプリング条件

を取得します。 10 AdAllocateSamplingBuffer アナログ入力デバイスのサンプリングバッファを確保します。11 AdGetSamplingData アナログ入力デバイスから入力されたサンプリングデータを取

得します。 12 AdBmGetSamplingData アナログ入力デバイスから入力されたサンプリングデータを取

得します。 13 AdClearSamplingData サンプリング入力バッファ内のサンプリングデータをクリアし

ます。 14 AdReadSamplingBuffer サンプリングバッファに格納されているサンプリングデータを

取得します。 15 AdStartSampling アナログ入力デバイスの連続サンプリングをスタートさせ

ます。 16 AdStartFileSampling アナログ入力デバイスからのサンプリングデータをデータファ

イルに書き込みながらサンプリングを行います。 17 AdBmStartFileSampling アナログ入力デバイスからのサンプリングデータをデータファ

イルに書き込みながらサンプリングを行います。 18 AdSyncSampling 複数枚同期サンプリング機能を使用したサンプリングを行い

ます。 19 AdStopSampling アナログ入力デバイスのサンプリングを停止させます。 20 AdGetStatus アナログ入力デバイスのサンプリング動作状態を取得します。21 AdInputAD アナログ入力デバイスから1件のアナログ入力を行います。 22 AdInputDI アナログ入力デバイスのデジタル入力端子を読み出します。 23 AdOutputDO アナログ入力デバイスのデジタル出力端子へデータを出力

します。 24 AdSetRangeEvent アナログ入力デバイスのフルスケール検出イベント条件の設定

を行います。 25 AdGetRangeEventStatus アナログ入力デバイスのフルスケール検出イベントのステータ

スを取得します。

Page 70: チュートリアル Visual BasicによるAD入門書正)gConfig.SmplChReq(1).ulRange = AD_5V 1.4 2002年10月 ・CardBus対応 ・標準モジュール、リファレンスの変更(関数の追加)

TUT-0021

Interface Corporation - 68 -

No 関 数 名 機 能 26 AdResetRangeEvent アナログ入力デバイスのフルスケール検出イベントをリセット

します。 27 AdGetOverRangeChStatus アナログ入力デバイスの過電圧入力時自動レンジ切換イベント

のステータスを取得します。 28 AdResetOverRangeCh アナログ入力デバイスの過電圧入力時自動レンジ切換イベント

のステータスをリセットします。 29 AdAdjustVR アナログ入力デバイスの電子ボリューム制御を行います。 30 AdDataConv アナログデータの形式を変換します。形式の変換とともにデー

タに対し平均処理やスムージング処理を行うことができます。31 AdReadFile ファイルに保存されているサンプリングデータを、指定のバッ

ファに読み込む。 32 fnConv AdDataConv関数で使用するコールバック関数のプレースホル

ダです。データ変換時にffnConv関数を呼び出すことができます。ffnConv関数は、データ1点ごとに呼び出されます。

33 CallBackProc

非同期サンプリング終了時に呼び出されるコールバック関数のプレースホルダです。非同期サンプリング終了時にCallBackProc関数を呼び出すことができます。

34 AdCommonGetPciDeviceInfo アナログ入力デバイスのリソース情報を取得します。

Page 71: チュートリアル Visual BasicによるAD入門書正)gConfig.SmplChReq(1).ulRange = AD_5V 1.4 2002年10月 ・CardBus対応 ・標準モジュール、リファレンスの変更(関数の追加)

TUT-0021

- 69 - Interface Corporation

6.1.5 DLL関数一覧5

【対応型式】

PCI-3179, CTP/CPZ-3179 No 関 数 名 機 能 1 AdOpen アナログ入力デバイスのオープンを行い、以後デバイスへのア

クセスを行えるようにします。 2 AdClose アナログ入力デバイスのクローズを行い、デバイスアクセスの

ために使用されていた各種リソースの解放を行い、以後デバイスへのアクセスを禁止します。

3 AdGetDeviceInfo アナログ入力デバイスの仕様を取得します。 4 AdSetBoardConfig アナログ入力デバイスのイベント設定を行います。 5 AdGetBoardConfig アナログ入力デバイスのイベント要因を取得します。 6 AdSetSamplingConfig アナログ入力デバイスのサンプリング条件の設定を行います。7 AdGetSamplingConfig アナログ入力デバイスの現在設定されているサンプリング条件

を取得します。 8 AdLvSetSamplingConfig アナログ入力デバイスのサンプリング条件の設定を行います。9 AdLvGetSamplingConfig アナログ入力デバイスの現在設定されているサンプリング条件

を取得します。 10 AdAllocateSamplingBuffer アナログ入力デバイスのサンプリングバッファを確保します。11 AdLvCalibration アナログ入力デバイスのオートキャリブレーション(較正)を行

います。 12 AdGetSamplingData アナログ入力デバイスから入力されたサンプリングデータを取

得します。 13 AdLvGetSamplingData アナログ入力デバイスからAdLvStartSampling関数で入力された

サンプリングデータを取得します。 14 AdClearSamplingData サンプリング入力バッファ内のサンプリングデータをクリアし

ます。 15 AdReadSamplingBuffer サンプリングバッファに格納されているサンプリングデータを

取得します。 16 AdStartSampling アナログ入力デバイスの連続サンプリングをスタートさせ

ます。 17 AdLvStartSampling アナログ入力デバイスの連続サンプリングをスタートさせ

ます。 18 AdStartFileSampling アナログ入力デバイスからのサンプリングデータをデータファ

イルに書き込みながらサンプリングを行います。 19 AdStopSampling アナログ入力デバイスのサンプリングを停止させます。 20 AdLvStopSampling AdLvStartSampling関数でスタートさせたアナログ入力デバイス

の連続サンプリング入力を停止させます。 21 AdGetStatus アナログ入力デバイスのサンプリング動作状態を取得します。22 AdLvGetStatus アナログ入力デバイスのサンプリング動作状態を取得します。23 AdInputAD アナログ入力デバイスから1件のアナログ入力を行います。 24 AdInputDI アナログ入力デバイスのデジタル入力端子を読み出します。 25 AdOutputDO アナログ入力デバイスのデジタル出力端子へデータを出力

します。

Page 72: チュートリアル Visual BasicによるAD入門書正)gConfig.SmplChReq(1).ulRange = AD_5V 1.4 2002年10月 ・CardBus対応 ・標準モジュール、リファレンスの変更(関数の追加)

TUT-0021

Interface Corporation - 70 -

No 関 数 名 機 能 26 AdMeasureTemperature アナログ入力デバイスの内部コネクタ付近の温度を取得

します。 27 AdDataConv アナログデータの形式を変換します。形式の変換とともにデー

タに対し平均処理やスムージング処理を行うことができます。28 AdReadFile ファイルに保存されているサンプリングデータを、指定のバッ

ファに読み込む。 29 fnConv AdDataConv関数で使用するコールバック関数のプレースホル

ダです。データ変換時にffnConv関数を呼び出すことができます。ffnConv関数は、データ1点ごとに呼び出されます。

30 CallBackProc 非同期サンプリング終了時に呼び出されるコールバック関数のプレースホルダです。非同期サンプリング終了時にCallBackProc関数を呼び出すことができます。

31 AdCommonGetPciDeviceInfo アナログ入力デバイスのリソース情報を取得します。

Page 73: チュートリアル Visual BasicによるAD入門書正)gConfig.SmplChReq(1).ulRange = AD_5V 1.4 2002年10月 ・CardBus対応 ・標準モジュール、リファレンスの変更(関数の追加)

TUT-0021

- 71 - Interface Corporation

6.1.6 DLL関数一覧6

【対応型式】

PCI-3174, PCI-320412, PCI-320416, PCI-360116, PCI-360112, PCI-360216 CTP/CPZ-3174, CTP/CPZ-3175, CTP/CPZ-3182, CTP/CPZ-320412, CTP/CPZ-320416, CTP/CPZ-360116, CTP/CPZ-360112

No 関 数 名 機 能 1 AdOpen アナログ入力デバイスのオープンを行い、以後デバイスへのア

クセスを行えるようにします。 2 AdClose アナログ入力デバイスのクローズを行い、デバイスアクセスの

ために使用されていた各種リソースの解放を行い、以後デバイスへのアクセスを禁止します。

3 AdGetDeviceInfo アナログ入力デバイスの仕様を取得します。 4 AdSetBoardConfig アナログ入力デバイスのイベント設定を行います。 5 AdGetBoardConfig アナログ入力デバイスのイベント要因を取得します。 6 AdSetSamplingConfig アナログ入力デバイスのサンプリング条件の設定を行います。7 AdGetSamplingConfig アナログ入力デバイスの現在設定されているサンプリング条件

を取得します。 8 AdBmSetSamplingConfig アナログ入力デバイスのサンプリング条件の設定を行います。9 AdBmGetSamplingConfig アナログ入力デバイスの現在設定されているサンプリング条件

を取得します。 10 AdAllocateSamplingBuffer アナログ入力デバイスのサンプリングバッファを確保します。11 AdGetSamplingData アナログ入力デバイスから入力されたサンプリングデータを取

得します。 12 AdBmGetSamplingData アナログ入力デバイスから入力されたサンプリングデータを取

得します。 13 AdClearSamplingData サンプリング入力バッファ内のサンプリングデータをクリアし

ます。 14 AdReadSamplingBuffer サンプリングバッファに格納されているサンプリングデータを

取得します。 15 AdStartSampling アナログ入力デバイスの連続サンプリングをスタートさせま

す。 16 AdBmStartSampling アナログ入力デバイスの連続サンプリングをスタートさせま

す。(DMA直接転送) 17 AdStartFileSampling アナログ入力デバイスからのサンプリングデータをデータファ

イルに書き込みながらサンプリングを行います。 18 AdBmStartFileSampling アナログ入力デバイスからのサンプリングデータをデータファ

イルに書き込みながらサンプリングを行います。 19 AdSyncSampling 複数枚同期サンプリング機能を使用したサンプリングを行いま

す。 20 AdStopSampling アナログ入力デバイスのサンプリングを停止させます。 21 AdGetStatus アナログ入力デバイスのサンプリング動作状態を取得します。

Page 74: チュートリアル Visual BasicによるAD入門書正)gConfig.SmplChReq(1).ulRange = AD_5V 1.4 2002年10月 ・CardBus対応 ・標準モジュール、リファレンスの変更(関数の追加)

TUT-0021

Interface Corporation - 72 -

No 関 数 名 機 能 22 AdInputAD アナログ入力デバイスから1件のアナログ入力を行います。 23 AdInputDI アナログ入力デバイスのデジタル入力端子を読み出します。 24 AdOutputDO アナログ入力デバイスのデジタル出力端子へデータを出力しま

す。 25 AdSetRangeEvent アナログ入力デバイスのフルスケール検出イベント条件の設定

を行います。 26 AdGetRangeEventStatus アナログ入力デバイスのフルスケール検出イベントのステータ

スを取得します。 27 AdResetRangeEvent アナログ入力デバイスのフルスケール検出イベントをリセット

します。 28 AdAdjustVR アナログ入力デバイスの電子ボリューム制御を行います。 29 AdReadAdjustVR アナログ入力デバイスの電子ボリュームの値をロードします。30 AdDataConv アナログデータの形式を変換します。形式の変換とともにデー

タに対し平均処理やスムージング処理を行うことができます。31 AdReadFile ファイルに保存されているサンプリングデータを、指定のバッ

ファに読み込む。 32 fnConv AdDataConv関数で使用するコールバック関数のプレースホル

ダです。データ変換時にfnConv関数を呼び出すことができます。fnConv関数は、データ1点ごとに呼び出されます。

33 CallBackProc 非同期サンプリング終了時に呼び出されるコールバック関数のプレースホルダです。非同期サンプリング終了時にCallBackProc関数を呼び出すことができます。

34 AdCommonGetPciDeviceInfo アナログ入力デバイスのリソース情報を取得します。

Page 75: チュートリアル Visual BasicによるAD入門書正)gConfig.SmplChReq(1).ulRange = AD_5V 1.4 2002年10月 ・CardBus対応 ・標準モジュール、リファレンスの変更(関数の追加)

TUT-0021

- 73 - Interface Corporation

6.1.7 DLL関数一覧7

【対応型式】

PCI-3175, PCI-3176

No 関 数 名 機 能 1 AdOpen アナログ入力デバイスのオープンを行い、以後デバイスへのアク

セスを行えるようにします。 2 AdClose アナログ入力デバイスのクローズを行い、デバイスアクセスのた

めに使用されていた各種リソースの解放を行い、以後デバイスへのアクセスを禁止します。

3 AdGetDeviceInfo アナログ入力デバイスの仕様を取得します。 4 AdSetBoardConfig アナログ入力デバイスのイベント設定を行います。 5 AdGetBoardConfig アナログ入力デバイスのイベント要因を取得します。 6 AdSetSamplingConfig アナログ入力デバイスのサンプリング条件の設定を行います。 7 AdGetSamplingConfig アナログ入力デバイスの現在設定されているサンプリング条件

を取得します。 8 AdBmSetSamplingConfig アナログ入力デバイスのサンプリング条件の設定を行います。 9 AdBmGetSamplingConfig アナログ入力デバイスの現在設定されているサンプリング条件

を取得します。 10 AdAllocateSamplingBuffer アナログ入力デバイスのサンプリングバッファを確保します。 11 AdGetSamplingData アナログ入力デバイスから入力されたサンプリングデータを取

得します。 12 AdBmGetSamplingData アナログ入力デバイスから入力されたサンプリングデータを取

得します。 13 AdClearSamplingData サンプリング入力バッファ内のサンプリングデータをクリアし

ます。 14 AdReadSamplingBuffer サンプリングバッファに格納されているサンプリングデータを

取得します。 15 AdStartSampling アナログ入力デバイスの連続サンプリングをスタートさせます。16 AdStartFileSampling アナログ入力デバイスからのサンプリングデータをデータファ

イルに書き込みながらサンプリングを行います。 17 AdBmStartFileSampling アナログ入力デバイスからのサンプリングデータをデータファ

イルに書き込みながらサンプリングを行います。 18 AdSyncSampling 複数枚同期サンプリング機能を使用したサンプリングを行いま

す。 19 AdStopSampling アナログ入力デバイスのサンプリングを停止させます。 20 AdGetStatus アナログ入力デバイスのサンプリング動作状態を取得します。 21 AdInputAD アナログ入力デバイスから1件のアナログ入力を行います。

Page 76: チュートリアル Visual BasicによるAD入門書正)gConfig.SmplChReq(1).ulRange = AD_5V 1.4 2002年10月 ・CardBus対応 ・標準モジュール、リファレンスの変更(関数の追加)

TUT-0021

Interface Corporation - 74 -

No 関 数 名 機 能 22 AdInputDI アナログ入力デバイスのデジタル入力端子を読み出します。 23 AdOutputDO アナログ入力デバイスのデジタル出力端子へデータを出力しま

す。 24 AdAdjustVR アナログ入力デバイスの電子ボリューム制御を行います。 25 AdDataConv アナログデータの形式を変換します。形式の変換とともにデー

タに対し平均処理やスムージング処理を行うことができます。26 AdReadFile ファイルに保存されているサンプリングデータを、指定のバッ

ファに読み込む。 27 fnConv AdDataConv関数で使用するコールバック関数のプレースホル

ダです。データ変換時にfnConv関数を呼び出すことができます。fnConv関数は、データ1点ごとに呼び出されます。

28 CallBackProc 非同期サンプリング終了時に呼び出されるコールバック関数のプレースホルダです。非同期サンプリング終了時にCallBackProc関数を呼び出すことができます。

29 AdCommonGetPciDeviceInfo アナログ入力デバイスのリソース情報を取得します。

Page 77: チュートリアル Visual BasicによるAD入門書正)gConfig.SmplChReq(1).ulRange = AD_5V 1.4 2002年10月 ・CardBus対応 ・標準モジュール、リファレンスの変更(関数の追加)

TUT-0021

- 75 - Interface Corporation

6.1.8 DLL関数一覧8

【対応型式】

LPC-321316, LPC-321416, LPC-361316, LPC-361416, PEX-321316, PEX-321416, PEX-361316, PEX-361416, CSI-320212, CSI-320312

No 関 数 名 機 能 1 AdOpen アナログ入力デバイスのオープンを行い、以後デバイスへのア

クセスを行えるようにします。 2 AdClose アナログ入力デバイスのクローズを行い、デバイスアクセスの

ために使用されていた各種リソースの解放を行い、以後デバイスへのアクセスを禁止します。

3 AdGetDeviceInfo アナログ入力デバイスの仕様を取得します。 4 AdSetBoardConfig アナログ入力デバイスのイベント設定を行います。 5 AdGetBoardConfig アナログ入力デバイスのイベント要因を取得します。 6 AdSetSamplingConfig アナログ入力デバイスのサンプリング条件の設定を行います。7 AdGetSamplingConfig アナログ入力デバイスの現在設定されているサンプリング条件

を取得します。 8 AdBmSetSamplingConfig アナログ入力デバイスのサンプリング条件の設定を行います。9 AdBmGetSamplingConfig アナログ入力デバイスの現在設定されているサンプリング条件

を取得します。 10 AdAllocateSamplingBuffer アナログ入力デバイスのサンプリングバッファを確保します。11 AdGetSamplingData アナログ入力デバイスから入力されたサンプリングデータを取

得します。 12 AdClearSamplingData サンプリング入力バッファ内のサンプリングデータをクリアし

ます。 13 AdReadSamplingBuffer サンプリングバッファに格納されているサンプリングデータを

取得します。 14 AdStartSampling アナログ入力デバイスの連続サンプリングをスタートさせま

す。 15 AdStartFileSampling アナログ入力デバイスからのサンプリングデータをデータファ

イルに書き込みながらサンプリングを行います。 16 AdTriggerSampling トリガ(EXTRG IN)が入力されるたびに、アナログ入力デバイ

スから1件のアナログ入力を行います。 17 AdMemTriggerSampling 外部トリガが入力されるたびに、アナログ入力デバイスから指

定件数のサンプリングを行います。 18 AdStopSampling アナログ入力デバイスのサンプリングを停止させます。 19 AdGetStatus アナログ入力デバイスのサンプリング動作状態を取得します。20 AdInputAD アナログ入力デバイスから1件のアナログ入力を行います。 21 AdInputDI アナログ入力デバイスのデジタル入力端子を読み出します。

Page 78: チュートリアル Visual BasicによるAD入門書正)gConfig.SmplChReq(1).ulRange = AD_5V 1.4 2002年10月 ・CardBus対応 ・標準モジュール、リファレンスの変更(関数の追加)

TUT-0021

Interface Corporation - 76 -

No 関 数 名 機 能 22 AdOutputDO アナログ入力デバイスのデジタル出力端子へデータを出力しま

す。 23 AdSetRangeEvent アナログ入力デバイスのフルスケール検出イベント条件の設定

を行います。 24 AdGetRangeEventStatus アナログ入力デバイスのフルスケール検出イベントのステータ

スを取得します。 25 AdResetRangeEvent アナログ入力デバイスのフルスケール検出イベントをリセット

します。 26 AdAdjustVR アナログ入力デバイスの電子ボリューム制御を行います。 27 AdReadAdjustVR アナログ入力デバイスの電子ボリュームの値をロードします。28 AdDataConv アナログデータの形式を変換します。形式の変換とともにデー

タに対し平均処理やスムージング処理を行うことができます。29 AdReadFile ファイルに保存されているサンプリングデータを、指定のバッ

ファに読み込む。 30 fnConv AdDataConv関数で使用するコールバック関数のプレースホル

ダです。データ変換時にfnConv関数を呼び出すことができます。fnConv関数は、データ1点ごとに呼び出されます。

31 CallBackProc 非同期サンプリング終了時に呼び出されるコールバック関数のプレースホルダです。非同期サンプリング終了時にCallBackProc関数を呼び出すことができます。

32 AdCommonGetPciDeviceInfo アナログ入力デバイスのリソース情報を取得します。

Page 79: チュートリアル Visual BasicによるAD入門書正)gConfig.SmplChReq(1).ulRange = AD_5V 1.4 2002年10月 ・CardBus対応 ・標準モジュール、リファレンスの変更(関数の追加)

TUT-0021

- 77 - Interface Corporation

6.1.9 DLL関数一覧9

【対応型式】

PCI-3153 No 関 数 名 機 能 1 AdOpen アナログ入力デバイスのオープンを行い、以後デバイスへのア

クセスを行えるようにします。 2 AdClose アナログ入力デバイスのクローズを行い、デバイスアクセスの

ために使用されていた各種リソースの解放を行い、以後デバイスへのアクセスを禁止します。

3 AdGetDeviceInfo アナログ入力デバイスの仕様を取得します。 4 AdSetBoardConfig アナログ入力デバイスのイベント設定を行います。 5 AdGetBoardConfig アナログ入力デバイスのイベント要因を取得します。 6 AdSetSamplingConfig アナログ入力デバイスのサンプリング条件の設定を行います。7 AdGetSamplingConfig アナログ入力デバイスの現在設定されているサンプリング条件

を取得します。 8 AdAllocateSamplingBuffer アナログ入力デバイスのサンプリングバッファを確保します。9 AdGetSamplingData アナログ入力デバイスから入力されたサンプリングデータを取

得します。 10 AdFifoGetSamplingData アナログ入力デバイスから入力されたサンプリングデータとデ

ジタルデータを取得します。 11 AdClearSamplingData サンプリング入力バッファ内のサンプリングデータをクリアし

ます。 12 AdReadSamplingBuffer サンプリングバッファに格納されているサンプリングデータを

取得します。 13 AdStartSampling アナログ入力デバイスの連続サンプリングをスタートさせま

す。 14 AdStartFileSampling アナログ入力デバイスからのサンプリングデータをデータファ

イルに書き込みながらサンプリングを行います。 15 AdTriggerSampling トリガ(EXTRG IN)が入力されるたびに、アナログ入力デバイ

スから1件のアナログ入力を行います。 16 AdMemTriggerSampling 外部トリガが入力されるたびに、アナログ入力デバイスから指

定件数のサンプリングを行います。 17 AdStopSampling アナログ入力デバイスのサンプリングを停止させます。 18 AdGetStatus アナログ入力デバイスのサンプリング動作状態を取得します。19 AdInputAD アナログ入力デバイスから1件のアナログ入力を行います。 20 AdInputDI アナログ入力デバイスのデジタル入力端子を読み出します。 21 AdOutputDO アナログ入力デバイスのデジタル出力端子へデータを出力しま

す。

Page 80: チュートリアル Visual BasicによるAD入門書正)gConfig.SmplChReq(1).ulRange = AD_5V 1.4 2002年10月 ・CardBus対応 ・標準モジュール、リファレンスの変更(関数の追加)

TUT-0021

Interface Corporation - 78 -

No 関 数 名 機 能 22 AdAdjustVR アナログ入力デバイスの電子ボリューム制御を行います。 23 AdDataConv アナログデータの形式を変換します。形式の変換とともにデー

タに対し平均処理やスムージング処理を行うことができます。24 AdReadFile ファイルに保存されているサンプリングデータを、指定のバッ

ファに読み込む。 25 fnConv AdDataConv関数で使用するコールバック関数のプレースホル

ダです。データ変換時にfnConv関数を呼び出すことができます。fnConv関数は、データ1点ごとに呼び出されます。

26 CallBackProc 非同期サンプリング終了時に呼び出されるコールバック関数のプレースホルダです。非同期サンプリング終了時にCallBackProc関数を呼び出すことができます。

27 AdCommonGetPciDeviceInfo アナログ入力デバイスのリソース情報を取得します。

Page 81: チュートリアル Visual BasicによるAD入門書正)gConfig.SmplChReq(1).ulRange = AD_5V 1.4 2002年10月 ・CardBus対応 ・標準モジュール、リファレンスの変更(関数の追加)

TUT-0021

- 79 - Interface Corporation

6.1.10 DLL関数一覧10

【対応型式】

CTP/CPZ-3167 No 関 数 名 機 能 1 AdOpen アナログ入力デバイスのオープンを行い、以後デバイスへのア

クセスを行えるようにします。 2 AdClose アナログ入力デバイスのクローズを行い、デバイスアクセスの

ために使用されていた各種リソースの解放を行い、以後デバイスへのアクセスを禁止します。

3 AdGetDeviceInfo アナログ入力デバイスの仕様を取得します。 4 AdSetBoardConfig アナログ入力デバイスのイベント設定を行います。 5 AdGetBoardConfig アナログ入力デバイスのイベント要因を取得します。 6 AdSetSamplingConfig アナログ入力デバイスのサンプリング条件の設定を行います。7 AdGetSamplingConfig アナログ入力デバイスの現在設定されているサンプリング条件

を取得します。 8 AdBmSetSamplingConfig アナログ入力デバイスのサンプリング条件の設定を行います。9 AdBmGetSamplingConfig アナログ入力デバイスの現在設定されているサンプリング条件

を取得します。 10 AdAllocateSamplingBuffer アナログ入力デバイスのサンプリングバッファを確保します。11 AdGetSamplingData アナログ入力デバイスから入力されたサンプリングデータを取

得します。 12 AdFifoGetSamplingData アナログ入力デバイスから入力されたサンプリングデータとデ

ジタルデータを取得します。 13 AdClearSamplingData サンプリング入力バッファ内のサンプリングデータをクリアし

ます。 14 AdReadSamplingBuffer サンプリングバッファに格納されているサンプリングデータを

取得します。 15 AdStartSampling アナログ入力デバイスの連続サンプリングをスタートさせ

ます。 16 AdStartFileSampling アナログ入力デバイスからのサンプリングデータをデータファ

イルに書き込みながらサンプリングを行います。 17 AdTriggerSampling トリガ(EXTRG IN)が入力されるたびに、アナログ入力デバイス

から1件のアナログ入力を行います。 18 AdMemTriggerSampling 外部トリガが入力されるたびに、アナログ入力デバイスから指

定件数のサンプリングを行います。 19 AdSyncSampling 複数枚同期サンプリング機能を使用したサンプリングを行い

ます。 20 AdStopSampling アナログ入力デバイスのサンプリングを停止させます。 21 AdGetStatus アナログ入力デバイスのサンプリング動作状態を取得します。22 AdInputAD アナログ入力デバイスから1件のアナログ入力を行います。 23 AdInputDI アナログ入力デバイスのデジタル入力端子を読み出します。 24 AdOutputDO アナログ入力デバイスのデジタル出力端子へデータを出力

します。 25 AdSetRangeEvent アナログ入力デバイスのフルスケール検出イベント条件の設定

を行います。

Page 82: チュートリアル Visual BasicによるAD入門書正)gConfig.SmplChReq(1).ulRange = AD_5V 1.4 2002年10月 ・CardBus対応 ・標準モジュール、リファレンスの変更(関数の追加)

TUT-0021

Interface Corporation - 80 -

No 関 数 名 機 能 26 AdGetRangeEventStatus アナログ入力デバイスのフルスケール検出イベントのステータ

スを取得します。 27 AdResetRangeEvent アナログ入力デバイスのフルスケール検出イベントをリセット

します。 28 AdAdjustVR アナログ入力デバイスの電子ボリューム制御を行います。 29 AdDataConv アナログデータの形式を変換します。形式の変換とともにデー

タに対し平均処理やスムージング処理を行うことができます。30 AdReadFile ファイルに保存されているサンプリングデータを、指定のバッ

ファに読み込む。 31 fnConv AdDataConv関数で使用するコールバック関数のプレースホル

ダです。データ変換時にffnConv関数を呼び出すことができます。ffnConv関数は、データ1点ごとに呼び出されます。

32 CallBackProc 非同期サンプリング終了時に呼び出されるコールバック関数のプレースホルダです。非同期サンプリング終了時にCallBackProc関数を呼び出すことができます。

33 AdCommonGetPciDeviceInfo アナログ入力デバイスのリソース情報を取得します。

Page 83: チュートリアル Visual BasicによるAD入門書正)gConfig.SmplChReq(1).ulRange = AD_5V 1.4 2002年10月 ・CardBus対応 ・標準モジュール、リファレンスの変更(関数の追加)

TUT-0021

- 81 - Interface Corporation

6.1.11 DLL関数一覧11

【対応型式】

LPC-320910, PEX-320910, CSI-320110 No 関 数 名 機 能 1 AdOpen アナログ入力デバイスのオープンを行い、以後デバイスへのア

クセスを行えるようにします。 2 AdClose アナログ入力デバイスのクローズを行い、デバイスアクセスの

ために使用されていた各種リソースの解放を行い、以後デバイスへのアクセスを禁止します。

3 AdGetDeviceInfo アナログ入力デバイスの仕様を取得します。 4 AdSetBoardConfig アナログ入力デバイスのイベント設定を行います。 5 AdGetBoardConfig アナログ入力デバイスのイベント要因を取得します。 6 AdMemSetSamplingConfig アナログ入力デバイスのサンプリング条件の設定を行います。7 AdMemGetSamplingConfig アナログ入力デバイスの現在設定されているサンプリング条件

を取得します。 8 AdGetSamplingData アナログ入力デバイスから入力されたサンプリングデータを取

得します。 9 AdClearSamplingData サンプリング入力バッファ内のサンプリングデータをクリアし

ます。 10 AdStartSampling アナログ入力デバイスの連続サンプリングをスタートさせ

ます。 11 AdStopSampling アナログ入力デバイスのサンプリングを停止させます。 12 AdGetStatus アナログ入力デバイスのサンプリング動作状態を取得します。13 AdInputDI アナログ入力デバイスのデジタル入力端子を読み出します。 14 AdOutputDO アナログ入力デバイスのデジタル出力端子へデータを出力

します。 15 AdSetRangeEvent アナログ入力デバイスのフルスケール検出イベントのステータ

スを取得します。 16 AdGetRangeEventStatus アナログ入力デバイスのフルスケール検出イベントをリセット

します。 17 AdResetRangeEvent アナログ入力デバイスのフルスケール検出イベントをリセット

します。 18 AdSetOutMode アナログ入力モードの外部出力信号制御設定を取得します。 19 AdGetOutMode アナログ入力モードの外部出力信号制御設定を取得します。 20 AdMemSetDiPattern アナログ入力デバイスのDIパターン一致条件を設定します。 21 AdMemGetDiPattern アナログ入力デバイスのDIパターン一致条件を取得します。 22 AdDataConv アナログデータの形式を変換します。形式の変換とともにデー

タに対し平均処理やスムージング処理を行うことができます。23 AdReadFile ファイルに保存されているサンプリングデータを、指定のバッ

ファに読み込む。 24 fnConv AdDataConv関数で使用するコールバック関数のプレースホル

ダです。データ変換時にffnConv関数を呼び出すことができます。ffnConv関数は、データ1点ごとに呼び出されます。

25 CallBackProc 非同期サンプリング終了時に呼び出されるコールバック関数のプレースホルダです。非同期サンプリング終了時にCallBackProc関数を呼び出すことができます。

26 AdCommonGetPciDeviceInfo アナログ入力デバイスのリソース情報を取得します。

Page 84: チュートリアル Visual BasicによるAD入門書正)gConfig.SmplChReq(1).ulRange = AD_5V 1.4 2002年10月 ・CardBus対応 ・標準モジュール、リファレンスの変更(関数の追加)

TUT-0021

Interface Corporation - 82 -

6.1.12 DLL関数一覧12

【対応型式】

CTP/CPZ-360810 No 関 数 名 機 能 1 AdOpen アナログ入力デバイスのオープンを行い、以後デバイスへのア

クセスを行えるようにします。 2 AdClose アナログ入力デバイスのクローズを行い、デバイスアクセスの

ために使用されていた各種リソースの解放を行い、以後デバイスへのアクセスを禁止します。

3 AdGetDeviceInfo アナログ入力デバイスの仕様を取得します。 4 AdSetBoardConfig アナログ入力デバイスのイベント設定を行います。 5 AdGetBoardConfig アナログ入力デバイスのイベント要因を取得します。 6 AdMemSetSamplingConfig アナログ入力デバイスのサンプリング条件の設定を行います。7 AdMemGetSamplingConfig アナログ入力デバイスの現在設定されているサンプリング条件

を取得します。 8 AdGetSamplingData アナログ入力デバイスから入力されたサンプリングデータを取

得します。 9 AdClearSamplingData サンプリング入力バッファ内のサンプリングデータをクリアし

ます。 10 AdStartSampling アナログ入力デバイスの連続サンプリングをスタートさせ

ます。 11 AdSyncSampling 複数枚同期サンプリング機能を使用したサンプリングを行い

ます。 12 AdStopSampling アナログ入力デバイスのサンプリングを停止させます。 13 AdGetStatus アナログ入力デバイスのサンプリング動作状態を取得します。14 AdInputDI アナログ入力デバイスのデジタル入力端子を読み出します。 15 AdOutputDO アナログ入力デバイスのデジタル出力端子へデータを出力

します。 16 AdSetRangeEvent アナログ入力デバイスのフルスケール検出イベント条件の設定

を行います。 17 AdGetRangeEventStatus アナログ入力デバイスのフルスケール検出イベントのステータ

スを取得します。 18 AdResetRangeEvent アナログ入力デバイスのフルスケール検出イベントをリセット

します。 19 AdSetOutMode アナログ入力モードの外部出力信号制御設定を取得します。 20 AdGetOutMode アナログ入力モードの外部出力信号制御設定を取得します。 21 AdSetFunction CPZ-360810のコネクタの機能設定を行います。 22 AdGetFunction CPZ-360810のコネクタの機能設定を取得します。 23 AdMemSetDiPattern アナログ入力デバイスのDIパターン一致条件を設定します。 24 AdMemGetDiPattern アナログ入力デバイスのDIパターン一致条件を取得します。 25 AdDataConv アナログデータの形式を変換します。形式の変換とともにデー

タに対し平均処理やスムージング処理を行うことができます。26 AdReadFile ファイルに保存されているサンプリングデータを、指定のバッ

ファに読み込む。

Page 85: チュートリアル Visual BasicによるAD入門書正)gConfig.SmplChReq(1).ulRange = AD_5V 1.4 2002年10月 ・CardBus対応 ・標準モジュール、リファレンスの変更(関数の追加)

TUT-0021

- 83 - Interface Corporation

No 関 数 名 機 能 27 fnConv AdDataConv関数で使用するコールバック関数のプレースホル

ダです。データ変換時にffnConv関数を呼び出すことができます。ffnConv関数は、データ1点ごとに呼び出されます。

28 CallBackProc 非同期サンプリング終了時に呼び出されるコールバック関数のプレースホルダです。非同期サンプリング終了時にCallBackProc関数を呼び出すことができます。

29 AdCommonGetPciDeviceInfo アナログ入力デバイスのリソース情報を取得します。

Page 86: チュートリアル Visual BasicによるAD入門書正)gConfig.SmplChReq(1).ulRange = AD_5V 1.4 2002年10月 ・CardBus対応 ・標準モジュール、リファレンスの変更(関数の追加)

TUT-0021

Interface Corporation - 84 -

6.1.13 DLL関数一覧13

【対応型式】

LPC-321116, LPC-321216, LPC-361116, LPC-361216, PEX-321116, PEX-321216, PEX-361116, PEX-361216, CSI320412, CSI-320416, CSI-360112, CSI-360116 No 関 数 名 機 能 1 AdOpen アナログ入力デバイスのオープンを行い、以後デバイスへのア

クセスを行えるようにします。 2 AdClose アナログ入力デバイスのクローズを行い、デバイスアクセスの

ために使用されていた各種リソースの解放を行い、以後デバイスへのアクセスを禁止します。

3 AdGetDeviceInfo アナログ入力デバイスの仕様を取得します。 4 AdSetBoardConfig アナログ入力デバイスのイベント設定を行います。 5 AdGetBoardConfig アナログ入力デバイスのイベント要因を取得します。 6 AdSetSamplingConfig アナログ入力デバイスのサンプリング条件の設定を行います。7 AdGetSamplingConfig アナログ入力デバイスの現在設定されているサンプリング条件

を取得します。 8 AdBmSetSamplingConfig アナログ入力デバイスのサンプリング条件の設定を行います。9 AdBmGetSamplingConfig アナログ入力デバイスの現在設定されているサンプリング条件

を取得します。 10 AdAllocateSamplingBuffer アナログ入力デバイスのサンプリングバッファを確保します。11 AdGetSamplingData アナログ入力デバイスから入力されたサンプリングデータを取

得します。 12 AdBmGetSamplingData アナログ入力デバイスから入力されたサンプリングデータを取

得します。 13 AdClearSamplingData サンプリング入力バッファ内のサンプリングデータをクリアし

ます。 14 AdReadSamplingBuffer サンプリングバッファに格納されているサンプリングデータを

取得します。 15 AdStartSampling アナログ入力デバイスの連続サンプリングをスタートさせ

ます。 16 AdBmStartSampling アナログ入力デバイスの連続サンプリングをスタートさせま

す。(DMA直接転送) 17 AdStartFileSampling アナログ入力デバイスからのサンプリングデータをデータファ

イルに書き込みながらサンプリングを行います。 18 AdBmStartFileSampling アナログ入力デバイスからのサンプリングデータをデータファ

イルに書き込みながらサンプリングを行います。 19 AdStopSampling アナログ入力デバイスのサンプリングを停止させます。 20 AdGetStatus アナログ入力デバイスのサンプリング動作状態を取得します。21 AdInputAD アナログ入力デバイスから1件のアナログ入力を行います。

Page 87: チュートリアル Visual BasicによるAD入門書正)gConfig.SmplChReq(1).ulRange = AD_5V 1.4 2002年10月 ・CardBus対応 ・標準モジュール、リファレンスの変更(関数の追加)

TUT-0021

- 85 - Interface Corporation

No 関 数 名 機 能 22 AdInputDI アナログ入力デバイスのデジタル入力端子を読み出します。 23 AdOutputDO アナログ入力デバイスのデジタル出力端子へデータを出力

します。 24 AdSetRangeEvent アナログ入力デバイスのフルスケール検出イベント条件の設定

を行います。 25 AdGetRangeEventStatus アナログ入力デバイスのフルスケール検出イベントのステータ

スを取得します。 26 AdResetRangeEvent アナログ入力デバイスのフルスケール検出イベントをリセット

します。 27 AdSetOutMode アナログ入力デバイスの外部出力信号制御設定を取得します。28 AdGetOutMode アナログ入力デバイスの外部出力信号制御設定を取得します。29 AdAdjustVR アナログ入力デバイスの電子ボリューム制御を行います。 30 AdReadAdjustVR アナログ入力デバイスの電子ボリュームの値をロードします。31 AdDataConv アナログデータの形式を変換します。形式の変換とともにデー

タに対し平均処理やスムージング処理を行うことができます。32 AdReadFile ファイルに保存されているサンプリングデータを、指定のバッ

ファに読み込む。 33 fnConv AdDataConv関数で使用するコールバック関数のプレースホル

ダです。データ変換時にffnConv関数を呼び出すことができます。ffnConv関数は、データ1点ごとに呼び出されます。

34 CallBackProc 非同期サンプリング終了時に呼び出されるコールバック関数のプレースホルダです。非同期サンプリング終了時にCallBackProc関数を呼び出すことができます。

35 AdCommonGetPciDeviceInfo アナログ入力デバイスのリソース情報を取得します。

Page 88: チュートリアル Visual BasicによるAD入門書正)gConfig.SmplChReq(1).ulRange = AD_5V 1.4 2002年10月 ・CardBus対応 ・標準モジュール、リファレンスの変更(関数の追加)

TUT-0021

Interface Corporation - 86 -

6.1.14 DLL関数一覧14

【対応型式】

LPC-321012, PEX-321012 No 関 数 名 機 能 1 AdOpen アナログ入力デバイスのオープンを行い、以後デバイスへのア

クセスを行えるようにします。 2 AdClose アナログ入力デバイスのクローズを行い、デバイスアクセスの

ために使用されていた各種リソースの解放を行い、以後デバイスへのアクセスを禁止します。

3 AdGetDeviceInfo アナログ入力デバイスの仕様を取得します。 4 AdSetBoardConfig アナログ入力デバイスのイベント設定を行います。 5 AdGetBoardConfig アナログ入力デバイスのイベント要因を取得します。 6 AdSetSamplingConfig アナログ入力デバイスのサンプリング条件の設定を行います。7 AdGetSamplingConfig アナログ入力デバイスの現在設定されているサンプリング条件

を取得します。 8 AdBmSetSamplingConfig アナログ入力デバイスのサンプリング条件の設定を行います。9 AdBmGetSamplingConfig アナログ入力デバイスの現在設定されているサンプリング条件

を取得します。 10 AdAllocateSamplingBuffer アナログ入力デバイスのサンプリングバッファを確保します。11 AdGetSamplingData アナログ入力デバイスから入力されたサンプリングデータを取

得します。 12 AdClearSamplingData サンプリング入力バッファ内のサンプリングデータをクリアし

ます。 13 AdReadSamplingBuffer サンプリングバッファに格納されているサンプリングデータを

取得します。 14 AdStartSampling アナログ入力デバイスの連続サンプリングをスタートさせ

ます。 15 AdBmStartSampling アナログ入力デバイスの連続サンプリングをスタートさせ

ます。(DMA直接転送) 16 AdStartFileSampling アナログ入力デバイスからのサンプリングデータをデータファ

イルに書き込みながらサンプリングを行います。 17 AdStopSampling アナログ入力デバイスのサンプリングを停止させます。 18 AdGetStatus アナログ入力デバイスのサンプリング動作状態を取得します。19 AdInputAD アナログ入力デバイスから1件のアナログ入力を行います。 20 AdInputDI アナログ入力デバイスのデジタル入力端子を読み出します。 21 AdOutputDO アナログ入力デバイスのデジタル出力端子へデータを出力

します。 22 AdSetInterval アナログ入力デバイスのインターバルタイマの設定を行い

ます。 23 AdGetInterval アナログ入力デバイスのインターバルタイマ設定を取得し

ます。 24 AdSetOutMode アナログ入力デバイスの外部出力信号制御設定を取得します。25 AdGetOutMode アナログ入力デバイスの外部出力信号制御設定を取得します。26 AdAdjustVR アナログ入力デバイスの電子ボリューム制御を行います。 27 AdReadAdjustVR アナログ入力デバイスの電子ボリュームの値をロードします。

Page 89: チュートリアル Visual BasicによるAD入門書正)gConfig.SmplChReq(1).ulRange = AD_5V 1.4 2002年10月 ・CardBus対応 ・標準モジュール、リファレンスの変更(関数の追加)

TUT-0021

- 87 - Interface Corporation

No 関 数 名 機 能 28 AdDataConv アナログデータの形式を変換します。形式の変換とともにデー

タに対し平均処理やスムージング処理を行うことができます。29 AdReadFile ファイルに保存されているサンプリングデータを、指定のバッ

ファに読み込む。 30 fnConv AdDataConv関数で使用するコールバック関数のプレースホル

ダです。データ変換時にffnConv関数を呼び出すことができます。ffnConv関数は、データ1点ごとに呼び出されます。

31 CallBackProc 非同期サンプリング終了時に呼び出されるコールバック関数のプレースホルダです。非同期サンプリング終了時にCallBackProc関数を呼び出すことができます。

32 AdCommonGetPciDeviceInfo アナログ入力デバイスのリソース情報を取得します。

Page 90: チュートリアル Visual BasicによるAD入門書正)gConfig.SmplChReq(1).ulRange = AD_5V 1.4 2002年10月 ・CardBus対応 ・標準モジュール、リファレンスの変更(関数の追加)

TUT-0021

Interface Corporation - 88 -

6.1.15 DLL関数一覧15

【対応型式】

LPC-320724, PEX-320724 No 関 数 名 機 能 1 AdOpen アナログ入力デバイスのオープンを行い、以後デバイスへのア

クセスを行えるようにします。 2 AdClose アナログ入力デバイスのクローズを行い、デバイスアクセスの

ために使用されていた各種リソースの解放を行い、以後デバイスへのアクセスを禁止します。

3 AdGetDeviceInfo アナログ入力デバイスの仕様を取得します。 4 AdSetBoardConfig アナログ入力デバイスのイベント設定を行います。 5 AdGetBoardConfig アナログ入力デバイスのイベント要因を取得します。 6 AdSetSamplingConfig アナログ入力デバイスのサンプリング条件の設定を行います。7 AdGetSamplingConfig アナログ入力デバイスの現在設定されているサンプリング条件

を取得します。 8 AdBmSetSamplingConfig アナログ入力デバイスのサンプリング条件の設定を行います。9 AdBmGetSamplingConfig アナログ入力デバイスの現在設定されているサンプリング条件

を取得します。 10 AdAllocateSamplingBuffer アナログ入力デバイスのサンプリングバッファを確保します。11 AdGetSamplingData アナログ入力デバイスから入力されたサンプリングデータを取

得します。 12 AdClearSamplingData サンプリング入力バッファ内のサンプリングデータをクリアし

ます。 13 AdReadSamplingBuffer サンプリングバッファに格納されているサンプリングデータを

取得します。 14 AdStartSampling アナログ入力デバイスの連続サンプリングをスタートさせ

ます。 15 AdBmStartSampling アナログ入力デバイスの連続サンプリングをスタートさせ

ます。(DMA直接転送) 16 AdStartFileSampling アナログ入力デバイスからのサンプリングデータをデータファ

イルに書き込みながらサンプリングを行います。 17 AdStopSampling アナログ入力デバイスのサンプリングを停止させます。 18 AdGetStatus アナログ入力デバイスのサンプリング動作状態を取得します。19 AdInputAD アナログ入力デバイスから1件のアナログ入力を行います。 20 AdSetInterval アナログ入力デバイスのインターバルタイマの設定を行い

ます。 21 AdGetInterval アナログ入力デバイスのインターバルタイマ設定を取得し

ます。 22 AdSetFunction アナログ入力デバイスの制御信号の機能設定を行います。 23 AdGetFunction アナログ入力デバイスの制御信号の機能設定を取得します。 24 AdSetFilter アナログ入力デバイスのデジタルフィルタの設定を行います。25 AdGetFilter アナログ入力デバイスのデジタルフィルタ設定を取得します。26 AdAdjustVR アナログ入力デバイスの電子ボリューム制御を行います。 27 AdReadAdjustVR アナログ入力デバイスの電子ボリュームの値をロードします。

Page 91: チュートリアル Visual BasicによるAD入門書正)gConfig.SmplChReq(1).ulRange = AD_5V 1.4 2002年10月 ・CardBus対応 ・標準モジュール、リファレンスの変更(関数の追加)

TUT-0021

- 89 - Interface Corporation

No 関 数 名 機 能 28 AdDataConv アナログデータの形式を変換します。形式の変換とともにデー

タに対し平均処理やスムージング処理を行うことができます。29 AdReadFile ファイルに保存されているサンプリングデータを、指定のバッ

ファに読み込む。 30 fnConv AdDataConv関数で使用するコールバック関数のプレースホル

ダです。データ変換時にffnConv関数を呼び出すことができます。ffnConv関数は、データ1点ごとに呼び出されます。

31 CallBackProc 非同期サンプリング終了時に呼び出されるコールバック関数のプレースホルダです。非同期サンプリング終了時にCallBackProc関数を呼び出すことができます。

32 AdCommonGetPciDeviceInfo アナログ入力デバイスのリソース情報を取得します。

Page 92: チュートリアル Visual BasicによるAD入門書正)gConfig.SmplChReq(1).ulRange = AD_5V 1.4 2002年10月 ・CardBus対応 ・標準モジュール、リファレンスの変更(関数の追加)

TUT-0021

Interface Corporation - 90 -

技術資料紹介 弊社では下記の技術資料を提供しております。 詳しくは、弊社Web site(www.interface.co.jp)、または弊社窓口までお問い合わせください。 カタログ

PRM-0061 CPZカタログ(日本語版) PRM-0062 PCIカタログ(日本語版) PRM-0063 CSIカタログ(日本語版)

チュートリアル TUT-0058 チュートリアル CPZ拡張ユニット 入門編 TUT-0056 チュートリアル XP Embedded OS構築編 TUT-0055 チュートリアル 画像入力ボード TUT-0054 CANチュートリアル TUT-0053 モーションコントロールチュートリアル TUT-0050 RTLinuxによるモーションコントローラボード制御プログラミング チュートリアル(GPG-7400用) TUT-0048 RTLinuxによるカウンタボード制御プログラミング チュートリアル TUT-0044 RTLinuxによるメモリ共有インタフェースボード制御プログラミング チュートリアル TUT-0043 RTLinuxによる調歩同期シリアル通信ボード制御プログラミング チュートリアル TUT-0041 RTLinuxによるGP-IBボード制御プログラミング チュートリアル TUT-0040 RTLinuxによるDAボード制御プログラミング チュートリアル TUT-0039 RTLinuxによるADボード制御プログラミング チュートリアル TUT-0038 RTLinuxによるDIOボード制御プログラミング チュートリアル TUT-0037 RTLinuxによるHDLCボード制御プログラミング チュートリアル TUT-0036 RTLinuxによるPCI/CompactPCI/CardBus制御入門書(導入編) TUT-0034 Visual C++によるPPI入門書 TUT-0033 Visual Basicによるメモリ共有インタフェース入門書 TUT-0032 Visual C++によるメモリ共有インタフェース入門書 TUT-0031 Visual Basicによるカウンタ入門書 TUT-0030 Visual C++によるカウンタ入門書 TUT-0029 Visual BasicによるHDLC入門書 TUT-0028 Visual C++によるHDLC入門書 TUT-0027 Visual BasicによるGP-IB入門書 TUT-0026 Visual C++によるGP-IB入門書 TUT-0025 Visual BasicによるDIO入門書 TUT-0024 Visual C++によるDIO入門書 TUT-0023 Visual BasicによるDA入門書 TUT-0022 Visual C++によるDA入門書 TUT-0021 Visual BasicによるAD入門書 TUT-0020 Visual C++によるAD入門書 TUT-0019 Visual Basicによるモーションコントローラ入門書 TUT-0018 Visual C++によるモーションコントローラ入門書 TUT-0017 メモリンクを使用した負荷分散システム事例チュートリアル TUT-0016 Visual BasicによるPPI入門書 TUT-0015 モーションコントロールチュートリアル TUT-0014 Microsoft Visual Studio .NET移行ガイド TUT-0008 拡張ユニット チュートリアル(問題解決編) TUT-0007 拡張ユニットチュートリアル(入門編) TUT-0006 C(98)/ISA製品からPCI/CompactPCI製品への移行チュートリアル(DOS編) TUT-0005 DOSによるLAP-B入門書 TUT-0004 DOSによるAD入門書 TUT-0003 LinuxによるPCI/CompactPCI/CardBus制御 入門書 TUT-0002 PCI-ISAバスブリッジチュートリアル TUT-0001 PCI-Cバスブリッジチュートリアル

技術情報資料 初めてのCANインタフェース Linux, リアルタイムLinux移植(SH-4)経験談及び当社の今後の取り組みについて LinuxからPCI/CompactPCIボードを制御する方法 ActiveXコントロールによるシステム組み込み技術 CompactPCIへの置き換え+システム構築/移行ガイド MS-DOSからPCI/CompactPCIボードを制御する方法

Page 93: チュートリアル Visual BasicによるAD入門書正)gConfig.SmplChReq(1).ulRange = AD_5V 1.4 2002年10月 ・CardBus対応 ・標準モジュール、リファレンスの変更(関数の追加)

TUT-0021

- 91 - Interface Corporation

参考文献

著者・出版社 題 名 米山 寿一 A/Dコンバータ入力(オーム社:1993年) 浜田 望 よくわかる信号処理(オーム社:1995年)

警告!

本ドキュメントの一部または全てを弊社の許可なく、複写, 複製, 転載, 電子化することを禁

じます。

Page 94: チュートリアル Visual BasicによるAD入門書正)gConfig.SmplChReq(1).ulRange = AD_5V 1.4 2002年10月 ・CardBus対応 ・標準モジュール、リファレンスの変更(関数の追加)

TUT-0021 2007年 12月 Ver. 2.0 発行 発行所

〒732-0828 広島県広島市南区京橋町10-21 TEL 082-262-7777 FAX 082-262-5066

定価 ¥2,000

本書の内容の一部または全部を、無断で転載することを禁止します。 本書の内容は、将来予告なく変更することがありますので、予めご了承ください。 © 2000, 2007 Interface Corporation. All rights reserved.

Page 95: チュートリアル Visual BasicによるAD入門書正)gConfig.SmplChReq(1).ulRange = AD_5V 1.4 2002年10月 ・CardBus対応 ・標準モジュール、リファレンスの変更(関数の追加)

www.interface.co.jp

サポート体制

本製品についてのお問い合わせは、カスタマーサポートセンタで承ります。弊社Web siteのオ

ンラインQA(「サポート」→「カスタマーサポートセンタ」をクリック)、E-mailまたはフリーダイヤ

ルをご利用ください。 お問い合わせ先 <カスタマーサポートセンタ> TEL 0120-447213 FAX 0120-458257 (祝日および弊社休業日を除く月~金 AM9:00~PM5:00迄) E-mail [email protected]

TUT-0021 Ver. 2.0 Vol. 1/1

Page 96: チュートリアル Visual BasicによるAD入門書正)gConfig.SmplChReq(1).ulRange = AD_5V 1.4 2002年10月 ・CardBus対応 ・標準モジュール、リファレンスの変更(関数の追加)

www.interface.co.jp

Visual BasicによるAD入門書 TUT-0021 Ver. 2.0