在需要對負載進行高精度控制時,如對步進電機的控制,需要對步進電機提供一系列的脈沖,高速脈沖輸出指令就是為滿足這種需求而開發的。
1.1 高速脈沖輸出---輸出端子的確定
S7-200只有輸出繼電器Q0.0和Q0.1具有高速脈沖輸出功能,不用高速脈沖時,作普通的數字量輸出點用。
1.2 高速脈沖輸出的形式
高速脈沖輸出有兩種的形式:
高速脈沖序列(或稱高速脈沖串)輸出PTO
脈沖寬度調制輸出PWM
可通過特殊繼電器來定義輸出的形式
1.3 高速脈沖輸出相關寄存器
每個高速脈沖發生器對應一定數量特殊標志寄存器,這些寄存器包括控制字節寄存器、狀態字節寄存器和參數數值寄存器,用以控制高速脈沖的輸出形式、反映輸出狀態和參數值。
1.4 編程中的脈沖輸出指令
PLS指令
功能:EN有效,檢測各相關寄存器的狀態,激活由控制字節定義的高速脈沖輸出操作。Q取0或1對應Q0.0和Q0.1如圖 1.4?1
2 PWM簡介及編程運用PWM(Pulse Width Modulation脈沖調制)寬度可調脈沖輸出 PWM功能提供帶變量占空比的固定周期輸出。可以微秒或毫秒為時間基準指定周期和脈寬。

2.1 S7-200的PWMS7-200有兩臺PWM發生器,建立高速脈沖串或脈寬調節信號信號波形。一臺發生器指定給數字輸出點Q0.0,另一臺發生器指定給數字輸出點Q0.1。一個指定的特殊內存(SM)位置為每臺發生器存儲以下數據:一個控制字節(8位值)、一個脈沖計數值(一個不帶符號的32位值)和一個周期和脈寬值(一個不帶符號的16位值)。 PWM功能在Q0.0或Q0.1位置現用時,PWM發生器控制輸出,并禁止輸出點的正常使用。輸出信號波形不受過程映像寄存器狀態、點強迫數值、執行立即輸出指令的影響。如圖 2.1?1
圖 2.1?1
2.2 PWM周期和脈沖寬度脈沖寬度為16為無符號數,脈沖寬度增量單位為us或ms。范圍0~65535,占空比為0~100%。當脈沖寬度大于或等于周期時輸出將連續接通。為0時,輸出一直被關斷。如表 1 表 1 周期和脈沖寬度脈寬時間/周期 | 反應 | 脈寬時間 >= 周期值 | 占空比為100%:輸出連續運行。 | 脈寬時間 = 0 | 占空比為0%:輸出關閉。 | 周期 < 2個時間單位 | 周期的默認值為兩個時間單位。 |
2.3 PWM更新方式根據在改變脈沖寬度時是否需要改變時間基準,可分為同步更新和異步更新。如表 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) |
2.5 PWM軟件編程步驟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,并調用子程序,執行初始化操作。當您使用子程序調用時,隨后的掃描不再調用該子程序,這樣會降低掃描時間執行,并提供結構更嚴謹的程序。
|