理论教育 控制器项目的运行结构分析

控制器项目的运行结构分析

时间:2023-06-30 理论教育 版权反馈
【摘要】:控制器中的I/O处理任务,被定于优先权限等级为6,这意味着如果运行动作反映要求较快,一旦被调用不允许被I/O处理中断,那么此任务的优先权限等级就要设定为小于6。

控制器项目的运行结构分析

控制器项目运行结构有三层,即任务、程序和例程,控制器项目最上层的是任务,用来决定执行顺序和调用关系,任务下面的程序是含有内部数据库完整的执行单元,程序下面的例程则是不同编程模式的执行代码和执行体,如图3-15所示。

1.控制器项目的任务

控制器支持多任务,这些任务的执行具有基于特定标准的预定和优先顺序,控制器CPU对它们的处理时间如下:

●任何时候控制器只在执行一个任务。

●一个正在执行的任务可以被另外一个任务中断。

●在控制器执行一个任务时,只有其中的一个程序在执行。

控制器支持如下三种类型的任务:

●连续任务:连续任务是一种背景运行,当没有被控制器中诸如运控、通信、周期任务和事件中断任务的其他任务中断时,一直执行连续任务中的程序,且连续任务在所有的时间运行,一旦完成了全扫描,则重新开始新的一轮

扫描;一个控制器项目可以不设定连续任务,如果设定则只能有唯一的一个。

●周期任务:周期任务按照指定的周期时间执行任务,通常用于需要定时完成的执行代码,或多次完成的执行代码,可设定周期时间为0.1ms~2000s,且较低优先权的周期任务可能被其他任务中断;每个周期执行一次;中断结束后返回到原先离开的控制位置。

●事件中断任务:事件中断任务仅当指定的事件触发时调用执行,通常用于立即执行的需求,具有不同的触发方式,且较低优先权的事件触发任务可能被其他任务中断;每逢调用执行一次;中断结束后返回到原先离开的控制位置。

978-7-111-46407-5-Chapter03-15.jpg

图3-15 控制器项目运行结构图

事件的触发源有离散量输入信号的变化,从0变为1或从1变为0;模拟量刷新的数据,刷新后的数据跟旧数据不同;确定的运控操作,由运控操作引起;Consumed标签,由控制器之外的与之成对的Produced标签触发引起;EVENT指令的执行,梯形逻辑扫描按梯级条件执行的指令。

任务类型的选择,取决于应用的需求。针对以下几种需求,应对如何选择任务的类型。

对于常规的测试监视,或时序逻辑控制,则选择连续任务,如:

●监视一个饮料罐的液位,当液位达到设定值的时候,某个阀门打开。

●采集过程处理系统的参数,然后送去显示。

●完成3步顺序控制,用来改变某箱子的位置。

确定的精确时间执行的动作,选择周期任务,如:

●每隔0.1s,系统必须检查工作臂的位置,并要计算位置变化的平均速率,用于决定制动压力

●需要每隔20ms读一次纸卷的厚度。

发生事件才执行的动作,选择事件中断任务,如:

●一个打包生产线的操作,当盒子到达位置的时候,将已关闭的盒子粘贴好,有关粘贴的立即执行动作,被编写在一个调用任务的粘贴例程中。

●在高速装配的运行中,用光电传感器探测不合格产品,当传感器探测到不合格产品时,机器必须立即转移这个不合格产品。转移不合格产品的相关执行动作被编写在调用任务的例程中。

●在一个发动机测试台,每当数据取样之后,立即采集并存档每一个模拟量数据。

●接收到新的产品数据后,要立即装载到工作站

●一个糖果条包装线,必须确定在每个条的正确位置开孔,登记传感器探测到登记标志,检查轴的精确,并执行任何需要的校正。

●粘贴的工作站调节应用胶的总量,去补偿轴的速度变化,在运控规划执行之后,检查轴速度的命令,并更改胶的总量。

●在生产线,如果探测到任何不安全条件的程序,整个生产线必须关闭。不论何种不安全条件,这个关闭过程都是相同的。

控制器中任务的优先权等级选择是1~15的序号,号数越低优先权越高,用户在周期任务和事件中断任务中可以选择优先等级,这并不表明控制器项目中的任务执行顺序必定依照这个安排,控制器中还有一些特定的任务执行,如运控规划,这些任务的优先权等级高于用户的任务设定。

同等级优先权限的任务被同时调用时,任务将按1ms交替执行。

连续任务是优先权限级别最低的,可以被控制器中所有的任务中断。

控制器中的I/O处理任务,被定于优先权限等级为6,这意味着如果运行动作反映要求较快,一旦被调用不允许被I/O处理中断,那么此任务的优先权限等级就要设定为小于6。默认的任务优先权限等级是10,如果没有特意更改,通常任务的执行会让位给I/O处理。

任务调用的重叠会引起意想不到的结果,让人感觉到控制器没有按照编程意愿执行,查看和研究程序逻辑是不能解决问题的,应该关注任务调用的成功与否。

如果上面谈到的因素都不能确定,最重要的是在调试的时候要关注任务调用重叠状态,这个可以通过编程软件的在线任务监视功能来获得。如果需要长时间的观察测定,也可用编程指令GSV获取这个参数,显示在操作员界面或记载在某个指定标签中。

在设定任务的工作时间,要考虑留有充足的时间,让CPU处理非预定性的数据通信,非预定性数据通信定时占用连续任务的一部分时间,这个百分比的关系可以由用户自行设定,此参数的设定考虑在控制器属性中将会谈到。

如果控制器项目中没有指定连续任务,那么周期任务和事件中断任务执行所余留的时间便用来完成非预定性数据的通信,在设定周期任务的周期时间和测试其执行时间时要有所考虑。(www.daowen.com)

如果非预定性数据通信没有足够的时间,会表现出人机界面的访问数据时断时续,或不正常地延长预设定的操作时间,或者编程软件连线控制器时也会非常缓慢,甚至不能联机在线。这些现象常常被人们误认为是网络的问题,实际上是控制器通信不能响应的原因。

2.控制器任务的程序

每个任务中最多可存在100个程序,程序是一个完整工作单元,含有主例程、故障例程和程序数据库。

主例程可调用其他子例程,是程序启动的入口,除了创建项目时连续任务的主程序中有一个默认的主例程外,其他程序中的主例程都要创建和设定。

故障例程只有在执行代码扫描时发生故障时才被调用,在故障例程中可以编写一些有关程序运行产生的故障,进行处理的梯级逻辑,注意这与控制器故障处理的任务是有所不同的。

程序数据库存放的是本地标签,只有本程序内的例程才可以访问。这样可以为控制器的数据隔离和分类,保持有序的数据。

一个任务树形分支下所显示的程序排列就是程序执行的顺序,如果调试过程需要调整,可在任务属性的组态选项卡重新排列。

如果使用了Phase的功能,则可以创建Phase,Phase与程序的结构是相似的,运用是同等的,Phase和程序共用100个资源。

3.预定程序和非预定程序

预定程序位于任务中,必须执行并从头到尾扫描完成,是正常情况。

非预定程序不在任何任务中,被特别地放置在Unscheduled Program下,非预定程序跟随控制器项目下载到控制器内存中,控制器会校验程序,但从来也不执行。通常开发人员将与项目有关但暂时不执行的程序寄放在此处。

预定程序和非预定程序是可以重新配置的,在任务中组态改变即可,在任务属性中的管理页面可以调整。

4.控制器程序的例程

例程是编程和执行的最小集合体,由执行代码组成,选择例程的类别将决定采用什么样的编程语言,Logix控制器的编程语言有如下几种:

梯形图逻辑:

—连续或平行执行的多个运行(非顺序)。

—布尔量或位运行。

—复杂的逻辑关系运行。

—MSG指令或通信处理。

—机器互锁关系。

—服务或维修人员为了查找机器或过程的故障而中断的执行顺序。

●功能块:

—连续的过程控制和驱动控制。

闭环控制

—环流的计算。

●文本语句:

—复杂的算术运算。

—特殊的排列或表格的循环处理。

—ASCII码字符串或协议的处理。

●顺序功能流程图

—高水平的多操作管理。

—重复的运行顺序。

—批次处理。

—用文本语句编写的运控处理。

—状态机器运行。

在集成架构中型系统中,用得最多的恐怕还是梯形图逻辑的编程语言。

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

我要反馈