硬體注意事項
PWM生成和脈衝計數的實現取決於所使用的硬體。最好使用計數器來產生PWM輸出。請參考硬體的數據表,以查看該設備上有多少個計數器以及它是否支援PWM。
模組/卡:
- E,S,M和X系列設備–請參閱用戶手冊
- 其他數字模組–在用戶手冊中檢查它們是否為靜態(即軟體定時)或硬體定時
- C系列-檢查您的C系列模組是否可以存取CompactDAQ(cDAQ)機箱或控制器底板上的計數器或計時器。
機箱/控制器:
- cDAQ –查看用戶手冊中機箱上的計數器數量。此功能僅在可存取機箱的計數器的模組中可用。
LabVIEW中帶有NI-DAQmx的PWM
要在NI-DAQmx中實現PWM,請確保您已經研究了硬體及其功能。之後,您可以確定適合您應用的最佳解決方案:軟體時間或硬體定時PWM。
軟體定時脈衝寬度調製如果您的應用在速度和精度方面沒有嚴格的要求,則可以將數字輸出與軟體定時控制一起使用以產生脈衝序列或PWM。
這是社群中
使用軟體定時數字I/O實現PWM的範例。
硬體定時脈衝寬度調製
- 從範例開始(推薦)
- 啟動LabVIEW
- 導航至Help >> Find Examples... ,這將啟動NI Example Finder
- 確認您在“ Browse”選項中,並瀏覽以下資料夾:Hardware Input and Output >> DAQmx >> Counter Output
- 雙擊您要使用的範例
- 不要編輯此範例。任何更改都將覆蓋原始範例。
- 單擊File >> Save As
- 選擇適合您需求的選項。建議選擇“Duplicate Hierarchy ”到新位置
- 選擇位置,然後單擊保存
- 關閉範例並在新位置打開範例
- 打開範例的本地副本後,您可以更改範例中使用的配置和通道。
- 從空白Block Diagram開始
- 使用DAQmx Create Virtual Channel VI創建並初始化計數器輸出通道。根據您的應用需求,可以通過三種方式在NI-DAQmx中定義計數器輸出任務:
- CO Pulse Freq
- CO Pulse Time
- CO Pulse Ticks - Note -不同的硬體具有不同的time-bases,在不同的硬體上運行相同的程式碼可能會更改脈衝寬度。
為Duty Cycle, Frequency, Counter(s), Idle State, 和 Initial Delay選擇合適的輸入。
- 使用DAQmx Timing VI 可以配置脈衝產生的持續時間。
請注意:當不需要採樣定時時,例如在脈衝序列生成之類的計數器任務中,應使用Implicit實例。此外,選擇“Continuous”作為採樣模式。
- 呼叫DAQmx Start VI ;該VI開始生成脈衝序列。
- 放置While迴圈以連續運行,直到用戶按下“Stop”按鈕為止。
- 在While迴圈中:
- 為Duty Cycle創建 Local Variable。它將與原始Duty Cycle變數進行比較,並且比較將在“Case Structure”的選擇器處進行。
- 放置Case Structure:
- 正確的情況:呼叫DAQmx Write VI。如果Duty Cycle已更改,則使用DAQmx Write VI設置新的Duty Cycle。
- 錯誤的情況:將所有輸入直接連接到輸出。如果未更改Duty Cycle,則執行 case structure的錯誤條件,並且不進行任何更新。
- 使用“DAQmx Is Task Done VI” 檢查錯誤。
- 添加一個Wait Until Next Millisecond Multiple VI ,以在迴圈中引入較短的時間延遲。這將阻止迴圈盡可能快速地執行,從而消耗不必要的處理器資源。
- 呼叫DAQmx Clear Task VI清除任務。
- 使用Simple Error Handler VI檢查並顯示錯誤。
請注意:該圖像是LabVIEW Snippet,其中包含可在專案中重複使用的LabVIEW程式碼。要使用程式碼段,請右鍵單擊圖像,將其保存到電腦,然後將文件拖到LabVIEW Block Diagram上。