西门子博途有关STRUCT的基本信息

描述

说明

STRUCT 数据类型是指一种元素数量固定但数据类型不同的数据结构。在结构中,也可嵌套 STRUCT 或 ARRAY 数据类型的元素。结构可用于根据过程控制系统分组数据以及作为一个数据单元来传送参数。

变量中直接使用的结构声明称为匿名结构。匿名结构可具有以下形式:

变量

所有后续说明都将基于该结构图。

结构的嵌套深度和数量

在嵌套式结构中,包含至少一个附加结构作为元素。此时,可定义 65535 个函数、函数块、数据块和 PLC 数据类型。各 CPU 的具体上限值与块类型和所有块的总数相关。

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

结构 (STRUCT) 的嵌套层级深度为 8 级。具体的嵌套深度取决于所使用的 CPU。

传递 STRUCT 数据类型的参数

STRUCT 数据类型可作为参数进行传递。有关将 STRUCT 作为参数的更多信息,请参见

“传递 STRUCT 数据类型的变量”

匿名结构的缺陷

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

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

维护成本增加:如果对一个匿名结构进行了多次复制,则在更改过程中该匿名结构也必需进行相应的多次更改。

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

由于系统会检查所有结构元素的类型是否匹配,因而会导致性能下降。

存储空间要求增加:每个匿名结构都是一个单独的对象,其描述信息将加载到 AS 中。

示例

如果在一个 PLC 数据类型 (UDT) 中声明数据类型为 STRUCT 的变量,则使用方式将增加(参见左图)。但是,也可以直接使用数据类型 STRUCT 对变量进行声明(参见右图)。

使用或不使用 PLC 数据类型 (UDT) 对结构化变量“Motor”进行声明:

PLC 数据类型 (UDT) 的结构化变量 非 PLC 数据类型 (UDT) 的结构化变量
变量 变量
声明 STRUCT 数据类型的变量

  要求 块接口已打开。

步骤

要声明 STRUCT 数据类型的变量,请按以下步骤操作:

选择接口中的相应声明部分。
在“名称”列中输入变量名称。
在“数据类型”列中输入“Struct”。输入时系统将提供自动完成功能。
在新变量后将插入空的缩进行。
在第一个空行中插入第一个结构元素。
在该元素后会再插入一个空行。
选择结构元素的数据类型。
可选:更改在块接口其它列中显示的结构元素的属性。
对所有其它结构元素重复步骤 4 到 7。
不必显式完成该结构。结构会以输入的最后一个元素结束。
要在结构后插入新变量,请在结构结尾后留一个空行,然后在第二个空行中启动新变量。

结果 创建数据类型 STRUCT 的变量。

说明 S7-1500:一个数据块中最多有 252 个结构 一个数据块中最多允许有 252 个结构。如果需要更多结构,则必须重新构造自己的程序。例如,可以在多个全局数据块中创建结构。

 

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

全部0条评论

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

×
20
完善资料,
赚取积分