提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档
文章目录
- 前言
- 一、问题分析:
- 二、模拟运行
- 三、还有没有更简单的
前言
PLC 面试经典题目,一键启动功能:单个按钮按下一次控制灯亮起,再次按下按钮控制灯熄灭,如何实现?如何利用最少的组件实现?
一、问题分析:
一键启停是开放性的题目,可能的解法很多,每个人都有不同的理解,可以试下自己的想法。
下面介绍个人解法,仅供参考:
将问题实现为按钮控制灯熄灭的实际问题,
首先通过分析下这个问题过程看在这个过程中按钮经历了几种状态,然后再分析下灯经历了几种状态:
- 按钮按下:灯点亮
- 按钮松开:灯继续亮
- 按钮再次按下:灯熄灭
- 按钮再次松开:灯熄灭
分析后发现,在这个过程中按钮经历了四次状态变化,而灯经历了两种状态变化,而在按钮状态变化的上下阶段又是相互关联的,通过按钮的状态变化阶段我们可以分别实现:
- 第一阶段:按钮按下:灯点亮
状态表示,有功能输出:将按钮按下状态输出到灯打开状态
阶段关联:优化程序段1,在按钮松开时灯能够保持常亮,利用灯状态将灯状态保持:
2. 第二阶段:按钮松开:灯继续亮:
状态表示:通过分析第二阶段,基作为第1阶段与第三阶段之间的桥接,在第三阶段再次按下时其中间必定是有关联的,没有第二阶段按钮松开第三阶段就不可能实现,换言之第二阶段的状态我们也需要表示出来,其状态是按钮松开状态和灯常亮,通过取M点的状态表示出来,并且在按钮状态改变时能够保持:
- 第三阶段: 按钮再次按下:灯熄灭:
状态表示: 在第三阶段下按钮是按下状态,且加上第二阶段状态,输出为中间寄存器点位%M1.2,如下:
阶段关联:
- 打破第一阶段,灯熄灭:在第三阶段还需要实现功能输出:将灯熄灭,我们查看下灯点亮状态程序,需要将灯状态保持打破,所以优化第一阶段代码:
- 通过打破第一阶段同时将第二阶段状态复位
- 第四阶段: 按钮再次按下:灯熄灭:
状态表示: 在第四阶段的状态就是所有触点都复位到最初状态,分析以上阶段,只剩下第三阶段状态
按钮松开,解除第三种状态:通过分析第三阶段程序,将按钮常开触点加入到保持线路中,当按钮松开后,第三种状态自动复位,在第四阶段之后,所有状态又回复到最初的状态;
二、模拟运行
初始阶段:
-
第一阶段:按钮按下:灯点亮
-
第二阶段:按钮松开:灯继续亮:
-
第三阶段: 按钮再次按下:灯熄灭:
-
第四阶段: 按钮再次按下:灯熄灭:
三、还有没有更简单的
如果你有更好的想法,不妨试试,多动手总是有好处的,谢谢观看!