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”
赞赏作者微信赞赏支付宝赞赏