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

    文章

    39

    浏览量

    11754
  • 标识符
    +关注

    关注

    0

    文章

    12

    浏览量

    7520

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

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

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

扫码添加小助手

加入工程师交流群

    评论

    相关推荐
    热点推荐

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

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

    线性回归的类型和应用

    线性回归是一种统计建模方法,用来将连续响应变量描述为一个或多个预测变量的函数。它有助于您理解和预测复杂系统的行为,或者分析试验、金融和生物数据。
    的头像 发表于 03-13 10:20 290次阅读
    线性回归的<b class='flag-5'>类型</b>和应用

    飞凌嵌入式ElfBoard-环境变量之获取环境变量

    (\"SHELL\") 获取名为 SHELL 的环境变量的值,并将返回值存储到 env 变量中,如果存在,返回该变量的值(类型为 char*);如果不存在,返回 NULL。用
    发表于 03-13 08:50

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

    /master/samples/C02_DataTypeAndVariableDeclaration 二、基础知识 ArkTS通过声明引入变量、常量、类型和函数。 2.1 变量声明 使用关键字let声明的
    发表于 02-26 14:24

    “明牌”对局,自变量开源模型超越pi0

    “明牌”对局,自变量开源模型超越pi0
    的头像 发表于 01-10 12:00 5756次阅读
    “明牌”对局,自<b class='flag-5'>变量</b>开源模型超越pi0

    结构体声明与定义

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

    第7章 变量进阶与点阵LED(7.1 7.2)

    走在马路上的时候,经常会看到马路两侧有一些LED点阵的广告牌,这些广告牌看起来绚烂夺目,非常吸引人,而且还会变化很多种不同的显示方式。本章就会学习到点阵LED的控制方式,同时也会学习C语言变量的进阶
    的头像 发表于 12-10 16:25 495次阅读

    枚举类型的讲解

    枚举是一个基本的数据类型,它可以让数据更简洁。 如果写一个判断星期的文章,我们当然可以使用宏定义来使代码更加易懂,不过: #define MON 1 #define TUE 2
    发表于 12-08 08:14

    C语言自动类型转换

    括号, 如把(int)(x/2+y)写成(int)x/2+y则成了把x转换成int型之后再除2再与y相加了。 转换后不会改变原数据的类型变量值,只在本次运算中临时性转换。 强制转换后的运算结果不遵循四舍五入原则。
    发表于 11-25 08:04

    C语言强制类型转换

    和表达式都必须加括号, 如把(int)(x/2+y)写成(int)x/2+y则成了把x转换成int型之后再除2再与y相加了。 转换后不会改变原数据的类型变量值,只在本次运算中临时性转换。 强制转换后的运算结果不遵循四舍五入原则。
    发表于 11-24 06:32

    常用变量的介绍

    寄存器变量,一般较短的变量类型适合定义为寄存器变量,如short、char等; auto:c语言变量缺省存储
    发表于 11-21 07:05

    C语言结构体使用

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

    PLC中Static和Temp变量的区别

    大家好,收到粉丝投稿,让博主讲下Static变量和Temp变量的区别,新入行的兄弟可能会对这两个概念不太能理解。
    的头像 发表于 09-24 14:51 1627次阅读
    PLC中Static和Temp<b class='flag-5'>变量</b>的区别

    rt-thread studio怎么设置才能让char变量是真正的有符号类型

    最近被一个bug折磨了3天,一路debug进来,发现最终的原因是,定义了一个char变量,但实际上是无符号的(代码期望该变量是有符号的)。 然后我检查了以下编译器如下的设置,发现很奇怪,无论是否勾选
    发表于 09-16 08:23

    工业相机的类型及不同类型的应用

    工业相机根据不同的分类标准,可分为多种类型,每种类型都有其独特的应用场景。
    的头像 发表于 08-29 17:07 943次阅读
    工业相机的<b class='flag-5'>类型</b>及不同<b class='flag-5'>类型</b>的应用