工控网首页
>

应用设计

>

料斗秤控制系统

料斗秤控制系统

2005/11/7 10:57:00
【摘 要】    设计了一种以微处理器Atmega128为核心,由CPU对三路重量信号采样(A/D转换)、计算重量、用中文显示重量及状态,根据重量对料斗秤起振、停振等进行控制,同时输出三路4~20mA电流控制信号,且状态及重量通过RS-232(或RS-485)送PC机,从而取代日本大和CFC100料斗秤控制器。 【关键词】   微处理器 数据采集 串行通信 黑匣子数据存储   卸料机料斗称量测控仪,是适用于卸料机运行过程中的料斗称量给料、放料控制;料斗动态载重倾斜控制;振动给料器起振点设定控制;存余量停振点控制;料位装载预警、报警点设定控制的装置。该装置在日本大和CFC100、CFW技术基础上,以Atmega128CPU为核心,具有处理多路称重信号能力,并针对多路输入信号实时作出相应的智能动态控制。   ATMEL公司新推出的AT90系列AVR单片机是很引人注目的一款微处理器。这种芯片基于新的RISC(Reduced Instruction Set Computer)结构,在设计上采用了流水线的结构,在执行前一条指令的时候,同时取出下一条指令,它的FLASH以及强大的外围接口能力使它成为目前最流行的单片机之一。   本文采用的高性能微处理器芯片Atmega128,利用结构化、模块化程序设计的思想,实时地对三路重量信号进行采样,计算并显示出各路重量及状态,根据计算值及状态作相应的控制,以9600 bps的速率和上位PC机进行串行数据传输。 1 硬件设计 1.1 微处理器及其特点   Atmega128是ATMEL公司推出的高档系列产品,是基于AVRRISC的低功耗CMOS8位单片机。在外部晶振为8MHz时,一条指令的执行时间仅为125ns,这种AVR单片机的结构有利于用C语言编程,从而能高效地开发出目标产品。为了对目标代码大小进行优化,AVR单片机采用了大型快速存取寄存器文件和快速单周期指令。通过在一个时钟周期内执行一条指令,Atmega128可以取得接近1MIPS/MHz的性能。它将32个工作寄存器和丰富的指令集联结在一起,使所有的工作寄存器都和ALU(ArithmeticLogic Unit,计算机CPU中的算术逻辑单元)直接相连,允许在1个时钟周期内执行的单条指令同时访问2个独立的寄存器。Atmega128具有128K字节的Flash存储器,4K字节在线可编程EEPROM,4K字节SRAM,外围有2个全双工UART串行通讯接口。 1.2 逻辑框图简解(见图1)
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,接收状态);读EEROM指针(黑匣子数据存储指针);点阵液晶初始化,显示初始幅面(显示仪器型号,生产厂家,联系电话);实时时钟(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路最大重量+51 B路D/A输出值= 204*B路重量/ B路最大重量+51 CD路D/A输出值= 204*CD路重量/ CD路最大重量+51 总路D/A输出值= 204*总重量/ 总路最大重量+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.4 DC输出控制   根据A路重量判别是否偏载、安全、预警、报警,对相应的继电器作出控制,根据B路重量判别是否偏载、安全、预警、报警,对相应的继电器作出控制,根据CD路重量判别是否偏载、安全、预警、报警,对相应的继电器作出控制,根据总重量判别是否停振、起振、预警、报警,对相应的继电器作出控制。在报警状态作黑匣子数据存储。 2.2.5黑匣子数据存储   黑匣子数据存储在串口EEPROM(24C256)中,每组数据有12个字节组成(见表1)
  由上位机(PC机)串口发读命令,则黑匣子数据通过串口送PC机,清除命令则清除所有黑匣子数据。 2.3 中文显示   中文显示由一组显示驱动函数据组成: Printstr 8X16 以8*16点阵组成的字符显示字符串(包括中文) (函数原码见附录) Printstr 16X16 以16*16点阵组成的字符显示字符串(包括中文) Printlong8X16 以8*16点阵组成的字符显示数字 Printlong16X16 以16*16点阵组成的字符显示数字   程序中调用以上函数,很方便地把中文字符或数字显示到显示屏的任意位置。 2.4 键处理函数 2.4.1校0键:   对A路、B路、CD路重量信号A/D采样,乘相应的系数,作为皮重存储在EEPROM中。 2.4.2设置键:   屏幕提示密码输入 1) 输入密码1 实时时钟设置,显示当时时钟,在光标位置下,修改相应数字,移动光标,保存修正后的时钟。 2) 输入密码2   输入参数,每一屏显示一个参数,修改后转入下一屏显示下一个参数或退出返回到正常工作状态。修改的参数依次如下:A路偏载重量、A路预警重量、A路报警重量、B路偏载重量、B路预警重量、B路报警重量、C路偏载重量、总量起振重量、总量停振重量、总量预警重量、总量报警重量、A路重量系数、B路重量系数、CD路重量系数。 2.5串行通信处理   本系统采用被动式查询通讯,串口接收采用中断方式,发送采用查询方式。 串口命令: 2.5.1读当前数据命令(3字节)见表2
  当串口收到0AH、41H、0DH命令时,把当前数据(由ASCII码)传送上位机,数据构成见表3:
2.5.2读黑匣子数据命令(3字节)见表4
  当串口收到0AH、42H、0DH命令时,把所存储的黑匣子数据送上位机,传送数据构成见表5:
  注:每组数据格式参数1命令(读当前数据) 2.5.3清黑匣子数据见表6
  当串口收到0AH、43H、0DH命令时,把黑匣子指针指向初始位置,组数据值清0,并向上位机应答,数据构成见表7:
投诉建议

提交

查看更多评论
其他资讯

查看更多

多功能力矩限制器的研制