西门子200smart通过Profinet实现伺服同步 点击:19 | 回复:1



天佑

    
  • 精华:0帖
  • 求助:0帖
  • 帖子:1帖 | 1回
  • 年度积分:24
  • 历史总积分:24
  • 注册:2025年7月22日
发表于:2025-07-22 16:52:30
楼主

最近做了一个200smart的通过Profinet控制两个禾川的伺服,完成同步运行的项目。200smart本身不支持同步运行,但是因为同步精度不高,所以笔者索性自己写了一个同步程序,大家可以做个思路参考。

同步的基本原理就是,主轴运行的时候,从轴跟着运行就行,所以最简单的同步方式就是把主轴的实际速度,实时发送给从轴运行就可以了。

方案一:主轴实际速度直接给从轴设定,这种方式下首先出现了速度干扰的问题,这个问题导致主轴即使在匀速运行,而从轴速度变化非常大。所以笔者对速度进行了滤波,采用了三次采样的取中值的方法,这样再进行测试发现两个轴做到了差不多的同步,但是在长时间旋转后,位置误差偏差较大,位置差值不断累积,最终无法同步。

方案二:由于长时间的累积导致了最终位置差值比较大,那么,可以做速度的积分→位置,来把位置纳入速度设定的参考里面,但是既然要做积分,那么每次的采样时间需要一致来保证参数调整稳定性,所以用PLC的扫描时间来做采样就不行了,但是200smart并没有固定周期扫描的程序块,所以笔者通过定时中断程序来做了一个固定扫描周期的程序。所以只要将主轴伺服的位置信息和从轴的位置信息做差,差值再乘一个参数Ki就是下一周期速度需要补偿的速度,这样一来加入了积分环,调试好参数后,经过测试发现运行过程中的位置同步几乎一致,误差在百分之十之内,能够达到笔者项目需求,但是同时发现一个问题,在高速定位时,主轴定位位置比如定位位置是20000,主轴在到达20000后停止,但是从轴由于通讯和扫描周期延迟,会多转半圈到一圈才停止后开始回转,回到20000位置,此时笔者认为,可引入速度的微分→加速度,当加速度急剧变化时来提前给从轴降速,做到减少误差。

方案三:加入了微分,但是效果并不明显,参数调整力度不大,笔者认为,可能是由于伺服本身加减速时间就很快,正常来说伺服默认是20ms/1000r的加速度,这个加速时间已经比笔者设定的速度滤波周期都要快,笔者尝试增加加减速时间,同时减小滤波周期,PLC的扫描周期在5ms左右,当把单周期固定在5ms时,发现PLC的周期要跟不上了,导致了例如正反转切换由于可能在一个PLC扫描周期内完成一次开关导致伺服控制时序不对无法完成正反转等,笔者想过不通过功能块索引,直接去操作通讯地址,但是由于时间问题,笔者放弃了,由于也没有工具去检测通讯时序具体时多少,写入和回复的反馈无法得知,无法判定通讯周期具体时间,同时还要重新开发功能块工作量较大。因此测试效果不理想。笔者觉得,如果再次基础上再要精度高,从轴不再使用速度模式控制,而是通过位置模式控制,利用插补法,来实时预测下一周期主轴的速度和位置,写入从轴,进而让伺服自身的PID位置控制来进行精度控制。由于项目周期和本身工作原因,此方案并没有测试。



楼主最近还看过

程兴东

  • 精华:0帖
  • 求助:0帖
  • 帖子:48帖 | 1568回
  • 年度积分:79
  • 历史总积分:58340
  • 注册:2019年9月25日
发表于:2025-07-22 19:32:35
1楼

挺好

回复本条

    

热门招聘
相关主题

官方公众号

智造工程师