PLC实例一个按钮控制三个灯(带全篇注释版)
实例:用一个按钮控制三个灯
要求:要求用一个按钮控制三个灯。由plc组成一个控制器,每按一次按钮增加一组灯亮;三组灯全亮后,每按一次按钮,灭一组灯(为了使每组灯亮的时间尽量相等,要求先亮的灯先灭);如果按下按钮的时间超过两秒,则灯全灭。
1.首先,根据题意编写符号表。
2.电路设计
根据控制要求,可用字节加一指令计数器INC_B组成一个计数器,计数值用MB0的低3位表示,用计数器的结果控制三个灯的组合状态。计数器的值与三个灯的逻辑关系如表所示。
由上述关系图可以得出PLC接线图和控制梯形图:
说明:
网络1,I0.0(按钮SB)按下后INC_B向上计数,因为使用了下降沿触发(N),所示是I0.0由1到0时才向上计数(也就是说是按钮松开时计数)。这里使用下降沿触发是为了使计数与按2S停止的信号相互错开,以防程序出错。
网络2,3,4:根据图表,当计数器为1、2、3时灯1亮,当计数器为2、3、4时灯2亮,当计数器为3、4、5时灯3亮。计数器MB0由M0.0至M0.7 8个位组成,每个位由0和1两种状态,那么MB0的值为0到255,计数器为1时M0.0为1,计数器为2时M0.1为1,计数器为3时M0.0,M0.1为1,计数器为4时M0.2为1,计数器为5时M0.0,M0.2为1,计数器为6时M0.1,M0.2为1,根据这些计数值与输出的关系将Q0.0、Q0.1、Q0.2与M0.0、M0.1、M0.2的对应逻辑关系写出。
网络5:为了使程序能循环使用,必须使计数器复位。此题当计数值为6时,也就是M0.1,M0.2为1时,将计数器复位。并且根据题意,按按钮2S也要讲计数器复位。
网络6:当I0.0按2S以上时,T37动作去复位计数器。
除了上述方法,还可以利用计数器C0来控制三个灯的组合状态,具体如下:
说明:网络1使用向上计数器C0代替上一个的INC_B,计数器C0的动作原理:每次向上计数输入CU从关闭向打开转换时,向上计数(CTU)指令从当前值向上计数。当前值(Cxxx)大于或等于预设值(PV)时,计数器位(Cxxx)打开。复原(R)输入打开或执行"复原"指令时,计数器被复原。达到最大值(32,767)时,计数器停止计数。.根据题意,CU接I0.0的下降沿,R接T37(2s复位)或CO位——使按钮时间达到2S或计数器到6时自行复位。PV为6.
网络2:当I0.0按2S以上时,T37动作去复位计数器。
网络3:SM0.0为PLC系统特殊位,其功能为一直通。因为当计数器为1、2、3时灯1亮,当计数器为2、3、4时灯2亮,当计数器为3、4、5时灯3亮。所以使用比较整数指令,当C0为1、2、3时灯1亮,当C0为2、3、4时灯2亮,当C0为3、4、5时灯3亮。
西门子 PLC,使用单个按钮控制一个指示灯的几种方法!
西门子 PLC 程序采用循环扫描的方式运行,运行时,程序按照输入采样,程序执行,输出刷新的顺序循环执行,这样的一个循环称之为程序的一个扫描周期,PLC 一般扫描周期为 30mS 左右,有些大型 PLC 或者高端型号,扫描周期可能只有 10ms 左右。
按照这个原理,我们按钮按下,一般都是几百毫秒,程序已经执行了多个扫描周期。所以要使用单个按钮来进行程序控制,其核心是要求我们在按下按钮时,输入信号只能在一个周期内执行程序,所以不论采用哪种方法,都必须要用到 I P I 取上升沿指令,这个指令的特点是信号由 0 变为 1 是,只执行一个扫描周期。
下面根据这个原理,有以下几种单个按钮控制启动/停止的方法 :
方法一:
第一行程序,当第一次按下启动按钮(灯 Q0.0 为 0 说明第一次)M0.0 时,M0.0 的上升沿为 1,Q0.0 的常闭也为 1,逻辑结果为 1,置位亮灯辅助 M100.0 的指令被执行,M100.0
被置位 1;
第二行程序,当第一次按下启动按钮(灯 Q0.0 为 0 说明第一次)M0.0 时,M0.0 的上升沿为 1,Q0.0 的常开为 0,逻辑结果为 0,复位亮灯辅助 M100.0 的程序不会被执行,M100.0的值不会因为本段程序被改变;
第三段程序,由于 M100.0 被置位 1,所以 Q0.0 输出结果为 1;之后的程序扫描周期,只要 M0.0 没有被再次接通,结果都保持不变;
当我们再次按下 M0.0 时,这个时候 Q0.0 是为 1 的;
第一行,M0.0 上升沿为 1,Q0.0 常闭为 0,逻辑结果为0,M100.0 置位不被执行;
第二行,M0.0 上升沿为 1,Q0.0 常开为 1,逻辑结果为1,M100.0 复位被执行,M100.0 变为 0;
第三段程序,由于 M100.0 被复位为 0,所以 Q0.0 输出结果为 0;
之后的程序扫描周期,只要 M0.0 没有被再次接通,结果都保持不变;
方法二:
以上这种方法,当我们第一次按下 M1.0 按钮时,第一行按钮辅助 M110.0 在第一个程序周期输出结果为 1,
第二行的逻辑结果:M110.0 为 1,Q0.1 的常闭触点也为 1,所以他两进行与运算,逻辑结果也为 1;
第三行,M110.0 常闭触点动作,结果为 0,Q0.1 的常开触点当前也为 0,与运算结果为 0;
Q0.0 结果为第二行和第三行的或运算,由于第二行为 1,所以结果为 1;
第二个程序扫描周期,由于 M1.0 按钮没有被再次按下,不管当前状态是否松开,都不会执行,所以 M110.0 结果为 0;
第二行,M110.0 为 0,Q0.1 的常闭触点受上一次程序执行的影响,也为 0,与运算逻辑结果为 0;
第三行 M110.0 的常闭为 1,Q0.1 已经动作,所以也为 1,与运算逻辑结果为 1;
Q0.1 的结果是第二行和第三行的或运算,所以结果仍然为 1,就这样,程序实现了第一次按下按钮,Q0.1 输出结果始终保持为 1;
当我们再次按下按钮 M1.0 时,M100.0 再次为 1 一个扫描周期;
第二行 M100.0 为 1,Q0.1 由于已经为 1,所以常闭触点为 0,逻辑结果为 0;
第三行 M100.0 的常闭变为 0,Q0.1 的常开为 1,逻辑结果也为0;
Q0.1 的值是第二行 0 和第三行 0 的或运算结果,也为 0,所以Q0.1 的值变为 0,恢复到初始状态;
Q0.1 的状态始终保持为 0,等待下一次按钮被按下,重复上面的程序逻辑。
方法三:
第三种方法和第一中方法类似,利用 RS 置位优先指令(或者 SR 复位优先指令也可以),指令左边的两条指令执行完成后,统一输出;
第一次按下 M2.0 按钮时,R 复位条件不满足;S1 置位条件满足,逻辑结果为置位,所以 Q0.2 被置位;
第二次按下时,由于之前 Q0.2 已经被置位,所以复位 R条件满足,置位 S1 条件不满足,所以 Q0.2 被复位;
这种用法,逻辑统一处理完成后,统一输出,程序结构较为简单,逻辑清晰;
方法四:
在 PLC 变量表中建立灯的一个变量;
在 HMI 中添加一个按钮,在属性-事件-单击中添加函数
当按钮单击时,取放灯 Q0.0 的值,如果之前为 0,则改变输出为 1;如果之前为 1,则改变输出为 0;
总结:当个按钮控制启停,这样的程序在实际应用中有会用到,但是更多的目的,是希望能够参考几种方法,加深对 PLC 程序执行逻辑的理解。
相关问答
西门子PLC编程,一个按键控制一个灯,按一下长亮,再按一下灭?
1、以S7-300为例,用你说的RS触发器就可以实现。按钮的信号取下降沿,就是(N)这个指令,并串上灯灭状态作为Set,串上灯亮状态作为Reset,RS触发器输出给灯。2...
两个开关控制一个灯用PLC怎样编程?
两个开关控制一个灯,如果要用plc来编程可以说简单,也可以说复杂,说简单就是编程还没开始就结束了!编程复杂就是单一的这个功能用个plc太浪费,高射炮打蚊子,...
plc按钮输出指令?
你说的是外部的按钮还是触摸屏里的虚拟按钮,如果是外部的按钮,需要接线在plc的i点,然后在编程软件里写写起保停程序,如果是触摸屏里的用指令m开头的中继,在...
plc用一个按钮启动和复位怎么编程?
哪里的复位键,没有说清楚,显示屏的还是plc的,显示屏上的复位键,要看显示屏上有没有带相应的键,没有的话,单纯做参数复位功能,可以自己做个按键,里边加上...哪...
plc八个灯循环指令有哪些?
也就是说循环左移1位就是向左移动1位最高位移到最低位处循环右移1位相应的位向右移动1位最低位移到最高位移位指令是PLC的一条重要指令,可用于步进顺序控制...
plc画面中的按钮怎么用?
在PLC的画面中,按钮用来触发操作或执行特定的功能。要使用按钮,可以按照以下步骤操作:1.打开PLC的画面编辑软件(如FactoryTalkViewStudio)并打开相应的...
仪表控制柜上的开关和开关指示灯是怎么和plc联接-ZOL问答
你那控制柜上的开关肯定是那种带灯按钮,其实按钮的触点和灯是分开的,灯的控制是靠PLC的输出来控制的。有用(0)回复HL810040496SB1是否为NC?未检测到物体时...
PLC编程中,线圈,按钮开关,交流接触器都用什么符号表示?
图中X0是表示按钮开关,Y0是表示线圈,至于你说的交流接触器,也是用PLC输出控制,也就是那个Y0,但你可以另外一个点,比如:Y1或Y2...PLC程序并不是你想象中和...
plc中如何通过一个键(点动)实现开关的常开与常闭?
PLC输入如何理解常开和常闭什么时候导通,记住一句话就可以了:对于输入是以+24V为公共点的:有高电平(+24V)输入到PLC时,对应的常开点闭合,对应的常闭点断...
用pLC编程,我想按钮START只按一下就能触发程序一直循环运行。怎么写?
START输入使一个中间继电器置位,再在此中间继电器后串上你的程序。。。。START输入使一个中间继电器置位,再在此中间继电器后串上你的程序。。。。