摘 要: 為了研究電纜在工作過程中的性能變化,,采用了固高科技GUC運動控制器,,搭建了基于VS2008的電纜測試系統(tǒng)平臺,。利用MFC編輯程序界面的方法以及控制器自帶的庫函數(shù),模擬實際工作情況,,編寫了拖鏈電纜的運動程序以及上位機的控制界面程序,。控制界面可實時顯示被測電纜短路,、斷路以及運動參數(shù)等信息,。整個系統(tǒng)操作簡單,運行可靠,。
關(guān)鍵詞: 電纜測試;GUC控制器,;VS2008,;MFC
機床電纜作為機床電氣系統(tǒng)的組成部分,擔(dān)負著電能和電能信號傳送的重任,,在生產(chǎn)加工過程中扮演著重要角色,。但長期頻繁的往復(fù)運動必然使機床拖鏈中的電纜出現(xiàn)疲勞受損,而工作環(huán)境中的油污,、粉塵等因素又加速了絕緣層老化,,線芯短、斷路等現(xiàn)象,。為了了解電纜的壽命并快速判斷電纜通斷,,本文模擬機床拖鏈中電纜實際運行條件,搭建含有油槽的測試平臺,,選用固高科技生產(chǎn)的GUC系列運動控制器,,基于VS2008編譯環(huán)境中的VC++模塊,利用其提供的MFC編輯程序界面的方法以及控制器自帶的庫函數(shù),,建立“PC+運動控制器”開放式電纜測試運動控制系統(tǒng),。
1 系統(tǒng)的總體結(jié)構(gòu)設(shè)計
電纜測試平臺在設(shè)計搭建過程中,要充分考慮布置在拖鏈中電纜的實際運動情況以及工作環(huán)境對它的影響等因素,。電纜測試系統(tǒng)試驗臺實物圖如圖1所示,。
電纜布置在拖鏈中,拖鏈一端固定在接線盒上,,另一端固定在運動負載上,,電機連接聯(lián)軸器帶動滾珠絲杠,旋轉(zhuǎn)的滾珠絲桿通過滾軸螺母帶動負載水平往復(fù)性運動,。整個運動過程既可實現(xiàn)勻速運動,,又可實現(xiàn)變速運動,往復(fù)運動次數(shù)以及運動距離可以實時顯示,。為了更符合電纜實際工作情況,,可以對油槽中加入油污或切削液,,也可以每隔一段時間,手動噴灑,;在電纜測試運動過程中,,電纜兩端通過接線端子與控制器的I/O口相連接,構(gòu)成閉合回路,,以便人機界面實時顯示電纜在反復(fù)運動中出現(xiàn)的斷路,、短路等情況。
2 系統(tǒng)的硬件設(shè)計
一般開放式運動控制系統(tǒng)主要由PC,、運動控制卡,、連接端子板、伺服驅(qū)動器以及伺服電機5個部分組成,,如圖2所示,。電纜測試運動控制系統(tǒng)采用了固高科技生產(chǎn)的GUC系列運動控制器,該控制器是PC技術(shù)與運動控制技術(shù)相結(jié)合的產(chǎn)物,,它以Intel標(biāo)準(zhǔn)X86架構(gòu)的CPU和芯片組為系統(tǒng)處理器,,采用高性能DSP和FPGA作為運動控制協(xié)處理器,在實現(xiàn)高性能多軸協(xié)調(diào)運動控制的同時,,可以實現(xiàn)普通PC的所有基本功能,。電纜測試運動控制系統(tǒng)硬件主要由以下幾部分器件組成。
(1)GUC-300-ESV運動控制器,;
(2)三洋伺服電機驅(qū)動器以及伺服電機,;
(3)驅(qū)動器電源以及+24 V直流電源(用于GUC系列運動控制器及接口板電源);
(4)原點開關(guān),、正/負限位開關(guān),;
(5)顯示器、輸入設(shè)備或?qū)S萌藱C界面,。
電纜測試系統(tǒng)采用深圳固高科技生產(chǎn)GUC-300-ESV一體化運動控制器,,該控制器集系統(tǒng)處理器和運動控制處理器于一體,運動控制處理器采用GE系列控制器,。這種嵌入式一體化的解決方案給用戶帶來很大的方便,,一臺GUC-300-ESV控制器加上一個顯示器就可以建立一個等同于“PC+運動控制器”開放式電纜測試運動控制系統(tǒng)。
GUC-300-ESV運動控制器提供C語言函數(shù)庫和Windows動態(tài)鏈接庫,,可實現(xiàn)復(fù)雜的控制功能,。該運動控制器技術(shù)參數(shù)及功能如下[1]。
(1)系統(tǒng)處理器采用X86架構(gòu),、主頻100 MHz的CPU,,PCI總線通信方式;
(2)控制周期為200 ?滋s且不可調(diào);
(3)3路(每軸一路)模擬量以及脈沖信號輸出,,模擬量的分辨率為16 bit,,輸出電壓范圍為-10 V~10 V,脈沖輸出最大頻率為256 kHz,;
(4)帶有3路編碼器信號輸入,,輸入最大頻率為4 MHz;
(5)每軸分別各有一個正,、負限位信號,、原點信號以及驅(qū)動報警信號等專用輸入信號,還有一個伺服允許信號和驅(qū)動器復(fù)位信號,;
(6)分別擁有16路經(jīng)光電隔離處理過的通用數(shù)字量輸入輸出,,其中16路通用輸出是采用集電極開路輸出,驅(qū)動能力達200 mA,;
(7)可實現(xiàn)直線,、圓弧插補運動,提供了8 KB的緩沖區(qū),,可實現(xiàn)運動軌跡預(yù)處理;
(8)帶有PID+速度前饋+加速度前饋濾波器,;
(9)可設(shè)置跟隨誤差極限,、加速度極限以及輸出電壓飽和極限等一些安全保護措施;
(10)提供了DOS下的C語言函數(shù)庫和Windows下的動態(tài)鏈接庫,,在Windows系統(tǒng)下,,用戶可以使用任何能夠支持動態(tài)鏈接庫的開發(fā)工具來開發(fā)應(yīng)用程序,例如Visual C++,、Visual Basic和Delphi等,。
3 系統(tǒng)的軟件設(shè)計
電纜測試系統(tǒng)軟件設(shè)計是在Windows系統(tǒng)下基于GUC-300-ESV控制器進行開發(fā)設(shè)計的,軟件設(shè)計主要包括兩個部分:一是可視化編程部分,;另一個是代碼編程部分,。可視化編程部分利用VS2008提供的強大軟件開發(fā)工具向?qū)?,不需要手工編寫代碼,,只要根據(jù)自己的設(shè)計思想,用鼠標(biāo)或鍵盤進行操作即可,。與采用代碼編寫相比,,用可視化編程部分進行Window風(fēng)格的圖形用戶界面和各種控件的制作,將更加簡單方便,。代碼編寫部分采用VS2008提供的文本編輯器,,用面向?qū)ο蟮腣C++語言進行編寫。
3.1 主機與運動控制器通信的建立
使用運動控制器開發(fā)應(yīng)用程序之前,先安裝驅(qū)動程序,,并把運動控制器自帶的動態(tài)鏈接庫ges.dll,、頭文件ges.h以及ges.lib文件復(fù)制到工程文件夾里,在VS2008編譯器中對ges.lib文件進行鏈接設(shè)置后,,并在應(yīng)用程序文件中加入函數(shù)庫的頭文件的聲明,,至此,就可以使用動態(tài)鏈接庫中的所有函數(shù)編寫應(yīng)用程序了[2],。
在安裝完驅(qū)動后,,用控制器自帶軟件檢測主機是否與控制器建立聯(lián)系,自帶軟件運行界面如圖3所示,。若演示程序能正常工作,,說明控制器通信正常,只有通信正常,,才可以進行系統(tǒng)的操作,,否則需找出問題后,重新檢測,。
3.2 可視化控制界面的設(shè)計
可視化控制界面的設(shè)計不僅要滿足控制要求,,同時還要友好美觀。電纜測試平臺主控制界面及參數(shù)設(shè)置界面運行結(jié)果分別如圖4,、圖5所示,。
主控制界面主要包括兩個部分:一部分負責(zé)實時顯示控制狀態(tài);另一部分是控制按鈕,??刂茽顟B(tài)顯示包括顯示控制器初始化是否成功、測試工作臺是否回零,,實時顯示往復(fù)運動循環(huán)次數(shù),、工作臺運行的規(guī)劃位置、實際位置以及運行速度,,主界面中間的I/O口狀態(tài)的顯示實時反映電纜在運動過程中是否出現(xiàn)短路,、斷路等情況;控制按鈕主要完成運動控制的開始,、停止,、運動控制的參數(shù)設(shè)置以及運動方式的選擇等。
參數(shù)設(shè)置界面主要由軸運動參數(shù)設(shè)置和控制器I/O口信號輸出選擇設(shè)置兩部分組成,。軸運動參數(shù)設(shè)置主要完成工作臺運動速度,、運動方式(勻速或變速)以及往復(fù)運動次數(shù)的設(shè)置;通過對I/O信號輸出口選擇設(shè)置,,結(jié)合主控制界面I/O口狀態(tài)指示燈的顯示,,可以判斷電纜是否出現(xiàn)短路,、斷路等情況。
3.3 程序內(nèi)部代碼的編寫
打開Microsoft Visual Studio 2008軟件,,選擇新建一個基于對話框的MFC應(yīng)用程序類型的項目,,接著對對話框資源視圖添加一些控件,建立友好控制界面,,最后對程序內(nèi)部手動編寫相應(yīng)的運動控制代碼[3-6],,總體程序編寫流程圖如圖6所示。
在OnInitDialog函數(shù)中,,先對控制界面的大小,、顯示的位置、界面字體和菜單按鈕進行了初始化,。檢測控制卡是否打開,,調(diào)用運動控制器函數(shù)庫中的GT_Open、GT_Reset函數(shù)對運動控制器初始化并對專用信號參數(shù)進行設(shè)置,。部分初始化程序如下,。
short CWireTestPlatformDlg::InitCard()
{
short rtn=0;
short lmtsns=0xffff,;
short homesns=0x00ff,;
rtn+=GT_Open(0xffff); //打開運動控制器
Sleep(200),;
rtn+=GT_Reset(),; //復(fù)位運動控制器
rtn+=GT_AlarmOff(1);
rtn+=GT_AlarmOn(2),; //驅(qū)動使能
rtn+=GT_AlarmOff(3);
rtn+=GT_ClrSts(1),;//清除控制軸1的狀態(tài)
rtn+=GT_ClrSts(2),; //清除控制軸2的狀態(tài)
rtn+=GT_ClrSts(3); //清除控制軸3的狀態(tài)
rtn+=GT_LmtSns(lmtsns),;
//設(shè)置控制軸限位開關(guān)的觸發(fā)電平
rtn+=GT_HomeSns(homesns),;
//設(shè)置運動控制器軸Home信號的觸發(fā)沿
return rtn;
}
將運動中電纜兩端接在控制器通用數(shù)字I/O口上,,形成閉合回路,,在參數(shù)設(shè)置界面中設(shè)置輸出口, 使控制器相應(yīng)I/O口向與之相連的電纜輸出電平信號,,并檢測是否有返回信號,,通過主控制界面的I/O口指示燈的亮滅來判斷電纜在運行中是否出現(xiàn)斷路、短路等情況,。在程序中分別調(diào)用控制器函數(shù)庫中GT_ExInpt,、GT_ExOpt函數(shù)讀取16路通用數(shù)字I/O輸入的電平狀態(tài)和設(shè)置16路通用數(shù)字I/O輸出的電平狀態(tài)來實現(xiàn)電纜通斷檢測。通斷測試流程如圖7所示。
實時更新I/O狀態(tài)程序如下,。
GT_ExInpt(&m_Inputvalue),;
//讀取路通用數(shù)字I/O輸入的電平狀態(tài)
if(!(m_Inputvalue &(1<<3)))
m_Outputvalue=m_Outputvalue &(~(1<<6));
GT_ExOpt(m_Outputvalue),;
//設(shè)置通用數(shù)字I/O的輸出信號
主控界面指示燈顯示I/O狀態(tài)部分程序如下:
……
for(int i=0,;i<16;i++)
{
if(m_Inputvalue &(1<<i))
//輸入信號無效指示燈不亮
m_InLed[i].SetIcon(IDI_GREEN_NO,,CSize(24,,24),0,,0),;
else
//輸入信號有效指示燈亮
m_InLed[i].SetIcon(IDI_GREEN_YES,CSize(24,,24),,0,0),;
}
……
for(int i=0,;i<16;i++)
{
if(m_Outputvalue &(1<<i))
//輸出信號無效指示燈不亮
m_OutLed[i].SetIcon(IDI_GREEN_NO,,CSize(24,,24),0,,0),;
else
//輸出信號有效指示燈亮
m_OutLed[i].SetIcon(IDI_GREEN_YES,CSize(24,,24),,0,0),;
}
……
基于VC和GUC-300-ESV運動控制器建立的電纜測試平臺,,界面美觀實用、操作簡單,,編寫測試實驗程序,,模擬機床在各種工況下運行:勻速運動、變加,、減速運動,、快速定位運動等,并對電纜進行檢測,,實時顯示電纜的通斷情況,。電纜測試平臺還可對氣管,、油管的可靠性進行檢測,具有廣泛的應(yīng)用領(lǐng)域,。
參考文獻
[1] 孫鑫,,余安萍.VC++深入詳解[M].北京:電子工業(yè)出版社,2007.
[2] 侯俊杰.深入淺出MFC(第2版)[M].武漢:華中科技大學(xué)出版社,,2001.
[3] 謝莉.VC++動態(tài)鏈接庫的開發(fā)及調(diào)用[J].微型機與應(yīng)用,,2001,20(9):10-12.
[4] 深圳固高科技有限公司.GE系列運動控制器編程手冊[Z].2009.
[5] 深圳固高科技有限公司.GE系列運動控制器用戶手冊[Z].2009.
[6] 高煊,,何廣平.基于VC++的四軸運動控制卡軟件系統(tǒng)開發(fā)研究[J].制造技術(shù)與機床,,2009(6):24-28.
[7] 范寶德,劉驚雷.基于VC的多線程編程技術(shù)及其實現(xiàn)[J].微型機與應(yīng)用,,2002,,21(7):10-12.