曹立峰,柴君飞,曹广志
(徐州重型机械有限公司,江苏 徐州 221004)
电子信息产业的迅猛发展,为工程机械领域带来了新一轮的革命。PLC、嵌入式系统、智能化控制、分布式控制等技术在工程机械领域的应用,引领着工程机械逐步走向高端化、智能化。
工程机械领域内对于控制系统的应用并不算高端,现有工程机械领域,比较主流的是采用16 位CPU的控制器,存储系统为1~2M的ROM、2~16M的RAM,外部接口资源以开关量、PWM(脉宽调制) 以及通讯(CAN、RS232)等为主,个别简单的工程机械产品的控制系统还停留在8 位的单片机上。
这些控制器多有一个特点,即由于CPU、存储系统的限制,一般无操作系统。
图1
由图1 可以看出,控制程序直接运行在硬件之上,由于缺少操作系统的支持,控制程序一般都是以单任务的形式运行。
不可否认,针对于某一项应用,精细推敲的应用程序也许效率非常高,但对于一般开发人员而言,带有操作系统的控制器无疑可以提高资源的利用率,尤其在外部资源不断增长、产品可靠性和进入市场时间更重要的今天,如果每个应用项目都要从最底层开始做起,显然效率非常低。
RTOS(Real-Time Operating System)即“实时操作系统”,简单地说,实时系统定义为:在指定或确定的时间内可以完成系统功能和外部或内部、同步或异步时间做出相应的操作系统。
一般RTOS的结构如图2 所示。
图2
一般支持操作系统的控制器硬件都具有以下特点:强大高速的CPU、大容量的存储系统、丰富的外围接口资源等。这类控制器多是属于高端控制器,在运算、处理等方面具有非常大的优势。
图3
对比图1、图3,带有RTOS的控制器硬件与应用程序之间多了一层系统层将应用程序与硬件隔离开,同时支持多个应用程序并行。
由于RTOS 将硬件层隔开,使得应用程序的设计和扩展变得容易,不需要大的改动就可以增加一些新功能;同时,将单个应用程序分割成多个独立的任务模块,使得开发、管理变得更容易,设计过程被大大简化;而且,由于实时系统对实时性要求苛刻的时间都可以快速、可靠地响应,极大地提高了系统的可靠性。
虽然RTOS的运行需要额外的存储系统和占用一部分CPU 资源,但在电子技术飞速发展的今天,半导体器件越来越便宜,这些额外开销与系统整体性能的提升相比无疑是值得的。
下面以大吨位汽车起重机为例,通过对比来体验RTOS在系统性能、安全性及可靠性方面带来的提升。
3.3.1 大吨位起重机基本控制策略的介绍及分析
大吨位起重机控制系统基本分为两大块:一是力矩限制器功能;二是动作控制功能。
由于力矩限制程序的计算量非常大,因而需要专用控制器,另外,动作控制一个单独的控制器。基本控制过程如下:首先动作控制程序采集输入信号;然后通过输入信号判断动作的执行情况;确定了将要动作但不能马上输出,还要通过各种检测装置判断是否允许输出,即执行安全策略;最后将没有危险的动作控制输出(如图4)。
图4
假如力矩限制器与动作控制器之间采用总线连接,忽略总线传输数据的时间,那么整个控制流程中时间占用最多的是:力矩限制器计算程序、动作控制程序及安全策略三个部分。其中,由于采用独立的力矩限制器,动作控制所占的时间和力矩限制器计算程序几乎决定了系统的相应速度。
依据实际应用情况,进一步分析各个部分所占用的时间:力矩限制器程序执行时间约为200ms;输入信号采集及输出调节约各占50ms;安全策略约占100ms;动作控制是程序的主体部分,依据动作控制的细化程度及硬件设备,执行一个周期的时间不同,如果动作控制的精细化程度很高(具有复杂的数学运算),执行周期约为200ms,最坏情况可能达到1000ms。
3.3.2 支持RTOS的控制器与普通控制器在应用上的对比
(1)依据上述程序的执行时间,模拟程序在普通PLC控制器上的执行情况(模拟最好情况),如图5。
由图5 时序图中可以看出,即便是力矩限制器计算程序与传输过程配合得正好,也需要400~1300ms。正常的程序执行过程中也是可以接受的,但是如果出现危急情况,控制程序也需要同样的时间(600~1500ms)相应。在最极端恶劣的情况下,如果复杂的动作控制程序模块有缺陷,恰好动作控制出现无响应,那么安全策略不会得到执行,输出模块一直维持上一个循环周期的输出。此时将严重危及设备及人员的安全。
图5
(2)如果采用支持RTOS的控制器进行模拟,我们设定安全策略及输入输出模块必须在100ms的时间内予以相应,此时的时序图(模拟最坏情况)如图6 所示。
图6
由图6 可以看出,我们设定了几个模块的最长响应时间,即使动作控制模块不响应,由于有实时系统的调度,输入、输出、安全策略三个模块依然会每隔100ms 响应一次,图6 模拟了最坏的时序情况(灰色部分标识)。
最坏的情况:力矩限制器计算出当前工况后,输入模块100ms 后响应,此时不论动作控制模块是否完成,再过100ms 安全策略模块也一定得到响应,再过100ms 后输出模块也得到响应。所以在最坏的情况下,一旦力矩限制器或其它输入情况检测到有危险情况,程序最坏也能在500ms 内得到响应并停止危险动作。
(3)通过对比可以看出,支持RTOS的控制器在最坏的情况下,也能够在500ms 内得到响应;而普通PLC 控制器在正常情况下也需要600~1500ms 得到响应,在最坏情况下可能不响应。因而,支持RTOS的控制器的优势非常明显。
由于RTOS 可以使实时性要求非常苛刻的时间都得到快速、可靠的处理,可以调度硬件资源尽最大可能满足功能的要求,因而可以极大地提高系统的可靠性和效率。在RTOS 环境下开发一个复杂的应用程序,可以依照软件工程中低耦合的原则,将程序分解成若干个任务模块并行开发,各个模块的修改升级对其它的模块影响很小,可以极大地提高开发效率,缩短开发周期。
在硬件方面,由于电子技术的飞速发展,CPU、存储等半导体器件越来越便宜,硬件成本也在降低。所以,支持RTOS的控制器正在成为市场的新宠,受到越来越多的青睐。
[1]LIQ,et al.Real-Time Concepts for Embedded Systems[M].CMP Books,2003.
[2]王学龙.嵌入式VxWorks 系统开发与应用[M].北京:人民邮电出版社,2003.
[3]杜春雷.ARM 体系结构与编程[M].北京:清华大学出版社,2003.