1. 控製任務
一恒壓供水水箱,通過變頻器驅動的水泵供水,維持水位在滿水位的70%。過程變量PVn為水箱的水位(由水位檢測計提供),設定值為70%,PID輸出控製變頻器,即控製水箱注水調速電機的轉速。要求開機後,先手動控製電機,水位上升到70%時,轉換到PID自動調節。
2. PID回路參數表,如表6-17所示。
表6-17 恒壓供水 PID控製參數表fpxing.com
地址 | 參數 | 數值 |
VB100 | 過程變量當前值PVn | 水位檢測計提供的模擬量經A/D轉換後的標準化數值 |
VB104 | 給定值SPn | 0.7 |
VB108 | 輸出值Mn | PID回路的輸出值(標準化數值) |
VB112 | 增益Kc | 0.3 |
VB116 | 采樣時間Ts | 0.1 |
VB120 | 積分時間Ti | 30 |
VB124 | 微分時間Td | 0(關閉微分作用) |
VB128 | 上一次積分值Mx | 根據PID運算結果更新 |
VB132 | 上一次過程變量PVn-1 | 最近一次PID的變量值 |
(1)I/O分配
手動/自動切換開關I0.0 模擬量輸入AIW0 模擬量輸出AQW0
(2)程序結構
由主程序,子程序,中斷程序構成。主程序用來調用初始化子程序,子程序用來建立PID回路初始參數表和設置中斷,由於定時采樣,所以采用定時中斷(中斷事件號為10),設置周期時間和采樣時間相同(0.1s),並寫入SMB34。中斷程序用於執行PID運算,I0.0=1時,執行PID運算,本例標準化時采用單極性(取值範圍32000)。
3. 語句表程序
主程序
LD SM0.1
CALL SBR_0
子程序(建立PID回路參數表,設置中斷以執行PID指令)
LD SM0.0
MOVR 0.7, VD104 // 寫入給定值(注滿70%)
MOVR 0.3, VD112 // 寫入回路增益(0.25)
MOVR 0.1, VD116 // 寫入采樣時間(0.1秒)
MOVR 30.0, VD120 // 寫入積分時間(30分鍾)
MOVR 0.0, VD124 // 設置無微分運算
MOVB 100, SMB34 // 寫入定時中斷的周期100ms
ATCH INT_0, 10 // 將INT-0(執行PID)和定時中斷連接
ENI // 全局開中斷
中斷程序(執行PID指令)
LD SM0.0
ITD AIW0, AC0 // 將整數轉換為雙整數
DTR AC0, AC0 // 將雙整數轉換為實數


MOVR AC0, VD100 // 將標準化PV寫入回路參數表


LD SM0.0
MOVR VD108, AC0 // 將PID回路輸出移至累加器
*R 32000.0, AC0 // 實際化數值


圖6-18 恒壓供水 PID控製
ROUND AC0, AC0 // 將實際化後的數值取整
DTI AC0, AC0 // 將雙整數轉換為整數
MOVW AC0, AQW0 // 將數值寫入模擬輸出
4. 梯形圖程序
梯形圖程序如圖6-18所示。