《工程综合实践》项目实验报告项目名称:动态称重系统专业测控技术与仪器班级___________________ 组号B类第1组老师 _________中国计量学院2013年5月27日项目设计意义动态称重系统广泛应用于生产线定量包装供送系统、在线质检系统中,以实现生产质量的在线控制。
本项目主要结合工程训练中心包装物流生产线智能传送系统,设计一个动态称重系统,实现对盒装产品的重量信号的动态检测与单片机数据处理、显示的功能,既通过显示器件实时显示称重结果,对于不符合重量要求的产品发出剔除信号项目设计内容1、称重信号采集及信号调理要求将称重传感器的全量程(0〜1KG )重量信号放大为标准0〜5V DC电压信号,分辨精度0.2克,绝对误差(实测与理想值之差)w 0.5%。
2、单片机(PLC )处理与称重值显示要求将标准重量电压信号进行AD变换并显示(实现PLC重量超差报警)。
3、不合格产品的声光报警电路单片机实现重量超差报警与剔除信号控制。
4、项目流程图图2.1动态称重系统流程图三、项目技术设计1、电源模块电路+15V+15VU31IN OUTGND + 12V U4 一1MC"81EACTONOIN OUTU5-15V MC7912ACT 2、A/D转换模块电路R6圭尘c】;1 eMC7805ACTi iOKDIN OUT3IN OUTGND+5U〒丰CIOD31-*■ItClRIO||SD-12V U6MC7905ACT图3.1电源电路AD15 15:ADI8 AD19ADDIN CS>I/O CLK >AD17 17SYSCLKvccGND C2亠5V3 4 56 7 8 9 10AD H^Header 10GND j|AOAlA2A3A4A5A6A7ASA9A10DO3、信号采集放大模块10GNDREF+REF-TLC1541IJR268016 AlGNDU2TL431C5104R310K图3.2 A/D转换电路I+C)C5GNDL C2R2010KJ±C310uFGNDJ±C4llhiFGNDRIMCD1X1-------- \A/VRiffle10KlOuFGND图3.3.1前置放大电路电路图C6RIOkC4LM32+R200 0 0|QR3H+5 +12 -12C3HGNOR1丄1-0C□ooO图3.3.2 前置放大电路电路板4、电路板31LCCieq2 W OKo o* □ o o a &6 o G o 6 自自 *& cc “o AI |PI*C&C1O施[•Cl 就:七g 石石不"HU 厂!・• • lb 暮•叩口 •腦OOK1PB15 or IHK HBfilfi QdKJoRl 电。
口 w 敷沁 C36 iOUF O [ 0一0 Q 。
一Q_O_0_O_Q史.■上 d.o J-2 e12H□ • •巾• 0 Q •・圍「*二 C4C| 固固0 E2回创K3心KL口橙U4 * Ci2 tH^2 ] U5a o 9 0 c◎ q g o OOGOOoo aoooo o 0 09 O& !□ Q D DOC O 9□ aOQOQOOOOGQQOOOOOCQ 肚胡c ooo jonrrioRii 0 nr/ias M 3 {Sn'JTlQHH OtiK.^QRlSOyLtPjO・•© QQQ 3.4QOOO QQ5、单片机软件设计00X0aooeo04 00QOOO oooo gga O COQ OOG^ Q ooaoo ooooo oo»co aooc o o ・oo o o©oo «ooo0000o©oo oooo oooo • aoo OQ»00Q »0・O ・0ooaeoeooooa ooooo«o«oooQQ QOQOQQOOQOiO图3.5单片机软件流程图6、PLC模块图3.6.1 PLC程序流程图表362四、项目实施记录与总结14-12、项目实施记录(1 )项目结果4-2(2)动态称重系统参数4-33、项目总结经过近两个月的探索和努力,在老师的指导和组员的共同努力下,不仅充实了更多知识,而且在查找资料的过程中也了解了许多课外知识,开拓了视野,认识了工业流水线在线质检的发展趋势。
通过本项目的制作,结合制作中的经验,得出以下结论:(1)本项目具有显著的生产实用价值,可节约更多人力资源,为企业创造更多利益;(2)限于元件精度及软硬件设计技术未成熟,项目结果仍具有较大误差;(3)调试过程具有较多问题,工业项目实施应更注重实际与理论的差别。
五、项目元件清单与造型说明1、放大器焊接清单2、单片机焊接清单附录A单片机源程序#in elude <reg51.h>#in elude vintrin s.h>#in elude <math.h>#defi ne uint un sig ned int#defi ne uehar un sig ned char#defi ne ulong un sig ned longuehar ad_result[16]={0}; //AD 转换结果uehar disp1[]={"MASS /g"};uehar i,m,port,timer1;uint a,b,AD_ad,c,d,mode;bit flag;sbit D1= P1A5;sbit D2=P1A6;sbit beep=P2A2;sbit key 1= P2A0;sbit key2=P3A0;sbit PWM=P2A4;sbit xiahe=P2Al;sbit tichu=P2A3;sbit lede n=P2A7;sbit lcdrs=P2A5;sbit lcdrw=P2A6;sbit AD_eoc=P1A0;sbit AD_clk=P1Al;sbit AD_add=P"2;sbit AD_dat=P1A3;sbit AD_CS=P1A4;void delay(uint z); // 延时函数申明uint ADC(uchar chn1){uchar addr8;uint ADresult;AD_eoc=1;AD_cs=0;_n op_(); addr8=ch n1;addr8<<=4; for(i=0;i<4;i++){AD_add=(bit)(addr8&O x80); AD_clk=1;AD_clk=0; addr8<<=1;} for(i=0;i<6;i++){AD_clk=1;AD_clk=0;} AD_cs=1;while(!AD_eoc);_no p_();ADresult=0;AD_cs=0; for(i=0;i<10;i++){AD_clk=1;ADresult<<=1; m=AD_dat; ADresult+=m;AD_clk=O;}AD_cs=1; return(ADresult);}/**** 写指令*/void write_com(ui nt com){lcdrs=0;Icde n=0; lcdrw=0; P0=com; delay(5);lcde n=1; delay(5);lcde n=0;}void write_date( uint date){lcdrs=1; lcde n=0;lcdrw=0;P0=date; delay(5);lcde n=1; delay(5);lcde n=0;} void init() //液晶初始化{lcden=0;write_com(0x38); write_com(0x0c);write_com(0x06); write_com(0x01);write_com(0x80);}void keysca n(){if(key1==0){delay(5);if(key1==0);delay(5);while(!key1);delay(5);if(key1==1){TR0=1;〃启动定时器}}}void key2sca n(){if(key2==0){delay(5);if(key2==0);delay(5);while(!key2);delay(5);if(key2==1){mode=mode+1;}} }void n ihe(){if(AD_ad<750){AD_ad=AD_ad*0.9102+0.0106;}if(AD_ad>750&&AD_ad<2200){AD_ad=AD_ad*0.9303+6.0360;}if(AD_ad>2200&&AD_ad<3000) {AD_ad=AD_ad*0.5267+95.210;}if(AD_ad>3000&&AD_ad<10000){AD_ad=AD_ad*0.8746+0.1486;}}void mai n(){beep=1;xiahe=O;D1= 1;D2=1;tichu=O;PWM=0;flag=1;c=0;mode=0;in it();TH0=(65536-50000)/256;TL0=(65536-50000)%256;TH1=(65536-50000)/256;TL1=(65536-50000)%256;write_com(0x80+4);delay(5);while(disp1[i] != '\0'){write_date(disp1[i]);i++;}ad_result[4]='O';ad_result[3]='.';ad_result[2]='O';ad_result[1]='O';ad_result[O]='O';write_com(0xc0+6);for(i=0;i<5;i++){write_date(ad_result[i]);delay(20);}c=(ui nt)(ADC(0)*4.883);while(1){TMOD=0x01;〃设置定时器0为工作方式1TMOD=0x10;〃设置定时器1为工作方式1//TR0=1;//启动定时器IT0=0;//低电平出发ET0=1;//开定时器中断ET1=1;//开定时器中断IT1=0;//低电平出发EA=1;keysca n();key2sca n();}}void delay( uint z){uint x,y;for(x=z;x>0;x--)for(y=110;y>0;y--);}void timer0() in terrupt 1{TH0=(65536-50000)/256;TL0=(65536-50000)%256;a++;if(a==60){if(flag){flag=~flag ;// c=(ui nt)(ADC(0)*4.883);a=0;d=0;AD_ad=0;TR0=0;xiahe=1;delay(1500);xiahe=0;PWM=1;delay(2500);〃让盒子运动到中间位置PWM=0;delay(1000);AD_ad=(ui nt)(ADC(0)*4.883); delay(500);PWM=1;AD_ad=abs(AD_ad-c);/*质量显示*/AD_ad=AD_ad*2;n ihe();ad_result[4]=(AD_ad%10)+'0';ad_result[3]='.';ad_result[2]=((AD_ad%100)/10)+'0';ad_result[1]= ((AD_ad%1000)/100)+'0';ad_result[0]=(AD_ad/1000)+'0';write_com(0xc0+6);for(i=0;i<5;i++){write_date(ad_result[i]); delay(5);}if(AD_ad<2000&&AD_ad>1000){D2=0;D1= 1;beep=1;tichu=O;PWM=1;delay(5000);TR0=1;//TR1=1;}else{ PWM=1;D2=1;D仁0;tichu=1;beep=0;delay(400);beep=1;delay(2500);PWM=0;TR1=1;tichu=1;delay(100);tichu=0;}if(~flag){flag=~flag;ad_result[4]='0';ad_result[3]='.';ad_result[2]='0';ad_result[1]='0';ad_result[0]='0';write_com(0xc0+6); for(i=0;i<5;i++) {write_date(ad_result[i]);delay(5);S AD2=beepu-voidT 」zd()inCDITUPf3宀TH 」"65536-50000=259TL 」"65536-50000)%259b ++if(buu40)宀bu gH S H O-TROUr39-vp g f f馬H Z H Xw ln ^X SBRD H S tBI R 」x gl j 口 H ZI T 」f 一 * -- -PLSENENO 0-Mi8 4卫EO\主程序 XT S BR.O X SBRJ A INT.O / INTJ / | jJ __________________ !M01—I I -------- MSBR.1 EN,1上」上1\主程頁SBRJJ <SBRJ XlNT.o/'NTJ / | 丄s sENENO一N T —l z T r zTuu -d x HI 卑 A S8R —0」」、_1阿络标思K I】I H AR主程序A S8R 0 & S8R 1 XlNT OX INT 1 / I(七夕,只因有你,总有一些人牵肠挂肚难以忘记,总有一些日子温暖甜蜜最为珍惜从春夏到秋冬,从陌生到熟悉,虽不能时时联系,却总在特别的日子想起你,七夕快乐,我的朋友。