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

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

3天内不再提示

Struct结构数据类型

机器人及PLC自动化应用 来源:机器人及PLC自动化应用 作者:机器人及PLC自动化 2022-07-25 17:02 次阅读
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

结构数据类型(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所示。

3e42ab64-0bf7-11ed-ba43-dac502259ad0.jpg

图1 Struct的定义

3e649198-0bf7-11ed-ba43-dac502259ad0.jpg

图2 Struct的使用

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

3e89b19e-0bf7-11ed-ba43-dac502259ad0.jpg

图3 原始结构

3ea85518-0bf7-11ed-ba43-dac502259ad0.jpg

图4 增加了Struct类型的结构

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

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

3ecf7774-0bf7-11ed-ba43-dac502259ad0.jpg

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

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

3f09f610-0bf7-11ed-ba43-dac502259ad0.jpg

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

3f8ef5ae-0bf7-11ed-ba43-dac502259ad0.jpg

图7 Struct的传送

审核编辑:彭静

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

    关注

    5052

    文章

    14925

    浏览量

    489326
  • 数据
    +关注

    关注

    8

    文章

    7363

    浏览量

    95149
  • Struct
    +关注

    关注

    0

    文章

    31

    浏览量

    11302

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

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

收藏 人收藏
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

    评论

    相关推荐
    热点推荐

    组态屏变量地址映射 / 数据类型不匹配解决方法

    在工业自动化领域,组态屏作为人机交互的核心设备,其与控制器(如PLC、单片机)之间的数据交换依赖于准确的变量地址映射与数据类型匹配。然而,实际工程中,因地址规划混乱或数据类型不一致导致的显示异常
    的头像 发表于 04-22 10:41 321次阅读
    组态屏变量地址映射 / <b class='flag-5'>数据类型</b>不匹配解决方法

    基于凌羽派的OpenHarmony北向应用开发:ArkTS语法-数据类型和变量声明

    可以在程序执行期间具有不同的值。使用TS风格,声明的时候使用冒号给出数据类型。 let hi: string = \'hello\'; let num: number = 0; 2.2 常量声明
    发表于 02-26 14:24

    睿远研究院丨IO-Link规范解读(十五):数据类型详解

    通过示例展示了其结构和传输方式,包括单个使用或打包使用的情形。 基础数据类型包括了 BooleanT、UIntegerT、IntegerT、Float32T、StringT、OctetStringT
    的头像 发表于 01-14 18:25 6092次阅读
    睿远研究院丨IO-Link规范解读(十五):<b class='flag-5'>数据类型</b>详解

    LabVIEW 变体:万能数据容器的艺术

    在LabVIEW的丰富数据类型体系中,变体(Variant)是一种极具灵活性的通用数据类型,其核心价值在于能够兼容并封装LabVIEW中的所有其他数据类型(包括标量、数组、簇、波形等),并支持
    发表于 01-05 11:06

    10个例子代码,C语言结构体的高级

    和一个指向下一个节点的指针。通过链接多个节点,我们可以创建链表的数据结构。 函数指针成员(Function Pointer Members) #include struct
    发表于 01-05 06:32

    Typedef在C语言中的应用

    Typedef 在C语言中频繁用以声明一个已经存在的数据类型的同义字。也可以用预处理器做类似的事。例如,思考一下下面的例子: #define dPS struct s * typedef
    发表于 12-22 13:53

    结构体声明与定义

    一样,去声明我们的结构体操作,但是C语言中规定,声明结构体变量的时候,struct关键字是不可少的。 struct 结构
    发表于 12-11 07:52

    数据域双向链表的代码

    下面是一个简单的示例,演示了如何使用无数据域双向链表进行插入和访问操作: #include #include// 包含offsetof宏 // 定义节点结构struct Node
    发表于 12-11 06:56

    typedef结构体使用

    虽然结构体的出现能够让我们有一个更科学的数据结构来管理数据,但是每次使用结构体都需要struct...,未免显得有些冗长和麻烦。有了type
    发表于 12-08 07:04

    电能质量在线监测装置支持的数据推送频率是多少?

    电能质量在线监测装置的数据推送频率 可灵活配置 ,根据数据类型(稳态 / 暂态 / 事件)和应用场景(电网关口 / 工业用户 / 新能源并网)的不同, 覆盖从毫秒级到小时级的广泛范围 ,主流装置支持
    的头像 发表于 12-05 15:07 639次阅读
    电能质量在线监测装置支持的<b class='flag-5'>数据</b>推送频率是多少?

    C语言程序的结构

    定时器可用来进行时间片的轮询。基于以上的想法,构造了下述数据类型。   typedef unsigned char uInt8   typedef struct {   void (*proc
    发表于 11-26 08:12

    C语言自动类型转换

    一、自动类型转换 数据类型存在自动转换的情况. 自动转换发生在不同数据类型运算时,在编译的时候自动完成。 char类型数据转换为int
    发表于 11-25 08:04

    C语言强制类型转换

    强制类型转换是通过定义类型转换运算来实现的。其一般形式为: (数据类型) (表达式) 其作用是把表达式的运算结果强制转换成类型说明符所表示的类型
    发表于 11-24 06:32

    C语言结构体使用

    有时候需要将不同类型数据组合为一个整体,以便于引用。例如,一名学生有学号、姓名、性别、年龄等属性,如果针对每个属性都单独定义一个变量,那么当有多名学生时变量就难以分清。结构体就是用来管理不同
    发表于 11-12 08:30

    SQL 通用数据类型

    SQL 通用数据类型 数据库表中的每个列都要求有名称和数据类型。Each column in a database table is required to have a name and a
    的头像 发表于 08-18 09:46 930次阅读