邢娜
摘要:該文介紹了VB開發“遙報儀數據記錄器v1”軟件編寫的原理,通過該軟件將潮位遙報儀的原始數據及接收數據的時間及潮位信息一同顯示,并可以保存數據中的接受時間,潮位和站臺信息,從而減少了使用潮位遙報儀時的工作量。
關鍵詞:VB;潮位遙報儀;功能原理
中圖分類號:TP311 文獻標識碼:A 文章編號:1009-3044(2018)01-0110-02
1 概述
局技術中心開發的潮位遙側系統(岸臺)通過水位傳感器(超聲波或壓力式)能自動測量潮位變化,同時經由數傳電臺構成的無線通訊網絡,向各接收機(船臺)發送潮位信息。船臺只要連接好設備,打開電源就可以直接使用,比人工驗潮簡單方便。
但是潮位遙報儀船臺使用時必須要手工記錄潮位,加大了外業測量的工作量。潮位遙報儀自帶有數據輸出接口,通過編寫應用程序來接受并記錄潮位遙報儀的數據,以減少外業記錄的工作量。
本程序開發采用由微軟公司開發的時間驅動的變成語言VB,它擁有方便的圖形用戶界面開發工具和控件,程序員可以輕松的使用VB提供的組件創建自己的應用程序,本文介紹的便是Vb編寫的“遙報儀數據記錄器v1”這個自己編寫的小程序用來自動記錄潮位。
2 潮位遙報儀數據傳輸方式和數據格式
潮位遙報儀采用RS-232串口數據輸出。計算機進行串口通信時,必須打開串口并進行初始化后才能開始數據的發送和接收,通信完成后才能開始數據的發送和接受處理,通信完成后應及時關閉串口。
VB讀取串口數據使用自帶的MSCOMM控件。簡單設置通訊串口號,通訊參數,通訊狀態,就可以直接讀取串口數據,使用十分方便。潮位遙報儀的數據通訊參數為:波特率4800bit/s,數據位8bit/s,停止位1bit,檢驗位,無。
潮位遙報儀的數據輸出格式如下:
“蝌 WHHH0612181710#05+00.79M”
以上的數據為例,以“HHH”作為數據判斷的符號,后面的06年12月18日17時05分,站臺號:05號,潮位0.79M。
3 軟件系統設計與主要功能
本軟件是單一功能的應用軟件,只能設計一個窗口,如圖1。
窗口的功能分區為:串口通訊設計(左)功能操作按鈕(中),數據顯示窗口(右和右下)三大部分。
串口通訊設置部分,由于潮位遙報儀的通訊參數已知,所以主要的操作是更改連接設備所用的串口號就可以正常使用了。
功能操作區,主要有打開,關閉串口,保存潮位信息等。當軟件用來連續工作時,且數據較多時,可以在此處設置只顯示部分數據。
數據顯示窗口,分為上下兩個窗口,上面的窗口主要用來顯示串口接收到的所有信息,下面的窗口顯示經過去除亂碼后提取出的有用的潮位信息和相應的接收到信息的時間,輸出的數據便是潮位數據顯示窗口所顯示的信息數據。
4 關鍵技術與算法實現
4.1 串口通訊設置中的串口號的確定
本軟件中參考部分電腦串口相關資料,使用一定的算法將使用的串口編號通過一個combobox的下拉列表顯示出來,此部分的程序代碼如下[2];
For I= 1 To 100 列出所有可以使用的串口號
On Error Resume Next 當運行發生錯誤時,控件轉到下一個循環
MSComm1.comm Port=I
MSComm1.PortOpen=True
Select Case Err.Number
Case0
Commbo5.AddItem“COM”&Trim(I)
MSComm1 Port Open=False
Case 8005
MSComm1 Port Open=False
End Select
Err=0
Next
4.2 串口數據信息的識別
串口數據中有部分有部分亂碼數據,所以需要識別出可用的信息:如站臺號和潮位值。
本軟件使用的是查找數據位的標志的方法來識別,如查找到數據中有數據頭“HHH”和數據尾“M”的標志時,就截取出中間包括有站臺號和潮位的信息數據并顯示在數據顯示窗口中。
詳細的代碼如下:
If InStr(1,r_tide,“HHH”)Then ‘ 判斷并取出潮位數據
If InStr(1,r_tide,“M”)Then
r_data=Mid(r_tide,Instr(1,r_tide,“#”,vb_TextCompare),10)
If tide_old<>r_data Then 只顯示最新數據
Text2.Text=text2.Text+Format(Time,“hh:mm:ss”)+“,”+r_data+vbCrLF
tide_old=r_data
Data_n=data_n+1
End If
End If
End If
4.3 數據記錄
在程序窗口界面中有“保存”功能,可以直接保存數據顯示窗口2中的已經識別出的數據;
當數據記錄超過3個時,每接受一個數據就自動將數據窗口1中的數據保存在程序目錄下的日期+tide_orig_data.txt文件中,這樣當電腦發生異常啟動后能保證數據記錄器已經記錄的完整數據。
串口原始讀取數據(右)
4.4 數據顯示
程序窗口的下半部分是數據顯示部分。如果潮位數據有較大的跳動就容易在圖表窗口發現數據的異常。是一個很使用的數據補充顯示功能。endprint
在應用程序中經常會使用圖表表現數據,這個可視的方式可以更清晰地反映數據的變化趨勢和進行數據對比,是支持決策最為直觀的工具。在VB中可以使用MSCHART控件創建圖表,并可以方便,快捷地顯示各種類型的圖表[3]。本程序利用的是MSCHART控件對識別出的數據進行圖形顯示。并同時更新4個數組來實現時間坐標軸的自動縮放功能。關鍵程序代碼如下:
‘將數據奉新到顯示數組中
If Option1.Value=True Then
MSChart1.Chart Data=tidedata12
Else If Option2.value=true Then
MSChart1.Chart Data=Tidedata 36
Else If Option3.value=True Then
MSChart1.Chart Data=tide data72
Else
MSChart1.Chart Data=tide data144
End If
5 軟件優點
本軟件已經成功應用于多次實驗和世紀測量過程,其優點如下:
1) 操作簡單
在外業測量時,只需使用數據線將電腦和潮位遙報儀連接好,再打開本程序,通過設置連接所用的串口就可以直接使用,操作方便。
2) 功能簡單實用
軟件打開后,只要串口有數據就可以顯示到數據接收窗口中,并且可以自動在識別的數據之前增加當前系統時間,這樣可以防止潮位發射臺的時間不準確對數據的影響。
可以自動保存已經接收到的數據到程序目錄下的臨時文件中,可以有效減少機器故障對數據記錄的影響,功能實用。
6 結束語
本文介紹了一種使用自主實現潮位遙報儀數據接收與采集的自研軟件。“遙報儀數據記錄器V1”。通過介紹的軟件可以將潮位遙報儀的原始數據及接收數據的時間一同顯示。并可以保存數據中的接收時間,潮位和站臺信息,具有很好的實用價值。
本程序當前只實現了簡單的數據記錄功能,潮位的圖形顯示,保存為其他數據格式等功能在后期的版本中會增加,完善程序功能。
參考文獻:
[1] 羅海英.基于vc++的GPS狀態監控與數據采集軟件的設計與實現[J].測繪通報,2010(12):27-29.
[2] 孫秀梅.Visual Basic開發技術大全[M].北京:人民郵電出版社,2007:711-725,544.endprint