计数器
计数器利用输入边沿累积脉冲个数,计数器又分为普通计数器和高速计数器S7-200 SMART CPU高速计数器专题(上篇)两大类。200SMART系列对于普通计数器分为加计数、减计数、加减计数三类计数指令,计数器的使用与定时器基本类似,主要有预置寄存器、当前值寄存器及状态位组成。其范围大小为C0-C255,存储空间和定时器一样均为一个字的存储空间且为INT的数据类型。加减计数器指令递增到最大数32767时,此时再接通输入端信号时,则会变为最小值-32768计数器指令格式 计数器指令本身是对信号输入端的脉冲信号进行计数,所以无需再加上升沿指令加计数时序图
CU为脉冲信号输入管脚,R为计数器复位管脚,当CU端产生一个脉冲信号时,计数器C0的当前值递增1,当当前值大于或等于PV值时,计数器的触点发生变化,当复位端信号为1 时,计数器的当前值会变为0减计数数序图
加减计数时序图
加减计数集成了加计数和减计数的功能,当CU端信号由0变为1 时,计数当前值加1 ,当CD端信号由0变为1 时,计数当前值减1 ,当计数器的当前值大于或等于PV值时,计数器的触点发生变化;当复位端R为1 时,计数器的当前值会被清零常用功能指令(1)比较指令比较指令可分为以下几种:字节比较指令、整数比较指令、双整数比较指令、实数比较指令、字符串比较指令按照比较结果可分为=、≠、>、<、≥、≤指令格式
(2)数据移动指令
块传送指令
(3)转换指令
BCD码转整数时需要注意的是,BCD码是用16进制的方式进行表示,所以在转换的过程中应该在BCD码前加“16#”如图所示,此指令一般配合时钟指令使用
ASCII 字符数组转换指令
(4)整数运算指令整数运算指令又称为数学(四则)运算指令,在实际应用使用比较广泛,如模拟量转换计算,脉冲长度计算等。四则运算指令除了加、减、乘、除以外还有递增指令和递减指令。根据数据类型的不一样每个指令又分为对整数、双整数、实数的运算;以及三角函数指令
加法指令
加法指令主要针对两个数据相加的结果放在OUT端,其IN端可以是常数也能用寄存器来表示;同时在使用的过程中也会用到一些特殊的存储器,如SM1.0 、SM1.1、SM1.2 这些特殊存储器ON的时间取决于运算指令执行的时间长短
SM1.0 在两个数相加后的结果为0时会为ON SM1.1 在两个数相加后的结果超过此指令指定数据类型的最大范围时会为ON SM1.2 在两个数相加后的结果为负数时会为ON 当多条指令参与运算时,需要判断具体哪条指令是否有产生溢出或为0 及为负数时,应在每条指令下方添加特殊寄存器;如下图所示
在实际的运算中,如果前面运算的结果要参与后面的运算时,应采用“与”的方式编写而不能用“或”的方式;如下图所示,当运算结果超出指令指定数据类型的最大范围时,最后的运算结果会存储出错前的数值
未完待续