波形圖游標圖例能顯示所有曲線交點值,但無法批量導出數據進行後續分析。
1. 創建 Waveform Graph 控件引用
2. 使用 Property Node (屬性節點) 讀取:
- Cursor.List → 獲取所有游標信息數組
- 每個游標包含:Cursor.X, Cursor.Y, Cursor.Label
3. 遍歷游標數組,提取 X/Y 值構建數據數組
4. 寫入測量文件 / TDMS / CSV / 數據庫
| 屬性 | 用途 | 數據類型 |
|---|---|---|
| Cursor.List | 所有游標集合 | Cluster 數組 |
| Cursor.X | 游標 X 軸位置 | DBL |
| Cursor.Y | 游標 Y 軸值 (各曲線) | DBL 數組 (對應每條曲線) |
| Cursor.Label | 游標標籤文本 | String |
| Plots[] | 曲線集合 | Plot 引用數組 |
1. 獲取游標 0 和 游標 1 的 X 座標:x0, x1
2. 獲取目標曲線的波形數據:Waveform (t0, dt, Y[])
3. 計算索引範圍:start = (x0 - t0) / dt, end = (x1 - t0) / dt
4. 截取 Y[start:end] 陣列
5. 數值積分:梯形法則 / Simpson 法則
Area = Σ (Y[i] + Y[i+1]) / 2 * dt
6. 輸出面積值
% LabVIEW 側:調用 MATLAB 腳本
% 使用 "MathScript Node" 或 "MATLAB Script Node" (需 MATLAB Runtime)
% 腳本內容 (area_calc.m)
function area = area_calc(x, y, x0, x1)
% 截取區間
idx = find(x >= x0 & x <= x1);
x_seg = x(idx);
y_seg = y(idx);
% 梯形積分
area = trapz(x_seg, y_seg);
end
% LabVIEW 調用:
% 1. 將波形數據轉為 1D 陣列傳入
% 2. 獲取返回的 area 值
**屬性節點是關鍵**:`Cursor.List` → 遍歷 → `Cursor.Y` 獲取各曲線交點值。面積計算用波形數據索引截取 + `trapz`/梯形法。LabVIEW 內置 `MathScript Node` 可直接調用 MATLAB 腳本完成複雜數學運算。