自动打铃控制器PLC
燕山大学课程设计说明书题目:自动打铃控制器
学院(系):电气工程学院
燕山大学课程设计(论文)任务书
2014年7月8日
前言
PLC即可编程控制器(ProgrammablelogicController),是指以计算机技术为基础的新型工业控制装置。PLC是一种专门为在工业环境下应用而设计的数字运算操作的电子装置。它采用可以编制程序的存储器,用来在其内部存储执行逻辑运算、顺序运算、计时、计数和算术运算等
上就可买的到自动打铃控制器一般是用单片机或数字电路组成的。但是用PLC同样可以完成自动定时打铃的控制。在本课程设计中,把它作为一个典型的时序控制任务,采用三菱软件,完成PLC的课程设计实训,还是很有意义。PLC作息时间控制器采用数码显示,能够准确显示分、时、星期,在一定的时间内能够自动打铃。
此外,该PLC作息时间控制器还设置了手动按钮,用于调整分钟、小
时和星期。该系统软件由计时及时间调节程序,显示程序,作息时间表程序和控制程序四个结构组成。上课铃与下课铃的铃音不同(铃音响的频率不同,上课铃为短音:响0.5秒,停0.5秒;下课铃为长音:响2秒,停1秒),其他的铃音为连续音。每次打铃的时间为15秒。星期六,星期日不打铃。具有时间显示功能,显示器件为LED数码管。显示内容为:分小时及星期。具有时间(分,小时,星期)调整的功能。并且加
3.4控制程序 (15)
3.5电铃控制程序 (16)
3.6仿真调试 (17)
第四章组态软件设计及简介 (20)
4.1组态软件的概述 (20)
4.2组态王的组成 (21)
4.3组态王的实现过程 (21)
第五章心得体会 (26)
参考文献 (27)
附录 (28)
第一章设计任务和要求
通过分钟调节按钮,小时调节按钮,将系统时间和星期调节为当前时间和星期;然后按下计时开始按钮,系统开始计时;系统时间和星期通过数码管显示出来。按下启动按钮,系统进入控制状态,将系统当前时间和星期与作息时间表比较,又输出口端口输出打铃控制信号。上课铃为短音,响0.5秒,停0.5秒,共持续15秒;下课铃为长音,响0.5秒,停0.5秒,共持续15秒;起床,早操等时间的铃声为连续打铃;为了不影响休息周六周日不打铃。
2.2PLC的选型
因需要7个输入点,14个输出点,考虑到实际应用中留有一定的I/O端口余量,且电铃为直流负载,由于三菱FN2N系列的PLC在小型控制系统中比较占有优势和市场,本次设计也是小型的控制系统,我们学习的也是三菱的FX2N 系列的PLC,根据上一章的知识,所以我们采用我们熟悉的三菱FX2N-32MR-001
由于在PLC系统中工作的是二进制的数字信号,而人们习惯十进制的数字或运算结果,因此需要数字显示器,显示出便于人们观测、查看的十进制数
字,因此本设计选择了七段数字译码显示器,下图是7448七段数字译码显示器的结构图及译码图。
2.5系统结构框图及I/O接线图
2.5.1结构框图:
(1)M8011为10ms周期振荡,X2为分钟调节按钮,M8014为1min振荡,当X5得电,每过一分钟C0实现自动加1。
(2)X2为分钟调节按钮,按X2可通过M8011一起使C0计数增加,从而调节分钟。
(3)X3为小时调节按钮,当C0计满到60时,C0常开闭合小时数C1自动加1并使C0从0开始计数。
(4)X4为星期调节按钮,当小时数C1计满到24时,星期数自动加1并使
C1复位。C2计数满7时也会自动复位。
3.2显示程序
(1)BCD转换指令是将源元件中的二进制数转换成BCD码送到目标元件,分别将C0内的数据换成BCD码送到M200—M207,C1内的小时数据换成BCD码送到M210—M217,C2内的星期数据换成BCD码送到M220—M227
3.4控制程序
由作息时间程序知,若是上课时间点时是M10,M16,M22,M28,M37,M43,M49,M55中与时间点对应的辅助继电器的那个运作并上升沿输出M100;若是下课时间点M13,M19,M25,M31,M40,M46,M52,M58中与时间点对应的辅助继电器的那个Y运作并上升沿输出M101;若是其他时间点到,M1,M4,M7,M34,M61,M64,M67,中与时间点对应的那个辅助继电器运作并上升沿输出M102。
3.5电铃控制程序
当上课信号M100来到时,分别由T10和T11定时器控制让其分别响0.5秒,停0.5秒并由T9控制让其响铃15秒。
当下课信号M101来到时,分别由T20,T21定时器控制。T20为你设定铃声响的定时器,为2秒;T21为设定的铃声停的定时器,为1秒,并由T9控制响铃为15秒。
当信号M102来到时,由T9控制让其连续响铃15秒。
3.6仿真调试
根据自己工程的需要进行选择、配置等较为简单的工作来建立自己所需要的监控系统。组态软件和行业无关,
组态(Configuration)为模块化任意组合。组态软件主要特点有:(1)延续性和可扩充性。用通用组态软件开发的应用程序,当现场(包括硬件设备或系统结构)或用户需求发生改变时,不需作很多修改而方便地完成软件的更新和升级;
(2)封装性(易学易用),通用组态软件所能完成的功能都用一种方便用户
使用的方法包装起来,对于用户,不需掌握太多的编程语言技术(甚至不需要编程技术),就能很好地完成一个复杂工程所要求的所有功能;(3)通用性,每个用户根据工程实际情况,利用通用组态软件提供的底层设备(PLC、智能仪表、智能模块、板卡、变频器等)的I/ODriver、开放式的数据库和画面制作工具,就能完成一个具有动画效果、实时数据处理、历史数据和曲线并存、具有多媒体功能和网络功能的工程,不受行业限制。
“组态王”支持使用内建的复杂函数,其中包括字符串函数、数字函数、系统函数、控件函数、配方函数、报告函数及其他函数。在工程浏览器重的目录显示区,选择“文件/命令语言/应用程序命令语言”,双击“请双击进入这儿“应用程序命令语言”对话框图标。出现下图:
5)
星期连接程序
if(\\本站点\$月==1){\\本站点\$月=13;}
if(\\本站点\$月==2){\\本站点\$月=14;}
\\本站点\w=(\\本站点\$日+2*\\本站点\$月+3*(\\本站点\$月+1)/5+\\本站点\$年+\\本站点\$年/4-\\本站点\$年/100+\\本站点\$年/400)%7;
if(\\本站点\w==1){\\本站点\week="星期一";}
if(\\本站点\w==2){\\本站点\week="星期二";}
if(\\本站点\w==3){\\本站点\week="星期三";}
if(\\本站点\w==4){\\本站点\week="星期四";}
if(\\本站点\w==5){\\本站点\week="星期五";}
if(\\本站点\w==6){\\本站点\week="星期六";}
if(\\本站点\w==7){\\本站点\week="星期日";}
打铃程序
if((\\本站点\$时间=="6:00:00"||\\本站点\$时间=="6:20:00"||\\本站点\$时间=="7:50:00"||\\本站点\$时间=="13:20:00"||\\本站点\$时间=="19:00:00"||\\本站点\$时间=="21:00:00"||\\本站点\$时间=="22:00:00")&&(\\本站点\w==1||\\本站点\w==2||\\本站点\w==3||\\本站点\w==4||\\本站点\w==5))
{StartApp("C:\Users\chai\Desktop\连续.wav");}
if((\\本站点\$时间=="8:00:00"||\\本站点\$时间=="9:00:00"||\\本站点\$时间=="10:10:00"||\\本站点\$时间=="11:10:00"||\\本站点\$时间=="13:30:00"||\\本站点\$时间=="14:30:00"||\\本站点\$时间=="15:30:00"||\\本站点\$时间=="16:30:00")&&(\\本站点\w==1||\\本站点\w==2||\\本站点\w==3||\\本站点\w==4||\\本站点\w==5))
{StartApp("C:\Users\chai\Desktop\上课.wav");
\\本站点\提示="上课啦";
}
if((\\本站点\$时间=="8:05:00"||\\本站点\$时间=="9:50:00"||\\本站点\$时间=="11:00:00"||\\本站点\$时间=="12:00:00"||\\本站点\$时间=="14:20:00"||\\本站点\$时间=="15:20:00"||\\本站点\$时间=="16:20:00"||\\本站点\$时间=="17:20:00")&&(\\本站点\w==1||\\本站点\w==2||\\本站点\w==3||\\本站点\w==4||\\本站点\w==5))
{StartApp("C:\Users\chai\Desktop\下课.wav");
\\本站点\提示="下课啦";
}
第五章心得体会
通过此次课程设计,使我更加扎实的掌握了有关PLC方面的知识,在设计过程中虽遇到了一些问题,但经过一次又一次的思考,一遍又一遍的检查终于
指令代码:
组态代码:
if(\\本站点\$月==1){\\本站点\$月=13;}
if(\\本站点\$月==2){\\本站点\$月=14;}
\\本站点\w=(\\本站点\$日+2*\\本站点\$月+3*(\\本站点\$月+1)/5+\\本站点\$年+\\本站点\$年/4-\\本站点\$年/100+\\本站点\$年/400)%7;
if(\\本站点\w==1){\\本站点\week="星期一";}
if(\\本站点\w==2){\\本站点\week="星期二";}
if(\\本站点\w==3){\\本站点\week="星期三";}
if(\\本站点\w==4){\\本站点\week="星期四";}
if(\\本站点\w==5){\\本站点\week="星期五";}
if(\\本站点\w==6){\\本站点\week="星期六";}
if(\\本站点\w==7){\\本站点\week="星期日";}
if((\\本站点\$时间=="6:00:00"||\\本站点\$时间=="6:20:00"||\\本站点\$时间=="7:50:00"||\\本站点\$时间=="13:20:00"||\\本站点\$时间