基于PLC的三种故障报警电路设计_第1页
基于PLC的三种故障报警电路设计_第2页
基于PLC的三种故障报警电路设计_第3页
基于PLC的三种故障报警电路设计_第4页
基于PLC的三种故障报警电路设计_第5页
已阅读5页,还剩17页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、电气控制与PLC课程设计课题: 系 别: 专 业: 姓 名: 学 号: 指导教师: 2013年 6月 日成绩评定一、指导教师评语(根据学生设计报告质量、答辩情况及其平时表现综合评定)。二、评分课程设计成绩评定成绩: (五级制)指导教师签字 年 月 日目录TOC o 1-3 h u HYPERLINK l _Toc26635 1.引言 PAGEREF _Toc26635 1 HYPERLINK l _Toc12913 1.1设计目的 PAGEREF _Toc12913 1 HYPERLINK l _Toc24719 1.2设计内容 PAGEREF _Toc24719 1 HYPERLINK l

2、_Toc30257 1.2.1系统功能概述 PAGEREF _Toc30257 1 HYPERLINK l _Toc15752 1.2.2设计实现目标 PAGEREF _Toc15752 1 HYPERLINK l _Toc22081 2.系统总体方案设计 PAGEREF _Toc22081 2 HYPERLINK l _Toc27019 2.1硬件配置及组成原理 PAGEREF _Toc27019 2 HYPERLINK l _Toc23103 2.1.1 所用硬件 PAGEREF _Toc23103 2 HYPERLINK l _Toc32663 2.1.2系统组成原理图 PAGEREF

3、_Toc32663 2 HYPERLINK l _Toc933 2.2系统变量定义及分配表 PAGEREF _Toc933 2 HYPERLINK l _Toc19436 2.3系统接线图设计 PAGEREF _Toc19436 3 HYPERLINK l _Toc9135 2.4系统可靠性设计 PAGEREF _Toc9135 3 HYPERLINK l _Toc16590 3. 控制系统设计 PAGEREF _Toc16590 4 HYPERLINK l _Toc6569 3.1 控制程序流程图设计 PAGEREF _Toc6569 4 HYPERLINK l _Toc26149 3.2控

4、制程序时序图设计 PAGEREF _Toc26149 4 HYPERLINK l _Toc1144 3.3控制程序设计思路 PAGEREF _Toc1144 5 HYPERLINK l _Toc17241 3.4创新设计内容 PAGEREF _Toc17241 5 HYPERLINK l _Toc2456 4. 系统调试及结果分析 PAGEREF _Toc2456 5 HYPERLINK l _Toc31968 4.1系统调试及解决的问题 PAGEREF _Toc31968 5 HYPERLINK l _Toc9452 4.1.1程序梯形图 PAGEREF _Toc9452 5 HYPERLI

5、NK l _Toc27469 4.2结果分析 PAGEREF _Toc27469 7 HYPERLINK l _Toc20488 结束语 PAGEREF _Toc20488 8 HYPERLINK l _Toc24560 参考文献 PAGEREF _Toc24560 8 1.引言1.1设计目的综合运用本课程及前期课程的相关知识和技能,相对独立地设计和调试一个小型PLC应用系统,使学生获得控制技术工程的基本训练,提高工程意识和实践技能。同时提高学生对文献资料的检索和信息处理的能力,以及编写和整理设计文档的能力。1.2设计内容1.2.1系统功能概述工业控制的发展一直都是向着自动化,智能化,无人值守

6、,自动监测的方向发展,其中对于系统故障的监测便是系统自动化设计当中的一个重要环节。对于快速检测、判断、分析,故障类型及位置和排除故障具有重要作用。自动故障报警电路就是这样一个模块,这里我们设计的是三种故障报警电路。1.2.2设计实现目标三种故障标准报警电路控制:标准的报警功能应该是声光报警。当故障发生时,报警指示灯闪烁,报警电铃或蜂鸣器响。操作人员知道故障发生后,按消铃按钮,把电铃关掉,报警指示灯从闪烁变为常亮。故障消失后,报警灯熄灭。另外还应设置试灯、试铃按钮,用于平时检测报警指示灯和电铃的好坏。在实际的应用系统中可能出现的故障一般有多种。对报警指示灯来说,一种故障对应于一个指示灯,但一个系

7、统只能有一个电铃。设计一个三种故障标准报警电路,报警具有优先级。2.系统总体方案设计2.1硬件配置及组成原理2.1.1 所用硬件1、PLC,选择FX-32MT型PLC(如图2.1.1所示)选择该型号PLC ,主要考虑I/O点数满足要求,PLC价格便宜。控制规模:32点 MR/MT 内置8K容量的RAM存储器,最大可以扩展到16K CPU运算处理速度0.08S/基本指令 在FX2N系列右侧可连接输入输出扩展模块和特殊功能模块 基本单元内置2轴独立最高20kHz定位功能(晶体管输出型) 图2.1.1 FX-32MT型PLC2、非自锁按钮开关、电铃、LED发光二极管。2.1.2系统组成原理图故障信号

8、监测系统PLC控制处理机构外部硬件灯和电铃图2.1.2系统组成原理图 由上图可知该检测系统为开环系统。2.2系统变量定义及分配表表2.2.1元器件及PLC I/O分配表类别电器元件PLC软元件功能输入(I)按钮SBOX0启动、工作按钮SB1X1停止、复位故障信号1X2故障1发生故障信号2X3故障2发生故障信号三X4故障3发生按钮SB2X5停止响玲输出(O)灯HL0Y0启动状态指示灯灯HL1Y1故障1发生灯灯HL2Y2故障2发生灯灯HL3Y3故障3发生灯电铃HAY4出现故障响铃测试按钮SB4测试HL1SB6测试HL2SB6测试HL3SB7测试电铃 HL0 HL1 HL2 HL3 HA SB4 S

9、B5 SB6 SB7 X0 Y0X1 Y1X2 Y2X3 Y3X4 Y4X5 COM COMSB0SB1SB32.3系统接线图设计图2.3.1系统接线图2.4系统可靠性设计PLC的可靠性高,抗干扰力强,一般不会有误,竟LED和蜂鸣器可能会有故障,这在有些系统中是不允许的,可以用相同的LED或蜂鸣器并联,系统的可靠性就大大提高了,并且系统故障报警级别高,经济允许的情况下,可以再增添一套系统。3. 控制系统设计 3.1 控制程序流程图设计 监测判断故障有/无 灯闪烁、玲响启动监测电路消玲、灯常亮故障排除、恢复灯灭图3.1.1控制程序流程图3.3控制程序时序图设计X0Y0X2Y1X4X5X1图3.3

10、.1控制时序图 3.4 控制程序设计思路有故障产生,则有故障信号进入PLC输入口,当故障信号一直存在时,相应的故障灯一直亮着,故障消失则灯灭。响铃只需要一个脉冲信号便可以持续,所以响铃的电路必然带有自锁。故障出现时灯闪烁,则必然使用震荡电路,当肖玲后灯变为常量,所以肖玲的同时震荡电路被断路,所以肖玲与断开震荡电路时连锁的。故障电路具有优先级,所以当一个故障出现后,其他故障再出现,系统不在反应,要实现这一功能,须使用电路互锁机制。3.5创新设计内容在设计测试灯和电铃正常的的设计上,没有使用故常信号输入口,也没有使用其他的PLC输入口,而是直接将其与通过非自锁按键与电源连接,进行测试。这样做,有两

11、重有点1、节省了PLC的输入口的使用,将宝贵的接口留给其他模块的重要功能,同时也使得工程中使用的PLC的I/O点数下降,节省投资成本。2、直接接电源,不接控制器,不会干扰其他控制信号,测试时的信号也不会使PLC做出发生故障的误判。4. 系统调试及结果分析4.1系统调试及解决的问题4.1.1程序梯形图图4.1.1梯形图程序程序调试过程中发现,程序的一些设计问题,以及理论推想,与实践的差距。对程序的一些错误地方进行了修改。4.2结果分析从仿真结果来看,控制方案达到了设计要求。满足三种故障报警的功能,以下是仿真截图。4.2.1仿真时序图图4.2.2仿真内存监测图结束语整个设计过程就是一个对专业的熟悉

12、过程,学习的理论知识当真正运用到工业实践中时,需要的不止是理论分析,与专业知识应用,更重要的事,对于实践现场的环境的了解,对于。但遇到问题时首先从理论分析着眼,然后逐一排查,解决问题,通过设计增强我对本课程的兴趣,产生了一种主动学习和了解的自学愿望,另外设计方案与其他设备之间的结合也是必须注意的。觉得自己从最初设想,到方案确定,程序的编写,仿真运行,实验调试。这其实就是一个想法的实现过程,所以大胆的想象,扎实的工作是实现梦想的通途。参考文献1 秦春斌、张继伟PLC基础及应用教程北京:机械工业出版社,2010:33-56 页 附录资料:不需要的可以自行删除测量平差程序设计角度(度分秒)到弧度An

13、gleToRadian#define PI 3.14159265double AngleToRadian(double angle)int D,M;double S,radian,degree, angle,MS;D=int(angle+0.3);MS=angle-D;M=int(MS)*100+0.3);S=(MS*100-M)*100;degree=D+M/60.0+S/3600.0;radian=degree*PI/180.0;return radian;注意:防止数据溢出,要加个微小量,例如0.3.弧度换角度(度分秒) RadianToAngle#define PI 3.1415926

14、5double RadianToAngle(double radian)int D,M;double S,radian,degree,MS,angle;degree=radian*180/PI;D=int(degree);MS=degree-D;M=int(MS*60);S=(MS*60-M)*60;angle=D+M/100.0+S/10000.0;return angle;已知两点求坐标方位角Azimuth#include double Azimuth(double xi,double yi,double xj,double yj)double Dx,Dy,S,T;Dx=xj-xi;Dy=

15、yj-yi;S=sqrt(Dx*Dx+Dy*Dy);if(S1e-10) return 0;T=asin(Dy/S);if(Dx0&(Dy0)|T0) T=2*PI+T;return T;4.开辟二维数组的动态空间的宏#include #define NewArray2D(type,A,i,n,m)A=(type*)malloc(n*sizeof(type*); for(i=0;im;i+) Ai=(type*)malloc(m*sizeof(type); 5.释放开辟的二维数组的空间#define FreeSpace(A,i,m)for(i=0;im;i+) free(Ai); free(A

16、); 注意:释放空间与开辟空间相反,释放空间是先释放列,后释放行.6.矩阵求转置transformmatrixvoid transformmatrix(double *A,double *B,int i,int j)int m,n;for(m=0;m=i;m+)for(n=0;n=j;n+)Bnm=Amn:7.矩阵相乘(mulmatrix)void mulmatrix(double *A,double *B,double *C,int i,int j,int k)int m,n,p;for(m=0;mi;m+)for(n=0;nj;n+)Cmn=0;for(p=0;pk;p+)Cmn+=Amp

17、*Bpn:8.矩阵求逆(countermatrix)#include void countermatrix(double *T, double *s, double *r, double *Q,double *N, double *rt,int n)for(i=0;in;i+)s=Nii;for(k=0;ki;k+)s-=Tki*Tki;Tii=sqrt(s)for(j=i+1;jn;j+)s=Nij;for(k=0;ki;k+)s-=Tki*Tkj;Tij=s/Tii;for(i=0;in;i+)for(j=0;j=0;i+)rii=1/Tii;for(j=i+1;jn;j+)s=0;for

18、(k=i;kj-1;k+)s-=rik*Tkj;rij=s/Tii;for(i=0;in;i+)for(j=0;jn;j+)rij=0;transformmatrix(r,rt,n,n)mulmatrix(r,rt,Q,n,n)9.平差主程序之读入数据typedef struct POINTchar name8;double x,y;int type;POINT;typedef struct READVALUEPOINT *begin;POINT *end;double value;READVALUE;POINT *GETPOINT(char *name,POINT *pPoint,int n

19、Point)int i;for(i=0;inPoint;i+)if (strcmp(pP,name)=0)return (pPoint+i) for(i=0;i0)pPoint=(POINT*)malloc(nDirect*sizeof(POINT);if(nDirect0)pDirect=(READVALUE*)malloc(nDirect*sizeof(READVALUE);if(nDistance0)pDistance=(READVALUE*)malloc(nDistance*sizeof(RAADVALUE);fscanf(fp,”%lf,%lf,%lfn”,&mo

20、,&mf,&ms);for(i=0;inKnownPoint;i+)fscanf(fp,”%s,%lf,%lfn”,pP,&pPointi.x,&pPointi.y);type=1;for( ;inPoint;i+)pP=NULL; pPointi.x=0;pPointi.y=0;pPointi.type=0; for(i=0;inDirect;i+)fscanf(fp,”%s,%s,%lfn”,begin,end,&pDirecti.value);pDirecti.begin=GetPoint(begin,pPoint,nPoint);pDirecti

21、.end=GetPoint(end,pPoint,nPoint);for(i=0;inDistance;i+)fscanf(fp,”%s,%s,%lfn”,begin,end,&pDistancei.value);pDistancei.begin=GetPoint(begin,pPoint,nPoint);pDistancei.end=GetPoint(end,pPoint,nPoint);fclose(fp);10.角度检验(checkangle)#include int checkangle(double angle)int M,S;double MS;if(angle=0&angle36

22、0)MS=angle-(int)(angle);if(M6)S=(int)(MS*1000);if(S%106)return 1;return 0;11.前方交会#define PI=3014159265/*此处调用程序角度换弧度AngleToRadian*/Qianfang(double XE, double YE, double XF, double YF, doubleDEG, double DEF, double DFG, double DFE, double *DFE, double *DFG)double C,A,B;C=DGE-DGF;A=DEF-DEG;B=DFG-DFE;if

23、(C-2*PI)|(C0&C-PI&CPI&C2*PI)XG=(XE/tan(B)+XF/tan(A)+YE-YF)/(1/tan(A)+ 1/tan(B);YG=(YE/tan(B)+YF/tan(A)-XE+XF)/ (1/tan(A)+ 1/tan(B);12.坐标概算全方向法子函数取出观测方向GetAllDirectint GetAllDirect(char *name,int nDirect,READVALUE *pDirect, READVALUE *pStation)int i,nCount=0;for(i=0;iname,name)=0)pStationnCount.begin

24、=p(pDirectnCount.begin;pStationnCount.end=p(pDirectnCount.end;pStationnCount.value=p(pDirectnCount.value; nCount+;return nCount;坐标概算全方向法子程序实现流程(coordinate)coordinate (入口参数设置)READVALUE pStation50,pObject50;int nCount,i,j,k,m,n,p,nobject;for(i=0;i1)|( nCount=1)for(j=0;jtype=1)for(k=0;ktype=0) nobject=

25、GetAllDirect(pStationj.end-name,nDirect,pDirect,pobject)m=-1;n=-1;for(p=0;pname,pP)=0)m=p; if(strcmp(pobjectp.end-name,pStationk.end-name)=0)n=p;if(m=0&n=0)pPointi=pStationk.end-pStationj.end;pStationj.end=pObjectm.value-pObjectn.value; Xe=pPointi.x; Ye=pPointi.y; Xf=pStationj.end-x; Yf=pS

26、tationj.end-y; Lef=pStationj.value; Leg=pStationk.value; Lfe=pObjectm.value; Lfg=pObjectn.value; Qianfang(Xe,Xf,Ye,Yf,Lef,Leg,Lfe,Lfg,*Xg,*Yg;) pStationk.end-x=*xg; pStationk.end-y=*yg; pStationk.end.type=2; 13.坐标增量法(calcoordinate)子函数由端点名称得边长值的函数GetDistancedouble GetDistance(char *begin,char *end,in

27、t nDistance,READVALUE *pDistance)int i;for(i=0;iname,begin)=0&strcmp(pDistancei.end-name,end=0)|(strcmp(pDistancei.begin-name,end)=0&strcmp(pDistancei.end,begin)=0)return pDistancei.value;return -1;/*函数取出观测方向GetAllDirect*/void calcoordinate(int nDirect,READVALUE *pDirect,int nDistace,READVALUE *pDis

28、tance,int nPoint,POINT *pPoint) int nPoint,nCount,nDirect,nDistance; int m=-1,i,j,k; double x1,y1,x2,y2,A0,A,S,dx,dy; READVALUE*pDirect=NULL; READVALUE pStation50; for(i=0;i0) nCount=GetAllDirect(pP,nDirect,pDirect,pStation50); for(j=0;jtype0)m=j; if(m!=-1) for(k=0;ktype=0) x1=pPointi.x; y

29、1=pPointi.y; x2=pStationj.end-x; y2=pStationj.end-y; A0=Bearing(x1,y1,x2,y2); A=A0-(DMSToRAD(pStationm.value)-DMSToRAD(pStationk.value); if(A2*PI)A=A-2*PI; S=GetDistance(pPointi,pStationk.end,nDistance,pDistance); if(Sx=pPointi.x+dx; pStationk.end-y=pPointi.y+dy; pStationk.end-type=2; 14.高斯正反算高斯正算:#

30、include #include #define PI 3.14159265double DMSToRAD(double dDMS)int L1,L2;double T,L3;L1=(int)(dDMS+0.3);L2=(int)(dDMS-L1)*100+0.3);L3=(dDMS-L1)*100-L2)*100;T=(L1+L2/60.0+L3/3600.0)*PI/180.0;return T;void PreGausePositive(double B,double L,double L0, double a, double b, double *N, double *l, double *c, double *t, double *X,double *B1) double a0,a2,a4,a6,a8,m0,m2,m4,m6,m8; double e,e1; e=(sqrt(a*a-b*b)/a; e1=(sqrt(a*a-b*b)/b; B1=DMSToRAD(B); t=tanB1; c=sqrt(e1*e1*cosB1*cos*B1); l=L-L0; N=a/(sqrt(1-e*e*sinB1*sinB1); m0=a*(1-e*e); m2=3/2*e*e*m0; m4=5/4*e*e*m2; m6=7/6*e*e*m4; m8=9/8*e

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论