- 易迪拓培训,专注于微波、射频、天线设计工程师的培养
基于嵌入式WinCE的远程数据采集系统
微软提供了 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()创建读写线程, 模拟异步读写串口(WriteFile()将命令写入串口缓冲区,WaitCommEvent()等待串口*事件 集发生,ReadFile()读取串口数据);(3) 关闭串口,将采集的数据进行处理和存储。
采集环境信息时,用AT89C51 单片机、A/D 转换模块、加外围电路构成的小型单片机 系统,通过串口与嵌入式采集器根据自定义通信协议进行通信,完成温度、湿度等数据的采 集。生产操作人员信息由嵌入式采集器的人机交互界面直接采集。
5 基于嵌入式WinCE 数据通讯模块设计
数据通信模块用于完成采集器与上层服务器之间的通信,其主要功能包括,接受远程控 制终端的命令,控制程序的运行状态,为程序的远程调试和监控提供方便;传输采集数据; 同步更新采集器配置文件。数据通信模块采用基于WinCE 的TCP/IP 协议,能够保证在传输 过程中数据的准确性和可靠性;嵌入式系统硬件抗干扰能力强,能够保证系统长期稳定运行。
在基于 WinCE 的TCP/IP 协议中,当接收到远程控制终端命令时,采集器处于TCP 服 务器角色,以便多个控制终端向采集器发送命令。其通信实现流程为:TCP 服务器首先调 用socket()函数建立流式套接字,然后调用bind()绑定本地地址,调用listen()函数进行* 客户终端连接,一旦*到客户终端连接后,服务器就调用accept()函数接收终端的连接请 求,并建立连接,同时服务器端启动一个新线程,建立单独的套接字实例与客户终端进行通 讯。通信协议格式为:命令名称,参数表。例如在通信格式"PATHR1, 0"中,PATHR1 命令表示暂停数据采集线程,参数0 表示立即执行。服务器收到此 命令后会立即暂停数据采集模块,并传回命令的执行结果。
采集器与服务器进行数据传输和配置文件(主要关于采集信号的类型,名称以及其它系 统配置信息)更新时,采集器处于TCP 客户端角色。其通信实现流程为:采集器调用socket() 函数建立流式套接字,然后调用connect()函数,请求与Linux 服务器建立TCP 连接,成功 建立连接后,同服务器进行数据传输和配置文件更新。数据传输和配置文件更新需要自定义 TCP 通信协议,采集器向服务器传输采集数据的通信协议格式为:数据类型,采集 时间,数据名称,数据值…;校验值;服务器向采集器更新配置文件的通信协议格式 为:数据类型,名称,区域,采集点数…;校验值。
6. 结束语
在微软提供的 PB(Platform. Builder)集成开发环境中,根据分层技术定制了基于WinCE 的开发平台,分别采用Host Link 协议和自定义协议设计了采集器与PLC 和单片机的数据采 集模块,并实现了采集器与Linux 服务器的数据通讯模块。作为一种新型的数据采集系统, 以嵌入式WinCE 为核心的远程数据采集系统充分发挥了嵌入式硬件设备的特点,系统实时 性强、稳定性好,功耗小,成本低,与传统的数据采集方案相比,特别适合于多点、多参数 的远程数据采集,具有广泛的应用前景。
来源:维库开发网
上一篇:如何正确处理数据中心“热问题”
下一篇:基于FPGA的数据采集控制模块设计