综合作业工业机器人离线编程与虚拟仿真_第1页
综合作业工业机器人离线编程与虚拟仿真_第2页
综合作业工业机器人离线编程与虚拟仿真_第3页
综合作业工业机器人离线编程与虚拟仿真_第4页
综合作业工业机器人离线编程与虚拟仿真_第5页
已阅读5页,还剩29页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

综合作业工业机器人离线编程与虚拟仿真 目录1.实训工作台布局11.2 实训任务实施11.2.1 解压并初始化12 . I/O配置43.程序模板导入54 .坐标系标定165.示教目标点191.压铸取件目标点示教20参考文献2321.实训工作台布局本工作站为机电一体化训练平台模拟工作站,综合了码垛应用,压铸机取件,轨迹类应用,TCP标定等教学模板,一机多用,具有丰富的训练素材,机器人工作站布局如图1-1所示。 图1.11.2 实训任务实施1.2.1 解压并初始化双击压缩包文件“ST_Platform.rspag”,如图1-2所示,根据解压向导的提示解压该工作站。图1-2 解压完成后可进行仿真运行,如图1-3所示。1.单击“播放”仿真启动后,机器人执行初始化操作,若机器人无法自动回至工作原位,可手动将机器人调整至机械原点,再重新执行仿真播放,如图1-4所示。单击“机器人”,单击“回到机械原点” 图1-4本工作站分为四个模板,分别是可自动运行的码垛,压铸机取件,轨迹应用以及一个手动模板TCP标定。仿真启动后,需要手动选择当前激活的是哪一个自动运行的功能模板,可通过工作站信号进行选择,如图1-5所示。选择需要激活的模块选择系统“工作站信号”单击“I/O仿真器”Foundry为压铸机取件应用,Pallet为码垛应用,Practise为轨迹类应用,手动执行模板TCP标定使用的工具与Practise一致,无需执行仿真播放,直接激活Practise,切换为TCP标定的工具,进行手动TCP标定练习。 激活对应的功能模板后,即可查看到机器人对应的执行任务,依次进行激活,当仿真结束后,可单击仿真“停止”,若需回复至初始状态,可以通过重置下拉菜单中的保存状态进行工作站初始化。初始化操作如图1-6所示。 初始化机器人的步骤是:将机器人恢复为出厂设置,然后在此工作站基础上依次完成I/O配置,程序导入,坐标系标定,目标点示教等操作,最终将机器人工作站复原至之前可正常运行的状态。初始化前,先做好机器人备份,以备后面使用,在“控制器”菜单中可进行备份,如图1-7所示。 图1-7 完成备份后,在“控制器”菜单的“重启”中单击“I-启动”,初始化机器人,如图1-8所示。出现提示框,单击“确定”即可,等待机器人重新启动,机器人初始化结束。 图1-82 . I/O配置在“控制器”菜单中打开虚拟“示教器”,先将界面语言改为中文,之后依次单击“ABB菜单”-“配置”,进入“I/O主题”,配置I/O信号。此工作站配置了1个DSQC652通信板卡(数字量16进16出),则需要在Unit中设置此I/O的相关参数,配置见表1-1。NameType of UnitConnected to BusDeviceNet AddressBoard10D652DeviceNetl10需要配置的I/O信号见表1-2.NameType of SignalAssigned to UnitUnit Mapping信号用途说明diPalletDignal InputBoard100码垛模式激活信号diFoundryDignal InputBoard101压铸取件模式激活信号diPractiseDignal InputBoard102轨迹练习模式激活信号diPalletInPos1Dignal InputBoard103码垛1号线产品到位信号diPalletInPos1Dignal InputBoard104码垛2号线产品到位信号diFoundryDoneDignal InputBoard105压铸完成信号diCheckOKDignal InputBoard106压铸检测正常信号doCheckDignal OutputBoard100铸件检测信号doVaccumDignal OutputBoard101吸盘真空信号doGripDignal OutputBoard102夹爪拾取信号doPikDoneDignal OutputBoard103压铸取件完成信号3.程序模板导入 I/O配置完成后,将程序模板导入该机器人系统中。通过示教器的程序编辑器进行程序模块的加载,依次单击“ABB菜单”-“程序编辑器”,若出现加载程序提示框,暂时单击“取消”,然后在程序模块界面进行加载,如图1-9所示。 浏览至之前做的备份文件,路径一般为:/备份文件名/RAPID/TASKI/PROGMOD,如图1-10所示。 加载完成后,选中该模板,单击“显示例行程序”,看到对应的程序。程序注解如下:MODULE MainMoudlePERS tooldata Gripper:=TRUE,0,0,160,1,0,0,0,1,0,0,80,1,0,0,0,0,0,0;!定义工具数据Gripper,码垛夹爪PERS tooldata Vacuum:=TRUE,75.352357666,0,141.798560732,0.707106781,0,0.707106781,0,1,0,0,1,1,0,0,0,0,0,0;!定义工具数据Vacuum,压铸取件吸盘PERS tooldata CalibTool:=TRUE,134.006171078,0,121.059333281,0.707106781,0,0.707106781,0,1,0,0,1,1,0,0,0,0,0,0;!定义工具数据Cali Tool,练习用校准针PERS robtarget pHome:=400,0,400,0.499999891,0,0.866025467,0,-1,0,-1,0,9E9,9E9,9E9,9E9,9E9,9E9;!定义机器人原位 pHomePERS robtarget pFoundry_place:=-191.073383636,-287.049421317,144.268578196,0.010652112,-0.986974904,-0.160102241,0.011590721,-1,0,-1,1,9E9,9E9,9E9,9E9,9E9,9E9;!定义压铸取件应用的放置基准位置PERS robtarget pFoundry_Check:=278.070790136,-264.777468509,127.474172366,0.5689629,0.586002522,-0.399503224,0.416268468,-1,-1,-2,0,9E9,9E9,9E9,9E9,9E9,9E9;!定义压铸取件应用的放置检测位置PERS robtarget pFoundry_pick:=711.660727545,-152.341535966,240.83242874,0.108810866,0.124236224,-0.688205988,0.706468735,-1,1,1,0,9E9,9E9,9E9,9E9,9E9,9E9;!定义压铸取件应用的放置取件位置PERS robtarget pFoundry_Flyby:=311.478565355,-264.777571918,227.721596763,0.332345358,0.340165739,-0.610630275,0.633217577,-1,0,-2,0,9E9,9E9,9E9,9E9,9E9,9E9;!定义压铸取件应用的放置中间过滤点PERS robtarget pCurve_10:=6.745850489,-252.735278705,110.600780035,0.010651463,-0.986974869,-0.160102535,0.011590209,-1,-1,1,0,9E9,9E9,9E9,9E9,9E9,9E9;!定义压轨迹应用中曲线轨迹的位置点,下同PERS robtarget pCurve_20:=5.939451301,-277.878852508,110.600780035,0.010651463,-0.986974869,-0.160102535,0.011590209,-1,-1,1,0,9E9,9E9,9E9,9E9,9E9,9E9;PERS robtarget pCurve_30:=-0.600591419,-294.82442058,110.600780035,0.010651463,-0.986974869,-0.160102535,0.011590209,-1,-1,1,0,9E9,9E9,9E9,9E9,9E9,9E9;PERS robtarget pCurve_40:=-4.875696185,-333.210566739,110.600780035,0.010651463,-0.986974869,-0.160102535,0.011590209,-1,-1,1,0,9E9,9E9,9E9,9E9,9E9,9E9;PERS robtarget pCurve_50:=8.240447693,-369.52965435,110.600780035,0.010651463,-0.986974869,-0.160102535,0.011590209,-1,-1,1,0,9E9,9E9,9E9,9E9,9E9,9E9;PERS robtarget pCurve_60:=13.723017457,-397.583471099,110.600780035,0.010651463,-0.986974869,-0.160102535,0.011590209,-1,-1,1,0,9E9,9E9,9E9,9E9,9E9,9E9;PERS robtarget pCurve_70:=6.178981781,-433.706538357,110.600780035,0.010651463,-0.986974869,-0.160102535,0.011590209,-1,-1,1,0,9E9,9E9,9E9,9E9,9E9,9E9;PERS robtarget pCurve_80:=4.256482411,-450.297730005,110.600780035,0.010651463,-0.986974869,-0.160102535,0.011590209,-1,-1,1,0,9E9,9E9,9E9,9E9,9E9,9E9;PERS robtarget pCurve_90:=6.466622168,-466.853059248,110.600780035,0.010651463,-0.986974869,-0.160102535,0.011590209,-1,-1,1,0,9E9,9E9,9E9,9E9,9E9,9E9;PERS robtarget pSquare_10:=-42.493215595,-251.947951338,110.600780035,0.010651463,-0.986974869,-0.160102535,0.011590209,-1,-1,1,0,9E9,9E9,9E9,9E9,9E9,9E9;!定义轨迹应用中方形轨迹位置点,下同PERS robtarget pSquare_20:=-42.493215595,-301.947951338,110.600780035,0.010651463,-0.986974869,-0.160102535,0.011590209,-1,-1,1,0,9E9,9E9,9E9,9E9,9E9,9E9;PERS robtarget pSquare_30:=-122.493215595,-301.947951338,110.600780035,0.010651463,-0.986974869,-0.160102535,0.011590209,-1,-2,1,0,9E9,9E9,9E9,9E9,9E9,9E9;PERS robtarget pSquare_40:=-122.493215595,-251.947951338,110.600780035,0.010651463,-0.986974869,-0.160102535,0.011590209,-1,-2,1,0,9E9,9E9,9E9,9E9,9E9,9E9;PERS robtarget pSquare_50:=-42.493215595,-251.947951338,110.600780035,0.010651463,-0.986974869,-0.160102535,0.011590209,-1,-1,1,0,9E9,9E9,9E9,9E9,9E9,9E9;PERS robtarget pTriangle_10:=-99.138394775,-360.453330157,110.600780035,0.010651463,-0.986974869,-0.160102535,0.011590209,-1,-2,1,0,9E9,9E9,9E9,9E9,9E9,9E9;PERS robtarget pTriangle_20:=-142.44468962,-385.456231144,110.600780035,0.010651463,-0.986974869,-0.160102535,0.011590209,-1,-2,1,0,9E9,9E9,9E9,9E9,9E9,9E9;PERS robtarget pTriangle_30:=-142.44468962,-335.450429171,110.600780035,0.010651463,-0.986974869,-0.160102535,0.011590209,-1,-2,1,0,9E9,9E9,9E9,9E9,9E9,9E9;PERS robtarget pTriangle_40:=-99.138394775,-360.453330157,110.600780035,0.010651463,-0.986974869,-0.160102535,0.011590209,-1,-2,1,0,9E9,9E9,9E9,9E9,9E9,9E9;PERS robtarget pCycle_10:=-43.009258005,-431.691084714,110.600780035,0.010651463,-0.986974869,-0.160102535,0.011590209,-1,-1,1,0,9E9,9E9,9E9,9E9,9E9,9E9;!定义压轨迹应用中圆形轨迹位置点,下同PERS robtarget pCycle_20:=-73.009258005,-461.691084714,110.600780035,0.010651463,-0.986974869,-0.160102535,0.011590209,-1,-2,1,0,9E9,9E9,9E9,9E9,9E9,9E9;PERS robtarget pCycle_30:=-103.009258005,-431.691084714,110.600780035,0.010651463,-0.986974869,-0.160102535,0.011590209,-1,-2,1,0,9E9,9E9,9E9,9E9,9E9,9E9;PERS robtarget pCycle_40:=-73.009258005,-401.691084714,110.600780035,0.010651463,-0.986974869,-0.160102535,0.011590209,-1,-2,1,0,9E9,9E9,9E9,9E9,9E9,9E9;PERS robtarget pCycle_50:=-43.009258005,-431.691084714,110.600780035,0.010651463,-0.986974869,-0.160102535,0.011590209,-1,-1,1,0,9E9,9E9,9E9,9E9,9E9,9E9;PERS robtarget pPractise_Flyby:=6.745850489,-252.735278705,160.600780035,0.010651463,-0.986974869,-0.160102535,0.011590209,-1,-1,1,0,9E9,9E9,9E9,9E9,9E9,9E9;PERS robtarget pPallet_Pick1:=176.36331505,526.432561626,130.295757566,0.000000835,-0.705166429,0.709041824,0.000000945,0,0,-1,0,9E9,9E9,9E9,9E9,9E9,9E9;!定义码垛应用中1号线物料拾取位置PERS robtarget pPallet_Pick2:=7.850560981,535.508151359,124.959995656,0.000001227,-0.705165665,0.709042583,0.000001826,0,0,-1,0,9E9,9E9,9E9,9E9,9E9,9E9;!定义码垛应用中2号线物料拾取位置PERS robtarget pPallet_Place1:=193.53468264,353.181649093,136.310262896,0.00000082,-0.705166148,0.709042103,0.000001382,0,0,-1,0,9E9,9E9,9E9,9E9,9E9,9E9;!定义码垛应用中1号线物料放置基准位置PERS robtarget pPallet_Place2:=-66.636405551,362.684195795,137.054640909,0.000001226,-0.705165835,0.709042414,0.000001789,1,0,0,0,9E9,9E9,9E9,9E9,9E9,9E9;!定义码垛应用中2号线物料放置基准位置PERS robtarget pPallet_Flyby:=300,300,200,0.000000835,-0.705166429,0.709041824,0.000000945,0,0,-1,0,9E9,9E9,9E9,9E9,9E9,9E9;!定义码垛应用中的中间过渡点VAR bool bPallet:=FALSE;!定义码垛模块激活标志VAR bool bFoundry:=FALSE;!定义压铸取件模块激活标志位VAR bool bPractise:=FALSE;!定义练习模块激活标志位VAR intnum iPallet;!定义中断数据,用于激活码垛模块VAR intnum iFoundry;!定义中断数据,用于激活压铸取件模块VAR intnum iPractise;!定义中断数据,用于激活练习模块VAR num Pallet_Count1:=1;!定义码垛应用中的1号线码垛计数器VAR num Pallet_Count2:=1;!定义码垛应用中的2号线码垛计数器VAR bool Pallet_Full1:=FALSE;!定义码垛应用中的1号线码垛满载标志位VAR bool Pallet_Full2:=FALSE;!定义码垛应用中的2号线码垛满载标志位PERS num PalletPos4,2:=0,0,60,0,0,-80,60,-80;!定义码垛位置数组,4个付位置,每个付置X, Y 2个参数构成VAR num Foundry_Count:=1;!定义压铸取件的计数器VAR bool bFoundryFull:=FALSE;!定义压铸取件的满载标志位PERS speeddata vMinSpeed:=300,100,5000,1000;PERS speeddata vMidSpeed:=500,200,5000,1000;PERS speeddata vMaxSpeed:=800,300,5000,1000;!定义不同的速度数据,便于在程序中针对不同的动作过程采用合适的速度数据PROC Main()!主程序 rInitAll;!调用初始化程序WHILETRUEDO!利用WHILE TRUF DO循环将机器人实际任务程序与初始化程序隔离开IF bPallet rPallet;!若码垛模块激活则调用码垛程序IF bFoundry rFoundry;!若压铸取件模块激话则调用压铸取件程序IF bPractise rPractise;!若练习模块激洁则调甲练习程序 WaitTime 0.1;!设等等待时间0.1s,避免各模块均未傲活时CPU过载ENDWHILEENDPROCPROC rInitAll()!初始化程序 ConfJOff; ConfLOff; VelSet 70,1000;!设置机器人速度限制,最高限速 AccSet 70,70;!设置机器人加速度,最大加速度值,坡度值,使机器人启动停止较为平缓 Reset doCheck;!复位压铸取件检测信号 Reset doGrip;!复位码垛夹爪 Reset doVacuum;!复位压铸取件吸盘真空 Reset doPickDone;!复位压铸取件完成信号 Pallet_Count1:=1; Pallet_Count2:=1;!复位码垛计数器 Foundry_Count:=1;!复位压铸取件计数器 IDelete iPallet;CONNECT iPallet WITH tMode; ISignalDI diPallet,1,iPallet;!定义用于激活码垛模块的中断 IDelete iFoundry;CONNECT iFoundry WITH tMode; ISignalDI diFoundry,1,iFoundry;!定义用于激活压铸取件模块的中断 IDelete iPractise;CONNECT iPractise WITH tMode; ISignalDI diPractise,1,iPractise;!定义用于激活练习模块的中断 MoveJ pHome,vMidSpeed,fine,GripperWObj:=wobj0;!复位机器人位置,使其回至工作原位点ENDPROCPROC rFoundry()!压铸取件模块程序 MoveJ pHome,vMaxSpeed,z50,GripperWObj:=wobj0;!复位机器人位置,使具回至工作原位HOME点WHILE bFoundry=TRUEDO!若压铸取件模块激话,则执行压铸取件任务 MoveJ Offs(pFoundry_pick,-200,30,0),vMaxSpeed,z20,VacuumWObj:=wobj0;!移至压铸取件等待位置 WaitDI diFoundryDone,1;!等待压铸完成信号 MoveL Offs(pFoundry_pick,0,30,0),vMidSpeed,z5,VacuumWObj:=wobj0;!移至压铸取件应用中的取件过渡位置 MoveL pFoundry_pick,vMinSpeed,fine,VacuumWObj:=wobj0;!移至压铸取件位置 Set doVacuum; WaitTime 1;!置位吸盘真空信号,等待1s直至完全吸附住铸件 MoveL Offs(pFoundry_pick,0,50,0),vMinSpeed,z5,VacuumWObj:=wobj0;!移牵压铸取件取件位置 MoveL Offs(pFoundry_pick,-200,50,0),vMinSpeed,z20,VacuumWObj:=wobj0;!移至压铸取件等待位置 PulseDO doPickDone;!移至铸件检测完成信号 MoveJ Offs(pFoundry_Check,0,0,100),vMidSpeed,z20,VacuumWObj:=wobj0;!移至铸件检测位置 MoveL pFoundry_Check,vMinSpeed,fine,VacuumWObj:=wobj0; PulseDOPLength:=2,doCheck;!检测脉冲信号 WaitDI diCheckOK,1;!移至铸件检测后位置 MoveL Offs(pFoundry_Check,0,0,100),vMinSpeed,z20,VacuumWObj:=wobj0;!移至压铸取件的放置前位置,利用压铸计数器作为偏移的参数 MoveJ Offs(pFoundry_place,0,-(Foundry_Count-1)*74,100),vMidSpeed,z20,VacuumWObj:=wobj0;!移至压铸取件的放置位置 MoveL Offs(pFoundry_place,0,-(Foundry_Count-1)*74,0),vMinSpeed,fine,VacuumWObj:=wobj0;!复位吸盘真空信号并等待15,直至真空释放 Reset doVacuum; WaitTime 1; MoveL Offs(pFoundry_place,0,-(Foundry_Count-1)*74,100),vMinSpeed,z50,VacuumWObj:=wobj0;!移至压铸取件放置后的位置 Incr Foundry_Count;!压铸取件计数器加1IF Foundry_Count3 bFoundry:=FALSE;!若计数器大于3.则将铸取件模块标志、位置为FALSE,该应用中只取件3次 MoveJ pFoundry_Flyby,vMidSpeed,z200,VacuumWObj:=wobj0;! 移至压铸取件应用中的中间过渡点ENDWHILE MoveJ pHome,vMidSpeed,fine,GripperWObj:=wobj0;!完成3次取件任务后,至位原位,等铸其他任务激活ENDPROCPROC rPallet()!码垛模块程序IF diPalletInPos1=1 AND Pallet_Full1=FALSE rPickPlace pPallet_Pick1,pPallet_Place1,Pallet_Count1,Pallet_Full1;!若码垛1号线产品到位并且没有满载,则调用码垛任务,并输入1号线的拾取位置、放置基准位置、计数器、满载标志位IF diPalletInPos2=1 AND Pallet_Full2=FALSE rPickPlace pPallet_Pick2,pPallet_Place2,Pallet_Count2,Pallet_Full2;!若码垛2号线产品到位并且没有满载,则调用码垛任务,并输入2号线的拾取位置、放置基准位置、计数器、满载标志位IF Pallet_Full1=TRUEAND Pallet_Full2=TRUETHEN bPallet:=FALSE;!若1、2号线均满载,则码垛任务结束,将码垛模块激活标志位置为FALSE MoveJ pPallet_Flyby,vMidSpeed,z100,GripperWObj:=wobj0; MoveJ pHome,vMidSpeed,fine,GripperWObj:=wobj0;!经过码垛过渡点回至工作原位HOME点ENDIFENDPROCPROC rPickPlace(robtarget pickbase,robtarget placebase,INOUT num counter,INOUT bool bFull)!码垛拾取放胃仃务.片添加参数码垛拾取勺置、放胃基准位胃、计数器、满载标志位 MoveJ Offs(pickbase,0,0,50),vMidSpeed,z20,GripperWObj:=wobj0;!移至码垛拾取基准点上方 MoveL pickbase,vMinSpeed,fine,GripperWObj:=wobj0;!移至码垛拾取基准点 Set doGrip; WaitTime 1;!置位码垛夹爪,并等待1s直至完全拾取物料 MoveL Offs(pickbase,0,0,50),vMinSpeed,z20,GripperWObj:=wobj0; MoveJ !移至码垛拾取位置上方Offs(placebase,PalletPoscounter,1,PalletPoscounter,2,50),vMidSpeed,z20,GripperWObj:=wobj0;!移至放置位置上方,此处偏移采用了码垛位置数组,并利用码垛讨数器作为其参数,从而依次实现各个位着的码垛仟务 MoveL Offs(placebase,PalletPoscounter,1,PalletPoscounter,2,0),vMinSpeed,fine,GripperWObj:=wobj0;!移至放置位置 Reset doGrip; WaitTime 1;!复位码垛夹爪信号,并等待1S直至完全释放物料 MoveL Offs(placebase,PalletPoscounter,1,PalletPoscounter,2,50),vMinSpeed,z20,GripperWObj:=wobj0;!移至放置位置上方 MoveJ Offs(pickbase,0,0,50),vMidSpeed,z20,GripperWObj:=wobj0; Incr counter;!移至拾取位置上方IF counter4 bFull:=TRUE;!若码垛计数超过4个,则将此线的码垛满载标志位置为TRUEENDPROCPROC rPractise()!练习模块程序 MoveJ pHome,vMaxSpeed,z50,GripperWObj:=wobj0;!移至机器人至HOME点 MoveJ Offs(pCurve_10,0,0,50),vMidSpeed,z20,CalibToolWObj:=wobj0;!移至曲线轨迹起始位置上方 MoveL pCurve_10,vMinSpeed,fine,CalibToolWObj:=wobj0;!移至曲线轨迹起始位置,开始执行曲线轨迹,下同 MoveC pCurve_20,pCurve_30,vMinSpeed,z1,CalibToolWObj:=wobj0; MoveC pCurve_40,pCurve_50,vMinSpeed,z1,CalibToolWObj:=wobj0; MoveC pCurve_60,pCurve_70,vMinSpeed,z1,CalibToolWObj:=wobj0; MoveC pCurve_80,pCurve_90,vMinSpeed,fine,CalibToolWObj:=wobj0; MoveL Offs(pCurve_80,0,0,50),vMinSpeed,z10,CalibToolWObj:=wobj0;!移至曲线轨迹终点上方 MoveJ Offs(pSquare_10,0,0,50),vMinSpeed,z10,CalibToolWObj:=wobj0;!移至方形轨迹起始点上方 MoveL pSquare_10,vMinSpeed,fine,CalibToolWObj:=wobj0;!移至方形轨迹起始点位置,并开始执行方形轨迹,下同 MoveL pSquare_20,vMinSpeed,z1,CalibToolWObj:=wobj0; MoveL pSquare_30,vMinSpeed,z1,CalibToolWObj:=wobj0; MoveL pSquare_40,vMinSpeed,z1,CalibToolWObj:=wobj0; MoveL pSquare_50,vMinSpeed,fine,CalibToolWObj:=wobj0; MoveL Offs(pSquare_50,0,0,50),vMinSpeed,z10,CalibToolWObj:=wobj0;!移至方形轨迹终点上方 MoveJ Offs(pTriangle_10,0,0,50),vMinSpeed,z10,CalibToolWObj:=wobj0;!移至三角形轨迹起始点上方 MoveL pTriangle_10,vMinSpeed,fine,CalibToolWObj:=wobj0;!移至三角轨迹起始点位置,并开始执行三角形轨迹,下同 MoveL pTriangle_20,vMinSpeed,z1,CalibToolWObj:=wobj0; MoveL pTriangle_30,vMinSpeed,z1,CalibToolWObj:=wobj0; MoveL pTriangle_40,vMinSpeed,fine,CalibToolWObj:=wobj0; MoveL Offs(pTriangle_40,0,0,50),vMinSpeed,z10,CalibToolWObj:=wobj0;!移至三角形轨迹终点位置 MoveJ Offs(pCycle_10,0,0,50),vMinSpeed,z10,CalibToolWObj:=wobj0;!移至圆形轨迹终点位置 MoveL pCycle_10,vMinSpeed,fine,CalibToolWObj:=wobj0;!移至圆形轨迹起始点位置,并开始执行圆形轨迹,下同 MoveC pCycle_20,pCycle_30,vMinSpeed,z1,CalibToolWObj:=wobj0; MoveC pCycle_40,pCycle_50,vMinSpeed,z1,CalibToolWObj:=wobj0; MoveL Offs(pCycle_40,0,0,50),vMinSpeed,z10,CalibToolWObj:=wobj0;!移至圆形软迹终点上方 MoveL pPractise_Flyby,vMidSpeed,z20,CalibToolWObj:=wobj0; MoveJ pHome,vMidSpeed,fine,GripperWObj:=wobj0; bPractise:=FALSE;!练习模块任务完成,将激活标志位置为FALSEENDPROCTRAP tMode!模块激活中断程序TEST intno!判断当前激活该中断程序的中断数据CASE iPallet: bPallet:=TRUE;!若当前中断数据为码垛模块中断数据,且将码垛模块激活标志为 TRUECASE iFoundry: bFoundry:=TRUE;!若当前中断数据为压铸取件模块中断数据,且将压铸取件模块激活标志为 TRUECASE iPractise: bPractise:=TRUE;!若当前中断数据为练习模块中断数据,且将练习模块激活标志为 TRUEENDTESTENDTRAPPROC PalletTeach()!码垛目标点示教程序,由于在码垛程序运行中没有直接使用这些目标位置作为移动指令的目标点,所以单独编写一个应用于手动示教码垛模块中目标点示教,以便示教 MoveJ pPallet_Pick1,v100,fine,GripperWObj:=wobj0; MoveJ pPallet_Pick2,v100,fine,GripperWObj:=wobj0; MoveJ pPallet_Place1,v100,fine,GripperWObj:=wobj0; MoveJ pPallet_Place2,v100,fine,GripperWObj:=wobj0; MoveJ pPallet_Flyby,v100,fine,GripperWObj:=wobj0; MoveJ pHome,v100,fine,GripperWObj:=wobj0;ENDPROCENDMODULE4 .坐标系标定在此综合平台中有3个工具数据需要进行标定,分别是码垛工具Gr

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论