摘要:干燥空氣和冷卻塔在使用過程中需要依賴實時的露點溫度和濕球溫度,以達到最佳的能耗使用率,然而小型氣象站并不具備上述兩種溫度的測量功能。鑒于此,提出一種應(yīng)用方法,以小型氣象站為數(shù)據(jù)監(jiān)測源,以PLC為獨立計算媒介,以純計算的方式獲得露點溫度和濕球溫度數(shù)據(jù),通過多次仿真后得到可靠的計算方法,最后再將計算好的數(shù)據(jù)通信至DCS。該應(yīng)用方法成本低廉,數(shù)據(jù)結(jié)果準確,還能避免對DCS運行穩(wěn)定性產(chǎn)生影響。
關(guān)鍵詞:濕球溫度;露點溫度;PLC;Modbus;DCS
中圖分類號:P413? 文獻標志碼:A? 文章編號:1671-0797(2022)05-0083-03
DOI:10.19514/j.cnki.cn32-1628/tm.2022.05.023
引言
目前所能買到的小型氣象站都不具備露點溫度和濕球溫度的測量功能,濕球溫度目前只能通過計算得到;露點溫度可以通過露點儀測得,但是常用的露點儀測量誤差依然在±2 ℃,而且成本極高,往往一套露點儀的成本可以用來購買5套以上的小型氣象站。
出于成本考量,計劃用計算的方式來直接獲取露點溫度和濕球溫度,通過大量方法對比,摸索出精度結(jié)果較高的計算方法。
因為計算露點溫度和濕球溫度的最終目的是使DCS系統(tǒng)能聯(lián)控相應(yīng)設(shè)備達到最佳能耗使用率,計算過程不能影響DCS系統(tǒng)的正常運行,所以最后決定用獨立的PLC完成計算,以通信的方式把結(jié)果發(fā)送給DCS。
1? ? 計算方法及精度對比
1.1? ? 露點溫度計算方法
經(jīng)過仿真比選后,最終推薦使用以下公式[1]計算露點溫度:
式中:RH為相對濕度(0~1);T為干球溫度(℃);Td為露點溫度(℃)。
變量相對濕度RH和干球溫度T可通過氣象站直接獲取,可以一步到位地計算出露點溫度。
1.2? ? 濕球溫度計算方法
已知同一點的焓值是相同的,因此可以以焓值為突破口計算濕球溫度。
焓值計算公式如下:
式中:ew為飽和水汽壓(Pa);i為干空氣焓值(kJ/kg);d為含濕量(g/kg)。
將公式(4)代入公式(3)可得:
i=1.01T+0.001×(2 501+1.84T)×622×RH×
ew/(101 325-RH×ew)
由公式(5)可以看出,只需要得到飽和水汽壓的數(shù)據(jù)即可計算出焓值。
飽和水汽壓的計算,國家氣象局目前推薦使用馬格努斯(Magnus)算法,在利用Goff-Grattch公式[2]修正后:
濕球溫度可以理解為焓值不變而相對濕度達到100%時的溫度,因此可以將公式(5)和公式(6)修正為:
式中:Tw為濕球溫度(℃);I為濕空氣焓值(kJ/kg)。
因為焓值不變,所以可以把公式(5)計算得到的干空氣焓值套入到公式(7)中推算出濕球溫度。
但是這類直接計算的方法對于計算機而言,實現(xiàn)難度偏大。
考慮到一般情況下濕球溫度與干球溫度相差幅度相對較小,因此可以把干球溫度作為基準值代入公式(8)和公式(7)得到第一個濕空氣焓值I,然后與計算好的干空氣焓值i進行比較。如果I<0.99i,則濕球溫度增加0.01 ℃后再計算;如果I>1.01i,則濕球溫度減小0.01 ℃后再計算;直到濕空氣焓值I與干空氣焓值i的誤差小于0.5%。
1.3? ? 精度對比
將上述思路用Python編程在計算機中預(yù)演,濕度從10%到95%按5%遞進,溫度從-20 ℃到50 ℃按5 ℃遞進,計劃得到270組計算數(shù)據(jù)。
濕球溫度計算時可能存在臨界情況,導(dǎo)致計算陷入死循環(huán),為避免該現(xiàn)象,考慮到該溫度范圍下溫度最多累加7 000次,輔助字節(jié)統(tǒng)計循環(huán)次數(shù),當(dāng)循環(huán)次數(shù)超過7 000次時退出循環(huán)。
將該270組計算數(shù)據(jù)與焓濕圖在線計算器數(shù)據(jù)進行對比后,得到如表1所示結(jié)果。
濕球溫度偏差全部小于0.5 ℃。
所有偏差大于2 ℃的露點溫度都在干球溫度小于10 ℃且相對濕度小于15%時出現(xiàn),最大偏差為2.83 ℃,但是所有結(jié)果仍然滿足一般的電介法露點儀和電傳感器式露點儀誤差在±3 ℃的精度要求。
2? ? 應(yīng)用實現(xiàn)
因為公司所使用的小型PLC均為S7-1200型產(chǎn)品,為維護方便,計算媒介選擇為S7-1212C型PLC,在博途V16環(huán)境下進行編程。
DCS運行環(huán)境為ABB的AC800M。
2.1? ? 定義PLC內(nèi)部存儲
定義一個int變量用作故障代碼存儲。
創(chuàng)立一個用以遠傳的DB數(shù)據(jù)塊,用于存放以下數(shù)據(jù):
(1)來自氣象站的有效數(shù)據(jù),例如噪聲、風(fēng)速、干球溫度、相對濕度等;
(2)本次程序執(zhí)行得到的露點溫度和濕球溫度;
(3)故障代碼;
(4)一定數(shù)量的空的變量。
將(1)~(3)的數(shù)據(jù)按照變量類型整理,方便DCS解碼;第(4)類數(shù)據(jù)變量放在最后,防止通信異常。
2.2? ? 建立PLC與氣象站的通信
西門子S7-1200系列PLC提供通信板CB1241和通信模塊CM1241兩種Modbus485通信硬件。從以往應(yīng)用結(jié)果來看,如果從站設(shè)備與PLC距離較遠,通信板的信號中斷概率會高于通信模塊,因此在通信距離較長時,硬件選擇上優(yōu)先考慮使用通信模塊。如果通信出錯,作為最高優(yōu)先級將故障代碼置為1。
如表2所示,波特率設(shè)置主要和傳輸距離有關(guān),以下給出在綜合環(huán)境下穩(wěn)定的經(jīng)驗選擇方法。
如果傳輸長度超過推薦長度,實際應(yīng)用時斷線概率會增加,建議增加485放大器。如果總線要穿過動力橋架,建議在總線始端增加485光電隔離。
本次應(yīng)用實際放線長度達到了160 m,因此硬件配置如下:波特率4 800(Bd/s)、無校驗位、8位數(shù)據(jù)位和1個停止位。Modbus485是RTU通信的一種,1幀數(shù)據(jù)在上述配置中包含1個起始位、8個數(shù)據(jù)位和1個停止位,共占用10 bit。
氣象數(shù)據(jù)在利用Modbus485通信時會把數(shù)據(jù)放大一定倍數(shù)后,以int變量的格式存放到保持寄存器,單個保持寄存器需要占用2幀數(shù)據(jù)。本次應(yīng)用的氣象站可以實時監(jiān)測噪聲、風(fēng)速、干球溫度和相對濕度這四組數(shù)據(jù),但并沒有連續(xù)放入保持寄存器中,而是跨越了10個保持寄存器,其中有6個存放了空數(shù)據(jù),總共占用20幀數(shù)據(jù)。
通信報文請求時會按照“設(shè)備地址+功能碼+起始寄存器地址+寄存器數(shù)量+校驗碼”的格式發(fā)送,占用8幀數(shù)據(jù)80 bit;報文回復(fù)按照“設(shè)備地址+功能碼+字節(jié)數(shù)+數(shù)據(jù)+校驗碼”的格式返回,占用25幀數(shù)據(jù)250 bit。結(jié)合波特率換算[3],單次通信耗時68.75 ms。
2.3? ? 編制運算程序
建立一個專用FC塊,將Python上的編程思路寫入,功能塊在Modbus485通信完成后執(zhí)行。
在博途中不具備冪次方運算功能,因此還需要把公式(6)調(diào)整為:
因為應(yīng)用在工業(yè)領(lǐng)域,所以編程還要結(jié)合以下要求:參考當(dāng)?shù)貧v史天氣情況,限定濕度與溫度范圍。本次應(yīng)用點在杭州,結(jié)合歷史天氣后把濕度設(shè)置在2%~100%,溫度設(shè)置在-20~45 ℃。為了減小PLC運行負擔(dān),結(jié)合溫度范圍把FC塊內(nèi)的初始運算值從干球溫度調(diào)整為12.5 ℃,即溫度中間值,單次循環(huán)次數(shù)限定到3 250次。當(dāng)數(shù)據(jù)不在設(shè)置范圍,則認為監(jiān)測數(shù)據(jù)有誤,作為第二優(yōu)先級故障,濕度有誤則將故障代碼置為11,溫度有誤則將故障代碼置為12,均出錯則將故障代碼置為13。當(dāng)出現(xiàn)溫度小于10 ℃且濕度小于15%情況時,將100寫入故障代碼,用以提醒露點偏差較大。
2.4? ? 建立PLC與DCS的通信
在PLC端建立ModbusTCP從站遠傳DB塊數(shù)據(jù),在FC塊執(zhí)行完成后執(zhí)行。
在DCS端建立ModbusTCP主站,考慮到運存負擔(dān)和氣象變化速率,可以設(shè)置為每5 s讀取一次從站數(shù)據(jù),且接收數(shù)據(jù)長度剛好為有效數(shù)據(jù)長度。
Modbus主站中通信端口配置為502,從站通信端口號為避免與其他通信協(xié)議的沖突,建議設(shè)置到2 000以上。
從站傳輸字節(jié)長度必須大于有效數(shù)據(jù)字節(jié)長度,且小于總的DB塊內(nèi)的數(shù)據(jù)長度,否則會出現(xiàn)通信失敗的情況。
目前工業(yè)應(yīng)用中,以太網(wǎng)已經(jīng)普遍采用千兆網(wǎng)線,因其實際數(shù)據(jù)量小,傳輸時間可以忽略不計。
2.5? ? PLC端看門狗設(shè)置
對于西門子S7-1200型PLC而言,看門狗時長一般為150 ms,在濕球溫度計算時,因為執(zhí)行次數(shù)較多很容易超時導(dǎo)致運行時停機,所以還需加大看門狗時長。
首先屏蔽掉通信程序,將看門狗時間調(diào)整到最大值避免仿真錯誤,下裝配置和程序到PLCSIM上仿真運行,手動賦予溫度與濕度值,直到其出現(xiàn)循環(huán)次數(shù)達到3 251的情況。觀察此時程序的運行時間A。PLC看門狗時間推薦按以下要求配置:
(1)看門狗時間>運行時間A+Modbus485通信時長;
(2)看門狗時間<運行時間A+Modbus485通信時長+100 ms;
(3)最好為100 ms的整數(shù)倍。
確定好看門狗時間后,將硬件配置下裝程序到PLC中。
2.6? ? DCS端數(shù)據(jù)處理
在DCS端把與PLC的通信中斷和故障代碼1、11、12、13作為二級報警,把故障代碼100作為三級報警,分別配置報警聲音和報警描述,出現(xiàn)二級報警后應(yīng)立即把聯(lián)控程序維持在最后運行狀態(tài),避免系統(tǒng)動蕩。同時,建立其他氣象數(shù)據(jù)的報警上下限,用于判斷現(xiàn)場的傳感器故障。調(diào)試時人為激發(fā)報警測試功能是否正常。
氣象站的數(shù)據(jù)按照說明直接整除即可。
露點溫度和濕球溫度屬于real型變量,占用了兩個保持寄存器,需要在DCS端按以下方法得到實際結(jié)果:
(1)將高字節(jié)與低字節(jié)轉(zhuǎn)換成DINT變量;
(2)將高字節(jié)結(jié)果乘以35 536后與低字節(jié)相加,把得到的結(jié)果轉(zhuǎn)成Dword變量;
(3)將Dword變量轉(zhuǎn)換成real變量。
數(shù)據(jù)處理完成后在所需位置建立氣象站畫面,對每一個數(shù)據(jù)添加歷史曲線以供查閱。
3? ? 結(jié)語
該應(yīng)用方法實際成本不到一套露點儀的一半,目前應(yīng)用已超過5個月,在應(yīng)用過程中尚未發(fā)現(xiàn)任何問題。但露點溫度只有在較高濕度和較高溫度條件下才能保證數(shù)據(jù)準確,后續(xù)還需要尋找出低溫低濕的可靠計算方法對其進行分段計算。
[參考文獻]
[1] 李艷萍,張建華.自動氣象站數(shù)據(jù)處理中的露點溫度計算方法探討[J].廣西質(zhì)量監(jiān)督導(dǎo)報,2009(10):46-47.
[2] 陳欽弟.飽和水汽壓經(jīng)驗公式修正、導(dǎo)出與應(yīng)用[J].氣象水文海洋儀器,1997(4):12-22.
[3] 徐光聯(lián).N值表示的比特率與波特率間的關(guān)系[J].考試周刊,2007(14):125-126.
收稿日期:2021-12-16
作者簡介:趙金鑫(1994—),男,浙江杭州人,助理工程師,研究方向:PLC及集散控制系統(tǒng)、儀控。