• 
    

    
    

      99热精品在线国产_美女午夜性视频免费_国产精品国产高清国产av_av欧美777_自拍偷自拍亚洲精品老妇_亚洲熟女精品中文字幕_www日本黄色视频网_国产精品野战在线观看 ?

      基于Unity3D的電磁軌道仿真平臺(tái)監(jiān)控系統(tǒng)*

      2017-05-02 11:58:16龐海亮
      上海電氣技術(shù) 2017年1期
      關(guān)鍵詞:輸入輸出腳本組態(tài)

      龐海亮

      上海電氣集團(tuán)股份有限公司 中央研究院 上海 200070

      在工業(yè)控制領(lǐng)域中,組態(tài)軟件作為開發(fā)綜合監(jiān)控系統(tǒng)常用的平臺(tái)應(yīng)用非常廣泛,常見的組態(tài)軟件包括西門子WinCC、施耐德Intouch、北京亞控KingView和上海電氣NetControl等。不同品牌的組態(tài)軟件雖然在具體開發(fā)使用方面有所不同,但在總體功能框架方面都非常類似,同時(shí)也都存在一個(gè)問題: 由于對(duì)三維畫面支持不佳,因此不能實(shí)現(xiàn)設(shè)備地理信息系統(tǒng)(GIS)監(jiān)控、設(shè)備自動(dòng)巡檢、設(shè)備仿真運(yùn)行等功能[1]。

      近幾年,隨著計(jì)算機(jī)硬件及軟件技術(shù)不斷進(jìn)步,虛擬仿真技術(shù)不斷被應(yīng)用于各行各業(yè)。Unity3D作為一款性能強(qiáng)大的跨平臺(tái)開發(fā)軟件,應(yīng)用也越來越廣泛。采用Unity3D軟件開發(fā)電磁軌道交通仿真平臺(tái)三維綜合監(jiān)控系統(tǒng),通過改變?nèi)S監(jiān)控系統(tǒng)中人物模型的視角,可以實(shí)現(xiàn)對(duì)三維場(chǎng)景中的設(shè)備進(jìn)行巡檢等功能[2],同時(shí)三維監(jiān)控系統(tǒng)能夠?qū)⒎抡嫫脚_(tái)上的設(shè)備及設(shè)備狀態(tài)信息以純數(shù)字化模型進(jìn)行展示,以提供更直觀的監(jiān)控效果。

      1 系統(tǒng)概述

      1.1 電磁軌道交通仿真平臺(tái)

      電磁軌道交通是以地面鋪設(shè)的磁釘作為車輛行駛導(dǎo)軌的一種無人駕駛交通模式,目前這一交通模式被應(yīng)用于公共交通領(lǐng)域,具有道路改造成本低、建設(shè)周期短、設(shè)備維護(hù)成本低等多種優(yōu)勢(shì)。

      電磁軌道交通模擬仿真平臺(tái)是按電磁軌道交通原理制作的一個(gè)沙盤,具備與實(shí)際電磁軌道交通相同的功能,同時(shí)配備若干對(duì)外數(shù)據(jù)接口,可以實(shí)現(xiàn)與外部設(shè)備的互聯(lián)及數(shù)據(jù)交互。電磁軌道交通仿真平臺(tái)如圖1所示,對(duì)外提供的數(shù)據(jù)種類見表1。

      表1 電磁軌道交通仿真平臺(tái)對(duì)外數(shù)據(jù)接口

      圖1 電磁軌道交通仿真平臺(tái)

      1.2 Unity3D

      Unity3D是一款跨平臺(tái)圖形化三維軟件,能夠提供渲染、物理模擬、音樂音效、腳本及場(chǎng)景管理等基本功能,具有可視化編輯開發(fā)環(huán)境,支持包括C#、JavaScript在內(nèi)的腳本語言,默認(rèn)的腳本編輯器為Monodevelop,也可使用Visual Studio作為腳本編輯器??蓪⑼ㄟ^3Dmax、Maya建立的模型導(dǎo)入U(xiǎn)nity3D中進(jìn)行相應(yīng)的操作,通過編寫對(duì)應(yīng)的腳本可以實(shí)現(xiàn)模型的各種動(dòng)態(tài)模擬效果[3]。

      1.3 NetControl

      NetControl是上海電氣推出的一款工業(yè)組態(tài)軟件,目前已在電力系統(tǒng)、軌道交通、泵站系統(tǒng)中應(yīng)用,具備監(jiān)控系統(tǒng)畫面組態(tài)、腳本控制、數(shù)據(jù)記錄存儲(chǔ)、控件二次開發(fā)等多種功能。通過NetControl與仿真平臺(tái)互聯(lián),可以進(jìn)行數(shù)據(jù)交互操作,并可將數(shù)據(jù)實(shí)時(shí)更新至SQL Server數(shù)據(jù)庫(kù)。

      1.4 系統(tǒng)整體框架

      整個(gè)系統(tǒng)包括仿真平臺(tái)、NetControl監(jiān)控系統(tǒng)、SQL Server數(shù)據(jù)庫(kù)、Unity3D工程。整體框架分為四層,仿真平臺(tái)作為被控對(duì)象提供數(shù)據(jù)源,NetControl監(jiān)控系統(tǒng)作為二維監(jiān)控系統(tǒng)與仿真平臺(tái)互聯(lián),SQL Server數(shù)據(jù)庫(kù)負(fù)責(zé)存儲(chǔ)NetControl監(jiān)控系統(tǒng)中記錄的數(shù)據(jù),Unity3D工程通過連接SQL Server數(shù)據(jù)庫(kù)取得數(shù)據(jù)并通過腳本實(shí)現(xiàn)相應(yīng)的動(dòng)畫效果。系統(tǒng)整體框架如圖2所示。

      圖2 系統(tǒng)整體框架

      2 NetControl監(jiān)控系統(tǒng)的實(shí)現(xiàn)

      NetControl中集成了大量的預(yù)制圖標(biāo)、控件等模板,可直接用于監(jiān)控畫面組態(tài),并通過綁定變量或編寫腳本進(jìn)行監(jiān)控畫面的顯示與控制。同時(shí),NetControl中還集成了大量通信驅(qū)動(dòng)程序,可以與多種控制器進(jìn)行設(shè)備互聯(lián)。NetControl監(jiān)控系統(tǒng)的實(shí)現(xiàn)主要分為以下幾個(gè)步驟。

      2.1 建立設(shè)備連接

      系統(tǒng)中,仿真平臺(tái)由其它廠家提供,支持Modbus通信協(xié)議。在NetControl中建立Modbus類型輸入與輸出設(shè)備連接,并進(jìn)行相應(yīng)的參數(shù)配置,將仿真平臺(tái)控制器掛載在NetControl建立的輸入輸出連接中,作為服務(wù)器端,NetControl監(jiān)控系統(tǒng)則作為客戶端,如圖3所示。

      圖3 設(shè)備連接示意圖

      2.2 建立輸入輸出變量

      在建立設(shè)備輸入輸出連接后,在連接中建立對(duì)應(yīng)的輸入輸出變量,用于NetControl與仿真平臺(tái)控制器進(jìn)行數(shù)據(jù)交換。圖4所示為截取的部分輸入輸出變量。

      圖4 部分輸入輸出變量截圖

      2.3 監(jiān)控畫面組態(tài)

      系統(tǒng)中的監(jiān)控畫面主要包括車輛運(yùn)行狀態(tài)畫面、車站設(shè)備畫面和交通燈狀態(tài)畫面,通過利用NetControl內(nèi)置的多種控件及圖標(biāo)完成所有監(jiān)控畫面的組態(tài),并將在設(shè)備連接中建立的輸入輸出變量與對(duì)應(yīng)的控件進(jìn)行綁定。由于在實(shí)現(xiàn)畫面動(dòng)態(tài)功能方面進(jìn)行簡(jiǎn)單的變量綁定是無法實(shí)現(xiàn)的,因此可以使用NetControl集成的用戶程序功能開發(fā)對(duì)應(yīng)的控制腳本。

      NetControl的用戶程序功能支持C#語言,并在用戶程序功能中集成了多種類和方法,可以直接調(diào)用,并且可以編寫自定義類及方法,還可以添加外部程序集,使NetControl具備功能強(qiáng)大的自定義開發(fā)。圖5所示為截取的屏蔽門監(jiān)控畫面。

      圖5 屏蔽門監(jiān)控畫面截圖

      2.4 數(shù)據(jù)存儲(chǔ)至SQL Server數(shù)據(jù)庫(kù)

      為了實(shí)現(xiàn)Unity3D與仿真平臺(tái)進(jìn)行數(shù)據(jù)交互,系統(tǒng)采用NetControl將仿真平臺(tái)數(shù)據(jù)存儲(chǔ)至SQL Server數(shù)據(jù)庫(kù)的方法,然后Unity3D通過連接SQL Server數(shù)據(jù)庫(kù)獲取仿真平臺(tái)的數(shù)據(jù),并進(jìn)行相應(yīng)的處理。

      在NetControl中具備外部訪問功能,可以實(shí)現(xiàn)Unity3D訪問NetControl[4-5]。事實(shí)上,NetControl的外部訪問功能就是將需要記錄數(shù)據(jù)的變量值存儲(chǔ)至SQL Server數(shù)據(jù)庫(kù)并實(shí)時(shí)更新,外部設(shè)備通過SQL Server提供的ADO.Net數(shù)據(jù)庫(kù)接口對(duì)數(shù)據(jù)庫(kù)進(jìn)行連接、訪問,進(jìn)而間接實(shí)現(xiàn)對(duì)NetControl的訪問。

      在實(shí)現(xiàn)數(shù)據(jù)存儲(chǔ)至數(shù)據(jù)庫(kù)之前,需要在SQL Server中建立相應(yīng)的數(shù)據(jù)庫(kù)及數(shù)據(jù)表,且數(shù)據(jù)表中需要具備一個(gè)主鍵,其它列也需要和NetControl中的變量一一對(duì)應(yīng)。

      實(shí)現(xiàn)NetControl外部訪問的具體步驟如下。

      (1) 在NetControl的外部訪問功能中新建配置項(xiàng),并選擇數(shù)據(jù)庫(kù)類型,如圖6所示。

      圖6 新建外部訪問配置項(xiàng)截圖

      (2) 配置數(shù)據(jù)庫(kù)、數(shù)據(jù)表的來源,并為數(shù)據(jù)表中對(duì)應(yīng)的項(xiàng)綁定NetControl中的輸入輸出變量,完成輸入輸出變量實(shí)時(shí)存儲(chǔ)至數(shù)據(jù)庫(kù)對(duì)應(yīng)的表中,如圖7、圖8所示。

      圖7 選擇數(shù)據(jù)庫(kù)截圖

      圖8 數(shù)據(jù)表與輸入輸出變量綁定截圖

      3 Unity3D工程的實(shí)現(xiàn)

      模型導(dǎo)入U(xiǎn)nity3D軟件后,需要通過編寫腳本實(shí)現(xiàn)動(dòng)畫控制。

      導(dǎo)入至Unity3D軟件中的主要模型包括車輛、車站(含閘機(jī)、屏蔽門、信息顯示屏等)、交通燈等,這些模型的數(shù)據(jù)都來自于通過NetControl外部訪問功能保存至數(shù)據(jù)庫(kù)中的數(shù)值。實(shí)現(xiàn)Unity3D動(dòng)畫控制的步驟如下。

      3.1 連接SQL Server數(shù)據(jù)庫(kù),獲取數(shù)據(jù)

      在Unity3D中可以添加外部程序集、動(dòng)態(tài)鏈接庫(kù),同時(shí)Unity3D對(duì).Net Framework框架具有良好的支持。Unity3D中采用ADO.Net數(shù)據(jù)庫(kù)接口對(duì)SQL Server進(jìn)行連接、訪問[6-7]。

      采用ADO.Net技術(shù)需要添加幾種動(dòng)態(tài)鏈接庫(kù),包含System.Data.dll、System.Data.SqlClient、I18N.Dll、I18N.CJK.Dll、I18N.West.Dll等[8-9],外部動(dòng)態(tài)鏈接庫(kù)文件需要導(dǎo)入至Unity3D資源目錄Assets中的Plugins目錄下,此目錄下的動(dòng)態(tài)鏈接庫(kù)會(huì)自動(dòng)添加至腳本程序的引用中,從而在編寫腳本程序時(shí)可以調(diào)用相應(yīng)的方法。

      完成以上操作后,可以進(jìn)行腳本程序代碼的編寫。在Unity3D中對(duì)數(shù)據(jù)庫(kù)進(jìn)行操作的主要代碼包括以下幾個(gè)部分。

      (1) 獲取SQL Server數(shù)據(jù)庫(kù)主機(jī)的網(wǎng)際協(xié)議(IP)地址,如圖9所示。

      圖9 獲取數(shù)據(jù)庫(kù)主機(jī)IP地址代碼

      (2) 根據(jù)連接字符串連接SQL Server數(shù)據(jù)庫(kù),對(duì)數(shù)據(jù)庫(kù)的連接操作放在Start方法中進(jìn)行。這一方法在Unity3D運(yùn)行時(shí)被調(diào)用,并且只調(diào)用一次,如圖10所示。

      圖10 Start方法代碼

      (3) 應(yīng)用SQL語句對(duì)數(shù)據(jù)庫(kù)進(jìn)行查詢,并將對(duì)數(shù)據(jù)庫(kù)的查詢操作放在FixedUpdate方法中。這一方法在Unity3D運(yùn)行過程中周期性調(diào)用,執(zhí)行周期可進(jìn)行設(shè)置,從而實(shí)現(xiàn)實(shí)時(shí)獲取數(shù)據(jù)庫(kù)中的數(shù)據(jù)[10],如圖11所示。獲取數(shù)據(jù)后,按不同的數(shù)據(jù)信號(hào)類型放置在對(duì)應(yīng)的數(shù)組中。

      圖11 FixedUpdate方法代碼

      3.2 動(dòng)畫效果控制

      根據(jù)從數(shù)據(jù)庫(kù)獲得的數(shù)據(jù)對(duì)Unity3D中的物體進(jìn)行控制,實(shí)現(xiàn)動(dòng)畫效果。通過編寫腳本程序?qū)崿F(xiàn)車輛行駛、車門開關(guān)、閘機(jī)啟閉、屏蔽門開合、交通燈變化等,由于篇幅有限,此處不再列出詳細(xì)的實(shí)現(xiàn)代碼。實(shí)際效果如圖12所示。

      圖12 電磁軌道交通虛擬效果

      4 結(jié)束語

      采用Unity3D和NetControl組態(tài)軟件實(shí)現(xiàn)了電磁軌道交通仿真平臺(tái)綜合監(jiān)控系統(tǒng)的開發(fā),系統(tǒng)不僅具有數(shù)據(jù)信息與狀態(tài)顯示功能,而且可以進(jìn)行三維動(dòng)畫監(jiān)控,對(duì)設(shè)備狀態(tài)的監(jiān)控更逼真、直觀[11]。筆者所介紹模式可應(yīng)用于多種監(jiān)控系統(tǒng)中,如地下軌道交通站點(diǎn)綜合監(jiān)控、工廠綜合監(jiān)控等。

      另一方面,由于NetControl的外部訪問功能向數(shù)據(jù)庫(kù)更新數(shù)據(jù)的最短周期為1s,在一定程度上會(huì)造成數(shù)據(jù)更新滯后,因此在未來改進(jìn)中可采用在Unity3D中編寫腳本程序的方法直接與外部設(shè)備進(jìn)行輸入輸出通信[12],從而使數(shù)據(jù)更新的實(shí)時(shí)性更強(qiáng)。

      [1] 楊程,劉濤,陳念年,等.3D數(shù)字工廠監(jiān)控系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)[J].化工自動(dòng)化及儀表,2012,39(1): 108-111.

      [2] 倪萌.基于Unity3D的汽車發(fā)動(dòng)機(jī)虛擬裝配訓(xùn)練考評(píng)系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)[D].北京: 北京工業(yè)大學(xué),2014.

      [3] 李益.基于Unity3d的磨礦車間虛擬仿真系統(tǒng)[D].大連: 大連理工大學(xué),2014.

      [4] 張勇旭,李力雄,康盛.通用組態(tài)軟件驅(qū)動(dòng)程序的設(shè)計(jì)與開發(fā)[J].工業(yè)控制計(jì)算機(jī).2009,22(9): 1-3.

      [5] 楊恒亮,朱浩翔,魯?shù)?一種基于3D視覺補(bǔ)償?shù)臋C(jī)器人整車涂膠應(yīng)用[J].裝備機(jī)械,2010(1): 19-21.

      [6] 佘慎思,楊文斌,李春.風(fēng)力發(fā)電場(chǎng)SCADA系統(tǒng)的設(shè)計(jì)[J].上海電氣技術(shù),2010,3(3): 39-42.

      [7] 李俊軍.基于Unity3D的室內(nèi)建筑三維建模與交互系統(tǒng)實(shí)現(xiàn)[D].徐州: 中國(guó)礦業(yè)大學(xué),2014.

      [8] 李文赫,陸劍峰,劉艷嬌.基于Unity3D的三維遠(yuǎn)程監(jiān)視系統(tǒng)中的通信方法研究和實(shí)現(xiàn)[J].制造業(yè)自動(dòng)化,2015,37(24): 108-109,120.

      [9] 張利利,李仁義,李曉京,等.Unity3D與數(shù)據(jù)庫(kù)通信方法的研究[J].計(jì)算機(jī)技術(shù)與發(fā)展,2014,24(3): 229-232.

      [10] 曾林森.基于Unity3D的跨平臺(tái)虛擬駕駛視景仿真研究[D].長(zhǎng)沙: 中南大學(xué),2013.

      [11] 弓建華.虛擬3D變電站監(jiān)視系統(tǒng)的研究[D].保定: 華北電力大學(xué),2014.

      [12] 李金永,吳寅生,鄭建峰,等.基于Unity3D的油田作業(yè)仿真考核系統(tǒng)移動(dòng)設(shè)備客戶端的設(shè)計(jì)與實(shí)現(xiàn)[J].系統(tǒng)仿真技術(shù),2016,12(1): 71-77.

      猜你喜歡
      輸入輸出腳本組態(tài)
      酒駕
      基于PLC及組態(tài)技術(shù)的恒溫控制系統(tǒng)開發(fā)探討
      安奇奇與小cool 龍(第二回)
      Camtasia Studio高清視頻輸入輸出原理及方法
      鐵路信號(hào)系統(tǒng)安全輸入輸出平臺(tái)
      數(shù)據(jù)庫(kù)系統(tǒng)shell腳本應(yīng)用
      輸入輸出理論在大學(xué)英語聽說課堂中的教學(xué)探索
      快樂假期
      基于PLC和組態(tài)的智能電動(dòng)擰緊系統(tǒng)
      輸入輸出視角下高職英語教學(xué)研究
      济南市| 藁城市| 济南市| 沁源县| 锦屏县| 海口市| 黄大仙区| 甘南县| 毕节市| 腾冲县| 乳源| 潮安县| 叶城县| 类乌齐县| 郯城县| 阜宁县| 云龙县| 镇江市| 长沙县| 宿迁市| 芷江| 繁昌县| 淄博市| 南京市| 万宁市| 农安县| 平江县| 区。| 昌黎县| 江山市| 青阳县| 焦作市| 东乡族自治县| 凌源市| 宝清县| 新宁县| 新密市| 南充市| 宝丰县| 新建县| 克什克腾旗|