李永成
摘要 實(shí)訓(xùn)課程是高職院校的必修課程,機(jī)床控制電路的檢修是其中重要的內(nèi)容,該內(nèi)容一般是采用理論講授與硬件設(shè)備仿真相結(jié)合的方法進(jìn)行教學(xué)。本文針對如何降低教學(xué)成本、快速提高實(shí)踐技能的問題,提出了采用軟件仿真與硬件仿真相結(jié)合的方法,以一個(gè)銑床控制電路仿真軟件的開發(fā)過程為例子,介紹了仿真軟件開發(fā)的過程。根據(jù)機(jī)床控制電路的特點(diǎn),不考慮數(shù)值運(yùn)算,所有的輸出響應(yīng)均居于邏輯關(guān)系。結(jié)果表明,對于一些特定場合,利用該方法進(jìn)行軟件開發(fā)可以降低開發(fā)難度。
【關(guān)鍵詞】機(jī)床控制電路 軟件仿真 邏輯判斷
高職院校機(jī)電一體化專業(yè)普遍開設(shè)維修電工課程,機(jī)床控制電路的故障檢測與維修是課程的內(nèi)容之一。作為實(shí)訓(xùn)課,其中硬件仿真設(shè)備是必不可少的,基于實(shí)訓(xùn)場地的限制及教學(xué)成本的控制,不可能大量購置仿真設(shè)備,一個(gè)可行的方法就是開發(fā)仿真軟件,配合少量的硬件仿真設(shè)備進(jìn)行教學(xué),這樣對教學(xué)至少有兩個(gè)方面的好處,首先是理論方面,使用仿真軟件可以快速提高學(xué)生的理論水平,發(fā)揮理論對實(shí)踐的指導(dǎo)作用,另一方面是借助于電腦,可以達(dá)到人手一套設(shè)備的效果,提高了學(xué)習(xí)效率,實(shí)現(xiàn)快速掌握操作技能的目的,同時(shí)教學(xué)成本也將大幅降低。
1 機(jī)床控制電路仿真設(shè)計(jì)方案
方案一:使用專業(yè)的仿真軟件按照機(jī)床控制電路原理圖進(jìn)行電路繪制與仿真,導(dǎo)出仿真數(shù)據(jù)文件,在自行開發(fā)的軟件中建立圖形界面,按數(shù)據(jù)文件進(jìn)行輸出響應(yīng)。
方案二:建立元件庫,裝載電路所需的元件,調(diào)整布局,按照機(jī)床電路原理圖進(jìn)行連線,建立自己的算法實(shí)現(xiàn)輸入輸出的控制。
方案三:僅針對一個(gè)典型的電氣控制電路進(jìn)行程序設(shè)計(jì),設(shè)計(jì)固定的圖形界面,建立自己的邏輯算法實(shí)現(xiàn)仿真。
比較三個(gè)方案可知,方案一需要專業(yè)的仿真軟件,目前市場上的仿真軟件理論分析很強(qiáng)大,但缺乏進(jìn)行機(jī)床電路這樣比較復(fù)雜的系統(tǒng)仿真軟件,并且大多數(shù)沒有數(shù)據(jù)導(dǎo)出功能或與外部程序進(jìn)行數(shù)據(jù)交換的接口,因此設(shè)計(jì)難度較大。方案二及方案三需要建立自己的算法,對于機(jī)床控制電路而言,可以使用基于邏輯判斷的方法編程,算法并不太復(fù)雜,但方案二需要自己搭建電路,需要對接線進(jìn)行邏輯關(guān)系判斷,實(shí)現(xiàn)起來仍然有較大的難度。作為一個(gè)典型的特定電路,則無需搭建電路,這樣在編程過程中就會(huì)簡單得多,因此本設(shè)計(jì)采用方案三。
2 圖形界面設(shè)計(jì)
本設(shè)計(jì)軟件仿真分兩大部分:
2.1 原理圖仿真界面
界面以位圖的形式呈現(xiàn)一幅銑床電路原理圖。為了編程的方便,原理圖的位置可以改變,但不進(jìn)行縮放,否則會(huì)帶來較大的畫面失真,并且各節(jié)點(diǎn)位置相對坐標(biāo)變動(dòng)給編程帶來困難。在原理圖界面下仿真可以提高學(xué)生對電路原理的理解水平。
2.2 仿3D圖像仿真界面
這里的仿3D圖像是指元件的符號(hào)以實(shí)物圖形為基礎(chǔ),接近實(shí)際的元件外形的圖像,仿3D圖像是二維平面圖像,為了得到較真實(shí)的效果,可以使用3Dmax軟件繪制元件的三維模型,并進(jìn)行圖形渲染,根據(jù)視角原理,抓取不同角度的圖片,在圖片編輯軟件下繪制完整的實(shí)物圖像供軟件編程時(shí)使用。因?yàn)橛行┰囊_在二維投影上可能會(huì)出現(xiàn)重疊現(xiàn)象,如交流接觸器的線圈、主觸頭、輔助觸頭等在平面投影上會(huì)出現(xiàn)引腳重疊的情況,因此要進(jìn)行必要的角度變換處理。在仿3D界面中,僅在相應(yīng)位置上顯示各元件的圖形,不必畫出連線。銑床控制電路的仿D實(shí)物界面如圖1所示。
仿3D仿真功能可以使學(xué)生在一個(gè)近似實(shí)物的場景下操作。
3 軟件設(shè)計(jì)
3.1 系統(tǒng)功能設(shè)計(jì)
3.1.1 原理圖界面仿真功能
在原理圖仿真界面中,顯示一幅電氣原理圖,原理圖的位置可以通過鼠標(biāo)進(jìn)行平移操作,在仿真運(yùn)行開始后,通過對原理圖的元件進(jìn)行操作,如鼠標(biāo)點(diǎn)擊開關(guān)、按鈕等元件的符號(hào),實(shí)現(xiàn)元件狀態(tài)的改變,通過邏輯判斷,使電機(jī)作出與之對應(yīng)的動(dòng)作,以動(dòng)畫的形式模擬正轉(zhuǎn)、反轉(zhuǎn)、停止等狀態(tài)。圖2是交流接觸器主觸頭動(dòng)作前后的變化圖及電機(jī)運(yùn)行圖。
3.1.2 仿3D圖像界面仿真功能
仿3D圖像界面功能與原理圖界面仿真功能類似,只是顯示的圖形不同,另外需要一個(gè)操作面板。開關(guān)、按鈕等操作在面板上進(jìn)行。
圖l的仿3D圖形界面中的操作面板是處于背面狀態(tài),還需設(shè)計(jì)一個(gè)與背面元件位置一致的正面圖形界面,控制系統(tǒng)的各種狀態(tài)由正面的指示燈反映。對于非指令元件,如交流接觸器的線圈吸合狀態(tài),可以用如圖3的方式表示,兩圖分別表示了線圈釋放和吸合兩種狀態(tài)。
3.1.3 故障設(shè)置功能
一般的硬件仿真設(shè)備的故障設(shè)置方法是使用串接開關(guān)模擬連線的通斷。本設(shè)計(jì)也采取類似的方法,故障設(shè)置點(diǎn)與硬件仿真設(shè)備一致,增加故障隨機(jī)設(shè)置功能。圖4是顯示了部分故障分布點(diǎn)。
3.2 系統(tǒng)功能的具體實(shí)現(xiàn)方案
3.2.1 圖形顯示
無論是原理圖仿真還是仿3D圖像仿真,界面均為位圖。位圖以資源的形式裝入內(nèi)存中,使用LodgBitmap函數(shù)裝入位圖ID,顯示時(shí)使用CDC的BitBlt函數(shù),在窗口顯示,BitBlt函數(shù)的形式為:
CDC:BitBlt(int x,int y,int nWidth,intnHeight,CDC*pSrcDC,int xSrc,int ySrc,DWORDdwROP);
x和y是位圖目的地坐標(biāo)。nWidth和wHeight是位圖的寬和高度。pSrcDC是設(shè)備上下文的指針。xSre和ySre是位圖上需要復(fù)制的部分的坐標(biāo),更改這兩個(gè)參數(shù)可以顯示部分位圖。
對于動(dòng)作元件,在仿真時(shí)其狀態(tài)改變后,使用另一幅狀態(tài)的位圖在原位置進(jìn)行覆蓋。
3.2.2 電機(jī)運(yùn)行狀態(tài)的顯示
電機(jī)的運(yùn)行狀態(tài)以風(fēng)葉旋轉(zhuǎn)動(dòng)畫來表示。在電機(jī)符號(hào)所在位置上動(dòng)態(tài)畫出風(fēng)葉形狀,啟動(dòng)定時(shí)器,在定時(shí)器函數(shù)中通過改變旋轉(zhuǎn)角度的方法實(shí)現(xiàn)。
電機(jī)運(yùn)行過程分為啟動(dòng)、平穩(wěn)運(yùn)行、制動(dòng)三個(gè)過程,啟動(dòng)階段電機(jī)旋轉(zhuǎn)速度是逐漸加快的,達(dá)到額定轉(zhuǎn)速后,進(jìn)入平穩(wěn)運(yùn)行狀態(tài),在停止階段轉(zhuǎn)速是一個(gè)減速過程,為了簡化這個(gè)過程的仿真,電機(jī)的旋轉(zhuǎn)速度變化以文字提示的形式出現(xiàn)。
3.2.3 設(shè)備運(yùn)行狀態(tài)判斷
設(shè)備運(yùn)行狀態(tài)是基于邏輯關(guān)系。對于按鈕、開關(guān)等元件,判斷方法是鼠標(biāo)左鍵是否在元件位置上按下,如果按下了,則用新的動(dòng)作圖形覆蓋。
對于交流接觸器觸點(diǎn)動(dòng)作,要分為無故障和有故障兩種情況進(jìn)行判斷。無故障按正常操作關(guān)系進(jìn)行吸合和釋放動(dòng)作,有故障時(shí)按故障設(shè)置表(見表1)結(jié)合原理圖進(jìn)行動(dòng)作判斷。
電機(jī)的運(yùn)行狀態(tài)也是按表1的關(guān)系進(jìn)行判斷。
為了降低編程難度,本設(shè)計(jì)每次只設(shè)置一個(gè)故障。表l僅列出了前八個(gè)故障,第一列為故障開關(guān)編號(hào)。
以Kl故障為例說明仿真設(shè)備運(yùn)行狀態(tài)判斷的步驟:
(1)選擇“仿真”菜單切換到仿真狀態(tài)。
(2)判斷總開關(guān)、啟動(dòng)按鈕是否被按下。
(3)判斷主軸正反轉(zhuǎn)開關(guān)的位置。
(4)判斷Kl是否設(shè)置為斷開狀態(tài)。
(5)根據(jù)Kl狀態(tài)主軸電機(jī)作出正轉(zhuǎn)、反轉(zhuǎn)、停止的響應(yīng)。若點(diǎn)擊變速?zèng)_動(dòng)按鈕,Kl無故障時(shí),電機(jī)的風(fēng)葉按照“轉(zhuǎn).停.轉(zhuǎn),停”的方式運(yùn)行,否則電機(jī)停轉(zhuǎn)。運(yùn)行狀態(tài)判斷流程如圖5所示。
4 軟件功能測試
分別在無故障狀態(tài)和有故障狀態(tài)下進(jìn)行性能測試。
(1)無故障狀態(tài)性能測試:按照銑床的操作步驟,測試電機(jī)的運(yùn)行狀態(tài),結(jié)果符合設(shè)計(jì)要求。
(2)故障狀態(tài)下的性能測試:分別進(jìn)行故障手動(dòng)設(shè)置和隨機(jī)設(shè)置。手動(dòng)故障設(shè)置是在故障分布圖上用鼠標(biāo)左鍵雙擊圖上的故障設(shè)置點(diǎn),在彈出的對話框中設(shè)置為開路故障,隨機(jī)故障設(shè)置是通過菜單進(jìn)行故障點(diǎn)的隨機(jī)設(shè)置。仿真結(jié)果符合表l的故障現(xiàn)象描述。
5 結(jié)束語
教學(xué)仿真軟件在教學(xué)中的作用有別于傳統(tǒng)的課件,前者是互動(dòng)式的,后者是被動(dòng)式的,但軟件的編寫難度也較大,本文提供了一個(gè)制作仿真軟件的快捷方法與思路。如圖5所示。
本設(shè)計(jì)表明,使用邏輯關(guān)系對非數(shù)值運(yùn)算的仿真軟件進(jìn)行開發(fā),可以使編程過程變得簡單,至于其它要進(jìn)行復(fù)雜的數(shù)值運(yùn)算的軟件設(shè)計(jì),本方法就不適用。
參考文獻(xiàn)
[1]冉秋.3DMAX三維虛擬基礎(chǔ)下景觀設(shè)計(jì)技術(shù)的分析[J].數(shù)字技術(shù)與應(yīng)用,2017( 01):153-157.
[2]袁觀娜,李秋,張琰.基于OpenGL與3Dmax的虛擬現(xiàn)實(shí)動(dòng)作仿真系統(tǒng)的研究[J].科技資訊,2016 (04):1-2.
[3]趙劉飛,趙敏華.vc中DIB位圖程序設(shè)計(jì)的研究[J].工業(yè)控制計(jì)算機(jī),2014 (03): 41-42,45.
[4]肖峰.vc++下的BMP格式圖像和PNG格式圖像的轉(zhuǎn)換[J].赤峰學(xué)院學(xué)報(bào):自然科學(xué)版,2016 (03):17-18.