机械手自动化程序.docx

上传人:b****5 文档编号:6716979 上传时间:2023-01-09 格式:DOCX 页数:29 大小:18.23KB
下载 相关 举报
机械手自动化程序.docx_第1页
第1页 / 共29页
机械手自动化程序.docx_第2页
第2页 / 共29页
机械手自动化程序.docx_第3页
第3页 / 共29页
机械手自动化程序.docx_第4页
第4页 / 共29页
机械手自动化程序.docx_第5页
第5页 / 共29页
点击查看更多>>
下载资源
资源描述

机械手自动化程序.docx

《机械手自动化程序.docx》由会员分享,可在线阅读,更多相关《机械手自动化程序.docx(29页珍藏版)》请在冰豆网上搜索。

机械手自动化程序.docx

机械手自动化程序

集团文件版本号:

(M928-T898-M248-WU2669-I2896-DQ586-M1988)

 

机械手自动化程序

1、主程序main

&ACCESSRVP1

&REL1

&PARAMDISKPATH=KRC:

\R1\Program

DEFPro_main()

INTl

;FOLDINI;%{PE}

;FOLDBASISTECHINI

GLOBALINTERRUPTDECL3WHEN$STOPMESS==TRUEDOIR_STOPM()

INTERRUPTON3

BAS(#INITMOV,0)

;ENDFOLD(BASISTECHINI)

;FOLDUSERINI

;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,"C")THEN

Gripper_SetStatus(2,"O")

Part1InRight=FALSE

ENDIF

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

ENDIF

$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

ENDIF

LOOP

WAITSEC0.05

IF$IN[1]ANDNOTPart0InLeftANDGripper_ChkStatus(3,"O")THENToPick_Search()

ENDIF

IFPart0InLeftAND($IN[3]ORMachine1_OnlyDrop)ANDGripper_ChkStatus(1,"C")ANDGripper_ChkStatus(2,"O")THEN

Machine1()

ENDIF

IFPart1InRightAND($IN[6]ORMachine2_OnlyDrop)ANDGripper_ChkStatus(2,"C")ANDGripper_ChkStatus(1,"O")THEN

Machine2()

ENDIF

IFPart2InLeftAND($IN[8]ORMachine3_OnlyDrop)ANDGripper_ChkStatus(1,"C")THEN

Machine3()

ENDIF

ENDLOOP

END

DEFItrpt1()

HALT

BRAKE

END

2、取料程序(采用中断的方法自动探料,完成取料作业)

&ACCESSRVO2

&REL1

&PARAMDISKPATH=KRC:

\R1\Program

DEFToPick_Search()

;FOLDINI;%{PE}

;FOLDBASISTECHINI

GLOBALINTERRUPTDECL3WHEN$STOPMESS==TRUEDOIR_STOPM();单独用了一个系统中断?

INTERRUPTON3

BAS(#INITMOV,0)

;ENDFOLD(BASISTECHINI)

;FOLDUSERINI

;Makeyourmodificationshere

;ENDFOLD(USERINI)

;ENDFOLD(INI)

INTERRUPTDECL1WHEN$IN[10]==TRUEDOFOUND()

SevenAxis_Run

(1)

GOTOMARK

;FOLDPTPP1CONTVel

$BWDSTART=FALSE

PDAT_ACT=PPDAT2

FDAT_ACT=FP1

BAS(#PTP_PARAMS,100)

PTPXP1C_DIS

;ENDFOLD

;FOLDPTPP3CONTVel

$BWDSTART=FALSE

PDAT_ACT=PPDAT8

FDAT_ACT=FP3

BAS(#PTP_PARAMS,100)

PTPXP3C_DIS

;ENDFOLD

;FOLDLINP2CONTVel

$BWDSTART=FALSE

LDAT_ACT=LCPDAT2

FDAT_ACT=FP2

BAS(#CP_PARAMS,2)

LINXP2C_DISC_DIS

;ENDFOLD

;FOLDLINP1Vel

$BWDSTART=FALSE

LDAT_ACT=LCPDAT1

FDAT_ACT=FP1

BAS(#CP_PARAMS,0.05)

LINXP1

;ENDFOLD

;FOLDPTPHOMEVel

$BWDSTART=FALSE

PDAT_ACT=PDEFAULT

FDAT_ACT=FHOME

BAS(#PTP_PARAMS,100)

$H_POS=XHOME

PTPXHOME

;ENDFOLD

mark:

Search()

INTERRUPTOFF1

WAITSEC0

XP4=$POS_ACT

;FOLDLINP4CONTVel

$BWDSTART=FALSE

LDAT_ACT=LCPDAT10

FDAT_ACT=FP4

BAS(#CP_PARAMS,2)

LINXP4C_DISC_DIS

;ENDFOLD

Gripper_SetStatus(1,"O")

LIN_REL{Z15}

LIN_REL{Z-17}

Gripper_SetStatus(1,"C")

Part0InLeft=TRUE

WAITSEC0

XP0=$POS_ACT

XP0.Z=XP0.Z+25;看一下寻料程序到底是怎么运转的!

;FOLDLINP0CONTVel

$BWDSTART=FALSE

LDAT_ACT=LCPDAT8

FDAT_ACT=FP0

BAS(#CP_PARAMS,0.025)

LINXP0C_DISC_DIS

;ENDFOLD

WAITSEC0

IFNOT$IN[10]THEN

GOTOmark

ENDIF

;FOLDLINP1CONTVel

$BWDSTART=FALSE

LDAT_ACT=LCPDAT7

FDAT_ACT=FP1

BAS(#CP_PARAMS,2)

LINXP1C_DISC_DIS

;ENDFOLD

END

DEFSearch()

;FOLDINI;%{PE}

;FOLDBASISTECHINI

GLOBALINTERRUPTDECL3WHEN$STOPMESS==TRUEDOIR_STOPM()

INTERRUPTON3

BAS(#INITMOV,0)

;ENDFOLD(BASISTECHINI)

;FOLDUSERINI

;Makeyourmodificationshere

;ENDFOLD(USERINI)

;ENDFOLD(INI)

INTERRUPTON1

;FOLDPTPP1CONTVel

$BWDSTART=FALSE

PDAT_ACT=PPDAT6

FDAT_ACT=FP1

BAS(#PTP_PARAMS,100)

PTPXP1C_DIS

;ENDFOLD

$OUT[16]=TRUE

;FOLDLINP3CONTVel

$BWDSTART=FALSE

LDAT_ACT=LCPDAT11

FDAT_ACT=FP3

BAS(#CP_PARAMS,2)

LINXP3C_DISC_DIS

;ENDFOLD

;FOLDLINP2CONTVel

$BWDSTART=FALSE

LDAT_ACT=LCPDAT5

FDAT_ACT=FP2

BAS(#CP_PARAMS,0.05)

LINXP2C_DISC_DIS

;ENDFOLD

;FOLDLINP1Vel

$BWDSTART=FALSE

LDAT_ACT=LCPDAT6

FDAT_ACT=FP1

BAS(#CP_PARAMS,0.02)

LINXP1

;ENDFOLD

WAITSEC0

END

DEFFOUND()

BRAKE

LIN$POS_INT;risealittle

RESUME

END

3、机台1取放料程序(完成机台1取放料动作与信号交互)

&ACCESSRVO2

&REL1

&PARAMDISKPATH=KRC:

\R1\Program

DEFMachine1()

;FOLDINI;%{PE}

;FOLDBASISTECHINI

GLOBALINTERRUPTDECL3WHEN$STOPMESS==TRUEDOIR_STOPM()

INTERRUPTON3

BAS(#INITMOV,0)

;ENDFOLD(BASISTECHINI)

;FOLDUSERINI

;Makeyourmodificationshere

;ENDFOLD(USERINI)

;ENDFOLD(INI)

SevenAxis_Run

(1)

$OUT[5]=TRUE

;ENDFOLD

IFNOTMachine1_OnlyDropTHEN

;FOLDPTPP1CONTVel

$BWDSTART=FALSE

PDAT_ACT=PPDAT4

FDAT_ACT=FP1

BAS(#PTP_PARAMS,100)

PTPXP1C_DIS

;ENDFOLD

mark:

;FOLDLINP2CONTVel

$BWDSTART=FALSE

LDAT_ACT=LCPDAT4

FDAT_ACT=FP2

BAS(#CP_PARAMS,2)

LINXP2C_DISC_DIS

;ENDFOLD

;FOLDLINP3CONTVel

$BWDSTART=FALSE

LDAT_ACT=LCPDAT5

FDAT_ACT=FP3

BAS(#CP_PARAMS,2)

LINXP3C_DISC_DIS

;ENDFOLD

Gripper_SetStatus(2,"C")

LIN_REL{Z7.5}

Gripper_SetStatus(2,"O")

;FOLDLINP3Vel

$BWDSTART=FALSE

LDAT_ACT=LCPDAT1

FDAT_ACT=FP3

BAS(#CP_PARAMS,2)

LINXP3

;ENDFOLD

Gripper_SetStatus(2,"C")

Part1InRight=TRUE

;FOLDLINP2Vel

$BWDSTART=FALSE

LDAT_ACT=LCPDAT6

FDAT_ACT=FP2

BAS(#CP_PARAMS,0.05)

LINXP2

;ENDFOLD

IFNOT$IN[11]THEN

GOTOmark

ENDIF

;FOLDPTPP4CONTVel

$BWDSTART=FALSE

PDAT_ACT=PPDAT6

FDAT_ACT=FP4

BAS(#PTP_PARAMS,100)

PTPXP4C_DIS

;ENDFOLD

;FOLDPTPP5CONTVel

$BWDSTART=FALSE

PDAT_ACT=PPDAT10

FDAT_ACT=FP5

BAS(#PTP_PARAMS,100)

PTPXP5C_DIS

;ENDFOLD

;FOLDPTPP6CONTVel

$BWDSTART=FALSE

PDAT_ACT=PPDAT8

FDAT_ACT=FP6

BAS(#PTP_PARAMS,100)

PTPXP6C_DIS

;ENDFOLD

;FOLDLINP7Vel

$BWDSTART=FALSE

LDAT_ACT=LCPDAT7

FDAT_ACT=FP7

BAS(#CP_PARAMS,0.25)

LINXP7

;ENDFOLD

Gripper_SetStatus(1,"O")

;FOLDPTPP6CONTVel

$BWDSTART=FALSE

PDAT_ACT=PPDAT14

FDAT_ACT=FP6

BAS(#PTP_PARAMS,100)

PTPXP6C_DIS

;ENDFOLD

;FOLDPTPP8CONTVel

$BWDSTART=FALSE

PDAT_ACT=PPDAT9

FDAT_ACT=FP8

BAS(#PTP_PARAMS,100)

PTPXP8C_DIS

;ENDFOLD

ELSE

;FOLDPTPP5CONTVel

$BWDSTART=FALSE

PDAT_ACT=PPDAT2

FDAT_ACT=FP5

BAS(#PTP_PARAMS,100)

PTPXP5C_DIS

;ENDFOLD

;FOLDPTPP6CONTVel

$BWDSTART=FALSE

PDAT_ACT=PPDAT13

FDAT_ACT=FP6

BAS(#PTP_PARAMS,100)

PTPXP6C_DIS

;ENDFOLD

;FOLDLINP7Vel

$BWDSTART=FALSE

LDAT_ACT=LCPDAT9

FDAT_ACT=FP7

BAS(#CP_PARAMS,0.25)

LINXP7

;ENDFOLD

Gripper_SetStatus(1,"O")

;FOLDPTPP6Vel

$BWDSTART=FALSE

PDAT_ACT=PPDAT12

FDAT_ACT=FP6

BAS(#PTP_PARAMS,100)

PTPXP6

;ENDFOLD

;FOLDPTPP8CONTVel

$BWDSTART=FALSE

PDAT_ACT=PPDAT7

FDAT_ACT=FP8

BAS(#PTP_PARAMS,100)

PTPXP8C_DIS

;ENDFOLD

Machine_Start

(1)

;FOLDPTPHOMEVel

$BWDSTART=FALSE

PDAT_ACT=PDEFAULT

FDAT_ACT=FHOME

BAS(#PTP_PARAMS,100)

$H_POS=XHOME

PTPXHOME

;ENDFOLD

ENDIF

IFMachine1_OnlyDropTHEN

Machine1_OnlyDrop=FALSE

ENDIF

Machine_Start

(1)

END

4、机台2取放料程序(完成机台2取放料动作与信号交互)

&ACCESSRV2

&REL6

&PARAMDISKPATH=KRC:

\R1\Program

DEFMachine2()

;FOLDINI;%{PE}

;FOLDBASISTECHINI

GLOBALINTERRUPTDECL3WHEN$STOPMESS==TRUEDOIR_STOPM()

INTERRUPTON3

BAS(#INITMOV,0)

;ENDFOLD(BASISTECHINI)

;FOLDUSERINI

;Makeyourmodificationshere

;ENDFOLD(USERINI)

;ENDFOLD(INI)

PTP$POS_ACT

SevenAxis_Run

(2)

$OUT[8]=TRUE

;ENDFOLD

IFNOTMachine2_OnlyDropTHEN

;FOLDPTPP1CONTVel

$BWDSTART=FALSE

PDAT_ACT=PPDAT3

FDAT_ACT=FP1

BAS(#PTP_PARAMS,100)

PTPXP1C_DIS

;ENDFOLD

mark:

;FOLDPTPP2CONTVel

$BWDSTART=FALSE

PDAT_ACT=PPDAT4

FDAT_ACT=FP2

BAS(#PTP_PARAMS,100)

PTPXP2C_DIS

;ENDFOLD

;FOLDLINP3Vel

$BWDSTART=FALSE

LDAT_ACT=LCPDAT4

FDAT_ACT=FP3

BAS(#CP_PARAMS,2)

LINXP3

;ENDFOLD

Gripper_SetStatus(1,"C")

LIN_REL{Z7.5}

Gripper_SetStatus(1,"O")

;FOLDLINP3Vel

$BWDSTART=FALSE

LDAT_ACT=LCPDAT0

FDAT_ACT=FP3

BAS(#CP_PARAMS,2)

LINXP3

;ENDFOLD

Gripper_SetStatus(1,"C")

Part2InLeft=TRUE

;FOLDLINP2CONTVel

$BWDSTART=FALSE

LDAT_ACT=LCPDAT3

FDAT_ACT=FP2

BAS(#CP_PARAMS,0.05)

LINXP2C_DISC_DIS

;ENDFOLD

IFNOT$IN[10]THEN

GOTOmark

ENDIF

;FOLDPTPP4CONTVel

$BWDSTART=FALSE

PDAT_ACT=PPDAT7

FDAT_ACT=FP4

BAS(#PTP_PARAMS,100)

PTPXP4C_DIS

;ENDFOLD

;FOLDPTPP5CONTVel

$BWDSTART=FALSE

PDAT_ACT=PPDAT14

FDAT_ACT=FP5

BAS(#PTP_PARAMS,100)

PTPXP5C_DIS

;ENDFOLD

;FOLDPTPP6CONTVel

$BWDSTART=FALSE

PDAT_ACT=PPDAT9

FDAT_ACT=FP6

BAS(#PTP_PARAMS,100)

PTPXP6C_DIS

;ENDFOLD

;FOLDLINP7Vel

$BWDSTART=FALSE

LDAT_ACT=LCPDAT7

FDAT_ACT=FP7

BAS(#CP_PARAMS,0.25)

LINXP7

;ENDFOLD

Gripper_SetStatus(2,"O")

;FOLDPTPP6CONTVel

$BWDSTART=FALSE

PDAT_ACT=PPDAT11

FDAT_ACT=FP6

BAS(#PTP_PARAMS,100)

PTPXP6C_DIS

;ENDFOLD

;FOLDPTPP8CONTVel

$BWDSTART=FALSE

PDAT_ACT=PPDAT12

FDAT_ACT=FP8

BAS(#PTP_PARAMS,100)

PTPXP8C_DIS

;ENDFOLD

ELSE

;FOLDPTPP5CONTVel

$BWDSTART=FALSE

PDAT_ACT=PPDAT13

FDAT_ACT=FP5

BAS(#PTP_PARAMS,100)

PTPXP5C_DIS

;ENDFOLD

;FOLDPTPP6CONTVel

$BWDSTART=FALSE

PDAT_ACT=PPDAT1

FDAT_ACT=FP6

BAS(#PTP_PARAMS,100)

PTPXP6C_DIS

;ENDFOLD

;FOLDLINP7Vel

$BWDSTART=FALSE

LDAT_ACT=LCPDAT1

FDAT_ACT=FP7

BAS(#CP_PARAMS,0.25)

LINXP7

;ENDFOLD

Gripper_SetStatus(2,"O")

;FOLDLINP6CONTVel

$BWDSTART=FALSE

LDAT_ACT=LCPDAT2

FDAT_ACT=FP6

BAS(#CP_PARAMS,2)

LINXP6C_DISC_DIS

;ENDFOLD

;FOLDPTPP8CONTVel

$BWDSTART=FALSE

PDAT_ACT=PPDAT6

FDAT_ACT=FP8

BAS(#PTP_PARAMS,100)

PTPXP8C_DIS

;ENDFOLD

Machine_Start

(2)

;FOLDPTPHOMEVel5:

100,7:

DEFAULT

$BWDSTART=FALSE

PDAT_ACT=PDEFAULT

FDAT_ACT=FHOME

BAS(#PTP_PARAMS,100)

$H_POS=XHOME

PTPXHOME

;ENDFOLD

ENDIF

IFMachine2_OnlyDropTHEN

Machine2_OnlyDrop=FALSE

ENDIF

Machine_Start

(2)

END

5、机台3取放料程序(完成机台3取放料动作与信号交互)

&ACCESSRVP1

&REL6

D

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 医药卫生 > 基础医学

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1