嵌入式远程I/O数据采集器的设计与实现

2011-09-19 13:24茅大钧郑陆君
自动化仪表 2011年7期
关键词:热电阻采集器远程

茅大钧 郑陆君

(上海电力学院1,上海 200090;上海微程电气设备有限公司2,上海 200090)

0 引言

随着微电子技术及计算机技术的飞速发展,为降低集散控制系统(DCS)的成本、提高计算机监控系统的性能,电力生产企业将工业生产过程中作为监测的温度、压力、流量等热工参数由分布式远程I/O数据采集系统测量处理。该系统集A/D转换技术和数字网络通信技术于一体,将传统DCS的数据测量与处理功能设置在被测设备附近,解决了传统测量中各种传感器模拟信号从工业现场通过电缆线长距离接到控制室的传输过程中受到动力设备干扰的影响,并减少了信号电缆铺设一次投资以及后续电缆老化维护带来的困难。本设计就是针对电力生产企业这种需求而实现的一种远程智能I/O数据采集器,并作为火力发电站DCS配套使用的一个组成部分。

1 硬件设计

远程I/O硬件采用多微处理器模块化结构,其硬件配置如图1所示。

图1 远程I/O数据采集器的硬件框图Fig.1 Hardware of the remote I/O data collector

图1中,主CPU采用基于32位ARM7TDMI-S内核、内部嵌入128 kB高速Flash存储器和16 kB静态RAM的LPC2134嵌入式ARM微处理器。微处理器带有2个UART接口、2个I2C串行接口、2个SPI串行接口、47个GPIO和2个32位定时器等功能接口。外围电路由按键接口电路、LCD显示模块、数据存储电路、DNet通信接口电路和MCad数据转换模块等组成。设置按键接口电路的功能是为了配合人机交互接口LCD显示模块,便于用户现场调试、修改系统参数及显示测量数据。数据存储电路采用Ramtron公司FRAM铁电技术的随机存储器FM24CL64和Intersil公司内部集成的看门狗电路E2PROM存储器X5043。FM24CL64具有高速存储数据的特性,用于存储系统状态信息、系统冷热启动校验的RAM数据、I/O测量数据及主CPU与MCad模块要交换的数据。X5043存储器功能是作为主CPU的看门狗复位电路及保存系统组态参数。DNet通信接口模块的主要功能是把测量的数据传送到DCS系统,接口电路可根据用户需要配置成RS-485电路或以太网接口电路。MCad数据转换模块的功能是通过高精度16位∑-ΔADC模/数转换器把现场信号数字化处理后传给LPC2134主微处理器,中间用光耦隔离,使主系统与数据转换模块电气隔离。

对现场的信号测量由MCad数据转换模块完成,每个MCad模块有8个测量通道,模/数转换器采用高精度的16位∑-ΔADC AD7715。由于MCad模块工作任务简单,所以微控制器采用51系列MCU。系统主微处理器LPC2134每隔200 ms向MCad模块请求测量数据,MCad模块接收到命令后把测量好的数据通过I2C总线写入随机存储器FM24CL64;随后主微处理器LPC2134从FM24CL64读取数据,并对数据作进一步处理后,送至LCD显示和DNet通信接口模块。由于采集器有3个MCad模块,所以对每个模块的测量数据读取采用“握手”信号方式进行。该方式先由主微处理器LPC2134向要交换数据的MCad模块的MCU发出中断请求,MCU接收到请求后把数据写入随机存储器FM24CL64;然后向主微处理器LPC2134发出数据已写好的响应中断,LPC2134收到后读取数据。

DNet通信接口模块采用双网冗余方式,接口可以灵活组合成两路RS-485总线接口、两路以太网接口或一路RS-485、一路以太网接口这3种方式。DNet通信接口和主微处理器LPC2134交换数据采用UART串行口。DNet通信接口模块根据预设定的通信协议接收到DCS的数据请求命令后把数据送入DCS系统。

2 软件设计

软件采用C语言模块化编程结构,程序主要包括测量信号A/D采样程序、A/D测量数据处理程序和通信程序(Modbus RTU、TCP协议)等。

2.1 数据转换模块的开发

MCad数据转换模块的主要任务是完成对现场信号的A/D采样及数据处理,并把处理好的数据送给主微处理器LPC2134。A/D采样用的模/数转换器采用ADI公司的16位AD7715芯片,MCU通过AD7715的SPI接口完成对该芯片内部寄存器的读写操作。

2.1.1 A/D 采样子程序

A/D转换程序主要调用2个函数实现,即对AD7715模/数转换器的读16位的采样码子程序和写寄存器命令字子程序。函数读AD7715的转换结果的子程序为 void AD_Read(INT8U*ADBufPtr);写AD7715工作方式命令子程序为void AD_Write(INT8U ADCmd),实现程序流程图如图2所示。

图2 程序流程图Fig.2 Program flowchart

2.1.2 A/D 测量处理程序

在工业上,采用热电阻和热电偶测量温度比较普遍。采集器用热电阻测量温度的方法,即双恒流源方式测得电阻值,再用查表法得到对应的温度值。程序中用到的测量原理如下。

测量出已知350 Ω的高精密电阻的电压值V1为:

测量出未知电阻值的热电阻二端电压值V2为:

则由式(1)和(2)可以得到被测热电阻值,即:

在实际程序实现时,把式(3)中的V1、V2换成采样码即可。这样测出热电阻阻值后,再查阻值-温度对照表就可以得到温度测量值。因此,阻值-温度对照表的编制是程序实现的关键部分,其既要满足工业测量0.1级高精度的要求,又要使程序能快速查表。MCad数据转换模块采用64段查表法编制分度号对照表,表1为根据热电阻Pt100分度号编制的对照表的部分数据(以每隔5.47 Ω电阻值对应温度值)。

表1 热电阻Pt100分度号对照表Tab.1 RTD Pt100 indexing table

在程序编程实现时,为了节省MCU的存储空间和提高查表速度,表格采用把温度值放大10倍的取整方法存储在MCU的程序段,即温度值用表1第三列所示值存储在MCU的程序段。

由于程序表格索引隐含为电阻值的5.47的整倍数,因此,程序中查表不用比较表格中的具体数值,只要把计算得到的电阻值换算成5.47的整倍数作为存储单元的索引号即可。这种查表方法简单、快速、实用。如A/D转换计算得到的热电阻阻值为138.51 Ω,则138.51/5.468=25.33(上文中 5.47 由 5.468 取二位小数得到,计算中用5.468),取整得到25,查表得到T[25]=953,T[26]=1 097,则根据公式:T=T[N]+(Xn-N) ×(T[N+1]-T[N]),其中T[N]表示索引号为N的表格单元值,得到T=T[25]+(25.33-25)×(T[26]- T[25])=953+0.33 × (1 097 - 953)=1 000.52,取整得到温度值1 000。由于表格编制时值放大了10倍,所以实际温度测量值应为100.0℃。

2.2 DNet通信模块的开发

为了方便采集器通信接口硬件扩展,满足不同用户需求,通信接口采用模块化结构。DNet通信模块和主微处理器LPC2134内部交换数据采用UART口,与DCS通信可采用RS-485总线接口或工业以太网总线接口,也可根据需要扩展成CAN总线接口和Profibus-DP现场总线接口等。

DNet通信模块和主微处理器LPC2134内部交换数据帧结构如表2所示。

每帧数据为56 B,以设备地址号开始,固定值0x16结束,UART口波特率固定为115.2 kbit/s、1位起始位、8位数据位、无校验位、1位停止位数据通信方式。DNet通信模块用115.2 kbit/s的波特率和主微处理器交换数据,56 B的数据只要用5 ms左右就可以完成一次通信。DNet通信模块采用每隔250 ms召唤的方式向主微处理器请求测量数据。主微处理器最慢在30 ms内作出响应,这样实际一次通信时间最长在35 ms左右。

表2 交换数据帧结构Tab.2 Structure of the data frame for data exchange

DNet通信模块和DCS的通信协议主要采用Modbus RTU、TCP协议。

由于采集器主要作为DCS的数据采集前端,因此,DNet通信模块实现的Modbus RTU、TCP协议通信程序主要为从机程序。Modbus RTU协议通信时,从机接收到的正确消息帧长度LEN为8 B(1 B的设备地址号、1 B的功能码、2 B的寄存器起始地址、2 B的寄存器数量、2 B的CRC检验码),一般从机消息接收在中断服务程序中实现。

DNet通信模块数据发送由DataSend()函数实现,函数主要功能为把收到的消息帧前6 B用CRC-16程序校验方法计算;将得到的实际CRC校验码,再与收到的消息帧最后2 B的CRC校验码比较,若相同,发送应答帧;若不同,则发送错误应答帧。

3 应用实例

本采集器作为数据采集前端应用于某火电厂,其系统示意图如图3所示。

图3 远程I/O数据采集器应用示意图Fig.3 Example of application of remote I/O data collector

由图3可以看出,数据采集系统使用24台远程I/O数据采集器,采集器采用挂壁式就地安装在被测设备附近。采集器的以太网通信接口使用RJ45接口通过双绞线连到交换机上,交换机经光纤转换器通过光缆连到DCS系统,通信接口采用双网冗余方式。通信协议采用Modbus TCP,远程I/O数据采集器IP地址分别设为192.168.0.201 ~192.168.0.224,服务端口号都设为502。

这样就实现了远程I/O通过工业以太网把测量数据送到DCS系统的目的,由DCS系统做统一处理后,可作为设备参数监控的依据。

4 结束语

本文介绍了一种基于ARM的嵌入式多微处理器结构的远程I/O数据采集器,阐述了适用于DCS系统的远程I/O数据A/D转换模块MCad、DNet数据通信模块与DCS系统通信接口电路的设计与实现。由本方案设计实现的远程I/O数据采集器已实现产业化,目前已在国内外近百台300 MW、600 MW、1 000 MW大型火电机组中运用,达到了现场抗干扰能力强、运行稳定可靠、安装使用方便和经济实用等设计要求,是代表当今测量技术发展趋势的新型智能仪表。

[1]李正军.计算机测控系统设计与应用[M].北京:机械工业出版社,2004.

[2]周立功.ARM微控制器基础与实战[M].北京:北京航空航天大学出版社,2003.

[3]朱三元.网络通信软件设计指南[M].北京:清华大学出版社,1994.

[4]周明天,汪文勇.TCP/IP网络原理与技术[M].北京:清华大学出版社,1993.

[5]贾智平,张瑞华.嵌入式系统原理与接口技术[M].北京:清华大学出版社,2005.

[6]王树清,赵鹏程.集散型计算机控制系统(DCS)[M].杭州:浙江大学出版社,1994.

[7]王琳,商周,王学伟.数据采集系统的发展与应用[J].电测与仪表,2004,41(8):4 -8.

[8]张州,陆静.PROFIBUS现场总线技术及应用[J].上海电力学院学报:自然科学版,2008,24(2):157-160.

猜你喜欢
热电阻采集器远程
让人胆寒的“远程杀手”:弹道导弹
远程工作狂综合征
智能热工检定系统升级改造
不同传感器结构热电阻对电机检温计法温升测量值影响的研究
COVID-19大便标本采集器的设计及应用
基于PT100铂热电阻的离心泵温度监测系统设计
远程诈骗
工业热电阻检定中产生偏差的原因分析
基于Cortex-M4的油气管道微功耗数据采集器软件设计应用
基于ZigBee的大型公共建筑能耗采集器设计