基于PAC的儲(chǔ)油罐智能監(jiān)控節(jié)點(diǎn)設(shè)計(jì)
2.2.2.2標(biāo)準(zhǔn)體積
由液位值,查看罐容積表獲得油品在t時(shí)的實(shí)測(cè)體積,根據(jù)t時(shí)油品體積修正系數(shù),計(jì)算出標(biāo)準(zhǔn)體積‰,其計(jì)算公式為
式中:Vt為溫度t時(shí)的油品實(shí)測(cè)體積;K為油品體積修正系數(shù),
可根據(jù)GB/T 1885--1998查得。
2.2.2.3質(zhì)量
根據(jù)標(biāo)準(zhǔn)密度p20和標(biāo)準(zhǔn)體V20,采用空氣浮力修正值即可以算出油品質(zhì)量。計(jì)算公式為
式中:m為油品質(zhì)量;P20油品20℃下的標(biāo)準(zhǔn)密度;V20油品20℃下的標(biāo)準(zhǔn)體積;O.001 1為對(duì)油品密度的空氣浮力修正值。
2.3硬件配置
智能節(jié)點(diǎn)采用以PAC為主體的組合式模塊,如圖5所示控制工程網(wǎng)版權(quán)所有,主要包括CPU和I/O模塊。CPU模塊選用WinCon-8337∞。,采用206 MHz CPU,存儲(chǔ)器為工業(yè)級(jí)512M CF卡,此外,模塊還帶有1個(gè)以太網(wǎng)接口、1個(gè)RS-232接口、1個(gè)RS-485接121、1個(gè)USB接口、2個(gè)PS/2接口以及3個(gè)I/O擴(kuò)展槽;I/O模塊選用8路模擬量采集模塊1-87017和8路通用開(kāi)關(guān)量模塊1-8063。
2.4數(shù)據(jù)采集程序設(shè)計(jì)
利用Visual Basic.Net來(lái)開(kāi)發(fā)數(shù)據(jù)采集程序。選用的win-Con-8000系列PAC產(chǎn)品采用Windows CE.NET作為操作系統(tǒng),針對(duì)此系列產(chǎn)品提供了多種API接口函數(shù),如I/O模塊訪問(wèn)API、iPush組件、Modbus API等,利用這些動(dòng)態(tài)鏈接庫(kù)(DEE)可以方便地在Visual Basic.Net中開(kāi)發(fā)應(yīng)用程序。
通過(guò)應(yīng)用Wincon.DLL中提供的I/O函數(shù),完成對(duì)模擬量輸入模塊、數(shù)字量輸A/輸出模塊的數(shù)據(jù)采集怕J。根據(jù)I/O模塊的插槽號(hào)(slot)、通道號(hào)(channel),調(diào)用相應(yīng)的I/O庫(kù)函數(shù),來(lái)讀取液位、壓力、溫度、油氣濃度等參數(shù)以及控制輸出。主要代碼如下:
Wcon.i87017.Analogln(slot2,0,High)’讀取模塊1-87017第0通道值,并賦予變量“HiglI”
Wcon.i87017.A蒯ostn(slot2。1,Pressl)’讀取壓力1值
Wcon.$7017.Amlogh(slot2,2,Pr%2)’讀取壓力2值
Weon.$7017.Analogtn(slot2,3,Temp)’讀取溫度值
Wcon.$7017.,halogln(8№,5,oil)’讀取油氣濃度值
Wcon.$063.DIO_DO_8(slot3,1)’控制相應(yīng)的閥門(mén)開(kāi)
Wcon.i8063.DIO_DOJ(slot3,0)’控制相應(yīng)的閥門(mén)關(guān)
2.5通信程序設(shè)計(jì)
考慮到整體的傳輸速度和網(wǎng)絡(luò)開(kāi)銷(xiāo),采用基于UDP的通信傳輸協(xié)議,用數(shù)據(jù)報(bào)Socket進(jìn)行數(shù)據(jù)交換;同時(shí)為了增強(qiáng)傳輸?shù)目煽啃裕跀?shù)據(jù)報(bào)中加入數(shù)據(jù)校驗(yàn)。
2.5.1通信模式
監(jiān)控主機(jī)與各智能節(jié)點(diǎn)之間的通信采用基于UDP的客戶(hù)/服務(wù)器模式:監(jiān)控主機(jī)為客戶(hù)端www.cechina.cn,輪流訪問(wèn)各智能節(jié)點(diǎn),讀取各點(diǎn)的信息參數(shù);各智能節(jié)點(diǎn)為服務(wù)器,為監(jiān)控主機(jī)提供數(shù)據(jù)訪問(wèn)服務(wù)。
智能節(jié)點(diǎn)和監(jiān)控主機(jī)的通信流程如圖6所示,其基本通信過(guò)程如下:在智能節(jié)點(diǎn)端,先創(chuàng)建UDP數(shù)據(jù)報(bào)類(lèi)型套接字,然后調(diào)用bind()函數(shù)給此套接字綁定一個(gè)端口,再通過(guò)調(diào)用recvfrom()函數(shù)在指定的端口等待監(jiān)控主機(jī)發(fā)送來(lái)的UDP數(shù)據(jù)報(bào);接收到套接字后,對(duì)數(shù)據(jù)報(bào)內(nèi)容進(jìn)行解讀,再調(diào)用sendto()函數(shù)將本節(jié)點(diǎn)的信息參數(shù)發(fā)送給監(jiān)控主機(jī)。
2.5.2數(shù)據(jù)校驗(yàn)
數(shù)據(jù)包中包括ASCII碼數(shù)據(jù)串和數(shù)據(jù)校驗(yàn)串,以數(shù)據(jù)串“$1.8659$1.1594$1.0131$23.91$0%$”和校驗(yàn)串“63253”為例,主要校驗(yàn)方法如下所示:
(1)求ASCII碼數(shù)據(jù)串的校驗(yàn)和(Hex)
CheckSum=24+3l+FA+38+36+35+39+24+31+
FA+3l+35+39+34+24+31+FA+30+31+33+31+24+
32+33+FA+39+31+24+30+25+24=08EB Hex;
(2)將ASCII碼校驗(yàn)串“63253”轉(zhuǎn)換為2字節(jié)16進(jìn)制校驗(yàn)碼CSH=63253 Decimal="耵15" Hex;
(3)不考慮溢出,將校驗(yàn)和與校驗(yàn)碼相加Check·Sum+CSH=08EB Hex+F715 Hex="0000" Hex。上式結(jié)果為0,主機(jī)可確認(rèn)本次接收數(shù)據(jù)可靠。反之,要求重新發(fā)送。
3結(jié)束語(yǔ)
基于PAC的儲(chǔ)油罐智能節(jié)點(diǎn)已經(jīng)在某數(shù)字化油庫(kù)實(shí)驗(yàn)室的模擬儲(chǔ)油罐區(qū)中投入使用。從實(shí)際運(yùn)行情況看,采用PAC的儲(chǔ)油罐智能節(jié)點(diǎn)具有開(kāi)發(fā)周期短,現(xiàn)場(chǎng)數(shù)據(jù)處理能力強(qiáng),系統(tǒng)水平和垂直集成難度小的優(yōu)點(diǎn)。
液位計(jì)相關(guān)文章:磁翻板液位計(jì)原理
評(píng)論