一 ,伺服焊钳USE_R的使用:
在调用的USER程序中:Tech_ EZSP Zange = Nr1 Service ProgNr = X Offset = 0 [1/10 mm] Weg = 0 [1/10 mm] S-Punkt = Y Fzg-Typ =NP7=F78
ProgNr = X 的含义: zs焊钳程序号的设置
X=1-10 用于压力的测量 (ZS1-ZS4)
X=11-20 用于检查电流测量(ZS1-ZS4)
X=21-30 用于更换电极帽之前的力夹紧(ZS1-ZS4)
X=31-40 用于电极帽的铣削(ZS1-ZS4)
X=41-50 用于电极帽的***铣削后的测量焊接 (ZS1-ZS4)
X=51-60 用于电极帽的正常铣削后的测量焊接 (ZS1-ZS4)
X= 98 手动功能
X= 99 选择焊接点
X= 100-255 选择带零件监控的焊接点程序
S-Punkt = Y的含义: sk焊接控制器的焊点号的设置
Y=1-10 用于压力的测量 (ZS1-ZS4)
Y=11-20 用于检查电流测量(ZS1-ZS4)
Y=21-30 用于更换电极帽之前的力夹紧(ZS1-ZS4)
Y=31-40 用于电极帽的铣削(ZS1-ZS4)
Y=41-50 用于电极帽的***铣削后的测量焊接 (ZS1-ZS4)
Y=51-60 用于电极帽的正常铣削后的测量焊接 (ZS1-ZS4)
Y= 100 – 65534 焊点号
///////////////////////////////////////////////////////////////////////
//////////////////////////////////////////////////////////////////////
当P1=10 是普通焊接程序程序 当P1=10时该点的USER程序会开启轨迹自动补偿方式。
USR_ADV: 前置运行
IF $IN[I_SZ1_EK_io] THEN
$FLAG[F_SZ_AH_KOMP]=TRUE
MyCorrValue=GetCorrValue(Corr1_FirstBit) 电极补偿值计算
MyCorrOFF=(Offset*0.1) 补偿基础值
SZ1_EK_Wert=MyCorrValue
MyCorr=$NULLframe 坐标值清0
IF (($PRO_MODE==#GO) OR ($EXT)) THEN 外部自动状态
MyCorr.X=-(MyCorrValue+MyCorrOff) 将补偿值存在X方向
ELSE
MyCorr.X=-(MyCorrValue)
ENDIF
IF (VW_MPARA_ACT.base_NO > 0) THEN VW_MPARA_ACT:DAT文件工作状态
SWITCH base_TYPE[VW_MPARA_ACT.base_NO] 执行程序中用的base几 例:1
CASE #TCP
CONTINUE
$base=$base:MyCorr
DEFAULT
CONTINUE 是1时
$TOOL=$TOOL:MyCorr 工具坐标进行改变。
ENDSWITCH
ELSE
CONTINUE
$TOOL=$TOOL:MyCorr
ENDIF
IF B_SK1_FRG_Ge THEN 电极帽更换
B_SK1_FRG_Ge=FALSE
CONTINUE
MyCorrGeo_1=(MyCorrValue*SZ1_Z1_AHV) SZ1_Z1_AHV=2.0
ENDIF
IF ($softplcint[1]==7) AND AH_Komp THEN
CONTINUE
IF NOT $FLAG[F_SZ1_Anw_SF] AND NOT $FLAG[F_SZ1_Anw_NF] AND (($PRO_MODE==#GO)OR ($EXT)) THEN 不铣削,程序运行,外部自动
$FLAG[F_SZ1_Anw_SF]=F78 $FLAG[F_SZ1_Anw_NF]=79
CONTINUE
act_P1.E1=(act_P1.E1-0.0) act_P1当前位置E1方向不改变
ENDIF
CONTINUE
IF (($PRO_MODE==#GO) OR ($EXT)) THEN 程序运行,外部自动
CONTINUE
act_P1.E1=(act_P1.E1-(MyCorrValue*SZ1_Z1_AHV)) 焊前E1轴的补偿
MyTest=act_P1.E1 补偿力度更大是X方向的2倍
ENDIF
IF (VW_MPARA_ACT.MOVE_TYPE==#PTP_MOTION) THEN
CONTINUE 如果当前的运行模式是PTP 就执行当前的PTP轨迹
PTP act_P1
ENDIF
IF (VW_MPARA_ACT.MOVE_TYPE==#PATH_MOTION) THEN
CONTINUE 如果当前的运行模式是LIN就执行当前的LIN轨迹
LIN act_P1
ENDIF
ENDIF
------------------------
DEFFCT REAL GetCorrValue(MyFirstBit:OUT) 计算伺服焊钳反馈电极补偿值
INT MyFirstBit
INT MyValue
INT N
INT MyMask
MyValue=0
MyMask=1
FOR N=MyFirstBit TO (MyFirstBit + 7)
CONTINUE
IF $IN[N] THEN 从E729-E736 伺服焊钳反馈补偿值
MyValue=MyValue+MyMask
ENDIF
MyMask=MyMask*2
ENDFOR
RETURN(MyValue*0.1)
ENDFCT
-------------------------------------
传输P值
ELSE
CONTINUE
Prog_Nr_SZ1=PAR2
CONTINUE
SK1_P_Nr=PAR5
CONTINUE
P_PktNr_SPS=PAR5
CONTINUE
IF (Prog_Nr_SZ1>90) THEN
CONTINUE
Fzg_Typ_SZ1=P***
CONTINUE
SK1_Fzg_Typ=P***
CONTINUE
$OUT[O_SK1_Sensor]=FALSE
ELSE
CONTINUE
Fzg_Typ_SZ1=0
CONTINUE
SK1_Fzg_Typ=0
CONTINUE
$OUT[O_SK1_Sensor]=FALSE
ENDIF
ENDIF
------------------------------------------------------------------
USR_TRIG: 触发SPS指令
Prog_Nr_SZ1=PAR2 传输P值
Fzg_Typ_SZ1=P***
SK1_P_Nr=PAR5
SK1_Fzg_Typ=P***
P_PktNr_SPS=PAR5
$OUT[O_SK1_Sensor]=FALSE
WAIT SEC 0.1 等待0.1秒
----------------------------------------------------------------------
USR_MAIN: 到达该点之后执行
X方向的补偿:
PAR4:Weg = 0 [1/10 mm] 工具的补偿
IF (($PRO_MODE==#GO) OR ($EXT)) THEN
Weg=PAR4
MyCorrWeg=$NULLframe
MyCorrWeg.X=-(Weg*0.1)
IF (Weg>9) THEN
PTP $Pos_act:MyCorrWeg C_PTP
ENDIF 执行完当前轨迹后通过Weg值移动当前位置的X方向
ENDIF