您现在的位置是:首页 > PLC技术 > PLC技术
施耐德Unity Pro的多任务内存结构
来源:艾特贸易2017-06-04
简介Modicon PLC 系统的 Unity 平台所支持的多任务主要包括: ● 1 个主任务,被分成 ST 、 IL 、 LD 、 FBD 、 SFC 语言 编写的程序段; ● 1 个快速任务; ● 0 ~ 4 个辅助任务; ● 1 个或多个事件
Modicon PLC系统的Unity平台所支持的多任务主要包括: ●1个主任务,被分成ST、IL、LD、FBD、SFC语言 编写的程序段; ●1个快速任务; ●0~4个辅助任务; ●1个或多个事件触发任务,每个任务只包含1个程序段。 主任务(MAST)仍然是应用程序的基础,每个任务的优先级是固定的。如图3-22所示。 图3-22 多任务内存结构图 这些任务彼此相互独立,并行方式执行, PLC的CPU安排执行过程中的优先级。 发生了一个事件,或快速任务扫描开始后,如果有较低优先级的任务正在执行,则这个任务被挂起。系统执行事件触发式任务或快速任务。较高优先级的任务执行完毕后,系统会自动找到中断点,继续执行前面所中断的任务。 (1)主任务(MAST) 主任务是应用程序的主要任务,用于执行主程序,以系统方式启动,其执行方式既可以是周期性的,又可以是循环式的。它是必需的,以默认的方式创建。 主任务( MAST)由代码段和子程序组成。主任务的每一个代码段都可以用LD、FBD、IL、ST或者SFC语言编写。子程序可以用LD、FBD、IL、ST编写,并可在任务代码段中调用。注意:虽然用SFC语言编写的代码段的数量不受限制,但SFC语言编写的代码只能用在主任务中。 用户可以选择循环式(默认选择)或者周期式( 1~255ms)方式来执行主任务。 主任务可以通过位和系统字来用程序进行控制;主任务常用的位和系统字如表3-15所示。 表3-15 主任务常用的位和系统字
主任务操作周期如图3-23所示。
图3-23 主任务操作周期示意图 主任务各阶段的任务如下: ●获取输入阶段:将与任务相关联的离散量模块和专用模 块的输入数据状态写到内存中,用户通过强制赋值操作 来修改该状态数值; ●程序处理阶段:执行编写的应用程序; ●更新输出阶段:根据应用程序所执行的结果,把输出位 或字写到与任务相关联的离散量模块和专用的模块中。 用户通过强制赋值的操作来修改输出的数值。 (2)快速任务(FAST) 快速任务( FAST)由代码段和子程序组成,用于持续时间较短的、周期性的处理任务。快速任务的代码段和子程序都可以用LD、FBD、IL或者ST语言编写,而不能使用SFC语言编写代码。子程序可在任务代码段中调用。 快速任务执行方式是周期式的,其优先级比主任务高。快速任务的周期是由系统用户配置确定的,其数值范围为1~255ms。但是,执行程序的时间必须尽可能的短,以避免低优先级任务溢出。快速任务通过位和系统字来用程序进行控制,其常用的位和系统字如表3-16所示。 表3-16 快速任务常用的位和系统字
(3)辅助任务(AUX) 辅助任务主要用于执行较慢类型的处理操作任务,其优先级最低,例如测量、过程控制、HMI、应用诊断操作等。在Quantum 140 CPU6系列和Premium TSX P575系列PLC上最多可编写4个辅助任务( AUXO—AUX3)。 辅助任务( AUX)由代码段和子程序组成。其代码段和子程序都可采用LD、FBD、IL或者ST语言编写,但不能使用SFC语言编写,最多可以编写64个子程序,这些子程序由任务代码段调用。 辅助任务执行方式是周期式的,其周期固定在10ms~2.55s之间。该辅助任务通过位和系统字来用程序进行控制,如表3-17所示。 表3-17 通过位和系统字控制的辅助任务
(4)事件触发任务 与上述几种任务不同,事件触发任务与周期不相关联。执行事件触发任务是由下列事件异步触发,可缩短应用程序的响应时间: ●EVTi:来自输入/输出模块,例如计数器阈值越限、离散输入的状态改变等; ●TIMERi:来自事件计时器。 这些处理任务的优先级高于任何其他任务。所以事件触发任务适用于那些需要极短的事件响应时间的处理任务。 事件触发任务是单代码段,它只含有一个无条件的代码段。它采用LD、FBD、IL或ST语言编写的。事件处理任务是异步执行的。在出现了某个事件后,系统会重新安排应用程序到输入/输出通道。 事件处理任务通过位和系统字来用程序进行控制,如表3-18所示。 表3-18 通过位和系统字控制的事件处理任务
例如,在多个任务处理的顺序执行中,主任务为循环执行模式;快速任务采取周期执行模式,且周期为20ms;以及事件处理,如图3-24所示。
图3-24 模式执行举例 系统为任务分配I/O通道: ●每个主任务、快速任务、事件触发任务读(在循环开始时)写(在循环结束时)分配给输入/输出。默认情况下,这些I/O通道分配给主任务; ●对于Quantum平台,远程输入/输出(RIO)只分配给主任务,且可为每个站点分配对应的程序段。而分布式输入/输出( DIO)都分配给主任务,不分配到这个主任务的单个程序段; ●对于事件触发任务,不仅可以分配与事件相关的I/O通道,还可以分配其他的I/O通道; ●对于Quantum平台,以I/O模块为单位分配通道;而对于Premium平台,则以I/O模块的通道为单位分配通道。
点击排行
