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 故障监控任务流程图