PLCS,PACS

哪个IEC 61131-3编程语言最好?第2部分

使用许多可编程逻辑控制器(PLC)编程语言和标准,可以选择,为特定自动化和控制应用选择最佳语言。第2部分侧重于功能框图(FBD),连续功能图表(CFC)和结构化文本(ST)。

通过Gary L. Pratt,P.E. 2020年7月30日
礼貌:ControlSphere Engineering

学习目标

  • 功能框图(FBD)是一种呼吁工程师对图形语言的关联的图形语言。
  • 连续功能图表(CFC)编程是一个超级FBD,是IEC 61131-3的类似但更灵活的扩展。
  • 结构化文本(ST)基于Pascal编程语言,并具有足够的相似性,以利用更广泛的VB教程。

可编程逻辑控制器(PLC)存在许多编程语言选择,以及IEC 61131-3编程语言标准有几个选择。使用每个强度更有效和有效,而不是了解强制适合一种语言到所有应用所需的技巧和解决方法。程序员应选择应用程序的最佳语言。

编程语言:LD,SFC,FBD,CFC和ST

哪个IEC 61131-3编程语言最好?第1部分“讨论了每种语言的优势和最佳应用,具有显示所有五种语言的图形,并提供梯形图(LD)和顺序功能图表(SFC)的详细信息。

“哪个IEC 61131-3编程语言最好?第2部分“(本文)讨论功能框图(FBD),连续功能图表(CFC),结构化文本(ST)以及它们如何混合和匹配以获得最佳结果。

功能框图(FBD)和连续功能图表(CFC)

功能框图(FBD)是一种呼吁工程师对图形信息的关联的图形语言。CodeSys集成开发环境(IDE),来自CodeSys GmbH(以前称为3S-Smart软件解决方案),提供了两个FBD的口味,传统的IEC 61131-3 FBD和类似但更灵活的连续功能图表(CFC)不是IEC 61131-3的正式部分。CFC是一套超级FBD,有两个力量领域:

  1. 基于块的功能编程(执行布尔和数学操作)
  2. 分层设计(调用其他函数和功能块)。

图1:基于块的编程设计的示例以CodeSys GmbH从Codesys GmbH编写的CodeSys连续功能图表语言编程。礼貌:ControlSphere Engineering。

图1:基于块的编程设计的示例以CodeSys GmbH从Codesys GmbH编写的CodeSys连续功能图表语言编程。礼貌:ControlSphere Engineering。

基于块的CFC编程

基于块的设计由预定义的功能组成,这些功能包括在一起,以连接到执行布尔逻辑,数学计算或两者的组合,如图1所示。CFC块编程在输出严格的函数时出色当前输入(换句话说,当没有状态变量,例如布尔反馈,设置/重置线圈或标志)。当存在状态和基于状态的功能的组合时,使用CFC和SFC的组合。

因为连接用功能块之间的线表示,所以易于理解信息的流程以及如何沿其路径修改信息。如果功能开始变得复杂,则应将其分成更小,更可管理的子块,如下面的分层设计中所述。如果块之间存在大量连接,则线路可以合并到被声明为数据结构类型的引脚中,如图2所示。

图2:结构引脚通过减少不必要的细节和杂乱来提高图表的可读性。礼貌:ControlSphere Engineering。

图2:结构引脚通过减少不必要的细节和杂乱来提高图表的可读性。礼貌:ControlSphere Engineering。

结构销的三个优点

结构销有三个优点:

  1. 他们从这个设计层次结构水平中删除了不必要的细节,以便森林在树上没有丢失(解释谚语)。
  2. 保持块尺寸小,以便在一页上查看信息流量
  3. 允许信息流到上游和下游(进一步减少不必要的细节)。

与CFC的分层设计

分层设计是从构建块创建设计的实践,该模块由简单的构建块构建,该模块由更简单的构建块等构建。小型建筑块与传统的大型平面设计相比,包括更容易:

  1. 指定
  2. 创建
  3. 测试和完美
  4. 理解和维护
  5. 更有可能重复使用。

构建块技术更易于设计和理解,因为它能够实现并鼓励在层次结构的每个级别维护一致的细节水平。以这种方式,设计的上层不具有混乱和不必要的细节,这在设计的较低层次上很重要。这些类比是一种汽车发动机,该汽车发动机具有衔铁的起动器,该电枢是用铜线缠绕的衔铁,其从铜中挤出,这在整个世界中开采。汽车设计师不需要是专家或关注发动机中的铜线如何开采。这种细节级别留给了设计的最低水平,在那里该细节很重要。等级CFC设计应设计在层次结构的每个级别的一致细节级别。

使用LD作为构建块语言的两个垮台

这揭示了使用LD作为构建块语言的传统方法的垮台。具体来说:

  1. 低密度的信息需要LD设计要分散超过数十个页面,使得难以或不可能看到和理解大局。
  2. 高级细节和低级细节涉及相同的水平,导致杂乱,这使得设计难以理解和维护。

使用结构引脚的CFC中的分层设计解决了这些问题,同时保持了LD的图形性质。这是一个没有妥协的解决方案,这两个世界都是如此。

图3:分层设计在此处在连续功能图表(CFC)图形编程中实现。礼貌:海洋液压咨询。

图3:分层设计在此处在连续功能图表(CFC)图形编程中实现。礼貌:海洋液压咨询。

使用CFC和层次设计的好处

分层设计是面向对象的工业编程(OoIP)的关键特征。图3显示了赛车帆船控制系统的OOIP设计。设计的顶级显示船舶控制包括输入和输出(I / O),服务,绞车,汽缸和液压系统。双击任何这些块都显示了下一个细节级别的细节,例如圆柱体和液压系统的概述。进一步双击这些中的任何块,逐步透露了进一步的细节水平,每个细节都以最好的作业语言实现。注意仔细注意保持CFCS一页和一致的细节级别,因此每个级别都很容易理解功能。然后,这些对象配置了.csv文件,如OoIP文章和在本文末尾引用的视频中所示。

通过放置和配置用户定义的块的能力,CFC编程开始与分布式控制系统(DCS)相似的编程/配置,除了IEC 61131-3,程序员正在控制底层块。如果一个块需要一个次要的增强,程序员可以在没有涉及DCS供应商所需的费用和时间的情况下执行此操作。

完整的分层PLC设计可以被认为是具有分层CFC的树,构成中继和分支(框图);基于块的CFC,SFC,LD和St填充树叶的详细功能设计。IEC61131-3语言一起形成一个比任何一个各个部件更强大的团队。

应使用结构化文本编程哪些操作?

虽然LD,SFC和FBD / CFC为其目的是伟大的工具,但有一些操作不会借给图形语言。

有利于ST编程的一些操作包括:

  1. 迭代作业,例如,虽然和重复
  2. 复杂的条件和选择,例如if-then,以及案例
  3. 位操纵,例如按位 - 和,换档,旋转
  4. 文本字符串操作
  5. 具有异常要求或复杂性的国家机器
  6. 纯面向对象编程(调用方法,设置属性等)

有许多良好的教程可用于从其他基于文本的语言转换为ST的工程师。Visual Basic Tutorial是基于文本语言的完全新的良好起点。虽然结构化文本是基于Pascal编程语言的,但它有足够的相似之处,以利用更广泛的VB教程。

了解编程词汇表以获得最佳结果

为了能够用英语有效沟通,重要的是具有正确的词汇,并知道如何有效地使用该词汇。同样,为了能够创建有效的工业控制程序,重要的是要拥有正确的语言,并知道如何有效地使用这些语言。IEC 61131-3提供了语言,本文为其有效使用提供了指导。在这家两部分系列中使用LD,SFC,FBD,CFC和ST的提示,以IEC 61131-3编程语言有效地进行。

Gary L. Pratt,P.E.是总统ControlSphere Engineering.。由Mark T. Hoske,Content Manager编辑,控制工程,CFE媒体,mhoske@cfemedia.com.

关键词:IEC 61131-3编程语言,FBD,CFC和ST

考虑一下这一点

使用正确的IEC 61131-3编程语言来应用程序。

在线额外

有关更多,请参阅:

从CSV文件中的每种语言和配置的视频演示。

面向对象的工业编程(OoIP)文章

更多编程下载面向对象的工业编程基础

www.ooip-foundation.org.

CodeSysysysysysysmbh中的CodeSySysysysocy开发环境(IDE),用于本文中的示例,可以在不充电下载,包括将在重置之间运行2小时的基于软件的PLC。

为一个控制工程文章具有可编程逻辑控制器编程说明,术语,逻辑电路等,请参阅“以支持为中心的企业控制:PLC基础知识。“

作者传记:谁是加里普拉特?

Gary L. Pratt,P.E.是总统ControlSphere Engineering.。普拉特的职业生涯始于1982年的雪佛龙企业工程,最近退休为北美的Codesys股份有限公司。他拥有工业控制的专利,现在专注于通过IEC 61131-3编程语言和Codesys综合开发环境(IDE)咨询和培训课程分享他的知识和经验。


Gary L. Pratt,P.E.
作者生物:Gary L. Pratt,P.E.,是ControlSphere LLC的总裁。