PLC梯形图编程入门

2023-05-16

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

在这个教程中,我们将学习关于使用梯形图进行PLC编程的有关知识。现在,让我们开始吧!

什么是梯形图

梯形图是一种PLC编程语言,也被称为梯形逻辑(Ladder Logic)。之所以称为梯形图,是因为
这种程序由一条条水平线构成,看起来很像梯子。

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

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

如何阅读梯形图

梯形图和电路图的一个区别在于编制绘制方法不同。梯形图通常从左到右、从上到下编制,
原因在于:

1.更容易读图

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

2.易于在计算机上编制

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

3.执行的顺序

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

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

  • PLC每次执行梯形图的一行,然后才继续下一行
  • 电气系统则是许多回路同时激活

了解了这些关键的区别,现在让我们开始学习梯形逻辑。

梯形图基础

创建梯形图时,你首先看到的就是两条竖线,就是在这两条竖线之间进行梯形图的编制,其中
每一条水平线被称为一个Rung(横线):

在这里插入图片描述

梯形逻辑符号就放置在这些水平线上,正如你在上图中看到的,我在每一个水平线上标记了数字,
以便于理解PLC是如何执行梯形逻辑的。你可能听说过PLC扫描时间或扫描周期,简单地说,PLC首先
扫描其输入,然后执行程序,最后设置输出。

但是PLC如何执行我们的梯形逻辑?

一次一条水平线。

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

编写梯形逻辑

梯形逻辑中的每个符号都是一个指令,初看起来这相当令人困惑。但是别担心,我将用简单的例子
加以解释。让我给你一个简单的实例,在这个例子当中将引入两个梯形逻辑符号。

那么,这些符号或指令到底是什么?

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

在这里插入图片描述

闭路检查指令

第一个指令被称为闭路检查,指令的符号看起来是这样:

在这里插入图片描述

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

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

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

需要指出的是,每个闭路检查指令必须要设置PLC中的一个地址。

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

其工作原理如下:

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

输出线圈指令

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

在这里插入图片描述

输出线圈指令用来打开或关闭一个数据位。

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

让我们检查下该指令的最终结果,来了解其工作过程:

  1. PLC 扫描 | 输入 -> I0 字节
  2. 程序执行 | I0.0 -> Xic结果

在这里插入图片描述

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

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

最后,让我们看这条线的输出:

  1. XiC结果 -> 输出线圈
  2. 输出线圈 -> 输出字节

现在,输出线圈指令使用了前序指令的结果作为条件。这被称为RLO(逻辑操作结果)。逻辑操作
结果保存在PLC内存中的特定位置。在西门子S7系列PLC中,这个位置被称为状态字。

在PLC术语中,一个WORD是16位,或2个字节。

输出线圈指令很简单,它只是将其结果设置为与条件相同的值。

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

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

扫描周期这个概念非常重要,当你在编制梯形逻辑时一定要记住。否则你的程序可能会有
奇怪的行为。我们将在下一个示例中展示这一点,同时引入3个新的梯形逻辑指令。

输出锁存

在前面的示例中,我们学会了如何读取数字输入的状态,并将数字输出设置为同样的状态。
需要指出数字输入是一个暂态按钮,因为它内部有个弹簧,这意味着按钮只有在你一直按下
时才会保持激活。

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

在梯形逻辑中,有两种办法实现这一点:

在这里插入图片描述

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

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

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

让我们进入按钮释放之后的第一个扫描周期。

输出还处于激活状态,因为上一个扫描周期按钮被按下。这时PLC将再次读取输入并存入对应
的内存位。内存位I0.0”这次将存入“0”。因此I0.0的闭路判断指令结果为false或“0”。

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

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

开路检查指令

你刚学习了如何编制一个有用的PLC梯形图程序。一个激活输出的按钮。在我们的示例中,这个
可能是连接到一个风机的触点,输出可以自保持。

但是这个程序有个问题,怎么关掉风机?

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

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

第一个问题的答案是另一个梯形逻辑指令:开路检查指令,它看起来如下:

在这里插入图片描述

这个指令和闭路检查指令的工作方式恰恰相反,其结果是条件的反转。这意味着,如果条件
为“0”,那么结果为“1”,反之亦然。

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

现在是第二个问题,在哪里放置这个指令?

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

现在,梯形逻辑如下:

在这里插入图片描述

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

在上面的示例中,我使用了一个开路判断指令作为停机按钮。这不是好的实践!

我们最终遵循最佳实践,修改后的梯形图如下:

在这里插入图片描述

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

原文链接:http://blog.hubwiz.com/2018/12/10/plc-programming-ladder-logic/

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

PLC梯形图编程入门 的相关文章

  • PLC中相关量的斜坡控制

    转载于 https www cnblogs com chenpan6227 p 11558750 html
  • 能不能用计算机代替plc,把电脑当作PLC设备使用可以吗

    1 PLC和电脑有着本质的差别 xff0c 两者适用的领域不同 正所谓 术业有专攻 xff0c PLC和电脑有着本质的差别 PLC是可编程控制系统广泛应用于工业自动化生产中 PLC是科学家们专门为工业领域研发的专业设备 xff0c 一般来说
  • 台达PLC与单片机的通讯

    最近由于工作需要用PLC与单片机通讯 xff0c 以此用PLC来控制单片机 xff0c 使单片机作为一个IO扩展模块来使用 这是第一次尝试自己写代码来使两个器件通讯 xff0c 故在此做一下笔记 xff0c 顺便巩固一下在这个过程中所学到的
  • PLC为什么会被上位机取代

    随着我们进入高速发展的轨道 xff0c 许多工厂都已经完成了自动化流水线生产的打造 我们可以看到很多大厂已经搭建了智能生产线 所以越来越多的plc工程师开始感觉到 xff0c 只会传统的plc控制 xff0c 已经无法满足公司的企业发展业务
  • 西门子S7-200 SMART系列PLC接线大全

    西门子S7 200 SMART系列PLC接线大全 西门子S7 200 SMART系列PLC接线大全 xff0c 电器人必须收藏 xff01 xff01 xff01 输出 模块 负载
  • 高学历毕业生,该学单片机还是plc?

    高学历毕业生 xff0c 该学单片机还是plc xff1f 研究生阶段 xff0c 使用欧姆龙和西门子的PLC做过一些商用的项目 xff0c 但是在课题研究过程中因为偏向于控制算法的落地实现 xff08 借助SOC 43 FPGA xff0
  • PLC是如何控制伺服电机的?

    在回答这个问题之前 首先要清楚伺服电机的用途 相对于普通的电机来说 伺服电机主要用于精确定位 因此大家通常所说的伺服控制 其实就是对伺服电机的位置控制 其实 伺服电机还用另外两种工作模式 那就是速度控制和转矩控制 不过应用比较少而已 速度控
  • 关于PLC与编码器的接线问题

    上个月做老师的一个项目 遇到一个关于用西门子S7 200SMART读取三个ABZ三线制增量型编码器的问题 当时因为实验室当时就一个编码器 读取没问题 但是去现场接完线之后 发现只能读出两个编码器的数值 并且数值和方向都不稳定 一会电机正转是
  • 三菱PLC快速写入

    通常的写入过程是把整个PLC的程序内存进行写入 然而大多编写程序往往并不需要写入全部内存 所以我们需要通过调整PLC内存容量达成只写入适量的步数程序 来避免不必要的写入时间 调整程序容量 如图打开工程栏的参数 双击PLC参数来到FX参数设置
  • 西门子PLC内部的数据类型大全

    西门子PLC的数据类型种类繁多 本文进行了收集 并指明了适用范围 长度 供需要进行数据采集和分析的朋友们参考 本表格整理自博图V14 不保证更高级版本不会新增数据类型 请使用中注意 类别 数据类型 长度 位 长度 字节 S7 300 400
  • S7-1200 PLC的数据类型

    S7 1200 PLC的数据类型 除了基本数据类型之外 还支持一些复杂的数据类型 包括结构数据类型Struct PLC数据类型UDT 数组Array 系统数据类型SDT 硬件数据类型DB ANY 参数数据类型Variant String和C
  • 【自用】西门子s7-200连接显示屏和物联网盒子完整配置过程

    总览 1 PLC配置 2 显示屏配置 3 物联网盒子配置 一 PLC配置 1 连接PLC软件 STEP 7MicroWIN V4 0 SP9完整版 链接 https pan baidu com s 17LMEXnbkQZMPI8Bte24E
  • Movicon/Connext设备连接实例(四)——Movicon.NExT与西门子1200PLC 以太网通讯

    Movicon Next是全新一代的HMI SCADA解决方案 拥有众多超越传统的扩展功能 Movicon平台有着广泛的应用场景 且在众多行业中继承了优秀的解决方案 得到了市场广泛认证 针对不同的行业都能对快速找出解决方案并快速部署 且整个
  • C# 三菱FX PLC XYS读写,串口读写

    花了两三天写了一个这个 本来想着自己用的 看到有很多替代品 果断开源了吧 下载地址 https github com t39q MitsubishiFX PLC XYS 以下是原理 后面有帮助类和调用方法 调用方法 private void
  • 西门子PLC的编程语言的数据类型有哪些

    西门子PLC的编程语言支持多种数据类型 以下是常见的数据类型 1 位 Bit 0或1的数据类型 2 字节 Byte 有8位 Bit 组成的数据类型 3 整型 Integer 有符号的16位整数 2字节 4 双字 Double Word 无符
  • 西门子、三菱指令大全

    一 西门子PLC编程指令 1 位逻辑指令 1 1 常开接点 地址 1 2 常闭接点 地址 1 3 XOR 位异或 1 4 NOT 信号流反向 1 5 输出线圈 1 6 中间输出 1 7 R 线圈复位 1 8 S 线圈置位 1 9 RS 复位
  • PLC程序的基本组成和编程语言

    一般情况 PLC程序由主程序 多个子程序 多个中断服务程序等三部分组成 这三部分被组织在一起 经过编译可以下载到PLC中运行 如下图就是一个简单的例子 MAIN是主程序 SBR0是子程序 可以被MAIN调用 运行在一个循环中 中断服务程序独
  • PLC学习札记

    PLC概念相关 PLC编程 PLC系统 通过了解概念 知道了plc的核心是对继电器编程 什么是继电器 继电器 最后 阅读PLC指导手册 结合之前学习的知识 融会贯通 PLC编程手册 FX系列 pdf 指令表运行机制 仅限于本项目
  • 自己写的PLC编程软件,和FANUC PMC功能基本保持一致

    自己写的PLC编程软件 和FANUC PMC功能基本保持一致 下载地址 免积分 链接 pan baidu com s 162 GcF7wh SNT3McATPPmg 提取码 1234 https download csdn net down
  • 使用梯形图程序将 TCP/IP 消息从 PLC 发送到 PC

    考虑以下梯形图程序 该程序检查连接是否已启用 A202 00 然后从 PLC 向 PC 发送消息 文档 Omron CX Programmer 严重缺乏对程序约定的解释 我不明白的是 从一个节点向另一个节点发送消息 我应该需要指定接收者 I

随机推荐

  • RFID ACCESS CONTROL门禁密码修改

    1 必须先进入编程方式 xff1a 按 xff3b xff3d xff0b xff3b 6位编程密码 如012345 xff0c 忘记编程密码参考第6步重置 xff0c 嘟嘟两声响 xff0c xff08 红灯闪烁 xff0c 绿灯长亮 出
  • 【论文笔记】SphereFace: Deep Hypersphere Embedding for Face Recognition

    参考文献 xff1a Liu W Wen Y Yu Z et al SphereFace Deep Hypersphere Embedding for Face Recognition J arXiv preprint arXiv 1704
  • vue3项目使用node连接数据库(前后端分离)

    学习关键语句 xff1a vue连接mysql数据库 vue项目连接后台数据库配置 vue通过node连接MySQL数据库 写在前面 为了快速学习nodejs制作后端并和数据库进行交互的方法 所以赶紧写一篇这样的文章出来 如果你对这篇文章中
  • 机器学习实战-64:线性判别分析降维算法(Linear Discriminant Analysis)

    机器学习实战 64 线性判别分析降维算法 深度学习原理与实践 开源图书 总目录 xff0c 建议收藏 xff0c 告别碎片阅读 xff01 机器学习分为监督学习 无监督学习和半监督学习 强化学习 无监督学习最常应用的场景是聚类 cluste
  • 计算机硬件基础与实践探知

    计算机硬件的五大单元 在介绍计算机硬件基础之前 xff0c 我们必须了解一下计算机硬件的五大单元 xff0c 注意这里说的是硬件的五大单元并不是计算机五大单元 输入设备 无论是计算机五大单元还是计算机硬件的五大单元 xff0c 这其中必须包
  • 去除Google Chrome新标签页中的8个缩略图

    在Google Chrome中 xff0c 新建空白页时 xff0c 会显示如下缩略图 xff0c 并且会看到最近的一些访问记录 xff1a 对于本人自己感觉不是很美观 xff0c 我喜欢更简洁的界面 xff0c 而且也看不全我喜爱的背景图
  • 面对百亿数据,Hbase为什么查询速度依然非常快?

    HBase适合存储PB级别的海量数据 xff08 百亿千亿量级条记录 xff09 xff0c 如果根据记录主键Rowkey来查询 xff0c 能在几十到百毫秒内返回数据 那么Hbase是如何做到的呢 xff1f 接下来 xff0c 介绍一下
  • Laravel视图blade模板使用集合

    var 打印内容 var or 39 default 39 打印内容并带一个默认值 var 打印转义内容 Comment 注释 64 extends 39 layout 39 继承模板 layout 64 if condition if开始
  • Plotly安装与使用方法

    Plotly是新一代的Python数据可视化开发库 xff0c 它提供了完善的交互能力和灵活的绘制选项 本文将介绍新手如何安装plotly并编写第一个plotly绘图程序 xff0c 以及使用plotly绘制常见的5种数据图表 与Matpl
  • MOSFET数字孪生实战【Python】

    本文将介绍如何使用 Python 构建电子开关 xff08 晶体管 xff09 的数字孪生 1 什么是数字孪生 xff1f IBM 将数字孪生定义如下 数字孪生是一种旨在准确反映物理对象的虚拟模型 xff0c 并指出创建数字孪生的主要促成因
  • Python三维地址建模教程【Gempy】

    Gempy 是一个开源 Python 库 xff0c 用于生成完整的 3D 结构地质模型 该库是从界面 断层和层方向创建地质模型的完整开发 xff0c 它还关联地质层序列以表示岩石侵入和断层顺序 地质建模算法基于通用协同克里金插值法 xff
  • 10个值得收藏的ChatGPT辅助编程技巧

    在我们开始之前 xff0c 你必须先了解编程语言 xff0c 然后才能相信 ChatGPT 抛给你的任何东西 我必须明确这一点 xff0c 因为许多误入歧途的绵羊被告知 ChatGPT 是新的圣杯 xff0c 开发人员将被淘汰 推荐 xff
  • Stable Diffusion - API和微服务开发

    Stable Diffusion 是一种尖端的开源工具 xff0c 用于从文本生成图像 Stable Diffusion Web UI 通过 API 和交互式 UI 打开了许多这些功能 我们将首先介绍如何使用此 API xff0c 然后设置
  • 软件行业的最后十年【ChatGPT】

    在这篇文章中 xff0c 我将说明像 ChatGPT 这样的生成式人工智能 GAI 将如何在十年内取代软件工程师 预测被离散化为 5 个阶段 xff0c 总体轨迹趋向于完全接管 但首先 xff0c 一个简短的前言 推荐 xff1a 用 NS
  • 30个最常用的空间SQL用例

    在开始使用空间 SQL 时 xff0c 至少对我而言 xff0c 最大的挑战之一是拥有一个快速简便的参考 xff0c 以将你当前的 GIS 工作流转换为 SQL 有许多令人惊叹的资源可以扩展这方面的知识 xff0c 但本指南旨在成为一本真正
  • Chroma向量数据库

    嵌入向量 xff08 vector embedding xff09 是表示任何类型数据的 A I 原生方式 xff0c 使它们非常适合与各种 A I 驱动的工具和算法一起使用 它们可以表示文本 图像 xff0c 很快还可以表示音频和视频 有
  • 几何深度学习 - 利用几何先验知识的深度学习

    深度学习很难 虽然通用逼近定理表明足够复杂的神经网络原则上可以逼近 任何东西 xff0c 但不能保证我们可以找到好的模型 尽管如此 xff0c 通过明智地选择模型架构 xff0c 深度学习取得了巨大进步 这些模型架构对归纳偏差进行编码 xf
  • 胶囊网络(Capsule Network)的TensorFlow实现

    现在我们都知道Geoffrey Hinton的胶囊网络 xff08 Capsule Network xff09 震动了整个人工智能领域 xff0c 它将卷积神经网络 xff08 CNN xff09 的极限推到一个新的水平 网上已经有很多的帖
  • 【laravel5.1】Blade模板继承简要使用

    模板继承什么用 xff1f 自然是增强基础页面的复用 xff0c 有利于页面文档的条理 xff0c 也便于更改多处使用的内容 xff0c 如页头 页脚 1 用法概要 64 include 39 common header 39 包含子视图
  • PLC梯形图编程入门

    梯形图 xff08 LAD xff09 是PLC编程的最佳可视化语言 xff0c 它看起来非常类似于继电器电路图 xff0c 因此如果 你对继电器控制和电子电路有所了解的话 xff0c 那么学起来会非常容易 xff01 在这个教程中 xff