技術(shù)頻道

娓娓工業(yè)
您現(xiàn)在的位置: 中國(guó)傳動(dòng)網(wǎng) > 技術(shù)頻道 > 技術(shù)百科 > 基于LonWorks技術(shù)的動(dòng)態(tài)網(wǎng)絡(luò)監(jiān)控實(shí)現(xiàn)

基于LonWorks技術(shù)的動(dòng)態(tài)網(wǎng)絡(luò)監(jiān)控實(shí)現(xiàn)

時(shí)間:2008-12-09 11:21:55來源:zhangting

導(dǎo)語:?隨著網(wǎng)絡(luò)的迅速發(fā)展,越來越多的工業(yè)控制系統(tǒng)與網(wǎng)絡(luò)結(jié)合,一些工控組態(tài)軟件也紛紛推出了對(duì)網(wǎng)絡(luò)的支持。
1 引言 隨著網(wǎng)絡(luò)的迅速發(fā)展,越來越多的工業(yè)控制系統(tǒng)與網(wǎng)絡(luò)結(jié)合,一些工控組態(tài)軟件也紛紛推出了對(duì)網(wǎng)絡(luò)的支持。通過網(wǎng)絡(luò)進(jìn)行遠(yuǎn)程數(shù)據(jù)采集已經(jīng)成為可能,而且在一些領(lǐng)域已經(jīng)得到了應(yīng)用。目前得到運(yùn)用的遠(yuǎn)程數(shù)據(jù)采集方法多采用client/serve結(jié)構(gòu),必須編寫客戶端程序和服務(wù)器程序,通過tcp套接字傳遞數(shù)據(jù)。這固然是一種高效的方法,但卻存在如下不足:對(duì)網(wǎng)絡(luò)要求高,一旦網(wǎng)絡(luò)出現(xiàn)暫時(shí)堵塞等小問題,系統(tǒng)就無法正確工作;手工編程難度大,一般只能在局域網(wǎng)內(nèi)部使用;客戶端和服務(wù)器端必須安裝軟件。由于這些不足,使得基于網(wǎng)絡(luò)的遠(yuǎn)程數(shù)據(jù)采集無法迅速推廣。本文介紹一種基于browser/server結(jié)構(gòu)的遠(yuǎn)程數(shù)據(jù)采集方法。 2 遠(yuǎn)程數(shù)據(jù)采集采用的通信技術(shù) 以太網(wǎng)技術(shù)從出現(xiàn)到現(xiàn)在的近20年中得到了飛速發(fā)展,先后出現(xiàn)了十兆網(wǎng)、百兆網(wǎng)、千兆網(wǎng),其應(yīng)用領(lǐng)域也從最初的辦公自動(dòng)化發(fā)展到工業(yè)控制、樓宇自動(dòng)化領(lǐng)域。 以太網(wǎng)使用tcp/ip協(xié)議,這是個(gè)跨平臺(tái)的通信協(xié)議,它既能用于局域網(wǎng)也能用于廣域網(wǎng),可方便地實(shí)現(xiàn)異種機(jī)之間的互聯(lián)?;谝陨显颍跇怯钭詣?dòng)化和工業(yè)控制等領(lǐng)域,網(wǎng)絡(luò)集成是人們常常希望將以太網(wǎng)作為主干網(wǎng),以太網(wǎng)之下用現(xiàn)場(chǎng)總線或485總線等將前端設(shè)備連在一起。這樣可以使兩者優(yōu)勢(shì)互補(bǔ),使網(wǎng)絡(luò)集成應(yīng)用更加靈活與方便。 socket支持面向連接和無連接的編程模型,如圖1所示。
[img=347,300]http://www.ca800.com/maga/images/2003101616515398565.gif[/img]
圖1
[img=450,259]http://www.ca800.com/maga/images/2003101616523991408.gif[/img]
下面對(duì)編程模型的各個(gè)系統(tǒng)調(diào)用結(jié)構(gòu)和有關(guān)重要函數(shù)調(diào)用作一簡(jiǎn)單介紹。 以下是有關(guān)重要函數(shù)調(diào)用格式及說明,如圖2所示。 (1) 創(chuàng)建socket—socketcreate() 調(diào)用格式為: socketid= socketcreate(ntype) 說明:返回值socketid是一個(gè)整數(shù),即socket號(hào);ntype:類型,指創(chuàng)建socket的應(yīng)用程序所希望的服務(wù)協(xié)議類型(tcp或udp)。 (2) 指定本地地址—bind() 調(diào)用格式為: bind(socketid,localip,localport) 說明:localip,本地socket地址;localport,本地端口。 (3) socketlisten()調(diào)用 調(diào)用格式:socketlisten(socketid) 說明:用于面向連接的服務(wù)器,表明愿意接受連接。 (4) 建立連接—socketaccept() 調(diào)用格式: socketaccept(socketid,&dwremoteip) 說明:dwremoteip:指向客戶socket地址結(jié)構(gòu)的指針 (5)發(fā)送數(shù)據(jù)————socketsend() 調(diào)用格式:socketsend(socketid,*pby,nlen) 說明:pbyn:指向發(fā)送緩沖區(qū)的指針,nlen:緩沖區(qū)大小 (6) dsockopen(),dsockclose() 說明:二者直接調(diào)用,分別表示打開、關(guān)閉socket庫。 (7) socketdestory(socketid)表示釋放標(biāo)識(shí)為socketid的socket。 由于采用b/s模式,客戶機(jī)通過瀏覽器訪問服務(wù)器,所以下面僅給出服務(wù)器端socket程序的部分重要語句源碼: / /初始化 if(dsock_open()==false) {printf("unable to initialize socket library "); return 1;} file://創(chuàng)建socket socketid = socketcreate(tcp_socket); if(socketid == invalid_socket) {printf("socketcreate() error "); dsockclose(); return 1;} file://指定本地地址 if(socketbind(socketid,0l,port)==false) { printf("socketbind() error "); return false} file://等待接受連接 if(socketlisten(socketid)==false) {printf("socketlisten() error "); return false;} file://與請(qǐng)求通信的客戶機(jī)建立連接 if(socketaccept(socketid, &dwip)) {datacollect();//數(shù)據(jù)采集略} 3 遠(yuǎn)程數(shù)據(jù)采集中現(xiàn)場(chǎng)總線技術(shù)的使用 在當(dāng)前現(xiàn)場(chǎng)總線產(chǎn)品朝著開放式現(xiàn)場(chǎng)總線技術(shù)發(fā)展的大趨勢(shì)下,我們研制了特別適合國(guó)防工程、智能建筑、工廠自動(dòng)化的基于lonworks技術(shù)和符合lontalk協(xié)議的現(xiàn)場(chǎng)總線測(cè)控網(wǎng)絡(luò)。該網(wǎng)絡(luò)充分利用了lonworks現(xiàn)有的各種成熟的、先進(jìn)的技術(shù)以及方便的開發(fā)手段,因而具有以下突出的特點(diǎn):具有高速1.25mbps和低速78kbps兩種通信速度的網(wǎng)絡(luò)產(chǎn)品可供選擇;支持多種通信介質(zhì)(雙絞線、電力線、無線光纖等);通訊距離長(zhǎng),在78kbps時(shí),在不加中繼器的情況下,可達(dá)2700m,這是一般通信技術(shù)難以達(dá)到的性能指標(biāo);支持多種網(wǎng)絡(luò)拓?fù)浣Y(jié)構(gòu);lontalk協(xié)議封裝了osi參考模型的全部七層協(xié)議,方便了上層應(yīng)用開發(fā);neuron神經(jīng)芯片內(nèi)部封裝了3個(gè)cpu,使應(yīng)用cpu和通信cpu功能相對(duì)獨(dú)立,同時(shí)也簡(jiǎn)化了應(yīng)用,通信的可靠性更有保障;通信網(wǎng)絡(luò)在電氣上是隔離的,保證通信網(wǎng)絡(luò)的安全可靠。 893-lm測(cè)控網(wǎng)絡(luò)的數(shù)據(jù)采集及控制任務(wù)都是由各種功能的智能前端去完成的。為了讓這些通用的智能前端在不同的測(cè)控系統(tǒng)中去完成要求的任務(wù),就必須對(duì)前端進(jìn)相應(yīng)的設(shè)置,這些下載到前端的內(nèi)容稱為對(duì)前端的命令或組態(tài)。上位機(jī)對(duì)前端的操作是通過調(diào)用893-lm網(wǎng)絡(luò)驅(qū)動(dòng)程序提供的api函數(shù)來實(shí)現(xiàn)的,驅(qū)動(dòng)程序提供了windows/nt用戶編程的支持,這些函數(shù)被封裝在dll庫中。安裝驅(qū)動(dòng)程序時(shí),dll函數(shù)庫將自動(dòng)安裝到選定的驅(qū)動(dòng)程序文件夾中。893-lm網(wǎng)卡和前端支持的函數(shù)主要有:網(wǎng)卡通信口地址設(shè)置函數(shù)(lmport)、前端信息讀取函數(shù)(lmtype)、開關(guān)量狀態(tài)采集函數(shù)(lmstate)、模擬量數(shù)值采集函數(shù)(lmnum)、命令發(fā)送函數(shù)(lmcmd)、程序id、芯片id讀取函數(shù)(lmids)、通道模式讀取函數(shù)(lmmode)。 4 動(dòng)態(tài)網(wǎng)頁技術(shù)與遠(yuǎn)程數(shù)據(jù)采集 www使用超文本標(biāo)記語言(html)作為表達(dá)信息的手段,www服務(wù)器用來存放html語言編寫的主頁,用戶通過www瀏覽器(internet explore或netscape等)訪問www服務(wù)器,取回主頁,經(jīng)過瀏覽器解釋后顯示出來。這就是www的基本工作方式。 普通的html語言只支持靜態(tài)的文字、圖片等,也就是說,當(dāng)你訪問一個(gè)站點(diǎn)時(shí),所看到的頁面是不變的。這大大限制了與用戶的交互性,為了彌補(bǔ)這一缺陷,動(dòng)態(tài)網(wǎng)頁應(yīng)運(yùn)而生,如java、cgi、asp等。動(dòng)態(tài)網(wǎng)頁技術(shù)一般都是由在服務(wù)器端運(yùn)行的程序來實(shí)現(xiàn)的,即通過編程產(chǎn)生不同的html網(wǎng)頁并由服務(wù)器發(fā)送到用戶端。動(dòng)態(tài)網(wǎng)頁技術(shù)目前被廣泛應(yīng)用于處理用戶定單、接受數(shù)據(jù)查詢等領(lǐng)域。為了實(shí)現(xiàn)使用普通web瀏覽器進(jìn)行遠(yuǎn)程數(shù)據(jù)采集的目的,我們也必然要用到動(dòng)態(tài)網(wǎng)頁技術(shù)。 因?yàn)榉?wù)器端程序采用c語言編寫,所以這些程序就有了硬件訪問能力,因而也就使得采用動(dòng)態(tài)網(wǎng)頁技術(shù)實(shí)現(xiàn)遠(yuǎn)程數(shù)據(jù)采集成為可能。一個(gè)基于client/serve結(jié)構(gòu)的遠(yuǎn)程數(shù)據(jù)采集系統(tǒng)如圖3所示。用戶在客戶計(jì)算機(jī)上通過客戶端程序與服務(wù)器通信,指揮服務(wù)器上的上所連接的lonworks前端采集數(shù)據(jù),并將結(jié)果發(fā)送到客戶端。如果改成基于 broswer/server結(jié)構(gòu)的遠(yuǎn)程數(shù)據(jù)采集系統(tǒng),則客戶計(jì)算機(jī)就使用普通web瀏覽器發(fā)出采集指令和查看數(shù)據(jù)。
[img=450,141]http://www.ca800.com/maga/images/2003101616541096396.gif[/img]
事實(shí)上,基于dsock的服務(wù)器端程序編寫容易。因?yàn)樗话脩艚缑?,所有的?shù)據(jù)采集由采集子程序完成,輸入命令由服務(wù)器自動(dòng)從客戶端得到,而所有的輸出由服務(wù)器自動(dòng)發(fā)送到用戶瀏覽器,并由瀏覽器負(fù)責(zé)解釋和顯示數(shù)據(jù)。其執(zhí)行流程總是簡(jiǎn)單的讀入命令-程序處理-輸出數(shù)據(jù)。(見圖4)讀入和輸出有著既定dsock規(guī)則,而處理階段則無任何限制。dsock基于dod(department of defense)模型,它提供dsock.lib庫,該庫是一dos tcp/ip庫,為需要在dos環(huán)境下進(jìn)行網(wǎng)絡(luò)應(yīng)用編程的用戶提供網(wǎng)絡(luò)服務(wù)接口。該庫為用戶創(chuàng)建internet應(yīng)用提供c語言函數(shù)調(diào)用,如前所述。dsock在dos環(huán)境下的結(jié)構(gòu)如圖5所示。
[img=450,281]http://www.ca800.com/maga/images/2003101616533761789.gif[/img]
圖4
[img=412,300]http://www.ca800.com/maga/images/2003101616544779268.gif[/img]
現(xiàn)場(chǎng)數(shù)據(jù)通過直接訪問硬件或調(diào)用驅(qū)動(dòng)程序的方式獲得,由于c語言的靈活性可以使采集動(dòng)作得以高效的執(zhí)行。服務(wù)器根據(jù)指定的要求將將采集到的數(shù)據(jù)組織成http流發(fā)送到服務(wù)器。http協(xié)議是一種高層協(xié)議,建立在tcp/ip之上。 由于http不使用持續(xù)連接,使得這種采集方式不適合于連續(xù)采集。一次采集請(qǐng)求只能得到一組數(shù)據(jù),這大大限制了其應(yīng)用范圍。為了解決這一問題,可以采用客戶端牽引的辦法。即在網(wǎng)頁中插入定時(shí)刷新的功能,每隔一段時(shí)間就向服務(wù)器重新發(fā)出采集指令,獲得新數(shù)據(jù)。刷新有兩種方法:一是整個(gè)網(wǎng)頁刷新,二是通過編寫腳本(可用vbscript,javascript)程序,實(shí)現(xiàn)網(wǎng)頁局部?jī)?nèi)容定時(shí)更新。 5 應(yīng)用實(shí)例 我們所開發(fā)的監(jiān)控平臺(tái)由1臺(tái)服務(wù)器和四臺(tái)微機(jī)組成以太網(wǎng),服務(wù)器配有四塊lonworks網(wǎng)卡,也就是,可最多具有4個(gè)lonworks通道,每個(gè)通道最多可掛接16個(gè)893-lm智能測(cè)控前端(見圖6)。整個(gè)系統(tǒng)為瀏覽器/服務(wù)器(b/s)結(jié)構(gòu),服務(wù)器負(fù)責(zé)數(shù)據(jù)采集與儲(chǔ)存、頁面儲(chǔ)存;4臺(tái)微機(jī)作為客戶機(jī),主要提供數(shù)據(jù)顯示、監(jiān)控操作及指令發(fā)送界面。
[img=447,300]http://www.ca800.com/maga/images/2003101616551743936.gif[/img]
服務(wù)器采用基于dos的386模塊,這樣也就有dos與windows網(wǎng)絡(luò)通信的問題。在軟件使用上,我們采用專用于dos 的tcp/ip很好的解決了網(wǎng)絡(luò)通信問題。實(shí)際上,在dos環(huán)境中我們很好的完成了在windows下更易實(shí)現(xiàn)功能(譬如ftp、http、telnet等),并且與windows相比,在完成不太復(fù)雜的任務(wù)時(shí),具有更好的性價(jià)比。下面以tcp通信為例(見圖7)說明dsock與winsock的通信。
[img=382,300]http://www.ca800.com/maga/images/2003101616564171497.gif[/img]
服務(wù)器和客戶機(jī)之間通信采用面向來連接的socket編程模式。在服務(wù)器上,我們利用borland c3.1編寫了服務(wù)器通信程序,完成服務(wù)器通過網(wǎng)絡(luò)與客戶機(jī)之間的數(shù)據(jù)傳送。(通信程序框圖見圖8)數(shù)據(jù)采集部分專門由服務(wù)器端數(shù)據(jù)采集程序完成。 啟動(dòng)與運(yùn)行過程過程:服務(wù)器上電后,自動(dòng)啟動(dòng)定時(shí)采集數(shù)據(jù)程序,啟動(dòng)http協(xié)議服務(wù)程序,
[img=431,300]http://www.ca800.com/maga/images/200310161657911143.gif[/img]
進(jìn)入通信等待狀態(tài);客戶端通過瀏覽器與服務(wù)器進(jìn)行連接,進(jìn)入要求頁面后,網(wǎng)頁定時(shí)刷新(如1s),向服務(wù)器申請(qǐng)服務(wù),服務(wù)器響應(yīng)客戶請(qǐng)求,接收來自客戶端的數(shù)據(jù)放入緩沖數(shù)據(jù)區(qū),同時(shí)將客戶要求的緩沖數(shù)據(jù)區(qū)送往客戶端進(jìn)行數(shù)據(jù)刷新顯示。 6 結(jié)論 利用asp等動(dòng)態(tài)網(wǎng)頁技術(shù)實(shí)現(xiàn)遠(yuǎn)程監(jiān)控是可行的,在實(shí)際工程中達(dá)到了使用通用的web瀏覽器進(jìn)行遠(yuǎn)程數(shù)據(jù)采集/監(jiān)控的目的。這種基于broswer/server結(jié)構(gòu)的數(shù)據(jù)采集/監(jiān)控的方法具有開發(fā)容易、調(diào)試簡(jiǎn)單等優(yōu)點(diǎn),適合于在實(shí)時(shí)性要求不高的場(chǎng)合應(yīng)用。這種方法也可以很容易的移植到互聯(lián)網(wǎng),從而大大擴(kuò)展遠(yuǎn)程數(shù)據(jù)采集、監(jiān)控的范圍。

標(biāo)簽:

點(diǎn)贊

分享到:

上一篇:基于PROFIBUS現(xiàn)場(chǎng)總線的PLC與...

下一篇:微能WIN-V63矢量控制變頻器在...

中國(guó)傳動(dòng)網(wǎng)版權(quán)與免責(zé)聲明:凡本網(wǎng)注明[來源:中國(guó)傳動(dòng)網(wǎng)]的所有文字、圖片、音視和視頻文件,版權(quán)均為中國(guó)傳動(dòng)網(wǎng)(www.treenowplaneincome.com)獨(dú)家所有。如需轉(zhuǎn)載請(qǐng)與0755-82949061聯(lián)系。任何媒體、網(wǎng)站或個(gè)人轉(zhuǎn)載使用時(shí)須注明來源“中國(guó)傳動(dòng)網(wǎng)”,違反者本網(wǎng)將追究其法律責(zé)任。

本網(wǎng)轉(zhuǎn)載并注明其他來源的稿件,均來自互聯(lián)網(wǎng)或業(yè)內(nèi)投稿人士,版權(quán)屬于原版權(quán)人。轉(zhuǎn)載請(qǐng)保留稿件來源及作者,禁止擅自篡改,違者自負(fù)版權(quán)法律責(zé)任。

網(wǎng)站簡(jiǎn)介|會(huì)員服務(wù)|聯(lián)系方式|幫助信息|版權(quán)信息|網(wǎng)站地圖|友情鏈接|法律支持|意見反饋|sitemap

中國(guó)傳動(dòng)網(wǎng)-工業(yè)自動(dòng)化與智能制造的全媒體“互聯(lián)網(wǎng)+”創(chuàng)新服務(wù)平臺(tái)

網(wǎng)站客服服務(wù)咨詢采購(gòu)咨詢媒體合作

Chuandong.com Copyright ?2005 - 2024 ,All Rights Reserved 版權(quán)所有 粵ICP備 14004826號(hào) | 營(yíng)業(yè)執(zhí)照證書 | 不良信息舉報(bào)中心 | 粵公網(wǎng)安備 44030402000946號(hào)