您的位置 : 资讯 > 软件资讯 > CODESYS平台EtherCAT总线轴错误SMC_DI_FIELDBUS_LOST_SYNCRONICITY如何解决?

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

来源:菜鸟下载 | 更新时间:2025-06-16

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

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

菜鸟下载发布此文仅为传递信息,不代表菜鸟下载认同其观点或证实其描述。

展开
汤姆猫总动员2
汤姆猫总动员2
类型:休闲益智 运营状态:公测 语言:简体中文
汤姆猫跑酷
前往下载

相关文章

更多>>

热门游戏

更多>>

手机扫描此二维码,

在手机上查看此页面

关于本站 下载帮助 版权声明 网站地图

版权投诉请发邮件到 cn486com#outlook.com (把#改成@),我们会尽快处理

Copyright © 2019-2020 菜鸟下载(www.cn486.com).All Reserved | 备案号:湘ICP备2023003002号-8

本站资源均收集整理于互联网,其著作权归原作者所有,如有侵犯你的版权,请来信告知,我们将及时下架删除相应资源