USB-2000 系列多功能同步数据采集卡 用户手册 Rev: E 北京思迈科华技术有限公司 www.smacq.com www.smacq.cn
目录 1. 产品介绍... 4 1.1. 概述... 4 1.2. 功能结构框图... 5 1.3. 产品特性... 5 1.4. 产品规范... 6 模拟输入... 6 模拟输出... 7 数字 IO... 7 计数器... 8 总线接口... 8 电源要求... 8 其他规格... 8 2. 外观与信号连接说明... 10 2.1. 产品外观... 10 2.2. 信号连接说明... 10 前面板信号连接... 10 后面板信号连接... 12 3. 安装与测试... 13 3.1. 驱动安装... 13 3.2. 硬件安装... 14 4. 模拟输入... 15 4.1. 概述... 15 4.2. 输入量程说明... 15 4.3. 触发源... 15 4.4. 模拟输入模式... 16 5. 模拟输出... 16 5.1. 概述... 16 5.2. 触发源... 16 6. 数字 IO... 17 6.1. 概述... 17 7. 计数器... 17 7.1. 概述... 17 7.2. 事件计数器... 18 7.3. 周期 / 正脉宽 / 负脉宽测量... 18 8. 开发者编程说明... 19 8.1. 概述... 19 2
8.2. 基本函数... 19 FindUSBDAQ()... 19 OpenDevice()... 19 CloseDevice()... 20 8.3. 模拟输入相关函数... 20 SetUSB2AiRange()... 20 SetSampleRate()... 21 SetChanMode()... 21 SetChanSel()... 22 SetTrigSource()... 22 SetTrigEdge()... 22 SetSoftTrig()... 23 ClearTrigger()... 23 8.4. 模拟输出相关函数... 23 InitDA()... 23 SetDA()... 24 SetWavePt()... 24 ClrWavePt()... 25 SetWaveSampleRate()... 25 WaveOutput()... 25 8.5. 数字 IO 相关函数... 26 SetDioOut()... 26 8.6. 计数器相关函数... 26 SetCounter()... 26 StartCounter()... 27 ClearCounter()... 27 8.7. 读取数据控制函数... 28 StartRead()... 28 StopRead()... 28 GetAiChans()... 28 GetDioIn()... 29 GetCounter()... 29 GetCtrTime()... 30 ClearBufs()... 30 TransDioIn()... 30 8.8. 错误代码... 31 8.9. LABVIEW 开发者说明... 32 8.10. MATLAB 开发者说明... 32 9. 订购信息... 33 10. 售后服务与保修... 35 11. 文档修订历史... 36 3
1. 产品介绍 1.1. 概述 一个典型的数据采集系统, 通常包含传感器, 信号调理设备 数据采集设备和计算机以及运行在计算机上的数据处理软件 图 2.1 展示了一个使用 USB 系列数据采集卡构成的基本数据采集系统 USB 接口的数据采集卡与 PCI PXI 等接口的数据采集卡相比, 其特点在于优秀的便携性, 可以配合笔记本电脑机动灵活的在任意需要的场合使用 传感器 信号调理 测试线缆 USB 数据采集卡 计算机 数据处理 图 2.1 使用 USB 系列数据采集卡的基本数据采集系统 USB-2000 系列为扫描时数据采集卡, 即所有模拟输入通道共用一个 AD 转换单元, 在 采集信号时, 通过多路复用器来切换通道间的信号进行采集 USB-2000 系列的超低底噪和 高精度, 适用于大多数数据采集应用 4
1.2. 功能结构框图 Analog Input Analog Output Signal Connector Isolated Digital Input Isolated Logical Control & Memory USB Interface Digital Output Counter 图 2.2 Smacq USB 系列数据采集卡功能结构图 1.3. 产品特性 16-bit 模拟输入分辨率 最高 1MS/s 模拟输入采样率 采样周期可按 20ns 步进任意设置 最高 16 通道模拟输入 模拟输入量程 ±10V/±5V/±2.5V/±1.25V/±0.5V 可通过软件配置 4 通道同步模拟输出, 最高 100kS/s 采样率, 输出 0~10V 16 通道隔离数字输入和 16 通道隔离数字输出 4 通道 32-bit 计数器 LabVIEW Visual Studio 以及 MATLAB 开发支持 5
USB-2600 USB-2601 USB-2602 USB-2650 USB-2651 USB-2652 USB-2620 USB-2621 USB-2622 USB-2610 USB-2611 USB-2612 1.4. 产品规范 下列产品规格参数, 除非另外声明, 均在温度为 25 C, 湿度为 40% 的环境中热机 30 分钟后测得 模拟输入 型号 通道数 1 8SE/ 4DIFF 16SE/ 8DIFF 8SE/ 4DIFF 16SE/ 8DIFF 8SE/ 4DIFF 16SE/ 8DIFF 8SE/ 4DIFF 16SE/ 8DIFF 同步采样 ADC 分辨率 转换器类型 否 16-bit 逐次逼近型 采样率 1MSa/s 500kSa/s 250kSa/s 125kSa/s 定时分辨率 FIFO 缓存量程安全电压输入阻抗输入耦合方式触发方式 20ns 16k 采样点 ±10V/±5V/±2.5V/±1.25V/±0.5V ± 15V, 输入电压超过安全电压将损坏采集卡 500MΩ DC 软件触发 数字输入边沿触发 ±10V:190uVrms ±5V:100uVrms 系统噪声 ±2.5V:58uVrms ±1.25V:37uVrms ±0.5V:24uVrms 直流偏移 ±10V:900uV ±5V:900uV 6
±2.5V:600uV ±1.25V:300uV ±0.5V:100uV 1 SE 表示单端输入 single-ended;diff 表示差分输入 differential 模拟输出 型号 USB-2601 USB-2651 USB-2621 USB-2611 通道数 4 同步采样 DAC 分辨率最大更新速率定时分辨率触发方式 是 16-bit 100kSa/s 20ns 软件触发 输出范围 0~10V 压摆率输出耦合方式输出阻抗上电初始值最大任意波点数直流偏移 >1.8V/us DC 50Ω 0V 2000pts/ch <26mV 数字 IO 通道数 8-DI( 数字输入 ),8-DO( 数字输出 ) 光电隔离 输入电压范围 是 高电平 :1.2V 至 24V 低电平 :0V 输出电压高电平 :2.9V 至 3.5V 输出上升时间 10us 7
输出下降时间 数字输出初始值 18us 0V 计数器 通道数 4 计数器位数计数器测量计数方向最大输入频率最小高电平脉宽最小低电平脉宽输入高电平电压输入低电平电压 32-bit 边沿计数向上计数 50MHz 20ns 20ns 3.3V~5V 0V 总线接口 USB 接口规范 USB 接口连接器 USB 2.0 高速接口 (480Mb/s) USB 系列 B 型连接器 电源要求 USB 总线供电 4.75~5.25VDC( 也可使用 5V 电源适配器辅助供电 ) 电流消耗 大约 350mA 其他规格 尺寸 (mm) 210*150*38 重量 (g) 模拟输入信号连接器 模拟输出信号连接器 大约 680g 3-PIN 螺栓端子连接器 3-PIN 螺栓端子连接器 8
计数器输入信号连接器数字 IO 连接器运行环境存储环境 3-PIN 螺栓端子连接器 10-PIN 螺栓端子连接器 0 C ~55 C 5%RH~90%RH, 无凝露 -40 C ~85 C 5%RH~90%RH, 无凝露 9
2. 外观与信号连接说明 2.1. 产品外观 USB-2000 系列数据采集卡采用全金属屏蔽外壳, 其前后面板如图 2.1 所示, 前面板是 连接模拟输入通道 模拟输出通道和计数器通道的连接器插座, 后面板是数字 IO 连接器 USB 接口和电源插座 模拟输入通道 模拟输出通道 计数器通道 电源接口 5VDC USB 接口 光电隔离的数字 IO 接口 图 2.1 USB 系列数据采集卡前后面板图 2.2. 信号连接说明 前面板信号连接 USB-2xx0 与 USB-2xx2 型 模拟输入通道用 AI n 来表示,n 代表通道号,AI 0 为通道 0,AI 1 为通道 1, 以此类推 10
模拟输入通道接线端口示意图如图 2.2 所示, 其中 AI n 为模拟信号输入端口,GND 为 信号地输入端口 图 2.2 模拟输入通道接线端口示意图 表 2.1 螺栓端子引脚信号详细说明 名称 说明 GND 模拟地 模拟输入通道,AI 0 ~ AI15( 对于 8 通道的机型, 仅 AI 0~AI 7 有效 ) AI 0 ~ AI 15 差分输入时,AI 0 为通道 0 的信号 +,AI 1 为通道 0 的信号 - AI 2 为通道 1 的信号 +,AI 3 为通道 1 的信号 - 以此类推 USB-2xx1 型模拟输入通道用 AI n 来表示,n 代表通道号,AI 0 为通道 0,AI 1 为通道 1, 以此类推 计数器输入通道用 CT n 来表示,n 代表通道号,CT 0 为通道 0,CT 1 为通道 1, 以此类推 模拟输出通道用 AO n 来表示,n 代表通道号,AO 0 为通道 0,AO 1 位通道 1, 以此类推 前面板接线端口示意图如图 2.3 所示 11
图 2.3 模拟输出通道接线端口示意图 表 2.2 螺栓端子引脚信号详细说明 名称 说明 GND 模拟地 模拟输入通道,AI 0 ~ AI 7 AI 0 ~ AI 7 差分输入时,AI 0 为通道 0 的信号 +,AI 1 为通道 0 的信号 - AI 2 为通道 1 的信号 +,AI 3 为通道 1 的信号 - 以此类推 AO 0 ~ AO 3 模拟输出通道,AO 0 ~ AO 3 CT 0 ~ CT 3 计数器输入通道,CT 0 ~ CT 3 后面板信号连接 数字输入端口使用 DI n 来表示,n 代表通道号,DI 0 代表数字输入通道 0,DI 1 代表数字输入通道 1, 以此类推 数字输出端口使用 DO n 来表示,n 代表通道号,DO 0 代表数字输出通道 0,DO 1 代表数字输出通道 1, 以此类推 数字 IO 通道接线端口示意图如图 2.4 所示, 由于其光电隔离的特性, 此处的 GND 与模拟通道的 GND 及采集卡自身的 GND 都是隔离的 12
图 2.4 数字 IO 通道接线端口示意图 表 2.3 螺栓端子引脚信号详细说明 名称 说明 DI 0~DI 7 数字输入通道,DI 0~DI 7 DO 0~DO 7 数字输出通道,DO 0~DO 7 GND 隔离的数字地 3. 安装与测试 3.1. 驱动安装 当第一次将 USB-2000 系列数据采集卡通过 USB 接口连接到 Windows 操作系统的计算机时, 需要安装驱动, 计算机才能正确识别 USB-2000 系列数据采集卡 这里以 Windows 7 操作系统为例, 驱动安装步骤如下 :( 对于 Windows 8 Windows 8.1 和 Windows 10 操作系统需要先关闭驱动签名认证选项 对于 Windows XP 操作系统无需其他设置可直接使用 ) 1) 打开 Windows 操作系统的设备管理器 2) 在带有感叹号的设备 上单击鼠标右键, 选择 更新驱动程序软件 3) 在弹出对话框中选择 浏览计算机以查找驱动程序软件 4) 然后选择 从计算机的设备驱动程序列表中选择 5) 保持默认点击 下一步 之后, 点击 从磁盘安装 6) 在弹出对话框中点击 浏览, 然后进入到光盘中的 \USB4000_USB2000 Series 13
DAQ\driver 文件夹, 然后进入 win7 文件夹, 接下来 32 位操作系统进入 x86 文件夹,64 位操作系统进入 x64 文件夹, 选中 gusb.inf 文件之后, 单击 打开 (Windows 8 Windows 8.1 和 Windows 10 的驱动与 Windows 7 一致, 用同一文件 ) 7) 在标题为 从磁盘安装 的这个对话框中点击 确定 8) 点击 下一步, 如果弹出 Windows 安全警告对话框, 则需要选择第二项 始终安装此驱动程序软件 9) 系统开始安装驱动程序, 大约 30 秒之后, 驱动程序就安装完成了, 此时可以看到设备管理器中的感叹号消失了, 如下图 3.1 所示 图 3.1 正确安装驱动之后的设备管理器显示图 3.2. 硬件安装 测试信号的连接详细请见后文对模拟输入 数字 IO 和计数器等章节的详细连接描述 正确安装驱动与接入正确的信号之后, 就可以运行资源光盘中任意一个 USB-2000 系列 采集卡的例程, 示例程序将显示采集得到的信号 14
4. 模拟输入 4.1. 概述 USB-2000 系列数据采集卡的同步模拟输入通道有 8 通道和 16 通道两种, 最高采样率 从 1MS/s 到 125kS/s, 分辨率为 16-bit, 输入电压范围为 ±10V/±5V/±2.5V/±1.25V/±0.5V USB-2000 系列数据采集卡模拟通道原理结构图如图 4.1 所示 图 4.1 USB-2000 系列数据采集卡模拟通道原理结构图 USB-2000 系列数据采集卡模拟输入功能框图中主要组件如下 : ADC: 模数转换器, 将模拟信号转换为数字信号 FIFO: 数据缓存 FIFO 4.2. 输入量程说明 模拟输入量程可以通过软件设定为 ±10V ±5V ±2.5V ±1.25V 或 ±0.5V 4.3. 触发源 USB-2000 系列数据采集卡模拟输入采集信号时, 其触发源可以被设置为软件触发或数 字 IO 输入通道 DIN 端口的上升沿或下降沿触发 15
4.4. 模拟输入模式 USB-2000 系列数采集卡支持接地参考单端输入模式或差分模式, 两种输入模式可通过 软件设定 5. 模拟输出 5.1. 概述 USB-2000 系列数据采集卡中,USB-2xx1 包含 4 个模拟输出通道, 能够输出 0~10V 电压, 分辨率为 16-bit, 最高采样率为 100kS/s USB-2xx1 数据采集卡的 4 个模拟输出通道由 4 个 DA 转换器组成, 输出阻抗为 50Ω, 其硬件原理结构图如图 5.1 所示 DATA 0 DAC AO 0 DATA 1 DAC AO 1 DATA 2 DAC AO 2 DATA 3 DAC AO 3 图 5.1 USB 系列数据采集卡模拟输出通道原理结构图 5.2. 触发源 USB-2xx1 数据采集卡用作波形发生器时, 支持软件触发启动输出 16
6. 数字 IO 6.1. 概述 USB-2000 系列数据采集卡全系列都具备 16 个光电隔离的数字 IO 通道, 其中 8 个 DI 通道,8 个 DO 通道 USB 系列数据采集卡的数字 IO 通道原理结构图如图 6.1 所示,DI 和 DO 分别数字输入和数字输出的用户接线端口 DI Vcc Din Viso Vcc DO Dout 图 6.1 数字 IO 通道原理结构图 7. 计数器 7.1. 概述 USB-2000 系列数据采集卡中,USB-2xx1 包含 4 个计数器通道, 最高输入信号电压为 5V,GND 为计数器通道的接地参考信号 计数器可通过软件配置为以下四种功能 : 事件计数器 17
周期测量 正脉宽测量 负脉宽测量 7.2. 事件计数器 当采集卡的计数器通道用作事件计数器时, 可以用来记录 CT 端口的上升沿个数, 也可以通过软件设置为记录下降沿个数 事件计数器只能递增计数, 不能递减计数, 即事件计数器的值根据接收到的脉冲个数, 依次累加为 1,2,3,4,5, 这样的递增计数 7.3. 周期 / 正脉宽 / 负脉宽测量 采集卡的计数器通道可以通过软件设置为周期 / 正脉宽 / 负脉宽测量模式 当被设置周期测量模式时, 采集卡会测量出比较器输出的两次上升沿之间的时间, 存放于对应计数器通道结果中, 时间精度为 20ns 当被设置正脉宽测量模式时, 采集卡会测量出比较器输出的一次上升沿和紧接着的一次下降沿之间的时间, 存放于对应计数器通道结果中, 时间精度为 20ns 当被设置负脉宽测量模式时, 采集卡会测量出比较器输出的一次下降沿和紧接着的一次上升沿之间的时间, 存放于对应计数器通道结果中, 时间精度为 20ns 18
8. 开发者编程说明 8.1. 概述 开发者可以通过一个标准的动态链接库 gusb.dll 来与 USB-2000 系列采集卡交互来控制 USB-2000 系列数据采集卡所具备的所有功能 本章将对 gusb.dll 库所提供的所有函数一一详细说明, 所有函数的调用格式也可以在 gusb.h 文件中找到 详细控制和调用流程请参考例程 本文中所有函数均为 C/C++ 函数模型, 如果使用其他语言开发应用程 序, 需要注意不同开发语言的数据类型与 C/C++ 数据类型的差异, 否 则会导致错误 8.2. 基本函数 FindUSBDAQ() int _stdcall FindUSBDAQ() 查找连接到计算机的 USB-2000 系列采集卡 返回值 : 已连接到计算机的 USB-2000 系列采集卡的数量 OpenDevice() int _stdcall OpenDevice(int DevIndex) 打开指定的设备 参数 : DevIndex, 采集卡索引号, 以 0 为第一块采集卡的索引号 返回值 : 0 为无错误, 其他请查阅第 8.7 节错误代码 19
CloseDevice() void _stdcall CloseDevice(int DevIndex) 关闭指定的设备 参数 : DevIndex, 采集卡索引号, 以 0 为第一块采集卡的索引号 8.3. 模拟输入相关函数 SetUSB2AiRange() int _stdcall SetUSB4AiRange(int DevIndex, float Range) 设置采集卡模拟输入通道量程 参数 : DevIndex, 采集卡索引号, 以 0 为第一块采集卡的索引号 Range, 采集卡模拟输入通道量程, 设置参数对应量程如下 : Range 参数 24 ( 仅用于差分信号对 ) 20 ( 仅用于差分信号对 ) 10 5 2 1 实际最大测量差分 :±24.576V 差分 :±20.48V 差分 :±10.24V 单端 :±10.24V 差分 :±5.12V 单端 :±5.12V 差分 :±2.56V 单端 :2.56V 差分 :±1.28V 单端 :±1.28V 20
0.5 差分 :±0.64V 单端 :±0.64V 返回值 : SetSampleRate() int _stdcall SetSampleRate(int DevIndex, unsigned int SampleRate) 设置采集卡模拟输入通道的采样率 对于 USB-2000 系列数据采集卡, 模拟输入采集通道是扫描式采集, 设置的采样率代表所有选用的通道采样率之和, 例如选用了 2 个通道, 设置 1000 代表每通道采样率为 500S/s 采样周期最小时间分辨率为 20ns, 因此, 采样周期设置为 20ns 的整倍数, 将获得最佳的采样周期精确度 参数 : DevIndex, 采集卡索引号, 以 0 为第一块采集卡的索引号 SampleRate, 采样率, 以 S/s 为单位 例如需要设置采样率为 1kS/s, 即设置 SampleRate 为 1000 返回值 : SetChanMode() int _stdcall SetChanMode(int DevIndex, unsigned char ChanMode); 设置 USB-2000 系列数据采集卡的模拟输入模式, 可设置为单端输入或者差分输入 参数 : ChanMode: 无符号字节型参数, 通道输入模式,1 为单端输入,0 为差分输入 返回值 : 21
SetChanSel() int _stdcall SetChanSel(int DevIndex, unsigned short ChSel) 设置需要选择的通道 参数 : DevIndex, 采集卡索引号, 以 0 为第一块采集卡的索引号 ChSel, 需要选择的通道 此参数的二进制位从低到高分别对应模拟输入通道的 ai0~ai15,1 为选中该通道,0 为不使用该通道 例如, 如果需要选中 ai0 和 ai1,chsel 应设置为 0x0003; 如果需要选中 ai0 和 ai2,chsel 应设置为 0x0005 如果采集卡模拟输入被配置为差分输入, 则选择通道时只能选择偶数位 例如需要选择差分通道的 ch0 和 ch1,chsel 应设置为 0x0005; 如果需要选择差分通道的 ch0 ch1 和 ch3,chsel 应设置为 0x0015, 以此类推 返回值 : SetTrigSource() int _stdcall SetTrigSource(int DevIndex, unsigned char TrigSource) 设置模拟采样的触发源 参数 : DevIndex, 采集卡索引号, 以 0 为第一块采集卡的索引号 TrigSource, 触发源选择,0 表示设置为软件触发,1~8 分别表示触发源为数字输入通道 0~7 当以数字输入通道为触发源时, 再通过 SetTrigEdge() 函数来设置是上升沿触发还是下降沿触发 返回值 : SetTrigEdge() int _stdcall SetTrigEdge(int DevIndex, unsigned char TrigEdge) 设置为数字触发时, 选择上升沿触发或者下降沿触发 22
参数 : DevIndex, 采集卡索引号, 以 0 为第一块采集卡的索引号 TrigEdge,1 代表上升沿触发,0 代表下降沿触发 返回值 : SetSoftTrig() int _stdcall SetSoftTrig(int DevIndex, unsigned char Trig) 设置软件触发 参数 : DevIndex, 采集卡索引号, 以 0 为第一块采集卡的索引号 Trig, 软件触发开关,0 表示关闭触发,1 表示打开触发 返回值 : ClearTrigger() int _stdcall ClearTrigger(int DevIndex) 清楚触发标志 参数 : DevIndex, 采集卡索引号, 以 0 为第一块采集卡的索引号 返回值 : 8.4. 模拟输出相关函数 InitDA() int _stdcall InitDA(int DevIndex) 模拟输出初始化 当需要使用模拟输出时, 都需要调用此函数, 每次开机上电只需要调 23
用一次即可 参数 : DevIndex, 采集卡索引号, 以 0 为第一块采集卡的索引号 返回值 : SetDA() int _stdcall SetDA(int DevIndex, unsigned char DANum, float DAVolt) 当需要模拟输出通道输出直流电压时, 使用此函数设置输出直流电压 参数 : DevIndex, 采集卡索引号, 以 0 为第一块采集卡的索引号 DANum, 可以设置 0,1,2,3, 分别对应 4 个模拟输出通道 如果要同时设置 4 个通道, 此参数设置为 255 DAVolt, 需要设置的电压, 可以设置 0~10 范围内的任意值 返回值 : SetWavePt() int _stdcall SetWavePt(int DevIndex, unsigned char DANum, float DAVolt) 模拟输出任意波时, 设置波形采样点 每执行一次, 波形点索引序号自动加 1, 直到执行的 ClrWavePt() 函数之后, 波形点索引序号清零 参数 : DevIndex, 设备索引号, 从 0 开始 DANum, 选择需要设置的通道号, 可以设置 0,1,2,3, 分别对应 4 个模拟输出通道 如果要同时设置 4 个通道, 此参数设置为 255 DAVolt, 设置任意波采样点电压值, 可以设置 0~10V 返回值 : 24
ClrWavePt() int _stdcall ClrWavePt(int DevIndex, unsigned char DANum) 清空任意波形数据表 参数 : DevIndex, 设备索引号, 从 0 开始 DANum, 选择需要设置的通道号, 可以设置 0,1,2,3, 分别对应 4 个模拟输出通道 如果要同时设置 4 个通道, 此参数设置为 255 返回值 : SetWaveSampleRate() int _stdcall SetWaveSampleRate(int DevIndex, unsigned int WaveSampleRate) 设置模拟输出任意波时的采样率 4 个通道只能设置为统一采样率 参数 : DevIndex, 设备索引号, 从 0 开始 WaveSampleRate, 模拟输出任意波时的采样率, 最高可设置 100000 返回值 : WaveOutput() int _stdcall WaveOutput(int DevIndex, unsigned char DANum) 模拟输出任意波时的输出开关 参数 : DevIndex, 设备索引号, 从 0 开始 DANum, 该参数的低 4 位分别对应模拟输出的 4 个通道, 置位 1 表示启动该通道任意波输出, 置位 0 表示停止该通道任意波输出 例如, 仅输出通道 0, 该参数设置为 1; 仅输出通道 1, 该参数设置为 2; 仅输出通道 2, 该参数设置为 4; 25
仅输出通道 3, 该参数设置为 8; 同时输出通道 0 和 1, 该参数设置为 3; 同时输出通道 0 和 2, 该参数设置为 5; 以此类推 返回值 : 8.5. 数字 IO 相关函数 SetDioOut() int _stdcall SetDioOut(int DevIndex, unsigned int DioOut) 设置数字 IO 输出通道 DO 的值 参数 : DevIndex, 采集卡索引号, 以 0 为第一块采集卡的索引号 DioOut, 数字 IO 输出通道 DOUT 值 DioOut 的低 8 位对应数字 IO 输出通道 DO 的 8 个通道 返回值 : 8.6. 计数器相关函数 SetCounter() int _stdcall SetCounter(int DevIndex, unsigned char CtrNum, unsigned char CtrMode, unsigned char CtrEdge) 设置计数器功能 参数 : DevIndex, 采集卡索引号, 以 0 为第一块采集卡的索引号 26
CtrNum, 计数器通道索引号 0~3 对应 Ct0~Ct3 如果设置 0x0f 表示 4 个通道计数器同时操作 CtrMode, 计数器工作模式,0 表示事件计数器模式,1 表示测量周期,2 表示测量正脉宽,3 表示测量负脉宽 CtrEdge, 当工作于事件计数器模式时, 本参数为 1 表示计数上升沿,2 表示计数下降沿 返回值 : StartCounter() int _stdcall StartCounter(int DevIndex, unsigned char CtrNum, unsigned char OnOff) 计数器工作开关, 启动或停止计数器 参数 : DevIndex, 采集卡索引号, 以 0 为第一块采集卡的索引号 CtrNum, 计数器通道索引号 0~3 对应 Ct0~Ct3 如果设置 0x0f 表示 4 个通道计数器同时操作 OnOff,1 表示启动计数器,0 表示停止计数器 返回值 : ClearCounter() int _stdcall ClearCounter(int DevIndex, unsigned char CtrNum) 计数器归零 参数 : DevIndex, 采集卡索引号, 以 0 为第一块采集卡的索引号 CtrNum, 计数器通道索引号 0~3 对应 Ct0~Ct3 如果设置 0x0f 表示 4 个通道计数器同时操作 返回值 : 27
8.7. 读取数据控制函数 StartRead() int _stdcall StartRead(int DevIndex) 启动读数 本函数将自动启用一个线程, 自动将采集卡硬件 FIFO 中的数据读回来存储计算机的软件 FIFO 中 参数 : DevIndex, 采集卡索引号, 以 0 为第一块采集卡的索引号 返回值 : StopRead() int _stdcall StopRead(int DevIndex) 停止读数 本函数将终止 StartRead() 函数中启用的读数线程 参数 : DevIndex, 采集卡索引号, 以 0 为第一块采集卡的索引号 返回值 : GetAiChans() int _stdcall GetAiChans(int DevIndex, unsigned long Num, unsigned short ChSel, float *Ai, long TimeOut) 用户读取软件 FIFO 中存储的模拟输入通道采样数据 如果需要连续采样, 只需要重复调用本函数即可得到连续采样波形 参数 : 28
DevIndex, 采集卡索引号, 以 0 为第一块采集卡的索引号 Num, 本次读取模拟采样点数, 表示每通道需要读取的点数 ChSel, 需要选择的通道 此参数的二进制位从低到高分别对应模拟输入通道的 ai0~ai15,1 为选中该通道,0 为不使用该通道 例如, 如果需要选中 ai0 和 ai1,chsel 应设置为 0x0003; 如果需要选中 ai0 和 ai2,chsel 应设置为 0x0005 *Ai, 存储读取出来的采样数据指针 例如选择读取了 4 个通道的数据, 每通道读取 100 个点, 那么在 *Ai 对应的数组中, 第 0~99 个数是第 1 个通道, 第 100~199 个数是第 2 个通道, 第 200~299 个数是第 3 个通道, 第 300~399 个数是第 4 个通道, 更多通道数依此类推 TimOut, 超时时间设置 如果在设置的时间内, 软件 FIFO 中还没有采集到足够的 Num 个采样点, 函数退出, 返回超时错误码 返回值 : 返回值为非负数时, 表示软件 FIFO 剩余的空间, 是 0 到 2000000 的整数 ; 返回负数时, 表示出错, 请查阅第 8.8 节错误代码 GetDioIn() unsigned int _stdcall GetDioIn(int DevIndex) 读取数字 IO 通道 DIN 的值 参数 : DevIndex, 采集卡索引号, 以 0 为第一块采集卡的索引号 返回值 : 返回数字 IO 通道 DIN 的值, 低 6 位对应 DI 0~DI 7 的值 GetCounter() unsigned int _stdcall GetCounter(int DevIndex, unsigned char CtrNum) 读取事件计数器的值 参数 : DevIndex, 采集卡索引号, 以 0 为第一块采集卡的索引号 CtrNum, 计数器通道索引号 0~3 对应 CT 0~CT 3 29
返回值 : 事件计数器的值 GetCtrTime() double _stdcall GetCtrTime(int DevIndex, unsigned char CtrNum) 读取周期 / 正脉宽 / 付脉宽测量值, 以 us 为单位 参数 : DevIndex, 采集卡索引号, 以 0 为第一块采集卡的索引号 CtrNum, 计数器通道索引号 0~3 对应 CT 0~CT 3 返回值 : 周期 / 正脉宽 / 付脉宽测量值, 以 us 为单位 ClearBufs() int _stdcall ClearBufs(int DevIndex) 清空模拟输入缓存, 包换软件 FIFO 和硬件 FIFO 参数 : DevIndex, 采集卡索引号, 以 0 为第一块采集卡的索引号 返回值 : TransDioIn() int _stdcall TransDioIn(int DevIndex, unsigned char TransDioSwitch) 启动单独传输数字端口数据, 包含 DIN 数据和计数器数据 当您只需要传输数字输入 DIN 通道数据或计数器数据时, 需要先调用此函数 如果您已经开启了模拟采集, 则不需要调用此函数也能得到正确的 DIN 数据和计数器值 详细使用方法请参考数字 IO 和计数器的例程 参数 : DevIndex, 采集卡索引号, 以 0 为第一块采集卡的索引号 30
TransDioSwitch, 数据传输开关,1 为开启,0 为停止 返回值 : 8.8. 错误代码 4 所示 对于函数操作中返回值如果出现了负数, 则表示操作出现了错误, 详细错误代码如下表 表 4 错误代码 错误代码 说明 -1 没有发现连接到计算机的 USB 系列数据采集卡 -2 数据采集卡索引越界 -3 数据采集卡固件错误 -4 数据采集卡已关闭 -5 传输数据出错 -6 计算机没有足够的内存 -7 超时 -8 读数线程未启动 31
8.9. LabVIEW 开发者说明 对于 LabVIEW 开发者, 同样可以通过调用动态链接库的方法来实现对采集卡的操作 同时, 我们提供的系列子 vi 包含了前文所述的所有函数功能, 并且提供了例程来说明, 这 些文件都可以从资源光盘中找到 8.10. MATLAB 开发者说明 对于 MATLAB 开发者, 同样可以通过调用动态链接库的方法来实现对采集卡的操作 同时, 我们提供的 m 文件来说明前文所述的所有函数的功能和使用方法, 这些文件都可以 从资源光盘中找到 32
9. 订购信息 主机 型号 USB-2602 USB-2601 USB-2600 USB-2652 USB-2651 USB-2650 USB-2622 USB-2621 USB-2620 USB-2612 USB-2611 USB-2610 说明 16 通道同步模拟输入,16-bit 分辨率, 最高采样率 1MSa/s 8 通道模拟输入,16-bit 分辨率, 最高采样率 1MSa/s 4 通道同步模拟输出,16-bit 分辨率, 最高采样率 100kSa/s/ch 8 通道模拟输入,16-bit 分辨率, 最高采样率 1MSa/s 16 通道同步模拟输入,16-bit 分辨率, 最高采样率 500kSa/s 8 通道模拟输入,16-bit 分辨率, 最高采样率 500kSa/s 4 通道同步模拟输出,16-bit 分辨率, 最高采样率 100kSa/s/ch 8 通道模拟输入,16-bit 分辨率, 最高采样率 500kSa/s 16 通道同步模拟输入,16-bit 分辨率, 最高采样率 250kSa/s 8 通道模拟输入,16-bit 分辨率, 最高采样率 250kSa/s 4 通道同步模拟输出,16-bit 分辨率, 最高采样率 100kSa/s/ch 8 通道模拟输入,16-bit 分辨率, 最高采样率 250kSa/s 16 通道同步模拟输入,16-bit 分辨率, 最高采样率 125kSa/s 8 通道模拟输入,16-bit 分辨率, 最高采样率 125kSa/s 4 通道同步模拟输出,16-bit 分辨率, 最高采样率 100kSa/s/ch 8 通道模拟输入,16-bit 分辨率, 最高采样率 125kSa/s 标配附件 型号 USB-A-B TB3-3.81 TB10-3.81 说明 USB 连接线缆,1.5 米,USB-A 型至 USB-B 型螺栓端子连接器,3 位,3.81mm 间距螺栓端子连接器,10 位,3.81mm 间距 选配附件 型号 说明 33
CHF-100B 电流传感器,100A,DC~20kHz, 输出 ±4V CHV-600VD 电压传感器,600V,DC~20kHz, 隔离差分输入, 输出 ±5V 34
10. 售后服务与保修 北京思迈科华技术有限公司承诺其产品在保修期内, 如果经正常使用的产品发生故障, 我们将为用户免费维修或更换部件 详细保修说明请参考包装箱内保修说明 除本手册和保修说明所提及的保证以外, 我公司不提供其他任何明示或暗示的的保证, 包括但不限于对产品可交易性和特殊用途适用性的任何暗示保证 获得更多的技术支持与服务细节, 或您在使用本产品和本文档时有任何问题, 欢迎您与我们取得联系 : 电话 :010-52482802 电子邮箱 :service@smacq.com 网站 :www.smacq.com www.smacq.cn 35
11. 文档修订历史 日期 版本 备注 2014.12.12 Rev: A 首次发布 2015.03.20 Rev: B 修正部分错别字以及不规范的名词 2016.11.15 Rev: C 重新排版并补充模拟输出任意波形函数说明 2017.05.18 Rev: D 补充完成 GetAiChans() 函数遗漏的说明 2017.07.11 Rev: E 增补 SetChanMode() 函数说明 36