原网址 http://www.plcacademy.com/ladder-logic-tutorial/
梯形图或梯形逻辑图,是一种可视化PLC编程语言,简单易学。
梯形图看起来与继电器电路非常相似,如果有继电器控制和电子电路的基础,学习起来非常快。
通过本教程,可以了解到关于梯形图语言的所有基础知识。然后,可以在任一种PLC编程软件中进行真正PLC编程。强烈建议,学完本教程后,继续学习其他在线PLC编程课程。
梯形图是一种PLC编程语言。英文LD。之所以叫梯形图,就是因为程序由一档一档组成,看起来像梯子。 梯形图主要用于处理位逻辑操作,虽然也可以处理模拟量。
梯形图标准化组织是PLCOpen。梯形图并不是PLC唯一的编程语言,只是PLC标准编程语言的一种。对应的标准为IEC61131-3。 现在,只需要知道,是有一套标准描述、定义梯形图编程语言的即可。
开始梯形图之前,需要了解编程语言的一些东西。应该知道为什么创造出了梯形图,要是有些电气继电器或布尔逻辑经验更好,这样更利于真正了解梯形图。
梯形图是图形编程语言,不是文本。编程过程就是通过组合不同的图形元素来实现,图形元素叫做符号。
一个明智之举是设计的梯形图符号就像电气符号。梯形图最初就是给电气工程师等有电气背景的技术人员使用的。 习惯看电气图的可以看下梯形图的符号,是否看起来非常熟悉。
和电气图一样,梯形图有触点和继电器(梯形图中叫线圈)的符号。符号和电气图稍微有些不同,但功能是一样的。
梯形图和电气图的另一个不同是绘制方向。电气图一般是垂直绘制,梯形图则是水平绘制。
水平绘制梯形图可以:
方便阅读
一行一行从左到右对于眼睛是一种自然的方式,和读书一样。
方便计算机绘图
在计算机上可以一行一行绘制,层叠起来,看起来如同梯子一样。同样,看很多行的大型程序图时,上下滑动更方便。
执行顺序
最后一个原因是执行顺序,就是计算机运行梯形图程序的顺序。PLC按照梯形图逻辑指令的顺序依次执行,总是从梯形图顶部开始一次执行到底部。
如前述,梯形图与电气图很像,大部分人按绘制电气图的思路学习绘制梯形图。但这两者是有不同的,所以还是建议另寻方法,分开来学。
本教程将会介绍一种学习方法。
主要的问题点是电气控制系统和PLC的工作原理是完全不同的。主要区别如下:
记住这个关键不同点,就可以开始深入学习梯形图了。
当创建一个新的梯形图后首先看到的是两条竖线。竖线中间绘制梯形图逻辑。绘制时,在两条线之间画水平连接。每一行叫做一个阶梯,和实际的梯子类似。
带水平线的一条逻辑叫一个阶梯(一行)在每一行里可以放置任意的梯形图逻辑符号。上图所示,每行已经放了些逻辑符号,这样可以理解PLC怎样执行程序。 你可能已经知道了扫描时间和扫描周期,简单的说,PLC首先扫描所有输入,然后执行程序,设置输出。
PLC怎样执行梯形图逻辑呢?实际上是每次执行一行。
这应该是梯形图最重要的概念。PLC每次只执行一行,然后再执行下一行。再进一步,PLC每次执行一个符号。
梯形图的每个符号就是一条指令。现在这可能比较困惑,但不用担心,后面会用简单例子解释。 先从最简单的一个例子开始。在这第一个例子的中,会介绍两种逻辑符号。
那么这些符号或指令是什么?
这是基本的逻辑指令,用来创建复杂逻辑。这些逻辑就是梯形图或PLC程序。详细看下面例子,可以看到有两条指令(符号)
包含两条指令的一行程序第一条指令叫常开逻辑(检测接通),指令符号如下图所示:
标题通检测指令这是一个条件检测指令,可以用来检测某物是否为真,如检查某一位是否为1。
如图上,指令符号的上面有个名字 - I0.0.
这代表了某个指定位的地址,这条指令将会检测这个位。此图中,这是一个数字输入。 也可以是内部存储中的某一位或一个输出位。
通检测叫常开触点,基本工作原理和电气图中的常开触点是一样的。只是常开触点没有相应的存储位作为判断条件。 这个条件是触点是否闭合,所以假如当按下按钮,条件触发。
这说的要点就是每条指令必须分配一个PLC地址。
是的,输入和输出也是PLC存储中的位。上面例子中,常开触点分配了I0.0作为判断条件,这个地址位于PLC的第一个输入。
工作流程如下:
指令自身在内存空间也有相应的位,存储PLC指令的结果。要想了解PLC怎样使用运算结果,须看下条指令。
梯形图输出线圈输出线圈用于打开和关闭一个位。
如图所示,这个符号位于每一行的右侧。意味着,之前所有的指令(这一行内)作为这条指令的条件。上图例子中,条件是常开指令的运算结果。
可以看一下这条指令运算结果,以了解其怎样工作。
上面动画中可以看到,PLC首先扫描所有输入,然后把对应状态存到相应的内存字。一个内存字就是彼此相邻的8个位。 现在不必考虑太多,但一位挨一位放置非常明智,后面会有叙述。
当PLC把所有输入存储好,程序逻辑开始执行。第一条是执行断检测(常开指令)。指令结果与对应内存的位一致。 诚如这条指令叫常开,正常状态下(内存位为0)触点是打开的,结果是0。如果内存位为1,则触点闭合,结果为1.
最后,看下输出:
现在,输出线圈使用前一条指令结果作为条件,叫做RLO(Result of logic operation)。RLO存储于PLC内存中一个特殊的位置。西门子S7PLC中,叫状态字。
字是相邻两个字节,16位。
输出线圈工作简单,就是把位设置成和条件(RLO)一样。
PLC中所有的输出也在内存中分配了一个位,叫做输出字(Q0),即位Q0.0 - Q0.7。 这个线圈输出结果会放在内存中的位Q0.0
当PLC执行完整个程序,会进行输出。每个实际输出都会根据输出位设置成相同的输出。
当编写程序时,扫描周期概念必须牢记,非常重要。否则你写的程序会出现些奇怪的问题。下面的例子有详细描述, 同时,也会学到另外3种梯形图逻辑指令。
上个例子中,学习了怎样读取输入位的状态并根据结果设置输出。这种输入是瞬时按钮。 之所以是瞬时,因为按钮内部有弹簧,这意味着,按钮只有一直按着才有效。
上面程序正常工作没有问题,但是需注意到,只有有输入时才有输出。所有为保证一直有输出,手必须一直按在按钮上。 但如果输出控制的是通风系统的风扇,让操作员手一直按着按钮会非常不友好。所以需要一种方式来保持输出,即使操作员松开按钮也没问题。
梯形图中有两种方式实现:
梯形图的自锁如果你熟悉电气图,会发现这很熟悉。这叫做自锁或自保持。
其名称说明了如何工作。线圈会保持住自己,我们逐步看下如何工作:
当PLC第一次运行程序时(按钮按下状态),输出为1,和上面例子是一样的。有意思的是PLC第二次和第三次运行。 按钮是自复位按钮,不会一直接通。取决于PLC运行整个程序的时间,按钮可能会在第二、第三个或第四个周期断开。
直接看下按钮断开的第一个扫描周期。
这时,输出依然为1,因为上个周期按钮是按下接通的。PLC在这个周期依然读取输入,并存入到存储字节中。所以I0.0现在保存为0.以I0.0为条件的常开指令运算结果为0。
如图所示,还有另一个常开指令与之并联。这个是以输出的内存位作为条件,因为输出现在为1,所以这条指令运算结果为1. 只要输出的内存位为1,就一直有输出,输出作为了自己的运算条件。
自锁指令与另一条指令平行放置,是为了形成OR条件。后面会详细叙述。需要知道的是I0.0或Q0.0必须有一个为真,输出才会是真。
刚学了如何通过PLC程序实现一个功能,一个按钮控制输出。上面例子中的输出可以连接接触器给一个风机供电。输出会自锁。
但出现了一个实际问题,如何停止风机?
要实现能停止输出,最简单的方法是增加一个停止按钮。然后按钮连到另一个输入,输入对应内存为I0.1
问题来了,停止按钮应该使用什么指令呢?更重要的是,应该放到梯形图的哪个位置呢?
第一问题,我们介绍另一种梯形图指令:断检测(常闭开关)
符号如下图所示:
断检测指令这条指令和通检测指令工作方式正好相反。指令运算结果会反转条件。即,如果条件为0,则结果为1,反之,如果条件为1,则结果为0.
仔细回想下,这正是我想要的停止按钮的工作方式,要想关闭输出,我们必须让输出的条件为0.
第二个问题,放哪?
必须放到自锁指令的后面。也就是并联部分的后面。否则,即使停止按钮按下,自锁部分仍然为1。
现在,梯形图完成如下:
XIO停止的自锁上图可以看到,该指令反转了输出的条件,打断了自锁回路。要再次输出,再按开始按钮即可。
上面的例子中,停止按钮使用了通检测(常闭)指令。
实际应用中这并不是太好。
因为要让停止按钮在按下时起作用,必须使用一个常开按钮。可以阅读我的文章 为什么停止按钮必须使用常闭开关。简单说,就是确保连接到按钮的线断后系统可以停止。
根据实践经验改进后,梯形图逻辑如下图所示:
带有停止的自锁逻辑虽然改变了指令,梯形图功能没有变化,因为我们也同时改变了真实按钮的工作方式。
现在你应该知道了启动、保持、停止逻辑,但实现的方式有很多种,自锁不是唯一的方式。
待续...
本梯形图教程后期会更新更多的学习资料。