• 
    

    
    

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

      UDP協(xié)議及其在磁場數(shù)據(jù)采集系統(tǒng)中的應(yīng)用

      2014-03-22 17:39:33衣軍
      科技創(chuàng)新與應(yīng)用 2014年10期
      關(guān)鍵詞:數(shù)據(jù)采集

      衣軍

      摘 要:UDP協(xié)議具有傳輸效率高、可擴展性強等特點,適用于實時性要求高、數(shù)據(jù)傳輸量大的場合。文章簡單介紹了UDP協(xié)議并以磁場數(shù)據(jù)采集系統(tǒng)為例,給出了在Delphi環(huán)境下PC機與測磁儀間實現(xiàn)UDP協(xié)議網(wǎng)絡(luò)通信的方法。

      關(guān)鍵詞:UDP協(xié)議;磁場測量;數(shù)據(jù)采集;Delphi

      在分布式測量系統(tǒng)中,大多數(shù)采用以太網(wǎng)進行數(shù)據(jù)傳輸。以太網(wǎng)的傳輸協(xié)議有TCP和UDP等。TCP是面向連接的,可靠性較高,但效率較低;UDP則是一種傳輸速率高,但不保證數(shù)據(jù)可靠性的協(xié)議,因此比較適合應(yīng)用在實時性要求高、數(shù)據(jù)傳輸量大的測量系統(tǒng)中。

      1 UDP協(xié)議簡述

      UDP協(xié)議的母體和TCP協(xié)議一樣,也是IP協(xié)議。每個UDP報文稱為一個用戶數(shù)據(jù)報,分UDP報頭和UDP數(shù)據(jù)區(qū)兩部分。報頭由四個16位長的字段組成,分別說明該報文的源端口、目的端口、報文長度以及校驗和。UDP報文格式如圖1所示。

      圖1 UDP報文格式

      源端口字段和目的端口字段包含了16位的UDP協(xié)議端口號。長度字段記錄該數(shù)據(jù)報的長度,以8位為組計算,包括報頭和用戶數(shù)據(jù)區(qū)。校驗和字段是可選擇的,如該字段值為0,表明不進行校驗。UDP協(xié)議的報頭只包含幾個域,比TCP包頭簡單,它的網(wǎng)絡(luò)開銷一般要小于TCP協(xié)議。同時,由于UDP協(xié)議在傳送數(shù)據(jù)過程中沒有建立連接,也不進行檢查,因此在優(yōu)良的網(wǎng)絡(luò)環(huán)境中,其工作效率較TCP協(xié)議要高。但UDP協(xié)議不提供報文到達確認、排序以及流量控制等功能,因此,報文可能會丟失、重復(fù)以及亂序等,其可靠性問題只能由使用UDP的該應(yīng)用程序來解決。

      2 利用Delphi編寫UDP協(xié)議的網(wǎng)絡(luò)應(yīng)用程序

      2.1 INDY介紹

      INDY的全名是Internet Direct,是一套開放源代碼的Internet控件集,它支持大部分Internet協(xié)議,包括TCP、UDP、HTTP、POP3等,支持BASE64、MD2、MD4、MD5等編解碼,提供相應(yīng)的客戶端和服務(wù)器控件。INDY是完全基于SOCKET阻塞工作模式的開發(fā)庫,支持Delphi、C++ Builder等開發(fā)平臺。

      2.2 INDY UDP相關(guān)控件

      INDY(10.1)提供了UDP相關(guān)的服務(wù)器和客戶端控件TIdUDPServer、TIdUDPClient,它們封裝了UDP協(xié)議的實現(xiàn)。

      (1)TIdUDPServer控件的主要屬性及方法

      主要屬性:

      ◆Active,啟動或停止UDP;

      ◆Bindings:TIdSocketHandles,服務(wù)器所分配的套接字句柄(Socket handles);

      ◆BufferSize:Integer,最大數(shù)據(jù)包大?。?/p>

      ◆DefaultPort:integer,用于監(jiān)聽新連接的端口號;

      ◆IPVersion,UDP支持的IP協(xié)議版本;

      ◆ThreadedEvent:boolean,指定是否采用獨立線程進行UDP讀操作。

      主要方法:

      ◆Send(AHost: string, const APort: Integer, const AData: string),向指定IP地址(AHost)和端口(APort)的端點發(fā)送字符串;

      ◆SendBuffer(AHost: string, const APort: Integer, const ABuffer: TIdBytes),向指定IP地址(AHost)和端口(APort)的端點發(fā)送字節(jié)數(shù)組;

      ◆ReceiveString(const AMSec: Integer = IdTimeoutDefault): string,接收字符串;

      ◆ReceiveBuffer(var ABuffer: TIdBytes, const AMSec: Integer = IdTimeoutDefault): Integer,接收字節(jié)數(shù)組。

      (2)TIdUDPClient控件的主要屬性及方法

      主要屬性:

      ◆Host:String,遠端計算機IP地址;

      ◆Port:Word,遠端計算機端口號;

      ◆BoundIP:String,本機IP地址;

      ◆BoundPort:Word,本機端口號;

      ◆BoundPortMax:Integer,本機最大端口數(shù);

      ◆BoundPortMin:Integer,本機最小端口數(shù);

      ◆BufferSize:Integer,最大數(shù)據(jù)包大小;

      ◆IPVersion:TIdIPVersion,UDP支持的IP協(xié)議版本;

      ◆ReceiveTimeOut:Integer,等待讀取socket時間;

      ◆Active:Boolen,啟動或停止UDP。

      主要方法:

      ◆Send(AData:String),發(fā)送字符串;

      ◆SendBuffer(const ABuffer: TIdBytes),發(fā)送字節(jié)數(shù)組;

      ◆SendBuffer(AHost: string, const APort: Integer, const ABuffer: TIdBytes),向指定IP地址(AHost)和端口(APort)的端點發(fā)送字節(jié)數(shù)組;

      ◆ReceiveString(const AMSec: Integer = IdTimeoutDefault):string,接收字符串;

      ◆ReceiveBuffer(var ABuffer: TIdBytes,const AMSec:Integer = IdTimeoutDefault):integer,接收字節(jié)數(shù)組;

      ◆Connected: Boolean,讀取UDP連接狀態(tài)。

      2.3 系統(tǒng)程序功能介紹

      磁場數(shù)據(jù)采集系統(tǒng)的主要功能是實時接收測磁儀上傳的三分量磁場測量數(shù)據(jù),通過圖、表形式進行顯示,并保存成格式為‘TXT或‘Excel類型的數(shù)據(jù)文件。

      在該程序中采用的主要控件有:UDP相關(guān)控件IdUDPClient、圖形顯示控件TeeChart、數(shù)據(jù)顯示控件Memo及文件保存和狀態(tài)顯示控件等。圖2是磁場數(shù)據(jù)采集程序的用戶界面。

      根據(jù)約定采用的上下位機IP地址和端口號(上位機(PC機)的IP為:192.168.0. 99,Port為8080;下位機(測磁儀)的IP為:192.168.0.123,Port為2020),設(shè)置IdUDPClient1的相關(guān)屬性:

      Host:=192.168.0.123;

      Port:=2020;

      BoundIP:=192.168.0. 99;

      BoundPort:=8080

      圖2 磁場數(shù)據(jù)采集系統(tǒng)程序界面

      計算機與測磁儀的通訊過程如下:儀器端等待上位機指令,收到數(shù)據(jù)傳送“開始”指令,將測量數(shù)據(jù)打包發(fā)至上位機,直至收到“停止”指令。上位機在設(shè)置好相關(guān)IP地址及Port屬性后,向儀器端發(fā)送“開始”指令,并等待接收數(shù)據(jù)。收到數(shù)據(jù)后,對其進行實時處理,更新測量結(jié)果的數(shù)據(jù)和圖形顯示。

      2.4 程序清單 (略)

      3 結(jié)束語

      由于UDP具有TCP無可比擬的速度優(yōu)勢,因此特別適合應(yīng)用在實時性要求較高且需大量數(shù)據(jù)傳輸?shù)膱龊?。在Delphi環(huán)境中,采用開源INDY控件實現(xiàn)基于UDP協(xié)議的通信,系統(tǒng)開發(fā)、調(diào)試將更加容易、迅速。

      參考文獻

      [1]來爽,慕德俊.UDP協(xié)議在嵌入式系統(tǒng)中的應(yīng)用[J].機電一體化,2008,6.

      猜你喜歡
      數(shù)據(jù)采集
      Web網(wǎng)絡(luò)大數(shù)據(jù)分類系統(tǒng)的設(shè)計與改進
      CAN總線通信技術(shù)在電梯監(jiān)控系統(tǒng)中的應(yīng)用
      基于大型嵌入式系統(tǒng)的污水檢測系統(tǒng)設(shè)計
      社會保障一卡通數(shù)據(jù)采集與整理技巧
      基于AVR單片機的SPI接口設(shè)計與實現(xiàn)
      CS5463在植栽用電子鎮(zhèn)流器老化監(jiān)控系統(tǒng)中的應(yīng)用
      大數(shù)據(jù)時代高校數(shù)據(jù)管理的思考
      科技視界(2016年18期)2016-11-03 22:51:40
      鐵路客流時空分布研究綜述
      基于廣播模式的數(shù)據(jù)實時采集與處理系統(tǒng)
      軟件工程(2016年8期)2016-10-25 15:54:18
      通用Web表單數(shù)據(jù)采集系統(tǒng)的設(shè)計與實現(xiàn)
      軟件工程(2016年8期)2016-10-25 15:52:53
      比如县| 盐边县| 南和县| 阿勒泰市| 西盟| 新绛县| 辽宁省| 江城| 惠水县| 金乡县| 任丘市| 樟树市| 城固县| 福安市| 攀枝花市| 新乡市| 江都市| 沙河市| 郯城县| 墨竹工卡县| 平利县| 宁乡县| 铁岭市| 太仆寺旗| 阜城县| 云浮市| 西充县| 商河县| 黑河市| 乌恰县| 涪陵区| 厦门市| 海门市| 芷江| 高州市| 九江市| 沐川县| 元朗区| 项城市| 中阳县| 太康县|