从这一节,就开始讲解和西门子s7-200PLC编写程序有关系的内容了,前几节的内存和寄存器的内容虽然非常重要,但那内容在我们的脑海里的印象,和编写PLC的程序比起来,好像那些还是属于理论层面的,没有编写程序来的那么直接和爽快。感觉只有编写程序才是高大上的事,就好像会编写程序了,美女就会排着队任我们挑,都不用去追。接下来就来满足一下那些超级的小白的编程欲望。声明下面的内容适合PLC小白,高手可以忽略了。
首先,编程前要搭建PLC外部的电路,就是你得让PLC知道你要控制谁呀。如图1就是一个搭建好的西门子s7-200PLC最最简单的控制电路了,简单的PLC都要哭了,你要是只让PLC干这点活简直就是对PLC的侮辱呀。好在我们现在是初学阶段,它不会介意的。
图1
如图1,要实现的功能是按下启动按钮I0.0以后,接触器Q0.1启动吸合,松开启动按钮I0.0以后接触器Q0.1一直保持在启动吸合状态。直到停止按钮I0.5按下后接触器Q0.1才停止断开。看到这里,稍微有点电气基础的朋友就能看出来了,它要实现的功能就是电工师傅们,最常用最基本也最经典的“启保停”电路了
见图2。你会发现用图2的常规电路也是可以实现我们上面说的功能,但是使用图1,PLC控制会比图2常规控制要灵活的多。比如在同样的条件下,如果需要接触器延时启动的话,常规的控制线路就需要增加延时继电器,并且还要改动电路,非常麻烦。使用PLC就不一样了,什么也不用动,改一下PLC程序下载进去就ok了。程序怎么写呢?
图2
见图3,上半部分就是写好的程序了,它要实现的就是我们上面说过的功能,就是这么简单。那他是怎么实现按下启动按钮I0.0以后,接触器Q0.1一直保持输出的呢?那就得先说一下CPU(朱元璋)的工作方式了,我们的老朱同志工作起来是很有个性的。当我们的程序写好后,下载到PLC,CPU(朱元璋)会从我们程序的,最上面一行的,最左边的第一个指令开始执行,顺序是从上到下,从左到右。当执行到最后一行的最后一个指令时,CPU就会返回到程序最开始的地方,继续循环执行,周而复始,yongbu停歇,直到我们手动将它停止或断电。注意,程序在正常运行时,即使外部接线的开关按钮没有任何操作,程序在PLC内部也是一直在运行的。
图3
接下来我们就把图3的程序的工作原理来叙述一下。按照CPU的工作方式执行过程如下:
1,CPU首先检测I0.0状态,发现是断开状态(因为启动按钮I0.0是常开按钮且未按下),,然后检测I0.5是闭合状态(因为停止按钮I0.5是常闭按钮且未按下),然后检测常开触点Q0.1是断开状态(因为接触器Q0.1没有输出),最后根据输入的各个状态得出执行结果接触器Q0.1没有输出(因为I0.0和Q0.1都未接通),外部接触器不工作。只要我们外面没有按钮按下,程序就会如此反复循环执行,结果始终是接触器Q0.1没有输出。直到启动按钮I0.0按下。
2,启动按钮I0.0按下,当CPU检测到I0.0状态,发现是闭合状态(因为启动按钮I0.0是常开按钮但已经按下),,然后检测I0.5是闭合状态(因为停止按钮I0.5是常闭按钮且未按下),然后检测常开触点Q0.1是断开状态(因为接触器Q0.1这时还没有输出),最后根据输入的各个状态得出执行结果接触器Q0.1有输出(因为I0.0接通,I0.5接通)。这时一次循环完成,又返回重新开始。
3,这时我们松开启动按钮I0.0,当CPU检测到I0.0状态,发现是断开状态(因为启动按钮I0.0是常开按钮且未按下),,然后检测I0.5是闭合状态(因为停止按钮I0.5是常闭按钮且未按下),然后检测常开触点Q0.1是闭合状态(因为接触器Q0.1在上一次循环时已经有输出),最后根据输入的各个状态得出执行结果接触器Q0.1有输出(因为Q0.1接通,I0.5接通)。所以即便启动按钮I0.0已经断开,但接触器Q0.1仍然有输出。只要停止按钮I0.5没有按下,接触器Q0.1就会一直有输出,实现了保持功能。
4,当我们按下停止按钮I0.5时,CPU检测到I0.0状态,发现是断开状态(因为启动按钮I0.0是常开按钮且未按下),,然后检测I0.5也是断开状态(因为停止按钮I0.5是常闭按钮但已经按下),然后检测常开触点Q0.1是闭合状态(因为接触器Q0.1在上一次循环时是输出状态),最后根据输入的各个状态得出执行结果接触器Q0.1无输出(因为I0.5断开)。这样就实现了停止。
这就是这段程序的工作过程,它是开关量程序控制的基础,大家应该熟练掌握。