制度,政治行动委员会

哪一种iec61131 -3程序设计语言是最好的?第1部分

有这么多可编程逻辑控制器(PLC)编程语言和标准可供选择,自动化和控制应用的正确选择是什么?第1部分概述并重点介绍梯形图(LD)和顺序功能图(SFC)。

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

学习目标

  • IEC 61131-3程序设计语言有LD, SFC, FBD, CFC和ST。
  • 梯形图仍然很受欢迎,因为它的图形性质。
  • 顺序功能图是一种伟大的图形语言,适合表达国家机器并吸引工程师的图形本质。

可编程逻辑控制器(PLC)的编程语言选择很多。据说标准的伟大事物是有很多可供选择的!虽然这是讽刺的案例IEC 61131-3编程语言在美国,有多种语言标准可供选择是一个优势。

许多学生参加我的培训课程时都抱着这样的心态:他们会选择最适合自己的语言,然后专攻那门语言。在开始上课的时候,他们经常问我推荐哪种语言。或者“最好的语言是什么?”

对于这个问题,我通常会这样回答:“在印度- - -阿拉伯数字系统?或者“英语中最好的单词是什么?”(一个学生最近说最好的英语单词是“叉勺”,但我认为这个答案还有待广泛的共识)。

图1:IEC61131-3编程语言提供适用于特定需求的语言。礼貌:ControlSphere Engineering

图1:IEC61131-3编程语言提供适用于特定需求的语言。礼貌:ControlSphere Engineering

一个很好的类比是问哪个是最好的办公效率软件工具——文档编辑器、演示文稿编辑器还是电子表格编辑器?虽然演示文稿和电子表格可以用文档编辑器创建,但这是正确的方法吗?同样,演示文稿和文档可以在电子表格工具中创建,文档和电子表格可以在演示工具中创建。但是,这些都有意义吗?是否值得努力学习使一个工具服务于多个目的所需的所有技巧,或者只学习工具的关键功能更有效?

草坪电动工具也可以做类似的类比。正如YouTube上无数的视频所显示的,用割草机修剪树篱是可能的。(请不要这么做!)在工作中使用正确的工具会更有效率(也更不危险)。

图2:最好为工作使用正确的工具。礼貌:ControlSphere Engineering

图2:最好为工作使用正确的工具。礼貌:ControlSphere Engineering

与草坪电动工具一样,为应用程序使用最好的编程语言是最有效的,以避免将方形应用程序钉入圆形工具孔的复杂性。使用IEC 61131-3编程语言,当所有语言的力量被使用时,PLC编程和维护得到了增强。

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

“哪个iec61131 -3程序设计语言是最好的?”第1部分“(本文)讨论了优势和最佳应用梯形图(LD)和顺序功能图(SFC)。

“哪个iec61131 -3程序设计语言是最好的?”第2部分“将讨论功能块图(FBD),连续功能图(CFC),结构化文本(ST),以及如何混合和匹配它们以获得最佳结果。

什么是梯形图(LD)编程?

梯形图编程(LD)的历史可以追溯到100多年前的继电器梯形逻辑(RLL)。RLL是用来描述继电器、定时器、电机等电子元件系统的一种逻辑。在自动化的早期,当plc取代继电器和计时器时,创建一种用户熟悉的、与它所取代的工具相似的编程语言是非常有意义的。不幸的是,随着控制器的功能越来越强大,并在继电器和计时器的基础上不断发展,最初的LD语言被强加到它从未打算用于的服务中,而且不太适合。

由于PLC供应商提供更适合PLC和可编程自动化控制器(PAC)应用的新语言的速度缓慢,加剧了这种情况。对于源自北美的控制器来说尤其如此,这也解释了LD经久不衰的全球差异。

图3:在Codesys中实现的复杂布尔逻辑的语言比较图。礼貌:ControlSphere Engineering

图3:在Codesys中实现的复杂布尔逻辑的语言比较图。礼貌:ControlSphere Engineering

LD编程的优势

LD的优势和持久流行的关键在于它的图形化特性。在所有关于工程师的概括中(通常是你最喜欢的例子)呆伯特漫画),可以肯定地说,工程师倾向于图形化。(我们当中谁能在没有纸、笔或白板的情况下有效沟通?)在早期,大多数LD编程选择都是基于文本的语言,与工程师的图形化本质没有共鸣。这导致他们更不愿意离开LD。幸运的是,这种情况正在改变。

LD仍然是一种伟大的语言,它最初的目的是复杂的布尔逻辑。在这个领域中,LD逻辑设计和调试都很简单。图3通过在几种IEC 61131-3语言中显示相同的布尔逻辑来说明这一点。假设我们期望“Inspect”是真实的。确定结果与预期不一致的原因有多容易?在LD中,答案是通过观察固体蓝色触点的路径被中断(GantryIsRight不是TRUE)而快速确定的。在CFC和FBD中,这个问题也可以通过观察蓝色路径的进展来确定,但它确实需要在心理上评估and和or。在文本中评估这个问题是一个挑战。

什么是顺序功能图(SFC)编程?

序列函数图(SFC)是一种非常适合表示状态机的图形化语言,与LD一样,它吸引了工程师的图形化天性。为了提供更好的上下文,这个编程语言的讨论将分为两部分:

1)一般的状态机

2)实现状态机的语言。

什么是状态机?

状态机可以追溯到许多年前,但直到最近才应用到工业编程中。状态机是一种非常强大的方法,用于表示行为依赖于过去历史的系统,例如:

1)设置线圈或复位线圈

2)封装逻辑(布尔反馈)

3)由代码设置的内部标志,以影响未来扫描的代码的行为。

实际上,即使是简单的TON On-Timer和R-Trig one-shot也是状态机。它们的下一个行为依赖于先前的输入和行为,如图4所示。(真的实现了吗?是否达到预定时间?)

图4:甚至常见的TON计时器和R-Trig一次性都是状态机。这里显示的是在Codesys SFC实现的

图4:甚至常见的TON计时器和R-Trig一次性都是状态机。这里显示的是在Codesys SFC实现的

国家机器提供更多的益处,其他编码技术:

1)它们很容易设计,因为它清楚地描述了系统可能处于的状态,系统如何在这些状态之间转换,以及系统在这些状态下应该采取的行动。

2)在运行时,很容易准确地看到系统处于什么状态,它在那个状态中做什么,以及什么将导致它移动到下一个状态(或者如果进程中出了问题,为什么它不能移动到下一个状态)。

3)它促进了良好的良好和良好的设计。它确保所有可能的事件都已处理(从而消除了在半夜被称为的机会,修复未正确解决异常情况的代码)。

4)很容易确定,每一种可能的可能性都经过了适当的测试。只需打印出证监会,并在执行时划掉每个州和过渡。当所有东西都被划掉时,测试就完成了(程序员的置信度是100%)。

状态机可以以不同的方式实现。

如何实现状态机

虽然状态机可以用几乎任何语言实现,但它们需要特定的编码技术,该技术由步骤、转换、分支/跳转和操作组成。

步骤描述系统可以居住的状态;过渡表明系统应从一个步骤移动到下一个步骤;分支和跳跃表明下一步应该是什么;和操作指定应在该步骤(或输入或退出该步骤)时执行的操作。

由于其图形性质和工作的专业化,SFC是国家机器最自然的语言选择,如图5所示。

图5:图表显示了顺序功能图(SFC)的编程组件。礼貌:ControlSphere Engineering

图5:图表显示了顺序功能图(SFC)的编程组件。礼貌:ControlSphere Engineering

图6显示了在线模式下加载系统的状态机示例,其中当前状态以蓝色显示。注意,这个例子有三个同时并行的分支,它们彼此独立地运行。还要注意确定系统的当前状态是多么简单,系统在当前状态下做什么,下一个状态是什么,以及进入下一个状态需要什么条件。

图6:示例示出了具有在代码中实现的同时分支的顺序函数图(SFC)。礼貌:ControlSphere Engineering

图6:示例示出了具有在代码中实现的同时分支的顺序函数图(SFC)。礼貌:ControlSphere Engineering

对于需要异常复杂性或灵活性的系统,状态机也可以用基于文本的语言实现,如图7所示。对于使用LD的组织,状态机甚至可以在LD中实现,方法是为每个状态使用一个线圈,转换逻辑来激活/取消每个线圈以将系统从一个状态移动到下一个状态,以及使用状态线圈来实现操作的独立逻辑。

图7:在结构化文本中使用枚举步骤实现的状态机。礼貌:ControlSphere Engineering

图7:在结构化文本中使用枚举步骤实现的状态机。礼貌:ControlSphere Engineering

一些供应商还提供统一建模语言(UML)状态图的实施,作为SFC更强大和灵活的替代方案,但这是在更长的学习曲线的价格和工业控制社区接受有限的价格。

在谈到州机时,语言的选择是次要语言中的技术的选择。在SFC中,语言强制使用状态机技术。用其他语言,这取决于工程师的学科来使用正确的技术。如果功能取决于以前的历史记录,则它是一个状态机。有关最佳代码,请执行此操作。

(一个相关的控制工程文章解释了”UML用例,序列图:轻松转换为可执行代码。“]

使用正确的语言进行控制系统编程

为了有效地用英语交流,掌握正确的词汇并知道如何有效地使用这些词汇是很重要的。要创建有效的工业控制程序,重要的是要有正确的语言,并知道如何有效地使用这些语言。IEC 61131-3提供了语言,本文提供了有效使用LD和SFC的指导。参阅第2部分关于FBD, CFC和st的使用。使用IEC 61131-3编程语言进行有效的编程

加里·l·普拉特,体育是主席ControlSphere工程.由Mark T. Hoske,Content Manager编辑,控制工程,CFE媒体,mhoske@cfemedia.com.

关键词:IEC 61131-3编程语言,LD,SFC

考虑一下这一点

什么IEC 61131-3编程语言最适合您的任务?

在线更多信息,见:

视频演示每种语言和配置从一个csv文件。

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

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

www.ooip-foundation.org

来自3S-Smart软件解决方案的Codesys集成开发环境(IDE)可以免费下载,包括一个基于软件的PLC,它将运行2小时之间的复位。

对于一个控制工程文章用可编程逻辑控制器编程说明,术语,逻辑电路等,参见以支持为中心的企业控制:PLC基础。”

在线额外

作者B.Iopal:谁是加里普拉特?

Gary L. Pratt,P.E.是总统ControlSphere工程.普拉特的职业生涯始于1982年的雪佛龙公司工程,并在整个工业控制行业担任过许多职位。他拥有工业控制方面的专利,现在专注于通过IEC 61131-3与下一代分享他的知识和经验编程语言Codesys.综合开发环境(IDE)咨询和培训课程。


Gary L. Pratt,P.E.
作者简介:Gary L. Pratt, p.e.是ControlSphere LLC的总裁。