完整版液体原料自动称重配料系统40软件设计41毕业设计Word格式.docx
《完整版液体原料自动称重配料系统40软件设计41毕业设计Word格式.docx》由会员分享,可在线阅读,更多相关《完整版液体原料自动称重配料系统40软件设计41毕业设计Word格式.docx(20页珍藏版)》请在冰豆网上搜索。
§
1.1软件开发工具的选择3
1.2编程语言的选择4
1.3系统软件控制要求即功能模块划分5
第二章称重配料工艺分析7
2.1称重配料工艺简介7
2.2本设计称重配料工艺流程8
第三章系统总体设计10
3.1系统总体流程图10
3.1.18位共阴极数码管显示程序流程图12
3.2系统各模块程序设计12
3.2.1步进电机调速程序设计12
3.2.2矩阵键盘扫描编程13
3.2.38位共阴极数码管显示编程16
3.2.4A/D转换16
3.2.5声光报警控制编程17
第四章PID算法19
4.1PID算法概述19
4.2PID参数整定20
4.3PID电机调速控制应用21
第五章程序调试和结果23
5.1程序调试问题及其解决方法23
5.2设计成果24
结论25
参考文献26
致谢27
序言
自动配料系统是一个针对各种不同类型的物料(固体或液体)进行输送、配比、加热混合以及成品包装等全生产过程的自动化生产线。
广泛应用于化工、塑料、冶金、建材、食品、饲料等行业。
在氧化铝生产及其他工业生产中,经常会遇到多种物料配比控制的情况。
在手动控制状态下,需要根据生产情况,计算出各种物料的配比,再根据配比,分别计算出各物料的理想下料量,对各套设备分别设定,来满足配比的要求。
当生产情况发生变化,需要改变下料量时,则需要再次分别计算个无聊的设设定值,再次分别设定。
计算、操作时间长,且容易出错,给生产带来不良因素。
传统的配料系统不仅效率低而且配料不准,手工操作又将人为因素引入配料环节,使工艺配方难以在生产中实现,严重影响产品质量的稳定及进一步提高,所以物料自动配送系统研究意义重大而且具有十分广阔的应用前景。
随着城市现代化建设的不断发展,以往那种自行称重配料的方式由于其用人工调整重量。
这样,一方面效率十分低下,称量结果精度不高,另一方面,用手工在现场调节增加了工人的劳动强度,而其生产环境十分恶劣,粉尘大。
因而必将为自动控制的称重系统所取代,此称重系统中运用稳定可靠、小而廉的单片机,且单片机体积小,重量轻,抗干扰能力强,环境要求不高,价格低廉,可靠性高,灵活性好,开发较容易。
随着计算机及微电子技术的发展,自动配料控制系统经历了人工手动控制、机械电气控制、单片机控制、工控机集中控制等发展阶段。
但在总体上,我国在配料控制系统上存在技术落后、企业平均规模小、综合生产水平较低等问题。
因此,提高配料的自动化程度和产品的质量,设计出高精度的自动配料系统意义重大
近些年来,国内外自动配料系统发展迅速,特别是随着电工电子技术、计算机技术、自动控制技术的迅速发展,电气传动技术面临着一场历史革命,即采用交流调速取代直流调速和计算机数字控制技术取代模拟控制技术己成为发展趋势。
电机交流变频调速技术是当今节电、改善工艺流程以提高产品质量和改善环境、推动技术进步的一种主要手段。
变频调速以其优异的调速和起制动性能,高效率、高功率因数和节电效果,广泛的适用范围及其它许多优点而被国内外公认为最有发展前途的调速方式。
第一章软件设计基础
1.1软件开发工具的选择
一:
KeiluVision4介绍
2009年2月发布KeilμVision4,KeilμVision4引入灵活的窗口管理系统,使开发人员能够使用多台监视器,并提供了视觉上的表面对窗口位置的完全控制的任何地方。
新的用户界面可以更好地利用屏幕空间和更有效地组织多个窗口,提供一个整洁,高效的环境来开发应用程序。
新版本支持更多最新的ARM芯片,还添加了一些其他新功能。
2011年3月ARM公司发布最新发布集成开发环境RearviewMDK开发工具中集成了最新版本的KeiluVision4,其编译器、调试工具实现与ARM器件的最完美匹配。
二:
KeiluVision4应用
最新的KeilμVision4IDE,旨在提高开发人员的生产力,实现更快,更有效的程序开发。
μVision4引入了灵活的窗口管理系统,能够拖放到视图内的任何地方,包括支持多显示器窗口。
uVision4在μVision3IDE的基础上,增加了更多大众化的功能,如下:
1.多显示器和灵活的窗口管理系统
2.系统浏览器窗口的显示设备外设寄存器信息
3.调试还原视图创建并保存多个调试窗口布局
4.多项目工作区简化与众多的项目
KeiluVision4由国内米尔科技提供销售和技术支持服务,他们是ARM公司合作伙伴,也是国内领先的工控板以及嵌入式解决方案提供商。
目前使用KeiluVision4的产品有KeilMDK-ARM,KeilC51和KeilC166。
1.2编程语言的选择
C语言
C语言是一种计算机程序设计语言,它既具有高级语言的特点,又具有汇编语言的特点。
它由美国贝尔研究所的D.M.Ritchie于1972年推出,1978年后,C语言已先后被移植到大、中、小及微型机上,它可以作为工作系统设计语言,编写系统应用程序,也可以作为应用程序设计语言,编写不依赖计算机硬件的应用程序。
它的应用范围广泛,具备很强的数据处理能力,不仅仅是在软件开发上,而且各类科研都需要用到C语言,适于编写系统软件,三维,二维图形和动画,具体应用比如单片机以及嵌入式系统开发。
C语言是世界上最流行、使用最广泛的高级程序设计语言之一。
在操作系统和系统使用程序以及需要对硬件进行操作的场合,用C语言明显优于其它高级语言,许多大型应用软件都是用C语言编写的。
C语言绘图能力强,具有可移植性,并具备很强的数据处理能力,因此适于编写系统软件,三维,二维图形和动画。
它是数值计算的高级语言。
常用的编译软件有MicrosoftVisualC++,BorlandC++,gcc,BorlandC++,BorlandC++,WestconC++11.0forDOS,GNUDJGPPC++,Lccwin32CCompiler3.1,MicrosoftC,HighC等。
汇编语言
汇编语言(AssemblyLanguage)是面向机器的程序设计语言。
在汇编语言中,用助记符代替机器指令的操作码,用地址符号(Symbol)或标号(Label)代替指令或操作数的地址,如此就增强了程序的可读性和编写难度,像这样符号化的程序设计语言就是汇编语言,因此亦称为符号语言。
使用汇编语言编写的程序,机器不能直接识别,还要由汇编程序或者叫汇编语言编译器转换成机器指令。
汇编程序将符号化的操作代码组装成处理器可以识别的机器指令,这个组装的过程称为组合或者汇编。
因此,有时候人们也把汇编语言称为组合语言。
三:
选择C语言
1、简洁紧凑、灵活方便
C语言一共只有32个关键字,9种控制语句,程序书写形式自由,区分大小写。
把高级语言的基本结构和语句与低级语言的实用性结合起来。
C语言可以像汇编语言一样对位、字节和地址进行操作,而这三者是计算机最基本的工作单元。
2、运算符丰富
C语言的运算符包含的范围很广泛,共有34种运算符。
C语言把括号、赋值、强制类型转换等都作为运算符处理。
从而使C语言的运算类型极其丰富,表达式类型多样化。
灵活使用各种运算符可以实现在其它高级语言中难以实现的运算。
3、允许直接访问物理地址,对硬件进行操作
由于C语言允许直接访问物理地址,可以直接对硬件进行操作,因此它既具有高级语言的功能,又具有低级语言的许多功能,能够像汇编语言一样对位(bit)、字节和地址进行操作,而这三者是计算机最基本的工作单元,可用来写系统软件。
4、生成目标代码质量高,程序执行效率高
C语言描述问题比汇编语言迅速,工作量小、可读性好,易于调试、修改和移植,而代码质量与汇编语言相当。
C语言一般只比汇编程序生成的目标代码效率低10%~20%。
1.3系统软件控制要求即功能模块划分
设计以单片机核心的液体原料自动称重配料系统的控制程序。
利用称重传感器检测原料重量,将其与设定值经行对比,采用合法的算法根据其差值对电机进行调速。
编程实现生产过程中的状态显示和超重报警。
模块功能划分:
步进电机调速控制,键盘扫描程序控制,八位共阴极数码管显示程序模块,电位器模拟信号A/D模块,PID算法模块,声光报警程序控制。
第二章称重配料工艺分析
2.1称重配料工艺简介
称重配料是一种用于石油、冶金、化工、食品、建材、粮油、饲料、塑料、农业等产品生产过程中的配料方式,主要以重量的方式进行按照配比进行配料,一般这种配料过程叫做称重配料。
如某草药生产企业,需配一种用于制备某种草药配方如下:
水:
800kg,化学药品A:
250kg,添加剂:
50kg,其他100kg。
分析:
这种配方的比例是按照重量来计算的所以需要采用称重配料的方式。
这种时候我们推荐采用多种物料(顺序配料)这种方式。
而本设计就是研究这种称重配料的自动控制系统,具有很大的实际生产应用价值!
称重配料的分类(按工艺要求和原理分):
台计量秤只配一种物料,若干个计量秤组成一个多种物理的配料系统。
各计量秤配料工作同时进行,配料速度快。
按照大料大秤小料小秤的原则灵活配置量程,配料准确
本设计采用顺序配料方式:
顺序配料若干种物理依次按照预先设定的顺序放入一个计量斗内进行配料。
配料秤斗由一台配料控制器完成。
制作成本低结构紧凑。
生产过程中原料配比的主要环节在称重部分,过去上、下料全靠人工凭经验手动操作,称重用机械式来完成,系统极易出故障,而且配料精度低。
用计算机和称重仪表相结合实现了配料自动化,提高配料精度
自动称重配料系统是一种集输送、计量、配料于一体的在线测量动态自动衡器。
该系统不仅能够显示瞬时流量和累计量,还可以根据实际液料的重量与设定值的偏差去调整电机带动水泵的转速使物料重量更加接近设定值,构成一个闭环控制系统,达到称重配料的目的。
2.2本设计称重配料工艺流程
该设计要求以单片机为核心的液体原料自动称重配料系统的控制程序利用称重传感器检测原料重量,将其与设定值经行比较,采用合适算法根据其差值对进料电机进行调速,并根据设定值对工艺对不同组分按顺序进行配料。
编程实现生产过程状态显示和超限报警。
首先根据配制比例设定该液体原料的加量值,由单片机控制顺序执行各种物料的加料。
单片机发出信号启动电磁振动机进行上料,根据称重仪表检测物料的加入量,当达到设定值时,通知单片机关闭上料机,延迟一段时间后,启动下料机和电泵,将液料通过管道送入圆形布料器,完成此物料的加量后进入下一个物料的加料过程。
当各种料加完后,完成一次配料过程。
称重传感器无机械行程,全封闭式的结构,不与工艺介质接触,不受恶劣环境影响,精度能够长期保持稳定,安装调校方便。
称重仪表性能稳定,称量准确,重新标定用标准砝码即可,方便易行。
经过实践证明,称重仪表作为检测和控制手段在配料过程中的应用,在配料称重生产中很好解决其手动人工配料过程中存在的精度较低、长期稳定性不好、恶劣环境的影响、生产效率低等弊病,同时又具有安装、调试方便,系统稳定、可靠性高等优点。
根据实际情况在设计时利用电位器来模拟重力传感器信号输出,再利用A/D转换读取数据。
通过对比预先设定的标准值来决定下一步程序控制电机带动电泵转动的快慢。
这就为设计的进行提供了便利和可行性。
本论文所设计的自动称重系统是应用于工业上的液体原料自动称重中的,它的实现有两个过程,第一阶段由步进电机带动水泵加速抽水给料,这一阶段可看成为粗调过程,给料重量一定要小于额定重量。
第二阶段由步进电机带动水泵抽水减速进料,可看成是细调过程,使实际重量等于要求的额定重量。
图2-1系统工艺流程
如图2-1单片机控制顺序加料流程图。
首先设定各组分加料值,然后打开加料机进入程序控制加料执行操作,按顺序加料同时对比实际重量与该组分设定重量的差值来控制电机带动水泵的运行速度。
当到达额定值后关闭上料机。
延迟一段时间打开加料机保证加料的精度。
以此类推完成各个组分的加料。
第三章系统总体设计
3.1系统总体流程图
图3-1系统程序流程图
本系统为实现对物体重量采集处理传输判断并称重达到智能报警的功能。
所以其流程为:
因为称重床干起为模拟传感器,传感器输出的为模拟信号,需要对其进行A/D转换位数字信号一边单片机接受。
实际处理时等价于电位器的模拟信号经过转换成数字信号为单片机接受。
单片机根据称重传感器输出的电信号和速度传感器输出的速度信号计算出物体的重亮,另外由于实际应用中,称重配料系统还有一定量的过载,但不能够超出要求的范围,为此我们还设计了过载提示和声光报警功能。
图3-2八位共阴极数码管显示程序流程图
3.1.18位共阴极数码管显示程序流程图
数码管八位显示流程如上图3-2:
位锁存选中显示的八位数码管中的一位,然后根据单片机端口输出数据决定该位数码管显示的某一段,该部分有段锁存控制。
这样通过段锁存器,位锁存器,和单片机端口数据输出控制了数码管的显示。
3.2系统各模块程序设计
3.2.1步进电机调速程序设计
首先定义步进电机所连接的单片机端口。
选取单片机P0口中的四位作为步进电机四相接口。
定义端口中P0.2-P0.5四位对应步进电机A1—D1连接。
相关程序如下:
sbitA1=P0^2;
//定义步进电机连接端口
sbitB1=P0^3;
sbitC1=P0^4;
sbitD1=P0^5;
步进电机转动原理:
该步进电机为一四相步进电机,只要对步进电机的各相绕组按合适的时序通电,就能使步进电机步进转动。
如程序控制单片机端口输出高低电平,以此决定步进电机各相轮流通断电,每次步进电机各相励磁绕组产生错位实现转动一步,为一步距角。
#defineCoil_AB1{A1=1;
B1=1;
C1=0;
D1=0;
}//AB相通电,其他相断电
#defineCoil_BC1{A1=0;
C1=1;
}//BC相通电,其他相断电
#defineCoil_CD1{A1=0;
B1=0;
D1=1;
}//CD相通电,其他相断电
#defineCoil_DA1{A1=1;
}//D相通电,其他相断电
#defineCoil_A1{A1=1;
}//A相通电,其他相断电
#defineCoil_B1{A1=0;
}//B相通电,其他相断电
#defineCoil_C1{A1=0;
}//C相通电,其他相断电
#defineCoil_D1{A1=0;
#defineCoil_OFF{A1=0;
}//全部断电
本段位电机调速部分子程序实例:
假如停止标志位为0,顺序执行以下程序,如果为1,不执行以下程序。
同时假如正反标志位为1则正向转动。
同时在本次设计中正反向标志位恒为1,也就是说电动机恒正向转动。
Voidstepmotor(ucharspeed,bitdir,bitstop)
{
staticucharstep_i=0;
if(stop==0)
{
if(dir)
{
port=setp[step_i]<
<
2;
if(speede>
speed)
{
step_i++;
if(step_i>
7)
step_i=0;
speede=0;
}
}
3.2.2矩阵键盘扫描编程
键盘功能设定4/4键盘S1到S16,其中S7-S6-S5-S1分别键入0-3四个数。
也就是说调试时按下S7则对应数码管显示数值0,按下S1对应数码某一位显示3。
以此设定S10-S9-S8-S2对应4-7的显示,S13-S12对应8-9的显示。
S11是换位键,按一下对应四位数码管中当前闪烁位左移一位闪烁。
意味着可以对该闪烁位数码显示数值做出修改。
S3是清零控制按键;
S16则是执行按键。
由此可对矩阵键盘模块进行编程。
键盘扫描首先为keyport赋值0xfO,同时判断高4位是否为全1(高4位全1代表没按键按下)按下时为低电平有效。
对应于硬件数码管显示就是对应某段数码管点亮。
加入延时去抖动,一般为5ms~10ms原因是机械触点的弹性作用,按键在闭合时不会马上稳定地接通。
如果在闭合瞬间伴随有一连串的抖动,键抖动会引起一次按键被误读多次。
以此如果还能检测到有键盘按下去则读取keyport口数据从而得到扫描结果。
相关键盘扫描程序如下:
ucharkeyscan()
{
ucharx=0,y=0;
ucharkeyValue;
keyport=0xf0;
if((keyport&
0xf0)!
=0xf0)
delay(20);
x=keyport&
0xf0;
keyport=0x0f;
y=keyport&
0x0f;
keyValue=x|y;
}
图3-3如图键盘扫描程序流程图
检测当前是否有键被按下。
检测的方法是P1.4-P1.7输出全“0”,读取P1.0-P1.3的状态,若P1.0-P1.3为全“1”,则无键闭合,否则有键闭合。
去除键抖动。
当检测到有键按下后,延时一段时间再做下一步的检测判断。
若有键被按下,应识别出是哪一个键闭合。
方法是对键盘的行线进行扫描在每组行输出时读取P1.0-P1.3,若全为“1”,则表示为“0”这一行没有键闭合,否则有键闭合。
由此得到闭合键的行值和列值,然后可采用计算法或查表法将闭合键的行值和列值转换成所定义的键值
3.2.38位共阴极数码管显示编程
分别定义位锁存段锁存对应的端口,单片机P2.0口对应位锁存,决定了数码管某位显示。
P2.1口对应段锁存,