S7计数器的使用
网络上千篇一律全是转发和复制粘贴
能用IEC的尽量用IEC,S7的相当难用
的
一般用到计数器都是想实现对某一个输入进行计数,到达预设值之后,产生一个位输出,从而控制后面的程序。
但是西门子这个计数器的输出只要有输入,输出马上就变成1,所以常规理解的计数器功能无法实现。
想使用这个计数器实现上述功能需要在计数器后加入比较指令,当达到比较指令的IN2值,再判断输出。
计数器的输入
CU, 有上升沿计数器就加1
S,预设值,它变成1就把PV的数赋值给计数器
PV,配合S使用 16#格式
R,复位,计数器清零
CV,当前值,16#格式
CV,BCD当前值,BCD格式
简单说,就是CU上有上升沿,计数器当前值就加1,能加到999
你要是把PV写上数,比如是5,那S如果有个上升沿,那计数器就从5开始加,原来是从0开始加。
所以这个玩意其实可以写成这样,就能完成功能了。
第二CV是16#的,比较指令的输入是INT
如果在CV填mw100,这个值不在符号表里出现,不预先设定是word还是int,那么可以直接把mw100放到CMP I的输入端,但是如果预先设定了MW100是word那么就需要用MOVE指令转换一下,其实也不算转换,就是必须经过move指令,变成int,才能填到CMP的输入端。
就这样了