任务/组织块的优先级决定了它们在系统中执行的时间顺序,高优先级的可以中断低优先级的处理,这个优先级在SIMOTION中是固定的,在SIMATIC中允许用户调整。
系统任务
系统任务中不能分配用户程序,它们按照设定的时钟周期执行系统工作,例如轴的位控、插补。SIMOTION中ServoTask、IpoTask、IpoTask_2这三个任务是Zui常见的,并且它们之间的周期比可调整。SIMATICT-CPU 中相应的是OB91”MC-Servo” 和OB92”MC-Interpolator”,目前周期比固定为1:1。以下均为用户任务,SIMOTION可以配置其中的程序执行错误时CPU的响应,直接停机或启动系统中断任务。SIMATICT-CPU无此设置,只能按系统规定响应。同步中断任务
这类任务是与指定的系统周期(总线通讯、位控、插补)同步产生的用户中断。通常具有Zui高优先级,我们可以把时间严苛的响应或计算,例如急停处理,报文修改等用户程序放在这里。SIMATIC T-CPU和SIMOTION都具有多个同步中断,但SIMOTION中的Servo_fast/IPO_fast系统周期,目前T-CPU还不支持。时间中断任务
这类任务是按照某种时间规定触发的用户中断,我们可以把需要以固定周期执行的程序放在这里。相较于同步中断任务,时间要求没那么严苛,例如监控功能。在SIMOTION中只能以一个常数来设定中断的时间隔时间,例如500ms,而SIMATICT-CPU还可通过指定日期时间作为中断条件。
事件中断任务
这类任务由系统事件(例如外设访问错误)或用户事件(例如打开防护门)触发。每个系统中断任务都对应一类错误,如果错误发生而无对应的中断程序,会导致CPU停机,我们至少要加载一个空程序。SIMOTION和SIMATICT-CPU都有类似的要求,特别是SIMOTION工艺对象错误中断任务中必须要有程序。
自由运行任务
SIMOTION中的MotionTask和BackgroundTask属于这类任务,其中MotionTask用于执行具有顺控特点的程序,例如轴的运动序列等;BackgroundTask用来处理循环扫描的程序,当CPU进入RUN状态后,自动开始执行。SIMATIC T-CPU中没有类似MotionTask这样的组织块,但从博途V19开始,可以通过运动解释器来和MCL语言快速实现运动序列的顺控编程。
启动/停止任务
这类任务仅在CPU工作模式切换到RUN或STOP时被激活,用户可以把一次性执行的初始化或备份程序放在这里。SIMATIC T-CPU目前没有停止任务。