陆 英
智能变送器具有检测某种变量如压力、温度等,以及把检测结果传送出去的功能。自1983年Honeywell推出智能仪表-Smar变送器之后,世界各厂家相继推出各有特色的智能仪表。如 Rosemount的 1152Smart,Moore产品公司的Mycro XTC,Lee Engineering公司的Smar LD301等产品[1]。
经过20年的发展,智能变送器的发展更趋完善,功能增强和多样化,他们具有变送、控制、故障诊断及过程报警等功能。随着单片机、集成电路等各项电子和通讯行业的发展,智能变送器将向着更智能化、小型化方向发展。
为了实现温度变送器低成本,高效率使用,设计了基于MSP430F169芯片的智能全输入式温度变送器,使用6通道24位采样转换芯片AD7794,在保证0.1%FS精度的同时,通过对AD寄存器设置实现不同小信号的放大增益,实现多分度号多通道输入功能及冷度温度补偿功能。由于全输入式温度变送器的输入信号基本包括所有常见分度号、并且具有双通道输入、温度补偿等功能,操作简单、功能强大,在软件处理方面进行了改进,使系统的实时性,精确度更高。目前该产品已投入大量生产,在冶金、石油、化工、电力、轻工、纺织、食品等许多行业得到广泛应用。
1)多分度号选择:包括传感器类型(B、S、K、T、E、J、K、N 共8种热电偶(TC),CU50、PT100、PT1000等热电阻(RTD)及 10~100mV 信号)。
2)多输入通道选择:采用CD4052多路模拟选择开关芯片对采样通道数进行选择。可测量任一输入通道或同时测量二路输入通道。
3)信号放大及采样:AD7794芯片对输入小信号进行放大、采样,并将A/D转换结果送给单片机,其放大倍数包括1、2、4、8、16、32、64、128。
4)线性校正:软件用差分原理,通过查表方法对不同分度号热电偶,热电阻进行非线性校正,其误差小,精度高。
5)温度补偿:测量时,冷端的(环境)温度变化,将影响严重测量的准确性。在冷端采取一定措施补偿由于冷端温度变化造成的影响称为热电偶的冷端补偿。用户可根据需要进行自动温度补偿或者手动温度补偿。
6)远程监控:变送器与上位机之间通过 RS232实现数据双向通讯,上位机可远程修改现场变送器仪表参数,现场变送器可随时向上位机发送当前全部数据以供上位机系统数据管理。设置参数包括传感器类型;输入通道数;切换单位(mV、Ω、%、摄氏度);精度位数;报警上下限;量程上下限等。
控制电路采用MSP430F169单片机,使用内部EEPROM存储器,用于存储固定程序、分度号和设定参数,根据设定参数来确定仪表测量范围的上下限,小信号的放大倍数和其他工作状态。配合热电偶和热电阻检测现场温度,采用集成温度传感器检测热电偶冷端温度。将毫伏信号、热电偶或热电阻检测现场温度的信号送到CD4052模拟开关,单片机控制通道的通断,各信号被分时选通,再通过模数转换器处理,单片机以查询方式采集AD转换器输出信号然后进行数据处理、热电偶冷端补偿处理、线性化处理等,并将输出数据通过光电耦合器送入D/A转换器,同时输出 1~5V.DC和4~20mA.DC信号。硬件电路原理图,如图1所示:
图1 智能温度变送器原理图
智能温度变送器拥有双通道测量功能,需要选择一个拥有多通道选择开关芯片对选择一路通道/两路通道进行选择。CD4052是双四选一模拟开关,每组四选一模拟开关分别有2个二进制控制输入。这两位二进制信号可将4个模拟通道中任一个置为导通状态[3]。使用真值表对通道选择进行控制。
在本系统中,AD7794的IOUT1、IOUT2两位对X/Y通道的输入、输出进行设置,取得所选中的电压、电阻等信号。MCU根据所选上位机设置通道,通过MUX_A,MUX_B向模拟开关送两位地址信号。RTD1A-RTD1B为第一路信号输入通道,可输入范围包括热电偶或热电阻、小电压信号;RTD2A-RTD2B 为第二路信号输入通道,输入范围同第一路输入通道;RTD_SURA-RTD_SURB为冷端温度补偿通道,仅在输入信号为热电偶信号时,同时接入,可进行环境温度补偿。CD4052电路控制状态,如图2所示:
图2 CD4052输入、输出状态
传统设计方式是在A/D前端设置信号调理电路,现代微电子技术的发展使诸如滤波、零点校正、线性化处理、量程切换、温度补偿等原属信号调理电路完成的工作都可用软件实现,大大简化了电路设计。因此,越来越多的嵌入式设计只需侧重考量放大电路本身的信号放大功能、阻抗和精度。本设计中,采用6通道24位Σ-Δ模数转换芯片AD7794的片内仪表放大器对输入电压进行放大,可将其增益调节为1~128倍,8档放大倍数。根据不同的量程,设置AD7794可编程输入缓冲器的放大倍数,对输入信号进行进一步放大。
由于上位机系统需要实时更新AD7794的采样码值,并根据采样值进行处理,将结果传送至LCD和上位机系统。所以软件为了确保系统实时性,将数据的处理过程放在AD采样后进行处理。当AD7794根据当前通道采样数据后,标定数据,将其转换为mV值或欧姆值,根据软件设计好的传感器线性化处理计算表,计算出对应的温度值。最后对热电偶进行温度补偿。
由于AD采样是一个周期对一个通道进行采样,所以在程序中采用先对中断前设置的通道进行采样,采样处理完毕后进行显示,最后设置下一次进入中断的通道序列号的设计方法。由此可知每一个通道第一次采样时,得到的AD采样值为前次通道的采样值,故在程序中丢弃每个通道的第一个采样值,采用第二次及以后的采样值进行计算处理。这种方法适用于采用AD7794芯片24位采样精度的测温系统。经过实验及计算,可以发现每次采样值只有后4位会发生变化,通过计算(24/224=0.0000009536)可以知道AD芯片后4位数据变化不会影响采样精度0.1%。运用此种方法,不需要对采样值进行多次采样另外进行软件滤波处理。
由通道传送过来的信号经过AD采样值标定将AD模拟量还原为输入信号,输入信号经过线性化处理和温度补偿后转换为温度值,通过LCD或者RS232向上位机发送数据显示。AD中断流程图,如图3所示:
图3 AD中断流程图
2.2.1.1 数据采样标定计算公式的改进
当得到系统的零度满度标定值时,常用的标定点计算公式为:
由于在 AD采样处理函数中会频繁采样并且调用此标定计算公式,除法计算会影响MCU处理速度,所以对处理公式作出改进:
其中:
Value_X 表示采样AD码值转换的测量值(电压值/电阻值);
ad_real 表示实际采样的AD码值;
Value_H 表示最大测量点(量程上限值),如PT100的Value_H 为300Ω;
Value_L 表示最小测量点(量程下限值),如PT100的Value_L 为100Ω;
ad_H 表示当前分度号满度标定值,如PT100测量电阻为300Ω时的ad码值为aeaf94H(11448212);
ad_L 表示当前分度号零度标定值,如PT100测量电阻为100Ω时的ad码值为8f90dfH(9408735);
公式(3)和公式(4)仅在通道切换时进行调用,在分度号不改变的情况下,当前后测量通道有变化时,Main_Cal_k和Main_Cal _ b 参数此次切换时已经进行计算并保存;下次测量为同一通道时,将直接使用公式(1)和公式(2)已得到的数据,后面的采样计算时将直接调用公式(2)。
以PT100为例,ad_real 测得10428473,使用公式(1)计算可得:
使用公式(2)(3)(4)计算可得:
由以上计算可知,第二种算法的结果与常用标定的计算结果几乎没有差别,因此可以保证计算的正确性与准确度,同时满足系统实时性的要求。
2.2.1.2 传感器线性化处理计算方法
由于温度与 A/D转换值之间的关系(非线性),需要对其进行非线性补偿时,主要采用查表法与计算法结合在一起的插值法。
温度T被分成多个均匀的区间,每个区间的端点A/D转换值Nk都对应一个Tk,当A/D转换值为Ni时,实际测量温度值Ti一定会落在某个区间(Ti,Ti+1),采用线性插值法
温范围、输出类型的变量可通过RS232存入flash,当上位机或手操器终端设备对该flash进行改写时,智能温度变送器可工作在用户所需的测量类型和输出类型。进行插值,用通过(Nk,Tk)和(Nk+1,Tk+1)两点的直线近似代替原特性。
非线性校正处理采用一次差分原理,其公式为:
公式(5)中:
Vx、Tx:当前电压值、温度值
Vn+1、Vn:分别表示n+1点、n点的电压值;
Tn+1、Tn:分别表示n+1点、n点的温度值;
由以上公式可看出,线性化的精度由折线的段数决定,分段越多,精度和准确度越高。有时为了提高精度,也可采用抛物线插值[3]。
2.2.2.1 热电偶的处理步骤
由于热电偶需要温度补偿,所以在温度变送器系统中,用户通过上位机选择自动/手动补偿功能,MSP430系统对这一部分进行处理,实现温度补偿,具体实现步骤如下:
a)自动温度补偿:
1)AD7794对热电偶通道采样;
2)对采样值进行标定,得到当前测量端热电偶的输出电压E1;
3)AD7794对冷端补偿通道采样;
4)对采样值进行标定,得到当前冷端电阻(PT100)的输出电阻R0;
5)根据热电阻的分度表,查分度表得到 R0对应的温度T0,T0就是冷端温度。
6)根据冷端温度T0查热电偶的分度表,将T0折算成对应的热电势(电压)E0;
7)将E1和E0相加得到电势E,查分度表得到E对应的温度T,T就是测量端的实际温度[4]。
b)手动温度补偿:
1)AD7794对当前通道采样;
2)对采样值进行标定,得到当前测量端热电偶的输出电压E1;
3)上位机输入的温度值为补偿温度T0;
4)根据补偿温度T0查对应电偶的分度表,将T0折算为对应的热电势(电压)E0;
5)将E1和E0相加得到电势E,查分度表得到E对应的温度T,T就是测量端的实际温度。
手动温度补偿通过用户在上位机设置当前环境温度,此时温度变送器电路将不会测量热电偶两端的冷端温度,并将输入温度代替冷端温度。
2.2.2.2 热电阻的处理步骤
1.AD7794对当前通道采样;
2.对采样值进行标定,得到当前测量端热电阻的电阻值R;
3.根据热电阻的分度表,查分度表得到R对应的温度T,T就是测量端的实际温度。
处理完毕后的温度值通过MCU和RS232接口的通讯,将其传送给上位机并且显示。实现智能编程接入,由于MSP430F169内置60KB flash,决定变送器当前测量类型、测
3.1 实验结果
表1为本系统应用中PT100的温度电阻理论测量值和实际测量值,实验结果表明,在不影响精度和性能的基础上,改进的软件设计大大优化了系统、并且使系统拥有良好的稳定性、实时性。通过对新方法的实验,观察实验结果,可以证明本文所提出的方法能够提高系统的采样精度,如表1所示:
表1 PT100测量结果
本文提出的全输入型智能温度变送器,使用AD7794转换芯片对输入信号进行放大增益,取消常用的信号放大模拟单元,对输入信号的标定、非线性化处理,使少量的存储空间可以实现复杂的算法,能够满足工业过程控制中的精度要求。经实际应用,本产品可稳定应用于工业过程控制场合,在全国多家企业中得到广泛应用。
[1]admin,基于 HART协议的智能变送器设计[DB/OL],中国自动化仪表网,[2008-02-20],http://www.ca18.net/news/content-102393.htm
[2]CD4052芯片中文资料
[3]张雷杰,章洁平,宽量程高精度铂电阻温度变送器设计[J],导弹与航天运载技术,2010,(4):57.
[4]白凤山,热电偶冷端温度补偿的说明[DB/OL],中国工控网,[2010.09]http://www.cheminfo.gov.cn/HezuoPage/gongkong.aspx?code=cheminfo&action=detail&type=Paper&infoId=201 0093014022700002