摘要:基于单片微处理器PIC16F877研制成功了六嘴回转式电子秤水泥包装机的智能控制器,给出控制系统的硬件电路和软件的设计思想,并阐述了控制器的工作原理。该控制器设计的高精度是本系统的重要性能。中断嵌套是设计软件中的难点。本系统还成功实现了与上位机的通信。
关键词:PIC单片机 A/D转换 中断 通信
包装机系统可用于粉末东颗粒物料(如水泥、化肥、粮食等)的定时包装,自动化程度、计量精度要求越来越高。针对用户的要求,本系统设计了一种基于PIC16F877单片机控制的电子秤水泥包装机控制系统。
控制系统包括调零、调满、设定粗细流阈值、插袋、喂料、压袋、推包、破袋处理等控制功能。另外,对检测的质量进行数码显示,对状态采用LED指示。同时还完成了与上位机的通信,可以实时观测质量变化及控制状态的情况,并在硬件和软件上分别采用了抗干扰措施和系统保护措施。本系统硬件结构简单,运行稳定可靠,软硬兼备,具有完善的控制功能和抗干扰能力。
1 控制器工作原理
电子秤是包装机的一个独立的控制部件,安装在包装机电控箱内,从包装箱观察窗可以看到电子秤的质量显示和状态LED指示。其控制系统由检测电路、控制电路、设定显示电路及与上位机的通信电路等几部分组成。控制器原理框图如图1所示。
系统经过调零调满后,发出插袋信号。当检测到包准备好信号时开始喂料,此时粗细阈一起打开,CPU根据由荷重传感器检测的质量信号,与由按键设定输入的粗细阈流值进行比较判断,先后控制关闭粗细阈。再由检测的推包位置到和皮带脉冲到信号,发出推包控制信号。另外,阈值设定和与上位机的通信在软件中通过中断来控制实现。物料的质量由数码管实时显示。
2 硬件电路设计
根据系统的控制功能,并结合包装机机械构件的工作原理,在软件设计过程中,应力求硬件结构简单,控制可靠。软硬协调,相得益彰。以下将对控制系统的CPU选择及检测部分、控制部分、显示与阈值设定部分及串行通信部分的设计进行介绍。
用户要求包装质量精度比较高,即要求水漏质量的测量具有很高的精度,这就要求系统的A/D转换精度比较高。另外,在喂料过程中采用粗流细流两种方式,CPU 需对粗流细流阈的设定值有掉电保护作用。美国Microship公司的PIC16F877单片机能满足系统的这些要求。PIC16F877内含10位的 A/D转换器,价格便宜,外围接口电路简单,转换精度高,对本系统而言控制精度可达0.05kg。这带有256字节的电何擦写的EEPROM存储器。每次工作粗流细流阈值的设定值可以从EEPROM中读出以前写入的设定值,或重新按键设定并写入EEPROM以备下次使用。另外PIC16F877有8K× 14bit的FLASH存储器,386×8bit的数据SRAM及同步串行模块。充足的资源可供以后开发改进。看门狗可以对软件运行出错提供保护功能。 RISC(精简指令集计算机)指令易学易用。
2.2 检测电路
检测部分主要介绍模拟输入电路和状态检测电路两部分,电路如图2所示。
包装机系统的工作是个顺序的过程,需要检测一系列的状态信号。单片机的RE0、RE1、RE2口作为由电子秤外部产生的包准备好、推包位置、皮带脉冲到状态信号的检测口。各种检测回路中接有发交二极管,指示状态检测情况。
显示电路在喂料时用于显示物料质量,在阀值设定时用于显示设定值。阈值设定由按键设定来实现,电路如图4所示。
物料质量是不断变化的,要求可以时刻观测质量的值,且精度可达到0.05kg。采用4个数码管显示,单片机的D口输出8位二进制显示值经电阻送到数码管数据线。另外RB口的RB1、RB2、RB3、RB4经反相驱动器ULN2003分别驱动4个数码管,作为片选信号。显示时考虑到视觉暂存现象,每次显示通过软件延时200ms,使显示得以正常工作。
2.4 控制电路
本系统完成的控制有压袋、推包、喂料、粗流下料等,分别由单片机双向I/O端口的RC0、RC1、RC2和RC3输出控制。单片机输出的控制信号经过三极管放大、光耦隔离、又一级三极管放大,分别驱动控制继电器K1、K2、K3和K4,使其按照控制的要求通电或断电,继而产生压袋、粗流下料、喂料、推包等相应的控制动作;同时,在继电器开关回路中,接有发光二极管,用以显示控制状态。此控制电路中的光耦隔离,增加了系统的抗干扰性,也起到了保护作用。单片机的控制电路如图5所示。
2.5 串行通信电路
本系统还要完成与上位机串行通信的功能。上位机为工控机,用来监测各种状态。设置单片机的串行通信接口SC1为可以与工控机进行通信的全双工异步系统。 SCI是一种利用RC6、RC7两个引脚作为通信线的二进制串行通信接口。把RC6和RC7分别设置成串行通信接口的发送/时钟(TX/CK)线和接收/ 数据(RX/DT)线,并把单片机的串行通信接口设置为从动方式,由上位控制发送、接收。单片机通过响应中断来实现与上位机的通信,其串行通信电路如图6 所示。
串行通信接口(SCI)异步工作方式由以下重要部件组成:波特率发生器(BRG)、采样电路、异步接收器、异步发送器。8位的BRG用来驱动来自振荡器的时钟产生标准的波特率频率。接收线RX(RC7)上的数据通过1个三中取二检测电路对其采样3次,以决定RX(RC7)引脚上的电平是高电平还是低电平。 SCI的发送器和接收器在功能上是独立的,但它们所用的数据格式和波特率是相同的。串行通信接口采用标准的不归零(NRZ)格式,即1位起始位、8位数据位和1位停止位。SCI接收和发送顺序是从最低位(LSB)开始的。
3 软件设计
在软件设计中,既综合了系统的功能、性能要求及硬件电路,又考虑了软件的易维护性。采用模块化结构,并尽量做到模块的独立性,减少模块之间的交叠。整个软件设计由主程序、各个功能子程序、中断服务程序组成。下面介绍主程序的设计及中断服务程序的设计。
根据系统的工作原理,主程序由初始化、数据采集和处理、调零、调满、读设定值、显示及检测各种状态位和控制各种状态等几部分组成。程序执行行中不循环检测各种状态位,并执行各种相关的子程序,完成控制任务。主程序流程如图7所示。
3.2 中断服务程序设计
在此系统程序设计中,中断程序的设计是个难点。其中按键设定阈值产生外部中断,另外与上位机的通信也采用中方式实现,还有同部的定时中断。考虑到多种中断,存在中断优先级的问题,选用的PIC16F877单片机的中断功能有其独立特性,即它只有一个中断入口地址0004h。每种中断都要由此进入中断程序,因此中断程序开始现场保存垢,要进行各种中断村污位的顺序检测和判断。当判断到中断标志位时,转到相应的中断服务子程序中。根据检测标志位的顺序,可以人为地定义中断优先级。先判断的优先级就高。本系统根据实际情况,定义串行通信中断优先级最高,其次为定时中断,然后是按键设定外部中断,如图8所示。
另外,中断存在嵌套问题。由于中断入口地址只有一个,因此,当出现中断嵌套时,各级中断返回的地址正确与否是很关键的。由调试过程,总结出要处理好每次中断的现场保护和恢复现场是很重要的,并要注意其中的换页位置。
该系统结构简单,运行稳定可靠,控制精度高,具有完善的保护功能;可继承性好,并为以后的技术改进留有一定的资源;成本低廉,经用户试和反应良好。