【一】:系统介绍

中文手册:http://samwangpan01.club:8081/externalLinksController/chain/ABB%E6%9C%BA%E5%99%A8%E4%BA%BA%E4%B8%AD%E6%96%87%E6%89%8B%E5%86%8C.pdf?ckey=7GLNrf1%2BOQSWcq5sVS%2FgnB8vkb7KlFdiqF%2BhMQLd6YxkLw7tWFYKqFXOj3TRqlE5

RobotStudio6.08下载地址备份:

http://samwangpan01.club:8081/externalLinksController/chain/ABB%E6%9C%BA%E5%99%A8%E4%BA%BA%E8%BD%AF%E4%BB%B6RobotStudio_6.08.rar?ckey=UFYiQy57v1B0KlKgHhda9IUKbuLFwKn7%2FBdsOio1MxPVyWTSHhBjKN0KFvWJ1JBX

abb机器人简介(百度文库): https://wenku.baidu.com/view/845ae63a5afb770bf78a6529647d27284b733763.html?rec_flag=default&word=abb%E6%9C%BA%E5%99%A8%E4%BA%BA%E6%95%85%E9%9A%9C%E5%A4%84%E7%90%86&fr=pc_newview_relate-1001_1-2-wk_rec_doc2-1001_1-2-845ae63a5afb770bf78a6529647d27284b733763

S1: IRB6

S2: IRB60   IRB90

S3: IRB1500   IRB2000   IRB3000   IRB6000

S4: IRB1400   IRB2400   IRB4400   IRB6400

S4C: IRB1400   IRB2400   IRB4400   IRB5400   IRB6400

S4Cplus: IRB1400   IRB2400   IRB4400   IRB5400   IRB6600   IRB7600

IRC5:  IRB1400   IRB2400   IRB4400   IRB5400   IRB6600   IRB7600

IRB1400 最大工作半径1444mm,最大承载5kg

IRB2400 最大工作半径1550-1810mm,最大承载5-16kg

IRB4400 最大工作半径1955-2745mm,最大承载10-60kg

IRB6400 最大工作半径2250-3000mm,最大承载75-200kg

IRB6400R 最大工作半径2469-2999mm,最大承载120-200kg

IRB6600/6650 最大工作半径2550-3200mm,最大承载125-225kg

IRB7600 最大工作半径2300-3500mm,最大承载150-500kg

IRB140 最大工作半径810mm,最大承载5kg

IRB640 四轴堆垛专用机器人,最大工作半径2905mm,最大承载160kg

IRB340 三轴或四轴分拣专用机器人,最大工作半径566mm,最大承载1kg

IRB840(0) 龙门架机械手工作范围很大,最大承载12000kg

IRB940 铸造行业专用机器人,垂直最大承载1300kg,水平承载350kg

IRB5400; IRB540; IRB5300; IRB500; IRB5600; IRB580; T10/F10 Trolley; T20 Trolley; T10/F20 Trolley 喷涂机器人,承载5-35kg,工作半径2813mm

1.控制系统Controller

计算机系统包括。
Robot computer board :机器人计算机板,控制运动与输入/输出通讯。
Memory board: 存贮板,增加额外的内存。
Main computer board: 主计算机板,含 8M 内存,控制整个系统。
Optional boards: 选项板
Communication boards:通讯板, 用于网络或现场总线通讯
Supply unit: 供电单元,整流输出电压及短路保护。
驱动系统包括:
DC link:
将三相交流电转换为三相直流
Drive module : 控制 2-3 根轴的转距。
Lithium batteries: 锂电池,存贮备用电源。
Panel unit:
面板单元,处理所有影响安全与操作的信号。
I/O units :
输入/输出单元。
Serial measurement board (in the manipulator):
串行测量板,收集并传送电机位置信息。

【二】:示教器功能介绍


2、窗口键:(Windowkeys)

Jogging   -操纵窗口手动状态下,用来操纵机器人。显示屏上显示机器人相对位置及当前座标系。
  rogram-编程窗口手动状态下,用来编程与测试。所有编程工作都在编程窗口中完成。
  Input/Outputs-输入/输出窗口显示输入输出信号表与其数值。可手动给输出信号赋值。
  Misc.-其他窗口:包括系统参数、服务、生产以及文件管理窗口。
3、导航键:(Navigationkeys)
  List    -切换键将光标在窗口的几个部分间切换。(通常由双实线分隔)
  extPage-向下翻页键将光标向下快速移动。
  reviousPage-向上翻页键将光标向上快速移动。
  Uparrows-光标上移键将光标向上单步移动。
  Downarrows-光标下移键将光标向下单步移动。
  Leftarrows-光标左移键将光标向左单步移动。
  Rightarrows-光标右移键将光标向左单步移动。
4、运动控制键:(Motionkeys)
  MotionUnit-运动单元切换键手动状态下,操纵机器人本体与机器所控制的其他机械装置(外轴)之间的切换。
  MotionType1-运动模式切换键1直线运动与姿态运动切换键。
  直线运动是指机器人TCP沿座标系X、Y、Z轴方向作直线运动。
  姿态运动是指机器人TCP在座标系中X、Y、Z轴数值不变,只沿着X、Y、Z轴旋转,改变姿态。
  MotionType2-运动模式切换键2单轴运动选择键。
  ·第一组:1、2、3轴
  ·第二组:4、5、6轴
  Incremental-点动操纵键
  启动或关闭点动操纵功能,从而控制机器人手动运行时速度。
5、其他键:(Otherkeys)
  top-停止键停止机器人程序运行。
  Contrast-光亮键调节显示器对比度。
  MenuKeys-菜单键显示下拉式菜单(热键),共有五个菜单键,显示包含各种命令的菜单。
  Functionkeys-功能键直接选择功能(热键),共有五个功能键,直接选择各种命令。
  Delete-删除键删除显示屏所选数据,机器人操作时,所要删除任何数据、文件、目录等,都用此键。
  Enter-回车键进入光标所示数据。
6、自定义键:(Programmablekeys)
  P1-P5这五个自定义键的功能可由程序员自定义,每个键可以控制一个模拟输入信号或一个输出信号以及其端口。

【三】:安全链(绝对禁止对安全链进行短接、定义或修改)

【四】:papid语言 基本指令介绍与示例

1.MovJ 关节运动:MoveL [\Conc,] ToPoint, Speed[\V]|[\t],  Zone[\Z][\Inpos], Tool[\WObj];

2.MovL 线性运动:MoveL [\Conc,]ToPoint, Speed[\V]|[\T], Zone[\Z][\Inpos], Tool[\WObj][\Corr];

例1:画一个方形,每圈向外移动10

MODULE Module1CONST robtarget p10:=[[931.61,46.87,1472.75],[0.768115,0.0441544,0.636333,0.0559423],[0,0,-1,0],[9E+09,9E+09,9E+09,9E+09,9E+09,9E+09]];VAR num K:=0;VAR num i:=0;PROC main()i := 0;                !循环标志位,i=0FOR i FROM 1 TO 5 DO   !循环5圈K := -i*10;        !每圈向外10MoveL offs(p10,k,0,-500),v500,fine,tool0;   !xyz分别是k,0,-500;速度是500MoveL offs(p10,K,400,-500),v500\V:=1000,z40\Z:=45,tool0;MoveL offs(p10,K,400,150),v500,z40,tool0;MoveL offs(p10,K,0,150),v500,z40,tool0;MoveL offs(p10,K,0,-500),v500,z40,tool0;ENDFORENDPROC
ENDMODULE

3.MovC 圆弧运动:MoveC[\Conc,] CirPoint, ToPoint, Speed[\V]|[\t], Zone[\Z][\Inpos], Tool[\WObj][\Corr];

[\Conc,]: 协作运动开关。(switch);

CirPoint:中间点,默认为*。(robotarget);

ToPoint:目标点,默认为*。(robotarget);

Speed:运行速度。(speeddata);    [\V]:特殊运行速度mm/s。(num);   [\T]运行时间控制。(num);

Zone:运行转角数据。(zonedata); [\Z]:特殊运行转角mm。(num);    [\Inpos]:运行停止点数据。(stoppointdata);

Tool:工具中心点(TCP)。(tooldata);[\WObj]:工件坐标系。(wobjdata);[\Corr]:修正目标点开关。(switch);

例1:画一个圆

MODULE Module1!CONST robtarget p10:=[[931.61,246.87,1472.75],[0.768115,0.0441544,0.636333,0.0559423],[0,0,-1,0],[9E+9,9E+9,9E+9,9E+9,9E+9,9E+9]];VAR num i:=0;TASK PERS wobjdata wobjTable:=[FALSE,TRUE,"",[[0,0,0],[1,0,0,0]],[[0,0,0],[1,0,0,0]]];TASK PERS tooldata tool1:=[TRUE,[[0,0,0],[1,0,0,0]],[-1,[0,0,0],[1,0,0,0],0,0,0]];CONST robtarget p1:=[[931.61,567.83,1239.40],[0.768115,0.0441542,0.636333,0.055942],[0,0,-1,0],[9E+9,9E+9,9E+9,9E+9,9E+9,9E+9]];CONST robtarget p2:=[[931.61,-17.19,1476.60],[0.768115,0.0441543,0.636333,0.0559421],[-1,-1,0,0],[9E+9,9E+9,9E+9,9E+9,9E+9,9E+9]];CONST robtarget p3:=[[931.61,-506.46,1144.68],[0.768116,0.0441543,0.636333,0.0559421],[-1,-1,0,0],[9E+9,9E+9,9E+9,9E+9,9E+9,9E+9]];CONST robtarget p4:=[[931.61,80.26,875.84],[0.768115,0.0441544,0.636333,0.0559421],[0,0,0,0],[9E+9,9E+9,9E+9,9E+9,9E+9,9E+9]];PROC main()i := 0;FOR i FROM 1 TO 5 DO   MoveL p1,v500,fine,tool0;MoveC p2,p3,v500,z20,tool0;MoveC p4,p1,v500,fine,tool0;ENDFORENDPROC
ENDMODULE

4.信号输出:机器人运动至目标点,并在目标点输出相应信号

MoveJDO ToPoint, Speed[\T], Zone, Tool[\WObj], Signal, Value;

MoveLDO ToPoint, Speed[\T], Zone, Tool[\WObj], Signal, Value;

MoveCDO CirPoint, ToPoint, Speed[\T], Zone, Tool[\WObj], Signal, Value;

Signal:数字输出信号名称。(signaldo);

Value:数字输出信号值。(dionum);

4.1.Reset OUT10; 信号输出0。  Set 信号输出1。

4.2.InvertDO OUT10; 信号反转。

例1:

   PROC main()IDelete intno1;IDelete intno2;CONNECT intno1 WITH MyExti1;CONNECT intno2 WITH MyExti2;ISignalDI IN10, 1, intno1;ISignalDI IN20, 1, intno2;WHILE TRUE DOIF regint1=1 THENregint1:=regint1-1;!InvertDO OUT10;MoveL offs(p10,k,0,-500),v2000,fine,tool0;   MoveL offs(p10,K,400,-500),v2000\V:=1000,z40\Z:=45,tool0;MoveL offs(p10,K,400,150),v2000,z40,tool0;MoveL offs(p10,K,0,150),v2000,z40,tool0;MoveLDO offs(p10,K,0,-500),v2000,z40,tool0,OUT10,1;ELSEIF regint2=1 THENregint2:=regint2-1;InvertDO OUT20;MoveL p1,v2000,fine,tool0;MoveC p2,p3,v2000,z20,tool0;MoveC p4,p1,v2000,fine,tool0; ELSEReset OUT10;Reset OUT20;ENDIFENDWHILEENDPROCTRAP MyExti1regint1:=regint1+1;ENDTRAPTRAP MyExti2regint2:=regint2+1;ENDTRAP

5.调用相应例行程序指令:机器人运动至目标点,并在目标点调用相应例行程序

MoveJSync ToPoint, Speed[\T], Zone, Tool[\WObj], Proc;

MoveLSync ToPoint, Speed[\T], Zone, Tool[\WObj], Proc;

MoveCSync CirPoint, ToPoint, Speed[\T], Zone, Tool[\WObj], Proc;

CirPoint:中间点,默认为*。(robotarget);

ToPoint:目标点,默认为*。(robotarget);

Speed:运行速度。(speeddata);    [\V]:特殊运行速度mm/s。(num);   [\T]运行时间控制。(num);

Zone:运行转角数据。(zonedata); [\Z]:特殊运行转角mm。(num);    [\Inpos]:运行停止点数据。(stoppointdata);

Tool:工具中心点(TCP)。(tooldata);[\WObj]:工件坐标系。(wobjdata);[\Corr]:修正目标点开关。(switch);

Proc:例行程序名称。(string);

用指令Stop停止当前指令运行,会出现一个错误信息,如需避免,采用指令StopInstr。

不能使用此指令来调用中断处理程序TRAP,不能但不执行此指令所调用的例行程序PROC。

6.MoveAbsJ 移动机械臂至绝对位置 MoveAbsJ [Conc,] ToJointPos[\NoEOffs], Speed[\V]|[\T], Zone[\Z][\Inpos], Tool[WObj];

MODULE Module1VAR num i:=0;CONST jointtarget p100:=[[37.6131,10.5047,7.03996,59.9717,-46.3082,-58.3159],[9E+9,9E+9,9E+9,9E+9,9E+9,9E+9]];CONST jointtarget p110:=[[-35.2865,8.06415,7.40231,-53.7255,-39.571,61.2511],[9E+9,9E+9,9E+9,9E+9,9E+9,9E+9]];CONST jointtarget p120:=[[-35.4623,27.1492,55.474,-32.0575,-76.4809,23.2391],[9E+9,9E+9,9E+9,9E+9,9E+9,9E+9]];CONST jointtarget p130:=[[50.0835,42.6387,47.1232,51.5741,-78.9401,-28.6567],[9E+9,9E+9,9E+9,9E+9,9E+9,9E+9]];CONST jointtarget p140:=[[-65.7798,-0.0497541,-8.7633,-76.5653,-61.5277,96.468],[9E+9,9E+9,9E+9,9E+9,9E+9,9E+9]];PROC main()i := 0;FOR i FROM 1 TO 500000 DO   MoveAbsJ p100, v2000, fine, tool0;MoveAbsJ \Conc, p110\NoEOffs, v500, fine, tool0;MoveAbsJ p120,v2000\V:=1000, z40\Z:=45, tool0;MoveAbsJ p130,v2000, z40, tool0\WObj:=wobj0;MoveAbsJ p140,v2000, fine\Inpos:=inpos50, tool0;ENDFORENDPROC
ENDMODULE

【五】:papid语言 其它指令使用

一:外轴指令

外轴激活ActUnit;外轴失效DeactUnit;

1.ActUnit m7dm1; 外轴激活。 2.DeactUnit m7dm1; 外轴失效(m7dm1是自己定义的外轴)

关于外部轴如何配置:https://blog.csdn.net/qq_35831134/article/details/106871946

例1:导轨移动,p100和p110是定义导轨移动的2个位置

   PROC main()IDelete intno1;IDelete intno2;CONNECT intno1 WITH MyExti1;CONNECT intno2 WITH MyExti2;ISignalDI IN10, 1, intno1;ISignalDI IN20, 1, intno2;WHILE TRUE DOIF regint1=1 THENregint1:=regint1-1;InvertDO OUT10;ActUnit m7dm1;MoveL p100,v2000,fine,tool0; MoveL p110,v2000,fine,tool0; DeactUnit m7dm1;MoveL offs(p10,k,0,-500),v2000,fine,tool0;   MoveL offs(p10,K,400,-500),v2000\V:=1000,z40\Z:=45,tool0;MoveL offs(p10,K,400,150),v2000,z40,tool0;MoveL offs(p10,K,0,150),v2000,z40,tool0;MoveL offs(p10,K,0,-500),v2000,z40,tool0;ELSEIF regint2=1 THENregint2:=regint2-1;InvertDO OUT20;MoveL p1,v2000,fine,tool0;MoveC p2,p3,v2000,z20,tool0;MoveC p4,p1,v2000,fine,tool0; ELSEReset OUT10;Reset OUT20;ENDIFENDWHILEENDPROCTRAP MyExti1regint1:=regint1+1;ENDTRAPTRAP MyExti2regint2:=regint2+1;ENDTRAP

二:输入输出指令

如何配置IO板:https://blog.csdn.net/qq_35831134/article/details/107098972

对信号名称进行化名AliasIO;信号反转InvertDO; IO板失效IODisable;IO板激活IOEnable;脉冲信号PulseDO;信号为低电平Reset;高电平Set;模拟输出SetAO;组合延时输出SetDO;延时输出SetGO;等待输入信号满足相应值WaitDI;等待输出信号满足响应值WaitDO;

1. AliasIO config_do,alias_do;(config_do:在系统参数内定义,alias_do:在程序内定义)。

2. InvertDO OUT10; (OUT10:IO名称)。IODisable "cell",5;(cell:信号板名称,5:最长等待时间)。

3. IOEnable "cell",0;。

4. PulseDO\High\PLength do10;(High:输出脉冲时信号可以在高电平,PLength :脉冲长度,do10:IO名称)。

5. SetAO AO10,5;(AO10信号名称,5:值)。

6. SetDO\SDelay:=0.2,weld,high;(SDelay:延时s,weld:信号名称,high:值)。

7. SetGO\SDelay:=0.2,go_Type,10;(SDelay:延时s,Type:信号名称,10:值)。

8. WaitDI di_Ready,1;(等待输入信号为1才执行后面的指令)

9. WaitDI di_Ready,1\MaxTime:=5;(等待输入信号,5秒内无输入di_Ready为1,自动运行Error Handler处理,如果没有Error就报错)。

10. WaitDI di_Ready,1\MaxTime:=1\Timeflag:=bTimeout;(等待输入信号,1秒内无输入di_Ready为1,机器人执行后面指令,但此时TimeFlag的值为TRUE;如果在1秒内等到输入信号,TimeFlag的值为FALSE)。

11. WaitDO(与输入原理一样)。

三:停止指令

在当前指令行立即停止,运行指针停在下一行Break;停止运行并重置Exit;在当前指令行停止运行,指针停在下一行Stop;在当前指令行立即停止运行,当前循环结束,并从主程序第一行继续进行下一个循环ExitCycle;

四:计时指令

时钟复位ClkReset;时钟开始ClkStart;时钟停止ClkStop;

例1:计算出画一个圆所用的时间nCycleTime

ClkReset clock1;
ClkStart clock1;
MoveL p1,v2000,fine,tool0;
MoveC p2,p3,v2000,z20,tool0;
MoveC p4,p1,v2000,fine,tool0;
ClkStop clock;
nCycleTime:=ClkRead(clock1);
TPWrite "Last cycletime:"\Num:=nCycleTime;

五:计数指令

加Add;清零Clear;加加Incr;减减Decr;

Add reg1,3;(等同于reg1:=reg1+3)。Clear reg1;(等同于reg1:=0)。Incr reg1(等同于reg1:=reg1+1)。Decr(相当于C语言里面-。-)

六:中断指令

CONNECT;IDelete;ISignalDI;ISignalDO;ISignalAI;ISignalAO;ISleep;IWatch;IDisable;IEnable;ITimer;

例1:IDelete外部中断,IN10和IN20来触发中断程序改变相应标志位 来执行死循环里面程序

PROC main()
       IDelete intno1;                                  !IDelete中断
       CONNECT intno1 WITH MyExti1;  !调用外部中断函数
       ISignalDI IN10, 1, intno1;     !外部中断所映射IO为IN10
       WHILE TRUE DO                  !循环判断标志位状态
            IF regint1=1 THEN           !判断标志位状态
               regint1:=regint1-1;        !清除标志位
               MoveL p1,v2000,fine,tool0;
               MoveC p2,p3,v2000,z20,tool0;
               MoveC p4,p1,v2000,fine,tool0; 
            ELSE
               Reset OUT10;
            ENDIF
       ENDWHILE
   ENDPROC
   TRAP MyExti1                   !定义的中断函数
         regint1:=regint1+1;   !改变标志位
   ENDTRAP

MODULE Module1CONST robtarget p10:=[[1203.52,0.00,1092.05],[0.676581,0.112147,0.72011,0.105368],[0,0,0,0],[9E+9,9E+9,9E+9,9E+9,9E+9,9E+9]];CONST robtarget p1:=[[1196.82,-300.08,956.44],[0.676581,0.112147,0.72011,0.105368],[-1,-1,0,0],[9E+9,9E+9,9E+9,9E+9,9E+9,9E+9]];CONST robtarget p2:=[[1203.52,0.00,1092.05],[0.676581,0.112147,0.72011,0.105368],[0,0,0,0],[9E+9,9E+9,9E+9,9E+9,9E+9,9E+9]];CONST robtarget p3:=[[1196.82,304.63,956.44],[0.676581,0.112147,0.72011,0.105368],[0,0,-1,0],[9E+9,9E+9,9E+9,9E+9,9E+9,9E+9]];CONST robtarget p4:=[[1196.82,0.00,750.21],[0.676581,0.112147,0.72011,0.105368],[0,0,0,0],[9E+9,9E+9,9E+9,9E+9,9E+9,9E+9]];VAR num K:=0;VAR num regint1:=0;VAR num regint2:=0;VAR intnum intno1:=0;VAR intnum intno2:=0;CONST robtarget p100:=[[1196.82,-300.08,956.44],[0.676581,0.112147,0.72011,0.105368],[-1,-1,0,0],[97.5137,9E+9,9E+9,9E+9,9E+9,9E+9]];CONST robtarget p110:=[[1196.82,-300.08,956.44],[0.676581,0.112147,0.72011,0.105368],[-1,-1,0,0],[1828.95,9E+9,9E+9,9E+9,9E+9,9E+9]];PROC main()IDelete intno1;IDelete intno2;CONNECT intno1 WITH MyExti1;CONNECT intno2 WITH MyExti2;ISignalDI IN10, 1, intno1;ISignalDI IN20, 1, intno2;WHILE TRUE DOIF regint1=1 THENregint1:=regint1-1;InvertDO OUT10;ActUnit m7dm1;MoveL p100,v2000,fine,tool0; MoveL p110,v2000,fine,tool0; DeactUnit m7dm1;MoveL offs(p10,k,0,-500),v2000,fine,tool0;   MoveL offs(p10,K,400,-500),v2000\V:=1000,z40\Z:=45,tool0;MoveL offs(p10,K,400,150),v2000,z40,tool0;MoveL offs(p10,K,0,150),v2000,z40,tool0;MoveL offs(p10,K,0,-500),v2000,z40,tool0;ELSEIF regint2=1 THENregint2:=regint2-1;InvertDO OUT20;MoveL p1,v2000,fine,tool0;MoveC p2,p3,v2000,z20,tool0;MoveC p4,p1,v2000,fine,tool0; PulseDO\High\PLength:=1,OUT30;ELSEReset OUT10;Reset OUT20;ENDIFENDWHILEENDPROCTRAP MyExti1regint1:=regint1+1;ENDTRAPTRAP MyExti2regint2:=regint2+1;ENDTRAP
ENDMODULE

七:通信指令

清屏TPErase;显示字符串TPWrite;字符串和按钮TPReadFK;TPReadNum;ErrWrite;TPShow;

1.TPWrite String[\Num][\Bool][\Pos][\Orient];

String:字符串(string);[\NUm]:"123"(num);[\bool]:"TRUE"(bool);[\Pos]:显示位置xyz"[21f,52,72]"(pos);[\Orient]:显示方位q1q2q3q4"[0.5,3,5,0]"(orient)。

例1:TPWrite "Cycle Time="\Num:=nTIme;   (Num是字符串类型  var Num nTIme:=12;)。

例2:TPWrite "xyz="\Pos:=xyz;   (Pos坐标  var Pos xyz:=[10,20,30];)。

2.TPReadFK Answer,Text,FK1,FK2,FK3,FK4,FK5,[\MaxTime],[\DIBreak][\BreakFlag];

Answer:数字赋值1-5(num);Text:屏幕字符串(string);FKx:功能键字符串(string);[\MaxTime]:最长等待时间(num);[\DIBreak]:输入信号控制(signaldi);[\BreakFlag]:指令状态控制(errnum);

例1:TPReadFK reg5,"more?",stEmpty,"yes","no","Button1","Button2";

3.TPReadNum

4.ErrWrite [\W],Header,Reason[\RL2][\RL3][RL4];

[\W]:事件记录开关(switch);Header:错误信息标题(string);Reason:错误信息原因(string);[\RL2];[\RL3];[\RL4]:附加错误信息原因(string);

例1:ErrWrite\w,"Search error","NO hit for the first search";

例2:ErrWrite\w,"PLC error","Fatal error in PLC"\RL2:="Call service";

八:程序流程指令

循环FOR;等待输入条件判断WaitUntil;延时WaitTime;Compact IF;条件判断 IF;TEST;死循环 WHILE;无条件转移(跳转)指令GOTO;定义变量或标号的类型Lable;调用子程序procCall; 跳出程序到上一级return;

1.1. FOR循环,循环5次

i:=0;
FOR i FROM 1 TO 5 DO        MoveL p1,v2000,fine,tool0;MoveL p1,v2000,fine,tool0;
ENDWHILE

1.2.FOR示例:

VAR c:=0;
PROC main()FOR i FROM 1 TO 2 DOFOR j FROM 1 TO 2 DOc:=i*j;TPWrite "Cycle Time="\Num:=c; ENDFORENDFOR
ENDPROC

2. WaitUntil [\InPos],Cond[\MaxTime][\TimeFlag];

[\InPos]:提前量开关(switch);Cond:判断条件(bool);[\MaxTime]:等待时间s(num);[\TimeFlag]:超时逻辑量(bool);

例1:WaitUntil IN10=1\MaxTime:=5;     !如果5秒内IN10不输入1就运行Error Handler,如果没用Error的话就报错

例2:WaitUntil bOK=TRUE\MaxTime:=1\TimeFlag:=bTimeOut;

3.WHILE指令示例,循环5次

reg1:=0;
reg2:=5;
WHILE reg1<reg2 DO        MoveL p1,v2000,fine,tool0;MoveL p1,v2000,fine,tool0;
ENDWHILE

九、运动控制指令

机器人加速度AccSet;对机器人速度限制VelSet;关节运动,轴配置数据ConfJ;直线运动,轴配置数据ConfL; 避免机器人运行时死机(位置得不到控制,建议不要使用)SingArea;PathResol;软化机器人主机或外轴伺服系统SoftAct; 软化失效SoftDeact;

1. AccSet Acc,Ramp;

Acc:机器人加速度百分率(num);Ramp:机器人加速度坡度(num);

例1:AccSet 50,80;  处理脆弱负载时,使用了AccSet,可允许更低的加速度和减速度,使得机械臂的移动更加顺畅

2.VelSet Override,Max;

Override:机器人运行速率%(num);Max:最大运行速度mm/s(num);

例:VelSet 80,700; 编程速率设定。VelSet 用于增加或减少后续定位指令的编程速率,直至执行新的VelSet 指令

3.ConfJ [\On]|[\Off];

[\On]:启动轴配置数据(switch);关节运动时,机器人移动至绝对ModPos点,如果无法到达,程序将停止运行;

[\Off]:默认轴配置数据(switch);关节运动时,机器人移动至ModPos点,轴配置数据默认为当前最接近值;

例1:ConfiJ\On;

4.ConfL [\On]|[\Off];

5.SingArea[\Wrist]|[\Off];

[\Wrist]: 启用位置方位调整(switch);[\Off]: 关闭位置方位调整(switch);

6.PathResol PathSampleTime;

PathSampleTime: 路径控制%(num);

机器人必须在完全停止后才能更改路径控制值,否则机器人将默认一个停止点,显示错误信息50146。

例1:PathResol  150;

7.SoftAct[\MechUnit,] Axis,Softness [\Ramp];

[\MechUnit]:软化外轴名称(mecunit); Axis: 软化轴号码(num);Softness: 软化值%(num);[\Ramp]: 软化坡度%(num);

软化机器人主机或外轴伺服系统,范围0-100%,坡度范围>=100%, 与SoftDeact指令同时使用。

8. SoftDeact[\Ramp];

[\Ramp]: 软化坡度,>=100%(num);

例1:

SoftAct 5,30;

SoftDeact;

SoftAct 1,90;

SoftDeact \Ramp:=100;

ABB机器人编程示例相关推荐

  1. ABB机器人编程基础_手动示教+记录+修改点位数据的具体方法和步骤示例

    ABB机器人编程基础_手动示教+记录+修改点位数据的具体方法和步骤示例 如下图所示,打开示教器,控制柜切换到手动模式,电机上电,找到程序编辑器,点击进入, 如下图所示,点击进入例行程序,点击左下角的文 ...

  2. 常州abb机器人编程_ABB机器人编程程序解析

    ?ABB 机器人编程 1 程序解析: 1 .此程序是典型的 ABB 机器人官方编程思路与方法,分为主程序,初始化例行程序和轨迹程序. 2 .思路清晰,结构编排明确,方便使用者阅读. %%% ??VER ...

  3. 常州abb机器人编程_最新ABB机器人编程程序解析

    ABB 机器人编程 1 程序解析: 1 .此程序是典型的 ABB 机器人官方编程思路与方法,分为主程序,初始化例行程序和轨迹程序. 2 .思路清晰,结构编排明确,方便使用者阅读. %%% VERSIO ...

  4. 堆垛机器人编程技巧_两步变身老鸟,手把手教你提升ABB机器人编程技巧!(二)...

    原标题:两步变身老鸟,手把手教你提升ABB机器人编程技巧!(二) 1 双机器人与变位机编程 第一:如下图,双机器人+变位机系统,使用Multimove,(即一台控制器,一个示教器,三个运动任务) 第二 ...

  5. ABB机器人编程随记

    1. 目标点数据结构 基本数据类型和命令 bool num string 其他类型的数据类型都是以上三种数据类型的扩展类型. Robtarget:机器人目标点数据 ​ Trans:工具中心点相对于当前 ...

  6. abb机器人编程手册_002.ABB机器人高级编程--String飞升篇

    ABB机器人高级编程--String飞升篇 最近国庆节所以托更了,不好意思. 今天也分享的也不能算是飞升,只是把我几年前写的代码和大家分享一下,希望大家相互学习一起进步,希望更多有这方便意向和天赋的朋 ...

  7. ABB机器人编程技巧:双工位预约程序

    ABB机器人双工位预约程序 1)有如下双工位生产 2)工艺过程如下: 人工完成1#工位上料后按按钮di_1(按钮不带保持,即人手松开信号为0))机器人焊接1#工位. 此过程中人工对2#工位上下料,完成 ...

  8. ABB机器人画圆编程_ABB机器人使用rapid编程中问号的用法及画整圆指令

    4. 通常自定义带可选参数例行程序中,通过ABB机器人编程的Present函数来判断用户是否使用了该可选参数.也可使用如下例子.此处问号作条件判断,即若调用MoveCircle时,使用了可选参数WOb ...

  9. ABB机器人基本知识。

    一.程序储存器(Programmemory)的组成:   应用程序(Program)   系统模块(Systemmodules)   机器人程序储存器中,只允许存在一个主程序:所有例行程序与数据无论存 ...

最新文章

  1. Linux SSH远程文件/文件夹传输命令scp
  2. openshift安装部署_OpenShift 4 HOL (1) - 多种方法部署容器化应用
  3. 在java程序中使用protobuf
  4. Linux 下杀毒软件 clamav 的安装和使用
  5. c++ 的makefile文件实例
  6. Android中OnItemClick的四个参数意义
  7. 西湖区政府门户网站项目签约西部动力We7网站群系统
  8. 刨根问底:对于 self = [super init] 的思考
  9. OC--Protocol 协议
  10. R语言模型中的加总偏误与内生性:一种数值模拟方法
  11. wireless_tools在android上的移植
  12. FLASH透明背景代码大全
  13. 计算机一直显示配置更新失败怎么办,电脑更新新系统的时候出现配置更新失败问题怎么办...
  14. 【原创】我所认识的银行业务之旅(贷款篇)
  15. 小年到了,回家抢票太难,用Python做个脚本12306自动查票以及自动购票....
  16. i++和++i的区别
  17. Unity实用小工具或脚本——智能包住任意多个物体的碰撞体
  18. 基于波长调谐和时域傅里叶技术的多平面检测(MST)关键技术及实现
  19. CMake管理VS+Qt工程
  20. EAIDK-610(RK3399)使用体验

热门文章

  1. python cmap,使用Matplotlib绘图时获取意想不到的输出 - Cmap - Python
  2. 设备管理器,其他设备,PCI数据捕获和信号处理控制器出现感很多未知设备感叹号,通用解决方法,以华为matebook为例
  3. 2015给自己充电加薪——免费领取极客学院VIP会员
  4. VIP邮箱套餐对比,163、TOM、新浪哪家VIP邮箱最全能?
  5. 玩转华为数据中心交换机系列 | 汇总
  6. html页面长按保存图片,h5长按保存图片
  7. Keil中部分Error Warning解决方法记录
  8. jQuery圆点slider轮播插件
  9. php 删除特殊符号,利用PHP删除特殊符号
  10. 【解决问题】修复虚拟机报错,写入文件时出错,请确认您有访问该目录的权限