<meter id="pryje"><nav id="pryje"><delect id="pryje"></delect></nav></meter>
          <label id="pryje"></label>

          新聞中心

          EEPW首頁 > 嵌入式系統(tǒng) > 設(shè)計(jì)應(yīng)用 > 基于PAC的儲油罐智能監(jiān)控節(jié)點(diǎn)設(shè)計(jì)

          基于PAC的儲油罐智能監(jiān)控節(jié)點(diǎn)設(shè)計(jì)

          作者: 時(shí)間:2012-08-18 來源:網(wǎng)絡(luò) 收藏

            2.2.2.2標(biāo)準(zhǔn)體積
            由液位值,查看罐容積表獲得油品在t時(shí)的實(shí)測體積,根據(jù)t時(shí)油品體積修正系數(shù),計(jì)算出標(biāo)準(zhǔn)體積‰,其計(jì)算公式為

            式中:Vt為溫度t時(shí)的油品實(shí)測體積;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為對油品密度的空氣浮力修正值。
            2.3硬件配置

            采用以為主體的組合式模塊,如圖5所示控制工程網(wǎng)版權(quán)所有,主要包括CPU和I/O模塊。CPU模塊選用WinCon-8337∞。,采用206 MHz CPU,存儲器為工業(yè)級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路通用開關(guān)量模塊1-8063。
            2.4數(shù)據(jù)采集程序設(shè)計(jì)
            利用Visual Basic.Net來開發(fā)數(shù)據(jù)采集程序。選用的win-Con-8000系列產(chǎn)品采用Windows CE.NET作為操作系統(tǒng),針對此系列產(chǎn)品提供了多種API接口函數(shù),如I/O模塊訪問API、iPush組件、Modbus API等,利用這些動態(tài)鏈接庫(DEE)可以方便地在Visual Basic.Net中開發(fā)應(yīng)用程序。
            通過應(yīng)用Wincon.DLL中提供的I/O函數(shù),完成對模擬量輸入模塊、數(shù)字量輸A/輸出模塊的數(shù)據(jù)采集怕J。根據(jù)I/O模塊的插槽號(slot)、通道號(channel),調(diào)用相應(yīng)的I/O庫函數(shù),來讀取液位、壓力、溫度、油氣濃度等參數(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)的閥門開
            Wcon.i8063.DIO_DOJ(slot3,0)’控制相應(yīng)的閥門關(guān)
            2.5通信程序設(shè)計(jì)
            考慮到整體的傳輸速度和網(wǎng)絡(luò)開銷,采用基于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ī)與各之間的通信采用基于UDP的客戶/服務(wù)器模式:監(jiān)控主機(jī)為客戶端www.cechina.cn,輪流訪問各,讀取各點(diǎn)的信息參數(shù);各智能節(jié)點(diǎn)為服務(wù)器,為監(jiān)控主機(jī)提供數(shù)據(jù)訪問服務(wù)。

            智能節(jié)點(diǎn)和監(jiān)控主機(jī)的通信流程如圖6所示,其基本通信過程如下:在智能節(jié)點(diǎn)端,先創(chuàng)建UDP數(shù)據(jù)報(bào)類型套接字,然后調(diào)用bind()函數(shù)給此套接字綁定一個(gè)端口,再通過調(diào)用recvfrom()函數(shù)在指定的端口等待監(jiān)控主機(jī)發(fā)送來的UDP數(shù)據(jù)報(bào);接收到套接字后,對數(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é)束語
            基于智能節(jié)點(diǎn)已經(jīng)在某數(shù)字化油庫實(shí)驗(yàn)室的模擬區(qū)中投入使用。從實(shí)際運(yùn)行情況看,采用PAC的智能節(jié)點(diǎn)具有開發(fā)周期短,現(xiàn)場數(shù)據(jù)處理能力強(qiáng),系統(tǒng)水平和垂直集成難度小的優(yōu)點(diǎn)。

          液位計(jì)相關(guān)文章:磁翻板液位計(jì)原理



          上一頁 1 2 下一頁

          評論


          相關(guān)推薦

          技術(shù)專區(qū)

          關(guān)閉
          看屁屁www成人影院,亚洲人妻成人图片,亚洲精品成人午夜在线,日韩在线 欧美成人 (function(){ var bp = document.createElement('script'); var curProtocol = window.location.protocol.split(':')[0]; if (curProtocol === 'https') { bp.src = 'https://zz.bdstatic.com/linksubmit/push.js'; } else { bp.src = 'http://push.zhanzhang.baidu.com/push.js'; } var s = document.getElementsByTagName("script")[0]; s.parentNode.insertBefore(bp, s); })();