PWM發(fā)生器輸出脈沖寬度
發(fā)布于2023-02-09 09:56
30
2
標(biāo)簽:PWM輸出脈沖寬度
下列PWM初始化和操作順序使用“首次掃描”位SM0.1以初始化脈沖輸出。使用“首次掃描”位調(diào)用初始化子程序減少掃描時(shí)間,因?yàn)殡S后的掃描不調(diào)用此子程序(“首次掃描”位只在轉(zhuǎn)變?yōu)镽UN(運(yùn)行)模式后在首次掃描時(shí)設(shè)置)。然而,應(yīng)用程序可能有其他限制需要初始化(或重新初始化)脈沖輸出。在這種情況下,可以使用另一個(gè)條件調(diào)用初始化程序。
1.初始化PWM輸出
-般地,使用子程序為脈沖輸出初始化PWM。從主程序調(diào)用初始化子程序。使用首次掃描內(nèi)存位SM0.1初始化被PWM使用的輸出為0,并調(diào)用子程序完成初始化操作。當(dāng)使用子程序調(diào)用時(shí),隨后的掃描不調(diào)用子程序,這減少了掃描執(zhí)行時(shí)間,并優(yōu)化了程序的結(jié)構(gòu)。
在主程序創(chuàng)建對(duì)初始化子程序的調(diào)用后,使用下列步驟在初始化子程序中創(chuàng)建對(duì)配置脈沖輸出Q0.0的控制邏輯:
(1)將16#D3(選擇微秒增量)或16#DB(選擇毫秒增量)載入SMB67設(shè)置控制字節(jié)。這兩個(gè)數(shù)值都啟用PTO/PWM功能,選擇PWM操作,設(shè)置更新脈沖寬度和周期時(shí)間數(shù)值,選擇不同的時(shí)基(μs 或ms)。
(2)將數(shù)值載入SMW68,設(shè)置周期時(shí)間。
(3)將數(shù)值載入SMW70,設(shè)置脈沖寬度。
(4)執(zhí)行PLS指令。
(5)要為隨后的脈沖寬度改變(供選用)預(yù)載新控制字節(jié)數(shù)值,則將16#D2(μs)或16#DA(ms)載入SMB67。
(6)退出子程序。
2.調(diào)節(jié)PWM輸出的脈沖寬度
如果SMB67中預(yù)載了16#D2或16#DA,則可以使用改變脈沖輸出Q0.0寬度的子程序。在創(chuàng)建此子程序后,使用下列步驟改變脈沖寬度的控制邏輯:
(1)將新脈沖寬度數(shù)值載入SMW70;
(2)執(zhí)行PLS指令;
(3)退出子程序。
PWM示例如圖5-76所示。