表 1 周期和脈沖寬度
脈寬時間/周期 | 反應 |
脈寬時間 >= 周期值 | 占空比為100%:輸出連續運行。 |
脈寬時間 = 0 | 占空比為0%:輸出關閉。 |
周期 < 2個時間單位 | 周期的默認值為兩個時間單位。 |
根據在改變脈沖寬度時是否需要改變時間基準,可分為同步更新和異步更新。如表 2
表 2 同步、異步更新
同步更新 | 脈寬的改變和PWM脈沖的新周期同步發生。適用于不需要改變時間基準的情況,常用中斷實現。 |
異步更新 | 需要改變時間基準時使用。異步更新可能會導致PWM功能暫時失效,造成被控裝置的振動。 |
注意: 由于此原因,建議使用同步PWM更新。選擇可用于所有預計周期數值的。
2.4 PWM控制寄存器器Q0.0 | Q0.1 | 控制位 |
SM67.0 | SM77.0 | PWM更新周期值 0 = 無更新;1 = 更新周期 |
SM67.1 | SM77.1 | PWM更新脈寬時間值 0 = 無更新;1 = 更新周期 |
SM67.2 | SM77.2 | PTO更新脈沖計值 |
SM67.3 | SM77.3 | PWM選擇基時 0 = 1us; 1 =1ms |
SM67.4 | SM77.4 | PWM更新方法: 0 = 異步更新; 1 = 同步更新 |
SM67.5 | SM77.5 | PTO操作 |
SM67.6 | SM77.6 | PTO/PWM模式選擇 0 = 選擇PTO; 1 = 選擇PWM |
SM67.7 | SM77.7 | PWM啟用 0 = 禁用PWM; 1 = 啟用PWM |
Q0.0 | Q0.1 | 其他PWM寄存器 |
SMW68 | SMW78 | PWM周期值(范圍:2至 65535) |
SMW70 | SMW80 | PWM脈寬值(范圍:0至65535) |
1.確定高速PWM的輸出端(Q0.0或Q0.1)
2. 初始化設置
設置控制字節---將控制字寫入SMB67或SMB77
寫入周期值SMW68(78)、
寫入脈沖寬度值SMW70(80)
3.執行PLS指令
注:
1.在啟用PWM操作之前,將用于Q0.0和Q0.1的過程映像寄存器設為0。
2.所有的控制位、周期、脈寬和脈沖計數值的默認值均為0。
3.PTO/PWM輸出必須至少有10%的額定負載,才能完成從關閉至打開以及從打開至關閉的順利轉換。
4.PWM初始化建議使用"首次掃描"位(SM0.1)初始化脈沖輸出。執行程序只執行一次,可以節省PLC的掃描程序執行的時間
5.通常,您用一個子程序為脈沖輸出初始化PWM。您從主程序調用初始化子程序。使用首次掃描內存位(SM0.1)將脈沖輸出初始化為0,并調用子程序,執行初始化操作。當您使用子程序調用時,隨后的掃描不再調用該子程序,這樣會降低掃描時間執行,并提供結構更嚴謹的程序。
編程實例:
設定Q0.0輸出周期為10ms,50%占空比PWM脈沖,同步更新方式
首先根據PWM的控制寄存器表格得出下列數據如圖 2.5?1
表 3 周期和脈寬設定控制字
SMW68 | PWM周期值(范圍:2至 65535) | 10 |
SMW70 | PWM脈寬值(范圍:0至65535) | 5 |
圖 2.5?2
圖 2.5?3
圖 2.5?4
圖 2.5?5
總結:
對于PWM的控制寄存器的操作控制字的賦值常用參考(十六進制)
表 4
控制寄存器 | 選擇模式 | PWM更新方法 | 基時 | 脈寬 | 周期 |
16#D1 | PWM | 同步 | 1us | 載入 | |
16#D2 | PWM | 同步 | 1us | 載入 | |
16#D3 | PWM | 同步 | 1us | 載入 | 載入 |
16#D9 | PWM | 同步 | 1ms | 載入 | |
16#DA | PWM | 同步 | 1ms | 載入 | |
16#DB | PWM | 同步 | 1ms | 載入 | 載入 |
| 歡迎光臨 ELEOK (http://m.afoofa.cn/) | Powered by Discuz! X5.0 |