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