4. 包装机光电计数与批次累计

任务场景与计数对象

某饼干包装线在装盒机入口安装一只漫反射式光电传感器,检测每盒产品经过时产生的遮挡脉冲。PLC需要完成两件事:一是对脉冲做高速计数,得到实时产量;二是当累计数达到批次设定值(例如每批 1200 盒)时,输出一个换批信号,驱动换批指示灯并复位计数器,进入下一批。

本例的关键约束是:产品间距小、线速高,普通输入滤波可能漏计;同时换批信号必须"只发一次",避免计数器在设定值附近抖动导致重复换批。因此程序采用高速计数指令 + 边沿触发 + 自锁复位结构。

硬件接线与输入输出分配

信号地址类型说明
光电传感器I0.0DI(高速输入)产品遮挡时输出高电平,接入支持 HSC 的输入点
启动按钮I0.1DI常开,启动计数
停止/复位按钮I0.2DI常开,停止并清零
换批指示灯Q0.0DO达到批次数量时点亮
批次设定值VW100整数默认 1200,可由触摸屏修改
当前计数值VD200双字高速计数器当前值

注意:光电传感器必须接到 PLC 支持高速计数功能的输入点(如 S7-200 SMART 的 I0.0 对应 HSC0),普通输入点的扫描周期滤波会丢失窄脉冲。

高速计数器组态

以西门子 S7-200 SMART 为例,使用 HSC0 工作在模式 0(内部方向控制、单相计数)。组态要点:

  • 计数模式:单相计数,内部方向由控制位决定,本例固定为加计数。
  • 计数方向:加计数。
  • 复位方式:程序复位(由停止按钮触发)。
  • 初始值:0,预设值:由 VW100 换算后写入。
  • 计数倍率:1×,即每个脉冲计 1。

组态完成后,HSC0 的当前值存放在 HC0(双字),可直接读取。

梯形图程序实现

程序分为三段:启动/停止控制、高速计数读取与批次比较、换批输出与复位。

// 网络1:启动/停止控制
LD     I0.1          // 启动按钮
O      M0.0          // 运行自锁
AN     I0.2          // 停止按钮
=      M0.0          // 运行标志

// 网络2:高速计数器使能(HSC0 模式0)
LD     M0.0
=      SM37.0        // HSC0 使能位(依具体型号定义)

// 网络3:读取当前计数值
LD     SM0.0
MOVD   HC0, VD200    // 将 HSC0 当前值送入 VD200

// 网络4:批次比较,达到设定值置位换批标志
LD     M0.0
AD>=   VD200, VW100  // 当前值 >= 批次设定值
S      M0.1, 1       // 置位换批标志

// 网络5:换批输出
LD     M0.1
=      Q0.0          // 点亮换批指示灯

// 网络6:换批后复位计数器与标志
LD     M0.1
R      M0.1, 1       // 复位换批标志
MOVD   0, HC0        // 清零高速计数器
MOVD   0, VD200      // 清零显示值

说明:AD>= 为双字整数比较指令,比较 VD200 与 VW100 时需注意数据类型一致,实际编程中可将 VW100 扩展为双字或使用 ID>= 比较。网络6 在换批标志置位后的下一个扫描周期执行复位,保证换批信号只输出一个扫描周期,避免重复触发。

计数逻辑与换批时序

光电脉冲 → 高速计数 → 批次比较 → 换批输出 时序关系 t0 t 光电脉冲 计数值 1 2 3 4 5 6 7 8 9 10 … 设定值 1200 换批输出 单脉冲 计数到 1200 触发

图中可见:每个产品遮挡产生一个脉冲,计数器逐次累加;当计数值达到设定值 1200 时,换批输出只产生一个扫描周期的脉冲,随后计数器清零,重新开始下一批累计。这种"比较—置位—复位"结构保证了换批信号不重复。

调试与验证要点

  • 脉冲丢失检查:用示波器或 PLC 状态表观察 HC0 是否与产品实际数量一致。若偏少,检查传感器响应时间与输入滤波设置,必要时缩短输入滤波时间或提高传感器响应频率。
  • 换批信号抖动:若换批指示灯闪烁多次,说明复位逻辑未生效或比较条件在复位前被多次扫描。确认网络6 的复位指令在置位后的下一周期执行。
  • 批次设定值修改:运行中修改 VW100 时,若新值小于当前计数值,会立即触发换批,属于正常逻辑;若需避免,可在修改时先停止计数。
  • 断电保持:若要求断电后继续累计,需将 HC0 当前值定期写入保持寄存器(如 VD300),上电后重新装载。
高速计数器的当前值寄存器(HC0)是只读的,不能直接用 MOV 指令写入;清零必须通过 HSC 的复位位或重新初始化实现。不同品牌 PLC 的 HSC 编号与使能位不同,编程前务必查阅对应型号的系统手册。

常见问题排查

现象可能原因处理
计数偏少输入滤波过强、传感器响应慢缩短滤波时间,更换高频响应传感器
计数偏多产品边缘抖动产生双脉冲在传感器前加装遮光板或使用单稳延时
换批不输出比较数据类型不一致统一为双字比较,检查 VW100 扩展
换批重复输出复位逻辑缺失或顺序错误确保置位后下一周期复位并清零 HC0