技術(shù)頻道

娓娓工業(yè)
您現(xiàn)在的位置: 中國傳動網(wǎng) > 技術(shù)頻道 > 技術(shù)百科 > 工控機與多協(xié)議串口檢測設(shè)備通訊技術(shù)研究

工控機與多協(xié)議串口檢測設(shè)備通訊技術(shù)研究

時間:2008-02-19 09:33:00來源:mahaiyan

導(dǎo)語:?該文介紹了利用VB ActiveX控件MSComm實現(xiàn)工控機和多個通訊協(xié)議監(jiān)控設(shè)備之間的數(shù)據(jù)串口通訊,主要討論了串口通訊常見的通訊協(xié)議格式及其組成結(jié)構(gòu),并結(jié)合具體的硬件設(shè)計實例
摘 要:該文介紹了利用VB ActiveX控件MSComm實現(xiàn)工控機和多個通訊協(xié)議監(jiān)控設(shè)備之間的數(shù)據(jù)串口通訊,主要討論了串口通訊常見的通訊協(xié)議格式及其組成結(jié)構(gòu),并結(jié)合具體的硬件設(shè)計實例,給出了多協(xié)議串口通訊系統(tǒng)完整體系結(jié)構(gòu)及優(yōu)化管理方案。同時,分析了串口通訊的兩種方式并給出了相應(yīng)的軟件設(shè)計例程,整個系統(tǒng)結(jié)構(gòu)簡單、可靠性高、運行效果良好。 關(guān)鍵詞:RS232;監(jiān)控系統(tǒng);串口通訊;MSComm控件 Abstract:The paper deals with the serial communication that uses the VB ActiveX MSComm to realize the data communication between an industrial contral computer and multi-communication protocol monitoring devices along with the common communication protocol format and composite structure.The whol e communicational system architecture and optimal management mechanism are prese nted whith an instance of concrete hardware design,This paper also analyzes two modes of serial communication and gives out a corresponding example of the soft ware design. The practical application shows that the syetem has many features, such as simple structure,high reliability and good effectiveness. Key words:RS232;monitoring system;serial communication;MSComm control 0引言   伴隨著現(xiàn)代化生產(chǎn)過程中智能化、自動化程度的提高,越來越多的綜合過程系統(tǒng)需要開發(fā)自身的數(shù)據(jù)采集與監(jiān)控平臺[1],利用Windows編程技術(shù)開發(fā)這樣的實時測控應(yīng)用程序時,關(guān)鍵而且經(jīng)常要面臨與外圍監(jiān)控設(shè)備通訊的問題[2,3]。由于串行通訊是在一根傳輸線上一位一位的傳送信息,避免了多條線路特性的不一致,所以現(xiàn)在大量的智能儀器或數(shù)據(jù)采集模塊都帶有RS232/485串行通訊接口,通過相應(yīng)的通訊協(xié)議和串口通訊程序,可以將測試、采集的數(shù)據(jù)傳輸?shù)缴衔还た貦C,以滿足各種形式后續(xù)數(shù)據(jù)處理的要求。同時整 個監(jiān)控系統(tǒng)會根據(jù)系統(tǒng)運行情況通過串口向監(jiān)控設(shè)備發(fā)送指令,調(diào)節(jié)設(shè)備的運行參數(shù)等使得 生產(chǎn)過程平穩(wěn)進行。該文就是對大型數(shù)據(jù)采集及監(jiān)控系統(tǒng)中針對多個設(shè)備儀表串口通訊如何實現(xiàn)優(yōu)化管理和控制做一些探討。 1系統(tǒng)硬件及信號線的連接   在某大型物理模擬監(jiān)控系統(tǒng)中共有4個設(shè)備利用串口[4,5]進行控制,圖1所示系統(tǒng)硬件連接圖中,每個設(shè)備都通過工控機RS232(<12 m)串口進行遠程實時數(shù)據(jù)采集和控制管理。
  系統(tǒng)中工控機與終端的接口只需3根信號線,即發(fā)送數(shù)據(jù)線(TXD)、接收數(shù)據(jù)線(RXD)和信號地線(SG),便可以直接對終端進行數(shù)據(jù)的接收和發(fā)送,不需對信號線 的狀態(tài)進行判斷或設(shè)置。 2多通訊協(xié)議與通訊格式   通訊協(xié)議是指通訊雙方的一種約定。約定包括對數(shù)據(jù)格式、同步方式、傳送速度、傳送步驟、檢糾錯方式以及控制字符定義等問題做出統(tǒng)一規(guī)定,通訊雙方必須共同遵守。它屬于ISO‘ S OSI 7層參考模型中的數(shù)據(jù)鏈路層。當有多個串口檢測設(shè)備需要與上位機通訊時[6],正確的理解通訊協(xié)議是串口通訊的關(guān)鍵和難點。實際上由于各廠家自行定制格式,因此控制、參數(shù)設(shè)置、參數(shù)讀取、狀態(tài)讀取指 令相差甚遠,沒有形成統(tǒng)一的協(xié)議標準。表1分別以ISCO注塞泵的Dasnet通訊格式和恒溫箱先鋒溫控儀的Normal通訊格式兩個典型為例進行說明,對讀者快速、正確理解串口協(xié)議起到拋磚引玉的作用。
2.1Dasnet發(fā)送命令代碼說明   (1)從接收命令的終端設(shè)備地址(目的地址)開始,地址是一個數(shù)字位(0~9),多個設(shè)備連接時,設(shè)定地址號不能重疊;   (2)應(yīng)答方式標識,具體有3種意思:E-錯誤,B-繁忙,C-接收;   (3)命令源地址:發(fā)命令設(shè)備的初始地址,一般為0;   (4)長度:表示了所要發(fā)送命令的長度,以ASCⅡ碼表示;   (5)命令:單獨的讀命令或?qū)懨睿ㄆ浜髱Щ虿粠?shù))組成;   (6)校驗碼:是兩位十六進制數(shù),它從起始位置到命令結(jié)束全部字符的和然后  求補所得結(jié)果的單字節(jié)校驗碼(和以256為模等于0);  ?。?)回車CR符(0DH):表示全命令的結(jié)束。   如發(fā)送命令:R304STOPD1[CR]      其文本方式發(fā)送為:R304STOPD1[CR]   其二進制發(fā)送方式為:     計算校驗碼的方法有:模數(shù)的十六進制、模數(shù)的十進制、非模數(shù)的十六進制、非模數(shù)的十進制?,F(xiàn)以模數(shù)的十六進制方法為例說明校驗碼的計算:   (1)22FH=52H+33H+30H+34H+53H+54H+4FH+50H;  ?。?)2F=22FH÷100H;  ?。?)D1H=100H-2FH;  ?。?)把D1H用16進制兩個ASCⅡ碼表示,并加到命令結(jié)尾;  ?。?)把“CR”(0DH)加到最后表示整個命令的結(jié)束。 2.2Normal發(fā)送全文件和返回全文件通訊格式代碼說明  ?。?)起始符以“ @”(40H),表示文件的開始;  ?。?)地址:調(diào)節(jié)器設(shè)定的地址號00~31,多調(diào)節(jié)器時,設(shè)定地址號不能重疊;  ?。?)文件:文件是由單獨的讀命令或?qū)懨睿ㄆ浜髱Щ虿粠?shù))組成;   (4)文件是以ASC Ⅱ碼字符冒號“:”(3AH)作為結(jié)束;  ?。?)BCC校驗碼:從起始字符“@”后到文件的結(jié)束符“:”(含結(jié)束符)全部字符的異或運算(XOR),所得結(jié)果的雙字節(jié)校驗碼;   (6)回車CR符(0DH)表示全文件的結(jié)束。   舉例說明:      二進制異或30H XOR 31H XOR 44H XOR 31H XOR 3AH=4EH   其文本方式為:@01D1∶4E CR   其二進制方式為  40H30H31H44H31H3AH34H45H0DH 2.3多串口通訊協(xié)議特點   通過以上兩種通訊格式的對比可以看出,一般都具有如下的組織結(jié)構(gòu)和特點:  ?。?)開始、結(jié)束標志字符所有信息傳輸必須以一個標志字符開始,且以同一個字符結(jié)束。這個標志字符是[CR],稱標志場(F)。從開始標志到結(jié)束標志之間構(gòu)成一個完整的信息單位,稱為一幀(Frame)。所有的信息是以幀的形式傳輸?shù)?,而標志字符提供了每一幀的邊界。接收端可以通過這些信息來探知幀的開頭和結(jié)束,以此建立幀同步。  ?。?)地址場和控制場在標志場之后,可以有一個地址場A(Address)和一個控制場C(Control)。地址場用來規(guī)定與之通訊的次站的地址??刂茍隹梢?guī)定若干個命令。其寬度可為8位或16位。  ?。?)信息場跟在控制場之后的是信息場I(Information),也叫數(shù)據(jù)場,包含有要傳送的數(shù)據(jù)。并不是每一幀都必須有信息場,即數(shù)據(jù)場可以省略,當它省略時,則這一幀主要是控制命令。   (4)幀校驗信息緊跟在信息場之后的是兩字節(jié)的校驗信息,幀校驗場稱為FC(Frame Che ck)場或稱為幀校驗序列FCS(Frame Check Squence)。校驗碼可以為縱橫奇偶校驗或16位循環(huán)冗余校驗CRC(Cyclie Redundancy Code )。正確理解校驗碼的計算是實際串口通訊的難點和關(guān)鍵。 3管理體系結(jié)構(gòu)   基于多協(xié)議的串口通訊系統(tǒng)在大型系統(tǒng)的開發(fā)過程中,扮演著極其重要的角色,它具備完整的體系結(jié)構(gòu),在實踐中形成了一套完整的優(yōu)化管理方案,具有很清晰的層次性。從功能上講,它的涵蓋面很廣,從硬件設(shè)備的驅(qū)動程序到開發(fā)整套系統(tǒng)所需的各個開發(fā)環(huán)節(jié)在內(nèi),具體結(jié)構(gòu)如圖2所示。
  設(shè)備硬件層:主要包括基于RS232串行接口的物理測量設(shè)備,它是完成整個系統(tǒng)自動化的底層硬件基礎(chǔ)。   資源管理層:是軟件設(shè)計平臺和設(shè)備之間連接的橋梁,主要由接口驅(qū)動和接口軟件、控件組成。VB提供的通訊控件提供了標準的事件處理函數(shù)、過程,并通過屬性的方法提供了串行通訊口參數(shù)的設(shè)置,可以較容易地解決串口通訊,實現(xiàn)對儀器和設(shè)備的遠程計算機控制。這部分還包括Windows串口驅(qū)動程序和拓展的串口驅(qū)動程序,完成Windows底層封裝和接口鏈接[7]。   開發(fā)應(yīng)用層:是一個集成軟件開發(fā)和程序執(zhí)行平臺,實現(xiàn)對串口檢測儀器模塊進行初始化和 各種配置并實現(xiàn)設(shè)備的遠程監(jiān)控,對數(shù)據(jù)進行保存,方便后期試驗數(shù)據(jù)處理。   多協(xié)議串口管理介于開發(fā)應(yīng)用層和資源管理層之間,包括了各種的串口管理機制,主要包括端口分配、通訊協(xié)議及通訊格式設(shè)置、數(shù)據(jù)校驗處理機制、通訊錯誤處理機制、緊急故障處 理機制(主要硬件故障等)、測試及調(diào)試機制、優(yōu)先級機制、優(yōu)化協(xié)調(diào)機制、進出口數(shù)據(jù)存儲機制。這些協(xié)議共同保障了多協(xié)議串口通訊系統(tǒng)的安全、有效運行。 4串口通訊程序的編制 4.1編程環(huán)境   雖然Windows提供了完備的開放式通用增強的W32API(應(yīng)用程序接口)函數(shù),它把對串口和其他通訊設(shè)備的支持和基本輸入驅(qū)動程序集于一體,其優(yōu)點是可實現(xiàn)的功能更豐富、應(yīng)用面 更廣泛、更適合于編寫較為復(fù)雜的低層通訊程序,但是利用API函數(shù)編寫串口通訊程序較 為復(fù)雜,需要掌握大量通訊知識。另一種方式是采用其通訊控件MSComm來實現(xiàn)[2],該控件“隱藏”了大部分串口通訊的低層運行過程和許多繁瑣的過程,提供了標準的事件 處理函數(shù)、過程。并通過屬性的方法提供了串行通訊口參數(shù)的設(shè)置。所以只需編寫少量的代 碼來實現(xiàn)主要應(yīng)用功能和界面的設(shè)計,就可以完成軟件的開發(fā)過程[8]。   MSComm控件提供了事件驅(qū)動、查詢兩種控制串口的方法。查詢方式就是在用戶程序中設(shè)計定時或不定時查詢MSComm控件的某些屬性是否發(fā)生變化(一般查詢InBufferCount接收緩沖區(qū) 中等待計算機接收的字符數(shù)是否滿足要求),當程序較小,實時性不高時應(yīng)用這種方 法,在該程序中恒溫箱和恒流恒壓注塞泵的管理用這種方法。而事件驅(qū)動方式即中斷方式,當有數(shù)據(jù)到達端口或端口狀態(tài)發(fā)生改變或有通訊錯誤產(chǎn)生時,MSComm控件會產(chǎn)生OnComm事件,用戶程序可以捕獲該事件并檢查CommEvent屬性的值來查詢事件和錯誤并進行相應(yīng)處理,采用這種方法程序響應(yīng)及時,可靠性高。在程序中回壓閥和飽和度測試儀應(yīng)用這種方式通訊。 4.2程序代碼   在測控系統(tǒng)串口通訊過程中有多個設(shè)備同時通訊時,特別是同時有多個任務(wù)需要處理時,互相沖突,容易受到外界干擾,為防止通訊錯誤,需要在集成處理軟件中進行抗干擾處理。文中采用兩種方法來進行糾錯、檢錯處理:   (1)啟動錯誤定時器,掃描錯誤數(shù)據(jù)傳輸中的錯誤,如果有錯誤則重新啟動通訊線程;  ?。?)對接收的數(shù)據(jù)進行校驗,若超過通訊設(shè)定時間要求或者接收數(shù)據(jù)誤碼時重發(fā)。   運行證明,以上兩種方法的應(yīng)用大大提高了通訊可靠性,減小了誤碼率。下面是其通訊部分程序的片段。   /打開串口,啟動通訊模塊      /關(guān)閉串口,通訊結(jié)束模塊 5結(jié)束語   利用VB6.0的MSComm通訊控件建立了多個協(xié)議設(shè)備和工控機的串口通訊系統(tǒng),并將該系統(tǒng)運用于實際的某大型三維物理模擬裝置。從實際運行的情況看,由于在通訊系統(tǒng)中采用了先進的多串口優(yōu)化管理機制,所以基于這種方式所構(gòu)成的計算機數(shù)據(jù)采集及監(jiān)控系統(tǒng),對于傳輸距離比較近的實驗室或者現(xiàn)場控制,是一種性價比很高的系統(tǒng)解決方案,而且該系統(tǒng)具有結(jié) 構(gòu)簡單、可靠性高、測量精確、控制靈活的特點,對以后建設(shè)此類基于通訊協(xié)議設(shè)備的串口通訊監(jiān)控系統(tǒng)具有很高的參考價值。 參考文獻 [1]鄭彪,汪秉文.串口通訊在工業(yè)控制中的應(yīng)用[J].自動化儀表,2002,23(4)∶58-59. [2]汪明建,汪明武,加油站計算機監(jiān)控系統(tǒng)串口通訊設(shè)計[J].自動化與儀表,1999,14(3)∶57-59. [3]柯文,華靜.微機與多臺加工中心串行通訊的實現(xiàn)[J].工業(yè)儀表與自動化裝置,2003,(3)∶17-19. [4]李英順,倫淑嫻. PC機和檢測儀器串口通訊的實現(xiàn)[J].沈陽航空工業(yè)學(xué)院學(xué)報,2003,20(2)∶26-28. [5]柯伯樂,池江,湯天浩.基于MOXA多串口卡的多串口通訊的實現(xiàn)[J].工業(yè)控制計算機,2004,17(1)∶46-47. [6]闕江,孫苓生,張明.用VB6.0實現(xiàn)工控軟件和下位機的串口通訊[J].電力自動化設(shè)備,2002,22(9)∶34-36. [7]莫衛(wèi)東,白鵬.Visual Basic6.0高級編程技巧-控制篇[M].西安:西安交通大學(xué)出版社,1999. [8]劉炳文.精通Visual Basic6.0中文版[M].北京:電子工業(yè)出版社,1999.

標簽:

點贊

分享到:

上一篇:電解液離子與炭電極雙電層電...

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

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

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

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

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

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

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