徐道黎 耿子賀 矯越
(山東建筑大學,山東濟南 250101)
溫度控制在生產(chǎn)和生活中廣泛應用,溫度控制系統(tǒng)現(xiàn)在多采用PID 控制算法,輸出采用的是可控硅控制,這種控制系統(tǒng)控制精度高,成本較高,安裝調(diào)時需要專業(yè)人員,在使用過程中出現(xiàn)環(huán)境變化等,PID 的參數(shù)需要重新進行調(diào)整,否則控制精度就會受到影響。溫度控制多采用獨立控制的單個溫度控制模塊,溫度的顯示和溫度控制的設定需要人工在現(xiàn)場進行查看和操作,需要多溫度同時顯示和控制的場合使用時,安裝和使用都很復雜。針對成本敏感和組網(wǎng)需求的應用場景,提出并設計了一種多路溫度控制系統(tǒng)。
溫度控制系統(tǒng)中,通訊協(xié)議、通訊方式對系統(tǒng)設計有關鍵的影響,考慮到控制系統(tǒng)的可擴展性和分散性特點,從應用角度出發(fā),在通信的物理層采用RS-485 總線連接,應用層采用MODBUS 協(xié)議進行通信??紤]成本和穩(wěn)定性的因素,輸出采用開關控制。
溫控系統(tǒng)可以獨立運行,也可以聯(lián)網(wǎng)運行。通過溫度傳感器,檢測實時溫度,對檢測的現(xiàn)場溫度和設定溫度的比較,判斷輸出的狀態(tài),控制繼電器閉合或者斷開,使加熱或降溫設備間歇運行或停止,來達到控制溫度的目的。同時,傳感器檢測的溫度數(shù)據(jù)和設定的溫度存儲在寄存器中,可以通過MODBUS 通信協(xié)議對相應的寄存器進行讀取或者寫入。系統(tǒng)整體方案如圖1所示。
圖1 系統(tǒng)整體方案圖
MODBUS 通信協(xié)議中的總線上的設備分兩類,為主設備和從設備,在某一時間下,總線上只能其中一個設備發(fā)送數(shù)據(jù),如果多個設備同時在總線上發(fā)送數(shù)據(jù),總線就是出現(xiàn)數(shù)據(jù)混亂,任何設備都無法接受正常數(shù)據(jù)。MODBUS 協(xié)議中通常是由主設備發(fā)起數(shù)據(jù)發(fā)送,對總線上其中一個從設備進行查詢,從設備根據(jù)接收到的主設備發(fā)送的查詢信息作出相應的反應進行回應,發(fā)送回應流程如圖2 所示。為了保證傳輸效率,該系統(tǒng)采用RTU傳輸模式。
圖2 查詢- 回應指示圖
MODBUS-RTU 模式要求任何設備要開始發(fā)送或者結(jié)束發(fā)送時,都要在總線上等待一個3.5 個字符以上的時間間隔。RTU模式中在起始的時間間隔后,先傳輸?shù)氖? 位的設備地址。接收設備處于空閑狀態(tài)時,要不停的判斷總線上是不是有數(shù)據(jù)傳輸,這個過程是通過監(jiān)聽總線上是不是有起始的時間間隔。如果接收到起始的時間間隔后,所有的總線上的接收設備都會接收后來發(fā)送的數(shù)據(jù),當設備接收到第一個部分,也就是設備地址,所有的接收設備都會進行將收到的設備地址和自己的地址進行比較判斷,收的設備地址是不是與自己的地址匹配。最后一個部分傳輸完后,發(fā)送設備需要發(fā)送一個大于3.5 個字符的時間間隔表示該條消息發(fā)送結(jié)束,之后如果再發(fā)送消息重新按照上規(guī)則發(fā)送。
校驗部分是采用的循環(huán)冗余校驗(CRC),應用的CRC 校驗是CRC-16 版本,該版本的校驗結(jié)果為16 位,兩個字節(jié)組成。這一個部分是發(fā)送設備通過計算后放在消息幀中的。接收設備接收到消息后,需要根據(jù)除了校驗部分以外的部分計算收到消息的CRC 校驗值,與消息中包含的CRC 校驗部分的數(shù)值比較,如果收到的校驗碼和計算的校驗碼不同,就判斷該數(shù)據(jù)幀存在錯誤,接收設備回復相應的錯誤提示數(shù)據(jù)幀。
消息的發(fā)送是要保證是連續(xù)發(fā)送的,如果傳輸數(shù)據(jù)的過程中出現(xiàn)大于1.5 個字符的時間間隔,接收數(shù)據(jù)的設備會確定為發(fā)送設備發(fā)送的消息發(fā)送已經(jīng)傳輸完畢,接收設備停止接收,處理當前接收完畢的不完整的消息,并認定接下來發(fā)送的下一字節(jié)的消息是一個全新的消息。這樣接收到的消息CRC 校驗部分的數(shù)值錯誤,這樣接收設備將其確定為錯誤數(shù)據(jù)。MODBUS-RTU 的消息幀如下所示:
?
電源部分采用LM2596S-5V 電源芯片進行第一級降壓,主要作用是驅(qū)動繼電器和單片機供電;第二級降壓采用AMS1117-3.3 電壓芯片,輸出的3.3V 電壓是提供溫度采集的基準電壓;電源輸入部分支持12-24V 輸入,采用電感進行濾波,壓敏電阻、自恢復保險絲和瞬態(tài)二極管(TVS)組成保護電路進行保護。通信部分采用MAX485 芯片,同時增加由瞬態(tài)二極管(TVS)和自恢復保險管組成的通信保護電路,由限流電阻和LED 指示燈組成的通信收發(fā)指示燈。繼電器驅(qū)動采用ULN2003達林頓驅(qū)動芯片,溫度采集的部分采用電阻進行分壓。硬件系統(tǒng)結(jié)構(gòu)如圖3 所示。
圖3 硬件系統(tǒng)結(jié)構(gòu)圖
溫度采集電路采用分壓電路進行實現(xiàn),采用的基準電壓為3.3V,增加電容去除干擾,溫度傳感器采用外接方式,采用2.54mm 間距的接口與NTC 溫度傳感器進行連接。因為傳感器采用外接方式,為了方便安裝時確定傳感器是否正常,在設計中,每一路溫度傳感器都增加了指示燈,通過指示燈可以直觀顯示傳感器狀態(tài)。溫度采集電路設計如圖4 所示。
圖4 溫度采集電路
根據(jù)溫度采集電路的設計,ADC 采集的電壓值和熱敏電阻阻值的關系:
轉(zhuǎn)換得到熱敏電阻的阻值:
電源輸入保護主要包括防止電源反接保護,系統(tǒng)內(nèi)部短路保護,過電壓保護。電路部分采用自恢復保險和二極管組成反接保護和短路保護電路,壓敏電阻進行過電壓保護,增加電感對輸入的電源進行濾波,保證系統(tǒng)運行穩(wěn)定,如圖5 所示。
圖5 輸入保護電路
通信保護電路主要保證通信的穩(wěn)定,防止通信線路的故障對系統(tǒng)造成損壞。主要保護策略包括總線短路和過流的保護,總線間過電壓保護,單總線過電壓保護。電路設計上,采用自恢復保險絲對短路和過流保護,采用雙向瞬態(tài)二極管和單向瞬態(tài)二極管對總線間過電壓和單線過電壓保護,通信保護電路如圖6。
圖6 通信保護電路
主程序首先完成對相關外設的初始化設置,并啟動相應的單片機外設,之后完成對其他子程序的調(diào)用;通信子程序?qū)崿F(xiàn)通信協(xié)議的解析和收發(fā),完成對寄存器數(shù)據(jù)的讀取和寫入;看門狗子程序通過異常狀態(tài)復位保證模塊穩(wěn)定性,斷電記憶子程序?qū)⒃O定溫度進行寫進EEPROM保存,啟動時讀取。溫度采集處理、溫度比較和輸出控制實現(xiàn)控制邏輯。
對于溫度檢測采用的是NTC 熱敏電阻溫度傳感器,采用單片機內(nèi)置10 位ADC 對電壓值進行采集,根據(jù)熱敏電阻的溫度- 電阻特性曲線計算得到熱敏電阻的溫度值。
根據(jù)負溫度系數(shù)電阻與溫度關系得:
其中RNTC為熱敏電阻的當前阻值,R1為分壓電阻阻值,UVCC為基準電壓,UADC為ADC 采集的輸入的電壓值,B 為材料常數(shù),由NTC 熱敏電阻特性決定,R0為熱敏電阻常溫(25℃)的標稱阻值,T0為常溫時的溫度,TNTC為熱敏電阻當前阻值對應的溫度,其中T0、TNTC采用開氏溫度計算。
R1分壓電阻為39K,UVCC基準電壓為3.3V,UADC為采集的實時電壓值,B 值為3950,R0的阻值為10K,T0為常溫25℃。將已知數(shù)據(jù)帶入公式(5)計算可以得到實時的溫度。
Modbus 通信接收起始和停止標志判斷程序是通過串口中斷配合定時器和定時器中斷實現(xiàn)的,初始狀態(tài)時,設備處于接收狀態(tài),總線空閑時,串口沒有數(shù)據(jù)接收,不會產(chǎn)生中斷;當有數(shù)據(jù)傳輸時,串口接收數(shù)據(jù)并在每一個字節(jié)(8 位)接收完畢后都會產(chǎn)生一個中斷。在數(shù)據(jù)傳輸過程中,串口中斷會不斷清零定時器的初值,定時器不會達到計數(shù)上限。當數(shù)據(jù)傳輸完畢后,串口接收不會再產(chǎn)生中斷,此時定時器初值不會被清零,定時器會計數(shù)達到計數(shù)上限,然后產(chǎn)生定時器中斷,這樣就表明這一個消息幀接收完畢。定時器產(chǎn)生的中斷可以啟動后續(xù)的數(shù)據(jù)處理程序。
定時器計數(shù)上限的確定,計數(shù)器采用16 位制動重裝載模式,時鐘設置為CPU 時鐘12 分頻,計數(shù)上限設置根據(jù)波特率、系統(tǒng)頻率和分頻系數(shù)設置,計算公式如下:
其中,Ttim為定時器的定時周期,SYSclk 為系統(tǒng)時鐘,Nmax為定時器的計數(shù)上限值。
波特率與接收或發(fā)送時間的關系:
其中T 為發(fā)送一位所需要的時間,baudRate 為通信的波特率。
SYSclk 系統(tǒng)時鐘為11059200Hz,通信波特率為9600,需要的時間間隔為3.5 字符。一個字節(jié)加上停止位和起始位需要11位。計算得到所需要的定時器計數(shù)上限。
考慮了成本和穩(wěn)定性等因素,設計了一種多路溫控系統(tǒng),支持四路獨立溫度測量和四路獨立繼電器輸出控制。設計中,增加了多重保護電路,實現(xiàn)穩(wěn)定運行;增加了記憶存儲功能,模塊斷電恢復時免去重復設置;采用MODBUS 協(xié)議,組網(wǎng)使用方便?;谝陨咸攸c,該多路溫控系統(tǒng)可以應用在多種需要溫度控制的現(xiàn)場,提高效率和質(zhì)量,降低成本。