PLC学习!
1、微控制器-PLC
PLC(可编程逻辑控制器)是一种用于工业自动化控制的专用计算设备,其主要通过程序控制机械或电子系统的运行。
板子内部就是arm内核的STM32F103VET芯片,使用时候需要根据需求I/O 点数、通讯接口进行选择。使用时候需要确定控制需求,绘制控制逻辑图或梯形图。配置输入设备(如按钮、传感器)和输出设备(如电机、灯光)。
PLC适用三菱的开发工具GX Developer 与GX Works2 软件编程、读取、下载、检验,设计初期和利用仿真工具进行仿真。
2、梯形图的基本理论
2.1、逻辑流向
梯形图由电源导线、左/右母线、触点、线圈和功能块组成。(左母线:表示电源的正极。右母线:通常省略,逻辑运行到最右侧表示回到电源负极。)
从左向右读取,每一行是一组逻辑条件。电流从左母线开始,通过触点、逻辑条件,最终到达右侧的线圈或功能块。自然地从左向右读图,然后继续到下一行,就像你阅读的时候一样。(PLC也是每次执行梯形图的一行,然后才继续下一行,电气系统则是许多回路同时激活)
创建梯形图时,你首先看到的就是两条竖线,就是在这两条竖线之间进行梯形图的编制,其中每一条水平线被称为一个Rung(横线):
梯形逻辑符号就放置在这些水平线上,PLC的扫描时间或扫描周期,简单地说,PLC首先扫描其输入,然后执行程序,最后设置输出。
梯形逻辑的最重要的一条规则:PLC一次只能执行一条水平线,然后才是下一条。实际上, PLC只能一次执行一个逻辑符号。
创建一小段PLC程序。示例如下,可以看到两个指令(符号):
2.2、闭路检查指令
第一个指令被称为闭路检查,指令的符号看起来是这样:
这是一个条件指令,意思是说这个指令用来检查某个条件是否满足,例如检查某个数据位是否处于ON的状态。闭路检查指令也被称为常开指令。需要指出的是,每个闭路检查指令必须要设置PLC中的一个地址。输入和输出都是PLC中的内存点位。在上面的示例中,闭路判断指令设置地址I0.0作为条件, 这个地址属于PLC的第一个输入。
2.3、输出线圈指令
每个指令本身在PLC内存中也有个位置,PLC会将指令的结果存入。要了解PLC使用结果做什么,让我们看下一个指令:
输出线圈指令用来打开或关闭一个数据位。该符号位于水平线的右侧,意思是(同一水平线上)之前的指令作为该指令的条件。
让我们检查下该指令的最终结果,来了解其工作过程:
- PLC 扫描 | 输入 -> I0 字节
- 程序执行 | I0.0 -> Xic结果
在上面的动画中,你会看到PLC首先扫描所有的输入,并将输入状态存入内存。一个内存字节是彼此相邻的8位。
输出线圈指令使用了前序指令的结果作为条件。这被称为RLO(逻辑操作结果)
扫描周期这个概念非常重要,当你在编制梯形逻辑时一定要记住。否则你的程序可能会有奇怪的行为。我们将在下一个示例中展示这一点,同时引入3个新的梯形逻辑指令。
这个示例中,我们学会了如何读取数字输入的状态,并将数字输出设置为同样的状态。 需要指出数字输入是一个暂态按钮,因为它内部有个弹簧,这意味着按钮只有在你一直按下时才会保持激活。
2.4、输出锁存
上面的梯形图可以正常工作,不过你可能注意到,只有输入激活时输出才会激活。因此你不得不用手指一直按住按钮,才能让输出保持激活。但是想一下,如果输出控制的是一个通风系统里的风机,那么要求操作员一直按着按钮就很不合理了。我们需要一个办法来保持输出 激活,即使操作员已经释放了按钮。
在梯形逻辑中,有两种办法实现这一点:
这类锁称为锁存(Latching)或者自我保持(self holding)
当PLC第一次运行这个梯形逻辑程序时(按下按钮时),输出将被激活,就像前一个例子一样。 有趣的事情发生在后续运行逻辑的时候。因为这是一个暂态按钮,它不会一直激活。依赖于 PLC程序的运行总时长,按钮可能在第二次、第三次或第四次运行时不再激活。
让我们进入按钮释放之后的第一个扫描周期。
输出还处于激活状态,因为上一个扫描周期按钮被按下。这时PLC将再次读取输入并存入对应 的内存位。内存位I0.0”这次将存入“0”。因此I0.0的闭路判断指令结果为false或“0”。
但是你可以看到,还有另一个并行的闭路判断指令,不过该指令的条件是输出内存位,因此 其结果为true或“1”,因为这是输出还处于激活状态。只要输出内存位是“1”,输出就会激活, 它就像自己的条件一样。
自保持指令与其他指令并联的原因在于构造一个OR条件,在这个示例当中,I0.0或Q0.0中 的一个为true都会激活输出。
2.5、开路检查指令
上面的例子中,我们希望能够再次关掉风机。最简单的方法是添加一个停机按钮,该按钮将连接到PLC的第二个输入,因此其内存地址为I0.1。
问题是,我们为停机按钮使用什么指令?更重要的,我们应当将其放在梯形图的哪里?
开路检查指令,它看起来如下:
这个指令和闭路检查指令的工作方式恰恰相反,其结果是条件的反转。这意味着,如果条件 为“0”,那么结果为“1”,反之亦然。
如果你考虑一下,就会发现这恰恰就是我们希望停机按钮做的事情。要关闭输出线圈,我们必须给出条件“0”。
现在是第二个问题,在哪里放置这个指令?
我们需要将其放在自锁指令之后,或者说,串联起来。否则当停机按钮按下时,还是会输出“1”。
现在,梯形逻辑如下:
你可以看到开路检查指令将其条件的反转结果传递给输出线圈。要再次激活输出,就需要再次按下启动按钮。
在上面的示例中,我使用了一个开路判断指令作为停机按钮。这不是好的实践!
我们最终遵循最佳实践,修改后的梯形图如下:
虽然我们修改了指令,梯形图的运行没有变化,这是因为我们同样修改了物理停机按钮的工作方式。
2.6、总结
母线:左母线,表示电源的正极。右母线,通常省略,逻辑运行到最右侧表示回到电源负极。
梯形图中的梯级:每一级表示一个控制逻辑,由触点和线圈等组成。信号从左母线流向右侧,依次通过触点。
触点:常开触点(NO),通电时闭合。常闭触点(NC), 通电时断开。
线圈:线圈表示执行结果(如输出信号),符号为“( )”。如果逻辑成立,则线圈动作(输出为 ON)。
功能块(如定时器、计数器):用于实现复杂逻辑,例如延时启动、计数操作。
输入、输出:输入信号(触点),对应实际输入设备,如按钮或传感器。触点符号表示输入条件。输出信号(线圈),对应控制设备,如灯、继电器或电机。线圈符号表示执行结果。
逻辑关系读取:触点之间的横向关系:串联为“与”逻辑,所有条件必须成立。触点之间的纵向关系,并联为“或”逻辑,任意条件成立即可。
