孫艷琴
(黃岡師范學院 機電工程學院,湖北 黃岡 438000)
基于串口服務器的水溫遠程通信系統設計與實現
孫艷琴
(黃岡師范學院 機電工程學院,湖北 黃岡 438000)
文章改造設計了一種網絡化的遠程多通道水溫監測系統,利用串口服務器橋接串口設備和現有的以太網,為保證多通道數據采集過程中數據的實時性和準確性,設計帶序號的數據幀格式,利用虛擬串口技術和事件觸發方式實現串口數據的讀取和發送。通過實驗,系統運行穩定,且不會出現數據丟包現象。
串口服務器;遠程通信;虛擬串口;事件觸發
工業4.0帶來了互聯網與工業的融合,利用互聯網激活傳統工業過程,實現人、機器和系統三者之間的智能化、交互式無縫連接。目前,水溫監測系統大多為基于串口組網的單片機監測系統,存在只合適單機操作,軟硬件兼容性較差,數據重復利用率較低,擴展升級性能有限,布線較繁瑣且不美觀等諸多問題。隨著工業生產的現代化,要求現場終端設備的實時數據能夠實現遠距離網絡化的監控,對保障人員安全和提高生產效率意義重大。
以太網/互聯網等網絡架構已逐漸在自動化產業內被廣泛地采用,取代傳統的串口通訊而成為自動化系統通訊的主流。在這種趨勢下,以 TCP/IP和以太網為代表的成熟度較高的開放式網絡技術,正逐漸地被應用在各個自動化系統,連接并控制所有的設備。本系統以太網作為傳輸主干,將分散式的水溫采集裝置與主機部分PC通過MOAX Nport系列的串口服務器進行分布式組網。串口設備聯網服務器如同含CPU、實時操作系統和TCP/IP協議的微型電腦,在串口和網絡設備中傳輸數據,優點主要有:①隨時隨地存取,聯網系統通過遠程網絡存取、控制及監視設備,實現無縫通信。②節省布線成本,大多數地區均已網絡化,因此可以使用現存的網絡進行監視設備的連接。③避免開發TCP/IP 協議棧,降低了設備的運算能力和硬件資源的要求,縮短開發周期。④完全數字化,容易編輯、儲存及傳送,短時間內能迅速完成。⑤容易整合,采用網絡連接方式運作,較容易將其整合至其他監視系統或應用層面。圖1所示為分布式水溫監控系統聯網解決方案。

圖1 分布式水溫監控系統聯網解決方案
系統整體組網主要分為3個部分,第一部分為現場區域??筛鶕嶋H需求,可在同局域網的監測區域設置多個數據采集點,節點1至節點N分別代表不同的監測區域點,現場溫度數據的采集主要通過單片機AT89S51和數字傳感器DS18B20實現,數據可暫時存儲在單片機的存儲器中,等待上位機發送指令讀取。第二部分為數據轉換區域。各通道數據通過串口服務器,進行封裝和格式轉化,打包發送到互聯網上,包頭數據尋找到對應以太網上的NPORT串口服務器的串口通訊端口號時,將數據進行解包還原給被監控的設備,上位機與下位機就可按照通訊規約相互配合工作,實現串口數據的讀取和發送。第3部分為人機界面部分,監控主程序具有操作方便、界面美觀、層次清晰等特征。數據庫負責存儲各監測點數據,用戶可通過ADO的方式進行訪問。功能主要有實時顯示模塊、預警預報模塊、參數設置模塊、數據處理模塊、數據通信模塊等,來滿足監控系統對數據的要求。
2.1 虛擬實串口的工作原理
串口服務器可通過虛擬串口的方式來實現串口設備立即聯網。根據串口軟件提供的Real COM/TTY驅動程序,可在Windows操作系統或Linux操作系統分別映射成Real COM串口或Real TTY串口,從使用者的角度來看,虛擬串口的操作和真實的物理串口一模一樣。數據進行兩方面處理,一是處理來自串口設備的串口數據流,并進行格式轉換,使之成為可以在以太網中傳播的數據幀;二是對來自以太網的數據幀進行判斷,并轉換成串行數據送達響應的串口設備。圖2為虛擬實串口工作模式。
通信協議通常分為不同層次進行開發,每一層分布負責不同的通信功能。串口服務器的網絡接口符合TCP/IP標準協議,以太網層采用多種連接介質,包括同軸纜、雙絞線和光纖等。IP層中的關鍵點是包含每個網絡設備IP地址。TCP或者UDP層的關鍵點是端口,端口用于區分一個IP地址下的多個應用程序。用戶數據層負責攜帶用戶所需要傳輸的數據。而串口協議沒有IP層和TCP層這兩層。但在串口服務器中已經保存了IP層、TCP層的關鍵點:IP地址和端口。因每個串口服務器都具有一個可以設定的IP地址,同時也有一個TCP或者UDP的端口,計算機就可以通過這個“IP+端口”將網絡數據發送給串口服務器,同樣地串口服務器也保存了目的計算機的IP和端口,這樣也可以將數據發送給計算機[1]。
2.2 數據命令幀格式設計
系統遵循RS485串行口通信規約:傳輸速率9 600bps,1位起始位,8位數據位,1位停止位,無奇偶校驗位[2]。傳輸報文內容;異步通信,使用起始位和停止位作為通信的判斷[3]。數據格式為16進制數,以字節為單位,低位先送,高位后送;傳輸分為上行和下行兩個方向,下行命令或數據是指主機PC機發向多點或單點的數據傳送;上行則為響應下行命令而作出的應答。本項目提供6種命令格式,分別為功能字0x01:同步節拍開始;0x02:狀態查詢;0x03:數據讀?。?x04:數據刪除;0x05:同步節拍停止命令;0x06:帶序列號讀取。考慮到上下位機的使用壽命,且并非都一直處于工作狀態的實際需求,為了保證數據信息的完整性,設計帶序號信息格式,圖3為帶序列號的數據讀取上行命令幀格式。功能字后所帶的參數表示為:{sn(0)L,sn(0)H,date(0) L,date(0)H,..............sn(n)L,sn(n)H,date(n)L,date(n) H},其中sn(n)L,sn(n)H表示序列號,開始同步時刻起的采樣時刻,單位為10分鐘,比如0000,表示本記錄為同步時刻起,第一次的采樣值;dat(n)L,dat(n)H:計數值,低位在前,經過進制轉換后即可得到每個監測點的溫度參數值。NUM為上行實際應答條數。因下位機存儲器中數據記錄數有限,對于某些時間段不需要采集的數據,可先發送狀態查詢命令詢問數據采集的條數,為避免信息冗余,可根據序列號選擇性的查詢或刪除所需數據。表1為上行應答數與請求數之間的關系。

圖2 虛擬實串口工作模式

圖3 帶序列號的數據讀取上行命令幀格

表1 上行應答數與請求數之間的關系
在數據記錄數未超過下位機存儲器容量時,實際應答條數的判別方法如下:
(1)當上行應答數NUM小于等于請求數num時,NUM為實際應答條數;(2)當上行應答數NUM大于請求數時,num為實際應答條數;(3)當模塊中數據記錄數為0時,實際應答條數為0。
2.3 事件觸發方式
系統運行時,考慮到串口通信數據的隨機性,采用單一的查詢方式占用CPU,效率低下,因此考慮采用事件觸發方式實現串口數據的讀取。本系統中調用SerialPort類的 DataReceived 事件來讀取串口緩沖區的數據[4-5],并添SerialDataReceivedEventHandler 委托至 DataReceived 以讀取串口上接收的所有可用的數據,DataReceived事件在不斷的觸發,所以將數據處理放到委托里面,DataReceived只做數據接收,避免把數據處理放在DataReceived事件中,影響到數據的接收。結合SerialPort類屬性和方法,考慮到因其對串口數據的寫入與讀取有較大的不同,因此調用Timer控件的Start()和Stop()函數,來實現上位機分不同時間段自動循環發送各種命令給下位機的功能,且有規律的在一段時間內執行一次指定命令的發送。在本系統中,給需要采集數據的下位機發送命令,在10分鐘內循環采集1條數據,采用“讀、存、刪”連續性數據處理,即實時顯示模塊即刻更新,數據即刻存儲至數據庫和刪除處理。
為驗證上位機和下位機能穩定的工作,實驗室模擬8多道水溫數據采集系統,系統開始運行前,首先檢查所有設備連線正確,確保電源供電正常;其次通過NPORT administration軟件搜索局域網中所有的NPORT設備,包括和主機IP不同網段的NPORT設備,并同時獲得設備的型號、IP地址、MAC地址以及設備名稱等相關信息,設置串口服務器的IP地址確保和PC機在同一網段中;最后通過Com Port Settings可設為任意想設的串口號,但務必保證虛擬串口號的唯一性。系統運行時,用戶可根據實際需求遠程控制和瀏覽相關信息,本項目中采用“斷開連接模式”下訪問數據庫[6],直接針對本地緩存區數據集DataSet展開[7], 通過DataAdapter的函數Fill()實現,用戶對數據的操作不再是直接操作數據庫,后期需要分析和處理的數據,如查詢、添加、修改、刪除等都是在本地數據緩存中進行,提高了因訪問量較大,提取數據庫服務器資源時的工作效率,經實驗證明系統運行狀態良好。本系統主要特點如下:
(1)將任意數量或類型的串口設備便捷和廉價的連接到以太網。各數據傳輸通道獨立運行,互不干擾,技術人員可根據現場實際情況隨時動態增加或減少現場數據采集設備,并且不會影響其他設備的正常運行。
(2)數據實時性較高。串口收到數據后,立即將此數據轉發到相應的TCP/IP連接,中間不作任何等待及緩沖,速度快、效率高。
(3)系統界面層次清晰、操作簡單,各功能模塊獨立運行,通過簡單的培訓,技術人員便能進行工作。
在遠程距離的生產現場或工程項目中,由于大多是設備還是采用串行連接,本系統采用串口服務器來實現數據的遠程傳輸,充分利用現有設備,不但解決了傳輸距離和布線問題的難題,而且節省了經濟人力和時間成本。
[1]佚名.智能交通網路攝像機.[EB/OL].(2016-11-25)[2013-04-27].http://www.tpy888.cn/sell/201304/27/790065.html,2010.
[2]CHEN S Z, SHI B. The Serial Communication Based on Multithreading Technique of Windows[J].Wuhan University Journal of Natural Sciences,2000(3):373-375.
[3]王碩.無線數字測圖程序設計中的關鍵技術[J].北京測繪,2012(6):78-82.
[4]王曉鵬,張新成.Visual studio.net平臺上事件處理的委托及其實現[J].開封大學學報,2007(2):81-82.
[5]XU L,YU Z.Communication Between SR23 and PC Based on SerialPort in C#.NET[J].Computer and Modernization, 2011(5):107-109.
[6]林平榮.ADO. NET的數據庫訪問技術研究與實現[J].電腦知識與技術,2008(4):1198-1201.
[7](美)內格爾,埃夫琴.C#高級編程[M].7版.黃靜,譯.北京:清華大學出版社,2010.
Design and implementation of serial server based water temperature remote communications
Sun Yanqin
(Mechanical and Electrical Engineering College of Huanggang Normal University, Huanggang 438000, China)
A network of remote multi-channel temperature monitoring system using serial port serial device servers and bridges existing Ethernet to reconstruct and design is described in this paper. To ensure the timeliness and accuracy of the multi-channel data acquisition process data, format with serial number is designed in the use of virtual serial port technology and event-triggered way to read and send serial data. The experiment shows that the system is stable and no data loss phenomenon.
serial server; telecommunications; virtual serial port; event trigger
黃岡師范學院青年科研項目;項目編號:2015019503。
孫艷琴(1985— ),女,湖北仙桃。