A.移动插补功能 移动插补功能是机器人语言特有的功能,详细再分为如下几种:
\' w$ Y( l7 h3 Q& \* R% n9 {- j: w* J9 e( \& q
(1)速度设定(JSPEED,SPEED);
# k$ M& X# [7 D) g& Y7 |$ V/ @# f/ Z' {# e
(2)轨迹插补(JMOVE,LMOVE,VMOVE,CMOVE,CMOVE3,ATRAN,ITRAN);
/ Z M0 U! Q0 ?; l* L' F% o" _ x9 _- o0 C0 ]: e) ^ h2 J
(3)动作定时(PAUSE,DELAY);
4 A6 n, |) ^4 t" R8 L& t9 Z$ X- H$ B8 r$ d9 K* I
(4)定位精度(COARSE,FINE);5 j8 A3 m$ ~8 L/ Q, U4 a
- x! |* v) `2 L, O (5)手爪控制(OPEN,CLOSE)。& N4 \) n; P+ D9 w- ^7 o9 G! [2 O. F) M
' a! K4 p! p- K# S! A3 M1 X- J
其中JMOVE是在关节坐标系上进行的直线插补指令,LMOVE是作业坐标系(通常是三维直角坐标系)上进行的直线插补指令。在AL语言中,通过with(限定)语句能对力控制和对轴进行的控制加以描述,这里则没有这种功能,因为这种功能用的太少了。% D( j( W$ L" z% o5 v! t+ c
7 p; i# W3 }; c: {3 Z$ P4 t/ {( ?8 F% G B.环境定义功能 与用于数控机床的NC语言一样,机器人语言中的主要运算是环境数据之间进行的运算,但是现有的机器人语言是以基本动作级的实时系统为中心的。所以有关环境定义功能及其运算功能还不充分,但在环境定义功能中,如下三点是重要的:
* \7 A3 Q, B6 T+ C$ F& }0 X1 H
! Y# d9 T$ H) l! s (1)通过示教功能来生成环境模型;! R. c+ m& @ G7 k \
* ]5 T" i1 B2 f5 [ (2)规划实时系统需要几何模型;
7 t& A9 m1 K4 O7 Y' M2 z
" C" x, ~: V% a; m0 n (3)生成环境模型的过程是一件很费时的工作,因此往往以不是实际需要等理由而用示教功能来代替。
' @3 V$ L3 u' w% Y0 F7 d) p
3 r& H" q Y: | 在机器人语言中、在标有名称的位置姿态数据和语言编辑功能的基础上,能组成直线或圆弧的动作指令,但仅仅根据这种指令还形成不了几何模型的点、线、面、立体等形状参数的递阶结构。( m$ ? P( B1 {* {" f
# a# Z# i2 ?: l. u% c
然而,在为了进行研究而开发的规划系统中,以及在应用于机器人系统的几何模型系统中,则力图赋于几何模型有很强的防碰撞功能和与各种环境示教相连结的功能。+ g: W$ k! m, b' H% J2 d1 f
: Z" N, T+ B9 h C.数据结构及其运算功能 在通用的数据结构中,一般有文字符号和矩阵(最多为二维矩阵)等形式。而在结构化的机器人语言中,采用更为通用的数据结构。例如吸收了PASCAL语言的自动记录,或者LISP语言的自动表格生成等优点。机器人语言本身专用的数据结构是坐标变换矩阵、三维向量,位置和姿态的点数据以及其它的点数据矩阵等。向量的运算包括加减运算(++,--),内积与外积(SPRD,VPRD)运算等。在采用AL语言的初级结构化的机器人语言中的坐标变换函数在工业上很少得到应用。7 @5 n D g. E9 A
2 p9 A1 E4 e" C& N3 X; C$ g D.程序控制功能 在逐步执行的通用程序语言中,设计有程序控制语言,以便选定后绕运行的分支或转入循环运行。最典型的例子是FORTRAN语言的GOTO语句和DO语句的组合;PASCAL语言的FOR语句,WHILE语句和REPEAT—UNTIL语句等。在可编程逻辑控制器(programmable logic controller)中,有梯形图和在此基础上编制的专用PLC语言。在机器人语言中动作顺序的描述是重要的,为了强调这种描述的可读性,因而应当力图采用类似于PASCAL语言所具有的结构化编程方式,但是目前实际上这种描述只具有BASIC语言那样简单的控制功能。7 b, n$ Z! x8 a2 e) ~/ a
2 }& [; q4 c- u3 d" I5 }4 H 在生产现场用的最多的命令级语言中,常用GOTO和计数控制语句,这些语句是一种汇编语句,因而很难读懂。% l& ?- H! [$ z$ H' A' c ~
; D. v( p9 t* B8 H/ z0 f
现有的机器人语言中有主程序和子程序,能对过程和子程序进行说明,但没有局部变量,所以机器人语言顶多和BASIC语言的水平一样,只能使用没有自变量或没有局部变量的子程序。( e' [4 g Q; `: T# T: f
6 G! H8 E3 o! z0 d/ I! v* p4 V; l0 I
E.数值运算功能 与通用程序语言相比,机器人语言的数值运算功能大致相当于BASIC语言的水平。但是它往往不包括那些使用频率很高的特殊功能和一些高级数学运算功能,例如对数和阶乘等运算功能。+ e& Y- H* g) m1 o# q V
8 e3 Y) K0 G+ H( R 机器人语言的数值运算功能大致有以下几种:3 w. t2 r2 `: E6 r+ o
$ X7 j6 m2 o8 K1 K0 h9 ]& X5 o" a# N
(1)四则运算功能 (+,-,*,/,DIV,MOD)' d; _7 P5 C) u# U. P
) n2 v0 n$ Z7 M& k" g' o
(2)关系运算功能 (=,<>,<=,<,>,>=)9 z/ `5 \! `" j' H& ^5 `% }
6 D# b/ ?# p1 F" v% W
(3)计数功能 ( INC,DEC)* @7 H5 T. u8 G7 @; m$ H" Z
# j) E7 A; R4 ]+ }+ C6 \6 l8 s/ ~
(4)位运算功能 (NOT,AND,OR,XOR,LSH,RSH)
. Z2 N3 T+ L) O+ D' {8 ^
8 ?0 m/ d" h" A$ {; }! W# } (5)三角函数运算功能 (SIN,COS,TAN,ATAN2)
8 v4 T: n, S' S e2 v5 n+ r" t
. g& \, Y1 W$ t: w+ F( @ 参与运算的数值一般为2位整数、4位整数,4位实数、8位实数,有时候会增加1位整数作为文字和符号位。, Z" U, @8 M( z* V
! G5 q, T, u! }; R, ~6 N
F.输入、输出和中断功能 在进行顺序控制的程序中,与外部传感器进行信息交互功能和中断功能是最为重要的功能,每一种机器人语言都在这方面下了不少功夫。$ p: _+ m# v& v$ J. f) L% X
' K; V" l$ L& I; @2 } 由于与周边装置的连接点比较多,因此机器人控制器都设有数字输入输出接口,这些接口具有能与16点乃至128点相连接的能力。一般采用GPIB或串行RS232C标准接口。虽然需要很强的中断功能,但由于实际使用的工业机器人都是进行按顺序重复的工作,所以中断功能只能做到向子程序的分流和复原,而且屏蔽中断的能力较低。此外,在机器人控制器内还设有定时器,定时器有1—4个接点。. g/ C4 V9 \- d7 v
* w; N# X( p9 d* @
G.文件管理功能 机器人语言所处理的文件有程序本身和与位置姿态有关的数据集,由于运行机器人语言的计算机那是安装在工厂内较为恶劣的工作环境中,为了可靠起见,所以只限于使用比较简单的文件。在许多机器人语言中,都具有从硬盘读出程序(LOAD)和往硬盘里写程序(SAVE)、对示教数据集(示教点群)进行编辑等功能。
# x7 d) E; H8 P7 a. k+ u) t- h8 ]# H: W
H.其它功能 其它功能有:4 T7 ^" Y* D! f+ X6 a5 t9 y1 D: v, k
) C% F6 h, | y. A
(1)进行工具变换、基本坐标设置和初始值的设置,- ]# ?( z# D4 {6 T
A5 T- v$ r, N (2)作业条件(例如焊接条件)的设置等。- |2 r% M2 r, V, A q0 i
( i; s* l& u7 s6 J1 ?# z# c* ~+ {, ? 这些功能都是很重要的,但是随着机器人语言的不同,这些功能的表现方法和构成方法均不同。 |