彭清祥,吴罕奇,王剑波
(三一重工股份有限公司,湖南 长沙 410100)
称量系统是混凝土搅拌站最重要的系统之一,称量仪表负责实现称量系统的重量控制、数据收发和换算、数据显示以及配料参数。本文基于C8051F040 单片机设计了一种具备显示、参数设置、配料控制、数据收发功能的称量仪表。称量仪表采用CAN 总线实现和搅拌站上位机的数据通信,并分析了数据通信中需关注的事项,给出了相应的解决方法。
混凝土搅拌站一般有多个物料需要计量和配比,本文以8 种物料系统为例,称量系统如图1所示。搅拌站每个称附近部署数据采集器,数据采集器采集传感器信号,转换为数字量通过CAN总线传输给仪表,仪表和数据采集器之间通过设置的固定ID 号一一对应。仪表收到数据采集器采集的信号,根据m=kx+b得到重量值,其中m为重量、k为通过校称得到的比例系数、b为通过校称得到的零点值,x为仪表收到的数据采集器的采集值。通过计算得到的重量值和上位机下发的目标值的对比结果控制进料和卸料。称量仪表通过CAN 总线给上位机传输称量过程中的各个状态量以及重量值,由上位机进行数据记录、打印和状态监测。
称量仪表具备4 个按键、两行数码管显示;4 种物料、进、卸料门输出控制,输入信号主要为启动称量信号,具备CAN 通信、参数设置及存储功能,称量仪表组成如图2 所示。
图2 称量仪表组成框图
Cygnal 公司的51 系列单片机C8051F040 芯片上有1 个12 位多通道ADC,2 个12 位DAC,2 个电压比较器,1 个电压基准,1 个32kB 的FLASH 存储器,与MCS-51 指令集完全兼容的高速CIP-51 内核,峰值速度可达25MIPS,并且还有硬件实现的UART 串行接口和完全支持CAN2.0A 和CAN2.0B 的CAN 控制器,可支持20 个中断源。C8051F040 作为称量仪表的主控制芯片,外部通过连接符合ISO11898 标准的CAN收发器芯片TJA1050 实现CAN 总线通信;通过连接HD7279 芯片实现数码管的驱动和显示,上排数码管显示当前重量值,下排数码管显示配比目标值。输入开关量信号主要有启动配料信号和面板开关的按键信号;通过面板开关的按键可以设置称量仪表ID 号、最大量程、提前量等参数,也可以实现校称、手动进/卸料等功能。输出开关量信号主要为4 种物料控制、进料、卸料、蜂鸣器控制信号。电源输入为24VDC,通过电源芯片LM2596-5V 芯片变换为5VDC,为仪表其余电子器件提供5VDC 电源;采用AMS1117-3.3V电源芯片将5VDC 电源变换为3.3V 电源,给C8051F040 供电。晶振采用16M 有源晶振,通过外置看门狗电路确保系统运行的安全性。
称量仪表可以控制4 种物料的配料,输入开关量为启动配料信号(IN),高电平有效;输出开关量分别为物料1 的进料控制信号(M1)、物料2 的进料控制信号(M2)、物料3 的进料控制信号(M3)、物 料4 的进料控制信号(M4)、快进料门信号(COARSE)、精进料门信号(FINE)、卸料控制信号(DISCH),有效时为低通,无效时高阻状态。如图3所示,每个物料的目标值由总值、精进料值、提前量值组成,其中提前量为进料门到称斗之间的落差值。称量仪表收到启动信号后,开始根据目标值进行配料,在实际重量<(总值-精进料值)时,快进料门和精进料门同时打开,快速进料;当(总值-精进料值)≤实际重量<(总值-提前量)关闭快进料门,由精进料门实现精进料;当(总值-提前量)≤实际重量时,关闭精进料门,完成进料过程,等待卸料条件满足后,打开卸料门,完成进卸料整个流程。
图3 称量仪表配料过程
称量仪表在运行过程中通过CAN 总线和数据采集器及上位机进行通信,通过CAN 接收数据采集器发送的数据。为有效降低总线负载率,需要不断向上位机发送的变量,通过定时中断定时发送的方式来替代上位机询问-仪表应答方式。定时中断采用定时器2,C8051F040 内部有扩展的CAN 中断,2 个中断方式详细参数如表1 所示。
表1 称量仪表使用的中断列表
本诚联仪表中外部晶振为16MHz,CAN 通信速率为250k/s,得到BITREG 的初始值为0x1c01。CAN 启动程序略。
称量仪表通过CAN 总线接收上位机配比和参数设定值、状态查询指令,向上位机发送重量值、实际参数以及配料过程值,数据内容如表2所示。其中TYPE1、TYPE2 的定义如表3 所示。称量仪表向PC 发送的状态、进程数据,数据定义如表4 所示。
表2 称量仪表发送参数、配比数据帧定义
表3 参数、配比数据帧数据索引定义
表4 称量仪表发送状态、进程数据定义
其中TYPE1、TYPE2 的定义如表5 所示。
表5 状态、进程数据索引定义
上位机需要记录每种物料的配比值、实际重量值,其中实际重量值的记录是在收到称量仪表的卸料信号时开始记录。在称量仪表实际使用过程中,出现上位机实际重量值记录为零的现象。经过分析称量仪表程序,发现引起该现象的原因为在称量仪表向上位机发送数据时,未关闭CAN中断,导致发送时进入CAN 中断,实际重量值在CAN 中断中更新为零,中断程序执行完后回到发送程序,发送的变量进行了改变,因此在发送过程中需关闭CAN 中断。
CAN报文发送是由CAN控制器自动完成的,用户只需将对应的数据转移到发送缓冲寄存器,然后将此报文对象的编码写入命令请求寄存器启动发送即可。
CAN 报文的接收采用中断方式。CAN 中断程序中首先需关闭CAN 中断,为规避发送时实际重量值非正常变更,进入中断后先关闭CAN中断,并在发送过程中设置中断标识位,中断处理程序略。
基于C8051F040 的称量仪表已大批量在混凝土搅拌站上进行了应用,通过CAN 总线的应用,有效地降低了现场线束的复杂度。在前期使用过程中,CAN 发送程序中未关闭CAN 中断,采用CANoe 分析工具进行模拟分析如图4 所示,通过CANoe 发送大量干扰帧数据,发现称量仪表向上位机发送的数据发生突变,验证了在发送时未关闭CAN中断会导致称量仪表发送的数据突变现象。
图4 整改前干扰情况下发送数据情况
通过整改后,同等条件下,通过CANoe 发送大量干扰帧数据,称量仪表发送数据未出现突变现象,如图5 所示。整改后的称量仪表在实际混凝土搅拌站上应用验证,上位机未再出现数据记为零的现象。
图5 整改后干扰情况下发送数据情况
本文介绍了一种基于C8051F040 的称量仪表,介绍了称量仪表的主要硬件组成和输入输出信号,基于该称量仪表可实现混凝土搅拌站的分布式称量控制。该称量仪表可以控制四种物料的配料,并分析了配料逻辑控制过程。详细给出了称量仪表和数据采集器、上位机之间的数据交互方案,在此基础上分析了上位机重量值记为0 的故障原因,并给出了解决方案,采用本文设计的称量仪表已在混凝土搅拌站得到了大批量应用,有效降低了混凝土搅拌站称量系统的复杂度。