购买
下载掌阅APP,畅读海量书库
立即打开
畅读海量书库
扫码下载掌阅APP

3.1 LAD/FBD/STL基本指令

3.1.1 STEP 7位逻辑指令

针对S7-300/400 PLC的开关量控制,需要重点掌握STEP7的位逻辑指令。

STEP 7位逻辑指令可以分为位逻辑运算指令、定时器指令、计数器指令、位测试指令。

1.位逻辑运算指令

位逻辑运算指令是对“0”和“1”的布尔操作数进行扫描,经过相应的位逻辑运算,将逻辑运算结果“0”和“1”送到状态字的RLO位。

图3-1所示为AND与OR的电路图及LAD、STL与FBD的工作原理,与S7-200基本类似。

图3-2所示为XOR的工作原理,当两个信号中仅有一个满足时,输出信号状态才是“1”,其余全部为“0”。

其余置位和复位指令、上升沿与下降沿、取反等与S7-200等小型PLC相同,不再一一列出。

2.定时器指令

定时器可以提供等待时间控制,还可产生一定宽度的脉冲,也可以测量时间。它是一种由位和字组成的复合单元,定时器的触点由位表示,其定时时间值存储在字存储器中。STEP 7定时器可分为5种,见表3-1。

图3-1 AND与0R的工作原理

图3-2 XOR的工作原理

表3-1 S7定时器类型

这5种定时器的工作特点如图3-3所示,其中输入信号为I0.0,定时器触点信号接到输出Q4.0。

定时器字的0~9位包含二进制编码的时间值。此时间值指定多个单位。时间更新可按照由时间基准指定的间隔将时间值递减一个单位。递减会持续进行,直至时间值等于零为止。可以在累加器1的低字中以二进制、十六进制或二进制编码的十进制(BCD)格式装入时间值。

S7定时器可以用以下任一格式预装入时间值:

◆ W#16#wxyz,其中w=时间基准(即时间间隔或分辨率);此处xyz=以二进制编码的十进制格式表示的时间值。

◆ S5T#aH_bM_cS_dMS,其中H=小时,M=分钟,S=秒,MS=毫秒;a、b、c、d由用户定义。如自动选择时间基准,其值舍入为具有该时间基准的下一个较小的数字。

图3-3 定时器的工作特点

S7定时器可以输入的最大时间值是9990s或2H_46M_30S,具体如:

S5TIME#4S=4秒;

s5t#2h_15m=2小时15分钟;

S5T#1H_12M_18S=1小时12分钟18秒。

3.计数器指令

S7计数器用于对RLO正跳沿计数,计数器字中的0~11位包含二进制代码形式的计数值,当设置某个计数器时,计数值移至计数器字,计数值的范围为0~999,如图3-4所示。

图3-4 计数器的组成

可使用三种计数器指令在此范围内改变计数值:S_CUD为双向计数器;S_CD为降值计数器;S_CU为升值计数器。

3.1.2 STEP 7数据指令

对于复杂的开关量控制,尤其是点数多、过程复杂的项目来说,还必须了解STEP 7数据指令。如图3-5所示的万能转换开关,其位置多达12挡,如果纯粹用位来表示就会非常复杂,而采用数据变量就很简单,如MW=0~11就可以表示各挡位置。

STEP 7位数据指令可以分为装载与传送指令、比较指令、算术运算指令、数据逻辑运算指令、移位和循环指令、数据块指令。

1.数据格式

常见的数据包括:

(1)BCD码

单个的十进制数需要用4位二进制数进行编码。之所以需要4位二进制数表示是因为十进制的最大数9需要至少4位二进制数表示(1001)。为了用BCD码表示十进制数的0~9,使用与二进制数的相同表示方法。4位二进制数共有16可能组合,其中6种没有使用。这些组合称作伪4位二进制编码。

(2)整数

数据类型INT是整数(16位)。符号位(第15位)表示所处理的是正数还是负数(“0”=正数,“1”=负数)。整数的表示范围是-32768~+32767。整数占用存储器的一个字。用二进制表示,一个整数的负数用其正数的补码表示。所有的位取反加“1”可以得到正数的补码。

图3-5 万能转换开关

(3)实数

实数(也称浮点数)是用十进制数(例如0.339或-11.32)表示的正数或负数。为了表示10的乘方次数,可以用幂的形式表示实数。例如:1024可以表示为1.024E3。实数占用存储器的两个字,最高位是符号位。其余的位代表指数和尾数。实数的表示范围是:-3.402823×10 38 ~3.402823×10 38

图3-6所示为整数205和实数125.5的数据保存格式。

图3-6 整数与实数的数据保存格式

以16位为例,图3-7所示为PG编程器内的数据下载到PLC内的实际存储情况。

图3-7 PG编程器内的数据下载到PLC后的数据变化

2.数据装载与传送指令

图3-8所示为数据装载与传送指令的三种方式,需要注意的是在字或双字指令中,高位赋值给低字节,而低位赋值给高字节。

图3-8 数据装载与传送指令

3.数据比较指令

图3-9所示为比较指令,用于比较累加器2与累加器1中的数据大小,比较时应确保两个数的类型相同。数据类型可以是整数、实数和长整数等。

4.算术运算指令

图3-10所示为基本数学运算指令,除此之外还可以有高级数学运算指令,如浮点数运算和三角函数计算等。

图3-9 数据比较指令

图3-10 基本数学运算指令

5.数据类型转换指令

由于PLC运算中存在不同的数据类型,现在需要将它们进行类型转换(如图3-11所示)。对于该数据转换任务,可以采取图3-12所示的数据转换,即先将MW12中的整数转换为MD14的双整数(指令为I_DI),然后将MD14转换为实数(指令为DI_R)。

6.数据逻辑运算指令

S7除了位逻辑运算之外,还可以大量地进行字或双字的数据逻辑运算,图3-13所示为典型的字逻辑运算异或WXOR_W、或WOR_W、与WAND_W指令。

数据逻辑运算遵循每一位的位逻辑原理,具体演算过程如图3-14所示。

图3-11 数据转换任务

图3-12 数据转换LAD

图3-13 字逻辑运算LAD指令

图3-14 字逻辑运算演算过程

7.移位和循环移位指令

移位指令将累加器1低字中或这个累加器1中的内容左移或右移,移动的次数在累加器2中或直接在指令中以常数给出。如图3-15所示是将MW4进行左移2位,其演算过程如图3-16所示。

图3-15 左移

图3-16 演算过程 ZEhkPpOtIlzZml9/Fx2B178zoOJ3E1xX3P79fHGyFw+MBor5+z9NoYIG8CTnTBZO

点击中间区域
呼出菜单
上一章
目录
下一章
×