摘要:在兖矿集团有限公司信息中心信息机房动力与环境监控系统项目中,需接入的监控对象包括信息机房的动力设备(开关电源、uPS、配电柜、电池等)和机房环境情况(温度、湿度、水浸、空调等),接人地点分散,接人信号类型和通信协议种类繁多,对数据采集设备提出了很高的要求。 |
数据采集软件对应在层次结构上,对应于应用层,在应用层之下包括基础服务和核心业务2层。基础服务层提供最直接的硬件设备的输入输出操作,核心业务层主要用于实现对应用任务的调度和执行。
4软件实现
上位通信、数据采集处理、配置和多任务内核处理4个任务是实现数据采集器软件功能的核心,限于篇幅不可能一详述。多任务内核的处理机制是整个软件功能能够实时、正确运行的基础,因此重点阐述多任务内核的处理机制和实现原理。
4.1多任务内核选择
数据采集软件在执行过程中需要执行多种服务功能:网页配置服务、Modbus/TCP通信服务、处理多个申口通信协议解析、实现I/O数据的采样处理等。这些功能的特点是在软件执行的过程中随时会产生服务请求,而且可能会同时产生多个服务请求,请求可能来自于操作人员或上位机软件,也可能是现场设备,服务请求随机性强,对系统响应速度要求高.需要采用多任务处理才能实现上述要求。多任务系统采用的方式基本分2种:协同式多任务和抢占式多任务。数据采集器硬件平台2种多任务方式都可以实现。
计算机在同一时间内运行多个应用程序,但并不是真的在给定时间段内同时运行多个程序,而是快速地在各个程序问切换,分配给每个程序1个小的时间块来执行程序。在不同程序中切换的方式是协同式和抢占式的主要区分点。
在数据采集系统中,硬件资源非常有限,而要执行的任务相对较多,采用抢占式多任务需要以uC/OS为核心进行任务的调度,而采用协同多任务不需要uC/OS核心调度。因此抢占式多任务会增加系统资源的消耗,为了确保数据采集功能的实现,在多任务处理上选择协同多任务处理方式。
4.2协同多任务处理机制
数据采集器软件的协同多任务处理的核心思想是:将多个功能可以分离的任务放在一个大的无限循环中,由大循环来执行这些包含任务的特殊结构体,一般称为状态机。在循环中每个任务被分成多个小的片断通过一系列的状态转换分别完成。状态机可以非常复杂,包括大量的状态变量和状态值.状态机的主要目的是避免占用性的等待处理,在循环中只有符合状态才进行处理,不符合状态则立即将控制权交给其他状态机。在这样的思路下,一个大的循环体可以包括很多个状态机,每个状态机处理各自的任务而不会产生占用性等待的现象。图2说明了循环体与状态机的关系。