25本工业机器人培训教材汇编 | 免费领取new~
3000多套主流PLC实例程序大全,免费领取中!
限时下载 | 安川、KUKA、ABB、FANUC全套资料
1、指令表IL
指令表(IL)由一系列指令组成。每条指令都由一个新行开始,包含一个操作符以及和操作符类型相关的一个或多个操作数,并用逗号分开。在指令前可以有标号,后接一个冒号。
注解必须在一行的最后,指令之间可以插入空行。
示例:
标号 | 操作符 | 操作数 | 注释 |
| LD | 17 |
|
| ST | lint | (*comment*) |
| GE | 5 |
|
| JMPC | next |
|
| LD | idword |
|
| EQ | istruct.sdword |
|
| STN | test |
| Nest: |
|
|
|
在IL语言中,可以使用下面的操作符和修饰符。
修饰符:
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
影响CR数据类型的操作符组 | 缩写 | 操作符示例 | Create(建立) | C | LD | Process(处理) | P | GT | Leaveunchanged(保持不变) | U | ST:JMPC | Settoundefined(设置为未定义的) |
| CAL=功能块的无条件调用,
|
操作符 | 操作符组 | 描述 | LD | LDN | C | 装入操作数(操作数的反值)到CR | ANDAND( | ANDNANDN( | P | 操作数(操作数的反值)和CR的布尔AND(“与”运算) | OROR( | ORNORN( | P | 操作数(操作数的反值)和CR的布尔OR(“或”运算) | XORXOR( | XORNXORN( | 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<ethenf:=1;< div="">ELSEIFd=eTHENf:=2;ELSEf:=3;END_IF</ethenf:=1;<> | 通过布尔表达式选择替代值 | CASE | 多重选择 | CASEfOF1:g:=11;2:g:=12;ELSEg:=FunName();END_CASE | 根据表达式”f”的值选择一个语句块 | FOR | 跌代(1) | FORh:=1TO10BY2DOF[h/2]:=h;END_FOR | 一个多循环语句块,带有起始和结束条件以及一个增量值 | WHILE | 跌代(2) | WHILEm>1DON:=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执行控制分类:
*往期热文推荐*
64个气动与液压动画,轻轻松松全学会!
一张图搞定伺服控制环!
PLC常见的6大应用,你知道几个?
机器人零点标定方法,不知道就不够专业了!
这家公司的工程师有多牛,看看他们的机器人你就跪了!
焊工不容易,这样的空间让蛇形机器人上吧!
看图涨知识 | 机械工作原理动图
为什么最好的机械臂是7个自由度,而不是6个?
进工业机器人相关项目工作群
请联系杨小颖▼
(微信:12672653972)
商务合作、咨询、加群请联系我:
长按添加关注,涨知识、看世界!
工业机器人领域找工作,点“阅读原文”! |