首页 理论教育 SIMOTION任务详解:系统任务和用户程序任务

SIMOTION任务详解:系统任务和用户程序任务

时间:2023-07-02 理论教育 版权反馈
【摘要】:总体来说,SIMOTION的任务分为系统任务和用户程序任务,下面对这些任务进行详细介绍。在这个任务中,由于工艺对象正在初始化,所以不能执行运动控制命令。SIMOTION包含有5个TimerInterruptTask,TimerInterruptTask_1~TimerInterruptTask_5,用于周期性程序的执行。事件驱动任务事件驱动任务为SystemInterruptTask和UserInterruptTask,当一个事件发生时,启动此类任务,执行一次后停止。UserInterrupt-Task在StartupTask和ShutDownTask执行期间不会被执行。

SIMOTION任务详解:系统任务和用户程序任务

总体来说,SIMOTION的任务分为系统任务和用户程序任务,下面对这些任务进行详细介绍。

1.系统任务

(1)用于通信

包括PROFIBUS、PROFINET IO网络的连接及IO处理,还有非周期通信,如Trace等。

(2)用于运动控制

包括IPO/IPO_2,Position Control(Servo)中执行的任务,当使用工艺包时,系统自动分配执行系统,用户程序不会影响工艺程序的执行。

2.用户程序任务

在用户程序任务中可以执行运动控制、逻辑控制和工艺功能等。用户程序任务主要包括:

(1)启动任务StartupTask

当SIMOTION运行模式从STOP或STOPU到RUN时触发StartupTask,该任务可以用于变量初始化和工艺对象的复位。在这个任务中,由于工艺对象正在初始化,所以不能执行运动控制命令。当此任务执行时,除了SystemInterruptTask外,其他的程序都不执行。

此任务结束,并且CPU达到RUN模式后,启动下面的任务:

1)SynchronousTask;

2)TimerInterruptTask;

3)MotionTask;

4)BackgroundTask。

(2)同步任务SynchronousTask

SynchronousTask的执行与所设置的系统时钟同步。SIMOTION中包括下列同步任务:

1)ServoSynchronousTask:与伺服时钟周期同步,在此任务中可以运行对时间有严格要求的任务。例如对I/O的快速响应程序,PROFIBUS DP通信数据的同步处理,伺服设备的设定值的修改。

2)IPOSynchronousTask/IPOSynchronousTask_2:与IPO/IPO_2周期同步在IPOSynchro-nousTask中,可以实现对时间有严格要求的任务,用户程序在插补之前运行,在此任务中可以执行一些对工艺对象的操作。

(3)时间驱动任务TimerInterruptTask

用于执行有固定循环周期的任务,在程序执行结束后自动重新执行。SIMOTION包含有5个TimerInterruptTask,TimerInterruptTask_1~TimerInterruptTask_5,用于周期性程序的执行。TimerInterruptTask在固定的周期内被循环触发,这个周期要设为插补周期的倍数。在此任务中可以实现闭环控制或者监控功能程序。

(4)事件驱动任务

事件驱动任务为SystemInterruptTask和UserInterruptTask,当一个事件发生时,启动此类任务,执行一次后停止。当一个系统事件发生时,SystemInterruptTask被调用。

SIMOTION包含有下面的SystemInterruptTask:

1)TimeFaultTask:当TimerInterruptTask运行超时时执行;(www.xing528.com)

2)TimeFaultBackgroundTask:当BackgroundTask运行超时时执行;

3)TechnologicalFaultTask:TO发生故障时执行;

4)PeripheralFaultTask:发生I/O错误时执行;

5)ExecutionFaultTask:执行程序错误时执行。

下列错误将启动ExecutionFaultTask中的程序,并且发生错误的任务将会被停止执行:

1)浮点数的错误操作,例如对负数取对数,错误数据格式等;

2)除以0的操作;

3)数组超限;

4)访问系统变量错误。

如果SystemInterruptTask被触发,并且它没有被分配程序,那么CPU会停机。对于下面的任务,如果发生了错误,可以在ExecutionFaultTask中用命令重新启动该任务:

1)StartupTask;

2)ShutdownTask;

3)MotionTask。

如果下面的任务发生了错误,在ExecutionFaultTask结束后CPU会停机,并启动Shut-downTask:

1)BackgroundTask

2)TimerInterruptTask

3)SynchronousTask

4)ExecutionFaultTask和ShutdownTask中的编程错误会导致系统立即停机。

当一个用户自定义的事件发生时,UserInterruptTask将被调用。SIMOTION共包含有两个用户中断任务:UserInterruptTask_1和UserInterruptTask_2。必须指定UserInterruptTask的条件,当条件满足时,执行UserInterruptTask中的程序。如果同时触发两个中断任务,UserIn-terruptTask_1将在UserInterruptTask_2之前被执行。如果使用UserInterruptTask,那么也必须使用IPOsynchronousTask,因为UserInterruptTask的条件需在IPO周期中检查。UserInterrupt-Task在StartupTask和ShutDownTask执行期间不会被执行。

(5)自由运行任务

自由运行任务在自由执行等级中执行,包括MotionTask和BackgroundTask。MotionTask用于运行顺序执行的命令,例如运动控制的命令等,共有32个(MotionTask_1~Motion-Task_32)。MotionTask通常通过用户程序的任务控制命令(例如_startTaskID,_stopTaskID)来启动或停止任务,也可以通过设置为CPU在达到RUN模式时自动启动。可以通过_get-StateOfTaskID命令查询任务运行的状态。MotionTask只执行一次,没有时间监控,也就是说MotionTask中的程序可以无限期的执行。MotionTask在执行完或者是系统达到STOP或STOPU模式时停止。如果有等待命令(Wait for condition),任务将被挂起,在IPO周期内检查设置的条件,当条件满足时任务将继续执行。

BackgroundTask用于非固定周期循环程序的执行。在StartupTask结束后开始执行,在程序结束时自动重新执行,适合于执行后台程序或逻辑处理程序等。BackgroundTask的循环时间会被监控,一旦超时,会触发TimeFaultBackgroundTask,如果此任务中没有分配程序则会造成CPU进入停机模式。

(6)ShutdownTask

ShutdownTask在CPU从RUN模式到STOP或STOPU模式时执行一次。可以执行例如设置输出点的状态或轴的停止命令等,此任务不会在系统失电时执行。另外,还需要设置ShutdownTask的监控时间,过了设置的时间后CPU会自动切换到STOP模式。

免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。

我要反馈