TUT-0022



Similar documents
TUT-0023

Visual C++によるDA入門書

Visual C++によるAD入門書

Visual BasicによるAD入門書

Microsoft Visual Studio .NET移行ガイド

visual C++によるGP-IB入門書

チュートリアル XP Embedded 入門編

CANチュートリアル

Visual BasicによるDIO入門書

C-ISAバス製品からPCIバス製品への移行マニュアル MS-DOS編 LAP-B [VCD-4115→GPD-4115への移行]

untitled

Gpci4ソフト_下位DLL_説明書3版.PDF

目 次 1. はじめに 3 2. システム 要 件 4 3. HDD Password Tool のインストール 5 Windows の 場 合 5 Mac の 場 合 8 4. HDD Password Tool の 使 い 方 HDD Password Tool を 起 動 する

WinDriver PCI Quick Start Guide

IO-PCIソフト仕様書3版.PDF

CSV_Backup_Guide

アプリケーション補足説明書(Office2003)

目 次 機 能 運 用 上 の 注 意 処 理 手 順 画 面 説 明 ログイン 直 送 先 選 択

2

Microsoft Word - iMCs01Windowsマニュアル_v1_1.doc

WinDriver を使用して、簡単にデバイス ドライバを作成

API-PAC(W32)RM/AIO

MEU-J742020

前 書 き 広 域 機 関 システム System for Organization for Cross-regional Coordination of Transmission Operators(OCCTO) rev: 商 標 類 Windows Office Excel

MSC-J320312

MEU-J284122

HTG-35U ブルーバック表示の手順書 (2014年12月改定)

パソコンバンクWeb21 操作マニュアル[導入・事前設定編]

ファイルサーバー(NFS) 構築ガイド

GPC-4851

ORiN CAO USB (3) CAO CAO USB ORiN CAO USB 1 2 (4) CAO 3 CAO USB 4 PC OS 1 CPU:Pentium IV 2. 8GHz :512MByte Windows XP SP2 Professional ORiN2 SDK USB D

治 験 実 施 管 理 システム NMGCP 向 け Excel 形 式 プロトコール 作 成 手 順 書 V4.0.3 対 応 版 第 1 版 株 式 会 社 富 士 通 アドバンストエンジニアリング All Rights Reserved,Copyright 株 式 会 社 富 士 通 アドバン

KINGSOFT Office 2016 動 作 環 境 対 応 日 本 語 版 版 共 通 利 用 上 記 動 作 以 上 以 上 空 容 量 以 上 他 接 続 環 境 推 奨 必 要 2

スマートデバイス管理ツール LanScope An

<4D F736F F D CB4907D817A936497CD8AC7979D835C E64976C8F915F E646F63>

untitled

Office2010 インストール手順

購買ポータルサイトyOASIS簡易説明書 b

新版明解C言語 実践編

マスタの 登 録 処 理 月 の 登 録 勤 怠 管 理 対 象 となる 処 理 月 を 設 定 します 1つのエクセルのファイル(ブック)で1ヵ 月 分 の 勤 怠 管 理 ができます 初 めてご 使 用 になる 場 合! 本 エクセルを 初 めてご 使 用 になる 場 合 は 処 理 月 を 設

Java演習(4) -- 変数と型 --

ESET Smart Security 8 リリースノート

MEU-J485111

Microsoft Corporation のガイドラインに 従 って 画 面 写 真 を 使 用 しています Microsoft Windows Windows Vista は 米 国 Microsoft Corporation の 米 国 及 びその 他 の 国 における 登 録 商 標 又 は

CD Microsoft, MS-DOS, Windows 95, Windows 98,Windows Me, Windows NT, Windows 2000, Visual Basic, Visual Basic.NET, Visual C#, Excel, ActiveX Microsoft

AquesTalk Win Manual

AquesTalk プログラミングガイド

program.dvi

GPC-4116

<4D F736F F D F B D834F AC888D5837D836A B5F E646F63>

電子納品チェックシステム利用マニュアル

tutorial_lc.dvi

目 次 1.はじめに 1-1. はじめに 2. 操 作 2-1. 概 要 2-2. 操 作 方 法 ( 調 査 依 頼 の 確 認 ) 2-3. 操 作 方 法 ( 回 答 登 録 ) 2-4. 操 作 方 法 (ワークシート 出 力 ) 2-5. 操 作 方 法 (ワークシート 取 込 ) 3.

端 末 型 払 い 出 しの 場 合 接 続 構 成 図 フレッツ グループから 払 出 されたIPアドレス /32 NTT 西 日 本 地 域 IP 網 フレッツ グループ フレッツ グループから 払 出 されたIPアドレス /

Windows 10

目 次 1 インストール 手 順 プログラム データファイルのインストール Microsoft Access2013Runtime SP1(32bit) 版 のインストール 基 本 操 作 ログイン メニュー...

インストールマニュアル

FBWFMemoryWatcher

CONTENTS Web

電子証明書の更新

10/ / /30 3. ( ) 11/ 6 4. UNIX + C socket 11/13 5. ( ) C 11/20 6. http, CGI Perl 11/27 7. ( ) Perl 12/ 4 8. Windows Winsock 12/11 9. JAV

ユーザーガイド

まいと~く FAX Server 7 導入ガイド

DPC-0244

untitled

<4D F736F F D2090BF8B818AC7979D8B40945C91808DEC837D836A B2E646F63>

Transcription:

チュートリアル Visual C++によるDA 入 門 書 (Digital To Analog) www.interface.co.jp

/, (), (), (),,, (),,,, 2000, 2006 Interface Corporation. All rights reserved. www.interface.co.jp

Ver. 1.3 20066 XP Embedded DLL 1.2 200412 Windows XP/Server 2003/2000 1.1 20044 DLL 1.0 200011 (, ),Web site(www.interface.co.jp) () - 1 - Interface Corporation

目 次 1 6 1.1 D/A... 6 1.2... 7 1.3... 7 2 DA 8 2.1... 8 2.1.1... 9 Windows XP Embedded,Windows XP,Windows Server 2003... 9 Windows 2000... 11 2.2... 12 3 Visual C++DA 13 3.1 Visual C++DA... 13 3.2... 14 3.3 DLL()... 15 3.4 DA... 15 4 16 4.1... 17 Step1.... 17 Step2. DLL... 19 Step3.... 23 Step4.... 27 4.2... 37 4.3... 38 4.4... 39 4.5... 40 4.6... 41 4.7... 43 Step1.... 43 Step2.... 43 Step3.... 45 5 DLL 49 5.1 FbiDa.DLL... 49 DaOpen... 49 DaClose... 49 DaGetDeviceInfo... 50 DaSetBoardConfig... 50 DaGetBoardConfig... 51 DaSetSamplingConfig... 51-2 - Interface Corporation

DaGetSamplingConfig... 52 DaSetMode... 52 DaGetMode... 54 DaSetFifoConfig... 55 DaGetFifoConfig... 55 DaSetSamplingData... 56 DaClearSamplingData... 56 DaStartSampling... 57 DaStartFileSampling... 58 DaStopSampling... 58 DaSyncSampling... 59 DaGetStatus... 60 DaOutputDA... 60 DaInputDI... 61 DaOutputDO... 61 DaSetInterval... 62 DaGetInterval... 62 DaSetFunction... 63 DaGetFunction... 64 DaAdjustVR... 65 DaRead AdjustVR... 67 DaSetCountEvent... 68 CallBackProc... 68 5.2 FbiDaDC.DLL... 69 DaDataConv... 69 DaWriteFile... 70 fnconv... 71... 71 5.3 Visual C++... 72 DASMPLREQ... 72 DASMPLCHREQ... 73 DABOARDSPEC... 74 DAMODEREQ (PCI-3305,PCI-3310,PCI-3335,PCI-3336,PCI-3340,CBI/CSI-340212, CBI/CSI-340312,CTP/CPZ-3340A,CTP/CPZ-3340B,CTP/CPZ-3340C,CTP/CPZ-3340D )... 75 DAMODECHREQ(PCI-3305,PCI-3310,PCI-3335,PCI-3336,PCI-3340, CBI/CSI-340212, CBI/CSI-340312,CTP/CPZ-3340A,CTP/CPZ-3340B,CTP/CPZ-3340C,CTP/CPZ-3340D )... 77 DAFIFOREQ... 78 5.4 Visual C++... 81 88-3 - Interface Corporation

DA Visual C++ Visual C++ Web site(www.interface.co.jp)faq,, (BPC-0810) Windows XP/XP Embedded/Server 2003/2000Visual C++Ver. 5.0(SP3) Ver. 6.0(SP5) Windows NT/Me/98/95 Visual Studio.NETVisual Studio.NET OSReadme - 4 - Interface Corporation

- 5 - Interface Corporation (PCI) PCI- 3343A PCI-3176 PCI-3325 PCI-3336 PCI-3340 PCI-3345A PCI-3521 PCI-3525 PCI-360216 CTP-3174 PCI-3174 PCI-3305 PCI-3329 PCI-3337 PCI-3341A PCI-3346A PCI-3522A PCI-360112 PCI-3175 PCI-3310 PCI-3335 PCI-3338 PCI-3342A PCI-3347 PCI-3523A PCI-360116 (CPZ) CPZ-3175 CPZ-3329 CPZ-3340B CPZ-3342 CPZ-3347 CPZ-3350 CPZ-3522 CPZ-360112 CTP-360112 CPZ-3174 CPZ-3182 CPZ-3338 CPZ-3340C CPZ-3343 CPZ-3348 CPZ-3351 CPZ-3523 CPZ-360116 CPZ-3325 CPZ-3340A CPZ-3340D CPZ-3346 CPZ-3349 CPZ-3521 CPZ-3525 CPZ-360810 LPC-340216 (CTP) CTP-3175 CTP-3329 CTP-3340B CTP-3342 CTP-3347 CTP-3350 CTP-3522 CTP-3182 CTP-3338 CTP-3340C CTP-3343 CTP-3348 CTP-3351 CTP-3523 CTP-3325 CTP-3340A CTP-3340D CTP-3346 CTP-3349 CTP-3521 CTP-360116 (CSI) CSI-340212 CSI-360112 CSI-340312 CSI-360016 (CBI) CBI-340212 CBI-340212TR CBI-340312TL CBI-360112TK CBI-360116 CBI-360116TR CBI-340212TK CBI-340312 CBI-340312TR CBI-360112TL CBI-360116TK CBI-340212TL CBI-340312TK CBI-360112 CBI-360112TR CBI-360116TL CBI-340112 (LPC) LPC-340416 LPC-361316 LPC-361116 LPC-361416 LPC-361216 (PEX) PEX-340416 PEX-361316 PEX-361116 PEX-361416 PEX-361216 Web site

第 1 章 アナログ 出 力 概 要 (analog) 1212 1:53 1:531:53.11:53.1241:53.1245.. 1.1 D/Aコンバータ D/ADigital to Analog Converter DAD/A CD D/A - 6 - Interface Corporation

1.2 アナログ 出 力 DA DA V 5 4.5 4 3.5 3 2.5 2 1.5 1 0.5 0 1.3 バイポーラとユニポーラ (unipolar)(bipolar) ()5V0V +5V0V-2.5V +2.5V [V] 5 4.5 4 3.5 3 2.5 2 1.5 1 0.5 ユニポーラ [V] 2.5 2 1.5 1 0.5 0-0.5-1 -1.5-2 バイポーラ 0-2.5-7 - Interface Corporation

第 2 章 DAボードのインストール DA WindowsXP/XP Embedded/Server 2000/2000DA Windows NT/Me/98/95 2.1 コンピュータへの 設 置 方 法 OFF AC, <> PCI 製 品 は 正 しい 向 きに 実 装 してください 間 違 った 向 きに 実 装 した 場 合 コンピュータ,ボードを 破 損 する 恐 れがあります AC - 8 - Interface Corporation

2.1.1 デバイスドライバのインストール Windows XP Embedded,Windows XP,Windows Server 2003をご 使 用 の 場 合 Administrators Windows XP EmbeddedWindows XP (OS ) Windows XP Embedded,Windows XP,Windows Server 2003 () Win2000 Win2000-9 - Interface Corporation

Windows XP Embedded,Windows XP,Windows Server 2003 Windows XP Embedded Web sitegpc-2000driver Disk [Windows XPe,XP,2003,2000] Win2000 Windows XP Embedded Component Database Manager Win2000 SLD - 10 - Interface Corporation

Windows 2000をご 使 用 の 場 合 Administrators Windows 2000 () Win2000 OK - 11 - Interface Corporation

Windows 2000 (I/O,), ここにボードが 追 加 されます 2.2 ソフトウェアセットアップ GPC-3300 (1) Web sitesetup.exe (2) Interface GPC-3300 README.HTM, - 12 - Interface Corporation

第 3 章 Visual C++によるDA 制 御 3.1 Visual C++によるDA 制 御 Visual C++DADLLWindows I/ODA (DLL)()DLL Visual C++ FBIDA.DLL ( ) Win32 API CP33xx.sys DA - 13 - Interface Corporation

3.2 ピンアサインメント DA PCI-3310. PCI-3310 PCR-E36LMDA VOUT1 VOUT2 VOUT3 VOUT4 NC NC NC NC NC NC EXCLK OUT 2 NC EXINT IN NC NC RESET IN 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 VCOM1 VCOM2 VCOM3 VCOM4 NC NC NC NC NC NC IN1 IN2 OUT1 OUT2 DCOM ACOM PCR-E36FS :PCR-E36FS NC -15V 1 17 35 18 36 NC +5V 1 +15V 1 :PCS-E36LK VOUT1 1 CH1 VOUT2 2 CH2 VOUT3 3 CH3 VOUT4 4 CH4 VCOM1 19 CH1 VCOM2 20 CH2 VCOM3 21 CH3 VCOM4 22 CH4 1Ω(TYP) 5mA 450pF 0V 0V 1 ジャンパスイッチの 設 定 により 出 力 またはNC( 未 接 続 )にすることができます 2 ドライバソフトウェアにより 出 力 を 禁 止 することができます - 14 - Interface Corporation

3.3 DLLプロシージャ 呼 び 出 しによるプログラミング( 概 要 ) Visual C++DLLDA (FBIDA.DLL)DLL (Dynamic Link Library) 1 Visual C++DLL FBIDA.LIBFBIDADC.LIB DLL() 3.4 DAボード 制 御 概 略 DA() (1) (2) (3) (4) 1. Visual C++DA DA DA DA 2. 3. 4. - 15 - Interface Corporation

第 4 章 チュートリアル DA DA(PCI-3310)136 (TRM-8000)3636 (CAB-83xxCAB-84xx) 波 形 データ 端 子 台 DAボード オシロスコープ PCI-3310 DA1(VOUT1) PCI-3310,TRM-8000の 組 み 合 わせの 場 合 端 子 台 の20 番 ピンがCOMに 0 番 ピンがチャン ネル1の 出 力 になります - 16 - Interface Corporation

4.1 正 弦 波 出 力 DA(PCI-3310)1 05V100Hz V 5 4.5 4 3.5 3 2.5 2 1.5 1 0.5 0 Step1. メインウィンドウ 作 成 1.Visual C++ MFC AppWizard(exe)DaOutput OK MFC AppWizard (exe) - 17 - Interface Corporation

2. SDI/MDISDI SDI 3. 256 4. OK OK - 18 - Interface Corporation

Step2. DLLプロシージャ 宣 言 DLLFBIDA.LIBFBIDADC.LIB DLL(Dynamic Link Library) Windows I/O DA (DLL)DLL DLLVisual C++ 1. FBIDA.LIBFBIDADC.LIB,FBIDA.H,GPCDA.H - 19 - Interface Corporation

() <Program Files> Interface GPC3300 includeok() include - 20 - Interface Corporation

<Program Files> Interface GPC3300 lib OK() lib - 21 - Interface Corporation

2. FBIDA.LIBFBIDADC.LIB /fbida.lib fbidadc.libok FBIDA.LIBFBIDADC.LIB FBIDA.LIB,FBIDADC.LIB,FBIDA.HGPCDA.HSetup <> lib,<> include (:<Program Files> Interface GPC3300) - 22 - Interface Corporation

Step3. 初 期 化 処 理 と 終 了 処 理 DA DA (List1 ) // HANDLE hdevicehandle; hdevicehandle = DaOpen( FBIDA1 ); // FBIDA1 DaOpen HANDLE - 23 - Interface Corporation

(List2 ) // INT nret; nret = DaClose(hDeviceHandle); DaClose hdevicehandlehdevicehandle DaOpen DaOpenhDeviceHandle() () hdevicehandledaopen DaOpenDaClose DaOpen DaClose 1. ClassWizard 2. DaOutput CDaOutputView ID CDaOutputView WM_CREATE - 24 - Interface Corporation

3. 4. WM_DESTROY 5. FileViewSourceFileDaOutputView.cpp() #include fbida.h #include <math.h>() 6. DaOutputView.hList4 CDaOutputView.h 7. OnCreateList5 CDaOutputViewOnCreate 8. OnDestroyList6 CDaOutputViewOnDestory (List3 DaOutputView.cpp fbida.h) // DaOutputView.cpp : CDaOutputView // #include "stdafx.h" #include "DaOutput.h" #include "DaOutputDoc.h" #include "DaOutputView.h" #include "fbida.h" #include <math.h> #ifdef _DEBUG #define new DEBUG_NEW #undef THIS_FILE static char THIS_FILE[] = FILE ; #endif - 25 - Interface Corporation

(List4 CDaOutputView.h) // DaOutputView.h : CDaOutputView // ///////////////////////////////////////////////////////////////////////////// #include "fbida.h" #if!defined(afx_daview_h 67D77C11_AB22_11D4_845C_00004CBDE0CF INCLUDED_) #define AFX_DAVIEW_H 67D77C11_AB22_11D4_845C_00004CBDE0CF INCLUDED_ #if _MSC_VER >= 1000 #pragma once #endif // _MSC_VER >= 1000 class CDaOutputView : public CView { protected: // CDaOutputView(); DECLARE_DYNCREATE(CDaOutputView) // public: CDaOutputDoc* HANDLE WORD DASMPLREQ // public: // GetDocument(); hdevicehandle; gwsmpldata[256]; gconfig; } (List5 CDaOutputViewOnCreate) int CDaOutputView::OnCreate(LPCREATESTRUCT lpcreatestruct) { INT nret; if (CView::OnCreate(lpCreateStruct) == -1) return -1; // hdevicehandle = DaOpen("FBIDA1"); if(hdevicehandle == INVALID_HANDLE_VALUE){ AfxMessageBox(""); return 0; } // nret = DaGetSamplingConfig(hDeviceHandle,&gConfig); if(nret!= DA_ERROR_SUCCESS){ DaClose(hDeviceHandle); AfxMessageBox(""); return 0; } return 0; (List6 CDaOutputViewOnDestory) void CDaOutputView::OnDestroy() { INT nret; CView::OnDestroy(); // if(hdevicehandle!= INVALID_HANDLE_VALUE){ nret = DaClose(hDeviceHandle); if(nret!= DA_ERROR_SUCCESS){ AfxMessageBox(""); } } } - 26 - Interface Corporation

List5 CDaOutputViewOnCreateDaGetSamplingConfig Step4. 正 弦 波 出 力 1. ResourceViewMenuIDR_MAINFRAME 2. () 3. ID ID_OUTSIN ID_OUTSIN - 27 - Interface Corporation

4. Class Wizard 5. () DaOutput ID 6. CDaOutputView ID_OUTSIN COMMAND 7. OnOutsin OK 8. ID ID_DASTART 9. Class Wizard 10. DaOutput CDaOutputView ID ID_DASTART COMMAND 11. OnDastart OK - 28 - Interface Corporation

12. ID ID_DASTOP 13. Class Wizard 14. DaOutput CDaOutputView ID ID_DASTOP COMMAND 15. OnDastop OK 16. FileViewSourceFileOnOutsin,OnDastart,OnDastop (List7 CDaOutputViewOnOutsin) void CDaOutputView::OnOutSin() { INT ncount; // WORD wmax; // WORD wmin; // WORD wmid; // //8 //wmax = 0xff; //wmin = 0; //12 //wmax = 0xfff; //wmin = 0; //16 wmax = 0xffff; wmin = 0; } wmid= (wmax + wmin) / 2; // for(ncount = 0;nCount < 200;nCount++){ gwsmpldata[ncount] = (WORD)(wMid * sin(ncount * 2 * 3.14159265 / 200) + wmid); } - 29 - Interface Corporation

(List8 CDaOutputViewOnDastart) void CDaOutputView::OnDastart() { INT nret;// // nret = DaSetBoardConfig(hDeviceHandle,200,NULL,NULL,0); if(nret!= DA_ERROR_SUCCESS){ AfxMessageBox(""); return; } // gconfig.ulsmplrepeat = 0; // gconfig.fsmplfreq = 20000; // 20kHz gconfig.smplchreq[0].ulchno = 1; // gconfig.smplchreq[0].ulrange = DA_0_5V; // 0V5V // nret = DaSetSamplingConfig(hDeviceHandle,&gConfig); if(nret!= DA_ERROR_SUCCESS){ AfxMessageBox(""); return; } // nret = DaClearSamplingData(hDeviceHandle); if(nret!= DA_ERROR_SUCCESS){ AfxMessageBox(""); return; } // nret = DaSetSamplingData(hDeviceHandle,&gwSmplData,200); if(nret!= DA_ERROR_SUCCESS){ } AfxMessageBox(""); return; } // nret = DaStartSampling(hDeviceHandle,FLAG_ASYNC); if(nret!= DA_ERROR_SUCCESS){ AfxMessageBox(""); return; } (List9 CDaOutputViewOnDastop) void CDaOutputView::OnDastop() { INT nret; // // nret = DaStopSampling(hDeviceHandle); if(nret!= 0){ AfxMessageBox(""); } } 05 V100 Hz - 30 - Interface Corporation

V GND T T=10ms V=5.00 V 実 際 の 出 力 には 誤 差 があります 誤 差 の 範 囲 は 使 用 する 製 品 型 式 および 使 用 するコンピュ ータのスペックにより 異 なります List7 CDaOutputViewOnOutsin CDaOutputViewOnOutsin 1 16PCI-3310 0(0x0)65535(0xFFFF) 20020065536 List7 CDaOutputView OnOutsin00V655355V 分 解 能 が 異 なるボードを 使 用 する 際 には プログラム 中 のコメントの 位 置 を 変 更 してくださ い - 31 - Interface Corporation

gwsmpldata gwsmpldata0=0x8000; gwsmpldata1=0x8400; gwsmpldata50=0xffff; gwsmpldata198=0x77ff; gwsmpldata199=0x7bff; DaSetBoardConfig DaSetBoardConfig 23,4,5 コールバック 関 数 を 使 用 しない 場 合 は 第 3 引 数, 第 4 引 数 にNULL 第 5 引 数 に0を 指 定 して ください - 32 - Interface Corporation

DaSetSamplingConfig (DASMPLREQ)List8 CDaOutputViewOnDastart DASMPLREQgConfig gconfig.ulsmplrepeat = 0; gconfig.fsmplfreq = 20000; gconfig.smplchreq(0).ulchno = 1; gconfig.smplchreq(0).ulrange = DA_0_5V; //= //=20kHz //=1 //=0V5V, 20kHz,1,0V5V DASMPLREQ (List5 CDaOutputViewOnCreate) 49 5 DLLDASMPLREQ DASMPLCHREQ List8 CDaOutputViewOnDastart (ulsmplrepeat)gwsmpldata(gwsmpldata0 gwsmpldata199) gwsmpldata1-33 - Interface Corporation

(ulsmplfreq)gwsmpldata Hz20000(=20 khz) 50μs=1/(20 khz)gwsmpldata V gwsmpldata1 gwsmpldata0 0 50 100 150 50μs 200=10 ms 10 ms11/(10 ms)=100 Hz ulsmplfreqに 設 定 できる 最 大 値 は 使 用 するボードおよびコンピュータのスペックにより 異 なります (ulchno)(ulrange)10v5v 1DA_0_5V () 1 DaClearSamplingData DaSetSamplingData - 34 - Interface Corporation

DaSetSamplingData23 List8 CDaOutputView OnDastart200200 DaStartSampling / - 35 - Interface Corporation

2/(FLAG_SYNC)DaSetSamplingConfig (FLAG_ASYNC) DaSetSampling 関 数 にてulRepeatに0を 指 定 している 場 合 同 期 出 力 を 行 うとはできませ ん DaStopSampling DaStopSampling 関 数 にてアナログ 出 力 の 停 止 を 行 っても 直 前 の 出 力 状 態 が 保 持 された ままとなっています 出 力 電 位 の 初 期 化 は 行 われません (PCI-3305は 出 力 電 位 の 初 期 化 を するかしないかを 指 定 できます) - 36 - Interface Corporation

4.2 矩 形 波 出 力 V 5 4.5 4 3.5 3 2.5 2 1.5 1 0.5 0 1. ID ID_OUTRECT 2. OnOutrect Class Wizard DaOutput CDaOutputView ID ID_OUTRECT COMMAND 3. FileViewSourceFileDaOutputView.cppOutrect (List10 CDaOutputViewOnOutrect) void CDaOutputView::OnOutrect() { INT ncount;// WORD wmax; // WORD wmin; // //8 //wmax = 0xff; //wmin = 0; //12 //wmax = 0xfff; //wmin = 0; //16 wmax = 0xffff; wmin = 0; // for(ncount = 0;nCount < 200;nCount++){ if(ncount < 100) gwsmpldata[ncount] = wmax; else gwsmpldata[ncount] = wmin; } } 05V100 Hz - 37 - Interface Corporation

4.3 のこぎり 波 V 5 4.5 4 3.5 3 2.5 2 1.5 1 0.5 0 1. ID ID_OUTSAW 2. OnOutsaw Class Wizard DaOutput CDaOutputView ID ID_OUTSAW COMMAND 3. FileViewSourceFileDaOutputView.cppOutsaw (List11 CDaOutputViewOnOutsaw) void CDaOutputView::OnOutsaw() { INT ncount;// WORD wmax; // WORD wmin; // //8 //wmax = 0xff; //wmin = 0; //12 //wmax = 0xfff; //wmin = 0; //16 wmax = 0xffff; wmin = 0; // for(ncount = 0;nCount < 200;nCount++){ gwsmpldata[ncount] = ncount * wmax / 200; } } 05V100Hz - 38 - Interface Corporation

4.4 三 角 波 出 力 V 5 4.5 4 3.5 3 2.5 2 1.5 1 0.5 0 1. ID ID_OUTTRI 2. OnOuttri Class Wizard DaOutput CDaOutputView ID ID_OUTTRI COMMAND 3. FileViewSourceFileDaOutputView.cppOuttri (List12 CDaOutputViewOnOuttri) void CDaOutputView::OnOuttri() { INT ncount;// WORD wmax; // WORD wmin; // } //8 //wmax = 0xff; //wmin = 0; //12 //wmax = 0xfff; //wmin = 0; //16 wmax = 0xffff; wmin = 0; // for(ncount = 0;nCount < 200;nCount++){ if(ncount <= 100) gwsmpldata[ncount] = ncount * wmax / 100; else gwsmpldata[ncount] = wmax - (ncount * wmax / 100); } 05V100Hz - 39 - Interface Corporation

4.5 その 他 の 波 形 出 力,,, gwsmpldata (List13 (1)) double dcount; for(ncount = 0;nCount < 200;nCount++){ dcount = (ncount - 100.0) / 100.0; if(ncount % 2) gwsmpldata[ncount] = (WORD)(2 * wmid * (dcount * sqrt(1 - pow(k,2))) + wmid); else gwsmpldata[ncount] = (WORD)(-2 * wmid * (dcount * sqrt(1 - pow(k,2))) + wmid); } (List14 (2)) double dcount; for(ncount = 0;nCount < 200;nCount++){ dcount = (ncount - 100.0) / 100.0; if(ncount % 2) gwsmpldata[ncount] = (WORD)(wMid * (pow(pow(dcount,2),(1 / 3)) + sqrt(1 - pow(dcount,2)))); else gwsmpldata[ncount] = (WORD)(wMid * (pow(pow(dcount,2),(1 / 3)) - sqrt(1 - pow(dcount,2)))); } - 40 - Interface Corporation

4.6 コールバック 関 数 1. CallBackProcCDaOutputView 2. List8 CDaOutputViewOnDastartOnDastart (List15 CDaOutputViewCallBackProc) void CALLBACK CallBackProc(DWORD dwuser){ MessageBox(NULL,"","",MB_SETFOREGROUND); CloseHandle((HANDLE)dwUser); } (List16 CDaOutputViewOnDastart) void CDaOutputView::OnDastart() { INT nret; // HANDLE hevent; // hevent = CreateEvent(0,FALSE,FALSE,NULL); // nret = DaSetBoardConfig(hDeviceHandle,200,hEvent,CallBackProc,(ULONG)hEvent); if(nret!= DA_ERROR_SUCCESS){ AfxMessageBox(""); return; } // gconfig.ulsmplrepeat = 0; // gconfig.fsmplfreq = 20000; // 20kHz gconfig.smplchreq[0].ulchno = 1; // gconfig.smplchreq[0].ulrange = DA_0_5V; // 0V5V // nret = DaSetSamplingConfig(hDeviceHandle,&gConfig); if(nret!= DA_ERROR_SUCCESS){ AfxMessageBox(""); return; } // nret = DaClearSamplingData(hDeviceHandle); if(nret!= DA_ERROR_SUCCESS){ AfxMessageBox(""); return; } // nret = DaSetSamplingData(hDeviceHandle,&gwSmplData,200); if(nret!= DA_ERROR_SUCCESS){ AfxMessageBox(""); return; } } // nret = DaStartSampling(hDeviceHandle,FLAG_ASYNC); if(nret!= DA_ERROR_SUCCESS){ AfxMessageBox(""); return; } - 41 - Interface Corporation

DaSetBoardConfig DaSetBoardConfig34 5 DaSetBoardConfig dwuser CallBackProc - 42 - Interface Corporation

4.7 データファイルからの 出 力 FbiDa.DLLCSV(Comma Separated Value) Step1. メインウィンドウ 作 成 1. Visual C++(:DaFileOut) 2. FBIDA.LIBFBIDA.H fbida.lib 3. ID ID_FILEOUT 4. OnFileout DaFileOut CDaFileOutView ID ID_FILEOUT COMMAND Step2. 出 力 データの 作 成 Microsoft ExcelCSV - 43 - Interface Corporation

1. 2. DATA.CSV (List17 CSV:) 2.500000 2.813333 3.121724 3.420311 3.704384 3.969463 4.211367 4.426283 4.610819 4.762067 4.877641 4.955718 4.995066 4.995066 4.955718 4.877641 4.762067 4.610819 4.426283 4.211367 3.969463 3.704384 3.420311 3.121724 2.813333 2.500000 2.186666 1.878275 1.579688 1.295615 1.030536 0.788632 0.573716 0.389180 0.237932 0.122358 0.044281 0.004933 0.004933 0.044281 0.122358 0.237932 0.389180 0.573716 0.788632 1.030536 1.295615 1.579688 1.878275 2.186666-44 - Interface Corporation

Step3. データファイルからの 出 力 1. FileViewSourceFileDaFileOutView.cpp() #include fbida.h (List18 fbida.h) // DaFileOutView.cpp : CDaFileOutView // #include "stdafx.h" #include "DaFileOut.h" #include "DaFileOutDoc.h" #include "DaFileOutView.h" #include "fbida.h" #ifdef _DEBUG #define new DEBUG_NEW #undef THIS_FILE static char THIS_FILE[] = FILE ; #endif 2. ClassViewCDaFileOutViewOnFileout (List19 CDaFileOutViewOnFileout ) void CDaFileOutView::OnFileout() { // TODO: FILE *fp; // HANDLE hdevicehandle; // DASMPLREQ Config; // DASMPLREQ INT nret; // INT nfilecount; // char sztemp[40]; // nfilecount = 0; // hdevicehandle = DaOpen("FBIDA1"); if(hdevicehandle == INVALID_HANDLE_VALUE){ AfxMessageBox(""); return; } // fp = fopen("data.csv","r"); while(fgets(sztemp,20,fp)!= NULL) nfilecount++; fclose(fp); // nret = DaSetBoardConfig(hDeviceHandle,nFilecount,NULL,NULL,0); if(nret!= DA_ERROR_SUCCESS){ AfxMessageBox(""); DaClose(hDeviceHandle); return; } // nret = DaGetSamplingConfig(hDeviceHandle, &Config); if(nret!= DA_ERROR_SUCCESS){ AfxMessageBox(""); DaClose(hDeviceHandle); return; } // Config.fSmplFreq = 5000; Config.SmplChReq[0].ulChNo = 1; Config.SmplChReq[0].ulRange = DA_0_5V; // = 5kHz // = 1 // = 0V5V - 45 - Interface Corporation

// nret = DaSetSamplingConfig(hDeviceHandle, &Config); if(nret!= DA_ERROR_SUCCESS){ AfxMessageBox(""); DaClose(hDeviceHandle); return; } // nret = DaClearSamplingData(hDeviceHandle); if(nret!= DA_ERROR_SUCCESS){ AfxMessageBox(""); DaClose(hDeviceHandle); return; } // () nret = DaStartFileSampling( hdevicehandle, "DATA.CSV", FLAG_CSV, nfilecount); if(nret!= DA_ERROR_SUCCESS){ AfxMessageBox(""); DaClose(hDeviceHandle); return; } AfxMessageBox(""); // nret = DaClose(hDeviceHandle); if(nret!= DA_ERROR_SUCCESS){ AfxMessageBox(""); } } DATA.CSV()1-46 - Interface Corporation

CSV CSV (DATA.CSV)11, 2 2.500000,2.500000 2.813333,2.813333 3.121724,3.121724 3.420311,3.420311 3.704384,3.704384 List19 CDaFileOutViewOnFileout DaStartFileSampling CSV DLL - 47 - Interface Corporation

50 Web site(visual C++) BPC-0810SAMP.CSV2 List19 CDaFileOutViewOnFileout DA_5VDATA.CSV SAMP.CSV (List20 CDaFileOutViewOnFileout) // Config.fSmplFreq = 5000; Config.SmplChReq[0].ulChNo = 1; Config.SmplChReq[0].ulRange = DA_5V; // = 5kHz // = 1 // = -5V5V - 48 - Interface Corporation

第 5 章 DLLリファレンス 5.1 FbiDa.DLL 関 数 リファレンス DaOpen HANDLE DaOpen( LPCTSTR lpszname ); lpszname DaOpen INVALID_HANDLE_VALUE Windows XP/XP Embedded/2000/Me/98/95FbiPciDa DA (DAWAVESMP.EXE) Windows NTDA(DAWAVESMP.EXE) DaClose INT DaClose( HANDLE hdevicehandle ); hdevicehandle DaOpen DaClose DA_ERROR_SUCCESS DA_ERROR_SUCCESSDA_ERROR_SUCCESS (DaOpen) 0V - 49 - Interface Corporation

DaGetDeviceInfo INT DaGetDeviceInfo( HANDLE hdevicehandle, PDABOARDSPEC pdaboardspec ); hdevicehandle pdaboardspec DaOpen DA(DABOARDSPEC) DaGetDeviceInfoDA_ERROR_SUCCESSDA_ERROR_SUCCESS DA_ERROR_SUCCESS DaSetBoardConfig INT DaSetBoardConfig( HANDLE hdevicehandle, ULONG ulsmplbuffersize, HANDLE hevent, LPDACALLBACK lpcallbackproc, DWORD dwuser ); hdevicehandle ulsmplbuffersize hevent lpcallbackproc dwuser DaOpen 1 1024 CNULL,Visual Basic0,Delphi NIL NULL CallBackProc CNULL Visual Basic0DelphiNIL NULL 0 0 DaSetBoardConfigDA_ERROR_SUCCESSDA_ERROR_SUCCESS DA_ERROR_SUCCESS (C)CallBackProc void CALLBACK CallBackProc( DWORD dwuser ); - 50 - Interface Corporation

DaGetBoardConfig INT DaGetBoardConfig( HANDLE hdevicehandle, ULONG *ulsmplbuffersize, ULONG *uldasmpleventfactor ); hdevicehandle DaOpen ulsmplbuffersize uldasmpleventfactor DA_EVENT_STOP_TRIGGER DA_EVENT_STOP_FUNCTION DA_EVENT_STOP_SAMPLING DA_EVENT_RESET_IN DA_EVENT_CURRENT_OFF DaGetBoardConfigDA_ERROR_SUCCESSDA_ERROR_SUCCESS DA_ERROR_SUCCESS DaSetSamplingConfig INT DaSetSamplingConfig( HANDLE hdevicehandle, PDASMPLREQ pdasmplconfig ); hdevicehandle pdasmplconfig DaOpen (DASMPLREQ) DaSetSamplingConfigDA_ERROR_SUCCESSDA_ERROR_SUCCESS DA_ERROR_SUCCESS DA - 51 - Interface Corporation

DaGetSamplingConfig INT DaGetSamplingConfig( HANDLE hdevicehandle, PDASMPLREQ pdasmplconfig ); hdevicehandle pdasmplconfig DaOpen (DASMPLREQ) DaGetSamplingConfigDA_ERROR_SUCCESSDA_ERROR_SUCCESS DA_ERROR_SUCCESS (DASMPLREQ) DaSetMode EXCLK OUT EXTRG OUT RESET IN PCI-3305 PCI-3310 1 PCI-3335 2 2 PCI-3336 1 PCI-3337 2 2 PCI-3340 LPC-340216 LPC-340416 LPC-361316 LPC-361416 PEX-340216 PEX-340416 PEX-361316 PEX-361416 CBI/CSI-340112 CBI/CSI-340212 CBI/CSI-340312 CBI-340212TR CBI-340312TR CBI-340212TK CBI-340312TK CBI-340212TL CBI-340312TL CTP/CPZ-3340A CTP/CPZ-3340B CTP/CPZ-3340C CTP/CPZ-3340D - 52 - Interface Corporation

1 [11] 2 [12] INT DaSetMode( HANDLE hdevicehandle, PDAMODEREQ pdamode ); hdevicehandle pdamode DaOpen (DAMODEREQ) DaSetModeDA_ERROR_SUCCESSDA_ERROR_SUCCESS DA_ERROR_SUCCESS EXCLK OUTDAMODEREQulExClock DA_EXCLK_INDA_EXCLK_OUT EXTRG OUTDAMODEREQulExControl DA_EXTRG_INDA_EXTRG_OUT RESET IN/DAMODEREQulExControlDA_RESET_OFF DA_RESET_ON - 53 - Interface Corporation

DaGetMode EXCLK OUT EXTRG OUT RESET IN PCI-3305 PCI-3310 1 PCI-3335 2 2 PCI-3336 1 PCI-3337 2 2 PCI-3340 LPC-340216 LPC-340416 LPC-361316 LPC-361416 PEX-340216 PEX-340416 PEX-361316 PEX-361416 CBI/CSI-340112 CBI/CSI-340212 CBI/CSI-340312 CBI-340212TR CBI-340312TR CBI-340212TK CBI-340312TK CBI-340212TL CBI-340312TL CTP/CPZ-3340A CTP/CPZ-3340B CTP/CPZ-3340C CTP/CPZ-3340D 1 [11] 2 [12] INT DaGetMode( HANDLE hdevicehandle, PDAMODEREQ pdamode ); hdevicehandle pdamode DaOpen (DAMODEREQ) DaGetModeDA_ERROR_SUCCESSDA_ERROR_SUCCESS DA_ERROR_SUCCESS PCI-3305EXCLK OUTEXTRG OUT EXCLK OUTDAMODEREQulExClock EXTRG OUTDAMODEREQulExControl - 54 - Interface Corporation

DaSetFifoConfig (FIFO) INT DaSetFifoConfig( HANDLE hdevicehandle, PDAFIFOREQ pdafifoconfig ); hdevicehandle pdafifoconfig DaOpen FIFO(DAFIFOREQ) DaSetFifoConfigDA_ERROR_SUCCESSDA_ERROR_SUCCESS DA_ERROR_SUCCESS PCI-3525, CPZ-3525, LPC-340216, LPC-340416, LPC-361316, LPC-361416, PEX-340216, PEX-340416, PEX-361316, PEX-361416, CSI/CBI-340112, CSI/CBI-340212, CSI/CBI-340312, CBI-340212TR, CBI-340312TR, CBI-340212TK, CBI-340312TK, CBI-340212TL, CBI-340312TL DaGetFifoConfig (FIFO) INT DaGetFifoConfig( HANDLE hdevicehandle, PDAFIFOREQ pdafifoconfig ); hdevicehandle pdafifoconfig DaOpen FIFOFIFO (DAFIFOREQ) DaGetFifoConfigDA_ERROR_SUCCESSDA_ERROR_SUCCESS DA_ERROR_SUCCESS FIFO(DAFIFOREQ) PCI-3525, CPZ-3525, LPC-340216, LPC-340416, LPC-361316, LPC-361416, PEX-340216, PEX-340416, PEX-361316, PEX-361416, CSI/CBI-340112, CSI/CBI-340212, CSI/CBI-340312, CBI-340212TR, CBI-340312TR, CBI-340212TK, CBI-340312TK, CBI-340212TL, CBI-340312TL - 55 - Interface Corporation

DaSetSamplingData INT DaSetSamplingData( HANDLE hdevicehandle, PVOID psmpldata, ULONG ulsmpldatanum ); hdevicehandle psmpldata ulsmpldatanum DaOpen 1 DaSetSamplingDataDA_ERROR_SUCCESSDA_ERROR_SUCCESS DA_ERROR_SUCCESS DaStartSampling (PCI-3335,3337) PCI-3305 () () C Visual Basic Delphi 8bit 1 BYTE Byte Byte 12bit 2 WORD Integer Word 16bit 2 WORD Integer Word 24bit 4 DWORD Long Dword DaClearSamplingData INT DaClearSamplingData( HANDLE hdevicehandle ); hdevicehandle DaOpen DaClearSamplingDataDA_ERROR_SUCCESSDA_ERROR_SUCCESS DA_ERROR_SUCCESS - 56 - Interface Corporation

DaStartSampling INT DaStartSampling( HANDLE hdevicehandle, ULONG ulsyncflag ); hdevicehandle ulsyncflag DaOpen FLAG_SYNC FLAG_ASYNC DaStartSamplingDA_ERROR_SUCCESSDA_ERROR_SUCCESS DA_ERROR_SUCCESS DaSetSamplingData( ) 1) (FLAG_SYNC) DLL / DaStartSampling [] DaStartSampling [] (FLAG_ASYNC) API WIN32APIWaitForSingleObject DLL WaitForSingleObject DaStartSampling DaStartSampling / [] 2)DaStopSamplin 3) (DASMPLREQulSmplRepeat)0 0-57 - Interface Corporation

DaStartFileSampling INT DaStartFileSampling( HANDLE hdevicehandle, LPCTSTR pszpathname, ULONG ulfileflag, ULONG ulsmplnum ); hdevicehandle pszpathname ulfileflag DaOpen FLAG_BIN FLAG_CSV CSV() ulsmplnum DaStartFileSamplingDA_ERROR_SUCCESSDA_ERROR_SUCCESS DA_ERROR_SUCCESS CSV DaStopSampling DaStartSampling INT DaStopSampling( HANDLE hdevicehandle ); hdevicehandle DaOpen DaStopSamplingDA_ERROR_SUCCESSDA_ERROR_SUCCESS DA_ERROR_SUCCESS DaSetBoardConfig - 58 - Interface Corporation

DaSyncSampling PCI-3310 CTP/CPZ-3340A PCI-3329 CTP/CPZ-3340B PCI-3336 CTP/CPZ-3340C PCI-3340 CTP/CPZ-3340D PCI-3341A CTP/CPZ-3342 PCI-3342A CTP/CPZ-3343 PCI-3343A CTP/CPZ-3346 PCI-3345A CTP/CPZ-3347 PCI-3346A CTP/CPZ-3348 PCI-3347 CTP/CPZ-3349 PCI-3521 CTP/CPZ-3350 PCI-3522A CTP/CPZ-3351 PCI-3523A CTP/CPZ-3521 CTP/CPZ-3325 CTP/CPZ-3522 CTP/CPZ-3329 CTP/CPZ-3523 CTP/CPZ-3338 TUT-0022 hdevicehandle ulmode - 59 - Interface Corporation

DaGetStatus INT DaGetStatus( HANDLE hdevicehandle, ULONG *uldasmplstatus, ULONG *uldasmplcount, ULONG *uldaavailcount, ULONG *uldaavailrepeat ); hdevicehandle uldasmplstatus DaOpen DA_STATUS_STOP_SAMPLING DA_STATUS_WAIT_TRIGGER DA_STATUS_NOW_SAMPLING uldasmplcount uldaavailcount uldaavailrepeat DaGetStatusDA_ERROR_SUCCESSDA_ERROR_SUCCESS DA_ERROR_SUCCESS> DaOutputDA 1 DaStartSampling INT DaOutputDA( HANDLE hdevicehandle, ULONG ulch, PDASMPLCHREQ pdasmplchreq, LPVOID pdata ); hdevicehandle ulch pdasmplchreq pdata DaOpen 1 ulch1 (DASMPLCHREQ) pdata () DaOutputDADA_ERROR_SUCCESSDA_ERROR_SUCCESS DA_ERROR_SUCCESS - 60 - Interface Corporation

ulch1(1,3,5,74 ) DASMPLCHREQ()ulChNo 1( ) () C Visual Basic Delphi 8bit 1 BYTE Byte Byte 12bit 2 WORD Integer Word 16bit 2 WORD Integer Word 24bit 4 DWORD Long Dword DaInputDI INT DaInputDI( HANDLE hdevicehandle, DWORD *dwdata ); hdevicehandle dwdata DaOpen () DaOutputDO DaInputDIDA_ERROR_SUCCESSDA_ERROR_SUCCESS DA_ERROR_SUCCESS PCI-3305, PCI-3174, PCI-3175, PCI-3176, PCI-360112, PCI-360116, PCI-360216,LPC-361116, LPC-361216, LPC-361316, LPC-361416,PEX-361116, PEX-361216, PEX-361316, PEX-361416,CTP/CPZ-3174, CTP/CPZ-3175, CTP/CPZ-3182, CTP/CPZ-360112, CTP/CPZ-360116,CPZ-3525, CPZ-360810,CSI/CBI-360112, CBI-360112TR, CBI-360112TK, CBI-360112TL, CSI/CBI-360116, CBI-360116TR, CBI-360116TK, CBI-360116TL INT DaOutputDO( HANDLE hdevicehandle, DWORD dwdata ); hdevicehandle dwdata DaOpen ( ) DaOutputDODA_ERROR_SUCCESSDA_ERROR_SUCCESS DA_ERROR_SUCCESS PCI-3305, PCI- 3174, PCI- 3175, PCI- 3176, PCI-360112, PCI-360116, PCI-360216,LPC-361116, LPC-361216, LPC-361316, LPC-361416,PEX-361116, PEX-361216, PEX-361316, PEX-361416,CTP/CPZ-3174, CTP/CPZ- 3175, CTP/CPZ- 3182, CTP/CPZ-360112, CTP/CPZ-360116,CPZ-3525, CPZ-360810,CSI/CBI-360112, CBI-360112TR, CBI-360112TK, CBI-360112TL, CSI/CBI-360116, CBI-360116TR, CBI-360116TK, CBI-360116TL - 61 - Interface Corporation

DaSetInterval INT DaSetInterval( HANDLE hdevicehandle, ULONG ulinterval ); hdevicehandle ulinterval DaOpen 1[µs]16777215[µs](000001hFFFFFFh)(1µs) 0 DaSetIntervalDA_ERROR_SUCCESSDA_ERROR_SUCCESS DA_ERROR_SUCCESS PCI-3525,CPZ-3525,LPC-340216, LPC-340416, LPC-361316, LPC-361416,PEX-340216, PEX-340416, PEX-361316, PEX-361416,CSI/CBI-340112, CSI/CBI-340212, CSI/CBI-340312, CBI-340212TR, CBI-340312TR, CBI-340212TK, CBI-340312TK DaSetFifoConfig()DA_TRG_SIGTIMER () DaStartSamplingDaStartSampling 1 DaStartSmapling / / DaGetInterval INT DaGetInterval( HANDLE hdevicehandle, ULONG *ulinterval ); hdevicehandle ulinterval DaOpen 1[µs]16777215[µs](000001hFFFFFFh)(1µs) 0 DaGetIntervalDA_ERROR_SUCCESSDA_ERROR_SUCCESS DA_ERROR_SUCCESS PCI-3525,CPZ-3525,LPC-340216, LPC-340416, LPC-361316, LPC-361416,PEX-340216, PEX-340416, PEX-361316, PEX-361416,CSI/CBI-340112, CSI/CBI-340212, CSI/CBI-340312, CBI-340212TR, CBI-340312TR, CBI-340212TK, CBI-340312TK - 62 - Interface Corporation

DaSetFunction PCI-3525, CPZ-3525CN3 CPZ-360810 INT DaSetFunction( HANDLE hdevicehandle, ULONG ulchno, ULONG ulfunction ); hdevicehandle ulchno ulfunction DaOpen PCI-3525CPZ-3525 34 CPZ-360810 DA_EX_DIO1 CN4 DA_EX_DIO2 CN5 DA_EX_DIO3 CN6 10pin ncnno PCI-3525CPZ-3525 DA_CN_FREE DA_CN_EXTRG_IN DA_CN_EXTRG_OUT DA_CN_EXINT_IN CPZ-360810 DA_CN_FREE DA_CN_EXTRG_IN DA_CN_EXINT_IN DaSetFunctionDA_ERROR_SUCCESSDA_ERROR_SUCCESS DA_ERROR_SUCCESS PCI-3525, CPZ-3525, CPZ-360810 PCI-3525, CPZ-3525 CN4DaOpen CN3DA_CN_DI(DA_CN_DO)IN1(OUT1) (DA_CN_FREE AD CPZ-360810 (DA_CN_FREE - 63 - Interface Corporation

DaGetFunction PCI-3525, CPZ-3525CN3 CPZ-360810 INT DaGetFunction( HANDLE hdevicehandle, ULONG ulchno, ULONG *ulfunction ); hdevicehandle ulinterval ulfunction DaOpen PCI-3525CPZ-3525 34 CPZ-360810 DA_EX_DIO1 CN4 DA_EX_DIO2 CN5 DA_EX_DIO3 CN6 10pin ulchno PCI-3525CPZ-3525 DA_CN_FREE DA_CN_EXTRG_IN DA_CN_EXTRG_OUT DA_CN_EXINT_IN DA_CN_OPEN (CN4) CPZ-360810 DA_CN_FREE 0 DA_CN_EXTRG_IN 1 DA_CN_EXINT_IN 5 DaGetFunctionDA_ERROR_SUCCESSDA_ERROR_SUCCESS DA_ERROR_SUCCESS PCI-3525, CPZ-3525, CPZ-360810 PCI-3525, CPZ-3525 DaSetFunction (DA_CN_FREE ADAD_CN_FREE CPZ-360810 (DA_CN_FREE - 64 - Interface Corporation

DaAdjustVR TUT-0022 DA_ERROR_NOT_SUPPORTEDDA INT DaAdjustVR( HANDLE hdevicehandle, ULONG uladjustch, ULONG ulselvolume, ULONG uldirection, ULONG ultap ); hdevicehandle uladjustch ulselvolume DaOpen DA_ADJUST_BIOFFSET DA_ADJUST_UNIOFFSET DA_ADJUST_BIGAIN DA_ADJUST_UNIGAIN uldirection DA_ADJUST_UP DA_ADJUST_DOWN DA_ADJUST_STORE DA_ADJUST_STANDBY DA_ADJUST_NOT_STORE ultap (1100) DaAdjustVRDA_ERROR_SUCCESSDA_ERROR_SUCCESS DA_ERROR_SUCCESS - 65 - Interface Corporation

- 66 - Interface Corporation PCI-3176 PCI-3310 PCI-3335 PCI-3336 PCI-3337 PCI-3340 PCI-3347 LPC-340216 LPC-340416 LPC-361116 LPC-361216 LPC-361316 LPC-361416 PEX-340216 PEX-340416 PEX-361116 PEX-361216 PEX-361316 PEX-361416 CTP/CPZ-3340A CTP/CPZ-3340B CTP/CPZ-3340C CTP/CPZ-3340D CBI/CSI-340112 CBI/CSI-340212 CBI-340212TR CBI-340212TK CBI/CSI-340312 CBI-340312TR CBI-340312TK CBI/CSI-360116 CBI-360116TR CBI-360116TK

DaRead AdjustVR DA_ERROR_NOT_SUPPORTED INT DaReadAdjustVR( HANDLE hdevicehandle, ULONG uladjustch, ); hdevicehandle uladjustch DaOpen DaReadAdjustVRDA_ERROR_SUCCESSDA_ERROR_SUCCESS DA_ERROR_SUCCESS DA(DaAdjust.exe)CANCELEEPROM LPC-340216 LPC-340416 LPC-361116 LPC-361216 LPC-361316 LPC-361416 PEX-340216 PEX-340416 PEX-361116 PEX-361216 PEX-361316 PEX-361416 CBI/CSI-340212 CBI-340212TR CBI-340212TK CBI-340212TL CBI/CSI-340312 CBI-340312TR CBI-340312TK CBI-340312TL CBI/CSI-360112 CBI-360112TR CBI-360112TK CBI-360112TL CBI/CSI-360116 CBI-360116TR CBI-360116TK CBI-360116TL - 67 - Interface Corporation

DaSetCountEvent Windows XP/Server 2003/ 2000 INT DaSetCountEvent( HANDLE ULONG HANDLE LPDACALLBACK DWORD hdevicehandle uleventnum hevent lpcallbackproc dwuser DaOpen 0 0 CNULL,Visual Basic0,Delphi NIL NULL CallBackProc CNULL Visual Basic0DelphiNIL NULL 0 0 DaSetCountEventDA_ERROR_SUCCESSDA_ERROR_SUCCESS DA_ERROR_SUCCESS CallBackProc DaSetBoardConfiglpCallBackProcCallBackProc CallBackProc LPDACALLBACK CallBackProc( DWORD dwuser ); dwuser DaSetBoardConfigdwUser CallBackProc - 68 - Interface Corporation

5.2 FbiDaDC.DLL 関 数 リファレンス DaDataConv (Visual Basic) INT DaDataConv( UINT usrcformcode, PVOID psrcdata, UINT usrcsmpldatanum, PDASMPLREQ psrcsmplreq, UINT udestformcode, PVOID pdestdata, PUINT pudestsmpldatanum, PDASMPLREQ pdestsmplreq, UINT ueffect, UINT ucount, LPDACONVPROC pfnconv ); usrcformcode ppsrcdata DA_DATA_PHYSICAL DA_DATA_BIN8 DA_DATA_BIN12 DA_DATA_BIN16 DA_DATA_BIN24 ([V][mA]) 8bit 12bit 16bit 24bit psrcdata psrcsmplreq usrcsmpldatanum udestformcode (DASMPLREQ) pdestdata DA_DATA_PHYSICAL DA_DATA_BIN8 DA_DATA_BIN12 DA_DATA_BIN16 DA_DATA_BIN24 ([V][mA]) 8bit 12bit 16bit 24bit pdestdata pudestsmpldatanum pdestsmplreq ueffect (DASMPLREQ) 0-69 - Interface Corporation

0 DA_CONV_SMOOTH DA_CONV_AVERAGE1 DA_CONV_AVERAGE2 ucount lpfnconv ueffect0ucount lpfnconv (fnconv) lpfnconvnull DaWriteFile DaDataConvDA_ERROR_SUCCESSDA_ERROR_SUCCESS DA_ERROR_SUCCESS psrcdatapdestdata 1kHz100010100Hz 100 CSV INT DaWriteFile( LPCTSTR pszpathname, PVOID psmpldata, ULONG ulformcode, ULONG ulsmplnum, ULONG ulchcount ); pszpathname psmpldata ulformcode ulsmplnum ulchcount DA_DATA_PHYSICAL ([V][mA]) DA_DATA_BIN8 8bit DA_DATA_BIN12 12bit DA_DATA_BIN16 16bit DA_DATA_BIN24 24bit 1 DaWriteFileDA_ERROR_SUCCESSDA_ERROR_SUCCESS DA_ERROR_SUCCESS CSV - 70 - Interface Corporation

fnconv DaDataConvDaDataConvlpfnConvfnConv fnconvfnconv1 CONVPROC fnconv( INT nch, DWORD dwcount, PVOID lpdata ); nch dwcount lpdata nchlpdata dwcountlpdata lpdatadadataconv fnconv1lpdata lpdata fnconv DA_ERROR_SUCCESS 0 DA_ERROR_NOT_DEVICE 0xC0000001 DA_ERROR_NOT_OPEN 0xC0000002 DA_ERROR_INVALID_HANDLE 0xC0000003 DA_ERROR_ALREADY_OPEN 0xC0000004 OPENOPEN DA_ERROR_NOT_SUPPORTED 0xC0000009 DA_ERROR_NOW_SAMPLING 0xC0001001 DA_ERROR_STOP_SAMPLING 0xC0001002 DA_ERROR_START_SAMPLING 0xC0001003 DA_ERROR_SAMPLING_TIMEOUT 0xC0001004 DA_ERROR_INVALID_PARAMETER 0xC0001021 DA_ERROR_ILLEGAL_PARAMETER 0xC0001022 DA_ERROR_NULL_POINTER 0xC0001023 NULL DA_ERROR_SET_DATA 0xC0001024 DA_ERROR_FILE_OPEN 0xC0001041 DA_ERROR_FILE_CLOSE 0xC0001042 DA_ERROR_FILE_READ 0xC0001043 DA_ERROR_FILE_WRITE 0xC0001044 DA_ERROR_INVALID_DATA_FORMAT 0xC0001061 DA_ERROR_INVALID_AVERAGE_OR_SM 0xC0001062 OOTHING DA_ERROR_INVALID_SOURCE_DATA 0xC0001063 DA_ERROR_NOT_ALLOCATE_MEMORY 0xC0001081 DA_ERROR_NOT_LOAD_DLL 0xC0001082 DLL DA_ERROR_CALL_DLL 0xC0001083 DLL - 71 - Interface Corporation

5.3 Visual C++ 用 構 造 体 定 義 一 覧 DASMPLREQ typedef struct { ULONG ulchcount; DASMPLCHREQ SmplChReq[256]; ULONG ulsamplingmode; FLOAT fsmplfreq; ULONG ulsmplrepeat; ULONG ultrigmode; ULONG ultrigpoint; ULONG ultrigdelay; ULONG uleclkedge; ULONG ultrigedge; ULONG ultrigdi; } DASMPLREQ, *PDASMPLREQ; ulchcount SmplChReq ulsamplingmode 1 DASMPLCHREQ ulchno1 (DASMPLCHREQ) DA_IO_SAMPLING DA_FIFO_SAMPLING DA_MEM_SAMPLING I/O FIFO fsmplfreq ulsmplrepeat ultrigmode 0.01fHz 0.0f 165535 ulsmplrepeat0 DaStopSampling 0 DA_FREERUN DA_EXTTRG DA_EXTTRG_DI () DI ultrigpoint DA_TRIG_START DA_TRIG_STOP DA_TRIG_START_STOP () - 72 - Interface Corporation

ultrigdelay uleclkedge ultrigmode ultrigpoint DA_TRIG_START_STOP ultrigdelay 1 1G (1073741824) 0 0 1 fsmplfreq0.0f() DA_DOWN_EDGE DA_UP_EDGE () ultrigedge 1 ultrigmodedi DA_DOWN_EDGE DA_UP_EDGE () ultrigdi ultrigdi16bit1bit1 1bitLow 1bit ultrigmodedi ultrigdi 0 DASMPLCHREQ typedef struct { ULONG ulchno; ULONG ulrange; } DASMPLCHREQ, *PDASMPLCHREQ; ulchno SmplChReq ulchno DA_0_1V 01V DA_0_2P5V 02.5V DA_0_5V 05V DA_0_10V 010V DA_1_5V 15V DA_0_20mA 020mA DA_4_20mA 420mA DA_1V ±1V DA_2P5V ±2.5V DA_5V ±5V DA_10V ±10V - 73 - Interface Corporation

DABOARDSPEC typedef struct { ULONG ulboardtype; ULONG ulboardid; ULONG ulsamplingmode; ULONG ulchcount; ULONG ulresolution; ULONG ulrange; ULONG ulisolation; ULONG uldi; ULONG uldo; } DABOARDSPEC, *PDABOARDSPEC; ulboardtype ulboardid ulsamplingmode PCI-33293329 (RSW) 1 bit0 bit1 bit2 bit3bit31 I/O FIFO (0) ulchcount ulresolution ulrange bit0 01V bit1 02.5V bit2 05V bit3 010V bit4 15V bit5bit11 (0) bit12 020mA bit13 420mA bit14bit15 (0) bit16 ±1V bit17 2.5V bit18 ±5V bit19 ±10V bit20bit31 (0) ulisolation DA_ISOLATION DA_NOT_ISOLATION uldi uldo - 74 - Interface Corporation

DAMODEREQ(PCI-3305, PCI-3310, PCI-3335, PCI-3336, PCI-3340, CBI/CSI-340212, CBI/CSI-340312, CTP/CPZ-3340A, CTP/CPZ-3340B, CTP/CPZ-3340C, CTP/CPZ-3340D) typedef struct { DAMODECHREQ ModeChReq[2]; ULONG ulpulsemode; ULONG ulsyntheout; ULONG ulinterval; FLOAT fintervalcycle; ULONG ulcounterclear; ULONG uldalatch; ULONG ulsamplingclock; ULONG ulexcontrol; ULONG ulexclock; } DAMODEREQ, *PDAMODEREQ ModeChReq ulpulsemode (DAMODECHREQ) [0]1[1]2 2 ulpulsemode DA_MODE_CUT DA_MODE_SYNTHE TBWG(Time Based Wave Generation)() FBWG(Frequency Based Wave Generation) ulsyntheout ulinterval FBWG 2 (1,2,4,8,16,32,64,128,256,512,1024,2048,4096,8192,16384,32768,65536,131072,262144,5242 88) 1 ulinterval DA_REPEAT_NONINTERVAL DA_REPEAT_INTERVAL () fintervalcycle ulcounterclear 0.01f2500000f(2.5MHz)Hz 1.0f(1Hz) DA_COUNTER_CLEAR DA_COUNTER_NONCLEAR () uldalatch DA() DA_LATCH_CLEAR DA_LATCH_NONCLEAR DA() DA ulsamplingclock (8254)2.5MHz 5MHz DA_CLOCK_TIMER DA_CLOCK_FIXED (8254)2.5MHz() DA_CLOCK_FIXED ulexcontrol PCI-3305 (CN3) DA_EXTRG_IN DA_EXTRG_OUT () - 75 - Interface Corporation

PCI-3335, 3337 EXTRG OUT OR DA_EXTRG_DOWN_EDGE DA_EXTRG_UP_EDGE () PCI-3310, PCI-3335, PCI-3336, PCI-3337, PCI-3340, CTP/CPZ-3340A, CTP/CPZ-3340B, CTP/CPZ-3340C, CTP/CPZ-3340D PCI-3335, 3337OR DA_RESET_DOWN_EDGE DA_RESET_UP_EDGE () LPC-340216, LPC-340416, LPC-361316, LPC-361416, PEX-340216, PEX-340416, PEX-361316, PEX-361416, CBI-340112, CBI/CSI-340212, CBI/CSI-340312, CBI-340212TR, CBI-340312TR, CBI-340212TK, CBI-340312TK, CBI-40212TL, CBI-340312TL RESET_IN DA_RESET_ON DA_RESET_OFF ulexclock PCI-3305 (CN4) DA_EXCLK_IN DA_EXCLK_OUT () PCI-3310, PCI-3335, PCI-3336, PCI-3337, PCI-3340(PCI-3310,333612 PCI-3335,333713, LPC-340216, LPC-340416, LPC-361316, LPC-361416 PEX-340216, PEX-340416, PEX-361316, PEX-361416, CTP/CPZ-3340A, 3340B, 3340C, 3340D, CBI-340112, CBI/CSI-340212, CBI/CSI-340312, CBI-340212TR, CBI-340312TR, CBI-340212TK, CBI-340312TK, CBI-340212TL, CBI-340312TL EXCLK OUT DA_EXCLK_IN DA_EXCLK_OUT () - 76 - Interface Corporation

DAMODECHREQ(PCI-3305, PCI-3310, PCI-3335, PCI-3336, PCI-3340, CBI/CSI-340212, CBI/CSI-340312, CTP/CPZ-3340A, CTP/CPZ-3340B, CTP/CPZ-3340C, CTP/CPZ-3340D) typedef struct { ULONG FLOAT ULONG } DAMODECHREQ, ulrange fvolt ulfilter DA_RANGE_UNIPOLAR () DA_RANGE_BIPOLAR PCI-3525, CPZ-3525(1)6 ulrange 1.02410.24[V] 4 5.0[V] 05[V] ±5[V] DA_FILTER_OFF DA_FILTER_ON () - 77 - Interface Corporation

DAFIFOREQ typedef struct { ULONG; DASMPLCHREQ; FLOAT; ULONG; ULONG; ULONG; ULONG; ULONG; ULONG; } DAFIFOREQ, *PDAFIFOREQ ulchcount SmplChReq fsmplfreq ulsmplrepeat ulsmplnum ulstarttrigcondition 1 DASMPLCHREQulChNo 1 0.01fHz DaGetFifoConfig 0-1(7) 165535 ulsmplrepeat 0DaStopSampling 1 ulstoptrigcondition)da_trg_smplnum 116777215 1 ulstarttrgcondition1 DA_TRG_FREERUN () DA_TRG_EXTTRG DA_TRG_SIGTIMER PCI-3525, CPZ-3525(1)6 DA_TRG_ATRG DA_TRG_AD_START DA_TRG_AD_STOP DA_TRG_AD_PRETRG DA_TRG_AD_POSTTRG AD AD AD AD LPC-340216,LPC-340416,LPC-361316,LPC-361416,PEX-340216,PEX-340416, PEX-361316,PEX-361416 DA_TRG_CNT_EQ DA_TRG_Z_CLR (8) (9) - 78 - Interface Corporation

ulstoptrigcondition ulstoptrgcondition1 DA_TRG_FREERUN () DA_TRG_EXTTRG DA_TRG_SIGTIMER DA_TRG_SMPLNUM DA DA_TRG_FIFO_EMPTY FIFO EMPTY (2) PCI-3525, CPZ-3525(1)(6) DA_TRG_ATRG DA_TRG_AD_START AD DA_TRG_AD_STOP AD DA_TRG_AD_PRETRG AD DA_TRG_AD_POSTTRG AD LPC-340216,LPC-340416,LPC-361316,LPC-361416 PEX-340216,PEX-340416,PEX-361316,PEX-361416 DA_TRG_CNT_EQ (8) DA_TRG_Z_CLR Z(9) OR(5) DA_RETRG (3) DA_FIFORESET FIFO(4) uleclkedge 1 fsmplfreq0.0f DA_DOWN_EDGE () DA_UP_EDGE ultrigedge 2 OR ulstarttrgconditionulstoptrgconditionda_trg_exttrg DA_START_DOWN_EDGE () DA_START_UP_EDGE DA_STOP_DOWN_EDGE 1 ulstarttrigconditionulstoptrigcondition (3) 2 FIFO FIFO FIFO FIFO 3 DA_TRG_FREERUN 4 FIFO DA_FIFO_RESET FIFO 5 ulstoptrigconditionultrigedgeor DAFIFOREQ FifoConfig: FifoConfig.ulStopTrigCondition = DA_TRIG_SIGTIMER DA_RETRG DA_FIFO_RESET: FifoConfig.ulTrigEdge = DA_START_DOWN_EDGE DA_STOP_UP_EDGE: - 79 - Interface Corporation

6 PCI-3525, CPZ-3525ulStartTrigConditionulStopTrigCondition 1DA ulstarttrigcondition= DA_TRG_EXTTRG ulstoptrigcondition= DA_TRG_AD_START 7 LPC-340216, LPC-340416, LPC-361316, LPC-361416 PEX-340216, PEX-340416, PEX-361316, PEX-361416 /DA 8 LPC-340216, LPC-340416, LPC-361316, LPC-361416 PEX-340216, PEX-340416, PEX-361316, PEX-361416 / 9 LPC-340216, LPC-340416, LPC-361316, LPC-361416 PEX-340216, PEX-340416, PEX-361316, PEX-361416 Z/ - 80 - Interface Corporation

5.4 Visual C++ 用 定 数 一 覧 - 81 - Interface Corporation

- 82 - Interface Corporation

TUT-0022-83 - Interface Corporation

- 84 - Interface Corporation

TUT-0022-85 - Interface Corporation

- 86 - Interface Corporation

TUT-0022-87 - Interface Corporation

技 術 資 料 紹 介 Web site(www.interface.co.jp) PRM-0061 PRM-0062 PRM-0063 TUT-0058 TUT-0056 TUT-0055 TUT-0054 TUT-0053 TUT-0050 TUT-0048 TUT-0044 TUT-0043 TUT-0041 TUT-0040 TUT-0039 TUT-0038 TUT-0037 TUT-0036 TUT-0034 TUT-0033 TUT-0032 TUT-0031 TUT-0030 TUT-0029 TUT-0028 TUT-0027 TUT-0026 TUT-0025 TUT-0024 TUT-0023 TUT-0022 TUT-0021 TUT-0020 TUT-0019 TUT-0018 TUT-0017 TUT-0016 TUT-0015 TUT-0014 TUT-0008 TUT-0007 TUT-0006 TUT-0005 TUT-0004 TUT-0003 TUT-0002 TUT-0001 CPZ() PCI() CSI() CPZ XP Embedded OS CAN RTLinux (GPG-7400) RTLinux RTLinux RTLinux RTLinuxGP-IB RTLinuxDA RTLinuxAD RTLinuxDIO RTLinuxHDLC RTLinuxPCI/CompactPCI/CardBus() Visual C++PPI Visual Basic Visual C++ Visual Basic Visual C++ Visual BasicHDLC Visual C++HDLC Visual BasicGP-IB Visual C++GP-IB Visual BasicDIO Visual C++DIO Visual BasicDA Visual C++DA Visual BasicAD Visual C++AD Visual Basic Visual C++ Visual BasicPPI Microsoft Visual Studio.NET () () C(98)/ISAPCI/CompactPCI(DOS) DOSLAP-B DOSAD LinuxPCI/CompactPCI/CardBus PCI-ISA PCI-C CAN Linux, Linux(SH-4) LinuxPCI/CompactPCI ActiveX CompactPCI+/ MS-DOSPCI/CompactPCI - 88 - Interface Corporation

PCI-2726CWindowsI/O :PCII/O(:1999) Edward Solari,George Willse :PCI(:1995) 本 ドキュメントの 一 部 または 全 てを 弊 社 の 許 可 なく 複 写, 複 製, 転 載, 電 子 化 することを 禁 じま す - 89 - Interface Corporation

2006 6 Ver. 1.3 2,000 732-0828 10-21 TEL 082-262-7777 FAX 082-262-5066 2000, 2006 Interface Corporation. All rights reserved.

サポート 体 制 本 製 品 についてのお 問 い 合 わせは お 客 様 相 談 センタで 承 ります 弊 社 Web siteのオンライ ンQA( サポート お 客 様 相 談 センタ をクリック) E-mailまたはフリーダイヤルをご 利 用 く ださい お 問 い 合 わせ 先 <お 客 様 相 談 センタ> TEL 0120-447213 FAX 0120-458257 ( 祝 日 および 弊 社 休 業 日 を 除 く 月 ~ 金 AM9:00~PM5:00 迄 ) E-mail support@interface.co.jp TUT-0022 Ver. 1.3 Vol. 1/1 www.interface.co.jp

www.interface.co.jp Visual C++ DA TUT-0022 Ver.1.3