露點(diǎn)和濕球溫度計(jì)算在工業(yè)領(lǐng)域的應(yīng)用方法研究
引言
目前所能買(mǎi)到的小型氣象站都不具備露點(diǎn)溫度和濕球溫度的測(cè)量功能,濕球溫度目前只能通過(guò)計(jì)算得到:露點(diǎn)溫度可以通過(guò)露點(diǎn)儀測(cè)得,但是常用的露點(diǎn)儀測(cè)量誤差依然在士2℃,而且成本極高,往往一套露點(diǎn)儀的成本可以用來(lái)購(gòu)買(mǎi)5套以上的小型氣象站。
出于成本考量,計(jì)劃用計(jì)算的方式來(lái)直接獲取露點(diǎn)溫度和濕球溫度,通過(guò)大量方法對(duì)比,摸索出精度結(jié)果較高的計(jì)算方法。
因?yàn)橛?jì)算露點(diǎn)溫度和濕球溫度的最終目的是使DCS系統(tǒng)能聯(lián)控相應(yīng)設(shè)備達(dá)到最佳能耗使用率,計(jì)算過(guò)程不能影響DCS系統(tǒng)的正常運(yùn)行,所以最后決定用獨(dú)立的PLC完成計(jì)算,以通信的方式把結(jié)果發(fā)送給DCS。
1計(jì)算方法及精度對(duì)比
1.1露點(diǎn)溫度計(jì)算方法
經(jīng)過(guò)仿真比選后,最終推薦使用以下公式計(jì)算露點(diǎn)溫度:
式中(RH為相對(duì)濕度(0~1):T為干球溫度(℃):Td為露點(diǎn)溫度(℃)。
變量相對(duì)濕度RH和干球溫度7可通過(guò)氣象站直接獲取,可以一步到位地計(jì)算出露點(diǎn)溫度。
1.2濕球溫度計(jì)算方法
已知同一點(diǎn)的恰值是相同的,因此可以以恰值為突破口計(jì)算濕球溫度。
恰值計(jì)算公式如下:
式中:ew為飽和水汽壓(Pa):i為干空氣恰值(kJ/kg):d為含濕量(g/kg)。
將公式(4)代入公式(3)可得:
由公式(5)可以看出,只需要得到飽和水汽壓的數(shù)據(jù)即可計(jì)算出恰值。
飽和水汽壓的計(jì)算,國(guó)家氣象局目前推薦使用馬格努斯(Magnus)算法,在利用Goff-Grattch公式[2]修正后:
濕球溫度可以理解為恰值不變而相對(duì)濕度達(dá)到100%時(shí)的溫度,因此可以將公式(5)和公式(6)修正為:
式中:Tw為濕球溫度(℃):I為濕空氣恰值(kJ/kg)。
因?yàn)榍≈挡蛔?所以可以把公式(5)計(jì)算得到的干空氣恰值套入到公式(7)中推算出濕球溫度。
但是這類(lèi)直接計(jì)算的方法對(duì)于計(jì)算機(jī)而言,實(shí)現(xiàn)難度偏大。
考慮到一般情況下濕球溫度與干球溫度相差幅度相對(duì)較小,因此可以把干球溫度作為基準(zhǔn)值代入公式(8)和公式(7)得到第一個(gè)濕空氣恰值I,然后與計(jì)算好的干空氣恰值i進(jìn)行比較。如果I<0.99i,則濕球溫度增加0.01℃后再計(jì)算:如果I>1.01i,則濕球溫度減小0.01℃后再計(jì)算:直到濕空氣恰值I與干空氣恰值i的誤差小于0.5%。
1.3精度對(duì)比
將上述思路用Python編程在計(jì)算機(jī)中預(yù)演,濕度從10%到95%按5%遞進(jìn),溫度從-20@到50℃按5℃遞進(jìn),計(jì)劃得到270組計(jì)算數(shù)據(jù)。
濕球溫度計(jì)算時(shí)可能存在臨界情況,導(dǎo)致計(jì)算陷入死循環(huán),為避免該現(xiàn)象,考慮到該溫度范圍下溫度最多累加7000次,輔助字節(jié)統(tǒng)計(jì)循環(huán)次數(shù),當(dāng)循環(huán)次數(shù)超過(guò)7000次時(shí)退出循環(huán)。
將該270組計(jì)算數(shù)據(jù)與恰濕圖在線計(jì)算器數(shù)據(jù)進(jìn)行對(duì)比后,得到如表1所示結(jié)果。
濕球溫度偏差全部小于0.5℃。
所有偏差大于2℃的露點(diǎn)溫度都在干球溫度小于10℃且相對(duì)濕度小于15%時(shí)出現(xiàn),最大偏差為2.84℃,但是所有結(jié)果仍然滿足一般的電介法露點(diǎn)儀和電傳感器式露點(diǎn)儀誤差在±3℃的精度要求。
2應(yīng)用實(shí)現(xiàn)
因?yàn)楣舅褂玫男⌒蚉Lc均為s7-1200型產(chǎn)品,為維護(hù)方便,計(jì)算媒介選擇為s7-1212c型PLc,在博途V16環(huán)境下進(jìn)行編程。
DCS運(yùn)行環(huán)境為ABB的Ac800M。
2.1定義PLC內(nèi)部存儲(chǔ)
定義一個(gè)int變量用作故障代碼存儲(chǔ)。
創(chuàng)立一個(gè)用以遠(yuǎn)傳的DB數(shù)據(jù)塊,用于存放以下數(shù)據(jù):
(1)來(lái)自氣象站的有效數(shù)據(jù),例如噪聲、風(fēng)速、干球溫度、相對(duì)濕度等:
(2)本次程序執(zhí)行得到的露點(diǎn)溫度和濕球溫度:
(3)故障代碼:
(4)一定數(shù)量的空的變量。
將(1)~(3)的數(shù)據(jù)按照變量類(lèi)型整理,方便DCS解碼:第(4)類(lèi)數(shù)據(jù)變量放在最后,防止通信異常。
2.2建立PLC與氣象站的通信
西門(mén)子s7-1200系列PLc提供通信板cB1241和通信模塊cM1241兩種Modbus485通信硬件。從以往應(yīng)用結(jié)果來(lái)看,如果從站設(shè)備與PLc距離較遠(yuǎn),通信板的信號(hào)中斷概率會(huì)高于通信模塊,因此在通信距離較長(zhǎng)時(shí),硬件選擇上優(yōu)先考慮使用通信模塊。如果通信出錯(cuò),作為最高優(yōu)先級(jí)將故障代碼置為1。
如表2所示,波特率設(shè)置主要和傳輸距離有關(guān),以下給出在綜合環(huán)境下穩(wěn)定的經(jīng)驗(yàn)選擇方法。
如果傳輸長(zhǎng)度超過(guò)推薦長(zhǎng)度,實(shí)際應(yīng)用時(shí)斷線概率會(huì)增加,建議增加485放大器。如果總線要穿過(guò)動(dòng)力橋架,建議在總線始端增加485光電隔離。
本次應(yīng)用實(shí)際放線長(zhǎng)度達(dá)到了160m,因此硬件配置如下:波特率4800(Bd/s)、無(wú)校驗(yàn)位、8位數(shù)據(jù)位和1個(gè)停止位。Modbus485是RTU通信的一種,1幀數(shù)據(jù)在上述配置中包含1個(gè)起始位、8個(gè)數(shù)據(jù)位和1個(gè)停止位,共占用10bit。
氣象數(shù)據(jù)在利用Modbus485通信時(shí)會(huì)把數(shù)據(jù)放大一定倍數(shù)后,以int變量的格式存放到保持寄存器,單個(gè)保持寄存器需要占用2幀數(shù)據(jù)。本次應(yīng)用的氣象站可以實(shí)時(shí)監(jiān)測(cè)噪聲、風(fēng)速、干球溫度和相對(duì)濕度這四組數(shù)據(jù),但并沒(méi)有連續(xù)放入保持寄存器中,而是跨越了10個(gè)保持寄存器,其中有6個(gè)存放了空數(shù)據(jù),總共占用20幀數(shù)據(jù)。
通信報(bào)文請(qǐng)求時(shí)會(huì)按照"設(shè)備地址+功能碼+起始寄存器地址+寄存器數(shù)量+校驗(yàn)碼"的格式發(fā)送,占用8幀數(shù)據(jù)80bit:報(bào)文回復(fù)按照"設(shè)備地址+功能碼+字節(jié)數(shù)+數(shù)據(jù)+校驗(yàn)碼"的格式返回,占用25幀數(shù)據(jù)250bit。結(jié)合波特率換算[3],單次通信耗時(shí)68.75ms。
2.3編制運(yùn)算程序
建立一個(gè)專(zhuān)用Fc塊,將Python上的編程思路寫(xiě)入,功能塊在Modbus485通信完成后執(zhí)行。
在博途中不具備冪次方運(yùn)算功能,因此還需要把公式(6)調(diào)整為:
因?yàn)閼?yīng)用在工業(yè)領(lǐng)域,所以編程還要結(jié)合以下要求:參考當(dāng)?shù)貧v史天氣情況,限定濕度與溫度范圍。本次應(yīng)用點(diǎn)在杭州,結(jié)合歷史天氣后把濕度設(shè)置在2%~100%,溫度設(shè)置在-20~45℃。為了減小PLc運(yùn)行負(fù)擔(dān),結(jié)合溫度范圍把Fc塊內(nèi)的初始運(yùn)算值從干球溫度調(diào)整為12.5℃,即溫度中間值,單次循環(huán)次數(shù)限定到3250次。當(dāng)數(shù)據(jù)不在設(shè)置范圍,則認(rèn)為監(jiān)測(cè)數(shù)據(jù)有誤,作為
第二優(yōu)先級(jí)故障,濕度有誤則將故障代碼置為11,溫度有誤則將故障代碼置為12,均出錯(cuò)則將故障代碼置為13。當(dāng)出現(xiàn)溫度小于10℃且濕度小于15%情況時(shí),將100寫(xiě)入故障代碼,用以提醒露點(diǎn)偏差較大。
2.4建立PLC與DCS的通信
在PLC端建立ModbusTCP從站遠(yuǎn)傳DB塊數(shù)據(jù),在FC塊執(zhí)行完成后執(zhí)行。
在DCS端建立ModbusTCP主站,考慮到運(yùn)存負(fù)擔(dān)和氣象變化速率,可以設(shè)置為每5s讀取一次從站數(shù)據(jù),且接收數(shù)據(jù)長(zhǎng)度剛好為有效數(shù)據(jù)長(zhǎng)度。
Modbus主站中通信端口配置為502,從站通信端口號(hào)為避免與其他通信協(xié)議的沖突,建議設(shè)置到2000以上。
從站傳輸字節(jié)長(zhǎng)度必須大于有效數(shù)據(jù)字節(jié)長(zhǎng)度,且小于總的DB塊內(nèi)的數(shù)據(jù)長(zhǎng)度,否則會(huì)出現(xiàn)通信失敗的情況。
目前工業(yè)應(yīng)用中,以太網(wǎng)已經(jīng)普遍采用千兆網(wǎng)線,因其實(shí)際數(shù)據(jù)量小,傳輸時(shí)間可以忽略不計(jì)。
2.5PLC端看門(mén)狗設(shè)置
對(duì)于西門(mén)子s7-1200型PLC而言,看門(mén)狗時(shí)長(zhǎng)一般為150ms,在濕球溫度計(jì)算時(shí),因?yàn)閳?zhí)行次數(shù)較多很容易超時(shí)導(dǎo)致運(yùn)行時(shí)停機(jī),所以還需加大看門(mén)狗時(shí)長(zhǎng)。
首先屏蔽掉通信程序,將看門(mén)狗時(shí)間調(diào)整到最大值避免仿真錯(cuò)誤,下裝配置和程序到PLCsIM上仿真運(yùn)行,手動(dòng)賦予溫度與濕度值,直到其出現(xiàn)循環(huán)次數(shù)達(dá)到3251的情況。觀察此時(shí)程序的運(yùn)行時(shí)間A。PLC看門(mén)狗時(shí)間推薦按以下要求配置:
(1)看門(mén)狗時(shí)間>運(yùn)行時(shí)間A+Modbus485通信時(shí)長(zhǎng):
(2)看門(mén)狗時(shí)間<運(yùn)行時(shí)間A+Modbus485通信時(shí)長(zhǎng)+100ms:
(3)最好為100ms的整數(shù)倍。
確定好看門(mén)狗時(shí)間后,將硬件配置下裝程序到PLC中。
2.6DCS端數(shù)據(jù)處理
在DCS端把與PLC的通信中斷和故障代碼1、11、12、13作為二級(jí)報(bào)警,把故障代碼100作為三級(jí)報(bào)警,分別配置報(bào)警聲音和報(bào)警描述,出現(xiàn)二級(jí)報(bào)警后應(yīng)立即把聯(lián)控程序維持在最后運(yùn)行狀態(tài),避免系統(tǒng)動(dòng)蕩。同時(shí),建立其他氣象數(shù)據(jù)的報(bào)警上下限,用于判斷現(xiàn)場(chǎng)的傳感器故障。調(diào)試時(shí)人為激發(fā)報(bào)警測(cè)試功能是否正常。
氣象站的數(shù)據(jù)按照說(shuō)明直接整除即可。
露點(diǎn)溫度和濕球溫度屬于rea1型變量,占用了兩個(gè)保持寄存器,需要在DCS端按以下方法得到實(shí)際結(jié)果:
(1)將高字節(jié)與低字節(jié)轉(zhuǎn)換成DINT變量:
(2)將高字節(jié)結(jié)果乘以35536后與低字節(jié)相加,把得到的結(jié)果轉(zhuǎn)成Dword變量:
(3)將Dword變量轉(zhuǎn)換成rea1變量。
數(shù)據(jù)處理完成后在所需位置建立氣象站畫(huà)面,對(duì)每一個(gè)數(shù)據(jù)添加歷史曲線以供查閱。
3結(jié)語(yǔ)
該應(yīng)用方法實(shí)際成本不到一套露點(diǎn)儀的一半,目前應(yīng)用已超過(guò)5個(gè)月,在應(yīng)用過(guò)程中尚未發(fā)現(xiàn)任何問(wèn)題。但露點(diǎn)溫度只有在較高濕度和較高溫度條件下才能保證數(shù)據(jù)準(zhǔn)確,后續(xù)還需要尋找出低溫低濕的可靠計(jì)算方法對(duì)其進(jìn)行分段計(jì)算。