自动化可视化编程

图形化编程方法已经出现在制造、自动化和仪器仪表领域很长时间了。软件工具——从国家仪器公司的LabView到MathWorks Simulink,包括许多专有的PLC和DCS编程工具——与Cobol或C等文本语言完全不同。

通过芮妮·罗宾斯,控制工程 2010年4月1日

美国国家仪器公司LabVIEW是一种基于数据流的图形化编程工具,比基于文本的编程方法更容易使用。

链接
搜索www.globalelove.com参见Dennis Brandl等人撰写的有关制造业IT主题的文章。
栏:
可视化编程:HMI程序员的视角

图形化编程方法已经出现在制造、自动化和仪器仪表领域很长时间了。软件工具——从国家仪器公司的LabView到MathWorks Simulink,包括许多专有的PLC和DCS编程工具——与Cobol或c等文本语言完全不同,但图形编程(也称为“可视化编程”)具有显著的好处,并且在创建自动化和制造IT系统中非常常见。

可视化编程包括一个图形调色板,程序员可以在这个调色板上创建、排列和连接表示各种编程概念的图像。一旦可视化表示完成,就可以将图表翻译或编译成标准可执行程序,或者直接执行。

国家仪器公司运动控制和机电产品经理Christian Fritz说:“图形化工具是描述和编程复杂自动化系统的理想工具。从机器级到生产线或制造执行系统(MES)层,现代系统结合了并行、顺序、迭代和diactric任务,这使得在应用程序开发中很难使用基于文本的顺序编程。”

BR&L Consulting的总裁Dennis Brandl说,可视化编程是“我们在工作流和流程流中所做的事情的形式化。我们(在制造业it环境中)已经这么做了很长时间,其他行业才刚刚赶上。”

在Labautopedia(一个在线信息资源)上的一篇关于可视化编程的论文中,Mark F. Russo说,“许多非程序员都可以证明,试图“正确”基于文本的编程语言经常要求的神秘语法细节是令人惊讶的挫败感。如何公开复杂系统的功能,让非程序员也能使用,这是许多正在进行的研究的主题。”

代表了三种“流”

可视化编程工具各不相同,Russo说它们背后的概念也各不相同。他将可视化编程语言或工具包所表达的潜在“流”分为三类:数据流、材料流和控制流。

文本语言侧重于对程序数据的操作,从而使数据流本身从视图中隐藏起来。相比之下,数据流编程模型将数据作为其程序组装的主要焦点。发生的操作成为程序中数据流的副作用,”Russo解释道。

NI公司的Fritz表示,NI LabView是“一个基于数据流的图形化系统设计工具,它提供了高层次的抽象和广泛的函数库,用于I/O、分析、数据记录和机器控制和监控应用程序的控制。”

物料流动主要是指一个工艺过程中的原材料和新生产的物料。物料流对于一般用途的可视化编程工具来说并不重要,但是对于实验室或过程工业的工具来说却非常重要。

Russo说,流控制风格的可视化工具“与标准命令式编程相比,数据流或材料流工具更具有可比性。”这一组中最常见的工具是流程图。其他可视化地表示流控制的方法是状态图和活动图,它们都是构成统一建模语言(UML)标准的更大的图集的一部分,他说。

Brandl说另一个可视化编程选项是Petri网,这是一种可视化建模方法,它是工作流和流程的图形和数学形式主义。Petri网多年来一直被用于建模和模拟各种复杂系统的行为,特别是那些显示并发行为的系统,因为它们构成了某些工具的基础。Petri网已广泛应用于自动化制造和开发制造执行系统。他表示,西门子用于制造运营管理的软件Simatic IT基于Petri网的概念。

屏幕截图显示了一个电力窗口的Simulink模型(上),在statflow中建模的控制逻辑(下)。来源:The MathWorks

高级建模和仿真工具是另一类可视化软件。The MathWorks的工业自动化和机械行业经理Tony Lennon说,尽管Simulink可以在一个图形画布中简洁地表示工厂模型和控制器逻辑,以及执行其他任务,但它不使用Petri网。

“Simulink不仅提供模拟和早期验证和验证,而且还提供针对C、HDL和IEC-61131结构化文本的自动代码生成,”Lennon说。“Petri网提供了一种非常抽象和一般化的方式来表示并发性和流程流。然而,它们太抽象了,不能代表动态系统和监督逻辑。”

列侬的比喻是:“想象一下,一次只用一个原子来建造整个世界,没有分子,也没有更大的东西可以使用。相比之下,Simulink为动态系统仿真和各种高级块、子系统甚至域(如Stateflow)提供了图形化平台。Stateflow支持使用分层有限状态机、真值表和流图。Stateflow的语义本质上是确定性的,使建模者能够以清晰和一致的方式定义逻辑算法。”

Simulink和statflow是基于控制流(或信号流)的软件,Lennon说。statflow提供了类似UML的状态机功能,而且还通过Simulink集成了真值表、流图和连续系统。状态流语义是确定的,因为用户定义了处理系统状态的顺序,他说。

野马工程(Mustang Engineering) HMI实践负责人布里吉特·菲茨帕特里克(Bridget Fitzpatrick)表示,类似于Petri网符号的界面越来越普遍。如果做得好,他们可以使目前的工艺工作流程的状况非常清楚。如果做得含糊不清,它们可能会成为被接受的障碍。”“一些纯粹的顺序流程以甘特图格式完成,类似于Microsoft Project或Microsoft Outlook中的日历。如果做得好,这些可能是有用和直观的,如果做得不好,就会非常复杂。”

威廉“比尔”吉尔伯特,西门子工业的工业业务发展经理,是西门子转换工业应用工程的主要联系人。他说,在编程和监控作为流程的应用程序时,他更喜欢图形化语言。他说:“主要的好处是能够图形化地交流流程流,并且能够从工程工作中提供程序的文档。”

所有语言都有自己的位置,Gilbert说,特定语言的使用必须适合应用:“关于阶梯逻辑,没有一种语言能更好地以输入和输出位的形式采用离散逻辑。顺序函数图适用于遵循或运行顺序的机器编程。图形化编程语言最适合编写面向流程的应用程序。覆盖广泛应用的控制器将提供多种语言。”

作者信息
Renee Robbins是《控制工程》杂志的高级编辑。与她联络:renee.robbins@reedbusiness.com

可视化编程:HMI程序员的视角

布里奇特·菲茨帕特里克是野马工程公司HMI和异常状态管理的实践负责人。Mustang在复杂的HMI工具方面拥有非常广泛的经验,近年来每年常规生成5,000-10,000个操作显示器。她说:“我们倾向于尽可能使用本地平台工具,而不是从一个只与控制层独立接口的自定义应用程序开始。”

Mustang使用专用软件在Microsoft Visio中绘图,并将其绘图转换为控制界面,尽管这不是最常见的过程。“基本上,新的开放系统人机界面创造了新一代的接口和可能性,”她说。“在很多情况下,在系统中移动数据要简单得多。”

关于现代开放系统控制语言的图形化拖放和连接方法,“主要的好处是明显的易于使用和相对容易的故障排除。复制和克隆一个新的类似的应用程序往往也容易得多,”她说。“在大型项目中,我们倾向于为每个主要类型的控件制作一个模板,然后整理出用于批量导入或批量构建的方法。”

至于缺点,“在现实中,纯图形化的方法往往看起来很简单,但在清晰的视野中可能隐藏着陷阱,在对话框中分层,可能不完全直观。有时还会出现数据只能以有限的格式读取的问题,这对于技术水平较低的用户来说可能不太直观。错误消息传递也可能有点神秘,没有正式编码的应用程序准确。”

Fitzpatrick说:“有时候,图形化编程显然是最好的方法;在其他时候,它有点过于简单,无法有效地管理。如果太复杂,则需要其他的故障排除方法和操作人员介绍。”