基于嵌入式Linux的PLC实时性任务的分析与设计

时间:2022-09-23 02:31:03

基于嵌入式Linux的PLC实时性任务的分析与设计

摘要:由于在PLC特别是数控领域的控制中,对于实时性的需求较高,基于这样的特性,必须强调控制任务的实时性,从另一个角度讲,对于系统的要求,需在实时域中实现和运行。该文根据数控领域的PLC控制及系统特点,将PLC控制设计作为RT-Linux的实时任务,分析其中的系统结构和实时性,从而保证PLC控制的实时性需求。

关键词:嵌入式linuxplc控制;实时

中图分类号:TP311 文献标识码:A 文章编号:1009-3044(2013)35-8109-02

1 概述

PLC可编程控制器是60年代末发展起来的一种新型的电气控制装置,它将传统的继电控制技术和计算机控制技术融为一体,被广泛应用于各种生产机械和生产过程的自动控制。

把计算机的功能完善、通用灵活等优点和继电接触控制简单易懂等优点结合起来,从而提供了继电器控制系统无法比拟的灵活性。并要求把计算机的编程方法和程序输入方法加以简化,使得不熟悉计算机的人也能方便使用。

以机床为例,机床需要将运行的状态按照一定的顺序进行工作,由继电器逻辑电路RLC(Relay Logic Circuit)完成。但由于体积大、功耗高、调试周期长、可靠性差等缺点,因此利用PLC中的数字运算电子系统,采用可编程的存储器进行逻辑运算和顺序控制各种机械和生产过程。

2 可编程控制器PLC控制概述

PLC在控制过程的一个扫描周期中,顺序扫描输入端的状态信息或输入数据,并存入状态寄存器。按先左后右,先上后下的步序,执行程序指令。执行完毕后,将状态信息转存到输出寄存器,从而实际输入,实现控制各物理继电器的通/断状态。

但不同的可编程控制器PLC中,由于I/O点数的不同,会影响外部扫描的输入端和输出端的数量。用户程序的存储空间,也在一定程度上影响了PLC的效能。PLC在一个扫描周期的过程中,通常以扫描1000步的用户自定义程序所需要的时间作为一个衡量指标。而这些可变因素,会随着PLC控制系统所使用的系统而产生不同的影响,从某种程度上说,系统的支撑、系统的延时以及系统的稳定性,也在影响着PLC的性能指标。

3 嵌入式Linux的实时性分析

在普通的工业生产控制系统中,由于输入输出端的数量不多,因此普遍会采用基于工业的PC系统,如图1所示,采用开关量I/O配合主机系统中的软件加以控制。

但是,如果在工业PC机中,采用的是单任务的操作系统,那么在控制的整个过程中,将会处于在一个单一的循环控制之内,较难实现过程化、模块化,系统一旦出现故障,可维护性较差。

笔者曾经在验证的过程中,采用PC机的多任务操作系统,结果发现Win32的API应用程序编程接口虽然可以预先定义一些函数,从而满足开发人员可以选择基于软件或者硬件来访问对象,但是在非实时的系统下,效率很低,不能体现出控制系统实时环境的调度和开发,不能满足PLC的实时控制用途。

一方面考虑到PLC控制系统的特殊性,另一方面也考虑到工业生产效率以及成本的因素,笔者选择了实时性较强的嵌入式Linux的操作系统来分析PLC的控制任务。

嵌入式Linux是在对传统Linux的操作系统进行裁剪,从而能针对在专用设备上运行的一种操作系统。Linux本身就具有开源性,性能较强,且容易移植。

PLC可选择嵌入式设备进行系统控制,最简单的嵌入式Linux系统只需要包括输入输出模块以及一些逻辑控制,在输入输出端数量不多的普通工业生产控制系统中完全可以胜任。

在嵌入式Linux系统中,内核小,效率高,用多级反馈轮转调度算法,它保证了每一个进程都有一种调度策略。当一个任务进入内核态运行时,一个具有更高优先级的进程,只有等待处于核心态的系统调用返回后方能执行,这将导致优先级逆转。

在Linux任务调度的过程中,只要有一个更高优先级的任务就绪,就将中断当前执行优先级较低的任务。可利用单调调度算法决定每个任务的优先级,从而调整任务的执行顺序。在内核中,存在两种不同的内核(可剥夺型内核和不可剥夺型内核)。在可剥夺型内核中,采用可抢占的优先级调度算法并添加时间片循环装置,可以使优先级相同的任务并行执行。如图2所示,如果在一个时间片中某一个任务没有完成,CPU必须释放,并将其放在同一优先级的最后一个任务。

4 嵌入式PLC的设计

通过分析,我们发现,嵌入式Linux系统在常规设计下,依然无法满足PLC实时性要求,但通过实时性设计,可以满足PLC实时性要求的系统。比如,在一个PLC机床控制系统中,要周期性的扫描100个输入端状态数据。从可靠性角度出发,要求系统对于任何一点扫描输入端的响应时间(T)不得大于一个单位时间t;而系统对单个扫描输入端的采集、处理、输出控制的实际响应时间为0.2t。如果依旧停留在常规的周期性循环扫描方式下,对某一输入端扫描的时间间隔为[Δt] =0.2×100=20t,[Δt]远大于T,是一个非实时系统。但如果将每个扫描输入端的扫描事件的查询方式变为中断输入方式,使某一扫描输入端的响应时间[Δt]降到0.25t以内,满足[Δt]≤T要求。这样在嵌入式Linux操作系统中就能实时地处理任何一个扫描输入端上的扫描事件,而成为一个实时控制系统。

在嵌入式PLC的设计中,PLC模块的核心问题是减少软件运行的平均时间。嵌入式系统中硬件CPU主频的提高可以加快指令的执行速度。PLC控制系统中,将PLC控制模块作为嵌入式系统中的实时模块之一,从而使得PLC控制模块的实时性要求和控制要求的响应时间可以相应降低。I/O的输入输出采用高速I/O口,从而通过实时任务来实现。PLC的设备驱动任务是在整个优先级中是最高的,响应时钟周期也是由硬件定时器产生,保证其实时性。

建立在嵌入式Linux操作系统的平台之上的PLC控制系统一般可以使用RS232接口、Ethernet、CAN总线来进行通讯。将响应的PLC应用程序源程序在Linux系统下进行交叉编译后下载烧写至嵌入式系统中。

5 结束语

由于PLC控制系统的特殊性,对实时性的要求比较高。嵌入式系统由于其实时性的特性可以作为PLC控制设计的平台。

嵌入式系统内核具有可裁剪性和可扩展性,对多种硬件支持,能够提高PLC 的运行速度和可靠性,并且支持多任务的控制策略,对PLC 的性能有了很大的提高。

嵌入式Linux系统下,可以将开发系统和PLC实时控制有机的结合起来,使得输入状态端的输入数据能够满足实时性的要求,保证实时任务准确、精确、及时的完成。

基于嵌入式Linux的PLC实时性任务的设计,可以使得控制系统相互衔接,在数控以及自动化设备领域应用较为广泛,在综合性应用的系统中也有一定的发展。

参考文献:

[1] 邵贝贝,刘慧银.微控制器原理与开发技术[M].北京:清华大学出版社,1997.

[2] 史宜巧,孙业明,景绍学. PLC技术及应用项目教程[J].北京:机械工业出版社,2009.

[3] 曹佃国,王强德,史丽红. 计算机控制技术[M].北京:人民邮电出版社,2013.

[4] 熊茂华,熊昕. 嵌入式Linux实时操作系统及应用编程[M].北京:清华大学出版社,2011.

上一篇:BLP模型及其改进方向 下一篇:基于数字图像处理的自动对焦算法的比较与分析