博途变量类型_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版本程序

  • 3
    点赞
  • 33
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值