[摘 要]:運動控制卡是一種基于工業(yè)PC機、用于各種運動控制場合(包括位移、速度、加速度等)的上位控制單元。它的出現(xiàn)主要是因為:(1)為了滿足新型數(shù)控系統(tǒng)的標準化、柔性、開放性等要求;(2)在各種工業(yè)設備(如切割、雕刻、噴涂、點膠、焊接等)、國防裝備(如跟蹤定位系統(tǒng)等)、智能醫(yī)療裝置等設備的自動化控制系統(tǒng)研制和改造中,急需一個運動控制模塊的硬件平臺;(3)PC機在各種工業(yè)現(xiàn)場的廣泛應用,也促使配備相應的控制卡以充分發(fā)揮PC機的強大功能。
[關鍵詞]:ADT8940、上位控制、執(zhí)行結構
一、數(shù)控系統(tǒng)組織結構及控制原理圖
采用PC+運動控制卡的簡易數(shù)控系統(tǒng),其主要組成及其控制流程圖如下圖(1)所示:
[align=center]

圖(1)[/align]
通過上述組織結構圖不難看出:一個完整的數(shù)控系統(tǒng)主要有“執(zhí)行結構”和“上位控制”兩部分組成。“執(zhí)行機構”主要包括:步進電機,伺服電機,以及由繼電器輸出控制的交流馬達、汽缸、液壓缸等,“執(zhí)行機構”通過機械聯(lián)結裝置將運動傳遞到刀具或工件,進而實現(xiàn)機械部件的運動;“上位控制”單元主要包括:PC機,運動控制卡,數(shù)控應用軟件和輔助工具軟件。
“上位控制”單元是數(shù)控系統(tǒng)的“指揮中心”,“執(zhí)行機構”的所有動作都受“上位控制“的統(tǒng)一調度,從而確保了各部件協(xié)調動作。在“上位控制”對“執(zhí)行機構”實施控制的過程中,運動控制卡起了關鍵性的作用,她是PC機和執(zhí)行機構聯(lián)系的橋梁,是執(zhí)行機構的直接控制者,所以運動控制卡性能的優(yōu)劣將直接影響整個數(shù)控系統(tǒng)的性能。
深圳市眾為興數(shù)控技術有限公司是一家專業(yè)從事數(shù)控硬件產品和應用系統(tǒng)開發(fā)的公司,運動控制卡作為公司的一項核心產品,其性能指標一直穩(wěn)居在國內的先進行列,基于運動控制卡自主研發(fā)的數(shù)控應用系統(tǒng)滲透到了植毛鉆孔機,水射流切割、火焰切割、異形玻璃切割、噴涂機、雕刻機、焊接機、醫(yī)療機械等領域。下面詳細討論運動控制卡在異型玻璃切割行業(yè)中的應用。
二、異形玻璃切割系統(tǒng)
1、 行業(yè)概述
傳統(tǒng)的玻璃切割采用手工和簡易機械切割方式,在玻璃僅僅用于門窗的時代,上述切割方式已經綽綽有余。然而隨著科技和生活水平的不斷提高,玻璃在電子產品、工藝品、裝飾品、家庭日用品等領域的應用越來越普及,利用傳統(tǒng)方式去切割厚度很厚,面積大,形狀復雜,精度要求高的玻璃非常困難,而且效率很低。傳統(tǒng)切割方式在玻璃切割領域中的應用已經走到了盡頭,取而代之的最佳方式莫過于將數(shù)控技術應用到玻璃切割中。
深圳市眾為興數(shù)控技術有限公司結合自身所長,自主開發(fā)了異形玻璃切割系統(tǒng),該系統(tǒng)在玻璃切割行業(yè)中已經得到了廣泛的應用。
2、 系統(tǒng)設計
(1) 硬件方案
因PLC和其他控制器存在圖形處理麻煩、存儲容量和內存容量小等缺陷,所以最終采用PC+運動控制卡硬件方案。
運動控制卡是基于PC機各種總線的步進電機或數(shù)字式伺服電機的上位控制單元,總線形式也是多種多樣,通常使用的是基于ISA總線,PCI總線和PC104總線的。隨著PC機的發(fā)展,主板上ISA插槽已經越來越少,而PC104總線插槽僅出現(xiàn)在價格昂貴的工控主板上,PCI總線已經成為普通PC機的主流。
綜合玻璃切割工藝,加工過程中需要使用到兩軸聯(lián)動、三軸聯(lián)動、、兩軸直線插補、三軸直線插補和自動加減速等功能,所以選擇PCI插槽的ADT8940四軸運動控制卡作為運動控制單元。
(2)軟件方案
ADT8940運動控制卡具有開放式結構、使用簡便、功能豐富、可靠性高等特點,其所有功能都是以庫函數(shù)形式出現(xiàn),用戶只管調用,無須了解具體的實現(xiàn)方式,所以可以在短期內,開發(fā)出既滿足性能要求,又能大幅度降低成本的系統(tǒng)。
在傳統(tǒng)數(shù)控系統(tǒng)中,通常需要專業(yè)人員手工編輯G代碼,或者使用Mastercam等專業(yè)性很強的繪圖工具生成G代碼,G代碼是系統(tǒng)唯一能夠識別的加工指令,這對操作人員提出了很高的要求。為了開發(fā)出通用性強,性價比高的系統(tǒng),我們分析了目前比較通用的各種繪圖工具,決定在兼容傳統(tǒng)的G代碼的基礎上,增加目前通用性強的DXF文件(AutoCAD)和PLT(AutoCAD、CoreDraw)文件作為切割加工的原始數(shù)據(jù),從而解決了客戶使用G代碼的煩惱。
VC中提供的數(shù)據(jù)鏈表模板類,可以很方便地管理數(shù)據(jù),加上VC有強大的圖形處理功能,可以方便地將數(shù)據(jù)文件格式轉化成圖形格式,直觀地反映出來。所以選用VC作為軟件開發(fā)工具。
(3)功能規(guī)劃及設計要點
解析功能—系統(tǒng)具有對DXF、PLT、CNC、NC文件的解析功能,從而自動生成加工過程中所需要的數(shù)據(jù)。解析總體思路采用短直線逼近法來模擬實際軌跡,解析精度可調,用戶可以根據(jù)實際需要進行設定。
編輯功能—在玻璃切割中,經常需要批量切割排列規(guī)則的方形和圓形工件,如果通過繪圖方式很不方便。為了增強系統(tǒng)的通用性和靈活性,系統(tǒng)中增加了方形和圓形工件的排版和編輯功能,以方便的實現(xiàn)方形和圓形工件的切割加工。
回零功能—系統(tǒng)上電啟動,每個軸正常需要回零,確保系統(tǒng)找到機械零點,通常用原點接近開關作為原點信號。
設定起點—在機械零點的基礎上,人為設定的加工零點。設定加工起點的目的,主要是為了提高加工效率。
抬刀功能—在切割加工過程中,如果刀具在工件中旋轉較大角度,既會影響刀具的使用壽命,同時還會在拐角處留下圓角。為避免上述現(xiàn)象的發(fā)生,用戶可以通過設定抬刀角度,確保刀具旋轉角度在超出抬刀角度的情況下,刀具先抬起,然后旋轉,接著下刀進行后續(xù)切割。
變速功能—在加工過程中,如果采用統(tǒng)一速度進行高速切割加工,那么在拐角較大處,就會留下不規(guī)則的弧形,影響產品的加工精度。為此,系統(tǒng)增加了拐角減速功能。
暫停記憶—系統(tǒng)在暫停時,會自動記憶當前的位置,以保證繼續(xù)加工時,所有運動軸都能準確回到暫停時的位置,確保加工的準確性。
手動功能—為提高手動調機的靈活性,系統(tǒng)采用了手持盒控制和鍵盤控制和鼠標控制三種方式來實現(xiàn)各運動軸的移動,同時還提供了指定坐標移動法,確保各運動軸運動到指定位置。
IO診斷—該功能主要用于裝機調試和故障檢測中。機器安裝完畢,必須保證所有的輸入和輸出信號正常后,方可進行加工,否則將會帶來安全隱患和加工出現(xiàn)異常的現(xiàn)象。
保護功能—系統(tǒng)使用了三級保護措施,一級保護采用硬件限位開關,二級保護采用軟件限位,三級保護采用了急停關閉所有電機驅動器使能的應急方案,確保了系統(tǒng)加工過程的安全。
(4) 運動控制卡操作
ADT8940控制卡是基于PCI總線的控制卡,它提供了豐富的運動控制函數(shù),可方便基于XY平臺的數(shù)控系統(tǒng)、機器人系統(tǒng)、雕刻切割系統(tǒng)、座標測量系統(tǒng)的應用(具體在系統(tǒng)中主要用到了單軸運動、兩軸聯(lián)動、三軸聯(lián)動、兩軸直線插補,三軸直線插補等功能。對于XY兩軸插補,只需設置X軸的速度曲線,三軸插補需要設置X軸的速度,Z軸的倍率及驅動速度應與X軸設置相同,同時Z軸的初始速度也應設為X軸的驅動速度)。
下面簡單介紹系統(tǒng)中所用庫函數(shù)的功能和使用方法。
a. 初始化卡常用函數(shù)
int adt8940_initial(void)—該函數(shù)用于檢測運動控制卡和復位運動控制卡,這是調用其他函數(shù)的前提。函數(shù)返回值為ADT8940運動控制卡的數(shù)量,返回值<=0,表示初始化失敗。
int set_range(int cardno, int axis, long value)—該函數(shù)用于設定倍率,倍率是決定速度,加減速度和加減速度變化率的參數(shù)。
int set_pulse_mode(int cardno,int axis,int value,int logic,int dir_logic)—該函數(shù)用于設置輸出脈沖的工作方式,運動控制卡提供獨立脈沖和雙脈沖的工作方式。
int set_command_pos(int cardno,int axis,long value)—該函數(shù)用于設定邏輯計數(shù)器的值。
int set_actual_pos(int cardno,int axis,long value)—該函數(shù)用于設定實位計數(shù)器的值。
b. 運動控制常用函數(shù)
int set_startv(int cardno,int axis,long value)—設定起始速度。
int set_speed(int cardno,int axis,long value)—設定驅動速度。
int set_acc(int cardno,int axis,long value)—設定加速度。
int pmove(int cardno,int axis,long pulse)—單軸驅動函數(shù),連續(xù)向不同軸發(fā)送此指令,即可實現(xiàn)多軸聯(lián)動。
int inp_move2(int cardno,int no,long pulse1,long pluse2)—兩軸插補函數(shù),no的取值決定是前兩軸還是后兩軸插補。
int inp_move3(int cardno,long pulse1,long pluse2,long pulse3)—兩軸插補函數(shù)。
c. 狀態(tài)檢查函數(shù)
int get_status(int cardno,int axis,int *value)—獲取單軸驅動狀態(tài),該函數(shù)主要用于單軸運動和多軸聯(lián)動的場合。
int get_inp_stauts(int cardno,int no,int *value)—獲取插補驅動狀態(tài)。
int get_inp_status2(int cardno,int no,int *value)—獲取連續(xù)插補允許寫狀態(tài),通過使用該函數(shù)可以在當前插補未結束的情況下,插入下一條插補指令,以便保證插補的連續(xù)性。
d. 參數(shù)檢查函數(shù)
int get_command_pos(int cardno,int axis,long *value)—獲取邏輯計數(shù)器的值。
Int get_actual_pos(int cardno,int axis,long *value)—獲取 實位計數(shù)器(通常為編碼器和光柵尺)的值。
int get_speed(int cardno,int axis,long *speed)—獲取運動軸的速度
e. 開關量操作函數(shù)
int read_bit(int cardno,int number)—讀單個輸入點狀態(tài)。
int write_bit(int cardno,int number,int value)—輸出單點。
以上函數(shù)的詳細說明,請參見ADT8940運動控制卡說明書。
(5)軟件設計
在需要調用運動控制函數(shù)的地方,正確調用相應函數(shù),最后組合成完整的異形玻璃切割系統(tǒng)。
結束語:運動控制卡作為運動控制系統(tǒng)的核心部件,”上位控制”單元的性能決定了整套系統(tǒng)的運動控制功能的強弱。根據(jù)不同的應用場合,根據(jù)各自的應用條件,為您的運動控制系統(tǒng)選擇一款適用的“管家”吧!