Appearance
1 安全注意事项与产品组装说明
1.1 安全注意事项
机器人所有者、操作者必须对自己的安全负责,纳博特科技不对机器人使用的安全问题负责。纳博特提醒用户在使用机器人时必须注意使用安全设备,必须遵守安全条款。
注意:不可使用机器人的场合:
1.燃烧的环境;
2.有爆炸可能的环境;
3.无线电干扰的环境;
4.水中或其他液体中;
5.运送人或动物;
6.不可攀附;
7.其他。
安全操作规程:
一、手动和点动机器人
1.请不要带着手套操作示教器和操作面板。
2.在点动操作机器人时要采用较低的速度倍率以增加对机器人的控制机会。
3.在按下示教器上的点动键之前要考虑到机器人的运动趋势。
4.要预先考虑好避让机器人的运动轨迹,并确认该路线不受干涉。
5.机器人周围区域必须清洁、无油、水及杂质等。
二、生产运行
1.在开机运行前,必须知道机器人根据所编程序将要执行的全部任务。
2.必须知道所有会左右机器人移动的开关、传感器和控制信号的位置和状态。
3.必须知道机器人控制柜和外围控制设备上的紧急停止按钮的位置,准备在紧急情况下使用这些按钮。
警告
永远不要认为机器人没有移动就代表程序已经完成,因为这时机器人很有可能是在等待让它继续移动的输入信号!
产品组装
示教器安装
示教器线末端的接口如图所示,连接到控制柜下方的接口如图所示:


1.2 控制柜安装
安装环境
1.环境温度:周围环境温度对控制器寿命有很大影响,不允许控制器的运行环境温度超过允许温度范围(-10℃~50℃)
2.将控制器垂直安装在安装柜内的阻燃物体表面上,周围要有足够的空间散热
3.请安装在不易振动的地方。振动应不大于0.6G。特别注意远离冲床等设备
4.避免装于阳光直射、潮湿、有水珠的地方
5.避免装于空气中有腐蚀性、易燃性、易爆性气体的场所
6.避免装在有油污、粉尘的场所,安装场所污染等级为PD2
7.NRC系列产品为机柜内安装产品,需要安装在最终系统中使用,最终系统应提供相应的防火外壳、电气防护外壳和机械防护外壳等,并符合当地法律法规和相关IEC标准要求,如图所示:

1.3 安装位置
1.控制柜应安装在机器人动作范围之外(安全栏之外)。
2.控制柜应安装在能看清机器人动作的位置。
3.控制柜应安装在能打开门以便于检查的位置。
4.控制柜至少要距离墙壁500mm,以维护通道畅通。

1.4 线缆要求
线缆分类:
等级一:敏感信号(低压模拟信号,高速编码器信号,高速通讯信号,正负10V模拟量信号,低速422、485信号,数字输入输出信号)。
等级二:干扰信号(低压电源,接触器控制线,带录波器的电机线高压交流电源线,不带录波器的电机线)
1.电缆选型输入输出主回路电缆推荐使用对称屏蔽电缆,与四芯电缆对比,使用对称屏蔽电缆可以减少整个传导系统的电磁辐射。
2.推荐的功率电缆类型——对称屏蔽电缆。
推荐的信号线缆类型——双绞屏蔽电缆。

注意:数字信号线推荐使用双绞屏蔽线缆。
推荐的通讯线缆类型——屏蔽通讯线缆,如图:

注意:使用的水晶头必须带屏蔽金属壳,通讯线缆的屏蔽层与水晶头的屏蔽铁壳压接在一起,如图所示:

布线要求
1.功率电缆应远离所有信号电缆敷设。
2.电机电缆、输入电源线和控制回路电缆尽量不要布线在同一线槽。
3.避免电机电缆与控制回路长距离并行走线时耦合产生的电磁干扰。
4.同一线槽中不同等级线缆之间最少保持100mm间距。
注意:
1.不同等级的线缆分开布置,长距离电缆同向布线时应该将不同等级线缆之间最少保持100mm间距。
2.使用导体做为背板(采用没有被喷塑的锌板)将控制器的金属部分直接与背板连接。
3.根据等级保持电缆的分离,如果不同等级的线缆必须交叉,则应保持90°交叉。
接地要求
警告
请务必将接地端接地,否则可能有触电或者干扰而产生误动作的危险!
一、电源线接地要求,如图:

1.差分信号线(CAN/RS485/RS422)采用双绞屏蔽线缆,屏蔽层在电缆两端必须接0V,如图

接线注意事项
1.参加接线与检查的人员必须是具有相应技术的专业人员
2.产品必须可靠接地,接地电阻应小于4 欧姆,不能使用中性线(零线)代替地线
3.接线必须正确、牢固,以免导致产品故障或意想不到的后果
4.与产品连接的浪涌吸收二极管必须按规定方向连接,否则会损坏产品
5.插拔插头或打开产品机箱前,必须切断产品电源
6.尽量避免信号线和电源线从同一管道穿过,应该距离30mm以上
7.信号线、编码器(PG) 反馈线请使用多股绞合线以及多芯绞合屏蔽线。 对于配线长度,指令输入线最长为3m,PG 反馈线最长为20m。编码器的信号线为一组双绞线、电源线为一组双绞线、电池线为一组双绞线
8.请勿频繁ON/OFF 电源。在需要反复地连续ON/OFF 电源时,请控制在 1 分钟内 1 次以下。 由于在伺服单元的电源部分带有电容,如果频繁地ON/OFF会造成伺服单元内部的主电路元件性能下降。
9.确认控制系统供电开关电源功率,电压。保证控制器、示教器和IO模块的功率不小于50W,具体电源功率,看IO模块负载大小。
10.建议将伺服开关电源与控制器系统开关电源分开使用,防止出现伺服干扰控制系统情况。
注意:
1.控制系统与伺服连接网线需要使用超六类屏蔽网线。
2.如果一个轴对应一个伺服,则网线需要按照轴的顺序接。
3.请按照控制器—伺服—IO板的顺序接线。
示教器转接盒接线定义图

2 示教器按键与界面简介
2.1 T30示教器物理按键
左侧

切换当前伺服状态

切换当前机器人(仅多机模式时可用)

在当前机器人与外部轴之间切换(仅在有外部轴时可用)

回零点按键

回复位点按键

伺服报错后清错

切换拖拽方式(预留)
下侧

示教模式下,单步运行程序时为顺序执行还是倒序执行

在示教模式下单步运行程序

降低示教或运行速度

增大示教或运行速度

切换工具手

切换四种坐标系
右侧

运行模式下暂停程序

运行模式下开始程序

示教时对应轴负方向运行

示教时对应轴正方向运行
钥匙开关

左边,切换到示教模式

中间,切换到运行模式

右边,切换到远程模式
急停按钮

按下急停
滚轮旋钮

程序界面旋转切换上一行、下一行
Deadman键

三段式按键
按到中间控制机器人上电
按到底控制机器人下电
松开按键控制机器人下电
3 操作系统简介
3.1 基本说明
界面左侧为功能键,如图:

权限设置:
切换用户至管理员,选择【权限设置】,新建一个用户,自定义使用权限:

3.2 状态介绍
程序顶部为状态栏,显示机器人的各个状态;

模式状态 :示教模式、远程模式、运行模式,可通过旋转外部旋钮来切换模式
伺服状态 :停止、就绪、运行、警报
伺服“停止”与伺服“就绪”状态的切换:按下左侧伺服按键。
2.伺服“就绪”状态切换为伺服“运行”状态:
示教模式,按下使能键;
运行模式下,按下启动键;
远程模式下,给启动信号。
3.拍下控制柜/示教器上的【急停按钮】时,伺服状态切换为“警报”状态
注释
急停按钮需要接在伺服上
程序状态 :运行、停止、暂停
运行状态:
1.当在“示教模式”以单步方式运行程序;
2.“运行模式”、“远程模式”下运行程序时,程序状态切换为“运行”状态。
点动速度 :0.001°、0.01°、0.1°、1%、5%、10%、15%、20%、25%、30%、35%、40%、45%、50%、55%、60%、65%、70%、75%、80%、85%、90%、95%、100%
通过按下示教器底部的【V+】&【V-】来调整示教或运行速度。
注意:直角坐标系&工具坐标系的是0.01mm、0.1mm、1mm、1%.....100%。
机器人 :“ Robot 1”、“ Robot 2” 、“ Robot 3”、 “ Robot 4”
通过按下示教器左边的【机器人】按键来切换机器人。
注意:本系统最多支持四个机器人。
工具 :“工具1”、“工具2”、“工具3” 、“工具4” 、“工具5” 、“工具6” 、“工具7” 、“工具8” 、“工具9”、“无工具手”
通过按下示教器底部的【工具】按键来切换工具手。
工艺模式 :“通用”、“焊接”、“码垛”、“切割”、“冲压工艺”
1.“通用”、“焊接”、“码垛”、“切割”:通过右上角工艺进行弹窗调用。
2.“冲压工艺”:通过【设置-操作参数-工艺选择】来切换,直接改变操作界面。
坐标系:“关节坐标系”、“直角坐标系”、“工具坐标系”、“用户坐标系”
通过按下示教器底部的【坐标】按键来切换坐标系。
4 机器人的坐标系与轴操作
4.1 控制组与坐标系
4.1.1 坐标
对机器人本体进行轴操作时,其坐标系有以下几种形式
关节坐标系:
单独运动机器人的各个关节轴。关节坐标下点动单独的一个轴时,在监控-机器坐标界面中,机器人的关节坐标的对应轴数值会有变化
直角坐标系:
机器人末端TCP点沿基座的 X 轴、Y 轴、Z 轴平行运动。A、B、C分别为绕X、Y、Z轴转动。本系统使用的欧拉角顺序为X'Y'Z',固定角顺序为ZYX。
工具坐标系:
工具坐标系把机器人腕部工具的有效方向作为 Z 轴,把坐标系原点定义在工具的尖TCP点,本体TCP点根据坐标平行运动。TA、TB、TC分别为绕TX、TY、TZ轴转动。
用户坐标系:
XYZ 直角坐标在任意位置定义。本体TCP点根据坐标平行运动。

关节坐标系

直角坐标系

工具坐标系

用户坐标系
坐标系与轴操作
关节坐标系
在关节坐标系,机器人各个轴可单独动作。

关节坐标系的轴操作
轴名称
轴操作
动作
基本轴
S轴
S+/S-
本体左右旋转
L轴
L+/L-
下臂前后运动
U轴
U+/U-
上臂上下运动
腕部轴
R轴
R+/R-
手腕旋转
B轴
B+/B-
手腕上下运动
T轴
T+/T-
手腕旋转
直角坐标系
机器人在直角坐标系,与本体轴 X、Y、Z 轴平行运动,如下图所示。



直角坐标系的轴操作
轴名称
轴操作
动作
基本轴
X轴
X+/X-
沿X轴平行移动
Y轴
Y+/Y-
沿Y轴平行移动
Z轴
Z+/Z-
沿Z轴平行移动
姿态轴
A轴
A+/A-
绕X轴旋转
B轴
B+/B-
绕Y轴旋转
C轴
C+/C-
绕Z轴旋转
工具坐标系
在工具坐标系,机器人沿定义在工具尖端点的 X、Z、Y 轴平行运动。
工具坐标把安装在机器人腕部法兰盘上的工具有效方向作为 Z 轴,把坐标定义在工具尖端点。为此,工具坐标轴的方向随腕部的动作而变化。如下图所示。

工具坐标的运动不受机器人位置或姿势的变化影响,主要以工具的有效方向为基准进行运动。
所以,工具坐标运动最适合在工具姿势始终与工件保持不变、平行移动的应用中使用。如下图所示。

工具坐标系的轴操作
轴名称
轴操作
动作
基本轴
TX轴
TX+/TX-
沿TX轴平行移动
TY轴
TY+/TY-
沿TY轴平行移动
TZ轴
TZ+/TZ-
沿TZ轴平行移动
姿态轴
TA轴
TA+/TA-
绕TX轴旋转
TB轴
TB+/TB-
绕TY轴旋转
TC轴
TC+/TC-
绕TZ轴旋转
用户坐标系
在用户坐标系,在机器人动作范围的任意位置,设定任意角度的 X、Y、Z轴,机器人与设定的这些轴平行移动。如下图所示。



用户坐标系的轴操作
轴名称
轴操作
动作
基本轴
UX轴
UX+/UX-
沿UX轴平行移动
UY轴
UY+/UY-
沿UY轴平行移动
UZ轴
UZ+/UZ-
沿UZ轴平行移动
姿态轴
UA轴
UA+/UA-
绕UX轴旋转
UB轴
UB+/UB-
绕UY轴旋转
UC轴
UC+/UC-
绕UZ轴旋转
用户坐标系的使用举例
通过用户坐标的使用,可使各种示教操作更为简单。
以下通过几个例子加以说明。
有多个夹具台时:
若使用各夹具台设定的用户坐标,可使手动操作更为简单。

当从事排列、码放作业时:
进行用户左边标定,若将用户坐标设定在托盘上,那么设定平行移动时的位移增加值,就变得更为简单。

与传送带同步运行时:在传送带工艺里,需要标定用户坐标
指定传送带的运动方向。

外部轴
使用【外部轴】按钮切换到外部轴后可以进行点动示教外部轴;外部轴仅支持关节点动。
轴名称
轴操作
动作
O1轴
O1+/O1-
外部轴1轴运动
O2轴
O2+/O2-
外部轴2轴运动
O3轴
O3+/O3-
外部轴3轴运动
O4轴
O4+/O4-
外部轴4轴运动
O5轴
O5+/O5-
外部轴5轴运动
4.2 坐标系说明与切换
在本产品中含有四种坐标系,分别为关节坐标系、直角坐标系、工具坐标系和用户坐标系。
关节坐标系所有点位均为机器人关节轴相对于轴机械零点的角度值。
直角坐标系又叫“基坐标系”,其所有点位均为机器人末梢(法兰中心)相对于机器人基座中心的坐标值(单位mm);
工具坐标系所有点位均为机器人所带工具末梢(TCP点)相对于机器人基座中心的坐标值(单位mm)。其定义和使用方法请见工具手与用户坐标一章;
用户坐标系又叫“工件坐标系”,其所有点位均为机器人所带工具末梢(未带工具时为其法兰中心)相对用户坐标系原点的坐标值(单位mm)。其定义和使用方法请见工具手与用户坐标一章。
4.2.1 示教模式
按动示教盒下方物理按键区的【坐标】按键,每按一次此键,坐标系按以下顺序切换,通过顶部状态栏的显示来确认,也可以点击状态栏的坐标系一栏,即可弹出坐标系选择菜单,点击对应坐标系即可切换关节→直角→工具→用户。如下图所示:

5 工具手与用户坐标
工具手标定与工具坐标系简介:
法兰盘中心:默认工具坐标系的原点,法兰盘中心指向法兰盘定位孔方向为+X方向,垂直法兰向外为+Z方向,最后根据右手法则即可判定Y方向。新的工具坐标系都是相对默认的工具坐标系变化得的。


TCP:TOOL CENTER POINT,即工具中心点。
机器人轨迹及速度:指TCP点的轨迹和速度。
TCP一般设置在手爪中心,焊丝端部,点焊静臂前端等等。
为了描述一个物体在空间的位置,需在物体上固定一个坐标系,然后确定该坐标系位姿(原点位置和三个坐标轴姿态),即需要7个DOF(自由度)来完整描述该刚体的位姿。对于工业机器人,需要在末端法兰盘安装工具(Tool)来进行作业。为了确定该工具(Tool)的位姿,在Tool上绑定一个工具坐标TCS (Tool Coordinate System),TCS的原点就是TCP(Tool Center Point,工具中心点)。在机器人轨迹编程时,需要将TCS在其他坐标系的位姿记录到程序中执行。
工业机器人一般都事先定义了一个TCP,TCP的XY平面绑定在机器人第六轴的法兰盘平面上,TCP的原点与法兰盘中心重合。显然TCP在法兰盘中心。ABB机器人把TCP称为tool0,REIS机器人称之为 _tnull。虽然可以直接使用默认的TCP,但是在实际使用时,比如焊接,用户通常把TCP点定义到焊丝的尖端(实际上是焊枪tool的坐标系在tool0坐标系的位姿),那么程序里记录的位置便是焊丝尖端的位置,记录的姿态便是焊枪围绕焊丝尖端转动的姿态。

思考 :我们知道工具坐标系是运动中的一个研究对象,但是它在实际调试过程中,又起到了什么作用呢?思考下图一、图二的手爪姿态和位置是如何调整得到的?


根据思考可以得出两个推测:
推测1:若图1中的手爪有一个旋转点,使手爪直接绕着这个旋转点选择就可以。
推测2:若图二中有一个手爪的前进方向就可以直接移动过去了。
结论:建立工具坐标系的作用:
确立工具的TCP点(即工具中心点),方便调整工具状态。
确定工具进给方向,方便工具位置调整。
工具坐标系特点:
新的工具坐标系是相对于默认的工具坐标系变化得到的,新的工具坐标系的位置和方向始终同法兰盘保持绝对的位置和姿态关系,但在空间上是一直变化的。

工具手参数设置:
点击设置—工具手标定就能进入工具手标定界面,如下图所示:

若有工具的详细参数,在该界面下,用户可以直接填写工具末端偏移的相关参数,不需进行七点标定。
进入该界面时会自动读取控制器中已保存的工具手尺寸参数(默认各项为0),若更换工具手请重新填写。
详细参数设置步骤如下:
打开工具手标定界面,下面表格是对每个参数的介绍;
参数
作用
X轴方向偏移
工具末端相对于法兰中心,沿笛卡尔坐标系X轴方向的偏移长度(毫米)。
Y轴方向偏移
工具末端相对于法兰中心,沿笛卡尔坐标系Y轴方向的偏移长度(毫米)。
Z轴方向偏移
工具末端相对于法兰中心,沿笛卡尔坐标系Z轴方向的偏移长度(毫米)。
绕A轴旋转
工具末端相对于法兰中心,绕笛卡尔坐标系X 轴方向的旋转角度(°)
绕B轴旋转
工具末端相对于法兰中心,绕笛卡尔坐标系Y 轴方向的旋转角度(°)
绕C轴旋转
工具末端相对于法兰中心,绕笛卡尔坐标系Z轴方向的旋转角度(°)
点击【修改】按钮。
填写工具对应的各项参数,其中各参数作用如上表所示;
确认无误后点击【保存】按钮,设置成功。
警告
进行数据量取前请将法兰盘平行于水平面!
点击【清除】按钮可以将已填写的参数清零。
若在参数设置过程中点击底部操作区的【返回】或者【七点标定】按钮,则跳转到相应界面,未保存的设置参数不会保留。
5.1 7点标定
点击底部的【七点标定】按钮进入七点标定界面,如图:

若没有工具的详细参数,可以进行TCP标定,自动计算出工具各项尺寸参数。具体标定步骤如下:
现在以笔尖为参考点,并确保此参考点固定,如下图所示:

将工具末端垂直且正对参考点, 点击界面“TC1”所对应的【标定】按钮,如下图;

TC2标定:将机器人切换一个姿势,末端正对参考点,点击该行所对应的【标定】按钮,如下图;

TC3标定:将机器人切换一个姿势,末端正对参考点,点击该行所对应的【标定】按钮,如下图所示:

TC4标定:将机器人切换一个姿势,末端正对参考点,点击该行所对应的【标定】按钮,如下图所示:

TC5标定:将工具末端垂直且正对参考点(同TC1),点击该行所对应的【标定】按钮,如下图所示:

TC6标定:在TC5的基础上,沿笛卡尔坐标系X轴负方向移动任意距离,点击该行所对应的【标定】按钮,如下图所示:

TC7标定:在TC6的基础上,沿笛卡尔坐标系Y轴正方向移动任意距离,点击该行所对应的【标定】按钮,如下图所示:

点击 【运行至该点】,可以查看标定是否准确;
点击【计算】按钮,标定成功。
若在标定过程中对某点标定后不满意,可以点击该行所对应的【取消标定】按钮,取消标定后再次标定该点。
点击底部的【演示】按钮可以打开“演示”界面,讲解如何进行工具标定。
点击底部的【返回】按钮可以返回“工具手标定”界面。
5.2 6点标定
进入设置-工具手标定-7点标定界面,标定方式可以选择6点标定。如图:

标定方法:
第一个点:机器人5轴垂直向下,如下图:

第二个点:机器人在第一点的基础上C轴旋转180°,如图:

第三个点:机器人在第一点的基础上B轴角度在35°;

第四个点:机器人回到零点,然后工具手末梢垂直;

第五个点:机器人在第四点的基础上动X-;

第六个点:机器人在第五点的基础上动Y+;


6点标定结束选中标定的任意一点,点击 【运行至该点】,可以查看标定是否准确;
点击【计算】按钮,标定成功。点击底部的【返回】按钮返回“工具手标定”界面,绕ABC旋转可以验证标定出来的误差;
若在标定过程中对标定的某一点不满意,可以点击该行所对应的【取消标定】按钮,取消标定后再次标定该点;
点击底部的【返回】按钮返回“工具手标定”界面。
5.3 12/15点标定
12点/15点/20点标定公用一个标定界面,标定前15个点即为使用15点标定法。
12点标定即15点标定不标最后三个点(13-15),标定结果只有工具手的XYZ轴方向偏移,无绕ABC旋转的数值。
点击“工具手标定”界面底部的【20点标定】按钮,进入标定界面,如图:

找到一个参考点(标定锥尖端为参考点),并确保此参考点固定。
开始插入位置点,每插入一点,点击【标记该点】,插入十五个点。
具体步骤如下:
第一个点机器人回归零点,通过直角坐标将机器人尖端对准标定锥尖端,标定第一个点;

第二个点在第一个点的基础上,通过直角坐标系将C旋转180度;尖端对齐标定第二点;
第三个点机器人回归零点,通过直角坐标系将机器人尖端对准标定锥尖端;标定第三个(与第一个点相同);
第四个点在第三个点的基础上,通过直角坐标系做B-,度数位于30°-60°,尖端对齐标定第四个点;

第五个点在第四个点的基础上,通过直角坐标系做B+,J5>-90°,将机器人尖端对准标定锥 尖端,标定第五个点;

第六个点选中第一个点,并将机器人移动到第一个点,在第一个点的基础上,通过直角坐标系做B+,J5>-90°,尖端对齐标定第六个点;

第七个点在第一个点的基础上,通过直角坐标系做B-,J5>-90°,尖端对齐标定第七个点;

第八个点在第七个点的基础上,通过直角坐标系做A+,旋转90°,J5>-90°,尖端对齐标定第八个点;

第九个点在第七个点的基础上,通过直角坐标系做A-,旋转90°,J5>-90°,尖端对齐标定第九个点;

第十个点机器人回到第一个点,通过关节坐标系点动五轴,使五轴向上,J5<-90°,将尖端对齐,标定第十个点;

第十一点机器人在第十点的基础上,通过直角坐标系做A+,旋转90°,J5<-90°,尖端对齐标定第十一个点;

第十二点机器人在第十点的基础上,通过直角坐标系做A-,旋转90°,J5<-90°,尖端对齐标定第十二个点;

第十三点机器人回到零点位置,调整机器人姿态,使机器人末端工具尖端竖直朝下,将标定尖端与标定锥 对齐,标定第十三个点;
第十四点在第十三点的基础上,通过直角坐标系做X-,机器人位移一段距离,直接点击标定第十四点;
第十五点在第十四点的基础上,通过直角坐标系做Y+,机器人位移一段距离,直接点击标定第十五点;
完成标记后,点击【计算】。
按钮说明:
【取消标定】:若在标定过程中对某点标定后不满意,可以点击该行所对应的【取消标定】按钮,取消标定后再次标定该点。
【运行到该点】:每标定完一个点可以点击【运行到该点】,则机器人会运行到该点。
【将结果位置标为零点】:将标定补偿后的位置设置为当前机器人的零点位置。
【清除所有标记点】:标定点位会保存到控制器中,只有点击取消标定、清除所有标记点以及切换工具手进标定界面后,标定结果才会清除。
注释
各点的姿势,请尽量取多个方向的姿势。取的姿势如果某个固定朝向的姿势,会导致精度下降。
标定过程中请保持参考点固定,否则标定误差增大。
点击底部的【返回】按钮,可以返回“工具手标定”界面。
5.4 20点标定
12点/15点/20点标定公用一个标定界面,标定所有20个点即为使用20点标定法。
点击“工具手标定”界面底部的【二十点标定】按钮,进入“二十点标定”界面,如图:

1.找到一个参考点(笔尖为参考点),并确保此参考点固定。
2.开始插入位置点,每插入一点,点击【标记该点】,插入20 个点,每个点的姿态差异越大越好。
厂家建议:标定步骤,第一点工具手姿态垂直向下,第二点走A+轴,第三点走A+,第四点走A+,第五点走A-,第六点走A-,第七点走A-,第八点走B+,第九点走B+,第十点走B+,第十一点走B-,第十二点走B-,第十三点走B-,其余点主要动C轴成米字形排布标定。
具体标定步骤如下:
第一点:机器人工具手末端垂直参考点
第二点:在第一点的基础上动A+
第三点:在第一点的基础上动A+ 40度
第四点:在第一点的基础上动A+ 60度
第五点:在第一点基础上动A- 20度
第六点:在第一点基础上动A- 40度
第七点:在第一点基础上动A- 60度
第八点:在第一点基础上动B+ 20度
第九点:在第一点基础上动B+ 30度
第十点:在第一点基础上动B+ 40度
第十一点:在第一点基础上动B- 20度
第十二点:在第一点基础上动B- 30度
第十三点:在第一点基础上动B- 40度
第十四点:在第一点基础上动C+ 30度
第十五点:在第一点基础上动C+ 50度
第十六点:在第一点基础上动C+ 70度
第十七点:在第一点基础上动C+ 90度
第十八点:在第一点基础上动C- 30度
第十九点:在第一点基础上动C- 60度
第二十点:第二十点在第一点基础上动C- 90度
完成20点标记后,点击【计算】。
【取消标定】:若在标定过程中对某点标定后不满意,可以点击该行所对应的【取消标定】按钮,取消标定后再次标定该点。
【运行到该点】:每标定完一个点可以点击【运行到该点】,则机器人会运行到该点。
【将结果位置标为零点】:将标定补偿后的位置设置为当前机器人的零点位置。
【清除所有标定点】:标定点位会保存到控制器中,只有点击取消标定、清除所有标定点以及切换工具手进标定界面后,标定结果才会清除。
【20点不标定零点】20个点不标定零点打开后只标定尺寸+姿态;运行到计算结果位置始终置灰,【将结果位置标为零点】变为【将计算结果保存】,此时标定方法为第一点工具手垂直标定杆,最后两点标定为X-和Y+,其他点按照原来20点标定方法标定。关闭这个按钮,标记20点方法按原先20点标定方法标定,可以将结果位置标为零点。
注释
各点的姿势,请尽量取任意方向的姿势。取的姿势朝一定方向旋转的话,有些时候精度不准确
标定过程中请保持参考点固定,否则标定误差增大
5.5 用户坐标系作用
定义:默认的用户坐标系:默认的用户坐标系User0和直角坐标系重合。新的用户坐标系都是基于默认的用户坐标系变化得到的。
思考:从思考1中我们知道用户坐标系是运动中的一个参考对象,但是它在实际调试过程中,又起到了什么作用呢?



推测:从图中可以看出,如果使用默认的用户坐标系User 0 或者直角坐标系将很难对每个工件位置进行调试,但如果存在某个坐标系的两个方向正好平行于工作台面的话,那就方便多了
用户坐标系的作用
确定参考坐标系;
确定工作台上的运动方向,方便调试。
用户坐标系特点
新的用户坐标系是根据默认的用户坐标系User 0 变化得到的,新的用户坐标系的位置和姿态相对空间是不变化的。
用户坐标参数设置
点击“设置”界面的【用户坐标标定】按钮,进入“用户坐标”界面,如图:

用户坐标的参数如下:
参数
作用
X值
用户坐标原点相对机器人基座原点X轴方向的偏移
Y值
用户坐标原点相对机器人基座原点Y轴方向的偏移
Z值
用户坐标原点相对机器人基座原点Z轴方向的偏移
A值
用户坐标系相对直角坐标系绕X轴方向的旋转角(弧度)
B值
用户坐标系相对直角坐标系绕Y轴方向的旋转角(弧度)
C值
用户坐标系相对直角坐标系绕Z轴方向的旋转角(弧度)
若有精确数值请直接填写,注意ABC三个值为弧度。
用户坐标系标定:
点击“用户坐标标定”界面底部的【用户标定】按钮,进入“用户标定”界面,如图。

用户坐标系的标定请遵循以下步骤:
将机器人末梢移动到期望为用户坐标系原点的位置,点击“标定原点”按钮;
将机器人相对于用户坐标系原点向期望为用户坐标系X轴正方向的位置移动任意距离,点击“标定X轴”按钮;
将机器人相对于用户坐标系原点向期望为用户坐标系Y轴正方向的位置移动任意距离,点击“标定Y轴”按钮。
注释
用户坐标系的Y轴若没有标定准确,系统会自动补偿
点击界面底部【返回】按钮,返回用户坐标标定界面。
6 数值变量
本章主要说明本控制系统的变量的相关情况。
类型
数量
示例
全局数值变量
全局整形型
GINT
999
GI001....GI999
全局实数型GDOUBLE
GD001....GD999
全局布尔型
GBOOL
GB001....GB999
全局字符型
GSTRING
GS001....GS999
局部数值变量
局部整形型
INT
999
I001....I999
局部实数型DOUBLE
D001....D999
局部布尔型
BOOL
B001....B999
局部字符型
STRING
S001....S999
6.1 全局数值变量
全局数值变量是可以作用于所有机器人所有程序的变量,如机器人1的程序AA和机器人2的程序BB可以同时使用同一个全局数值变量。本节将主要说明全局变量界面的使用,以及位置、数值变量的使用方法。

机器人完成一道工序需要那么多的指令,如果我们每次插入指令,设置变量,这是多么繁琐的工作,基于此我们加入了数值变量以便调用。
例如“WHILE(INTI001=10)...END(WHILE)”这样的指令,在机器人完成某道工序的程序中很多,我们直接调用你预先设置好的数值变量。
同时全局数值变量可以用来在主程序、被调用的子程序以及后台程序之间传递信息,用以做逻辑判断使用。
数值型变量储存的是数值,包含了整数型变量、实数型变量、布尔型字符型变量四种。

注:全局变量赋值后会直接保存到参数。
6.1.1 全局布尔型变量GBOOL
全局布尔型变量保存的是字节,在该界面中可以修改每一个变量的数值、注释。各参数的意义如下:
变量名即该变量的编号,全局布尔型变量的名字为GBxxx。
数值即该变量的值,布尔型变量的值的范围为“0/1”。
注释为用户给该变量定义的注释,方便用户标记该变量的作用,范围为任意值,可为中文。
6.1.2 全局整数型变量GINT
全局整数型变量保存的是整数,在该界面中可以修改每一个变量的数值、注释。各参数的意义如下:
变量名即该变量的编号,全局整数型变量的名字为GIxxx。
数值即该变量的值,整数型变量的范围为整数。
注释为用户给该变量定义的注释,方便用户标记该变量的作用,范围为任意值,可为中文。
6.1.3 全局浮点型变量GDOUBLE
全局实数型变量保存的为实数,在该界面中可以修改每一个变量的数值、内容、注释。各参数的意义如下:
变量名即该变量的编号,全局实数型变量的名字为GDxxx。
数值即该变量的值,浮点型变量的范围为实数。
注释为用户给该变量定义的注释,方便用户标记该变量的作用,范围为任意值,可为中文。
点击要修改的数据类型,再选择变量名,点击【修改】,则可以修改数值、注释。而后点击【保存】。点击【清除】则可以清除你所选择的数据。
6.1.4 全局字符型变量GSTRING
全局字符型可以保存所有变量类型和非变量类型,例如:数字、符号、字母(包含大小写)、汉字
变量名即该变量的编号,全局字符型变量的名字为GSxxx。
数值即该变量的值,字符型变量的范围为所有变量类型和非变量类型。
6.1.5 定义全局数值变量
在使用变量之前请定义变量,定义变量的方法如下:
点击变量—全局数值,进入全局数值变量界面;
点击全局数值变量;
选择对应的变量编号,点击“修改”按钮;
在数值与注释处填写需要的值;
未手动定义过的变量,默认为0。
6.1.6 直接变量赋值
通过赋值指令SET GB001、SET GD001、SET GS001可以在运行程序时直接改变变量的值。
在程序中,点击“插入”按钮;
选择“变量类”;
若要改变全局BOOL型变量,则选择SET GB001指令,点击确定;
变量类型处选择“GBOOL”;变量名选择之前定义过的全局BOOL变量;变量值来源选择“自定义”;新参数处填写需要改变为的值,若需要将该变量值改为1,则在此处填入1;
例如,需要在运行程序时将GB001变量的值改为1,可以插入指令GB001=1。
6.1.7 全局数值变量来计数
在程序运行过程中,所有的计算、赋值操作均是对缓存中的数值进行更改的,并不会对“变量-全局数值”界面中的值进行修改,若要对某一循环过程(如WHILE内循环)进行计数,则可以使用SET指令。
使用场景:
WHILE和ENDWHILE指令之间为一个工序,在该内部有一条ADD GI001 1指令,即每一次在WHILE和ENDWHILE之间循环,GI001变量的值均加一,即该工序执行次数加一,在程序运行停止后,GI001的数值还原为0,无法查看该工序运行次数。
解决方案:在Add GI001 1指令之后插入一个SET GI001指令。当程序运行结束后,进入“变量-全局数值”界面可看到GI001的值即代表该工序的运行次数。
插入方法:
在“程序”界面点击【插入】按钮;
选择“变量类”-“SET”,点击“确定”;
选择变量类型,若要改变全局整数型变量,则选择GINT,变量名选择“GI001”;
点击【插入】按钮,完成。
6.1.8 局部数值变量
局部数值变量仅能用于所定义的程序本身,如程序A的变量在程序B中不能使用。

数值型变量储存的是数值,包含了整数型变量、实数型变量、布尔型和字符型变量四种。
定义的所有局部数值变量都只能用于当前程序,其他程序、后台程序都无法使用。
局部变量使用
定义局部数值变量
定义局部变量与定义全局变量的方法不同。定义局部变量需要在程序页面点击【变量】页面设置。

整型INT
局部整数变量,用来存储整数型变量。变量名为Ixxx。
默认为0,选中需要修改的变量名点击修改,输入数值后点击保存。
浮点型DOUBLE
局部实数变量,用来存储实数型变量。变量名为Dxxx。
默认为0,选中需要修改的变量名点击修改,输入数值后点击保存。
布尔型BOOL
局部布尔变量,用来存储布尔型变量。变量名为Bxxx。
默认为0,选中需要修改的变量名点击修改,输入数值后点击保存。
字符型STRING
局部字符型可以保存所有变量类型和非变量类型,例如:数字、符号、字母(包含大小写)、汉字
局部字符变量,用来存储字符型变量,变量名为Sxxx
数值即该变量的值,字符型变量的范围为所有变量类型和非变量类型。
计算指令为局部变量赋值
使用ADD、SUB、MUL、DIV、MOD指令对局部变量进行计算并赋值的方法和对全局变量的计算方法相同。例如I003加20,如图所示:

直接为局部变量赋值
使用SET I001、SET D001、SET B001指令对局部变量直接赋值的方法和对全局变量进行直接赋值的方法相同。例如:D002=90,如图所示:

7 位置变量
本章主要说明本控制系统的变量设置的相关情况。
类型
数量
示例
全局位置变量
全局GP点
9999
GP0001......GP9999
全局GE点
9999
GE0001......GE9999
局部位置变量
局部P点
9999
P0001.........P9999
局部E点
9999
E0001.........E9999
7.1 全局位置变量
全局GP点在一个机器人的所有作业文件中均可使用。定义全局位置变量需要在“变量-全局位置”界面进行。


全局位置变量定义方法如下:
进入“变量”-“全局位置”界面;
选中需要定义的变量,如 GP0001;
示教机器人到需要定义的位置,并切换坐标系到需要的坐标系,如直角坐标系;
点击【修改】按钮;
点击【记录当前点】按钮;
点击【保存】按钮。
7.2 局部位置变量
局部位置变量(P000X)仅能用于单独的一个作业文件,不能在所有的作业文件之间通用。
局部位置变量的定义仅在插入 MOVJ、MOVL、MOVC 等运动类指令时,程序指令界面-变量可以定义局部位置变量。
局部位置变量设置方法1
1.点击程序-变量-局部变量进入局部变量查看界面 ;


2.可以对局部位置变量进行,修改点位、增加点位、运行到该点、写入当前位置等功能。
局部位置变量设置方法2
新建或修改MOVJ指令,进入指令界面;

当前位置列显示当前选中的坐标系下的机器人位置;P0001列显示P点选中坐标系下的机器人位置;
将机器人移动到P点,需示教模式上电点动操作;
将当前位置设置为P点,点击后把当前点位保存到局部P点;
手动修改,打开可手填P点坐标。
7.3 位置变量参数
形态参数
形态参数仅六轴串联多关节机器人可用。
形态值为机器人1轴、3轴、5轴位置的二进制转换值。
转换方式
例如某个六轴机器人1轴为59度、2轴为69度、3轴为79度、4轴为89度、5轴为99度、6轴为109度;
取其中的1/3/5轴,点位范围在-90~+90之间为1,不在为0;
所以结果如下:
1轴
3轴
5轴
二进制数值
二进制数110 = 十进制6;
形态值为十进制结果再加1,该点位形态值为7。
当选择当前时,机器人会自动计算当前的点位属于形态几,形态值数值则对应机器人135轴分别位于哪个区间。例如:形态3= 010(1轴、三轴、五轴)+1=011,一轴不在-90°~90°之内,三轴在区间内,五轴不在区间内。
7.4 工具手参数
如果想要将点位绑定工具手,则选择对应的工具手,不绑定选择无;若运动时工具手和点位参数选择的工具手不同,则无法运行。
例如,绑定工具手2,使用工具手1单步运行使用该点的指令。
控制器报错(机器人1工具坐标使用错误,点位用户为1,实际使用用户2)


7.5 用户坐标参数
设置用户坐标点位绑定用户坐标,不绑定选择无;若运动时用户坐标和点位参数设绑定的用户坐标系不同,则无法运行。
控制器报错(机器人1用户坐标使用错误,点位用户为1,实际使用用户5)


程序局部点参数说明:
该功能介绍程序中点位保存的格式。

例如P0002 = 1,1,0,0,0,0,0,815,0,1297,3.1416,0,0,0
点位数据分解如下:
P0002
点位名
点位名P0001-P9999
坐标系
0:关节 1:直角 2:工具 3:用户
角度/弧度
0:角度(关节点)1:弧度(直角点、工具点、用户点)
形态/左右手
六轴时为形态参数,四轴SCARA时为左右手参数
工具
工具手编号
用户
用户坐标编号
预留
预留
预留
预留
815
1轴
点位1轴坐标
2轴
点位2轴坐标
1297
3轴
点位3轴坐标
3.1416
4轴
点位4轴坐标
5轴
点位5轴坐标
6轴
点位6轴坐标
7轴
点位7轴坐标
8 机器人示教与运行
8.1 机器人准备
开机与安全确认
开机流程:
1.检查伺服、控制器、示教盒各部件连接线是否已连接完好;
2.把机柜面板上的主电源开关旋转到接通(ON)的位置,主电源接通;
3.按下机柜面板上的绿色伺服启动按钮。
警告
示教前请确认急停按钮正常!
急停按钮的使用确认:
在机器人使用前,请分别对控制柜、示教盒上的急停按键进行确认,按下时,伺服电源是否断开;
1.按控制柜及示教盒上的急停按键;
2.确认伺服电源关闭,示教器显示伺服报错,控制柜伺服报错灯亮;
3,将伺服切换为就绪状态;
4.清除伺服错误,控制柜伺服报错灯灭,示教器上显示“伺服停止”;
5.轻按示教器的【DEADMAN】按键(示教器背后的按键),机器人上电,示教器上显示“伺服运行”,表示伺服电源成功接通。
9 示教器准备
9.1 检查参数
选择机器人类型:
1.进入【设置】-【机器人参数】-【从站配置】-【机器人设置】;
2.点击修改,选择机器人类型。
调整伺服:
1.进入【设置】-【机器人参数】-【从站配置】-【机器人设置】;
2.点动机器人,查看J1是否控制的一轴,J2是否控制的二轴,以此类推,若不是自行修改;
注:某些伺服从站存在多合一,从站配置里面机器人轴未必是1234567按照顺序。
调整机器人实际方向:
1.进入【设置】-【机器人参数】-【DH参数】;
2.对照机器人示例图片(标注的方向为:点动关节轴的正方向),点动机器人的关节轴的正方向,若不一致时,进入【设置】-【机器人参数】-【关节参数】,调整模型方向。
调整模型方向:
当点动机器人的实际方向与机器人示例图片方向一致时,将模型方向数值不变;
当点动机器人的实际方向与机器人示例图片方向相反,将模型方向数值取反。
调整零点位置:
1.机器人本体上面每个轴的刻度尺是机械零点,将机器人的每个轴都调整至机械零点;
2.进入【设置】-【机器人参数】-【零点位置】;
3.点击【将所有关节设为零点】。
注释

若出现实际点动机器人关节轴90度,但示教盒上显示的并不是90度,则需要调整减速比或与厂家确认
若出现在直角坐标系下,点动坐标轴,机器人走不直的情况,则需要调整DH参数或联系厂家确认
9.2 点动机器人
1.示教器与控制器连接正常;
2.伺服、机器人参数正常;
3.在示教模式下,按下示教器上的【伺服】按键,将伺服停止状态切换至伺服就绪;
4.轻按示教器的【DEADMAN】按键(示教器背后的按键),不松手,此时听到机器人上电的声音,且“伺服状态”一栏显示为绿色的“伺服运行”;
5.通过操作示教器右侧物理按键来控制机器人运动。
10 工程界面基础操作
1.切换至管理员权限;
2.点击左侧的【工程】。
10.1 新建程序
用户若要新建前台程序,则需要进行以下步骤:
1.进入【工程】界面,点击【新建】;

2.在弹出的“程序创建”窗口中输入程序名称;

3.点击底部的【确定】按键,程序创建成功,并跳转入新建的程序界面;若想要取消新建程序,则点击【取消】按键。
注释
程序名称必须为以字母/汉字开头的两位及以上的字符串
新建程序名称不能为已有程序的名称
10.2 程序打开
用户若要打开已有的程序,则需要进行以下步骤:
1.进入【工程】界面;
2.选中想要打开的程序;
3.点击底部的【打开】按键,程序打开成功。
10.3 程序复制
用户若要复制已有的程序,则需要进行以下步骤:
1.进入【工程】界面;
2.选中要复制的程序;

3.点击底部的【操作】按键,再点击【复制】 ;

4.点击【确定】,您也可以修改程序;取消复制则点击【取消】即可。
10.4 程序重命名
重命名操作可以修改选中程序的名称。
操作步骤如下:
1.点击【工程】,选中想要重命名的程序;
2.点击【操作】,再点击【重命名】;
3.在弹出的窗口中输入想要修改的名称;

4.点击【确定】按键;若想要取消重命名操作,则点击【取消】按键。
注释
重命名的程序的程序名不能为已有程序的名称
前后台的程序的程序名不能重复
10.5 程序删除
删除操作可以删除选中的程序。
相关操作步骤如下:
1.点击【工程】,选中想要删除的程序;
2.点击底部的【删除】按键;

3.在弹出的窗口中点击【确定】按键;若想要取消删除操作,则点击【取消】按键;

10.6 批量删除
批量删除功能可以一次删除多个程序,使用方法如下:
1.点击【工程】;
2.点击底部菜单栏的【操作】,选择【批量删除】按键;

3.选中需要删除的程序,点击【全选】按键则选中本页全部程序;
4.点击【确定】按键后在弹出的确认框中点击【确定】按键则批量删除成功。

注释
批量选中仅能选中当前页的文件,不能进入上一页或下一页
11 程序指令编写
11.1 指令操作
用户若要进行指令的插入/修改/删除/操作等指令相关的操作,需进入程序指令界面,通过使用底部按键进行相关操作。
11.2 插入指令
指令的插入需通过使用程序指令界面底部的【插入】按键进行相关操作;
插入的指令在选中指令行的下面,支持插入9999个点位。
相关步骤如下:
1.切换至管理员权限;
2.点击左侧的【工程】;
3点击【新建】;
4..进入程序指令界面。

5.点击【插入】按键,弹出指令类型菜单;

6.点击所需插入指令的指令类型,例如运动控制类;
7.点击所需插入的指令,例如MOVL,如图:

8.设置所插入指令的相关参数;
9.点击底部【确认】按键。
在批量模式或单行模式:对指令修改。
11.3 批量模式
可以对多条指令同时进行复制、粘贴、剪切、删除、修改、注销、上移、下移操作。
一、用户若想要本作业文件内对指令批量复制、粘贴、剪切、删除、修改、注销、上移、下移,以批量复制为例,步骤如下:
1.点击底部的【操作】-【批量模式】,进入批量模式;
2.选中需要复制的一条或多条指令;

3.选择【复制】按键;
4.选中放在位置的上一条指令;
5.点击【粘贴】按键即可。
二、用户若想要跨作业文件对指令批量复制、粘贴、剪切、删除、修改、注销、上移、下移,以批量复制为例,步骤如下:
1.进入【工程】界面;
2.打开要复制的程序;
3.点击底部的【操作】-【批量模式】,进入批量模式;
4.选中需要复制的一条或多条指令。

5.选择【复制】按键;
6.打开想要复制到的作业文件;
7.选中放在位置的上一条指令;
8.点击【粘贴】。
单行模式:退出批量模式。
点击底部【操作】-【批量模式】-【单行模式】。
注释
前台程序指令不能复制到后台程序中!
12 模式切换
用户可以通过使用示教器右上角的【模式选择钥匙】可以在三种模式(“示教模式”、“运行模式”、“远程模式”)间切换,程序可在此三种模式状态中运行:

12.1 示教模式
示教模式下可以完成机器人的系统参数设定、点动操作、作业文件编程等各项操作。其中在作业文件编程的过程中可以使用【单步】按键来对作业文件进行单步操作;
使用单步按键进行轨迹确认
用户在选中已插入的指令行后,通过按住【DEADMAN】按键的同时,点击示教器底部的物理按键区中的【单步】按键对在编程中的作业文件进行单步操作(机器人运动的过程中不要松开【DEADMAN】按键)单步操作可以仅运行选中的指令行。
具体步骤如下:
1.选中要进行单步操作的指令行;
2.按下【DEADMAN】按键,机器人上电;
3.按下【单步】按键,机器人执行选中行的指令,执行完后停止;
4.选中行自动下移,若要单步运行下一行指令则再按一次【单步】 按键。
12.1.1 示教模式速度
1.示教模式下,机器人实际点动速度计算方式如下:
机器人实际点动速度
最大速度限制
在关节坐标系下,点动机器人
关节轴最大点动速度*示教速度
自定义
在直角坐标系下,点动机器人
直角坐标最大点动速度*示教速度
250mm/s
回零
额定速度*示教速度
额定速度*30%
以关节方式回安全点速度
额定速度*示教速度
额定速度*30%
以直线方式回安全点速度
100mm/s*示教速度
运行到该点速度
额定速度*示教速度
单步关节速度
额定速度(示教速度指令速度)
额定速度*30%
单步直角速度
示教速度*指令速度
2.例如:以在关节坐标系下,计算机器人实际点动速度为例:

机器人实际点动速度就是:{VJ}=40°/s * 50%=20°/s。
机器人最大速度限制:在关节轴最大点动速度:40°/s 的情况下,示教速度无论为多少,根据最大速度限制公式(关节轴最大点动速度*50% )可得出,机器人实际点动速度均不大于 20°/s。
3.关节坐标系下最大笛卡尔速度限制方法:在控制器配置文件Robot_A.json中调整"stepMaxDecareSpeed":300(300为默认速度值,单位为mm/s)。
12.1.2 试运行功能
1.试运行功能是示教模式下将【启动】键作为试运行按键,上电按住【启动】键保持运行,松开停止;
2.试运行模式支持所有指令;
3.试运行不支持倒序以及后台程序。
12.2 运行模式
在运行模式中可以点击左下角的【运行次数】按键来设置程序的运行次数,默认为【单次运行】;
点击左下角【循环运行】按键可以使程序无限循环运行;
运行模式时程序上方显示已运行次数与总设置运行次数,格式为“已运行次数/总设置运行次数”;
运行过程中,可以修改运行次数,修改后机器人在运行设置的次数后停止,例如原设置运行200 次,已运行156次,此时设置运行次数为3次,则机器人在继续运行三次后停止。
12.2.1 运行模式速度
运行速度=指令速度*上方状态栏的速度比率。
运行模式的开机默认速度,用户可在【操作参数】里进行设置。
注释
焊接时设置的指令速度是实际速度,假设将直线速度为50mm/s,那么就是按照每秒走50mm
使用全局速度后的运行速度是:示教速度指令速度全局速度
12.2.2 从当前行运行
一、在示教模式下打开作业文件,选中某一行,点击【操作】按键,点击【从此运行】,作业文件会出现>符号,如图:

1.切至运行模式,点击【启动】,运行时会有提示弹窗;

2.点击【确认】按键则从选中行运行,点击【本程序从头运行】则从本程序的首行开始运行;
二、在运行模式下,当程序运行到子程序里,切换至示教模式,选中某一行,点击【操作】按键,点击【从此运行】,作业文件会出现>符号
1.切至运行模式,点击【启动】,运行时会有提示弹窗。

2.点击【确认】按键则从选中行运行,该子程序运行完成后,会返回主程序,继续执行下一条指令。
点击【本程序从头运行】则从该子程序的首行开始运行,不会再返回主程序。
12.3 断点运行
12.3.1 示教模式断点
示教模式也存在“断点”,单步程序过程中如果有改变局部变量的指令,下电后再上电可以查看“断点”时的局部变量值。
进行回零、复位、单步指令中下电、运行其他程序、运行到该点、修改局部数值/局部位置变量并单步指令、重启控制器、修改机器人参数等操作会解除“断点”。
12.3.2 运行模式断点
运行过程中(第一条指令除外),切换至其他模式时导致运行中断,会将中断时的变量状态、程序运行位置存为断点,再次运行时,会弹出提示框询问“是否继续运行当前程序”,选择“断点执行”则从断点处继续运行,选择“重新运行”则断点消失从第一条指令重新运行。

不会清除断点情况:
1.IO紧急停止/伺服警报/输出信息指令。
2.退出当前程序,重新进入再次运行。
3.点动机器人。
4.进入其他页面修改非机器人参数。
5.切成运行,选择循环运行、修改运行次数。
出现断点情况:
1.弹窗选择本程序从头运行。

2.进行指令的插入/删除/移动/剪切/复制操作。
3.修改局部数值/局部位置变量/程序指令。
4.运行程序指令报错并下电。
5.重启控制器、修改机器人参数。
断点状态查看:断点后切换到示教模式后,可以通过上电查看断点时的位置/数值变量状态。
例:P0001与I001初始状态如图,运行过程中发生改变P0001 J1+1、I001+1。

运行到第6行时P0001 J1=1、I001=2,切换示教模式产生断点,切换到示教模式后查看P0001,I001显示为初始值,此时按【DEADMAN】上电,显示为P0001 J1=1、I001=2,下电恢复初始值。
提前执行功能:
运动指令时间参数设置时生效,参数单位ms。
如图所示:


MOVJ指令后插入DOUT指令;MOVJ指令TIME参数填1000ms,则运行时会提前1s执行下一条指令,例如MOVJ指令会执行3s,则MOVJ指令运行2秒执行DOUT并继续执行MOVJ到P0001。
12.4 远程模式
远程模式支持两种控制方式,数字IO和Modbus从站。
设备优先级为:Modbus>数字IO,当两个外接设备都在连接时,可通过Modbus触摸屏来控制数字IO的使能。
当示教器被拔下后,触发远程IO信号,将自动进入远程模式。
Modbus&数字IO可以同时使用
打开方式如下:
1.打开config文件里的modbusAddr.json文件
2.将coexistIOControl后面的“false”改成"true"
注释
Modbus&数字IO同时使用时:Modbus控制程序的启动与停止
Modbus&数字IO同时使用时:程序的设置需在远程程序设置界面进行设置
Modbus&数字IO同时使用时:程序是否支持当前行或断点执行需要在操作参数页面的【远程IO断点执行】、【远程IO当前行执行】进行设置
12.4.1 远程模式速度
远程点到点速度=额定速度远程速度指令速度。
远程直线速度=远程速度*指令速度。
远程IO速度修改方式:
1.进入【设置】-【远程程序设置】-远程参数界面;

2.点击【修改】,修改远程模式速度;
3.点击【保存】,切至远程模式查看;

12.4.2 远程模式断点
使用IO预约程序默认执行断点,如不需远程断点,在【设置】-【操作参数】-远程IO断点执行。

注释
远程模式示教盒禁止修改速度操作,需在示教模式提前设置,远程速度默认15%
13 加速度调整
功能:提高机器人工作效率,加速度倍数越大,表示机器人运行到最高转速越快。
进入【设置-机器人参数-关节参数】进行调整加速度倍数调整;
当加速度倍数设为1时,机器人达到额定正转速最大值需要1s,若加速度倍数设为2时,机器人达到额定正速度最大值则需要0.5s,时间缩短了1/2。
1.运行到额定转速的时间=(运行速度指令速度)/(加速度倍数指令加速度*运行速度)
例1:运行速度为50%、指令速度为40%、指令加速度为10%、额定正转速为4000转/min、最大加速度为4倍(点到点指令)。
2.指令最高速度=额定速度运行速度指令速度=4000r/min50%40%=800r/min机器人从0-800转/min所需时间=(额定速度运行速度指令速度)/(额定速度加速度倍数运行速度指令加速度)=(4000转/min40%50%)/(4000转/min4*50%*10%)=1s
例2:运行速度为30%、指令速度为1000mm/s、指令加速度为50%、笛卡尔最大速度为2000mm/s、笛卡尔最大加速度为2倍(直线指令)。
3.指令最高速度=运行速度指令速度=1000mm/s 30%=300mm/s机器人从0-300mm/s所需时间=(运行速度指令速度)/(笛卡尔最大速度笛卡尔加速度倍数指令加速度运行速度) =(1000mm/s30%)/(2000mm/s2*50%*30%)=0.5s。
14 运动类指令
14.1 MOVJ-点到点
格式:MOVJ【指令名】 P/GP【变量】 VJ 【速度】 PL【平滑】 ACC【加速度比率】 DEC【减速度比率】 TIME 【提前执行时间,不设置则显示为0】。
功能:机器人向目标点移动中,不受轨迹约束的区间使用。机器人在空间内以最快的速度从一个点运行到另一个点。
参数:
点位
使用局部位置变量(P)或全局位置变量(GP)。当值为“新建”时,插入该指令则新建一个P变量,并将机器人的当前位置记录到该P变量
VJ
关节插补的速度,范围:[1,100]
PL
平滑过渡等级,范围[0,5]
ACC
加速度比率,范围[1,100]
DEC
减速度比率,范围[1,100]
TIME
提前执行时间,单位ms
使用范例:
1.NOP
2.MOVJ P0001 VJ = 10 % PL =1 ACC = 5 DEC = 5 0
3.MOVJ P0002 VJ = 10 % PL =1 ACC = 5 DEC = 5 0
4.END
14.2 MOVL-直线
格式:MOVL【指令名】P/GP【变量】 V【速度】 PL【平滑】 ACC【加速度比率】 DEC【减速度比率】 TIME 【提前执行时间,不设置则显示为0】。
功能:机器人向目标点移动的过程中,机器人末端运动的轨迹为直线。
参数:
点位
使用局部位置变量(P)或全局位置变量(GP)。当值为“新建”时,插入该指令则新建一个P变量,并将机器人的当前位置记录到P变量
直线插补的速度,范围1-1000(默认笛卡尔参数最大速度为1000,范围根据实际填写的笛卡尔参数变化),单位为mm/s
PL
平滑过渡等级,范围[0,5]
ACC
加速度比率,范围[1,100]
DEC
减速度比率,范围[1,100]
TIME
提前执行时间,单位ms
使用范例:
1.NOP
2.MOVL P0001 V = 200 mm/s PL = 0 ACC = 20 DEC=20 0
3.MOVL P0002 V = 200 mm/s PL = 0 ACC = 20 DEC=20 0
4.MOVL P0003 V = 200 mm/s PL = 0 ACC = 20 DEC=20 0
5.MOVL P0004 V = 200 mm/s PL = 0 ACC = 20 DEC=20 0
6.END
14.3 MOVC-圆弧
格式:MOVC【指令名】P/GP【变量】 V【速度】 PL【平滑】 ACC【加速度比率】 DEC【减速度比率】 TIME 【提前执行时间,不设置则显示为0】。
功能:圆弧插补方式移动到示教的三个点位。
参数:
点位
使用局部位置变量(P)或全局位置变量(GP)。当值为“新建”时,插入该指令则新建一个P变量,并将机器人的当前位置记录到该P变量
直线插补的速度,范围1-1000(默认笛卡尔参数最大速度为1000,范围根据实际填写的笛卡尔参数变化),单位为mm/s
PL
平滑过渡等级,范围[0,5]
ACC
加速度比率,范围[1,100]
DEC
减速度比率,范围[1,100]
TIME
提前执行时间,单位ms
SPIN
示教姿态:姿态从第一点直接往第三点运行。
姿态倾角不变:全程保持第一个点的倾角不变,运行整个轨迹(第二第三点无论什么姿态都不影响
变量表示:0示教姿态,1姿态倾角不变
注意事项:机器人走一个完整的圆弧轨迹需插入一条MOVJ或者MOVL指令,然后插入两条MOVC指令,否则程序运行时会报错(机器人1指令错误,孤立MOVC指令)。
使用范例:
NOP
MOVL P0001 V=100mm/s PL=0 ACC=1 DEC=1 0
MOVL P0002 V=100mm/s PL=0 ACC=1 DEC=1 0 圆弧起始点
MOVC P0003 V=100mm/s PL=0 ACC=10 DEC=10 0 圆弧中间点
MOVC P0004 V=100mm/s PL=0 ACC=10 DEC=10 0 圆弧终点
END
14.4 MOVCA-整圆
格式:MOVCA【指令名】P/GP【变量】 V【速度】 PL【平滑】 ACC【加速度比率】 DEC【减速度比率】 TIME 【提前执行时间,不设置则显示为0】。
功能:机器人通过示教的三个点位走整圆轨迹。
参数:
点位
使用局部位置变量(P)或全局位置变量(GP)。当值为“新建”时,插入该指令则新建一个P变量,并将机器人的当前位置记录到该P变量
直线插补的速度,范围1-1000(默认笛卡尔参数最大速度为1000,范围根据实际填写的笛卡尔参数变化),单位为mm/s
PL
平滑过渡等级,范围[0,5]
ACC
加速度比率,范围[1,100]
DEC
减速度比率,范围[1,100]
TIME
提前执行时间,单位ms
SPIN
姿态不变:整圆运行的姿态和的第一个点位示教的姿态(MOVJ,MOVL的标定姿态)相同,并以这个姿态走完整圆轨迹
六轴不转:整圆的运行会按照每个点位示教的姿态进行运动,同时六轴是固定不动的
六轴旋转:整圆的运行会按照每个点位示教的姿态进行运动
注意事项:机器人走一个完整的整圆轨迹需插入一条MOVJ或者MOVL指令,然后插入两条MOVCA指令,否则程序运行时会报错(机器人1指令错误,孤立MOVCA指令)。
使用范例:
NOP
MOVL P0001 V=50mm/s PL=0 ACC=1 DEC=1 0
MOVL P0002 V=50mm/s PL=0 ACC=1 DEC=1 0 整圆起始点
MOVC P0003 V=100mm/s PL=0 ACC=10 DEC=10 0 整圆过度点
MOVC P0004 V=100mm/s PL=0 ACC=10 DEC=10 0 整圆终点
END
14.5 MOVS-曲线
格式:MOVCA【指令名】P/GP【变量】 V【速度】 PL【平滑】 ACC【加速度比率】 DEC【减速度比率】 TIME 【提前执行时间,不设置则显示为0】。
功能:在焊接、切割、熔接、涂底漆等作业时,使用自由曲线插补,对于不规则曲线工件的示教作业可变得容易。
参数:
点位
使用局部位置变量(P)或全局位置变量(GP)。当值为“新建”时,插入该指令则新建一个P变量,并将机器人的当前位置记录到该P变量
直线插补的速度,范围1-1000(默认笛卡尔参数最大速度为1000,范围根据实际填写的笛卡尔参数变化),单位为mm/s
PL
平滑过渡等级,范围[0,5]
ACC
加速度比率,范围[1,100]
DEC
减速度比率,范围[1,100]
TIME
提前执行时间,单位ms
注意事项:曲线轨迹最少需要示教四个曲线点位,否则程序运行会报错(机器人1指令错误,MOVS指令不能少于4条)。
示例:使用曲线插补示教四个点,形成一条曲线轨迹。
使用范例
NOP
MOVL P0001 V = 100mm/s PL = 0 ACC = 10 DEC = 10 0 安全点
MOVS P0002 V = 100 mm/s PL = 0 ACC = 10 DEC = 10 0 曲线起始点
MOVS P0003 V = 100mm/s PL = 0 ACC = 10 DEC = 10 0 曲线中间点
MOVS P0004 V = 100 mm/s PL = 0 ACC = 10 DEC = 10 0 曲线中间点
MOVS P0005 V = 100 mm/s PL = 0 ACC = 10 DEC = 10 0 曲线中间点
MOVS P0006 V = 100mm/s PL = 0 ACC = 10 DEC = 10 0 曲线结束点
MOVL P0007 V = 100mm/s PL = 0 ACC = 10 DEC = 10 0 整条轨迹的结束点
END
14.6 IMOV-增量
格式:IMOV【指令名】 RP【变量】 V/VJ【速度】 RF BF TF UF【坐标系】 PL【平滑】 ACC【加速度比率】 DEC【减速度比率】 TIME 【提前执行时间,不设置则显示为0】。
功能:通过关节或直线的插补方式从当前位置移动设定的增量数值。
参数:
RP
增量变量,记录增量位置数据
V/VJ
V:直线插补速度
VJ:关节插补速度
PL
平滑过渡等级,范围[0,5]
坐标系
关节坐标,直角坐标,工具坐标,用户坐标
ACC
加速度比率,范围[1,100]
DEC
减速度比率,范围[1,100]
TIME
提前执行时间,单位ms
注意事项:错误处理:在插入增量指令时,如果坐标系选择工具坐标,点位工具要和实际使用工具统一,否则程序运行会报错(例如:机器人1工具手使用错误,点位工具为1,实际使用工具为2)。
示例:
坐标系可选择关节、直角、工具、用户四种坐标系,对应轴填正数为正方向,负数为反方向,若不动则填0
坐标系
设置的位置参数值
示例介绍
关节坐标(RF)
JI-(10)
J2-(-5)
J3-0
J4-0
J5-0
J6-0
IMOV RP0001 VJ=10% RF PL=0 ACC=1 DEC=1 0
机器人在当前位置关节坐标的JI轴增加10,J2轴减5,其它轴数值不变
直角坐标(BF)
X-(-20)
Y-(35)
Z-(50)
A-0
B-0
C-0
IMOV RP0002 V=10mm/s BF PL=0 ACC=1 DEC=1 0
机器人在当前位置直角坐标X轴减少20mm,Y轴增加35mm,Z轴增加50mm,其它坐标轴数值不变
工具坐标(TF)
TX-(10)
TY-(20)
TZ-(-30)
TA-(1)
TB-0
TC-0
IMOV RP0003 V=10mm/sTF PL=0 ACC=1 DEC=1 0
机器人在当前位置工具坐标X轴增加10mm,Y轴增加20mm,Z轴减少30mm, 姿态轴A轴增加1rad其它轴数值不变
用户坐标(UF)
UX-(0)
UY-(-20)
UZ-(30)
UA-(0)
UB-(-1)
UC-0
IMOV RP0004 V=10mm/sUF PL=0 ACC=1 DEC=1 0
机器人在当前位置用户坐标Y轴减少20mm,Z轴增加30mm, 姿态轴B轴减少1rad,其它轴数值不变
14.7 MOVJEXT-外部轴点到点
格式:MOVJEXT【指令名】 E/GE【变量】 VJ 【速度】 PL【平滑】 ACC【加速度比率】DEC【减速度比率】TIME 【提前执行时间,不设置则显示为0】。
功能:机器人以关节插补方式向示教位置移动,外部轴在旋转时机器人通过示教的点位在外部轴上运动。
参数:
记录机器人与外部轴位置数据的变量。当值为“新建”时,插入该指令则新建一个E变量,并将机器人与外部轴的当前位置记录到该E变量。
VJ
关节插补的速度,范围[1,100]
EVJ
外部轴速度,范围[1,100]
PL
平滑过渡等级,范围[0,5]
ACC
加速度比率,范围[1,100]
DEC
减速度比率,范围[1,100]
TIME
提前时间执行下一条指令。单位ms
使用范例:
NOP
MOVJEXT E0001 VJ = 10 % PL = 0 ACC= 10 DEC = 10 0
MOVJEXT E0002 VJ = 20 % PL = 0 ACC= 10 DEC = 10 0
END
14.8 MOVLEXT-外部轴直线
格式:MOVLEXT【指令名】 E/GE【变量】 V【速度】 PL【平滑】 ACC【加速度比率】DEC【减速度比率】SYNC【变位机同步,“0”表示没有开启同步,“1”表示打开了同步】 TIME 【提前执行时间,不设置则显示为0】。
功能:机器人以直线插补的方式向示教位置移动,外部轴在旋转时机器人在外部轴上走直线轨迹。
参数:
记录机器人与外部轴位置数据的变量。当值为“新建”时,插入该指令则新建一个E变量,并将机器人与外部轴的当前位置记录到该变量。
直线插补的速度,范围1-1000(默认笛卡尔参数最大速度为1000,范围根据实际填写的笛卡尔参数变化),单位为mm/s
EVJ
外部轴速度,范围[1,100]
PL
平滑过渡等级,范围[0,5]
ACC
加速度比率,范围[1,100]
DEC
减速度比率,范围[1,100]
TIME
提前时间执行下一条指令。单位ms
SYNC
SYNC 变位机是否同步
打开同步:机器人与外部轴协同走直线
关闭同步:机器人在空间走直线,外部轴独立运动到目标位置
使用范例:
NOP
MOVLEXT E0001 V = 50 mm/s PL = 0 ACC = 1 DEC = 1 SYNC = 1 0
MOVLEXT E0002 V = 50 mm/s PL = 0 ACC = 1 DEC = 1 SYNC = 1 0
END
14.9 MOVCEXT-外部轴圆弧
格式:MOVCEXT【指令名】 E/GE【变量】 V【速度】 PL【平滑】 ACC【加速度比率】DEC【减速度比率】SYNC【变位机同步,“0”表示没有开启同步,“1”表示打开了同步】 TIME 【提前执行时间,不设置则显示为0】。
功能:机器人以圆弧插补方式向示教位置移动,外部轴用关节插补的方式运动。机器人末端执行器从E0001-E0003走圆弧轨迹,并且在走圆弧轨迹时外部轴旋转。
参数:
记录机器人与外部轴位置数据的变量。当值为“新建”时,插入该指令则新建一个E变量,并将机器人与外部轴的当前位置记录到该变量。
直线插补的速度,范围1-1000(默认笛卡尔参数最大速度为1000,范围根据实际填写的笛卡尔参数变化),单位为mm/s
EVJ
外部轴速度,范围[1,100]
PL
平滑过渡等级,范围[0,5]
ACC
加速度比率,范围[1,100]
DEC
减速度比率,范围[1,100]
TIME
提前时间执行下一条指令。单位ms
SYNC
SYNC 变位机是否同步
打开同步:机器人与外部轴协同走圆弧
关闭同步:机器人在空间走圆弧,外部轴独立运动到目标位置
使用范例:
NOP
MOVL E0001V = 100 mm/s PL = 0 ACC = 1 DEC = 1 0 安全点
MOVLEXT E0002 V = 50 mm/s PL = 0 ACC = 1 DEC = 1 SYNC = 1 0 圆弧开始点
MOVCEXT E0003 V = 50 mm/s PL = 0 ACC = 1 DEC = 1 SYNC = 1 0 圆弧中间点
MOVCEXT E0004 V = 50 mm/s PL = 0 ACC = 1 DEC = 1 SYNC = 1 0 圆弧结束点
END
14.10 SPEED-全局速度
格式:SPEED【指令名】 10%【设置的速度参数】。
功能:整体修改SPEED指令下运动类指令的速度。
参数:
SPEED
范围[1,200]%
手填:直接手输速度参数
变量:通过给变量赋值的形式设置速度参数
注意事项:SPEED指令以下的运动类指令速度计算方式:
线速度:指令速度状态栏速度SPEED全局速度的百分比。
轴速度:关节额定正速度指令速度状态栏速度*SPEED全局速度的百分比。
程序在运行时可以在监控-轴速度界面看当前速度和最大速度。
使用范例:
NOP
MOVL GP0001 V = 200 mm/s PL = 2 ACC = 20 DEC=20 0
MOVL GP0002 V = 200 mm/s PL = 2 ACC = 20 DEC=20 0
SPEED= 80%
MOVL GP0003 V = 100 mm/s PL = 2 ACC = 20 DEC=20 0
MOVL GP0004 V = 100 mm/s PL = 2 ACC = 20 DEC=20 0
MOVL GP0005 V = 100 mm/s PL = 2 ACC = 20 DEC=20 0
END
14.11 SAMOV-定点移动
格式:SAMOV【指令名】 AP【变量】 V/VJ【速度】 RF BF TF UF【坐标系】 PL【平滑】 ACC【加速度比率】 DEC【减速度比率】 TIME 【提前执行时间,不设置则显示为0】。
功能:机器人定点移动到设置的点位。
参数:
AP
定点移动变量,记录位置数据
V/VJ
V:直线插补速度
VJ:关节插补速度
PL
平滑过渡等级,范围[0,5]
坐标系
关节坐标,直角坐标,工具坐标,用户坐标
ACC
加速度比率,范围[1,100]
DEC
减速度比率,范围[1,100]
TIME
提前执行时间,单位ms
使用范例:
SAMOV AP0001 VJ= 10 %PL= 2 ACC= 10 DEC= 10
14.12 MOVJDOUBLE-双机点到点
格式:MOVJDOUBLE【指令名】E/GE【变量】 VJ 【速度】 ACC【加速度比率】 DEC【减速度比率】 TIME 【提前执行时间,不设置则显示为0】。
功能:两台机器通过关节插补从一个点运动到另一个点。
参数:
E/GE
记录机器人位置数据的变量。当值为“新建”时,插入该指令则新建一个E变量,并将机器人的当前位置记录到该E变量
VJ
关节插补的速度,范围:[1,100]
ACC
加速度比率,范围[1,100]
DEC
减速度比率,范围[1,100]
TIME
提前执行时间,单位ms
示例:
NOP
MOVJDOUBLE E0001 VJ = 10 % PL = 0 ACC= 10 DEC = 10 0
MOVJDOUBLE E0002 VJ = 15 % PL = 0 ACC= 10 DEC = 10 0
END
示例说明:程序启动时两台机器人根据示教的点位通过关节插补方式从E0001运动到E0002。
14.13 MOVLDOUBLE-双机直线
格式:MOVLDOUBLE【指令名】E/GE【变量】 V 【速度】 ACC【加速度比率】 DEC【减速度比率】 TIME 【提前执行时间,不设置则显示为0】。
功能:控制两台机器人通过直线插补运行到目标点位,机器人末端运动的轨迹为直线。
参数:
E/GE
记录机器人位置数据的变量。当值为“新建”时,插入该指令则新建一个E变量,并将机器人的当前位置记录到该E变量
直线插补的速度,范围1-1000(默认笛卡尔参数最大速度为1000,范围根据实际填写的笛卡尔参数变化),单位为mm/s
ACC
加速度比率,范围[1,100]
DEC
减速度比率,范围[1,100]
TIME
提前执行时间,单位ms
示例:
NOP
MOVLDOUBLE E0001 V = 100 mm/s PL = 0 ACC= 10 DEC = 10 0
MOVLDOUBLE E0002 V = 50 mm/s PL = 0 ACC= 10 DEC = 10 0
MOVLDOUBLE E0003 V = 50 mm/s PL = 0 ACC= 10 DEC = 10 0
MOVLDOUBLE E0004 V = 50 mm/s PL = 0 ACC= 10 DEC = 10 0
END
示例说明:程序启动时两台机器人根据示教的点位通过直线插补方式从E0001运动到E0004,机器人末端运动的轨迹为直线。
14.14 MOVCDOUBLE-双机圆弧
格式:MOVCDOUBLE【指令名】E/GE【变量】 V 【速度】 ACC【加速度比率】 DEC【减速度比率】 TIME 【提前执行时间,不设置则显示为0】。
功能:两个机器人在程序启动时走圆弧轨迹。
参数:
E/GE
记录机器人位置数据的变量。当值为“新建”时,插入该指令则新建一个E变量,并将机器人的当前位置记录到该E变量
直线插补的速度,范围1-1000(默认笛卡尔参数最大速度为1000,范围根据实际填写的笛卡尔参数变化),单位为mm/s
ACC
加速度比率,范围[1,100]
DEC
减速度比率,范围[1,100]
TIME
提前执行时间,单位ms
示例:
NOP
MOVLDOUBLE E0001 V = 10 % PL = 0 ACC= 10 DEC = 10 0
MOVLDOUBLE E0002 V = 10 % PL = 0 ACC= 10 DEC = 10 0 圆弧起始点
MOVCDOUBLE E0003 V = 100 mm/s PL = 0 ACC= 10 DEC = 10 0 圆弧过渡点
MOVCDOUBLE E0004 V = 100mm/s PL = 0 ACC= 10 DEC = 10 0 圆弧终点
END
示例说明:程序启动时两台机器人根据示教的点位通过直线插补方式从E0001运动到E0002,在E0002走完整个圆弧轨迹。
14.15 MOVCADOUBLE-双机整圆
格式:MOVCADOUBLE【指令名】E/GE【变量】 V 【速度】 ACC【加速度比率】 DEC【减速度比率】 TIME 【提前执行时间,不设置则显示为0】。
功能:机器人通过双机协作两个机器人同时走整圆轨迹。
参数:
E/GE
记录机器人位置数据的变量。当值为“新建”时,插入该指令则新建一个E变量,并将机器人的当前位置记录到该E变量
直线插补的速度,范围1-1000(默认笛卡尔参数最大速度为1000,范围根据实际填写的笛卡尔参数变化),单位为mm/s
ACC
加速度比率,范围[1,100]
DEC
减速度比率,范围[1,100]
TIME
提前执行时间,单位ms
SPIN:机器人末梢旋转
姿态不变:整圆运行的姿态和的第一个点位示教的姿态(MOVJ,MOVL的标定姿态)相同,并以这个姿态走完整圆轨迹
六轴不转:整圆的运行会按照每个点位示教的姿态进行运动,同时六轴是固定不动的
六轴旋转;整圆的运行会按照每个点位示教的姿态进行运动
示例:
NOP
MOVLDOUBLE E0001 V = 10 % PL = 0 ACC= 10 DEC = 10 0
MOVLDOUBLE E0002 V = 10 % PL = 0 ACC= 10 DEC = 10 0 整圆起始点
MOVCADOUBLE E0003 V = 25 mm/s PL = 0 ACC= 10 DEC = 10 0 整圆过渡点
MOVCADOUBLE E0004 V = 25 mm/s PL = 0 ACC= 10 DEC = 10 0 整圆终点
END
示例说明:程序启动时两台机器人根据示教的点位通过直线插补方式从E0001运动到E0002,在E0002走完整个整圆轨迹。
14.16 MOVCOMM-外部点
格式:MOCOMM【指令名】 MOVJ/MOVL/MOVS/MOVC【插补方式】V/VJ【速度】 PL【平滑】 ACC【加速度比率】DEC【减速度比率】TIME 【提前执行时间,不设置则显示为0】。
功能:以规定的插补方式通过外部点指令运动到目标点位,可以通过6000,7000端口和视觉工艺发送外部点点位。
参数:
插补方式
关节、直线、曲线,圆弧
V/VJ
V:直线插补速度
范围2-1000(默认笛卡尔参数最大速度为1000,范围根据实际填写的笛卡尔参数变化),单位为mm/s
VJ:关节插补速度
PL
平滑过渡等级,范围[0,5]
ACC
加速度比率,范围[1,100]
DEC
减速度比率,范围[1,100]
TIME
提前执行时间,单位ms
示例1:
NOP
VISION_RUN ID =1 视觉开始
VISION_TRG ID =1 视觉触发
VISION_TRACE ID =1 获取视觉轨迹位置
MOCOMM MOVJ VJ=10% PL=0 ACC=10 DEC=10 0 外部点
VISION_END ID =1 视觉结束
END
14.17 EXTMOV-外部轴随动
格式:EXTMOV【指令名】O1【运动的外部轴】COMST_T【外部轴随动类型】10【倍数】。
功能:外部轴按机器人线速度倍数的速度或恒速跟随机器人随动的指令。
参数:
外部轴
可选O1-O5某个轴进行随动
类型
外部轴的速度在监控中的轴速度中看
随动:随机器人实时速度改变速度
恒速:恒定的某个速度运行
速度值
当随动类型为恒速时速度值可以选择手填,变量
当随动类型为随动时可以填写值
K(倍数):外部轴速度(°/s)=K*线速度(mm/s)
注意事项:外部轴随动指令中间不支持插入外部轴运动指令!
示例1:外部轴随动指令类型恒速,恒速值为10。
NOP
EXTMOV O1 COMST_T 10 随动开始
MOVL P0001 V=50mm/s PL=0 ACC=1 DEC=1 0
ENDEXTMOV 随动结束
END
14.18 GEARIN-电子齿轮
格式:GEARIN【指令名】 J1【主轴】 O1【随动轴】 K=2【比例关系】。
功能:外部轴某轴跟随机器人某轴一起运动的指令,跟随的外部轴的轴速度等于选择的主轴的轴速度*比例关系K值。
参数:
主轴
机器人的J1-J6轴
外部轴
外部轴O1-O5的某个轴进行随动
比例关系K
随动轴速(°/s)=K*主轴速(°/s)
示例:
NOP
GEARIN J1 O1 2 电子齿轮开始
MOVL P0001 V=10mm/s PL=0 ACC=1 DEC=1 0 直线指令
ENDGEARIN 电子齿轮停止
END
示例说明:在机器人开始运动时,外部轴O1轴跟随一起运动,O1的轴速度=J1轴的轴速度*2,运行到电子齿轮停止指令时J1轴,O1轴的轴速度变为0。
14.19 MRESET-复位外部轴多圈转动量
格式:MRESET【指令名】 1【复位的外部轴】。
功能:外部轴超出限位后使用此指令可将外部轴坐标复位.让外部轴不会因超限而报错。
参数:
MRESET
全部轴:复位O1-O5所有轴的转动量
单个轴:复位O1-O5所选择的单轴转动量
示例:
NOP
MOVL P0001 V=10mm/s PL=0 ACC=1 DEC=1 0 程序点1
EXTMOV O1 FOLLOW 1 随动开始
MOVL P0002 V=10mm/s PL=0 ACC=1 DEC=1 0 程序点2
ENDEXTMOV 随动结束
MRESET 1 复位外部轴O1轴
END
示例说明:当插入外部轴随动指令时,当机器人运动时外部轴跟随一起运动,这种情况下外部轴的限位很容易超过设置的最大正反限位,插入复位外部轴多圈转动量指令会将外部轴位置变更为一圈内的位置,不会出现超限位报错的问题。
例如:当在执行完外部轴随动指令时,此时外部轴O1轴的位置为1200°,超过了设置的最大正反限位,插入复位外部轴多圈转动量指令将外部轴的位置复位到120°,计算方式:1200/360取计算结果的整数部分3,3表示外部轴转了3圈,然后1200-360*3=120°。
14.20 DRAG_TRAJECTORY-拖拽示教
格式:DRAG_TRAJECTORY【指令名】Track【拖拽记录保存的轨迹】20%【轨迹回放速度】。
功能:通过指令运行记录的拖拽轨迹。
参数:
轨迹名
机器人辨识成功,拖拽机器人记录的轨迹,在拖拽前可以命名轨迹
回放速率
回放轨迹时的运行速度
示例:
NOP
DRAG_TRAJECTORY ##Track1$$ 20% 运行记录的轨迹1
END
示例说明:机器人以20%的速度运行记录的轨迹1。
14.21 SWITCHPAYLOAD-切换负载参数
格式:SWITHCPAYLOAD【指令名】1【负载编号】。
功能:用于切换负载参数。
参数:
负载编号
手填:直接输入需要切换的编号参数
变量:通过给选择的变量赋值切换编号参数
注意事项:
实际运行中,实际负载和负载参数匹配。
切换负载参数只会切换当前选中编号的负载参数,工具手参数无影响。
会影响碰撞检测和力矩前馈。
示例:
NOP
GI001=10
SWITHCPAYLOAD GI001
END
示例说明:切换负载编号为10的负载参数。
14.22 MOVARCH-门型运动
格式:MOVARCH【指令名】 P/GP【变量】 V【速度】 P【平滑】ACC【加速度比率】DEC【减速度比率】X/Y/Z【位移轴】 150【设置的位移距离】100【设置的直线距离】TIME 【提前执行时间,不设置则显示为0】。
功能:机器人走门型轨迹。
标准门型轨迹:高25mm,宽300mm。
参数:
点位
使用局部位置变量(P)或全局位置变量(GP)。当值为“新建”时,插入该指令则新建一个P变量,并将机器人的当前位置记录到该P变量
直线插补的速度,范围1-1000(默认笛卡尔参数最大速度为1000,范围根据实际填写的笛卡尔参数变化),单位为mm/s
PL
平滑过渡等级,范围[0,5]
ACC
加速度比率,范围[1,100]
DEC
减速度比率,范围[1,100]
位移轴(X,Y,Z)
门型运动时进行位移的轴,标准门型运动位移的是Z轴方向
位移距离
需要在位移轴上位移的距离,标准门型运动是在Z轴上位移25mm
直线距离
保证机器人走的位移距离有一段距离是以直线的方式走的(即为门型上升起始和下降末端之间的一段竖直运动的距离)
注意事项:直线距离不能大于位移距离
TIME
提前执行时间,单位ms
示例:
NOP
MOVARCH P0001 V=10 PL=0 ACC=10 DEC=10 Z 25 0
MOVARCH P0002 V=10 PL=0 ACC=10 DEC=10 Z 25 0
END
15 输入输出类
15.1 DIN-IO输入
格式:DIN【指令名】I001【端口值存入的变量】IGH【输入路数】1【输入组号】。
功能:数字输入将外部信号转换为电压或电流的高或低电平,然后传递给控制系统。用于接收外部数字信号,通常用于检测开关的状态、传感器信号等。
参数:
输入IO板
若连接了多块IO板,则可选择是第几个IO板用来接收信号
输入路数
支持手填和变量形式
1路输入、4路输入、8路输入
输入组号
1-16:一块IO板分为16路信号通道,一路输入表示16路信号通道每1路为一组
1-4:一块IO板分为16路信号通道,4路输入表示16路信号通道每4路为一组。【1-4、5-8,9-12、13-16】
1-2:一块IO板分为16路信号通道,8路输入表示16路信号通道每8路为一组。【1-8,9-16】
端口值存入
接收到的信号由2进制转为10进制存入变量中
示例:
参数设置:IO板1,输入路数选择4路输入,输入组号选择1,端口值存入GI001,此处参数设置仅用于示例说明。
NOP
DIN IGH#(1)
END
示例说明:4路一组,假设1-4号端口值为0101,转化为10进制等于5,执行输出信息指令时小白条输出GI001=5。
15.2 DOUT-IO输出
格式:DOUT【指令名】OT【输出路数】(DOUT1-1)【输出组号】1【输出端口】 T=1【时间】1【错误停止处理,“0”表示输出值保持,“1”表示计时结束停止】。
功能:数字输出用于控制外部设备,不接受反馈信号,例如继电器、开关等。
参数:
输出IO板
若连接了多块IO板,则可选择是第几个IO板用来控制信号
输出路数
1路输出
4路输出
8路输出
输出组号
支持手填和变量形式
输出路数为1路输出时输出组号为1-16:一块IO板分为16路信号通道,一路输出表示16路信号通道每1路为一组
输出路数为4路输出时输出组号为1-4:一块IO板分为16路信号通道,4路输出表示16路信号通道每4路为一组。【1-4、5-8,9-12、13-16】
输出路数为8路输出时输出组号为1-2:一块IO板分为16路信号通道,8路输出表示16路信号通道每8路为一组。【1-8,9-16】
输出值
自选:直接选端口,选中的端口输出高电平,未选中的端口为低电平
变量:通过给变量赋值让输出端口由低电平变为高电平
时间
当T写入0时则表示持续输出高电平
当T写入2时则表示输出信号持续2秒后由高电平置为低电平
错误停止处理
1.输出值保持:程序暂停、停止或者报错后,输出值持续输出。
例如:输出端口为1-1,设置的时间为3秒,表示输出指令从开始到结束复位需要3秒,如果输出指令的运行时间没有到达3秒程序被暂停(假如运行了2秒),此时1-1端口继续输出高电平,程序启动后再运行1秒1-1端口就会复位
2.计时结束停止:到达设定的时间,IO端口复位
例如:输出端口为1-2,设置的时间为2秒,表示1-2输出端口持续输出两秒后1-2端口复位
示例:
NOP
DOUT OGH#(DOUT)15 T=1 1
END
示例说明:1-1—1-4输出端口持续1秒后复位。
15.3 AIN-模拟输入
格式:AIN【指令名】 D001【变量值】 AIN1-1【模拟输入口】。
功能:可以接收连续变化的信号,常见的模拟输入信号包括电压、电流等。
参数:
模拟输入口
通过选择的模拟输入口接收模拟量数值
变量值
将采集到的模拟量数值保存到选择的变量,只支持浮点型变量
示例:
NOP
AIN D001 AIN1-1
END
示例说明:将采集的AIN1-1模拟输入口的值读取到变量D0001。
15.4 AOUT-模拟输出
格式:AOUT【指令名】AOUT1-1【模拟输出口】 GD001/D001【变量值来源】。
功能:可以输出连续变化的信号。常见的模拟输出信号包括电压、电流等。
参数:
模拟输出口
通过选择的模拟输出口输出模拟量数值
变量值来源
通过给变量赋值或者自定义将数值输出到选择的模拟输出口,范围[0,10]
示例:
NOP
GD001=5
AOUT AOUT1-1 GD001
END
示例说明:给变量GD001赋值,在执行模拟输出指令时会将值输出到选择的AOUT1-1端口。
15.5 PULSEOUT-脉冲输出
格式:PULSEOUT【指令名】RATE【频率】SUM【个数】。
功能:按照设定的脉冲频率与个数,在R1 PWMIO板上的DB9端子的引脚4(PWM+)上进行输出。
参数:
个数:脉冲个数
频率: 脉冲频率
示例:
NOP
PULSEOUT RATE = 100 SUM = 100
END
15.6 READ_DOUT-读取输出
格式:READ_DOUT【指令名】GI001【变量类型】 OT【输出路数】(DOUT1-1 )【输出组号】。
功能:将数字输出端口的状态通过变量读取,然后将2进制转为10进制数值并存入目标变量中。
参数:
IO板
若连接了多块IO板,则可选择读取第几个IO板的数值
变量类型
读取出的数值存入到选择的目标变量
输出路数
1路输出(16组)
4路输出(4组)
8路输出(2组)
输出组号
1-16
1-4
5-8
9-12
13-16
1-8
9-16
示例:
NOP
DOUT OGH#(1) 11 T=0 0
READ_DOUT GI001 OGH#(1)
END
示例说明:执行第一条输出指令后,IO板1的1-4端口值为1011,再执行读取输出指令会把1-4的端口值1011转为10进制,此时选择的变量GI001=11。
16 定时器类
16.1 TIMER-延时
功能:程序运行时延时设置的值,到达设置好的数值后,程序继续运行。
参数说明:
变量值来源:可以在新参数手填值。也可以再更多选项中选择绑定的变量,会延时变量值对应的时间长度,
使用范例:TIMER T= 10 延时10秒。
17 运算类
17.1 ADD-加
功能:加法运算(+),A=A+B。
参数说明:
变量:被加数A的变量类型可以手填可以选择更多中的变量类型。
变量值:加数B的变量类型,可以手填可以选择更多中的变量类型。
使用范例:
ADD GI001 22;含义:变量GI001加22。
17.2 SUB-减
功能:减法运算(-),A=A-B。
参数说明
变量:被减数A的变量类型可以手填可以选择更多中的变量类型。
变量值:减数B的变量类型,可以手填可以选择更多中的变量类型。
使用范例:SUB GI001 22;含义:变量GI001减22。
17.3 MUL-乘
功能;乘法运算(),A=AB。
参数说明
变量:被乘数A的变量类型,可以手填可以选择更多中的变量类型。
变量值:乘数B的变量类型,可以手填可以选择更多中的变量类型。
新参数:当变量值来源选择自定义时,本输入框有效,所填值为B的值。
来源参数:当变量值来源选择变量时,这里为B的变量名。
使用范例
MUL GI001 22;含义:变量GI001乘22。
17.4 DIV-除
功能:除法运算(÷),A=A÷B。
参数说明
变量:被除数A的变量类型,可以手填可以选择更多中的变量类型。
变量值:除数B的变量类型,可以手填可以选择更多中的变量类型。
使用范例
DIV GI001 22;含义:变量GI001除22。
17.5 MOD-模
格式:MOD【指令名】I001【结果变量】I002【参数】。
功能:进行模运算,将模运算的结果存入到选择的结果变量。
参数:
结果变量
存入计算结果的变量
参数
例如:I001模9,“9”表示的就是参数
示例:
NOP
SET GI001=11
MOD GI001 7
TIMER T=2
END
示例说明:当程序执行完第3行模指令时结果变量G001=4。
17.6 SIN-正弦
格式:SIN【指令名】I001【结果变量】I002【参数】。
功能:正弦运算(sin),A=sin(B),B为弧度制rad。
参数:
结果变量
存入计算结果的变量
参数
此处填写的数值为弧度制数值,填写1表示1rad
示例:
NOP
SET GD001=0.5
SIN GD001 1
TIMER T=2
END
示例说明:当程序执行完第3行正弦指令时结果变量GD001=0.8415。
17.7 COS-余弦
格式:COS【指令名】I001【结果变量】I002【参数】。
功能:余弦运算(cos),A=cos(B),B为弧度制rad。
参数:
结果变量
存入计算结果的变量
参数
此处填写的数值为弧度制数值,填写1表示1rad
示例:
NOP
SET D002=2
COS D002 1
TIMER T=2
END
示例说明:当程序执行完第3行余弦指令时结果变量D002=0.5403。
17.8 ATAN-反正切
格式:ATAN【指令名】I001【结果变量】I002【参数】。
功能:反正切运算(arctan),A=arctan(B),B为弧度制rad。
参数:
结果变量
存入计算结果的变量
参数
此处填写的数值为弧度制数值,填写1表示1rad
示例:
NOP
SET GD002 = 2
ATAN GD002 1
TIMER T=2
END
示例说明:当程序执行完第3行反正切指令时结果变量GD002=0.7854。
17.9 LOGICAL_OP-逻辑运算
格式:LOGICAL_OP【指令名】B001【结果变量】= I001【参数1】AND/OR/NOT【运算类型】GI001【参数2】。
功能:逻辑运算(与、或、非)。
参数:
结果变量
将逻辑运算结果存入选择的目标变量
参数1
参与逻辑运算的参数1
运算类型
与&&AND
或||OR
非!NOT
注意:运算类型选择非运算时参数2的变量类型无法选择
参数2
参与逻辑运算的参数2
示例:
NOP
SET I001 = 1
SET I002 = 0
LOGICAL_OP B001 = I001 AND I002
SET GI001 = 10
SET GI002 = 1
LOGICAL_OP B002 = GI001 OR GI002
LOGICAL_OP B003 = NOT GI002
TIMER T=2
END
示例说明:程序在执行完与、或、非运算后B001=0、B002=1、B003=0。
18 条件控制类
现在判断指令支持多条件判断按顺序判断,有括号的优先判断括号内的再于括号外的进行判断,最多支持5个判断条件。
注:条件判断需要用字符串作比较时,实际作比较时比较的是字符所对应的ASCII码值。
18.1 CALL-调用子程序
格式:CALL【指令名称】[$子程序$]【调用程序文件名】IN(12)【传入参数】OUT(GI001)【传出参数】。
功能:调用另一个程序。
CALL
被调用程序名称
输入参数个数
从子程序获取输入参数个数并显示到此处
此处此参数不可修改
输入参数选择
输入参数个数为0时不可点击
输入参数个数
根据从子程序参数声明指令设置的参数个数并显示到此处
此参数不可修改
个数有几个下方表格会显示几行数据
输入参数列
显示参数顺序编号
变量列
值类型可以为不使用、手填、变量;其中变量必须为可赋值到子程序对应变量的,例如子程序是I001,则只能选int、bool、double、手填值等类型,字符串类型不可赋值给I001
当PARAM_DECLARATION参数界面对应的输入参数的默认值为手填或者变量时CALL指令参数界面输入参数选择时的【更多】选项可以选择不使用,
当PARAM_DECLARATION参数界面对应的输入参数的默认值为不使用时CALL指令参数界面输入参数选择时的【更多】不可以选不使用
备注列
显示的内容为PARAM_DECLARATION中对应填入的注释文本+PARAM_DECLARATION中的对应变量
输出参数个数
从子程序获取输出参数个数并显示到此处
此参数不可修改
输出参数选择
输出参数个数为0时不可点击
输出参数个数
根据从子程序参数声明指令设置的参数个数并显示到此处
此参数不可修改
个数有几个下方表格会显示几行数据
输出参数列
显示参数顺序编号
变量列
值类型可以为变量;其中变量必须为可赋值到子程序对应变量的,例如子程序是I001,则只能选int、bool、double等类型,字符串类型不可赋值给I001
注释列
显示内容为PARAM_DECLARATION中对应填入的注释文本+PARAM_DECLARATION中的对应变量
注意事项:主程序A调用程序B,程序B又调用程序A,会造成程序陷入死循环。
示例-主程序:
NOP
SET I001=12
SET I002=22
CALL[$Q11$]IN(I001,I002)OUT(D006,D007)
TIMER T=1
END
示例:子程序Q11:
NOP
PARAM_DECLARATION IN(D001=[-],D002=[-])OUT(10.0,11.0)
TIMER T=0.5
END
示例说明:主程序运行调用子程序指令,输入参数I001和I002的值被子程序接收使用,运行到子程序Q11时I001=12,I002=22,输出参数将返回给主程序使用,子程序运行结束后进入主程序D006=10,D007=11。
18.2 CALL_LUAFILE-调用LUA文件
格式:RETURN【指令名称】。
功能:退出当前运行的作业文件,例如:子程序、后台程序。
RETURN因为不需要进行指令参数的填写,所以此类型的指令,点击插入指令时不会再跳转到指令参数界面,点击插入指令直接在作业文件中添加指令。由于此类指令没有指令参数界面,所以当光标位于指令上时,修改控件处于置灰状态。
参数:略。
示例-主程序:
MOVL P0001 V=10mm/s PL=0 ACC=1 DEC=1 0
MOVL P0002 V=10mm/s PL=0 ACC=1 DEC=1 0
RETURN
TIMER T = 1
PRINTMSG #TEST#
示例说明:程序运行到退出指令程序停止,伺服由运行状态变为就绪状态,程序停止运行,位于退出指令后的指令不再运行。
子程序:主程序调用子程序,当子程序运行到退出指令时子程序退出运行跳转到主程序,主程序继续运行。
后台程序:主程序调用全局后台和局部后台,当全局后台和局部后台运行到退出指令时,退出全局和局部线程。
18.3 IF-如果
格式:IF 【指令名】I001【参数1】=【比较方式】D001【参数2】。
功能:通过判断条件是否成立来执行下一目标的指令。
参数:
变量1
变量1的类型,可以选择数值变量、数字输入输出、模拟输入变量,位置变量类型
若参数类型选择的类型为数值变量(INT、DOUBLE、BOOL、GINT、GDOUBLE、GBOOL),则此处为变量1的变量名
若参数类型选择的类型为数字/模拟变量(DIN、DOUT、AIN),则此处为数字输入输出或模拟输入的端口号
若参数类型选择的类型为位置变量(P、GP、E、GE),选择位置变量后变量的格式为选择的位置变量加位置变量坐标轴,当选择变量坐标轴的点位满足条件时执行if里面的指令
比较方式
== 等于
<小于
大于
<= 小于或等于
= 大于或等于
!= 不等于
变量2
参数2选择的变量类型:手填,变量
若变量值来源选择手填,则在此处直接填写参数2的值
注意事项:
IF指令可以单独使用,也可搭配ELSEIF、ELSE两条指令使用。注意:ELSEIF、ELSE指令不可脱离IF指令单独使用。
当程序的开头为IF且最后一行为ENDIF指令时,请在IF指令上方或ENDIF下方插入一条0.1秒的TIMER(延时)指令,否则当IF指令的条件不满足时会导致程序陷入死机状态。
插入IF指令时会同时插入ENDIF指令,当删除IF指令时请注意将对应的ENDIF指令也删掉,否则会导致程序无法执行。
示例:
NOP
MOVL P0001 V=10mm/s PL=0 ACC=1 DEC=1 0
IF (GI001>5)AND
TIMER T=2
ENDIF
END
示例说明:程序运行到第3行时,对IF指令进行判断,判断为真执行延时指令,反之程序直接运行到第6行。
18.4 ELSEIF-否则如果
格式:IF 【指令名】I001【参数1】=【比较方式】D001【参数2】。
功能:IF指令的判断条件不满足时,执行ELSEIF语句。
参数:
变量1
变量1的类型,可以选择数值变量、数字输入输出、模拟输入、位置变量类型
若参数类型选择的类型为数值变量(INT、DOUBLE、BOOL、GINT、GDOUBLE、GBOOL),则此处为变量1的变量名
若参数类型选择的类型为数字/模拟变量(DIN、DOUT、AIN),则此处为数字输入输出或模拟输入的端口号
若参数类型选择的类型为位置变量(P、GP、E、GE),选择位置变量后变量的格式为选择的位置变量加位置变量坐标轴,当选择变量坐标轴的点位满足条件时执行elseif里面的指令
比较方式
== 等于
<小于
大于
<= 小于或等于
= 大于或等于
!= 不等于
变量2
变量2选择的变量类型
参数2支持自定义,若变量值来源处选择手填,则在此处直接填写参数2的值
注意事项:
当IF的条件满足时,会执行IF语句里面的指令,会忽略掉ELSEIF与ENDIF之间的指令。
当IF的条件不满足时,会跳转到ELSEIF指令,判断ELSEIF的判断条件,若条件成立,则运行ELSEIF和ENDIF之间的指令,然后继续运行ENDIF下面的指令;若不满足,则直接跳转到ENDIF下面的一行指令继续运行。
若在IF与ENDIF中嵌套了多条ELSEIF,当IF的判断条件不成立时首先判断第一条ELSEIF的判断条件,若成立则运行第一条ELSEIF与第二条ELSEIF之间的指令;若不成立则判断第二条ELSEIF的判断条件,以此类推。
当删除IF指令时,需删除与其对应的ELSEIF和ENDIF指令,否则会导致程序报错无法运行。
示例:
NOP
MOVL P0001 V=10mm/s PL=0 ACC=1 DEC=1 0
IF(I001=5)
TIMER T=1
ELSEIF(I001!=0)AND(GI001=2)
TIMER T=2
ENDIF
END
示例说明:运行到第三条指令时,对IF指令判断,判断为真执行第4条延时指令,反之则判断ELSEIF语句,如果ELSEIF条件成立,则执行第6条延时指令,反之程序直接运行到第8行。
18.5 ELSE-否则
功能:ELSE指令必须插入在IF和ENDIF之间,但是一个IF指令只能嵌入一条ELSE指令。
18.6 WAIT-等待
格式:WAIT【指令名称】GI001【参数1】==【比较方式】2【参数2】T = 2 【等待时间】F = 1【滤波时间】Return=B001【等待结果存入变量】。
功能:条件成立之前程序处于等待状态,条件成立后继续执行等待指令后面的指令。
参数:
参数1
参数1的类型,可以选择数值变量、数字输入输出、模拟输入、位置变量类型
若参数类型选择的类型为数值变量(INT、DOUBLE、BOOL、GINT、GDOUBLE、GBOOL),则此处为参数1的变量名
若参数类型选择的类型为数字/模拟变量(DIN、DOUT、AIN),则此处为数字输入输出或模拟输入的端口号
若参数类型选择的类型为位置变量(P、GP、E、GE),选择位置变量后变量的格式为选择的位置变量加位置变量坐标轴,当选择变量坐标轴的点位满足条件时执行wait里面的指令
比较方式
== 等于
<小于
大于
<= 小于或等于
= 大于或等于
!= 不等于
参数2
参数2选择的变量类型
参数2支持自定义,若变量值来源处选择的为自定义,则在此处直接填写参数2的值
Time等待时间
不勾选“TIME”选项,则在判断条件不成立时一直停留在该WAIT指令等待,直到判断条件成立
勾选了“TIME”选项,到达等待时间不论条件是否成立也会运行下一条指令。若在等待指令时条件变为成立,则立刻运行下一条指令
滤波时间
输入信号时间满足滤波时间:(无需等待TIME)直接到下一行继续行
不满足滤波时间时:则到达等待TIME时间之后到下一行继续运行
等待结果
将等待结果存入布尔变量,超出等待时间等待结果返回1,未超出等待时间,等待结果返回0
示例:
NOP
MOVL P0001 V=10mm/s PL=0 ACC=1 DEC=1 0
WAIT (GI001<5) T=1 Return=GB001
MOVL P0001 V=10mm/s PL=0 ACC=1 DEC=1 0
END
示例说明:程序在运行到第3行等待指令判断条件是否成立,若成立直接运行等待下面的指令;若不成立,则到达等待时间后运行等待下面的指令,将等待结果存入变量GB001。
18.7 WHILE-循环
格式:WHILE 【指令名】I001【参数1】=【比较方式】D001【参数2】。
功能:判断条件为真是反复执行循环语句里面的指令。
参数:
参数1
参数1的类型,可以选择数值变量、数字输入输出、模拟输入、位置变量类型
若参数类型选择的类型为数值变量(INT、DOUBLE、BOOL、GINT、GDOUBLE、GBOOL),则此处为参数1的变量名
若参数类型选择的类型为数字/模拟变量(DIN、DOUT、AIN),则此处为数字输入输出或模拟输入的端口号
若参数类型选择的类型为位置变量(P、GP、E、GE),选择位置变量后变量的格式为选择的位置变量加位置变量坐标轴,当选择变量坐标轴的点位满足条件时执行while里面的指
比较方式
== 等于
<小于
大于
<= 小于或等于
= 大于或等于
!= 不等于
参数2
参数2选择的变量类型,支持自定义,若变量值来源处选择的为自定义,则在此处直接填写参数2的值
注意事项:
插入WHILE指令的同时会同时插入ENDWHILE指令。若要删除WHILE指令请同时删掉其对应的ENDWHILE指令,否则会导致程序无法运行。
当程序的开头为WHILE且最后一样指令为ENDWHILE时,请在程序的开头或结尾插入一条TIMER(延时)指令。否则当WHILE指令的条件不满足时会导致程序陷入死机。
当WHILE内部的指令没有运动类指令或在某种情况下可能会陷入死循环时,请在WHILE与ENDWHILE间插入一条TIMER(延时)指令,否则当WHILE指令的条件满足时可能会导致程序陷入死机。
当WHILE指令的条件满足时,会循环运行WHILE与ENDWHILE两条指令之间的指令。在运行到WHILE指令之前若判断条件不满足,在运行到WHILE指令时会直接跳转到ENDWHILE指令而不运行WHILE与ENDWHILE之间的指令;若在运行WHILE与ENDWHILE之间的指令过程中,判断条件变成不满足,会继续运行,直到运行到ENDWHILE行,不再循环而是继续运行ENDWHILE下面的指令。
示例:
NOP
CALL[$Z子程序$]
WHILE(DIN1-1=1)OR(GI001=1)
MOVL P0001 V=10mm/s PL=0 ACC=1 DEC=1 0
MOVL P0002 V=10mm/s PL=0 ACC=1 DEC=1 0
ENDWHILE
TIMER T=1
END
示例说明:程序在运行到WHILE指令之前先判断循环条件是否满足,若满足则循环运行WHILE与ENDWHILE两条指令之间的运动指令,若不满足则执行循环语句外的指令。
18.8 LABEL-标签
格式:LABEL【指令名】[$name$]【标签名】。
功能:指定跳转目标行的标签。
参数:
标签名
指令跳转的标签名,例如标签名是【Q1】,在跳转指令参数设定界面选择的标签名是【Q1】,那程序会一直运行标签和跳转指令之间的指令
注意事项:
同一程序无法插入两条标签名相同的标签指令。
标签指令不支持上移、下移操作。
示例:
NOP
MOVL P0001 V=10mm/s PL=0 ACC=1 DEC=1 0
LABEL [$Q1$]
MOVL P0002 V=10mm/s PL=0 ACC=1 DEC=1 0
MOVL P0003 V=10mm/s PL=0 ACC=1 DEC=1 0
JUMP [$Q1$]
TIMER T=1
END
示例说明:一直循环运行LABEL [$Q1$]和JUMP [$Q1$]两条指令之间的指令。
18.9 JUMP-跳转
格式:JUMP【指令名】[$TIP$]【标签名】WHEN(I001=0)【判断条件】。
功能:跳转至指定标签号的指令行。
参数:
标签名
选择已插入LABEL指令的标签名
判断条件
有判断条件:判断条件成立则跳转到LABEL指令行,若判断条件不成立则忽略JUMP指令,继续运行JUMP指令的下一行指令
无判断条件:运行到该指令会直接跳转到对应的LABEL指令后继续运行LABEL指令的下一行指令。
参数类型
可以选择数值变量、数字输入输出、模拟输入变量类型
若参数类型选择的类型为变量(INT、DOUBLE、BOOL、GINT、GDOUBLE、GBOOL),则此处为参数1的变量名
若参数类型选择的类型为输入值(DIN、DOUT、AIN),则此处为数字输入输出或模拟输入的端口号
比较方式
== 等于
<小于
大于
<= 小于或等于
= 大于或等于
!= 不等于
变量值来源
支持自定义和变量类型,若变量值来源选择自定义,则在此处直接填写给变量赋值的数值
注意事项:
JUMP指令必须与LABEL(标签)指令配合使用。
JUMP指令不可跨程序跳转。例如主程序里面插入LABEL [$Q1$]指令,在子程序插入JUMP [$Q1$]指令,程序运行会报错。
示例:
NOP
MOVL P0001 V=10mm/s PL=0 ACC=1 DEC=1 0
LABEL [$Q1$]
MOVL P0002 V=10mm/s PL=0 ACC=1 DEC=1 0
MOVL P0003 V=10mm/s PL=0 ACC=1 DEC=1 0
JUMP [$Q1$] WHEN(GI001!=10)AND(GI002>5)
TIMER T=1
END
示例说明:跳转指令设置了条件判断,当判断条件成立时会跳转到标签行重复运行LABEL和JUMP 之间的直线指令,若不成立则继续运行JUMP指令的下一行TIMER(延时)指令。
18.10 UNTIL-直到
格式:UNTIL【指令名】I001【变量1】=【比较方式】I002【变量2】。
功能:条件不成立时重复执行UNTIL和ENDUNTIL之间的指令,条件成立时直接跳到ENDUNTIL下面的指令运行。
参数:
参数类型
可以选择数值变量、数字输入输出、模拟输入变量类型
若参数类型选择的类型为变量(INT、DOUBLE、BOOL、GINT、GDOUBLE、GBOOL),则此处为参数1的变量名
若参数类型选择的类型为输入值(DIN、DOUT、AIN),则此处为数字输入输出或模拟输入的端口号
比较方式
== 等于
<小于
大于
<= 小于或等于
= 大于或等于
!= 不等于
变量值来源
支持自定义和变量类型,若变量值来源选择自定义,则在此处直接填写给变量赋值的数值
注意事项:
UNTIL指令插入的同时会插入ENDUNTIL指令。若要删除UNTIL指令请同时删掉其对应的ENDUNTIL指令,否则会导致程序无法运行。
示例:
NOP
MOVL P0001 V=10mm/s PL=0 ACC=1 DEC=1 0
UNTIL(I001<5)
MOVL P0002 V=10mm/s PL=0 ACC=1 DEC=1 0
MOVL P0003 V=10mm/s PL=0 ACC=1 DEC=1 0
ENDUNTIL
TIMER T=1
END
示例说明:当UNTIL条件成立时,会直接跳转到ENDUNTIL后面的TIMER(延时)指令,当UNTIL条件不成立时,会执行UNTIL和ENDUNTIL之间的直线指令。
18.11 CMDNOTE-注释指令
格式:##注释内容$$。
功能:程序适当位置添加注释,便于调试。
参数:略。
注意事项:
注释指令在运行时会跳到下一行指令运行,不会有报错提示。
注释的内容支持中英文,支持大小写,支持数字输入和支持符号输入。
示例:
NOP
##运行直线轨迹$$
MOVL P0002 V=10mm/s PL=0 ACC=1 DEC=1 0
MOVL P0002 V=10mm/s PL=0 ACC=1 DEC=1 0
##延时1秒$$
TIMER T=1
END
示例说明:第2行插入的注释指令是对第3、4行指令的注释,第5行插入的注释指令是对第6行指令的注释。
18.12 POS_REACHABLE-是否可达判断
格式:POS_REACHABLE【指令名】MOVL/MOVJ【运动类型】B001【状态存入的变量】。
功能:判断目标点是否能到达,点位能够到达选择的状态存入的变量置1,不能到达置0。
参数:
位置变量名
全局位置点位(GP),局部位置点位(P)
运动类型
直线插补(MOVL),关节插补(MOVJ)
例如:有的点位通过关节插补的运动方式可以到达,直线插补的方式无法到达。通过插入是否可达判断指令来判断运行的目标点位通过直线插补、关节插补是否可以达到,防止机器人在运行过程中到达奇异点导致飞车
状态存入的变量
将点位能否到达的判定结果存入变量。“1”表示可以到达,“0”表示无法到达
示例:
NOP
POS_REACHABLE MOVL GP0001 GB0001
POS_REACHABLE MOVL GP0002 GB0002
MOVJ GP0001 V=10mm/s PL=0 ACC=1 DEC=1 0
MOVJ GP0002 V=10mm/s PL=0 ACC=1 DEC=1 0
END
示例说明:首先插入是否可达判断指令来判断目标点位GP0001、GP0002通过直线插补的方式能否到达,如果能到达的话变量GB001、GB0002置为1。
18.13 CLKSTART-计时开始
格式:CLKSTART【指令名】ID=1【计时序号】D001【计时存入的变量】。
功能:运行该指令开始计时,并将时间记录到局部或者全局DOUBLE变量。
参数:
序号
计时器的序号,可以同时使用32个计时器分别计时
存入变量
变量类型可以选择局部DOUBLE变量或者全局的GDOUBLE变量,记录的时间会存入到选择的变量
例如:选择的变量是GD001,在程序运行的时候GD001会存入计时的时间
示例:
NOP
MOVL GP0001 V=10mm/s PL=0 ACC=1 DEC=1 0
CLKSTART ID=1 GD001
MOVL GP0002 V=10mm/s PL=0 ACC=1 DEC=1 0
END
示例说明:程序在运行到第3行指令时计时1开始计时,第4行指令运行结束后计时器1计时结束,记录的时间存入到变量GD001。
18.14 CLKSTOP-计时停止
格式:CLKSTOP 【指令名】ID=1【停止计时的计时器序号】。
功能:停止对应序号的计时器计时,停止后已存入变量的值不会归零。
参数:
序号
停止计时器计时的序号,计时开始和计时停止的计时器序号需要对应。
示例:
NOP
CLKSTART ID=1 GD001
MOVL GP0001 V=10mm/s PL=0 ACC=1 DEC=1 0
MOVL GP0002 V=10mm/s PL=0 ACC=1 DEC=1 0
CLKSTOP ID=1
MOVL GP0003 V=10mm/s PL=0 ACC=1 DEC=1 0
END
示例说明:程序运行到第2行时计时器1开始计时,运行到第5行时计时器1计时停止计时,停止后已存入变量的时间不会清零,如果在同一程序计时器1重新开始计时,会从上次停止的数值开始计时(例如:上次计时停止时间是12.55ms,重新开始计时会从12.55ms开始计时)。
18.15 CLKRESET-计时复位
格式:格式:CLKSTOP 【指令名】ID=1【停止计时的计时器序号】。
功能:将对应序号的计时器清零。若没有使用该指令,下次运行CLKSTART指令会累积计时。
参数:
序号
计时器复位的序号,计时开始和计时复位的计时器序号需要对应。
示例:
NOP
CLKSTART ID=1 GD001
MOVL GP0001 V=10mm/s PL=0 ACC=1 DEC=1 0
MOVL GP0002 V=10mm/s PL=0 ACC=1 DEC=1 0
CLKSTOP ID=1
MOVL GP0003 V=10mm/s PL=0 ACC=1 DEC=1 0
CLKPESET ID=1
END
示例说明:程序在运行到第2行时计时器1开始计时,计时的值存入变量GD001,运行到第5行时计时器1停止计时,但是变量GD001的值不会清零,运行到第7行时,计时器1复位变量GD001的值清零。
18.16 READLINEAR-读取线速度
格式:READLINEAR【指令名】GI001【存入数值的变量】。
功能:机器人运行的时候实时读取机器人线速度,将读取到的速度存入到变量。
参数:
变量
选择的变量类型(INT、GINT,DOUBLE、GDOUBLE)
注意事项:插入读取线速度指令时会同时插入读取线速度停止,如果要删除读取线速度指令请将对应线速度停止指令删除,否则程序会报错。
示例:
NOP
MOVL GP0001 V=10mm/s PL=0 ACC=1 DEC=1 0
READLINEAR GI001
MOVL GP0002 V=10mm/s PL=0 ACC=1 DEC=1 0
ENDREADLINEAR
MOVL GP0003 V=10mm/s PL=0 ACC=1 DEC=1 0
END
示例说明:程序在运行到第2行时开始读取线速度,并将读取到的值存入到变量GI001(GI001的数值是实时变化的),在运行到第5行指令时,停止读取线速度(GI001的数值回到初始状态)。
18.17 CALL_LUASTRING-调用LUA语句
格式:CALL_LUASTRING【指令名】[$语句$]【输入的Lua】。
功能:通过调用Lua语句来实现相应的功能或操作。例如:变量的修改,全局、局部点位的获取。
参数:
语句
手填:输入正确的Lua语句可以直接单步或运行
例如:修改GI001=12
CALL_LUASTRING #nex.GI[1]=12#
变量:把Lua语句写到字符串(string)变量中,通过调用相应的字符串变量来实现其功能
例如:修改GI002=22
SET GS001=#nex.GI[2]=22#
CALL_LUASTRING GS001
示例:
NOP
SET GS005=#nex.GI[5]=12#
CALL_LUASTRING GS005
CALL_LUASTRING #nex.dout[1,1]#
END
示例说明:通过调用lua语句指令,输入正确的lua语句格式,修改GI005=12,IO板1数字输出端口1-1口置为高电平。
18.18 WAIT_POS-等待运动到点
格式:WAIT_POS【指令名】SPEED/POS【速度/位置】ACCURACY【精度】MINTIME【最小等待时间】MAXTIME【最大等待时间】。
功能:MOV指令执行结束并不代表伺服运行结束,仅为点位下发结束,此指令等待伺服电机运行精准到点,再执行下一个指令。
参数:
位置/速度
等到运动到点的参数
精度
判断是否到点的参考
例:数值为0.1,只要点位下发完成等待【设定的时间】开始判断是否到点
最小等待时间
不管有没有运动到指定点位,这个时间都要等待
最大等待时间
如果等待时间超过了此时间,机器人还没有运动到点的话,就会报错
注意事项:
此指令必须在运动指令后执行此指令才生效。
此指令只能仅支持前台程序,后台无运动指令自然也不需要使用。
此指令不支持提前执行
如果机器人在 最小等待时间和最大等待时间 之间,运动到点了,就会退出等待,执行下一条指令
示例:
NOP
MOVL P0001 V=10mm/s PL=0 ACC=1 DEC=1 0
MOVL P0002 V=10mm/s PL=0 ACC=1 DEC=1 0
MOVL P0003 V=10mm/s PL=0 ACC=1 DEC=1 0
WAIT_POS
TIMER T=2
END
示例说明:当第4行指令运行结束后,表示点位的运行结束,第5行指令运行结束表示伺服运行结束,伺服运动到点后开始执行延时指令。
19 变量类
19.1 SET-赋值
格式:SET【变量名】I001【选择的目标变量】3【赋值的数值】。
功能:给定义的整型、浮点型、布尔型和字符串变量赋值。
参数:引用变量的详细介绍可以在引用变量章节查看。
变量
点击更多可以选择需要的变量类型(整型,浮点型,布尔型和字符串型)
变量值
给上面的变量赋值,可以手填或者选择变量表示
示例:
NOP
SET I001=12
SET D001=12.21
SET GI012=100
SET GI[GI012]=999
END
示例说明:程序第1、2行是直接给选择的变量赋值,第4、5行是通过变量形式赋值,程序运行结束后I001=12,D001=12.21,GI100=999。
如果SET字符串类型时,字符串中有转义字符,如果想避免转义字符对字符串的影响,可在转义字符之前加"";字符串类中也有类似问题。
19.2 FORCESET-写入文件
格式:FORCESET【指令名】GI001【写入文件的变量名】。
功能:将缓存的数据存入硬盘。
在程序运行过程中,所有的计算、赋值操作均是对缓存中的数值进行更改的,并不会存入系统文件中。若要强制将内存中的全局数值变量写入文件中,则可以使用FORCESET指令。
参数:
变量名
点击更多选择要强制写入文件的变量名
示例:
NOP
GI001=10
FORCESET GI001
END
20 字符串类
20.1 STRING-SPELL-字符串追加
格式:STRING-SPELL【指令名】S001【目标变量】S002【目标变量追加的值】。
功能:在原有字符串变量或者新的字符变量中追加需要的字符,就构成了一个新的字符串变量。
参数:
变量
选择的变量类型和变量名称:STRING、GSTRING
变量值
给选择的目标变量通过常数或者绑定变量的形式赋值
示例:
NOP
SET S001=#@QWE123#
STRING_SPELL(S001+#!ASD234@#)
STRING_SPELL(GS001+#INEXBOT#)
END
示例说明:执行第3行指令会在原有变量S001的基础上追加字符!ASD234@,此时S001=@QWE123!ASD234@,执行第4行指令会在新字符变量GS001的基础上追加字符INEXBOT,此时GS001=INEXBOT。
20.2 STRING-SLICE-字符串索引截取
格式:STRING-SLICE【指令名】S001【索引目标变量】(I001,I001)【起始索引位置,结束索引位置】S002【查询数据的存放变量】。
功能:截取一个字符串变量中的其中一部分字符串,并把截取到部分字符串存到指定的变量。
参数:
变量
索引的目标变量
起始索引
变量,手填,开头三种方式定位起始索引位置
变量(INT,GINT):给变量赋值定位起始索引位置
手填:直接手填值
开头:默认的索引位置就是1
例如:目标变量S002=@QWEASD234,起始索引位置3,那就会从第3个字符W开始索引
结束索引
变量(INT,GINT):给变量赋值定位结束索引位置
手填:直接手填值
开头:默认的索引位置就是END,表示索引目标变量的最后一个字符
例如:目标变量S002=@QWEASD234,起始索引位置3,结束索引位置7,那就会从第3个字符W开始索引,从第七个字符D结束索引
数据存放变量
截取的数据存放的变量(STRING,GSTRING)
例如:目标变量S002=@QWEASD234,起始索引位置3,结束索引位置7,那就会从第3个字符W开始索引,从第七个字符D结束索引,将截取部分的字符WEAS存入到选择的变量
示例:
NOP
SET S010 = #!@INEXBOT123#
SET I001 = 2
SET I002 = 10
STRING-SLICE S010(I001,I002)S011
END
示例说明:索引的目标变量S010=!@INEXBOT123,索引起始位置I001=2,索引结束位置I002=10,截取部分存入变量S011,程序运行结束后S011=@INEXBOT。
20.3 STRING-SPLIT-字符串分隔符拆分
格式:STRING-SPLIT【指令名】S001【拆分的变量名】,【分隔符】S002【查询到的数据存放首个变量】I001【使用数据存放数,“0”表示不使用】。
功能:将字符串变量中的其中一个字符拆分,并把拆分的字符依次存放到指定变量中。
参数:
变量
拆分的字符串变量名(STRING,GSTRING)
分隔符
手填值和变量定义分隔符,通过分隔符可以把原有的一个字符串拆分成几个字符串
例如:GS010=@INEXBOT@TEST!123,分隔符为@,运行分隔符拆分指令,将原有的字符串拆分为两部分INEXBOT和TEST!23
数据存放的首个变量
分隔符拆分完成的字符存放的首位置
例如:GS010=@INEXBOT@TEST!123,分隔符为@,运行分隔符拆分指令,将原有的字符串拆分为两部分INEXBOT和TEST!23,这两部分字符串会根据选择的首位置依次存入,比如选择的首位置是GS005,那拆分后的字符串INEXBOT和TEST!23会依次存入变量GS005,GS006
数据存放数
记录拆分完成的字符串数量,可以选择不使用(选择不使用输入框置灰)和变量(INT,GINT)记录
例如:GS010=@INEXBOT@TEST!123,分隔符为@,运行分隔符拆分指令,将原有的字符串拆分为两部分INEXBOT和TEST!23,如果数据存放数选择变量GI001,指令执行完成GI001=2
注意事项:如果设置的分隔符在原有的字符变量中没有,那运行拆分指令后,拆分的字符还是和原来一样。
示例:
NOP
SET GS010 = #@INEXBOT@TEST!123#
STRING_SPLIT GS010 #@# GS015 GI001
END
示例说明:拆分的目标变量GS010=@INEXBOT@TEST!123,分隔符为@,执行拆分指令后GS015=INEXBOT,GS016=TEST!123,GI001=2。
20.4 STRING-LOCATE-字符串定位查询
格式:STRING_LOCATE【指令名】GS001【定位查询的变量】#T#【定义的索引符】GI001【数据存放的首个变量】GI005【数据存放数】。
功能:查询字符串变量里面的一种字符所在的位置,并把位置和数量存到指定变量。
参数:
变量
定位查询的字符串变量(STRING,GSTRING)
待索引变量
手填:直接手填要定位查询的字符
变量(STRING,GSTRING):给变量赋值的形式定位查询的字符
例如:定位查询的变量GS001=@INEXBOT@TEST,待索引变量是“T”
执行定位查询指令,会将“T”在字符串变量里面的位置存入到选择的变量
数据存放的首个变量
将查询到的数据存入到选择的变量(INT,GINT)
例如:定位查询的变量GS001=@INEXBOT@TEST,待索引变量是“T”
执行定位查询指令,会将“T”在字符串变量里面的位置存入到选择的变量,比如选择的首个变量是GI001,那GI001记录的是定位到的第一个字符“T”所在的位置,GI002记录的是第二个字符“T”所在的位置,以此顺序依次读取
数据存放数
记录定位完成的字符数量,可以选择不使用(选择不使用输入框置灰)和变量(INT,GINT)记录
例如:定位查询的变量GS001=@INEXBOT@TEST,待索引变量是“T”
执行定位查询指令,会把“T”在字符串变量里面定位到的个数存入到选择的变量,比如选择的变量是GI015,定位查询指令执行结束后,会将定位到的个数存入GI015
注意事项:
如果待索引变量在一个字符串里面是不连续的字符,在执行定位查询指令时,字符的位置和个数是无法读取出来的。
例如:定位查询的变量GS001=@INEXBOT@TEST,待索引变量是“I@T”这种参数设置就无法读取。
如果待索引变量在一个字符串里面是连续的字符,在执行定位查询指令时,读取出来的字符位置是第一个索引变量的位置,数据存放个数为1。
例如:定位查询的变量GS001=@INEXBOT@TEST,待索引变量是“BOT”这种参数设置。
示例:
NOP
SET S001 = #T#
SET GS010 = #@INEXBOT@TEST#
STRING_LOCATE GS010 S001 GI011 GI015
END
示例说明:待索引变量为S001,首先给字符串变量赋值S001=T,数据存放首个变量为GI011,数据存放数为GI015,程序运行结束后将查询到的数据记录到选择的变量。
20.5 STRING-LENGTH-字符串长度
格式:STRING_LENGTH【指令名】S001【待计算长度的变量】I001【数据存放数变量】。
功能:计算一个字符串变量的长度,并把计算的长度存到变量:
参数:
变量
计算字符串长度的变量(STRING,GSTRING)
例如:S001=BIANLIANG,执行字符串长度指令可以知道S001这个变量有多少个字符
数据存放的变量
将计算出来的字符串长度存放到变量(INT,GINT)
例如:S001=BIANLIANG,可以把S001这个变量的字符长度存入到变量
示例:
NOP
SET S001=BIANLIANG
STRING_LENGTH S001 I001
END
示例说明:计算变量S001的长度,将计算出来的字符串长度存入到变量I001。
20.6 STRING-TO-字符串转非字符串
格式:STRING_TO【指令名】S001【需要转译的字符串】I001【转译的目标变量】。
功能:字符串变量转换成非字符串变量。
参数:
字符串变量
需要转译的字符串(STRING,GSTRING)
非字符串变量
转译的目标变量(整型,浮点型,布尔型)
例如:需要转译的变量S005=123ZIFU35,转译的目标变量为GI001,运行指令后字符串变量转换成非字符串变量,GI001=123
注意事项:
字符串变量转换成非字符串变量时只会将字符串变量的数值部分转译到非字符串变量,在转译过程中会从字符串变量的第一个字符开始转译,直到检测到的字符是非数值的字符时转译结束,将检测到的数值部分的字符转译到非字符变量,如果检测到的第一个字符就是非数值的字符,那字符串无法转译成功。
例1:S005=123ZIFU35,在转译过程中只会将字符转译“123”成非字符串变量,因为3后面的字符是非数值字符,所以后面的字符部分都不转译。
例2:S005=ZI123FU35,在检测到第一个字符时就已经是非数值字符,所以无法从字符串转到非字符串。
示例:
NOP
SET S005 = #123ZIFU35#
STRING_TO S001 D001
END
示例说明:字符串变量S005 = 123ZIFU35,将字符串变量转非字符串变量,转译的目标变量为D001,程序运行结束后D001=123。
20.7 TO-STRING-非字符串转字符串
格式:TO_STRING【指令名】I001【需要转译的变量】S001【转译的目标变量】。
功能:非字符串变量转换成字符串变量。
参数:
非字符串变量
需要转译的变量,手填字符或者给变量赋值形式定义字符(整型,浮点型,布尔型)
字符串变量
转译的目标变量(STRING,GSTRING)
注意事项:
如果你需要转译的变量是浮点型变量,并且只需要转译小数点后N位,在参数设定界面非字符串变量行输入的格式为:$.ND001。
例如:转译变量D001=123.1122,转译小数点后三位,在参数设定界面非字符串变量行输入的格式为:$.3D001,转译的目标变量为S001,程序运行结束后S001=123.112。
同时将多个非字符串转译成一个字符串。
例如:同时将D001=12.23,D002=23.345,D003=34.5678非字符串转译成字符串S001,D001转译小数点后1位,D002转译小数点后2位,D003转译小数点后3位,在参数设定界面非字符串变量行输入的格式为:$.1D001$.2D002$.3D003,程序运行结束后S001=12.2 23.34 34.568。
示例:
NOP
SET GI001 = 123
TO_STRING GI001 S001
TO_STRING # TEST# S002
END
示例说明:程序运行结束后S001=123,S002=TEST。
21 坐标切换类
21.1 SWITCHTOOL-切换工具手
格式:SWITCHTOOL【指令名】(1)【切换的工具手编号】。
功能:切换对应工具手编号的参数(工具手参数,负载参数)。
参数:
变量类型
手填、变量形式(INT、GINT)范围[0,999] ,编号为0表示无工具手
注意事项:切换工具手后检查机器人点位工具和实际使用工具是否一致,否则导致程序运行出错。
示例:
NOP
SET GI001 = 5
SWITCHTOOL (GI001)
END
示例说明:在执行指令时示教器界面状态栏的工具手编号会切换到指令中设置的工具手编号5。
21.2 SWITCHUSER-切换用户坐标
格式:SWITCHUSER 【指令名】(1)【切换的用户坐标编号】。
功能:切换对应用户编号的参数。
参数:
变量类型
手填、变量形式(INT、GINT)范围[1,999]
注意事项:切换用户坐标后检查机器人点位用户和实际用户是否一致,否则会导致程序运行出错。
示例:
NOP
SET I010 = 2
SWITCHUSER (I010)
END
示例说明:在执行指令时示教器界面状态栏的用户编号会切换到指令中设置的用户编号2。
21.3 USERCOORD_TRANS-用户坐标转换
格式:USERCOORD_TRANS【指令名】1【用户坐标A的序号】2【用户坐标B的序号】3【用户坐标C的序号】。
功能:用户A与用户B叠加,计算出用户C。
例如:在传送带和相机结合使用的场景下,托盘是用户A,相机拍摄得出的工件坐标相对于托盘是用户B,最后计算出工件相对于机器人的用户C。
参数:
用户坐标C
用户A和用户B叠加计算出来的用户坐标C,将计算出来的参数存入选择的用户序号
用户坐标A
存入用户坐标A的序号
用户坐标B
存入用户坐标B的序号
示例:
NOP
USERCOORD_TRANS (1)(2)(3)
END
示例说明:用户坐标1和用户坐标2计算出用户坐标3。
21.4 SWITCHSYNC-切换外部轴
格式:SWITCHSYNC【指令名】1、2、3【外部轴组号1、外部轴组号2、外部轴组号3】。
功能:通过设置外部轴组号来切换外部轴类型。
参数:
外部轴组号
要切换到的外部轴的组号,范围[0,3]
例如:设置的外部轴组1是旋转单轴,外部轴组2是旋转双轴,如果在切换外部轴参数设置界面外部轴组号是2,运行指令外部轴会切换到旋转双轴
示例:在机器人配置界面,设置的外部轴组1是旋转单轴,外部轴组2是旋转双轴,外部轴组3是直线单轴。
NOP
TIMER T=1
SWITCHSYNC 1
MOVLEXT E0003 V = 50 mm/s PL = 0 ACC = 1 DEC = 1 SYNC = 1 0
MOVLEXT E0004 V = 50 mm/s PL = 0 ACC = 1 DEC = 1 SYNC = 1 0
END
示例说明:程序在运行第3行时切换到外部轴组1(旋转单轴),然后机器人在旋转单轴上面走直线轨迹。
22 网络通讯类
22.1 SENDMSG-发送数据
格式:SENDMSG【指令名】ID=1【工艺号序号】#DATA#【发送的数据】。
功能:向个网络设备发送字符串信息或者变量值。
参数:
ID
TCP通讯时连接的工艺号
发送字符
给连接的网络设备发送数据。可以发送字符串格式数据、发送变量值。
若要发送变量需要在目标变量前面加$符号,例如:SENDMSG ID = 1 #$D001#,如果选择的目标变量D001本身就有值,在执行发送字符数据指令时网络端收到的是变量值,如果目标变量D001本身没有值,在执行发送字符数据指令时网络端收到的数值是0
示例:
NOP
OPENMSG ID= 1
SET D001 = 12.23
SENDMSG ID = 1 #$D001#
CLOSEMSG ID = 1
END
示例说明:TCP通讯成功后,发送数据D001的变量值。
22.2 PARSEMSG-解析数据
格式:PARSEMSG【指令名】ID=1【工艺号序号】I001【数据存放的首变量】CLEARCACHE=0【是否清除缓存,“0”不清除,“1”清除】0【提取数据的数量“0”不记录,“1”记录】。
功能:该指令用来解析外部设备传来的一组数据,并将数据存入多个变量。
参数:
ID
TCP通讯时连接的工艺号
数据存放的首个变量
将查询到的数据存放在变量,存放的变量类型:整型、浮点型、字符串型
例如:TCP接收到多位数值A、B、C,设置的第一位变量名为GI001,则将A存入GI001,B存入GI002,C存入GI003
解析后清除缓存区
否:解析后不会清除缓存,在外部设备没有发送新的数据时解析所得到的数据一直为缓存中的值,外部设备重新发送数据后能解析到新的数据
是:解析后会清除缓存,在外部设备没有发送新的数据时解析得不到数据,外部设备重新发送数据后能解析到新的数据
例如:外部设备发送数据:@,12,23,34,!存入的首变量位GI001,则GI001=12,GI002=23,GI003=34
解析后清除缓存区:
否:将GI001赋值为10后再运行解析数据,在外部设备没有发送新数据时,仍会解析缓存中的数据12并赋值给GI001,最后显示GI001=12
是:将GI001赋值为10后再运行解析数据,在外部设备没有发送新数据时,缓存没有数据无法解析并给GI001赋值,最后显示GI001=10
数据存放数
记录发送数据的数量
变量:发送的数据数量存入到选择的变量,例如:TCP接收到3位数值,数据存放变量GI001,执行解析指令GI001=3
不使用:不记录发送的数据个数,选择不使用时,输入框置灰
示例:
NOP
OPENMSG ID= 1
PARSEMSG ID = 1 I001 CLEARCACHE = 0 GI001
CLOSEMSG ID = 1
END
示例说明:网络通讯成功后,运行解析指令,外部设备发送的数据存入首变量I001,按照发送个数依次顺延,数据个数存入变量GI001。
22.3 READCOMM-读取数据
格式:READCOMM【指令名】ID=1【工艺号序号】ETHERENT、MODBUS【通讯方式】P001【点位存放变量】I001【点位存放个数】。
功能:读取通过以太网或Modbus通讯发送点位,并将点位存入到变量。
参数:
工艺号
TCP通讯时连接的工艺号
通讯方式
以太网通讯、Modbus通讯
点位存放首个变量
将发送的点位存入到选则的位置变量(P、GP)
点位存放数
用变量(INT/GINT)记录发送的点位个数
注意事项:在选择不同的通讯方式发送点位时需要注意格式,否则点位数据无法写入到变量。
ETHERNET通讯:在发送点位时可以参考《inexbot读取指令ETHERENT点位通讯协议》。
Modbus通讯:点位的设置可以参考手册《网络通讯功能使用手册》通讯方式部分。
示例:
NOP
OPENMSG ID= 1
READCOMM ID = 1 ETHERENT TO GP001 IOO1
CLOSEMSG ID = 1
END
示例说明:根据《iNexBot读取指令ETHERENT点位通讯协议》发送点位,网络通讯成功后,读取点位指令,会将发送的点位数据保存到变量GP0001,点位个数存到变量I001。
22.4 OPENMSG-打开数据
格式:OPENMSG【指令名】ID = 1【工艺号序号】。
功能:打开网络通讯。
参数:
ID:TCP通讯时连接的工艺号,范围[1,9]
示例:
NOP
OPENMSG ID= 1
SENDMSG ID = 1 #TEST#
CLOSEMSG ID = 1
END
示例说明:执行打开数据指令,控制器与外部设备通讯成功后就可以收发数据。
22.5 CLOSEMSG-关闭数据
格式:CLOSEMSG【指令名】ID = 1【工艺号序号】。
功能:关闭网络通讯。
参数:
ID:TCP通讯关闭时的工艺号,范围[1,9]
示例:
NOP
OPENMSG ID= 1
SENDMSG ID = 1 #TEST#
CLOSEMSG ID = 1
END
示例说明:执行关闭数据指令,控制器与外部设备通讯断开。
22.6 PRINTMSG-输出信息
格式:PRINTMSG【指令名】0,1,2【类型消息,警告,报错】#输入内容#【输出的字符】。
功能:通过打印提示条的方式输出定义的信息内容。
参数:
类型
消息:执行指令时示教器界面打印白条提示
警告:执行指令时示教器界面打印黄条的警告提示
错误:执行指令时示教器界面打印红条的错误提示,且伺服下电
输出字符
打印提示条时示教器界面显示的内容,若要打印变量,则在变量前加入$,例如$GD001,输入变量在执行指令时,提示条打印的是变量的值
示例:
NOP
PRINTMSG 0 #这是一个消息#
PRINTMSG 1 #这是一个警告#
PRINTMSG 2 #这是一个报错#
END
示例说明:执行指令,示教器界面分别打印白色消息提示,黄色警告提示,红色报错提示。
22.7 MSG_CONN_ST-获取信息连接状态
格式:MSG_CONN_ST【指令名】1【工艺号序号】GB001【当前连接状态“0”未连接,“1”已连接】。
功能:获取网络设置里某个工艺号的连接状态。
参数:
工艺号
TCP通讯设置界面选择的工艺号
状态存入变量名
当前连接的工艺号的状态用变量(BOOL,GBOOL)表示
示例:
NOP
OPENMSG ID= 1
MSG_CONN_ST I GB001
CLOSEMSG ID = 1
END
示例说明:执行打开数据指令,控制器与外部设备通讯成功的话GB001=1,如果通讯失败的话GB001=0。
23 位置变量类
23.1 USERFRAME_SET-用户坐标修改
格式:USERFRAME_SET【指令名】MODE【读取、写入】ID=1【用户坐标编号】UX/UY/UZ/UA/UB/UC/自定义【用户坐标参数】I001【变量】。
功能:修改或者读取用户坐标系某一轴的数值。
参数:
方式
读取:读取用户坐标某一轴的值
写入:修改用户坐标某一轴的值
用户坐标编号
范围[1,999]
读取用户坐标参数的用户坐标编号
修改用户坐标参数的用户坐标编号
用户坐标参数
UX,UY,UZ,UA,UB,UC:读取用户坐标系某一轴的数值
自定义:在坐标轴前面打“√”表示选中,可以一次读取多个坐标轴的值,将读取到的值按照选择的变量顺延读取
例如:读取的首变量为I001,读取的坐标轴为UX,UY,UZ,执行此条指令会将数值依次读到I001,I002,I003
UX,UY,UZ,UA,UB,UC:修改用户坐标系某一轴的数值
变量
变量(INT,GINT,DOUBLE,GDOUBLE):用变量的形式将选择的坐标轴的数值读取出来
手填:直接手填数值修改坐标轴的数值
变量(INT,GINT,DOUBLE,GDOUBLE):变量赋值的形式修改坐标轴的数值
示例:
NOP
USERFRAME_SET MODE=1 ID=1 UX I002
USERFRAME_SET MODE=1 ID=1 UCUSTOM(UX,UY,UZ,UA) D001
USERFRAME_SET MODE=0 ID=1 UY -50
END
示例说明:执行第2行指令将用户坐标1的UX轴的数值通过变量I002读取,执行第3行指令,将用户坐标1的UX,UY,UZ,UA的值通过变量D001,D002,D003,D004读取,执行第4行指令将用户坐标1的UY轴修改成-50mm。
23.2 TOOLFRAME_SET-工具坐标修改
格式:TOOLFRAME_SET【指令名】MODE【读取、写入】ID=1【工具坐标编号】TX/TY/TZ/TA/TB/TC/自定义【工具坐标参数】I001【变量】。
功能:修改或者读取工具手某一轴的参数。
参数:
方式
读取:读取工具手某一轴的参数
写入:修改工具手某一轴的参数
工具坐标编号
范围[1,999]
读取工具坐标编号
修改工具坐标编号
工具坐标参数
TX,TY,TZ,TA,TB,TC:读取选择的工具手编号的某一轴数值
自定义:在坐标轴前面打“√”表示选中,可以一次读取多个坐标轴的值,将读取到的值按照选择的变量顺延读取
例如:读取的首变量为GI001,读取的坐标轴为TA,TB,TC,执行此条指令会将数值依次读到GI001,GI002,GI003
TX,TY,TZ,TA,TB,TC:修改选择的工具手编号的某一轴数值
变量
变量(INT,GINT,DOUBLE,GDOUBLE):用变量的形式将选择的坐标轴参数读取出来
手填:直接手填数值修改工具手某一坐标轴的参数
变量(INT,GINT,DOUBLE,GDOUBLE):变量赋值的形式修改坐标轴的参数
示例:
NOP
TOOLFRAME_SET MODE=1 ID=2 TY GI002
TOOLFRAME_SET MODE=1 ID=2 TCUSTOM(TA,TB,TC) GD001
TOOLFRAME_SET MODE=0 ID=2 TX 100
END
示例说明:执行第2行指令将工具手2的UY轴的数值通过变量GI002读取,执行第3行指令,将工具手2的UA,UB,UC的值通过变量GD001,GD002,GD003,读取,执行第4行指令将工具手2的X轴偏移参数修改成100mm。
23.3 READPOS-读取点位
格式:READPOS【指令名】D001【变量名】当前/P/GP/E/GE【位置变量名】RF/BF/TF/UF【位置变量坐标系】1/2/3/4/5/6【位置变量轴】。
功能:将位置变量的某个轴的值读入到浮点型变量。
参数:
变量名
将读取到的值存入变量(DOUBLE,GDOUBLE)
位置变量名
当前:读取的是机器人当前位置的坐标
P,GP,E,GE:将点位存入变量,读取时只需要选择想要读取的目标变量即可
位置变量坐标系
读取不同坐标系下的点位
关节坐标(RF),直角坐标(BF),工具坐标(TF),用户坐标(UF)
位置变量轴
机器人本体轴:读取机器人六个轴的点位,选择哪一个轴在执行指令时就会显示哪一个轴的点位
外部轴:最多可读取5个外部轴的点位(O1,O2,O3,O4,O5)
示例:
NOP
READPOS D001 P0001 RF JI
READPOS D002 CURPOS BF J2
READPOS GD001 GP0001 TF J3
READPOS GD002 GE0001 RF O1
END
示例说明:执行第2行指令把P0001关节坐标系下1轴的数值读到变量D001,执行第3行指令将机器人当前位置直角坐标系下2轴的数值读到变量D002,执行第4行指令将机器人GP0001点工具坐标系下3轴的数值读到变量GD001,执行第5行指令将外部轴GE0001点关节坐标系下O1轴的数值读到变量GD002。
23.4 POSADD-点位加
格式:POSADD【指令名】GP/P/GE/E【位置变量】RF/BF/TF/UF【位置变量坐标系】1/2/3/4/5/6【位置变量轴】手填/I/GI/D/GD【数值变量名】。
功能:在不同坐标系下给位置变量的某一个变量轴增加数值。
参数:
位置变量名
需要修改点位的位置变量(P,GP,E,GE)
位置变量坐标系
关节坐标(RF)
例如:GP0001关节坐标(1,2,3,4,5,6),将目标变量GP0001在关节坐标下2轴加10,执行点位加指令后GP0001在关节坐标下的点位(1,12,3,4,5,6)
直角坐标(BF)
例如:GP0001直角坐标(1.1,1.2,1.3,1.4,1.5,1.6),将目标变量GP0001在直角坐标下2轴加10,执行点位加指令后P0001在直角坐标下的点位(1.1,11.2,1.3,1.4,1.5,1.6)
工具坐标(TF)
例如:GE0001工具坐标(1,2,3,4,5,6,1.1,1.2,1.3,1.4,1.5),将目标变量GE0001在工具坐标下O1轴加5,执行点位加指令后GE0001在工具坐标下的点位(1,2,3,4,5,6,6.1,1.2,1.3,1.4,1.5)
用户坐标(UF)
例如:GP0100用户坐标(10,11,12,13,14,15),将目标变量GP0100在用户坐标下3轴加5,执行点位加指令后GP0100在用户坐标下的点位(10,11,17,13,14,15)
位置变量轴
选择需要修改的坐标轴,执行点位加指令会给选中的坐标轴加上填入的值
例如:想要给位置变量1轴加上10°,在位置位置变量轴选择1轴即可
数值变量名
手填:直接输入想要增加的数值
变量(INT,GINT,DOUBLE,GDOUBLE):给选择的变量赋值,然后会将该变量的值加上位置变量对应轴的值,再赋值给该位置变量。
例如:GP0001关节坐标(1,2,3,4,5,6)想要给GP0001的2轴加上15°执行点位加指令后GP0001关节坐标(1,17,3,4,5,6)
注意事项:修改目标点位时注意超限问题和目标位置不可达,坐标无法转换问题。
关节超限:例如机器人一轴的正限位是180°,目标点位一轴的坐标是150°,在设置参数是给变量轴一轴赋值50°,运行指令时就会出现关节超限问题
坐标无法转换问题:例如目标点位是关节点位,在设置参数时选择的变量坐标系是直角坐标系,给目标点位的位置变量轴赋值,执行点位加指令,点位在运算过程中可能会出现坐标无法转换问题。
示例:
NOP
SET I001=10
POSADD P0001 RF J1 I001
MOVJ P0001 VJ=10% PL=0 ACC=10 DEC=10 0
END
示例说明:目标位置P0001关节坐标一轴加上50。
23.5 POSSUB-点位减
格式:POSSUB【指令名】GP/P/GE/E【位置变量】RF/BF/TF/UF【位置变量坐标系】1/2/3/4/5/6【位置变量轴】手填/I/GI/D/GD【数值变量名】。
功能:在不同坐标系下给位置变量的某一个变量轴减少数值。
参数:
位置变量名
需要修改点位的位置变量(P,GP,E,GE)
位置变量坐标系
关节坐标(RF)
例如:GP0005关节坐标(1,2,3,4,5,6),将目标变量GP0005在关节坐标下2轴减10,执行点位减指令后GP0005在关节坐标下的点位(1,-8,3,4,5,6)
直角坐标(BF)
例如:GP0006直角坐标(1.1,1.2,1.3,1.4,1.5,1.6),将目标变量GP0006在直角坐标下2轴减10,执行点位减指令后GP0006在直角坐标下的点位(1.1,-8.8,1.3,1.4,1.5,1.6)
工具坐标(TF)
例如:GE0007工具坐标(1,2,3,4,5,6,10,11,12,13,14),将目标变量GE0001在工具坐标下O1轴减5,执行点位减指令后GE0007在工具坐标下的点位(1,2,3,4,5,6,5,11,12,13,14)
用户坐标(UF)
例如:GP0008用户坐标(10,11,12,13,14,15),将目标变量GP0008在用户坐标下3轴减5,执行点位减指令后GP0008在用户坐标下的点位(10,11,7,13,14,15)
位置变量轴
选择需要修改的坐标轴,执行点位减指令会给选中的坐标轴减少上填入的值
例如:想要给位置变量5轴减少5°,在位置位置变量轴选择5轴即可
数值变量名
手填:直接输入想要减少的数值
变量(INT,GINT,DOUBLE,GDOUBLE):给选择的变量赋值,会将位置变量对应轴的值减去该值,再赋值给该位置变量。
例如:GP0001关节坐标(1,2,3,4,5,6)想要给GP0001的3轴减少15°执行点位减指令后GP0001关节坐标(1,2,-12,4,5,6)
注意事项:修改目标点位时注意超限问题和目标位置不可达,坐标无法转换问题。
关节超限:例如机器人二轴的负限位是-50°,目标点位二轴的坐标是30°,在设置参数时给变量轴二轴赋值100°,运行指令时就会出现关节超限问题。
坐标无法转换问题:例如目标点位是关节点位,在设置参数时选择的变量坐标系是直角坐标系,给目标点位的位置变量轴赋值,执行点位减指令,点位在运算过程中可能会出现坐标无法转换问题。
示例:
NOP
POSSUB P0001 BF J2 10
MOVJ P0001 VJ=10% PL=0 ACC=10 DEC=10 0
END
示例说明:目标位置P0001直角坐标系二轴减少10。
23.6 POSSET-点位改
格式:POSSUB【指令名】GP/P/GE/E【位置变量】RF/BF/TF/UF【位置变量坐标系】1/2/3/4/5/6【位置变量轴】手填/I/GI/D/GD【数值变量名】。
功能:在不同坐标系下将位置变量的某一个变量轴直接修改点位坐标值。
参数:
位置变量名
需要修改点位的位置变量(P,GP,E,GE)
位置变量坐标系
关节坐标(RF)
例如:P0005关节坐标(1,2,3,4,5,6),将目标变量P0005在关节坐标下2轴改为10,执行点位改指令后P0005在关节坐标下的点位(1,10,3,4,5,6)
直角坐标(BF)
例如:P0006直角坐标(1.1,1.2,1.3,1.4,1.5,1.6),将目标变量P0006在直角坐标下2轴改为5,执行点位改指令后P0006在直角坐标下的点位(1.1,5,1.3,1.4,1.5,1.6)
工具坐标(TF)
例如:E0001工具坐标(1,2,3,4,5,6,10,11,12,13,14),将目标变量E0001在工具坐标下O1轴改为5,执行点位改指令后E0001在工具坐标下的点位(1,2,3,4,5,6,5,11,12,13,14)
用户坐标(UF)
例如:P0008用户坐标(10,11,12,13,14,15),将目标变量P0008在用户坐标下6轴改为5,执行点位改指令后P0008在用户坐标下的点位(10,11,7,13,14,5)
位置变量轴
选择需要修改的坐标轴,执行点位改指令会将选中的坐标轴的坐标改为设置的数值
例如:想要将位置变量5轴改为20°,在位置位置变量轴选择5轴即可
数值变量名
手填:直接输入想要修改的数值
变量(INT,GINT,DOUBLE,GDOUBLE):给选择的变量赋值,会将给变量赋的值直接赋值给该位置变量
例如:GP0001关节坐标(1,2,3,4,5,6)想要将GP0001的3轴改为15°执行点位改指令后GP0001关节坐标(1,2,15,4,5,6)
注意事项:修改目标点位时注意超限问题和目标位置不可达,坐标无法转换问题。
关节超限:例如机器人三轴的正限位是100°,在设置参数时给变量轴二轴赋值120°,运行指令时就会出现关节超限问题
坐标无法转换问题:例如目标点位是关节点位,在设置参数时选择的变量坐标系是直角坐标系,给目标点位的位置变量轴赋值,执行点位改指令,点位在运算过程中可能会出现坐标无法转换问题
示例:
NOP
POSSET GP0001 RF J5 10
MOVJ GP0001 VJ=10% PL=0 ACC=10 DEC=10 0
END
示例说明:目标位置P0001直角坐标五轴的坐标改为10。
23.7 COPYPOS-复制点位
格式:COPYPOS【指令名】当前/GP/P/GE/E【源位置变量】GP/P/GE/E【目标位置】。
功能:将一个位置变量的点位数据复制到另一个位置变量。
参数:
源位置变量
当前位置:将机器人当前位置赋值给另一个位置变量
位置变量(P,GP,E,GE):将选择的源位置变量的点位数据赋值当前选择的目标位置变量
目标位置变量
复制点位的目标变量
选择需要复制的坐标轴数据,在对应的坐标轴前面打“√”表示选中
示例:
NOP
COPYPOS GE0001 TO GE0002 1 2 3 4 O1 O2
MOVJEXT GE0002 VJ=10% PL=0 ACC=10 DEC=10 0
END
示例说明:将外部轴GE0001直角坐标下1、2、3、4、O1、O2坐标轴的点位数据复制到位置变量GE0002。
23.8 POSADDALL-点位全加
格式:POSADDALL【指令名】GP/P/GE/E【位置变量】RF BF TF UF【坐标系】 1 2 3 4 5 I001 0【每个坐标加的值】。
功能:在不同坐标系下给位置变量的若干个变量轴增加数值。
参数:
位置变量
需要修改点位的位置变量(P,GP,E,GE)
坐标系
关节坐标(RF)
例如:P0001(1 2 3 4 5 6 ),将P0001的1轴加10,2轴加10,6轴加5,执行点位全加指令后 P0001(11 12 3 4 5 11 )
直角坐标(BF)
例如:GP0001(1 2 3 1 1 1 ),将GP0001的X轴加10,Z轴加10,A轴加1,执行点位全加指令后 GP0001(11 2 13 2 1 1 )
工具坐标(TF)
例如:P0002(1 2 3 2 2 2 ),将P0002的TX轴加10,TY轴加10,TZ轴加10,A轴加1,执行点位全加指令后 P0002(11 12 13 3 1 1 )
用户坐标(UF)
例如:E0001(1 2 3 4 5 6 11 12 13 14 15 ),将E0001的UA轴加5,UB轴加5,UC轴加10,O1轴加10,O2轴加10,执行点位全加指令后 E0001当前点位(6 7 13 4 5 6 21 22 13 14 15 )
位置变量轴
在需要增加值的变量轴上填写数值
手填:直接输入想要增加的数值
变量(INT,GINT,DOUBLE,GDOUBLE):给选择的变量赋值,然后会将该变量的值加上位置变量对应轴的值,再赋值给该位置变量
注意事项:修改目标点位时注意超限问题和目标位置不可达,坐标无法转换问题。
示例:
NOP
SET I001=6
POSADDALL GP0001 RF 1 2 3 4 5 I001
MOVJ GP0001 VJ=10% PL=0 ACC=10 DEC=10 0
END
示例说明:位置变量GP0001在原来点位基础上在关节坐标下给1轴、2轴、3轴、4轴、5轴、6轴增加数值1、2、3、4、5、6。
23.9 POSSUBALL-点位全减
格式:POSSUBALL【指令名】GP/P/GE/E【位置变量】RF BF TF UF【坐标系】 1 2 3 4 5 6 0【每个坐标减的值】。
功能:在不同坐标系下给位置变量的若干个变量轴减少数值。
参数:
位置变量
需要修改点位的位置变量(P,GP,E,GE)
坐标系
关节坐标(RF)
例如:P0001(10 11 12 13 14 15),将P0001的4轴减5,5轴减5,6轴减5,执行点位全减指令后 P0001当前点位(10 11 12 8 9 10)
直角坐标(BF)
例如:GP0001(10 11 12 13 14 15),将GP0001的X轴减1,Z轴减1,A轴减1,执行点位全减指令后 GP0001(9 11 11 12 14 15)
工具坐标(TF)
例如:P0010(11 12 13 4 5 6),将P0002的TX轴减10,TY轴减10,TZ轴减10,执行点位全减指令后 P0010(1 2 3 4 5 6)
用户坐标(UF)
例如:E0001(1 2 3 4 5 6 11 12 13 14 15),将E0001的O1轴减5,O2轴减5,执行点位全减指令后 E0001当前点位(1 2 3 4 5 6 6 7 13 14 15)
位置变量轴
在需要减少值的变量轴上填写数值
手填:直接输入想要减少的数值
变量(INT,GINT,DOUBLE,GDOUBLE):给选择的变量赋值,会将位置变量对应轴的值减去该变量的值,最后将计算的点位赋值给位置变量
注意事项:修改目标点位时注意超限问题和目标位置不可达,坐标无法转换问题。
示例:
NOP
POSSUBALL GE0001 BF 0 0 0 0 0 0 0 10 11 0 0 0 0 0
MOVJ GP0001 VJ=10% PL=0 ACC=10 DEC=10 0
END
示例说明:位置变量GE0001在原点位基础上在直角坐标下给位置变量轴O1轴、O2轴减少数值10、11。
23.10 POSSETALL-点位全改
格式:POSSETALL【指令名】GP/P/GE/E【位置变量】RF BF TF UF【坐标系】 1 2 3 4 5 6 0【每个坐标修改的值】。
功能:在不同坐标系下将位置变量的若干个变量轴直接修改点位坐标值。
参数:
位置变量
需要修改点位的位置变量(P,GP,E,GE)
坐标系
关节坐标(RF)
例如:P0010(1 2 3 4 5 6),将P0010在关节坐标下1轴改为10,2轴改为11,3轴改为12,执行点位全改指令后P0010当前点位(10 11 12 4 5 6)
直角坐标(BF)
例如:P0100(1 2 3 4 5 6),将P0010在直角坐标下A轴改为1,B轴改为2,C轴改为3,执行点位全改指令后P0100当前点位1 2 3 1 2 3 )
工具坐标(TF)
例如:GE0001工具坐标(10 11 12 13 14 15 1 2 3),将GE0001在工具坐标下O1轴改为5,O3轴改为6,执行点位全改指令后E0001(10 11 12 13 14 15 5 2 6)
用户坐标(UF)
例如:GP0100用户坐标( 21 22 23 24 25 26),将GP0100在用户坐标下UC轴改为15,执行点位全改指令后GP0100( 21 22 23 24 25 15)
坐标轴
需要修改的变量轴上填写数值
手填:直接输入修改的数值
变量(INT,GINT,DOUBLE,GDOUBLE):给选择的变量赋值,执行点位改指令后将位置变量轴的值改为变量所赋值的值
注意事项:修改目标点位时注意超限问题和目标位置不可达,坐标无法转换问题。
示例:
NOP
POSSETALL GP0001 RF 12 13 14 15 16 17 0
MOVJ GP0001 VJ=10% PL=0 ACC=10 DEC=10 0
END
示例说明:将位置变量GP0001关节坐标1轴、2轴、3轴、4轴、5轴、6轴的坐标改为12、13、14、15、16、17。
23.11 TOFFSETON-轨迹偏移开始
格式:TOFFSETON【指令名】RF BF TF UF【坐标系】1 2 3 4 5 6 7 【偏移量】TOOL【工具手编号】USER【用户编号】。
功能:该指令能够对机器人的运行轨迹进行实时偏移。
参数:
坐标系
关节坐标(RF)、直角坐标(BF)、工具坐标(TF)、用户坐标(UF)
坐标轴
给需要偏移的坐标轴设置偏移量,机器人运行时的轨迹坐标为原有的坐标加上输入的偏移量
例如:轨迹在直角坐标系下需要偏移的坐标轴为X轴,设置的偏移量为20
在执行轨迹偏移指令到轨迹偏移结束之间的运动轨迹时每个点位的直角坐标X轴加20
手填:直接输入偏移量
变量(INT,GINT,DOUBLE,GDOUBLE):通过给变量赋值的形式设置偏移量
例如:选择的变量为I001,设置I001=10表示设置的偏移量是10
注意事项:作业文件的第一条指令不能使用偏移指令。
示例:
NOP
TIMER T=1
TOFFSETON RF 12 13 0 0 0 0 0
MOVL GP0001 V=10mm/s PL=0 ACC=10 DEC=10 0
MOVL GP0002 V=10mm/s PL=0 ACC=10 DEC=10 0
TOFFSETOFF
END
示例说明:执行第3行指令后,机器人从GP0001向GP0002运行的过程中关节坐标的一轴、二轴会在原有坐标的基础上加上偏移量12、13。
23.12 TOFFSETOFF-轨迹偏移结束
功能:轨迹偏移结束,此后的运动轨迹不再偏移。
23.13 READPOSMSG-读取点位信息
格式:READPOSMSG【指令名】 P/GP【读取的目标位置】 工具/用户/坐标/姿态/形态【读取的信息】 I/GI【读取信息存入的变量】。
功能:将目标位置的工具号、用户坐标号、坐标系、姿态角度/弧度、形态信息的值读入到一个整型变量。
参数:
变量名
读取的目标位置(P,GP)
信息
工具号:读取目标变量的工具手编号
用户坐标号:读取目标变量的用户坐标编号
坐标系[“0”关节坐标,“1”直角坐标,“2”工具坐标,“3”用户坐标]
姿态角度/弧度:读取目标位置姿态轴的姿态值
形态:读取目标点位的形态值
目标变量名
将读取到的信息存入到整型变量(INT,GINT)
例如:需要读取目标点位的工具手编号,在执行读取点位信息指令后会把工具手的编号存到选择的变量
示例:
NOP
MOVL GP0001 V=10mm/s PL=0 ACC=10 DEC=10 0
READPOSMSG GP0001 TCS I001
END
示例说明:读取目标位置GP0001的工具坐标编号,将读取出的编号存入变量I001。
23.14 POS_STRETCH-点位拉伸
格式:POS_STRETCH【指令名】直线/圆弧【拉伸类型】P/GP【起点位置】P/GP【终点位置】10【起点偏移】10【终点偏移】P/GP【输出起点位置】P/GP【输出终点位置】。
功能:通过设置起点和终点的偏移量来拉伸或者缩短轨迹的长度和圆弧的轨迹形状。
参数:
拉伸类型
曲线:设置起点和终点的偏移量改变圆弧轨迹形状
直线:设置起点和终点的偏移量改变直线轨迹的长度
起点
拉伸轨迹的起始点
圆弧中间点
圆弧轨迹的中间点
终点
拉伸轨迹的终点
起点偏移
设置偏移量,改变轨迹起始点的点位
终点偏移
设置偏移量,改变轨迹终点的点位
输出起点位置
将偏移后的起始点点位存入到选择的位置变量
输出终点位置
将偏移后的终点点位存入到选择的位置变量
示例:
NOP
MOVL GP0001 V=10mm/s PL=0 ACC=10 DEC=10 0
MOVL GP0002 V=10mm/s PL=0 ACC=10 DEC=10 0
POS_STRETCH LINE GP0001 GP0002 50 70 GP0004 GP0005
MOVL GP0003 V=10mm/s PL=0 ACC=10 DEC=10 0
MOVL GP0004 V=10mm/s PL=0 ACC=10 DEC=10 0
END
示例说明:GP0001-GP0002 为原始轨迹长度,在设置点位拉伸参数时,起点(GP0001)设值偏移参数50,并将计算后的偏移位置保存到变量(GP0004),终点(GP0002)设值偏移参数70,并将计算后的偏移位置保存到变量(GP0005),GP0004-GP0005就是拉伸后的轨迹长度。
23.15 SETPOSMSG-设置点位信息
格式:SETPOSMSG【指令名】P/GP/E/GE【位置变量】1【坐标系】1【姿态】2【形态】8【工具号】9【用户坐标号】。
功能:设置目标点位的坐标系、角度/弧度、形态、工具号、用户坐标号。
参数:
位置变量
需要设置点位信息的位置变量,可以选择P GP E GE变量类型
坐标系
设置目标位置的坐标系,范围[0,3]
“0”关节坐标,“1”直角坐标,“2”工具坐标,“3”用户坐标
角度/弧度
设置目标位置的姿态,“0”角度,“1”弧度
形态
设置目标位置的形态参数,范围[0,8]
工具号
设置目标位置的工具编号,范围[0,999]
“0”表示无工具手
用户坐标号
设置目标位置的用户编号,范围[0,999]
“0”表示无用户
示例:
NOP
SETPOSMSG GP0001 1 0 5 6 7
MOVL GP0001 V=10mm/s PL=0 ACC=10 DEC=10 0
END
示例说明:执行设置点位指令,位置变量GP0001的坐标系为直角坐标系,姿态值为角度,形态是5,工具编号是5,用户编号是7。
24 程序控制类
24.1 PTHREAD_START-开启线程
格式:PTHREAD_START【指令名】[$测试$]【开启的后台作业文件】GLOBAL,LOCAL【全局后台,局部后台】。
功能:开启全局后台或者局部后台任务。
参数:
类型
全局后台,局部后台
后台任务
当选择全局后台类型时,可以选择全局后台建立的作业文件
当选择局部后台类型时,可以选择局部后台建立的作业文件
示例:
NOP
TIMER T=1
PTHREAD_START[TEST]GLOBAL
MOVL P0001 V=10mm/s PL=0 ACC=10 DEC=10 0
END
示例说明:在前台开启全局后台作业文件TEST。
24.2 PTHREAD_END-退出线程
格式:PTHREAD_END【指令名】[$测试$]【退出运行的作业文件名】GLOBAL,LOCAL【全局后台,局部后台】。
功能:关闭已经开启的后台任务。
参数:
类型
全局后台,局部后台
后台任务
退出已经开启的局部或者全局后台的作业文件
注意事项:退出线程指令只可以退出在前台已经开启的作业文件。
例如:开启全局后台的作业任务是[TEST],那在退出线程时选择全局后台的作业任务是[TEST1],在执行退出线程指令时全局后台的作业任务是[TEST]无法退出运行。
示例:
NOP
TIMER T=1
PTHREAD_START[TEST]GLOBAL
MOVL P0001 V=10mm/s PL=0 ACC=10 DEC=10 0
PTHREAD_END[TEST]GLOBAL
END
示例说明:
程序运行到第1行时开启全局后台作业文件TEST,运行到第5行时退出全局后台作业文件TEST的运行。
24.3 PAUSERUN-暂停运行
格式:PAUSERUN【指令名】ALL,MAIN【暂停运行的类型】。
功能:暂停主程序和局部后台程序运行。
类型
全部:暂停开启的局部后台任务和主程序,开启的全局后台任务不会暂停
例如:全局后台任务开启,运行到暂停运行指令时,全局后台的任务依然正常运行,不会暂停
主程序:暂停运行的主程序,开启的后台任务不会暂停
局部后台:暂停开启的局部后台任务,运行的主程序不会暂停
程序
选择全部和主程序时,输入框置灰
当类型为局部后台,选择需要暂停运行的后台程序
示例:
NOP
TIMER T=1
PTHREAD_START[TEST]LOCAL
PTHREAD_START[TEST1]GLOBAL
MOVL P0001 V=10mm/s PL=0 ACC=10 DEC=10 0
PAUSERUN ALL
END
示例说明:程序运行到第3行,第4行时开启了局部和全局后台任务,运行到第6行暂停运行指令时,开启的局部后台任务和主程序暂停运行,全局后台任务正常运行。
24.4 CONTINUERUN-继续运行
格式:CONTINUERUN【指令名】MAIN、LOCAL【暂停运行的程序类型】。
功能:继续运行已暂停的主程序或者局部后台程序。
参数:
类型
主程序:继续运行暂停的主程序,已经被暂停的后台程序不会继续运行
局部后台:运行暂停的局部后台程序
程序
选择主程序时输入框置灰,选择局部后台时可以选择继续运行的后台程序
示例:
NOP
TIMER T=1
PTHREAD_START[TEST]LOCAL
MOVL P0001 V=10mm/s PL=0 ACC=10 DEC=10 0
PAUSERUN ALL
TIMER T=1
CONTINUERUN MAIN
MOVL P0002 V=10mm/s PL=0 ACC=10 DEC=10 0
END
示例说明:程序在运行时开启了局部后台程序,运行到第5行指令时,主程序和局部后台程序被暂停,运行到第7行指令时被暂停的主程序继续运行,局部后台程序依然暂停。

特别说明:如果继续运行指令选择的程序类型是局部后台,如果插入了暂停运行指令当程序运行到暂停运行指令时,此时伺服状态为暂停,然后点击示教器上的【启动】,执行继续运行指令,现在的执行逻辑是主程序和局部后台的程序都会继续运行。
24.5 STOPRUN-停止运行
功能:停止运行所有程序。
24.6 RESTARTRUN-重新运行
功能:重新运行已停止的程序。
24.7 WINDOW-弹窗指令
功能:弹出所填写的提示内容窗口,显示按钮数量为选项数量,将点击按钮(选项)的值保存到局部整型变量里面。
24.8 PTHREAD_STATE-线程状态
功能:插入线程指令可以查看当前所执行的线程程序的状态,停止等于1,暂停等于2,运行等于3。
参数说明:
类型:可以选择局部后台、全局后台或者主程序。
后台任务:后台任务名.
存入变量类型:例如选择的变量名是GI001,在开启线程后,GI001的值会随着状态发生变化。停止GI001=1,暂停GI001=2,运行GI001=3。
使用范例:PTHREAD_STATE[程序文件名] GINT GI001=0。
Q&A
安全与安装相关
Q: 机器人使用的环境要求是什么? A: 环境温度应在-10℃~50℃之间,避免阳光直射、潮湿、有腐蚀性气体、粉尘油污的场所,振动不得大于0.6G。
Q: 控制柜安装有哪些要求? A: 控制柜应安装在机器人动作范围之外(安全栏之外),距离墙壁至少500mm,垂直安装在阻燃物体表面,周围有足够散热空间。
Q: 线缆布线有哪些要求? A: 不同等级线缆分开布置,长距离并行走线时最少保持100mm间距,交叉时保持90°交叉。使用对称屏蔽电缆和双绞屏蔽电缆。
示教器操作相关
Q: 如何切换示教模式、运行模式和远程模式? A: 通过示教器右上角的模式选择钥匙旋转切换:左边为示教模式,中间为运行模式,右边为远程模式。
Q: Deadman键的作用是什么? A: 三段式按键,按到中间控制机器人上电,按到底控制机器人下电,松开按键控制机器人下电。
Q: 如何进行点动操作? A: 在示教模式下,按【伺服】键切换至就绪,按住【DEADMAN】按键,通过右侧物理按键(X+/X-、Y+/Y-、Z+/Z-等)控制机器人运动。
坐标系相关
Q: 有哪几种坐标系?如何切换? A: 四种坐标系:关节坐标系、直角坐标系、工具坐标系、用户坐标系。按【坐标】按键循环切换,或点击状态栏坐标系一栏选择。
Q: 关节坐标系、直角坐标系、工具坐标系、用户坐标系有什么区别? A: 关节坐标系控制各关节单独运动;直角坐标系沿基座XYZ轴平行运动;工具坐标系以工具尖端为原点;用户坐标系可在任意位置定义。
程序编写相关
Q: 如何新建程序? A: 进入【工程】界面,点击【新建】,输入程序名称(以字母或汉字开头),点击【确定】。
Q: 如何插入运动指令(MOVJ、MOVL等)? A: 在程序指令界面,选中指令行,点击【插入】,选择"运动控制类",选择对应指令(如MOVJ点到点),设置参数后确认。
Q: MOVJ和MOVL有什么区别? A: MOVJ(点到点)是关节插补,路径不唯一,速度快;MOVL(直线)是直线插补,轨迹为直线,路径确定。
工具标定相关
Q: 如何进行7点工具标定? A: 将工具末端对准固定参考点,在4个不同姿势下标定点(TC1-TC4),然后垂直对准标定TC5,在此基础上X负方向移动标定TC6,Y正方向移动标定TC7,最后点击【计算】。
Q: 用户坐标系如何标定? A: 将机器人移动到期望为用户坐标系原点的位置,点击"标定原点";向X轴正方向移动任意距离,点击"标定X轴";向Y轴正方向移动任意距离,点击"标定Y轴"。
变量相关
Q: 全局变量和局部变量有什么区别? A: 全局变量(GINT、GD001等)可在所有机器人所有程序中使用;局部变量(I001、D001等)仅能在定义该变量的程序中使用。
Q: 如何在程序中修改变量值? A: 使用SET指令,如SET GI001=10、SET GD001=5.5、SET GB001=1等。
运行模式相关
Q: 示教模式和运行模式的区别是什么? A: 示教模式用于编程、点动、参数设置;运行模式用于自动运行程序。
Q: 如何设置程序运行次数? A: 在运行模式下,点击左下角【运行次数】按键设置,默认为单次运行,可设置为循环运行。
Q: 什么是单步运行?如何使用? A: 单步运行是每次只执行一行指令。在示教模式下,选中指令行,按住【DEADMAN】按键,点击【单步】按键执行当前行。