这次我们来看一个专门讲解“非周期追剪”技术的视频内容。这个主题在自动化、机械控制领域非常关键,但相关的、深入浅出的中文讲解资源却不多见。所谓“非周期追剪”,简单说就是让切割或加工设备,去动态追踪一个速度不规律、非周期性运动的目标,并完成精准同步操作。这比传统的定长追剪或周期追剪要复杂得多,对控制系统的响应速度和算法精度要求极高。
如果你正在寻找能彻底搞懂非周期追剪原理、算法实现(比如电子凸轮、CAM表)以及如何在PLC或运动控制器里落地的方法,那么这篇文章就是为你准备的。我们将避开空洞的理论,直接切入核心:这种控制模式到底能不能在实际项目中稳定应用?它的硬件门槛(对控制器、伺服驱动的要求)高不高?从理解算法到编写程序,再到现场调试,整个流程的难点和坑点在哪里?本文将基于通用的工程实践,为你梳理出一套从理论到实战的验证路径。
1. 核心能力速览:非周期追剪技术要点
在深入细节前,我们先通过一个表格快速把握非周期追剪的核心技术轮廓。这能帮你快速判断它是否匹配你当前的项目需求。
| 能力项 | 说明与技术要求 |
|---|---|
| 控制核心 | 高性能运动控制器或支持高级运动控制功能的PLC(如倍福TwinCAT、西门子TIA Portal + S7-1500T、三菱、欧姆龙NJ/NX系列等)。普通逻辑PLC难以胜任。 |
| 核心算法 | 电子凸轮(Electronic CAM)是基础。非周期追剪的关键在于凸轮表(CAM Table)能根据主编码器(或虚拟主轴)的非周期位置信号,实时、动态地重新计算和规划从轴(剪刀轴)的运动轨迹。 |
| 同步方式 | 主从轴硬同步。主轴通常为送料轴(或跟随的材料位置信号),从轴为执行追剪动作的刀轴。需要高精度编码器反馈构成闭环。 |
| 关键性能指标 | 动态响应速度:控制器处理CAM表、重新规划轨迹的周期(通常需≤1ms)。 同步精度:最终剪切点的位置误差,通常要求达到±0.1mm甚至更高。 抗扰动能力:对材料打滑、速度突变等干扰的补偿能力。 |
| 编程实现 | 1.CAM表生成与链接:定义主轴与从轴的位置关系曲线。 2.飞锯/追剪功能块:调用控制器厂商提供的专用功能块(如MC_CamIn, MC_Phasing等)。 3.非周期触发逻辑:通过外部传感器(如色标、光电)或通讯,动态触发一个非周期的剪切事件。 |
| 调试与验证 | 强烈依赖控制器的在线跟踪(Trace)功能,实时监控主从轴位置、速度、误差曲线,是排查问题的关键。 |
| 适合场景 | 包装机(不规则袋长切割)、印刷机(定长裁切)、轮胎帘布裁断、纺织定长裁床等,处理长度不固定、触发信号非周期性的材料。 |
| 不适合场景 | 物料长度固定且触发严格的周期性场景(用普通定长追剪即可);对成本极度敏感、对精度要求不高的场合。 |
2. 适用场景与使用边界
非周期追剪技术并非“万能钥匙”,它的引入会显著增加系统复杂性和成本。明确其适用边界,是项目选型的第一步。
它最适合谁?
- 设备研发工程师:正在开发或升级高端裁切、包装、印刷设备,需要处理可变袋长、图案定位裁切等复杂工艺。
- 自动化工程师:面对现有设备改造,需要将人工或半自动裁切升级为全自动动态追剪。
- 运动控制学习者:希望深入理解电子凸轮、相位同步等高级运动控制概念,并通过一个典型应用巩固知识。
它能解决什么问题?
- 物料长度无规律:待切割的物料长度不是固定值,每次都可能变化,系统需要根据实时检测到的物料特征(如色标、印刷标记、图像识别结果)决定何时启动剪切。
- 提高材料利用率:在印刷、纺织等行业,可以根据图案或纹理进行精准裁切,减少浪费。
- 提升生产柔性:无需停机更换机械凸轮或调整大量参数,通过软件即可快速切换产品规格。
- 实现复杂同步:不仅同步速度,还要在非周期的触发点,让刀轴完成加速、同步、剪切、减速、返回的完整复合运动。
它的局限与挑战:
- 成本高:需要支持高速电子凸轮和精准位置环的控制器、高性能伺服驱动器与电机、高分辨率编码器,整体成本远高于普通控制系统。
- 调试复杂:参数整定(如同步区增益、前馈补偿)需要深厚经验,对调试工程师要求高。
- 对机械有要求:机械传动部件的刚性、反向间隙会直接影响最终精度,优秀的控制算法需要良好的机械平台支撑。
- 编程思维转变:从顺序逻辑控制转向以“位置-时间-相位”为核心的运动规划思维。
合规与安全边界:
- 安全第一:追剪设备属于危险区域,必须配备符合安全标准(如ISO 13849)的光栅、安全门锁、急停等硬件防护。控制逻辑中必须集成安全扭矩断开(STO)等功能。
- 工艺授权:核心的追剪算法和参数可能涉及设备制造商的工艺诀窍(Know-How),在集成或调试时需注意知识产权边界。
3. 环境准备与前置条件
在动手进行软件编程和调试之前,必须确保硬件和基础软件环境就绪。以下是一份通用的环境检查清单。
3.1 硬件平台准备
- 运动控制器/PLC:确认型号支持电子凸轮(CAM)功能和高速任务周期(通常≤1ms)。例如:
- 倍福(Beckhoff) TwinCAT 3 PLC + NC PTP 或 NC I 运动控制模块。
- 西门子(Siemens) S7-1500T/TF 系列工艺CPU。
- 三菱(Mitsubishi) iQ-R系列运动控制器。
- 欧姆龙(Omron) NJ/NX系列机器控制器。
- 伺服驱动系统:至少需要两套伺服系统,分别作为“主轴”(送料/跟随)和“从轴”(刀轴)。建议选择与控制同一品牌或兼容性认证的产品,以确保通讯性能(如EtherCAT, PROFINET IRT)。
- 反馈元件:
- 主轴位置反馈:高精度编码器(如绝对值编码器),直接安装在送料辊或通过同步带连接,用于实时获取物料实际位置。这是系统的“眼睛”。
- 从轴位置反馈:伺服电机自带编码器,构成全闭环。
- 触发传感器:用于检测非周期剪切点的传感器,如色标传感器、光电传感器、视觉系统。其信号需能高速、稳定地输入到控制器(通过高速输入模块或EtherCAT IO)。
- 上位机/编程电脑:安装控制器对应的完整编程软件(如TwinCAT 3 XAE, TIA Portal, Sysmac Studio)。
3.2 软件与知识准备
- 编程软件:安装并完成基本授权。
- 运动控制基础:理解点位运动、速度运动、电子齿轮、电子凸轮的基本概念。
- 控制器手册:准备好所用控制器的运动控制功能手册和编程手册,随时查阅CAM相关功能块的使用方法。
4. 安装部署与启动方式
这里没有传统的“一键安装包”,非周期追剪的实现本质是在运动控制平台上进行项目开发。我们将以倍福TwinCAT 3为例,描述一个典型的项目创建和运动配置流程。其他品牌控制器逻辑类似,但操作界面和功能块名称不同。
4.1 项目创建与硬件组态
- 打开TwinCAT 3 XAE开发环境。
- 创建一个新的TwinCAT项目。
- 在“Solution Explorer”中,通过“I/O -> Devices”扫描并添加实际的EtherCAT主站和设备,包括你的伺服驱动器、IO模块和编码器输入模块。
- 正确配置每个伺服驱动器的PDO(过程数据对象)映射,确保控制字、状态字、目标位置、实际位置、速度、扭矩等关键变量能够周期性交换。
4.2 添加运动控制功能与轴配置
- 在“Solution Explorer”中,添加“NC(Motion Control)”功能。
- 在“NC -> Axes”下,为你的主轴和从轴创建对应的轴实例(例如
Axis_Master,Axis_Cutter)。 - 将每个轴实例链接到对应的伺服驱动器,并配置轴参数,如:
- 电机每转脉冲数。
- 机械齿轮比。
- 位置单位(如mm)。
- 软限位、速度、加速度、加加速度限制。
4.3 编写CAM表数据非周期追剪的核心是CAM表。你需要根据机械关系和剪切工艺,定义从轴位置相对于主轴位置的函数关系。
- 在TwinCAT中,可以通过“CAM Editor”工具图形化编辑,或直接定义数据数组。
- 一个简单的“追剪-返回”CAM表可能包含以下几个关键段:
- 同步区:从轴加速追上主轴,并保持位置同步(误差为0),这是剪切发生的区间。
- 剪切点:在同步区内的一个精确点。
- 返回区:剪切完成后,从轴减速并返回起始位置,准备下一次循环。
- 将编辑好的CAM表数据关联到一个
CAM或CAM Table变量。
4.4 编写主控制程序(结构化文本ST)在PLC的POUs(程序组织单元)中,使用功能块(FB)来组织逻辑。关键步骤如下:
// 1. 定义变量 VAR fbMC_Power: MC_Power; // 伺服使能 fbMC_Home: MC_Home; // 回零 fbMC_CamIn: MC_CamIn; // 电子凸轮耦合 fbMC_Phasing: MC_Phasing; // 相位偏移(用于非周期触发) fbMC_Stop: MC_Stop; // 停止 axMaster: AXIS_REF; // 主轴引用 axSlave: AXIS_REF; // 从轴引用 camTable: CAM_REF; // CAM表引用 bStartTracking: BOOL := FALSE; // 启动追剪触发 bTriggerSensor: BOOL; // 非周期触发传感器信号 fPhaseOffset: LREAL := 0.0; // 动态计算的相位偏移量 END_VAR // 2. 主程序逻辑 // 步骤A:伺服上电、回零(略) // 步骤B:主轴启动(通常以恒定速度或跟随外部速度运行) // 步骤C:非周期触发处理 IF bTriggerSensor AND NOT bStartTracking THEN // 当传感器检测到剪切点时,立即计算当前主轴位置与期望剪切点的偏移 // 这个偏移量 fPhaseOffset 是动态的、非周期的 fPhaseOffset := CalculateDynamicPhase(axMaster.ActPos); bStartTracking := TRUE; END_IF // 步骤D:启动凸轮耦合与相位补偿 IF bStartTracking THEN // 启动凸轮耦合,建立主从关系 fbMC_CamIn( Master:=axMaster, Slave:=axSlave, CamTable:=camTable, Execute:=TRUE, StartMode:=... // 通常为绝对耦合 ); // 关键:应用动态计算的相位偏移,实现“非周期”同步 fbMC_Phasing( Axis:=axSlave, Execute:=TRUE, Phase:=fPhaseOffset, // 动态偏移值在此注入 BufferMode:=... ); // 步骤E:在同步区内的剪切点,触发剪切动作(如控制气缸电磁阀) IF InSyncZone(axMaster.ActPos, axSlave.ActPos) THEN TriggerCut(); END_IF // 步骤F:剪切完成后,复位触发标志,准备下一次 IF CutActionComplete() THEN bStartTracking := FALSE; fbMC_CamIn.Execute := FALSE; // 断开凸轮 // 从轴返回原点... END_IF END_IF4.5 编译、下载与启动
- 激活配置(Activate Configuration)。
- 将项目编译并下载到控制器。
- 将TwinCAT运行时置于“运行(RUN)”模式。
- 通过在线监控变量和Trace功能,观察轴的状态和位置曲线。
5. 功能测试与效果验证
部署完成后,需要通过一系列测试来验证非周期追剪功能是否正常工作。测试应在空跑(不实际剪切)和低速下进行,确保安全。
5.1 基础同步测试
- 测试目的:验证CAM表定义的主从关系是否正确,在周期性触发下,从轴能否完美跟随主轴完成“加速-同步-减速-返回”的循环。
- 操作步骤:
- 屏蔽非周期触发信号,用一个固定的周期性脉冲(如每转一次)模拟触发。
- 启动主轴匀速运动。
- 在每次模拟触发时,启动
fbMC_CamIn和fbMC_Phasing(此时相位偏移固定为0或一个定值)。
- 预期结果:从轴应能稳定地、周期性地执行追剪动作。使用Trace功能观察
axSlave.ActPos与axMaster.ActPos的曲线,在同步区应几乎重合。 - 判断成功:位置误差曲线在同步区内保持接近于0,且每次循环重复性良好。
5.2 非周期触发测试
- 测试目的:核心测试,验证系统能否响应随机、非周期的触发信号,并动态调整同步点。
- 操作步骤:
- 恢复真实的非周期触发传感器(或用一个按钮手动随机触发)。
- 主轴运行。
- 随机按下触发按钮。
- 预期结果:每次触发,从轴都能立即启动,并精准地在当前触发点所对应的物料位置完成同步和(模拟)剪切动作,而不是在上一个固定周期点。
- 判断成功:观察每次触发后,从轴开始运动的“起始主轴位置”是变化的,且最终同步点与触发信号检测到的物料特征位置一致。关键指标是“触发到开始同步”的响应延迟,应尽可能短(如<10ms)。
5.3 动态性能与精度测试
- 测试目的:测试系统在不同速度、不同触发频率下的稳定性和剪切精度。
- 操作步骤:
- 逐步提高主轴运行速度。
- 在不同速度下,进行非周期触发测试。
- 使用高精度测量工具(如激光测距仪)或系统自带的高精度编码器反馈,测量实际剪切点与目标剪切点的位置偏差。
- 预期结果:在额定速度范围内,同步误差(
axSlave.ActPos - axMaster.ActPos)应稳定在允许的公差带内(如±0.1mm)。 - 判断成功:Trace显示的位置误差曲线平滑,没有剧烈抖动或发散。实测剪切精度满足工艺要求。
5.4 抗干扰测试
- 测试目的:模拟现场可能出现的干扰,如材料轻微打滑、速度微调。
- 操作步骤:
- 在同步过程中,手动轻微扰动主轴编码器信号(或在程序里模拟一个小的位置阶跃)。
- 观察从轴的反应。
- 预期结果:控制系统应能通过位置环PID和可能的前馈补偿,快速抑制这个扰动,使从轴重新跟上主轴,保持同步误差在可控范围内。
- 判断成功:扰动后,位置误差能快速收敛,不会导致同步失败或产生累积误差。
6. 接口API与批量任务
在非周期追剪系统中,通常不涉及对外提供REST API。但其“接口”体现在与上游系统的数据交互和任务队列处理上。
6.1 与上游系统的数据接口剪切长度、速度、加速度等工艺参数可能来自上游的MES、HMI或视觉系统。这通常通过以下方式实现:
- PLC变量映射:在控制器中定义相应的全局变量(如
CutLength,SpeedSetpoint),通过OPC UA、Modbus TCP、TCP/IP Socket等方式与上位机通讯。 - 配方管理:针对不同产品,将一组运动参数(CAM表ID、速度、相位偏置等)存储为配方,通过配方号进行切换。
6.2 “批量任务”的体现:连续非周期触发处理非周期追剪的本质就是处理一个连续的、非周期的“任务队列”。每个触发信号就是一个任务。系统需要可靠地处理任务队列,避免丢失或重叠。
- 任务队列逻辑:
// 使用一个FIFO(先进先出)队列来管理待处理的触发事件 IF bTriggerSensor THEN // 将触发事件(包含时间戳、主轴位置等)加入队列 EnqueueTriggerEvent(event); END_IF // 主循环检查队列并处理 IF NOT bIsBusy AND QueueNotEmpty() THEN currentEvent := DequeueTriggerEvent(); fPhaseOffset := CalculatePhaseFromEvent(currentEvent); StartCuttingCycle(fPhaseOffset); // 启动一个追剪周期 bIsBusy := TRUE; END_IF // 一个追剪周期完成后 IF CuttingCycleComplete() THEN bIsBusy := FALSE; // 准备处理下一个任务 END_IF - 失败重试与丢弃策略:如果某个触发事件因为系统忙或错误无法立即处理,需要定义策略:是丢弃(适用于高速连续生产,允许极低丢失率),还是延迟重试(适用于必须保证每个触发都响应的场景)。
7. 资源占用与性能观察
非周期追剪系统的“资源”主要是控制器的计算资源和网络的通讯带宽。
7.1 计算周期与任务分配
- 运动控制任务周期:这是最重要的性能指标。处理CAM计算、位置环PID运算的任务必须运行在最快的任务周期中(如TwinCAT中的
PlcTask或Motion Task, 周期常设为500μs或1ms)。你需要监控该任务的执行时间(Execution Time)和周期抖动(Jitter)。执行时间应远小于周期,抖动应尽可能小。 - 观察方法:在TwinCAT中,使用“Task Manager”或“Trace”功能监控任务执行时间。如果执行时间接近或超过周期,会导致控制不稳定,需要优化代码或考虑更高性能的控制器。
7.2 网络通讯负载
- EtherCAT/现场总线负载:伺服驱动器的PDO数据、IO模块数据都在总线上周期性交换。增加轴数、提高PDO更新率会增加网络负载。
- 观察方法:使用总线主站自带的诊断工具(如TwinCAT的EtherCAT状态页)查看帧周期和负载率。负载率通常应保持在70%以下以保证稳定性。
7.3 同步误差监控
- 核心监控变量:
跟随误差(Following Error)或直接计算axSlave.ActPos - axMaster.ActPos。 - 观察方法:使用控制器的在线Trace功能,持续录制并图形化显示这个误差值。这是调试和性能评估的最直接工具。一个稳定的系统,误差曲线应该是平滑、有界且中心在0附近的。
8. 常见问题与排查方法
调试非周期追剪系统时,会遇到各种问题。下表列出了典型问题及排查思路。
| 问题现象 | 可能原因 | 排查方式 | 解决方案 |
|---|---|---|---|
| 从轴不动作或使能失败 | 1. 伺服驱动器未准备好(报警)。 2. 硬件接线错误(动力线、编码器线)。 3. PLC运动控制功能未激活或轴未映射。 | 1. 检查驱动器状态字和报警代码。 2. 检查PLC中轴的状态变量(如 bError,bEnabled)。3. 检查EtherCAT从站状态是否“OP”。 | 1. 复位驱动器报警。 2. 检查并修正接线和配置。 3. 确认NC配置已激活,轴引用正确。 |
| 凸轮耦合后从轴剧烈抖动或飞车 | 1. CAM表数据定义错误(如位置单位不匹配)。 2. 主轴与从轴的参考方向相反。 3. 位置环PID参数(特别是比例增益P)设置过大或过小。 | 1. 检查CAM表数据点,确保从轴位置是主轴位置的合理函数。 2. 检查轴配置中的“Scale Factor”正负号。 3. 使用Trace观察位置误差,若误差振荡发散,则是PID问题。 | 1. 重新校正CAM表,可以先做一个简单的1:1齿轮同步测试。 2. 调整轴的方向参数。 3. 重新整定从轴的位置环PID,先从较小P值开始。 |
| 同步误差大,无法稳定跟随 | 1. 机械传动存在间隙或刚性不足。 2. 速度/加速度前馈未启用或参数不当。 3. 控制器任务周期太慢。 4. 触发信号延迟大。 | 1. 检查机械连接。 2. 检查控制器的前馈功能是否启用及参数。 3. 监控运动控制任务的执行时间和抖动。 4. 测量从传感器触发到程序收到信号的延迟。 | 1. 紧固机械,消除间隙,或进行反向间隙补偿。 2. 启用并调整速度/加速度前馈增益。 3. 优化程序,缩短任务周期或升级硬件。 4. 使用高速输入模块,优化传感器响应时间。 |
| 非周期触发响应延迟大 | 1. PLC扫描周期慢,处理触发信号的程序不在快循环中。 2. 触发信号硬件滤波时间常数设置过长。 3. 任务队列处理逻辑有阻塞。 | 1. 检查触发信号输入到bStartTracking置位之间的程序路径。2. 检查IO模块的滤波设置。 3. 审查任务队列逻辑,确保无等待循环。 | 1. 将触发信号处理和凸轮启动逻辑放在高速任务中。 2. 减少硬件滤波时间,但需注意防抖动。 3. 优化队列逻辑,采用非阻塞设计。 |
| 剪切点位置不固定(漂移) | 1. 动态相位偏移fPhaseOffset计算错误。2. 主轴编码器计数有累积误差或丢脉冲。 3. 材料与送料辊之间存在打滑。 | 1. 打印或Trace记录每次计算的fPhaseOffset值,检查逻辑。2. 监控主轴编码器计数是否连续、平滑。 3. 检查材料张力、压辊压力。 | 1. 修正相位计算算法,考虑主轴加速度补偿。 2. 检查编码器接线和电源,使用更可靠的编码器接口。 3. 调整机械压力,或增加防滑设计。 |
| 高速运行时偶尔丢步或不同步 | 1. 控制器或网络通讯过载。 2. 伺服驱动器跟随能力达到极限(过载)。 3. CAM曲线规划不合理,从轴需求加速度超过电机能力。 | 1. 监控总线负载率和控制器CPU使用率。 2. 监控伺服驱动器的负载率和电流。 3. 检查CAM曲线,特别是同步区的加速度要求。 | 1. 优化网络配置,减轻控制器负载。 2. 选择更大功率的伺服电机和驱动器。 3. 优化CAM表,平滑加减速曲线,降低最大加速度要求。 |
9. 最佳实践与使用建议
基于大量项目经验,遵循以下实践能显著提高开发效率和系统稳定性。
- 仿真先行:在连接真实硬件前,充分利用控制器软件自带的轴仿真功能。在仿真模式下测试CAM逻辑、触发逻辑和程序流程,可以安全、快速地排除大部分逻辑错误。
- 分层调试:
- 第一步:单轴调试。确保每个伺服轴能独立完成点动、回零、速度模式运行。
- 第二步:电子齿轮同步。先不使用CAM,用简单的电子齿轮(1:1)让从轴跟随主轴,验证基础同步功能和PID参数。
- 第三步:CAM周期同步。使用固定的周期性触发,测试完整的CAM追剪循环。
- 第四步:引入非周期。最后才加入非周期触发逻辑和动态相位计算。
- 善用Trace工具:将Trace作为你的“示波器”。不仅要跟踪位置、速度,还要跟踪关键的控制变量(如触发信号、相位偏移、状态位)。通过对比理想曲线和实际曲线,能精准定位问题。
- 参数化与配方:将所有可能调整的参数(速度、加速度、CAM表ID、同步区长度、相位偏置等)做成HMI可修改的变量或配方。这能极大方便现场调试和产品换型。
- 加入丰富的状态与诊断:在程序中定义清晰的状态机(如“初始化”、“待机”、“同步中”、“剪切中”、“返回中”、“错误”),并将状态和详细的错误信息发送到HMI。这能帮助操作和维护人员快速了解设备状况。
- 安全逻辑隔离:将运动控制逻辑与安全逻辑(急停、安全门、光栅)严格分开。安全功能应通过硬件安全回路或安全PLC实现,确保在任何软件故障下都能可靠停机。
- 文档与注释:在复杂的CAM计算和相位偏移逻辑处添加详细注释。记录下关键的调试参数和对应的现象。这份文档对后续维护和升级至关重要。
非周期追剪是实现高端自动化裁切功能的一把利器,它将软件算法的灵活性与精密运动控制硬件相结合,解决了非规则物料加工的难题。成功应用的关键在于透彻理解电子凸轮和相位同步的原理、严谨的从简单到复杂的调试流程以及对控制系统性能边界的准确把握。建议先从周期追剪项目积累经验,再挑战非周期应用。当你看到刀轴在随机触发的指令下,依然能划出与主轴严丝合缝的同步曲线时,便是对所有这些复杂工作最好的回报。