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

    浏览量

    11706
  • 标识符
    +关注

    关注

    0

    文章

    12

    浏览量

    7496

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

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

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

扫码添加小助手

加入工程师交流群

    评论

    相关推荐
    热点推荐

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

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

    枚举类型的讲解

    枚举是一个基本的数据类型,它可以让数据更简洁。 如果写一个判断星期的文章,我们当然可以使用宏定义来使代码更加易懂,不过: #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

    变量控件实验

    数据、变量、数字等等显示。2、实验设备下载软件一个,HMIMaker下载软件链接,http://www.gz-yixian.com/Download.asp,单片机智能
    的头像 发表于 11-20 15:04 617次阅读
    <b class='flag-5'>变量</b>控件实验

    C语言结构体使用

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

    影响同步带模组成本的五大核心变量分析

    影响同步带模组成本的五大核心变量
    的头像 发表于 10-15 17:52 420次阅读
    影响同步带模组成本的五大核心<b class='flag-5'>变量</b>分析

    PLC中Static和Temp变量的区别

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

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

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

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

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

    SQL 通用数据类型

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

    定义IO初始化结构体

    由上述IOPORT相关功能的枚举类型我们可以知道,在对IOPORT模块进行初始化时需要根据情况配置它们。因此我们定义一个IOPORT初始化的结构体类型IOPORT_Init_t,它的成员包括了由上述所有枚举类型所声明的
    的头像 发表于 07-16 16:26 1120次阅读

    Ansible Playbook中的变量使用技巧

    在inventory中定义的连接变量(比如ansible_ssh_user);优先级第二。
    的头像 发表于 04-15 10:26 684次阅读

    别再说你的单片机RAM不够用了,来看看这个吧(可下载)

    的数据类型-结构体类型,对代码中出现的变量进行类别的划分,用构造的结构体类型定义结构体变量,在写 or 看代码的时候,只要看到这个结构体就能
    发表于 03-28 14:12 0次下载