4 軟件設計
(1) 系統軟件
PLC系統軟件選用STEP7 V5.2軟件包,對于系統中的邏輯控制選用梯形圖(LADDER)編程,直觀、方便;對于模擬量處理和PID回路控制部分則采用語句表(STL)編程,結構緊湊而又靈活。另外,為實現軟件冗余,利用SIEMENS公司專門提供的冗余軟件包,它實際上是一組系統功能塊,供用戶在程序中調用、設置,實現用戶的軟件冗余功能。
上位機軟件選用SIEMENS公司的Wincc V5.1組態軟件。Wincc功能強大,可方便快捷地組態出各種操作界面。開放式的數據庫系統為用戶提供了強大的數據管理功能。
(2) 應用軟件設計
根據該系統具體情況,軟件設計過程中著重要考慮的是以下幾個方面:
?軟件冗余;
?PID算法;
?安全措施。
4.1 軟件冗余
(1) 在OB100(熱啟動模塊)中調用系統冗余軟件包中的系統功能塊FC100。
(2) 在OB1中調用系統功能塊FB101。程序如下:
CALL "SWR_ZYK" , DB5 //調用FB101
DB_WORK_NO :=DB1 //內部數據塊
CALL_POSITION:=TRUE
RETURN_VAL :=MW110 //返回狀態字
EXT_INFO :=MW112
A DB5.DBX 9.1
//冗余狀態位,判斷是否為從站
JC M001
CALL FC 50
FC50調用所有的控制程序
M001: NOP 0
CALL "SWR_ZYK" , DB5
DB_WORK_NO :=DB1
CALL_POSITION:=FALSE //傳送結束
RETURN_VAL :=MW114
EXT_INFO :=MW116
(3) 在OB86中調用冗余診斷程序,程序如下:
CALL "SWR_DIAG"
DB_WORK :=W#16#1
OB86_EV_CLASS :=#OB86_EV_CLASS
OB86_FLT_ID :=#OB86_FLT_ID
RETURN_VAL :=MW130
這段程序用來診斷從站的故障信息,如有問題將切換從站通訊模塊。
(4) Wincc中的每個外部變量都連接著CPU中的一個地址,當兩臺CPU切換時,這些連接地址也要同時切換。WINCC提供了動態向導,可自動產生相關的變量和全局腳本,實現上述轉換。
4.2 PID算法
STEP7提供了兩種常用的PID算法:連續型PID(FB41)和離散型PID(FB42),根據實際要求,選用的是FB41,其框圖如圖2所示。
PID算法的輸出實際上是比例(P)、積分(I)、微分(D)三部分作用之和:
Mn=MPn+MIn+MDn
MPn=GAIN×(SPn-PVn)
MIn=GAIN×TS/TI×(SPn-PVn)+MX
MDn=GAIN×TD/TS×(PVn-1-PVn)
式中,
Mn:第n次采樣時刻的輸出值
MPn:第n次采樣時刻的比例作用,與偏差成正比。
MIn:第n次采樣時刻的積分作用,可以消除靜差,提
高控制品質。
MDn:第n次采樣時刻的微分作用,根據差值的變化
率調節,可抑制超調。
SPn:第n次采樣時刻的設定值
PVn:第n次采樣時刻的過程值
MX:第n-1次采樣時刻的積分作用,每次采樣計算后
自動刷新
GAIN:回路增益,P參數
TI:積分時間常數,即I參數
TD:微分時間常數,即D參數
TS:采樣時間
根據上述原理框圖,結合實際工藝要求,編寫程序(以供料道溫度回路為例)如下:
[NextPage]
L DB44.DBD 0
//溫度設定值,浮點型
T #TEMP0
L PIW 524 //溫度反饋值
ITD
//整型轉雙整型
DTR
//雙整型轉浮點型
L 2.764800e+004
/R
L 3.200000e+002
//量程范圍320度
*R
L 9.800000e+002 //零點是980度
+R
T #TEMP1
//溫度反饋對應量程范圍980-1300度,
計算出浮點型數據。
L DB44.DBW 4 //閥門開度
ITD
DTR
L 2.764800e+002
//閥門開度轉為百分數
/R
T #TEMP2
L DB44.DBD 20
T #TEMP31
A M 56.3 //自動標志位
NOT
= #TEMP4
CALL "CONT_C" , DB144 //調用FB1
COM_RST :=FALSE
MAN_ON :=#TEMP4
PVPER_ON:=FALSE
[NextPage]
P_SEL :=TRUE // 使用P調節
I_SEL :=TRUE //使用I調節
INT_HOLD:=FALSE
I_ITL_ON:=FALSE
D_SEL :=FALSE //使用D調節
CYCLE :=T#2S //采樣時間
SP_INT :=#TEMP //設定值
PV_IN :=#TEMP1 //過程值
PV_PER :=
MAN :=#TEMP2 //PID自動標志
GAIN :=DB44.DBD8 //參數P
TI :=DB44.DBD12 //參數I
TD :=DB44.DBD16 //參數D
TM_LAG :=T#2S
DEADB_W :=#TEMP31 //死區范圍
LMN_LLM :=DB44.DBD28 //輸出下限
PV_FAC :=1.000000e+000
PV_OFF :=0.000000e+000
LMN_FAC :=1.000000e+000
LMN_OFF :=0.000000e+000
I_ITLVAL:=0.000000e+000
DISV :=0.000000e+000
LMN :=
LMN_PER :=#TEMP3
QLMN_HLM:=
QLMN_LLM:=
LMN_P :=
LMN_I :=
LMN_D :=
PV :=
ER :=
AN M 56.3
JC M001
L #TEMP3
T DB44.DBW 4
//PID自動時,將PID輸出結果送到輸出存儲地址
L DB44.DBW 4
T PQW 522 //調節閥輸出
程序前部分主要是處理設定值、反饋值并送入中間變量,將閥門開度送入PID模塊,保證手/自動無擾動切換。
調用FB41時,要給各參數賦值。為方便調整,重要參數都存在DB塊中,用戶可在上位機上隨時修改。
從上面的公式中可以看出,參數P(GAIN)與P、I、D作用都是成正比的,它決定了PID回路的靈敏度,即調節速度的快慢;I參數越大,積分作用越弱,而D參數越大,微分作用越強。不能單靠理論計算來確定PID參數,唯一的衡量標準就是被控參數(溫度、流量等)的精度和穩定度,所以在實際調試中,都是參照被控參數的實時曲線,反復觀察分析,從而達到最佳的控制效果。
4.3 安全措施
(1) 防止誤操作 任何設定值都設有上、下限,即不允許輸入“離譜”的數據;重要設備的開、停,都需操作員確認;運行中調整設定值,不能直接輸入數據,而是按“+”、“-”鍵,逐步增減。
(2) 報警功能
每個被控參數都設有上、下限報警值及偏差報警值,當運行數據超出這些值時,系統將發出
聲光報警,提醒操作者。對于特別重要的參數,變化過快,也在報警之列。
(3) 邏輯連鎖 當燃料壓力或助燃風壓力開關動作時,關閉安全閥;當被控參數(溫度或壓力)突變時,關閉安全閥;當設定值和過程值的偏差大于安全范圍時,相關PID回路切換到手動,以保持輸出不變。
5 結束語
整個控制系統,軟件硬件配置和軟件設計充分考慮了系統的工藝特點,保護措施完備,操作靈活、控制精度高。