王利恒,朱志峰,李鵬程
(武漢工程大學(xué) 電氣信息學(xué)院,武漢430205)
溫度控制器廣泛應(yīng)用于工業(yè)生產(chǎn)和日常生活中,大到工業(yè)生產(chǎn)中的復(fù)雜溫度控制,小到家用空調(diào)的室溫控制,都離不開溫控器。 溫控器的工作原理類似,但用在不同被控對象上,其控制算法和控制輸出的邏輯也不同。 本文設(shè)計一個帶控制組態(tài)的通用智能溫控器,用戶通過人機界面的組態(tài)可以靈活實現(xiàn)不同溫控的要求。
溫控器的通用性設(shè)計體現(xiàn)在輸入信號的多樣性、控制算法的多樣性和邏輯輸出的可組合性幾個方面,其中輸入信號的多樣性和邏輯輸出的可組合性需要得到硬件的支持,系統(tǒng)的硬件結(jié)構(gòu)如圖1所示。
圖1 系統(tǒng)的硬件結(jié)構(gòu)Fig.1 System hardware structure
(1)溫度輸入支持熱電阻(RTD)、熱電偶(TC)和4~20 mA 的標(biāo)準(zhǔn)變送器信號[1]。 3 路熱電阻/熱電偶采用TI 公司的24 位溫度傳感器適用的AD 轉(zhuǎn)換芯片ADS1248 采集溫度信號,該芯片提供SPI 接口,CPU 可以通過SPI 接口直接控制并獲取采樣數(shù)據(jù);4~20 mA 標(biāo)準(zhǔn)變送器信號通過IV 變換成0~2.5[2],直接接入STM32F103 的AD,通過STM32 的AD 程序獲得采樣數(shù)據(jù)。
(2)為了獲得較好的邏輯控制功能,系統(tǒng)設(shè)計了8 路通用DI 信號,如圖2 所示。 每路DI 采用光電隔離,通過跳線選擇可以支持有源或無源的開關(guān)量信號輸入。
圖2 DI 輸入Fig.2 DI input
(3)硬件提供2 種形式的調(diào)節(jié)或變送輸出。 一種是PWM 輸出,可以用來直接控制SSR。 另一種是4~20 mA 輸出,可以控制標(biāo)準(zhǔn)調(diào)節(jié)器,也可以作為某一個模擬量的變送輸出。
(4)系統(tǒng)提供7 路繼電器輸出,用戶可以根據(jù)實際需要來組態(tài)。 7 路繼電器使用一片ULN2003 驅(qū)動,如圖3 所示。
(5)HMI 使用帶觸屏的串口屏, 用戶的功能組態(tài)和操作都通過觸摸屏完成,不需要實體按鍵。 如果應(yīng)用有實體按鍵的需求,可以通過通用輸入接入按鍵,并在組態(tài)中實現(xiàn)實體按鍵的功能。
圖3 DO 輸出Fig.3 DO output
(6)硬件提供一路RS485 通信接口,通過軟件實現(xiàn)Modbus 協(xié)議。 可以作為一個標(biāo)準(zhǔn)的Modbus 設(shè)備接入到現(xiàn)場總線系統(tǒng)中。
設(shè)計出合理的數(shù)據(jù)結(jié)構(gòu)是實現(xiàn)靈活組態(tài)的前提,借鑒PLC 工作原理,本文設(shè)計的控制器數(shù)據(jù)結(jié)構(gòu)主要包含3 類:設(shè)備數(shù)據(jù)表、內(nèi)部數(shù)據(jù)表、參數(shù)表[3]。
設(shè)備數(shù)據(jù)表與輸入輸出通道的數(shù)據(jù)一一對應(yīng)。該數(shù)據(jù)表是通過對應(yīng)外設(shè)的驅(qū)動程序來實現(xiàn)數(shù)據(jù)的實時更新。 設(shè)備驅(qū)動程序采用中斷或定時的方式,實時讀取輸入通道數(shù)據(jù)至設(shè)備數(shù)據(jù)表,同時根據(jù)設(shè)備數(shù)據(jù)表進行實時更新輸出通道狀態(tài)。
內(nèi)部數(shù)據(jù)表是系統(tǒng)定義的內(nèi)部可組態(tài)變量表。內(nèi)部數(shù)據(jù)表包含8 組IS 信號,8 組TS 信號,8 路報警信號,8 路EVT(事件)信號、7 路繼電器邏輯信號和4 路輸出控制量信號。
用戶通過HMI 進行組態(tài)的邏輯關(guān)系以參數(shù)表形式保存起來。 這部分內(nèi)容是用戶可設(shè)置的。 系統(tǒng)監(jiān)控和掃描程序按照用戶組態(tài)的參數(shù)對邏輯運算進行更新。
系統(tǒng)的數(shù)據(jù)結(jié)構(gòu)關(guān)系如圖4 所示。 設(shè)備驅(qū)動程序負(fù)責(zé)更新設(shè)備數(shù)據(jù)表;用戶組態(tài)界面負(fù)責(zé)更新參數(shù)表;系統(tǒng)監(jiān)控和掃描程序負(fù)責(zé)按照參數(shù)表和設(shè)備數(shù)據(jù)表來更新內(nèi)部數(shù)據(jù)表。 控制算法庫暫時提供常規(guī)PID、模糊控制器2 種可選。 設(shè)備數(shù)據(jù)表、內(nèi)部數(shù)據(jù)表、 參數(shù)表都映射到Modbus 數(shù)據(jù)區(qū), 可以使用Modbus 總線通過上位機scada 軟件實現(xiàn)監(jiān)控組態(tài)。
溫控器的組態(tài)可分為控制回路組態(tài)和邏輯控制組態(tài)兩部分。
控制回路組態(tài)結(jié)構(gòu)原理如圖5 所示。
圖4 系統(tǒng)的數(shù)據(jù)結(jié)構(gòu)關(guān)系Fig.4 System data structure relationship
圖5 控制回路組態(tài)結(jié)構(gòu)原理Fig.5 Control loop configuration structure principle
系統(tǒng)提供4 組可組態(tài)控制回路,一個控制回路用戶通過組態(tài)來選擇輸入通道,控制類型(定值、程序或隨動控制),選擇控制算法以及輸出通道。 組態(tài)完成的回路可以獨立完成單回路控制系統(tǒng)。 通過對控制類型及控制輸出通道的擴充,后期可以實現(xiàn)串級控制結(jié)構(gòu)。
對象的控制除了有回路調(diào)節(jié)控制外,往往還需要一些設(shè)備的啟停等開關(guān)邏輯控制。 而使用普通溫度控制器往往還需要增加小型PLC 來作為系統(tǒng)程序工作流程的控制。 本文設(shè)計的控制器為了方便完成整個對象的控制,特設(shè)計了邏輯控制組態(tài)功能[4]。該部分功能相當(dāng)于簡化的可編程邏輯控制器,主要通過可組態(tài)的內(nèi)部數(shù)據(jù)表來實現(xiàn)。
內(nèi)部數(shù)據(jù)變量輸出是一個布爾變量(ON/OFF),其輸出是根據(jù)設(shè)計好的數(shù)據(jù)結(jié)構(gòu),通過用戶組態(tài)的參數(shù)來更新變量狀態(tài)。 各種內(nèi)部變量的輸出邏輯會有不同,但設(shè)計的思路類似,這里以TS 信號和EVT信號的設(shè)計與組態(tài)為例說明: 一個TS 信號會根據(jù)用戶組態(tài)的參數(shù)以及過程變量來實時更新自己狀態(tài)(ON/OFF),其組態(tài)與邏輯關(guān)系如圖6 所示。
圖6 TS 信號組態(tài)與邏輯關(guān)系Fig.6 TS signal configuration and logic relationship
IS、TS、AL 可以完成大多數(shù)的單變量邏輯運算功能。 為了方便實現(xiàn)多個變量的聯(lián)合運算,設(shè)計了EVT 信號:
EVT 信號可以實現(xiàn)3 個信號的邏輯運算功能。
EVT 信號會根據(jù)用戶組態(tài)的參數(shù)以及過程變量來實時更新自己狀態(tài)(ON/OFF),其組態(tài)與邏輯關(guān)系如下式所示:EVT=<?。荆糞IG1><OP1><!><SIG2><OP2><!><SIG3>
SIGx 是3 個參與邏輯運算的變量,用戶可以在DI、IS、TS、AL 和EVT 信號中選擇。 每個變量可以按照用戶組態(tài)選擇用原變量還是反變量參與預(yù)算。OPx 是3 個變量之間的邏輯運算符,可以選擇AND、OR,運算優(yōu)先級按左到右。
各種內(nèi)部變量的狀態(tài)可以通過繼電器組態(tài)在數(shù)字輸出通道中輸出。 7 組繼電器可以和所有的內(nèi)部變量表變量連接。 所有變量的邏輯運算結(jié)果都可以反應(yīng)在繼電器的狀態(tài)的ON/OFF 上。
通過以上組態(tài)可以實現(xiàn)靈活的邏輯控制功能。
由于控制器的功能比較復(fù)雜, 設(shè)計中使用了μC/OS-Ⅲ嵌入式操作系統(tǒng)來開發(fā)控制軟件[5]。 軟件采用模塊化設(shè)計,與硬件操作直接相關(guān)的寫成驅(qū)動程序,作為操作系統(tǒng)的板級支持層(BSP)。 系統(tǒng)的軟件結(jié)構(gòu)如圖7 所示。
μC/OS-Ⅲ是一個實時多任務(wù)操作系統(tǒng),除了設(shè)備驅(qū)動程序外,其他的工作分成4 個任務(wù)來完成。
HMI 任務(wù) 人機交互的所有工作在該任務(wù)完成,用戶通過顯示屏查看信息,并通過觸摸屏輸入信息。 交互生成的數(shù)據(jù)以參數(shù)表的形式保存起來。作為組態(tài)控制的數(shù)據(jù)結(jié)構(gòu)參與控制。
圖7 系統(tǒng)的軟件結(jié)構(gòu)Fig.7 System software structure
控制回路算法任務(wù) 按照用戶組態(tài)的參數(shù),按照當(dāng)前的輸入量(PV)和設(shè)定量(SV)以及回路使用的控制算法,完成每一個采樣周期的控制輸出量的計算,該任務(wù)主要完成回路控制任務(wù)[6]。
參數(shù)掃描和狀態(tài)更新任務(wù) 系統(tǒng)參數(shù)可以被用戶在HMI 界面更改, 也可以通過Modbus 接口更改,系統(tǒng)狀態(tài)值也時刻在變化。 該任務(wù)就是通過當(dāng)前的各狀態(tài)值和參數(shù)值來計算并更新各內(nèi)部變量的狀態(tài),該任務(wù)主要完成邏輯控制任務(wù)。
Modbus 通信任務(wù) 該任務(wù)實現(xiàn)設(shè)備支持Modbus 總線功能,可以通過總線遠程控制設(shè)備。
由于本控制器功能復(fù)雜,可組態(tài)的功能一般是設(shè)備制造廠家使用,設(shè)備使用廠家只需要做一些簡單操作。 為了安全設(shè)置兩級權(quán)限,一級權(quán)限是操作權(quán)限, 主要做一些溫度設(shè)定值的常規(guī)參數(shù)改變;二級權(quán)限是組態(tài)權(quán)限,可以完成復(fù)雜功能的重組態(tài)。
在恒溫箱中除了溫度的模擬量回路控制外,還有設(shè)備的啟停控制,壓縮機的啟??刂?。 如果用普通的溫控器,設(shè)備的啟停控制需要單獨使用PLC 或是復(fù)雜的繼電器硬連接來實現(xiàn)。 而使用本文設(shè)計的控制器就非常方便的完成所有的控制功能。
輸入設(shè)置成熱電阻,采用定值控制(定值可以由操作人員修改),采用PID 控制算法。 控制輸出位PWM,通過PWM 控制SSR 來加熱。使用第一控制回路。 這樣控制回路任務(wù)就根據(jù)以上設(shè)置完成控制輸出計算,并且只掃描第一回路,從而減少掃描時間。
設(shè)備啟動控制是一個簡單的邏輯控制,設(shè)定繼電器K1 作為控制動力接觸器DO 輸出[7]。 DI1 作為啟動按鈕(常開),DI2 作為停止按鈕(常開)。則按梯形圖實現(xiàn)該邏輯方式如圖8 所示。
圖8 設(shè)備啟??刂艶ig.8 Device start and stop control
該功能可以通過本控制器的EVT 信號組態(tài)實現(xiàn)(注意本控制器邏輯優(yōu)先級是從左到右);
EVT1=<DI1><OR><EVT><AND><! ><DI2>
在繼電器組態(tài)中將繼電器K1 關(guān)聯(lián)到EVT1 信號上,則可以通過啟停按鈕來啟動恒溫箱的動力電源電路。
在低溫段,由于溫度的熱慣性,系統(tǒng)很容易超調(diào),因此有必要在在PV 值接近SV 值時啟動壓縮機進行制冷,以實現(xiàn)快速穩(wěn)定。 這時候可以通過TS 信號的組態(tài)來實現(xiàn)。 根據(jù)前述TS 信號的邏輯圖,組態(tài)設(shè)定TS1 低點-20 ℃,中點60 ℃,高點120 ℃,上下偏差都為5 ℃。 則根據(jù)TS 的邏輯,當(dāng)SV 小于60 ℃時,PV>SV-5 時,TS1 信號為ON;當(dāng)SV 大于于60 ℃時,PV>SV+5 時,TS1 信號為ON; 將壓縮機的啟動繼電器K2 與TS1 關(guān)聯(lián), 則可以實現(xiàn)當(dāng)在低溫段,PV>SV-5 時,啟動壓縮機,減少系統(tǒng)超調(diào)量。當(dāng)在高溫度,PV>SV+5 時,啟動壓縮機,增快回調(diào)時間。
組態(tài)控制器的實際運行畫面如圖9 所示。 圖9(a)為系統(tǒng)組態(tài)設(shè)置界面,圖9(b)為系統(tǒng)的過程運行監(jiān)控畫面。
圖9 組態(tài)控制器的運行界面Fig.9 Configuration interface of the controller
本文主要研究的是通過該控制器的組態(tài)可以適應(yīng)不同溫控對象的要求。 通過控制算法的選擇和參數(shù)的整定,系統(tǒng)可以很快地穩(wěn)定到目標(biāo)值。 使用該溫控器實現(xiàn)了一個恒溫箱系統(tǒng)的設(shè)計,測試結(jié)果表明,系統(tǒng)組態(tài)靈活,控制精度和功能達到設(shè)計要求。