這是一個用於National Instruments DAQmx設備數據採集的Python套件,支援多種類比輸入類型,包括電壓、電流和加速度計通道。
本專案提供了一個模組化的解決方案來初始化和管理NI DAQmx設備,透過INI配置檔案來設定通道參數和採樣設定。主要功能包括:
- 支援多種類比輸入類型(電壓、電流、加速度計)
- 透過INI檔案進行配置管理
- 連續採樣模式
- 多通道數據同步採集
NiDAQ_Python_via_Package_Unit/
├── API/
│ └── NiDAQ.ini # DAQmx設備配置檔案
├── src/
│ ├── main.py # 主程式入口點
│ └── nidaq_module.py # 核心DAQmx操作模組
├── requirements.txt # Python依賴套件
└── README.md # 專案說明文件
- Python 3.7+
- National Instruments DAQmx驅動程式
- 相容的NI DAQmx硬體設備
安裝所需的Python套件:
pip install -r requirements.txt主要依賴套件:
nidaqmx- NI DAQmx Python APIawsiotsdk- AWS IoT SDKpyserial- 序列通訊pymodbus- Modbus通訊協定
API/NiDAQ.ini 檔案包含以下主要區段:
定義類比輸入通道的配置:
ChanType: 通道類型(Analog Input)AI.MeasType: 測量類型(Voltage/Current/Accelerometer)PhysicalChanName: 實體通道名稱AI.Min/Max: 測量範圍AI.Accel.Sensitivity: 加速度計靈敏度(適用於加速度計通道)
定義採樣任務的配置:
SampClk.Rate: 採樣率(Hz)SampQuant.SampPerChan: 每次讀取的樣本數SampQuant.SampMode: 採樣模式(Continuous Samples)
DAQmxCDAQChassis: CompactDAQ機箱配置DAQmxCDAQModule: CompactDAQ模組配置
- 確保硬體設備已正確連接並安裝驅動程式
- 根據您的硬體配置修改
API/NiDAQ.ini檔案 - 執行程式:
cd src
python main.pyfrom nidaq_module import init_task, read_task_data
# 初始化DAQmx任務
ini_path = "./API/NiDAQ.ini"
task, samples_per_read, sample_rate, channel_names = init_task(ini_path)
# 連續讀取數據
is_running = True
while is_running:
data = read_task_data(task, samples_per_read)
# 處理數據...初始化DAQmx任務並配置所有通道和時序設定。
參數:
ini_path: INI配置檔案路徑
回傳:
task: DAQmx任務物件samples_per_read: 每次讀取的樣本數sample_rate: 採樣率channel_names: 通道名稱列表
從任務中讀取數據並以元組格式回傳。
參數:
task: DAQmx任務物件samples_per_read: 每次讀取的樣本數
回傳:
- 數據列表,格式為
[(x1, y1, z1), (x2, y2, z2), ...]
從INI檔案中提取指定區段的配置數據。
參數:
ini_path: INI檔案路徑sections: 區段名稱前綴
回傳:
- 包含配置數據的字典列表
AI.MeasType = Voltage
AI.Min = -10
AI.Max = 10AI.MeasType = Current
AI.Min = -20
AI.Max = 20AI.MeasType = Accelerometer
AI.Min = -5
AI.Max = 5
AI.Accel.Sensitivity = 1000
AI.Excit.Val = 0.002- 硬體相容性: 確保您的NI DAQmx硬體設備與配置檔案中的設定相符
- 驅動程式: 必須安裝最新版本的NI DAQmx驅動程式
- 權限: 某些操作可能需要管理員權限
- 模擬模式: 配置檔案中的
DevIsSimulated = 1表示使用模擬設備進行測試
- 設備未找到: 檢查硬體連接和驅動程式安裝
- 權限錯誤: 以管理員身份執行程式
- 配置錯誤: 驗證INI檔案中的通道名稱和參數設定
- 使用NI MAX (Measurement & Automation Explorer) 驗證硬體配置
- 檢查設備管理員中的設備狀態
- 查看NI DAQmx錯誤代碼對照表
本專案僅供學習和研究使用。使用NI DAQmx相關功能需要遵守National Instruments的授權條款。
歡迎提交問題報告和功能請求。如需貢獻程式碼,請遵循以下步驟:
- Fork 本專案
- 建立功能分支
- 提交變更
- 發起 Pull Request
如有任何問題或建議,請透過專案Issues頁面聯繫。