劉 偉 ,吳永新 ,陳宇驍
(1.水利部南京水利水文自動(dòng)化研究所,江蘇 南京 210012;2.南京市水利局,江蘇 南京 210018;3.河海大學(xué)計(jì)算機(jī)與信息學(xué)院(常州),江蘇 常州 213022)
中小型水庫(kù)的水文測(cè)驗(yàn)和安全防護(hù)關(guān)系著下游的安全和周邊城鄉(xiāng)的發(fā)展,對(duì)水資源的需求和防汛安全要求逐漸提高。利用中小型水庫(kù)信息采集傳輸關(guān)鍵技術(shù),實(shí)現(xiàn)中小型水庫(kù)防汛和安全監(jiān)測(cè)自動(dòng)化采集傳輸并進(jìn)行分析評(píng)估,便于防汛抗旱指揮和其他部門(mén)應(yīng)急決策、指揮、調(diào)度,利用科技手段,提高水庫(kù)管理水平,最大程度避免損失和在安全狀態(tài)下充分利用水資源。
國(guó)內(nèi)大部分中小型水庫(kù)沒(méi)有防汛信息采集技術(shù)設(shè)施,水庫(kù)建設(shè)時(shí)亦沒(méi)有同步建設(shè)水位測(cè)井。目前不可能重新建設(shè)水位測(cè)井,因此,傳感器不能采用常規(guī)的浮子式水位傳感器完成水位監(jiān)測(cè)。通過(guò)引進(jìn)消化吸收德國(guó)免測(cè)井水文測(cè)驗(yàn)技術(shù),解決中小型水庫(kù)水文專(zhuān)項(xiàng)測(cè)驗(yàn)問(wèn)題,是一種有益的嘗試。通過(guò)消化吸收應(yīng)用,開(kāi)發(fā)出針對(duì)我國(guó)中小型水庫(kù)特點(diǎn)的水文監(jiān)測(cè)處理技術(shù),推動(dòng)了國(guó)內(nèi)中小型水庫(kù)水文自動(dòng)監(jiān)測(cè)和管理水平的發(fā)展。
目前市場(chǎng)上的水情遙測(cè)終端只能適應(yīng)固定的傳感器,如果要更換傳感器必須要更換相應(yīng)的終端程序,或者通過(guò)軟件對(duì)終端機(jī)進(jìn)行設(shè)置,給開(kāi)發(fā)和安裝維護(hù)人員帶來(lái)了不便。傳感器自適應(yīng)水情遙測(cè)終端機(jī)則彌補(bǔ)了這方面的不足。
水情傳感器設(shè)備種類(lèi)繁多,形式各異。測(cè)量水位的傳感器通訊方式也多種多樣,串行通信由于實(shí)現(xiàn)簡(jiǎn)單,需要的系統(tǒng)硬件資源較少,在水情遙測(cè)系統(tǒng)中得到了廣泛的應(yīng)用。串行通信接口(SCI)中最常用的有 RS-232、RS-485 和 SDI-12 通信接口。
串行通信接口的傳感器在與遙測(cè)終端機(jī)通信的過(guò)程中,波特率和通訊協(xié)議隨設(shè)備不同而異。要設(shè)計(jì)具有自適應(yīng)能力的遙測(cè)終端機(jī),首先要對(duì)傳感器進(jìn)行智能識(shí)別。經(jīng)過(guò)對(duì)大量串行通訊的傳感器進(jìn)行分析,得出傳感器識(shí)別主要在于波特率和握手通信的差異。通過(guò)建立通信協(xié)議棧,根據(jù)傳感器的 ID 號(hào)調(diào)用不同的通訊協(xié)議程序,能實(shí)現(xiàn)對(duì)傳感器的自動(dòng)調(diào)用。
在通信過(guò)程中,只有通信雙方采用相同的波特率時(shí),才能實(shí)現(xiàn)數(shù)據(jù)的正確傳輸,這給串行通信傳感器的使用帶來(lái)不便,特別是對(duì)于波特率變化的情況[1]。如果能夠?qū)崿F(xiàn)串行接口速率的自適應(yīng),無(wú)疑會(huì)提高串行傳感器使用的靈活性和通用性。
波特率自適應(yīng)的常用方法主要有標(biāo)準(zhǔn)波特率窮舉法和碼元寬度實(shí)時(shí)檢驗(yàn)法[2]。標(biāo)準(zhǔn)波特率窮舉法要求數(shù)據(jù)終端傳輸數(shù)據(jù)所采用的波特率必須在有限的幾個(gè)固定數(shù)值之間變化,如標(biāo)準(zhǔn)波特率序列。串行設(shè)備啟動(dòng)后,逐個(gè)嘗試以不同的波特率接收數(shù)據(jù)終端發(fā)出的特征字符,直到能正確接收為止。碼元寬度實(shí)時(shí)檢測(cè)法要求數(shù)據(jù)終端按照約定發(fā)送特征字符,串行設(shè)備測(cè)量輸入數(shù)據(jù)的碼元寬度,而后計(jì)算出待測(cè)的波特率。例如,某 GSM 模塊在設(shè)計(jì)時(shí)為了適應(yīng)各種波特率,要求通信系統(tǒng)首先發(fā)送 08H,然后發(fā)送指令,它就是依靠數(shù)據(jù) 08H 的碼元寬度計(jì)算出對(duì)方波特率的。波特率窮舉法適應(yīng)于波特率在幾個(gè)有限的固定數(shù)值的變化,并且從機(jī)的工作振蕩頻率穩(wěn)定可靠。由于水情傳感器的波特率比較固定,集中在 1200,4800,9600,12000 bps 等,且工作穩(wěn)定可靠;而碼元寬度實(shí)時(shí)檢測(cè)法需要占用單片機(jī)過(guò)多資源。因此本文采用標(biāo)準(zhǔn)波特率窮舉法,待遙測(cè)終端機(jī)啟動(dòng)通信程序后,逐個(gè)嘗試用不同的波特率接受傳感器發(fā)送的數(shù)據(jù),直到能正確接收為止。
每種水文傳感器會(huì)提供大量通信協(xié)議指令,以提供給用戶使用不同的功能,如對(duì)傳感器的波特率、長(zhǎng)度、地址進(jìn)行設(shè)置或者訪問(wèn)水文測(cè)值等。在對(duì)傳感器進(jìn)行識(shí)別時(shí),無(wú)須一一使用這些通信協(xié)議,只需要從傳感器的通信協(xié)議中,取出握手協(xié)議,得出傳感器特征即可。
1.3.1 感應(yīng)式數(shù)字水位傳感器
感應(yīng)式數(shù)字水位傳感器是一種采用微處理器芯片為控制器,內(nèi)置通訊電路的數(shù)字式水位傳感器,具備高可靠性及抗干擾性能,可應(yīng)用于江河、湖泊、水庫(kù)、水電站、灌區(qū)及輸水等水利工程中的水位監(jiān)測(cè)。通訊協(xié)議采用 Modbus-RTU 標(biāo)準(zhǔn)協(xié)議,波特率為 9600 bps,1 個(gè)起始位,8 個(gè)數(shù)據(jù)位,1 個(gè)停止位,低位先發(fā)送,無(wú)校驗(yàn)。有 4 種命令格式,使用命令如表1 所示[3]。
由于傳感器的地址、長(zhǎng)度的信息未知,分析 4種命令格式,可以將讀版本號(hào)作為握手協(xié)議[3]。讀版本號(hào)的通信命令格式:目標(biāo)地址 + 功能碼 + 起始地址 + 寄存器個(gè)數(shù) + CRC 校驗(yàn)。地址未知,可采用廣播幀的方式,即目標(biāo)地址發(fā)送 00。發(fā)送 0003 0003 0001 75 DB,響應(yīng):0A 030E 5633 2E 302E 3320 5443 3430 312D 33 CRC(本響應(yīng)共 18 字節(jié))。0A 表述傳感器的地址為 10 號(hào),030E 5633 2E 302E 3320 5443 3430 312D 33 表示傳感器的版本號(hào)為V3.0.3 TC401-3。傳感器的地址是可以設(shè)置的,但是版本號(hào)是固定不變的,可以根據(jù)回執(zhí)中的版本號(hào)信息來(lái)判定傳感器是否為感應(yīng)式數(shù)字水位計(jì)。
表1 感應(yīng)式數(shù)字水位傳感器使用命令一覽表
1.3.2 氣泡水位計(jì)
PS-Light 系列氣泡水位計(jì)為高精度水位傳感器,主要用于水文站水位觀測(cè)點(diǎn)不便建井或者建井費(fèi)用昂貴的地點(diǎn)。它具有安裝、維護(hù)方便,操作靈活,運(yùn)行穩(wěn)定、可靠、精度高等特點(diǎn),是遙測(cè)系統(tǒng)中水位監(jiān)測(cè)尤其是無(wú)井水位監(jiān)測(cè)的理想水位監(jiān)測(cè)儀器。它的輸出信號(hào)為 RS-232,通過(guò)遙測(cè)終端機(jī)RS-232 口獲取水位計(jì)采集的信息[4]。其通訊協(xié)議如圖1 所示。
PS-Light2 協(xié)議本身比較復(fù)雜,如果等待氣泡水位計(jì)測(cè)量到水位,需要的時(shí)間比較長(zhǎng),而喚醒命令只需要等待 1 s 的時(shí)間,因此可以將喚醒命令作為握手通信協(xié)議。而儀器的波特率是未知的,因此就要用到波特率自適應(yīng)程序,波特率自適應(yīng)程序首先使用常用的波特率 9600 bps,然后使用 19200 bps,其次使用 1200 bps,再將其它常用的波特率進(jìn)行輪詢使用。具體步驟如下:1)總線電源開(kāi)啟,將串行口中的 DTR 引腳置高電平; 2)發(fā)送廣播信息幀,即發(fā)送 0xF002 命令;3)等待 1 s 的時(shí)間;4)調(diào)用波特率自適應(yīng)程序,發(fā)送讀信道數(shù)命令碼 0x504A;5)輪詢等待應(yīng)答信號(hào),得到氣泡水位計(jì)的波特率[5]。
1.3.3 雷達(dá)水位計(jì)
OTT RLS 雷達(dá)液位計(jì)是一種非接觸式水位測(cè)量?jī)x,是測(cè)量地表水位的新型測(cè)量設(shè)備,不受溫度等外界環(huán)境影響,在水文野外測(cè)量中具有很多優(yōu)點(diǎn)。該傳感器設(shè)計(jì)緊湊,安裝方便,免維護(hù)。因不與水面接觸,在測(cè)量中不受淤泥、水上垃圾等因素的影響,使用該儀器不需建測(cè)井,通過(guò)內(nèi)置軟件自動(dòng)修正波浪影響。
圖1 PS-Light2通信協(xié)議
OTT RLS 供電電壓為 12 V,非工作狀態(tài)時(shí)能自動(dòng)進(jìn)入低功耗狀態(tài),采用 SDI-12 通信協(xié)議。SDI-12是一種標(biāo)準(zhǔn)的接口方式,它提供了連接數(shù)據(jù)采集器和智能傳感器的方法。SDI-12 通信協(xié)議采樣 3 線制,包括 +12 V 電源線、數(shù)據(jù)線和地線。
SDI-12 支持的傳感器與記錄器之間的通訊是依靠在數(shù)據(jù)線上互相交換美國(guó)標(biāo)準(zhǔn)信息交換 ASCII 來(lái)實(shí)現(xiàn)的。SDI-12 的波特率設(shè)定為 1200 bps。1 個(gè)字節(jié) (1 幀) 由 10 個(gè)二進(jìn)制位組成:1 個(gè)起始位(第 1 位),7 個(gè)字符編碼位,1 個(gè)偶校驗(yàn)位 (第 9 位)和 1 個(gè)停止位[6]。
其典型的測(cè)量步驟如下:
1)主機(jī)發(fā)中斷命令,內(nèi)容是: break 和 mark信號(hào)。其中,break 信號(hào)是持續(xù)至少 12.00 ms 的空號(hào)信號(hào);然后是持續(xù) 8.33 ms(允許誤差 -0.4 ms)的 mark 信號(hào)。
2)主機(jī)設(shè)備向指定地址的傳感器發(fā)送命令, 指示它進(jìn)行測(cè)量。
3)該地址傳感器在 15 ms 內(nèi)做出應(yīng)答,返回測(cè)量數(shù)據(jù)所需的最大時(shí)間和將要返回的數(shù)據(jù)的數(shù)目。
4)如果測(cè)量結(jié)果立即可以得到,則記錄設(shè)備給傳感器發(fā)送命令,指令它傳回測(cè)量結(jié)果;如果測(cè)量結(jié)果未準(zhǔn)備好,則數(shù)據(jù)記錄設(shè)備等待傳感器發(fā)出請(qǐng)求,這個(gè)請(qǐng)求表明數(shù)據(jù)已準(zhǔn)備好,然后記錄設(shè)備傳送命令取數(shù)據(jù)。
5)傳感器應(yīng)答,返回 1 個(gè)或多個(gè)測(cè)量結(jié)果。
OTT RLS 產(chǎn)品手冊(cè)提供了很多命令接口以供用戶使用,根據(jù)自適應(yīng)設(shè)計(jì)只需要提取其中的握手通訊協(xié)議即可。本例中使用激活 OTT RLS 命令 A!(A表示設(shè)備地址)。具體過(guò)程如下:1)將遙測(cè)終端機(jī)的串口 RS-485 定義為普通 IO 口;2)置 TXD(串口發(fā)送引腳)高電平,并保持 12.00 ms;3)置 TXD 低電平,并保持 8.33 ms;4)遙測(cè)終端機(jī)串口波特率設(shè)置為 1200 bps,并發(fā)送激活命令 0! (0 表示廣播地址);5)接受回執(zhí),并判斷回執(zhí)是否正確。
每增加 1 種傳感器就需要多增加 1 段傳感器識(shí)別程序,并添加到通信協(xié)議棧。在傳感器接到遙測(cè)終端機(jī)的時(shí)刻,利用傳感器的觸發(fā)信號(hào),調(diào)用協(xié)議棧中相應(yīng)的識(shí)別程序,識(shí)別到正確的傳感器特征后,系統(tǒng)自動(dòng)進(jìn)入采集和發(fā)送數(shù)據(jù)狀態(tài),不再調(diào)用協(xié)議棧中的其他通信程序,因此無(wú)需占用過(guò)多的系統(tǒng)資源。
中小型水庫(kù)遙測(cè)系統(tǒng)的功能需求主要有以下幾點(diǎn):
1)正確接收 1 次所屬全部水庫(kù)報(bào)汛站的遙測(cè)數(shù)據(jù),完成數(shù)據(jù)采集、傳輸、處理、入庫(kù)的時(shí)間不超過(guò) 5 min,并能及時(shí)向區(qū)縣分發(fā),提供水庫(kù)水情信息服務(wù)。
2)系統(tǒng)通信采用 GPRS 和 GSM 自報(bào)方式。
3)采集傳輸設(shè)備符合結(jié)構(gòu)簡(jiǎn)單、可靠、低功耗的原則,所有遙測(cè)站都在無(wú)人值守的條件下工作。系統(tǒng)能長(zhǎng)期地,特別是在暴雨洪水等惡劣天氣條件下可靠地工作,具有較強(qiáng)的抵御外部干擾的手段。
在中小水庫(kù)遙測(cè)系統(tǒng)采用自適應(yīng)遙測(cè)終端機(jī),可滿足以上需求。
采用自適應(yīng)遙測(cè)終端機(jī)的中小型水庫(kù)遙測(cè)系統(tǒng)已于 2011 年 2 月應(yīng)用于948 項(xiàng)目:南京市江寧區(qū)中小型水庫(kù)信息采集傳輸關(guān)鍵技術(shù)中,目前運(yùn)行正常。項(xiàng)目分別在趙村、東焦、安基山、湯泉、泗隴、牌坊等水庫(kù)設(shè)置信息采集站點(diǎn)。采用免建井氣泡和雷達(dá)水位計(jì)作為水文傳感器,提供了大量的現(xiàn)場(chǎng)水文數(shù)據(jù),在水文極值和遇險(xiǎn)參數(shù)出現(xiàn)時(shí)自動(dòng)報(bào)警,保障中小水庫(kù)安全運(yùn)行。將從中心站獲取的趙村水庫(kù) 2011 年 5 月的部分早 8 點(diǎn)數(shù)據(jù)與人工測(cè)試數(shù)據(jù)進(jìn)行對(duì)比,對(duì)比結(jié)果如表2 所示。
由表2 可以看出,誤差范圍保持在 ±1 cm 之間,屬于正常誤差范圍。證明該系統(tǒng)中的自適應(yīng)遙測(cè)終端能夠穩(wěn)定采集實(shí)時(shí)正確的數(shù)據(jù),可以在野外應(yīng)用。
表2 自報(bào)數(shù)據(jù)與實(shí)測(cè)數(shù)據(jù)對(duì)比表cm
自適應(yīng)遙測(cè)終端應(yīng)用于中小型水庫(kù)信息采集系統(tǒng)中,將波特率自適應(yīng)和自舉協(xié)議技術(shù)應(yīng)用于水文傳感器的識(shí)別上,增強(qiáng)了系統(tǒng)的靈活性。本文列舉的數(shù)字感應(yīng)式傳感器,氣泡式和雷達(dá)水位計(jì)適應(yīng)于國(guó)內(nèi)很多中小型水庫(kù)應(yīng)用。終端機(jī)在設(shè)計(jì)時(shí),盡量先使用常用的波特率和應(yīng)答時(shí)間較短的通信協(xié)議,以減少系統(tǒng)的識(shí)別時(shí)間,增強(qiáng)芯片使用的效率,從而使得遙測(cè)設(shè)備具有簡(jiǎn)單的,無(wú)須人工干預(yù)的智能化調(diào)解的功能。另外如果系統(tǒng)增加其他傳感器,則可將其他傳感器的識(shí)別程序集中在同一協(xié)議棧中,增加識(shí)別不同的傳感器,增強(qiáng)系統(tǒng)的可擴(kuò)展性。
[1]王宜懷,劉曉升. 嵌入式應(yīng)用技術(shù)基礎(chǔ)教程[M]. 北京:清華大學(xué)出版社,2007 (11): 138-139.
[2]潘育山,靳桅,鄔芝權(quán). 單片機(jī)串行通信波特率的自適應(yīng)實(shí)現(xiàn)方法[J]. 現(xiàn)代電子技術(shù),2003 (24): 58-60.
[3]太原理工天成科技股份有限公司. TC401 感應(yīng)式數(shù)字水位傳感器用戶手冊(cè)[S]. 太原:太原理工天成科技股份有限公司,2009: 6-8.
[4]SEBA_PS-Light2 [S]. SEBA .2007:3
[5]SEBA_PS-LIGHT-2_Sensor_SHWP_Protocol [S].Ma/Cs,den 2010:16.
[6]SDI-12(EN). SDI-12 Support Group [S]. 2005: 1-12.