• 
    

    
    

      99热精品在线国产_美女午夜性视频免费_国产精品国产高清国产av_av欧美777_自拍偷自拍亚洲精品老妇_亚洲熟女精品中文字幕_www日本黄色视频网_国产精品野战在线观看 ?

      LabVIEW和PLC技術(shù)在燃煤鍋爐自動(dòng)控制系統(tǒng)中的應(yīng)用研究

      2014-03-21 12:23:25徐桂華徐保國(guó)
      儀表技術(shù)與傳感器 2014年5期
      關(guān)鍵詞:組態(tài)串口應(yīng)用程序

      徐桂華,徐保國(guó)

      (江南大學(xué)物聯(lián)網(wǎng)工程學(xué)院,江蘇無錫 214122)

      1 燃煤鍋爐系統(tǒng)工藝流程分析

      燃煤鍋爐系統(tǒng)主要由:給水系統(tǒng)、燃料系統(tǒng)、蒸汽系統(tǒng)、燃燒系統(tǒng)、風(fēng)煙系統(tǒng)和排污系統(tǒng)等部分構(gòu)成[1],系統(tǒng)流程如圖1和圖2所示。首先用點(diǎn)燃的木柴對(duì)爐膛預(yù)熱,此過程成為烘爐,烘爐的目的是為了脫除襯里中的自然水和結(jié)晶水。烘爐結(jié)束后,將煤粉通過傳輸帶、煤斗運(yùn)送到爐排上開始燃燒,燃燒過程中,引風(fēng)機(jī)不斷地將煙氣經(jīng)過除塵器處理后通過煙囪排出來,鼓風(fēng)機(jī)用來增加爐膛內(nèi)的含氧量,使煤充分燃燒,水泵將凈化處理后的軟水通過省煤器傳送到鍋筒,鍋筒內(nèi)的水經(jīng)過加熱,產(chǎn)生汽水混合物,傳送到汽包,通過汽包內(nèi)的汽水分離器,將蒸汽傳送到白酒生產(chǎn)車間。

      2 系統(tǒng)的自動(dòng)化設(shè)計(jì)與實(shí)現(xiàn)

      2.1軟硬件配置

      2.1.1硬件配置

      硬件配置包括SIMATIC工控機(jī),PLC S7-300 (CPU315-2DP),引風(fēng)機(jī),鼓風(fēng)機(jī),水泵等電機(jī),變頻器,變送器,CP5611卡,氧化鋯煙氧含量傳感器,壓力傳感器,液位傳感器等。其中CP5611卡用于實(shí)現(xiàn)上位機(jī)與PLC的PROFIBUS通訊;各類傳感器實(shí)時(shí)采集數(shù)據(jù),通過變送器實(shí)時(shí)顯示、并將測(cè)量值變送為4~20 mA的標(biāo)準(zhǔn)電流信號(hào)輸出給PLC的AI模塊;變頻器連接引風(fēng)機(jī)、鼓風(fēng)機(jī)和水泵,通過改變電機(jī)工作電源頻率來控制其運(yùn)行。

      2.1.2軟件配置

      圖1 鍋爐風(fēng)、煤、煙、渣系統(tǒng)框圖

      圖2 鍋爐汽、水系統(tǒng)框圖

      LabVIEW 2011:為上位機(jī)編程軟件;SIMATIC NET PC SOFTWARE V6.5:用于在工控機(jī)上通過PROFIBUS建立OPC服務(wù)器;STEP 7 V5.4:對(duì)PLC進(jìn)行硬件組態(tài)及軟件編程,并組態(tài)OPC服務(wù)器。

      2.2系統(tǒng)總體構(gòu)成

      系統(tǒng)總體結(jié)構(gòu)如圖3所示,系統(tǒng)運(yùn)行時(shí),安裝在爐膛內(nèi)的壓力傳感器、煙氧含量傳感器、溫度傳感器,鍋筒內(nèi)的液位傳感器以及汽包內(nèi)的蒸汽壓力傳感器實(shí)時(shí)采集數(shù)據(jù),將數(shù)據(jù)傳送給變送器,變送器將采集到的信號(hào)轉(zhuǎn)換成4~20mA的電流信號(hào)輸出給PLC的AI模塊,PLC通過PROFIBUS總線傳送數(shù)據(jù)至上位機(jī)。基于LabVIEW開發(fā)的上位機(jī)軟件通過DataSocket技術(shù)對(duì)OPC Server訪問,從而讀取PLC上所有開關(guān)量和模擬量數(shù)據(jù),并根據(jù)用戶預(yù)設(shè)的控制要求,通過RS485總線方式控制變頻器頻率,進(jìn)而調(diào)節(jié)引風(fēng)機(jī)、鼓風(fēng)機(jī)以及水泵的運(yùn)行速度。利用變頻器調(diào)節(jié)引風(fēng)機(jī)、鼓風(fēng)機(jī)和水泵這3個(gè)主要電機(jī),極大的節(jié)約了能源、提高了鍋爐運(yùn)行效率。

      圖3 系統(tǒng)總體結(jié)構(gòu)圖

      3 系統(tǒng)軟件設(shè)計(jì)

      3.1LabVIEW與PLC之間的通訊

      LabVIEW與PLC之間通過PROFIBUS-DP總線技術(shù)通訊[2-3],由于LabVIEW和PLC編程軟件來自不同的廠商,我們采用OPC SERVER來建立這兩者間的通信連接。OPC(OLE for Process Control) 是一個(gè)工業(yè)標(biāo)準(zhǔn),利用它可以將不同開發(fā)商研發(fā)的驅(qū)動(dòng)程序與應(yīng)用軟件有機(jī)的集成或連接起來。OPC規(guī)范了接口函數(shù),不管現(xiàn)場(chǎng)設(shè)備以何種形式存在,客戶都以統(tǒng)一的方式去訪問,從而保證軟件對(duì)客戶的透明性。LabVIEW與PLC實(shí)時(shí)通信的實(shí)現(xiàn)步驟如下:

      3.1.1OPC Server的組態(tài)

      安裝完CP5611卡和SIMATIC NET軟件后,點(diǎn)擊Station Configuration Eidtior,配置其窗口,在一號(hào)槽中插入OPC Server,在3號(hào)槽中插入CP5611并配置PROFIBUS通信的參數(shù),設(shè)置地址為3、波特率為1.5 M、Bus profile為DP,點(diǎn)擊“Station Name”按鈕指定PC站的名稱為“Coal-fired Boiler”確認(rèn)后即完成PC站的硬件組態(tài)。

      3.1.2配置控制臺(tái)(Configuration Console)的設(shè)置

      配置控制臺(tái)是PC機(jī)組態(tài)設(shè)置和診斷的核心工具,在完成PC機(jī)的硬件配置后,打開配置控制臺(tái),如果CP5611沒有轉(zhuǎn)變成Configuration Mode,則手動(dòng)將其轉(zhuǎn)變?yōu)镃onfiguration Mode,此外在Access Points設(shè)置窗口中將S7ONLINE指向PC internal(local),此設(shè)置是為PC站組態(tài)的下載做準(zhǔn)備。

      3.1.3在Step7中組態(tài)PC Station

      打開SIMATIC Manager新建一個(gè)項(xiàng)目,插入一個(gè)PC站,注意此PC站的名稱要與在OPC服務(wù)器里組態(tài)的PC站名稱一致,在硬件組態(tài)中,PC硬件機(jī)架的配置選擇與在Simatic Net中硬件組態(tài)相同,雙擊CP5611打開其屬性對(duì)話框,設(shè)置PROFIBUS 地址和波特率與步驟(1)中一致,并進(jìn)行編譯下載,這一步完成后,進(jìn)入NETPro相應(yīng)界面,選擇OPC服務(wù)器,點(diǎn)擊右鍵插入一個(gè)新的連接,在S7連接屬性對(duì)話框中對(duì)Profibus地址進(jìn)行相應(yīng)的配置,編譯并下載到PC機(jī)上,在Step7上對(duì)S7-300PLC進(jìn)行組態(tài),組態(tài)完成后下載到PLC上。

      3.1.4OPC Scout中變量的設(shè)定

      OPC Scout是OPC Server中用于調(diào)試OPC通信的軟件,在OPC Scout中可以定義與PLC連接的變量,在OPC Scout的左框圖雙擊 OPC SimaticNET建立一個(gè)組,然后雙擊組名進(jìn)入OPC-Navigator界面,雙擊Connection,在PLC的存儲(chǔ)區(qū)建立需要監(jiān)控的變量。

      3.1.5LabVIEW與PLC通訊的建立

      設(shè)計(jì)使用DataSocket技術(shù),DataSocket技術(shù)是面向測(cè)控領(lǐng)域的網(wǎng)絡(luò)通訊技術(shù),用于共享和發(fā)布實(shí)時(shí)數(shù)據(jù),能支持本地計(jì)算機(jī)上不同應(yīng)用程序?qū)μ囟〝?shù)據(jù)的同時(shí)應(yīng)用,DataSocket中隱含著OPC client可通過該OPC client與OPC server進(jìn)行通訊,通過訪問OPC Server實(shí)現(xiàn)上位機(jī)與PLC的通訊。DataSocket以URL的方式訪問服務(wù)器數(shù)據(jù)項(xiàng)目,訪問OPC的URL基本結(jié)構(gòu)為:OPC://主機(jī)名//OPC服務(wù)器名/數(shù)據(jù)項(xiàng)目。程序框圖如圖4所示,其中l(wèi)ocalhost為主機(jī)名,S7 connection_1是組態(tài)PROFIBUS網(wǎng)絡(luò)、定義S7連接時(shí)系統(tǒng)默認(rèn)的ID名稱,IB0、 PIW128為所需讀取的存儲(chǔ)區(qū)首地址。

      圖4 LabVIEW與PLC通訊程序框圖

      3.2LabVIEW與稱重儀表通訊的實(shí)現(xiàn)

      根據(jù)要求,將每次消耗的煤粉重量在上位機(jī)上顯示出來,稱重儀表通過RS485總線的方式與上位機(jī)通訊,在LabVIEW中實(shí)現(xiàn)串口通訊主要有2種途徑:一是利用其自身的VISA驅(qū)動(dòng)程序;二是利用標(biāo)準(zhǔn)串口通訊函數(shù)[4-5]。

      文中利用標(biāo)準(zhǔn)串口通訊函數(shù)在VC++中開發(fā)動(dòng)態(tài)鏈接庫(kù)函數(shù)(DLL)供LabVIEW調(diào)用實(shí)現(xiàn)串口通訊。動(dòng)態(tài)鏈接庫(kù)是在應(yīng)用程序運(yùn)行時(shí)被裝入和鏈接的,而不是把源代碼復(fù)制到應(yīng)用程序中去,因此使用動(dòng)態(tài)鏈接庫(kù)可以實(shí)現(xiàn)多個(gè)應(yīng)用程序之間代碼和資源的共享,該方法比直接利用VISA驅(qū)動(dòng)實(shí)現(xiàn)通訊方式更加的靈活,而且節(jié)省了內(nèi)存和購(gòu)買VISA模塊的費(fèi)用。

      3.2.1基于VC++的串口讀寫動(dòng)態(tài)鏈接庫(kù)函數(shù)開發(fā)

      串口通訊函數(shù)庫(kù)中包含comInit、comRead、comWrite 3個(gè)函數(shù),分別負(fù)責(zé)對(duì)串口進(jìn)行初始化及讀寫任務(wù)。

      在使用串口進(jìn)行讀寫操作時(shí),首先需要對(duì)串行端口進(jìn)行一些初始化配置,這是通過設(shè)置設(shè)備控制塊DCB結(jié)構(gòu)體中數(shù)據(jù)成員來實(shí)現(xiàn)的,DCB結(jié)構(gòu)中包含諸如波特率、數(shù)據(jù)位數(shù)、奇偶校驗(yàn)和停止位數(shù)等重要的串口信息,通常在成功打開串口后,應(yīng)用程序可以先調(diào)用GetCommState函數(shù)獲取串行口的當(dāng)前配置信息,再根據(jù)自身要求修改串口配置信息,這是通過修改DCB結(jié)構(gòu)中部分?jǐn)?shù)據(jù)成員的值、調(diào)用SetCommState函數(shù)設(shè)置串口配置信息實(shí)現(xiàn)的。

      除設(shè)置DCB結(jié)構(gòu)外,應(yīng)用程序一般還需要設(shè)置I/O緩沖區(qū)的大小及傳輸超時(shí),Win32系統(tǒng)使用系統(tǒng)I/O緩沖區(qū)來暫存串口的傳輸數(shù)據(jù),如果通訊速率較高,那么應(yīng)用程序應(yīng)該設(shè)置較大的系統(tǒng)I/O緩沖區(qū)。設(shè)置傳輸超時(shí)的作用是:當(dāng)在指定時(shí)間內(nèi)沒有讀取或發(fā)送指定數(shù)量的字符時(shí),ReadFile函數(shù)或WriteFile函數(shù)的操作仍然可以結(jié)束,不會(huì)出現(xiàn)無限等待的情況,該設(shè)置可以通過SetCommTimeouts函數(shù)實(shí)現(xiàn)。

      應(yīng)用程序主要通過ReadFile函數(shù)和WriteFile函數(shù)對(duì)串口進(jìn)行讀寫操作,在讀寫時(shí)采用重疊I/O方式執(zhí)行,采用此方式時(shí),即使讀寫操作尚未完成,這兩個(gè)函數(shù)也會(huì)立即返回,I/O操作留給后臺(tái)處理。需要注意的是:在完成串口讀寫操作后需要關(guān)閉串口,否則串口將一直被暫用,下次將無法打開串口,關(guān)閉串口非常簡(jiǎn)單,只需使用CreateFile函數(shù)返回的句柄作為參數(shù)調(diào)用CloseHandle函數(shù)即可。具體程序如下所示:

      MFCDLL_API int comRead (int *data,int n,int Number)

      //*data存放返回的模擬量值,n連續(xù)讀取儀表數(shù)量,Number指定的串口號(hào)

      { int i;

      HANDLE hcomm1;//串口句柄

      DWORD dw=0,rec=0;//實(shí)際讀寫操作時(shí)讀取和寫入的字節(jié)數(shù)

      unsigned char strsend[8]={0};//寫串口指令組

      unsigned char strrece[10]={0};//儀表返回指令組

      char str[4];//設(shè)置串口編號(hào)

      sprintf(str,"COM%d",Number);

      hcomm1=CreateFile(str,GENERIC_READ|GENERIC_WRITE,0,NULL,OPEN_EXISTING,0,NULL);//打開串口

      if (hcomm1==(HANDLE)-1) {return -12;}

      for (i=0;i

      {strsend[0]=0x80+(unsigned char)i+1;//地址+80H

      strsend[1]=0x80+(unsigned char)i+1;

      strsend[2]=0x52;//儀表讀標(biāo)志

      strsend[3]=1;//

      strsend[4]=0;

      strsend[5]=0;

      strsend[6]=(strsend[3]*256+82+strsend[0]-128)%256;//計(jì)算CRC校驗(yàn)碼

      strsend[7]=(strsend[3]*256+82+strsend[0]-128)/256;

      if(!WriteFile(hcomm1,strsend,8,&dw,NULL)) return -1;//寫入串口

      if(!ReadFile(hcomm1,strrece,10,&rec,NULL)) return -1;//讀取儀表返回值

      else

      { unsigned int check;

      check=(unsigned char)strrece[1]*256+(unsigned char)strrece[0];

      check+=(unsigned char)strrece[3]*256+(unsigned char)strrece[2];

      check+=(unsigned char)strrece[5]*256+(unsigned char)strrece[4];

      check+=(unsigned char)strrece[7]*256+(unsigned char)strrece[6];

      check+=(unsigned char)strsend[0]-128;

      if((unsigned char)strrece[8]==check%256 &&

      (unsigned char)strrece[9]==check/256)

      {data[i] = (unsigned char)strrece[0]+strrece[1]*256;}

      else

      data[i]=8888;//校驗(yàn)錯(cuò)誤,返回校驗(yàn)失敗標(biāo)志8888

      }

      }

      CloseHandle(hcomm1);//關(guān)閉串口

      return 11;//讀取成功,返回成功標(biāo)志11

      }

      3.2.2基于DLL技術(shù)的LabVIEW與稱重儀表通信的實(shí)現(xiàn)

      LabVIEW中調(diào)用動(dòng)態(tài)鏈接庫(kù)是通過CLF節(jié)點(diǎn)實(shí)現(xiàn)的,即調(diào)用庫(kù)函數(shù)節(jié)點(diǎn)(Call Library Function),位于“函數(shù)→互連接口→庫(kù)與可執(zhí)行程序”中,使用前首先需要雙擊對(duì)其進(jìn)行配置 。在選擇好“庫(kù)名/路徑”后,在函數(shù)名中將出現(xiàn)上文編譯DLL庫(kù)文件時(shí)所定義好的3個(gè)函數(shù),即comInit、comRead、comWrite,選擇相應(yīng)需要的函數(shù)并在參數(shù)欄中對(duì)其輸入輸出參數(shù)進(jìn)行設(shè)置,各輸入輸出的數(shù)據(jù)類型及含義和DLL函數(shù)庫(kù)中所定義的對(duì)應(yīng)函數(shù)一致。另外,需要注意的是在該設(shè)置窗口的函數(shù)一欄中需將線程設(shè)置為“在任意線程中運(yùn)行”,否則上位機(jī)在對(duì)串口進(jìn)行讀寫操作時(shí)將獨(dú)占線程,致使其他線程無法正常響應(yīng),進(jìn)而易造成程序假死現(xiàn)象。成功設(shè)置好CLF節(jié)點(diǎn)后即可進(jìn)行串口讀寫操作,LabVIEW讀取稱重儀表數(shù)據(jù)程序框圖如圖5所示。

      圖5 LabVIEW讀取稱重儀表數(shù)據(jù)

      4 結(jié)束語(yǔ)

      文中設(shè)計(jì)并實(shí)現(xiàn)了一種基于LabVIEW 和PLC技術(shù)的燃煤鍋爐自動(dòng)控制系統(tǒng)。創(chuàng)新利用了DLL技術(shù)實(shí)現(xiàn)稱重儀表與上位機(jī)的通信,節(jié)約了系統(tǒng)資源、提高了系統(tǒng)靈活性。實(shí)踐證明:該系統(tǒng)不僅有助于提高鍋爐生產(chǎn)效率和資源利用率,而且對(duì)于推進(jìn)節(jié)能減排的發(fā)展有著重要的影響。

      參考文獻(xiàn):

      [1]張曉梅.燃煤鍋爐機(jī)組.北京:中國(guó)電力出版社,2006.

      [2]曾珞亞.基于OPC技術(shù)的PLC與LabVIEW通信實(shí)現(xiàn).微計(jì)算機(jī)信息,2009,25(6-1):52-54.

      [3]徐國(guó)強(qiáng),陳樹,徐保國(guó),等.黃酒前酵自控系統(tǒng)的研究與應(yīng)用.自動(dòng)化儀表,2011,32(2):31-33.

      [4]陶以政,潘振顯.怎樣在LabVIEW中調(diào)用Win32動(dòng)態(tài)鏈接庫(kù)(DLLs).計(jì)算機(jī)應(yīng)用,2000,20(6):72-73.

      [5]王蘭省,李振海.虛擬儀器系統(tǒng)開發(fā)技術(shù).測(cè)控技術(shù),1999,18(4):58-59.

      猜你喜歡
      組態(tài)串口應(yīng)用程序
      淺談AB PLC串口跟RFID傳感器的通訊應(yīng)用
      基于PLC及組態(tài)技術(shù)的恒溫控制系統(tǒng)開發(fā)探討
      刪除Win10中自帶的應(yīng)用程序
      基于PLC和組態(tài)的智能電動(dòng)擰緊系統(tǒng)
      PLC組態(tài)控制在水箱控制系統(tǒng)的應(yīng)用
      USB接口的多串口數(shù)據(jù)并行接收方法探索
      基于藍(lán)牙串口適配器的GPS接收機(jī)與AutoCAD的實(shí)時(shí)無線通信
      鑄造行業(yè)三維組態(tài)軟件的應(yīng)用
      基于并行控制的FPGA多串口拓展實(shí)現(xiàn)
      關(guān)閉應(yīng)用程序更新提醒
      電腦迷(2012年15期)2012-04-29 17:09:47
      昌平区| 东光县| 陆良县| 聂荣县| 东乌珠穆沁旗| 武夷山市| 交口县| 永济市| 开原市| 东山县| 上饶县| 镇平县| 玉门市| 兴宁市| 秭归县| 上思县| 清新县| 北碚区| 开江县| 中江县| 博罗县| 大石桥市| 武安市| 和硕县| 同心县| 凤城市| 久治县| 长宁县| 邳州市| 和田县| 万宁市| 池州市| 宁河县| 五华县| 武威市| 西林县| 大庆市| 华蓥市| 石渠县| 西安市| 勃利县|