摘 要:在工業(yè)自動(dòng)化監(jiān)控系統(tǒng)中,為了通過(guò)上位機(jī)與智能儀表的通信達(dá)到實(shí)時(shí)控制管理的目的,在詳細(xì)分析了Modbus RTU規(guī)約及其通信原理的基礎(chǔ)上,結(jié)合一個(gè)應(yīng)用實(shí)例,給出了VB 6.0編程環(huán)境下利用MSComm通信控件和Timer定時(shí)器控件實(shí)現(xiàn)基于該規(guī)約的計(jì)算機(jī)與智能儀表之間的串口通信編程方法,建立了低成本的分布式監(jiān)控系統(tǒng)。該系統(tǒng)簡(jiǎn)單、實(shí)用,具有良好的兼容性和可移植性,對(duì)類似的由其它類型智能儀表與上位機(jī)組成的控制系統(tǒng)的通信實(shí)現(xiàn)具有一定的參考價(jià)值,并在石化企業(yè)中得到了成功應(yīng)用,有效地提高了智能化控制水平和企業(yè)的生產(chǎn)效率。
關(guān)鍵字:智能儀表;Modbus協(xié)議;VB 6.0;分布式監(jiān)控系統(tǒng);串口通信
[b][align=center]Design and realization of Modbus Communication in the Distributed
Monitoring System Based on VB
SHI Fei, CHEN Xing[/align][/b]
Abstract: In the field of industry automation control system, in order to realize real-time control and management by communication of computer and intelligent instrument, on the basis of the analysis of Modbus-RTU protocol and the communication principle, this paper gives a method which uses the component MSComm and Timer provided by VB. This method establishes a low cost distributed monitoring system by integrating an application. This system is easy to use and good for compatibility and portability, also have some value on the communication realization in the systems which are control by intelligent instrument and host computer. Moreover, it has been used in petrochemical enterprise successfully and improved the level of intelligent control and the production efficiency of the enterprise effectively.
Key Words: intelligent instrument; Modbus protocol; VB 6.0; distributed monitoring system; serial communication
1 引言
分布式監(jiān)控系統(tǒng)(DMS)已在工業(yè)領(lǐng)域得到廣泛應(yīng)用,許多企業(yè)對(duì)于中小規(guī)模的設(shè)備,出于硬件軟件投資利潤(rùn)率和性能價(jià)格比的考慮,常常是自行開發(fā)或參與開發(fā)本企業(yè)的監(jiān)控系統(tǒng)。分布式監(jiān)控系統(tǒng)以微機(jī)為基礎(chǔ),用數(shù)據(jù)通信將微機(jī)連在一起實(shí)現(xiàn)數(shù)據(jù)共享,從而對(duì)工業(yè)過(guò)程進(jìn)行集中監(jiān)視管理和分散控制[1]。
本文的實(shí)例為低壓配電監(jiān)控系統(tǒng),隨著自動(dòng)化大規(guī)模生產(chǎn)時(shí)代的到來(lái),生產(chǎn)現(xiàn)場(chǎng)往往同時(shí)運(yùn)轉(zhuǎn)著上十臺(tái)甚至數(shù)十臺(tái)電動(dòng)機(jī),往往需要對(duì)這些電動(dòng)機(jī)的運(yùn)行參數(shù)進(jìn)行集中監(jiān)控,以便操作人員及時(shí)發(fā)現(xiàn)故障并進(jìn)行處理?,F(xiàn)采用計(jì)算機(jī)+智能儀表的方案,由上位機(jī)定時(shí)對(duì)下位機(jī)采用輪巡的方式進(jìn)行數(shù)據(jù)采集。上位機(jī)和下位機(jī)之間采用RS485總線進(jìn)行通信,現(xiàn)場(chǎng)智能Modbus儀表掛在RS485總線上,上位機(jī)通過(guò)RS232/485轉(zhuǎn)換器與RS485總線相連,采用VB編程語(yǔ)言,通過(guò)Modbus協(xié)議用串口與智能儀表進(jìn)行通信,在控制成本的情況下,組成一個(gè)小型分布式監(jiān)控系統(tǒng)。
2 監(jiān)控系統(tǒng)概述
系統(tǒng)采用主從式點(diǎn)對(duì)點(diǎn)的通訊方式,由現(xiàn)場(chǎng)智能儀表和1臺(tái)PC機(jī)組成,其中現(xiàn)場(chǎng)智能儀表采用天津東泰科技發(fā)展有限公司生產(chǎn)的DYZB-101A型低壓智能綜合保護(hù)器。由于本系統(tǒng)的智能電子設(shè)備通訊是通過(guò)RS485總線的,因此采用特征阻抗為120Ω的屏蔽雙絞線連接。PC機(jī)一般沒有RS485接口,但都有RS232串行接口,因此采用一個(gè)RS232/485轉(zhuǎn)換器,可將RS232串行接口直接轉(zhuǎn)換成RS485接口,再通過(guò)RS485總線與智能儀表相連。在串行通訊中,主要借助VB開發(fā)平臺(tái)下的MSComm、Timer控件來(lái)設(shè)計(jì)。其中智能儀表對(duì)所檢測(cè)的電力系統(tǒng)進(jìn)行在線檢測(cè),檢測(cè)電網(wǎng)的電流、電壓、視在功率、啟動(dòng)次數(shù)、運(yùn)行時(shí)間、頻率等狀態(tài)信息。PC機(jī)通過(guò)網(wǎng)絡(luò)可以實(shí)現(xiàn)對(duì)儀表的數(shù)據(jù)讀取、診斷、測(cè)試、參數(shù)更新等,輕松實(shí)現(xiàn)遙測(cè)、遙信、遙控。
[align=center]

圖1 監(jiān)控系統(tǒng)結(jié)構(gòu)圖
Fig.1 The structure of monitoring system[/align]
3 Modbus通訊協(xié)議簡(jiǎn)介
Modbus協(xié)議是MODICON公司開發(fā)推行的通信協(xié)議,已經(jīng)成為一種廣泛應(yīng)用于工業(yè)自動(dòng)化控制器上的標(biāo)準(zhǔn)通信協(xié)議。通過(guò)該協(xié)議,不同廠商生產(chǎn)的控制設(shè)備可以進(jìn)行工業(yè)網(wǎng)絡(luò)互聯(lián),從而實(shí)現(xiàn)集散控制[2]。
Modbus協(xié)議采用主從工作方式,允許一臺(tái)主機(jī)和多臺(tái)從機(jī)通信,每臺(tái)從機(jī)地址由用戶設(shè)定,地址范圍為1-255。通信采用命令/應(yīng)答方式,每一種命令幀都對(duì)應(yīng)一個(gè)應(yīng)答幀。命令幀由主機(jī)發(fā)出,所有從機(jī)都將收到報(bào)文,但只有被尋址的從機(jī)才會(huì)響應(yīng)相應(yīng)命令,返回相應(yīng)的應(yīng)答幀。圖2是一個(gè)完整的主從查詢-回應(yīng)周期。
[align=center]

圖2 主從查詢-回應(yīng)周期表
Fig.2 The periodic table of master salve query-response[/align]
3.1 Modbus協(xié)議通訊模式
Modbus通訊協(xié)議有兩種傳送方式:RTU方式和ASCII方式,兩種方式如下所示:
ASCII模式:當(dāng)控制器設(shè)為在Modbus網(wǎng)絡(luò)上以ASCII(美國(guó)標(biāo)準(zhǔn)信息交換代碼)模式通信,在消息中的每個(gè)8Bit字節(jié)都作為兩個(gè)ASCII字符發(fā)送。這種方式的主要優(yōu)點(diǎn)是字符發(fā)送的時(shí)間間隔可達(dá)到1秒而不產(chǎn)生錯(cuò)誤。
RTU模式:當(dāng)控制器設(shè)為在Modbus網(wǎng)絡(luò)上以RTU(遠(yuǎn)程終端單元)模式通信,在消息中的每個(gè)8Bit字節(jié)包含兩個(gè)4Bit的十六進(jìn)制字符。這種方式的主要優(yōu)點(diǎn)是:相對(duì)于ASCII模式,RTU模式表達(dá)相同的信息需要較少的位數(shù),且在相同通訊速率下具有更大的數(shù)據(jù)流量。因此通常情況下,一般工業(yè)智能儀器儀表都是采用RTU模式的Modbus規(guī)約。本文采用的是Modbus RTU模式。
3.2 Modbus RTU消息幀格式
使用RTU模式時(shí),消息發(fā)送至少要以3.5個(gè)字符時(shí)間的停頓間隔開始(如表1中的T1-T2-T3-T4所示)。傳輸?shù)牡谝粋€(gè)域是設(shè)備地址??梢允褂玫膫鬏斪址鞘M(jìn)制的0-9,A-F。網(wǎng)絡(luò)設(shè)備不斷偵測(cè)網(wǎng)絡(luò)總線,當(dāng)?shù)谝粋€(gè)域(地址域)接收到,每個(gè)設(shè)備都進(jìn)行解碼以判斷是否發(fā)給自己。在最后一個(gè)傳輸字符之后,一個(gè)至少3.5個(gè)字符時(shí)間的停頓標(biāo)定了消息的結(jié)束。一個(gè)新的消息可在此停頓后開始[3]。
整個(gè)消息幀必須作為一連續(xù)的流傳輸。如果在幀完成之前有超過(guò)3.5個(gè)字符時(shí)間的停頓時(shí)間,接收設(shè)備將刷新不完整的消息并假定下一字節(jié)是一個(gè)新消息的地址域。同樣地,如果一個(gè)新消息在小于3.5個(gè)字符時(shí)間內(nèi)接著前一消息開始,接收的設(shè)備將認(rèn)為它是前一消息的延續(xù)。這將導(dǎo)致一個(gè)錯(cuò)誤,因?yàn)樵谧詈蟮腃RC 域的值不可能是正確的。一典型的RTU模式的消息結(jié)構(gòu)如表1所示。
表1 RTU模式的消息幀結(jié)構(gòu)
Tab.1 The message frame structure of RTU mode

3.3 Modbus基本規(guī)則
?。?) 所有RS485通訊回路都應(yīng)遵照主/從方式,依照這種方式,數(shù)據(jù)可以在一臺(tái)主機(jī)(如PC機(jī))和多臺(tái)從機(jī)(如DYZB-101A)之間傳遞,從機(jī)數(shù)量應(yīng)限制在32個(gè)以內(nèi)。
?。?) 主機(jī)初始化和控制在RS485通訊回路上傳遞的所有信息。
?。?) 任何一次通訊都不能從從機(jī)開始。
?。?) 在RS485回路上的所有通訊都以“信息幀”方式傳遞。
?。?) 如果主機(jī)或從機(jī)接收到含有未知命令的信息幀,則不予以響應(yīng)。
主機(jī)為主動(dòng)通信方式,通信開始后主機(jī)依次查詢各從機(jī)并等待從機(jī)的應(yīng)答,主機(jī)發(fā)出某一詢問碼后,必須在一段時(shí)間內(nèi)接收到對(duì)應(yīng)從機(jī)的應(yīng)答。當(dāng)通訊命令發(fā)送至儀表時(shí),符合相應(yīng)的地址碼的設(shè)備接收通訊的命令,讀取信息,如果沒有出錯(cuò),則執(zhí)行相應(yīng)的任務(wù),然后把執(zhí)行結(jié)果返送給主機(jī)。返送的信息中包括地址碼,執(zhí)行動(dòng)作的功能碼,執(zhí)行動(dòng)作后的數(shù)據(jù)以及錯(cuò)誤校驗(yàn)碼(CRC或LRC)。如果出錯(cuò)就不發(fā)送任何信息。如果主機(jī)在規(guī)定的接收時(shí)間內(nèi)沒有收到對(duì)應(yīng)從機(jī)的任何有效的應(yīng)答,則可以認(rèn)為該從機(jī)通信故障,從下一個(gè)從機(jī)繼續(xù)詢問。
4 主機(jī)通信軟件設(shè)計(jì)
DYZB-101A型低壓智能綜合保護(hù)器適用于交流400V低壓電力系統(tǒng),作為低壓電動(dòng)機(jī)的保護(hù)、檢測(cè)設(shè)備。該智能儀表中的數(shù)據(jù)信息主要分為動(dòng)態(tài)信息、查詢信息和控制信息。動(dòng)態(tài)信息包括電流、電壓、功率等信息;查詢信息包括啟動(dòng)次數(shù)、運(yùn)行時(shí)間、開關(guān)狀態(tài)、報(bào)警等信息;控制信息包括對(duì)時(shí)、啟動(dòng)、設(shè)置參數(shù)等信息。上位機(jī)監(jiān)控系統(tǒng)在獲取智能儀表中的各類信息時(shí),主要是采用輪巡的方式,由于不同的數(shù)據(jù)信息對(duì)實(shí)時(shí)性的要求不同,因此上位機(jī)可針對(duì)各類不同的數(shù)據(jù)信息進(jìn)行周期性輪巡和非周期性輪巡,其中周期性輪巡可根據(jù)實(shí)際需要設(shè)置不同的輪巡周期。本文將以對(duì)智能儀表中實(shí)時(shí)性要求較高的動(dòng)態(tài)信息為例來(lái)討論上位機(jī)通訊軟件的實(shí)現(xiàn)[4]。
4.1 MSComm控件與串行通信
RS232/485轉(zhuǎn)換器將RS232信號(hào)轉(zhuǎn)換成RS485信號(hào)進(jìn)行傳輸。對(duì)于主機(jī)來(lái)講,通信軟件就是對(duì)RS232串行通信端口進(jìn)行編程。
主機(jī)通信軟件采用Windows環(huán)境下的VB 6.0進(jìn)行編程。Windows操作系統(tǒng)在底層實(shí)現(xiàn)了和串行通信有關(guān)的很多復(fù)雜的工作,它自動(dòng)將所有接收到的字符放到接收緩沖區(qū)中,而所有發(fā)送的字符也都進(jìn)入發(fā)送緩沖區(qū)中。程序可讀取接收緩沖區(qū)的數(shù)據(jù),或者向發(fā)送緩沖區(qū)發(fā)送數(shù)據(jù)。VB6.0是微軟公司開發(fā)的一種可視化編程工具,具有界面友好、編程方便、簡(jiǎn)單易行等特點(diǎn)。VB6.0與Windows系統(tǒng)有著非常完美的接口,可據(jù)以設(shè)計(jì)系統(tǒng)的內(nèi)建及外掛控件更是眾多。同時(shí),VB6.0還提供了一個(gè)非常方便的通信控件MSComm。應(yīng)用程序嵌入MSComm控件,通過(guò)MSComm控件提供的事件驅(qū)動(dòng)或查詢方式來(lái)進(jìn)行串行通信管理[5, 6]。
編寫RS485網(wǎng)絡(luò)通信程序很少用事件驅(qū)動(dòng)方式,而多采用查詢方式。本程序使用的方法對(duì)常用的查詢方式進(jìn)行了簡(jiǎn)化,不用檢測(cè)CommEvent屬性值,節(jié)省了程序運(yùn)行時(shí)間。
4.2 編程要點(diǎn)
4.2.1 實(shí)現(xiàn)校驗(yàn)
主機(jī)發(fā)送查詢命令或接收從機(jī)應(yīng)答數(shù)據(jù)時(shí),校驗(yàn)碼的計(jì)算是通過(guò)調(diào)用函數(shù)fun_SerialCRC()實(shí)現(xiàn)的。函數(shù)fun_SerialCRC()放在程序模塊中。
CRC校驗(yàn)的軟件實(shí)現(xiàn)有兩種方法:一種為計(jì)算法;另一種為查表法。計(jì)算法就是依據(jù)CRC校驗(yàn)碼的產(chǎn)生原理來(lái)設(shè)計(jì)程序的。其優(yōu)點(diǎn)就是:模塊代碼少,修改靈活,可移植性好。其缺點(diǎn)就是:計(jì)算量大。而查表法的優(yōu)缺點(diǎn)正好與計(jì)算法相反,因?yàn)閷?duì)于固定字節(jié)CRC校驗(yàn)計(jì)算的多項(xiàng)式因子,其CRC值是固定的,因而,采用查表法可以簡(jiǎn)化計(jì)算過(guò)程、節(jié)省應(yīng)答時(shí)間、提高通信效率。本文采用的是查表法,程序流程圖如圖3所示。
[align=center]

圖3 CRC16查表法實(shí)現(xiàn)流程圖
Fig.3 The flowchart of CRC16 table lookup[/align]
4.2.2 實(shí)現(xiàn)周期性輪巡發(fā)送
為了保證主機(jī)不斷地將查詢命令下達(dá)到各個(gè)從機(jī),程序使用一個(gè)定時(shí)器控件Timer1,將Timer控件的間隔屬性設(shè)置為100ms,在定時(shí)器的Timer事件過(guò)程中寫入主機(jī)向一臺(tái)從機(jī)發(fā)送查詢信息的子程序SendPackage()。這樣每隔100ms調(diào)用一次子程序,主機(jī)向一臺(tái)從機(jī)完成一次命令發(fā)送。如果有十臺(tái)從機(jī),這樣依次每隔100ms便查詢一臺(tái)從機(jī),1s鐘就可以實(shí)現(xiàn)對(duì)十臺(tái)從機(jī)的輪巡。
如果主機(jī)是對(duì)各個(gè)從機(jī)的同一個(gè)數(shù)據(jù)信息進(jìn)行查詢,查詢信息幀的命令內(nèi)容是完全相同的,除從機(jī)地址碼不同外,其格式基本相同。發(fā)送命令子程序流程圖如圖4所示。
[align=center]

圖4 發(fā)送命令子程序流程圖
Fig.4 The subroutine flowchart of sending command[/align]
4.2.3 實(shí)現(xiàn)50ms時(shí)限
在發(fā)送命令的過(guò)程中,程序利用Timer1控件定時(shí),中斷后通過(guò)調(diào)用信息發(fā)送子函數(shù)實(shí)現(xiàn)主機(jī)對(duì)各個(gè)從機(jī)的輪巡查詢。在子函數(shù)中,程序利用Output屬性發(fā)送查詢命令,之后,不用檢測(cè)CommEvent屬性值,而是啟動(dòng)另一個(gè)定時(shí)器控件Timer2(間隔屬性設(shè)置為10ms),直接利用Input屬性從接收緩沖區(qū)讀取字符串,每隔10ms讀取一次,循環(huán)接收從機(jī)應(yīng)答字符串,直至達(dá)到最大時(shí)限(50ms)。
該定時(shí)器事件是程序的核心,它不僅實(shí)現(xiàn)了50ms接收時(shí)限,而且在這里對(duì)接收到的響應(yīng)數(shù)據(jù)幀進(jìn)行有效性判別和應(yīng)答。該段程序流程圖如圖5所示。
[align=center]

圖5 定時(shí)器Timer2事件過(guò)程流程圖
Fig.5 The event process flowchart of Timer2[/align]
圖中,REVOK—處理mbEvent所代表的事件;mbEvent=0—正常接收并進(jìn)行數(shù)據(jù)解析;mbEvent=1—地址錯(cuò)誤;mbEvent=2—功能碼錯(cuò)誤;mbEvent=3—CRC16校驗(yàn)錯(cuò)誤;i—循環(huán)變量。
4.2.4 安全數(shù)組實(shí)現(xiàn)循環(huán)接收
主機(jī)接收從機(jī)的響應(yīng)數(shù)據(jù)時(shí),通過(guò)啟動(dòng)定時(shí)器Timer2,每隔10ms對(duì)輸入緩沖區(qū)中的數(shù)據(jù)進(jìn)行一次讀取,直至最大時(shí)限(50ms),實(shí)現(xiàn)了循環(huán)接收輸入緩沖區(qū)中的數(shù)據(jù)。根據(jù)下位機(jī)的回送的數(shù)據(jù)信息,上位機(jī)解析所接收的數(shù)據(jù),并進(jìn)行必要的處理。一般而言從下位機(jī)發(fā)送的數(shù)據(jù)都有一定的幀長(zhǎng)度,特別是對(duì)于一些固化好的智能儀表。因此最好的方法是按照通信回送的幀長(zhǎng)度,在上位機(jī)程序中分別開辟兩個(gè)數(shù)組。一個(gè)為安全數(shù)組,設(shè)為動(dòng)態(tài)數(shù)組,用來(lái)循環(huán)接收串口緩沖區(qū)中的數(shù)據(jù);另一個(gè)作為接收數(shù)組,長(zhǎng)度為回送數(shù)據(jù)幀長(zhǎng)度,用來(lái)復(fù)制接收安全數(shù)組中的數(shù)據(jù)并進(jìn)行解析。這樣可以提高整個(gè)系統(tǒng)的容錯(cuò)能力。具體代碼(寫在定時(shí)器事件中)如下:
Dim inputbuf(14) As Byte ’接收數(shù)組
Dim inputsafebuf() As Byte ’安全數(shù)組
Dim a As Integer
Dim index As Integer
a = 0
……
Private Sub Timer2_Timer()
Inputsafebuf = MSComm1.Input ’將輸入緩沖區(qū)中的數(shù)據(jù)放入安全數(shù)組中
For index = LBound(inputsafebuf) To UBound(inputsafebuf)
inputbuf(index + a) = inputsafebuf(index)
Next index ’將安全數(shù)組中的數(shù)據(jù)放入接收數(shù)組中
a = UBound(inputsafebuf) + a + 1 ’循環(huán)變量,實(shí)現(xiàn)循環(huán)接收
……
End Sub
代碼中的inputbuf()為接收數(shù)組,而inputsafebuf()就是另外開辟的安全數(shù)組。
4.3 窗體載入事件過(guò)程
窗體載入事件(Form_Load)在程序剛開始時(shí)被調(diào)用,負(fù)責(zé)設(shè)置通信端口參數(shù),啟動(dòng)定時(shí)器Timer1。主要程序代碼如下:
Pravite Form_Load()
MSComm.CommPort = 1 ’設(shè)定需要使用的串口,當(dāng)然這里可以用輸入方式靈活設(shè)定。暫定1號(hào)端口
MSComm.Settings = “9600,n,8,1” ’設(shè)定傳輸?shù)牟ㄌ芈屎托r?yàn)方式
MSComm.InputLen = 0 ’一次全部讀入所需要的數(shù)據(jù)
MSComm.InputMode = comInputModeBinary ’設(shè)定為二進(jìn)制的數(shù)據(jù)流方式
……
MSComm1.Portopen = True ’打開通信串口
Timer1.Interval = 100 ’設(shè)定定時(shí)器1定時(shí)值為100ms
Timer1.Enable = True ’啟動(dòng)定時(shí)器1
Timer2.Interval = 10 ’設(shè)定定時(shí)器2定時(shí)值為10ms
Timer2.Enable = False ’關(guān)閉定時(shí)器2
End Sub
4.4 定時(shí)器Timer1事件過(guò)程
此事件會(huì)在每1個(gè)屬性值的間隔內(nèi)(前已設(shè)定為100ms)被調(diào)用一次,完成主機(jī)和從機(jī)之間的周期性輪巡通信。主要程序代碼如下:
Dim j As Interger
Dim n As Interger
j = 0
Pravite Timer1_Timer()
j = j + 1
n = j
If j >= 10 Then j = 0 ’周期性輪巡
SendPackage n ’調(diào)用與n號(hào)從機(jī)通信的子程序
End Sub
5 結(jié)論
在本監(jiān)控系統(tǒng)中,RS485總線上連有10臺(tái)低壓智能綜合保護(hù)器,所選用的傳輸波特率為9600bps,保護(hù)器中的動(dòng)態(tài)信息數(shù)據(jù)可以在PC機(jī)上實(shí)現(xiàn)每隔1s更新一次。對(duì)于保護(hù)器中的其他數(shù)據(jù)信息,發(fā)送與接收數(shù)據(jù)幀最大不超過(guò)60byte,因此,該通訊軟件完全能夠滿足傳輸過(guò)程中的穩(wěn)定性、可靠性和準(zhǔn)確性。但在實(shí)際通訊的過(guò)程中,可根據(jù)工業(yè)現(xiàn)場(chǎng)的具體情況調(diào)整傳輸波特率和輪巡周期的長(zhǎng)度。
本文設(shè)計(jì)的通信軟件已應(yīng)用于低壓配電監(jiān)控系統(tǒng)中,實(shí)踐證明本系統(tǒng)能夠正常運(yùn)行,上位機(jī)與下位機(jī)的通信穩(wěn)定可靠,軟件使用方便,實(shí)現(xiàn)了對(duì)綜合保護(hù)器DYZB-101A的智能化控制,有效地降低了工業(yè)現(xiàn)場(chǎng)的故障發(fā)生率。本通信協(xié)議和通信軟件也有一定的通用性,提供了一個(gè)對(duì)于工廠、電廠、工業(yè)監(jiān)控系統(tǒng)簡(jiǎn)單實(shí)用的通信軟件。
參考文獻(xiàn)
[1] 范逸之. Visual Basic與分布式監(jiān)控系統(tǒng)[M]. 北京:清華大學(xué)出版社,2002
[2] 馬驊,張國(guó)勛. Modbus通訊協(xié)議在液位監(jiān)測(cè)系統(tǒng)中的應(yīng)用[J]. 邢臺(tái)職業(yè)技術(shù)學(xué)院學(xué)報(bào),2004,21(3):36-38
[3] 李喜東,劉濤,劉剛. Modbus-RTU串行通信協(xié)議在工業(yè)現(xiàn)場(chǎng)的應(yīng)用[J]. 自動(dòng)化技術(shù)與應(yīng)用,2005,24(7):37-40
[4] DYZB-101A型低壓智能綜合保護(hù)器使用說(shuō)明書. 天津東泰科技發(fā)展有限公司,2004
[5] 范逸之,陳立元. Visual Basic與RS-232串行通信控制[M]. 北京:清華大學(xué)出版社,2002:54-110
[6] 李湘江. Visual Basic串行通信技術(shù)[J]. 電氣傳動(dòng)自動(dòng)化,2004,20(6):9-11