PLC编程应该选择哪种语言?
国际电工委员会 IEC第61131-3节标准规定了5种PLC编程语言
梯形图(LD)
顺序功能图(SFC)
功能块图(FBD)
结构化文本(ST)
指令列表(IL)
让我们向您展示一下这些内容
梯形图最初是从继电器逻辑建模的使用物理设备,例如开关和机械继电器来控制过程。梯形图利用内部逻辑代替所有,除了物理设备需要电信号来激活它们。梯形图以水平梯级的形式构建带有两个代表电气连接的垂直导轨关于继电器逻辑原理图。您可以编程所有必要的输入条件影响输出条件,无论是逻辑还是物理。梯形图语言的主要优点是这些梯级允许它组织和易于遵循。它还允许您记录评论很容易看到它,它非常成功地支持在线编辑。主要缺点是有一些说明那些不可用,这可能会使运动或批处理等编程变得更加困难。
顺序功能图它使用图形类型的编程。如果您对流程图有任何经验,那么这种PLC编程语言对你来说会很熟悉。在顺序功能图中,您使用步骤和过渡来实现最终结果。步骤是您程序中的主要功能。这些步骤包含了操作当你对它们进行编程时会发生这种情况。这个决定可以基于时间,过程的某个阶段,或设备的物理状态。转换是您使用的指令从一步到另一步通过设置真或假的条件来进行另一步。与传统流程图不同,顺序功能图表可以有多个路径。您可以使用分支一次启动多个步骤。顺序功能图的几个优点是:流程可以分为主要步骤这可以使故障排除更快更容易。您可以直接访问逻辑看一块设备出现故障的地方。设计和编写逻辑可以更快由于能够使用重复执行各个逻辑。即使您考虑了顺序功能图的优点,这种PLC编程语言并不总是适合每个应用程序。
功能块图也是一种图形类型的语言。功能块图描述了输入和输出之间的功能通过连接线以块的形式连接。功能块最初是为了创建系统而开发的你可以设置许多常见的,可重复的任务,例如计数器,定时器,PID循环等。您将块编程到工作表上然后PLC不断按数字顺序扫描纸张或者由您在块之间编程的连接确定。使用此PLC编程语言可以使代码混乱因为您可以将功能块放在工作表上的任何位置。这也可能使故障排除更加困难。功能块图适用于运动控制并且对于一些用户来说,视觉方法更容易。功能块图的最大优点是你可以采取多行编程并将其放入一个或多个功能块中。
结构化文本是一种高级语言,类似于Basic,Pascal和“C”。它是一个非常强大的工具,可以执行复杂的任务利用算法和数学函数以及重复性任务。该代码使用以分号分隔的语句然后输入,输出,或变量由这些语句更改。你必须写出每行代码它使用FOR,WHILE,IF,ELSE,ELSEIF和CASE等函数。如果您有使用Basic或C语言的经验,这种PLC编程语言将变得更容易比一些其他语言。结构化文本的一些优点这是非常有组织的,擅长计算大型数学计算。它还可以让您涵盖一些说明在梯形图等其他语言中不可用。缺点是语法很难,使调试变得困难,很难在线编辑。
指令列表也是基于文本的语言。指令列表语言类似于汇编语言。使用此PLC编程语言时,您将使用助记符代码,如LD(加载),AND,OR等。指令列表包含指令每条指令都在一条新线上您可能希望在每行末尾添加注释。该指令列表语言对于应用程序很有价值需要紧凑且时间紧迫的代码。这种PLC编程语言的主要缺点是因为结构可能性很少Goto命令就是其中之一。也可能有很多错误比较难以处理的我之前评论过的许多其他语言。
那么,你决定使用哪种PLC编程语言你认为最受欢迎?
美国的汽车工业领域:倾向于用LD梯形图;欧洲的汽车工业领域:更喜欢用FBD功能模块图计算机科学家:喜欢用ST结构图(类似于高级语言,比如C语言)而不同的PLC语言有各自的优缺点和适用的领域:
内存管理方面的工作:对于内存的读和写,IL和ST(比LD)更加合适;控制传送带的程序:如果用LD写,很明显会比ST写,逻辑会更清晰;顺序控制系统:用SFC无疑使最好的选择;根据自己的经验和用户的反馈,梯形图语言是目前最流行的语言。主要原因是梯形图语言自然地遵循了技术进步从物理中继逻辑到数字和逻辑逻辑。这使得工程师和技术工人得以实现跟进并排除故障并进行转换。总之,所有PLC编程语言都有一席之地我今天和你讨论过。
背景,经验和您正在使用的应用程序真正成为您选择的PLC编程语言的关键。
更多精彩内容请关注公众号:PLClion
PLC编程知多少?有人用5种语言来编写一小段代码来比较
图片来源:宏德自动化
作者:Frank Lamb
“
梯形图逻辑通常是PLC使用最多的图形编程语言,但在某些特定的编程应用中其他语言可能更适合。
”
在美国,大多数参与可编程逻辑控制器 (PLC)编程和维护的人员都倾向于认为:梯形图逻辑是PLC唯一的编程语言。这种理念在很大程度上是由PLC的历史、以及美国的工业控制市场是被以梯形图逻辑为主要语言的品牌统治所造成的。
在计算机和便携式计算机广泛应用于PLC编程之前,经常使用手持式编程器将程序输入到 PLC中。在此之前,通常需要绘制用于不同指令的电气图。这就像在PLC出现之前,如何连接原始继电器逻辑一样。在手持设备上,有时会用符号表示不同指令,但是在图形设计的背后,是基于文本的语言。
1994年,国际电工委员会(IEC)制定了一个可用于定义和规范PLC编程系统的标准 IEC 61131-3。除了形式化定义诸如计时器和计数器之类的指令外, 该标准还定义了5种编程语言。
指令表(IL) 是基于文本的语言,梯形图逻辑经常被转换成相同的语言。有些厂商仅将其用作机器代码的过渡,最终会编译成在处理器中执行的语言。另外有一些厂商则使用指令列表作为主要语言,并添加了无法用梯形图逻辑表示的其它指令(例如语句列表)。
图 1 :指令列表通常用于复杂的数学任务和搜索
梯形图逻辑(LAD) ,是PLC使用得最多的图形编程语言。它是从继电器逻辑电路图演变而来。梯形图逻辑是在常用的继电器与接触器逻辑控制基础上简化了符号演变而来的,具有形象、直观、实用等特点。
图 2 :梯形图逻辑是最常用的PLC编程 , 与继电器电路图最为相似。
功能块图(FBD) 是另一种图形编程语言, 可用于包括PLC和分布式控制系统(DCS)在内的一些控制器。它使用不同类型的块(例如与、或、比较、数学计算、计时器和计数器), 来描述输入和输出变量之间的功能。输入从 设备或其它模块的输出馈入一个模块 ;输出将数据传送到下一个块或变量。
图 3 :功能框图非常适合安全电路 / 安全PLC
结构化文本(ST) 是一种类似于计算机语言(例如Pascal)的高级语言。ST语言中的表达式由运算符和操作数组成。操作数可以是常量、变量、函数调用或另一个表达式。表达式的计算通过执行具有不同优先级的运算符完成。有最高优先级的运算符先被执行, 然后依次执行下一个优先级的运算符,直到所有的运算符被处理完。有相同优先级的运算符按从左到右的顺序执行。
图 4 :结构化文本可以帮助完成复杂的数学任务和搜索。
顺序功能图(SFC) 语言是基于一种被称为Grafcet的古老逻辑语言,该语言基于二进制Petri网络。它可用于编制复杂的顺控程序,又称为状态转移图或功能表图,是描述控制系统的控制过程、功能和特性的一种图形,也是设计顺序控制程序的工具。它是一种被称为步的块语言,带有相关逻辑条件切换。语言中的步可以是活动或不活动的,并且逻辑可以并行运行。利用这种先进的编程方法, 初学者也很容易编出复杂的顺控程序,大大提高了工作效率,也为调试、试运行带来许多言传的方便。
图 5 :顺序功能图对于分段逻辑很有用。
几年前,我突发奇想 :如果用所有5种语言,来编写一小段代码进行比较,将会非常有趣。逻辑建立自动和手动模式,然后在3秒钟后激活“循环”位。它是通用的,但是基于我使用的PLC平台(图1至图5)。语法和代码显示方式会因软件品牌和平台而异。
指令和注释,通常使用带颜色的编码, 以便于阅读。通常,语言包会额外收费或包含在编程软件的“专业”版本中。
不同语言有不同的用途。梯形图仍然适用于直接的“位操作”逻辑。指令列表和结构化文本通常用于更复杂的数学任务和搜索。功能块图可以很好地用于安全电路/ 安全 PLC。顺序功能图对于分段逻辑很有用。
在下一次编写复杂程序时,请尝试考虑使用某些“其它”类型的 PLC语言,因为这可能会使工作变得更容易。
关键概念:
■ 在美国, 梯形图逻辑是最常用的 PLC编程语言。
■ 指令列表、功能块图、结构化文本和顺序功能图都是有用的编程语言,也可能比梯形图更合适,这都取决于具体的应用程序。
思考一下:
除了梯形图逻辑外, 您还使用过哪种其它编程语言,为什么会使用它?
- END -
本文来自于控制工程中文版(CONTROL ENGINEERING China)2020年01-02月刊《封面》栏目,原标题为:你使用什么语言编程 PLC ?
相关问答
plc常见的语言编程方法?
PLC的编程方法大体上有5种:经验法、解析法、图解法、技巧法及计算机辅助设计法。(1)经验法:运用已掌握的成功设计经验,结合实际的情况,选择与实际情...
plc岗位为何要c语言?
PLC(可编程逻辑控制器)是一种专门用于工业自动化控制的电子设备。在PLC岗位中,使用C语言有以下几个原因:1.跨平台性:C语言是一种高级编程语言,它具有很强...
PLC编程过程?
PLC编程的过程大致分为以下几步:1.确定控制任务和要求:根据控制对象的特点和需要控制的内容确定控制任务和要求,例如控制机器的启停、转速、温度、压力等。...
plc编程语言有哪三种?
PLC编程语言五种:梯形图、指令表、功能模块图、顺序功能流程图及结构化文本)。目前编程语言的价值在于用经验的方式来管理软件系统复杂度。而SQL算是一个数...
plc编程常见问题及解决方法?
一、查找故障的设备PLC的指示灯及机内设备,有益于对PLC整个控制系统查找故障。编程器是主要的诊断工具,他能方便地插到PLC上面。在编程器上可以观察整个控制...
plc的mc码是什么意思?
plc的mc码是指“机器码”(machinecode),是一种用于编程可编程逻辑控制器(plc)的底层指令集。mc码是一种低级语言,可直接操作plc的硬件和输入输出设备,实...p...
西门子plc编程思路?
一、西门子plc编程思路基本的硬件知识编程之前,需要了解一些基本的硬件知识,最好从硬件的选型和画图入手,等把输入输出的类型,模拟量的选型等搞清楚之后,再...
plc各个代码意思?
不同商家的PLC有不同的编程语言,但就某个商家而言,PLC的编程语言也就那么几种,下面以PLC编程语言为例,简单描述下一、指令系统:按照使用的情况分,大致分为...
西门子PLC功能块编程怎么用?
西门子PLC(可编程逻辑控制器)的功能块编程是PLC编程的一种方法,通过预定义好的功能块,来完成复杂的控制任务。以下是使用西门子PLC进行功能块编程的一般步骤...
plc编程循环问题怎么整?
在PLC编程中,处理循环问题需要注意以下几点:确定循环条件:使用比较指令或逻辑指令对循环条件进行判断,根据判断结果决定是否继续循环。比如,可以使用比较指...