指令
|
项目
|
说明
|
关节运动(MOVJ)
|
指令功能
|
机器人以最快捷的方式运动至目的点,其运动状态不完全可控,但运动路径保持唯一。
指令格式:
MOVJ VJ=100% LP#10 PL=9 。
MOVJ指令常用于机器人在空间大范围移动,如下图所示。
|
使用举例
|
Ø MOVJ VJ=30% PL=3
Ø MOVJ VJ=30 GP#0 PL=3 UNTIL M#(0)==ON
|
表-
说明:
Ø 各关节运动的速度为:各轴设定速度×VJ×自动倍率。
Ø 各轴设定的速度在<参数>-<速度参数>中查看,该设定值是由各轴电机的最大转速限制。
10
|
1轴关节最大速度(°/S)
|
65
|
11
|
2轴关节最大速度(°/S)
|
65
|
12
|
3轴关节最大速度(°/S)
|
60
|
13
|
4轴关节最大速度(°/S)
|
100
|
14
|
5轴关节最大速度(°/S)
|
95
|
15
|
6轴关节最大速度(°/S)
|
165
|
表-
指令
|
项目
|
说明
|
关节运动(MOVJ)
|
指令功能
|
MOVL指令功能:机器人从起始点沿直线路径运动至目的点;
指令格式:MOVL
VL=200mm/s LP#1 PL=0
MOVL指令常用于机器人在空间小范围移动或必须采用直线轨迹时,例如焊接直线焊缝。
|
程序举例
|
Ø MOVL VL=500MM/S PL=0
Ø MOVL VL=500MM/S GP # 3 PL = 5
UNTI LX#(0)==ON(这段代码有问题)
Ø MOVL VL=500MM/S PL=0 DOUT Y#(0)==ON
Ø START 10.0 END 10.0
Ø MOVL VL=500MM/S PL=0 AOUT A1=2.0 A2=2.0
|
表-
说明:
Ø 直线运动速度为:VL×自动倍率。
Ø 直线最大速度在<参数>-<速度参数>中查看,该设定值是由各轴电机的最大转速限制。
直线最大运动速度为1500 mm/s。
指令
|
项目
|
说明
|
圆弧运动(MOVC)
|
指令功能
|
MOVL指令功能:机器人从起始点沿直线路径运动至目的点;
指令格式:MOVL
VL=200mm/s LP#1 PL=0
MOVL指令常用于机器人在空间小范围移动或必须采用直线轨迹时,例如焊接直线焊缝。
|
附加项
|
[空白]
GP<变量号>
LP<变量号>
|
位置数据,屏幕该栏显示空白
GP变量,变量号:0-999
LP变量,变量号:0-999
|
VL=<直线运行速度>
|
直线运行速度,单位MM/S,最大值为参数直线运动最高速度。
|
PL=<平滑度>
|
PL平滑度:0-9
|
<变量>POINT
|
变量范围:1-3。一段圆弧轨迹通必须是由三段圆弧指令实现的,三段圆弧指令分别定义了圆弧的起始点、中间点、结束点。1POINT表圆弧的起点,2POINT表圆弧的中间点,3POINT表圆弧的终点。
|
表-
编程示例1:
最简单的平面圆弧
Ø MOVC VL=100mm/s PL=0 POINT=1 //圆弧第一个点B
Ø MOVC VL=100mm/s PL=0 POINT=2 //圆弧第二个点C
Ø MOVC VL=100mm/s PL=0 POINT=3 //圆弧第三个点D
图-
编程示例2:
需要变换姿态,用圆弧的方式画一个姿态圆:
l 针对姿态圆运动,我们采用圆弧指令实现,在规划圆弧的至少要选取3段圆弧。(避免就近原则引起的反向运行)
l 编写姿态圆时,应当注意姿态变化的角度,尽量避免小距离,大姿态的运动轨迹。
l 在保证机器人末端轨迹的时候,距离小,姿态变化大,机器人在变化姿态的时候,速度会很快,造成机器人抖动或者超速报警,影响末端轨迹。
l 以下图为例:整圆运动,只是考虑C姿态的情况下,在寻找点位的时候,尽量保证坐标点与姿态都是均等分。从而来达到保证运动轨迹效果。
图-
编程示例三:
直线过度圆弧
l 系统可以默认直线末端点为圆弧的第一个点,减少重复记录点以及避免重复点位引起的停顿问题。即(L)MOVL-2-3的方式。
Ø MOVL VL=100mm/s PL=0 //直线末端点(圆弧起始点)
Ø MOVC VL=100mm/s PL=0 POINT=2 //圆弧第二个点
Ø MOVC VL=100mm/s PL=0 POINT=3 //圆弧第三个点
l 当需要在圆弧第一点启动焊接,ARCstart指令前的直线点和ARCstart指令后的点位必须同一个点,用复制程序行的方式保证同一个点(将第1行复制到第3行);
Ø MOVL VL=100mm/s PL=0 //直线末端点(圆弧起始点)
Ø ARCSTART 0
Ø MOVL VL=100mm/s PL=0 //直线末端点(圆弧起始点)
Ø MOVC VL=100mm/s PL=0 POINT=2 //圆弧第二个点
Ø MOVC VL=100mm/s PL=0 POINT=3 //圆弧第三个点
Ø ARCEND 0
★注意:即使第1行与第3行在同一个点手动示教记录,也不可以。因为在同一个点手动示教记录,坐标值会有细微的差别。当同时使用摆弧功能时,会出现异响。
l 带姿态运动时,同样要避免小距离、大姿态情况。
l 在直线到圆弧第一个点时,要保证圆弧第一个点的姿态,在直线运动过程中带姿态变化,到圆弧第一个点时同时也变化好姿态,提高效率。如在直线过程中姿态变化大,可以在中间多加几个点位来保证轨迹。如下图,直线段P1点至1P点,需要带姿态走,为保证末端轨迹,应当带姿态记录两个点,P1与P2点距离远即可变化稍大一点姿态来保证末端。
图-
编程示例四:
连续圆弧段
l 遵循1(L)-2-3-2-3-2-3的方式找点,即上一段圆弧的终点作为下一段圆弧的起点,保证圆弧的连贯性。
l 小圆弧段:距离短,先变换好预想姿态,再移动位置记录。
l 大圆弧段:严格按照取该段弧的弧顶位置。
针对连续圆弧轨迹精度要求高的情况,可尽量把连续圆弧细分化,从而来保证运动轨迹及姿态变化。
Ø MOVL VL=100mm/s PL=0 //直线末端点(圆弧1起始点)
Ø MOVC VL=100mm/s PL=0 POINT=2 //圆弧1第二个点
Ø MOVC VL=100mm/s PL=0 POINT=3 //圆弧1第三个点(圆弧2的起始点)
Ø MOVC VL=100mm/s PL=0 POINT=2 //圆弧2第二个点
Ø MOVC VL=100mm/s PL=0 POINT=3 //圆弧2第三个点
★注意:禁止编连续圆弧时采用1-2-3-1-2-3这种方式,这种方式在圆弧试运行时会出现无法预知的轨迹,可能会造成撞枪等故障。
图-
指令
|
项目
|
说明
|
整圆运动(MOVCA)
|
指令功能
|
用整圆弧插补方式实现一个整圆运动。各关节按照VL×自动倍率,以整圆插补运动。P1确定圆心,P2确定运动方向,P3同P1和P2确定一个圆弧面,即确定一个圆心一个半径,一个起始点和一个圆所在的平面。
|
附加项
|
[空白]
GP<变量号>
LP<变量号>
|
位置数据,屏幕该栏显示空白
GP变量,变量号:0-999
LP变量,变量号:0-999
|
VL=<直线运行速度>
|
直线运行速度,单位MM/S,最大值为参数直线运动最高速度。
|
PL=<平滑度>
|
PL平滑度:0-9
|
<变量>POINT
|
变量范围:1-3。一段完整的整圆指令必须要有三个点(P1点不能省略或用上一个点),每个点的意义如下:P1确定圆中心点,确定运动到圆心的速度,确定是顺时针还是逆时针画圆;P2点,确定圆的起始点方向,机器人画圆的速度;P3点,确定圆所在的平面)
|
注意
|
若在程序中使用不同的工具或用户坐标系,请使用CHANGE坐标系的指令
若在画圆的中途停止,再次运行时,机器人会运行到圆心位置再重新画圆。
若该指令中缺少一个点(P1-P3),机器人会报错。
|
表-
程序举例:
Ø MOVL VL=100 PL=0;过渡点
Ø MOVL VL=100 PL=0;圆心点
Ø MOVCA VL=100MM/S PL=0 POINT=1 R=10.0 Dir=CW; P1确定圆中心点,确定运动到圆心的速度,确定是顺时针还是逆时针画圆(CW表示顺时针 CCW表示逆时针)。
Ø MOVCA VL=100MM/S PL=0 POINT=2;P2点,确定圆的起始点方向,机器人画圆的速度。
指令
|
项目
|
说明
|
运动指令附加项
|
[空白]
|
不使用附加项。
|
UNTIL
|
[UNTIL]:使用条件,当条件满足,该程序行停止执行,转入下一行执行。否则执行当前行直到结束后,转入下一行。详见辅助项说明1。
|
COORD
|
附加轴1和附加轴2同时协同,详见辅助项说明4
|
COORD1
|
附加轴1单独协同,详见辅助项说明4
|
COORD2
|
附加轴2单独协同,详见辅助项说明4
|
ST+
|
强制执行远边动作
|
ST-
|
强制执行近边动作
|
ACC
|
关节加速度,值越大加速越快
|
OP
|
偏移变量,用于偏移示教轨迹
|
DOUT
|
运动中输出状态信号,详见下文“2.DOUT用法举例”
|
AOUT
|
运动中输出模拟量信号,详见下文“3.AOUT用法举例”
|
OP
|
偏移变量,用于偏移示教轨迹,详见下文“5.OP用法举例”
|
表-
使用条件,当条件满足,该程序行停A止执行,转入下一行执行。否则执行当前行直到结束后,转入下一行。条件可以使用X、M、T、C。本功能可用于沾浆、舀铝水、放板机等。
图-
点位
|
行数
|
程序
|
P1
|
1
|
MOVJ VJ=30% PL=0
|
P2
|
2
|
MOVL VL=500MM/S PL=0
|
P3
|
3
|
MOVL VL=200MM/S PL=0 UNTIL X#(1)==ON
|
|
4
|
JUMP *22 IF X#(1)==ON
|
P4
|
5
|
MOVL VL=200MM/S PL=0
|
|
6
|
*22
|
P5
|
7
|
MOVJ VJ=30% PL=0
|
★说明:
1.X1有效后,系统退出当前执行的第三行程序,直接跳转到第7行执行。
2.X1有效时间要长点,否则会执行5行程序。
本附加项用于,设定程序开始多少距离切换某个信号(M、Y)有效或无效,到离结束点多少距离再还原该信号。
图-
程序实例:
MOVL VL=500MM/S PL=0 DOUT Y#(0)==ON START
10.0 END 10.0
程序说明:执行本程序后,运动10MM后,Y0口开启(ON),机器人运动到距离结束点10MM时,关闭Y0口(OFF),然后程序运行到结束点。
本功能可用于喷涂运动中开关枪等。
AOUT用法举例
本附加项用于机器人在运动过程中或结束位置输出指定模拟量。
图-
1)V I模拟量输出:
V I模拟量输出只能用于焊接指令中间。指令不在焊接指令之间时,系统执行到该指令行,系统报警,并提示:没有焊接状态,不能在运动中使用AOUT改变焊接电流电压。
V对应焊机电压,I对应焊接电流。执行本指令从起点到终点时,模拟电压由焊接电压到指定电压线性变化。
程序举例:焊接电流200A对应模拟量4.95V,焊接电压20V对应模拟量4.95V;焊接电流400A对应模拟量9.95V,焊接电流40V对应模拟量9.95V。
ARCSTART#(0)
MOVL VL=500MM/S PL=0 AOUT V=40.0 I=400.0A
ARCEND#(0)
程序说明:程序执行到第1行时,A1 A2先输出起弧电压;第1行指令结束时,A1 A2模拟量输出4.95V(焊接电流电压)。执行第2行到结束时,A1 A2模拟量从4.95V线性变化到9.95V。执行第3行时电压又变为灭弧电压。
可用于焊接电流电压需要变化的场合。
2)A1 A2模拟量输出:
在焊接指令之间使用本指令时,将不生效。系统按照焊接工艺设定输出。不在焊接指令之间时,系统执行到本指令行结束再输出A1 A2对应模拟量。简称到点输出。
3)A3 A4模拟量输出:
指令不管在焊接指令之间,还是不在焊接指令之间,系统执行本指令行时,机器人从起点到终点,A3 A4模拟量从开始点的值线性变化到结束点指令指定数值。简称线性输出。
程序举例:
Ø MOVJ VJ=30% PL=0 ;A点 A3=0 A4=0
Ø MOVL VL=500MM/S PL=0 AOUT A3=10.0 A4=10.0 ;B点
程序说明:机器人移动从A点运行到B点,A3、A4模拟量由0V线性变化到10V。
COORD用法举例:
本附加项用于机器人在直线、圆弧运动时,和外部轴实现协同动作的作用。
图-
程序举例:
Ø MOVL VL=100MM/S PL=0 TOOL=1 COORD;直线运动,协同轴1、2同时开启。
Ø MOVL VL=200MM/S PL=0 TOOL=1 COORD1;直线运动,协同轴1开启。
Ø MOVC VL=100MM/S PL=0 TOOL=1 POINT=2 COORD2;圆弧运动,协同轴2开启
Ø MOVC VL=100MM/S PL=0 TOOL=1 POINT=3 COORD;圆弧运动,协同1、2同时开启。
OP用法指令:
本附加项用于机器人在直线、圆弧运动中带入局部OP偏移量。
图-
程序举例:
Ø MOVL VL=100MM/S PL=0 TOOL=1 OFFSET OP#(0);带入OP0局部偏移,移动到1点。
Ø MOVL VL=100MM/S PL=0 TOOL=1 OFFSET OP#(0);带入OP0局部偏移,移动到2点。
Ø MOVL VL=100MM/S PL=0 TOOL=1 OFFSET OP#(2);带入OP2局部偏移,移动到3点。
★注意:OP变量的值可以在:运行准备→变量→寻位变量→OP变量中查看和修改。
指令
|
项目
|
说明
|
数字量输出
(DOUT)
|
指令功能
|
控制变量的状态。数字量只有两种形式,因此在使用该指令时只有两种状态,即“ON(有效)”和“OFF(无效)”两种状态。
|
附加项
|
Y<变量号>=ON/OFF
|
控制输出口Y<变量号>,ON或OFF状态,变量号范围参考《硬件说明书》或《PLC说明书》。
|
M<变量号>=ON/OFF
|
程序举例
|
Ø DOUT Y#(0)=ON 控制输出口Y0为ON状态
Ø DOUT M#(0)=OFF 控制辅助继电器M0为OFF状态
|
表-
指令
|
项目
|
说明
|
模拟量输出
(AOUT)
|
指令功能
|
输出模拟量口的模拟电压。
|
附加项1
|
AO#<变量号>=
|
指定需要输出的模拟量端口号,范围S40两路A1-A2,S80四路A1-A4。
|
附加项2
|
<变量>
|
变量为需要输出的模拟量电压值,范围0.000-10.000V。
|
程序举例
|
Ø AOUT AO#(1)=0.000 输出A1口模拟电压为0V
Ø AOUT AO#(2)=10.000 输出A2口模拟电压为10V
|
表-
指令
|
项目
|
说明
|
条件等待(WAIT)
条件等待(WAIT)
|
指令功能
|
当您所设定的条件满足时,则程序往下执行;当您所设定的条件不满足时,则程序一直停在这里,直到满足您所设定的条件为止。若设定了后面的时间,当条件不满足时,设定时间满足后则会继续执行下面的程序。
|
附加项1
|
X<变量号>==ON/OFF
M<变量号>==ON/OFF
|
判断输入口X<变量号>的状态是ON还是OFF。变量号范围参考《硬件说明书》。
|
判断辅助继电器M<变量号>的状态是ON还是OFF。变量号范围参考《PLC说明书》。
|
附加项2
|
T=<变量>
|
等待时间,单位:1MS。T=0一直等待所设条件;T≠0时,条件和时间一个先到就往下执行。
|
程序举例
|
Ø WAIT X#(0)==ON T=0 持续等待X0口有效。
Ø WAIT M#(1)==OFF T=500 在500MS内等待M1继电器有效,否则顺序执行。
|
表-
指令
|
项目
|
说明
|
延时指令(TIME)
|
指令功能
|
在指定时间能等待(延时),时间结束,程序往下执行。
|
附加项
|
T=<变量>
|
指定(延时)等待时间,变量单位:1MS,范围:0-99999
|
程序举例
|
TIME T=50 ;延时50MS
|
表-
指令
|
项目
|
说明
|
后台延时
输出
(TDOUT)
|
指令功能
|
用于在后台延时输出状态,该指令在后台执行,不占用程序时间。
|
附加项1
|
Y<变量号>
|
=
|
ON/OFF
|
M<变量号>
|
附加项2
|
T=<变量>
|
指定(延时)等待时间,变量单位:MS,范围:0-99999
|
程序举例
|
Ø DOUT Y#(0)=ON ;输出Y#(0)为ON
Ø TDOUT Y#(0)=OFF T=1000 ;后台延时1000ms输出Y#(0)为OFF
|
表-
指令
|
项目
|
说明
|
暂停
(PAUSE)
|
指令功能
|
1. 无条件暂停,程序暂停,直到按“运行键”程序再继续执行。
2. 有条件暂停,只有当后面条件满足时,程序暂停,否则连续运行。
|
附加项1
|
[空白]
|
无条件暂停(无附加项2)
|
IF
|
条件暂停:条件满足暂停,否则顺序执行。
|
附加项2
|
X<变量号>
|
==
>
<
>=
<=
=
|
ON
OFF
|
各变量号范围:
X/Y:0-559
M:0-4059
GI:0-1023
LI:0-999
GD:0-299
LD/GP/LP:0-999
TC/T:0-59
C/CC:0-19
GS:0-99
|
M<变量号>
|
Y<变量号>
|
T<变量号>
|
C<变量号>
|
GI<变量号>
LI<变量号>
GD<变量号>
LD<变量号>
GP<变量号>
<数据号>
LP<变量号>
<数据号>
TC<变量号>
CC<变量号>
|
GI<变量号>
LI<变量号>
GD<变量号>
LD<变量号>
GP<变量号>
LP<变量号>
TC<变量号>
CC<变量号>
D<变量号>
|
GS<变量号>
|
<字符串>
|
程序举例
|
PAUSE ;无条件暂停
PAUSE IF X#(0)==ON ; 只有当X0=ON时才暂停,否则继续执行。
PAUSE IF GD#(1)==LD#(1) ;只有当GD1=LD1时,程序才暂停,否则继续执行。
|
表-
指令
|
项目
|
说明
|
条件跳转
(JUMP)
条件跳转
(JUMP)
|
指令功能
|
程序跳转指令,分有条件和无条件跳转。
说明:
1、使用此条指令时,要配合使用标号指令(*)。标号就是您所要将程序跳转到的位置。
2、后面不加条件,只要程序执行到此行,则直接跳到标号所处的位置。
3、后面有条件,当程序执行到该行指令时,程序不一定跳转,只有当后面的条件满足时,程序才跳转到标号所处的位置。条件不满足,程序顺序执行。
|
附加项1
|
*<变量>
|
跳转标号、标记,表示跳转到具有*<变量>的位置;变量可以为任意字符、数字。
|
附加项2
|
[空白]
|
无条件跳转
|
IF
|
条件跳转:
若条件满足,跳转到*<变量>所在位置。
若条件不满足,程序顺序执行。
|
附加项3
|
X<变量号>
|
==
>
<
>=
<=
=
|
ON
OFF
|
各变量号范围:
X/Y:0-559
M:0-4059
GI:0-1023
LI:0-999
GD:0-299
LD/GP/LP:0-999
TC/T:0-59
C/CC:0-19
GS:0-99
|
M<变量号>
|
Y<变量号>
|
T<变量号>
|
C<变量号>
|
GI<变量号>
LI<变量号>
GD<变量号>
LD<变量号>
GP<变量号>
<数据号>
LP<变量号>
<数据号>
TC<变量号>
CC<变量号>
|
GI<变量号>
LI<变量号>
GD<变量号>
LD<变量号>
GP<变量号>
LP<变量号>
TC<变量号>
CC<变量号>
D<变量号>
|
GS<变量号>
|
<字符串>
|
程序举例
|
1 * 345T
;标号*345T位置
……
6 JUMP
*SES IF M#(1)==ON ;如果M1=ON,跳转到*SES位
置。
……
12 JUMP
*345T ;无条件跳转*345T位置。
13 *SES ;标号*SES位置
…… ;后续程序
|
表-
指令
|
项目
|
说明
|
子程序
调用
(CALL)
|
指令功能
|
子程序调用指令,包含有条件调用和无条件调用。
说明:
1、子程序的建立和主程序的建立唯一的区别就是在编写完所有的程序之后,子程序的末尾加上RET指令。
2、直接选择或输入程序文件名即可(后面可不加条件),只要程序执行到此行,则直接调用该子程序;若后面有条件,只有当后面的条件满足时,才调用该子程序。
3、在使用call无条件指令时,我们在机器人内部设有固定的子程序调用,用来控制滑台及喷枪(例:自转90度、一枪开启等)。
|
附加项1
|
<程序名>
|
程序名为调用的子程序名称。可通过下拉菜单选择调用的子程序名。
|
附加项2
|
[空白]
|
无条件调用,运行到本行直接调用<程序名>(子程序的程序名)。
|
IF
|
条件调用:
条件满足,调用<程序名>指定的子程序。
条件不满足,程序顺序执行。
|
附加项3
|
X<变量号>
|
==
>
<
>=
<=
=
|
ON
OFF
|
各变量号范围:
X/Y:0-559
M:0-4059
GI:0-1023
LI:0-999
GD:0-299
LD/GP/LP:0-999
TC/T:0-59
C/CC:0-19
GS:0-99
|
M<变量号>
|
Y<变量号>
|
T<变量号>
|
C<变量号>
|
GI<变量号>
LI<变量号>
GD<变量号>
LD<变量号>
GP<变量号>
<数据号>
LP<变量号>
<数据号>
TC<变量号>
CC<变量号>
|
GI<变量号>
LI<变量号>
GD<变量号>
LD<变量号>
GP<变量号>
LP<变量号>
TC<变量号>
CC<变量号>
D<变量号>
|
GS<变量号>
|
<字符串>
|
程序举例
|
Ø CALL 125
;调用程序名为125的子程序
Ø CALL
%SBS IF LD#(1) > LD#(2) ;如果LD1>LD2,则调用SBS子程序。
|
表-
指令
|
项目
|
说明
|
注释
(;)
|
指令功能
|
注释指令,解释说明。在执行程序时,此部分的内容不执行,相当于提示使用者这里是什么意思,主要方便读者更加轻松的理解该程序。
|
附加项
|
;<注释内容>
|
注释内容为用户自己定义内容。便于用户自己查看,理解程序。
|
程序举例
|
;tqzl :注释内容tqzl,本行不执行。
|
表-
指令
|
项目
|
说明
|
跳转标号(*)
|
指令功能
|
标记JUMP跳转位置,需和JUMP指令配合使用。
|
附加项
|
*<变量>
|
变量可以为任意字符或数字。
|
程序举例
|
Ø *ssb4 :标记跳转位置:*ssb4
Ø ……
|
表-
指令
|
项目
|
说明
|
RET
|
指令功能
|
用于子程序的返回。返回调用程序的界面,接CALL程序行后继续运行主程序。
|
附加项
|
无
|
|
程序举例
|
RET ;子程序返回
|
表-
指令
|
项目
|
说明
|
加法
运算
(ADD)
|
指令功能
|
将前一变量和后一变量相加,结果赋值给前一个变量。如:A=A+B。本指令只能使用数据变量。
|
附加项1
|
GI<变量号>
LI<变量号>
GD<变量号>
LD<变量号>
GP<变量号>
<数据号>
LP<变量号>
<数据号>
TC<变量号>
CC<变量号>
|
附加项2
|
GI<变量号>
LI<变量号>
GD<变量号>
LD<变量号>
GP<变量号>
<数据号>
LP<变量号>
<数据号>
TC<变量号>
CC<变量号>
D<变量>
|
将前一变量和后一变量相加,结果赋值给前一变量。
|
附加项3
|
[空白]
|
不参考点
|
只在做GP运算时使用。不用时均选择空白。
|
参考GP<变量号>
|
参考本GP点作点运算
|
附加项4
|
[空白]
|
无参考坐标系
|
用户
|
参考用户坐标系
|
工具
|
工具坐标系
|
协同
|
协同坐标系
|
程序举例
|
Ø ADD
TC#(4) GP#1(1) :TC4=TC4+GP1 ;X轴坐标
Ø ADD
CC#(1) 20.5 :CC1=CC1+20.5
|
表-
原文件编号如此,无附加项2。
指令
|
项目
|
说明
|
减法
运算
(SUB)
|
指令功能
|
将前一变量和后一变量相加,结果赋值给前一个变量。如:A=A-B。本指令只能使用数据变量。
|
附加项1
|
GI<变量号>
LI<变量号>
GD<变量号>
LD<变量号>
GP<变量号>
<数据号>
LP<变量号>
<数据号>
TC<变量号>
CC<变量号>
|
附加项2
|
GI<变量号>
LI<变量号>
GD<变量号>
LD<变量号>
GP<变量号>
<数据号>
LP<变量号>
<数据号>
TC<变量号>
CC<变量号>
D<变量>
|
将前一变量和后一变量相减,结果赋值给前一变量。
|
附加项3
|
[空白]
|
不参考点
|
只在做GP运算时使用。不用时均选择空白。
|
参考GP<变量号>
|
参考本GP点作点运算
|
附加项4
|
[空白]
|
无参考坐标系
|
用户
|
参考用户坐标系
|
工具
|
工具坐标系
|
协同
|
协同坐标系
|
程序举例
|
Ø SUB
TC#(4) GP#1(1) :TC4=TC4-GP1 ;X轴坐标
Ø SUB
CC#(1) 20.5 :CC1=CC1-20.5
|
表-
指令
|
项目
|
说明
|
乘法
运算
(MUL)
|
指令功能
|
将前一变量乘以后一变量,结果赋值给前一个变量。如:A=A×B。本指令只能使用数据变量。
|
附加项
|
GI<变量号>
LI<变量号>
GD<变量号>
LD<变量号>
GP<变量号>
<数据号>
LP<变量号>
<数据号>
TC<变量号>
CC<变量号>
|
GI<变量号>
LI<变量号>
GD<变量号>
LD<变量号>
GP<变量号>
<数据号>
LP<变量号>
<数据号>
TC<变量号>
CC<变量号>
D<变量>
|
将前一变量乘以后一变量,结果赋值给前一个变量。
|
程序举例
|
Ø MUL TC#(4)
GP#1(1) :TC4=TC4×GP1 X轴坐标
Ø MUL
CC#(1) 20.5 :CC1=CC1×20.5
|
表-
指令
|
项目
|
说明
|
除法
运算
(DIV)
|
指令功能
|
将前一变量除以后一变量,结果赋值给前一个变量。如:A=A÷B。本指令只能使用数据变量。
|
附加项
|
GI<变量号>
LI<变量号>
GD<变量号>
LD<变量号>
GP<变量号>
<数据号>
LP<变量号>
<数据号>
TC<变量号>
CC<变量号>
|
GI<变量号>
LI<变量号>
GD<变量号>
LD<变量号>
GP<变量号>
<数据号>
LP<变量号>
<数据号>
TC<变量号>
CC<变量号>
D<变量>
|
将前一变量除以后一变量,结果赋值给前一个变量。
|
程序举例
|
Ø DIV
TC#(4) GP#1(1) :TC4=TC4÷GP1 X轴坐标
Ø DIV
CC#(1) 20.5 :CC1=CC1÷20.5
|
表-
指令
|
项目
|
说明
|
加1
运算
(INC)
|
指令功能
|
将变量加数字1,结果赋值给变量。如:A=A+1。本指令只能使用数据变量,多用于计数。
|
附加项
|
GI<变量号>
|
将变量加数字1,结果赋值给变量。
|
LI<变量号>
|
GD<变量号>
|
LD<变量号>
|
GP<变量号>
<数据号>
|
LP<变量号>
<数据号>
|
TC<变量号>
|
CC<变量号>
|
程序举例
|
Ø INC
TC#(4) :TC4=TC4+1
Ø INC
CC#(1) :CC1=CC1+1
|
表-
指令
|
项目
|
说明
|
减1
运算
(DEC)
|
指令功能
|
将变量减数字1,结果赋值给变量。如:A=A-1。本指令只能使用数据变量,多用于计数。
|
附加项
|
GI<变量号>
|
将变量减数字1,结果赋值给变量。
|
LI<变量号>
|
GD<变量号>
|
LD<变量号>
|
GP<变量号>
<数据号>
|
LP<变量号>
<数据号>
|
TC<变量号>
|
CC<变量号>
|
程序举例
|
Ø INC
TC#(4) :TC4=TC4-1
Ø INC
CC#(1) :CC1=CC1-1
|
表-
指令
|
项目
|
说明
|
赋值
(SET)
|
指令功能
|
将后一变量的值赋给前一变量,如A=B。本指令只能使用数据变量。
|
附加项
|
GI<变量号>
LI<变量号>
GD<变量号>
LD<变量号>
GP<变量号>
<数据号>
LP<变量号>
<数据号>
TC<变量号>
CC<变量号>
|
GI<变量号>
LI<变量号>
GD<变量号>
LD<变量号>
GP<变量号>
<数据号>
LP<变量号>
<数据号>
TC<变量号>
CC<变量号>
D<变量>
|
将后一变量的值赋给前一变量。
|
程序举例
|
Ø SET
TC#(4) GP#1(1) :TC4=GP1 X轴坐标
Ø SET
CC#(1) TC#(1) :CC1=TC1
Ø SET
TC#(1) 5.000 :TC1=5
|
表-
指令
|
项目
|
说明
|
码垛
(PALLET)
|
指令功能
|
运行码垛工艺。运行本指令,程序将调用预先设定好的码垛工艺,变量号为工艺号码,范围0-199。码垛相关信息详见《码垛工艺说明》。
|
附加项
|
#<变量号>
|
变量号为需要调用的码垛工艺号码。
|
程序举例
|
PALLET#(1)
:调用码垛工艺1
|
表-
指令
|
项目
|
说明
|
起弧
(ARC START)、
收弧(ARC
END)
|
指令功能
|
运行本指令,程序将调用预先设定好的焊接参数,起弧。变量号为焊接参数文件号,范围0-7。
该两条指令成对使用。焊接相关信息详见《焊接工艺说明》。
|
附加项
|
#<变量号>
|
变量号为需要调用的焊接参数文件号。
|
程序举例
|
Ø ARCSTART#(1)
调用焊接参数文件1,起弧开始,焊接
Ø ……
Ø ARCEND#(1)
起弧结束,焊接完成
|
表-
指令
|
项目
|
说明
|
摆弧
(WEAVE)
摆弧结束
(WEAVEEND)
|
指令功能
|
运行本指令,程序将调用预先设定好的摆弧参数,摆弧。变量号为摆动焊接参数文件号,范围0-7。
该两条指令成对使用。摆弧相关信息详见《焊接工艺说明》。
|
附加项
|
#<变量号>
|
变量号为配对使用摆弧指令的焊接参数文件号。
|
程序举例
|
WEAVE#(1)
……
WEAVEEND#(1)
|
调用摆弧参数文件1,摆弧。
摆弧路径
摆弧结束
|
表-
焊接摆弧综合实例:
Ø ARCSTART #(1) ;调用1号焊接参数进行焊接
Ø WEAVESINE #(1) ;调用1号摆动参数
Ø MOVL VL=100MM/S PL=0 ;走焊接轨迹
Ø WEAVEEND ;摆动结束
Ø ARCEND #(1) ;1号焊接工艺结束
指令
|
项目
|
说明
|
伺服通
讯点焊
(SPOT)
|
指令功能
|
针对焊接压力曲线工艺,配合点焊焊机使用。
注:要使用SPOT指令,需先在机构参数27号设置为5(点焊工艺),才能选择。
|
附加项
|
#<文件号>
|
焊接压力曲线文件号
|
S<文件号>
|
通讯焊机内焊接工艺
|
P<变量>
|
点焊保持压力
|
程序举例
|
Ø MOVL… ;直线运动一段距离
Ø SPOT(0)
S(0)P(20) ;调用系统点焊压力曲线文件(0)和焊机内部焊接工艺(0),保持压力(20)
Ø MOVL… ;直线运动一段距离
Ø SPOT(0)
S(0)P(20)
Ø MOVL…
|
表-
指令
|
项目
|
说明
|
鱼鳞焊开始
(STITCHSTART)
鱼鳞焊结束
(STITCHEND)
|
指令功能
|
STITCHSTART鱼鳞纹焊接开始,与起弧指令ARCSTART配合使用。
STITCHEND鱼鳞纹焊接结束,与收弧指令ARCEND配合使用。
|
附加项
|
T<变量>ms
|
点焊时间,单位ms
|
L2<变量>mm
|
空走距离,单位mm
|
L1<变量>mm
|
焊接距离,单位mm
|
KL1<变量>mm
|
焊接距离,单位mm使用鱼鳞焊KL1功能后,焊接时不检测起弧及灭弧反馈信号,机器人在鱼鳞焊时,不会停止,一直运动到灭弧点。
|
程序举例
|
Ø ARCSTART#(0)
;打开焊接工艺(0)
Ø STITCHSTART
T=300 L2=3.0 ;开始鱼鳞焊接,点焊300ms,空走3mm,再点焊300ms
Ø MOVL
VL=30MM/S PL=0 ;焊接轨迹,鱼鳞焊功能接入,空走的速度为30MM/S,焊接轨迹是直线
Ø STITCHEND
;鱼鳞焊接结束
Ø ARCEND#(0)
;焊接工艺(0)结束
|
表-
指令
|
项目
|
说明
|
打开激光
(OPENLASER)
关闭激光
(CLOSELASER)
|
指令功能
|
在激光寻位中,用于打开和关闭激光。
|
附加项
|
#<文件号>
|
系统设置的对应激光跟踪工艺号。
|
程序举例
|
Ø OPENLASER#(0)
;打开激光,调用激光工艺(0)
Ø CLOSELASER
;关闭激光
|
表-
指令
|
项目
|
说明
|
激光搜寻
(SEARCHLASER)
|
指令功能
|
在激光跟踪中,用于激光搜寻焊缝起点。
|
附加项
|
#<文件号>
|
激光跟踪器上设置的对应激光跟踪工艺号。
|
程序举例
|
Ø ASEARCHLASER#(0)
;激光搜寻焊缝起点,调用激光跟踪器工艺(0)
|
表-
指令
|
项目
|
说明
|
打开激光跟踪
(OPENLASERTRACK)
关闭激光跟踪
(CLOSELASERTRACK)
|
指令功能
|
在激光跟踪焊接中,用于打开和关闭激光跟踪。
|
附加项
|
#<文件号>
|
跟踪器对应激光跟踪工艺号。
|
程序举例
|
Ø OPENLASERTRACK#(0)
;打开激光功能,调用激光工艺(0)
Ø CLOSELASERTRACK
; 关闭激光跟踪
|
表-
激光跟踪综合示例:
Ø MOVJ VJ=50% PL=0 ;关节运动
Ø OPENLASER#(0) ;打开激光,调用系统(0)号激光工艺
Ø MOVL VL=100MM/S PL=0 ;直线运动到焊接起始点
Ø SEARCHLASER#(1) ;激光搜寻,调用跟踪器(1)号工艺
Ø ARCSTART #(0) ;焊接开始,调用(0)号焊接工艺
Ø OPENLASERTRACK#(1) ;打开激光跟踪,调用跟踪器(1)号工艺
Ø MOVL VL=10MM/S PL=0 ;焊接轨迹
Ø CLOSELASERTRACK ;关闭激光跟踪
Ø ARCEND#(0) ;焊接结束
Ø CLOSELASER ;关闭激光
指令
|
项目
|
说明
|
速度改变
(SPEED)
|
指令功能
|
本指令通过附加项的比例值,乘以之后程序行的速度,来调整其后关节运行行速度。
VJ<比例>对其后VJ速度有效。VL<比例>对气候VL速度有效。
SPEED
VJ=100或SPEED VL=100取消速度改变功能。
本指令主要用于需要对某部分程序行调速时使用。而再现模式中的运行倍率对整个程序都有效。
|
附加项1
|
VJ=<比例>
|
范围:0-100,对其后VJ速度有效。
|
VL=<比例>
|
范围:0-100,对其后VL速度有效。
|
附加项2
|
[空白]
|
|
GI<变量>
|
范围:1-4096
|
表-
程序举例:
Ø MOVL VL=500MM/S PL=0 ;VL速度变为:500X30%=150MM/S。
;之后VL速度均乘以100%。
Ø SPEDE VJ=100 ;
Ø MOVL VL=500MM/S PL=0 ; VL速度变为:500X100%=500MM/S,等同于没有变速、变速取消。
指令
|
项目
|
说明
|
1.(IF)
2.(ELSEIF)
|
指令功能
|
IF条件判断指令。本指令由IF、ELSEIF(可省略或重复使用)、ELSE、ENDIF构成一个完整结构。
首先判断IF条件是否成立,成立则执行IF之后的语句。
如果IF条件不成立,则判断ELSEIF之后条件(本指令行可根据实际选择使用或不使用),ELSEIF条件成立,则执行ELSEIF之后程序。如果ELSEIF条件不成立,则执行ELSE之后程序。程序结尾使用ENDIF。
|
附加项1
|
X<变量号>
|
==
>
<
>=
<=
=
|
ON/
OFF
|
IF条件判断,条件成立,执行该语句之后程序。
如果IF条件不成立,执行ELSEIF条件判断,如果ELSEIF之后条件成立,则执行ELSEIF之后程序。
如果IF和ELSEIF之后条件都不成立,则执行ELSE之后程序。
ENDIF结束IF判断。
|
M<变量号>
|
Y<变量号>
|
T<变量号>
|
C<变量号>
|
GI<变量号>
LI<变量号>
GD<变量号>
LD<变量号>
GP<变量号>
<数据号>
LP<变量号>
<数据号>
TC<变量号>
CC<变量号>
|
GI<变量号>
LI<变量号>
GD<变量号>
LD<变量号>
GP<变量号>
LP<变量号>
TC<变量号>
CC<变量号>
D<变量号>
|
GS<变量号>
|
<字符串>
|
附加项2
|
编号
|
指令结构标号,一个完整的指令结构内该标号必须一致,否则程序将报错或跳出。
一个完整指令结构所使用的编号和另一个完整指令结构编号可以相同。
标号范围:0-8。
|
3.(ELSE)
4.(END
IF)
|
附加项
|
编号
|
指令结构标号,标号范围:0-8。
|
|
|
|
|
|
|
|
表-
程序举例1(IF):
Ø RIF X#(0)==ON 0 ;如果X0=ON执行下条指令。
Ø INC TC#(0) ;TC0=TC0+1
Ø ELSEIF X#(1) = =OFF ;如果X0=OFF,执行下条指令。
Ø DEC TC#(0) ;TC0=TC0-1
Ø ELSE 0 ;如果都不满足,则执行下条指令。
Ø ADD TC#(0) TC#(0) ;TC0=TC0+TC0
Ø END IF 0 ;IF指令结束
程序举例2(ELSEIF):
Ø IF X#(0)==ON 0 ;如果X0=ON。执行TC0=TC0+1
Ø INC TC#(0)
Ø ELSEIF X#(1)==ON 0 ;如果X1=ON,执行TC0=TC0+2
Ø ADD TC#(0) 2.000
Ø ELSEIF X#(2)==ON 0 ;如果X2=ON,执行TC0=TC0+3
Ø ADD TC#(0) 3.000
Ø ELSE 0 ;否则,执行
Ø TC0=TC0+TC0
Ø ADD TC#(0) TC#(0)
Ø ENDIF 0 ;0号IF指令结构结束
程序举例3(ELSE):
Ø IF X#(1)==ON 0 ;如果X1=ON。执行TC0=TC0+1
Ø INC TC#(0)
Ø ELSE 0 ;否则执行TC0=TC0+3
Ø ADD TC#(0) 3.000
Ø END IF 0 ;0号IF指令结构结束
Ø IF X#(1)==OFF 0 ;如果X1=OFF,执行TC0=TC0+4
Ø ADD TC#(0) 4.00
Ø ELSE 0 ;否则执行TC0=TC0+5
Ø ADD TC#(0) 5.00
Ø END IF 0 ;0号IF指令结构结束
(备用)
指令
|
项目
|
说明
|
循环
(WHILE)
|
指令功能
|
WHILE循环指令,本指令由WHILE和ENDWHILE构成一个完整结构。
当WHILE后的条件满足要求时,即条件为ON时,执行WHILE和ENDWHILE里面的程序,直到WHILE条件后的指令不满足要求,则退出该循环。
判断条件一定要在循环部分中进行设置,否则会死循环。
|
附加项1
|
X<变量号>
|
==
>
<
>=
<=
=
|
ON/
OFF
|
WHILE循环指令的条件判断。
当条件满足要求时,即条件为ON时,执行WHILE和ENDWHILE之间的程序行。
当条件不满足时,程序跳出该循环区间,执行ENDWHILE之后程序行。
|
M<变量号>
|
Y<变量号>
|
T<变量号>
|
C<变量号>
|
GI<变量号>
LI<变量号>
GD<变量号>
LD<变量号>
GP<变量号>
<数据号>
LP<变量号>
<数据号>
TC<变量号>
CC<变量号>
|
GI<变量号>
LI<变量号>
GD<变量号>
LD<变量号>
GP<变量号>
LP<变量号>
TC<变量号>
CC<变量号>
D<变量号>
|
GS<变量号>
|
<字符串>
|
附加项2
|
编号
|
指令结构标号,一个完整的指令结构内该标号必须一致,否则程序将报错或跳出。
一个完整指令结构所使用的编号和另一个完整指令结构编号可以相同。
标号范围:0-8。
|
结束循环
(ENDWHILE)
|
附加项
|
编号
|
结束指令结构标号,标号范围:0-8。
|
|
|
|
|
|
|
|
表-
程序举例1:
Ø WHILE <条件><编号> ;判断条件,成立:执行……部分程序行; 不成立:执行ENDWHILE后程序行。
Ø ……
Ø ENDWHILE <编号>
Ø ……
程序举例2:
Ø SET TC#(1) 0.000 ;赋值TC1=0
Ø WHILE TC#(1) < 20 0 ;如果TC1<20,执行IF部分
Ø IF X#(1)==ON 0 ;IF判断:如果X1=ON则TC1=TC1+1
Ø INC TC#(1)
Ø ELSE 0 ;否则TC1=TC1+2
Ø ADD TC#(1) 2.000
Ø ENDIF 0 ;IF判断结束
Ø ENDWIHILE 0 ;如果TC1≮20,则执行TC1=15
Ø SET TC#(1) 15.000
指令
|
项目
|
说明
|
1.SWITCH
|
指令功能
|
SWITCH条件选择指令,本指令由SWITCH、CASE(可重复使用)、BREAK、DEFAULT、ENDSWITCH构成一个完整的指令结构。
计算SWITCH后变量的值,判断和那个CASE后的数值相等。
找到相等CASE后,程序从该位置开始执行,执行到第一个BREAK结束,并跳转到ENDSWITCH行。
|
附加项1
|
X<变量号>
M<变量号>
Y<变量号>
T<变量号>
C<变量号>
|
状态变量,CASE内容为0或者1。
|
GI<变量号>
LI<变量号>
GD<变量号>
LD<变量号>
GP<变量号>
<数据号>
LP<变量号>
<数据号>
TC<变量号>
CC<变量号>
|
数据变量,CASE内容为具体数据。
|
GS<变量号>
|
字符变量,CASE内容为具体字符。
|
附加项2
|
<编号>
|
指令结构标号,一个完整的指令结构内该标号必须一致,否则程序将报错或跳出。
同程序中指令结构标号可以相同。
标号范围:0-8。
|
表-
程序举例:
Ø SWITCH TC#(2) 0 ;SWITCH计算变量TC2,CASE10即TC2=10执行输出A1口1V电压
Ø CASE 10 0
Ø AOUT AO#(1)=1.000
Ø BREAK 0 ;CASE10结束转到ENDSWITCH
Ø CASE 20 0 ;CASE20即TC2=20执行输出A1口2V电压
Ø AOUT AO#(1)=2.000
Ø BREAK 0 ;CASE20结束转到ENDSWITCH
Ø CASE 30 0 CASE30即TC2=30执行输出A1口3V电压
Ø AOUT AO#(1)=3.000
Ø BREAK 0 ;CASE30结束转到ENDSWITCH
Ø CASE 40 0 ;CASE40即TC2=40执行输出A1口4V电压
Ø AOUT AO#(1)=4.000
Ø BREAK 0 ;CASE40结束转到ENDSWITCH
Ø CASE 50 0 ;CASE50即TC2=50执行输出A1口5V电压
Ø AOUT AO#(1)=5.000
Ø BREAK 0 ;CASE50结束转到ENDSWITCH
Ø CASE 60 0 ;CASE60即TC2=60执行输出A1口6V电压
Ø AOUT AO#(1)=6.000
Ø BREAK 0 ;CASE60结束转到ENDSWITCH
Ø CASE 70 0 ;CASE70即TC2=70执行输出A1口7V电压
Ø AOUT AO#(1)=7.000
Ø BREAK 0 ;CASE70结束转到ENDSWITCH
Ø CASE 80 0 ;CASE80即TC2=80执行输出A1口8V电压
Ø AOUT AO#(1)=8.000
Ø BREAK 0 ;CASE80结束转到ENDSWITCH
Ø CASE 90 0 ;CASE90即TC2=90执行输出A1口9V电压
Ø AOUT AO#(1)=9.000
Ø BREAK 0 ;CASE90结束转到ENDSWITCH
Ø DEFAULT 0 ;TC2的结果不等于以上数值,则执行输出A1口10V电压
Ø AOUT AO#(1)=10.000
Ø ENDSWITCH 0 ;SWITCH指令结束
指令
|
项目
|
说明
|
2.CASE
|
指令功能
|
SWITCH条件选择指令,本指令由SWITCH、CASE(可重复使用)、BREAK、DEFAULT、ENDSWITCH构成一个完整的指令结构。
计算SWITCH后变量的值,判断和那个CASE后的数值相等。
找到相等CASE后,程序从该位置开始执行,执行到第一个BREAK结束,并跳转到ENDSWITCH行。
|
附加项
|
<数据>
|
SWITCH后变量的可能值。
|
|
|
<编号>
|
指令结构标号,一个完整的指令结构内该标号必须一致,否则程序将报错或跳出。
同程序中指令结构标号可以相同。
标号范围:0-8。
|
表-
程序举例:
Ø SWITCH TC#(1) 0 ;SWITCH计算变量TC1
Ø CASE 1 0
Ø CASE 2 0
Ø CASE 3 0
Ø CASE 4 0
Ø CASE 5 0
Ø DOUT Y#(18)==ON ;TC1=1/2/3/4/5都执行输出Y18口有效(Y18=ON)
Ø BREAK 0 ;CASE1-5结束转到ENDSWITCH
Ø DEFAULT 0 ;;TC1不等于以上数据则,输出Y18关闭(Y18=OFF)
Ø DOUT Y#(18)==OFF
Ø ENDSWITCH 0 ;SWITCH指令结束
指令
|
项目
|
说明
|
条件选择(SWITCH
→DEFAULT)
|
指令功能
|
WITCH条件选择指令,本指令由SWITCH、CASE(可重复使用)、BREAK、DEFAULT、ENDSWITCH构成一个完整的指令结构。
如果计算变量的值都不等于CASE后数值,程序则执行DEFAULT行程序。
|
附加项
|
<编号>
|
指令结构标号,一个完整的指令结构内该标号必须一致,否则程序将报错或跳出。
同程序中指令结构标号可以相同。
标号范围:0-8。
|
表-
程序举例:
Ø SWITCH <变量><编号>
Ø CASE <数值><编号>
Ø ……
Ø BREAK <编号>
Ø DEFAULT <编号>
Ø ……
Ø ENDSWITCH <编号>
指令
|
项目
|
说明
|
条件选择(SWITCH
→ENDSWITCH)
|
指令功能
|
SWITCH条件选择指令,本指令由SWITCH、CASE(可重复使用)、BREAK、DEFAULT、ENDSWITCH构成一个完整的指令结构。
SWITCH指令结束标志,表示SWITCH指令结束。
|
附加项
|
<编号>
|
指令结构标号,一个完整的指令结构内该标号必须一致,否则程序将报错或跳出。
同程序中指令结构标号可以相同。
标号范围:0-8。
|
表-
程序举例:
Ø SWITCH <变量><编号>
Ø CASE <数值><编号>
Ø ……
Ø BREAK <编号>
Ø DEFAULT <编号>
Ø ……
Ø ENDSWITCH <编号>
指令
|
项目
|
说明
|
轴脉冲跳转
(PULSETRANSFORM)
|
指令功能
|
本指令由PULSETRANSFORM和PULSETRANSRORMEND构成一个完整指令结构。
本指令将输出轴的脉冲转移到输入轴上,即原来发脉冲给输出轴运动;执行本指令后,脉冲输入到输入轴,输入轴按照所输入脉冲运动,输出轴将停止运动,输入轴原有脉冲也无效。
本指令对关节坐标有效。
|
附加项
|
<输出轴号>
|
输出轴为需要被跳转的轴号,输入轴为跳转到的轴号,范围:1-8。
|
<转入轴号>
|
表-
程序举例:
Ø PULSETRANSFORM#(1)(2)
Ø ……
Ø PULSETRANSFORMEND
指令
|
项目
|
说明
|
轴脉冲跳转结束
(PULSETARANSFORMEND)
|
指令功能
|
本指令由PULSETRANSFORM和PULSETRANSRORMEND构成一个完整指令结构。
本指令将输出轴的脉冲转移到输入轴上,即原来发脉冲给输出轴运动;执行本指令后,脉冲输入到输入轴,输入轴按照所输入脉冲运动,输出轴将停止运动,输入轴原有脉冲也无效。
本指令对关节坐标有效。
|
附加项
|
(无)
|
|
程序举例
|
PULSETRANSFORM#(1)(2)
……
PULSETRANSFORMEND
|
表-
指令
|
项目
|
说明
|
定位完成
(MOTIONFINISH)
|
指令功能
|
定位完成对MOTIONFINISH指令前一行移动(MOVJ、MOVL、MOVC)程序有效。
工作过程:前一行移动程序将准确移动到程序设定位置,这个过程中,系统将走完该行程序缓冲区所有数据,然后比较电机编码器反馈数据,直到电机反馈位置与程序行设定位置一致(通俗讲:就是系统脉冲要发完,电机也要停止到位,误差要在允许范围),MOTIONFINISH指令才结束。否则将等待在该指令行,当超过该指令内部设定时间后,系统将提示:定位完成超时。
|
附加项
|
(无)
|
|
程序举例
|
Ø MOVL
VJ=10% PL=5 ;准确移动到该行指定位置
Ø MITIONFINISH
;运行定位完成指令,对上一行移动程序有效。
|
表-
指令
|
项目
|
说明
|
轴禁止
(FORBIDAXIS)
轴禁止解除
(FORBIDAXIS
END)
|
指令功能
|
FROBIDAXIS和FORBIDAXISEND两条指令需成对使用。
禁止设定轴移动和解除设定轴禁止移动状态。
用于需要某些需要禁止某轴移动的场合,禁止移动结束后需要解除该状态。
本指令对关节坐标有效。
|
附加项
|
<轴号>
|
设定需要禁止移动或解除禁止移动的轴号。
|
程序举例
|
Ø FORBIDAXIS#(1)
;禁止J1轴移动
Ø …… ;中间程序
Ø FORBIDAXISEND#
(1) ;解除J1轴禁止状态
|
表-
指令
|
项目
|
说明
|
坐标计算
(COUNTCOORD)
|
指令功能
|
执行该指令,系统读取当前各轴编码器数据,然后计算到当前坐标中。
|
附加项
|
[空白]
|
|
程序举例
|
COUNTCOORD
;读取所有轴编码器数据,计算坐标。
|
表-
指令
|
项目
|
说明
|
冲压状态开始
(JUDGESTART)
冲压状态结束
(JUDGEEND)
|
指令功能
|
冲压状态开始。
冲压状态结束。
|
附加项
|
X<变量号>
M<变量号>
Y<变量号>
|
==
|
OFF/
ON
|
JUDGESTART条件判断,条件成立,执行该语句之后程序。
|
<状态值>
|
stop=值(0和1两个选项,0代表不停机,1代表停机)。
|
<报警号>
|
报警内容为报警号JD001的内容。
|
<编号>
|
指标号范围:0-8。
|
程序举例
|
Ø JUDGESTART X0==OFF stop1 JD001 0
Ø ……
Ø JUDGEEND;如果X0=OFF,则系统报警,并停机。报警内容为报警号JD001的内容;掉料报警可添加多段;标号用以区分开始与结束的组别。默认标号为0。
|
表-
指令
|
项目
|
说明
|
超时报警
(OTALAR)
|
指令功能
|
执行该指令,系统后台检测相应的输入信号,条件不满足则报警。
|
附加项
|
X<变量号>
M<变量号>
Y<变量号>
|
==
|
OFF/
ON
|
执行超时报警指令,后台检测X,M,Y的信号 。
|
<时间>
|
等待时间
|
<报警号>
|
弹框显示报警号。
|
程序举例
|
Ø OTALAR X#(0)==OFF T=3000 OT008;后台检测X0的信号,等待1000ms,X0==OFF还不满足,则报警。
|
表-
指令
|
项目
|
说明
|
视觉运行
(RUN
VISION)
|
指令功能
|
视觉运行指令,系统将调用指令参数中设定的工艺号相关参数,然后与系统建立连接关系。
当工艺文件选择定时或定距触发时,运行本指令后,视觉系统将开始按照设定连续触发。获得数据存入系统。
连接过程在程序连续运行时,将保持,直到程序完成退出时才断开。即:一个程序有多个本指令时,只生效第一个,一个程序连续运行时,第一次执行本指令有效,后续执行无效。
|
附加项
|
#<工艺号>
|
视觉文件号码,范围:0-9。一个工艺文件号对应一套视觉系统。
|
程序举例
|
RUNVISION#(0)
;以0号工艺文件参数建立系统与视觉之间的连接。
|
表-
指令
|
项目
|
说明
|
获得视觉数据
(GET
VISON DATA)
|
指令功能
|
将视觉缓冲区内数据导入到GP52和GP53中(GP52和GP53数值相同)。
|
附加项
|
#<工艺号>
|
视觉文件号码,范围:0-9。一个工艺文件号对应一套视觉系统。
|
程序举例
|
GETVISONDATA
#(0) 将数据导入GP52和GP53中。
|
表-
指令
|
项目
|
说明
|
清除视觉数据
(CLEAR
VISONDATA)
|
指令功能
|
清除当前缓存区内所有视觉数据。
|
附加项
|
#<工艺号>
|
视觉文件号码,范围:0-9。一个工艺文件号对应一套视觉系统。
|
程序举例
|
CLEARVISONDATA#(0)
;清除缓存区内,0号工艺号对应相机所获得的工件数据。
|
表-
指令
|
项目
|
说明
|
视觉指令触发
(TRIGGER
VISON)
|
指令功能
|
当指令对应工艺号文件中选择指令触发时,使用本指令将触发视觉系统工作,计算工件数据,并将得到的数据存入视觉缓冲区中,将数据个数存入存入GI50中。
为了减少延迟,本指令直接通过输出口(Y)触发视觉系统。
|
附加项
|
#<工艺号>
|
视觉文件号码,范围:0-9。一个工艺文件号对应一套视觉系统。
|
程序举例
|
TRIGGERVISON#(0)
;触发0号工艺视觉系统工作。
|
表-
指令
|
项目
|
说明
|
相机程序切换
(CHANGE
VISON)
|
指令功能
|
执行本指令,将通过与视觉系统连接的数据线,切换视觉系统调用的工件计算参数文件。
|
附加项
|
# <文件号>
|
需要切换到的文件名,本系统只支持数字文件名,所以视觉系统中文件也需要使用数字命名。
|
程序举例
|
A工件对应工件计算参数文件为111,B工件对应工件计算参数文件为222。当前视觉系统运行A工件文件。
CHANGVISON#(222)
视觉系统将调用B工件(222)计算参数文件。
|
表-
指令
|
项目
|
说明
|
等待触发结果
(WAITTRIGGER)
|
指令功能
|
执行本指令,必须收到数据后才会往下执行,否则,在此指令一直等待结果。
|
附加项
|
无
|
无
|
程序举例
|
WAITTRIGGER
;等待触发结果,没有收到数据,一直在此等待。
|
表-
视觉综合实例:
Ø RUNVISON#(0) ;运行视觉0号工艺。
Ø *22 ;跳转标号:*22。
Ø TRIGGERVISON#(0) ;触发一次,获得相机计算工件数据。
Ø TIME T= 200 ;延时200毫秒
Ø JUMP *22 IF GI#(50)<=0.000 ;判断GI50是否有数据,没有跳转到标号*22,重新触发。
Ø GETVISONDATA#(0) ;得到视觉缓冲区的数据,放在GP52和GP53中。
Ø ADD GP#53(3) 10.000 ;GP53的Z方向上提10MM,防止装到物体。
Ø MOVL VL=500MM/S GP#53 PL=0 ;运行到GP53安全点。
Ø MOVL VL=100MM/S GP#52 PL=0 ;运行到GP52抓取点。
Ø DOUT Y#(1)=ON ;抓取
Ø MOVL VL=500MM/S GP#53 PL=0 ;运行到GP53安全点。
Ø ……
后续放物体轨迹、动作。
指令
|
项目
|
说明
|
跟踪开始(TARCKSTART)
|
指令功能
|
系统调用工艺跟踪文件参数,将缓存区当前物体位置数据放到GP50和GP51中(GP50和GP51相同),此时GP50和GP51数据均为适时动态的。直接调用GP50和GP51数据即可开始跟踪。
|
附加项
|
#<工艺号>
|
跟踪文件号,范围:0-9。
|
<阻塞/不阻塞>
|
阻塞,一直到物体过A点得到数据程序再往下执行。
不阻塞,不用等到数据,直接往下执行。
|
程序举例
|
TRACKSTART#(0)
阻塞 ;等物体过A点得到准备GP50和GP51数据。
|
表-
指令
|
项目
|
说明
|
跟踪结束(TARCK
END)
|
指令功能
|
追踪结束,机器人停止追踪工件。GP50和GP51数据不再适时。
|
附加项
|
# <工艺号>
|
跟踪文件号。范围:0-9。
|
程序举例
|
TRACKEND#(0)
停止工件追踪。
|
表-
指令
|
项目
|
说明
|
获得跟踪数据
(GET
TRACKDATA)
|
指令功能
|
调用跟踪文件号设定参数,判断跟踪缓存区的数据。如果没有数据,等待。工件没有进入AB范围,等待。工件超出B点放弃这组数据,等待。
|
附加项
|
# <工艺号>
|
跟踪文件号。范围:0-9。
|
X<数据>
Y<数据>
Z<数据>
|
各轴补偿数据,如果不需要补偿,则设置为0。
|
程序举例
|
GETRTACKDATA#(0)
X#(0.0) Y#(0.0) Z#(0.0);判断缓存区数据是否有效。XYZ轴补偿为0。
|
表-
指令
|
项目
|
说明
|
清除跟踪数据(CLEAR
STACK DATA)
|
指令功能
|
清除工艺文件对应跟踪缓存区数据。在某些需要清除缓存区的场合使用。
|
附加项
|
# <工艺号>
|
跟踪文件号。范围:0-9。
|
X<数据>
Y<数据>
Z<数据>
|
各轴补偿数据,如果不需要补偿,则设置为0。
|
程序举例
|
CLEARTRACKDATA#(0);清除0号跟踪文件对应缓存区数据。
|
表-
指令
|
项目
|
说明
|
后台IO检测(RUN IO
CUTIN)
|
指令功能
|
运行本指令,IO检测点将持续不停的检测,是否有物体通过该检测点。如有物体通过,则将当前数据存入缓存区,以备调用。
|
附加项
|
# <工艺号>
|
跟踪文件号。范围:0-9。
|
X<数据>
Y<数据>
Z<数据>
|
各轴补偿数据,如果不需要补偿,则设置为0。
|
程序举例
|
RUNIOCUTIN#(0)
;后台IO启动,监测点持续检测。
|
表-
跟踪综合实例:
Ø MOVL VL=500.00MM\S PL=0 ;运行到中间点上方,等待抓取。
Ø RUNIOCUTIN #(1) ;运行后台IO检测,如果有物体经过IO检测点,会把当前位置压入缓存区。
Ø GETTRACKDATA#(1) X#(0.0) Y#(0.0) Z#(0.0) ;判断跟踪缓存区的数据,如果没有数据,等待;数据没有进入AB范围,等待;数据超出B点,放弃这组数据,等待。
Ø TREACKSTART #(1) ;跟踪开始,将缓存区中当前工件数据放在GP50和GP51里面。
Ø ADD GP#51(3) 10.000 ;GP51的Z方向增加10mm,将GP51作为安全位置。(3)含义参考GP变量单轴数据操作。
Ø MOVL VL=500MM/S GP#51 PL=0 ;移动到GP51安全点。
Ø MOVL VL=100MM/S GP#50 PL=0 ;移动到GP50跟踪点。
Ø DOUT Y#(0) =ON ;输出Y0有效,抓取物体。
Ø MOVL VL=500MM/S GP#51 PL=0 ;提起物体,到GP51安全点。
Ø TRACKEND #(1) ;跟踪结束。
Ø ……
后续操作步骤。详见《跟踪工艺说明书》。
指令
|
项目
|
说明
|
读取IO口BCD数据
(READIOBCD)
|
指令功能
|
读取X输入口状态,输入到设定的变量中。
|
附加项
|
GI<变量>
X<端口>
B<个数>
|
数据存储变量。
读取X输入口的起始位置。
读取X口的个数。
|
程序举例
|
READIOBCD
#(20) #(0) #(4);读取X0-X3口(4个接口)状态数据,储存到GI20变量中。
|
表-
指令
|
项目
|
说明
|
读取数据到
(READ
DATA TO)
|
指令功能
|
通过串口通讯数据到后面的变量中,通讯串口号和通讯功能需在操作参数中设置。
本功能主要用于读取条码,代码等。
|
附加项
|
GI<变量号>
GD<变量号>
GS<变量号>
|
通讯数据到GI变量。
通讯数据到GD变量。
通讯数据到GS变量。
|
程序举例
|
READDATATO
GI#(20) ;读取串口数据到变量GI20中。
|
表-
指令
|
项目
|
说明
|
把10进制输出到IO
(SETBCDIO)
|
指令功能
|
通过串口通讯数据到后面的变量中,通讯串口号和通讯功能需在操作参数中设置。
本功能主要用于读取条码,代码等。
|
附加项
|
GI<变量号>
|
变量号,将该变量中的十进制数据转二进制通讯数据到GD变量。
|
Y<变量号>
|
输出起始口号,从该接口开始输出。为二进制的低位。
|
B<变量号>
|
接口数,输出多少个接口。
|
程序举例
|
SETBCDIO
GI2 Y#15 B#4;输出到Y15开始的4个接口Y15-Y18。8转二进制为1000,则Y18-Y15为1 0 0 0 。Y18输出有效。Y17、Y16、Y15输出无效。
|
表-
本指令为备用。
指令
|
项目
|
说明
|
程序复位(RESET)
|
指令功能
|
执行本指令,系统将逐级退回到程序的首行位置停止。
就算当前运行在子程序中,使用本指令后,系统也将退出子程序,并返回到主程序首行停止。
|
附加项
|
(无)
|
|
程序举例
|
1 …… ;主程序XX内容
8 CALL
123 ;调用123子程序
9 …… ;子程序结束后执行内容
---------
1 …… ;子程序123内容
4 RESET ; 程序复位
5 RET ;子程序返回
|
|
|
上述程序组合中,执行到子程序123中的第4行RESET指令时,系统将直接跳转到主程序XX的第一行停止。
如果子程序123中,没有RESET指令,执行到子程序的RET指令时,系统将跳转到主程序的第9行继续执行。
|
表-
指令
|
项目
|
说明
|
程序指针跳转(CHANGEP)
|
指令功能
|
移动自动运行时行数指针。
如:自动运行时停止在第18行。使用CHANGEP#(-2)指令,程序停止行位置将跳转到18-2=16行位置。
|
附加项
|
<行数>
|
需要跳转行数,正数向后;负数向前跳转。
|
程序举例
|
CHANGEP#(-2);停止行数向后跳转两行,如停止在18行,执行本指令后将跳转到18-2=16行。
|
表-
指令
|
项目
|
说明
|
寻位开始(SEARCHSTART)
|
指令功能
|
寻位开始,调用1号寻位工艺。
寻位结束。
|
附加项
|
<文件号>
|
需要调用的寻位文件号,寻位工艺参数中设置;
寻位完成后关闭寻位。
|
程序举例
|
SEARCHSTART#(1)
;调用寻位1号工艺
SEARVCHEND
;寻位结束
|
表-
指令
|
项目
|
说明
|
偏移开始
(OFFSETSTART)
偏移结束
(OFFSETEND)
|
指令功能
|
偏移开始,调用偏移量OP
偏移结束
|
附加项
|
<文件号>
|
需要调用的偏移变量OP,由旗标点和寻位位置计算生成;
偏移结束。
|
程序举例
|
Ø OFFSETSTART
OP#(1) ;偏移开始,偏移量为OP(1)变量
Ø OFFSETEND
;偏移结束
|
表-
指令
|
项目
|
说明
|
计算偏移量
(COUNT
OFFSET)
|
指令功能
|
移动自动运行时行数指针。如:自动运行时停止在第18行。使用CHANGEPOINT#(-2)指令,程序停止行位置将跳转到18-2=16行位置。
|
附加项
|
角焊缝
|
|
程序举例
|
Ø COUNTOFFSET
角焊缝 2D+ 参考OP#(1) 保存OP#(2)线:NP#(3)
NP#(4) 点:NP#(5) USE#(0);
Ø 角焊缝2D+旋转,在用户坐标系#(0)中,两个点NP3和NP4确定一条线,加上一个点NP5确定一个面,参考OP(1),计算出变量保存到OP(2)中。
Ø 详细使用方法请参考《CRP寻位功能说明书》
|
表-
寻位综合实例:
图-
如图上工件的寻位过程:
Ø SEACHSTART 0 ;寻位开始
Ø MOVL VL=100 PL=0 TOOL=1 ;a点
Ø MOVL VL=100 PL=0 TOOL=1 SEACH NP0 ;b点寻c点,自动退d点,数据存NP0
Ø MOVL VL=100 PL=0 TOOL=1 ;e点
Ø MOVL VL=100 PL=0 TOOL=1 SEACH NP1 ;f点寻g点,自动退h点,数据存NP1
Ø SEACHEND ;寻位结束
Ø COUNTOFFSET 角焊缝 2D NP0
NP1 OP1 ;数据计算。放入OP1中。
Ø OFFSETSTART OP[1] ;开始偏移OP1
Ø MOVL VL=100 PL=0 TOOL=1 ;偏移数据部分程序
Ø ……
Ø OFFSETEND ;偏移结束
指令
|
项目
|
说明
|
计时开始
(STARTTIME)
计时结束
(ENDTIME)
|
指令功能
|
计时开始。
计时结束。
|
附加项
|
(无)
|
程序举例
|
STARTTIME;计时开始
……
ENDTIME;计时结束
|
表-
指令
|
项目
|
说明
|
多圈轨迹开始
(MULTITURNSTART)
多圈轨迹结束
(MULTITURNEND)
|
指令功能
|
备用
|
附加项
|
(无)
|
程序举例
|
|
表-
指令
|
项目
|
说明
|
计算负载率指令
(COUNTLOADFAC)
|
指令功能
|
执行指令,系统会在程序停止时进行负载率计算,并将结果放在对应的寄存器中。
|
附加项
|
(无)
|
程序举例
|
COUNTLOADFAC
;将计算得出的各轴的负载率取整分别写在GI920- GI927中
|
表-
指令
|
项目
|
说明
|
计算静态转矩百分比指令
(COUNTSTORQUE)
|
指令功能
|
执行指令,系统会在程序停止时进行静态转矩百分比计算,并将结果放在对应的寄存器中。
|
附加项
|
(无)
|
程序举例
|
COUNTSTORQUE
;将计算得出的各轴的静态转矩百分比分别GI930-GI937中。
|
表-
指令
|
项目
|
说明
|
计算动态数据指令
(COUNTDYNASTH)
|
指令功能
|
执行指令,系统会在程序停止时进行动态数据计算,并将结果放在对应的寄存器中。
|
附加项
|
(无)
|
程序举例
|
COUNTDYNASTH
;将计算得出的各轴的静态转矩百分比分别GI94-GI101中。
|
表-
指令
|
项目
|
说明
|
缩放开始
(ZOOMSTART)
缩放结束
(ZOOMEND)
|
指令功能
|
缩放开始,调用1号缩放工艺。
缩放结束。
|
附加项
|
<工艺号>
|
缩放文件号,范围:0-99。
|
程序举例
|
Ø ZOOMSTART(1) ;缩放开始,调用(1)号工艺
Ø ……
Ø ZOOMEND ;缩放结束
|
表-
指令
|
项目
|
说明
|
焊枪角度显示开始
(ANGLEDISPLAY)
焊枪角度显示复位
(ANGLEDISPLAYRST)
|
指令功能
|
执行角度显示指令,才会显示此指令后的直线或者圆弧轨迹时的工具角度。
|
附加项
|
GP<变量号>
<数据号>
|
LP<变量号>
<数据号>
|
程序举例
|
Ø ANGLEDISPLAY
LP0 ;焊枪角度显示开始, 显示数据存放在LP0
Ø ……
Ø ANGLEDISPLAYRST
;焊枪角度显示复位
|
表-
指令
|
项目
|
说明
|
开始塔角计算
(TOWERCOUNTSTART)
结束塔角计算
(TOWERCOUNTEND)
|
指令功能
|
运行该指令,计算当前焊缝在船型状态时,外部轴的角度值,使后面运动程序外部轴强制到达计算出的角度。
|
附加项
|
<焊缝工艺号>0-99
|
<摆弧工艺号>1-4
|
程序举例
|
Ø ANGLEDISPLAY
LP0 ;焊枪角度显示开始,显示数据存放在LP0
Ø ……
Ø ANGLEDISPLAYRST
;焊枪角度显示复位
|
表-
指令
|
项目
|
说明
|
塔角焊缝计算
(TOWERCHANGEWELD)
|
指令功能
|
运行该指令,计算当前焊缝在船型状态时,外部轴的角度值,使后面运动程序外部轴强制到达计算出的角度。
|
附加项
|
<焊缝工艺号>0-99
|
<摆弧工艺号>1-4
|
程序举例
|
Ø TOWERCHANGEWELD(4)(1) ;塔角焊缝计算, 调用工艺号4和摆弧工艺1
Ø ……
Ø TOWERCOUNTEND
;结束塔角计算
|
表-
指令
|
项目
|
说明
|
塔角姿态计算开始
(TOWERCOUNTPOSESTART)
塔角姿态计算结束
(TOWERCOUNTPOSEEND)
|
指令功能
|
塔角姿态计算开始,调用1号姿态工艺。
塔角姿态计算结束。
|
附加项
|
<工艺号>
|
塔角姿态工艺号,范围:1-99。
|
程序举例
|
Ø TOWERCOUNTPOSESTART(1) ;开始塔角姿态计算,调用工艺号1
Ø ……
Ø TOWERCOUNTPOSEEND
;结束塔角姿态计算
|
表-
指令
|
项目
|
说明
|
角钢轨迹计算
(COUNTSTEELANGLE)
|
指令功能
|
角钢轨迹计算,调用1号轨迹工艺。
|
附加项
|
<工艺号>
|
角钢轨迹工艺号,范围:1-99。
|
程序举例
|
Ø TCOUNTSTEELANGLE(1) ;角钢轨迹计算,调用角钢轨迹工艺号1
Ø ……
|
表-
指令
|
项目
|
说明
|
折弯跟随
(BENDTRACK)
|
指令功能
|
折弯工艺中,调用折弯工艺的指令。
|
附加项
|
<工艺号>
|
<平滑度>(平滑越大跟随越慢,机器人越抖)
|
程序举例
|
Ø BENDTRACK#(0)
(13) ;开始跟随,调用折弯工艺(0),平滑度为13
|
表-
指令
|
项目
|
说明
|
折弯同步(BENDSYS)
|
指令功能
|
折弯工艺中,用于同步回程的工艺调用。
|
附加项
|
<工艺号>
|
UP/DOWN(同步回程(上、下))
|
程序举例
|
Ø (原文档有误,这里暂缺)
|
表-
指令
|
项目
|
说明
|
折弯回平(BENDFLATBACK)
|
指令功能
|
折弯工艺中,在检测到回程到位信号后,机器人回平姿态的指令。
|
附加项
|
<工艺号>
|
缩放文件号,范围:0-999。
|
程序举例
|
Ø BENDFLATBACK#(0)
;检测到回程到位信号,机器人回平姿态。
|
表-
折弯综合实例:
Ø MOVL VL=100 PL=0 TOOL=1 ;到折弯点
Ø DOUT Y#(7)=ON ;启动折弯机
Ø BENDTRACK#(0) (13) ;
检测到加压信号开始跟随
Ø BENDSYS#(0) UP ;检测到回程信号开始向上跟随
Ø BENDFLATBACK#(0) ;检测到回程信号到位,机器人回平姿态
Ø TIME T=1000 ;延时1S
Ø DOUT Y#(7)=OFF ;关闭折弯机
Ø WAIT M#(232)==ON DT=0 CT=500 ;等待折弯机回程到位信号,并持续500ms
Ø MOVL VL=200MM/S PL=0 TOOL=2 ;到折弯点
指令
|
项目
|
说明
|
碰撞等级设置(SHCKSET)
|
指令功能
|
设置碰撞检测等级。
|
附加项
|
<预设值号>
|
范围1-7。
|
程序举例
|
Ø SHCKSET#(1)
; 切换碰撞等级预设号1,遇见SHCKRET指令(重启)解除,切换回默认值8号。
|
表-
指令
|
项目
|
说明
|
碰撞等级解除
(SHCKRET)
|
指令功能
|
碰撞检测等级预设号解除。
|
附加项
|
<预设值号>
|
|
程序举例
|
Ø SHCKACT ;解除前面碰撞等级设置指令设置的预设号(没有通过指令设置预设号,使用此指令也不影响,使用系统默认预设号8)。使用再现远程默认设置8号。
|
表-
指令
|
项目
|
说明
|
碰撞检测激活(SHCKACT)
|
指令功能
|
临时激活碰撞检测功能,切换示教模式,关机重启、执行碰撞检测禁用指令失效。
|
附加项
|
(无)
|
|
程序举例
|
Ø SHCKACT ;临时作用,此指令不会改变碰撞检测预设文件中设置的是否启用碰撞检测的设置。
|
表-
指令
|
项目
|
说明
|
碰撞检测禁用指令(SHCKDEACT)
|
指令功能
|
临时激活碰撞检测功能,切换示教模式,关机重启、执行碰撞检测禁用指令失效。
|
附加项
|
(无)
|
|
程序举例
|
Ø SHCKDEACT
;临时作用,此指令不会改变碰撞检测预设文件中设置的是否启用碰撞检测的设置。主要用于某些场景需要的力较大,会报警碰撞,临时关闭,执行操作后开启
|
表-
碰撞等级实例:
Ø CHANGETOOL#(1) ;切换1号工具 必须正确使用工具号,1号为抓取时的带负载工具
Ø MOVJ VJ=100% PL=0 TOOL=1 ;关节运动到等待点
Ø MOVL VL=1000MM/S PL=9 TOOL=1 ;中间过程路径点位
Ø MOVL VL=1000MM/S PL=9 TOOL=1
Ø MOVL VL=200MM/S PL=0 TOOL=1 ;准备进入狭窄空间(机床)
Ø SHCKSET#(1) ;切换1号碰撞等级预设号 因为速度慢,可以将灵敏度加高,这样更容易报警,保护机械。
Ø MOVL VL=50MM/S PL=0 TOOL=1 ;慢速移动靠近
Ø DOUT Y#(0)=ON ;放置工件
Ø TIME T=50
Ø CHANGETOOL#(2) ;切换工具2号,2号为放下工件后的负载数据
Ø MOVL VL=50MM/S PL=0 TOOL=2 ;退出
Ø SHCKRET ;解除2号碰撞等级预设值,使用默认值碰撞检测激活 (SHCKACT)与碰撞检测禁用指令(SHCKDEACT):
Ø MOVL VL=200MM/S PL=0 TOOL=1 ;必须正确使用工具号,1号为抓取时的带负载工具
Ø SHCKDEACT ;碰撞检测禁用指令,工具重量过大
Ø MOVL VL=1000MM/S PL=9 TOOL=1 ;中间过程路径点位
Ø MOVL VL=1000MM/S PL=9 TOOL=1
Ø DOUT Y#(0)=ON ;放工件
Ø SHCKACT ;碰撞检测激活 ,放完工具后负载小
Ø MOVL VL=50MM/S PL=0 TOOL=1 ;运动指令