0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

结构数据类型(Struct)及应用案例

机器人及PLC自动化应用 来源:机器人及PLC自动化应用 作者:机器人及PLC自动化 2022-07-27 16:10 次阅读

结构数据类型(Struct)

Struct类型是一种由多个不同数据类型元素组成的数据结构,其元素可以是基本数据类型,也可以是Struct、数组等复杂数据类型以及PLC数据类型(UDT)等。Struct类型嵌套Struct类型的深度限制为 8 级。Struct类型的变量在程序中可作为一个变量整体,也可单独使用组成该Struct的元素。Struct 类型可以在DB、OB/FC/FB接口区、PLC数据类型(UDT) 处定义使用。

Struct数据类型使用非常灵活,随时可以使用,但是相对于PLC数据类型 (UDT) 有以下缺点,所以建议需要使用Struct类型时,可以使用PLC数据类型(UDT)代替。

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

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

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

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

Struct应用案例

1. 单独使用组成该Struct的元素时,和普通的变量没有区别,只是每出现一个Struct的嵌套层级,变量名增加一个前缀,如图1-2所示。

67fd0bfe-0ccc-11ed-ba43-dac502259ad0.jpg

图1 Struct的定义

680bba50-0ccc-11ed-ba43-dac502259ad0.jpg

图2 Struct的使用

2. Struct可以将一种类型变量放在一起,利于区分,如图3-4所示。

6814972e-0ccc-11ed-ba43-dac502259ad0.jpg

图3 原始结构

681fd5b2-0ccc-11ed-ba43-dac502259ad0.jpg

图4 增加了Struct类型的结构

图4和图3功能明显相同,但图4相对图3,分类更加清晰。

3. 通讯程序中,通常可以把需要发送的数据放在一个Struct中,即看做一个整体,这样在发送区只需填写一个变量即可,如图5所示。

682f4c40-0ccc-11ed-ba43-dac502259ad0.jpg

图5 使用了图4定义的Struct类型

4. MOVE指令支持相同Struct类型的直接传送,如果传送双方是大量数据,并且结构相同,可以先分别将双方数据建立在一个结构,然后用一个MOVE指令一次传送即可,如图6所示。

6839dc78-0ccc-11ed-ba43-dac502259ad0.jpg

程序中直接MOVE,即可传送整个Struct,而不需要若干MOVE。并且,即使两边Struct中的对应元素名称不同也可以传送成功,如图7所示。

68472d38-0ccc-11ed-ba43-dac502259ad0.jpg

图7 Struct的传送

编辑:黄飞

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

    关注

    0

    文章

    29

    浏览量

    10817

原文标题:结构数据类型(Struct)

文章出处:【微信号:gh_a8b121171b08,微信公众号:机器人及PLC自动化应用】欢迎添加关注!文章转载请注明出处。

收藏 人收藏

    评论

    相关推荐

    全面讲解C语言的结构体(struct)

    结构体(struct)是由一系列具有相同类型或不同类型数据构成的数据集合,也叫
    发表于 06-05 14:33 778次阅读
    全面讲解C语言的<b class='flag-5'>结构</b>体(<b class='flag-5'>struct</b>)

    Java的基本数据类型与条件结构

    《Java基础入门》第二篇1 基本数据类型,运算符与表达式,条件结构,循环结构...
    发表于 12-23 08:02

    51单片机中的数据类型解析

    数据类型数据结构中的定义是一个值的集合以及定义在这个值集上的一组操作。数据类型包括原始类型、多元组、记录单元、代数数据类型、抽象
    发表于 11-16 08:45 2.3w次阅读
    51单片机中的<b class='flag-5'>数据类型</b>解析

    vhdl数据类型

    VHDL中的标识符可以是常数、变量、信号、端口、子程序或参数的名字。VHDL中的数据类型可以分成四大类: 标量型(SCALAR TYPE):属单元素的最基本的数据类型,通常用于描述一个单值数据对象
    发表于 03-30 15:59 11次下载

    Struct结构数据类型

    Struct类型是一种由多个不同数据类型元素组成的数据结构,其元素可以是基本数据类型,也可以是Struc
    的头像 发表于 07-25 17:02 2435次阅读

    用户定义数据类型结构

    用户定义数据类型(UDTs)是你自己创建的特殊数据结构。因用户数据类型指派了名字,他们可以用很多次。一旦他们被定义,就可在CPU程序的任意点使用;换句话说,他们是共享数据类型,而且他们
    的头像 发表于 08-19 10:06 1199次阅读

    STRUCT和UDT类型变量是什么意思

    STRUCT和UDT类型变量是表示一个完整结构或一个结构元素的结构化变量。
    的头像 发表于 08-29 11:09 1704次阅读

    SpinalHDL中Bundle数据类型的转换

    SpinalHDL中Bundle与SystemVerilog中的packed struct很像,在某些场景下,与普通数据类型之间的连接赋值可以通过asBits,assignFromBits来实现。
    的头像 发表于 10-17 09:51 996次阅读

    SystemVerilog中的struct

    SystemVerilog“struct”表示相同或不同数据类型的集合。
    的头像 发表于 11-07 10:18 1921次阅读

    结构数据类型Struct介绍

    Struct类型是一种由多个不同数据类型元素组成的数据结构,其元素可以是基本数据类型,也可以是Struc
    的头像 发表于 01-30 10:15 1273次阅读

    什么是数据类型转换

    常用的3种数据类型:1、Python数据类型第一种:字符串(str)。 2、Python数据类型第二种:整数(int)。 3、Python数据类型第三种:浮点数(float)。
    的头像 发表于 02-23 15:21 576次阅读

    Go高性能-两种内存大小为0的数据类型

    Go 中的空结构struct{}{} 的内存大小等于 0,除此之外,还有别的数据类型内存大小也等于 0 吗?
    的头像 发表于 05-22 17:33 500次阅读

    西门子博途中声明STRUCT数据类型的变量

    要声明 STRUCT 数据类型的变量,请按以下步骤操作。
    的头像 发表于 06-21 09:32 2727次阅读

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

    STRUCT 数据类型是指一种元素数量固定但数据类型不同的数据结构。在结构中,也可嵌套 STRUCT
    的头像 发表于 07-12 10:03 3278次阅读
    西门子博途有关<b class='flag-5'>STRUCT</b>的基本信息

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

    ,也可直接使用关键字 STRUCT 声明为一个结构。因此,嵌套深度限制为 8 级。 PLC 数据类型 (UDT) 可在程序代码中统一更改和重复使用。系统自动更新该数据类型的所用使用位置
    的头像 发表于 09-10 09:46 2209次阅读
    PLC <b class='flag-5'>数据类型</b> (UDT) 的基本知识