料斗秤控制系统的研究:
卸料机料斗称量测控仪,是适用于卸料机运行过程中的料斗称量给料、放料控制;料斗动态载重倾斜控制;振动给料器起振点设定控制;存余量停振点控制;料位装载预警、报警点设定控制的装置。该装置在日本大和CFC100、CFW技术基础上,以Atmega128CPU为核心,具有处理多路称重信号能力,并针对多路输入信号实时作出相应的智能动态控制。
ATMEL*新推出的AT90系列AVR单片机是很引人注目的*款微处理器。这种芯片基于新的RISC(ReducedInstructi0nSetC0mputer)结构,在设计上采用了流水线的结构,在执行前*条指令的时候,同时取出下*条指令,它的FLASH以及强大的外围接口能力使它成为目前zui流行的单片机*。
本文采用的*性能微处理器芯片Atmega128,利用结构化、模块化程序设计的思想,实时地对三路重量信号进行采样,计算并显示出各路重量及状态,根据计算值及状态作相应的控制,以9600bps的速率和上位PC机进行串行数据传输。
1硬件设计
1.1微处理器及其特点
Atmega128是ATMEL*推出的*档系列产品,是基于AVRRISC的低功耗CM0S8位单片机。在外部晶振为8MHz时,*条指令的执行时间*为125ns,这种AVR单片机的结构有利于用C语言编程,从而能*地开发出目标产品。为了对目标代码大小进行优化,AVR单片机采用了大型快速存取寄存器文件和快速单周期指令。通过在*个时钟周期内执行*条指令,Atmega128可以取得接近1MIPS/MHz的性能。它将32个工作寄存器和丰富的指令集联结在*起,使*有的工作寄存器都和ALU(ArithmeticL0gicUnit,计算机CPU中的算术逻辑单元)直接相连,允许在1个时钟周期内执行的单条指令同时访问2个独立的寄存器。Atmega128具有128K字节的Flash存储器,4K字节在线可编程EEPR0M,4K字节SRAM,外围有2个全双工UART串行通讯接口。
1.2.1 DC输入单元
把DC信号经光偶隔离转化为TTL电平,送主控单元。
1.2.2模拟输入单元(见图2)
A路、B路及CD路信号分别由称重传感器信号经前置预处理、信号放大后送主控单元,由主控单元A/D转换,得到三路采样的重量信号。
1.2.3人机界面单元
由8只按健和点阵式显示屏组成,按健输入控制的参数及调整量,显示屏显示重量信号状态信息。
1.2.4 DC输出单元
由11只控制继电器组成,分别控制A路偏载、预警、报警,B路偏载、预警、报警,CD路偏载,总量的起振、停振、预警和报警。
1.2.5模拟输出单元
由4路D/A输出,经电流放大,产生4~20mA的电流控制信号,分别代表A路、B路、CD路和总路的重量状态。
1.2.6串行通信单元</b>
串行通信单元由*个RS-485驱动器和*个RS-232驱动器组成,分别对应主控单元的两个独立的UART接口。
1.2.7主控制单元
由Atmega128CPU可编程逻辑控制器、实时时钟电路、黑匣子存储器和外部看门狗组成(见图3)。
2软件设计
软件部分采用模块化、结构化程序设计方法,利用C语言编写。软件流程图如图4*示。
2.1初始化
设置SP初值;把程序用到的内部RAM区清0;DC输出继电器赋初值;串行口0(RS-232)初始化(设置波特率为9600),串行口1(RS-485)初始化(设置波特率为9600,接收状态);读EER0M指针(黑匣子数据存储指针);点阵液晶初始化,显示初始幅面(显示仪器型号,生产厂家,联系电话);实时时钟(DS1302)初始化;看门狗(X5043)初始化,打开看门狗;中断初始化,打开中断。
2.2输入/输出处理:
输入/输出处理软件流程图如图5*示。
2.2.1模拟信号采样(A/D):
分别对A路,B路和CD路采样各64个信号点,根据大数定理,去掉奇异点,剩下的作平滑处理,得到A路采样值,B路采样值,CD路采样值。
2.2.2计算A、B、CD路的重量:
A路重量=A路采样值*A路重量系数-A路皮重
B路重量=B路采样值*B路重量系数-B路皮重
C路重量=C路采样值*C路重量系数-C路皮重
总重量=A路重量+B路重量+C路重量
2.2.3模拟输出控制
A路D/A输出值=204*A路重量/A路zui大重量+51
B路D/A输出值=204*B路重量/B路zui大重量+51
CD路D/A输出值=204*CD路重量/CD路zui大重量+51
总路D/A输出值=204*总重量/总路zui大重量+51
A路D/A输出值送D/A通道0,B路D/A输出值送D/A通道1,CD路D/A输出值送D/A通道2,总路D/A输出值送D/A通道3。
2.2.4DC输出控制
根据A路重量判别是否偏载、安全、预警、报警,对相应的继电器作出控制,根据B路重量判别是否偏载、安全、预警、报警,对相应的继电器作出控制,根据CD路重量判别是否偏载、安全、预警、报警,对相应的继电器作出控制,根据总重量判别是否停振、起振、预警、报警,对相应的继电器作出控制。在报警状态作黑匣子数据存储。
2.2.5黑匣子数据存储
黑匣子数据存储在串口EEPR0M(24C256)中,每组数据有12个字节组成(见表1)
由上位机(PC机)串口发读命令,则黑匣子数据通过串口送PC机,清除命令则清除*有黑匣子数据。
2.3中文显示
中文显示由*组显示驱动函数据组成:
Printstr8X16以8*16点阵组成的字符显示字符串(包括中文)(函数原码见附录)
Printstr16X16以16*16点阵组成的字符显示字符串(包括中文)
Printl0ng8X16以8*16点阵组成的字符显示数字
Printl0ng16X16以16*16点阵组成的字符显示数字
程序中调用以上函数,很方便地把中文字符或数字显示到显示屏的任意位置。
2.4键处理函数
2.4.1校0键:
对A路、B路、CD路重量信号A/D采样,乘相应的系数,作为皮重存储在EEPR0M中。
2.4.2设置键:
屏幕提示密码输入
1) 输入密码1
实时时钟设置,显示当时时钟,在光标位置下,修改相应数字,移动光标,保存修正后的时钟。
2) 输入密码2
输入参数,每*屏显示*个参数,修改后转入下*屏显示下*个参数或退出返回到正常工作状态。修改的参数依次如下:A路偏载重量、A路预警重量、A路报警重量、B路偏载重量、B路预警重量、B路报警重量、C路偏载重量、总量起振重量、总量停振重量、总量预警重量、总量报警重量、A路重量系数、B路重量系数、CD路重量系数。
2.5串行通信处理
本系统采用被动式查询通讯,串口接收采用中断方式,发送采用查询方式。
串口命令:
当串口收到0AH、41H、0DH命令时,把当前数据(由ASCII码)传送上位机,数据构成见表3:
2.5.2读黑匣子数据命令(3字节)见表4
当串口收到0AH、42H、0DH命令时,把*存储的黑匣子数据送上位机,传送数据构成见表5:
注:每组数据格式参数1命令(读当前数据)
2.5.3清黑匣子数据见表6
当串口收到0AH、43H、0DH命令时,把黑匣子指针指向初始位置,组数据值清0,并向上位机应答。
料斗秤控制系统的研究