基于PLC原理在51单片机上的自动抽水控制实现Word文档格式.docx
《基于PLC原理在51单片机上的自动抽水控制实现Word文档格式.docx》由会员分享,可在线阅读,更多相关《基于PLC原理在51单片机上的自动抽水控制实现Word文档格式.docx(19页珍藏版)》请在冰豆网上搜索。
科学的进步带给人们的是更好的生活方式,其表现形式是制造和改进工具,减轻劳动负担,提高劳动效率。
科学的进步更带给人们全新的思维方式以及解决问题的能力。
一直以来人类都以制造工具作为区分人与动物的一种最本质特点,人类制造的工具种类繁多,功能涵盖生活的各个方面,可以这么说,只要有人的地方处处充满着经过思维加工过的精妙设计。
人类文明灿烂绚丽,而历史现在正处在一个伟大的世纪,一个人类彻底变革的世纪。
有一种东西将把人类彻底的划分成两个时代,那就是20世纪诞生的计算机。
其重要意义在于人类所创造的工具将有可能完全脱离人工环节,完全的自动化。
计算机诞生于1947年,至今不到百年,就以其强大的力量改变了世界。
但是距它发挥它的力量还有无穷尽的路要走。
进入21世纪的今天,自动化的潮流已经来临,在这个信息时代没有什么不可能的。
现在秉承先驱者的理念让工具彻底从人类手中解放出去,这是一片广阔无垠的天空有着无尽的可能。
让生活变成有生命的,计算机在经历了数十年的发展已经拥有这样的力量。
微控制器件—单片机,集小型化,高效节能,可靠稳定的计算机系统已非常成熟。
使用它设计一个自动化的设备已经悉数平常。
使用单片机在无人的情况下完成自动抽水的工作是完全做得到的。
在数字电路,工业控制领域,PLC作为常用的控制器件,其特点是采用逻辑方式让控制量来控制被控量。
当然有个前提,控制量与被控量都是二进制的可以进行与或非运算的布尔量。
通过循环进行布尔运算,可以实现被控量的实时可靠控制,误操作的可能极小,并且有极强的纠错能力,即使出错在下一运算周期中数据也会被重新刷新,而这个周期是极短的,通常不过几毫秒。
所以使用PLC的控制方式具有极强的应用性。
第2章 PLC简介
2.1什么是PLC
PLC即可编程逻辑控制器(可编程控制器件)
可编程逻辑控制器(ProgrammableLogicController,PLC),它采用一类可编程的存储器,用于其部存储程序,执行逻辑运算、顺序控制、定时、计数与算术操作等面向用户的指令,并通过数字或模拟式输入/输出控制各种类型的机械或生产过程。
2.2PLC的工作原理
当可编程逻辑控制器投入运行后,其工作过程一般分为三个阶段,
即输入采样、用户程序执行和输出刷新三个阶段。
完成上述三个阶段称作一个扫描周期。
在整个运行期间,可编程逻辑控制器的CPU以一定的扫描速度重复执行上述三个阶段。
一、输入采样阶段
在输入采样阶段,可编程逻辑控制器以扫描方式依次地读入所有输入状态和数据,并将它们存入I/O映象区中的相应的单元。
输入采样结束后,转入用户程序执行和输出刷新阶段。
在这两个阶段中,即使输入状态和数据发生变化,I/O映象区中的相应单元的状态和数据也不会改变。
因此,如果输入是脉冲信号,则该脉冲信号的宽度必须大于一个扫描周期,才能保证在任何情况下,该输入均能被读入。
二、用户程序执行阶段
在用户程序执行阶段,可编程逻辑控制器总是按由上而下的顺序依次地扫描用户程序(梯形图)。
在扫描每一条梯形图时,又总是先扫描梯形图左边的由各触点构成的控制线路,并按先左后右、先上后下的顺序对由触点构成的控制线路进行逻辑运算,然后根据逻辑运算的结果,刷新该逻辑线圈在系统RAM存储区中对应位的状态;
或者刷新该输出线圈在I/O映象区中对应位的状态;
或者确定是否要执行该梯形图所规定的特殊功能指令。
即,在用户程序执行过程中,只有输入点在I/O映象区的状态和数据不会发生变化,而其他输出点和软设备在I/O映象区或系统RAM存储区的状态和数据都有可能发生变化,而且排在上面的梯形图,其程序执行结果会对排在下面的凡是用到这些线圈或数据的梯形图起作用;
相反,排在下面的梯形图,其被刷新的逻辑线圈的状态或数据只能到下一个扫描周期才能对排在其上面的程序起作用。
在程序执行的过程中如果使用立即I/O指令则可以直接存取I/O点。
即使用I/O指令的话,输入过程影像寄存器的值不会被更新,程序直接从I/O模块取值,输出过程影像寄存器会被立即更新,这跟立即输入有些区别。
三、输出刷新阶段
当扫描用户程序结束后,可编程逻辑控制器就进入输出刷新阶段。
在此期间,CPU按照I/O映象区对应的状态和数据刷新所有的输出锁存电路,再经输出电路驱动相应的外设。
这时,才是可编程逻辑控制器的真正输出。
第3章 硬件介绍
3.1单片机抽水控制系统框图
整个电路由五个部分构成:
包括单片机最小系统;
控制开关;
水泵驱动电路;
运行及故障指示灯。
单片机采用atmel89s52
3.2原理简介
系统实际电路图2.2
3.2.1电路的控制信号采集
控制开关由J2-J5组成:
水泵启动开关,常开,缺水时常闭(接P0.0);
水泵停止开关,常闭,水满时断开(接P0.1);
欠压监测开关,常闭,电压正常时断开(接P0.3);
抽水正常监测,常开,正常时闭合(接P0.4)。
J2、J3是由各自的浮漂控制,当水位下降至一定程度时,J2相连的浮漂下沉,使J2闭合;
当水位上升至一定程度时,J3相连的浮漂受到浮力,J3断开。
J4是交流接触器K2的一个辅助常闭触头,欠压时触头无法完全断开,借此检查是否欠压。
J5与出水口的一个拨片相连,水流冲击使其闭合,检测是否正常抽水。
J4,J5异常都将引起系统停止工作5分钟,再重新工作。
3.2.2水泵控制电路
水泵使用220V交流接触器K2控制,而单片机工作电压为5V,故使用三极管驱动一个5V的继电器K1,再用继电器控制交流接触器。
图中J6为常闭开关,于一个浮漂相连,当发生意外水位超出安全界限时浮漂受到浮力使J6断开,这是一项保护措施。
3.2.3指示灯
运行指示灯LED2(接P1.0),正常运行时以3s为周期闪烁;
故障指示灯LED1(接P0.4),正常时为常亮,故障时以0.5s为周期闪烁。
3.3硬件选材与制作
3.3.1控制芯片
单片机at89s52是由ATMEL公司生产的51核的单片机,和51单片机完全兼容。
此设计使用了其位寻址区,P0口。
51单片机RAM从20H到2FH作为位寻址区,此位寻址区专为工业位逻辑控制而设计。
P0端口,作为地址数据复用时是推挽互补输出,作为普通输入输出端口时为源极开路,所以需要外接上拉电阻。
3.3.2控制开关
电路中所有控制开关使用2mm铜芯线制成,去皮后锤打使之更有弹性,再将其绑在面包板上,固定一段,且使另一段能在浮漂的作用下接触地线端电极,输出一个低电平。
3.3.35V电源
单片机需要工作在5V电源下,采用成熟的5V电源满足这一要求。
此电源使用开关电源,置保护熔丝,EMC设计,后级采用非常良好的滤波输出,输出电压非常稳定。
3.3.4水泵驱动电路
农村常见的水泵有两种,真空式及潜水式。
两种水泵都是使用220V居民用电,本设计中使用的是潜水式,功率大约800W。
驱动水泵最大的问题是电源隔离及控制问题,图2.3是去动电路的控制电路。
水泵驱动电路图2.3
Q1为驱动三极管,单片机输出控制信号,首先驱动K1(5V继电器),然后再控制K2(220V交流接触器),K2再控制水泵运作。
M1为水泵示意,水泵电机是一个单相的电机,部只用两相线圈,互相成90度的空间安放。
其中一只线圈串联了一只电容C1,目的是利用它来改变第二只线圈的电抗,使得两只线圈上的电流呈现出相位差,产生出旋转磁场驱动电机转子旋转。
将S1打到0V将启动整个电路,如图2.31所示
图2.31
可以看到随着S1的闭合2N1132导通,K1闭合,K2闭合,M1得电。
这里需要注意的是驱动有效的电平是低电平,因为单片机开机瞬间复位后的电平是高电平,如果现在是搞电平有效地话,那么将产生误动作,出现可怕的后果。
使用继电器实现了很好的隔离作用,在实际的情况下还要考虑另外一种因素。
一般情况下驱动感性负载会对电源产生严重的影响,会使单片机出现复位的情况。
因为单片机的复位电路一般情况下是使用RC的复位电路,电源的波动很容易从电容上耦合到复位引脚上。
所以需要使用用一些电路来避免这样的情况发生。
在本设计中K1的线圈是一个感性负载,启动瞬间会对电源产生干扰,常采用的方法是反并联一只二极管,如图2.32所示。
图2.32
采用这种方法将非常有效地解决上述问题,且成本低廉。
3.3.5指示灯的设计
ab
图2.33
如上图a,b所示LED2为运行正常指示灯,其驱动指令放在主程序环节,只要其正常闪烁说明整个程序正常工作。
LED1是用特殊考虑的,它直接与J5并联,且未加限流电阻,但仍能正常工作。
因为J5工作于P0口,整个电流用上拉电阻提供,而上拉电阻提供的电流完全在LED1的承受围,故不需要额外的原件。
LED1直接反应了J5的通断状态,如果亮则表明J5处于断开的状态,如果灭,说明J5处于闭合状态。
而J5直接反应的是抽水是否正在进行,如果灭则表示正在抽水,若是亮则表示未进行抽水。
J5的闭合断开是由外部的抽水客观决定的,与程序无关,客观的反应了电路的工作状况。
指示灯的电路是必不可少的,因为它提供了一种人机交互的基本方式。
是人能直观的了解到系统的的运行情况。
第4章 程序设计
4.1程序流程图
图3.1
程序流程图中可以看出,P1.0(LED2)一直处于主循环中,任何终止主程序的行为都将使其停止闪烁。
在程序中主要有三个判断:
1.是否是抽水控制发出后的第一次循环,因为刚发出抽水的命令,整个系统都需要时间来响应。
继电器的闭合需要时间,水从井中抽到水池中也需要时间。
2.是否欠压,电压过低将无法驱动电机正常运行。
3.抽水正常,水是否已满。
这是整个程序中的主要控制住部分。
4.2主逻辑分析
为了方便理解将原程序简化如下(原程序参见附录)
X1EQUACC.0
X2EQUACC.1
Y1EQU00H
ORG0000H
AJMPMAIN
ORG0030H
MAIN:
MOVP0,#0FFH;
P0置1作为输入
CLRY1;
输出缓冲清除
LOP:
MOVA,P0;
读P0口
CPLX1;
取反
MOVC,X1
ORLC,Y1;
X1或00H
ANLC,X2;
与上X2
MOVY1,C;
保存输出
CPLC
MOVP0.7,C;
输出
AJMPLOP
END
图3.2
图3.2展示的是程序的逻辑的梯形图(Y_1=Y1),当X1为1时,输出Y_1为1,同时Y1为1,在X1断开后输出继续维持,直到X2断开。
4.3提高程序稳定性
MOVR3,#5
LP9:
ORLC,P0.3
ACALLDELAY200MS
DJNZR3,LP9
这是在程序常采用的提高程序读取数据正确性的程序,将数据每隔200ms读取一次,相或,可避免负跳变脉冲引起的干扰。
//防死机处理程序
ORG0100H
NOP
CLRA
CLREA