徐玉彪,陳 進(jìn),姜佳威,張家斌
(上海第二工業(yè)大學(xué) 工學(xué)部,上海 201209)
隨著現(xiàn)代高科技的發(fā)展,各種形式轉(zhuǎn)臺的應(yīng)用越來越廣泛:在軍事方面,火炮、坦克的瞄準(zhǔn)系統(tǒng)離不開轉(zhuǎn)臺;在工業(yè)方面,各種機(jī)床、機(jī)器都與各種形式的轉(zhuǎn)臺密切相連;在航天、航空等領(lǐng)域,轉(zhuǎn)臺在進(jìn)行半實物的仿真與測試等方面也起著關(guān)鍵作用[1]??傊D(zhuǎn)臺的運(yùn)用無處不在。
轉(zhuǎn)臺控制系統(tǒng)軟、硬件運(yùn)行得穩(wěn)定與否直接關(guān)乎轉(zhuǎn)臺控制功能的實現(xiàn)及精度的可靠性[2]。文中所涉及的二軸轉(zhuǎn)臺為上海聯(lián)誼自主研制,用于某產(chǎn)品的掃描測試。該轉(zhuǎn)臺包含升降軸和旋轉(zhuǎn)軸,要求如下:開環(huán)控制下轉(zhuǎn)臺各軸能實現(xiàn)速度可設(shè)定下的點(diǎn)動、相對定位、絕對定位、定速往返、歸零、停止及實時狀態(tài)顯示等功能;升降軸上下位移重復(fù)定位精度達(dá)到0.01 mm;旋轉(zhuǎn)軸水平旋轉(zhuǎn)重復(fù)定位精度達(dá)到0.01°。在此重點(diǎn)介紹轉(zhuǎn)臺控制系統(tǒng)的設(shè)計。
二軸轉(zhuǎn)臺控制系統(tǒng)以2臺兩相四線步進(jìn)電機(jī)為驅(qū)動執(zhí)行電機(jī),下位機(jī)采用STC15W4K56S4單片機(jī),具有抗干擾能力強(qiáng),不需要外部晶振和外部復(fù)位,高速、高可靠,超低功耗等優(yōu)點(diǎn)[3];上位機(jī)為工業(yè)PC,基于LabVIEW軟件開發(fā)應(yīng)用程序。上位機(jī)與下位機(jī)通信方式有RS-232串口和TCP/IP協(xié)議2種可選,設(shè)計相關(guān)的控制指令通信協(xié)議,通過PC對轉(zhuǎn)臺進(jìn)行直接控制。
控制對象為雙軸精密定位轉(zhuǎn)臺,其升降軸的行程為 0~650 mm,旋轉(zhuǎn)軸的行程為-60°~60°。 轉(zhuǎn)臺控制系統(tǒng)的設(shè)計采用人機(jī)交互界面的形式,實現(xiàn)了控制指令的收發(fā)并將雙軸狀態(tài)數(shù)據(jù)進(jìn)行實時顯示。
步進(jìn)電機(jī)作為執(zhí)行單元,將電脈沖信號轉(zhuǎn)變?yōu)榻俏灰苹蚓€位移,在一定的電流驅(qū)動且不超載的情況下,轉(zhuǎn)速和運(yùn)動的位移分別由脈沖的頻率和數(shù)量決定,而不受負(fù)載變化的影響。步進(jìn)驅(qū)動器作為驅(qū)動步進(jìn)電機(jī)運(yùn)動的驅(qū)動單元,每接收到1個脈沖信號,就驅(qū)動電機(jī)按已經(jīng)設(shè)定的方向轉(zhuǎn)動1個步距角,其旋轉(zhuǎn)以步距角一步一步運(yùn)行。因此,可以通過計算到達(dá)給定位置所需脈沖數(shù)達(dá)到準(zhǔn)確定位的目的,調(diào)速方面則把所需速度轉(zhuǎn)換為脈沖頻率。故此該系統(tǒng)采用開環(huán)控制結(jié)構(gòu),如圖1所示,以STC15W4K56S4單片機(jī)為核心處理芯片,采用由PC和單片機(jī)板組成的集散型控制方式。
圖1 轉(zhuǎn)臺控制系統(tǒng)總體結(jié)構(gòu)Fig.1 Overall structure of turntable control system
轉(zhuǎn)臺控制系統(tǒng)主要由以下3部分組成:
(1)上位機(jī)PC端軟件平臺 實現(xiàn)人機(jī)交互功能,設(shè)定電機(jī)驅(qū)動器運(yùn)行參數(shù),完成用戶操作指令的響應(yīng),轉(zhuǎn)臺實時位置及速度等狀態(tài)信息的實時顯示。
(2)下位機(jī)控制器——轉(zhuǎn)臺控制系統(tǒng)的核心驅(qū)動部分 接收并解析上位機(jī)控制指令,繼而執(zhí)行相關(guān)算法,發(fā)出控制信號驅(qū)動轉(zhuǎn)臺運(yùn)動,并且在系統(tǒng)運(yùn)行過程中,周期性獲取位置、速度等轉(zhuǎn)臺狀態(tài)信息發(fā)送給給上位機(jī);監(jiān)測限位開關(guān)信號并進(jìn)行限位保護(hù)處理,斷電保存轉(zhuǎn)臺位置值。
(3)步進(jìn)電機(jī)系統(tǒng)——轉(zhuǎn)臺的執(zhí)行機(jī)構(gòu)借助減速器、絲桿等傳動機(jī)構(gòu)驅(qū)動轉(zhuǎn)臺,按照控制器控制信號進(jìn)行運(yùn)動,實現(xiàn)各種定位功能。
上位機(jī)PC端通過串口或以太網(wǎng)與控制器通信,向控制器發(fā)送控制指令;單片機(jī)根據(jù)接收到的指令,計算出脈沖頻率,并根據(jù)轉(zhuǎn)臺當(dāng)前的位置值計算出應(yīng)向驅(qū)動器發(fā)送的脈沖數(shù)及方向信號,繼而輸出脈沖驅(qū)動電機(jī)運(yùn)動,實現(xiàn)對轉(zhuǎn)臺的實時控制;單片機(jī)還能實時捕捉轉(zhuǎn)臺的限位開關(guān)信號狀態(tài),防轉(zhuǎn)臺運(yùn)動超限。
系統(tǒng)所采用的兩相步進(jìn)電機(jī)驅(qū)動器為DM860H,以單軸轉(zhuǎn)臺為例,驅(qū)動器端口接線如圖2所示。
圖2 驅(qū)動器端口連接Fig.2 Driver port connection
驅(qū)動器既可以采用18~80 V AC,也可以采用24~110 V DC供電,在此采用48 V DC供電。步進(jìn)電機(jī)驅(qū)動器3類控制信號的具體功能如下:
(1)脈沖信號 PUL+(+5 V)和 PUL-。 PUL-脈沖上升沿有效,高電平時4~5 V,低電平時0~0.5 V。步進(jìn)電機(jī)的驅(qū)動控制采用細(xì)分技術(shù),細(xì)分后的實際步距角為基本步距角的幾分之一。如電機(jī)的基本步距角為1.8°,如果沒有細(xì)分,則1個脈沖轉(zhuǎn)動1.8°,200個脈沖旋轉(zhuǎn)1周。該系統(tǒng)步進(jìn)電機(jī)驅(qū)動器設(shè)置為32細(xì)分,即1個脈沖電機(jī)轉(zhuǎn)動0.05625°,單片機(jī)發(fā)送脈沖的頻率則決定電機(jī)運(yùn)轉(zhuǎn)的速度。
(2)方向信號 DIR+(+5 V)和 DIR-。 DIR-高電平時4~5 V,低電平時0~0.5 V,對應(yīng)電機(jī)正反轉(zhuǎn)。接線方面,互換任一相繞組(A+與A-互調(diào),或B+與B-互調(diào))可以改變電機(jī)運(yùn)行的初始方向。
(3)使能信號 ENA+(+5 V)和 ENA-。ENA-為低電平時驅(qū)動器不能工作,懸空時自動使能。在此,系統(tǒng)默認(rèn)使能,不接ENA+和ENA-。
轉(zhuǎn)臺旋轉(zhuǎn)軸和升降軸均安裝了光電限位開關(guān),用于限位信號的輸入。當(dāng)安裝在運(yùn)動部位的擋塊運(yùn)動至限位開關(guān)處時,光線被擋住,光電開關(guān)動作,單片機(jī)可據(jù)此判斷轉(zhuǎn)臺運(yùn)動是否超限,并做出相應(yīng)的限位控制。
經(jīng)測試,光電開關(guān)導(dǎo)通時信號線電壓為0 V,未導(dǎo)通時處于懸空狀態(tài),通過示波器觀察發(fā)現(xiàn)光電開關(guān)未導(dǎo)通時輸出信號有擾動,會對單片機(jī)對限位信號的識別產(chǎn)生干擾。故此采用光耦芯片TLP521-4隔離的方式,以提高控制的穩(wěn)定性。光電限位信號隔離電路如圖3所示,光電開關(guān)的供電電壓與光耦輸入端的電壓應(yīng)相同,均為12 V DC,且由同一電源供電。
圖3 光電限位輸入信號隔離電路Fig.3 Photoelectric limiting input signal isolation circuit
為了在斷電后控制器能夠保存轉(zhuǎn)臺各軸的位置,避免每次重新上電后需再次歸零進(jìn)行重新標(biāo)定位置,設(shè)計了依據(jù)斷電檢測電路的單片機(jī)E2PROM保存轉(zhuǎn)臺位置值的功能。如圖4所示,單片機(jī)采用可調(diào)開關(guān)電源供電,保險絲RX的熔斷電流為500 mA;電容的規(guī)格為0.47 F/5.5 V,上電時存儲足夠電量,斷電時釋放電量,保證掉電后單片機(jī)對轉(zhuǎn)臺位置值存儲程序的運(yùn)行;低壓檢測芯片為HT7050A-1,當(dāng)VCC<5.3 V時P4.0為低電平,當(dāng)VCC≥5.3 V時為高電平,單片機(jī)根據(jù)P4.0是否為低電平去判斷是否進(jìn)行E2PROM的寫功能。使用時將可調(diào)開關(guān)電源調(diào)至5.4 V,留出一定的低壓檢測裕量。
圖4 低壓檢測電路Fig.4 Low voltage detecting circuit
轉(zhuǎn)臺控制系統(tǒng)的軟件設(shè)計是轉(zhuǎn)臺系統(tǒng)正常運(yùn)行的關(guān)鍵,其設(shè)計是否合理直接影響轉(zhuǎn)臺系統(tǒng)各控制功能的實現(xiàn)。利用軟件編程算法通過對脈沖數(shù)的計算進(jìn)行轉(zhuǎn)臺實時位置的判斷,省去了使用編碼器、光柵尺等測量反饋傳感器的成本。
轉(zhuǎn)臺控制系統(tǒng)中,上位機(jī)PC端軟件提供良好的人機(jī)交互功能,用于配置系統(tǒng)控制參數(shù),輸入控制命令。考慮到在實際運(yùn)用中,需要系統(tǒng)具有遠(yuǎn)距離網(wǎng)絡(luò)通信功能,系統(tǒng)配有RS-232串口和TCP/IP協(xié)議2種通信方式可選??紤]到LabVIEW可以提供包括TCP,UDP,串口通信,等在內(nèi)的多種通信編程接口,且為圖形化編程軟件,編程簡單直觀,故此PC端上位機(jī)軟件選用LabVIEW編寫。
為了保證上位機(jī)與下位機(jī)通信過程中指令的正確解析且使系統(tǒng)具有良好的可維護(hù)性,同時保證指令接收的可靠性,系統(tǒng)自定義了通信協(xié)議,單條協(xié)議指令為由標(biāo)志頭、內(nèi)容、尾校驗碼和結(jié)束符4個部分組成的16進(jìn)制字符串,如圖5所示。
圖5 協(xié)議指令格式Fig.5 Protocol instruction format
圖中,標(biāo)志頭約定為A5xx xx,作為指令功能的識別碼,由于上位機(jī)發(fā)給下位機(jī)的指令分為控制參數(shù)設(shè)置、正負(fù)點(diǎn)動、相對定位、絕對定位、定速往返等多個類型,因此需要根據(jù)標(biāo)志頭的第2,3個字節(jié)的值確定類型;指令內(nèi)容的字符串長度變長,根據(jù)類型的不同,分別包含轉(zhuǎn)臺運(yùn)動的給定速率、位置等詳細(xì)信息;尾校驗碼為1個字節(jié)長度,是標(biāo)志頭和內(nèi)容的累加和的末2位;指令結(jié)束符為0x0D,用于判斷指令的接收結(jié)束。
根據(jù)上位機(jī)的功能要求,采用模塊化設(shè)計思想,各功能模塊如下:①通信配置模塊,配置界面如圖6a所示,啟動軟件初始彈出此界面,用于選擇通信方式及配置通信參數(shù)。②控制參數(shù)設(shè)置模塊,用于設(shè)置轉(zhuǎn)臺運(yùn)動的螺距、傳動比、細(xì)分?jǐn)?shù)、最大速度等4個主要參數(shù),設(shè)置界面如圖6b所示。③控制操作模塊,用于輸入用戶命令,發(fā)送指令給下位機(jī),控制轉(zhuǎn)臺進(jìn)行相關(guān)運(yùn)動及運(yùn)動狀態(tài)顯示。其控制界面如圖6c所示。
圖6 各功能模塊的界面Fig.6 Interface of various functional modules
下位機(jī)軟件是上位機(jī)控制指令的執(zhí)行軟件,用于調(diào)度控制過程,發(fā)出控制信號,驅(qū)動轉(zhuǎn)臺運(yùn)動。其主要任務(wù)是接收、解析控制指令,執(zhí)行控制算法,獲取轉(zhuǎn)臺實時狀態(tài)信息,并周期性地以約定的指令協(xié)議格式發(fā)送給上位機(jī)解析并顯示。
轉(zhuǎn)臺驅(qū)動的關(guān)鍵是控制脈沖發(fā)送的頻率及個數(shù),分別對應(yīng)于轉(zhuǎn)臺運(yùn)動的速率和距離。該系統(tǒng)利用單片機(jī)16位外設(shè)定時器發(fā)送脈沖,并控制發(fā)送脈沖的頻率。
當(dāng)轉(zhuǎn)臺需要運(yùn)動到某一位置時,結(jié)合轉(zhuǎn)臺當(dāng)前位置,根據(jù)要運(yùn)動的距離和速率,分別計算出需要發(fā)送的脈沖個數(shù)、定時初值,然后啟動定時器。定時時間每到1次就進(jìn)入相應(yīng)定時器中斷,單片機(jī)脈沖輸出引腳電平反向1次,發(fā)送的脈沖個數(shù)減1,并更新1次定時初值,如此往復(fù),直至脈沖個數(shù)減為0,轉(zhuǎn)臺運(yùn)動到位,關(guān)閉定時器。
旋轉(zhuǎn)軸和升降軸各占用1個定時器。以旋轉(zhuǎn)軸為例,旋轉(zhuǎn)軸螺距為0,設(shè)傳動比為r,即步進(jìn)電機(jī)每旋轉(zhuǎn)r角則轉(zhuǎn)臺旋轉(zhuǎn)1°;電機(jī)步距角為1.8°。轉(zhuǎn)臺每旋轉(zhuǎn)1°所需脈沖數(shù)、旋轉(zhuǎn)一定角度所需總脈沖數(shù)以及決定速率的定時初值可通過以下公式分別進(jìn)行計算:
式中:N0為轉(zhuǎn)臺每旋轉(zhuǎn)1°所需的脈沖數(shù);n為細(xì)分?jǐn)?shù);r為傳動比。
式中:s為轉(zhuǎn)臺需旋轉(zhuǎn)的角度,°;N為轉(zhuǎn)臺旋轉(zhuǎn)s角所需的總脈沖數(shù)。
式中:T為決定速率的定時初值;f為單片機(jī)運(yùn)行頻率,Hz,在此設(shè)置f=11.0592 MHz;v為目標(biāo)旋轉(zhuǎn)速度,°/s。
由于脈沖高電平有效,式(1)中的N0實際上是定時器的定時中斷次數(shù),為每旋轉(zhuǎn)1°實際所需脈沖數(shù)的2倍。
對于升降軸,傳動比rs的含義為轉(zhuǎn)臺每升/降1個螺距,步進(jìn)電機(jī)轉(zhuǎn)動rs周。同樣可以計算出
式中:N0s為轉(zhuǎn)臺每升降1 mm所需的脈沖數(shù);d為螺距,mm。其余2個公式與旋轉(zhuǎn)軸一樣。
下位機(jī)軟件也采用模塊化編程的思路,便于程序調(diào)試和和后期的維護(hù),程序功能模塊及程序流程如圖7所示。
圖7 下位機(jī)程序的功能模塊和流程Fig7 Function module and flow chart of lower computer program
轉(zhuǎn)臺控制系統(tǒng)利用嵌入式技術(shù),控制器采用STC15W4K56S4單片機(jī)編程,抗干擾能力強(qiáng),相比使用可編程控制器PLC節(jié)約了硬件成本。設(shè)計有I/O信號的光電隔離電路和低壓檢測電路。上位機(jī)軟件操作簡單,能完成多種精確定位功能,且配有參數(shù)配置功能,可用于基于兩相步進(jìn)電機(jī)傳動的、具有不同傳動比及螺距的其它一軸或雙軸平臺的控制,具有泛用性。系統(tǒng)采用模塊化的設(shè)計思想,開放度高,擴(kuò)展性強(qiáng),方便后續(xù)的系統(tǒng)維護(hù)和控制功能升級,在實際應(yīng)用中運(yùn)行良好。目前已應(yīng)用于上海聯(lián)誼自主研制的、用于產(chǎn)品仿真掃描測試的二維轉(zhuǎn)臺控制中,結(jié)合減速器及機(jī)械絲桿的精度,實測旋轉(zhuǎn)軸定位精度達(dá)到0.01°,升降軸定位精度達(dá)到0.01 mm,具備行業(yè)應(yīng)用前景。
參考文獻(xiàn):
[1]施豪杰,侯俊,楊海馬,等.基于LabVIEW的二維轉(zhuǎn)臺遠(yuǎn)程控制系統(tǒng)[J].信息技術(shù),2013,37(12):162-165.
[2]李昂,張迪,王少亮,等.轉(zhuǎn)臺控制系統(tǒng)的概述[J].黑龍江科技信息,2012,16(35):79.
[3]徐愛鈞,徐陽.STC15單片機(jī)原理與應(yīng)用[M].北京:高等教育出版社,2016.
[4]孫建忠,劉鳳春.電機(jī)與拖動[M].2版.北京:機(jī)械工業(yè)出版社,2014.
[5]張雷,孟瑩.高精度轉(zhuǎn)臺控制系統(tǒng)的研制及應(yīng)用[J].電子世界,2014,36(12):88-89.
[6]劉鳳芹,張國玉,王凌云,等.基于單片機(jī)的兩軸轉(zhuǎn)臺控制系統(tǒng)[J].長春理工大學(xué)學(xué)報:自然科學(xué)版,2008,31(4):87-90.
[7]潘瑩玉.虛擬儀器及其應(yīng)用[J].電力自動化設(shè)備,1999,19(1):44-46.