ABB机器人编程与测试
发布时间:2017-05-22
一、程序储存器(Programmemory)的组成:
应用程序(Program)
系统模块(Systemmodules)
机器人程序储存器中,只允许存在一个主程序;所有例行程序与数据无论存在于哪个模块,全部被系统共享;所有例行程序与数据除特殊定义外,名称必须是唯一的。

一、程序储存器(Programmemory)的组成:

   应用程序(Program)

   系统模块(Systemmodules)

   机器人程序储存器中,只允许存在一个主程序;所有例行程序与数据无论存在于哪个模块,全部被系统共享;所有例行程序与数据除特殊定义外,名称必须是唯一的。

 

1、应用程序(Program)的组成:

   ·主模块(Mainmodule)
        主程序(Mainroutine)
        程序数据(Programdata)
        例行程序(Routines)

   ·程序模块(Programmodules)
        程序数据(Programdata)
        例行程序(Routines)

2、系统模块(Systemmodules)的组成:

   ·系统数据(Systemdata)

   ·例行程序(Routines)

   所有ABB机器人都自带两个系统模块,USER模块与BASE模块,根据机器人应用不同,有些机器人会配备相应应用的系统模块。建议不要对任何自动生成的系统模块进行修改。

二、编程窗口:

 

1、菜单键File

   1 Open:打开一个现有文件。(程序.prg或模块.mod)

   2 New:新建一个程序。

   3 Saveprogram :存储更改后的现有程序。

   4 Saveprogramas:存储一个新程序。

   5 Print: 打印程序,现已经不使用。

   6 Preferences:定义用户化指令集。

   7 Checkprogram :检验程序,光标会提示错误。

   8 Close:在程序储存器中关闭程序。

   9 Savemodule :存储更改后的现有模块。(只在Module窗口中存在)

   0 Savemoduleas : 存储一个新模块。(只在Module窗口中存在)

2、菜单键Edit

   1 Cut:剪切,可能会丢失指令或数据。

   2 Copy :复制。

   3 Paste :粘贴,将剪切或复制的指令或数据粘贴到相应位置。

   4 GotoTop:将光标移至顶端。

   5 GotoBottom :将光标移至底端。

   6 Mark :定义一块,涂黑部分。

   7 ChangeSelected :修改指令中数据,可直接将光标移至相应位置按回车键。

   8 Showvalue: 输入数据,可直接将光标移至相应数据按回车键。

   9 Modpos :修改机器人位置,功能键上有。

   0 Search:寻找指令,程序复杂时很有用。

3、菜单键IPL1IPL2
IPL1IPL2为指令目录。

   其中IPL2Mostcommt1Mostcommt2Mostcommt3为用户化定义指令目录,可在菜单键FilePreference定义。

4、功能键:
CopyPasteModpos在菜单键Edit中可以找到。

Test为编程窗口与测试窗口切换键。

三、指令:

1、基本运动指令:

 

   MoveL:线性运动   (Linear)

   MoveJ:关节轴运动  (Joint)

   MoveC :圆周运动   (Circular)

   p1:目标位置。(robtarget)

   v100:运行速度mm/s(speeddata)

   z10:转弯区尺寸mm(zonedata)

   tool1:工具中心点TCP(tooldata)

1)速度选择:mm/s

  ·将光标移至速度数据处,按回车键,进入选择窗口,选择所需速度。

  ·机器人运行速度属于数据类型speeddata

  ·常用运行速度在Base模块中已经定义。

  ·特殊速度可自行定义。

  ·max速度为v5000Base模块中定义最大速度为v7000,最大速度机器人未必能达到。

2)转弯区尺寸选择:mm

  ·将光标移至转弯区尺寸数据处,按回车键,进入选择窗口,选择所需转弯区尺寸。

  ·机器人转弯区尺寸属于数据类型zonedata

  ·常用转弯区尺寸在Base模块中已经定义。

  ·特殊转弯区尺寸可自行定义。

  ·fine指机器人TCP达到目标点,并在目标点速度降为零,连续运行时,机器人动作有停顿。

  ·zone指机器人TCP不达到目标点,连续运行时,机器人动作圆滑、流畅。

  ·Base模块中已经定义的转弯区尺寸最小为z1,最大为z200

  ·尽量使用较大的转弯区尺寸。

3)参变量:

   光标指在当前指令时,按功能键OptArg,可选择参变量。

  ·[\Conc](switch)
   协作运动。机器人未移动至目标点,已经开始执行下一个指令。

  ·[ToPoint](robtarget)
   在采用新指令时,目标点自动生成*
  ·[\V](num)
   定义速度mm/s

  ·[\T](num)
   定义时间s。通过时间决定速度。

  ·[\Z](num)
   定义转弯区尺寸mm

  ·[\Wobj](wobjdata)
     采用工件系座标系统。

 

4)函数Offs()

MoveLp1,v100,…

MoveLp2v100,…

MoveLp3,v100,…

MoveLp4,v100,…

MoveLp1,v100,…

 

  ·为了精确确定p1p2p3p4点,可以使用函数Offs()

  ·Offs(p1xyz)代表一个离p1X轴偏差量为xY轴偏差量为yZ轴量为z的点。

  ·将光标移至目标点,按回车键,进入目标点选择窗口,在功能键上选择Func,采用切换选择所用函数Offs()

 

MoveLp1,v100,…

MoveLOffs(p1,100,0,0),v100,…

MoveLOffs(p1,100,-50,0),v100,…

MoveLOffs(p1,0,-50,0),,v100,…

MoveLp1,v100,…

2、转轴运动指令:
   MoveAbsJ    jpos1     v100,       z10     tool1

   jpos1:目标位置。(jointtarget)

   v100:运行速度mm/s(speeddata)

   z10:转弯区尺寸mm(zonedata)

   tool1:工具中心点TCP(tooldata)

3、输入输出群指令:

  ·do指机器人输出信号。

  ·di指输入机器人信号。

  ·输入输出信号必须在系统参数中定义。

  ·输入输出信号有两种状态,1(High)为接通,0(Low)为断开。

1)输出信号指令:

A、输出输出信号指令:set     dol
   do1:输出信号名。(signaldo)将一个输出信号赋值为1

B、复位输出信号指令:Reset    do1
   do1:输出信号名。(signaldo)将一个输出信号赋值为0

C、输出脉冲信号指令:ulseDO   do1
   do1:输出信号名。(signaldo)输出一个脉冲信号,脉冲长度为0.2s

参变量:

  ·[\PLength](num)     脉冲长度,0.1s-32s

2)输入信号指令:

     WaitDI      di1,       1

   di1:输入信号名。(signaldi)

   1:状态。(dionum)

参变量:

  ·[\MaxTime](num)等待输入信号最长时间s

  ·[\TimeFlag](bool)逻辑量,TRUEFALSE

   如果只选用参变量[\MaxTime],等待超过最长时间后,机器人停止运行,并显示相应出错信息。如果同时选用参变量[\MaxTime]与参变量[\TimeFlag],等待超过最长时间后,无论是满足等待的状态,机器人将自动执行下一句指令。如果在最长等待时间内得到相应信号,将逻辑量置为FALSE,如果超过最长等待时间,逻辑量置为TRUE

4、通信指令(人机对话)

1)清屏指令:TPErase

2)写屏指令:PWrite    String
   tring:显示的字符串。(string)在示教器显示屏上显示字符串数据,也可以用“……”形式直接定义字符串,每一个写屏指令最多显示80个字符。

3)功能键读取指令:TPReadFK,  Answer ,  Text ,  FK1 ,  FK2.   FK3,   FK4 ,  FK5
   Answer:赋值数字变量。(num)
   Text:显示屏显示的字符串。(string)
   FK1:功能键1显示的字符串。(string)
   FK2:功能键2显示的字符串。(string)
   FK3:功能键3显示的字符串。(string)
   FK4:功能键4显示的字符串。(string)
   FK5:功能键5显示的字符串。(string)

   在示教器显示屏上显示字符串数据,在功能键上显示相应字符串,选择按相应的功能键,机器人自动给数字变量赋于相应数值1-5

5、程序流程指令:

1)判断执行指令IF

  ·IFTHEN         符合条件,
“Yes-part”         执行“Yes-part”指令。
ENDIF

 

  ·IFTHEN         符合条件,

“Yes-part”         执行“Yes-part”指令。
ELSE               不符合条件,
“Not-part”         执行“Not-part”指令。

ENDIF

 

  ·IFTHEN       符合条件,

“Yes-part1”        执行“Yes-part1”指令。

ELSEIFTHEN        符合条件,
“Yes-part2”        执行“Yes-part2”指令。
ELSE              不符合与条件,
“Not-part”          执行“Not-part”指令。
ENDIF

2)循环执行指令WHILE

  ·reg1:=1;
WHILEreg1<5DO        循环至不符合条件reg1<5
reg1:=reg1+1;(Incrreg1;)  才执行ENDWHILE后指令。ENDWHILE

   循环指令WHILE运行时,机器人循环至不满足判断条件后,才跳出循环指令,执行ENDWHILE后运行指令。循环指令WHILE运行时,存在死循环,在编写相应机器人程序时必须注意。

6、程序运行停止指令:

1)停止指令Stop
   机器人停止运行,软停止指令(Soft Stop),直接在下一句指令启动机器人。

2)停止指令Exit
   机器人停止运行,并且复位整个运行程序,将程序运行指针移至主程序第一行。机器人程序必须从头运行。

3)停止指令Break
   机器人立刻停止运行,有冲击,直接在下一句指令启动机器人。

7、计时指令:

1)时钟复位指令:ClKReset       Clock
   Clock:机器人时钟名称。(clock)

2)时钟启动指令:ClKStart        Clock
   Clock:机器人时钟名称。(clock)

3)时钟停止指令:ClKStop      Clock
   Clock:机器人时钟名称。(clock)

8、速度控制指令:
VelSet  Override  Max

Override:机器人运行速率%(num)

Max:机器人最大速度mm/s(num)

   每个机器人运动指令均有一个运行速度,在执行速度控制指令后,机器人实际运行速度为运动指令规定运行速度乘以机器人运行速率(Override),并且不超过机器人最大运行速度(Max)

9、等待指令:

WaitTime Time

Time:机器人等待时间s(num)

等待指令只是让机器人程序运行停顿片刻。

10、赋值指令:

Data:=     Value

Data:被赋值的数据。(All)

Value:数据被赋予的值。(SameasData)

<p style="marg