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

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

3天内不再提示

S7-1200中UDT类型变量的使用方法

h1654155282.3538 来源:技成电工课堂 作者:技成电工课堂 2021-04-18 11:58 次阅读

今天给大家讲解一下S7-1200中UDT类型变量的使用方法,PLC数据类型我们也叫做UDT数据类型,是由多个不同数据类型元素组成的数据结构,这其中的元素可以是STRUCT、数组等复杂数据类型等等。

UDT数据类型可以在程序中同意更改或重复使用,一旦某个UDT类型发生修改,然后执行软件的全部重建功能,就可以自动更新所有使用这个数据类型的变量。

定义UDT数据类型的变量在程序中应用时,可以作为一个变量整体使用,也可以单独使用组成该变量的元素。

此外,我们还可以在创建DB块时,可以跟创建系统数据类型DB一样,直接创建UDT类型的DB,这个DB只包含一个UDT类型的变量。

UDT是用户自定义数据类型,用户有时为了方便,先创建一个UDT(和创建DB块一样),写好数据结构。

然后,在创建DB块时,如果需要可以插入建好的UDT(输入个Name,类型输入UDT的名字,比如UDT1),如果切换到数据视图,即可看到原先创建的UDT的结构了。

有时需要建立多个数据块,但数据块的结构,数据类型都是一样的,但又不能在同一个数据块中保存,这时可以先建一个UDT,通过UDT再创建其余的几个块。

举例来说,你需要控制10个电机,它们的属性都是基本相同的:如“正转(BOOL)”、“反转(BOOL)”、“速度(INT)”、“加速度(INT)”、“减速度(INT)”等,如果程序中你需要用到这些属性,那么你可能需要为10个电机都建立这些变量,如果是单独建立,你就需要建立10*5=50个变量;如果你用UDT来处理,那就简单多了。

先定义一个UDT,名字是MOTOR,里面添加上面所说的2个BOOL变量和3个INT变量(当然有需要可以添加其它数据类型的变量),然后建一个DB块,在里面建立10个变量M1~M10,数据类型就是MOTOR,保存后你会发现这10个变量都包括以上的几个属性,这样你就可以直接在程序中使用了。

也就是说UDT的作用就是方便编程者的,对于程序的运行而言不是必需的,从数据类型的角度来说,UDT甚至不会被PLC直接接受。将一个带有UDT的程序下载到PLC中,然后新建一个PLC,上传程序,在传上来的程序中你是找不到UDT的,UDT更像是对DB结构的注释!

下面我们来看一下S7-1200 PLC在博途软件中使用UDT类型变量编程的方法。

STEP1:新建UDT

在项目树下找到相应PLC站点下的“PLC数据类型”中的“添加新数据类型”,双击一下即可创建UDT。

pIYBAGB7rrWAZqgxAAGbmAhQU0w241.png

创建完后,可以对创建的UDT进行重命名,比如命名为Motor。

o4YBAGB7rruAaqt-AADmZ5HWwWs032.png

STEP2:添加UDT中的变量

在打开的工作区中添加变量、数据类型和注释等。

pIYBAGB7rsCANRn2AADqetay2R0408.png

STEP3:在DB块中使用新建的UDT数据类型

新建DB块,并打开DB块,DB块的名称为“Motor_Data”,然后在DB块中定义一个变量名称为:Motor_Control,数据类型为Motor的变量。

pIYBAGB7rsWADTM6AADxnzL4T7M210.png

ed66afa6931d4c1eabb0fb8d1ac4b2ae?from=pc

STEP4:程序中使用UDT数据类型的变量

在编写程序时,可以使用创建的UDT中的变量进行编程。

ef20031e0b1d4aaba9a0a5526fc7e4b3?from=pc

这就是S7-1200中UDT类型变量的使用方法,通过后面的软件操作截图,应该会比较容易理解,你学会了吗?
责任编辑人:CC

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

    关注

    0

    文章

    613

    浏览量

    28359
  • S7-1200
    +关注

    关注

    11

    文章

    331

    浏览量

    17956
收藏 人收藏

    评论

    相关推荐

    S7-1200如何通过附加声明来覆盖所声明的变量

    S7-1200/1500:在 FC 中使用 AT,对于 S7-1200/1500 的 FC,覆盖变量和被覆盖变量的数据长度必须相同。如果无
    发表于 07-08 10:31 966次阅读

    基于S7-1200的设备与网络组态

    本文档内容介绍了基于S7-1200的设备与网络组态,以及S7-1200的概要及功能。
    发表于 09-25 18:14 28次下载
    基于<b class='flag-5'>S7-1200</b>的设备与网络组态

    基于S7-1200的PLC的编程及扩展

    S7-1200 系列是一款可编程逻辑控制器 (PLC, Programmable Logic Controller),可以控制各种自动化应用。S7-1200设计紧凑、成本低廉且具有功能强大的指令集
    发表于 09-25 18:39 24次下载

    s7-1200系统手册

    S7-1200适用
    发表于 10-23 09:41 0次下载

    S7-1200入门手册

    S7-1200适用
    发表于 10-23 09:34 0次下载

    s7-1200技术规范

    S7-1200适用
    发表于 10-23 09:29 0次下载

    使用S7-1200系列的存储卡

    本文介绍了S7-1200系列存储卡的功能、使用方法和常见问题。
    发表于 04-30 09:41 11次下载

    S7-1200:DB_ANY类型

    DB_ANY 数据类型用来标识任意数据块。对于 S7-1200,可以选择访问编程期间尚不可用的数据块。为此,在访问块的块接口中创建一个 DB_ANY 数据类型的块参数。数据块名称或先前分配给数据块名称的 DB_ANY 数据
    的头像 发表于 03-11 09:33 4728次阅读

    S7-1200使用AT覆盖变量

    S7-1200 要访问声明变量内的数据区域,可以通过附加声明来覆盖所声明的变量。这样可以选择对不同数据类型的已声明变量进行寻址,例如,可以使
    的头像 发表于 03-11 11:10 4015次阅读

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

    STRUCT和UDT类型变量是表示一个完整结构或一个结构元素的结构化变量
    的头像 发表于 08-29 11:09 2212次阅读

    关于S7-1200S7-1500 PLC的通信

    WinCC V7.4SP1针对S7-1200S7-1500通信,可以创建状态变量和控制变量,用来显示和控制
    发表于 10-09 10:05 2212次阅读

    S7-1200的Deserialize与Serialize介绍

    S7-1200将Byte数组(即Byte流)看做是序列,也就是标准数组。与之相反,其他所有格式都是非序列的,通常程序使用的都是非序列的,例如Struct,UDT,或其他格式。
    的头像 发表于 12-26 11:36 1637次阅读

    S7-1200S7-300集成DP口的主从通信(1200做主站,300做从站)

    使用 S7-1200S7-300 的集成 DP 接口进行主从通信,这里是将 S7-1200 做为主站,将 S7-300 做为从站,即:S7-1
    的头像 发表于 02-06 11:16 4921次阅读

    S7-1200S7-300的选型区别

    在硬件扩展方面,S7-300的主机架多支持八个扩展模块,而S7-1200支持扩展多八个信号模块和多三个通信模块。以S7-300 CPU313C和S7-1200 CPU1214C为例,
    的头像 发表于 05-04 15:18 1693次阅读
    <b class='flag-5'>S7-1200</b>与<b class='flag-5'>S7</b>-300的选型区别

    S7-1200使用数组实现间接寻址的方法

    S7-1200 从 固件版本 V2.0 开始就支持数组下标使用变量的方式,这就意味着数组是最方便的间接寻址的方法,通过改变下标变量实现各式各样的功能。
    发表于 07-31 09:04 4104次阅读
    <b class='flag-5'>S7-1200</b>使用数组实现间接寻址的<b class='flag-5'>方法</b>