本文是“关于PLC编程的问题讨论”一文的续写,在原文中列举一个编程实例,讲解了对一个具体项目如何进行编程(详细内容请见原文)。该项目的控制要求是:
“一台电动机要求在按下起动按钮后,电动机运行10秒,停5秒,重复3次后, 电动机自动停止。同时设置有手动停机按钮和过载保护。编写梯形图控制程序。PLC可以随便选用,要有相关说明。 注意:要有PLC控制电路和I/O分配表。”
原文对此项目用不同思路编出3种控制梯形图,并对此进行程序解析与比较。这3种控制编程都是选用定时器构成的振荡器编写出来的。下面再介绍2种编程方案,是用PLC的秒脉冲(SM0.5)触发存储器使之进行移位或加计数的控制方式实现的控制方案:
上图的方案四:是选用二个字节存储器(MB2、MB3),按下按钮,其抬起的后沿,使MB2=0、MB3=3,且使M0.1=1。M0.1=1使PLC的秒脉冲SM0.5触发有效:SM0.5的前沿,对MB2进行加1运算,当MB2值<10时,使输出Q0.7始终=1(即电机运转),MB2>=10时,使Q0.7=0(电机停),MB2=15时,使MB2=0,同时MB3减1,再判断MB3=0?,如不=0,由于MB2=0,且<10,使Q0.7=1(电机又转)。。。当MB3=0时(即循环3次),使M0.1=0,程序结束。此程序所用指令少,也是最佳方案。
上图的方案五:构思新颖,它是采用秒脉冲SM0.5的前沿触发字存储器MW4,使其以次右移一位的方式,对电机进行实时控制:按下启动开关(I0.0),其抬起时,将MW4=16#3F(即MB5的8位皆=1,MB4的低二位值也=1,共10位值都=1),再将MB6=0、MB7=3,同时使M0.2=1。M0.2=1 使SM0.5的前沿触发有效,每触发一次,MW4右移一位,MB6加1,当计满15次时,使MB6=0,且MB7减1,再判断MB7=0?,循环计数3次,其MB7=0,比较器输出信号使M0.2=0,程序结束。每次计数为15,前10个计数,M5.0输出都=1,故输出口Q0.7皆=1,电机运行,后5个计数,其M5.0输出皆 =0,故电机停转。
这5种编程方案(包括原文中介绍的3种),出于5种不同的构思,望初学者能仔细分析各个程序,如能很好的理解,对你今后的编程是会大有帮助的。
再介绍几个编程的小实例,都是在网上回答网友求助编写的,程序很短,针对性强,对初学者学习PLC编程会有帮助的:
一、网友求助:“电机启动后5秒内无反馈则停止电机的程序怎么写哦,请大侠指教 ”
我的回复:可以这样编程: