導航
常見問題
穿越技術迷霧,指引測試之光
為電子測量儀器保駕護航,技術支持,一路相隨
NI 示波器卡(Digitizer)編程步驟詳解-NI技術支持中心

NI 示波器卡(如 PXIe-5162、PXIe-5105)通過 NI-SCOPE NI-DAQmx 驅動進行編程,支持 LabVIEW、Python、C/C++ 等語言。以下是通用編程流程:

PXIe-5162

1. 準備工作

(1) 硬件連接

將示波器卡安裝到 PXI/PXIe 機箱 或通過 MXI/USB 連接。

連接信號源到模擬輸入通道(如 CH0+ 和 CH0- 差分輸入)。

(2) 軟件安裝

安裝 NI-SCOPE 驅動 或 NI-DAQmx(部分示波器卡兼容 DAQmx API)。

安裝開發環境(如 LabVIEW、Python 的 niscope 模塊)。

2. 編程步驟(以 LabVIEW 和 Python 為例)

LabVIEW 示例

(1) 初始化設備

使用 NI-SCOPE Initialize.vi 或 DAQmx Create Task.vi 創建任務。

配置通道參數(如垂直範圍、耦合方式):

Plaintext

   NI-SCOPE Configure Channel.vi →

      Channel List: "0" (CH0)  

      Voltage Range: ±10V  

      Coupling: DC  

(2) 配置采樣參數

Plaintext

   NI-SCOPE Configure Acquisition.vi →

      Sample Rate: 1 MS/s  

      Record Length: 1000 (采樣點數)  

      Trigger Type: Immediate (或外部觸發)  

(3) 啟動采集並讀取數據

Plaintext

   NI-SCOPE Start.vi →

   NI-SCOPE Fetch.vi (讀取波形數據) →

   NI-SCOPE Clear.vi (釋放資源)

LabVIEW 示波器卡編程框圖

Python 示例(使用 niscope 庫)

Python

import niscope

import matplotlib.pyplot as plt

# 1. 初始化設備

with niscope.Session("PXI1Slot2") asPXI1Slot2") as session:

    # 2. 配置通道和采樣

    session.configure_vertical(range=10.0, coupling=niscope.VerticalCoupling.DC)

    session.configure_horizontal_timing(min_sample_rate=1e6, min_num_pts=1000)

    # 3. 啟動采集並獲取數據

    session.initiate()

    waveforms = session.channels[0].fetch(num_samples=1000)

   _samples=1000)

    # 4. 繪製波形

    plt.plot(waveforms[0].samples)

    plt.xlabel("Time (samples)")

    plt.ylabel("Voltage (V)")

    plt.show()

3. 關鍵配置參數

參數 說明

采樣率 根據信號頻率選擇(奈奎斯特定理:≥2×信號最高頻率)。

垂直範圍 匹配信號幅值(如±1V、±10V),避免飽和或分辨率不足。

觸發模式 - 立即觸發(無外部信號)- 邊沿觸發(上升/下降沿)- 數字觸發(外部TTL)。

耦合方式 - DC耦合(直流+交流)- AC耦合(僅交流,去除直流偏移)。

阻抗匹配 通常設為 1MΩ(高阻抗)或 50Ω(射頻信號)。

4. 高級功能

(1) 多通道同步采集

使用 參考時鍾(PXI_CLK10) 同步多卡。

代碼示例(LabVIEW):

Plaintext

  NI-SCOPE Configure Clock.vi → Reference Clock: "PXI_CLK10"

(2) 分段存儲(Segmented Memory)

捕獲高頻瞬態信號(如雷達脈衝):

Python

  session.configure_horizontal_timing(

      min_sample_rate=1e9,

      min_num_pts=10000,

      num_records=100  # 存儲100段波形

  )

(3) 自動測量(FFT/幅值/上升時間)

Python

  measurements = session.channels[0].measure(

      niscope.MeasurementType.FREQUENCY

  )

  print("信號頻率:", measurements)

**50])

---

5. 常見問題解決

image 

如需手冊或進一步技術支持,可聯係18682985902(同微信)

網站地圖