在自动化测试场景下,通常需要借助 IO 设备、仪器等硬件自动采集各类物理信号。与硬件交互获取物理信号主要有两种实现方式:调用设备私有驱动,或基于通信协议完成交互。
在测试测量领域,对应的典型硬件分为数据采集卡与仪器仪表两类:数据采集卡大多采用厂商提供的私有驱动 API 进行控制(以DLL形式);仪器仪表则普遍使用标准 SCPI 指令完成操作。
针对上述使用需求,我们对 BusDAQ 固件做了定制化改造,同时支持两种工作模式:
1) 使用“私有”驱动库,进行二次开发;
2) 通过SCPI命令,免“驱”采集数据;
BusDAQ采集卡,原生兼容 SCPI 指令集后,与私有驱动API并行,同时满足标准化快速集成与深度定制开发两类需求。
模式一:使用“私有”驱动库,进行二次开发
如需要对BusDAQ数据采集卡进行二次开发,可使用LabVIEW、C#、Python、Matlab、C/C++以及Java六种编程语言。

以LabVIEW为例,我们参考NI-DAQmx驱动的数据流,封装好了API函数,可在LabVIEW中直接调用:

甚至还有封装好的快速助手Express VI,直接进行采集:

# 关于BusDAQ驱动DAQsc和NI-DAQmx驱动的对比和迁移过程,可以参考这个技术文档。 # 关于BusDAQ的快速助手Express VI的使用,可以参考这个技术文档。 |
如果是使用文本式编程语言,可以调用封装的DLL库。并参考如下路径的范例:C:UsersPublicDocumentsBusDAQrd_Example:

# 关于使用BusDAQ Driver的API函数进行编程,可以参考这个用户手册。 |
第二种模式:通过SCPI命令,免“驱”采集数据
在自动化测试系统中,SCPI(可编程仪器标准命令,Standard Commands for Programmable Instruments)是测试测量行业通用的标准化设备控制指令集。
它由行业联盟统一制定,从指令语义层面屏蔽了不同厂商、不同硬件总线(USB/LAN/GPIB)之间的设备差异:无论目标设备来自哪个品牌,只要支持 SCPI,用户即可通过通用 VISA 通信层下发标准化指令,完成设备参数配置、触发控制与数据读取,无需适配各家厂商专属的私有编程接口。可大幅降低跨设备、跨品牌的系统集成成本,缩短整体测试系统的搭建周期。
BusDAQ改造的固件程序中,既封装了*IDN? 、*RST、SYSTem:ERRor?等常用命令,又封装了:AIMEASure?模拟测量等数据采集专有命令。后续根据需要,还可以扩展自定义命令。
SCPI命令类型 | 命令 | 说明 |
固有命令 | *IDN? | 获取设备名称、序列号、固件版本等信息 |
*RST | 设备重置 | |
SYSTem:ERRor? | 获取设备错误信息 | |
数据采集专用命令 | :AICREATE | 设置模拟量采集(AI)的通道列表、量程等信息 |
AISTART | 启动ADC转换 | |
:AIMEASure? | 获取ADC数据 | |
自定义命令 | :SYSTem:TEMPerature | 获取设备温度信息 |
下面使用串口调试助手,控制BD 8112多功能采集卡进行模拟电压采集。1) 查询设备信息:

2) 查询设备温度:

3) 设置采集通道列表,以及量程:(255代表8通道;2代表第二档量程。可参考BD 8112手册获取具体量程值)

4) 设置完成,查询是否有错误。如有错误,则需要先处理错误,才能继续往后执行。

5) 启动ADC转换:

6) 读取电压值:(多次发送查询命令,多次读取)

7) 通过串口调试助手,循环查询、连续读取电压值:

Copyright © 2025-2026 上海屹莘贸易有限公司 沪ICP备2026037228号-1