您现在所在的是:

机器人论坛

回帖:12个,阅读:1869 [上一页] [1] [2] [下一页]
12610
FORELF
文章数:3165
年度积分:914
历史总积分:12610
注册时间:2007/6/22
发站内信
发表于:2016/10/1 0:29:48
#0楼
MODULE MainModule

CONST robtarget
pHome:=[[517.87,-0.01,708.53],[0.506292,-0.4935,0.509881,-0.490049],[-1,0,-1,1],[9E+09,9E+09,9E+09,9E+09,9E+09,9E+09]];     //定义起始点

PROC main()    //主程序
rInitial;    //调用初始化程序
WHILE TRUE DO
 IF  nRunMode=2 THEN      
 rTempCheck;       //调用测温程序
 ELSEIF  nRunMode=1 THEN    //单工位运行方式
 rPick;
 rPlace;
 IF DI03_LoadTest=1 THEN    //单次运行
 STOP;
 ENDIF
 ELSE
 STOP;
 ENDIF
WaitTime 0.5;  
ENDWHILE
ENDPROC

PROC Initial()         //初始化程序
ConfL\On;
ConfJ\On;
rMoveHome;
IF bPickPart=FALSE THEN              //未取件
Reset DO15_ClampClose;      
Reset DO14_ClampOpen;
ELSE
STOP;
EXIT;
ENDIF
Reset DO01_DoorOpenCmd;     //炉门开
Reset DO02_DoorCloseCmd;    //炉门关
Reset DO03_ClampOpenCmd;    //夹具开
Reset DO04_ClampCloseCmd;   //夹具关
Reset DO05_BurnRollFwd;     //加热炉滚筒前进
Reset DO06_FlowFormWork;    //旋压工作
AccSet 100,100;       //加速度设置
VelSet 100, 2000;     //速度设置
ENDPROC

PROC rGripperOpen()        //夹具开
Reset DO04_ClampCloseCmd;      //夹具关复位
Set DO03_ClampOpenCmd;         //夹具开职位
WaitDI DI07_ClampOpened, 1;    //等待开完成
ENDPROC

PROC rGripperClose()      //夹具关
Reset DO03_ClampOpenCmd;
Set DO04_ClampCloseCmd;
WaitTime nClampTime;
ENDPROC

PROC rBurnerOpen()         //炉门开
Reset DO02_DoorCloseCmd;
PulseDO \PLength:=2, DO01_DoorOpenCmd;     //2秒开门脉冲
ENDPROC

PROC rBurnerClose()       //炉门关
Reset DO01_DoorOpenCmd;
PulseDO \PLength:=2, DO02_DoorCloseCmd;     //2秒关门脉冲
IF nRunMode=1 THEN
PulseDO \PLength:=2,DO05_BurnRollFwd;     //加热炉工件前进
ENDPROC

PROC rPick()         //取件
ClkReset clock2;      //循环复位
ClkStart clock2;      //循环计时
rGripperOpen;
MoveJ pHome, vMaxEmpty, Z50, tool0;   //预抓点
WaitDI DI05_BurnerReady,1;     //加热炉就绪
rBurnerOpen;
WaitUntil DI06_BurnOpened=1;
MoveL RelTool(pPick,-pOffsPick{ nProductType}.x,-pOffsPick{ nProductType}.y,-pOffsPick{ nProductType}.z), vMinEmpty, fine, tool0;     \\取件偏移点
rGripperClose;
MoveL RelTool(pPick,-pOffsPick{ nProductType}.x-110,-pOffsPick{ nProductType}.y,-pOffsPick{ nProductType}.z), vMinload, z5, tool0;    \\取件偏移点上移110 MoveJ pPrePick, vMaxEmpty, Z5, tool0;
MoveJ p80, vMaxEmpty, Z5, tool0;
rBurnClose;
IF DI08_ClampClosed=1 THEN
STOP;
EXIT;
ELSE
bPickPart:=TRUE;
ENDIF
rCoolingDown;                 \\冷却
MoveJ pPathToPlace1, vMaxLoad, z5, tool0;      \\去放置路径点1
MoveJ pPathToPlace2, vMaxLoad, z5, tool0;      \\去放置路径点2
MoveJ pPathToPlace3, vMaxLoad, z5, tool0;      \\去放置路径点3

ENDPROC

PROC  rPlace()                  \\放置
MoveJ pPrePlace, vMaxLoad, z10, tGripper;
WaitDI DI02_LoadAllowed,1;
MoveL RelTool(pPlace,0,0,nPrePlaceHeight{ nProductType}), vMidLoad, z5, tool0;    
MoveL RelTool(pPlace,0,0,nPlaceHeight{ nProductType}), vMinLoad, fine, tool0;       \\放置偏移点
rGripperOpen;
MoveL reltool(pPlace,0,0,-1500), vMaxEmpty, z5, tool0;
bPickPart:=FALSE;
MoveJ p240, vMaxEmpty, z5, tool0;                    \\返回路径点1
MoveJ p250, vMaxEmpty, z5, tool0;                    \\返回路径点2
MoveJ p260, vMaxEmpty, z5, tool0;                    \\返回路径点3
MoveJ p270, vMaxEmpty, z5, tool0;                    \\返回路径点4
Reset DO06_FlowFormWork;
count:=count+1;
ClkStop clock2;
lastcycletime:=ClkRead(clock2);          \\单次循环运行时间
IF bShowNumAndTime=1  THEN
TPWrite "No of produced parts="\Num:=count;             \\加工产品数
TPWrite "Time took last cycle="\Num:=lastcycletime;     \\单次循环运行时间
ENDPROC

PROC rTempCheck()      \\温度检测
rMoveHome;
rGripperOpen;        
MoveJ pPrePick, vMaxEmpty, Z50, tool0;    
WaitDI DI05_BurnerReady,1;       \\加热炉准备完成
rFurnaceOpen;
WaitUntil DI06_BurnOpened=1;     \\等待炉门打卡
MoveL offs(pPick,-1000,0,0), vMinEmpty, z10, tool0;
MoveL offs(pPick,pOffsPick{ nProductType}.x,pOffsPick{ nProductType}.y,pOffsPick{ nProductType}.z), vMinEmpty, fine, tool0;
rGripperClose;
MoveL offs(pPick,pOffsPick{ nProductType}.x,pOffsPick{ nProductType}.y,pOffsPick{ nProductType}.z+80), vMinEmpty, fine, tool0;
pActualPos:=CRobT(\Tool:=tool0);
MoveL reltool(pActualPos,0,0,-1600), vMinEmpty, fine, tool0;   \\垂直法兰盘方向偏移
rFurnaceClose;        \\炉门关闭
TPErase;               \\清屏
TPWrite "Time for checking temperature! ";
TPWrite "And return current programm with start button in TPU! ";
STOP;                                 \\测温中继续请按start
rFurnaceOpen;
WaitUntil DI06_BurnOpened=1;
MoveL offs(pPick,pOffsPick{ nProductType}.x,pOffsPick{ nProductType}.y,pOffsPick{ nProductType}.z+80), vMinEmpty, fine, tool0;    \\放置偏移点上方80
MoveL offs(pPick,pOffsPick{ nProductType}.x,pOffsPick{ nProductType}.y,pOffsPick{ nProductType}.z), vMinEmpty, fine, tool0;
rGripperOpen;
MoveL offs(pPick,-1000,0,0), vMinEmpty, Fine, tool0;      \\出炉
rFurnaceClose;     \\关门
rMoveHome;
STOP;
ENDPROC

PROC rCoolingDown()                \\冷却程序
MoveL reltool(pCold,0,0,250),vMidLoad, Z10, tool0;
MoveL reltool(pCold,0,0, nColdHeigh{ nProductType}),vMinLoad, fine, tool0;     \\冷却偏移点
Waittime nColdWaitTime;    \\冷却时间
MoveJ reltool(pCold,0,0,250),vMidLoad, fine, tool0;
ENDPROC

PROC rMoveHome()     \\回原点程序
VAR bool bMoveHome:=TRUE;  
VAR num nTimes:=0;
bMoveHome:=TRUE;
nTimes:=0;
VelSet 100,500;  \\速度设置
IF CurrentPos(pHome,tool0,10) THEN
ELSEIF CurrentPos(pPrePick,tool0,10) THEN      
 ELSEIF CurrentPos(pPrePlace,tool0,10) THEN
  MoveJ p240, vMaxEmpty, z5, tool0;
  MoveJ p250, vMaxEmpty, z5, tool0;
  MoveJ p260, vMaxEmpty, z5, tool0;

ELSEIF CurrentPos(p260,tool0,10) THEN  
 
ENDIF
MoveJ pHome, v500, fine, tool0;
WHILE CurrentPos(pHome,tool0,100)=FALSE DO
TPErase;
TPWrite "Can't find way to home, Please jog robot to home position in Manual mode! ";
TPWrite "And restart again! ";
Stop;                        \\无法自动回原点,请手动回原点
MoveJ pHome, v500, fine, tool0;
EXITCYCLE;
ENDWHILE
ENDPROC
let me go任我行
6283
919355607
文章数:1865
年度积分:50
历史总积分:6283
注册时间:2011/11/28
发站内信
发表于:2016/10/2 8:05:26
#1楼
表示看不懂
16103
wml0060
文章数:4909
年度积分:96
历史总积分:16103
注册时间:2007/6/8
发站内信
发表于:2016/10/3 15:24:28
#2楼
感谢楼主分享,这么详细的使用资料。
10559
243604901
文章数:3738
年度积分:83
历史总积分:10559
注册时间:2012/8/18
发站内信
2016国庆活动(三)
发表于:2016/10/4 22:59:38
#3楼
以下是引用9193556072016/10/2 8:05:26的发言:
表示看不懂
全当天书看了
非淡泊无以明志,非宁静无以致远。
17124
gf2003129
文章数:10760
年度积分:50
历史总积分:17124
注册时间:2007/9/2
发站内信
发表于:2016/10/6 11:17:20
#4楼
还是有几句看不懂
做什么事贵在坚持!
12610
FORELF
文章数:3165
年度积分:914
历史总积分:12610
注册时间:2007/6/22
发站内信
发表于:2016/10/7 19:06:20
#5楼
都是些很基本的用法,不明白的地方翻翻编程手册就知道了。
let me go任我行
443
denhou521
文章数:7
年度积分:50
历史总积分:443
注册时间:2018/6/16
发站内信
发表于:2018/10/27 22:55:18
#6楼
楼主哪里搞的程序
12610
FORELF
文章数:3165
年度积分:914
历史总积分:12610
注册时间:2007/6/22
发站内信
发表于:2018/10/30 11:28:50
#7楼
以下是引用denhou5212018/10/27 22:55:18的发言:
楼主哪里搞的程序

自己搞的,又不复杂,用户是三门峡戴卡轮毂。
443
denhou521
文章数:7
年度积分:50
历史总积分:443
注册时间:2018/6/16
发站内信
发表于:2018/11/7 20:39:42
#8楼
回复 #7楼 FORELF
请教下,ABB机器人备份文件拷到电脑后,用什么软件可以直接打开的
12610
FORELF
文章数:3165
年度积分:914
历史总积分:12610
注册时间:2007/6/22
发站内信
发表于:2018/11/7 22:36:42
#9楼
以下是引用denhou5212018/11/7 20:39:42的发言:
请教下,ABB机器人备份文件拷到电脑后,用什么软件可以直接打开的

robotware,ABB官方软件。
程序可以直接用记事本打开。

关于我们 | 联系我们 | 广告服务 | 本站动态 | 友情链接 | 法律声明 | 非法和不良信息举报

工控网客服热线:0755-86369299
版权所有 工控网 Copyright©2024 Gkong.com, All Rights Reserved

93.6006