《電子技術(shù)應(yīng)用》
您所在的位置:首頁(yè) > 通信與網(wǎng)絡(luò) > 設(shè)計(jì)應(yīng)用 > 跨平臺(tái)的上位機(jī)監(jiān)控系統(tǒng)中數(shù)據(jù)通信的實(shí)現(xiàn)
跨平臺(tái)的上位機(jī)監(jiān)控系統(tǒng)中數(shù)據(jù)通信的實(shí)現(xiàn)
2017年電子技術(shù)應(yīng)用第10期
王毅璇,豐大軍,王 皓,張曉莉
華北計(jì)算機(jī)系統(tǒng)工程研究所,北京100083
摘要: 針對(duì)國(guó)產(chǎn)PLC實(shí)現(xiàn)上位機(jī)監(jiān)控系統(tǒng)時(shí)系統(tǒng)平臺(tái)與開(kāi)發(fā)軟件強(qiáng)耦合不易實(shí)現(xiàn)跨平臺(tái)數(shù)據(jù)通信的問(wèn)題,提出了一種跨平臺(tái)的數(shù)據(jù)通信實(shí)現(xiàn)方案。在對(duì)數(shù)據(jù)通信進(jìn)行功能分析的基礎(chǔ)上,通過(guò)對(duì)系統(tǒng)整體設(shè)計(jì)及對(duì)模塊局部拆分,實(shí)現(xiàn)底層網(wǎng)絡(luò)和上層應(yīng)用的分離。在底層網(wǎng)絡(luò)通信中,綜合應(yīng)用數(shù)據(jù)包大小動(dòng)態(tài)調(diào)整、大文件智能壓縮、過(guò)載選擇型丟包的技術(shù)手段,對(duì)數(shù)據(jù)通信進(jìn)行整體優(yōu)化。采用Qt平臺(tái)的本地Socket消息封裝技術(shù)實(shí)現(xiàn)Linux系統(tǒng)的進(jìn)程間以及機(jī)器間的消息通信,并且在接口級(jí)與Windows的消息通信兼容。在不同操作系統(tǒng)平臺(tái),采用各自最優(yōu)的文件共享策略,實(shí)現(xiàn)機(jī)器間文件的類本機(jī)文件操作。
中圖分類號(hào): TN99
文獻(xiàn)標(biāo)識(shí)碼: A
DOI:10.16157/j.issn.0258-7998.179019
中文引用格式: 王毅璇,豐大軍,王皓,等. 跨平臺(tái)的上位機(jī)監(jiān)控系統(tǒng)中數(shù)據(jù)通信的實(shí)現(xiàn)[J].電子技術(shù)應(yīng)用,2017,43(10):94-98.
英文引用格式: Wang Yixuan,F(xiàn)eng 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,F(xiàn)eng 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 引言

    目前國(guó)產(chǎn)PLC上位機(jī)監(jiān)控軟件廠家有西門子、施耐德、歐姆龍、三菱、橫河、臺(tái)達(dá)等,各類軟件均有各自的優(yōu)勢(shì),在國(guó)內(nèi)PLC市場(chǎng)占有較大的份額。然而針對(duì)不同系統(tǒng)平臺(tái)和開(kāi)發(fā)軟件所開(kāi)發(fā)出的上位機(jī)監(jiān)控系統(tǒng)之間兼容性較差,不能實(shí)現(xiàn)跨平臺(tái)數(shù)據(jù)通信。這是由于系統(tǒng)平臺(tái)和開(kāi)發(fā)軟件之間的耦合性較強(qiáng)造成的。

    在上位機(jī)監(jiān)控軟件系統(tǒng)的最底層(即網(wǎng)絡(luò)層),通信子系統(tǒng)負(fù)責(zé)與控制器間的數(shù)據(jù)通信以及操作員站之間的數(shù)據(jù)同步。通信子系統(tǒng)根據(jù)上位機(jī)監(jiān)控軟件系統(tǒng)中配置子系統(tǒng)提供的系統(tǒng)構(gòu)成信息,通過(guò)以太網(wǎng)完成系統(tǒng)中各個(gè)站點(diǎn)之間的狀態(tài)監(jiān)控、組態(tài)同步、進(jìn)程控制、文件維護(hù)等工作。而不同的PLC上位機(jī)監(jiān)控系統(tǒng)中配置子系統(tǒng)提供的系統(tǒng)構(gòu)成信息卻因系統(tǒng)平臺(tái)和開(kāi)發(fā)軟件的不同而不同。

    數(shù)據(jù)通信子系統(tǒng)接管上位機(jī)監(jiān)控軟件系統(tǒng)內(nèi)部上層應(yīng)用軟件需要的所有數(shù)據(jù)通信和文件傳輸,并能夠以消息方式通知上層應(yīng)用軟件。如果系統(tǒng)的構(gòu)成信息有差異,則會(huì)導(dǎo)致上位機(jī)之間傳輸數(shù)據(jù)的紊亂。

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

    本文采用面向?qū)ο笤O(shè)計(jì)的方法實(shí)現(xiàn)跨平臺(tái)開(kāi)發(fā)的上位機(jī)監(jiān)控軟件系統(tǒng)中的數(shù)據(jù)通信子系統(tǒng)。首先對(duì)數(shù)據(jù)通信子系統(tǒng)進(jìn)行了功能分析,然后進(jìn)行了整體設(shè)計(jì),并對(duì)子系統(tǒng)進(jìn)行化整為零的模塊拆分,最后對(duì)各模塊的實(shí)現(xiàn)方式、方法提出參考方案,并進(jìn)行較為詳細(xì)的闡述。

1 系統(tǒng)功能分析

    數(shù)據(jù)通信子系統(tǒng)需要完成監(jiān)控軟件系統(tǒng)中上層應(yīng)用軟件需要的所有數(shù)據(jù)通信和文件傳輸,并能夠以消息方式通知上層應(yīng)用軟件。數(shù)據(jù)通信內(nèi)容包括站間狀態(tài)數(shù)據(jù)包、實(shí)時(shí)數(shù)據(jù)表數(shù)據(jù)包、歷史數(shù)據(jù)數(shù)據(jù)包、命令包、請(qǐng)求包等所有需要網(wǎng)絡(luò)傳輸?shù)臄?shù)據(jù)包,文件傳輸包含組態(tài)文件、配置文件、日志文件等所有需要網(wǎng)絡(luò)傳輸和同步的文件。

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

2 系統(tǒng)總體設(shè)計(jì)

    如圖1所示,數(shù)據(jù)通信子系統(tǒng)總體劃分為3個(gè)模塊:數(shù)據(jù)交互模塊、網(wǎng)絡(luò)操作模塊和網(wǎng)絡(luò)通信模塊。數(shù)據(jù)交互模塊管理數(shù)據(jù)的發(fā)送和接收,負(fù)責(zé)完成站與站之間TCP/UDP數(shù)據(jù)和文件的傳送,發(fā)送隊(duì)列管理和接收數(shù)據(jù),并通知進(jìn)程;網(wǎng)絡(luò)通信模塊用于上位機(jī)監(jiān)控軟件站間各應(yīng)用程序與傳送數(shù)據(jù)時(shí)的網(wǎng)絡(luò)通信接口,主要是發(fā)送接口函數(shù)、接收接口函數(shù);網(wǎng)絡(luò)操作模塊主要完成提供遠(yuǎn)程登陸、獲取網(wǎng)絡(luò)地址、指定站狀態(tài)功能,該模塊主要提供兩個(gè)接口函數(shù),分別是獲取指定站的網(wǎng)絡(luò)連接狀態(tài)和獲取網(wǎng)絡(luò)地址。由于數(shù)據(jù)通信子系統(tǒng)同時(shí)支持Windows平臺(tái)和Linux平臺(tái),為了解決平臺(tái)差異性和實(shí)現(xiàn)系統(tǒng)的低耦合性,網(wǎng)絡(luò)操作模塊和網(wǎng)絡(luò)通信模塊均采用動(dòng)態(tài)鏈接庫(kù)形式實(shí)現(xiàn)。

tx2-t1.gif

    當(dāng)應(yīng)用程序有數(shù)據(jù)、文件或者命令要發(fā)送到目的站時(shí),先調(diào)用網(wǎng)絡(luò)操作動(dòng)態(tài)庫(kù)中的相關(guān)函數(shù),打通路徑;再調(diào)用網(wǎng)絡(luò)通信動(dòng)態(tài)庫(kù)的相關(guān)函數(shù)將數(shù)據(jù)按照優(yōu)先級(jí)放到不同的隊(duì)列中。數(shù)據(jù)交互模塊按照優(yōu)先級(jí)算法查詢各個(gè)隊(duì)列,將各個(gè)隊(duì)列的數(shù)據(jù)發(fā)送到目的地址;當(dāng)數(shù)據(jù)通信收到來(lái)自上位機(jī)監(jiān)控系統(tǒng)的網(wǎng)絡(luò)數(shù)據(jù)時(shí),先辨別是哪一類,如果是輸出型模擬量、輸出型數(shù)字量等數(shù)據(jù),則將數(shù)據(jù)放到接口輸入隊(duì)列;如果是命令,則即刻通知目標(biāo)應(yīng)用程序;如果是給應(yīng)用程序的內(nèi)存數(shù)據(jù),則將數(shù)據(jù)放到接收內(nèi)存隊(duì)列,并馬上通知上層應(yīng)用程序來(lái)接收處理。校時(shí)數(shù)據(jù)由歷史站主站周期發(fā)送給全網(wǎng),其他站被動(dòng)接收數(shù)據(jù)并修改自身的時(shí)鐘與歷史站主站保持一致。

    當(dāng)上位機(jī)監(jiān)控軟件系統(tǒng)出現(xiàn)錯(cuò)誤時(shí),數(shù)據(jù)交互模塊會(huì)調(diào)用整個(gè)系統(tǒng)錯(cuò)誤管理程序提供的接口函數(shù)顯示錯(cuò)誤提示。發(fā)送和接收錯(cuò)誤信息一律記入日志文件。為了保證整個(gè)系統(tǒng)的安全性,如果發(fā)生數(shù)據(jù)包太多、超過(guò)處理能力時(shí),則依據(jù)數(shù)據(jù)包中的重要性信息丟棄一部分不重要的數(shù)據(jù),但用于操作PLC的數(shù)字量信息包永遠(yuǎn)不被丟棄。

3 數(shù)據(jù)交互模塊

    該模塊主要接管上位機(jī)監(jiān)控軟件系統(tǒng)與計(jì)算機(jī)之間數(shù)據(jù)的交互工作,包括命令、內(nèi)存、文件的傳送。對(duì)TCP/UDP通信的發(fā)送和接收端口進(jìn)行管理,進(jìn)行點(diǎn)對(duì)點(diǎn)的通信。

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

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

4 網(wǎng)絡(luò)通信模塊

    提供本機(jī)進(jìn)程間的消息通信機(jī)制,調(diào)用公共函數(shù)可以在進(jìn)程間任意發(fā)消息通知。該模塊提供發(fā)送通知、發(fā)送文件、發(fā)送內(nèi)存、發(fā)送操作數(shù)據(jù)表、通知目標(biāo)任務(wù)接收數(shù)據(jù)、接收數(shù)據(jù)的接口函數(shù)。如果數(shù)據(jù)發(fā)送失敗,采用消息方式通知調(diào)用任務(wù)(此功能在數(shù)據(jù)交互模塊中)。UDP數(shù)據(jù)包分為大包、中包和小包。TCP數(shù)據(jù)包沒(méi)有這些限制。數(shù)據(jù)通信與上位機(jī)監(jiān)控軟件系統(tǒng)其他應(yīng)用程序的接口包括3種:消息、內(nèi)存和動(dòng)態(tài)庫(kù)[9-12]。

4.1 本地消息實(shí)現(xiàn)

    鑒于上位機(jī)監(jiān)控軟件系統(tǒng)既要運(yùn)行在Linux下又要運(yùn)行在Windows下,但是兩個(gè)操作系統(tǒng)對(duì)消息的定義不同,所以采用Qt的本地Socket技術(shù)封裝上位機(jī)監(jiān)控軟件自己的消息機(jī)制,實(shí)現(xiàn)進(jìn)程間的消息通信,其對(duì)外接口形式采用近似Windows的消息方式。

    本地消息通知分兩種,一種是傳遞消息值及消息參數(shù),另一種是傳遞消息值及一小塊內(nèi)存數(shù)據(jù)。實(shí)現(xiàn)時(shí)采用QlocalSocket類,封裝上述兩個(gè)函數(shù)并提供類對(duì)象,上位機(jī)監(jiān)控軟件系統(tǒng)的所有進(jìn)程都可以加載網(wǎng)絡(luò)通信動(dòng)態(tài)庫(kù),即可具備本地進(jìn)程間的消息通知功能。發(fā)送通知的進(jìn)程調(diào)用類對(duì)象的發(fā)送命令的函數(shù)發(fā)送通知,接收通知的進(jìn)程只需定義本地接收通知的信號(hào)及對(duì)應(yīng)信號(hào)處理函數(shù)即槽函數(shù),即可收到并處理通知。通知傳送處理流程如圖2所示。

4.2 機(jī)器間的消息實(shí)現(xiàn)

    機(jī)器間的消息通知亦采用Qt的Socket技術(shù)封裝上位機(jī)監(jiān)控軟件自己的消息機(jī)制,實(shí)現(xiàn)不同機(jī)器進(jìn)程間的消息通知。機(jī)器間消息通知亦分兩種,一種是傳遞消息值及消息參數(shù),另一種是傳遞消息值及一小塊內(nèi)存數(shù)據(jù)。實(shí)現(xiàn)時(shí)采用QUdpSocket類,封裝上述兩個(gè)函數(shù)并提供類對(duì)象,上位機(jī)監(jiān)控軟件系統(tǒng)的所有進(jìn)程都可以加載網(wǎng)絡(luò)通信動(dòng)態(tài)庫(kù),即可具備機(jī)器間進(jìn)程的消息通知功能。發(fā)送通知的進(jìn)程調(diào)用類對(duì)象的發(fā)送命令的函數(shù)發(fā)送通知,接收通知的進(jìn)程只需定義遠(yuǎn)程接收信號(hào)及對(duì)應(yīng)槽函數(shù),即可收到并處理通知。通知傳送處理流程如圖2所示。

tx2-t2.gif

4.3 機(jī)器間文件的發(fā)送實(shí)現(xiàn)

    因?yàn)樯衔粰C(jī)監(jiān)控軟件系統(tǒng)既要運(yùn)行在Linux下又要運(yùn)行在Windows下,所以機(jī)器間的文件傳送采用操作系統(tǒng)自身的遠(yuǎn)程文件拷貝功能,需要根據(jù)操作系統(tǒng)的不同,采用不同的實(shí)現(xiàn)機(jī)制。在Windows平臺(tái)下,在上位機(jī)監(jiān)控軟件系統(tǒng)安裝配置時(shí),就創(chuàng)建上位機(jī)監(jiān)控軟件專用的管理員賬戶,此賬戶所有計(jì)算機(jī)都一樣,利用系統(tǒng)默認(rèn)的CS、DS等默認(rèn)共享,如同操作本機(jī)文件一樣在各臺(tái)機(jī)器之間拷貝文件。在Linux平臺(tái)下,在上位機(jī)監(jiān)控軟件系統(tǒng)中設(shè)置相同的root用戶密碼,并在系統(tǒng)啟動(dòng)時(shí),利用腳本打通各個(gè)機(jī)器之間的訪問(wèn)路徑,然后如同操作本機(jī)文件一樣在各臺(tái)機(jī)器之間拷貝文件[13]

4.4 機(jī)器間內(nèi)存同步實(shí)現(xiàn)

    機(jī)器間的共享內(nèi)存同步,采用Qt的QUdpSocket技術(shù)封裝,實(shí)現(xiàn)不同機(jī)器間共享內(nèi)存數(shù)據(jù)的同步。實(shí)現(xiàn)時(shí)采用QUdpSocket類,封裝上述函數(shù)并提供類對(duì)象,上位機(jī)監(jiān)控軟件系統(tǒng)的所有進(jìn)程都可以加載網(wǎng)絡(luò)通信動(dòng)態(tài)庫(kù),即可具備機(jī)器間共享內(nèi)存的同步功能。需要同步共享內(nèi)存的進(jìn)程調(diào)用類對(duì)象的發(fā)送內(nèi)存接口函數(shù)發(fā)送內(nèi)存數(shù)據(jù),函數(shù)根據(jù)數(shù)據(jù)區(qū)的大小,在最短的時(shí)間內(nèi)分包發(fā)送數(shù)據(jù),并且每個(gè)分包中都帶有此數(shù)據(jù)包內(nèi)數(shù)據(jù)相對(duì)于原始共享內(nèi)存頭部的偏移地址及分包的大小。接收發(fā)送內(nèi)存通知的進(jìn)程只需定義發(fā)送內(nèi)存通知信號(hào)及對(duì)應(yīng)信號(hào)處理函數(shù)(即槽函數(shù))就能收到并處理內(nèi)存數(shù)據(jù),收到的內(nèi)存數(shù)據(jù)根據(jù)偏移地址和大小,可以直接覆蓋本機(jī)的共享內(nèi)存中對(duì)應(yīng)部分的數(shù)據(jù),實(shí)現(xiàn)內(nèi)存的同步[14]。

4.5 機(jī)器間發(fā)送操作數(shù)據(jù)包實(shí)現(xiàn)

    機(jī)器間發(fā)送操作數(shù)據(jù)包,采用Qt的QUdpSocket技術(shù)封裝并提供類對(duì)象,可以實(shí)現(xiàn)不同機(jī)器間操作數(shù)據(jù)包的發(fā)送。待發(fā)送操作數(shù)據(jù)包的進(jìn)程調(diào)用類對(duì)象的發(fā)送操作數(shù)據(jù)接口函數(shù)來(lái)發(fā)送操作數(shù)據(jù)包。網(wǎng)絡(luò)上接收計(jì)算機(jī)上的進(jìn)程只需定義接收操作數(shù)據(jù)的信號(hào)及該信號(hào)對(duì)應(yīng)的信號(hào)處理函數(shù)即槽函數(shù),即可收到并處理操作數(shù)據(jù)包。模擬量的畫面下發(fā)操作的數(shù)據(jù)包和數(shù)字量的置數(shù)操作的數(shù)據(jù)包采用不同的結(jié)構(gòu)[15-16]

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

tx2-t3.gif

5 結(jié)論

    本文主要介紹了基于國(guó)產(chǎn)PLC、支持跨平臺(tái)的上位機(jī)監(jiān)控軟件系統(tǒng)中數(shù)據(jù)通信的實(shí)現(xiàn)方法。在實(shí)驗(yàn)中對(duì)系統(tǒng)進(jìn)行模塊拆分,并應(yīng)用對(duì)每個(gè)模塊提出的新方法,實(shí)現(xiàn)了跨平臺(tái)的上位機(jī)數(shù)據(jù)通信。在對(duì)系統(tǒng)進(jìn)行的長(zhǎng)時(shí)段高負(fù)荷的運(yùn)行驗(yàn)證中,整個(gè)通信網(wǎng)絡(luò)表現(xiàn)出較強(qiáng)的穩(wěn)定性、實(shí)時(shí)性和可靠性。

參考文獻(xiàn)

[1] 王雪艷.基于PLC和工控機(jī)的監(jiān)控系統(tǒng)設(shè)計(jì)[J].煤炭技術(shù),2012,31(1):63-64.

[2] 韓令斗,趙亮,張栗,等.基于PLC重鋪機(jī)組遠(yuǎn)程監(jiān)控系統(tǒng)的設(shè)計(jì)和實(shí)現(xiàn)[J].物聯(lián)網(wǎng)技術(shù),2017,7(2):92-94.

[3] 高雪蓮,張國(guó)平,林光源,等.基于以太網(wǎng)的智能庫(kù)房監(jiān)控系統(tǒng)上位機(jī)設(shè)計(jì)[J].電氣自動(dòng)化,2017,7(2):92-94.

[4] 蔡桂龍,劉海燕,李勇.GPRS網(wǎng)絡(luò)通信與配變遠(yuǎn)程監(jiān)控系統(tǒng)[J].電力需求側(cè)管理,2017(1):92-94,112.

[5] 張濤,陳志軍.第三方軟件與監(jiān)控系統(tǒng)遠(yuǎn)程數(shù)據(jù)交互的應(yīng)用[J].自動(dòng)化儀表,2005,7(5):52-55.

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

[7] 廖備水.流域梯級(jí)電站多監(jiān)控系統(tǒng)數(shù)據(jù)交互模型的研究[D].西安:西安理工大學(xué),2003.

[8] 蔣俊俊.基于信息智能聯(lián)盟的監(jiān)控實(shí)時(shí)數(shù)據(jù)交互研究[D].南昌:華東交通大學(xué),2015.

[9] 趙丹丹.無(wú)人駕駛智能車遠(yuǎn)程監(jiān)控系統(tǒng)[D].西安:西安工業(yè)大學(xué),2014.

[10] 任???基于無(wú)線網(wǎng)絡(luò)通信的視頻監(jiān)控系統(tǒng)終端數(shù)據(jù)業(yè)務(wù)軟件設(shè)計(jì)[D].杭州:浙江大學(xué),2013.

[11] 王志曉.內(nèi)網(wǎng)中網(wǎng)絡(luò)通信行為監(jiān)控系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)[D].西安:西安電子科技大學(xué),2008.

[12] 方曉楠.基于網(wǎng)絡(luò)通信的JRU遠(yuǎn)程監(jiān)控系統(tǒng)[D].北京:北京郵電大學(xué),2014.

[13] 李潮,員天佑.基于Modbus協(xié)議的監(jiān)控系統(tǒng)網(wǎng)絡(luò)通信的實(shí)現(xiàn)[J].微計(jì)算機(jī)信息,2010,26(34):58-59.

[14] 毛建一,陳淵睿,伍堂順.基于Modbus協(xié)議的電能監(jiān)控系統(tǒng)網(wǎng)絡(luò)通信的實(shí)現(xiàn)[J].工業(yè)控制計(jì)算機(jī),2008,1(4):78-79.

[15] 榮建軍.基于ACE架構(gòu)的網(wǎng)站信息監(jiān)控系統(tǒng)[D].成都:電子科技大學(xué),2008.

[16] 許倫輝,鄺先驗(yàn).網(wǎng)絡(luò)通信與數(shù)據(jù)庫(kù)技術(shù)在交通監(jiān)控系統(tǒng)中的應(yīng)用研究[J].計(jì)算機(jī)與現(xiàn)代化,2005,1(12):35-38.



作者信息:

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

(華北計(jì)算機(jī)系統(tǒng)工程研究所,北京100083)

此內(nèi)容為AET網(wǎng)站原創(chuàng),未經(jīng)授權(quán)禁止轉(zhuǎn)載。