3. PLC扫描周期与CNC实时控制的时序关系

在CNC与PLC联动的系统中,PLC并不是“随时”响应输入和刷新输出的。它按固定节拍循环执行:读输入、执行程序、写输出、处理通信与系统任务,这个循环称为扫描周期。CNC侧则不同,插补、位置环、主轴控制往往运行在1ms甚至更短的实时任务中。两者节拍不一致,就产生了本节要讨论的核心问题:扫描机制、中断、实时任务、抖动来源,以及它们如何影响联动逻辑的正确性。

一、PLC扫描机制:输入映像与输出映像

典型PLC的一个扫描周期包含几个阶段:

  1. 输入采样:把所有物理输入点状态一次性读入“输入映像区”。
  2. 程序执行:按用户程序顺序逐条运算,读写的是映像区,而不是直接读写物理点。
  3. 输出刷新:把“输出映像区”的结果一次性写到物理输出模块。
  4. 系统任务:通信、诊断、中断检查等。

关键点在于:在一个扫描周期内,输入映像不会中途改变。假设扫描周期为8ms,某个CNC“到位”信号在第2ms到来,PLC要到下一个周期的输入采样阶段才能看到它,最坏情况下延迟接近一个完整扫描周期。这就是扫描机制带来的固有延迟。

因此,对于“CNC到位→PLC夹紧→CNC允许进给”这类联动,如果全部放在普通循环程序中,响应时间由扫描周期决定。若扫描周期为10ms,则联动延迟可能在10~20ms之间波动,对高速加工或安全相关动作可能不可接受。

二、中断与实时任务:打破扫描节拍

为弥补扫描延迟,PLC提供中断机制。常见类型包括:

  • 硬件中断:由特定输入点跳变触发,立即暂停主程序,执行中断程序。
  • 定时中断:按固定时间间隔触发,例如每1ms执行一次。
  • 通信中断:接收到CNC报文时触发。

中断程序执行时间应尽量短,通常只做置位、锁存、发标志等动作,把复杂逻辑留给主程序。若中断程序过长,会拉长扫描周期,反而加剧抖动。

CNC侧则通常采用实时任务调度:插补周期、位置环周期、PLC联动任务按优先级运行。高优先级任务可抢占低优先级任务。CNC与PLC之间通过总线或I/O信号交换数据,交换本身也有周期和延迟。

三、抖动来源:为什么响应时间不固定

“抖动”指同一动作的响应时间每次不完全相同。主要来源包括:

  • 扫描周期波动:程序分支、通信负载、诊断任务导致周期忽长忽短。
  • 中断嵌套与屏蔽:高优先级中断打断低优先级中断,或中断被短暂屏蔽。
  • CNC任务调度:插补任务繁忙时,联动任务被推迟。
  • 通信延迟:报文排队、总线仲裁、重传。
  • 输入滤波:为抗干扰设置的滤波时间,会额外增加延迟。

抖动比平均延迟更危险。若联动逻辑依赖“固定延迟”,抖动会导致时序错位,例如夹紧尚未完成就允许进给,或松开信号提前到达。

四、对联动逻辑的影响与处理原则

联动逻辑设计应遵循以下原则:

  • 安全相关动作走硬件或中断,不依赖普通扫描。
  • 用握手信号代替固定延时:CNC发“请求”,PLC回“完成”,而不是“等50ms”。
  • 状态机加超时监控:每个等待状态设置超时,超时报警而非死等。
  • 关键信号双通道或回读:输出后回读输入确认。
  • 评估最坏情况响应时间,而不是平均值。

下面用一张时序关系图说明扫描周期、中断、CNC实时任务与抖动对联动信号的影响。

PLC扫描周期 / 中断 / CNC实时任务 时序关系 t PLC 扫描周期 采样/执行/输出 采样/执行/输出 采样/执行/输出 采样/执行/输出(变长) 采样/执行/输出 中断 / 实时任务 INT INT INT CNC 实时任务 插补 / 位置环 / 联动任务(1ms 节拍,高优先级可抢占) 联动信号事件 CNC到位信号到达 PLC采样到该信号 中断触发夹紧输出 CNC收到允许进给 扫描延迟 中断响应 通信/任务延迟 抖动来源 扫描波动 / 中断嵌套 通信排队 / 输入滤波

五、工程示例:夹紧联动的最坏响应时间估算

假设某系统参数如下(示例假设值):PLC扫描周期标称8ms,最大12ms;CNC到位信号经硬件中断触发,中断响应时间0.5ms;中断程序置位夹紧输出,输出模块响应1ms;CNC侧联动任务周期2ms,通信延迟最大3ms。

则从“CNC到位”到“CNC收到允许进给”的最坏响应时间约为:

扫描延迟(最坏) 12ms
+ 中断响应        0.5ms
+ 输出模块响应    1ms
+ 通信延迟        3ms
+ CNC任务周期     2ms
= 最坏约 18.5ms

若工艺要求该联动必须在15ms内完成,则当前方案不满足,需要缩短扫描周期、提高中断优先级、减少通信环节,或改用硬件互锁。这个估算过程比“感觉很快”更有工程意义。

评估联动时序时,应使用最坏情况而非平均值。平均延迟10ms、抖动±8ms的系统,最坏可能达到18ms,安全裕量必须按最坏值计算。
不要把安全相关动作(如急停、超程保护)放在普通扫描程序中等待。应使用硬件安全回路或高优先级中断,并确保中断程序足够短,避免自身成为抖动源。

六、状态机中的时序处理建议

在状态机中,等待类状态应设置超时转移。例如“等待夹紧完成”状态,若在设定时间内未收到完成信号,应转入报警状态,而不是无限等待。超时时间应大于最坏响应时间并留有余量,例如最坏18.5ms时,超时设为50ms。

同时,握手信号应使用边沿或锁存方式,避免因扫描周期错过窄脉冲。若CNC发出的完成信号只保持一个CNC任务周期(如2ms),而PLC扫描周期为12ms,则可能漏采。此时应使用中断锁存或要求信号保持到被应答。

综上,PLC扫描周期与CNC实时任务的时序关系,本质是两个不同节拍系统之间的同步问题。理解扫描机制、善用中断、识别抖动来源、按最坏情况估算响应时间,并在状态机中设置超时与握手,才能让联动逻辑既快又稳。