分享

|分享| S7-200SMART常用指令(一)

 金玉满堂jjnla8 2020-03-31

计数器

计数器利用输入边沿累积脉冲个数,计数器又分为普通计数器和高速计数器S7-200 SMART CPU高速计数器专题(上篇)两大类。200SMART系列对于普通计数器分为加计数、减计数、加减计数三类计数指令,计数器的使用与定时器基本类似,主要有预置寄存器、当前值寄存器及状态位组成。其范围大小为C0-C255,存储空间和定时器一样均为一个字的存储空间且为INT的数据类型。加减计数器指令递增到最大数32767时,此时再接通输入端信号时,则会变为最小值-32768
计数器指令格式

计数器指令本身是对信号输入端的脉冲信号进行计数,所以无需再加上升沿指令

加计数时序图

CU为脉冲信号输入管脚,R为计数器复位管脚,当CU端产生一个脉冲信号时,计数器C0的当前值递增1,当当前值大于或等于PV值时,计数器的触点发生变化,当复位端信号为1 时,计数器的当前值会变为0 

减计数数序图

当LD信号接通时,计数器把PV端的预设值装载到计数器的当前值中,每次LD信号由0到1时,CTD减计数指令从当前计数值减1 。当计数器的当前值减至0 时,计数器的触点发生变化。并且计数器的值无法再继续向下减

加减计数时序图

加减计数集成了加计数和减计数的功能,当CU端信号由0变为1 时,计数当前值加1 ,当CD端信号由0变为1 时,计数当前值减1 ,当计数器的当前值大于或等于PV值时,计数器的触点发生变化;当复位端R为1 时,计数器的当前值会被清零
常用功能指令
(1)比较指令
比较指令可分为以下几种:字节比较指令、整数比较指令、双整数比较指令、实数比较指令、字符串比较指令
按照比较结果可分为=、≠、>、<、≥、≤
指令格式

(2)数据移动指令

数据移动指令在PLC中程序中有两个作用,赋值及把一个存储器中的值复制到另一个寄存器中。其指令根据数据类型的不同可分为字移动指令、双字移动指令、实数移动指令

块传送指令

(3)转换指令

转换指令是将一种数据类型转换成另一种数据类型进行存储,比如一个整数类型的数据和一个实数的数据类型进行算术运算,或有一个整数和双整数进行比较,由于两个数的数据类型不同不能直接进行运行或比较;需要转换成同种数据类型后才能进行运算或比较。下图只列出部分转换指令。左侧更多指令可在软件帮助文件中查看

注意:转换的数据超出了我们得到的结果,此时指令会报错(如下图报红色),并且转换结果会停留在上一次的结果数值;如下图所示16位的存储空间转换成8位存储空间的值要确保不能大于8位存储的最大范围

在指令中并没有字节转双整数的转换指令,只能先从字节转整数,再从整数转双整数;除此以外也可以建立子程序有字节直接转双整数;并可自行创建成库。如下图所示

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 及为负数时,应在每条指令下方添加特殊寄存器;如下图所示

在实际的运算中,如果前面运算的结果要参与后面的运算时,应采用“与”的方式编写而不能用“或”的方式;如下图所示,当运算结果超出指令指定数据类型的最大范围时,最后的运算结果会存储出错前的数值

未完待续

    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多