張申坤

摘 要:遠程計量系統采用Winsock通訊方式進行數據采集,解決了傳統串口通訊不能遠距離傳輸的問題并保證數據的實時準確性,在C#環境下C/S圖形化編程及語音報警功能,充分利用了網絡資源,可減輕人員負擔,提高工作效率。
關鍵詞:Winsock;數據采集;遠程計量
中圖分類號:TP274.2 文獻標識碼:A 文章編號:1671-2064(2017)09-0045-01
Abstract:The remote measurement system using Winsock communication for data acquisition, It solves the problem that the traditional serial communication can not be transmitted in a long distance and ensures the accuracy of the data in real time, In the C# environment C/S graphical programming and voice alarm function, make full use of network resources, can reduce the burden on the staff, improve work efficiency.
Key words:Winsock; data acquisition; remote measurement
滿足公司信息化發展的要求,提高物資計量自動化水平,消除人為因素造成的計量異議和計量損失,集圖像、車號、重量、車輛位置的遠程集中計量監控系統的產生很好的解決了這一難題,利用Winsock通訊進行車號、重量、車輛位置的設備數據采集系統,能夠有效利用網絡,穩定高效的數據保證了計量系統的穩定運行。
1 遠程計量系統的總體框架
遠程計量系統主要由數據采集系統、過磅計量系統、現場設備組成,其中數據采集系統分為儀表數據的采集,車輛位置的采集,車號信息的采集以及斷電、煙感等數據采集。其總體上的框架圖如圖1所示。
計量人員通過計量系統可以得到現場車輛的重量、位置、車號等信息,還可通過視頻、音頻與司機通訊,通過采集系統還可以知道現場設備運行情況,發現問題及時進行處理。
Winsock數據采集系統,主要是在TCP/IP協議的基礎上,應用C/S結構,通過串口服務器和開關量服務器的IP地址進行數據通訊,將采集到的數據傳入服務器,獨立運行的數據采集程序,有效降低了服務器的負擔。
2 Winsock技術通訊
Winsock(Windows Sockets)控件是基于網絡通訊協議TCP/IP的一種編程控件,是Windows操作系統中的應用程序接口。Sockets是網絡通信的基本操作單元,提供了不同主機之間進程互相通信的端口[1]。
在基于C/S模式的網絡數據交換程序開發中,設計人員通過Winsock控件使用數據傳輸控制協議訪問網絡服務,通訊協議采用TCP協議[2-3]。在C#中有用于TCP/IP傳輸的Winsock控件,當使用TCP協議采集程序與串口服務器和開關量服務器連接時,必需指定串口服務器和開關量服務器的IP地址和端口號,串口服務器通過NPORT軟件進行IP地址和端口號的設置,開關量服務器通過VSPM軟件進行IP地址和端口號的設置,接著講winsock控件設置為“監聽”(listen),即將數據采集計算機進行調用與連接,如果數據采集計算機與串口服務器和開關量服務器連接完成后,將開始使用“傳送數據(senddata)”方法,將數據給對方,同時,將會觸發給對方的“接收數(dataarrival)”事件,此時,可以使用“取得數據(getdata)”方法,來取得這些接收到的數據。
在基于Winsock數據采集程序采用多線程算法建立動態的Winsock空間網絡,保證各個控件與現場多個計量磅的設備相對應。
3 C#數據采集實例
以儀表為例,C#數據采集程序分為以下幾個步驟:
(1)定義及初始化winsock控件wnskBT,動態創建winsock控件連接bt_recreate()。
(2)通過IP地址和端口號打開winsock控件連接bt_connect()。
(3)通過GetData進行儀表數據接收處理wnskBT _DataArrival()。
(4)將接收到的數據串進行解析處理,得到我們需要的儀表重量信息。
(5)命令模式發送信息wnskBT.SentData(),對儀表發送清零命令等。
(6)超時判斷,當連接中斷時,重新創建winsock控件,重新打開控件連接進行數據傳輸。
當現場設備出現故障時,數據采集系統進行語音提醒,計量員通知相關人員進行故障處理,當儀表不清零時,計量員通過數據采集系統或計量系統進行儀表清零,當設備檢修或設備故障停用計量磅時,還可以強制紅燈亮,禁止車輛上磅。當稱重計算機比計量磅少時采用輪巡計量,當磅上有車時,數據采集系統自動分配空閑計算機并語音提醒計量員進行計量,若沒有空閑計算機則提醒司機等待計量,計量完成后計算機進入等待計量狀態。
4 結語
基于C#編寫的基于winsock數據采集程序,運行占用內存資源少,讀取、發送數據快,而且計算機運行穩定可靠,減輕了服務器端計算機的負擔,計量系統采用輪巡計量,節省了人力,降低人員勞動強度,提高了計量速度,具有很強的實時性,該技術在計量方面已經得到了廣泛應用。
參考文獻
[1]呂娜.Winsock控件的屬性及應用方法[J].科技世界,2016(9):250-250.
[2]王成. Windows本地應用使用Winsock與JSP Web應用通信[J].網絡安全技術與應用,2015.05:77-78.
[3]劉赟.Winsock技術在網絡通信系統中的應用[J].西南科技大學學報,2013,28(2):20-21.