某糖果厂于1985年从德国SIMON电子公司引进带微电脑的计量进料器116EM型生产线,用于糖果生产。由于引进时间较长、图纸资料不全、外方维护不便等原因,时有因电脑控制部分发生故障而影响生产的情况发生。从提高设备国产化比重、节约外汇、方便维护、保证生产出发,本文应厂方要求,在对进口装置的设备性能和电气信号时序透彻分析的基础上,开发了基于8031的嵌入式的微机自动计量进料系统,该系统从性能要求、信号时序到外观尺寸都与进口装置完全匹配,成功地实现了进口设备控制系统国产化。
2 计量进料器的称量和计量进料原理
启动预先设置的计量进料程序后,计量系统首先称量并存储称量锅皮重,然后依次控制各种配料如牛奶、砂糖、水等进入称量锅,其中干物料用振动盘计量进料,粉末料由螺旋进料器计量进料,液体料则由液压阀计量进料,糊状物由泵进料。每一种配料都先后使用粗料和细料两种进料方式,以保证称量精度达到98%~99%。物料重量由安装在支撑架上悬置称量锅的3个应变仪转变为电信号,经A/D转换读入计算机进行重量计算,去除皮重后与设定值比较,其结果作为控制物料切换或粗、细进料转换的依据。完成称量的混合物通过活门排放至可加热的储藏缸、搅拌,再用泵打入溶解器,进入溶解制糖工序。
3 系统功能要求
为保证原进口装置性能,要求计量进料自动控制系统具有如下功能:
(1)实现多达5种原料的顺序自动称量,定时搅拌、排放;
(2)在总重量不超过135 kg的范围内任意设定称量值;
(3)累计5种原料的班用量;
(4)每个称量循环完毕对称重系统进行自检,并能随时执行检查命令;
(5)能随时暂停自动称量灌装;
(6)若某种原料的灌装系统故障,可跳过该原料的灌装;
(7)故障报警功能:
无压缩空气报警,系统停止运行;
电机联接故障报警,系统停止运行;
称量锅内脏物超过10 kg,系统停止运行;
储藏缸液位超过设定值,系统停止运行;
(8)显示:净重、毛重,自检/检查值等;
(9)指示:重量上、下限,系统故障等;
(10)自动/手动切换;
(11)打印:固定格式的自动打印和单锅、单一原料数据打印。
4 系统硬件结构
根据上述系统功能要求,通过对原装置传感器、执行部件的电气信号分析,并考虑到安装条件,硬件设计立足于低成本、国产化,采用了以MCS—51系列单片机8031为CPU,联接A/D,键盘/显示,拨码盘,打印机等接口电路组成系统的设计方案。
整个系统由如图4—1所示的CPU板、A/D转换板、开关量I/O板、显示/键盘、打印机接口板、拨码盘输入板以及电源板组成。6块板以插件形式安装在两只抽屉式机箱内,嵌入原装置的控制器部位,实现与原装置的电气衔接。
其中8031最小系统由8031单片机通过总线驱动器扩展一片2764EPROM、一片6264RAM组成 。A/D转换采用双积分式12位A/D转换芯片ICL7109及相应辅助芯片组成。ICL7109具有高精度 、低漂移、抗干扰能力强等优点。采用8279作为键盘/显示接口,CPU以中断方式处理按键申请。五组四位BCD拨码盘通过两级译码,其控制端和8421数码端经8255与CPU相接。开关量I/O及打印机接口也均由8255实现。系统在保证功能的前提下体现了经济实效、立足国内的原则。
5 系统软件设计
系统应用软件在DVCC—52与PC机联合开发系统下,采用汇编语言与BASIC语言混合编程 、模块化、结构化的设计方法。整个程序由系统诊断模块、自动配料模块、A/D及数据处理模块、越限报警模块、按键、显示、打印模块等组成。各模块相对独立又相辅相成,从而使采样、运算、控制、显示、参数设置等有条不紊,急缓有序的运行。在称量精度、按键响应速度、故障报警能力等方面都达到了自动计量进料的要求。主程序框图如图5—1所示。
其中,诊断子程序包括CPU指令系统诊断、RAM诊断、EPROM诊断、A/D、I/O模板诊断以及为达到系统故障报警功能而进行的传感器信号的检测。
自动配料子程序主要框图如图5—2所示。考虑到给料装置的振动和惯性,程序中采用了把两次采样时间间隔Δt内的重量增量Δg与设定值和称量值之差e相比较,根据比较结果进行粗料、细料和换料的切换,以提高称量精度。并用一个单元进行配料顺序记数,这样5种配料可公用相同的程序,以达到优化程序结构,节省程序存储器空间的目的。
CPU以中断方式处理按键请求。在键盘中断服务子程序中,进行按键识别,并对相应的位标志变量进行设置。而其它各功能模块则根据标志变量状态控制程序走向。
6 系统可靠性设计
本系统处于干扰较多的复杂工业现场,因此在设计中除采用光电隔离、电源滤波、屏蔽接地及地线处理等硬措施,以及用平均值加中位值复合滤波方法,克服信号采集中的周期性干扰和尖峰型干扰外,还采用了硬件自诊断技术和软件抗干扰技术,以保证系统的称量控制精度和可靠性。
6.1 硬件故障自诊断技术
本系统对关键的硬件设备采用了由上电自诊断、定时自检、键控自检相结合的自诊断方法,及时发现系统故障,保证精度,以避免系统带病运行。具体诊断项目有:
(1)CPU指令系统诊断8031指令系统能被正确地执行是系统正常工作的前提,为此设计了一段涉及各种指令的测试程序,判断其运行结果是否正确,以排除CPU失灵的可能性。
(2)RAM诊断采取向关键RAM区依次进行写入读出操作,比较读出与写入内容是否相同来判断内、外RAM芯片的好坏。上电时采用破坏性测试(不保护原有内容),复位、按键诊断采用非破坏性测试(保护原有内容)。
(3)EPROM诊断固化目标程序的EPROM在使用时间长,窗口密封不好等情况下,可能出现个别零星单元信息发生变化的情况,必须主动进行检查。本文采用了“异或和”校验法。在程序固化之前,利用开发装置求出所有指令的异或和并把结果写入最后一个空单元中,诊断时再求所有指令,包括“结果”的异或和,若和数为零,可以认为EPROM中的内容是正确的 。
(4)采用硬件冗余联合诊断技术进行A/D、I/O模板、重要参数传感器诊断。
6.2 软件抗干扰技术
当CPU本身受到干扰,程序计数器PC因干扰而改变内容时,CPU将不能按正常状态执行程序,从而引起混乱,产生所谓程序“跑飞”现象。为此在软件上采取了指令冗余、软件陷阱 、纯软件watchdog技术以控制程序流向。
(1)指令冗余当CPU受干扰后,会把操作数当指令码引起混乱。分析MCS—51指令系统,大多为单字节指令,最长不超过3字节。当程序弹飞到双字节和3字节指令上时,继续出错的机会较大,而当弹飞到单字节指令上时,程序将自动纳入轨道。因此在程序中对程序流向起决定作用指令之前插入3条空操作指令(如转移、子程序调用和对系统工作状态至关重要的指令),并将跳转指令冗余一次,以保证被正确执行。指令冗余技术可减少弹飞次数,使程序很快纳入轨道。
(2)软件陷阱当程序弹飞到非程序区(EPROM未使用区,数据区……)时,冗余指令将无能为力。为此设计了软件陷阱,即在程序断裂点(无条件跳转指令、返回指令之后)和数据区末尾插入NOP NOP LJMP 3条指令。将空白区充满LJMP指令,强行将捕获的程序引向出错处理程序入口。出错处理程序的主要功能是实现系统恢复。因LJMP指令的操作码是02H,故若把出错处理程序入口安排在0202H,则可方便地利用开发系统中Debug功能把大片程序空白区固化为020202……,从而大批陷阱处理完毕。
(3)纯软件Watchdog若指令弹飞在程序区,但在遇到冗余指令之前已形成死循环,则指令冗余和软件陷阱均失效。为此本系统利用空闲的定时器T2设计了程序运行监视系统(Watchdog);设T2为高优先级,根据主控程序循环周期确定T2的定时常数和计数器的记数值 ,每次中断对计数器加1,并判断记数值若大于设定值,则转出错处理程序入口。同时在主程序中对计数器清零。如此,保证及时把程序从死循环中解放出来。
7 结束语
本文结合工厂实际,用经济的8031及外围芯片设计了自动计量进料控制系统,取代了原进口设备的控制装置。经几年来运行证明,该系统功能完备,运行稳定可靠,操作简便,性能价格比高。该技术延长了设备使用寿命,创造了很好的经济效益,不失为进口设备国产化和传统设备自动化的有益尝试,在推进食品、饮料行业的国产化和自动化方面具有积极意义 。