事件任务机制¶
1.1 简介¶
本章主要介绍一种可以实现实时性要求比较高的简单工艺需求功能,即事件任务机制,又称Event&Task机制。当满足事件设置的条件要求,控制器会立即去执行对应的任务,保证事件和任务在同一个中断周期执行。
1.2 指令列表¶
| 指令 | 说明 |
|---|---|
| GTN_ClearEvent | 清除用户添加的所有Event事件。 |
| GTN_ClearTask | 清除用户添加的所有Task任务。 |
| GTN_ClearEventTaskLink | 清除所有已建立的Event与Task之间的链接。 |
| GTN_AddEvent | 增加Event事件。 |
| GTN_AddTaskPro | 增加Event条件满足时触发的Task任务。 |
| GTN_AddEventTaskLink | 建立Event与Task之间的链接。 |
| GTN_GetEventCount | 读取用户添加的Event事件的数量。 |
| GTN_GetEvent | 读取用户添加的Event事件的类型。 |
| GTN_GetEventLoop | 读取用户添加的Event事件的循环次数。 |
| GTN_GetTaskCount | 读取用户添加的Task任务的数量。 |
| GTN_GetTask | 读取用户添加的Task任务的类型。 |
| GTN_GetEventTaskLinkCount | 读取用户建立的事件任务链接数量。 |
| GTN_GetEventTaskLink | 读取事件任务的链接信息。 |
| GTN_EventOn | 使能Event事件检测。 |
| GTN_EventOff | 停止Event事件检测。 |
| GTN_GetTaskSaveMcVarResult | 从运动控制器读取和用户添加的Task任务相关的结果变量。 |
1.3 重点说明¶
| 术语、缩写 | 解释 |
|---|---|
| Task | 运动控制器任务,用户可以根据自己的需要添加相应的任务类型,当与任务链接的Event触发时执行该任务。 |
| Event | 运动控制器事件,用户可以添加自定义的事件类型,当所添加的事件触发时,执行与之链接的Task任务。 |
| Link | 事件和任务之间的链接。当Event触发时,自动执行链接的Task。 |
用户可以通过指令GTN_AddEvent增加Event事件,通过指令GTN_AddTaskPro增加Task任务,然后通过GTN_AddEventTaskLink将事件和任务绑定。运动控制器根据事件和任务的绑定关系实现用户设置的工艺需求,即当绑定的Event事件条件满足后马上去执行对应的Task任务,能保证实时性。一个Event事件可以关联多个Task任务,一个Task任务也可以和多个Event事件关联,但是1个Link只能绑定1个Event和1个Task。如图所示,按照下图需求需要9个Link资源。
Trigger触发改变位置
例程请参考
定时调整MoveJog轴角速度示例
以下案例演示了一种Event&Task的使用场景,轴1进行MoveJog运动,轴2在距离轴1的半径为R的圆形轨迹上运动,进行加工,半径R可能随时间的变化而变化,而轴2加工的线速度需要恒定,此时需改变轴1的角速度,使得轴2的线速度保持恒定。使用Event&Task功能实现该目标:设置Event为10ms触发一次,设置Task为调整轴1的角速度,实现每10ms检测一次轴2线速度是否恒定,并调整轴1的角速度。
例程请参考
同一Event挂不同Task
例程请参考
不同Event挂相同Task
例程请参考