摘要:應(yīng)用BECKHOFF CX1020運動控制系統(tǒng)實現(xiàn)TZ1001工業(yè)CT專機的主要控制功能,如閉環(huán)控制、NC程序運行、HMI監(jiān)控和雙向位置精度補償?shù)取?br />
TZ1001高能X射線工業(yè)DR/CT快速檢測專機由兩個同步運行的加速器X1和探測器X2運行軸、分度B軸、探測微動調(diào)整W軸和工件定位移動X3軸構(gòu)成,其中X1、X2、B、W均為伺服軸,X1、X2軸行程10500mm,X3軸行程7500mm,設(shè)備對同步定位、重復(fù)定位、分度等精度均有較高要求。
1. 系統(tǒng)配置
選用具有較高性能CPU的嵌入式PC模塊CX1020,帶TwinCAT PLC/NCI軟件,通過EtherCAT總線與I/O模塊、AX5000系列伺服驅(qū)動裝置通訊,EK1110是EtherCAT總線的擴(kuò)展端子模塊,它與前一段EtherCAT的末端相連,可將EtherCAT電纜束的電氣隔離長度增加到100米,并將E_bus信號轉(zhuǎn)換為100BASE-TX以太網(wǎng)信號。系統(tǒng)配置如圖1所示。
圖1 TZ1001控制系統(tǒng)配置圖
AX5206是雙軸2×6A伺服驅(qū)動裝置,驅(qū)動AM3000系列伺服電機,通過EtherCAT與CX1020直接通訊,所有的組態(tài)參數(shù)與動態(tài)數(shù)據(jù)均通過EtherCAT與PLC、NC實現(xiàn)數(shù)據(jù)交換。AX5200系列雙軸伺服驅(qū)動裝置有一個特點,它的兩個通道的驅(qū)動電流可以軟分配,例如對AX5206來說,可以是A通道的負(fù)載電流為9A,B通道的負(fù)載電流為3A,只要總的工作電流不超過2×6A即可。各軸的行程限位、參考點等直接接入AX5000,也可接入PLC的I/O模塊。
X1、X2軸位置測量選用Renishaw LM10磁柵尺,其中X1的LM10方波信號通過RS422接入ELCO EMA信號分配器分為兩路隔離輸出,一路接入EL5101增量編碼器接口模塊,實現(xiàn)閉環(huán)控制,另一路作為X光機掃描觸發(fā)模塊的觸發(fā)信號。
HMI選用CP6909面板,其最大分辨率為1280×1024,帶有DVI/USB擴(kuò)展接口,可通過USB-E和DVI-E連接至CX的DVI/USB模塊,可通過軟件組態(tài)實時監(jiān)控系統(tǒng)工作狀態(tài),其與USB/DVI的距離支持最長50米。
2. 技術(shù)要點
倍福CX運動控制系統(tǒng)是基于PC的軟PLC和NC產(chǎn)品,控制上以PLC為核心,主要的NC功能均通過PLC庫文件中的相應(yīng)功能塊的編程實現(xiàn)。CX的PLC是符號表編程,NC的參數(shù)和狀態(tài)可以通過通道和軸接口信號直接在PLC中編程,例如旋轉(zhuǎn)軸B(軸4)的實際角度變量值為axis4.NCtoPLC.fModuloPoslst。所有I/O點及一些通用的中間變量信號可以定義為全局變量,在任何程序塊中均可使用。對于一些對掃描周期要求較短的程序塊(如位置精度補償塊等),可以設(shè)置獨立任務(wù)并定義其優(yōu)先級和掃描周期。
2.1 閉環(huán)控制
LM10磁柵尺的分辨率有1um、2um、5um、10um、20um、50um六種,計數(shù)頻率有250kHz、500kHz、1000kHz、2000kHz、8333kHz五種。而EMA的最大工作頻率是250kHz,六種分辨率的LM10磁柵尺在250kHz頻率時對應(yīng)的最大運行速度分別是7.8m/min、15m/min、37.8m/min、76m/min、76m/min、47m/min,現(xiàn)X1、X2軸的最大運行速度要求15m/min,所以應(yīng)選擇分辨率為5um計數(shù)頻率最大250kHz的LM10磁柵尺。LM10的9針D型插頭與EL5101的各端子信號分配關(guān)系如表1:
表1:LM10磁柵尺與EL5101編碼器模塊的信號對應(yīng)關(guān)系
5V | 0V | A | A- | B | B- | Z | Z- | 屏蔽 | |
LM10 | 5 | 9 | 4 | 8 | 3 | 7 | 2 | 6 | 1,9 |
EL5101 | 1’ | 5’ | 1 | 5 | 2 | 6 | 3 | 7 | 8’ |
按表1連接好信號線后就可以進(jìn)行軟件調(diào)試了,打開NC Configuration下Axes中Axisn的Axis_Enc下的NC_Encoder頁面并設(shè)置:
Type:Encoder(KL5101/KL5111/IP5109/EL5101/EL5151/Profile MDP 511)
Link To (all type):Term 2 (EL5101) # ’MDP 510’
軸傳動比可以在Parameter下的Scaling Factor(單位mm/INC)中設(shè)置,其數(shù)值表示每個脈沖對應(yīng)的軸行程計算值。
2.2 NC程序執(zhí)行
雖然該專機是上位機定位與簡單聯(lián)動,不需要運行工件程序,但做位置精度檢測和調(diào)試時還是需要NC程序執(zhí)行功能,而TwinCAT的設(shè)計理念是運動控制系統(tǒng),沒有設(shè)計專門的NC加工MMC界面,需要通過System Manager來做一些處理。
系統(tǒng)默認(rèn)在CF卡上僅有一個NC程序STADION.NC,為了方便需一次性加入將要用的程序。可通過CP6909或外接顯示器對CX進(jìn)行操作,在Windows CE或XP下運行“explorer.exe”進(jìn)入資源管理器,然后進(jìn)入harddisk\TwinCAT\CNC目錄,可以看到STADION.NC等文件,通過COPY生成幾個新文件再重命名,如X1comp.NC等。
在System Manager的NC Task 1 SAF下右鍵激活A(yù)ppend Channel,在Channel 2下的Group 5的3D Online中設(shè)置各對應(yīng)的軸號,并設(shè)置倍率Override,然后在Channel2_Itp下的Editor頁面點擊Browse打開已生成的X1comp.NC文件,修改其內(nèi)容并F9存盤、F7裝載文件,最后按F5運行程序即可。
2.3 HMI面板
若要CP面板顯示CX的頁面,則先激活PLC Control中Project菜單下的Option選項窗口,并選擇TwinCAT項中的Enable CE Target Visualization并激活。若要顯示中文,則需安裝中文字體,目前僅支持宋體。
在Visualizations中直接建立頁面,其頁面中直接使用PLC或NCTOPLC中的變量,載入CX后,通過CP6909直接顯示,CP6909是不帶CPU的面板,相當(dāng)于CX的顯示器。如果選用帶CPU的控制面板,則頁面程序需載入面板,通過EtherCAT或以太網(wǎng)通訊來顯示。
其HMI畫面編輯比較方便,但功能較簡單,支持的數(shù)據(jù)類型比較全,例如%.3f表示小數(shù)點后保留3位小數(shù)的實數(shù),%d表示整數(shù)等。
2.4 雙向位置精度補償
位置精度補償可調(diào)用PLC庫TCNC.lib中的FB PositionCompensation和FB WritePositionCorrection來實現(xiàn),對于需補償?shù)妮S應(yīng)修改其Parameter下Other setting下的“Position Correction…”值為“TRUE”,使補償值修改位置給定有效。
值得注意的是,TCNC.lib庫中的軸數(shù)據(jù)結(jié)構(gòu)類型是NCTOPLC_AXLESTRUCT和PLCTONC_AXLESTRUCT,而不是TCMC2.lib中AXIS_REF數(shù)據(jù)類型,所以PLC程序中的有關(guān)MC的功能只能調(diào)用TCMC.lib庫中的功能塊,而不是TCMC2.lib庫。
一個典型的直線軸X2位置精度補償全局變量定義及程序如下:
VAR_GLOBAL
fbPitchCompensationX2:FB_PositionCompensation;
fbWritePosCorrectionX2:FB_WritePositionCorrection;
axis2_NCtoPLC AT %I*: NCTOPLC_AXLESTRUCT;
axis2_PLCtoNC AT %Q*: PLCTONC_AXLESTRUCT;
AxisRefInX2 AT %I*:NCTOPLC_AXLESTRUCT;
AxisRefOutX2 AT %Q*: PLCTONC_AXLESTRUCT;
bAxisIsHomedX2: BOOL;
bEnablePitchCompensationX2: BOOL := FALSE;
fCompensationValueX2: LREAL;
bErrorX2: BOOL;
nErrorIdX2: UDINT;
bActiveX2: BOOL;
bLimitingX2: BOOL;
END_VAR
VAR_GLOBAL CONSTANT
st_DescPitchX2: ST_CompensationDesc := (fPosMin:=0.0, fPosMax:=100.0, nTableElements: =11);
st_PitchTableX2: ARRAY[0..10] OF ST_CompensationElement :=
(fPos:=0.0, fCompensation: =0.0),
(fPos:=1000.0, fCompensation:=0.012),
(fPos:=2000.0, fCompensation:=-0.008),
(fPos:=3000.0, fCompensation:=-0.013),
(fPos:=4000.0, fCompensation:=-0.014),
(fPos:=5000.0, fCompensation:=-0.005),
(fPos:=6000.0, fCompensation:=0.006),
(fPos:=7000.0, fCompensation:=0.007),
(fPos:=8000.0, fCompensation:=0.018),
(fPos:=9000.0, fCompensation:=0.009),
(fPos:=10000.0, fCompensation:=0.011);
END_VAR
IF bAxisIsHomedX2 THEN
bEnablePitchCompensationX2 := TRUE;
ELSE
bEnablePitchCompensationX2 := FALSE;
END_IF
fbPitchCompensationX2(
Enable:= bEnablePitchCompensationX2 ,
pTable:=ADR(st_PitchTableX2),
cbSize:=SIZEOF(st_PitchTableX2),
ReferenceAxis:=AxisRefInX2,
Desc:= st_DescPitchX2,
Compensation=>fCompensationValueX2,
Error=>bErrorX2,
ErrorId=>nErrorIdX2,
Active=>bActiveX2);
fbWritePosCorrectionX2(
Enable:=TRUE,
PositionCorrectionValue:=fCompensationValueX2,
CorrectionMode:= POSITIONCORRECTIONMODE_FAST,
Acceleration:= 500,
CorrectionLength:= ,
AxisRefIn:= AxisRefInX2,
AxisRefOut:= AxisRefOutX2,
Busy=> bLimitingX2,
Error=> ,
ErrorID=> ,
Limiting=> );
補償值生效時可在Axis_Enc的Online下監(jiān)控到:其Position值=Uncorrected值+Correction值。如果無補償值,則Correction值始終為0
有些時候由于機械特性不滿足等原因,需要對軸的兩個運動方向分別進(jìn)行補償,此時需建立兩個補償表,分別進(jìn)行補償,并修改全局變量中的st_DescPitchX2,在其參數(shù)中加入eDirection:=WorkingDirectionPlus和WorkingDirectionMinus,分別對X2的正向和負(fù)向進(jìn)行位置設(shè)定值補償。
3. 結(jié)語
對于TZ1001專機來說,還有同步軸(實際上是鏈接軸)、分度軸、電子齒輪等功能,由于篇幅原因就不一一贅述。本文講述的調(diào)試技術(shù)在常用的數(shù)控系統(tǒng)如SIEMENS 840D、FANUC 30i、Rexroth MTX都是通用的功能,很容易實現(xiàn),由于BECKHOFF CX的產(chǎn)品定位是運動控制系統(tǒng),所以需要一些間接手段才能實現(xiàn),且主要是通過PLC完成的。