《電子技術應用》
您所在的位置:首頁 > 通信與網絡 > 設計應用 > 跨平臺的上位機監控系統中數據通信的實現
跨平臺的上位機監控系統中數據通信的實現
2017年電子技術應用第10期
王毅璇,豐大軍,王 皓,張曉莉
華北計算機系統工程研究所,北京100083
摘要: 針對國產PLC實現上位機監控系統時系統平臺與開發軟件強耦合不易實現跨平臺數據通信的問題,提出了一種跨平臺的數據通信實現方案。在對數據通信進行功能分析的基礎上,通過對系統整體設計及對模塊局部拆分,實現底層網絡和上層應用的分離。在底層網絡通信中,綜合應用數據包大小動態調整、大文件智能壓縮、過載選擇型丟包的技術手段,對數據通信進行整體優化。采用Qt平臺的本地Socket消息封裝技術實現Linux系統的進程間以及機器間的消息通信,并且在接口級與Windows的消息通信兼容。在不同操作系統平臺,采用各自最優的文件共享策略,實現機器間文件的類本機文件操作。
中圖分類號: TN99
文獻標識碼: A
DOI:10.16157/j.issn.0258-7998.179019
中文引用格式: 王毅璇,豐大軍,王皓,等. 跨平臺的上位機監控系統中數據通信的實現[J].電子技術應用,2017,43(10):94-98.
英文引用格式: Wang Yixuan,Feng Dajun,Wang Hao,et al. Implementation of data communicationin cross-platform supervisory control and data acquisition system[J].Application of Electronic Technique,2017,43(10):94-98.
Implementation of data communicationin cross-platform supervisory control and data acquisition system
Wang Yixuan,Feng Dajun,Wang Hao,Zhang Xiaoli
National Computer System Engineering Research Institute of China,Beijing 100083,China
Abstract: Aiming at the problem that the system platform and the development software are not easy to realize the cross-platform data communication, a cross-platform data communication scheme is proposed. On the basis of the functional analysis of data communication, it designs the whole system, splits the system modules, realizes the separation of the underlying network and the upper application. In the underlying network communication, through the application of the data packet size dynamic adjustment, large file intelligent compression and overload selective packet loss technical means, it realizes the overall optimization of the data communication. The local Socket message encapsulation technology is used in Qt platform to achieve inter-process and machine message communication, and realize the Windows message compatibility at the interface level. In different operating system platform,using their own optimal file sharing strategy, the file operation between machines is realized.
Key words : cross-platform;supervisory control and data acquisition software system;data communication

0 引言

    目前國產PLC上位機監控軟件廠家有西門子、施耐德、歐姆龍、三菱、橫河、臺達等,各類軟件均有各自的優勢,在國內PLC市場占有較大的份額。然而針對不同系統平臺和開發軟件所開發出的上位機監控系統之間兼容性較差,不能實現跨平臺數據通信。這是由于系統平臺和開發軟件之間的耦合性較強造成的。

    在上位機監控軟件系統的最底層(即網絡層),通信子系統負責與控制器間的數據通信以及操作員站之間的數據同步。通信子系統根據上位機監控軟件系統中配置子系統提供的系統構成信息,通過以太網完成系統中各個站點之間的狀態監控、組態同步、進程控制、文件維護等工作。而不同的PLC上位機監控系統中配置子系統提供的系統構成信息卻因系統平臺和開發軟件的不同而不同。

    數據通信子系統接管上位機監控軟件系統內部上層應用軟件需要的所有數據通信和文件傳輸,并能夠以消息方式通知上層應用軟件。如果系統的構成信息有差異,則會導致上位機之間傳輸數據的紊亂。

    對此,文獻[1]、[2]均通過在不同上位機軟件之間建立公共的Modbus協議來實現上位機之間通信數據的兼容。雖然Modbus在上位機通信當中使用較多,但中間需將數據轉換成公共“可識別”的數據,降低了通信效率。文獻[3]則是在不同的上位機之間建立以太網,把每個上位機系統當作自己的下層系統,從而實現數據的兼容轉換和傳輸。此種方法對以太網的傳輸效率和系統架構要求較高,不易實現。文獻[4]是在每個上位機監控系統中加裝GPRS通信模塊來實現快平臺的通信。GPRS由于其傳輸距離和本身可靠性的限制,在跨平臺的通信中較少應用。文獻[5]提出使用第三方監控軟件作為公共數據轉換平臺,這種方法和文獻[2]的方法類似,對第三方的系統要求較高且網絡架構較為復雜。

    本文采用面向對象設計的方法實現跨平臺開發的上位機監控軟件系統中的數據通信子系統。首先對數據通信子系統進行了功能分析,然后進行了整體設計,并對子系統進行化整為零的模塊拆分,最后對各模塊的實現方式、方法提出參考方案,并進行較為詳細的闡述。

1 系統功能分析

    數據通信子系統需要完成監控軟件系統中上層應用軟件需要的所有數據通信和文件傳輸,并能夠以消息方式通知上層應用軟件。數據通信內容包括站間狀態數據包、實時數據表數據包、歷史數據數據包、命令包、請求包等所有需要網絡傳輸的數據包,文件傳輸包含組態文件、配置文件、日志文件等所有需要網絡傳輸和同步的文件。

    數據通信子系統通過進程控制命令包方式,對其他站的進程進行帶參數啟動、定時啟動、定時停止、監視等操控,通過站點控制命令包方式,對其他操作員站進行啟動在線、定時啟動在線、定時停止在線等操控。支持一對一和一對多的點對點通信,根據需要,分別提供可靠的TCP傳輸方式和非連接的UDP傳輸方式。TCP方式用于大數據塊的復制和同步,UDP用于少量數據的傳輸。原則是周期性數據用UDP,事件性的數據用TCP。支持優先級控制,不同的優先級數據包發送時按照高優先級先發送原則進行處理,保證重要數據優先發送。當數據包很大時,需分包處理,并自行控制以太網的網絡負荷。以太網網絡負荷最高不超過20%,以10%以下為佳。

2 系統總體設計

    如圖1所示,數據通信子系統總體劃分為3個模塊:數據交互模塊、網絡操作模塊和網絡通信模塊。數據交互模塊管理數據的發送和接收,負責完成站與站之間TCP/UDP數據和文件的傳送,發送隊列管理和接收數據,并通知進程;網絡通信模塊用于上位機監控軟件站間各應用程序與傳送數據時的網絡通信接口,主要是發送接口函數、接收接口函數;網絡操作模塊主要完成提供遠程登陸、獲取網絡地址、指定站狀態功能,該模塊主要提供兩個接口函數,分別是獲取指定站的網絡連接狀態和獲取網絡地址。由于數據通信子系統同時支持Windows平臺和Linux平臺,為了解決平臺差異性和實現系統的低耦合性,網絡操作模塊和網絡通信模塊均采用動態鏈接庫形式實現。

tx2-t1.gif

    當應用程序有數據、文件或者命令要發送到目的站時,先調用網絡操作動態庫中的相關函數,打通路徑;再調用網絡通信動態庫的相關函數將數據按照優先級放到不同的隊列中。數據交互模塊按照優先級算法查詢各個隊列,將各個隊列的數據發送到目的地址;當數據通信收到來自上位機監控系統的網絡數據時,先辨別是哪一類,如果是輸出型模擬量、輸出型數字量等數據,則將數據放到接口輸入隊列;如果是命令,則即刻通知目標應用程序;如果是給應用程序的內存數據,則將數據放到接收內存隊列,并馬上通知上層應用程序來接收處理。校時數據由歷史站主站周期發送給全網,其他站被動接收數據并修改自身的時鐘與歷史站主站保持一致。

    當上位機監控軟件系統出現錯誤時,數據交互模塊會調用整個系統錯誤管理程序提供的接口函數顯示錯誤提示。發送和接收錯誤信息一律記入日志文件。為了保證整個系統的安全性,如果發生數據包太多、超過處理能力時,則依據數據包中的重要性信息丟棄一部分不重要的數據,但用于操作PLC的數字量信息包永遠不被丟棄。

3 數據交互模塊

    該模塊主要接管上位機監控軟件系統與計算機之間數據的交互工作,包括命令、內存、文件的傳送。對TCP/UDP通信的發送和接收端口進行管理,進行點對點的通信。

    接收到內存數據后,判斷數據類型再做處理:需要寫到共享內存隊列的,發送消息通知實時數據處理進程,包括操作數據包;如果是操作包,并且本機是歷史站的主站,則加上時間標簽放到操作數據隊列,通知實時數據處理模塊處理數據,另外還要將這個操作包放到數字量、模擬量輸出隊列,等待PLC驅動模塊處理,并調用數據通信模塊將其分發到其他機器上;需要寫到共享內存的數據,不需要通知應用程序;其他內存數據,送到后,先放到一個緩存,并通知對方接收數據;對于消息和命令,傳送至目標后直接發送到應用程序。接收到命令后先放到程序內部緩存,然后直接用消息通知給應用程序。

    文件傳輸直接采用Linux/Windows平臺的文件拷貝命令或者文件序列化的方法。超過一定大小的文件需要先進行文件壓縮,然后再發送壓縮后的文件,并由目標機在其本地解壓縮。為防止變更集數據丟失,對重要數據傳輸采用TCP方式。全網傳送使用UDP組播或廣播方式。管理遠程登錄連接,文件傳送完畢要關閉連接,但為了防止反復的打開和關閉連接,使用超時機制,超時時間到才關閉連接。連接信息放在共享內存中。傳送以字節為單位進行,不修改數據包原來的數據精度。對于PC間內存同步數據,采用UDP傳送,數據包有可能丟失,但是同步數據每秒同步,下一秒的數據到來可以彌補丟失數據[6-8]

4 網絡通信模塊

    提供本機進程間的消息通信機制,調用公共函數可以在進程間任意發消息通知。該模塊提供發送通知、發送文件、發送內存、發送操作數據表、通知目標任務接收數據、接收數據的接口函數。如果數據發送失敗,采用消息方式通知調用任務(此功能在數據交互模塊中)。UDP數據包分為大包、中包和小包。TCP數據包沒有這些限制。數據通信與上位機監控軟件系統其他應用程序的接口包括3種:消息、內存和動態庫[9-12]。

4.1 本地消息實現

    鑒于上位機監控軟件系統既要運行在Linux下又要運行在Windows下,但是兩個操作系統對消息的定義不同,所以采用Qt的本地Socket技術封裝上位機監控軟件自己的消息機制,實現進程間的消息通信,其對外接口形式采用近似Windows的消息方式。

    本地消息通知分兩種,一種是傳遞消息值及消息參數,另一種是傳遞消息值及一小塊內存數據。實現時采用QlocalSocket類,封裝上述兩個函數并提供類對象,上位機監控軟件系統的所有進程都可以加載網絡通信動態庫,即可具備本地進程間的消息通知功能。發送通知的進程調用類對象的發送命令的函數發送通知,接收通知的進程只需定義本地接收通知的信號及對應信號處理函數即槽函數,即可收到并處理通知。通知傳送處理流程如圖2所示。

4.2 機器間的消息實現

    機器間的消息通知亦采用Qt的Socket技術封裝上位機監控軟件自己的消息機制,實現不同機器進程間的消息通知。機器間消息通知亦分兩種,一種是傳遞消息值及消息參數,另一種是傳遞消息值及一小塊內存數據。實現時采用QUdpSocket類,封裝上述兩個函數并提供類對象,上位機監控軟件系統的所有進程都可以加載網絡通信動態庫,即可具備機器間進程的消息通知功能。發送通知的進程調用類對象的發送命令的函數發送通知,接收通知的進程只需定義遠程接收信號及對應槽函數,即可收到并處理通知。通知傳送處理流程如圖2所示。

tx2-t2.gif

4.3 機器間文件的發送實現

    因為上位機監控軟件系統既要運行在Linux下又要運行在Windows下,所以機器間的文件傳送采用操作系統自身的遠程文件拷貝功能,需要根據操作系統的不同,采用不同的實現機制。在Windows平臺下,在上位機監控軟件系統安裝配置時,就創建上位機監控軟件專用的管理員賬戶,此賬戶所有計算機都一樣,利用系統默認的CS、DS等默認共享,如同操作本機文件一樣在各臺機器之間拷貝文件。在Linux平臺下,在上位機監控軟件系統中設置相同的root用戶密碼,并在系統啟動時,利用腳本打通各個機器之間的訪問路徑,然后如同操作本機文件一樣在各臺機器之間拷貝文件[13]

4.4 機器間內存同步實現

    機器間的共享內存同步,采用Qt的QUdpSocket技術封裝,實現不同機器間共享內存數據的同步。實現時采用QUdpSocket類,封裝上述函數并提供類對象,上位機監控軟件系統的所有進程都可以加載網絡通信動態庫,即可具備機器間共享內存的同步功能。需要同步共享內存的進程調用類對象的發送內存接口函數發送內存數據,函數根據數據區的大小,在最短的時間內分包發送數據,并且每個分包中都帶有此數據包內數據相對于原始共享內存頭部的偏移地址及分包的大小。接收發送內存通知的進程只需定義發送內存通知信號及對應信號處理函數(即槽函數)就能收到并處理內存數據,收到的內存數據根據偏移地址和大小,可以直接覆蓋本機的共享內存中對應部分的數據,實現內存的同步[14]。

4.5 機器間發送操作數據包實現

    機器間發送操作數據包,采用Qt的QUdpSocket技術封裝并提供類對象,可以實現不同機器間操作數據包的發送。待發送操作數據包的進程調用類對象的發送操作數據接口函數來發送操作數據包。網絡上接收計算機上的進程只需定義接收操作數據的信號及該信號對應的信號處理函數即槽函數,即可收到并處理操作數據包。模擬量的畫面下發操作的數據包和數字量的置數操作的數據包采用不同的結構[15-16]。

    其中包類型可以用于讓通信模塊識別來決定放到輸入接口隊列還是輸出接口隊列,數字量操作隊列有兩種:即畫面數字量操作包類型和非畫面數字量操作包類型,非畫面數字量操作包類型指的是人工置數數字量點。畫面操作包需要為之做輸出型數字量清零處理,非畫面操作包不能清零。這兩個數據包由操作員所在的操作員站寫入,但是時間標簽由歷史站主站打包數據時寫入,過程如圖3所示。

tx2-t3.gif

5 結論

    本文主要介紹了基于國產PLC、支持跨平臺的上位機監控軟件系統中數據通信的實現方法。在實驗中對系統進行模塊拆分,并應用對每個模塊提出的新方法,實現了跨平臺的上位機數據通信。在對系統進行的長時段高負荷的運行驗證中,整個通信網絡表現出較強的穩定性、實時性和可靠性。

參考文獻

[1] 王雪艷.基于PLC和工控機的監控系統設計[J].煤炭技術,2012,31(1):63-64.

[2] 韓令斗,趙亮,張栗,等.基于PLC重鋪機組遠程監控系統的設計和實現[J].物聯網技術,2017,7(2):92-94.

[3] 高雪蓮,張國平,林光源,等.基于以太網的智能庫房監控系統上位機設計[J].電氣自動化,2017,7(2):92-94.

[4] 蔡桂龍,劉海燕,李勇.GPRS網絡通信與配變遠程監控系統[J].電力需求側管理,2017(1):92-94,112.

[5] 張濤,陳志軍.第三方軟件與監控系統遠程數據交互的應用[J].自動化儀表,2005,7(5):52-55.

[6] 徐忠.地鐵綜合監控系統中的數據交互共享方案研究[J].信息安全與技術,2012(3):79-81.

[7] 廖備水.流域梯級電站多監控系統數據交互模型的研究[D].西安:西安理工大學,2003.

[8] 蔣俊俊.基于信息智能聯盟的監控實時數據交互研究[D].南昌:華東交通大學,2015.

[9] 趙丹丹.無人駕駛智能車遠程監控系統[D].西安:西安工業大學,2014.

[10] 任???基于無線網絡通信的視頻監控系統終端數據業務軟件設計[D].杭州:浙江大學,2013.

[11] 王志曉.內網中網絡通信行為監控系統的設計與實現[D].西安:西安電子科技大學,2008.

[12] 方曉楠.基于網絡通信的JRU遠程監控系統[D].北京:北京郵電大學,2014.

[13] 李潮,員天佑.基于Modbus協議的監控系統網絡通信的實現[J].微計算機信息,2010,26(34):58-59.

[14] 毛建一,陳淵睿,伍堂順.基于Modbus協議的電能監控系統網絡通信的實現[J].工業控制計算機,2008,1(4):78-79.

[15] 榮建軍.基于ACE架構的網站信息監控系統[D].成都:電子科技大學,2008.

[16] 許倫輝,鄺先驗.網絡通信與數據庫技術在交通監控系統中的應用研究[J].計算機與現代化,2005,1(12):35-38.



作者信息:

王毅璇,豐大軍,王  皓,張曉莉

(華北計算機系統工程研究所,北京100083)

此內容為AET網站原創,未經授權禁止轉載。
亚洲一区二区欧美_亚洲丝袜一区_99re亚洲国产精品_日韩亚洲一区二区
亚洲视频在线观看三级| 久久成人亚洲| 欧美在线观看视频| 亚洲图片你懂的| 亚洲精品视频免费在线观看| 亚洲高清视频在线| 亚洲成色www8888| 在线观看欧美日韩| 亚洲电影av在线| 永久域名在线精品| 亚洲第一色中文字幕| 在线看日韩av| 亚洲国产裸拍裸体视频在线观看乱了中文 | 一区二区亚洲精品| 狠狠色丁香久久婷婷综合_中| 国产亚洲免费的视频看| 国外视频精品毛片| 在线观看91精品国产入口| 亚洲国产精品高清久久久| 91久久国产综合久久蜜月精品| 亚洲区一区二| 在线一区二区三区做爰视频网站| 亚洲午夜免费视频| 性8sex亚洲区入口| 亚洲高清中文字幕| 亚洲日本在线视频观看| 一区二区三区成人| 亚洲欧美日韩国产一区| 性亚洲最疯狂xxxx高清| 久久精品国产综合| 美女主播一区| 欧美日韩一区二区免费视频| 国产精品少妇自拍| 国产麻豆成人精品| 在线成人免费视频| 在线观看日韩国产| 一区二区三区黄色| 亚洲欧美日韩一区| 亚洲激情视频在线| 亚洲一区免费| 久久九九久精品国产免费直播| 蜜桃av一区二区三区| 欧美日韩国产在线一区| 国产精品色一区二区三区| 韩日视频一区| 日韩系列在线| 欧美一区二区三区在线看| 亚洲欧洲一区二区在线观看| 亚洲一区国产精品| 葵司免费一区二区三区四区五区| 欧美日韩不卡在线| 国产日韩欧美精品在线| 亚洲国产精品va在线看黑人动漫 | 麻豆成人av| 欧美日韩视频第一区| 国产一区二区欧美| 亚洲另类春色国产| 欧美自拍偷拍午夜视频| 国产精品99久久久久久白浆小说| 欧美一区二区大片| 欧美裸体一区二区三区| 国产日韩在线看片| 亚洲精品一二区| 久久成人综合视频| 亚洲综合色在线| 免费看的黄色欧美网站| 国产精品久久久久久久久久尿| 在线看片成人| 欧美亚洲专区| 亚洲视频一区二区| 欧美88av| 国产亚洲成人一区| 宅男精品视频| 99精品热视频只有精品10| 久久精品一二三区| 国产精品久久久久一区| 亚洲人成在线观看网站高清| 欧美在线啊v| 香蕉亚洲视频| 欧美日韩视频专区在线播放| 精品91视频| 性一交一乱一区二区洋洋av| 一区二区三区www| 欧美成人中文字幕在线| 国产日韩欧美中文在线播放| 99精品国产福利在线观看免费| 亚洲国产小视频在线观看| 欧美一进一出视频| 国产精品第一区| 日韩午夜在线播放| 日韩午夜中文字幕| 欧美第一黄色网| 一区在线视频| 欧美在线免费播放| 性欧美xxxx大乳国产app| 欧美三级日本三级少妇99| 亚洲欧洲一二三| 亚洲欧洲美洲综合色网| 久久综合综合久久综合| 国产日韩欧美在线播放| 亚洲欧美日韩综合aⅴ视频| 亚洲一区二区三区视频播放| 欧美日韩精品福利| 亚洲精品一区在线观看香蕉| 亚洲美女黄色| 欧美国产日产韩国视频| 亚洲第一综合天堂另类专| 亚洲国产精品电影| 久久亚洲精品一区| 国内精品久久久久久久影视蜜臀| 香蕉久久久久久久av网站| 欧美一级播放| 国产毛片一区| 香蕉av777xxx色综合一区| 久久精品二区| 国产一区二区精品| 久久精品女人| 欧美jizz19性欧美| 亚洲韩国青草视频| 亚洲九九九在线观看| 欧美精品一区二区三区很污很色的 | 亚洲午夜电影网| 欧美三级在线视频| 妖精成人www高清在线观看| 亚洲天堂网在线观看| 国产精品久久9| 亚洲欧美国产视频| 久久精品视频亚洲| 伊人狠狠色j香婷婷综合| 91久久精品国产| 欧美激情亚洲精品| 日韩视频免费观看| 亚洲综合日韩中文字幕v在线| 国产精品毛片a∨一区二区三区|国| 亚洲一区二区四区| 久久精品日韩一区二区三区| 伊人成人网在线看| 一本色道久久99精品综合| 欧美色精品在线视频| 亚洲一卡久久| 久久九九电影| 亚洲国产成人精品久久久国产成人一区| 亚洲精品激情| 国产精品xvideos88| 亚欧成人精品| 欧美www视频| 一本色道**综合亚洲精品蜜桃冫| 午夜精品美女自拍福到在线 | 毛片一区二区三区| 亚洲免费av电影| 欧美一区二区视频在线| 精品91免费| 亚洲一区二区高清视频| 国产婷婷色综合av蜜臀av| 91久久久久久久久| 欧美特黄一级| 欧美一级日韩一级| 欧美二区在线播放| 一区二区三区四区五区精品| 久久久精品国产免大香伊| 亚洲国产综合视频在线观看| 亚洲欧美日韩天堂一区二区| 国内自拍一区| 亚洲一区二区免费在线| 国产在线精品一区二区夜色| 99精品欧美一区二区三区综合在线 | 欧美性猛交xxxx乱大交蜜桃| 欧美一区影院| 欧美日韩高清不卡| 性做久久久久久久久| 欧美人与性动交cc0o| 午夜免费电影一区在线观看| 欧美激情久久久| 香蕉久久夜色精品国产| 欧美日韩ab| 久久成人久久爱| 欧美性猛交xxxx乱大交蜜桃| 亚洲国产高清自拍| 国产精品成人在线| 91久久久亚洲精品| 国产欧美一区二区三区另类精品| 日韩亚洲成人av在线| 国产一级精品aaaaa看| 亚洲五月六月| 亚洲电影免费观看高清完整版在线观看 | 午夜国产精品视频免费体验区| 亚洲丰满在线| 欧美专区18| 一区二区三区三区在线| 蜜乳av另类精品一区二区| 亚洲主播在线| 欧美日韩一区二区三区四区五区| 久久精品色图| 国产欧美 在线欧美| 中文日韩电影网站| 亚洲激情在线观看视频免费| 久久先锋影音av| 亚洲欧美日韩网| 国产精品久久二区二区| 夜色激情一区二区|