摘 要: 以串口通信技術(shù)為基礎(chǔ),結(jié)合對(duì)RTU參數(shù)進(jìn)行配置與調(diào)試的特點(diǎn)與應(yīng)用需求,提出了該參數(shù)配置與調(diào)試系統(tǒng)的基本框架,并設(shè)計(jì)開(kāi)發(fā)了該系統(tǒng)。該系統(tǒng)可視化好,交互性強(qiáng),通過(guò)配置文件及RTU兩種方式批量導(dǎo)入導(dǎo)出參數(shù)信息,提高了效率,克服了普通超級(jí)終端系統(tǒng)命令行輸入及每次只能進(jìn)行單個(gè)參數(shù)配置的不足。實(shí)踐證明,該系統(tǒng)運(yùn)行穩(wěn)定,操作簡(jiǎn)單易行,為YDG?1型RTU參數(shù)配置與調(diào)試帶來(lái)諸多方便。
關(guān)鍵詞: 串口通信; RTU; 參數(shù)配置; 調(diào)試系統(tǒng)
中圖分類號(hào): TN919?34 文獻(xiàn)標(biāo)識(shí)碼: A 文章編號(hào): 1004?373X(2014)02?0064?04
0 引 言
近年來(lái),YDG?1型遠(yuǎn)程數(shù)據(jù)采集儀(以下簡(jiǎn)稱為RTU)在水利行業(yè)的地位已經(jīng)日益重要,它在水利信息化領(lǐng)域有著廣泛的應(yīng)用,其可以對(duì)水位、降雨量等參數(shù)進(jìn)行實(shí)時(shí)的采集和處理,以滿足水利站計(jì)算機(jī)系統(tǒng)實(shí)時(shí)監(jiān)控等要求。然而,RTU的參數(shù)繁多,計(jì)算機(jī)操作系統(tǒng)自帶的超級(jí)終端通過(guò)串口與計(jì)算機(jī)相連進(jìn)行設(shè)置,需要在命令行敲入命令,而且一次只能設(shè)置一個(gè)參數(shù)。這無(wú)疑會(huì)要求操作人員需要熟悉命令,且設(shè)置過(guò)程中需要花費(fèi)大量的人力與精力[1]。基于串口通信的YDG?1型RTU參數(shù)配置與調(diào)試系統(tǒng)YDG?1RTUPCDSBSPC(YDG?1 RTU Parameter Configuration and Debugging System Based on Serial Port Communication)填補(bǔ)了該空白。該系統(tǒng)具有通過(guò)該系統(tǒng)無(wú)需知道命令就可以批量地多方式地配置調(diào)試參數(shù),且界面友好,交互性強(qiáng),最重要的是減少了大量的人力投入,為RTU參數(shù)的配置與調(diào)試提供了一條簡(jiǎn)便可行的途徑。
1 串口通信簡(jiǎn)介
串口通信是指使用一條數(shù)據(jù)線,將數(shù)據(jù)一位一位地依次傳輸,每一位數(shù)據(jù)占據(jù)一個(gè)固定的時(shí)間長(zhǎng)度。其只需要少數(shù)幾條線就可以在系統(tǒng)間交換信息,特別適用于計(jì)算機(jī)與計(jì)算機(jī)、計(jì)算機(jī)與外設(shè)之間的通信。使用串口通信時(shí),發(fā)送和接收的每一個(gè)字符實(shí)際上都是一次一位的傳送的[2],每一位為1或者為0。
通過(guò)單線傳輸信息是串行數(shù)據(jù)通信的基礎(chǔ)。數(shù)據(jù)通常是在兩個(gè)站(點(diǎn)對(duì)點(diǎn))之間進(jìn)行傳送,按照數(shù)據(jù)流方向可分成三種傳送模式:?jiǎn)喂?、半雙工、全雙工[3]。單工形式的數(shù)據(jù)傳送是單向的。通信雙方中,一方固定是發(fā)送端,另一方則固定是接收端,使用一根傳輸線。半雙工形式使用同一根傳輸線,即可發(fā)送數(shù)據(jù)又可接收數(shù)據(jù),但不能同時(shí)同發(fā)送和接收數(shù)據(jù)。如RS 485可以使用一條數(shù)據(jù)線,也可以使用兩條數(shù)據(jù)線。全雙工數(shù)據(jù)通信分別由兩根可以在兩個(gè)不同的端點(diǎn)同時(shí)發(fā)送和接收的傳輸線進(jìn)行傳送,通信雙方都能在同一時(shí)刻進(jìn)行發(fā)送和接收操作,如RS 232在全又工形式中,每一端都有發(fā)送器和接收器,有兩條傳送線。
由于串口通信是異步的,端口能夠在一根線上發(fā)送數(shù)據(jù)同時(shí)在另一根線上接收數(shù)據(jù),其他線用于握手,但不是必須的。串口通信最重要的參數(shù)是波特率、數(shù)據(jù)位、停止位和奇偶校驗(yàn)[4]。對(duì)于兩個(gè)進(jìn)行通信的端口,這些參數(shù)必須匹配:
波特率是一個(gè)衡量通信速度的參數(shù),它表示每秒鐘傳送的bit的個(gè)數(shù)。時(shí)鐘周期也是指波特率,例如協(xié)議需要4 800 b/s,那么時(shí)鐘是4 800 Hz。這意味著串口通信在數(shù)據(jù)線上的采樣率為4 800 Hz。波特率和距離成反比[5]。
數(shù)據(jù)位是衡量通信中實(shí)際數(shù)據(jù)位的參數(shù)。當(dāng)計(jì)算機(jī)發(fā)送一個(gè)信息包,實(shí)際的數(shù)據(jù)不會(huì)是8位的,標(biāo)準(zhǔn)的值是5,7和8位。如何設(shè)置取決于需要傳送的信息。每個(gè)包是指一個(gè)字節(jié),包括開(kāi)始/停止位,數(shù)據(jù)位和奇偶校驗(yàn)位。由于實(shí)際數(shù)據(jù)位取決于通信協(xié)議的選取,術(shù)語(yǔ)“包”指任何通信的情況[6]。
停止位用于表示單個(gè)包的最后一位。典型的值為1,1.5和2位。由于數(shù)據(jù)是在傳輸線上定時(shí)的,并且每一個(gè)設(shè)備有其自己的時(shí)鐘,很可能在通信中兩臺(tái)設(shè)備間出現(xiàn)了小小的不同步。因此停止位不僅僅是表示傳輸?shù)慕Y(jié)束,并且提供計(jì)算機(jī)校正時(shí)鐘同步的機(jī)會(huì)。
奇偶校驗(yàn)位是串口通信中一種簡(jiǎn)單的檢錯(cuò)方式。有四種檢錯(cuò)方式:偶、奇、高和低。當(dāng)然沒(méi)有校驗(yàn)位也是可以的。
2 YDG?1型RTU通信協(xié)議簡(jiǎn)介
YDG?1型數(shù)據(jù)采集儀(RTU)是一種水文參數(shù)實(shí)時(shí)采集、處理系統(tǒng),它應(yīng)用了通信、遙測(cè)和計(jì)算機(jī)等技術(shù),進(jìn)行江河、水庫(kù)、流域內(nèi)降雨量、水位參數(shù)的實(shí)時(shí)采集和處理[7]。以實(shí)現(xiàn)防洪、減災(zāi)、供水、發(fā)電等優(yōu)化調(diào)度的自動(dòng)化系統(tǒng)設(shè)備。系統(tǒng)的成功使用可使防汛指揮部門及時(shí)、可靠的掌握流域內(nèi)的水情,為水庫(kù)、水電站、流域的防汛和優(yōu)化調(diào)度提供準(zhǔn)確的依據(jù),為水文資料整編提供數(shù)據(jù),以提高社會(huì)經(jīng)濟(jì)效益[8]。
YDG?1型數(shù)據(jù)采集儀(RTU)是一種高可靠性、低功耗的適合野外工作環(huán)境的水文數(shù)據(jù)采集傳輸設(shè)備,它可以定時(shí)和實(shí)時(shí)地采集雨量、水位參數(shù)并進(jìn)行計(jì)算處理和判斷,然后將處理的數(shù)據(jù)按標(biāo)準(zhǔn)格式存儲(chǔ)在本地存儲(chǔ)芯片內(nèi),并可通過(guò)本地串口線下載或通過(guò)GPRS通信模塊發(fā)送到中心站。同時(shí)也可以響應(yīng)中心站發(fā)送的參數(shù)召測(cè)命令,及時(shí)將有關(guān)數(shù)據(jù)返回發(fā)送[9?10]。該設(shè)備具有實(shí)時(shí)數(shù)據(jù)顯示和各參數(shù)靈活設(shè)置的功能。YDG?1型數(shù)據(jù)采集儀系統(tǒng)框圖如圖1所示。YDG?1型數(shù)據(jù)采集儀可以接正、反格雷碼機(jī)械編碼水位計(jì)、CBS氣泡水位計(jì)、RLS雷達(dá)水位計(jì)、Nimbus氣泡水位計(jì)、Kalesto雷達(dá)水位計(jì)等水位傳感器[11]。
3 YDG?1RTUPCDSBSPC的實(shí)現(xiàn)
3.1 主體架構(gòu)
YDG?1RTUPCDSBSPC旨在批量簡(jiǎn)便地配置與調(diào)試RTU參數(shù),系統(tǒng)建設(shè)的關(guān)鍵是參數(shù)讀取源??梢酝ㄟ^(guò)三種方式批量地讀RTU參數(shù)。
(1) 從配置文件讀取參數(shù)。這種方式的優(yōu)越性體現(xiàn)在多臺(tái)RTU配置的情況,無(wú)需知道RTU原來(lái)的參數(shù)信息,讀取效率非常高。
(2) 從RTU讀取RTU內(nèi)的參數(shù)??梢砸绘I讀取RTU內(nèi)的所有的參數(shù)信息,在需要查看比較多的RTU參數(shù)的情況下,這種方式比較合適。
(3) 直接連接RTU不批量讀取參數(shù),可以通過(guò)單個(gè)讀取按鈕從RTU來(lái)讀取單個(gè)參數(shù)。
以上三種讀取方式,視實(shí)際的現(xiàn)場(chǎng)需求選擇讀取方式。有了多種可選擇的讀取方式作為保證,大大提高了工作效率和實(shí)用性。系統(tǒng)界面友好,交互性強(qiáng),經(jīng)實(shí)際運(yùn)用后證實(shí)了其健壯性。整個(gè)系統(tǒng)工作流程如圖2所示。
在圖2 的系統(tǒng)流程中,系統(tǒng)用戶首次使用需配置參數(shù)配置文件的段名以及串口連接的相關(guān)參數(shù)。系統(tǒng)中的段名與配置文件中的段名是惟一相對(duì)應(yīng)的。串口參數(shù)有通信端口號(hào)、波特率、數(shù)據(jù)位、校驗(yàn)碼、停止位、數(shù)據(jù)流控制等。系統(tǒng)連接RTU成功后,視實(shí)際需求選取讀取參數(shù)的方式。首次參數(shù)顯示在系統(tǒng)相應(yīng)的頁(yè)面上,需要調(diào)整可調(diào)整下參數(shù),一鍵保存對(duì)應(yīng)的參數(shù)到RTU及配置文件中。配置完成后,斷開(kāi)串口連接,完成配置。
3.2 系統(tǒng)功能模塊
RTU配置調(diào)試軟件提供了對(duì)RTU參數(shù)配置調(diào)試的管理機(jī)制。整個(gè)系統(tǒng)分為三大模塊:控制模塊、設(shè)置與顯示模塊以及監(jiān)控模塊。系統(tǒng)功能模塊分布見(jiàn)圖3。
3.2.1 控制模塊
控制模塊中設(shè)有四個(gè)子模塊:串口配置、參數(shù)源配置、串口控制、系統(tǒng)退出。串口配置模塊實(shí)現(xiàn)串口參數(shù)的配置。參數(shù)源配置模塊實(shí)現(xiàn)參數(shù)源的獲?。嚎梢詮呐渲梦募蝎@取,也可以從RTU本身獲取,或不獲得參數(shù)連接RTU。串口控制模塊實(shí)現(xiàn)與RTU的連接與RTU的斷開(kāi)操作。
3.2.2 設(shè)置與顯示模塊
配置模塊中按參數(shù)功能設(shè)有7大子模塊:系統(tǒng)命令參數(shù)配置、通信設(shè)置參數(shù)配置、通信通道設(shè)置參數(shù)配置、雨量設(shè)置參數(shù)配置、雨量傳感器設(shè)置參數(shù)配置、水位設(shè)置參數(shù)配置、水位傳感器設(shè)置參數(shù)配置。按功能模塊劃分參數(shù),分類處理更簡(jiǎn)明易了。在這7個(gè)子模塊可多參配置與調(diào)試參數(shù),也可單參配置與調(diào)試參數(shù)。
3.2.3 監(jiān)控模塊
監(jiān)控模塊設(shè)有實(shí)時(shí)事務(wù)監(jiān)控與RTU實(shí)時(shí)通信數(shù)據(jù)流監(jiān)控兩個(gè)子模塊。通過(guò)實(shí)時(shí)事務(wù)監(jiān)控子模塊可以隨時(shí)監(jiān)控軟件的運(yùn)行狀況。RTU實(shí)時(shí)通信數(shù)據(jù)流監(jiān)控模塊中給出了詳細(xì)的命令數(shù)據(jù)流,方便查閱與監(jiān)控。這兩個(gè)子模塊增加了通信過(guò)程中系統(tǒng)的可讀性。
3.3 系統(tǒng)實(shí)現(xiàn)
基于串口通信的RTU參數(shù)配置與調(diào)試系統(tǒng),為參數(shù)的配置與維護(hù)提供了一條簡(jiǎn)明方便有效的捷徑。系統(tǒng)基于Visual Studio 2005的開(kāi)發(fā)環(huán)境下,采用C#語(yǔ)言編制。經(jīng)多次測(cè)試使用證明,該系統(tǒng)穩(wěn)定可靠,操作方便。系統(tǒng)的主界面如圖4所示。
4 結(jié) 論
本文首先分析了基于串口通信的YDG?1型RTU參數(shù)配置與調(diào)試系統(tǒng)的研究意義。該系統(tǒng)為YDG?1型RTU的參數(shù)配置提供了重要技術(shù)方法。系統(tǒng)在傳統(tǒng)的單參數(shù)配置基礎(chǔ)上探索了多參數(shù)配置的方法,給實(shí)際的現(xiàn)場(chǎng)應(yīng)用帶來(lái)諸多好處。隨著RTU軟件的不斷深入,以及水利行業(yè)對(duì)RTU的需求的不斷深入,RTU參數(shù)配置與調(diào)試系統(tǒng)的功能將會(huì)不斷完善。
參考文獻(xiàn)
[1] 江峰,劉高嵩.串口通信中系統(tǒng)資源的分配問(wèn)題的研究[J].計(jì)算機(jī)技術(shù)與發(fā)展,2006(11):1?3.
[2] 向樂(lè)樂(lè),盧艷娥.基于 Nios Ⅱ的多串口數(shù)據(jù)通信的實(shí)現(xiàn)[J].電子設(shè)計(jì)工程,2011(2):1?3.
[3] 翟希述,王寶興,范淼.基于Visual C#的串口通信程序設(shè)計(jì)[J].電子科技,2011(2):2?4.
[4] ISO. ISO/IEC3309 Telecommunication and information exchange between systems: high?level data link control (HDLC) procedures?fame structure [S].[S.l.]: ISO, 1993.
[5] 李現(xiàn)勇.Visual C++串口通信技術(shù)與工程實(shí)踐[M].北京:人民郵電出版社,2002.
[6] 龔建偉,熊光明.Visual C++/Turbo C串口通信編程實(shí)踐[M].北京:電子工業(yè)出版社,2004.
[7] 鄭彪,汪秉文.串口通信在工業(yè)控制中的應(yīng)用[J].自動(dòng)化儀表,2002(4):1?2.
[8] 呂國(guó)芳,唐海龍,李進(jìn).基于Modus RTU 的串口調(diào)試軟件的實(shí)現(xiàn)[J].計(jì)算機(jī)技術(shù)與發(fā)展,2009(9):1?3.
[9] 封亞斌.采用串口通信技術(shù)實(shí)現(xiàn)Modbus數(shù)據(jù)通信[J].自動(dòng)化儀表,2004(10):1?3.
[10] 楊偉,劉婭琳,張俊芳,等.基于RTU的用戶側(cè)管理服務(wù)系統(tǒng)設(shè)計(jì)[J].電力需求側(cè)管理,2004(1):1?3.
[11] 蘇柱賓,蔣存波,張斌.狀態(tài)機(jī)原理在Modbus協(xié)議實(shí)現(xiàn)中的應(yīng)用[J].軟件導(dǎo)報(bào),2011(1):1?3.