热门标签 | HotTags
当前位置:  开发笔记 > 程序员 > 正文

PLC编程梯形图方法是什么

这篇文章主要介绍“PLC编程梯形图方法是什么”,在日常操作中,相信很多人在PLC编程梯形图方法是什么问题上存在疑惑,小编查阅了各式资料,整理

这篇文章主要介绍“PLC编程梯形图方法是什么”,在日常操作中,相信很多人在PLC编程梯形图方法是什么问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”PLC编程梯形图方法是什么”的疑惑有所帮助!接下来,请跟着小编一起来学习吧!

1、置位/复位指令

set/reset指令在AB的术语中被称为latch/unlatch,其作用就是让你不使用触点就实现锁存功能。因此你可以在梯形逻辑中只使用一个指令就设置输出,然后在另一个地方复位线圈。

set或latch指令的符号如下:

PLC编程梯形图方法是什么

reset或unlatch指令的符号如下:

PLC编程梯形图方法是什么

set/reset指令包含两个线圈,但是控制同一个地址位。当你给set线圈一个脉冲时,该地址位将置位,与普通线圈的区别在于,set线圈将一直保持,直到使用reset线圈复位。

当你在构建包含上千点位的大型PLC程序时,或者连接到一个SCADA系统时,确保你了解在哪里置位,又在哪里复位。

1.1 置位或复位的优先级

使用两个线圈来实现set/reset功能带来了一个新问题:

哪个线圈的优先级高?

当set和reset的条件都是true时,线圈的状态最终是什么?

PLC最后执行的哪个,结果就是哪个

如果你在一个网络中置位/set了线圈,然后在下面的网络中复位/reset,那么线圈将复位。记住,PLC是从上到下依次执行梯形逻辑指令的。

1.2 置位/复位函数块

实现set/reset功能的另一种方式是使用函数块,函数块不仅可以用于梯形逻辑,也可以用于函数块图和结构化文本代码中。

  • SR函数块

第一个函数块被称为set优先的单稳模块,或者SR或set/reset函数块。set具有最高的优先级,意思是当set和reset的条件同时为真时,输出将置位。

SR函数块的符号如下:

PLC编程梯形图方法是什么

它有两个输入:一个用于置位/set,一个用于复位/reset。在另一侧则有一个输出。

  • RS函数块

另一个函数块被称为RS或reset优先的单稳模块。基本上它和SR的工作原理一样,区别在于reset的优先级最高:

PLC编程梯形图方法是什么

2、梯形图逻辑实战

我们已经学习了一些梯形图的基础知识和常用指令,是时候开始实现一些真正的任务了。

因为要成为一个优秀的PLC梯形图程序员,只了解指令是不够的,必须要能够使用梯形逻辑来解决实际问题。现在让我们看一下如何使用梯形图开发PLC程序来解决现实世界的问题。

当我在使用梯形逻辑解决问题时,喜欢思考的一件事就是从条件的角度去思考,这通常被成为组合式逻辑,你可能也听说过这个,或者至少了解逻辑门吧 —— 与、或、非等等。

我要给出的第一个实例是互锁逻辑的实现。因为使用简单的指令你就可以实现互锁功能。

在很多PLC程序中都会用到互锁,因为它可以避免不相容的情况同时激活。一个经典的案例就是star/delta电机的控制。如果你在用PLC控制一个star/delta电机,你必须保证当delta继电器的输出激活时,star继电器的输出一定不能激活。

2.1 start/stop逻辑示例

让我们看一下两个电机的互锁示例,要求在同一时刻只有一个电机可以运转。每个电机都有一个start按钮和stop按钮,分别用来启动和停止电机。

PLC编程梯形图方法是什么

电机的启动和停止可以使用前面介绍的set/reset指令实现。

每个电机的启动和停止按钮的第一个条件当然是电机启动或停止的条件。由于电机可以处于两种状态之一,我们需要检查这两种状态:

如果按下启动按钮 AND 没有按下停止按钮 那么激活电机

如果按下停止按钮 那么停止电机

由于电机只可能处于这两种状态,我们只需要检查电机激活的条件。因为如果这些条件都不满足,那么电机将不会激活。

我们也可以添加锁定功能:

如果按下启动按钮 OR 电机处于运转状态 AND 没有按下停止按钮 那么激活电机

需要注意的一点是,我们已经将功能分解为逻辑实现:

PLC编程梯形图方法是什么

你可以看到,这些逻辑关系可以使用梯形逻辑很轻松地实现。

2.2 使用梯形图实现与/AND、或/OR逻辑

启动按钮和电机状态的逻辑关系是或/OR,当启动按钮或电机状态这两个条件之一为真时,电机都将被激活。

在梯形逻辑中,或/OR逻辑使用两个并联的指令来实现:

or-gate-ladder-logic-1.png

PLC编程梯形图方法是什么

另一方面,要让电机保持激活,就不能按下停止按钮。但是启动按钮和电机状态,和停止按钮的 关系是与/AND,因为要保持电机激活,就要求满足启动条件同时不能按下停止按钮。

与/AND逻辑使用指令的串联来实现:

PLC编程梯形图方法是什么

梯形图逻辑的一个优势就是你可以图形化的实现逻辑。因为如果你在每个网络中沿着线从左向右看,就可以了解指令间的逻辑关系。

或/OR逻辑总是有两个选项,因此会有两条线,与/AND只有一个选项,因此只有一条线。

2.3 使用梯形图实现非/NOT逻辑

上面示例中还有一种逻辑关系没有介绍。要保持电机激活,就不能按下停止按钮,为此我们需要使用非/NOT逻辑。

非/NOT逻辑可以使用反触点来实现:

PLC编程梯形图方法是什么

下面我们使用一个常规的闭合继电器来表示停止按钮,因此就实现了逻辑的翻转:

PLC编程梯形图方法是什么

2.4 使用梯形图实现互锁逻辑

当然这部分梯形逻辑只是一个电机的控制逻辑。在我们的实例中包含了两个电机,因此完整的 梯形图逻辑看起来是这样:

PLC编程梯形图方法是什么

现在我们至少还需要实现两个电机的互锁,互锁也可以视为逻辑。

实际上,如果你把互锁视为逻辑,那么就很容易实现它,因为电机互锁只需要一个额外的条件:另一个电机处于停止状态。 因此如果电机1#要激活,电机2#就不能激活,反之亦然:

如果按下1#电机启动按钮 OR 1#电机运行中 AND 没有按下1#电机的停止按钮 AND 2#电机没有运行 那么激活1#电机

如果按下2#电机启动按钮 OR 2#电机运行中 AND 没有按下2#电机的停止按钮 AND 1#电机没有运行 那么激活2#电机

只需要在梯形图中增加一个反向继电器:

PLC编程梯形图方法是什么

这个简单的示例展示了如何将一个现实的问题分解为逻辑步骤,然后用梯形图编制PLC程序来解决这个问题。但是这些逻辑关系不仅仅 用于常规的开闭指令,它们也可以用于很多不同的PLC指令,例如计数器和定时器。

2.5 梯形图逻辑实现练习题:互锁的实现

这个教程的核心就在于,你可以学会如何实现梯形逻辑。现在是做练习的时候了:

  • 功能需求

3个电机的启动/停止控制,最多只有2个电机可以同时运行。例如如果2#电机和3#电机在运行,那么就不能 启动1#电机。

  • 输入

PLC编程梯形图方法是什么

  • 输出

PLC编程梯形图方法是什么

希望你喜欢这个练习,并从中学到一些东西。

这个练习引入了另一个问题,这将引导我们学习下一个梯形逻辑指令。问题不在于梯形逻辑本身, 而是由于连接到输入的按钮引起的。

3、信号沿单触发指令

通常你希望操作员只会按一下启动按钮或者停止按钮 - 很短暂地按一下。但是现实情况是, 操作员会按住按钮很长时间,另一种情况是按钮按下后被卡住了,这种常见的硬件故障也会 影响PLC程序的运行。

如果某个电机的停止按钮被卡住,那么你就无法再启动这个电机了。事实上,当你在PLC上使用 暂态按钮时,这是一个经常遇到的问题。

不过别担心,我们有办法解决这个问题,幸运的是有针对这个问题的现成的梯形逻辑指令, 单触发指令。

3.1 上升沿检测

现在该学习新的指令了。我将介绍第一种类型的单触发指令 - 上升沿检测指令,R_TRIG, 在某些平台上,例如AB,这个指令被称为OSR - 上升沿单触发

正如名称所表达的,这些梯形逻辑指令检查一个数字信号的上升沿,这意味着他们将只检查 数字信号中从0到1的变化。

这是一个数字信号上升沿的图示:

PLC编程梯形图方法是什么

信号的长度是无关紧要的,因为我们只检查信号状态中发生的变化。因此,这些用来检测上升沿的 梯形逻辑指令完美匹配启动按钮和停止按钮的使用需求。

  • 上升沿触点与线圈

上升沿检测继电器看起来与常开触点类似,实际上它使用相同的符号,只是多了一个P在中间:

PLC编程梯形图方法是什么

上升沿触点的功能也有所不同,因为这个指令不是检查某个点位的状态,而是检查该点位状态 的变化,或者更确切地说是一个正向的从0到1的变化。

现在,由于这个指令仅仅查看点位的状态变化,因此即使按钮卡住,由于卡住后状态不再变化, 也就不会在后续的扫描周期中持续激活。这也是这些指令被成为单触发指令的原因。

PLC编程梯形图方法是什么

正如你看到的,这个指令只会在正向变化发生时给出一个脉冲。

最后,你也会看到上升沿检测线圈:

PLC编程梯形图方法是什么

它和上升沿触点功能一样,只是它是线圈而已。

  • R_TRIG函数块

你也可以使用一个函数块来实现上升沿检测,这个函数块被成为R_TRIG,是一个标准的PLC指令。

3.2 下降沿检测

和上升沿一样,也有用来检测下降沿的指令,或者成为F_TRIG。AB称之为下降沿单触发或OSF指令。

类似的,下降沿单触发检查信号状态中从1到0的变化,如下图所示:

PLC编程梯形图方法是什么

下降沿检测非常有用,例如可以用来检测设备的关闭。

  • 下降沿触点和线圈

下降沿指令包括下降沿触点和下降沿线圈。它们被称为单触发指令是因为只有在状态从1迁移到0时 才会激活。

PLC编程梯形图方法是什么

取决于你要在梯形逻辑中检测下降沿的位置,可以使用触点或线圈:

PLC编程梯形图方法是什么

下降沿指令的一个典型应用场景就是,你需要检测一个设备的停止,以便启动另一个设备。例如一个加热设备和两个风扇, 当一个加热设备运行时需要同时运行某个风扇,但是当加热设备关闭后,就需要立即运行第二个风扇以便加速冷却。

你可以在梯形逻辑练习3中尝试解决这个问题,看看是否需要使用下降沿指令。

  • F_TRIG函数块

你也可以使用一个函数块来实现下降沿检测,这个函数块被成为F_TRIG,是一个标准的PLC指令。

又学习了不少只是,是时候做练习了。在我的观点中,学习最好的方法就是解决问题。在这些 练习中你将使用上升沿和下降沿检测指令。但是首先要记住单触发指令仅在一个扫描周期有效。 如果你希望用它来启动需要长时间运行的东西,就需要锁定或使用set/reset指令。 .

3.3 梯形图逻辑实现练习题:上升沿检测

  • 功能需求

使用一个启动按钮和停止按钮来控制电机的启停,但是要确保只在上升沿启动或停止电机。

  • 输入

PLC编程梯形图方法是什么

  • 输出

PLC编程梯形图方法是什么

3.4 梯形图逻辑实现练习题:下降沿检测

  • 功能需求

使用一个启动和停止按钮来控制一个加热装置和一个风扇。当加热装置关闭后,启动第二个风扇。 当加热装置和第一个风扇都打开后,立刻关闭第二个风扇。

  • 输入

PLC编程梯形图方法是什么

  • 输出

PLC编程梯形图方法是什么

到此,关于“PLC编程梯形图方法是什么”的学习就结束了,希望能够解决大家的疑惑。理论与实践的搭配能更好的帮助大家学习,快去试试吧!若想继续学习更多相关知识,请继续关注编程笔记网站,小编会继续努力为大家带来更多实用的文章!


推荐阅读
  • Python 异步编程:深入理解 asyncio 库(上)
    本文介绍了 Python 3.4 版本引入的标准库 asyncio,该库为异步 IO 提供了强大的支持。我们将探讨为什么需要 asyncio,以及它如何简化并发编程的复杂性,并详细介绍其核心概念和使用方法。 ... [详细]
  • 深入理解C++中的KMP算法:高效字符串匹配的利器
    本文详细介绍C++中实现KMP算法的方法,探讨其在字符串匹配问题上的优势。通过对比暴力匹配(BF)算法,展示KMP算法如何利用前缀表优化匹配过程,显著提升效率。 ... [详细]
  • 本章将深入探讨移动 UI 设计的核心原则,帮助开发者构建简洁、高效且用户友好的界面。通过学习设计规则和用户体验优化技巧,您将能够创建出既美观又实用的移动应用。 ... [详细]
  • 利用存储过程构建年度日历表的详细指南
    本文将介绍如何使用SQL存储过程创建一个完整的年度日历表。通过实例演示,帮助读者掌握存储过程的应用技巧,并提供详细的代码解析和执行步骤。 ... [详细]
  • 自学编程与计算机专业背景者的差异分析
    本文探讨了自学编程者和计算机专业毕业生在技能、知识结构及职业发展上的不同之处,结合实际案例分析两者的优势与劣势。 ... [详细]
  • SQLite 动态创建多个表的需求在网络上有不少讨论,但很少有详细的解决方案。本文将介绍如何在 Qt 环境中使用 QString 类轻松实现 SQLite 表的动态创建,并提供详细的步骤和示例代码。 ... [详细]
  • 作为一名程序员,从大学步入职场后,常常感受到一种难以言喻的空虚感。这种感觉或许源于对生活的不满、职业发展的瓶颈,或是日常琐事带来的压力。本文将深入探讨这种复杂的情感,并尝试寻找解决之道。 ... [详细]
  • 深入解析:阿里实战 SpringCloud 微服务架构与应用
    本文将详细介绍 SpringCloud 在微服务架构中的应用,涵盖入门、实战和案例分析。通过丰富的代码示例和实际项目经验,帮助读者全面掌握 SpringCloud 的核心技术和最佳实践。 ... [详细]
  • 并发编程:深入理解设计原理与优化
    本文探讨了并发编程中的关键设计原则,特别是Java内存模型(JMM)的happens-before规则及其对多线程编程的影响。文章详细介绍了DCL双重检查锁定模式的问题及解决方案,并总结了不同处理器和内存模型之间的关系,旨在为程序员提供更深入的理解和最佳实践。 ... [详细]
  • 本文介绍如何解决在 IIS 环境下 PHP 页面无法找到的问题。主要步骤包括配置 Internet 信息服务管理器中的 ISAPI 扩展和 Active Server Pages 设置,确保 PHP 脚本能够正常运行。 ... [详细]
  • 理解存储器的层次结构有助于程序员优化程序性能,通过合理安排数据在不同层级的存储位置,提升CPU的数据访问速度。本文详细探讨了静态随机访问存储器(SRAM)和动态随机访问存储器(DRAM)的工作原理及其应用场景,并介绍了存储器模块中的数据存取过程及局部性原理。 ... [详细]
  • MySQL 数据库迁移指南:从本地到远程及磁盘间迁移
    本文详细介绍了如何在不同场景下进行 MySQL 数据库的迁移,包括从一个硬盘迁移到另一个硬盘、从一台计算机迁移到另一台计算机,以及解决迁移过程中可能遇到的问题。 ... [详细]
  • 阅读本文大约需要3分钟。微信8.0版本的发布带来了许多令人振奋的新功能,如烟花特效和改进的悬浮窗,引发了用户的热烈反响。 ... [详细]
  • 深入理解Java泛型:JDK 5的新特性
    本文详细介绍了Java泛型的概念及其在JDK 5中的应用,通过具体代码示例解释了泛型的引入、作用和优势。同时,探讨了泛型类、泛型方法和泛型接口的实现,并深入讲解了通配符的使用。 ... [详细]
  • 本文深入探讨了C++对象模型中的一些细节问题,特别是虚拟继承和析构函数的处理。通过具体代码示例和详细分析,揭示了书中某些观点的不足之处,并提供了更合理的解释。 ... [详细]
author-avatar
mobiledu2502862913
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有