ABB机器人编程方式
发布日期:2012-06-09 兰生客服中心 浏览:6580
四、编程方式
1、指令表IL
指令表(IL)由一系列指令组成。每条指令都由一个新行开始,包含一个操作符以及和操作符类型相关的一个或多个操作数,并用逗号分开。在指令前可以有标号,后接一个冒号。
注解必须在一行的最后,指令之间可以插入空行。
示例
标号 |
操作符 |
操作数 |
注释 |
LD |
17 |
||
ST |
lint |
(*comment*) | |
GE |
5 |
||
JMPC |
next |
||
LD |
idword |
||
EQ |
istruct.sdword |
||
STN |
test |
||
Nest: |
修饰符:
JMP、CAL、RET中带C:指令在预置表达式结果为TRUE时执行。
JMPC、CALC、RETC中带N:指令在预置表达式结果为FALSE时执行。
其它指令中带N:操作数取反(不是累加器)。
操作符 |
修饰符 |
意义 |
LD |
N |
使当前结果等于操作数 |
ST |
N |
在操作数位置保存当前结果 |
S |
如果当前位置为TRUE,置位布尔操作数为TRUE | |
R |
如果当前位置为TRUE,复位布尔操作数为FALSE | |
AND |
N,( |
位与 |
OR |
N,( |
位或 |
XOR |
( |
位异或 |
ADD |
( |
加 |
SUB |
( |
减 |
MUL |
( |
乘 |
DIV |
( |
除 |
GT |
( |
> |
EQ |
( |
= |
NE |
( |
<> |
LT |
( |
<= |
JMP |
( |
< |
CAL |
( |
跳转到标号 |
PET |
CN |
调用功能块 |
) |
CN |
评估括号操作 |
下表为IL中全部的操作符及可能的修饰符和相关的意义:
IL是一种面向行的语言。
标号 |
: |
操作符/功能 |
操作数(表) |
注释 |
跳转标号 |
分隔符 |
IL操作符或功能名 |
用于操作符的零个,一个或多个常数、变量,或用于功能的输入参数,由逗号分隔。 |
在(*…*)中的注释,可选 |
影响CR数据类型的操作符组 |
缩写 |
操作符示例 |
Create(建立) |
C |
LD |
Process(处理) |
P |
GT |
Leaveunchanged(保持不变) |
U |
ST:JMPC |
Settoundefined(设置为未定义的) |
CAL=功能块的无条件调用, |
操作符 |
操作符组 |
描述 | |
LD |
LDN |
C |
装入操作数(操作数的反值)到CR |
AND AND( |
ANDN ANDN( |
P |
操作数(操作数的反值)和CR的布尔AND(“与”运算) |
OR OR( |
ORN ORN( |
P |
操作数(操作数的反值)和CR的布尔OR(“或”运算) |
XOR XOR( |
XORN XORN( |
p |
操作数(操作数的反值)和CR的布尔XOR(“异或”运算) |
ST |
STN |
U |
将CR存到操作数 |
S |
U |
若CR=1,则将操作数设置为TRUE | |
R |
U |
若CR=1,则将操作数设置为FALSE | |
) |
U |
结束括号:对递延操作求值 |
带布尔操作数(BOOL类型)的操作符
用于类属数据类型(类型ANY)操作数的操作符
操作符 |
操作符组 |
描述 | |
LD |
C |
操作数装入CR | |
ST |
U |
将CR存储到操作数 | |
ADD |
ADD( |
P |
加操作数,结果存入CR |
SUB |
SUB( |
P |
从CR减去操作数,结果存入CR |
MUL |
MUL( |
P |
操作数乘以CR |
DIV |
DIV( |
P |
CR除以操作数 |
GT |
GT( |
P |
CR>操作数(大于) |
GE |
GE( |
P |
CR>=操作数(大于或等于) |
EQ |
EQ( |
P |
CR=操作数(等于) |
NE |
NE( |
P |
CR<>操作数(不等于) |
LE |
LE( |
P |
CR<=操作数(小于或等于) |
LT |
LT( |
P |
CR<操作数(小于) |
) |
U |
结束括号级 |
操作符 |
操作符组 |
||||
JMP |
-或U |
(无)/有条件跳转到一个跳转标号 | |||
JMPC |
JMPCN |
U | |||
CAL |
-或U |
(无)/有条件调用一个功能块 | |||
CALC |
CALCN |
U | |||
RET |
-或U |
(无)/有条件从一个功能或功能块返回 | |||
RETC |
RETCN |
U | |||
功能名 |
P |
功能调用 |
使用功能和功能块
A.调用一个功能
在IL语言中,调用一个功能只是简单地写入该功能名即可。随后的实际参数用逗号分隔。这种语法和带有几个操作数的操作符的语法相同。
功能的第一个参数是当前结果(CR)。因此必须正好在功能调用之前将该值装入CR中。用于功能调用的第一个操作数实际上是功能的第二个参数,并依次类推。
B.调用一个功能块
操作符CAL(或条件调用CALC和条件取反调用CALCN)可以激活一个功能块。
IEC61131-3描述IL语言中给一个FB传送参数的三种方法:
1).使用一个调用,它包括在括号内的实际输入和输出参数的一个列表
2).在调用FB前,装载和保存输入参数
3).用输入参数作为操作符“隐性地”调用
第三种方法只对标准FB有效,不适合用户定义的FB。
2、结构化文本ST
T语言的优点(与IL语言相比较):编程任务高度压缩化的表达格式,在语句块中清晰的程序结构,
控制命令流的强有力结构
这些优点亦带来其本身的缺陷:
由于它借助于编译程序自动地执行程序,因此用户不能直接影响其翻译成机器码。
高度抽象导致效率降低(通常,编译程序的时间更长且执行速度更慢)
ST语句
关键字 |
说明 |
示例 |
说明 |
:= |
赋值 |
d:=10 |
将右边的一个供计算的数值赋值给左边的标识符 |
调用FB |
FBName( Par1:=10, Par2:=20); |
调用另一个类型为FB的POU,包括其参数 | |
RETURN |
返回 |
RETURN |
脱离当前的POU和返回到调用POU |
IF |
选择 |
IFd ELSEIFd=eTHENf:=2; ELSEf:=3; END_IF |
通过布尔表达式选择替代值 |
CASE |
多重选择 |
CASEfOF 1:g:=11; 2:g:=12; ELSEg:=FunName(); END_CASE |
根据表达式”f”的值选择一个语句块 |
FOR |
跌代(1) |
FORh:=1TO10BY2DO F[h/2]:=h; END_FOR |
一个多循环语句块,带有起始和结束条件以及一个增量值 |
WHILE |
跌代(2) |
WHILEm>1DO N:=n/2; END_WHILE |
一个多循环语句块,具有在开始端的结束条件 |
REPEAT |
跌代(3) |
一个多循环语句块,具有在结束端的结束条件 | |
EXIT |
循环的结束 |
EXIT |
一个跌代语句的结束条件。 |
; |
空白语句 |
;; |
ST语言不包括跳转指令(GOTO)。
3、功能块图FBD
功能块图(FBD)语言起源于信号处理领域,对信号处理而言,整数与/或浮点数是很重要的。
使用图形化语言FBD或LD的POU表达式包括的部分与文本化语言相同。
1).POU的引导部分和结束部分
2).说明部分
3).代码部分
代码部分,分为若干个网络。网络有助于构造POU的控制流。
一个网络包括1).网络标号2).网络注释3).网络图形
4、梯形图LD
梯形图语言(LD)源自机电一体化的继电器系统的应用领域,它描述一个POU的网络自左至右的能量流。编程语言主要是设计用于处理布尔信号。
梯形图LD接点分类:
常开接点 |
常闭接点 |
上升沿接点 |
下降沿接点 |
梯形图LD线圈分类:
线圈 --()-- |
线圈的取反 --(/)-- |
置位(锁存)线圈 --(S)-- |
复位(解除锁存)线圈 --(R)-- |
保持(记忆)线圈 --(M)-- |
置位保持(记忆)线圈 --(SM)-- |
复位保持(记忆)线圈 --(RM)-- |
|
上升沿线圈 --(P)-- |
下降沿线圈 --(N)-- |
梯形图LD执行控制分类:
无条件返回 |
条件返回 |
无条件跳转 |
条件跳转 |
调用功能和功能块
上一篇:ABB机器人全部运算符及功能
下一篇:ABB机器人用户定义的数据类型
-
ABB机器人标准数据类型
一、标准数据类型 1、BOOLBOOL类型变量可取值TRUE和FALSE。保留8位内存空间。 2、整型数据类型所有的整型数据类型为: BYTE 字节 WORD 字 DWORD
2012-06-09 -
ABB机器人变量类型转换功能
二、变量类型转换功能 不能直接从“大类型”向“小类型”变量转换。(例如:从INT到BYTE,或从DINT到WORD)。要完成此功能,可以使用特殊功能块实现。作为一种规则,你可以用此功能将一种类型的变量转换成任何需要的类型变量。 句法:
2012-06-09 -
ABB机器人用户定义的数据类型
三、用户定义的数据类型 1、数组支持一维、二维和三维数组的成员数据类型。数组可在POU的声明部分和全局变量表中定义。 语法: lt;数组名>:ARRAY[..,..]OF ll1,ll2为数组维数的下限标识,ul1和ul2
2012-06-09 -
ABB机器人全部运算符及功能
五、CoDeSys中全部运算符及功能名 ST中操作符 IL中操作符 IL中的修饰符 意义 ‘ 字符串分界符(例如:’string1’) [..]
2012-06-25