动态称重系统项目报告 =计量=

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

《工程综合实践》

项目实验报告

项目名称:动态称重系统专业测控技术与仪器班级

组号B类第1组

老师

中国计量学院

2013年5月27日

一、项目设计意义

动态称重系统广泛应用于生产线定量包装供送系统、在线质检系统中,以实现生产质量的在线控制。本项目主要结合工程训练中心包装物流生产线智能传送系统,设计一个动态称重系统,实现对盒装产品的重量信号的动态检测与单片机数据处理、显示的功能,既通过显示器件实时显示称重结果,对于不符合重量要求的产品发出剔除信号。

二、项目设计内容

1、称重信号采集及信号调理

要求将称重传感器的全量程(0~1KG)重量信号放大为标准0~5V DC电压信号,分辨精度

0.2克,绝对误差(实测与理想值之差)≤0.5%。

2、单片机(PLC)处理与称重值显示

要求将标准重量电压信号进行AD变换并显示(实现PLC重量超差报警)。

3、不合格产品的声光报警电路

单片机实现重量超差报警与剔除信号控制。

4、项目流程图

图2.1 动态称重系统流程图

三、项目技术设计

1、电源模块电路

图3.1 电源电路

2、A/D转换模块电路

图3.2 A/D转换电路

3、信号采集放大模块

图3.3.1前置放大电路电路图

图3.3.2 前置放大电路电路板

4、电路板

图3.4电路板制图

5、单片机软件设计

图3.5 单片机软件流程图

6、PLC模块

图3.6.1 PLC程序流程图

表3.6.2 变量分配表

四、项目实施记录与总结

1、工作记录

表4-1 动态称重系统工作记录表

2、项目实施记录

(1)项目结果

表4-2 实测记录表

(2)动态称重系统参数

表4-3动态称重系统参数

3、项目总结

经过近两个月的探索和努力,在老师的指导和组员的共同努力下,不仅充实了更多知识,而且在查找资料的过程中也了解了许多课外知识,开拓了视野,认识了工业流水线在线质检的发展趋势。通过本项目的制作,结合制作中的经验,得出以下结论:

(1)本项目具有显着的生产实用价值,可节约更多人力资源,为企业创造更多利益;

(2)限于元件精度及软硬件设计技术未成熟,项目结果仍具有较大误差;

(3)调试过程具有较多问题,工业项目实施应更注重实际与理论的差别。

五、项目元件清单与造型说明

1、放大器焊接清单

2、单片机焊接清单

附录A 单片机源程序

#include

#include

#include

#define uint unsigned int

#define uchar unsigned char

#define ulong unsigned long

uchar ad_result[16]={0}; //AD转换结果uchar disp1[]={"MASS /g"};

uchar i,m,port,timer1;

uint a,b,AD_ad,c,d,mode;

bit flag;

sbit D1=P1^5;

sbit D2=P1^6;

sbit beep=P2^2;

sbit key1=P2^0;

sbit key2=P3^0;

sbit PWM=P2^4;

sbit xiahe=P2^1;

sbit tichu=P2^3;

sbit lcden=P2^7;

sbit lcdrs=P2^5;

sbit lcdrw=P2^6;

sbit AD_eoc=P1^0;

sbit AD_clk=P1^1;

sbit AD_add=P1^2;

sbit AD_dat=P1^3;

sbit AD_cs=P1^4;

void delay(uint z); //延时函数申明uint ADC(uchar chn1)

{

uchar addr8;

uint ADresult;

AD_eoc=1;

AD_cs=0;

_nop_();

addr8=chn1;

addr8<<=4;

for(i=0;i<4;i++)

{

AD_add=(bit)(addr8&0x80);

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);

_nop_();

ADresult=0;

AD_cs=0;

for(i=0;i<10;i++)

{

AD_clk=1;

ADresult<<=1;

m=AD_dat;

ADresult+=m;

AD_clk=0;

}

AD_cs=1;

return(ADresult);

}

/****写指令*/

void write_com(uint com) {

lcdrs=0;

lcden=0;

lcdrw=0;

P0=com;

delay(5);

lcden=1;

delay(5);

lcden=0;

}

void write_date(uint date) {

lcdrs=1;

lcden=0;

lcdrw=0;

P0=date;

delay(5);

lcden=1;

delay(5);

lcden=0;

}

void init() //液晶初始化

{lcden=0;

write_com(0x38);

write_com(0x0c);

write_com(0x06);

write_com(0x01);

write_com(0x80);

}

void keyscan()

{

if(key1==0)

{

delay(5);

if(key1==0);

delay(5);

while(!key1);

delay(5);

if(key1==1)

{

TR0=1;//启动定时器

相关文档
最新文档