導航
技術專欄
走進技術專欄,解鎖前沿科技
輕鬆掌握測試知識,率先成為科技達人
2025/10
22
NI示波器卡編程完整步驟指南-NI技術支持中心

一、準備工作

1.1 硬件連接與配置

安裝硬件設備

NI示波器卡(如PCIe-5162/PXIe-5164)正確插入PCIe/PXIe插槽

連接信號線至前端BNC接口,注意阻抗匹配(50Ω/1MΩ)

驗證硬件狀態

打開Measurement & Automation Explorer (MAX)

在"設備和接口"中確認示波器卡被正確識別

執行自檢測試(Self-Test)

1.2 軟件環境搭建

安裝必要軟件

NI-SCOPE驅動(最新版本)

開發環境(LabVIEW/CVI/VB/C#/Python等)

可選:NI-Sync(多設備同步時)

配置采集參數

Python

   # Python示例:檢查設備列表

   import niscope

   session = niscope.Session()

   print(session.devices)

NI示波器卡編程完整步驟指南

二、基礎采集編程步驟

2.1 LabVIEW編程流程

創建DAQmx任務

使用"DAQmx Create Task"VI

選擇通道類型(Analog Input→Voltage)

配置時序參數

采樣率(Sample Rate)

記錄長度(Number of Samples)

觸發設置(參考2.3節)

實現采集循環

Labview

   [DAQmx Start Task] → [DAQmx Read] → [數據處理] → [循環直到停止]

2.2 C語言編程示例

C

ViSession session;

niscope_init("PXI1Slot2", VI_TRUE, VI_TRUE, &session);

// 配置垂直設置

niscope_ConfigureVertical(session, "0", 1.0, NISCOPE_VAL_PROBE_GAIN_1X);

// 配置水平設置

niscope_ConfigureHorizontalTiming(session, 1e9, 10000, 50.0, VI_TRUE);

// 啟動采集

niscope_InitiateAcquisition(session);

三、高級功能實現

3.1 觸發配置

觸發類型選擇

邊沿觸發(Edge Trigger)

窗口觸發(Window Trigger)

數字觸發(Digital Trigger)

視頻觸發(Video Trigger)

LabVIEW配置示例

Labview

   [DAQmx Trigger] →

   選擇觸發源(PFI0/PXI_Trig等)→

   設置觸發電平(Trigger Level)→

   配置觸發條件(Rising/Falling Edge)

3.2 多設備同步

硬件連接

使用PXI背板觸發線(PXI_Trig0~7)

或通過RTSI總線連接

同步代碼片段

Python

   # 主設備配置

   master.configure_trigger_mode(NISCOPE_VAL_MASTER)

   

   # 從設備配置

   slave.configure_trigger_mode(NISCOPE_VAL_SLAVE)

3.3 分段存儲采集

C

// 配置分段存儲

niscope_ConfigureAcquisition(

    session,

    NISCOPE_VAL_SEGMENTED,  // 分段模式

    10,                     // 分段數

    10000,                  // 每段點數

    1e9                     // 采樣率

);

四、數據處理與分析

4.1 波形處理技術

頻域分析

Python

   import numpy as np

   from scipy.fft import fft

   

   yf = fft(waveform)

   xf = np.linspace(0, sample_rate/2, len(waveform)//2)

參數測量

幅值(Amplitude)

上升時間(Rise Time)

占空比(Duty Cycle)

4.2 數據存儲方案

二進製存儲(推薦)

Labview

   [Open File] → [Write to Binary File] → [Close File]

TDMS格式存儲

Python

   import nidaqmx

   with nidaqmx.Task() as task:

       task.timing.cfg_samp_clk_timing(1000)

       writer = nidaqmx.stream_writers.AnalogSingleChannelWriter(task.out_stream)

       writer.write_many_sample(data)

五、性能優化技巧

5.1 采集效率提升

使用DMA傳輸

C

   niscope_SetAttributeViInt32(

       session,

       NISCOPE_ATTR_FETCH_RELATIVE_TO,

       NISCOPE_VAL_FETCH_DMA

   );

內存優化配置

合理設置緩衝區大小

啟用交錯模式(Interleaved Mode)

5.2 實時顯示優化

雙緩衝技術

波形壓縮顯示

Python

   def downsample(data, factor):

       return data[::factor]

六、調試與錯誤處理

6.1 常見錯誤代碼

錯誤代碼 含義 解決方案

-1074135024 超時 增加超時設置

-1074135035 緩衝區溢出 增大緩衝區或降低采樣率

-1074135029 觸發超時 檢查觸發信號連接

6.2 調試工具

NI Trace工具:監控底層API調用

MAX測試麵板:快速驗證硬件功能

LabVIEW探針:實時查看數據流

七、蘑菇视频软件測試科技支持服務

如需獲取完整示例代碼或技術谘詢,請聯係蘑菇视频软件測試科技的技術支持團隊18682985902(同微信)

網站地圖