首页
业界动态
市场趋势
新品速递
技术文章
解决方案
首页
»
业界动态
» 基于嵌入式实时操作系统的现场控制系统
基于嵌入式实时操作系统的现场控制系统
作者:
时间:2009-05-10 13:18
来源:
1
引言
今天,随着控制、计算机、通讯、网络等技术的发展,信息交换领域正在迅速覆盖从工厂的现场设备层到控制、管理的各个层次。基于以太网的工业控制网络具有数据传输率高、可靠性好、易维护、可远程传输、互操作性好等优点。随着互联网技术的普及与推广,以及网络通信速率的提高、交换技术的发展,使得它受到了全球的拥护和软硬件支持,并得到了迅速发展和普及。本文设计和开发了具有工业以太网功能的现场控制设备。
2
嵌入式操作系统的选择
实时嵌入式操作系统的种类繁多,大体上可以分为两种:商用型和免费型的。商用型的实时操作系统功能稳定、可靠、有完善的技术支持和售后服务,但往往价格昂贵,如
QNX
和
Windows CE
等。免费型的实时操作系统在价格方面具有优势,目前主要有
Linux
和
μC/OS-II
。由于商用实时操作系统的成本太高,采用免费软件是最好的选择,因此嵌入式实时操作系统最终选择了
μC/OS-II
。
3 μC/OS-
Ⅱ
下多任务程序的设计
程序的一开始通过一些宏定义对与
μC/OS-
Ⅱ
运行环境相关的一些配置参数、服务器的
IP
地址、网关以及子网掩码等局域网参数做了设置,主程序中负责硬件初始化,初始化实时多任务操作统,初始化
TCP/IP
协议栈,建立任务,为其分配优先级,激活各任务将其置为就绪态。然后在系统内核
RTOS
的调度下,各个任务按照优先级的不同依次投入运行,任务运行结构如图
1
所示。
图
1
任务运行调度示意图
3.1
故障监控任务
监控任务用来监视当前程序运行状态,它的优先级为最高,它判断前一个运行任务的运行状态,如果有错误发生就采取相应的纠错方案,否则退回到等待状态。被监视任务正常运行时其执行时间是可预估的,被监视任务在其即将运行完毕时向监视任务发送消息说明自身运行正常。被监视任务运行时,监控任务处于等待态,等待被监视任务给它发送消息,等待时间被设定为预计的任务正常运行所需的最大时间。若等待时间内监视任务收到消息,则认为发送消息的任务运行正常,依照各任务执行顺序的先后下一任务开始运行,监视任务等待下一任务发送的消息。若等待时间已过,监控任务仍未收到消息,则系统的时间管理函数将强行把监视任务设置为就绪态。因为监控任务的优先权是最高的,监控任务将首先投入运行,它将抢占对
CPU
的控制权并采取相应的纠错方案,进行相应的故障处理,从而避免死机的发生。任务实现的流程图如图
2
所示。
图
2
故障监控任务流程图
3.2
模拟量输入输出与数字量处理任务
模拟量输入输出任务属于周期性执行的任务。它包括几个组成部分:模拟信号量的输入,控制算法的运算,产生控制输出。任务首先从物理通道读取经过
A/D
转换后的传感器信号,对其进行平滑滤波、工程单位转换和报警检测后与控制给定值进行比较,其误差经过内置的
PID
控制功能块运算后,得到相应的控制量,此控制量经过工程单位转换后直接送给
D/A
转换输出给现场执行机构,控制其输出,从而实现了现场化的闭环控制。
数字量指的是变量的输入或输出值只能是
0
或者
1
这两种状态中的一种。与模拟量输入输出任务相同,数字量处理任务也属于周期性执行的任务,它负责读取现场开关量状态并完成对离散输出的控制。相对来说读取数字量输入是比较简单的任务,对数字量的基本操作,就是微处理器的相应的端口进行读写。比较复杂的是对于脉冲累计型的输入信号和要求以预定义的一定频率转换输出状态的输出信号,在嵌入式实时操作系统下可以通过设定任务的执行间隔来得到简化。
3.3 Web Server
守护任务
服务器功能是通过
Web Server
守护任务来实现,它的服务是被动的,需要用户对它进行访问,然后响应用户的请求。系统通过监听来自客户机的连接请求,一旦监听到连接建立请求并建立连接后,接收来自客户端的数据,并根据相应的命令返回所请求的页面作为响应。任务实现的流程图如图
3
所示。
图
3 Web Server
守护任务流程图
3.4
通讯任务
网络通信任务是基于
C/S
模式的,即客户
/
服务器模式。现场设备作为服务方,它在等待客户的请求,提供数据和信息,客户方是控制方,它可以运行于工业现场的同等现场设备,也可以是远程浏览器,客户方提出请求,对应着双方约定好的命令,现场设备在验证命令后,开始根据不同的命令字发送相关数据或者修改本地参数变量。通讯任务主要完成两方面的任务,一方面考虑到工业现场中,不同的控制节点之间有相互数据交换的需求,另一方面用于响应客户端浏览器中嵌入的
applet
通过
Socket
连接向服务器请求实时数据的请求,二者的区别在于通过不同的通信端口向服务器请求数据。
通讯任务主要通过
Socket
编程实现,现场设备控制器和现场设备之间的通信采用
TCP
协议,通信端口选择
1000
;而浏览器内嵌的
applet
与服务器的通讯则选择
2000
端口。应用于工业现场的程序应该是
“
健壮
”
的,然而在实际中,已经打开的
TCP Socket
连接随时可能会中断,原因是多方面的,可能是网络问题引起的连接超时,或者是接收端发出了
RST
重置标识或放弃连接等等。因此在应用程序中设计了一个状态机检测机制,随时检测
TCP Socket
上的连接状态,根据当前连接的不同状态采取相应的处理方法,这样就增强了程序的
“
健壮性
”
。程序中先后对两个端口的
Socket
连接进行监视并根据其不同状态转入不同条件下处理,由于对两个端口的操作原理基本相同,区别在于
Socket
连接建立后,自定义的通信内容的不同所引起的服务器对其响应的不同。
3.5
电子邮件服务任务
电子邮件服务通常情况下处于休眠状态。当有报警发生,由监控任务将其投入运行,一旦执行完毕,自动删除所在任务。通过电子邮件,系统可可以主动地发送信息。守护任务通常处于休眠状态,只有当到达系统发送日志的时间或者系统异常时,由相应的任务启动。在系统正常的情况下,定时向企业数据库发送系统运行日志。当有系统异常发生时,守护任务通过
Internet
向系统管理和维护人员发送
E-mail
报警,通知其对系统进行维护。任务实现的流程图如图
4
所示。
图
4
电子邮件服务任务流程图
4
嵌入式
Web Server
中服务器与客户端交互技术的实现
嵌入式
Web Server
功能块主要是通过
CGI
程序来获取用户的请求、查询条件并利用应用程序为其提供后台服务,结果使用
HTML
方式描述,并直接回送到客户端的浏览器。
CGI
是
Web
服务器在调用外部程序时的接口规范协议,它规定了一套标准的参数格式和环境变量,扩展
Web
服务器的功能.使之能够执行一些
Web
服务器本身不能完成的任务,如与各类应用服务器通讯、访问数据库等。这里我们通过
CGI
和
HTML Form
机制可以从浏览器中得到用户组态和控制输出等简单操作的输入信息。作为
Web
服务器外部进程运行的
CGI
程序与
Web
服务器之间的通讯属于进程的通信,开销大,速度低。当有多份并发的同样请求时,必须为每个请求建立一个进程;若
Web
服务器将重复收到多个同样的请求,必须不断重复准备地址空间、建立运行进程、回收空间、撤销进程的过程。因此与当前流行的
ASP
、
JSP
和
PHP
方式相比,
CGI
的方式的进程本质上效率不高。但是
Dynamic C
只支持
CGI
接口,而且从工业控制的实际情况出发,在工业以太网内部对于现场设备的访问与商用
Web
服务器不同,不会有太量请求同时并发执行的情况,因此
CGI
完全可以满足需要。
工业控制经常需要以动态曲线形式显示现场的各种数据,公共网关接口
CGI
虽然能够提供客户端浏览器与嵌入式
Web
服务器间的信息交换,但
CGI
只能为数据的传输提供通道、进行处理,而不具有绘制图型的功能;而浏览器页面描述语言
HTML
也由于其本身的局限性,只能提供静态的画面。为此浏览器端程序使用了
Java Applet
技术,程序功能是定时向现场设备发送
TCP
连接请求,并利用所获取的数据在浏览器网页上绘制动态曲线,目的是在客户端实现友好的交互式显示模式并提供实时数据。
本文作者创新点
:
本文深入研究了在嵌入式实时操作系统环境下控制软件的开发,通过对现场设备软件结构的分析,合理地对控制软件进行任务划分,使之成功的运行于嵌入式实时操作系统
μC/OS-II
上,并根据实时调度算法对多个任务进行统一管理和调度。
嵌入式
实时操作
现场控制
上一篇:μC/OS-Ⅱ在MSP430F149上的移植
下一篇:高效地驱动LED
相关推荐
Ctrack选用u-blox GPS和蜂巢式模组开发车队管理解决方案
无线和定位晶片与模组的瑞士领域厂商u-blox宣布,全球领先的车队管理和车辆追踪解决方案供货商Ctrack已选择u-blox为其嵌入式GPS和蜂巢式技术的策略伙伴。Ctrack是拥有超过一千名员工的南非厂商Digic
u-blox
嵌入式
Ctrack
2014-05-21
动作撷取追踪的嵌入式体感控制新技术
体感控制技术,主要是藉由辨识人的各种肢体运动,来达到与电子产品互动的目的,除了触控萤幕,让消费者以触控(Touch)方式来互动之外,在其他领域方面,非触控(Touchless)类的应用也逐渐普及,这些技术包含光学类的
嵌入式
体感控制
2013-12-06
嵌入式系统的固件更新
狼、羊、草过河问题(也有叫狼、羊、白菜过河之类的名字)是说:有一人带着一只部分驯化的狼(强调部分驯化是说明,人在场的情况下狼不会吃羊,不然要被指出逻辑漏洞了)、一只山羊和一些草来到河的左岸,欲乘一只很小的船过到河的右
嵌入式
Flash
RAM
缓冲区
2013-09-12
汽车电子向一体化集成、网络化与智能化发展
汽车上的电控单元越来越多,嵌入式系统集成控制技术、计算机技术和网络技术的发展和成熟,使汽车电子控制系统的一体化集成、网络化和智能化成为汽车技术发展的必然趋势。潘定海指出,通过一体化集成,协调和加强汽车系统的安全性、燃
汽车电子
嵌入式
2013-05-23
东芝开发嵌入式SRAM低功耗技术智能手机
东芝公司已经宣布了一项新的突破,应用于嵌入式硬件的智能手机和移动产品市场。东芝公司已经宣布成功研究了一个新的低功耗的嵌入式SRAM技术。新技术有望延长智能手机和其他设备的电池寿命。东芝表示,新的技术通过功率计算器和数
东芝
嵌入式
SRAM
2013-02-23
飞思卡尔基于ARM平台全系列MCU引领嵌入式应用新趋势
如果要回顾2012年以及展望2013年,您会选择哪几个词作为电子行业的关键词?相信还没人去做过这样的调查统计,不过不出意外的话,笔者相信至少有这样两个关键词必将入选最热门的关键词:智能终端,移动互联。您同意吗?
飞思卡尔
ARM
嵌入式
2013-01-29
在线研讨会
焦点