焦振華
摘要:為了及時(shí)、有效與現(xiàn)場設(shè)備建立數(shù)據(jù)通訊,利用Visual C#.NET開發(fā)了有毒氣體監(jiān)測儀與安裝有力控組態(tài)軟件的上位機(jī)之間的數(shù)據(jù)通訊程序。結(jié)果表明,通過該程序可以穩(wěn)定有效地實(shí)現(xiàn)有毒氣體監(jiān)測儀與力控組態(tài)軟件之間的數(shù)據(jù)傳送。
關(guān)鍵詞關(guān)鍵詞:Visual C#.NET;力控組態(tài)軟件;數(shù)據(jù)通訊程序
DOIDOI:10.11907/rjdk.161455
中圖分類號:TP319文獻(xiàn)標(biāo)識碼:A文章編號文章編號:16727800(2016)007010403
0引言
近年來,隨著核技術(shù)在許多領(lǐng)域的應(yīng)用和發(fā)展,放射性有毒氣體對環(huán)境的污染以及核生產(chǎn)現(xiàn)場的安全越來越受到人們的關(guān)注。為了有效防止放射性有毒氣體對環(huán)境的污染和核生產(chǎn)過程中事故的發(fā)生,建立科學(xué)完善的環(huán)境輻射監(jiān)測系統(tǒng)顯得尤為重要。在監(jiān)測系統(tǒng)的建立過程中,上層監(jiān)控組態(tài)軟件與下層現(xiàn)場工業(yè)設(shè)備之間的數(shù)據(jù)交互是系統(tǒng)運(yùn)行的核心。如何建立上位機(jī)與現(xiàn)場設(shè)備之間的數(shù)據(jù)通訊聯(lián)系是保證數(shù)據(jù)正常交互的根本要求[1]。本文研究了上位機(jī)力控組態(tài)軟件如何實(shí)現(xiàn)與網(wǎng)絡(luò)化環(huán)境輻射監(jiān)測設(shè)備有毒氣體監(jiān)測監(jiān)測儀之間進(jìn)行實(shí)時(shí)數(shù)據(jù)通訊的問題,以實(shí)現(xiàn)上位機(jī)對現(xiàn)場環(huán)境中的各種放射性異常情況進(jìn)行遠(yuǎn)程監(jiān)控的目的。
1.1C.NET
(讀作C Sharp) 是微軟公司發(fā)布的一種面向?qū)ο蟆⑦\(yùn)行于.NET Framework 之上的高級程序設(shè)計(jì)語言。C#強(qiáng)調(diào)以組為基礎(chǔ)的軟件開發(fā)方法,融合了Visual試環(huán)節(jié)分為開發(fā)人員測試和瀏覽者測試。開發(fā)人員測試主要是對場景漫游和交互功能的測試。瀏覽者測試是對虛擬字畫展館觀看、瀏覽、學(xué)習(xí)等使用效果的測試。結(jié)合測試反饋結(jié)果,對虛擬系統(tǒng)進(jìn)行再修改和完善,以更優(yōu)化的界面和功能展示給瀏覽者。4結(jié)語
虛擬字畫展館作為虛擬現(xiàn)實(shí)在展示設(shè)計(jì)領(lǐng)域應(yīng)用的一類產(chǎn)品,因其操作可控性、信息豐富性、內(nèi)容直觀性等特點(diǎn),吸引了許多觀眾的眼球,滿足了游覽者視覺上的沖擊,并通過多種交互技術(shù)帶給用戶身臨其境的體驗(yàn),在一定程度上也提高了人們的文化修養(yǎng),同時(shí)節(jié)省了建設(shè)實(shí)體展館的高額費(fèi)用。三維場景中的互動演示也彌補(bǔ)了傳統(tǒng)字畫展館的不足,具有較大的發(fā)展空間和良好的發(fā)展前景。
Basic的高效易用和C/C++語言的靈活強(qiáng)大等諸多優(yōu)點(diǎn),去掉了它們的一些復(fù)雜特性。在.NET框架下的System.NET命名空間為需要進(jìn)行網(wǎng)絡(luò)訪問的開發(fā)人員提供了WinSock接口的接管實(shí)現(xiàn),其中的Socket類用于實(shí)現(xiàn)Berkeley套接字接口,并為實(shí)現(xiàn)網(wǎng)絡(luò)編程提供了大量方法。在應(yīng)用協(xié)議層面上,通常使用構(gòu)建于Socket類之上的TcpClient類和TcpListener類,其位于System.NET.Sockets命名空間中。相比位于底層的Socket類提供了更高層次的抽象,封裝TCP套接字的創(chuàng)建,無需處理連接的細(xì)節(jié)[2]。其中TcpClient類為TCP網(wǎng)絡(luò)服務(wù)器提供客戶端連接,其構(gòu)建于Socket類之上,以提供較高級別的服務(wù),即用于在同步阻止模式下通過網(wǎng)絡(luò)連接、發(fā)送和接收數(shù)據(jù)。TcpListener類專為服務(wù)器端設(shè)計(jì),用于監(jiān)視TCP端口上傳人的請求,接收傳入的連接請求并創(chuàng)建TcpClient實(shí)例以處理請求,并可使用此連接發(fā)送和接收數(shù)據(jù)包[3]。
1.2力控組態(tài)軟件
環(huán)境輻射監(jiān)測系統(tǒng)上位機(jī)使用的監(jiān)控軟件是北京三維力控公司的力控組態(tài)軟件ForceControl V7.0監(jiān)控組態(tài)軟件。該監(jiān)控組態(tài)軟件是對現(xiàn)場生產(chǎn)數(shù)據(jù)進(jìn)行采集與過程控制的專用軟件,最大特點(diǎn)是能以靈活多樣的組態(tài)方式而不是編程方式進(jìn)行系統(tǒng)集成,它提供了良好的用戶開發(fā)界面和簡捷的工程實(shí)現(xiàn)方法,只要將其預(yù)設(shè)置的各種軟件模塊進(jìn)行簡單的組態(tài),便可以非常容易地實(shí)現(xiàn)和完成監(jiān)控層的各項(xiàng)功能。該監(jiān)控組態(tài)軟件可以與多種類型控制設(shè)備進(jìn)行通信,對于采用不同協(xié)議通信的I/O設(shè)備,多數(shù)都有相應(yīng)的I/O驅(qū)動程序,通過I/O驅(qū)動程序來完成與設(shè)備的通訊。該工業(yè)組態(tài)平臺與I/O設(shè)備之間一般通過以下幾種方式進(jìn)行數(shù)據(jù)交換:串行通信方式、網(wǎng)絡(luò)節(jié)點(diǎn)(支持TCP/IP協(xié)議、UDP/IP協(xié)議通訊)方式、DDE方式、OPC方式。力控組態(tài)軟件基本程序及組件包括:工程管理器、 人機(jī)界面 VIEW、實(shí)時(shí)數(shù)據(jù)庫DB、 I/O 驅(qū)動程序、控制策略生成器以及各種數(shù)據(jù)服務(wù)及擴(kuò)展組件等,其中實(shí)時(shí)數(shù)據(jù)庫是系統(tǒng)的核心[4]。力控組態(tài)軟件結(jié)構(gòu)如圖1所示。
圖1力控組態(tài)軟件結(jié)構(gòu)
2監(jiān)測儀與力控軟件通訊建立
2.1監(jiān)測儀與力控軟件主機(jī)間網(wǎng)絡(luò)組建
為了實(shí)現(xiàn)上位機(jī)組態(tài)軟件對現(xiàn)場有毒氣體參數(shù)的實(shí)時(shí)采集,需要配置的通訊硬件包括:正泰交流接觸器、ART阿爾泰模塊、串口服務(wù)器(USR-TCP232-300)、光電收發(fā)器、光纖熔接盒、光纜等設(shè)備。數(shù)據(jù)采集的通訊網(wǎng)絡(luò)如圖2所示。圖2網(wǎng)絡(luò)通訊結(jié)構(gòu)
2.2客戶端力控組態(tài)軟件通訊配置
上位機(jī)客戶端力控組態(tài)軟件通信配置主要步驟包括:①定義I/O設(shè)備:在工業(yè)組態(tài)平臺開發(fā)系統(tǒng)導(dǎo)航器窗口中雙擊“I/O設(shè)備組態(tài)”,啟動IoManager。選擇“標(biāo)準(zhǔn)MODBUS”類中的“MODBUS(TCP)”;②設(shè)備屬性配置:雙擊彈出“設(shè)備配置”對話框,在“設(shè)備名稱”中輸入邏輯設(shè)備的名稱、設(shè)備描述、更新周期、超時(shí)時(shí)間。點(diǎn)擊下一步輸入設(shè)備地址(如:192.168.1.11)端口為502,通信方式選擇TCP/IP網(wǎng)絡(luò)方式;③采集配置:該步驟包括保持寄存器寫操作、分包配置和線圈功能碼的選擇。寫單個(gè)寄存器表示:HR 保持寄存器單寄存的寫入操作,一般設(shè)備支持該命令,一條命令只能寫一個(gè)寄存器。簡單的數(shù)據(jù)類型可以用這條命令支持,如 8 位、16 位的數(shù)據(jù)類型可以用此命令寫入。寫多個(gè)寄存器表示:HR 保持寄存器多寄存器的寫入操作,一條命令可以寫多個(gè)寄存器的值。復(fù)雜的數(shù)據(jù)類型用這條命令支持,如 32 位,64 位的數(shù)據(jù)類型。05 功能碼表示:選中后線圈下置命令用 05 功能碼執(zhí)行。打開數(shù)據(jù)庫組態(tài),選擇數(shù)據(jù)庫新建點(diǎn),選擇相應(yīng)的點(diǎn)類型(如模擬量I/O點(diǎn))。點(diǎn)擊“繼續(xù)”按鈕,填寫點(diǎn)名,其它默認(rèn)。點(diǎn)擊數(shù)據(jù)連接分頁,常用的是PV(現(xiàn)場實(shí)時(shí)值),選擇要連接的設(shè)備名稱,連接項(xiàng)一欄點(diǎn)擊“增加”以增加鏈接項(xiàng),根據(jù)需要設(shè)置相對應(yīng)的內(nèi)存區(qū)地址以及偏移地址、數(shù)據(jù)格式、讀寫屬性,則完成了數(shù)據(jù)在監(jiān)控界面動態(tài)顯示的連接全過程。
2.3服務(wù)器端通訊接口程序開發(fā)
現(xiàn)場有毒氣體監(jiān)測儀安裝的監(jiān)測軟件為NetRMS V2.0 網(wǎng)絡(luò)化實(shí)時(shí)輻射監(jiān)測系統(tǒng),該軟件采用Microsoft Access數(shù)據(jù)庫進(jìn)行實(shí)時(shí)數(shù)據(jù)存儲,此數(shù)據(jù)庫為實(shí)時(shí)數(shù)據(jù)庫并且不具備多用戶同時(shí)訪問特性。該特性導(dǎo)致:一方面該數(shù)據(jù)庫不具備大數(shù)據(jù)智能檢索功能,另一方面在監(jiān)測軟件寫數(shù)據(jù)的同時(shí),不允許第三方開發(fā)的OPC服務(wù)器訪問數(shù)據(jù)庫,從而導(dǎo)致上位機(jī)無法通過OPC方式直接與其進(jìn)行數(shù)據(jù)交換,需要開發(fā)通信接口驅(qū)動程序來連接該設(shè)備。在勘察了現(xiàn)場軟件的工作特點(diǎn)后發(fā)現(xiàn),有毒氣體監(jiān)測儀本身提供了以太網(wǎng)接入端口,如果通過此端口接入不但能保證監(jiān)測主機(jī)本身的穩(wěn)定運(yùn)行,同時(shí)也能保證采集數(shù)據(jù)的及時(shí)有效傳輸。為了實(shí)現(xiàn)上位機(jī)與有毒氣體監(jiān)測設(shè)備的正常通訊,本文使用C# 語言開發(fā)一個(gè)基于.NET Framework類庫的數(shù)據(jù)通訊接口程序。該程序功能為:一方面作為本機(jī)客戶端(Clinent)與本機(jī)的有毒氣體監(jiān)測軟件建立通訊來獲取監(jiān)測數(shù)據(jù);另一方面上位機(jī)客戶端力控組態(tài)軟件又將該接口程序作為數(shù)據(jù)服務(wù)器Server來獲取要采集的數(shù)據(jù)。
2.3.1程序設(shè)計(jì)思路
有毒氣體監(jiān)測軟件采集程序本身具有TCP SERVER(服務(wù)端)監(jiān)控功能,鑒于此特點(diǎn),在不影響本身程序運(yùn)行的情況下,通訊接口程序作為客戶端與有毒氣體監(jiān)測服務(wù)器連接,將有毒氣體監(jiān)測軟件中的數(shù)據(jù)存儲到MODBUSServer程序中,然后在MODBUSSERVER實(shí)例轉(zhuǎn)發(fā)出去,同時(shí)力控組態(tài)軟件與內(nèi)嵌在MODBUSServer中的通訊程序建立連接,該程序?qū)?shù)據(jù)同步轉(zhuǎn)發(fā)到力控組態(tài)軟件監(jiān)控主機(jī)上。力控組態(tài)軟件和通訊接口軟件之間的通訊流程如圖3所示。
圖3通訊接口程序功能
通訊接口程序請求與有毒氣體監(jiān)測軟件建立通訊主要是利用.NET框架提供的TcpClient類實(shí)現(xiàn),通訊建立成功后,接口軟件進(jìn)行數(shù)據(jù)讀取并判斷數(shù)據(jù)的正確性,同時(shí)將數(shù)據(jù)保存在MODBUSServer程序中。當(dāng)客戶端力控組態(tài)軟件向接口程序發(fā)出數(shù)據(jù)通訊請求時(shí),接口程序中的MODBUSServer.cs程序利用.NET框架提供的TcpListener類與其建立聯(lián)系并向力控組態(tài)軟件發(fā)送數(shù)據(jù)。
2.3.2通訊程序具體實(shí)現(xiàn)
(1)請求連接。通訊接口程序與有毒氣體監(jiān)測軟件通過TCP進(jìn)行連接,程序代碼如下:
參考文獻(xiàn):
鄧敏杰,馬源穎.基于VRP的三維學(xué)習(xí)課件設(shè)計(jì)與開發(fā)[J].軟件導(dǎo)刊,2015(8):160163.
牛霞.虛擬現(xiàn)實(shí)在展示設(shè)計(jì)中的應(yīng)用研究.蘭州:西北大學(xué),2014.
游珊珊.博覽建筑內(nèi)外環(huán)境設(shè)計(jì)研究.武漢:華中科技大學(xué),2011.
劉俐利,凌毓?jié)?,王艷鳳.虛擬學(xué)習(xí)環(huán)境中構(gòu)建三維動畫資源與交互設(shè)計(jì)研究[J].中國電化教育,2014(2):123128.
梁艷霞.基于3ds Max的三維建模技術(shù)在工業(yè)設(shè)計(jì)中的應(yīng)用[J].電腦知識與技術(shù),2009(25):72427244.
劉康平.基于UDK的虛擬現(xiàn)實(shí)技術(shù)在室內(nèi)設(shè)計(jì)中的應(yīng)用于研究[J].計(jì)算機(jī)光盤軟件與用,2012(18):14.
高義棟,楊小飛.虛擬導(dǎo)游實(shí)訓(xùn)系統(tǒng)中交互功能的設(shè)計(jì)與實(shí)現(xiàn)——以《比干廟導(dǎo)游實(shí)訓(xùn)VR教學(xué)平臺》為例[J].現(xiàn)代教育技術(shù),2013(5):117121.
責(zé)任編輯(責(zé)任編輯:孫娟