PLC 数据类型 (UDT) 的基本知识

描述

说明

PLC 数据类型 (UDT) 是一种复杂的用户自定义数据类型,用于声明一个变量。这种数据类型是一个由多个不同数据类型元素组成的数据结构。其中,各元素可源自其它 PLC 数据类型、ARRAY,也可直接使用关键字 STRUCT 声明为一个结构。因此,嵌套深度限制为 8 级。

PLC 数据类型 (UDT) 可在程序代码中统一更改和重复使用。系统自动更新该数据类型的所用使用位置。

PLC 数据类型的优势:

通过块接口,在多个块中进行数据快速交换

根据过程控制对数据进行分组

将参数作为一个数据单元进行传送

使用 PLC 数据类型

创建数据块时,可将 PLC 数据类型声明为一种类型。基于该类型,可以创建多个数据结构相同的数据块。并根据具体任务,通过输入不同的实际值对这些数据块进行调整。

例如,为颜料混合配方创建一个 PLC 数据类型的实例。之后,再将该数据类型分配给多个数据块。这样,每个块中包含不同的数量信息。

下图显示了该应用中具体的数据类型分配:

接口

PLC 数据类型可应用于以下应用中:

PLC 数据类型可用作逻辑块的变量声明或数据块中变量的数据类型。

PLC 数据类型可用作模板,创建数据结构相同的全局数据块。

PLC 数据类型在 S7-1200 和 S7-1500 中可用作模板,创建结构化的 PLC 变量。

PLC 数据类型的嵌套深度和数量

FC、FB、DB 和 PLC 数据类型最多支持的 64K 的对象(具体总量取决于 CPU)。

结构描述(如,DB 或 PLC 数据类型 (UDT))中,每个层级最多可定义 16K 的元素。这些结构中的元素可以同样为 ARRAY 或 STRUCT 数据类型。因此,结构化元素可以源自一个显式声明的 PLC 数据类型,而无任何限制。即,每个层级都可定义 16K PLC 数据类型 (UDT)/SDT 的元素。但“匿名结构”最多支持 252 个 16k 元素。

PLC 数据类型的嵌套层级深度为 8 级。具体的嵌套深度取决于所使用的 CPU。

从块生成外部源

从块生成外部源时,在块接口中直接对 PLC 数据类型的默认值进行的更改不会导出到源。也就是说在重新导入源时,这些值将不可用。此时,将使用默认值。为防止丢失已修改默认值的数据,必须直接在 PLC 数据类型中而不是在块接口中进行更改。在这种情况下,生成外部源时也会导出这些更改。

匿名结构的缺陷

在这种结构化变量中,元素的寻址方式都相同,而不考虑该元素采用 PLC 数据类型声明,还是采用匿名结构声明。

使用匿名结构具有以下缺点:

通过复制进行重用时,结构都相同。这将导致结构更改困难。

匿名结构与 PLC 数据类型 (UDT) 的相同结构不兼容。

由于在运行过程会检查结构元素的类型是否匹配,因而可导致系统性能下降。

由于所有元素必须单独评估,因此在使用匿名结构时,很容易超出上限。

示例

以下示例说明如何定义“MyUDT” PLC 数据据类型。

接口

PLC 数据类型声明表的结构

下图是 PLC 数据类型的声明表结构

接口

各列的含义

下表列出了各列的含义。可根据需要显示或隐藏各列。显示的列数取决于 CPU 类型。

说明
  单击符号以移动或复制变量。
名称 变量名称。
数据类型 变量的数据类型。
默认值 PLC 数据类型声明中用于预定义变量的值。
可选择是否指定默认值。如果未指定任何值,则使用指定数据类型的预定义值。例如,BOOL 类型的预定义值为“false”。
在 HMI 工程组态中可见 显示默认情况下,该变量在 HMI 选择列表中是否显示。
从 HMI/OPC UA 可访问 指示在运行过程中,HMI/OPC UA 是否可访问该变量。
从 HMI/OPC UA 可写 指示在运行过程中,是否可从 HMI/OPC UA 写入变量。
设定值 设定值是指在调试过程中可能需要微调的值。经过调试之后,这些变量的值可作为起始值传输到离线程序中并进行保存。  

 

        审核编辑:彭菁

打开APP阅读更多精彩内容
声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉

全部0条评论

快来发表一下你的评论吧 !

×
20
完善资料,
赚取积分