触发示例2:涂胶过程
这 Robotics_Trigger_Advanced.project 这里描述的示例项目位于安装目录中 CODESYS 在下面..\CODESYS SoftMotion\Examples。
触发器可用于在路径上的特定位置执行操作,例如打开和关闭涂胶喷嘴。
该示例包括以下组件:
配置有保证的轨迹预测
fPlanningForecastDuration参数来自SMC_TuneCPKernel功能块。不同触发器的命令。这里,使用了所有三种定义路径位置的可用方法(参见 SMC_TriggerPositionType)。
使用具有时移功能的触发器。示例应用程序包含
TriggerWithTimeShift功能块,它可以通过时间偏移(更早和更晚)对到达路径位置做出反应。
这些组件显示在粘合过程的示例应用程序中。执行下图中红色显示的运动(使用混合)。

触发器已在绿色标记的位置定义:
位置1:到达该位置前0.05秒打开涂胶装置。
位置 1:到达该位置时打开紫外灯。
位置2:到达该位置后,将供胶容器填满。
位置3:关闭涂胶装置,到达该位置前0.05秒停止向供胶容器注胶。
位置 3:到达该位置 1.5 秒后关闭紫外灯
应用程序的结构
该应用程序由以下部分组成。
GlueApplication:该程序包含示例应用程序,展示如何使用触发器进行粘合过程。Planning_PRG:在此程序中,配置了轨迹预测。TriggerWithTimeShift:该功能块包含时移触发器的逻辑,并用于GlueApplication示例程序。Trace:轨迹显示了轴的动态以及各轴的输出GlueApplication由触发器切换的程序。
预测的配置
如果您想在达到触发之前尽早做出反应,例如 0.05 秒之前,那么 fPlanningForecastDuration 来自 SMC_ 的参数SMC_TuneCPKernel 功能块必须设置为至少 0.05 秒。由于该参数对延迟有直接影响,因此其值不应大于必要的值(请参阅文档 f规划预测持续时间)。注意 SMC_TuneCPKernel 必须在 SoftMotion 规划任务。因此,配置不在主程序中执行 GlueApplication,但在 Planning_PRG 程序。
在此示例应用程序中,需要在到达某个位置之前最早 0.05 秒评估触发器。为此,参数fPlanningForecastDuration=0.05 设置为 Planning_PRG 程序。
功能块:TriggerWithTimeShift
这 TriggerWithTimeShift 功能块提供了使用触发器的简化界面。此外,还可以定义时移,以便触发器可以在到达某个位置(正值)之前以及到达某个位置(负值)之后做出反应。根据应用中所需的时间精度,到达触发的反应可能如下:
所需的时间精度 >= 总线任务周期:在这种情况下,
TriggerWithTimeShift.TriggerReachedThisCycle可以使用输出。所需时间精度 < 总线任务周期:在这种情况下,准确的剩余时间
TriggerWithTimeShift.TriggerTime直到达到触发即可使用。
在内部, TriggerWithTimeShift 使用 SMC_GroupPrepareTrigger 和 SMC_GroupReadTrigger 功能块。
命令触发器
在里面 GlueApplication 程序、运动和触发器受到命令。调用顺序对于触发器来说特别重要,因为触发器使用 SMC_GroupPrepareTrigger 被分配给同一循环中命令的下一个运动。因此,在每次应用中都需要注意以下几点:
用于命令触发器的功能块始终在运动功能块之前调用。
触发器和相应的运动始终在同一周期内发出命令。
触发器使用以下所有类型 SMC_TriggerPositionType:
位置 1 处的触发器使用相对距离的定义 (
SMC_TriggerPositionType.MvtRelative)和位置 0.5。由于相应移动的距离为 10,因此触发器位于 X=5 处。位置 2 处的触发使用以用户单位 u 表示的距离定义(
SMC_TriggerPositionType.MvtDistance) 和位置 5。因此,触发器也位于 X=5。位置 3 处的触发器使用与平面 (
SMC_TriggerPositionType.PlaneIntersection)。该平面已定义为触发器位于 X=5。
GlueApplication 有 EnableGlue, EnableUVLamp, 和 RefillGlueStorage 输出。这些在适当的触发器处切换 GlueApplication.EvaluateTriggers()。可以在跟踪中监视和评估这些输出的运动和状态。