基于STM 32的6通道称重控制仪表设计
2018-04-16周信健许川佩
周信健 许川佩
(桂林电子科技大学电子工程与自动化学院 桂林 541004)
1 引言
称重控制仪表是一种实时测量物料重量并根据重量自动发出控制信号的智能仪器,广泛应用于包装、罐装等工艺流程中。市场上高性能、功能完备的称重控制仪表也比较常见[2]。但是单个仪表在控制速度上已基本达到了极限,在大批量包装、罐装任务中需要多台机器结合,且各台机器设置参数不一,控制结果参差不齐。因此,设计一种多通道同步采样控制的仪表不仅可以提高机器的集成度和控制结果的统一性,而且可以成倍地提高工作效率,减少人力劳动。
2 仪表的工作原理
物料包装、罐装系统主要由储料器、高低速出料口、称重平台机构和称重控制仪表组成。称重控制仪表作为控制核心,通过称重平台实时测量平台的重量,判断平台重量是否与设定皮重值相等,如果相等则判断包装或罐装的外包装已就绪,然后开始通过高低速出料口往外包装快速填充物料,当物料填充到指定重量则切换到低速填充直到和目标重量-提前量相等,当留在空中的物料完全落入包装后,和目标重量相等。6通道称重控制仪表是把6个这样的机构同时控制达到提高效率和集成度的效果。
3 硬件设计
仪表的硬件框图如图1所示,仪表的硬件按照功能分为电源模块、STM32嵌入式模块、ADC同步采样模块、通信模块和IO模块。由于称重仪表应用在各种干扰均存在工业的环境中,因此各个模块间的信号和电源均采用隔离方式连接,一方面可以减少模块间的串扰,另一方面可以在某一模块因外部异常受到冲击时,避免对其他部分造成影响而达到保护其他模块的目的[3]。仪表的主控芯片为STM32F103ZET6,与LCD12864、矩阵键盘、外部非易失性存储器组成嵌入式单元模块。通过LCD12864、矩阵键盘、外部非易失性存储器作为基本参数的设置和存储。因为6通道称重控制仪表需要显示的内容和参数较单通道的仪表要多得多,所以采用常用的LED或LCD12864已经达不到操作简单的目的。因此,功能参数通过通信模块与10寸MCGS工业触摸屏进行人机交互。用于称重的6个称重传感器分别与各通道独立的CS5532芯片连接。CPU实时读取传感器的重量信号,并通过数字滤波[4]、工程单位变换、状态检测后,一方面把仪表的工作状态和各通道实时重量实时显示到MCGS触摸屏上,另一方面通过重量比对、动作判断经过IO模块输出控制投料器的开关,从而实现物料的定量控制。
图1 仪表硬件框图
3.1 电源模块设计
电源模块电路如图2所示。采用24V直流电源进行供电,减小仪表的体积和减少电源的发热量。通过MP2303同步降压电路后,得到12V左右的稳定电压,再使用IR2085S和FDS8689组成半桥式电子变压器的驱动。式(1)为半桥式变压器次/初级匝数比计算公式。由半桥式变压器匝数比计算公式可知,在通过变压器后整流得到各路相对比较稳定的电压[5]。再经线性稳压器进一步调整,得到满足系统工作的稳定电压。
图2 电源模块电路图
3.2 STM 32嵌入式模块
由于该仪表相当于6个单通道的称重控制仪表,所以在主控制器方面要求相对比较高。于是选用意法半导体公司的STM32F103ZET6芯片。该芯片为32位CortexTM-M3 ARM处理器在0等待内存访问时具备1.25DMIPS/MHz(Dhrystone2.1)的计算能力,还具备单周期乘法器和硬件除法器,最高时钟达到72MHz,有512KB程序空间和64KB数据空间[6],各方面指标均是文献[2]设计采用的W 77E58性能的好几倍,所以基本能够满足设计需求。在人机接口方面,采用矩阵键盘和LCD12864。LCD12864选用ST7290为主控图形液晶,采用串行方式与ARM处理器USART3连接,以方便采用USART3的同步方式直接与LCD12864通信。但是由于LCD12864显示有限,所以此人机接口仅作为基本参数的配置使用。如通信波特率,Modbus地址等。由于STM32没有内部EEPROM,但是称重仪表需要掉电保存诸如校准参数、通信参数等数据,因此需要外加非易失性存储器。于是选用SPI接口的铁电存储芯片FM25CL64,该芯片容量为8KB,采用SPI通信接口,通信时钟达到20MHz,大量减少了参数读写的时间,使CPU能够及时处理称重数据。
图3 ADC同步采样模块电路图
3.3 ADC同步采用模块
仪表需要采集6通道称重信号,如果6片CS5532采用异步采样方式,那么有可能打断CPU正在处理其他通道的数据,造成控制异常。所以该模块考虑使用同步方式进行转换。此时,6个通道转换的开始时间和完成时间是完全同步的,所以在检测到转换完成时,可以安排在同一时间间隙内按顺序读出AD数据。图3为ADC同步采样模块电路图。由电路图可见6片IC的SCK、SDO、SDI、MCLK是共用的,其中MCLK为CS5532的系统时钟,MCLK共用配合控制指令控制6片IC同时开始转换以达到同步转换的目的[7]。采用2mv/V的称重传感器在激励电压为5V时,满量程输出为10mV。CS5532内部PGA最大放大倍数为64倍,放大后的满量程电压为640mV。如果采用激励电压5V作为CS5532的参考电压,则满量程时24位AD的量程利用率640mV/5V=12.8%。因此把5V激励电压通过R1、R2、R3分压后得到 CS5532参考电压的最低允许值1V。24位AD的量程利用率提高至640mV/1V=64%,并且有36%的余量防止输入电压过高损坏芯片。
3.4 通信模块
仪表的通信模块使用RS232电路和RS485电路。RS232和RS485均使用Modbus RTU协议进行通信,但是设备地址、通讯波特率均独立并可以同时工作。在工业系统中RS232电路主要用于点对点通信。在本仪表中用于连接触摸屏。RS485可以多机通信,主要用于工控系统组网。使用ADUM1402磁耦把CPU和通信电路隔离,减少CPU和通信电路的串扰,并能在通信线路上电压出现异常时有效保护CPU电路。通信电平转换芯片分别采用常见的MAX232和MAX485。在信号连接端加入自恢复保险和瞬态抑制二极管作为外部高压的串入保护[8]。
3.5 IO模块
由于IO模块的输出部分主要用于驱动电磁阀,所以采用TLP281光耦进行隔离,ULN2803达林顿管阵列作为线圈驱动芯片并采用外部电源供电方式减少仪表内部的体积和功耗。输入部分也采用TLP281作为隔离IC,外接传感器应选为PNP输出型。输入输出部分示意电路图如图4所示。
图4 输入输出部分电路图
4 软件设计
系统软件设计包括STM32嵌入式软件设计和MCGS人机界面软件设计。STM32嵌入式软件主要负责实时数据处理和实时控制。MCGS人机界面软件主要负责系统参数配置、人机交互图形设计和一些非实时的数据处理和控制。这样处理使得STM32处理事务方面更专注,在控制精度方面能得到更好的效果,程序编写也更简洁。
4.1 嵌入式软件设计
STM32程序的主要任务有:称重信号采集和处理,输入输出控制,2个串口的modbus RTU通信。其中称重号采集处理,输入输出控制,modbus RTU通信对实时性要求都比较高,如果处理不好可能出现程序混乱控制不准确的问题。因此在处理这些信号时需要格外小心。在本仪表中处理方案如下:使用外中断侦测ADC转换完成,把ADC数据读取中断置于最高优先级,把串口接收中断位于次优先级,串口数据发送使用DMA方式。在ADC完成中断服务程序中同时进行端口输入读取和端口输出更新操作,保证端口更新时间间隔一致,不受其他中断影响。
仪表的主函数流程图如图5(a)所示,首先初始化芯片端口,然后从铁电存储器读取保存的参数,根据读取到的参数配置串口、Modbus RTU地址、称重校准参数和一些必要的其他参数。最后在循环中扫描键盘,更新LCD显示和后台数据处理。
AD转换结束中断处理具有最高优先等级,实时性最高。其流程图如图5(b),当AD转换结束时,数据输出引脚由高变低产生数据下降沿,触发AD转换结束中断,于是STM32读取第一片CS5532的AD数据,然后选择另一片CS5532读取AD数据,按顺序读取完6个通道的数据后,对端口的输入输出进行更新。因为读取AD数据时没有条件跳转语句,所以从中断到读取数据完成的时间是固定的。又由于AD转换完成的频率固定为240Hz,所以端口的更新也严格为240Hz。端口更新后再对AD数据进行滑动平均数字滤波[9]。然后进行工程单位转换,通过一定时间内的重量信号分析判断传感器是否处于稳定状态,为后续称重流程控制提供控制信号。然后进行称重流程控制比对并改变输出标志位,为下一次端口更新做准备。最后中断返回。
Modbus RTU[10]采用3.5T时间间隔作为帧间识别,所以在使用时需要一个定时间计算3.5T溢出时间。数据接收使用中断方式。流程图如图5(c)所示,当串口接收到数据时,进入中断,把数据读出放到帧缓冲区,如果为帧第一个数据则启动定时器,否则清零定时器防止3.5T超时溢出中断。直到一个帧接收结束,Modbus RTU主机在3.5T时间内不再发送数据,3.5T定时器没有清零,直到溢出,执行3.5T定时器溢出中断程序,流程图如图5(d)。当3.5T中断时,说明完成1帧数据接收,首先进行CRC校验,如果校验正确则进行地址校验,否则抛弃错误帧中断返回。地址校验正确则根据指令对内部数据进行读写,最后使用DMA方式返回数据到主机以减少发送中断对CPU的占用。如果地址校验错误则放弃数据处理,中断返回。
图5 程序流程图
4.2 MCGS软件设计
MCGS嵌入版是专门应用于嵌入式计算机监控系统的组态软件,通过对现场数据的采集处理,以动画显示、报警处理、流程控制和报表输出等多种方式向用户提供解决实际工程问题的方案,在自动化领域有着广泛的应用[11]。软件开发采用MCGSE组态环境。设备组态选择莫迪康Modbus RTU作为与本仪表的通讯设备。在通道连接中每个变量使用32位有符号变量或32位无符号变量。每个变量与STM32中的变量一一对应。这样MCGS在数据变化时自动与STM32传输,数据不变时定时读取STM32中的数据。在用户窗口中添加相关的交互窗口并设计,做好控件后与对应变量连接。就可以与下位机交互通信了。该仪表的主控制界面如图6所示。通过使用MCGS触摸屏人机界面简化STM32人机交互程序的编写,同时通过修改MCGSE组态环境根据客户需求修改界面简单快捷,通用性较好。
图6 主控制界面
5 测试与结论
使用桥式称重传感器型号为MT1022,量程10kg的传感器。表1数据为对称重仪表进行校准后放入不同质量的砝码对仪表的准确性进行检测。从表中可看出仪表在整个量程范围内准确度非常高。
表1 重量测试数据
表2为灌装320g油漆规格数据。测量步骤为:设定目标值为净重320g,提前量50g,放上罐,通过“置皮”功能设定皮重,开始一次灌装,得到实际净重与目标值净重的差值,通过仪表的提前量计算功能调整提前量设定。然后进行10次灌装试验并记录。通过表格数据可见,仪表的灌装控制精度在±2g范围内,达到了厂方的要求。
表2 灌装试验结果(g)
6 结语
6通道控制仪表在控制数量上提高了6倍,解决了单/双通道仪表同时控制通道少的问题。控制数量增加,操作也较简单,一致性好,总体速度更快,效率更高。
[1]吴琼.国内称重仪表的应用现状及发展趋势[J].衡器,2012,43(6):1-3.WU Qiong.Application Status and Development Trend of Domestic Weighing Instruments[J].Weighing Instrument,2012,43(6):1-3.
[2]孟华,杨光伟,石英,等.一种定量自动称重控制器的设计与实现[J].仪表技术与传感器,2008(9):40-42.MENG Hua,YANG Guangwei,SHI Ying,et al.Design and Implementation of Automatic Weighing Controller[J].Instrument Technique and Sensor,2008(9):40-42.
[3]贺龙.试析钢厂自动化仪表的抗干扰策略[J].电子技术与软件工程,2013(15):161-161.HE Long.Analysis of Anti-jamm ing Strategy on Steel Factory Automatic Instrument[J].Electronic Technology&Software Engineering,2013(15):161-161.
[4]吴忻生,唐萍,秦瀚.数字滤波技术在称重系统信号采集中的应用[J].传感器与微系统,2010,29(9):131-134.WU Xinsheng,TANG Ping,QIN Han.The Application of Digital Filtering Technique in Signal Acquisition ofWeighing System[J].Transducer and Microsystem Technologies,2010,29(9):131-134.
[5]姚志树.开关电源主电路拓扑结构的分析与比较[J].电源世界,2012(10):21-24.YAO Zhishu.Analysis and Comparison of The Topology Structure for Switch Power Circuit[J].TheWorld of Power Supply,2012(10):21-24.
[6]冯仰刚,谢乾坤,强立宏,等.STM32F103ZET6最小系统设计[J].电子世界,2013(5):141-142.FENG Yanggang,XIEQiankun,QIANG Lihong,et al.Design of STM32F103ZET6 Basic System[J].Electronics World,2013(5):141-142.
[7]王爱俊,周航水,张建宇,等.浅谈CS5532在称重仪表中的ADC设计新方案[J].衡器,2013,42(7):44-55.WANG Aijun,ZHOU Hangshui,ZHANG Jianyu,et al.Discussion on Innovative ADC Design of CS5532 in the Weighing Instruments[J].Weighing Instrument,2013,42(7):44-55.
[8]陶晓玲,姚竹亭,刘春力.RS232转RS485有源光隔离转换器结构设计[J].伺服控制,2013(1):80-82.TAO Xiaoling,YAO Zhuting,LIU Chunli.Design of RS232 to RS485 Opti-isolated Convertor[J],2013(1):80-82.
[9]樊毅,秦会斌.基于STM32的高精度电子天平[J].机电工程,2013,30(1):51-59.FAN Yi,QIN Huibin.High Precision Electronic Balance Based on STM32[J].Journal of Mechanical&Electrical Engineering,2013,30(1):51-59.
[10]袁臣虎,王臻,李秀艳,等.基于MODBUS协议的触摸屏与TMS320F2812串行通信研究[J].天津工业大学学报,2010,29(2):63-67.YUAN Chenhu,WANG Zhen,LIXiuyan,etal.Research of CommunicationbetweenTouchScreenand TMS320F2812 Based on MODBUSProtocol[J].Journal of Tianjin Polytechnic University,2010,29(2):63-67.
[11]丁辉,丁华峰,庄鹏,等.基于Modbus协议和MCGS组态的档案资料库房温湿度监控系统设计[J].内蒙古师范大学学报,2014(5):562-567.DING Hui,DING Huafeng,ZHUANG Peng,etal.Design of ArchivesWarehouse Temperature and Humidity Monitoring System Based on Modbus Protocol and MCGS[J].Journalof InnerMongolia Normal University(Natural Science Edition),2014(5):562-567.