CODESYS平台EtherCAT总线轴错误SMC_DI_FIELDBUS_LOST_SYNCRONICITY如何解决?

爱谁谁
发布: 2025-06-16 16:04:12
原创
386人浏览过
CODESYS平台EtherCAT总线轴错误SMC_DI_FIELDBUS_LOST_SYNCRONICITY如何解决?

近期在基于codesys平台的控制器开发项目时,遇到下面的错误,很是头疼:

CODESYS平台EtherCAT总线轴错误SMC_DI_FIELDBUS_LOST_SYNCRONICITY如何解决?

轴出错的时机非常偶然,有时频发,有时偶尔一两次,所以很不好解决。

当然,目前似乎没有更好的办法解决,但是,经过反复的查阅资料和现场测试,以下的经验和大家分享!既是留下记录,同时也希望帮到有需要的朋友!

如果,有朋友遇到过这类问题,可以留言区讨论以及给出相应的解决方案!

CODESYS平台EtherCAT总线轴错误SMC_DI_FIELDBUS_LOST_SYNCRONICITY如何解决?
硬件组成

实际上项目的硬件非常简单:

基于CODESYS开发的PLC+16点数字量输入+16点数字量输出+2路0-10V模拟量输入+2路0-10V模拟量输出+2个EtherCAT总线步进

前期处于验证阶段,所以PLC比较高配,一直使用基本没有出现这个问题!后面出于成本考虑,换了低成本的PLC(不到1K的CODESYS运动控制器),但是没过一个礼拜就出现下图的轴错误!

CODESYS平台EtherCAT总线轴错误SMC_DI_FIELDBUS_LOST_SYNCRONICITY如何解决?
CODESYS平台EtherCAT总线轴错误SMC_DI_FIELDBUS_LOST_SYNCRONICITY如何解决?

解决过程

Step1:CODESYS help

通过F1进入Codesys系统自带的帮助系统,查询到SMC_ERROR的具体描述!

SMC_ERROR中英文说明

CODESYS平台EtherCAT总线轴错误SMC_DI_FIELDBUS_LOST_SYNCRONICITY如何解决?

查询到的字面意思:现场总线同步丢失。实际上,除了这个简单的解释,就没有其他任何的处理解决方法了。只能再查下其他的资料。

Step2:Codesys Forge

搜到最匹配的资料是,CODESYS官方论坛里面提到的几点,个人认为可以参考,毕竟国内也没有关于这个错误的详细说明和解决方案

CODESYS平台EtherCAT总线轴错误SMC_DI_FIELDBUS_LOST_SYNCRONICITY如何解决?

这个提问者报错的现象我们这里简单说明下:

1.把EtherCAT总线的分布式时钟由SM-Syncrhon配置成DC-Syncrhon

后出现:

SMC_ERROR.SMC_DI_GENERAL_COMMUNICATION_ERROR.

2.通过他自己的查询,设置了:

EtherCAT_Master_SoftMotion.FramAtTaskStart = Fasle

但是,过了1到2s,出现了我们本期所说的错误:

SMC_ERROR.SMC_DI_FIELDBUST_LOST_SYNCRONICITY

当然他自己提到用Beckhoff的TwinCAT没有出现这种错误。总线的周期设置的2ms。

我们看下论坛里面的详细回复,第一条

CODESYS平台EtherCAT总线轴错误SMC_DI_FIELDBUS_LOST_SYNCRONICITY如何解决?

这个里面最关键的一点就是如果要使用DC_Synchron,plc硬件要具备实时性才行,正常设置是:

EtherCAT_Master_SoftMotion.FramAtTaskStart = TRUE

其他的回复,没有什么建设性,更多的是遇到这类问题也没有找到更好的解决方法。

CODESYS平台EtherCAT总线轴错误SMC_DI_FIELDBUS_LOST_SYNCRONICITY如何解决?

Step3:Forge

后面在这个论坛里搜这个错误的关键词,还有一个类似的提问者,时间是2024年,最新的回复,参考价值更大些:

CODESYS平台EtherCAT总线轴错误SMC_DI_FIELDBUS_LOST_SYNCRONICITY如何解决?

这里把详细的配置和他尝试的方法都放在图中了,后面再一次的回复是说:

增加DCInSyncWindow,至少运行1两天没报错了。

CODESYS平台EtherCAT总线轴错误SMC_DI_FIELDBUS_LOST_SYNCRONICITY如何解决?

这里面最重要的就是tk096提到的建议(翻译的结果,原文可以查看上图):

增加 EtherCAT 任务的周期时间可能会有所帮助。增大 EtherCAT 参数 DCInSyncWindow 的值。在 EtherCAT 主站中启用 FrameAtTaskStart。如果驱动器能够处理同步问题,则可以使用 SMC_Set_ETC_DCSyncSupervision禁用同步检查。
CODESYS平台EtherCAT总线轴错误SMC_DI_FIELDBUS_LOST_SYNCRONICITY如何解决?图片

解决方法汇总

经过上述资料的查询和我个人的测试,把可能的解决方法汇总如下:

1、EtherCAT主站设置1:

EtherCAT_Master_SoftMotion.FramAtTaskStart = TRUE

当然,这个需要硬件具备硬件实时性能。

2、EtherCAT主站设置2:

CODESYS平台EtherCAT总线轴错误SMC_DI_FIELDBUS_LOST_SYNCRONICITY如何解决?

增加DCInSyncWindow的值,如上图位置进行配置。

3、增加EtherCAT总线任务周期

CODESYS平台EtherCAT总线轴错误SMC_DI_FIELDBUS_LOST_SYNCRONICITY如何解决?

例如:本例将原来的2ms的EtherCAT 总线任务周期改成10ms.

4、如果驱动器可以处理同步,可以用下面的功能块进行禁用同步检查:

CODESYS平台EtherCAT总线轴错误SMC_DI_FIELDBUS_LOST_SYNCRONICITY如何解决?

详细链接:

https://content.helpme-codesys.com/en/libs/SM3_Drive_ETC/Current/SMC_Set_ETC_DCSyncSupervision.html

5、如果对实时性没有要求的应用,分布式时钟不用DC-Synchorn:

CODESYS平台EtherCAT总线轴错误SMC_DI_FIELDBUS_LOST_SYNCRONICITY如何解决?

例如上图,选择DC unused,注意有些伺服选择Free Run或者SM-Synchron。我们这次用的就是这种方式解决。

6、更换成更高配的控制器:

我们这个项目本身就是从高配的控制器换成低成本一点的控制器,才出现的问题。

当然,如果您也遇到上述问题,请把现象和解决的方案打在留言区哦!欢迎同我交流:mengman45.

参考链接:

https://forge.codesys.com/forge/talk/Motion/thread/e074690174/https://forge.codesys.com/forge/talk/Motion/thread/8fa667ab7e/?limit=25#30e1http://developer.codesys.cn/forum.php?mod=viewthread&tid=137&page=1

以上就是CODESYS平台EtherCAT总线轴错误SMC_DI_FIELDBUS_LOST_SYNCRONICITY如何解决?的详细内容,更多请关注php中文网其它相关文章!

最佳 Windows 性能的顶级免费优化软件
最佳 Windows 性能的顶级免费优化软件

每个人都需要一台速度更快、更稳定的 PC。随着时间的推移,垃圾文件、旧注册表数据和不必要的后台进程会占用资源并降低性能。幸运的是,许多工具可以让 Windows 保持平稳运行。

下载
来源:php中文网
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
最新问题
开源免费商场系统广告
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责申明 意见反馈 讲师合作 广告合作 最新更新
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送
PHP中文网APP
随时随地碎片化学习
PHP中文网抖音号
发现有趣的

Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号