从TIA博途V11版本开始,S7-1200支持PLC数据类型(UDT)。
UDT是一种由多个不同数据类型元素组成的数据结构,可以嵌套到深度限制为8级的UDT类型中。
UDT类型可以在DB、OB/FC/FB接口区处使用,也可以在PLC变量表中使用。UDT类型可以作为一个变量整体使用,也可以作为其组成元素单独使用。在创建DB块时,可以直接创建UDT类型的DB,其中只包含一个UDT类型的变量。这样可以在DB中统一管理UDT类型的数据,方便重复使用和修改。
UDT类型在程序中可与Variant、DB_ANY类型及相关指令配合使用,在理论上,可以将其视为Struct类型的升级替代,其功能与Struct类型基本完全兼容。
UDT建立及应用案例
1、新建UDT
在CPU菜单下,点击“PLC数据类型”选项中的“创建新数据类型”按钮,如图1所示。
图1 新建UDT
2、在弹出页面中,你可以添加所需的变量、类型、初始值、注释等信息,就像图2所示。
图2 定义UDT内的变量
3、在图2中,右键点击红框处并选择“属性”,然后在“常规”选项中可以修改该数据类型的名称,如图3所示。
图3 修改UDT名称
4、DB中使用,如图4所示。
图4 定义UDT类型的变量
5、程序中使用,类似于Struct,如图5所示。
图5 UDT的使用
6、根据UDT定义DB块,如图6所示。
图6 建立UDT类型的DB
当你打开一个DB块时,你会注意到与在DB中直接创建UDT变量相比,层级结构有所不同。在这种配置下,使用内部变量时,体验几乎没有差异。在这种模式下,除非对UDT进行更改,否则DB块中的内容将无法修改,如图7所示,变量呈灰色,表示无法编辑。
图7 UDT类型的DB展开
7、自TIA博途V14SP1版本起,用户能够复制那些结构一致但名称不同的UDT变量,如图8-11所示。
图8 定义不同名称的UDT,但内部变量类型相同
图9 使用UDT建立变量
图10 UDT类型间的MOVE
SCL的版本程序,如图11所示:
图11 SCL版本程序
UDT在PLC变量表的应用
如何实现功能:需将Profinet IO通讯中的I点送入DB,将DB送入Q点,如图12-16所示。
1、建立I点和Q点两个UDT,元素变量类型及排布设置参照通讯对象
图12 I点定义的UDT
图13 Q点定义的UDT
2、PLC变量表和DB块使用UDT
图14 PLC变量表中使用图12-13定义的UDT
图15 DB块中使用的UDT类型定义变量
3、写MOVE程序传递
图16 程序详情
SCL版本程序如图17所示。
- 零基础学PLC之电工基础-控制按钮 2024-11-22
- 高手写PLC程序,只注重这两点! 2024-11-22
- 什么样的人适合自学PLC?先看看你能不能做到这几点.... 2024-11-22
- DCS、PLC相爱相杀多年,工控人都分清楚了吗? 2024-11-22
- 直接上案例!如何编写3台电机轮换的PLC程序? 2024-11-22
- 限时领取 | 85页PLC练习题+5000多套PLC经典实例,工程师必备! 2024-11-22
- 都说自己是PLC编程高手,这6个标准达到了吗?(附老工程师12条编程建议) 2024-11-22
- PLC与常用设备的接线原理图,让你设计更上手 2024-11-22
- PLC编程变量太多,如何规划地址便于记忆? 2024-11-22
- 涨知识 | 变频器1拖2频率不停跳动,是怎么回事? 2024-11-22