配色: 字号:
halt库卡_怎么编写库卡KUKA机器人专业程序,高级写法案例
2023-07-16 | 阅:  转:  |  分享 
  
halt库卡_怎么编写库卡KUKA机器?专业程序,?级写法案例

程序写法案例分享

换抢盘抓抓?程序:

DEF Q1_PICKGRPPER( ) :程序名称

INI :系统初始化

PTP HOME Vel= 100 % DEFAULT :HOME原点

OUT 272 ''Grip2_Bracket_Open'' State=TRUE :输出272抓?2防尘盖打开信号为真

OUT 271 ''Grip2_Bracket_Cls'' State=FALSE :输出271抓?2防尘盖关闭信号为假

WAIT FOR ( IN 272 ''Grip2_Bracket_Opened'' ) :等待抓?2防尘盖打开到位输?信

号272

WAIT FOR ( NOT IN 263 ''ATC_Face'' ) :等待换抢盘?接触输?信号263为?

WAIT FOR ( IN 265 ''Grip2_In_Place'' ) :等待抓?2在位输?信号265

PTP P4 CONT Vel=100 % PDAT2 Tool[0] Base[0]

PTP P3 CONT Vel=50 % PDAT1 Tool[0] Base[0]

LIN P2 CONT Vel=0.2 m/s CPDAT2 Tool[0] Base[0]

LIN P1 Vel=0.1 m/s CPDAT1 Tool[0] Base[0]

WAIT FOR ( IN 263 ''ATC_Face'' ) :等待换抢盘?接触输?信号263

OUT 261 ''ATC_LOCK'' State=TRUE :输出换抢盘锁紧信号261为真

OUT 262 ''ATC_UNLOCK'' State=FALSE :输出换抢盘松开信号262为假

WAIT FOR ( IN 261 ''ATC_Locked'' ) :等待换抢盘锁紧到位输?信号261

RET=IOCTL("PNIO-CTRL",50,3) :恢复与抓?阀岛的通讯指令

WAIT Time=1 sec :等待1S

Harder2=true :将Harder2置位为真

LIN P6 Vel=0.2 m/s CPDAT4 Tool[3]:GRIPPER2 Base[0]

LIN P5 CONT Vel=0.2 m/s CPDAT3 Tool[3]:GRIPPER2 Base[0]

WAIT FOR ( NOT IN 265 ''Grip2_In_Place'' ) :等待抓?2在位输?信号265为假

LIN P8 CONT Vel=1 m/s CPDAT6 Tool[3]:GRIPPER2 Base[0]

LIN P7 CONT Vel=1 m/s CPDAT5 Tool[3]:GRIPPER2 Base[0]

PTP P9 CONT Vel=100 % PDAT4 Tool[3]:GRIPPER2 Base[0]

END

换抢盘放抓?程序

DEF Q1_PUTGRPPER( ) :程序名称

INI :系统初始化

OUT 271 ''Grip2_Bracket_Cls'' State=FALSE

OUT 272 ''Grip2_Bracket_Open'' State=TRUE

WAIT FOR ( IN 272 ''Grip2_Bracket_Opened'' )

WAIT FOR ( IN 269 ''Grip1_Bracket_Closed'' ) :等待抓?2防尘盖打开到位输?信号269

PTP P7 CONT Vel=100 % PDAT3 Tool[3]:GRIPPER2 Base[0]

PTP P3 CONT Vel=100 % PDAT1 Tool[3]:GRIPPER2 Base[0]

LIN P2 CONT Vel=0.2 m/s CPDAT2 Tool[3]:GRIPPER2 Base[0]

LIN P1 Vel=0.1 m/s CPDAT5 Tool[3]:GRIPPER2 Base[0]

WAIT FOR ( IN 265 ''Grip2_In_Place'' )

Harder2=false :将Harder2置位为假

Repeat :循环指令

RET=IOCTL("PNIO-CTRL",60,3) :断开与抓?阀岛的通讯指令

until (RET==0) :循环结束指令

WAIT FOR ( IN 263 ''ATC_Face'' )

OUT 261 ''ATC_LOCK'' State=FALSE

OUT 262 ''ATC_UNLOCK'' State=TRUE

WAIT FOR ( IN 262 ''ATC_Unlocked'' )

WAIT Time=1 sec

LIN P4 Vel=0.1 m/s CPDAT3 Tool[0] Base[0]

WAIT FOR ( NOT IN 263 ''ATC_Face'' )

LIN P5 CONT Vel=0.5 m/s CPDAT4 Tool[0] Base[0]

PTP P6 CONT Vel=100 % PDAT2 Tool[0] Base[0]

PTP P8 CONT Vel=100 % PDAT4 Tool[0] Base[0]

PTP HOME Vel= 100 % DEFAULT

OUT 271 ''Grip2_Bracket_Cls'' State=TRUE

OUT 272 ''Grip2_Bracket_Open'' State=FALSE

WAIT FOR ( IN 271 ''Grip2_Bracket_Closed'' )

OUT 271 ''Grip2_Bracket_Cls'' State=FALSE

END

抓?抓件程序:

DEF Q1_Pick_part( )

INI

$CYCFLAG[11]=$IN[357] OR $IN[359] :定义循环旗标

INTERRUPT DECL 101 WHEN $CYCFLAG[11] DO INT_101() :中断声明

INTERRUPT Off 101 :关中断101

PTP P1 Vel=100 % PDAT1 Tool[3]:GRIPPER2 Base[0]

OUT 349 ''Vac1_ON'' State=FALSE :输出真空信号249为假

UnClamp1 :抓?夹具打开

$ADVANCE=0

OUT 348 ''unclamp'' State=TRUE CONT :输出抓?打开信号348为真

OUT 347 ''clamp'' State=FALSE CONT :输出抓?夹紧信号347为假

$TIMER_STOP[6]=TRUE

$TIMER[6]=-10000

$TIMER_STOP[6]=FALSE

WAIT FOR ( $TIMER_FLAG[6]==TRUE ) OR (( NOT $IN[351] ) AND ( $IN[349] ))

WAIT FOR ( $TIMER_FLAG[6]==TRUE ) OR (( NOT $IN[355] ) AND ( $IN[353] ))

IF $TIMER_FLAG[6]==TRUE THEN

$TIMER_STOP[6]=TRUE

$OUT[76]=TRUE :输出抓?报警信号76为真

MsgQuit("Check If All Clamps Are Opened!", "Grip")

HALT

WAIT FOR ( NOT $IN[351] ) AND ( $IN[349] ) :等待抓?打开到位输?信号349

WAIT FOR ( NOT $IN[355] ) AND ( $IN[353] ) :等待抓?打开到位输?信号353

$OUT[76]=FALSE :输出抓?报警信号76为假

ENDIF

$ADVANCE=3

PinShift1 :抓?定位销伸出

$ADVANCE=0

OUT 346 ''pin_unshift'' State= FALSE CONT :输出定位销缩回信号346为假

OUT 345 ''pin_shift'' State= TRUE CONT :输出定位销伸出信号345为真

$TIMER_STOP[6]=TRUE

$TIMER[6]=-10000

$TIMER_STOP[6]=FALSE

WAIT FOR ( $TIMER_FLAG[6]==TRUE ) OR (( NOT $IN[345] ) AND ( $IN[347] ))

IF $TIMER_FLAG[6]==TRUE THEN

$TIMER_STOP[6]=TRUE

$OUT[76]=TRUE :输出抓?报警信号76为真

MsgQuit("Check If All Clamps Are Opened!", "Grip")

HALT

WAIT FOR ( NOT $IN[345] ) AND ( $IN[347] ) :等待抓?定位销伸出到位输?

信号347

$OUT[76]=FALSE

ENDIF

$ADVANCE=3

WAIT FOR ( IN 34 ''Entry OK 2'' ) :等待允许进?抓件信号34

OUT 42 ''Jig Non-Interference 2'' State=FALSE :输出夹具?涉信号42为假,发送

?涉

WAIT FOR ( IN 34 ''Entry OK 2'' ) :等待允许进?抓件信号34

PTP P2 CONT Vel=100 % PDAT2 Tool[3]:GRIPPER2 Base[0]

PTP P3 CONT Vel=100 % PDAT3 Tool[3]:GRIPPER2 Base[0]

PTP P4 CONT Vel=100 % PDAT4 Tool[3]:GRIPPER2 Base[0]

FIRST: :跳转指针

$OV_PRO=30 :改变速度的系统变量

INTERRUPT ON 101 :开中断101

$ADVANCE=0 :改变预读指针的系统变量

PTP P6 CONT Vel=100 % PDAT9 Tool[3]:GRIPPER2 Base[0]

$OV_PRO=10 :改变速度的系统变量

SEARCH() :调??程序

INTERRUPT OFF 101 :关中断101

NOpartcheck :判断料框是否有件的逻辑集合

WAIT FOR ( IN 1025 ''Always ON'' AND IN 357 ''part_check1'' ) :等待板件检测到

位信号

OUT 349 ''Vac1_ON'' State=TRUE :输出真空信号349为真

WAIT Time=1 sec :等待1S

Clamp1 :抓?夹具夹紧

$ADVANCE=0

OUT 347 ''clamp'' State=TRUE CONT

OUT 348 ''unclamp'' State=FALSE CONT

$TIMER_STOP[6]=TRUE

$TIMER[6]=-10000

$TIMER_STOP[6]=FALSE

WAIT FOR ( $TIMER_FLAG[6]==TRUE ) OR (( NOT $IN[349] ) AND ( $IN[351] ))

WAIT FOR ( $TIMER_FLAG[6]==TRUE ) OR (( NOT $IN[353] ) AND ( $IN[355] ))

IF $TIMER_FLAG[6]==TRUE THEN

$TIMER_STOP[6]=TRUE

$OUT[76]=TRUE

MsgQuit("Check If All Clamps Are Opened!", "Grip")

HALT

WAIT FOR ( NOT $IN[349] ) AND ( $IN[351] )

WAIT FOR ( NOT $IN[353] ) AND ( $IN[355] )

$OUT[76]=FALSE

ENDIF

$ADVANCE=3

$OV_PRO=30

LIN P7 CONT Vel=0.2 m/s CPDAT7 Tool[3]:GRIPPER2 Base[0]

LIN P8 CONT Vel=0.2 m/s CPDAT5 Tool[3]:GRIPPER2 Base[0]

LIN P9 CONT Vel=1 m/s CPDAT6 Tool[1]:GRIPPER1 Base[0]

$ADVANCE=3

$OV_PRO=20

PTP P11 CONT Vel=100 % PDAT5 Tool[1]:GRIPPER1 Base[0]

PTP P12 CONT Vel=100 % PDAT6 Tool[1]:GRIPPER1 Base[0]

PULSE 37 ''Job Complete 5'' State=TRUE Time=1 sec :发送?个2S的完成信号37

脉冲

OUT 42 ''Jig Non-Interference 2'' State=TRUE :输出?涉信号42为真,清除?涉

END

DEF SEARCH() :定义局部?程序SEARCH()

$ADVANCE=0

LIN P7 Vel=0.5 m/s CPDAT8 Tool[3]:GRIPPER2 Base[0]

LIN P13 Vel=0.5 m/s CPDAT10 Tool[3]:GRIPPER2 Base[0]

END

DEF INT_101() :定义局部?程序INT_101 ()

Brake F :系统停?指令

Resume :系统中断运?指令

END

抓?放件程序:

DEF Q1_PUT_PART( )

INI

PTP p1 CONT Vel=100 % PDAT2 Tool[3]:GRIPPER2 Base[0]

Inzone :?作允许进?

$ADVANCE=0

WAIT FOR ( IN 33 ''Entry OK 1'' ) CONT :等待允许进?放件信号33

OUT 41 ''Jig Non-Interference 1'' State=FALSE CONT :发?涉信号

WAIT FOR ( IN 33 ''Entry OK 1'' ) CONT :等待允许进?放件信号33

$ADVANCE=3

In_mb70rh_1 :发送机器?与机器?之间的?涉区信号

$ADVANCE=0

WAIT FOR ( IN 57 ''Robot Clear Zone 1'' ) CONT :等待机器??涉信号57

OUT 57 ''Robot Clear Zone 1'' State=FALSE CONT :输出机器??涉信号57为假发?涉

WAIT FOR ( IN 57 ''Robot Clear Zone 1'' ) CONT :等待机器??涉信号57

$ADVANCE=3

PTP p4 CONT Vel=100 % PDAT3 Tool[3]:GRIPPER2 Base[0]

PTP p5 CONT Vel=100 % PDAT4 Tool[3]:GRIPPER2 Base[0]

UnClamp1 :抓?夹具打开

$ADVANCE=0

OUT 348 ''unclamp'' State=TRUE CONT

OUT 347 ''clamp'' State=FALSE CONT

$TIMER_STOP[6]=TRUE

$TIMER[6]=-10000

$TIMER_STOP[6]=FALSE

WAIT FOR ( $TIMER_FLAG[6]==TRUE ) OR (( NOT $IN[351] ) AND ( $IN[349] ))

WAIT FOR ( $TIMER_FLAG[6]==TRUE ) OR (( NOT $IN[355] ) AND ( $IN[353] ))

IF $TIMER_FLAG[6]==TRUE THEN

$TIMER_STOP[6]=TRUE

$OUT[76]=TRUE

MsgQuit("Check If All Clamps Are Opened!", "Grip")

HALT

WAIT FOR ( NOT $IN[351] ) AND ( $IN[349] )

WAIT FOR ( NOT $IN[355] ) AND ( $IN[353] )

$OUT[76]=FALSE

ENDIF

$ADVANCE=3

LIN p6 CONT Vel=0.5 m/s CPDAT7 Tool[3]:GRIPPER2 Base[0]

LIN p7 CONT Vel=0.2 m/s CPDAT6 Tool[3]:GRIPPER2 Base[0]

LIN p14 CONT Vel=0.1 m/s CPDAT8 Tool[3]:GRIPPER2 Base[0]

LIN p8 Vel=0.1 m/s CPDAT5 Tool[3]:GRIPPER2 Base[0]

AGA:

MsgDialog(PCAnswer,"Part check ok?","TIPD",,,,,,,"NO","YES")

IF PCAnswer==2 then

GOTO AGA

ENDIF

IF PCAnswer==1 then

GOTO NEXT

ENDIF

NEXT:

OUT_mb70rh_1 :清除机器?与机器?之间的?涉区信号

$ADVANCE=0

OUT 57 ''Robot Clear Zone 1'' State=TRUE CONT

$ADVANCE=3

OUT 349 ''Vac1_ON'' State=FALSE

Outzone

$ADVANCE=0

OUT 49 ''Robot action request 1'' State=TRUE :输出机器?请求信号49为真

WAIT FOR ( IN 49 ''Action complete 1'' ) :等到请求应答完成输?信号

OUT 49 ''Robot action request 1'' State=FALSE :输出机器?请求信号49为假

$ADVANCE=3

PinUnShift1

$ADVANCE=0

OUT 346 ''pin_unshift'' State=TRUE CONT

OUT 345 ''pin_shift'' State=FALSE CONT

$TIMER_STOP[6]=TRUE

$TIMER[6]=-10000

$TIMER_STOP[6]=FALSE

WAIT FOR ( $TIMER_FLAG[6]==TRUE ) OR (( NOT $IN[347] ) AND ( $IN[345] ))

IF $TIMER_FLAG[6]==TRUE THEN

$TIMER_STOP[6]=TRUE

$OUT[76]=TRUE

MsgQuit("Check If All Clamps Are Opened!", "Grip")

HALT

WAIT FOR ( NOT $IN[347] ) AND ( $IN[345] )

$OUT[76]=FALSE

ENDIF

$ADVANCE=3

In_mb70rh_1 :发送机器?与机器?之间的?涉区信号

$ADVANCE=0

WAIT FOR ( IN 57 ''Robot Clear Zone 1'' ) CONT

OUT 57 ''Robot Clear Zone 1'' State=FALSE CONT

WAIT FOR (IN 57 ''Robot Clear Zone 1'' ) CONT

$ADVANCE=3

LIN p9 CONT Vel=0.2 m/s CPDAT2 Tool[3]:GRIPPER2 Base[0]

WAIT FOR ( NOT IN 357 '''' AND NOT IN 359 '''' )

LIN p10 CONT Vel=1 m/s CPDAT3 Tool[3]:GRIPPER2 Base[0]

LIN p11 CONT Vel=2 m/s CPDAT4 Tool[3]:GRIPPER2 Base[0]

PTP p12 CONT Vel=100 % PDAT9 Tool[3]:GRIPPER2 Base[0]

PULSE 38 ''Job Complete 6'' State=TRUE Time=1 sec

OUT_mb70rh_1 :清除机器?与机器?之间的?涉区信号

$ADVANCE=0

OUT 57 ''Robot Clear Zone 1'' State=TRUE CONT

$ADVANCE=3

PTP p13 CONT Vel=100 % PDAT10 Tool[3]:GRIPPER2 Base[0]

END

换抢盘抓枪程序:

DEF PickGun1( )

INI

OUT 268 ''Gun1_Bracket_Open'' State=TRUE CONT

OUT 267 ''Gun1_Bracket_Cls'' State=FALSE CONT

WAIT FOR ( IN 268 ''Gun1_Bracket_Opened'' ) CONT

WAIT FOR ( IN 264 ''Gun1_In_Place'' ) CONT

WAIT FOR ( NOT IN 263 ''ATC_Face'' )

PTP HOME Vel= 100 % DEFAULT

PTP P4 CONT Vel=100 % PDAT1 Tool[0] Base[0]

PTP P8 CONT Vel=100 % PDAT4 Tool[0] Base[0]

LIN P3 Vel=0.2 m/s CPDAT3 Tool[0] Base[0]

LIN P2 CONT Vel=0.1 m/s CPDAT2 Tool[0] Base[0]

LIN P1 Vel=0.1 m/s CPDAT1 Tool[0] Base[0]

WAIT FOR ( IN 263 ''ATC_Face'' )

OUT 261 ''ATC_LOCK'' State=TRUE

OUT 262 ''ATC_UNLOCK'' State=FALSE

WAIT FOR ( IN 261 ''ATC_Locked'' )

ServoGun Couple=1 :焊钳耦合指令

OUT 406 ''RESET_FAULT_WITH_WF'' State=TRUE :输出复位焊机报警信号406为真

WAIT Time=1 sec

WAIT FOR ( NOT IN 406 ''WELDING_FAULT'' ) :等待焊机报警俗输?信号406为?

OUT 406 ''RESET_FAULT_WITH_WF'' State=FALSE :输出复位焊机报警信号406为假

WAIT FOR ( IN 257 ''WaterFlow_OK'' ) :等待输??信号257

WGUN1=TRUE :将WGUN1置位为真

LIN P9 Vel=0.1 m/s CPDAT6 Tool[2]:GUN Base[0]

LIN P5 Vel=0.1 m/s CPDAT4 Tool[2]:GUN Base[0]

LIN P6 CONT Vel=2 m/s CPDAT5 Tool[2]:GUN Base[0]

PTP P7 CONT Vel=100 % PDAT3 Tool[2]:GUN Base[0]

END

换抢盘放枪程序:

DEF PutGun1( )

INI

OUT 268 ''Gun1_Bracket_Open'' State=TRUE CONT

OUT 267 ''Gun1_Bracket_Cls'' State=FALSE CONT

WAIT FOR ( IN 268 ''Gun1_Bracket_Opened'' ) CONT

WAIT FOR ( NOT IN 264 ''Gun1_In_Place'' )

PTP P1 CONT Vel=100 % PDAT1 Tool[2]:GUN Base[0]

PTP P5 CONT Vel=100 % PDAT2 Tool[2]:GUN Base[0]

LIN P4 CONT Vel=1 m/s CPDAT3 Tool[2]:GUN Base[0]

LIN P3 Vel=0.1 m/s CPDAT2 Tool[2]:GUN Base[0]

LIN P9 Vel=0.1 m/s CPDAT8 Tool[2]:GUN Base[0]

LIN P2 Vel=0.1 m/s CPDAT7 Tool[2]:GUN Base[0]

WGUN1=false

WAIT FOR ( IN 263 ''ATC_Face'' )

ServoGun Decouple=1 :焊钳脱开指令

OUT 262 ''ATC_UNLOCK'' State=TRUE

OUT 261 ''ATC_LOCK'' State=FALSE

WAIT FOR ( IN 262 ''ATC_Unlocked'' )

WAIT Time=1 sec

LIN P6 Vel=0.1 m/s CPDAT4 Tool[0] Base[0]

WAIT FOR ( NOT IN 263 ''ATC_Face'' )

LIN P7 CONT Vel=0.5 m/s CPDAT5 Tool[0] Base[0]

LIN P8 CONT Vel=2 m/s CPDAT6 Tool[0] Base[0]

PTP P10 CONT Vel=100 % PDAT4 Tool[0] Base[0]

OUT 267 ''Gun1_Bracket_Cls'' State=TRUE

OUT 268 ''Gun1_Bracket_Open'' State=FALSE

WAIT FOR ( IN 267 ''Gun1_Bracket_Closed'' )

OUT 267 ''Gun1_Bracket_Cls'' State=FALSE

PTP HOME Vel= 100 % DEFAULT

END

焊接程序:

DEF Q1( )

INI

INI() :信号初始化?程序

PTP HOME Vel= 100 % DEFAULT

Inzone :?作进?允许信号处理

$ADVANCE=0

WAIT FOR ( IN 33 ''Entry OK 1'' ) CONT :等待焊接进?允许信号33

OUT 41 ''Jig Non-Interference 1'' State=FALSE CONT :发送?涉信号

WAIT FOR ( IN 33 ''Entry OK 1'' ) CONT :等待焊接进?允许信号33

$ADVANCE=3

PTP P1 CONT Vel=100 % PDAT1 Tool[1]:GUN1 Base[0]

PTP P2 CONT Vel=100 % PDAT2 Tool[1]:GUN1 Base[0]

PTP P3 CONT Vel=100 % PDAT3 Tool[1]:GUN1 Base[0]

PTP SG1 Vel=100 % PDAT4 ProgNr=1 ServoGun=1 Cont=CLS OPN Part=2 mm Force=2.5

kN ApproxDist=5 mm SpotOffset=0 mm Tool[1]:GUN1 Base[0]

PTP SG2 Vel=100 % PDAT5 ProgNr=1 ServoGun=1 Cont=CLS OPN Part=2 mm Force=2.2

kN ApproxDist=5 mm SpotOffset=0 mm Tool[1]:GUN1 Base[0]

PTP SG3 Vel=100 % PDAT6 ProgNr=1 ServoGun=1 Cont=CLS OPN Part=2 mm Force=2.2

kN ApproxDist=5 mm SpotOffset=0 mm Tool[1]:GUN1 Base[0]

PTP P34 CONT Vel=100 % PDAT56 Tool[1]:GUN1 Base[0]

PTP SG4 Vel=100 % PDAT7 ProgNr=1 ServoGun=1 Cont=CLS OPN Part=2 mm Force=2.2

kN ApproxDist=5 mm SpotOffset=0 mm Tool[1]:GUN1 Base[0]

PTP P4 CONT Vel=100 % PDAT8 Tool[1]:GUN1 Base[0]

PTP P5 CONT Vel=100 % PDAT9 Tool[1]:GUN1 Base[0]

PTP P6 CONT Vel=100 % PDAT10 Tool[1]:GUN1 Base[0]

PTP P7 CONT Vel=100 % PDAT11 Tool[1]:GUN1 Base[0]

PTP P8 CONT Vel=100 % PDAT12 Tool[1]:GUN1 Base[0]

PTP P9 CONT Vel=100 % PDAT13 Tool[1]:GUN1 Base[0]

PTP SG5 Vel=100 % PDAT14 ProgNr=1 ServoGun=1 Cont=CLS OPN Part=2.5 mm

Force=2.5 kN ApproxDist=5 mm SpotOffset=0 mm Tool[1]:GUN1 Base[0]

PTP SG6 Vel=100 % PDAT15 ProgNr=1 ServoGun=1 Cont=CLS OPN Part=2.5 mm

Force=2.5 kN ApproxDist=5 mm SpotOffset=0 mm Tool[1]:GUN1 Base[0]

PTP SG7 Vel=100 % PDAT16 ProgNr=1 ServoGun=1 Cont=CLS OPN Part=2.5 mm

Force=2.5 kN ApproxDist=5 mm SpotOffset=0 mm Tool[1]:GUN1 Base[0]

PTP P26 CONT Vel=100 % PDAT48 Tool[1]:GUN1 Base[0]

PTP P27 CONT Vel=100 % PDAT49 Tool[1]:GUN1 Base[0]

PTP P28 CONT Vel=100 % PDAT50 Tool[1]:GUN1 Base[0]

PTP P29 CONT Vel=100 % PDAT51 Tool[1]:GUN1 Base[0]

PTP P31 CONT Vel=100 % PDAT53 Tool[1]:GUN1 Base[0]

PTP SG11 Vel=100 % PDAT22 ProgNr=1 ServoGun=1 Cont=CLS OPN Part=2.5 mm

Force=2.5 kN ApproxDist=5 mm SpotOffset=0 mm Tool[1]:GUN1 Base[0]

PTP SG12 Vel=100 % PDAT23 ProgNr=1 ServoGun=1 Cont=CLS OPN Part=2.5 mm

Force=2.5 kN ApproxDist=5 mm SpotOffset=0 mm Tool[1]:GUN1 Base[0]

PTP P12 CONT Vel=100 % PDAT24 Tool[1]:GUN1 Base[0]

PTP SG13 Vel=100 % PDAT25 ProgNr=1 ServoGun=1 Cont=CLS OPN Part=2.5 mm

Force=2.5 kN ApproxDist=5 mm SpotOffset=0 mm Tool[1]:GUN1 Base[0]

PTP SG14 Vel=100 % PDAT26 ProgNr=1 ServoGun=1 Cont=CLS OPN Part=2.5 mm

Force=2.5 kN ApproxDist=5 mm SpotOffset=0 mm Tool[1]:GUN1 Base[0]

PTP SG15 Vel=100 % PDAT27 ProgNr=1 ServoGun=1 Cont=CLS OPN Part=2.5 mm

Force=2.5 kN ApproxDist=5 mm SpotOffset=0 mm Tool[1]:GUN1 Base[0]

PTP SG16 Vel=100 % PDAT28 ProgNr=1 ServoGun=1 Cont=CLS OPN Part=2.5 mm

Force=2.5 kN ApproxDist=5 mm SpotOffset=0 mm Tool[1]:GUN1 Base[0]

PTP SG17 Vel=100 % PDAT29 ProgNr=1 ServoGun=1 Cont=CLS OPN Part=2.5 mm

Force=2.5 kN ApproxDist=5 mm SpotOffset=0 mm Tool[1]:GUN1 Base[0]

PTP P13 CONT Vel=100 % PDAT30 Tool[1]:GUN1 Base[0]

PTP SG18 Vel=100 % PDAT31 ProgNr=1 ServoGun=1 Cont=CLS OPN Part=2.5 mm

Force=2.5 kN ApproxDist=5 mm SpotOffset=0 mm Tool[1]:GUN1 Base[0]

PTP SG19 Vel=100 % PDAT32 ProgNr=1 ServoGun=1 Cont=CLS OPN Part=2.5 mm

Force=2.5 kN ApproxDist=5 mm SpotOffset=0 mm Tool[1]:GUN1 Base[0]

PTP SG20 Vel=100 % PDAT33 ProgNr=1 ServoGun=1 Cont=CLS OPN Part=2.5 mm

Force=2.5 kN ApproxDist=5 mm SpotOffset=0 mm Tool[1]:GUN1 Base[0]

PTP SG21 Vel=100 % PDAT34 ProgNr=1 ServoGun=1 Cont=CLS OPN Part=2.5 mm

Force=2.5 kN ApproxDist=5 mm SpotOffset=0 mm Tool[1]:GUN1 Base[0]

PTP P14 CONT Vel=100 % PDAT35 Tool[1]:GUN1 Base[0]

PTP P15 CONT Vel=100 % PDAT36 Tool[1]:GUN1 Base[0]

PTP P16 CONT Vel=100 % PDAT37 Tool[1]:GUN1 Base[0]

PTP P17 CONT Vel=100 % PDAT38 Tool[1]:GUN1 Base[0]

PTP P32 CONT Vel=100 % PDAT54 Tool[1]:GUN1 Base[0]

PTP P18 CONT Vel=100 % PDAT39 Tool[1]:GUN1 Base[0]

PTP P19 CONT Vel=100 % PDAT40 Tool[1]:GUN1 Base[0]

PTP SG22 Vel=100 % PDAT41 ProgNr=1 ServoGun=1 Cont=CLS OPN Part=2.5 mm

Force=2.5 kN ApproxDist=5 mm SpotOffset=0 mm Tool[1]:GUN1 Base[0]

PTP P20 CONT Vel=100 % PDAT42 Tool[1]:GUN1 Base[0]

PTP P35 CONT Vel=100 % PDAT57 Tool[1]:GUN1 Base[0]

>>>>>>>>>>>>>>>><<<<<<<<<<<<

PTP P22 CONT Vel=100 % PDAT44 Tool[1]:GUN1 Base[0]

PTP P48 CONT Vel=100 % PDAT72 Tool[1]:GUN1 Base[0]

Outzone :?位完成信号处理

$ADVANCE=0

OUT 41 ''Jig Non-Interference 1'' State=TRUE CONT :清除?涉信号

PULSE 34 ''Job Complete 2'' State=TRUE CONT Time=2 sec :输出?个2S的脉冲完

成信号

$ADVANCE=3

PTP P33 CONT Vel=100 % PDAT55 Tool[1]:GUN1 Base[0

PTP P24 CONT Vel=100 % PDAT46 Tool[1]:GUN1 Base[0

TIP :修磨及更换电极帽的计数处理

;Tip dress or change

TipD=TipD+1 :修磨计数

IF (TipD>=10) THEN :修磨的判断

TipdressReq=TRUE

TipC=TipC+1 :更换电极帽计数

TipD=0

ENDIF

IF (TipC>=10) THEN :更换电极帽的判断

TipchangeReq=TRUE

TipC=0

ENDIF

IF Tipdressreq OR Tipchangereq then :对修磨程序调?的判断

TIPDRESS() :调?修磨程序

ENDIF

PTP HOME Vel= 100 % DEFAULT

END

修磨程序:

DEF TIPDRESS( )

INI

PTP HOME Vel= 100 % DEFAULT

OUT 26 ''Tip Dress Running'' State=TRUE :输出焊钳修磨信号26

OUT 408 ''CHK_WELD'' State=FALSE :输出焊机是否通电信号408为假,切断焊接电源

PTP P1 CONT Vel=100 % PDAT1 Tool[1]:GUN1 Base[0]

PTP P2 CONT Vel=100 % PDAT2 Tool[1]:GUN1 Base[0]

PTP P3 CONT Vel=100 % PDAT3 Tool[1]:GUN1 Base[0]

PTP P4 CONT Vel=100 % PDAT4 Tool[1]:GUN1 Base[0]

Tipchange:更换电极帽部分

IF (TipchangeReq==true) then

OUT 257 ''W.A.Unit_Sol_ON'' State=FALSE :输出断?信号257为假,断?

WAIT FOR ( NOT IN 257 ''WaterFlow_OK'' ) :等待?压信号257没有输?

OUT 27 ''Tip Change Position'' State=TRUE :输出焊钳在电极帽更换位置信号为真

AG: :跳转指针

MsgDialog(TipAnswer,"Tip change complete?","TIPD",,,,,,,"NO","YES")

IF (TipAnswer==1) then

PULSE 28 ''Tip Change Complete'' State=TRUE Time=2 sec :输出脉冲为2S的电极

帽更换完成信号

ENDIF

IF (TipAnswer==2) then

GOTO AG

ENDIF

INIT ServoGun=1 New :电极初始化

OUT 27 ''Tip Change Position'' State=FALSE :输出焊钳在电极帽更换位置信号为假

OUT 257 ''W.A.Unit_Sol_ON'' State=TRUE :输出断?信号257为真,通?

WAIT FOR ( IN 257 ''WaterFlow_OK'' ) :等待?压信号257有输?

TipchangeReq=FALSE :将TipchangeReq置零

ENDIF

PTP P5 CONT Vel=100 % PDAT5 Tool[1]:GUN1 Base[0]

PTP P9 Vel=100 % PDAT10 Tool[1]:GUN1 Base[0]

PTP P6 Vel=100 % PDAT7 Tool[1]:GUN1 Base[0]

OUT 408 ''CHK_WELD'' State=FALSE :输出焊机是否通电信号408为假,切断焊接电源

OUT 258 ''TipdresserON/OFF'' State=TRUE :输出修磨器旋转信号为真

WAIT FOR ( NOT IN 408 ''CHK_WELD'' ) :等待焊机焊接电源是否切断信号

PTP SG1 Vel=100 % PDAT6 TipDress ProgNr=1 ServoGun=1 Part=3.8 mm Force=1.5

kN ApproxDist=5 mm SpotOffset=0 mm Tool[1]:GUN1 Base[0]

OUT 258 ''TipdresserON/OFF'' State=FALSE :输出修磨器旋转信号为假

PTP P7 Vel=100 % PDAT8 Tool[1]:GUN1 Base[0]

PTP P8 Vel=100 % PDAT9 Tool[1]:GUN1 Base[0]

INIT ServoGun=1 Same :电极周期性初始化

PTP P10 Vel=100 % PDAT11 Tool[1]:GUN1 Base[0]

PTP P11 Vel=100 % PDAT12 Tool[1]:GUN1 Base[0]

PTP P12 Vel=100 % PDAT13 Tool[1]:GUN1 Base[0]

OUT 26 ''Tip Dress Running'' State=FALSE :输出焊钳修磨信号26为假

OUT 408 ''CHK_WELD'' State=TRUE :输出焊机通电信号,给焊枪通电

TipDressReq=FALSE 将TipDressReq置零

PTP P13 Vel=100 % PDAT14 Tool[1]:GUN1 Base[0]

PTP HOME Vel= 100 % DEFAULT

END

献花(0)
+1
(本文系考试资料文...原创)