博途变量类型_PLC数据类型(UDT)

UDT类型是一种由多个不同数据类型元素组成的数据结构,元素可以是基本数据类型,也可以是STRUCT、数组等复杂数据类型以及其它UDT等。UDT类型嵌套UDT类型的深度限制为 8 级。

UDT类型可以在DB、OB/FC/FB接口区处使用。从TIA 博途 V13SP1 开始,S7-1200 V4.0开始,PLC变量表中的I和Q也可以使用UDT类型。

UDT类型可在程序中统一更改和重复使用,一旦某UDT类型发生修改,执行软件全部编译可以自动更新所有使用该数据类型的变量。

定义为UDT类型的变量在程序中可作为一个变量整体使用,也可单独使用组成该变量的元素。此外还可以在新建DB块时,直接创建UDT类型的DB,该DB只包含一个UDT类型的变量。

UDT类型作为整体使用时,可以与Variant、DB_ANY类型及相关指令默契配合。

理论上来说,UDT是Struct类型的升级替代,功能基本完全兼容Struct类型。

UDT建立及应用案例

1. 新建UDT

点击CPU菜单下,PLC数据类型中的“添加新数据类型”按钮,如图1所示。

26e09352c36b05991b26ae75632ae96d.png

图1 新建UDT

2. 在弹出页面可以添加需要的变量、类型、起始值、注释等,如图2所示。

1d25eff114836139a0b046c862294ac1.png

图2 定义UDT内的变量

3. 在图2红框处右键属性常规,可以修改该数据类型的名称,如图3所示。

9ceb8f9060a912b9d57d92176acedf2e.png

图3 修改UDT名称

4. DB中使用,如图4所示。

56dc6448331e282fa4ff45f14ddf5bd2.png

图4 定义UDT类型的变量

5. 程序中使用,类似于Struct,如图5所示。

b3764dade0fed83826a4eac4ab321d73.png

图5 UDT的使用

6. 根据UDT定义DB块,如图6所示。

ce8912729a63b046f363a5c0752c6c09.png

图6 建立UDT类型的DB

此时打开DB块,可以发现和在DB中新建UDT变量差了层级,在使用内部变量没有太多差别。并且这种方式下,除非修改UDT,否则无法更改DB块中的内容,如图7所示,变量均为灰色。重要用途:参见DB_ANY。

bf7704e7bd7f05051286a7d6e5506239.png

图7 UDT类型的DB展开

7. 从TIA 博途 V14SP1开始,相同结构,但不同名称的UDT的变量,可以直接复制,如图8-11所示。

736b15a4722d2e66448c22a4a6d6fa4e.png

图8 定义不同名称的UDT,但内部变量类型相同

ea3694fc0f935e69f7e947c30f1cba08.png

图9 使用UDT建立变量

87957c37bcbc1f70b0ec4ec104b556b9.png

图10 UDT类型间的MOVE

SCL的版本程序,如图11所示

f166887c4d6bb43f1000d2f07c92f853.png

图11 SCL版本程序

UDT在PLC变量表的应用

实现功能:将Profinet IO通讯中的I点送入DB,将DB送入Q点,如图12-16所示。

1. 建立I点和Q点两个UDT,元素变量类型及排布设置参照通讯对象

12cbe47e1ce51cf9aa04e8979bedc57d.png

图12 I点定义的UDT

e711583b1bfa6747874e80288e199f2c.png

图13 Q点定义的UDT

2. PLC变量表和DB块使用UDT

65db858a26cfb33fcb57ebcb10a09422.png

图14 PLC变量表中使用图12-13定义的UDT

6d109805de0caa97a18b5b63b0161d08.png

图14 DB块中使用的UDT类型定义变量

3. 写MOVE程序传递

94619622dcc14963eaaae7fdc0a81136.png

图16 程序详情

SCL版本程序如图17所示。

e537d495992b2f6178e58d756c03ef76.png

图17 SCL版本程序

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/555103.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Mybatis-Plus条件参数查询手册

【引言】 使用mybatis-plus框架的基础上,直接使用其中的条件参数进行查询还是很方便的。但每次使用到像大于、不等于这样一些不常用条件时,都需要现查,所以记录在这篇博客里,当作一个自己的查询手册。 【手册】 查询方式说明se…

只考计算机知识吗,计算机二级只考一门吗?计算机二级考什么?

计算机二级只考一门吗?计算机二级只需要考一门。合格就可以获得国家二级计算机证。基础知识和操作题是一起考的,国家二级计算机考试是无纸化考试。另外,基础知识都是选择题,操作题包括主要的办公软件的操作以及高级应用。相对于电…

java 最快平衡几个值_Java 集合框架面试问题集锦

Java集合框架(例如基本的数据结构)里包含了最常见的Java常见面试问题。很好地理解集合框架,可以帮助你理解和利用Java的一些高级特性。下面是面试Java核心技术的一些很实用的问题。Q:最常见的数据结构有哪些,在哪些场景下应用它们&#xff1f…

mybatis-plus 如何判断参数是否为空并作为查询条件

判断参数是否为空并作为查询条件 Overridepublic Page<DemandEntity> selectByDepartmentDisplay(DemandEntity demandEntity) {EntityWrapper<DemandEntity> wrapper new EntityWrapper<DemandEntity>();wrapper.eq(!StringUtils.isNullOrEmpty(demandEnt…

html超链接使用d,HTML图像的调用和超链接

1.HTML中图像的使用语法&#xff1a;属性 &#xff1a;src &#xff1a;指定要显示图像的URLwidth &#xff1a;图像的宽度 (默认等比例变化)height &#xff1a;图像的高度title &#xff1a;鼠标悬停时&#xff0c;要显示的文本alt &#xff1a;图片加载失败后现实的文字2.超…

linux 总数 进程_Linux运用一些常用命令,优秀的PHPer都需掌握

作为一名优秀的phper&#xff0c;Linux是必备的一项技能&#xff0c;工作3-5年的基本能明白我讲的道理&#xff01;今天搜集整理了一些Linux服务器运维常用命令,希望对大家有帮助&#xff1a;1.删除0字节文件find -type f -size 0 -exec rm -rf {} 2.查看进程按内存从大到小排列…

Map中的computeIfAbsent方法

文章目录1、概述2、代码示例2.1 示例12.2 示例22.2 示例31、概述 在JAVA8的Map接口中&#xff0c;增加了一个computeIfAbsent&#xff0c;方法签名如下&#xff1a; default V computeIfAbsent(K key, Function<? super K, ? extends V> mappingFunction)Function是一…

计算机系统结构结构相关实验报告,计算机系统结构实验报告.doc

电 子 科 技 大 学实 验 报 告学生姓名&#xff1a; 学 号&#xff1a; 一、实验室名称&#xff1a;计算机学院实验中心二、实验项目名称&#xff1a;计算机系统结构课程实验三、实验原理&#xff1a;1. 由教师给出一个具有基本功能的Verilog HDL流水线源代码&#xff1b;2. 学…

c语言高低位拷贝_C语言指针详解

1为什么使用指针 假如我们定义了 char a’A’ &#xff0c;当需要使用 ‘A’ 时&#xff0c;除了直接调用变量 a &#xff0c;还可以定义 char *p&a &#xff0c;调用 a 的地址&#xff0c;即指向 a 的指针 p &#xff0c;变量 a&#xff08; char 类型&#xff09;只占了一…

音乐计算机怎么用,如何利用电脑录制自己的歌曲(音乐)

一、 如何利用电脑录制自己的歌曲把自己在录音过程中的一些心得和体会告诉大家&#xff0c;希望大家能通过此贴&#xff0c;很快的掌握cooledit pro&#xff0c;并录出自己满意的歌曲。也许你看过之后&#xff0c;会觉得打造一个专业级的声音竟是如此的简单。首先&#xff0c;我…

MybatisPlus中@TableField注解的使用详解

MybatisPlus中TableField注解的使用详解 实现 官方文档说明&#xff1a; com.baomidou.mybatisplus.annotations.TableField TableField注解新增属性 update 预处理 set 字段自定义注入 (讲解&#xff1a;比如我们使用mybatisplus自带的insert()方法向数据库插入数据时&…

dataframe记录数_大数据系列之Spark SQL、DataFrame和RDD数据统计与可视化

Spark大数据分析中涉及到RDD、Data Frame和SparkSQL的操作&#xff0c;本文简要介绍三种方式在数据统计中的算子使用。1、在IPython Notebook运行Python Spark程序IPython Notebook具备交互式界面&#xff0c;可以在Web界面输入Python命令后立刻看到结果&#xff0c;还可将数据…

bug的生命周期、bug状态转换图

当我们发现一个bug的时候&#xff0c;应该怎么理清他们之间的关系呢&#xff1f;一个bug 从open到close的所有状态 都是我们测试人员需要注意的。 一、bug的状态 新建&#xff08;New&#xff09; 新发现的bug&#xff0c;未经评审决定是否指派给开发人员进行修改。 确认&…

青岛经济职业学校有计算机专业吗,青岛经济职业学校

原标题&#xff1a;青岛经济职业学校山东省青岛第二十中学(青岛经济职业学校)是青岛市教育局属公办中等职业学校、国家级重点职业学校、省规范化学校、省教学示范学校、省教学科研示范学校、省首批健康示范学校、市文明标兵单位、市首批办学模式改革示范学校、市首批文明校园。…

wps居中对齐不在中间_WPS文字快捷键总结(Windows版本)--值得收藏

WPS Office是一款国产的办公软件套装&#xff0c;有WPS文字、WPS表格和WPS演示三个板块&#xff0c;可以实现办公软件最常见的文字、表格、演示等多种功能&#xff0c;支持阅读和输出PDF文件&#xff0c;全面兼容Microsoft Office97-2010格式。想要熟练地使用WPS办公软件&#…

bugzilla使用规范分享

bugzilla使用规范分享 1.new/confirmed 测试人员将Bug提交给任务分发人员&#xff08;研发模块负责人&#xff09;&#xff0c; 此时Bug状态为new/confirmed&#xff0c;开始Bug的生命周期&#xff0c;如果测试人员知道具体负责的研发人员&#xff0c;也可以直接指定&#x…

管理计算机(域)的内置账户名称,管理active directory中用户和计算机账户

匿名用户1级2013-05-29 回答Active Directory用户账户用于验证用户身份&#xff0c;指派用户的访问权限。用户必须使用用户账户登录到特定的计算机和域。登录到网络的每个用户应有自己的惟一账户和密码。用户账户也可用作某些应用程序的服务账户。在域控制器上建立的是域用户账…

编程语言_如何正确地学习编程语言

首先&#xff0c;当前学生和职场人学习编程已经成为了一个大的趋势&#xff0c;掌握编程语言不仅能够提升自身获取信息的能力&#xff0c;同时也能够拓展自身的能力边界&#xff0c;这一点在工业互联网时代会有更加明显的体现。编程语言本身并不难&#xff0c;但是要想形成自己…

MySQL——decimal类型长度

分为三种&#xff1a; float&#xff1a;浮点型&#xff0c;含字节数为4&#xff0c;32bit&#xff0c;数值范围为-3.4E38~3.4E38&#xff08;7个有效位&#xff09;double&#xff1a;双精度实型&#xff0c;含字节数为8&#xff0c;64bit&#xff0c;数值范围-1.7E308~1.7E3…

测试游戏帧率电脑温度的软件,游戏中显示帧数和温度方法_游戏画面中实时显示FPS帧数温度技巧...

相信很多游戏玩家平时都是在用电脑玩游戏&#xff0c;而且大家也喜欢看一看自己在在游戏画面中实时的FPS帧数和温度信息。但是很网友对这个游戏画面中如何实时显示FPS帧数、频率、硬件温度不太清楚&#xff0c;下面智能手机网分享一下具体的操作方法&#xff0c;以便大家在玩游…