传统数据采集系统一般利用各种数据采集卡或是多串口卡,编制相应的定制软件,将外 部信号采集到工控机或普通PC 机。由于硬件结构的限制,传统的数据采集系统体积大、实 时性差、信号衰减严重、外挂设备数量有限,无法满足微型化、大容量、高实时性、多参数 和高稳定性的要求。随着计算机技术和网络技术的发展,各种新的数据采集的实现方案不断 出现,其中,以TCP/IP 通信机制的远程数据采集系统具有较好的使用前景[1]。本文以基于 WinCE 的嵌入式设备为核心,取代传统意义上的PC 机,采用TCP/IP 通信机制搭建的远程 数据采集系统,结合嵌入式设备和网络技术的优点,将信号采集、信号传输和数据处理相对 分离,提高了系统的抗干扰能力、实时性和高安全性,特别适用于远程、多参数的数据采集, 具有重要的使用价值和应用前景。
2 远程数据采集系统总体结构
基于嵌入式 WinCE 的远程数据采集系统如图1 所示,主要的组成部分及其功能如下: (1)客户端PC,主要进行远程数据采集器的信息配置和数据监控等;(2)Linux 系统服务 器,主要负责与数据采集器通信,进行数据的接收、分析、处理、存储和监视,以及采集器 配置文件的传输;(3)基于WinCE 的嵌入式数据采集器,主要根据远程配置参数,多点、 多参数动态采集生产设备信息、环境信息以及操作人员信息,包括电流、电压、压力、产量、 温度、湿度、班组号等。在远程数据采集系统中,利用高可靠性的TCP/IP 协议完成配置文 件的更新和采集数据的传输,以及采集器远程调试监控;利用嵌入式数据库(SQL Server CE)保存采集数据和服务器传送的远程配置文件;利用SQL Server CE 提供的RDA和Replication (合并复制)特性,当服务器网络断开后完成数据和配置文件的转储和备份,保证数据的完 整性;利用嵌入汇编控制的硬件看门狗技术保证系统运行的高稳定性;利用可扩展的IDE 接口可以保证大容量数据的存储。
基于嵌入式 WinCE 数据采集器采用研祥公司EVOC 104-1541CLDN(B)作为硬件平台。 EVOC 104-1541CLDN(B)是一款可由+5V 电源供电的嵌入式应用型的 All-in-one Geode 586 的主机板,能够提供嵌入式操作系统运行所需的核心硬件资源。主要的硬件资源包括: NS GX1 处理器,工作于 2.2V/333 MHz 时的功率为1.4W,速度*可达333 MHz; 1 个10M 以太网口,2 个通用异步串行口(UART);2 个USB 数据接口;1 个LCD 控制器;1 个 64MSDRAM;1 个CF 卡接口;以及键盘接口和IDE 接口等。利用上述的核心硬件资源, 在集成开发环境中,可以进行开发平台的定制,数据采集和传输等模块的开发,实现远程数 据采集。
3 基于嵌入式WinCE 开发平台的定制
WinCE 嵌入式操作系统是一个紧凑、高效和可扩展的操作系统,其*的特点是使用 了分层结构技术,使系统具有更好的可扩展性和定制性,使应用程序和操作系统独立于具体 硬件,以适应各种特殊的应用环境。操作系统从逻辑上可以分为硬件层,OEM 层,操作系 统层,应用程序层[2]。基于嵌入式WinCE 开发平台的定制主要是对操作系统层和OEM 层进 行定制。
微软提供了 PB(Platform. Builder)作为定制WinCE 操作系统的集成开发环境。PB 环 境支持多种功能模块和硬件接口,可以根据目标设备的具体硬件配置进行WinCE 的裁剪和 定制,定制wince 平台的流程如图2 所示。首先,通过安装和创建设备驱动程序对网卡、串 口、显示驱动、USB 和电源驱动等硬件进行定制;然后,定制系统组件和服务,包括TCP/IP, FTP,MFC,Telnet 等,并根据硬件配置和操作系统的应用特性修改配置文件;*,生成 操作系统映像文件,通过网口或串口将其下载到目标设备中运行。定制完成后,导出应用程序开发工具包SDK。根据导出的SDK 开发包,运用EVC 开发工具可以编制数据采集模块 和数据传输模块。
4 基于嵌入式WinCE 数据采集模块设计
数据采集模块是整个数据采集器软件设计的核心部分,可以采用与设备连接的PLC、 单片机、工控机以及人机交互界面等,完成生产设备信息、环境信息及生产操作人员信息的 采集。在本文开发的系统中,主要是通过PLC 采集设备信息,通过单片机采集温度、湿度、 压力传感器的环境信息,通过基于嵌入式WinCE 采集器的人机交互界面直接采集生产现场 人员信息。
通过 PLC 采集设备信息时,数据采集器通过RS-232 接口以Host Link 通信协议与PLC 通讯。Host Link 通信协议采用“主从总线”方式通信,根据主动权的不同有两种实现形式, 一种是通信主动权在上位机(基于WinCE 的采集器)一方,即方式一;另一种是主动权在 下位机(PLC),即方式二。根据传输信号的性质不同,两种方式可以结合使用。针对本系 统的特点,对需要用户动态配置的信号,如设备当日产量、运行时间等,采用方式一;对于 经常需要监控的信号,如机器的运行温度、转速等,采用方式二。方式二的优点在于,仅当 下位机的数据发生变化时,PLC 才发起通信并上传数据。这种通信方式可以大幅度减少上 位机的监视时间,提高系统的实时响应能力。本文仅以方式一为例说明动态信号的采集过程。
采集器主动向 PLC 发出Host Link 命令帧到PLC,PLC 接收到命令帧后自动向上位机 发送应答信号,完成一次信号的采集过程。在Host Link 协议中,“@”为起始符号;节点号 为PLC 的编号(00-31);识别码说明Host Link 命令帧的功能;FCS 包含2 个字符,是帧的校 验码,即从帧起始到报文结束之前数据的异或运算结果,用来检查帧的传送结果是否正确; “*”和“CR”为终止符,表明帧结束[3]。在本系统中,WinCE 中提供了操作文件IO 函数 和通信函数来操作串口,进行串口通信。为了避免读线程调用WaitCommEvent()函数时造成 程序阻塞,提高CPU 的利用率和通信程序的实时性,改善系统的整体性能,采用多线程技 术实现异步串口读写的模拟[4,5]。串口通信的主要步骤如图3 所示,(1) 调用函数CreateFile() 打开串口,函数SetCommState()配置串口参数;(2)调用函数CreateThread(