ARTICLE DETAIL

资讯详情

深耕郑州网站建设与运营推广的一线实战洞察。

PROFINET下DSC动态伺服控制与105报文实现多轴同步调优

PROFINET下DSC动态伺服控制与105报文实现多轴同步调优 最近帮客户调一套博能传动伺服的多轴同步设备机器是六轴轮转结构原来用 PLC 发脉冲跑跑到高速段从轴一直抖位置误差肉眼可见。后来把控制链路整体改成 PROFINET 通信用 105 报文把博能驱动器的 DSC 功能激活同步性能完全是两个世界。这篇文章不写虚的把我调试过程中反复验证过的东西一次说清楚DSC 到底解决了什么问题、105 报文的通信结构长什么样、博能传动伺服要怎么配以及我在现场用波形和参数一点点把多轴同步拉稳的全过程。适合正在做多轴设备集成、被伺服抖动和不同步折磨的电气工程师尤其是刚从中低端脉冲方案往总线伺服方案迁移的人。1. 多轴同步为什么难抖和滞是从哪来的1.1 先看三个控制环位置环、速度环、电流环各管什么伺服驱动系统不管哪个品牌原理上都跑着三个闭环电流环、速度环、位置环。电流环在驱动器内部管电机绕组的力矩输出响应最快速度环在驱动器上一层负责让电机实际转速贴着给定转速走位置环通常放在驱动器或者 PLC 里面负责把最终位置误差压小。这套层级结构有点像工厂里的三层管理位置环是厂长每天布置“今天干到哪”速度环是车间主任盯着“现在每分钟干多少”电流环是一线工人直接出力。厂长管理不能越级中间任何一级反应慢了末端活就干不齐。多轴同步设备真正关心的是位置环而位置环的性能又被下面的速度环和电流环卡着。如果底层速度环带宽不够位置环给一个速度指令电机要慢半拍才跟上如果电流环有饱和大加减速的时候力矩不够速度就会掉。所以我们调同步之前先要把单轴的“地基”整明白不然上层怎么调都是白费。1.2 脉冲、模拟量、普通总线方案为什么天生不同步很多老设备是 PLC 发脉冲控制伺服比如三菱 FX3U 带 MR-JE 这种经典组合。用脉冲方案时PLC 通过高速输出口发脉冲串驱动器把脉冲数转换成电机转角。这套方案便宜、简单但天然有同步瓶颈。脉冲方案最大的问题是“相位差”。同一台 PLC 用两个高速输出口发脉冲给两个轴两个口的硬件触发时刻不一定完全一致而且脉冲频率越高从站响应越快但接收端的倍频处理和电子齿轮计算都各有各的延迟。多轴一联动这个误差就叠加出来了。走模拟量控制更不用谈电压指令抗干扰差一个 0~10V 的信号在长线传输上稍微压降转速给定就开始漂。普通总线方案比脉冲好一点比如 PROFIBUS DP、普通 PROFINET 的标准报文能把速度设定值和实际值周期传上来但位置环如果放在 PLC 里PLC 读到的编码器位置已经经过了从站、总线、主站堆栈等多层传输数据到达的一瞬间电机已经在往前跑了。位置环拿到的永远是“过期的位置”这就是滞后的来源。1.3 抖和滞的本质采样时刻不一致与总线延迟我见过很多人遇到多轴抖动第一反应是加伺服增益结果越加越振最后只能降刚性妥协。其实抖和滞是两码事滞是延迟造成的跟随偏差抖是共振或者采样不齐造成的周期波动。在多轴系统里两个轴如果不在同一个时间点采样位置哪怕只是相差半毫秒高速运动时位置差就可能被放大成明显误差。举个数值例子轴以 3000 rpm 转也就是每秒 50 转假设电机每转 262144 个脉冲那半毫秒就是 6553 个脉冲的偏差。这个数量级在贴装、印刷、飞剪这些高精度场合完全不可接受。所以多轴同步的真正核心不是“谁的指令给得好”而是“所有轴能不能在同一时刻看位置、在同一时刻收指令”。DSC 功能解决的恰恰就是这个它要求整个网络必须跑在同一把时钟下面把所有轴的采样点和输出点拉到同一个节拍上。2. DSC 动态伺服控制到底是什么105 报文好在哪2.1 别搜错此 DSC 不是延迟信号消除法我在查资料的时候发现一个特别容易混淆的点网上搜 DSC会出来很多“DSC 延迟信号消除法”那是信号处理领域的一套理论跟咱们伺服总线里的 DSC 没有关系。在 PROFIdrive 和伺服驱动这个语境下DSC 全称是 Dynamic Servo Control动态伺服控制。DSC 解决的核心问题就是前面说的延迟。它让驱动器按照总线同步时钟在每个通信周期固定的锁存点采集编码器位置然后在下一个周期开始直接把这一份位置值塞进报文里交给 PLC。PLC 不需要再单独等待驱动器内部的处理时间位置环拿到的反馈和实际电机位置之间的时间差被压到极限。这套机制和“图像伺服”“视觉伺服”是两码事但可以互补。视觉伺服解决的是“工件到底在哪”的问题DSC 解决的是“指令下去了轴有没有在同一时刻跟上”的问题。做视觉引导多轴贴装、飞拍定位这种设备时底层走 DSC 报文上层再挂视觉效果才会理想。2.2 105 报文的数据结构里到底有什么105 报文是 PROFIdrive 里专门配合 DSC 使用的一种周期过程数据组合。它不是物理上的“一条报文”而是每个通信周期固定交换的一组 I/O 数据。以我调试博能传动伺服时用的典型结构为例方向信号含义说明PLC → 驱动器STW1控制字 1使能、急停、复位等控制位PLC → 驱动器NSOLL速度设定值32 位按驱动器定义的量纲发送驱动器 → PLCZSW1状态字 1驱动器当前状态反馈驱动器 → PLCNIST速度实际值32 位实际速度驱动器 → PLCG1_XIST1位置实际值编码器位置DSC 的关键反馈通道对比常见的 102 号普通速度报文105 报文的区别非常明显102 报文只传控制字、状态字和速度值位置反馈要么不传要么另外走非周期读取PLC 每次拿位置都要额外等时间105 报文把位置实际值 G1_XIST1 直接并进同一个周期PLC 在一个通信周期里既能拿到位置反馈又能给出速度设定值省掉了整整一个来回的等待。不同的驱动器和不同的 GSDML 版本在字节排布上可能会有差异比如有的固件版本会在报文里多加几个状态扩展字但核心思路不变。拿到设备第一步不是直接组态而是先打开设备手册里的过程数据列表对照看一下哪些字是控制字、哪些字是速度值、哪些字是位置值心里有底再下手。2.3 IRT 等时同步多轴同步的地基105 报文要想真正发挥 DSC 的威力必须配合等时同步模式来跑。在西门子博途里叫 PROFINET IRT等时实时通信也叫同步域。IRT 和普通实时通信的区别在于它靠硬件来完成时间同步普通交换机是不能用的必须用支持 IRT 的交换机或者直接采用星形直连。所有从站共享同一把全局时钟通信周期被切成固定的时间片每个轴在同一时刻采样编码器、在同一时刻把速度设定值锁存到输出。我打个比方普通总线像是大家各自戴手表约时间各人的表多少有点快慢站在起跑线上出发时刻总有偏差IRT 等时同步是直接把所有人拉到同一个钟下面裁判一开枪六轴同时起步。没有这层时钟同步即使选了 105 报文位置反馈通道也有但采样点不在一个节拍上同步精度照样拉不上来。3. 博能传动伺服启用 DSC 和 105 报文的完整配置3.1 硬件接线与通信接口定义要提前核对之前调试过一类国产伺服通讯口定义和松下 A4 那套非常接近控制信号在 CN1、编码器在 CN2、通讯口在 CN3博能传动驱动器上也差不多都会在端子旁边印 X1、X2 之类的编号。但千万不要照着别的品牌端子定义想当然接错一根 24V 或者脉冲指令线轻则通讯不上重则烧接口。我把接线前的检查总结成几条电源端子确认主回路和控制回路分开供电控制回路用 24V 开关电源不要和接触器共用一个电源。PROFINET 口一般有两个 RJ45 端口标注为 IN 和 OUT用于菊花链连接确认自己的链路方向。屏蔽层要可靠接地网线用带金属屏蔽层的工业成品线现场变频器和大功率电机多的时候屏蔽接地比换昂贵网线管用得多。伺服驱动器的 PE 端子必须和电柜共用接地铜排很多通信掉线问题其实就是接地电位差在作怪。3.2 博途里添加 GSDML 并选择 105 报文博能传动伺服接入西门子博途第一步是把 GSDML 文件装进博途的硬件目录。这个文件在驱动器附带的光盘或官网支持页面能下载到安装方式和其他厂商驱动器的 GSDML 一样在博途菜单的“选项→管理 GSD 文件”里导入之后在硬件目录的 PROFINET 节点下就能看到博能传动的设备。组态步骤可以照这个顺序来从硬件目录拖出博能传动伺服驱动器放到 PROFINET 网络上。分配设备名称和 IP 地址设备名称必须和驱动器面板/软件里设置的名称一致。在设备视图中打开接口选择传送区类型下拉菜单里找 105 报文或者带有 DSC 字样的报文。如果有多个轴把每个轴分别挂到同一个 PROFINET 同步域下并勾选等时同步模式。为 CPU 创建等时同步中断 OB比如 OB61将通信周期设定为 1ms 或 2ms根据轴数和 CPU 负载决定。把过程数据映射到全局 DB 或者直接使用 I/O 地址方便 OB61 里读写。有一点要提醒不是所有 CPU 都支持 IRT 等时同步老款 1214C 这种 CPU 虽然可以走 PROFINET但 IRT 能力很有限想要多轴 DSC 跑得漂亮建议直接上 1500 系列并且留出足够的 CPU 余量。通信周期越短CPU 在每个周期内要做完位置环运算的压力越大一旦超时就无法保证等时。3.3 驱动器参数设置报文类型、编码器分辨率和速度单位组态只是把“坑”挖好了能不能跑起来驱动器的参数也得跟着改。博能传动伺服驱动器的参数一般分两组一组是通信参数一组是控制参数。通信参数里重点设三样设备名称必须和博途里分配的名称一字不差。IP 地址默认地址要和 PLC 在同一网段如果驱动器支持自动获取也可以在博途里统一分配。报文类型选 105有的固件里叫“带 DSC 的速度控制”别选成普通的 102 或标准报文 1。控制参数里重点盯编码器分辨率。以汇川 MS1H4 为例在驱动器里能看到默认编码器线数是 262144这个数值代表电机每转一圈反馈 262144 个脉冲。很多人问这个数值能不能改我的建议是除非你换了第三方的电机或外接编码器否则别去动它。这个数硬件决定不是软件可以“提高”的精度把它改小位置反馈分辨率下降改大了驱动器直接报编码器故障。换到博能传动伺服道理一样。用 105 报文跑时位置实际值 G1_XIST1 的单位就是这些脉冲数因此 PLC 位置环里一定要知道“一个脉冲对应多少机械距离”换算错误会表现为位置偏差恒定但不是抖动。速度设定值 NSOLL 的量纲各家定义不同常见的有两种一种是 0x4000 对应 100% 额定转速另一种是直接按 0.001 rpm/LSB 发。这必须在手册里查清楚然后在 PLC 功能块里做一次比例换算别把 100% 当成 16384 就完了有的轴可能直接冲出去。3.4 在 PLC 里跑一个位置环的示例写法选 105 报文之后位置环可以由 PLC 来做驱动器只跑速度环和电流环。我在现场用的逻辑不复杂就是每个等时中断里读一次实际位置计算位置误差乘位置环增益再加上速度前馈得到速度设定值最后限幅发给驱动器。伪代码大致是这个意思// 在等时中断 OB 中执行 // 单位约定位置用脉冲速度用内部速度单位 posAct : drvIn.G1_XIST1; // 读 105 报文里的位置实际值 posErr : posRef - posAct; // 位置误差 velFF : vRefFeedforward; // 速度前馈来自上位运动规划 velSet : Kp * posErr velFF; // 位置环输出 drvOut.NSOLL : LIMIT(velSet, -vMax, vMax); // 限幅后发速度设定值 // STW1 控制字使能位保持置位 drvOut.STW1 : 16#000E; // 按实际使能逻辑配置这里 Kp 的量纲不是随便拍出来的。如果位置单位是脉冲速度单位是“脉冲/毫秒”那 Kp 的单位就是 1/ms数值大致是 0.1 到 5 这个范围具体看机械刚性和负载转动惯量。前馈非常重要纯靠 Kp 压误差会有滞后前馈把规划速度提前叠加进去跟随误差能下降一大截。这个示例只是最简单的 P 加前馈实际工程上还会加积分、加加速度前馈、加滤波。但核心思路是DSC 把反馈通道做稳了你在 PLC 里写的位置环才能真正反映现场机械状态。4. 实战调试波形、增益和同步误差的整定思路4.1 先单轴整定把速度环和电流环调稳再谈位置环我习惯的顺序是先不接总线用驱动器自带面板或调试软件点动单轴。把电流环和速度环调稳再切到总线模式做多轴同步。这个顺序不要跳因为在总线上调如果波形乱很难分清是通信问题还是单轴参数问题。单轴调试时重点看速度环的增益和积分时间。速度环增益加大电机对速度给定响应更快但增益大到一定程度系统会开始振荡声音发闷、电流波形出现等幅振荡这时必须退回来。积分时间的设置要兼顾消除稳态误差和低频振荡积分太短轴会出现低频喘动听起来像在“呼吸”。博能传动伺服调试软件里通常能看波形和看伺服波形是一个思路给定转速、实际转速、转矩电流三个通道放一起做几次阶跃加减速观察实际转速有没有超调电流有没有瞬间顶到限幅。如果把电流环和速度环比作一个人的肌肉和神经这一步就是把神经反应速度调到肌肉刚好能承受的程度。4.2 用伺服波形看什么给定跟随、跟随误差与电流很多工程师调伺服只用驱动器面板看几个数字我建议把示波器功能用起来无论是博能传动调试软件自带的记录功能还是 PLC 的 Trace 功能都行。波形能告诉你数字参数表看不出的动态过程。第一步看给定跟随给一个梯形速度曲线把速度设定值和实际速度叠在一起看实际速度是否落后加减速段有没有明显凹陷。实际速度在加速段总是低于给定这是正常的因为转矩建立需要时间但凹陷太深说明速度环增益不够或者电流已经到限幅。第二步看位置跟随误差如果是 PLC 做位置环把位置误差曲线拉出来看。位置误差是一条平直线说明系统处于稳定跟随状态只是有固定滞后靠前馈可以压掉。位置误差上下波动说明轴在抖需要回头查速度环滤波和机械共振。第三步看电流波形转矩电流如果夹着明显的周期性尖峰多半是机械问题比如丝杠螺距误差、联轴器偏心、导轨摩擦力不均。这些机械缺陷靠 DSC 消除不了调增益反而会把周期性扰动放大最后只能修机械或者加滤波。4.3 双轴同步的调试顺序和参数经验同步联动不是直接开满增益就行。我调博能传动双轴时是一步一步来的顺序供参考先把两个轴都接入同一个同步域确认两个轴反馈的时钟节拍一致最简单的方法是在 PLC 里同时读两个轴的 G1_XIST1连续采几十个周期看变化时刻是否对齐。用电子齿轮或者上位运动规划给出同一个速度目标先脱开负载空跑看位置误差是否稳定。逐步提高位置环 Kp每次加 20% 左右观察同步误差的振动幅度一旦出现高频振铃就退回上一档。加入速度前馈看稳态同步误差有没有被压平。带负载跑真实工艺曲线观察加减速和匀速段的误差变化。这套流程的核心是“破坏后再恢复”每次增益变化都要故意跑一段高速加减速让问题暴露出来。如果在低速匀速状态下一切都好不代表高速同步没问题因为高速下延迟和机械共振的影响会被放大。4.4 一张表总结增益、滤波、前馈的调整方向现场调参最怕没有方向乱试。我把常见的现象和调整方向整理成一个表现象优先检查/调整方向经验说明末端抖动、高频振动速度环增益降低速度反馈滤波加大先查机械共振点必要时启用陷波器低频喘动、周期起伏速度环积分时间加大积分作用太强会引起低频振荡同步误差呈固定斜坡加大速度前馈检查采样时刻通常是位置环滞后不是增益问题位置过冲、停车浪摆减小位置环 Kp适当增加阻尼位置环增益太高系统呈欠阻尼负载突变后恢复慢提高速度环增益检查电流环限幅负载惯量大时还需要做惯量辨识单轴正常双轴对不上查同步域、总线周期、CPU 任务超时不要调参数先查时钟和程序扫描参数表只是参考每台机械的惯量、刚度、阻尼都不一样。我始终强调带载调试时参数记录要做版本管理。改一组参数拍一张波形否则最后轴调稳了都不知道自己改了什么。5. 常见问题与排查技巧实录5.1 105 报文激活后电机不使能怎么办这是我把普通报文换成 105 之后最常遇到的第一个问题现象是博途里看状态字一直是“未就绪”控制字发了驱动器却没有吸合抱闸。排查思路要按顺序来检查控制字 STW1 的使能位是否同时置位。PROFIdrive 使能不是某一个位能搞定的通常要 STW1 的 0、1、2 位配合还要满足驱动器的内部使能逻辑。用博途在线监控看驱动器的 ZSW1 停留在哪一位就能倒推卡在哪一步。检查驱动器面板有没有报警比如编码器故障、通讯超时。如果驱动器已经报“通讯中断”先查网线和设备名配置。检查急停回路和抱闸控制。105 报文控制字只是给出了运行许可外部 24V 急停回路没有接通驱动器同样不会使能。有一个细节要提换成 DSC 报文之后我遇到过控制字已经全部置位但驱动器使能仍然闪断最后发现是通信周期和驱动的监控时间不匹配。驱动器默认的通讯超时周期太短PLC 扫描稍微一卡驱动器认为总线断了自动撤使能。这种情况把驱动器的通讯监控时间适当调长就解决。5.2 速度设定值换算不对单位与编码器分辨率用 105 报文之后速度给定不再是从前脉冲方案的“每转脉冲数”而是直接发数值。很多从三菱 MR-JE 转过来的工程师会在这卡住原因是以前用 FX3U 发脉冲时需要通过 PA05 设置每转脉冲数PA21 设置指令脉冲形式现在换成速度值PA05 的概念已经不参与速度链了。速度设定值发出去之后如果发现轴转得离谱先怀疑量纲换算。比如你以“0x4000 100% 额定转速”为约定但写成了 0x0400转速就只剩 1/16动起来特别肉。查手册里的 NSOLL 缩放表确认是满量程对应关系还是带符号的固定比例。另一个容易错的是位置单位换算。105 报文里的 G1_XIST1 来自编码器分辨率如果驱动器里默认 262144而电机的实际编码器是 17 位 131072位置环算出来的距离就会翻倍。改编码器参数前要确认电机铭牌不要乱动默认值。5.3 多轴还是不同步查时钟而不是查增益如果参数已经调得很保守位置前馈也加了双轴同步误差还是让人不满意十有八九是时钟问题。我实测最典型的情况是两个轴都挂了 105 报文但其中一个轴的报文周期和另一个不是同一个同步域或者 CPU 的等时中断 OB 被其他更高优先级的任务抢占导致本该每 1ms 执行一次的位置环偶尔变成 2ms 执行一次。这种偶发的“打嗝”用示波器看误差曲线时会表现为周期性毛刺。解决办法是回到博途里重新检查同步域确认所有从站都挂在同一个 IRT 域下并监控等时中断 OB 的运行时间。如果 OB 运行时间超过通信周期的百分之七八十就需要优化程序把不必要的数据处理挪到普通循环中断里给位置环留出足够余量。还有一种容易被忽略两个轴之间如果走的是普通交换机而非 IRT 交换机硬件层面上就破坏了时钟同步。PROFINET IRT 必须用支持硬件同步的交换机普通交换机转发会造成纳秒级到微秒级的不确定性多轴同步精度直接崩。5.4 通信掉线和干扰接口定义与接地最后聊一个老生常谈但是最常见的问题通信掉线。现象是运行一段时间后 PLC 报从站故障驱动器报通讯超时有时候重新上电又好了。这种问题大概率不是配置问题是现场干扰或者接地问题。检查接口定义时注意两端跳线是否规范参考一些通用伺服驱动的通讯接口定义IN 和 OUT 不要接反网线屏蔽层要两端接地但设备本身如果存在地电位差反而要单端接地。我处理过一个现场龙门架双驱驱动器和变频器共用进线一加速就掉线。后来加装隔离变压器给驱动器控制回路单独供电网线换屏蔽工业线接地铜排重新打磨紧固问题就消失了。伺服调试到最后很多瓶颈不是算法也不是参数而是物理层的抗干扰能力。还有一点博能传动和汇川、三菱、安川这些品牌的调试软件风格虽然不同但做对比排查时思路是通用的。比如汇川伺服 MS1H4 的编码器参数、安川驱动器里速度环增益的参数号看起来各不相通实际都围绕“位置环、速度环、电流环、通讯周期”这几个维度。会用一种换品牌只是重新查参数号的问题。调试那台设备到最后我把六轴通信周期压在 1ms同步误差稳定控制在个位数脉冲以内客户在触摸屏上看着跟随曲线从原来的“波浪线”变成“直线”也觉得不可思议。我自己的体会是DSC 和 105 报文把 PLC 和驱动器之间的交流延迟压缩到了极致这是系统能同步的基础但机械间隙、联轴器弹性、供电波动这些物理问题报文解决不了。所以调试顺序永远是先修机械再稳时钟最后才放心加增益。否则每一步调参都像是在地基没打牢的楼上装修表面再漂亮也撑不住。
返回列表