快使用Ctrl+D收藏本站!本站早已不再维护,择期将关闭本站!!本站资源已全部失效,请勿打赏!!PLC培训创业官网 苏州实操派科技-点击访问-

codesys电机伺服轴报错:“SMC_FB_WASNT_CALLED_DURING_MOTION”

AM600 π³朱子文 12390℃ 0评论
30 驱动器接口 SMC_FB_WASNT_CALLED_DURING_MOTION 运动控制创建的模块在运动结束之前没有被调用。

百度真是烂,这个真的查不到……然后想翻墙 用谷歌,无奈知道的几种翻墙方法全部失效。然后用了下微软的bing,搜索英文:

This error occurs when a motion function block, such as MC_MoveRelative or MC_MoveAbsolute is called outside the EtherCAT_Master task.  All motion has be called from the EtherCAT_Master.

From this image, you can see the RunMotion_CFC is inside the MainTask which is the problem. Users can click these Program calls under the Task Configuration to drag and drop. Moving this into the EtherCAT_Master and then compiling would fix this error.

当在EtherCAT_Master任务之外调用一个运动函数块(如MC_MoveRelative或MC_MoveAbsolute)时,就会发生此错误。所有的运动都可以从EtherCAT_Master调用。 从这个映像中,您可以看到RunMotion_CFC在MainTask中,这就是问题所在。用户可以在任务配置下单击这些程序调用来拖放。将其移动到EtherCAT_Master,然后编译就可以修正这个错误。

但是我不是上面说的这个问题,我的所有MC指令块全部都是在EtherCAT_Task任务下跑的。这个问题坑的我很惨,2个小时时间,终于解决:

我程序跑起来 ,总线连接都正常,然后点jog点动,然后Axis轴和Axis_1轴就报错,原因是图三,,,我想实例化:MC_DDLX轴_PointAxis (Point_AxisStruct := g_SingleAxisStruct[DDLX]);但是因为手误,两个都写成了MC_DDLY轴_PointAxis。这样就导致了,MC_DDLX轴_PointAxis 这个轴并没有实例化,但是后面还是调用了MC_DDLX轴_PointAxis 这个轴的MC指令。所以出现上面报错……

以后再也别用全局替换,这个手误就是因为全局替换搞的,坑死我了……

 

转载请注明:燕骏博客 » codesys电机伺服轴报错:“SMC_FB_WASNT_CALLED_DURING_MOTION”

赞赏作者

微信赞赏支付宝赞赏

喜欢 (4)or分享 (0)

如果您喜欢本站文章,感觉本站的资源对您有帮助,请狠狠点击下面

每累计赞助40元,即可让本站按最低配置运行一个月,感谢您的支持!

发表我的评论
取消评论
表情

Hi,您需要填写昵称和邮箱!

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址