您好, 访客   登录/注册

一款基于PIC16F877A单片机的高准确度数字称重系统设计

来源:用户上传      作者: 严建军 秦树伟 李苏明

  摘 要 本文设计了一款高准确度数字称重系统。该设计利用PIC16F877A单片机作为微处理器,在称重数据处理中,应用了混合滤波算法,提高了称重系统的稳定性、准确度。测试表明:该称重系统能够实现多通道称重系统的数字化处理,并符合OIML R76中的级衡器的允差要求。
  【关键词】数字称重系统 PIC16F877A单片机
  称重计量技术的应用颇为广泛,遍布于社会经济的各行各业,在生产过程或贸易结算中,对称量技术的要求越来越高。而在我国,目前大多使用的仍为模拟式的电子称重系统,纯数字式的称重系统由于成本问题,在商业及工业生产中的应用不为广泛,为了解决现有的模拟称重系统存在各类误差补偿困难、稳定性和可靠性低以及难以实现在线监测等诸多问题,且考虑到纯数字式称重系统的成本,本文设计了一种基于PIC16F877A单片机的高准确度远程数字化称重系统。
  1 系统总体设计
  系统主要包括模拟称重传感器部分、数字化部分、通信接口部分及仪表数据处理部分。模拟称重传感器的弹性体在外力的作用下,产生弹性形变,从而使得粘贴在弹性体表面的电阻应变片产生变形,电阻应变片的电阻随之变化,经过惠斯顿电桥电路将力的变化转换为电信号的变化,输出mV级的信号。该信号经过放大再进行A/D转换,然后通过单片机对传感器数据进行各种补偿修正,包括零点、温度、灵敏度、非线性、蠕变等补偿,从而使得称重系统的各项技术指标达到规定的准确度,最后将补偿完的称重数据信号以RS-232信号格式输出[1]。
  2 基本硬件电路设计
  系统处理器采用美国Microchip公司生产的PIC16F877A单片机,其主频为20MHz,内部集成了8k×14位Flash程序存储器和368字节数据存储器,并拥有14个中断源,可以完全满足本项目的需要。文中设计的称重系统称量相对误差在0.05%以内,则数据采集电路要保证A/D转换器无噪声分辨率输出在21位或以上,综合考虑多通道高精度Σ-Δ型A/D转换器的失调、动态噪声、线性度和温度漂移等技术指标,选用了24位多通道高精度A/D转换器AD7718。
  3 软件设计
  系统采用PIC16F877A单片机作为微处理器,整个系统采用模块化设计,由主程序、数据采集、滤波、数据处理、通信及智能称重子程序等构成。
  单片机上电后先初始化,其中包括寄存器、RAM、串口、定时器及端口的初始化,然后对RAM、ROM、EEPROM进行测试,包括RAM的读写,ROM及EEPROM的测试,测试不正常则置出错标志。如果测试正常则读取EEPROM中的参数到RAM中,然后读取AD7718中出来的A/D值,随即进行滤波处理,再判断是否在正常范围之内,如是则进入补偿程序进行补偿,结果输出到数字化模块的屏幕端,并将结果按通讯协议通过RS232总线输出到上位机,输出同时判断数据是否有效,如无效则置出出错标志,如果有效则重新读取A/D值进行下一个数据的处理。
  电子称重系统在称量过程中由于输出的模拟信号较弱,且称重设备所处环境条件通常不为理想状态,常伴有各种频率的噪声,尽管在本设计中,AD7718承担了部分的针对高频噪声干扰的滤波功能,但不能排除低频噪声的干扰,为了更好抑制干扰对A/D转换结果的影响,本项目采用了数字滤波的方法。
  考虑到PIC16F877A单片机处理速度和RAM空间,本项目采用了移位平均滤波、去极值平均滤波相结合的混合滤波算法来对A/D转换值进行滤波处理,该算法的实现过程为:首先在 RAM 中建立两个长度为N(在本项目中,考虑到单片机的能力,取N=8)的缓冲区,一个用来作为备份队列,另外一个用来实现队列移位。每次采样之前先把备份缓冲区的数据对应调入移位缓冲区,并丢掉队首数据(最早进入队列的那个数据),再做一次向前的移位操作,最后把新采样的数据补充队尾,这样就保证了能够实现滤波对新的采样值的操作,把新生成的队列备份。为了更好抑制脉冲干扰,必须对新的队列排序,剔除新产生队列里的最大值和最小值,然后求余下 N-2个值的算术平均值就为本次采样 A/D 值的滤波结果。当然为了进一步提高滤波效果,在求余下 N-2 个值的算术平均值之前也可以在增加一次剔除队列里的最大值和最小值。
  对于称重传感器,由于一般采用全桥的工业标准,由温度变化引起的应变输出非线性,在全桥传感器中,己得到补偿。但是,实际使用中称重传感器不可避免的存在零漂和稳漂等问题,且其大小在uV级以上。而这一漂移信号叠加到实际信号中,就会造成测量误差。故本文中的补偿子程序主要是指对称重数据进行零点漂移的处理。零点稳定是影响称重系统准确度非常重要的因素,传感器的零漂,即零点漂移,是指当外界温度保持恒定时,传感器未承受载荷却有一个随时间增加而变化的输出。零输入信号时,输出可能不为零,为消除这个零位漂移值,采用零位补偿技术。一般在称重传感器中,零点温度补偿采用了通过串连在桥路上的温度系数大的铜丝等来补偿温度带来的误差,针对本系统的特点,本补偿模块采取了开机清零:系统启动后自动检测称台是否有物体,若有就把此时的值保存在RAM中,每次获取物体重量之后由系统自动减去作为显示结果。零位跟踪:在工作状态系统不断监测称重结果是否小于设定的阈值,若小于说明此时状态称台空载,现在为零位,显示结果为零。若工作状态监测称重结果大于设定阈值,操作人员确认此时称台没有被称重物体,可以在此时有操作人员按下置零按键手动置零,并把此时的误差也保存在RAM中,待以后的称重过程中在减去这个值。
  本项目在实现智能称重功能使用了基于RS-232接口,并编写了基于PC机的数据处理软件,来实现数据监控、数据存储、程序设定及系统维护等功能。
  下位机的智能称重即包含了故障诊断功能,该功能可以通过仪表的自诊断完成,自诊断主要包含以下几个方面:仪表内部存储器检查、显示屏检查、通讯接口检查。整个称重系统部分诊断的主要思路是通过读取下位机的输出,将下位机的输出和系统设定的参数比较来判断系统是否有故障。如下位机各传感器AD码是否有超出范围的输出(是否有超载或欠载),检查每个传感器的AD码重量分配关系是否发生重大变化,是否零点与初始数据发生相对较大的漂移等,如若有以上情况,系统将会给出相关的提示,提示使用人员对相关部件进行检查以维护整个系统的正常工作。
  4 实验结果
  文中设计的智能数字称重系统,根据OIML-R76《非自动衡器》国际建议,该系统的4路独立称重误差应都能满足级衡器的允差要求。故对由4路独立的模拟信号输入的该系统进行测试,每个通道的模拟信号由一个制作完好的秤台中配有的模拟称重传感器产生,其中ABC三通道最大秤量为100kg,D通道最大秤量为1000kg。测试前先对各独立系统进行1/2最大秤量及最大秤量两个秤量点进行标定,然后进行测试,测试数据如表1所示。
  由表1可见,该多通道数字称重系统每通道的结果都满足OIML-R76中级衡器的允差要求。
  5 总结
  文中设计了一种基于PIC16F877A单片机的智能数字称重系统,采用了新的硬件电路设计,与以往产品相比具有更好的综合性能,该方案已经在宁波精联电子衡器有限公司得到应用,实验结果表明,该系统测量示值误差及重复性误差较小,能够满足一定的市场需求。
  参考文献
  [1]李银伟.电阻应变式数字智能称重变送器设计[D].硕士学位论文.华东交通大学,2009,P29.
  [2]关晓丽.基于PIC16F877A的温室自动控制系统的研究[D].硕士学位论文.哈尔滨理工大学,2003.08,P32-P33.
  [3]OIML R76-1:2006(E) Non-automatic weighing instruments[S].
  作者单位
  宁波市计量测试研究院 浙江省宁波市 315048
转载注明来源:https://www.xzbu.com/1/view-6676465.htm