摘要:應用BECKHOFF CX1020運動控制系統實現TZ1001工業CT專機的主要控制功能,如閉環控制、NC程序運行、HMI監控和雙向位置精度補償等。
TZ1001高能X射線工業DR/CT快速檢測專機由兩個同步運行的加速器X1和探測器X2運行軸、分度B軸、探測微動調整W軸和工件定位移動X3軸構成,其中X1、X2、B、W均為伺服軸,X1、X2軸行程10500mm,X3軸行程7500mm,設備對同步定位、重復定位、分度等精度均有較高要求。
1. 系統配置
選用具有較高性能CPU的嵌入式PC模塊CX1020,帶TwinCAT PLC/NCI軟件,通過EtherCAT總線與I/O模塊、AX5000系列伺服驅動裝置通訊,EK1110是EtherCAT總線的擴展端子模塊,它與前一段EtherCAT的末端相連,可將EtherCAT電纜束的電氣隔離長度增加到100米,并將E_bus信號轉換為100BASE-TX以太網信號。系統配置如圖1所示。
圖1 TZ1001控制系統配置圖
AX5206是雙軸2×6A伺服驅動裝置,驅動AM3000系列伺服電機,通過EtherCAT與CX1020直接通訊,所有的組態參數與動態數據均通過EtherCAT與PLC、NC實現數據交換。AX5200系列雙軸伺服驅動裝置有一個特點,它的兩個通道的驅動電流可以軟分配,例如對AX5206來說,可以是A通道的負載電流為9A,B通道的負載電流為3A,只要總的工作電流不超過2×6A即可。各軸的行程限位、參考點等直接接入AX5000,也可接入PLC的I/O模塊。
X1、X2軸位置測量選用Renishaw LM10磁柵尺,其中X1的LM10方波信號通過RS422接入ELCO EMA信號分配器分為兩路隔離輸出,一路接入EL5101增量編碼器接口模塊,實現閉環控制,另一路作為X光機掃描觸發模塊的觸發信號。
HMI選用CP6909面板,其最大分辨率為1280×1024,帶有DVI/USB擴展接口,可通過USB-E和DVI-E連接至CX的DVI/USB模塊,可通過軟件組態實時監控系統工作狀態,其與USB/DVI的距離支持最長50米。
2. 技術要點
倍福CX運動控制系統是基于PC的軟PLC和NC產品,控制上以PLC為核心,主要的NC功能均通過PLC庫文件中的相應功能塊的編程實現。CX的PLC是符號表編程,NC的參數和狀態可以通過通道和軸接口信號直接在PLC中編程,例如旋轉軸B(軸4)的實際角度變量值為axis4.NCtoPLC.fModuloPoslst。所有I/O點及一些通用的中間變量信號可以定義為全局變量,在任何程序塊中均可使用。對于一些對掃描周期要求較短的程序塊(如位置精度補償塊等),可以設置獨立任務并定義其優先級和掃描周期。
2.1 閉環控制
LM10磁柵尺的分辨率有1um、2um、5um、10um、20um、50um六種,計數頻率有250kHz、500kHz、1000kHz、2000kHz、8333kHz五種。而EMA的最大工作頻率是250kHz,六種分辨率的LM10磁柵尺在250kHz頻率時對應的最大運行速度分別是7.8m/min、15m/min、37.8m/min、76m/min、76m/min、47m/min,現X1、X2軸的最大運行速度要求15m/min,所以應選擇分辨率為5um計數頻率最大250kHz的LM10磁柵尺。LM10的9針D型插頭與EL5101的各端子信號分配關系如表1:
表1:LM10磁柵尺與EL5101編碼器模塊的信號對應關系
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連接好信號線后就可以進行軟件調試了,打開NC Configuration下Axes中Axisn的Axis_Enc下的NC_Encoder頁面并設置:
Type:Encoder(KL5101/KL5111/IP5109/EL5101/EL5151/Profile MDP 511)
Link To (all type):Term 2 (EL5101) # ’MDP 510’
軸傳動比可以在Parameter下的Scaling Factor(單位mm/INC)中設置,其數值表示每個脈沖對應的軸行程計算值。
2.2 NC程序執行
雖然該專機是上位機定位與簡單聯動,不需要運行工件程序,但做位置精度檢測和調試時還是需要NC程序執行功能,而TwinCAT的設計理念是運動控制系統,沒有設計專門的NC加工MMC界面,需要通過System Manager來做一些處理。
系統默認在CF卡上僅有一個NC程序STADION.NC,為了方便需一次性加入將要用的程序??赏ㄟ^CP6909或外接顯示器對CX進行操作,在Windows CE或XP下運行“explorer.exe”進入資源管理器,然后進入harddisk\TwinCAT\CNC目錄,可以看到STADION.NC等文件,通過COPY生成幾個新文件再重命名,如X1comp.NC等。
在System Manager的NC Task 1 SAF下右鍵激活Append Channel,在Channel 2下的Group 5的3D Online中設置各對應的軸號,并設置倍率Override,然后在Channel2_Itp下的Editor頁面點擊Browse打開已生成的X1comp.NC文件,修改其內容并F9存盤、F7裝載文件,最后按F5運行程序即可。
2.3 HMI面板
若要CP面板顯示CX的頁面,則先激活PLC Control中Project菜單下的Option選項窗口,并選擇TwinCAT項中的Enable CE Target Visualization并激活。若要顯示中文,則需安裝中文字體,目前僅支持宋體。
在Visualizations中直接建立頁面,其頁面中直接使用PLC或NCTOPLC中的變量,載入CX后,通過CP6909直接顯示,CP6909是不帶CPU的面板,相當于CX的顯示器。如果選用帶CPU的控制面板,則頁面程序需載入面板,通過EtherCAT或以太網通訊來顯示。
其HMI畫面編輯比較方便,但功能較簡單,支持的數據類型比較全,例如%.3f表示小數點后保留3位小數的實數,%d表示整數等。
2.4 雙向位置精度補償
位置精度補償可調用PLC庫TCNC.lib中的FB PositionCompensation和FB WritePositionCorrection來實現,對于需補償的軸應修改其Parameter下Other setting下的“Position Correction…”值為“TRUE”,使補償值修改位置給定有效。
值得注意的是,TCNC.lib庫中的軸數據結構類型是NCTOPLC_AXLESTRUCT和PLCTONC_AXLESTRUCT,而不是TCMC2.lib中AXIS_REF數據類型,所以PLC程序中的有關MC的功能只能調用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下監控到:其Position值=Uncorrected值+Correction值。如果無補償值,則Correction值始終為0
有些時候由于機械特性不滿足等原因,需要對軸的兩個運動方向分別進行補償,此時需建立兩個補償表,分別進行補償,并修改全局變量中的st_DescPitchX2,在其參數中加入eDirection:=WorkingDirectionPlus和WorkingDirectionMinus,分別對X2的正向和負向進行位置設定值補償。
3. 結語
對于TZ1001專機來說,還有同步軸(實際上是鏈接軸)、分度軸、電子齒輪等功能,由于篇幅原因就不一一贅述。本文講述的調試技術在常用的數控系統如SIEMENS 840D、FANUC 30i、Rexroth MTX都是通用的功能,很容易實現,由于BECKHOFF CX的產品定位是運動控制系統,所以需要一些間接手段才能實現,且主要是通過PLC完成的。