28. 计数器的扩展

  1. 计数器的扩展
    核心目的是解决一个实际问题:单个PLC计数器的最大计数值(通常为32,767)无法满足更大的计数需求时,如何通过多个计数器"接力"计数,从而实现超大范围的计数


(图片摘自《现代电气控制及PLC应用技术》(王永华))

一、扩展目标与基本原理

  • 目标 :统计输入点 I0.0的上升沿脉冲数量,当计数值达到 200,000 次时,驱动输出 Q0.0。
  • 限制:单个计数器最大只能计到 32,767,远小于 200,000。
  • 解决方案(扩展原理) :采用 计数器级联(串联) 的方式。将一个大任务分解为多级小任务,每一级计数器计满一个较小的数后,向下一级计数器发出一个计数脉冲,相当于完成了一次"进位"。最终的总计数值是 各级计数器设定值的乘积
    类比:就像我们用的机械式里程表(或十进制计数器),个位转10圈(计满10),十位进1;十位转10圈(计满100),百位进1。PLC计数器的扩展是同样的"进位"思想,但进制数可以自定义。

二、电路程序详解

程序使用了三个计数器(C20, C21, C22)进行两级扩展,来实现 1000 * 100 * 2 = 200,000 的计数。

1. 各计数器角色与设定
  • C20"个位"级计数器 。直接对输入信号 I0.0的每个上升沿进行计数。设定值(PV)为 1000
  • C21"十位"级计数器 。对 C20 的"进位"信号进行计数。设定值(PV)为 100。它计1次,代表 C20 已经计满了1000次。
  • C22"百位"级计数器 或最终触发级。对 C21 的"进位"信号进行计数。设定值(PV)为 2 。它计1次,代表 C21 已经计满了100次(即 I0.0脉冲已达 1000 * 100 = 100,000 次)。
2. 工作流程(计数过程)
  1. 第一级计数 :I0.0每来一个脉冲,C20 的当前值(CV)加1
  2. 第一次进位 :当 C20 从 999 加到 1000(计满)时,C20 的常开触点闭合一个扫描周期。
  • 这个闭合的触点作为进位脉冲 ,使 C21 的当前值(CV)加1。此时,总计脉冲数 = 1000 * 1 = 1000。
  1. 第二级计数与第二次进位 :C21 累计 C20 送来的进位脉冲。当 C21 计满100次(即收到第100个来自C20的进位脉冲)时,C21 的常开触点闭合
  • 这个闭合的触点作为进位脉冲,使 C22 的当前值(CV)加1。此时,总计脉冲数 = 1000 * 100 = 100,000。
  1. 最终触发:C22 累计 C21 送来的进位脉冲。当 C22 计满2次时,其常开触点闭合。
  • 这个触点驱动输出线圈 Q0.0 ,表示总脉冲数已达到 1000 * 100 * 2 = 200,000
3. 复位逻辑分析(关键设计)

特别强调复位逻辑的设计,这是保证扩展计数器能循环、准确工作的关键。

  • 公共复位 :I0.1作为外部复位按钮。当 I0.1接通时,它同时复位 C20, C21, C22,将所有计数器当前值清零,为下一次计数循环做准备。
  • 自动复位(自复位) :这是级联计数器的精妙之处。
    • C20的自复位 :当 C20 计到1000时,其触点除了触发C21计数外,同时也会在下一个扫描周期接通它自己的复位端(R) 。这意味着 C20 在完成"进位"任务后,立即将自己清零,重新从0开始对 I0.0计数。这保证了进位信号的准确性(每1000个脉冲发一个进位脉冲)。
    • C21的自复位:同理,当 C21 计到100时,其触点在触发C22计数的同时,也会在下一个周期复位自己,以便重新开始接收C20的下一个100次进位。
  • C22的复位 :由公共复位信号 I0.1负责。当达到目标200,000后,需要人工或外部逻辑复位,以开始新一轮计数。
    自复位的意义:防止计数器溢出,并确保每一级计数器始终在一个固定的、较小的循环(1000, 100, 2)内工作,使得级联关系清晰、可靠。如果不自复位,C20计到1000后会停止,无法继续计数,整个系统就停止了。

四、总结与公式

  • 扩展总容量 :级联扩展后的最大计数值 = 计数器1设定值 × 计数器2设定值 × ... × 计数器n设定值
    • 本例:1000 × 100 × 2 = 200,000
  • 优点:用多个小容量计数器实现了超大范围的计数,成本低,编程简单。
  • 注意要点
  1. 复位设计必须完善:必须包含公共复位和各级的自复位逻辑。
  2. 扫描周期的影响:进位和复位动作存在一个扫描周期的延迟,在要求极高速度的应用中需考虑。
  3. 设定值选择:各级设定值的乘积等于目标值,可以灵活分配。通常让最后一级的设定值较小,便于最终状态的判断和输出控制。
    通过这种级联扩展方法,理论上可以通过串联足够多的计数器,实现任意大的计数范围,完美突破了单个计数器的计数上限限制。
相关推荐
专注VB编程开发20年19 小时前
简易虚拟 PLC 服务器-流水线自动化,上位机程序维护升级,西门子PLC仿真
服务器·单片机·自动化·上位机·plc·流水线·工控
专注VB编程开发20年1 天前
MC508 PLC支持多线程网络通讯,多客户端连接,要注意不要同时读写(麦格米特PLC)
服务器·网络·windows·.net·plc·mc508·麦格米特
控电PLC3 天前
27. 脉冲宽度可控制电路
plc·plc基本电路编程
kyle~3 天前
PLC通信
c++·机器人·plc·通信·工业自动化
控电PLC4 天前
26. 瞬时接通、延时断开电路
plc·plc基本电路编程
Mya153592737878 天前
BX&Mya PM864AK01 3BSE018161R1 高性能冗余CPU模块
plc·控制器模块·现货库存·价格优惠·处理器模块·pm864ak01·3bse018161r1
控电PLC9 天前
24. LAD和STL编程形式的区别
plc·plc编程形式
Mya1535927378710 天前
BX&Mya REXROTH MHD095C-058-NG1-RN 同步伺服电机
plc·伺服电机·dcs·控制器模块·现货库存·价格优惠·mhd095c-058
柱子jason10 天前
使用IOT-Tree对接工业现场PLC并把采集数据记录到关系数据库中
数据库·物联网·plc·工业物联网·工业自动化·iot-tree·生产线配套