梯形图转结构化文本和功能块图

在这篇文章中,我们将介绍如何将梯形图逻辑转换为结构化文本和功能块图语言的基本主题。我们将使用Unity Pro软件进行学习。

梯形图转结构化文本和功能块图
梯形图转SCL | 博途AI辅助编程文档 | AI模型价格对比 | AI工具导航 | ONNX模型库 | Vibe Coding教程 | PLC在线仿真器 | Tripo 3D | Meshy AI | ElevenLabs | KlingAI | ArtSpace | Phot.AI | InVideo

各位程序员朋友,梯形图是工业自动化中非常常用的编程语言。事实上,当程序员初次涉足自动化领域时,他们大多接受这种语言的培训,因为它简化了,并且在很大程度上类似于传统的电气绘图电路。随着时间的推移,我了解到,虽然这种语言易于编写,但它在长度和在线视图方面有很大的缺点,有时会非常烦人。意思是;如果你写了一个包含大约100个梯级的梯形图部分,想象一下你将不得不上下滚动多少来查看和故障排除。此外,当在一个部分中编写了许多梯级时,软件在在线时需要一定的时间来加载动画。如果你急需找到那个瞬间出现又消失的错误,而软件无法帮助你,这可能会造成浪费。因此,我们必须适应其他编程语言,以快速故障排除并提高程序的效率和视图。你可以在程序中使用梯形图,但尽量只在某些地方使用,而不是整个程序。

我遇到过许多避免使用其他语言的新手。他们要么不知道如何用其他语言原封不动地编写他们的梯形图逻辑,要么对转换为其他代码毫无兴趣,只坚持使用他们的基本语言。所以,我将教你如何将你的梯形图逻辑转换为其他语言逻辑,并提高你的编程标准。我们将介绍结构化文本和功能块图语言。这些语言被广泛使用,并且总体上增强了程序的视图、效率和工作方式。

让我们从下面的梯形图开始。我将假设读者在梯形图方面是高效的;因为我们的重点是将它们转换并写成其他语言。如你所见,当start变量打开且stop变量关闭时,lamp变量会打开。这将把lamp变量锁定在start变量下方,并保持梯级的电源以保持lamp变量打开。

1、PLC中的结构化文本编程

如果你的开发环境是TIA Portal,可以使用 LAD2SCL 插件将梯形图一键转换为结构化文本。

那么,让我们从结构化文本语言开始。结构化文本是由PLCOpenIEC 61131-3中定义的PLC编程语言。与基于图形的梯形图或功能块图相比,该语言是基于文本的。这种语言的语法类似于PHP、Python和C等高级编程语言,具有循环、变量、条件和运算符。在继续之前,理解结构化文本的结构和语法很重要。然后你就可以轻松理解程序的工作流程。如下图所示,它运行到程序的结束语句,然后再次从头开始。它类似于梯形图语言。这种语言中使用了许多类型的语句——if-else、case、while、repeat、for等。我们将在这里看到if-else语句。

正确阅读并理解语法。它充满了冒号、分号和其他符号。它们都有自己的含义。分号分隔一个语句并表示已到达语句的末尾。如果你正在比较某些内容,则使用**=符号;如果你正在将某些内容写入变量,则使用:=**符号。

我们现在将梯形图转换为结构化文本。让我们从逻辑开始。如果你记得我们之前看到的梯形图逻辑,一旦start变量打开,lamp变量就会锁定。只有当stop变量打开并切断梯级电源时,它才会解锁。现在,阅读并理解我如何在结构化文本中编写这个。如果start变量打开,那么我们将值1写入lamp变量。现在,当start变量关闭时,lamp变量也将保持打开状态;因为执行该语句的条件为假。这意味着lamp变量现在已被锁定。如果stop变量打开,那么我们将值0写入lamp变量。现在,当stop变量关闭时,lamp变量也将保持关闭状态;因为执行该语句的条件为假。然后,由于有两个if语句;我们用两个end语句终止了它们。我这样表达,你在梯形图逻辑中写的内容;在脑海中解释每个梯级并制作语句。这很简单;分析梯级中的每个元素,理解它的作用,并在结构化文本中写出相同的内容。一旦你理解最终输出变量如何受到影响,你就可以轻松编写该语句。

你也可以如下编写此语句。在第一张图片中,我只是为了更好地理解而更改了程序的可视化。在第二张图片中,我在结构化文本格式中复制了梯形图逻辑。在这里,我只是使用了赋值语句。意思是,当整个条件为真时,最终变量lamp将被写为1,当整个条件为假时,写为0。所以,这完全取决于你以及你想要如何可视化和理解该语句。如果你不熟悉结构化文本语言,你可以在网上找到许多结构化文本编程pdf文件来理解。

2、功能块图PLC编程

现在,让我们从功能块图开始。它是在PLC程序中一起编程任何功能的简单图形方式。大多数程序员喜欢FBD,因为它在图形上是描述系统的非常常见的方式,他们喜欢把东西放在盒子里。这正是功能块图的概念。FBD不过是放在功能块中的功能。它们都有一个或多个输入和输出。块的功能是其输入和输出状态之间的关系。

如下图所示,功能块显示为一个框。框的中间通常是一个符号或文本。此符号代表功能块的实际功能。根据功能,功能块上可以有任意数量的输入和输出。你可以将一个功能块的输出连接到另一个的输入。这样就创建了一个功能块图。FBD在可视化方面看起来很棒,因为整个逻辑一目了然;并帮助你更好地进行故障排除。

我们现在将梯形图转换为功能块图。让我们从逻辑开始。如图所示,SR代表SR触发器逻辑。当变量在S1输入(S1表示置位)处打开时,输出Q1被锁定。它将保持锁定状态,直到R输入(R表示复位)处的变量打开并解锁输出。因此,根据我们之前的研究,我只是在S1输入处用start变量锁定lamp变量,并在R输入处用stop变量解锁它。

你也可以如下编写逻辑。我已经将梯形图逻辑复制到了功能块图中。我建议初学者使用此逻辑进行理解。首先理解梯形图逻辑,然后将其原样转换为功能块图。首先学习如何链接块;因为一旦你可以链接块并正确编写逻辑,那么你就更容易使用软件中的标准和高级块。记住,总是从零开始。

一些需要记住的重要点是:

  • 梯形图和功能块编程在表示方面不同,一个使用梯形图,另一个使用功能块变量和框。
  • 梯形图和结构化文本编程在表示方面不同,一个使用梯形图,另一个使用语法和语句。
  • 如果你觉得在编程中如何编写逻辑很困难,首先理解逻辑,并通过流程图或徒手绘图用你自己的语言画出来。这很有帮助。

我涵盖了通常在结构化文本和功能块图中编写逻辑所遵循的一般原则。我也没有试图涵盖每种类型的语句和块;你可以在软件帮助文件或互联网上轻松学习。我只是教你如何将你的梯形图逻辑转换并写成其他语言。学习基础知识,节省编码时间,使其看起来更好,并提高工作效率和生产力。


原文链接: Convert Ladder Logic into Structured Text and Functional Block Diagram

汇智网翻译整理,转载请标明出处