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

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

3天内不再提示

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

机器人及PLC自动化应用 来源:机器人及PLC自动化应用 作者:机器人及PLC自动化 2022-08-29 11:09 次阅读

STRUCT和UDT类型变量是表示一个完整结构或一个结构元素的结构化变量。

下面是有效结构变量的例子:

Image //结构的标识符
Image.element //结构元素的标识符
Image.arr //在一个结构中的一维数组标识符
Image.arr[2,5]//在一个结构中的数组元素的标识符

赋值一个完整结构(Assigning a Complete Structure)

一个完整结构只能赋值给另一个完整结构,两个结构内部的名称和数据类型应完全匹配。下面的赋值是有效的:

structname_1 := structname_2 ;

赋值结构元素(Assigning Structure Components)

能够将一个同类型变量、同类型表达式或另一个结构部件赋值给任何结构元素。

能够通过说明结构的标识符来引用结构元素,结构元素的标识符用一个句点分开。下面的赋值是有效的:

structname_1.element1 := Value ;
structname_1.element1 := 20.0 ;
structname_1.element1 := structname_2.element1 ;
structname_1.arrname1 := structname_2.arrname2 ;
structname_1.arrname[10]:= 100 ;

例子(Example)

FUNCTION_BLOCK FB3
VAR
AUXVAR : REAL ;
MEASVAL : STRUCT//目标结构
VOLTAGE :REAL ;
RESISTANCE :REAL ;
SIMPLEARR : ARRAY [1..2, 1..2] OF INT ;
END_STRUCT ;
PROCVAL : STRUCT//源结构
VOLTAGE : REAL ;
RESISTANCE : REAL ;
SIMPLEARR : ARRAY [1..2, 1..2] OF INT ;
END_STRUCT ;
END_VAR

BEGIN
//赋值给一个完整结构

MEASVAL := PROCVAL ;
//赋值给地个结构元素
MEASVAL.VOLTAGE := PROCVAL.VOLTAGE ;
//将一个结构元素赋值给同类型变量
AUXVAR := PROCVAL.RESISTANCE ;
//将一个常量赋值给结构元素
MEASVAL.RESISTANCE := 4.5;
//将一个常量赋值给一维数组元素
MEASVAL.SIMPLEARR[1,2] := 4;
END_FUNCTION_BLOCK



审核编辑:刘清

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

    关注

    0

    文章

    38

    浏览量

    11315
  • 标识符
    +关注

    关注

    0

    文章

    12

    浏览量

    7335

原文标题:SCL :STRUCT和UDT类型变量的赋值

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

收藏 人收藏

    评论

    相关推荐

    Linux环境变量配置方法

    Linux上环境变量配置分为设置永久变量和临时变量两种。环境变量设置方法同时要考虑环境Shell类型,不同
    的头像 发表于 10-23 13:39 114次阅读

    typedef和struct有啥区别

    struct 结构体名称 { 数据类型 成员 1 ;数据类型 成员 2 ;...}; 例如,我们可以定义一个表示学生
    的头像 发表于 08-20 11:00 936次阅读

    typedef struct和直接struct的区别

    关键字和结构体名来引用这个类型变量。这种方式在声明结构体类型和声明结构体变量时都需要使用 struct 关键字
    的头像 发表于 08-20 10:58 2427次阅读

    技术干货驿站 ▏深入理解C语言:基本数据类型变量

    在C语言中,数据类型变量是编程的基础,也是理解更复杂概念的关键。数据类型决定了变量的内存分配、存储范围和操作方式,而变量则是存储数据的容器
    的头像 发表于 07-26 17:53 1915次阅读
    技术干货驿站 ▏深入理解C语言:基本数据<b class='flag-5'>类型</b>和<b class='flag-5'>变量</b>

    嵌入式中C语言结构体基本实现

    :     在struct 中声明了一个含有若干新成员的数据类型。     tag  是结构体标签。     member-list  是标准的变量定义,比如 int i; 或者 float f,或者其他
    的头像 发表于 05-11 08:49 932次阅读
    嵌入式中C语言结构体基本实现

    C语言数据类型有哪些

    在 C 语言中,数据类型指的是用于声明不同类型变量或函数的一个广泛的系统。变量类型决定了变量
    发表于 03-20 10:56 437次阅读
    C语言数据<b class='flag-5'>类型</b>有哪些

    C语言变量应用详解

    变量其实只不过是程序可操作的存储区的名称。C 中每个变量都有特定的类型类型决定了变量存储的大小和布局,该范围内的值都可以存储在内存中,运算
    发表于 03-18 11:18 343次阅读
    C语言<b class='flag-5'>变量</b>应用详解

    字符型、指针型等变量等该如何初始化

     对于数值类型变量往往初始化为0,但对于其他类型变量,如字符型、指针型等变量等该如何初始化呢?
    的头像 发表于 03-18 11:02 1251次阅读

    Harmony 鸿蒙页面级变量的状态管理

    @State装饰的变量是组件内部的状态数据,当这些状态数据被修改时,将会调用所在组件的build方法进行UI刷新。 @State状态数据具有以下特征: 支持多种类型数据:支持class、number
    的头像 发表于 01-25 10:42 554次阅读
    Harmony 鸿蒙页面级<b class='flag-5'>变量</b>的状态管理

    Harmony 鸿蒙页面级变量的状态管理

    @State装饰的变量是组件内部的状态数据,当这些状态数据被修改时,将会调用所在组件的build方法进行UI刷新。 @State状态数据具有以下特征: 支持多种类型数据:支持class、number
    发表于 01-24 20:04

    C语言:指针中内存是如何存放变量

    在程序中定义一个变量,那么在程序编译的过程中,系统会根据你定义变量类型来分配「相应尺寸」的内存空间。那么如果要使用这个变量,只需要用变量
    发表于 01-08 10:14 407次阅读

    详解C语言变量和数据类型

    C语言大家都不陌生吧,计算机、电子信息、通信工程、自动化等专业的必学课程,前面和大家介绍过C语言的历史和编程环境,今天再来介绍一下变量和数据类型
    的头像 发表于 12-11 10:40 800次阅读
    详解C语言<b class='flag-5'>变量</b>和数据<b class='flag-5'>类型</b>

    变量的声明和定义有什么区别和联系

    内存空间并指定一个标识符或名称以及数据类型。定义变量时,需要指定变量类型以及它的初始值(可选)。变量的定义通常包括关键字(如int、flo
    的头像 发表于 12-07 16:14 1058次阅读

    C语言编程时,各种类型变量该如何初始化?

    C语言编程时,各种类型变量该如何初始化? 在C语言中,每个变量都需要在使用之前进行初始化。初始化是为变量分配内存空间并赋予初始值的过程。C语言提供了不同的初始化方式,根据
    的头像 发表于 12-07 13:53 1118次阅读

    decimal类型怎么定义

    decimal类型。 在C#中,要定义一个decimal类型变量,可以使用decimal关键字和合法的标识符来声明变量,例如: decimal myDecimal; 这样就定义了一个
    的头像 发表于 11-30 10:52 1425次阅读