李 強(qiáng),宓 超,王晨星,沈 陽
(1.天津港(集團(tuán))有限公司,天津 300461;2.上海海事大學(xué),上海 201306)
在PLC控制系統(tǒng)的設(shè)計(jì)與應(yīng)用過程中,程序的調(diào)試是必不可少的環(huán)節(jié).若直接將程序應(yīng)用于控制系統(tǒng)中進(jìn)行調(diào)試,必然會給被控設(shè)備帶來一定的風(fēng)險,而且這樣的調(diào)試需要硬件配合來進(jìn)行,一旦硬件條件不滿足或不在現(xiàn)場,調(diào)試將無法進(jìn)行[1].
通常PLC都有自己的仿真調(diào)試軟件,例如西門子的PLCSIM,可以進(jìn)行離線仿真與調(diào)試;但是這種軟件只能簡單地驗(yàn)證PLC的輸入與輸出之間的邏輯關(guān)系,無法真實(shí)而又直觀地得知被控對象的執(zhí)行情況,如執(zhí)行機(jī)構(gòu)是否產(chǎn)生干涉等.雖然國內(nèi)也出現(xiàn)了PLC控制程序的半實(shí)物仿真系統(tǒng),例如輪機(jī)模擬器,但是這種模擬器只有信號仿真沒有執(zhí)行機(jī)構(gòu),調(diào)試者不能直觀地知道機(jī)器的執(zhí)行情況.另外,也有一些基于虛擬現(xiàn)實(shí)技術(shù)的半實(shí)物仿真系統(tǒng),例如導(dǎo)彈的半實(shí)物視景仿真系統(tǒng),但是這種系統(tǒng)是專門針對一個對象的仿真,并不是針對多個對象的通用型的半實(shí)物仿真系統(tǒng)[2].
因此,有必要開發(fā)一個通用型的半實(shí)物仿真系統(tǒng)來有效地解決這些問題,更好、更安全地調(diào)試電氣控制程序,在較低成本、保證效率、保障安全的同時,更直觀地呈現(xiàn)被控對象的執(zhí)行效果.
半實(shí)物仿真,又稱硬件在回路仿真,是指在對某些系統(tǒng)的研究中,把數(shù)學(xué)模型與物理模型或?qū)嵨镞B接起來一起進(jìn)行試驗(yàn),即對系統(tǒng)的一部分建立數(shù)學(xué)模型,并編寫程序在計(jì)算機(jī)運(yùn)行,實(shí)現(xiàn)數(shù)學(xué)仿真;同時將所研究系統(tǒng)的部分實(shí)物接入到仿真回路,然后將它們連接成系統(tǒng)進(jìn)行試驗(yàn)的過程.半實(shí)物仿真現(xiàn)在已經(jīng)逐步在工業(yè)、交通領(lǐng)域應(yīng)用起來.
半實(shí)物仿真具有物理仿真和數(shù)學(xué)仿真的共同優(yōu)點(diǎn),但也有不足,由于保證實(shí)時性是半實(shí)物仿真的必要前提,因而增加了仿真模型建立和仿真試驗(yàn)時間控制上的難度,而且半實(shí)物仿真花費(fèi)的成本較數(shù)學(xué)仿真有所增加.與物理仿真和數(shù)學(xué)仿真相比,半實(shí)物仿真主要有以下特點(diǎn):
(1)只能是實(shí)時仿真,即仿真模型的時間標(biāo)尺和自然時間標(biāo)尺相同,二者同步運(yùn)行.
(2)需要解決控制器與仿真計(jì)算機(jī)之間的接口問題.例如在進(jìn)行某PLC控制程序的半實(shí)物仿真時,在仿真計(jì)算機(jī)上顯示的三維虛擬視景里的被控對象的運(yùn)動受到PLC信號的控制,因而必須有信號接口或轉(zhuǎn)換傳輸裝置,這種轉(zhuǎn)換和傳輸由硬件系統(tǒng)完成.
(3)半實(shí)物仿真的試驗(yàn)結(jié)果比純數(shù)學(xué)仿真更接近實(shí)際情況.
在實(shí)際的控制過程中,半實(shí)物仿真通常有兩種情況:一種是用計(jì)算機(jī)作為控制器,而將受控對象作為實(shí)物直接放置在仿真回路中構(gòu)造半實(shí)物仿真系統(tǒng);另一種控制器用實(shí)物,而受控對象使用數(shù)學(xué)模型[2].
在本文的系統(tǒng)中,采用第二種控制過程,用PC機(jī)作為仿真計(jì)算機(jī),PLC作控制器來實(shí)現(xiàn)系統(tǒng)的半實(shí)物仿真.
虛擬現(xiàn)實(shí)(Virtual Reality,VR)是近年來出現(xiàn)的高新技術(shù),也稱靈境技術(shù)或人工環(huán)境.虛擬現(xiàn)實(shí)是利用電腦模擬產(chǎn)生一個三維空間的虛擬世界,提供使用者關(guān)于視覺、聽覺、觸覺等感官的模擬,讓使用者如同身臨其境一般,可以及時、沒有限制地觀察三度空間內(nèi)的事物[4].目前虛擬現(xiàn)實(shí)技術(shù)主要應(yīng)用于城市規(guī)劃、醫(yī)學(xué)、軍事、航天以及工業(yè)等領(lǐng)域中.
虛擬現(xiàn)實(shí)的關(guān)鍵技術(shù)包括以下幾個方面:
(1)動態(tài)環(huán)境建模技術(shù).虛擬環(huán)境的建立是虛擬現(xiàn)實(shí)技術(shù)的核心內(nèi)容,動態(tài)環(huán)境建模技術(shù)的目的是獲取實(shí)際環(huán)境的三維數(shù)據(jù),并根據(jù)應(yīng)用的需要,利用獲取的三維數(shù)據(jù)建立相應(yīng)的虛擬環(huán)境模型.三維數(shù)據(jù)的獲取對有規(guī)則的環(huán)境可以采用CAD技術(shù),而更多的情況則需采用非接觸式的視覺建模技術(shù),二者的有機(jī)結(jié)合可以有效地提高數(shù)據(jù)獲取的效率.
(2)實(shí)時三維圖形生成技術(shù).現(xiàn)今三維圖形的生成技術(shù)已較為成熟,而關(guān)鍵點(diǎn)是如何做到“實(shí)時生成”.為了達(dá)到實(shí)時的目的,至少要保證圖形的刷新頻率不低于15fps,最好高于30fps.在不降低圖形的質(zhì)量和復(fù)雜程度的前提下,如何提高刷新頻率將是該技術(shù)的研究內(nèi)容.
(3)立體顯示和傳感器技術(shù).虛擬現(xiàn)實(shí)的實(shí)現(xiàn)依賴于立體顯示和傳感器技術(shù)的發(fā)展.現(xiàn)有的虛擬現(xiàn)實(shí)設(shè)備還不能滿足系統(tǒng)的需要,例如頭盔式三維立體顯示器有過重、分辨率低、刷新頻率慢、跟蹤精度低、視場不夠?qū)?、眼睛容易疲勞等缺點(diǎn).同樣,數(shù)據(jù)手套、數(shù)據(jù)衣等都有延遲大、分辨率低、使用不便等缺點(diǎn).因此有必要開發(fā)新的三維顯示技術(shù).
(4)應(yīng)用系統(tǒng)開發(fā)工具.虛擬現(xiàn)實(shí)技術(shù)應(yīng)用的關(guān)鍵是尋找合適的場合和對象,即如何發(fā)揮想象力和創(chuàng)造性.選擇適當(dāng)?shù)膽?yīng)用對象可以大幅度地提高效率,減輕勞動強(qiáng)度,提高產(chǎn)品質(zhì)量.為了達(dá)到這一目的,必須研究虛擬現(xiàn)實(shí)的開發(fā)工具.
(5)系統(tǒng)集成技術(shù).由于虛擬現(xiàn)實(shí)系統(tǒng)中包含大量的感知信息和模型,因此,系統(tǒng)的集成技術(shù)起著至關(guān)重要的作用.集成技術(shù)包括信息的同步、模型的標(biāo)定、數(shù)據(jù)轉(zhuǎn)換、數(shù)據(jù)管理模型、識別與合成等等技術(shù).
本半實(shí)物仿真系統(tǒng)結(jié)合虛擬現(xiàn)實(shí)技術(shù),建立了一個直觀而又真實(shí)的沉浸式PLC控制程序的仿真平臺.該系統(tǒng)主要由三部分組成:可編程控制器、高速的信號仿真器和三維視景仿真平臺.該系統(tǒng)的總體結(jié)構(gòu)見圖1所示.
圖1 系統(tǒng)總體結(jié)構(gòu)Fig.1 Overall structure of the system
其中PLC的輸出模塊可以產(chǎn)生真實(shí)的控制信號,同時其輸入模塊接收PC機(jī)仿真平臺傳來的虛擬信號;高速的信號仿真器的輸入和輸出模塊進(jìn)行信號的采集和傳輸,實(shí)現(xiàn)PLC與PC機(jī)之間的數(shù)據(jù)的實(shí)時傳輸;在計(jì)算機(jī)里呈現(xiàn)出被控對象的視景,而視景里的對象模型根據(jù)接收到的控制信號,來模擬實(shí)際運(yùn)行的效果.該半實(shí)物仿真系統(tǒng)的硬件部分如圖2所示.
圖2 半實(shí)物仿真系統(tǒng)硬件部分(信號采集及發(fā)生)Fig.2 Hardware of semi physical simulation system(electrical signal-receivers &generators)
半實(shí)物仿真系統(tǒng)開發(fā)主要運(yùn)用虛擬現(xiàn)實(shí)技術(shù),將建立好的三維模型,載入到三維虛擬場景中,并且快速地生成模型的三維場景.人們可以通過鼠標(biāo)鍵盤操作對三維虛擬場景進(jìn)行各個角度的瀏覽,三維場景里的對象模型根據(jù)傳遞來的信號進(jìn)行動作的變化.根據(jù)被控對象的執(zhí)行情況可以直觀、準(zhǔn)確和快速地驗(yàn)證PLC程序的正確性.
該P(yáng)LC控制半實(shí)物仿真系統(tǒng)的軟件系統(tǒng)主要由PLC控制器軟件程序、高速的信號仿真器軟件程序和PC機(jī)里的三維虛擬視景平臺組成.
在開發(fā)該半實(shí)物仿真系統(tǒng)軟件的過程中,應(yīng)該解決以下2個關(guān)鍵問題:①信號的采集和傳輸;②三維虛擬視景的快速生成和顯示.
PC機(jī)里的視景仿真平臺只有接收到硬件系統(tǒng)傳遞過來的控制信號,才能通過分析信號來做出相應(yīng)的動作.因此,實(shí)時精確地采集PLC的數(shù)字量輸出信號,同時將上位機(jī)的虛擬信號實(shí)時精確地傳輸?shù)絇LC的數(shù)字量輸入端成為整個硬件系統(tǒng)最重要的任務(wù).具體信號的采集和傳輸系統(tǒng)流程圖如圖3所示.
通過單片機(jī)的輸入模塊來采集PLC里的輸出模塊信號,然后通過串口傳輸?shù)揭暰捌脚_中.同樣通過單片機(jī)來接收視景平臺發(fā)出的傳感器信號,接著從單片機(jī)的輸出模塊傳輸?shù)絇LC的輸入模塊中,得以控制PLC的輸入.
在三維虛擬視景平臺中,完成對控制信號的采集和傳輸后,需要執(zhí)行三維場景和被控制對象的三維模型的生成和渲染,使這些視景具有沉浸感和真實(shí)感,從而代替真實(shí)的設(shè)備和場景.同時執(zhí)行被控對象模型的動作顯示,使被控制對象能根據(jù)采集到的虛擬信號做出相應(yīng)的執(zhí)行動作.系統(tǒng)多線程編程的實(shí)現(xiàn)流程圖如圖4所示.
圖3 信號采集和傳輸流程圖Fig.3 Flow diagram of signal acquisition and transmission
圖4 多線程編程的實(shí)現(xiàn)流程圖Fig.4 Flow diagram of multi-threaded programming
主線程、線程1和線程2分別是程序中一個單一的順序控制流程,其中主線程主要完成的是三維場景和被控制對象模型的生成和渲染,使用TV3D引擎來實(shí)現(xiàn)虛擬現(xiàn)實(shí),使得代碼的編寫工作得到了大大的簡化.很多底層的功能如:邊緣檢測、視角切換、物體的碰撞等,都由TV3D引擎自動實(shí)現(xiàn).只需考慮如何使用調(diào)用TV3D所提供的函數(shù),在虛擬場景中實(shí)現(xiàn)相應(yīng)功能即可,這樣極大地提高了開發(fā)的效率.主線程的程序流程圖里的各個執(zhí)行語句都可以通過調(diào)用TV3D所提供的函數(shù)來實(shí)現(xiàn).
線程1完成的是被控對象模型的執(zhí)行動作顯示.每個采集到的信號會對應(yīng)著一個被控對象的執(zhí)行動作,根據(jù)對應(yīng)信號的變化,被控對象的執(zhí)行動作也會產(chǎn)生變化.線程1的被控對象模型的執(zhí)行動作顯示可以通過調(diào)用TV3D所提供的函數(shù)來實(shí)現(xiàn).為了提高線程1的處理速度,進(jìn)而提高整個平臺的刷新頻率,要盡量減少這部分圖形變化和處理的內(nèi)容,也就是將被控對象模型根據(jù)不同動作分割成不同的部分,只需將每個動作部分加載渲染即可,不需要加載渲染整個被控對象的三維模型.
線程2完成的是對高速的信號仿真器里存儲的控制信號的采集.這里主要是利用VB.NET的SerialPort類.使用這個類函數(shù)就可創(chuàng)建串口對象,串口對象有很多屬性,通過定義串口對象的屬性,就能定義串口的通信模式,從串口對象屬性也能了解串口的狀態(tài).
此外,在多線程中,需要考慮不同線程之間的數(shù)據(jù)同步和防止死鎖.當(dāng)2個或多個線程之間同時等待對方釋放資源的時候就會形成資源之間的死鎖.為了防止死鎖的發(fā)生,在 VB.NET中使用SyncLock關(guān)鍵字來簡化監(jiān)視對象的訪問,能很好地解決上述的問題.監(jiān)視對象能確保代碼塊的運(yùn)行不被運(yùn)行在其他線程中的代碼打斷.
當(dāng)三維模型建立完成、接收到的信號存儲到了數(shù)組中,這時就需要將三維模型加載到虛擬視景中,并根據(jù)存儲的信號來觸發(fā)整個三維視景的動態(tài)顯示.三維引擎能靈活簡便地進(jìn)行二次開發(fā),非常適合快速開發(fā),簡化了3D程序的制作周期[5],所以采用三維引擎實(shí)現(xiàn)三維視景的生成和顯示.主要有以下幾個模塊:
(1)場景的繪制.首先要創(chuàng)建所需要的灰度圖,并且根據(jù)灰度圖來創(chuàng)建平面.接著創(chuàng)建所需要的地面紋理圖,再現(xiàn)所需的三維場景.
(2)三維模型的加載.在加載三維模型之前,還需要建立一個參考坐標(biāo)系(x,y,z)T,根據(jù)坐標(biāo)變換公式(1)計(jì)算出各個模型相對于參考坐標(biāo)系的三維坐標(biāo)位置(x1,y1,z1)T.然后再根據(jù)各個模型的坐標(biāo)位置來加載三維模型到三維場景中.為了使三維模型看起來更加逼真,給人更多的沉浸感和真實(shí)感,需要給三維模型貼上紋理圖.
式中:a1,a2,a3分別為參考點(diǎn)在x,y,z上的值;aij(i=1,2,3;j=1,2,3)為相對于參考點(diǎn)移動的x,y,z的值.
(3)場景的視角變換.在視景中主要是通過鍵盤或鼠標(biāo)來控制攝像機(jī)的運(yùn)動,以此來控制視角的變換.其中重要的是設(shè)置好場景中攝像機(jī)的位置和視角,當(dāng)有鍵盤輸入和鼠標(biāo)移動的時候,攝像機(jī)會隨之有相應(yīng)程度的位置和視角的變化.
當(dāng)整個三維場景和三維模型加載完畢后,再根據(jù)連續(xù)儲存的信號的變換來不斷更換被控對象的動作,這樣就可以實(shí)現(xiàn)三維模型的動態(tài)顯示了.
為了驗(yàn)證該半實(shí)物仿真系統(tǒng)的可行性及可靠性,以交通信號燈和雙電梯的控制程序?yàn)槔?,采用虛擬現(xiàn)實(shí)技術(shù)設(shè)計(jì)出了半實(shí)物仿真系統(tǒng)平臺,并且記錄下了具體實(shí)驗(yàn)參數(shù)以及最后效果圖.
交通信號燈的PLC控制半實(shí)物仿真系統(tǒng)與雙電梯的PLC控制半實(shí)物仿真系統(tǒng)都由PLC、高速的信號仿真器和交通信號燈視景仿真平臺3部分組成.由于雙電梯的PLC程序更為復(fù)雜,需要的控制點(diǎn)比較多,1塊高速的信號仿真器無法滿足系統(tǒng)的要求,因此這里需要2塊高速的信號仿真器并聯(lián)起來,以增加輸入輸出點(diǎn)數(shù).高速的信號仿真器與PLC直接進(jìn)行電氣連接,并由電源給高速的信號仿真器提供所需的5V和24V電壓,給PLC提供220V電壓.PC上位機(jī)與高速的信號仿真器通過RS-485串口通訊進(jìn)行數(shù)據(jù)交換,主要實(shí)現(xiàn)的功能是將真實(shí)的控制信號轉(zhuǎn)化成虛擬的控制信號傳輸?shù)絇C機(jī)里,同時將PC機(jī)里的虛擬信號轉(zhuǎn)化成真實(shí)的控制信號傳輸?shù)絇LC里.
搭建好半實(shí)物仿真系統(tǒng)平臺后,就開始運(yùn)行整個系統(tǒng).為了判斷整個半實(shí)物仿真系統(tǒng)的實(shí)時性的好壞,需要獲取系統(tǒng)運(yùn)行的幀速率值(fps值),即每秒鐘填充圖像的幀數(shù)幀速率值愈多,所顯示的動作就會愈流暢.通常,要避免動作不流暢的最低幀速率值是30fps.而當(dāng)刷新率太低時人們?nèi)庋鄱寄芨杏X到屏幕的閃爍,不連貫,對圖像的顯示效果和視覺感觀都產(chǎn)生不好的影響.
因此只有當(dāng)幀速率值滿足一定的要求時,三維虛擬視景中被控對象的顯示和動作才能跟上PLC里的信號的變化,否則就會產(chǎn)生延遲,系統(tǒng)的實(shí)時性就得不到保證,運(yùn)行就處于紊亂狀態(tài).
在交通燈和雙電梯視景平臺的運(yùn)行過程中,畫面上會顯示幀速率值,每隔5s記錄一個幀速率值,共記錄下10組數(shù)據(jù),根據(jù)這些數(shù)據(jù)可計(jì)算出平均的幀速率值,如表1所示.
其中交通信號燈的實(shí)驗(yàn)效果圖如圖5所示.
表1 實(shí)驗(yàn)參數(shù)表Tab.1 Parameters of the experiment
圖5 交通信號燈效果圖Fig.5 Effect of traffic signal lamp
雙電梯的實(shí)驗(yàn)效果圖如圖6所示.由于PLC程序運(yùn)行的掃描周期是20ms,所以三維視景至少要每秒刷新50次,即幀速率達(dá)到50fps,這樣才能夠滿足半實(shí)物仿真的實(shí)時性,不會產(chǎn)生延時.從表1中可以明顯看出兩組實(shí)驗(yàn)的幀速率值均大于50 fps,因此在兩組實(shí)驗(yàn)中三維視景的生成和顯示都很流暢,而且系統(tǒng)運(yùn)行速度快,信號響應(yīng)程序流暢,調(diào)試者沉浸在圖4和圖5這樣的視景中,根據(jù)被控對象的執(zhí)行情況可以直觀、準(zhǔn)確和快速地驗(yàn)證PLC程序的正確性,符合PLC調(diào)試的需求.
基于虛擬現(xiàn)實(shí)技術(shù)的半實(shí)物仿真系統(tǒng)為PLC程序的調(diào)試和驗(yàn)證提供了一個安全、直觀、經(jīng)濟(jì)、高效的環(huán)境.與其他調(diào)試平臺相比,本系統(tǒng)具有良好的沉浸感,不僅可以驗(yàn)證PLC的輸入輸出情況,還可以更加直觀地呈現(xiàn)被控對象的執(zhí)行效果,并具有較高的安全性和經(jīng)濟(jì)性.由于機(jī)械部分由計(jì)算機(jī)來模擬,即使有不正當(dāng)?shù)闹噶?,也不會造成設(shè)備的損壞和事故,同時也節(jié)約了大量的實(shí)驗(yàn)成本,縮短了研發(fā)周期.利用該系統(tǒng)可以在沒有設(shè)備的情況下對電氣控制程序進(jìn)行調(diào)試,并且隨時對程序進(jìn)行驗(yàn)證和調(diào)整,極大地方便了教學(xué),還可以用于培養(yǎng)電氣調(diào)試工程師.未來可以考慮將3D投影技術(shù)應(yīng)用到此半實(shí)物仿真系統(tǒng)中,更增加沉浸感.
圖6 雙電梯效果圖Fig.6 Effect of double elevators
[1]袁云龍.基于組態(tài)軟件的PLC控制系統(tǒng)仿真實(shí)現(xiàn)[J].自動化儀表,2006,27(5):57-61.
YUAN Yunlong.The simulation realization of PLC control system based on the configuration software[J].Automation Instrument,2006,27(5):57-61.
[2]吳家鑄,黨崗,劉華峰,等.視景仿真技術(shù)及應(yīng)用[M].西安:西安電子科技大學(xué)出版社,2001.
WU Jiazhu,DANG Gang,LIU Huafeng,et al.Visual simulation technology and applications[M].Xi’an:Xidian University Press,2001.
[3]劉延斌,金光.半實(shí)物仿真技術(shù)的發(fā)展現(xiàn)狀[J].仿真技術(shù),2003,11(1):27-32.
LIU Yanbin,JIN Guang.The development status of loop simulation[J].Simulation Technology,2003,11(1):27-32.
[4]BURDEA G,COIFFET P.虛擬現(xiàn)實(shí)技術(shù)[M].北京:電子工業(yè)出版社,2005.
BURDEA G,COIFFET P.Virtual reality technology[M].Beijing:Publishing House of Electronics Industry,2005.
[5]郭建.基于Truevision3D的虛擬現(xiàn)實(shí)技術(shù)[J].現(xiàn)代計(jì)算機(jī),2008,279(5):51-53.
GUO Jian.Virtual reality technology based on truevision3D[J].Modern Computer,2008,279(5):51-53.