创新项目纺纱机结题报告.docx
《创新项目纺纱机结题报告.docx》由会员分享,可在线阅读,更多相关《创新项目纺纱机结题报告.docx(20页珍藏版)》请在冰豆网上搜索。
创新项目纺纱机结题报告
多功能纺纱报断器
徐晶黄成梅开跃徐珑彬
摘要生产类似纱线之类的某些生产厂家,对线的均匀性提出了很高的要求,要求生产出来的线的长度必须大于某个值的产品才为合格,因而在绕线过程中,判断细线是否断线是十分重要。
为提高断纱检测的智能化程度,设计了多功能纺纱报断器,具有使用寿命长、工作可靠、设计人性化等特点。
多功能纺纱报断器实现的主要功能有:
利用红外检测原理自动检测纱线的运行状态;当纱断时,语音报警提示工作人员进行抢修;数码管显示已绕纱线的长度。
作品的创新点:
红外检测纱断情况精确可靠,灵敏度高;语音播报设计人性化,免去了工作人员一直观察纱线状态的麻烦;实时显示已绕纱线的长度;为减少劳动强度,提高工作效率都提供了保障。
本作品具有功能完善、结构紧凑、与国外同类产品相比性价比高,使用方便的特点,易于产品化和市场化。
关键词智能断纱检测、语音报警、产量显示
Multi-functiondevicespinningoffnewspaper
JingXuChengmeiHuangYueKaiLongbinXu
Abstractproducesimilaryarnlikesomeofthemanufacturers,onthelinesproposedbytheuniformityofhighdemands,requeststhelengthofthelineproducedavaluemustbegreaterthantheproductwasqualified,andthereforeinthewindingprocesstodeterminewhetherthebreakisveryimportantthread.Toimprovethedetectionofbrokenyarnintelligence,designedmulti-functiondevicespinningoffnewspaper,haslonglife,reliabledesignofhumannatureandsoon.Multi-functiondevicetoachievespinningoffnewspapermainfunctions:
automaticdetectionofinfrareddetectionprincipleoftherunningyarn;whentheyarnoff.Voicealarmrepairstaff;digitaldisplayhasbeenaroundthelengthofyarn.Theinnovationworks:
infrareddetectionyarnaccurateandreliablefaultconditions,highsensitivity;voicebroadcastdesignofhumannature,eliminatingtheneedforstateworkershasbeenobservedyarntrouble;real-timedisplayhasbeenaroundalengthofyarn;inordertoreducelaborintensityandimproveefficiencyhaveprovidedprotection.Thisworkisfunctional,compact,andcost-effectivecomparedtosimilarforeignproducts,user-friendlyfeatures,easy-to-productmarketization.
Keywordsintelligentyarnbreakdetection,voicealarm,theoutputdisplay
1、前言
生产类似纱线之类的某些生产厂家,对线的均匀性提出了很高的要求,要求生产出来的线的长度必须大于某个值的产品才为合格,因而在绕线过程中,判断细线是否断线是十分重要;另外,在绕纱线的同时,若能实时显示出已绕纱线的长度,无疑对了解绕线状态有很大好处。
目前市场上的纺纱报断器仅仅是通过红外检测纱线是否断纱,在断纱时,只通过提示灯提示工作人员,在一定程度上使得工作人员劳动强度增加。
而本作品能很好地解决劳动强度的问题,且提高了纺纱报断器的性价比。
多功能纺纱报断器,能够自动检测纱断情况,并且在断纱时,进行语音播报,方便工作人员进行故障处理;由于纱线在正常情况下绕制的速度是一定的,因此单位时间的绕纱量乘以时间就是已绕纱线的长度。
本作品设计人性化,大大的为工作人员减少劳动强度,并且也给商家带来更大的价值。
多功能纺纱报断器属于纺纱产业的新兴产品,可以实现及时通报断线状况,提醒工作人员,还能轻松知道纺纱长度,打破了传统模式,具有新时代意义,给纺纱工带来无限的方便,构思精巧,实用性强。
2、多功能纺纱报断器的工作原理
基于电路设计的要求,多功能纺纱报断器的电路主要由以89C51为核心的单片机最小系统、红外检测模块、LED灯显示模块、电源系统、数码管显示驱动电路、语音音频电路组成。
本作品采用了单片机、传感器等技术,系统的关键技术问题是断纱检测,系统采用红外检测纱线转动时返回脉冲,通过单片机计算在单位时间内红外检测模块返回的脉冲数,判断纱线情况。
其工作原理如下:
(1)在纱线正常工作的情况下,单片机得到的单位时间内返回的脉冲数是一致的,此时数码管显示实时绕制的纱线长度,语音未开,工作指示灯显示为绿灯亮;在纱线工作异常的情况下,单片机得到的单位时间内返回的脉冲数是不一致的,此时数码管显示纱线断之前的绕制的纱线长度,语音开启并报断,工作指示灯显示为红灯亮;
(2)当纱线工作异常时,语音报断开启,此时工作人员进行纱线检修,当检修完毕时,工作人员可按下正常工作按钮,纺纱工作正常进行,语音播报停止,数码管继续显示实时纱线长度;
依次循环执行以上步骤。
3、系统设计
总体设计思路:
根据要实现的功能要求,采用图1所示的方案。
系统主要包括89C51为核心的单片机最小系统、电源系统、数码管显示驱动电路、语音音频电路、LED灯显示模块、红外检测断纱模块、自动电源控制模块。
控制核心为89C51,红外检测感知断纱情况的信息,通过单片机计算在单位时间内红外检测模块返回的脉冲数的变化,通过语音进行提示,同时由单片机控制绕制纱线长度的计算,断纱时停止计算并保存数据。
电源模块为整个系统供电。
XF-S3111-FSD语音芯片有10bitDAC模拟音频输出,音频信号采用功放电路放大,在3.3V下供电环境下,当检测到断纱信号时发出提示音;模拟串口发送合成数据。
LED照明模块在接收到纱断的信号时,通过指示灯变红的形式告知工作人员纱断。
工作人员进行检修,语音播报停止,检修完毕后纺纱机正常工作,单片机计算实时绕制的纱线长度并将长度通过数码管显示出来。
图1总体控制方案框图
系统的硬件设计与实现:
系统主要由89C51单片机最小系统、红外检测电路、LED灯显示模块、电源系统、数码管显示驱动电路及语音音频电路组成。
红外检测主要是通过红外对管的发射极发送信号,接收极接收信号。
当纱线正常工作时,接收端在单位时间内输出相同频率的脉冲。
当断纱时,接收端在单位时间内输出不同频率的脉冲。
数码管显示驱动电路插在最小系统板上面的用于74HC595扩展I/O端口上,实现3个I/O口扩展8个数码管的功能,节约端口。
数码管用于显示实时已绕制的纱线长度。
原理图如附录2所示。
通过语音芯片XF-S3111-FSD来合成语言输出。
当接收到纱断信号的时候语音芯片提示工作人员应该进行检修,方便了工作人员的及时抢修工作,主要由软件完成。
语音芯片供电为3.3V,使时必须采用相应的音频输出电路。
通过语音芯片XF-S3111-FSD来合成语言输出。
当接收到纱断信号的时候语音芯片提示工作人员应该进行检修,方便了工作人员的及时抢修工作,主要由软件完成。
语音芯片供电为3.3V,使时必须采用相应的音频输出电路。
XF-S3111-FSD通过串口(UART)接收上位机发送的命令和数据,命令和数据以帧的方式进行封装和发送。
通讯波特率9600bps。
采用单片机I/O口,传送语音合成数据,生成需要的语音输出。
XF-S3111-FSD芯片有10bitDAC模拟音频输出,音频信号采用功放电路放大。
成本低,增益较大,输出音量大。
系统的软件设计与实现:
系统的软件设计采用C语言,可以大大提高程序编写时的效率。
设计的关键是断纱检测、语音提示和长度计算。
软件实现的功能包括:
(1)断纱检测,并将纱线扰动频率信号传输到单片机,由单片机进行控制处理,此功能是通过红外传感器检测和单片机共同来实现的;
(2)实现语音控制,断纱信号到来时由单片机控制语音芯片的实时提示;
(3)长度计算,此功能是通过单片机来实现的;
(4)数码管显示,单片机将长度计算的结果传送给数码管,在数码管上进行长度的显示;
主程序主要起到一个初始化和调用子函数的功能。
主程序循环扫描及语音播报程序,包括中断初始化函数、显示初始化函数等,见图2。
红外检测模块主要由红外传感器组成,当纺纱工作正常进行时,接收管可以收到发射管发射的一定频率的信号,此时输出端输出频率信号;当断纱时,红外接收管不到相同频率的信号,单片机通过检测此频率来实现感知纱线的运行情况,程序流程图如下所示。
图3红外检测模块程序流程图
绕纱长度模块主要是由定时中断计时,算出实时绕纱的长度,再通过数码管显示出来;数码管显示驱动电路如附录1。
4.多功能纺纱报断器的测试
测试方法:
1)当纱线在红外传感器前快速转动,看看它能否检测到纱线是运转情况、数码管的显示状态和扬声器的状态。
现象:
当纱线快速转动时,数码管实时显示已绕纱线长度,扬声器未报警;
2)当纱线在红外传感器前慢速转动时,看看它是否能够检测到纱线的运转状态及扬声器的状态。
现象:
当纱线慢速转动的情况下,数码管停止显示数据,扬声器发出报警信号;将纱线调整为快速转动后,按下按钮,此时的现象同1)。
测试结果:
次数
纱线状态
数码管显示
语音报警
1
快动
实时长度
无
2
快动
实时长度
无
3
快动
实时长度
无
4
快动
实时长度
无
5
慢动
不显示
有
6
慢动
不显示
有
7
慢动
不显示
有
8
慢动
不显示
有
测试结果分析:
通过测试证明,多功能纺纱报断器的设计实现了预计的全部指标。
该作品还可以在外观上还可以进一步完善,美观化、人性化,并且可以大批量的生产,方便纱线厂家的使用。
5、参考文献
[1]胡文金.单片机应用技术实训教程.重庆:
重庆大学出版社.2005,2.
[2]阎石.数字电子技术基础.高等教育出版社.2003.6
[3]沈任元.数字电子技术.机械工业出版社.2004.5
[4]王宛平.电路与模拟电子技术基础.电子工业出版社.2005.4
[5]康华光.电子技术基础.高等教育出版社.2005.7
[6]孙建三.数字电子技术.机械工程出版社.1998.5
[7]沙占友等.单片机外围电路设计.电子工业出版社.2003.1
[8]赵继文.传感器与应用电路设计.科学出版社.2002
[9]21IC中国电子网
附录1:
项目硬件原理图:
红外检测模块电路图
功放电路图
数码管显示模块电路图
附录2:
项目程序代码:
#ifndef_common_H_
#define_common_H_
#include
#defineucharunsignedchar
#defineuintunsignedint
#definelintlongint
sbitp10=P1^0;
sbitp11=P1^1;
sbitp12=P1^2;
sbitp13=P1^3;
sbitp14=P1^4;
sbitp15=P1^5;
sbitp16=P1^6;
sbitp17=P1^7;
sbitp20=P2^0;
#defineRCLK_595p10
#defineSRCLK_595p11
#defineSER_595p12
#definegreen_lightp13
#definered_lightp20
#definestartp17
#definerestartp16
#definezhuansu22//每秒的转速、、、、、、
voiddelay(inta);
#endif
#include"common.h"
voiddelay(uinta)
{
uintj;
for(j=0;j}
#ifndef_display_H_
#define_display_H_
#include"common.h"
voidINIT(void);
voidWR_595(void);
voidOUT_595(void);
voiddisplay(ucharwei,ucharadata);
voidshumaguan(longcount);
#endif
#include
#include"common.h"
#include"display.h"
constucharDATA[20]={0x3F,0x06,0x5B,0x4F,0x66,0x6D,0x7D,0x07,0x7F,0x6F,0x77,0x7c,0x39,0x5e,0x79,0x71,0x72,0x73,0x37,0x38};
//r=16,p=17,n=18,l=19
constucharBIT[8]={0x10,0x20,0x40,0x80,0x01,0x02,0x04,0x08};uchardisplay_buf[8];
uchartemp;
externunsignedcharchan[8];
externlongmiao;
voidINIT(void)
{
RCLK_595=0;
SRCLK_595=1;
}
/********************************************************/
/**/
/*将显示数据送入74HC595内部移位寄存器*/
/**/
/********************************************************/
voidWR_595(void)
{
ucharj;
for(j=0;j<8;j++)
{
SER_595=temp&0x80;
temp=temp<<1;
SRCLK_595=0;//上升沿发生移位
delay
(1);
SRCLK_595=1;
}
}
/********************************************************/
/*将移位寄存器内的数据锁存到输出寄存器并显示*/
/********************************************************/
voidOUT_595(void)
{
RCLK_595=0;
delay
(1);
RCLK_595=1;//上升沿将数据送到输出锁存器
delay
(1);
RCLK_595=0;
}
voidshumaguan(longcount)//数码管各位存值
{
longcc=0,i=0;//
count=miao*zhuansu;//时间乘以转速等于产量
chan[0]=count%10;
cc=count/10;
for(i=1;i<8;i++)
{
chan[i]=cc%10;
cc=cc/10;
}
}
voiddisplay(ucharwei,ucharadata)
{INIT();
temp=BIT[wei];//送位选数据
WR_595();
temp=DATA[adata];//送段码数据
WR_595();
OUT_595();//输出数据
}
#ifndef_yuyinbaobo_H_
#define_yuyinbaobo_H_
#include"reg51.h"
#include"common.h"
voidUSART1_SEND(charx);
voidUSART_INIT();
voidYuyin_BOBAO(unsignedchar*x);
voidTime1(void);
#endif
#include
#include"yuyinbaobo.h"
ucharx=0;
voidTime1()
{
TMOD=0x20;
TH1=0xFA;
TL1=0xFA;
TR1=1;
PCON=0X80;
}
voidUSART1_SEND(charx)
{
TI=0;
SBUF=x;
while(TI==0);
TI=0;
}
voidUSART_INIT()
{
SCON=0x50;
}
//,用USART1
voidYuyin_BOBAO(unsignedchar*x)
{
USART1_SEND(0xfe);//发送帧头标志0xFE
USART1_SEND(0x01);//发送合成命令
USART1_SEND(0x00);//发送字节长度的高8位
USART1_SEND(0x08);//发送字节长度
do{
USART1_SEND(*x);
x++;
if(*x==0x00)break;
}while
(1);
}
#include
#include"common.h"
#include"display.h"
#include"yuyinbaobo.h"
longcount=0,miao=0;//圈数定时
uchardingshi=0;
longzhongduan_dianshi=0;
unsignedcharchan[8];
voiddelay1(longa)
{
longj;
for(j=0;j}
voidinitial()
{
count=0;
green_light=0;
red_light=1;
dingshi=0;
miao=0;//定时初始
EA=1;
EX0=1;
IT0=1;
ET0=1;
TMOD=0x21;//ceshi
TH0=0xee;
TL0=0x00;
TR0=1;
}
intflag=0;
voidmain()
{
inti,j=0,l=0;
inta=0;
initial();
Time1();
USART_INIT();
while
(1)
{
if(start==0)
{
flag=0;
while(zhongduan_dianshi>=1000)//沙断的响应时间参数
{
TR0=0;
red_light=0;
green_light=1;
flag=1;
if(restart==0)
zhongduan_dianshi=0;
shumaguan(count);
for(a=0;a<20;a++)
for(i=7;i>=0;i--)
{
display(j,chan[i]);
j++;
if(j>=8)
j=0;
}
Yuyin_BOBAO("纺纱断了");
//for(a=0;a<50000&&restart==1;a++);
delay1(20000);
}
red_light=1;
green_light=0;
TR0=1;
shumaguan(count);
for(i=7;i>=0;i--)
{
display(j,chan[i]);
j++;
if(j>=8)
j=0;
}
}
}
}
voidint0()interrupt0//外部中断
{
if(flag==0)
zhongduan_dianshi=0;
}
voidtim()interrupt1
{
if(start==0)
{
TH0=0xee;
TL0=0x00;
dingshi++;
zhongduan_dianshi++;
if(dingshi>=20)
{
dingshi=0;
miao++;
}
}
}