0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

PLC中使用的编程语言介绍和学习方法

blackwatching 来源:玩转PLC工业机器人 作者:玩转PLC工业机器人 2022-12-09 10:57 次阅读
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

PLC目前有5种标准的编程语言,包括图形化编程语言和文本化编程语言。

图形化编程语言包括:

梯形图(LD-Ladder Diagram);

功能块图(FBD - Function Block Diagram);

顺序功能图(SFC - Sequential Function Chart)。

文本化编程语言包括:

指令表(IL-Instruction List)& 结构化文本(ST-Strutured Text)。

2870d13c-773e-11ed-8abf-dac502259ad0.jpg

IEC 1131-3的编程语言是IEC工作组 对世界范围的PLC厂家的编程语言合理地吸收、借鉴的基础上形成的一套针对工业控制系统的国际编程语言标准。它不但适用于PLC系统,而且还适用于更广泛的工业控制领域,为PLC编程语言的全球规范化做出了重要的贡献。

继电器梯形图(LD)

继电器梯形图(LD-Ladder Diagram)语言是PLC首先采用的编程语言,也是PLC最普遍采用的编程语言。

梯形图编程语言 是从继电器控制系统原理图的基础上演变而来的,与继电器控制系统梯形图的基本思想是一致的,只是在使用符号和表达方式上有一定区别。

2885c560-773e-11ed-8abf-dac502259ad0.jpg

PLC的设计初衷是为工厂车间电气技术人员而使用的,为了符合继电器控制电路的思维习惯。

作为首先在PLC中使用的编程语言,梯形图保留了继电器电路图的风格和习惯,成为广大电气技术人员最容易接受和使用的语言。

1.软继电器

PLC梯形图中的某些编程元件沿用了继电器这一名称,如输入继电器、输出继电器、内部辅助继电器等,但是它们不是真实的物理继电器,而是一些存储单元(软继电器),每一软继电器与PLC存储器中映像寄存器的一个存储单元相对应。

如果该存储单元为“1”状态,则表示梯形图中对应软继电器的线圈“通电”,其常开触点接通,常闭触点断开,称这种状态是该软继电器的“1”或“ON”状态。

如果该存储单元为“0”状态,对应软继电器的线圈和触点的状态与上述的相反,称该软继电器为“0”或“OFF”状态。使用中也常将这些“软继电器”称为编程元件。

2.能流

有一个假想的“概念电流”或“能流”(Power Flow)从左向右流动,这一方向与执行用户程序时的逻辑运算的顺序是一致的。

能流只能从左向右流动。利用能流这一概念,可以帮助我们更好地理解和分析梯形图。

3.母线

梯形图两侧的垂直公共线称为母线(Bus bar)。

在分析梯形图的逻辑关系时,为了借用继电器电路图的分析方法,可以想象左右两侧母线(左母线和右母线)之间有一个左正右负的直流电源电压,母线之间有“能流”从左向右流动。右母线可以不画出。

2893ec4e-773e-11ed-8abf-dac502259ad0.jpg

4.梯形图的逻辑结算

根据梯形图中各触点的状态和逻辑关系,求出与图中各线圈对应的编程元件的状态,称为梯形图的逻辑解算。

梯形图中逻辑解算是按从左至右、从上到下的顺序进行的。解算的结果,马上可以被后面的逻辑解算所利用。

逻辑解算是根据输入映像寄存器中的值,而不是根据解算瞬时外部输入触点的状态来进行的。

①与电气操作原理图相对应,具有直观性和对应性;

②与原有继电器逻辑控制技术相一致,对电气技术人员来说,易于掌握和学习;

③与原有的继电器逻辑控制技术的不同点是,梯形图中的能流(Power Flow)不是实际意义的电流,内部的继电器也不是实际存在的继电器,因此,应用时,需与原有继电器逻辑控制技术的有关概念区别对待;

④与指令表程序设计语言有一一对应关系,便于相互的转换和程序的检查。

功能块图(FBD)

功能块图(FBD - Function Block Diagram)采用类似于数字逻辑门电路的图形符号,逻辑直观,使用方便,它有梯形图编程中的触电和线圈等价的指令,可以解决范围广泛的逻辑问题。

28ae3a68-773e-11ed-8abf-dac502259ad0.jpg

①以功能模块为单位,从控制功能入手,使控制方案的分析和理解变得容易;

②功能模块是用图形化的方法描述功能,它的直观性大大方便了设计人员的编程和组态,有较好的易操作性;

③对控制规模较大、控制关系较复杂的系统,由于控制功能的关系可以较清楚地表达出来,因此,编程和组态时间可以缩短,调试时间也能减少。

顺序功能图(SFC)

顺序功能图(SFC - Sequential Function Chart)亦称流程图或状态转移图,是一种图形化的功能性说明语言,专用于描述工业顺序控制程序,使用它可以对具有并发、选择等复杂结构的系统进行编程。

28bde206-773e-11ed-8abf-dac502259ad0.jpg

①以功能为主线,条理清楚,便于对程序操作的理解和沟通;

②对大型的程序,可分工设计,采用较为灵活的程序结构,可节省程序设计时间和调试时间;

③常用于系统的规模较大,程序关系较复杂的场合;

④只有在活动步的命令和操作被执行,对活动步后的转换进行扫描,因此,整个程序的扫描时间较其他程序编制的程序扫描时间要大大缩短。

指令表

指令表(IL-Instruction List)编程语言类似于计算机中的助记符汇编语言,它是可编程控制器最基础的编程语言,所谓指令表编程,是用一个或几个容易记忆的字符来代表可编程控制器的某种操作功能。

28c395c0-773e-11ed-8abf-dac502259ad0.jpg

①采用助记符来表示操作功能,具有容易记忆,便于掌握的特点;

②在编程器的键盘上采用助记符表示,具有便于操作的特点,可在无计算机的场合进行编程设计;

③与梯形图有一一对应关系,其特点与梯形图语言基本类同。

结构化文本(ST) 结构化文本(ST-Strutured Text)是一种高级的文本语言,可以用来描述功能,功能块和程序的行为,还可以在顺序功能流程图中描述步、动作和转变的行为。

结构化文本语言表面上与 PASCAL语言很相似,但它是一个专门为工业控制应用开发的编程语言,具有很强的编程能力用于对变量赋值、回调功能和功能块、创建表达式、编写条件语句和迭代程序等。

28e02730-773e-11ed-8abf-dac502259ad0.jpg

①采用高级语言进行编程,可以完成较复杂的控制运算;

②需要有一定的计算机高级程序设计语言的知识和编程技巧,对编程人员的技能要求较高,普通电气人员无法完成。

③直观性和易操作性等性能较差;

④常被用于采用功能模块等其他语言较难实现的一些控制功能的实施。

提示注意:不是所有的PLC都支持所有的编程语言(如功能块图、顺序功能图就有很多低档PLC不支持),而大型的PLC控制系统一般都支持这5种标准编程语言或类似的编程语言。

28fff5f6-773e-11ed-8abf-dac502259ad0.jpg

还有一些标准以外的编程语言,它们虽然没有被选择进标准语言中,但是它们是为了适合某些特殊场合的应用而开发的,在某些情况下,它们也许是较好的编程语言。

比如D7-SYS的连续功能图CFC就是专为大型连续工艺控制而开发,只要调用程序中的CFC功能块就可以轻易实现象PID控制器、计数器、定位器、斜坡函数发生器等一系列特殊功能,而且不需要专门的编程知识,只需要懂得图形化处理和标准程序块的使用,进行简单的设置即可。

聊聊PLC的学习方法

1、学习PLC编程需要坚强的毅力和足够的耐心

人各有所长。有些人把编程看作一项冗长而枯燥的工作;有些人把编程看作一项趣味的智力游戏。如果你是前者,强烈建议你远离这份工作。

毕竟编程工作是对人的毅力和耐心的挑战,编程需要经历无数次的试错,调试-修改-调试-修改…经过无数次失败后,当看到PLC按照自己的控制要求有条不紊的运行时,你将得到极大的成就感,这就如同打通了一个游戏的关口,那种感觉是一样的。

2、学习PLC编程需要敢于实践的信心

很多初学者往往是出于一种畏惧,担心损坏设备,而不敢进行实际操作。其实这些畏惧是没有任何道理的,只要你仔细的阅读手册,遵循标准的规范去接线实操的,都不会出什么问题。

不必担心自己写的程序会有什么问题,会影响PLC的正常工作,程序有没有问题,只有让PLC运行了才能发现。所以,要有敢于实践的信心,大胆的实践是PLC编程的必由之路。

3、编程需要有缜密的逻辑思维

编程本身就是一种逻辑思维过程。

最初的PLC是用来替代继电器逻辑电路的,所以继承了继电器电路以触点作为触发条件的描述方式。

在PLC中,以虚拟触点代替了继电器触点,而继电器电路所表达的逻辑关系还是被完整的保留下来。所以,要理顺对象之间的逻辑关系,要有缜密的逻辑思维。

4、养成良好的编程习惯

每个人编程都会有不同的习惯和特点,不能强求一致。但是一些好的习惯还是应该为大多数人所遵循。

①理顺逻辑关系、时序关系,编制程序框图;

②合理分配主程序、子程序和中断程序;

③合理分配寄存器,编制寄存器符号表。

PLC的很多操作都是直接针对寄存器的,如果在程序中出现不合理的寄存器地址重叠,可能会造成程序错误。

编制寄存器符号表不仅可以避免上述问题,而且可以使程序具备更好的可读性。

PLC提供了丰富的指令、模块,初学者编程时应尽量先使用简单的指令达到目的,这对你理解那些较为复杂的指令会有帮助,具备了一定经验后,应该考虑掌握复杂指令的应用,以及程序的优化。

5、有一定的程序设计基础知识

有一定的程序设计基础知识,以及弄通有关PLC程序设计理论是重要的。

没有这方面的理论准备或指导,仅靠在实践中摸索,简单的问题还好办,复杂的就不好办了,不仅无从下手,而且花了很多时间与精力,也难编出质量也较高的程序,常常是事倍功半。

任何理论也都只是经验的总结,归根到底也都是来自实践。

审核编辑:郭婷

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 继电器
    +关注

    关注

    133

    文章

    5531

    浏览量

    153754
  • plc
    plc
    +关注

    关注

    5045

    文章

    14439

    浏览量

    483485
  • 编程语言
    +关注

    关注

    10

    文章

    1959

    浏览量

    38893

原文标题:西门子PLC编程语言介绍,新手必备~

文章出处:【微信号:玩转PLC工业机器人,微信公众号:玩转PLC工业机器人】欢迎添加关注!文章转载请注明出处。

收藏 人收藏
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

    评论

    相关推荐
    热点推荐

    为什么单片机还在用C语言编程

    最适合单片机开发的编程语言实在太过晦涩难懂,学习起来非常的不方便,并且每一种单片机的汇编指令有很大区别,所以想把一个程序从这种单片机移植到另一种单片机简直是痴心妄想,重新写一遍程序还来得轻松,时间还快
    发表于 11-28 07:37

    C语言的printf基本用法介绍

    , c=%c, money=%fn\", 100, \'@\', money); return 0; } 输出结果与上面相同。 在以后的编程中,我们会经常使用 printf,说它是C语言中使
    发表于 11-12 07:04

    一文了解Mojo编程语言

    Mojo 语言的具体介绍: 核心特点 Python 兼容性 Mojo 支持大部分 Python 语法和标准库,可直接调用 Python 生态系统中的库,降低了学习成本。 极致性能优化 通过静态编译
    发表于 11-07 05:59

    ARM入门学习方法分享

    。 以下是一些入门学习方法的分享: 一、 理解基本概念:首先,了解ARM是什么以及它的基本概念是很重要的。ARM(Advanced RISC Machines)指的是一种精简指令集计算机(RISC
    发表于 07-23 10:21

    第一章 W55MH32 高性能以太网单片机的学习方法概述

    本章介绍W55MH32的学习方法,建议先了解硬件资源,按基础篇、入门篇循序渐进学习。参考两份手册,提供例程资料,还给出官网、github 等学习资料查找渠道。让我们一起踏上W55MH3
    的头像 发表于 05-26 09:07 528次阅读
    第一章 W55MH32 高性能以太网单片机的<b class='flag-5'>学习方法</b>概述

    使用MATLAB进行无监督学习

    无监督学习是一种根据未标注数据进行推断的机器学习方法。无监督学习旨在识别数据中隐藏的模式和关系,无需任何监督或关于结果的先验知识。
    的头像 发表于 05-16 14:48 1160次阅读
    使用MATLAB进行无监督<b class='flag-5'>学习</b>

    plc控制电路检测技术与维修方法

    PLC(可编程逻辑控制器)控制电路的检测技术与维修方法主要涉及对PLC输入输出回路、程序逻辑以及外围电气元件的检查与修复。以下是一些具体的检测技术与维修
    的头像 发表于 04-02 07:37 1551次阅读
    <b class='flag-5'>plc</b>控制电路检测技术与维修<b class='flag-5'>方法</b>

    一种无刷直流电机霍耳信号与定子绕组关系自学习方法

    的关系。提出了一种无刷直流电机霍耳信号与定子绕组关系自学习方法,该方法通过不同的绕组通电组合将电机转子依次转到6个不同的位置并记录对应的霍耳信号,然后得出霍耳信号与定子绕组的对应关系。所提出的方法快速
    发表于 03-25 15:15

    DeepSeek与Kimi揭示o1秘密,思维链学习方法显成效

    据消息,OpenAI近日发布了一项重要研究报告。报告指出,DeepSeek和Kimi两家机构通过独立研究,成功利用思维链学习方法,在数学解题与编程挑战中显著提升了模型的综合表现。 Kimi的研究员
    的头像 发表于 02-18 15:13 691次阅读

    ABB PLC编程手册

    ABB  PLC编程手册
    发表于 02-07 15:23 15次下载

    数字电路编程语言介绍

    数字电路编程语言是专门为描述和模拟数字电路而设计的编程语言。它们通常具有以下特点: 硬件描述语言(HDL) :大多数数字电路
    的头像 发表于 01-24 09:39 1387次阅读

    gitee 支持的编程语言有哪些

    Gitee(码云)是一个基于 Git 的代码托管和研发协作平台,类似于 GitHub 和 GitLab。它支持多种编程语言,允许开发者托管和管理代码,进行版本控制,以及协作开发。以下是一些
    的头像 发表于 01-06 09:50 1105次阅读

    传统机器学习方法和应用指导

    用于开发生物学数据的机器学习方法。尽管深度学习(一般指神经网络算法)是一个强大的工具,目前也非常流行,但它的应用领域仍然有限。与深度学习相比,传统方法在给定问题上的开发和测试速度更快。
    的头像 发表于 12-30 09:16 1968次阅读
    传统机器<b class='flag-5'>学习方法</b>和应用指导

    三菱PLC编程语言解析

    三菱电机(Mitsubishi Electric)是全球知名的自动化和制造解决方案供应商,其PLC(可编程逻辑控制器)产品广泛应用于工业自动化领域。三菱PLC编程
    的头像 发表于 12-26 17:36 2216次阅读

    Triton编译器支持的编程语言

    编写和优化深度学习代码。Python是一种广泛使用的高级编程语言,具有简洁易读、易于上手、库丰富等特点,非常适合用于深度学习应用的开发。 二、领域特定
    的头像 发表于 12-24 17:33 1447次阅读