在上一章节中我们对梯形图数字指令进行了系统学习,(参见西门子PLC控制器技术之八:梯形图位指令http://www.jianshu.com/p/1b5406914676 ),知道了什么是位指令、常见的位逻辑、赋值/置位复位指令、SR和RS触发器、RLO的边沿检测等内容。
通过前面章节的学习,我们已经能够创建自己项目的硬件组态、找到现场设备的I/O点,对CPU属性等参数进行相关设置,编辑项目所需要的符号表以及理解了CPU运行原理机制,能够编写位指令程序,本章将和大家学习梯形图编程语言中另外一类重要指令——数字指令。
常见数据类型
常见数字指令数据类型比如INT(有符号16位整数)、DINT(有符号32位整数)、REAL(有符号32位浮点数)等。
数字指令的操作数就是这些常见的整数、浮点数等。
装载与传送指令
S7-300系列PLC具有2个累加器,ACCU1和ACCU2,累加器是一个32位的寄存器。
在执行装载指令L时,先将ACCU1中的旧内容移到ACCU2并清空ACCU1,然后再向ACCU1中写入准备装入的新值,如下图所示。执行传送指令T时,始终是取ACCU1中的值给到目标地址。
数据的装载与传送
在执行装载指令时,不管RLO状态如何,都会将数据以右对齐的方式装载到ACCU1中;同样,在执行传送指令时,数据也是以右对齐的方式传送给目标地址,如下图所示。
S5计数器
在S7-300PLC中,保留了S5时代的计数器。S5计数器可以分为加计数S_CU、减计数S_CD以及加减计数S_CUD,如下图所示。
在S5计数器中,CU端来一个上升沿,加计数一次;CD端来一个上升沿,减计数一次;S端为置位端,当S端为1时,将计数初始值PV端的值赋为计数初始值,注意PV端初始值的格式为C#N(N为数值);R端为复位端,当R端值为1时,计数器值复位为0。计数值保存在CV端的输出地址。
注意,S5计数器的计数范围为0~999,如果需要更大范围的计数,可以应用IEC的计数器。
S5定时器
除了S5计数器,S7-300PLC中还有S5定时器,S5定时器有五种,如下图所示。
定时器在CPU中有专门的预留存储区,为每个定时器功能预留一个16位的字。
定时器端子共性 :
启动:当“S”端上的RLO值发生跳变时,定时器启动
时间值:格式须为S5T#aH_bM_cS_dMS 或 S5T#aHbMcSdMS
可以定时的最大时间为9990秒。最小时间是10ms。
注意: 5种S5定时器中,上图中前四种都是S端上升沿启动定时器,最后一种S_OFFDT(断开延时)是S端下降沿启动定时器。
比较指令
常用比较指令形式有六种:
==(等于)、 <>(不等于)、 >=(大于等于)、<=(小于等于)、>(大于)、<(小于),下图为>=(大于等于)的一个例子。
其中,后面的I/D/R标识的是比较数的数据类型。
I:整数比较 D:双整数比较 R:浮点数比较
如果比较结果为“True”,则运算的RLO为“1”,否则为“0”
基本数学函数
常见的基本数学运算也是数字指令。比如加减乘除等运算。
与比较指令一样,同样要注意参与运算数据的数据类型。
以上就是本章专题的主要内容,思考以下几个问题,可以帮您巩固所学内容:
- 执行装载L指令时,两个累加器ACCU1和ACCU2是怎样协作的?
- S5计数器的计数范围是多大?
- S5定时器的最大定时时间是多少?