概述 缓冲模式 有些功能块有一个 BufferMode 输入用于控制运动的时间顺序。缓冲模式定义功能块是在非缓冲模式(“中止”,标准行为)下工作,还是在缓冲模式(“缓冲”)下工作。这两种模式之间的区别在于它们开始操作的时间: “非缓冲模式”:即使中断了另一个运动,运动命令也会立即生效。命令运动的缓冲区将被删除。 “缓冲模式”:移动命令等待,直到当前功能块设置其输出 Done (或者 InPosit
缓冲运动情况下的行为 当一个缓冲运动被命令后 MC_MoveAbsolute 或者 MC_MoveRelative ,缓冲的运动在前一个运动报告的同一周期中处于活动状态 Done 并达到速度 0。但是,缓冲运动的插补直到下一个循环才开始,因此循环结束时轴的速度等于 0。 当命令缓冲移动后 MC_CamIn ,缓冲运动在前一个运动报告的同一周期内处于活动状态 EndOfProfile . 缓冲运动的
混合情况下的行为 混合行为的基本性质 CODESYS SoftMotion 是在混合期间轴沿与缓冲运动期间相同的位置移动。唯一的区别是沿这些位置的速度。 这对于简单的情况是显而易见的。请参阅以下示例: 在某些情况下,轴独立于缓冲模式移动相同位置的特性会影响两个运动之间的有效混合速度。例如,如果修改上述示例,使第二个运动的最大速度过高,以至于无法在混合位置达到,就会出现这种情况。根据 PLCopen
运动功能块的执行顺序 当命令缓冲运动或混合运动时,命令后续运动的功能块实例不能早于命令前一个运动的功能块实例执行。 如果违反了这个命令,那么新的错误 SMC_MOVING_WITHOUT_ACTIVE_MOVEMENT 上报,轴切换到状态 Errorstop . 例 10 . 例子 movement1(); movement2(); 过程 . 正确的执行顺序 执行 movement1() 执行 m
使用一个功能块实例控制多个运动 单个功能块实例(例如,来自 MC_MoveAbsolute )不能用于控制多个缓冲/混合运动,只要它是 Busy 。 当功能块实例 Busy ,此实例的新缓冲或混合移动命令会导致错误 SMC_MORE_THAN_ONE_MOVEMENT_PER_INSTANCE 。 为了在短时间内指挥同一类型的多个缓冲或混合运动,需要多个功能模块实例。 本节内容如下 :
发生错误时的行为 如果发生轴错误(例如,轴切换到状态 Errorstop ),活动的运动将与所有其他接受的运动一起报告错误。 如果在活动运动的功能块中出现 FB 错误,则以后接受的所有运动也会报告错误。这与第 2.2.2 节的 PLCopen 形成对比,后者在 FB 错误后将继续执行后续命令。 本节内容如下 :
使用 MC_SetOverride 进行动态调整 主动运动和未来运动的动态(速度、加速度和加加速度)可以通过使用进行调整 MC_SetOverride 。动态调整始终意味着与最初命令的运动相比有所减少(不允许大于 1 的因子)。这允许机器操作员暂时停止运动( VelFactor = 0 )或以减少的动态值执行它,例如检查新的运动序列。 动力学的适应 MC_SetOverride 由此产生的轨迹调整
预报 预测功能可用于查询有关轴未来运动的信息。预测的一个重要应用是确定到达某个位置所需的时间(类似于触发功能)。另一个应用是确定轴在给定时间的位置和速度。这样,当执行器打开时,例如当胶合喷嘴打开时,可以补偿死区时间。它还可用于精确控制具有死区的执行器,例如根据未来 100 毫秒的轴速度控制胶合输出 要实现这些应用程序,您可以使用 SMC_获取旅行时间 和 读取设置值 配置预测持续时间后的功能块 S