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

在机器人程序储存器中,通常包含两个主要部分:应用程序(Program)和系统模块(Systemmodules)。值得注意的是,储存器中仅允许存在一个主程序,而所有例行程序和数据,不论它们位于哪个模块,都会被系统共享。此外,除非有特殊定义,否则所有例行程序与数据的名称都必须保持唯一。
1、应用程序(Program)的组成:
主模块(Mainmodule)
主程序(Mainroutine)
程序数据(Programdata)
例行程序(Routines)
程序模块(Programmodules)

需要注意的是,程序模块和例行程序部分重复了,所以可以删除一个。

2、系统模块(Systemmodules)的组成:
系统数据(Systemdata)
例行程序(Routines)

此外,还值得注意的是,所有ABB机器人都预装了两个系统模块:USER模块和BASE模块。根据机器人的具体应用,某些机器人可能还会配备专门针对该应用的系统模块。然而,建议用户不要对任何自动生成的系统模块进行修改,以确保机器人的稳定性和安全性。
二、编程界面概览:
 


二、编程界面概览:

1、File菜单键:
二、编程界面概览:

1、File菜单键:

  • Open:用于打开一个已存在的文件,可以是程序(.prg)或模块(.mod)。

  • New:新建一个程序,为编程工作提供一个全新的起点。

  • Save program:保存对现有程序的修改,确保您的更改得到妥善保存。

  • Save program as:允许您将当前程序存储为一个新文件,便于管理和分享。

  • Print:打印程序的功能,尽管现在已较少使用,但仍然保留在菜单中。

  • Preferences:用于定义用户化的指令集,满足特定编程需求。

  • Check program:检验程序的功能,通过光标提示可能存在的错误,帮助您及时纠正。

  • Close:在程序储存器中关闭当前程序,释放资源。

  • Savemodule:仅在Module窗口中存在,用于存储更改后的现有模块。
    Savemoduleas:在Module窗口中,此功能允许您将当前模块存储为一个新文件,便于模块的管理和复用。
    2、使用菜单键Edit:

    通过点击菜单键Edit,您可以执行各种编辑操作,如剪切、复制和粘贴等,以更高效地处理和修改模块内容。
    1、Cut(剪切):此操作可能会丢失指令或数据,请谨慎使用。
    2、Copy(复制):方便您复制所需的指令或数据。
    3、Paste(粘贴):将剪切或复制的内容粘贴到指定的位置。
    4、GotoTop(前往顶部):快速将光标移动到编辑界面的顶端。
    5、GotoBottom(前往底部):迅速将光标移至编辑界面的底端。
    6、Mark(标记):用于定义并涂黑特定的指令或数据块。
    7、ChangeSelected(修改选定内容):直接修改已选定的指令中的数据,只需将光标移至相应位置并按下回车键。
    8、Showvalue(输入值):在此处输入所需的数据,同样只需将光标移至相应数据位置并按下回车键。
    9、Modpos(修改机器人位置):此功能键用于调整机器人的位置,请根据需要使用。
    Search(搜索):在程序复杂时,此功能尤为有用,能帮助您迅速找到所需的指令。
    3、菜单键IPL1与IPL2的功能解释:
    IPL1和IPL2是两个指令目录,它们提供了丰富的编程指令供用户选择。特别地,IPL2中包含了Mostcommt1、Mostcommt2和Mostcommt3三个用户化定义指令目录,这些目录可以在菜单键File的Preference选项中进行自定义设置,以满足用户的特定需求。
    4、功能键详解:
    在菜单键Edit下,您可以找到Copy、Paste和Modpos这三个功能键。它们分别用于复制、粘贴和修改位置,为您的编程工作提供便捷的操作。此外,Test键则用于在编程窗口与测试窗口之间进行切换,让您能够轻松地查看和测试您的编程成果。
    三、指令详解:
    在编程过程中,指令是不可或缺的元素。它们是编程语言的基础,用于告诉计算机如何执行特定的任务。不同的编程语言有着各自的指令集,但它们的目的都是为了实现某种功能或操作。通过熟练掌握和理解指令,您将能够更高效地编写出符合需求的程序。
    1、基本运动指令:
    MoveL: 线性运动指令,用于指示机器人以直线方式移动到目标位置。
    MoveJ: 关节轴运动指令,指导机器人通过关节轴的移动来达到目标姿态。
    MoveC: 圆周运动指令,使机器人按照圆形路径进行移动。

在执行这些指令时,我们需要提供目标位置(p1)、运行速度(v100)、转弯区尺寸(z10)以及工具中心点TCP(tool1)等信息。此外,还有一些重要的参变量和函数可供选择和使用,以实现更复杂的机器人运动控制。

(1)速度选择:速度数据(v100)用于设定机器人的运行速度,单位为mm/s。我们可以通过选择窗口来设定所需的速度,范围通常在Base模块中已预先定义。特殊速度需求可自行定义,但需注意最大速度限制。

(2)转弯区尺寸选择:转弯区尺寸数据(z10)影响机器人在转弯时的行为。通过选择窗口,我们可以选择合适的转弯区尺寸,以实现圆滑、流畅的机器人动作。Base模块中已定义了常用的转弯区尺寸范围,同时,也支持自定义特殊尺寸。

(3)参变量设置:在执行指令时,我们可以使用功能键OptArg来选择各种参变量,如协作运动开关[Conc]、目标点自动生成开关[ToPoint]、速度定义[V]、时间定义[T]、转弯区尺寸定义[Z]以及工件系座标系统选择[Wobj]等。这些参变量的合理设置将直接影响机器人的运动行为和效率。

(4)函数Offs()的使用:Offs()函数用于对目标位置进行偏移设置,例如在MoveL指令中,我们可以使用Offs()函数来调整机器人的移动路径。这是实现精确运动控制的重要手段之一。
为了更精确地确定p1、p2、p3、p4等目标点位置,我们可以利用Offs()函数进行偏移设置。Offs(p1,x,y,z)函数表示在p1点的基础上,沿X轴偏差x,Y轴偏差y,Z轴偏差z的新的位置点。

在操作过程中,首先将光标移动到目标点上,然后按下回车键进入目标点选择窗口。在功能键中选择Func,并切换到所需的Offs()函数。接着,我们可以使用MoveL指令配合Offs()函数来指定新的目标位置,如MoveLOffs(p1,100,0,0)表示在p1点的基础上沿X轴正方向偏移100个单位。

通过这种方式,我们可以灵活地调整机器人的运动路径,实现精确的运动控制。
2、转轴运动指令详解:
MoveAbsJ指令用于控制机器人的转轴运动。其中,jpos1代表目标位置,即机器人需要到达的关节角度;v100则表示运行速度,单位为mm/s;z10指定了转弯区的尺寸,单位为mm;而tool1则代表了工具中心点TCP,即机器人执行任务时的有效工作点。通过这个指令,我们可以精确地控制机器人的转轴运动,实现各种复杂的操作任务。
3、输入输出群指令详解:
do代表机器人输出信号,而di则表示输入机器人信号。在使用这些指令前,必须在系统参数中预先定义相应的输入输出信号。这些信号有两种状态:1(High)表示接通,而0(Low)则表示断开。接下来,我们将详细介绍输出信号的指令:

(1)输出信号指令:
A、输出信号指令:set dol
通过此指令,可以将一个输出信号(如do1)赋值为1,从而触发相应的输出动作。

B、复位输出信号指令:Reset do1
使用此指令,可以将输出信号(如do1)的值重置为0,即关闭相应的输出。

C、输出脉冲信号指令:ulseDO do1
该指令允许输出一个脉冲信号,脉冲长度为0.2秒(可通过参变量[PLength]进行调整,范围为0.1秒至32秒)。

此外,还有输入信号的等待指令:
WaitDI di1, 1
此指令用于等待输入信号(如di1)变为接通状态,即等待其值为1。
1:状态。(dionum)

参变量:

·MaxTime等待输入信号最长时间s。
·TimeFlag逻辑量,TRUE或FALSE。

若仅选用参变量[MaxTime],当等待时间超过设定值时,机器人将停止运行并显示错误信息。若同时选用参变量[MaxTime]与[TimeFlag],在超过设定等待时间后,无论是否达到等待状态,机器人将自动执行下一条指令。在等待期间获得信号将使逻辑量置为FALSE,而超过等待时间则置为TRUE。
4、通信指令(人机交互):
(1)清屏指令:TPErase
此指令用于清除示教器显示屏上的内容。

(2)写屏指令:PWrite String
使用该指令,可以在示教器显示屏上显示特定的字符串数据。此外,还可以通过“……”的形式直接定义字符串,但需注意,每个写屏指令最多只能显示80个字符。

(3)功能键读取指令:TPReadFK
此指令用于读取功能键上的字符串数据,并将其赋值给数字变量。具体来说,当选择相应的功能键时,机器人将自动给数字变量赋于相应数值1-5,同时,显示屏和功能键上都会显示相应的字符串数据。
5、程序流程指令:
(1)判断执行指令IF:
·IFTHEN 当条件满足时,执行“Yes-part”指令。
ENDIF
·IFTHEN 当条件满足时,执行“Yes-part”指令。
ELSE 当条件不满足时,执行“Not-part”指令。
ENDIF
·IFTHEN 当条件满足时,执行“Yes-part1”指令。
ELSEIFTHEN 当另一条件满足时,执行“Yes-part2”指令。
ELSE 当所有条件都不满足时,执行“Not-part”指令。
ENDIF
(2)循环执行指令WHILE:
·reg1:=1;
WHILEreg1<5DO 循环继续至reg1不小于5,
reg1:=reg1+1; 每次循环后增加reg1的值。
ENDWHILE
循环指令WHILE运行时,机器人将持续循环,直至不满足判断条件reg1<5,之后才会跳出循环并执行ENDWHILE后的指令。需要注意的是,循环指令WHILE存在死循环的风险,因此在编写机器人程序时必须格外小心。
6、程序运行停止指令:
(1)停止指令Stop:
该指令将使机器人立即停止当前任务,并进入软停止状态。在执行下一句指令前,机器人将保持停止状态。
(2)停止指令Exit:
此指令不仅会停止机器人的运行,还会将其整个运行程序复位,将程序运行指针重置到主程序的第一行。这意味着机器人必须重新开始执行程序。
(3)停止指令Break:
Break指令将使机器人立即且带有冲击地停止运行,并直接进入下一句指令的执行。这种停止方式可能对某些机器人系统或任务产生直接影响,因此在使用时需谨慎考虑。
7、计时指令:
(1)时钟复位指令:ClKReset Clock
其中,Clock代表机器人时钟的名称。执行此指令后,机器人时钟将回到初始状态。
(2)时钟启动指令:ClKStart Clock
同样,Clock指代机器人时钟的名称。通过此指令,机器人将开始计时。
(3)时钟停止指令:ClKStop Clock
该指令允许您在需要时立即停止机器人时钟的计时。
8、速度控制指令:
(1)VelSet指令用于设置机器人的运行速度。
(2)Override指令用于指定机器人以特定速率运行,该速率以百分比表示。
(3)Max指令则用于设定机器人的最大运行速度,单位为毫米每秒。
执行速度控制指令时,机器人的实际运行速度将根据运动指令中规定的运行速度和Override指令进行计算,并确保不超过Max指令设定的最大速度。
9、等待指令:
WaitTime 指令用于指定机器人程序暂停的时间,单位为秒。

10、赋值指令:
Data:= 指令用于将一个值赋给指定的数据。其中,Data 表示被赋值的数据,Value 表示被赋予的值。

举例说明:
ABB:=FALSE; // 将布尔值 FALSE 赋给 ABB
ABB:=reg1+reg3; // 将 reg1 与 reg3 的和赋给 ABB
ABB:=“WELCOME”; // 将字符串 "WELCOME" 赋给 ABB
Home:=p1; // 将机器人目标点 p1 的位置信息赋给 Home
tool1.tframe.trans.x:=tool1.tframe.trans.x+20; // 将 tool1 的 tframe 转换中的 x 值增加 20

这些指令在机器人编程中扮演着重要的角色,它们允许程序员精确地控制机器人的行为和状态。
11、负载定义指令:
GripLoad 和 Load 指令用于定义和获取机器人的当前负载。其中,GripLoad 指令用于设置机器人的抓取负载,而 Load 指令则用于获取机器人当前的负载情况。这些指令对于确保机器人能够安全、有效地执行任务至关重要。
四、例行程序(Routine)详解:
机器人的例行工作流程如下:首先,它从进料运输带(Infeeder)上抓取工件,随后将其放置在机器(Machine)内进行加工。一旦加工完毕,机器人会再次介入,从机器中取出已加工的工件,并将其轻放在出料运输带上,从而完成一个完整的工作循环。
1、创建新例行程序:
在菜单中选择View,然后进入Routine,再点击功能键New。接下来,需要为新例行程序命名,即填写Name字段,名称最长可达16个字符且必须以字母开头。同时,选择例行程序类型,共有ROC(普通例行程序)、FUNC(函数例行程序)和TRAP(中断例行程序)三种可选。此外,还需填写InModule字段,即当前例行程序所属的模块名称。若选择FUNC类型,还需在Datatype字段中指定数据类型。
2、例行程序参数设置详解:
每个例行程序都支持多个参数,这些参数在建立或重定义例行程序时进行设置。在显示屏上,你会看到一个参数设置的窗口,其中包含了各种功能键供你选择和修改。

·Name参数:这是参数的名称,你可以通过功能键Text来更改它。名称长度最多为16个字符,且必须以字母开头。

·Datatype数据类型:当光标指向数据类型时,可以使用功能键Chang…来更改例行程序的参数数据类型。

·Required必需性选择:此选项决定参数是否为必需。当光标指向它时,功能键会出现Yes与No选项,选择Yes后,参数将标记为必需,并出现确认符*。

·Alt分批输入参数选项:此功能适用于非必需参数。当光标指向它时,你可以选择First或Tail,分别表示参数的开始使用位置和结尾使用位置。

·Mode数据模式:此选项决定参数的使用模式。当光标指向必需性选择时,功能键会出现In与Inout选项。In模式表示参数只用于读取,而Inout模式则表示参数可读可写。
五、机器人测试概述:

在完成例行程序的参数设置后,下一步便是进行机器人的测试。这一环节对于确保机器人的性能和功能符合预期至关重要。通过测试,我们可以评估机器人在执行任务时的准确性、效率和稳定性,从而为后续的优化和改进提供有力支持。
1、验证程序语法:

在开始机器人测试之前,首先需要检查程序的语法是否正确。这可以通过在菜单键中找到“File”选项,并选择“CheckProgram”来进行验证。确保程序的每一行代码都符合语法规范,这是确保机器人能够顺利执行任务的基础。
2、编程窗口(Test)操作指南:

首先,通过菜单键View进入Test编程窗口。在此窗口中,你可以进行以下操作:

(1)功能键详解:
tart键:启动程序,使机器人连续执行预设指令。
FWD键:使机器人程序向前单步运行。
WD键:使机器人程序向后单步运行。
ModPos键:修正机器人的当前运行位置。
Instr键:切换至指令窗口,查看或编辑程序指令。

(2)运行模式选择:
在测试窗口中,通过切换键将光标移至运动模式选择处,此时将显示Cont与Cycle两个选项。
Cont模式:机器人将自动循环执行程序。
Cycle模式:机器人执行完程序后将自动停止。

(3)运行速率选择:
同样在测试窗口内,通过切换键将光标移至运动速率选择处,此时将显示-%、+%、25%与100%四个选项。使用功能键选定所需的运行速率。
请注意,机器人的实际运行速度是程序定义的速度与选定百分比的乘积,且最大速度不得超过250mm/s。此外,-%与+%键在1%至5%范围内以1%为单位递增或递减,而在5%至100%范围内则以5%为单位递增或递减。
25%与100%键允许你迅速将机器人的运行速率切换至25%与100%。

· 运行速度的调整可以在程序运行时实时进行。
· 在焊接程序中,选择不同的运行速度只会改变空行程的速度,而不会影响焊接速度。

(4)程序运行指针(PP):

程序运行指针,简称PP,是编程窗口中的关键元素。它指示程序启动后将从何处开始执行。

为了确保机器人能正常启动,程序运行指针必须与光标对准同一行指令。通过菜单键Special,你可以调整程序运行指针的位置,从而选择要执行的指令。
1、将光标移至PP位置:MoveCursortoPP。
2、将PP移至光标位置:MovePPtoCursor。
3、将PP移至主程序第一行:MovePPtoMain。
4、将PP移至相应例行程序:MovePPtoRoutine。

接下来,我们介绍如何删除指令:

将光标移至所要删除的指令行,然后按下删除键,并使用功能键OK进行确认。
4、添加指令:
在测试界面,按下功能键Instr->,进入指令窗口。选择“增加指令”选项后,所选指令会自动出现在光标所在指令行的下方。若光标位于程序起始行,会出现一个提示框,询问新指令应生成在程序首行还是下一行。选择相应功能键后,用OK键进行确认。
5、调整工作点:
首先,将机器人移动到需要记录的工作位置。接着,将光标定位到需要修正的运动指令上,然后按下功能键“ModPos”来调整工作点。在此过程中,需要确保操作窗口中选定的“Tool”和“Wobj”与运动指令中使用的一致。
6、停止测试:
按下S-Stop键来终止测试,同时要注意避免直接释放使能器(Enabling device),以确保测试过程的平稳和安全。

Logo

北京人形旗下天工造物具身智能开源社区,聚焦具身天工与慧思开物两大平台

更多推荐