新闻中心

contact us

联系我们

纸鸢|物联设备PLC梯形图编程入门
发布时间:2023-10-16 15:37:59   来源:plc梯形图

  梯形图(LAD)是PLC编程的最佳可视化语言,它看起来非常类似于继电器电路图,因此如果你对继电器控制和电子电路知道的话,那么学起来会非常容易!

  梯形图是一种PLC编程语言,也被称为梯形逻辑(Ladder Logic)。

  梯形图是为电气工程师发明的,它是一种图形化的编程语言,这在某种程度上预示着编程的过程不是采用文本,而是组合各种不同的图形符号,由于目标用户是电气工程师,因此采用的符号非常类似于电路符号,以便于电气工程师理解。

  梯形图大多数都用在位逻辑操作,其规范有PLCOpen负责制定,因此梯形图是标准化的PLC编程语言, 该标准为IEC 61131-3。

  更容易读图:我们的眼睛自然地从左向右读图,然后继续到下一行,就像你阅读的时候一样。

  易于在计算机上编制:当在计算机上编制梯形图时,你可以一次编制一行。当绘制出慢慢的变多的行时,它们将叠加在一起, 看起来就像一个梯子。查看一个行数众多的梯形图的最佳方式,就是沿着屏幕上下滚动。

  执行的顺序:最后一个原因在执行的顺序,也就是PLC运行梯形图的先后顺序,更确切的说,就是梯形图中的指令如何依次执行:PLC总是从梯形图顶部开始,然后依次向下执行。

  梯形图看起来非常像电路图。大多数人也是这样开始有效学习编制梯形逻辑图的。 但是还是有一些不同之处,主要的差异在于:

  创建梯形图时,你首先看到的就是两条竖线,就是在这两条竖线之间进行梯形图的编制,其中 每一条水平线被称为一个Rung(横线)。梯形逻辑符号就放置在这些水平线上,图中看到的,我在每一个水平线上标记了数字, 以便于理解PLC是如何执行梯形逻辑的。

  这可能是梯形逻辑的最重要的一条规则:PLC一次只能执行一条水平线,然后才是下一条。实际上, PLC只能一次执行一个逻辑符号。

  让我给你一个简单的实例,在这个例子当中将引入两个梯形逻辑符号。那么,这些符号或指令到底是什么?

  它们是基本的逻辑指令,让你可以创建一小段逻辑,也就是你的PLC程序。如果你仔细看下面的 示例,能够正常的看到两个指令(符号):

  这是一个条件指令,意思是说这个指令用来检查某个条件是不是满足,例如检查某个数据位是否 处于ON的状态。

  闭路检查指令用来检查某个地址的特定位,在上图中指的是一个数字输入的特定位,它也可以是 内存位,甚至是输出位。

  闭路检查指令也被称为常开指令,基本上它类似于电路中的常开触点,因此能对应于一个点动开关。

  输入和输出都是PLC中的内存点位。在上面的示例中,闭路判断指令设置地址I0.0作为条件, 这个地址属于PLC的第一个输入。

  当PLC扫描周期开始,PLC将首先检查所有输入的状态,然后将输入状态(0或1)写入内存中, 如果输入是LOW,那么对应的内存位置位0,如果输入是HIGH,则对应的内存位置为1.

  每个指令本身在PLC内存中也有个位置,PLC会将指令的结果存入。要了解PLC使用结果做什么,让我们 看下一个指令:

  正如你看到的,该符号位于水平线的右侧,意思是(同一水平线上)之前的指令作为该指令的条件。 在我们的示例中,之前的指令就是闭路检查指令。

  在上面的动画中,你会看到PLC首先扫描所有的输入,并将输入状态存入内存。一个内存字节是彼此相邻的8位。

  第一个要执行的指令是闭路检查指令, 该指令的结果与内存位状态一致 —— 这也是该指令被称为常开指令的原因 —— 在正常状态 (内存位为0),触点将保持常开,结果将为0,但是如果内存位为1,触点将闭合,结果也 变为1。

  现在,输出线圈指令使用了前序指令的结果作为条件。这被称为RLO(逻辑操作结果)。

  逻辑操作结果保存在PLC内存中的特定位置。在西门子S7系列PLC中,这一个位置被称为状态字。

  在PLC术语中,一个WORD是16位,或2个字节。输出线圈指令很简单,它只是将其结果设置为与条件相同的值。

  在PLC中所有的数字输出也映射到内存地址。我们将其称为输出位,因此地址Q0对应Q0.0 - Q0.7. 输出线圈指令的结果将被写入内存位Q0.0。

  当PLC执行完整个程序,它将设置输出。每个输出被设置为与输出内存位一致的状态。

  扫描周期这个概念很重要,当你在编制梯形逻辑时一定要记住。否则你的程序可能会出现 奇怪的行为。

  在前面的示例中,我们学会了如何读取数字输入的状态,并将数字输出设置为同样的状态。

  需要指出数字输入是一个暂态按钮,因为它内部有个弹簧,这在某种程度上预示着按钮只有在你一直按下 时才会保持激活。

  上面的梯形图能够顺利工作,不过你可能注意到,只有输入激活时输出才会激活。因此你不 得不用手指一直按住按钮,才能让输出保持激活。但是想一下,如果输出控制的是一个通风系统 里的风机,那么要求操作员一直按着按钮就很不合理了。我们应该一个办法来保持输出 激活,即使操作员已经释放了按钮。

  如果你熟悉电路,就会发现这很类似,这杯称为锁存(Latching)或者自我保持(self holding)。

  这个名称揭示了其工作原理:线圈简单的维持自己前一个扫描周期的状态。让我们单步分析一下:

  当PLC第一次运行这个梯形逻辑程序时(按下按钮时),输出将被激活,就像前一个例子一样。 有趣的事情发生在后续运行逻辑的时候。因为这是一个暂态按钮,它不会一直激活。依赖于 PLC程序的运行总时长,按钮可能在第二次、第三次或第四次运行时不再激活。

  这时PLC将再次读取输入并存入对应 的内存位。内存位I0.0”这次将存入“0”。因此I0.0的闭路判断指令结果为false或“0”。

  但是你能够正常的看到,还有另一个并行的闭路判断指令,不过该指令的条件是输出内存位,因此 其结果为true或“1”,因为这是输出还处于激活状态。只要输出内存位是“1”,输出就会激活, 它就像自己的条件一样。

  自保持指令与其他指令并联的原因主要在于构造一个OR条件,在这个示例当中,I0.0或Q0.0中 的一个为true都会激活输出。

  一个激活输出的按钮。在我们的示例中,这个 可能是连接到一个风机的触点,输出可以自保持。

  我们希望可以再次关掉风机。最简单的方法是添加一个停机按钮,该按钮将连接到PLC的第二 个输入,因此其内存地址为I0.1。

  问题是,我们为停机按钮使用什么指令?更重要的,我们应当将其放在梯形图的哪里?

  这个指令和闭路检查指令的工作方式恰恰相反,其结果是条件的反转。这在某种程度上预示着,若条件 为“0”,那么结果为“1”,反之亦然。

  如果你考虑一下,就会发现这恰恰就是我们大家都希望停机按钮做的事情。要关闭输出线圈,我们 必须给出条件“0”。

  我们需要将其放在自锁指令之后,或者说,串联起来。否则当停机按钮按下时,还是会输出“1”。

  你可以看到开路检查指令将其条件的反转结果传递给输出线圈。要再次激活输出,就需要 再次按下启动按钮。

  虽然我们修改了指令,梯形图的运行没有变化,是因为我们同样修改了物理停机按钮的 工作方式。