2 参数部分
2.2 命令索引
2.2.25 IF...THEN...ENDIF
2.2.25.1 摘要信息
依靠逻辑表达式的结果执行语句。
2.2.25.2 语句
自变量 类型 解释
Condition BOOL 逻辑表达式能包含布尔变量、布尔函数或布尔结果的逻辑操作。
2.2.25.3说明
分支语句IF是程序执行指令。它依靠第一语句块(THEN black)或第二的语句块(ELSE block)来执行。程序由语句后跟随的ENDIF延续。
语句块中的包含的语句数是没有限制的。几个IF语句可以互相嵌套。
关键字ELSE和第二语句块可以被省略。如果条件没有满足,程序继续直接立即运行到 ENDIF。
在任何IF中必须有ENDIF。
2.2.25.4 范例
没有第二语句块IF循环。.
IF A==17 THEN B=1
ENDIF
有第二语句块IF循环。
IF $IN[1] THEN
$OUT[17]=TRUE ELSE
$OUT[17]=FALSE ENDIF
长沙工控帮教育科技有限公司
81
2.2.26 IMPORT...IS...
2.2.26.1 摘要信息
从数据列表输入数据。
2.2.26.2 语句
自变量 类型 解释
Data_Type 数据必须是在外部数据列表中公告过的数据类型。
Import_Name 引入数据能被分配一个与外部数据列表中的数据名不 同的名字。
Data_Source 数据的来源看作被调入的数据在数据列表中的路径和 名字。
Data_Name 数据名与变量名分配在外部数据列表中的数据符合。
2.2.26.3 说明
IMPORT语句允许外部的数据列表影响访问“PUBLIC”的属性。IMPOR语句允许变量,
完整的排列或排列元素从外部的数据列表定义你自己的程序活数据列表。任何变量的调 入需要IMPORY语句承认。已经被调入的变量不能使用其它IMPORT语句分配。变量必 须从最初创建的数据列表中调入。
数据必须由外部数据列表公告的类型相同的数据调入。直到连线操作执行,系统才检查 正确的数据被选择。
数据能在你自己的数据列表或有外部数据列表的程序有不同的名字。数据列表的目录和 名字由路径指定。数据名与外部数据列表中的名字相应。
数据来源和数据名在两个周期内互相连接。在两个周期内没有空白。
长沙工控帮教育科技有限公司
82 2.2.26.4 范例
从数据列表DATA中调用整数变量VALUE的值。
IMPORT INT VALUE IS /DATA..VALUE 简化格式
IMPORT INT VALUE
在数据列表R1/POSITION中调用POS排列POS_EX。
IMPORT POS POS1[ ] IS /R1/POSITION..POS_EX
DEFDAT
长沙工控帮教育科技有限公司
83
2.2.27 INTERRUPTDECL...WHEN...DO
2.2.27.1 摘要信息
声明中断。.
2.2.27.2 语句
自变量 类型 解释
GLOBAL 关键字GLOBAL用于识别中断包括子程序以上级别
的被公告的中断。
如果中断在子程序中公告,那么在主程序调用时是经 过验证的。.
Prio INT 算术表达式指定先前的中断。先前的级别1到128可用,
但是系统自动优先分配40到80范围保留。.
Event BOOL 逻辑表达式定义中断的结果。下面是允许的:
布尔常量 布尔变量 信号名 比较
简单的逻辑操作:NOT,OR,AND或EXORT 不能用于:
◆结构部分
Subprogram 子程序的名字和参数(中断程序),它在中断出现时执 行。
如果程序被延伸到HAL语句,中断依然被检测和执行(包括运动指令)。在指令被执行后,程序 在HALT语句暂停一次。
中断声明是指令。它不是必须在声明部分定位。
在第一次公告时,中断被解除和失效。
运行时间变量可能不作为中断程序的参数被传送和在数据列表中区分变量公告。
长沙工控帮教育科技有限公司
84 同时最多公告32个中断。
2.2.27.3 说明
中断功能允许用户在程序执行的不同时发生事件使用程序语句来反映。这种事件可以是 紧急停止,错误信息和输入信号。中断可能的原因和系统对对中断声明的各自的定义的 反映。中断可以被分配优先权,事件和中断程序可以被调用。在相同的时间内可以调用 32个中断。声明可以在任何时候被另一个声明覆盖。
如果下面所有的四个条件都满足,定义中断触发一个反映::
1. 中断必须被触发(中断打开).
2. 中断必须被允许(中断使能).
3. 中断必须是最高级。
4. 有关的事件必须发生。事件发生由边沿触发。(边沿触发)
如果几个中断同时出现,最高级的中断首先执行,然后按优先级高低顺序执行。中 断直到声明级别后才发现。高级别的编程尽管中断被激活,中断仍不能识别。换句话说,
在子程序识别中断不能被主程序识别。为了识别主程序的中断和级别,它必须作为全球 的公告。
在事件被发现后,机器人存储当前的位置和调用中断程序。中断可以被本地子程序和外 部子程序使用。中断在结束时使用RENTURN和END语句是惯例。中断程序是在随后中 断出现的位置恢复(除了RESUME的情况)。
在一般程序中触发先前运行中止语句,不能在子程序中这样做。中断程序在命令等级上 运行,它是逐段的按次序执行。
程序变量$EM_STOP和$STOPMESS的中断在错误的情况下执行,比如INTERRUPT语句 不论机器人是否停止都执行 (忽视运动指令).。
任何被公告和激活的中断能在操作停止期间发现一次。在系统重新开始后,中断按时中 断执行的优先权的次序发现(如果有使能)。程序随后继续。
在调用中断程序时,参数正确地传送就像调用一般的子程序一样。
长沙工控帮教育科技有限公司
85 定义中断优先级5在变量$STOPMESS为真时调用子程序STOPSP。
INTERRUPT DECL 5 WHEN $STOPMESS DO STOPSP( )
定义中断优先级23在$IN[12]为真时调用子程序SP1使用参数20a和VALUE。
INTERRUPT DECL 23 WHEN $IN[12]==TRUE DO SP1(20,VALUE)
两个物体能被两个连接到输入6和7传感器检测且位于预先编程的路径上。机器人移动到 后面的这两个位置。
DEF PROG( )
;主程序
INTERRUPT DECL 10 WHEN $IN[6]==TRUE DO SP1( ) INTERRUPT DECL 20 WHEN $IN[7]==TRUE DO SP2( ) ...
LIN START_POINT INTERRUPT ON INTERRUPT ENABLE LIN END_POINT INTERRUPT OFF
;移动到参考点 LIN POINT1
LIN POINT2 ...
END DEF SP1( )
;本地中断程序1 POINT1=$POS_INT END
DEF SP2( )
; 本地中断程序2 POINT2=$POS_INT END
INTERRUPT,BRAKE,RESUME,TRIGGER
长沙工控帮教育科技有限公司
86
2.2.28 INTERRUPT
2.2.28.1 摘要信息
87 同时可以有16个中断被激活,在中断激活的情况下,需要特别注意
长沙工控帮教育科技有限公司
88 2.2.28.4 范例
声明中断优先级2被激活.
INTERRUPT ON 2 声明中断优先级5被取消.
INTERRUPT OFF 5 声明所有中断被激活 INTERRUPT ON 声明所有中断被取消.
INTERRUPT OFF
被激活的中断优先级3被使能 INTERRUPT ENABLE 3 被激活的中断优先级2被禁止 INTERRUPT DISABLE 2 所有被激活的中断被使能 INTERRUPT ENABLE 所有被激活的中断被禁止.
INTERRUPT DISABLE
通过硬件在粘贴应用期间执行非路径保持急停,你应该使用程序停止该粘贴应用程序而 且在使能后重新配置粘贴枪到轨迹(通过输入10)。
DEF PROG( )
;主程序 ...
INTERRUPT DECL 1 WHEN $STOPMESS DO STOPSP( ) ...
LIN POINT1 INTERRUPT ON INTERRUPT ENABLE LIN POINT2
INTERRUPT OFF ...
END
长沙工控帮教育科技有限公司
89
;中断程序 BRAKE F
;快速中止运动 ADHESIVE=FALSE
WAIT FOR $IN[10]
LIN $POS_RET
;在轨迹左面位置 ADHESIVE=TRUE
END
INTERRUPT DECL, BRAKE, RESUME, TRIGGER
长沙工控帮教育科技有限公司
90
Approximate_Positioning
Keyword 选项允许你使用近似定位。可能是:C_DIS(默认值)
91
变量 作用
$ORI_TYPE=#CONSTANT
在路径运动方向保持常量期间;编程的方向使用开 始点的方向而忽略目标点的方向。
$ORI_TYPE=#VAR
在路径运动期间方向不断从最初的方向变化到目地 的数据类型POS和EPOS指定的S和T总是可以被忽略。
为了总是保证同样的运动顺序,轴的坐标必须首先被明确定义。程序首先的运动指令必须 总是被PTP指令指定的S和T。
方向
你能由系统变量$ORI_TYPE选择常量或变量方向:
$ORI_TYPE=#VAR
在直线运动期间,方向变化一律由开始方向到目标方向。(默认设置).
$ORI_TYPE=#CONSTANT
在直线运动期间的方向为常量,由于程序使用结束点和起始点所以编程的方向被忽 视。
长沙工控帮教育科技有限公司
92
$CpVelRedMeld=100 在所有的方式中指示速度减小。
近似定位
机器人准确定位到辅助点是要耗费时间的,这是不必要的。因此你能定义过渡到下一个运动程序段 (PTP,LIN或CIRC)距离目标点的距离(所谓的近似定位)。 最大的近似距离是编程距离的一半。
近似定位的编程有两步:
使用系统变量$APO定义近似定位的范围:
--$APO.CDI
移动距离的标准(由C_DIS激活)::近似定位的轮廓从距离目标点的规定距离(单位[mm])处开始。
--$APO.CORI
方向距离(activatedbyC_ORI):当支配的角小于距离目标点规定的距离时,TCP离开单独的段轮廓。
--$APO.CVEL
速度标准(由C_VEL激活):当在$VEL.C 中定义的速度百分比$APO.CVEL 到达时,定义的近似定位轮 廓开始。
由目标位置和近似定位模式规划运动指令:
--LIN--LINorLIN—CIR近似定位
为了LIN—LIN近似定位,控制器计算抛物线路径。在LIN-CIRC近似定位的场合下,对称的近 似定位轮廓不能被计算出。近似定位路径由两段抛物线组成,也由彼此的切线和个别的块转变。
近似定位由被编程的关键字C_DIS,C_ORI或C_VEL 开始。
--LIN—PTP近似定位
提前处理的近似定位不能在LIN块中使机器人的轴旋转超过1800,而且位置S不变。近似定位的开 始点由变量$APO.CDIS,$APO.CORI和$APO.CVEL定义,中止点由变量$APO.CPTP定义。关键 字中的 C_DIS, C_ORI 和 C_VEL的一个在LIN指令中被编程。
长沙工控帮教育科技有限公司
93 为了近似定位,计算机预先运行必须是在被使能后。如果不是,信息“Approximation not possible”
将被显示。在LIN-PTP近似定位的场合中,提前的运行被限制为1。
注意:
近似定位的程序段之间不能出现停止提前运行的程序语句。(用CONTINUE补 救).
速度和加速度越大背离轨迹的动态偏差越大。 (跟踪误差).
变化加速度比变换速度的在路径轮廓效果小。
2.2.29.4 范例
目标坐标系的直线运动。
LIN !
直线运动的目标坐标系编程:激活近似定位.
LIN POINT1 C_DIS
在基本(笛卡儿)坐标系中指定目标位置。
LIN {X 12.3,Y 100.0,Z -505.3,A 9.2,B -50.5,C 20}
指定目标位置的两个值。旧的分配被保留的值保留。
LIN {Z 500,X 123.6}
借助于几何操作指定目标位置:由BASE坐标系定义的,在TOOL坐标系系统中X方向减少30.5 毫米,而且在Z方向增加20毫米到达位置1。
LIN POINT1:{X -30.5,Z 20}
LIN—PTP从第2点到第3点近似定位。近似定位在第2点前30mm开始。.
$APO.CDIS=30
$APO.CPTP=20 PTP POINT1 LIN POINT2 C_DIS PTP POINT3
LIN_REL,PTP,CIRC,CONTINUE
长沙工控帮教育科技有限公司
94
Target_Position POS E6POS
预先确定的变量$ROTSYS定义方向部分被编程的结果。
目标点的数据类型POS或E6POS的角度状况S和T总是被忽略。
Approxi mate_
Positio ning
Keyword
这个选项允许你使用近似定位。选项可能是:
95 用LIN运动控制刀具方向
变量 作用
$ORI_TYPE=#CONSTANT
在路径运动期间角度为常量;编程时的方向不理睬 目的点,而使用起始点的方向。
$ORI_TYPE=#VAR
在路径运动期间,方向从最初的方向变化为目的点
LIN_REL {X 100,Z -200}
LIN—LIN 近 似 定 位 从 1 点 到 2 点 , LIN—CIR 近 似 定 位 从 2 点 到 3 点 。 当 速 度 减 少 到 0.3m/s(30%of0.9m/s)时,近似定位从1点开始。近似定位轮廓在2点前20mm开始。
$VEL.CP=0.9
$APO.CVEL
=30
$APO.CDIS=
20
LIN POINT1 C_VEL
LIN_REL POINT2_REL C_DIS CIRC AUX_POINT,POINT3
LIN,PTP_REL,CIRC_REL,CONTINUE
长沙工控帮教育科技有限公司
96
2.2.31 LOOP...ENDLOOP
2.2.31.1 摘要信息
无穷循环的编程。
2.2.31.2 语句
2.2.31.3 说明
2.2.31.3 说明