机械手自动化程序Word文档下载推荐.docx
《机械手自动化程序Word文档下载推荐.docx》由会员分享,可在线阅读,更多相关《机械手自动化程序Word文档下载推荐.docx(29页珍藏版)》请在冰豆网上搜索。
Makeyourmodificationshere
ENDFOLD(USERINI)
GLOBALINTERRUPTDECL4WHEN$IN[10]==FALSEDOItrpt1()
GLOBALINTERRUPTDECL5WHEN$IN[11]==FALSEDOItrpt1()
INTERRUPTDECL6WHEN$IN[9]==TRUEDOItrpt1();
地轨异常进入中断
INTERRUPTON6;
开地轨监视中断6
IFNOTGripper_ChkStatus(1,"
C"
)THEN
Gripper_SetStatus(1,"
O"
)
Part0InLeft=FALSE
Part2InLeft=FALSE
ENDIF
IFNOTGripper_ChkStatus(2,"
Gripper_SetStatus(2,"
Part1InRight=FALSE
FORl=1TO14
$OUT[l]=FALSE
ENDFOR;
此循环语句在初始化时把所有端口清零复位。
IF$IN[5]THEN
Machine1_OnlyDrop=TRUE
Machine2_OnlyDrop=TRUE;
机台1有首件信号时,机台1与机台2第一次响应只放标志位置1
ELSE
Machine1_OnlyDrop=FALSE
Machine2_OnlyDrop=FALSE
$FLAG[8]=FALSE;
FLAG[8]是干什么用的?
ENDFOLD(INI);
初始化完成
$OV_PRO=70;
限定系统运行速度
FOLDPTPHOMEVel
$BWDSTART=FALSE
PDAT_ACT=PDEFAULT
FDAT_ACT=FHOME
BAS(#PTP_PARAMS,100)
$H_POS=XHOME
PTPXHOME
ENDFOLD
IF$IN_HOMETHEN
$OUT[5]=FALSE
$OUT[8]=FALSE
$OUT[11]=FALSE
LOOP
WAITSEC0.05
IF$IN[1]ANDNOTPart0InLeftANDGripper_ChkStatus(3,"
)THENToPick_Search()
ENDIF
IFPart0InLeftAND($IN[3]ORMachine1_OnlyDrop)ANDGripper_ChkStatus(1,"
)ANDGripper_ChkStatus(2,"
Machine1()
IFPart1InRightAND($IN[6]ORMachine2_OnlyDrop)ANDGripper_ChkStatus(2,"
)ANDGripper_ChkStatus(1,"
Machine2()
IFPart2InLeftAND($IN[8]ORMachine3_OnlyDrop)ANDGripper_ChkStatus(1,"
Machine3()
ENDLOOP
END
DEFItrpt1()
HALT
BRAKE
2、取料程序(采用中断的方法自动探料,完成取料作业)
ACCESSRVO2
DEFToPick_Search()
GLOBALINTERRUPTDECL3WHEN$STOPMESS==TRUEDOIR_STOPM();
单独用了一个系统中断?
ENDFOLD(INI)
INTERRUPTDECL1WHEN$IN[10]==TRUEDOFOUND()
SevenAxis_Run
(1)
GOTOMARK
FOLDPTPP1CONTVel
PDAT_ACT=PPDAT2
FDAT_ACT=FP1
PTPXP1C_DIS
FOLDPTPP3CONTVel
PDAT_ACT=PPDAT8
FDAT_ACT=FP3
PTPXP3C_DIS
FOLDLINP2CONTVel
LDAT_ACT=LCPDAT2
FDAT_ACT=FP2
BAS(#CP_PARAMS,2)
LINXP2C_DISC_DIS
FOLDLINP1Vel
LDAT_ACT=LCPDAT1
BAS(#CP_PARAMS,0.05)
LINXP1
mark:
Search()
INTERRUPTOFF1
WAITSEC0
XP4=$POS_ACT
FOLDLINP4CONTVel
LDAT_ACT=LCPDAT10
FDAT_ACT=FP4
LINXP4C_DISC_DIS
Gripper_SetStatus(1,"
LIN_REL{Z15}
LIN_REL{Z-17}
Part0InLeft=TRUE
XP0=$POS_ACT
XP0.Z=XP0.Z+25;
看一下寻料程序到底是怎么运转的!
FOLDLINP0CONTVel
LDAT_ACT=LCPDAT8
FDAT_ACT=FP0
BAS(#CP_PARAMS,0.025)
LINXP0C_DISC_DIS
IFNOT$IN[10]THEN
GOTOmark
FOLDLINP1CONTVel
LDAT_ACT=LCPDAT7
LINXP1C_DISC_DIS
DEFSearch()
GLOBALINTERRUPTDECL3WHEN$STOPMESS==TRUEDOIR_STOPM()
INTERRUPTON3
BAS(#INITMOV,0)
;
INTERRUPTON1
PDAT_ACT=PPDAT6
$OUT[16]=TRUE
FOLDLINP3CONTVel
LDAT_ACT=LCPDAT11
LINXP3C_DISC_DIS
LDAT_ACT=LCPDAT5
LDAT_ACT=LCPDAT6
BAS(#CP_PARAMS,0.02)
DEFFOUND()
LIN$POS_INT;
risealittle
RESUME
3、机台1取放料程序(完成机台1取放料动作与信号交互)
DEFMachine1()
$OUT[5]=TRUE
IFNOTMachine1_OnlyDropTHEN
PDAT_ACT=PPDAT4
LDAT_ACT=LCPDAT4
Gripper_SetStatus(2,"
LIN_REL{Z7.5}
FOLDLINP3Vel
LINXP3
Part1InRight=TRUE
FOLDLINP2Vel
LINXP2
IFNOT$IN[11]THEN
GOTOmark
FOLDPTPP4CONTVel
PTPXP4C_DIS
FOLDPTPP5CONTVel
PDAT_ACT=PPDAT10
FDAT_ACT=FP5
PTPXP5C_DIS
FOLDPTPP6CONTVel
FDAT_ACT=FP6
PTPXP6C_DIS
FOLDLINP7Vel
FDAT_ACT=FP7
BAS(#CP_PARAMS,0.25)
LINXP7
PDAT_ACT=PPDAT14
FOLDPTPP8CONTVel
PDAT_ACT=PPDAT9
FDAT_ACT=FP8
PTPXP8C_DIS
PDAT_ACT=PPDAT13
LDAT_ACT=LCPDAT9
FOLDPTPP6Vel
PDAT_ACT=PPDAT12
PTPXP6
PDAT_ACT=PPDAT7
Machine_Start
(1)
IFMachine1_OnlyDropTHEN
4、机台2取放料程序(完成机台2取放料动作与信号交互)
ACCESSRV2
REL6
DEFMachine2()
PTP$POS_ACT
SevenAxis_Run
(2)
$OUT[8]=TRUE
IFNOTMachine2_OnlyDropTHEN
PDAT_ACT=PPDAT3
FOLDPTPP2CONTVel
PTPXP2C_DIS
LDAT_ACT=LCPDAT0
Part2InLeft=TRUE
LDAT_ACT=LCPDAT3
PDAT_ACT=PPDAT11
PDAT_ACT=PPDAT1
FOLDLINP6CONTVel
LINXP6C_DISC_DIS
Machine_Start
(2)
FOLDPTPHOMEVel5:
100,7:
DEFAULT
IFMachine2_OnlyDropTHEN
5、机台3取放料程序(完成机台3取放料动作与信号交互)
D