ABB机器人程序实例
更新时间:2023-11-08 17:27:01 阅读量: 教育文库 文档下载
MODULE MainModule
CONST
robtarget
pHome:=[[1525.42,272.18,1873.69],[4.42963E-05,0.699969,-0.714173,-2.80277E-05],[0,-1,-1,0],[9E+09,9E+09,9E+09,9E+09,9E+09,9E+09]];
CONST
robtarget
pPrePickMould:=[[1653.99,272.19,1779.41],[5.83312E-05,0.69997,-0.714172,-3.47922E-05],[0,-1,-1,0],[9E+09,9E+09,9E+09,9E+09,9E+09,9E+09]];
CONST
robtarget
pPrePickClapboard:=[[2036.17,-741.24,1235.05],[0.678651,0.73435,-0.0119011,0.00467586],[-1,-2,2,0],[9E+09,9E+09,9E+09,9E+09,9E+09,9E+09]];
CONST
robtarget
pPickMould:=[[1943.13,173.08,630.89],[4.66987E-05,0.699977,-0.714166,-3.24109E-05],[0,-1,-1,0],[9E+09,9E+09,9E+09,9E+09,9E+09,9E+09]];
CONST
robtarget
pPickClapboard:=[[1943.19,173.08,620.72],[1.61422E-05,0.699977,-0.714165,-7.62858E-06],[0,-1,-1,0],[9E+09,9E+09,9E+09,9E+09,9E+09,9E+09]];
CONST
robtarget
pPrePlace:=[[785.90,-957.40,1722.38],[0.00231652,0.0492402,-0.998779,-0.00310842],[-1,-1,-1,0],[9E+09,9E+09,9E+09,9E+09,9E+09,9E+09]];
CONST
robtarget
pPrePlace10:=[[-277.40,-1202.57,1621.17],[0.00183571,-0.0139794,-0.999895,-0.00341408],[-2,-1,-2,0],[9E+09,9E+09,9E+09,9E+09,9E+09,9E+09]];
CONST
robtarget
pPrePlace20:=[[-491.18,-1082.85,1505.90],[0.000663644,0.69408,0.719887,0.00386364],[-2,0,-1,0],[9E+09,9E+09,9E+09,9E+09,9E+09,9E+09]];
CONST
robtarget
pPlaceMould:=[[-92.13,-2580.19,1171.45],[0.000771646,0.713144,0.701007,0.00383692],[-2,0,-1,0],[9E+09,9E+09,9E+09,9E+09,9E+09,9E+09]];
CONST
robtarget
pPlaceClapboard:=[[1585.08,1761.04,787.33],[0.00645323,-0.00552996,-0.726358,-0.687263],[0,1,-1,0],[9E+09,9E+09,9E+09,9E+09,9E+09,9E+09]];
CONST
robtarget
pPrePlaceClapboard:=[[1017.30,955.85,1443.17],[1.0621E-05,-0.00849593,-0.999964,4.01139E-05],[0,-1,0,0],[9E+09,9E+09,9E+09,9E
+09,9E+09,9E+09]]; CONST
robtarget
pPrePickClapboard10:=[[2257.17,-841.03,1579.56],[0.667517,0.74457,-0.00360206,0.00487631],[-1,-1,2,0],[9E+09,9E+09,9E+09,9E+09,9E+09,9E+09]]; CONST
robtarget
pPrePickMould10:=[[530.24,-1703.27,1762.63],[5.07659E-05,0.96161,0.274421,2.37287E-05],[-1,0,0,0],[9E+09,9E+09,9E+09,9E+09,9E+09,9E+09]];
CONST num nOffs:=100; PERS num nCurOffs:=100; CONST num nLayer:=0; PERS num nCurLayer:=0; CONST num nThickness:=40; VAR bool bTimeOut:=FALSE; PERS bool bDryCycle:=FALSE; VAR intnum iDryCycle; VAR intnum iResDryCycle; VAR intnum iVacuum; PERS
tooldata
tGripper:=[TRUE,[[0,0,100],[1,0,0,0]],[88.5,[-3.7,-1.4,132.1],[1,0,0,0],5.5,17.831,25.067]];
PROC main() rInitAll;
WHILE TRUE DO
IF siDryCycle=1 or nCurLayer<1 then rPickClapboard; ELSE rPickMould; ENDIF
Waittime 0.2;
ENDWHILE ENDPROC
PROC rPickMould()
DIWait diMouldready,1,3,\Conveyer\for
pick\
DIWait diPlaceReady,1,3,\Conveyer\for
remove\
MoveJ pPrePickMould, v1500, z50, tGripper; IF BitCheck(nCurlayer,1) THEN
nCurOffs:=nOffs; ELSE
nCurOffs:=-nOffs; ENDIF MoveL
offs(pPickMould,0,nCurOffs,100+nCurLayer*nThickness), v1000, z50, tGripper;
MoveL
offs(pPickMould,0,nCurOffs,(nCurLayer-1)*nThickness), v200, fine, tGripper;
GripClose; Decr nCurLayer; MoveL
v200,
offs(pPickMould,0,nCurOffs,100+nCurLayer*nThickness), z50, tGripper;
MoveJ pPrePickMould, v1000, z50, tGripper;
DIWait diPlaceReady,1,3,\Conveyer\for
remove\
MoveJ pPrePlace10, v1500, z10, tGripper;
MoveL offs(pPlaceMould,0,0,100), v1500, z10, tGripper; MoveL pPlaceMould, v200, fine, tGripper; GripOpen;
MoveL offs(pPlaceMould,0,0,100), v200, z10, tGripper;
MoveL pPrePlace10, v1500, z10, tGripper;
MoveJ pPrePickMould, v1500, z10, tGripper; PulseDO\\PLength:=2, doMouldPlaceOK;
ENDPROC
PROC rPickClapboard()
DIWait diMouldready,1,3,\Conveyer\for
pick\
MoveL offs(pPickClapboard,0,0,100), v1000, z50, tGripper;
MoveL pPickClapboard, v200, fine, tGripper; GripClose;
MoveL offs(pPickClapboard,0,0,100) ,v200, z50, tGripper;
MoveL offs(pPickClapboard,0,0,500) ,v1000, z50, tGripper;
MoveL pPrePlaceClapboard, v1000, z10, tGripper;
DIWait diClapboardReady, 1, 3, \Conveyer\\
for remove\
MoveL offs(pPlaceClapboard,-700,-200,250), v1000, z10,
tGripper;
MoveL offs(pPlaceClapboard,00,-10,100), v1000, z10,
tGripper;
MoveL pPlaceClapboard, v100, fine, tGripper;
GripOpen;
MoveL offs(pPlaceClapboard,0,-50,100), v1000, z10,
tGripper;
MoveL offs(pPlaceClapboard,-700,-200,250), v1000, z10,
tGripper;
MoveL pPrePlaceClapboard, v1000, z10, tGripper; PulseDO\\PLength:=1.0, doClapboardPickOK; MoveJ pHome, v1500, fine, tGripper;
PulseDO\\PLength:=1.0, doUnStackOk; WaitTime 2;
DIWait diMouldready,0,3,\Conveyer\for
remove\ nCurLayer:=nLayer; ENDPROC PROC rInitAll()
IF diVacuum1=0 THEN
WaitTime 1;
ELSE
ErrWrite \Rob1 gripper error! \is not opened!\the gripper signal postion .\open the gripper manually and take away the part from gripper.\ Stop; Exit;
ENDIF
rMoveHome; nCurLayer:=nLayer; IDelete iVacuum;
CONNECT iVacuum WITH tLostPart; ISignalDI diVacuum1, 1, iVacuum; ISleep iVacuum;
ENDPROC ROC GripClose()
SetDO doVacuum,1; SetDO doBlow,0; WaitUntil
diVacuum1=1\\MaxTime:=10\\TimeFlag:=bTimeOut;
IF bTimeOut THEN
ErrWrite \Gripper\
a new sensor .\ Stop;
ENDIF
Waittime 0.5; IWatch iVacuum;
ENDPROC PROC GripOpen() ISleep iVacuum;
SetDO doVacuum,0;
PulseDO \\PLength:=2.0, doBlow; WaitUntil
diVacuum1=0
\\MaxTime:=5\\TimeFlag:=bTimeOut;
IF bTimeOut THEN
ErrWrite \Gripper\a new sensor .\ Stop;
ENDIF
Waittime 0.5;
ENDPROC
PROC rMoveHome()
VAR string HomeOffset; CONST num MinX:=-500; CONST num MaxX:=500; CONST num MinY:=-500; CONST num MaxY:=500; CONST num MinZ:=500; CONST num MaxZ:=1200; VAR robtarget ActualPos; VelSet 100,500; AccSet 70, 70;
IF bCurrentPos(pHome,tGripper,50)=TRUE THEN MoveJ pHome,v500,fine,tGripper\\WObj:=wobj0; ENDIF
IF bCurrentPos(pPrePickMould,tGripper,50\\wobj:=Wobj0)= TRUE THEN
MoveJ pHome,v500,fine,tGripper\\WObj:=wobj0; ENDIF IF
bCurrentPos(pPrePickClapboard,tGripper,100\\wobj:=Wobj0)= TRUE THEN
MoveJ pHome,v500,fine,tGripper\\WObj:=wobj0; ENDIF
HomeOffset:=HomeOffset+\ ENDIF
IF ActualPos.trans.y HomeOffset:=HomeOffset+\:\y,0)+\ ELSEIF ActualPos.trans.y>MaxY THEN HomeOffset:=HomeOffset+\:\.y,0)+\ ELSE HomeOffset:=HomeOffset+\ ENDIF IF ActualPos.trans.z HomeOffset:=HomeOffset+\:\z,0)+\ ELSEIF ActualPos.trans.z>MaxZ THEN HomeOffset:=HomeOffset+\z,0)+\ ELSE HomeOffset:=HomeOffset+\ ENDIF ErrWrite HomeOffset,\robot manually near homeposition\ WHILE OpMode()<>OP_MAN_PROG DO TPErase; TPWrite \ !TPErase; Stop; ENDWHILE Stop; MoveJ pHome,v500,fine,tGripper; !npallet:=4; ActualPos:=CRobT(\\Tool:=tGripper\\WObj:=wobj0); WHILE OpMode()<>OP_AUTO DO TPErase; TPWrite \ !TPErase; Stop; ENDWHILE ENDIF ENDIF VelSet 100,3000; ENDPROC TRAP tLostPart ErrWrite \ lost!\ ,\ error in Gripper\ Stop; ENDTRAP ENDMODULE
正在阅读:
ABB机器人程序实例11-08
创建“xx家庭”工作经验交流会主持词09-13
光合作用练习含答案04-23
中小企业成本控制存在的问题及对策01-20
高中数学复数知识点及练习08-14
食品分析试卷 - 食品分析11-18
以变为话题的作文800字(优秀6篇)03-27
第二章 城市职能和城市性质11-19
20世纪西方文论终极笔记11-12
心理学作业03-15
- exercise2
- 铅锌矿详查地质设计 - 图文
- 厨余垃圾、餐厨垃圾堆肥系统设计方案
- 陈明珠开题报告
- 化工原理精选例题
- 政府形象宣传册营销案例
- 小学一至三年级语文阅读专项练习题
- 2014.民诉 期末考试 复习题
- 巅峰智业 - 做好顶层设计对建设城市的重要意义
- (三起)冀教版三年级英语上册Unit4 Lesson24练习题及答案
- 2017年实心轮胎现状及发展趋势分析(目录)
- 基于GIS的农用地定级技术研究定稿
- 2017-2022年中国医疗保健市场调查与市场前景预测报告(目录) - 图文
- 作业
- OFDM技术仿真(MATLAB代码) - 图文
- Android工程师笔试题及答案
- 生命密码联合密码
- 空间地上权若干法律问题探究
- 江苏学业水平测试《机械基础》模拟试题
- 选课走班实施方案
- 机器人
- 实例
- 程序
- ABB
- 朱进忠中医的医案
- 重新发现中国:清帝国的意识形态与二十世纪初现代中国民族身份认同的兴起
- (TED英文演讲)如何实现工作与生活的平衡 - 观后感
- windows安装与配置习题及答案
- 金沙小学关于校园安全管理的调研报告2
- 材料科学基础经典习题及答案
- 16秋福建师范大学《综合自然地理》在线作业一
- 安全生产月活动计划1(1)
- 沪科版 九年级物理 电阻与变阻器 习题
- 2014年造价员《安装工程》练习题1
- 第二节 表面活性剂的分类
- 电大实用写作复习题(本、专通用)
- 授课教案- 长江大学园艺园林学院 首页 - 图文
- 大学英语(3-下)模拟试卷1低版
- 2018-2019学年最新高中数学3.2.2第1课时对数函数的图象与性质同步检测新人教B版必修1
- 电脑印刷设计第二章重点知识归纳
- 坚持以人为本理念,创新企业思想政治工作
- 中国工业的强大远远超出你的想象,这才是中国的底气
- itss工程师试卷及答案
- 车牌识别文献综述