TIA Portal 数组、结构及UDT

数据类型是PLC编程中的一个重要概念,它帮助我们区分在工业世界中处理的各种参数。高级数据类型可以使用其他基本PLC数据类型的组合作为结构来创建。这有助于重用性和效率,并加速编程。

在本教程中,我们将了解西门子PLC编程中使用的一些高级数据类型。我们将学习如何使用它们,如何将它们应用于现实世界项目,以及如何在西门子TIA Portal中自定义它们。

先决条件

要跟随本教程,您需要:

  • 对基本数据结构和类型的基本理解
  • TIA Portal – 本教程使用TIA Portal V16
  • PLCSIM Advanced或PLCSIM

1、数组

ARRAY数据类型的标签代表由相同数据类型的固定数量组件组成的结构。索引限制在方括号中定义,数据类型在创建ARRAY标签时在关键字"of"之后定义。ARRAY限制可以用整数、全局和局部常量、作为正式块参数静态建立,也可以用ARRAY [*]动态建立。下限必须小于或等于上限。ARRAY最多可以有六个维度,每个维度都有自己用逗号分隔的界限集。

1.1 数组寻址

固定或可变索引用于寻址ARRAY组件。ARRAY标签组件可以被视为相同数据类型的标签。

让我们创建一个由十个整数、十个实数和十个布尔值组成的数组。

打开TIA Portal,创建一个新的数据块,并如下图所示自定义数组。

创建数组的限制如下所述。

2、STRUCT数据类型

STRUCT数据类型表示具有定义数量的不同数据类型组件的数据结构。结构可以具有STRUCT或ARRAY数据类型的组件。数据可以根据过程控制系统进行分组,并且可以使用结构作为单个数据单元传输参数。

STRUCT标签始终在非优化块中从字限制开始,在偶数字节处。然后,各个组件按照声明的顺序在内存中定位。STRUCT标签占用内存,直到达到下一个字限制。嵌套结构是另一个结构的子结构。可以嵌套最多8层深度。"InOut"部分允许最大9层结构的嵌套深度。

2.1 控制场景

我们有一个润滑工厂,有三个储罐用于储存处理后的润滑脂。系统由输入和输出组成。对于每个储罐,这些是以下信号。

2.2 创建STRUCT

如下图所示创建STRUCT

从上图可以看出,STRUCT数据类型包含不同的数据类型。

要创建其他储罐参数,只需复制储罐1参数,粘贴并重命名。

3、使用用户定义类型(UDT)

生成数据块时,可以将PLC数据类型指定为类型。可以基于此类型创建多个数据块,所有这些数据块都具有相同的数据结构。这些数据块可以通过更改相应任务的实际值来自定义。例如,为润滑工厂仓库创建PLC数据类型。此数据类型随后可以分配给多个数据块,每个数据块包含不同数量的数据。

3.1 创建用户定义类型(UDT)

让我们首先创建一个新的PLC数据类型。在项目树下,导航到PLC数据类型并创建一个新的。

如下一个图像所示创建以下标签

创建此之后,UDT可以导出并导入到另一个PLC项目中。常见的做法是将它们保存为库以供重用。

我们可以继续为我们的三个储罐创建一个数据块并使用UDT。删除优化的块访问。

三个储罐都可以使用相同的UDT用于其IO(注意数据类型)。UDT解决了为所有标签创建不同标签的问题。让我们在一个简单的程序中使用UDT。

3.2 测试UDT

我们将创建一个函数,其中包含我们润滑工厂的一些计算。创建一个具有以下参数的新函数。将参数创建为函数本地的内部参数。

在这里,我们创建了灯作为警告输出,出口阀用于排放,以及包括室温和PSI单位压力在内的温度。

请注意,使用我们创建的UDT的储罐操作参数位于INOUT类型下。这是因为我们的UDT包含输入和输出参数。

网络1用于检查每个储罐的高-高液位条件。
你知道吗,在TIA Portal中可以使用LAD2SCl插件将梯形图一键转换为SCL结构化文本!
网络2用于检查每个储罐的低-低液位条件。
网络3包含从Barg到PSI的压力计算和从华氏度到摄氏度的温度计算。

它还显示了通过排放位激活出口阀的控制。

将函数从项目树拖到OB1的编程区域显示以下内容

如下图所示完成FC的标记

储罐操作采用储罐1 DB参数进行储罐控制。

红灯M2.0将被标记到物理灯,琥珀灯M2.1也是如此

Temp_to_cel获取转换后的温度输出

Pressure_to_PSI获取转换后的压力

出口值是用于排放液体的物理阀。

通过更改参数为相应储罐DB编号,为储罐2和3复制相同的操作。

编译并将程序下载到PLCSIM。

4、测试程序

现在进行测试,编辑DB中各个储罐的一些参数。

我们可以看到储罐的不同状态。让我们看看网络。

我们可以看到储罐1和储罐3的出口阀打开,而储罐2关闭。我们还可以看到所有储罐的转换温度和压力值。我们可以看到储罐2的红灯由于高-高传感器的激活而亮起。

这也可以通过为不同储罐创建标签来完成,但这会更加繁琐;UDT简化了它。此外,如果将来要添加更多储罐,只需使用UDT创建DB储罐参数即可。

将程序下载到模拟器。

在扩展下载屏幕中,选择Siemens PLCSIM Virtual Adapter作为PG/PC接口,然后搜索。找到PLC设备后,加载程序。

5、STRUCT和UDT之间的区别

表面上,STRUCT和UDT有许多相似之处,但它们之间存在一些差异,如下所述。

6、结束语

节省时间是UDT的优点之一,因为它有助于代码重用;它有助于使项目生命周期更高效。一旦创建了UDT,它就可以在程序中倍增,并作为库传输到另一个项目。UDT的一个好做法是只定义需要的标签,以避免浪费PLC内存。


原文链接: Understanding Advanced Data Types and UDTs in Siemens TIA Portal

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