技術頻道

娓娓工業(yè)
您現(xiàn)在的位置: 中國傳動網(wǎng) > 技術頻道 > 應用方案 > 基于工業(yè)以太網(wǎng)的數(shù)據(jù)采集方案實現(xiàn)

基于工業(yè)以太網(wǎng)的數(shù)據(jù)采集方案實現(xiàn)

時間:2008-07-31 11:28:00來源:ronggang

導語:?針對工業(yè)數(shù)據(jù)采集領域的現(xiàn)狀,提出一種新的基于工業(yè)以太網(wǎng)的數(shù)據(jù)采集方案,在工業(yè)過程控制中實現(xiàn)基于Socket套接字的實時數(shù)據(jù)通信
摘 要:針對工業(yè)數(shù)據(jù)采集領域的現(xiàn)狀,提出一種新的基于工業(yè)以太網(wǎng)的數(shù)據(jù)采集方案,在工業(yè)過程控制中實現(xiàn)基于Socket套接字的實時數(shù)據(jù)通信。介紹了Socket套接字的基本概念和工業(yè)以太網(wǎng)技術的最新發(fā)展,采用基于Rabbit2000高性能單片機擴展的帶有以太網(wǎng)通信接口的核心模塊BL2100及其所時應的Dynamic C開發(fā)環(huán)境,實現(xiàn)了基于Socket套接字的工業(yè)以太網(wǎng)數(shù)據(jù)通信,并且給出了比較詳細的流程。系統(tǒng)已經(jīng)有數(shù)十套成功地應用于實際生產(chǎn)中,滿足了工業(yè)數(shù)據(jù)通信要求的實時性和準確性。 關鍵詞:工業(yè)數(shù)據(jù)通信; Socket; 工業(yè)以太網(wǎng) 1 引言   工業(yè)過程控制中需要測量和控制的變量很多,以往基于PC機外接的數(shù)據(jù)采集卡,采集的點數(shù)有限,而且要直接和PC機的串口或者并口相連,極大限制了PC機資源的充分利用。工業(yè)以太網(wǎng)的出現(xiàn)為構成開放式的模塊化的數(shù)據(jù)采集奠定了基礎,本項目開發(fā)一個基于工業(yè)以太網(wǎng)的嵌入式智能模塊的開放式數(shù)據(jù)采集系統(tǒng)。以太網(wǎng)是目前應用最廣泛的網(wǎng)絡,它不但應用于商用網(wǎng)絡,同時在近年來大舉進軍工業(yè)控制領域,取得了巨大的經(jīng)濟效益。以太網(wǎng)最初得到應用時,它采用帶有沖突檢測的多路載波偵聽協(xié)議(CSMA/CD)和二進制指數(shù)回退算法[1]。在這種協(xié)議和算法下,當網(wǎng)絡繁忙時,它的非實時性和不確定性大大增加。因此,以太網(wǎng)在很長的一段時間只能用于對實時性和確定性要求不是很高的辦公網(wǎng)絡,它在工業(yè)數(shù)據(jù)通信領域的應用受到很大限制。隨著交換技術和全雙工數(shù)據(jù)通信技術的發(fā)展,工業(yè)以太網(wǎng)已經(jīng)大大提高了在數(shù)據(jù)通信中的實時性和確定性,而且在許多工業(yè)領域得到成功應用。 2 以太網(wǎng)用于工業(yè)數(shù)據(jù)通信的技術基礎   以太網(wǎng)的交換技術和全雙工通信技術的支持。以太網(wǎng)的交換技術由原先的端對端的網(wǎng)橋連接發(fā)展到了現(xiàn)在的以太網(wǎng)交換機。在數(shù)據(jù)發(fā)送的過程中,目前廣泛應用存儲轉發(fā)技術,先把輸入端口的數(shù)據(jù)包存儲起來,然后進行CRC檢查,在對錯誤包處理后才取出數(shù)據(jù)包的目的地址,通過查找表轉換成輸出端口送出包[2]。正因如此,存儲/轉發(fā)方式在數(shù)據(jù)處理時延時大,這是它的不足,但它可以對進入交換機的數(shù)據(jù)包進行錯誤檢測,尤其重要的是它可以支持不同速度的輸入輸出端口間的轉換,保持高速端口與低速端口間的協(xié)同工作。   全雙工(Full-Duplex)技術也是隨著以太網(wǎng)技術的發(fā)展而被廣泛地用于以太網(wǎng)交換機的。現(xiàn)在各大廠家都有基于IEEE802.3X全雙工通信協(xié)議的機型,這種交換機集成了目前以太網(wǎng)技術的最新成果。有了交換技術和全雙工技術的支持,以太網(wǎng)的不確定性和實時性差的確定得到很大的改觀,在工業(yè)數(shù)據(jù)通信領域得到了眾多廠商的認可。   網(wǎng)絡單片機的發(fā)展和相對應的軟件開發(fā)環(huán)境隨著以太網(wǎng)通信技術的進步,各大廠商紛紛推出基于嵌入式以太網(wǎng)的處理器,本系統(tǒng)所用的Rabbit2000就是其中的一種。Z-World公司推出的BL2100核心模塊使用了Rabbit2000處理器,它是專門應用于嵌入式領域的以太網(wǎng)通信智能模塊,支持各種網(wǎng)絡協(xié)議(如TCP,HTTP,F(xiàn)TP,SMTP,PPP等),開發(fā)過程中使用的是基于TCP/IP協(xié)議的Socket編程系統(tǒng)[3]。對應于硬件配置,Z-World公司提供了相應的軟件開發(fā)環(huán)境,即Dynamic C語言,它去掉了普通C語言中不符合實時性要求的部分,加入了適用于實時控制的功能,提供了眾多功能豐富的函數(shù)庫,包括數(shù)學函數(shù)庫、I/O函數(shù)庫、串口通信函數(shù)庫、數(shù)據(jù)采集和數(shù)據(jù)輸出函數(shù)庫,還有基于各種網(wǎng)絡協(xié)議的網(wǎng)絡通信所需要的函數(shù)庫[4]。BL2100在系統(tǒng)編程(ISP),程序開發(fā)調試方面非常方便。 3 系統(tǒng)的總體設計   系統(tǒng)設計為三層的網(wǎng)絡結構,最上層為PC監(jiān)控機,中間層為網(wǎng)絡通信模塊BL2100,現(xiàn)場層為MSP430智能控制節(jié)點。   PC機和BL2100之間的通信是基于工業(yè)以太網(wǎng),BL2100和MSP430之間的通信是用RS-485總線來實現(xiàn)的。   監(jiān)控PC機采用組態(tài)軟件開發(fā)出相應的監(jiān)控界面,可以實現(xiàn)多種多樣的數(shù)據(jù)處理功能,包括歷史數(shù)據(jù)存儲、實時數(shù)據(jù)動態(tài)顯示、報警信息輸出等。同時操作人員根據(jù)不同的控制要求可以發(fā)出不同的控制命令。BL2100網(wǎng)絡模塊帶有工業(yè)以太網(wǎng)接口和RS-485接口,多個網(wǎng)絡模塊可以通過以太網(wǎng)交換機來連接PC監(jiān)控機,在局域網(wǎng)內可以充分利用豐富的IP地址資源而不受外網(wǎng)的限制,適合于工廠內部環(huán)境。MSP430智能節(jié)點主要作用是接收采集命令,進行現(xiàn)場數(shù)據(jù)采集,通過RS-485總線傳給BL2100。根據(jù)不同的硬件配置,可以在每條總線上掛接多達128個MSP430智能節(jié)點。BL2100一方面通過RS-485和MSP430進行數(shù)據(jù)通信獲得各個節(jié)點的采樣數(shù)據(jù),另一方面把數(shù)據(jù)處理打包以Socket套接字通信的方式發(fā)送給PC監(jiān)控機。   系統(tǒng)結構示意如圖1所示。 [align=center] 圖1 系統(tǒng)連接結構示意圖[/align] 4 系統(tǒng)軟件開發(fā)   網(wǎng)絡模塊程序總體框圖如圖2所示。 [align=center] 圖2 網(wǎng)絡模塊程序總體框圖[/align]   網(wǎng)絡模塊BL2100運行過程中,程序首先進行必要的硬件初始化,然后接收PC監(jiān)控機發(fā)送的命令,確定系統(tǒng)各個采樣通道的配置,包括采樣周期、濾波參數(shù)設置等,然后通過RS-485總線發(fā)出命令,MSP430接到命令進行數(shù)據(jù)采集,采集完畢發(fā)送給BL2100,再通過工業(yè)以太網(wǎng)發(fā)送給PC機。   在本系統(tǒng)使用的Dynamic C語言開發(fā)環(huán)境中,提供了基于TCP/IP協(xié)議的Socket網(wǎng)絡通信編程所需的全部庫函數(shù)。Socket通信首先要創(chuàng)建套接字,其次給套接字賦予地址信息,再建立Socket連接,最后進行數(shù)據(jù)通信。通訊過程中還要有網(wǎng)絡狀況偵聽功能和網(wǎng)絡錯誤處理子程序。本系統(tǒng)的通信有實時數(shù)據(jù)和非實時數(shù)據(jù)兩部分信息流,實時數(shù)據(jù)包括采樣得到的數(shù)據(jù)流,非實時數(shù)據(jù)主要是各種各樣的采樣控制參數(shù)流。數(shù)據(jù)通信以實時數(shù)據(jù)流為主兼之以非實時數(shù)據(jù)流,程序設計按照Server/Client的形式,網(wǎng)絡模塊BL2100為服務器,PC機為客戶機。下面以運行在網(wǎng)絡模塊上的數(shù)據(jù)發(fā)送程序來說明Socket通信設計的主要流程:   首先定義Socket套接字,它是基于TCP協(xié)議的,必須包含一個完整的TCP連接所需要的全部信息。但是它還不是一個具體的針對某一連接的,只是一個定義;其次初始化Socket套接字開發(fā)環(huán)境,主要是在Dynamic C語言的編譯環(huán)境中聲明,獲得開發(fā)環(huán)境的支持。該函數(shù)載入Rabbit2000關于TCP,Socket的相關驅動程序,它必須在所有的TCP,Socket相關函數(shù)調用之前調用;最后調用發(fā)送實時數(shù)據(jù)的子程序,在這里面要具體的創(chuàng)建套接字,建立、連接、發(fā)送數(shù)據(jù)。   子程序的部分源碼如下:   Void RealTimeDataSend(tcp_Socket* sock, long *buff, int* state,word my_port)  ?。鹲witch(* state)   Case 0:   if(tcp_open(…)!=0)//偵聽網(wǎng)絡建立連接   printf(“Connect success”);   else   sock_tick(…);//套接字管理,完畢后轉往sock_err()函數(shù)   timer_2=MS_TIMER;//定時器  ?。ǎ猻tate)++;   break;   Case 1:   if(sock_established(sock))//建立本連接的套接字   {//建立套接字成功  ?。猻tate=2;   ……   Printf(“Socket success establish!!!”);   }   else if(MS_TIMER-time_2>OUT_TIME)  ?。?/超時處理  ?。猻tate=3;   ……  ?。?   Case 2://發(fā)送數(shù)據(jù)   if(send_start=0)//是第一次發(fā)送數(shù)據(jù)發(fā)送全部的實時和非實時參變量  ?。鹲ock_fastwrite(buff);//往發(fā)送緩沖區(qū)寫入數(shù)據(jù)   send_start=1;  ?。?   else if(send_start=1)   {//只發(fā)送實時變量   sock_fastwrite(buff);  ?。猻tate=2;   break;   ……  ?。?   Case3:   sock_abort(sock);//關閉套接字   break;   ……   sock_err(…);//套接字錯誤處理  ?。?   以上介紹的是網(wǎng)絡模塊向PC機發(fā)送數(shù)據(jù)的流程。但是這只是單方向的數(shù)據(jù)流動,如上所述,現(xiàn)在的工業(yè)以太網(wǎng)技術支持全雙工的通信,即數(shù)據(jù)的雙向流動可以完美地實現(xiàn),基于此,現(xiàn)場的智能節(jié)點在不斷向PC機發(fā)送采集數(shù)據(jù)的同時也可以隨時接受來自PC機的控制信息及其對應的數(shù)據(jù)流。本文設計了相應的數(shù)據(jù)接收子程序。函數(shù)定義如下:   UnRealTimeDataReceive (tcp_Socket *sock, long *buff, int *state, word my port)   {……   Case2:   sock_fastread(buff);//從接收緩沖區(qū)讀取數(shù)據(jù)   ……  ?。?   參數(shù)的定義和接收子程序相比,只有在*state等于2時有所不同,此時網(wǎng)絡模塊接收數(shù)據(jù),它根據(jù)緩沖區(qū)第一個數(shù)據(jù)獲得所要接收的參數(shù)的索引號,將緩沖區(qū)第二個數(shù)據(jù)賦給具體的參數(shù)變量。還有一點要說明的是,工作人員進行監(jiān)控操作,這個過程不是實時進行的,帶有很強的隨機性。因此控制信息流不是實時存在的,而是隨機的,各個網(wǎng)絡模塊會不斷地偵聽網(wǎng)絡來查看有沒有對應本模塊的數(shù)據(jù)包,如果有則進入接收子程序。 5 結束語   本文結合數(shù)據(jù)采集系統(tǒng)討論了工業(yè)以太網(wǎng)在工業(yè)數(shù)據(jù)通信中的應用,介紹了在Dynamic C環(huán)境下基于TCP協(xié)議的Socket網(wǎng)絡編程。本系統(tǒng)開發(fā)以后,用于一套皮革噴漆自動控制系統(tǒng)中,得到了成功的應用。實踐證明,基于工業(yè)以太網(wǎng)的通信運行很穩(wěn)定,延遲很小,在一臺PC監(jiān)控機同時和多臺皮革噴漆系統(tǒng)連接工作的情況下,運行同樣穩(wěn)定,實時性和確定性都得到了有效的保證。可以預見,工業(yè)以太網(wǎng)在工業(yè)數(shù)據(jù)通信中的應用必將日益廣泛,基于TGP/IP協(xié)議的Socket套接字通信方式作為實現(xiàn)的方法簡單實用穩(wěn)定,已經(jīng)獲得了大多數(shù)工業(yè)監(jiān)控開發(fā)軟件的支持。目前集管理和控制于一體的工業(yè)生產(chǎn)過程計算機集成控制系統(tǒng)(CIPS)正在快速地發(fā)展,工業(yè)以太網(wǎng)技術使CIPS進人工廠企業(yè)的步伐大大加快,這極大地促進制造業(yè)的信息化進程。   本文作者創(chuàng)新點:針對工業(yè)數(shù)據(jù)采集領域的現(xiàn)狀,提出一種新的基于工業(yè)以太網(wǎng)的數(shù)據(jù)采集方案,采用基于Rabbit2000高性能單片機擴展的帶有以太網(wǎng)通信接口的核心模塊BL2100及其所時應的Dynamic C開發(fā)環(huán)境,實現(xiàn)了基于Socket套接字的工業(yè)以太網(wǎng)數(shù)據(jù)通信,并成功地應用于實際生產(chǎn)中,滿足了工業(yè)數(shù)據(jù)通信要求的實時性和準確性。 參考文獻   [1] 馮曄,馮忠義.基于Socket網(wǎng)絡編程接口實現(xiàn)局域網(wǎng)視頻傳輸?shù)膽醚芯縖J].微計算機信息,1998,14:5:17-20.   [2] Tarerbaum A S.潘愛民譯. Computer networks (fourth edition)[M].北京:清華大學出版社,2004.   [3] Z-World Inc. Dynamic C premier for semiconductor microprocessors integrated C development system user’s manual[M]. California: Z-world Corporation, 1999.   [4] Z-World Inc. Dynamic C TCP/IP user’s manual[M]. California: Z-world Corporation, 2001.

標簽:

點贊

分享到:

上一篇:實力作證,東土SICOM系列產(chǎn)品...

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

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

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

相關資訊

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

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

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

Chuandong.com Copyright ?2005 - 2024 ,All Rights Reserved 深圳市奧美大唐廣告有限公司 版權所有
粵ICP備 14004826號 | 營業(yè)執(zhí)照證書 | 不良信息舉報中心 | 粵公網(wǎng)安備 44030402000946號