Counter
1> 概述
将计数器抽象为一个功能块或一个元器件,一个函数;
EN:计数器使能; CCoil计数器线圈; CValue计数器设定值;
CNumber:计数值; C_N0:计数器常开触点; C_NC计数器常闭触点;
2> 分类
2.1> [16位]-[递增]-[一般用]-[断电保持用]
2.2> [32位]-[递增/递减]-[一般用]-[断电保持用]
辅助继电器【M8200】系统用:0:T200是【递增计数】, 1:【递减计数】
3> 应用示例
3.1> 简单计数
3.1.1> 设计要求
X0按钮,按动10次,Y0输出,
X1按钮,按下,Y0复位;
3.1.2> 设计思路
Step1> 看到计数要求,必用计数器;
Step 2> 确定计数器【+1】条件, X0按下;
Step 3> 确定计数器【结束】条件, 数到10;
Step 4> Y0输出, 计数结束;
3.1.3> 设计实现
注意:
C0计数X000的上升沿,不是连续计数;
计数到后,在来有效信号,不会再加,必须复位;
写程序时复位程序,写前面,程序更清晰,
3.2> 重复计数
3.2.1> 设计要求
X000按下, Y000间隔1S后,产生一个脉宽1S的高电平脉冲,并重复3次;
3.2.2> 设计思路
整体规划:
使用2个定时器,T0计时间隔的1S, T1计时高电平1S;
使用1个计数器,数重复次数;
T0实现:
Step 1> 确定T0【+1】条件,M0==1 && Y0==0;
Step 2> 确定T0【结束】条件,T0==10;
T1实现:
Step 3> 确定T1【+1】条件, Y0==1;
Step 4> 确定T1【结束】条件, T1==10;
M0实现:
因为不设置M0标志,T0没有唯一的加一条件;
Step 5> 确定M0【变1】条件,X0==1 ;
Step 6> 确定M0【变0】条件, C0==3;
C0实现:
Step 7> 确定C0【+1】条件, T1结束;
Step 8> 确定C0 【结束】条件,C0==3;
Y0实现:
Step 8> 确定Y0【变1】条件, T0结束;
Step 9> 确定Y0【变0】条件, T1结束;
3.2.3> 设计实现
Do one thing at a time!