4. DAQmx驱动与通道配置
NI-DAQmx 是 LabVIEW 与数据采集硬件之间的驱动层,它把“设备—物理通道—虚拟通道—任务”这几层关系封装成一套统一的 API。理解 DAQmx 的关键,不是记住某个 VI 的名字,而是弄清一条数据从传感器接线端子到 LabVIEW 波形图之间,究竟经过了哪些配置环节。本节围绕模拟输入、模拟输出、数字 I/O、计数器四类功能,梳理通道创建、量程与终端配置、采样模式、定时与触发,以及设备自检与测试面板的使用方法。
一、从物理通道到虚拟通道:DAQmx 的配置骨架
物理通道是设备上真实存在的接线点,命名形如 Dev1/ai0、Dev1/ao1、Dev1/port0/line2、Dev1/ctr0。虚拟通道则是在 MAX(Measurement & Automation Explorer)或程序中创建的、带有名称和全部配置信息的逻辑通道,例如 Dev1/ai0 被配置为“温度_AI0”,量程 0~100 ℃、热电偶类型 K、单位摄氏度。虚拟通道的价值在于:配置一次,多处复用,且配置随通道名一起传递,避免每次采集都重新设定量程和终端方式。
DAQmx 的配置骨架可以概括为“任务(Task)承载通道,通道绑定定时与触发”。一个任务至少包含一个虚拟通道,并可选地包含定时配置和触发配置。任务有“创建—配置—启动—读取/写入—停止—清除”的生命周期,若在循环中反复创建任务,会带来明显的资源开销,因此工程上通常把任务创建放在循环外,循环内只做读取或写入。
二、模拟输入:量程、终端与采样模式
模拟输入是数据采集系统中最常用的功能。配置时首先要确定测量类型:电压、电流、热电偶、RTD、应变等。以电压测量为例,量程选择直接影响分辨率。假设使用 16 位 ADC、量程 ±10 V,则最小可分辨电压约为 20 V / 65536 ≈ 305 μV;若信号实际只在 0~100 mV 范围内,改用 ±0.1 V 量程后,最小分辨率可提升到约 3 μV。因此量程应尽量贴近信号实际范围,但必须留出约 10%~20% 的余量,防止信号过载削顶。
终端配置决定了信号参考点。RSE(参考单端)把每个通道都接到同一个地,适合信号源有独立地且距离较近的场合;NRSE(非参考单端)把信号负端接到公共参考点而非系统地,适合信号源本身带参考地的场合;差分方式用两根线分别接正负端,共模抑制能力最强,适合小信号、长导线或强干扰环境。若把差分信号误接成 RSE,往往会引入明显的工频干扰。
采样模式分为有限采样、连续采样和硬件定时单点。有限采样适合采集固定长度的波形,例如采集 1000 个点后自动停止;连续采样适合长时间监测,需要在循环中不断读取,并注意缓冲区大小与读取速率的匹配,避免溢出。硬件定时单点则用于低速、对时间精度要求不高的场合。采样率的选择要满足奈奎斯特准则,工程上通常取信号最高频率的 5~10 倍。
三、模拟输出、数字 I/O 与计数器
模拟输出用于产生电压或电流信号,常见于激励源、控制信号和波形发生。配置时需设定输出量程、更新模式和定时方式。若输出连续波形,应使用采样时钟驱动更新,并设置合适的缓冲区;若只是输出一个直流电平,则可用单点更新。多卡同步输出时,开始触发(Start Trigger)是关键,它让多块板卡在同一时刻启动。
数字 I/O 分为静态 DIO 和相关 DIO。静态 DIO 用于读取开关、继电器状态或输出逻辑电平,配置简单,只需指定端口、线和方向。相关 DIO 则与采样时钟配合,用于高速数字图案的输入输出,例如并行数据总线。使用数字输出驱动继电器或指示灯时,要注意驱动能力,必要时加驱动电路,避免直接拉载超过板卡允许电流。
计数器功能灵活,可用于边沿计数、频率测量、周期测量、脉冲输出和编码器位置测量。以编码器为例,A 相和 B 相分别接入计数器的源端和方向端,通过计数模式设置“加/减”或“外部方向”,即可得到位置信息。计数器的门控信号可以控制计数启停,适合测量某一时间段内的脉冲数。
四、设备自检与测试面板
在正式编写程序前,应先用 MAX 完成设备自检与测试。自检(Self-Test)会检查板卡的基本通信和资源状态,若失败通常意味着驱动未安装、设备被占用或硬件故障。测试面板(Test Panel)则允许在不写代码的情况下,直接对模拟输入、模拟输出、数字线和计数器进行手动测试。例如在模拟输入测试面板中选择通道、量程和采样率,点击开始即可看到实时波形,用于验证接线是否正确、信号是否在预期范围内。
下面给出一个典型的模拟输入任务配置参数示例,可作为创建虚拟通道时的参考:
物理通道:Dev1/ai0
虚拟通道名:温度_AI0
测量类型:热电偶
热电偶类型:K
单位:摄氏度
量程:0 ~ 100 ℃
终端配置:差分
采样模式:连续采样
采样率:1 kS/s
每通道采样数:1000
触发:数字边沿触发,PFI0 上升沿