3. 控制系统架构:PLC+伺服驱动器+编码器+剪切机构,信号流与数据交互逻辑
好,咱们直接切入正题。飞剪控制,说白了就是一套「大脑+肌肉+眼睛+剪刀」的配合。PLC是大脑,伺服驱动器是肌肉,编码器是眼睛,剪切机构就是那把剪刀。这四样东西怎么握手、怎么传话,决定了你的飞剪能不能剪得准、剪得快。
我调试过不下五十套飞剪系统,最怕的就是信号流没理清楚。信号流一乱,剪出来的料头能飞出去三米远。嗯,咱们今天就把这个逻辑彻底掰开揉碎。
3.1 硬件拓扑:谁跟谁连,怎么连?
先看一张我手绘的架构图,这是最经典的飞剪控制系统物理连接方式。
这张图你看懂了吗?我简单拆解一下:
- PLC 是整个系统的决策中心。它接收外部编码器的脉冲信号,计算出当前材料的速度和长度,然后给伺服驱动器发指令。
- 伺服驱动器 是执行层。它收到PLC的指令后,驱动伺服电机旋转,同时把电机编码器的实时位置反馈给PLC。
- 外部编码器 装在材料输送辊上,专门用来测量材料走过的实际长度。这个信号直接进PLC的高速计数口。
- 剪切机构 通过机械耦合(联轴器、齿轮箱或同步带)与伺服电机连接。电机转一圈,刀架完成一次剪切动作。
3.2 信号流:数据是怎么跑的?
信号流分两个方向:下行指令流 和 上行反馈流。咱们一条一条捋。
3.2.1 下行指令流(PLC → 伺服驱动器 → 电机)
- PLC 计算目标位置/速度:PLC 根据外部编码器累计的脉冲数,结合设定的剪切长度,计算出刀架应该到达的位置和速度。
- 指令下发:通过脉冲串(Pulse/Dir)或总线协议(EtherCAT、PROFINET)发送给伺服驱动器。
- 伺服驱动器执行:驱动器内部的位置环、速度环、电流环逐级运算,最终输出 PWM 驱动电机旋转。
这里有个关键点——指令的实时性。我曾经调试一条 120 米/分钟的产线,PLC 扫描周期是 2ms,但伺服驱动器的电流环周期是 62.5μs。你想想看,PLC 发一个指令,伺服驱动器内部已经跑了 32 个周期了。所以,总线通信的抖动时间必须控制在 100μs 以内,否则剪切精度会崩。
3.2.2 上行反馈流(编码器 → 伺服驱动器 → PLC)
- 电机编码器反馈:伺服电机屁股上的编码器(通常是 23 位或 17 位绝对值编码器)把实际位置实时回传给驱动器。驱动器内部闭环用这个数据。
- 驱动器上报:驱动器通过总线把实际位置、速度、转矩等状态周期性上报给 PLC。这个周期一般设为 1ms 或 2ms。
- 外部编码器反馈:材料辊上的编码器直接进 PLC 的高速计数模块。PLC 用这个数据做动态长度跟踪。
3.3 数据交互逻辑:PLC 内部怎么算?
好,咱们进 PLC 程序里看看。数据交互的核心是三个环节:采样 → 计算 → 输出。
3.3.1 采样环节
PLC 在每个扫描周期内做三件事:
- 读取外部编码器的高速计数器值(HSC)
- 通过总线读取伺服驱动器的实际位置(ActPos)
- 读取系统时钟(用于计算速度)
我习惯用中断方式读取编码器,而不是轮询。为什么?因为轮询会丢脉冲。有一次在调试一台飞剪时,PLC 扫描周期 5ms,材料速度 60m/min,一个扫描周期材料跑了 5mm。如果轮询丢一个周期,剪切误差直接 5mm。用中断,脉冲一来立刻处理,误差控制在 0.1mm 以内。
3.3.2 计算环节
核心算法就一个公式:
// 伪代码:飞剪同步位置计算
MaterialPos = HSC_Count * PulseToMM; // 材料实际位置(mm)
BladePos = ServoActPos * MotorToMM; // 刀架实际位置(mm)
SyncPos = MaterialPos - BladePos; // 同步误差
if (SyncPos >= TargetLength) {
// 触发剪切
TriggerShear();
// 重置材料位置计数器(或做偏移补偿)
HSC_Count = HSC_Count - (TargetLength / PulseToMM);
}
这个逻辑看着简单,但实际坑很多。比如:
- 脉冲当量换算:外部编码器一圈多少脉冲?材料辊直径多少?减速比多少?这些参数必须精确。我见过一个项目,工程师把辊径输错了 1mm,结果每剪 1 米就偏 3mm,剪 100 根料,最后一根偏了 300mm。
- 加减速补偿:材料在加速或减速时,实际位置和理论位置会有偏差。需要加入动态补偿算法。
3.3.3 输出环节
PLC 计算完成后,通过总线给伺服驱动器发指令。指令类型有两种:
| 指令类型 | 适用场景 | 特点 |
|---|---|---|
| 位置指令 | 定长剪切、启停式飞剪 | PLC 给出目标位置,伺服内部位置环闭环。精度高,但响应稍慢。 |
| 速度指令 + 电子凸轮 | 连续飞剪、追剪 | PLC 给出速度曲线,伺服做速度跟随。配合电子凸轮实现同步,动态性能好。 |
3.4 数据交互的时序要求
飞剪控制对时序极其敏感。我列一个典型的时间预算表:
| 环节 | 典型耗时 | 说明 |
|---|---|---|
| 外部编码器采样 | 10~50 μs | 硬件中断捕获,几乎无延迟 |
| PLC 内部计算 | 100~500 μs | 取决于程序复杂度,建议控制在 200μs 以内 |
| 总线通信(EtherCAT) | 100~200 μs | 从 PLC 发出到伺服收到,含抖动 |
| 伺服驱动器响应 | 200~500 μs | 位置环/速度环运算时间 |
| 总延迟 | 410~1250 μs | 从编码器采样到电机动作 |
你想想看,材料速度 100m/min,1ms 的延迟对应材料跑了 1.67mm。如果总延迟 1.2ms,剪切误差就是 2mm。对于要求 ±0.5mm 精度的产线,这完全不可接受。所以,必须优化每一个环节的延迟。
1. 外部编码器用硬件高速计数模块,别用软件计数。
2. PLC 程序里把飞剪算法放在中断任务或独立任务中,别放在主循环里。
3. 总线周期设为 1ms 或更短,EtherCAT 建议用 DC(分布式时钟)同步模式。
4. 伺服驱动器的速度环带宽调到 200Hz 以上,响应更快。
3.5 总结一下信号流与数据交互的核心要点
- 物理层:PLC ↔ 伺服驱动器(总线/脉冲),伺服驱动器 ↔ 电机(动力线+编码器反馈),外部编码器 ↔ PLC(高速计数)。
- 逻辑层:PLC 做位置同步计算,伺服驱动器做闭环执行,编码器提供实时反馈。
- 时序层:总延迟控制在 1ms 以内,总线抖动小于 100μs,伺服响应带宽足够高。
嗯,这套架构我用了十年,从早期的脉冲控制到现在的 EtherCAT 总线,核心逻辑没变过。你只要把信号流和数据交互理清楚,飞剪控制就成功了一半。剩下的,就是参数整定了——那是下一节的内容。
公众号:蓝海资料掘金营,微信deep3321