Skip to main content

常见错误

本页描述了使用时常见的错误 CODESYS Softmotion Basic、错误原因以及纠正错误可能采取的措施。有关所有可能的错误及其简要说明的列表,请参阅库文档: SMC_错误

40.

错误代码

描述和原因

操作

SMC_DI_AXIS_ERROR

驱动器报告了错误。

可能的原因:

  • 位置滞后

  • 限位开关

  • 过载(I²t 误差)

检查驱动器报告了哪种错误。可以从驱动器的显示屏(如果有)读取错误,也可以使用 MC_ReadAxisError 功能块。

SMC_AXIS_ERROR_DURING_MOTION

驱动器报告了错误。在运动过程中,活动运动块返回此错误。

查看针对错误的操作 SMC_DI_AXIS_ERROR

SMC_FB_WASNT_CALLED_DURING_MOTION

控制有效运动的功能块尚未在当前循环中被调用。

可能的原因:

  • 缓冲动作或混合动作的调用顺序不正确。不得在命令前一个动作的功能块实例之前调用后续动作的功能块实例

  • 作为 SoftMotion 版本 4.15.0.0,此错误的日志消息包含受影响功能块的实例路径。

  • 在应用程序中,检查功能块未被循环调用的原因。

  • 修复该调用,以便它能循环执行(至少在块正在使用时)。

SMC_BLOCKING_MC_STOP_WASNT_CALLED

在主动停止期间,相关功能块 MC_Stop 在当前周期中未被调用。

查看针对错误的操作 SMC_FB_WASNT_CALLED_DURING_MOTION

SMC_AXIS_NOT_READY_FOR_MOTION

该轴尚未准备好使用,无法执行所需的运动。

可能的原因:

  • 轴未处于相应运动的操作状态(例如, power_off 或者 errorstop)。

  • 轴处于错误状态并且所有缓冲运动都会返回此错误。

  • 轴线位于 stopping 状态(在活动 MC_Stop) 并命令进行新的中止运动。

检查轴的状态:

  • 轴是否处于运行状态 MC_Power

  • 轴是否在 errorstop 状态?如果是,则确定轴错误并进行纠正。

  • 轴状态是否与命令的运动相匹配?例如, MC_CamOut 仅当轴处于同步移动状态时才可指令。

SMC_FB_CALLED_FROM_WRONG_TASK

SoftMotion 该块是从与轴的总线任务不对应的任务中调用的。

因为 SoftMotion 块更改轴中的值,如果从总线任务以外的任务进行调用,则会出现不一致的状态。这会导致未定义的错误,此错误可防止这种情况发生。

  • 检查日志:受影响的轴和块实例已记录。

  • 从不正确的任务中删除呼叫。

SMC_DI_FIELDBUS_LOST_SYNCRONICITY

使用时发生 EtherCAT 如果从控制器到驱动器的帧没有按时(在定义的时间窗口(“SyncWindow”)内)接收到或者根本没有接收到,则使用分布式时钟。

可能的原因:

  • 实时问题:

    • 任务抖动过高。

    • 任务优先级 EtherCAT 任務太低。

    • 其他现场总线(例如, Modbus)或除了控制任务(例如,文件访问)之外的冗长操作 EtherCAT 任务

    • Modbus 在另一个任务中执行,但它使用的 I/O 通道也在 EtherCAT 任务。

    • 尤其是 Linux 操作系统,系统的配置(例如 IRQ 优先级)

  • EtherCAT 从属:连接中断、电磁兼容性(EMC)问题等。

检查行为的原因。以下功能可以帮助您:

针对实时问题可能采取的措施:

SMC_DI_SWLIMITS_EXCEEDED

轴沿正或负软件限位开关方向移动,并将以当前动态超过该限位开关。由于所需的制动距离也包括在计算中,因此在实际限位开关位置之前也会触发错误。

  • 检查在此位置范围内是否需要移动。

  • 如果需要,调整负向和/或正向软件限位开关位置。请参见 标签:常规

SMC_DI_HWLIMITS_EXCEEDED

正或负硬件限位开关已触发,并且轴沿此限位开关的方向移动。

  • 检查运动的指令位置。这不应超出硬件限位开关的位置。

  • 如果运动正常,则检查硬件限位开关的信号。

SMC_MOVING_WITHOUT_ACTIVE_MOVEMENT

没有主动运动,但是设定速度不等于零,并且轴处于遵循设定值的运行状态。

可能的原因:

  • 使用时 MC_PositionProfileMC_VelocityProfile, 或者 MC_AccelerationProfile,轴必须在此运动结束时停止,或者必须在同一周期内命令后续运动。否则将返回此错误。

检查问题原因:

  • 缓冲和混合动作的调用顺序不正确:调整调用顺序。有关更多信息,请参阅 运动功能块的执行顺序

  • MC_PositionProfileMC_VelocityProfile, 或者 MC_AccelerationProfile 已使用,但最后未达到静止状态:相应地调整配置文件,以便最后达到静止状态。或者改为使用 凸轮,它们涵盖了与这些功能块类似的用例,但更加灵活且更易于使用。