电工学习网

 找回密码
 立即注册
查看: 4194|回复: 1

PLC数据类型UDT的用法

[复制链接]
发表于 2019-8-22 11:16:42 | 显示全部楼层 |阅读模式
    首先我从S7-1200 Easy Plus 手册上搬来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是Struct类型的升级替代,功能基本完全兼容Struct类型。
    具体的PLC数据类型实例如下图所示:

6369930982083527709574508.png

    下面我以S7-1200搭配CM CANopen模块控制埃斯顿伺服电机为例,详细说明PLC数据类型的用法,以下是整个系统的电气网络拓扑图:
6369931017825750686868675.png

    通过查看埃斯顿伺服电机的CANopen手册得知,CANopen协议有许多参数,如最重要的Controlword(控制字)以及Statusword(状态字)等,位置模式包含target_position(目标位置)、profile_velocity(运行速度)、profile_acceleration(运行加速度)和profile_deceleration(运行减速度)等,其他如回零模式、速度模式和转矩模式的参数在此不再赘述。整个伺服控制的过程本质上就是读写这些参数,因此建立分别建立2种数据类型AxisRPDO和AxisTPDO。具体如下图所示:

6369931129988354194231428.png

6369931130568045408735511.png

    埃斯顿伺服电机作为一个设备,其所需要的控制命令以及反馈参数即为它的接口,为此分别新建两个数据类型AxisWrite和AxisRead,如下图所示:

6369931199988430256752037.png
6369931201374367758418345.png

    然后在DB块中新建这几种PLC数据类型的变量,电机的控制的实质就是这几个变量间的数据转移,如下图所示:

6369931270779142986621839.png

    最终编写轴常用的功能块,如使能、复位、停止、位置模式运动、速度模式运动、回零模式运动和轴状态读写功能块等,以一个简单的“复位”功能块为实例,如下图所示:

6369931401248020296276970.png

    最终将这些简单的功能块加以汇总,形成轴控制功能块AxisControl,如下图所示:

6369931442638686256528117.png
来源:西门子工业技术论坛

回复

使用道具 举报

 楼主| 发表于 2019-8-22 11:17:03 | 显示全部楼层
UDT如果是描述实物上的对象,比如一个温控器,那就把整个温控器写成一个UDT。我自己常用的一种温控器UDT包含了170多个数据,结构多层嵌套的定义。所有不同工作模式下用到的所有可能的命令、参数、状态、记录等等全在里面。
UDT如果是描述一个逻辑对象,比如PLC中要到的某种功能载体,也可以写成一个UDT。但是这个UDT有可能和其它的功能有交集,也就是说这个UDT内部的某些元素是可以进一步抽象的,那么就把这些成员进一步定义成UDT2。一个UDT的内部包含其它UDT的意义在于:功能之间的交集可以通过紧凑的标准化形式来沟通,高效便捷不易出错。
UDT做为参数,尤其是做为InOut类型参数来使用,会让FB更加轻灵,FB和FC使用的界限会模糊。UDT和FB的参数化运用,会让程序的易扩展性提高很多。我自己也是近几个月之内改成这种风格,在调试和修改程序的感受上,效率提高好多倍。尤其是写非常复杂的多层抽象封装还要面对需求不断改变的情况,如何在通用化的高效编程和不断变化的个性化需求之间寻找平衡点,是非常有用的。

回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

电工学习网 ( )

GMT+8, 2024-3-29 06:42

Powered by © 2011-2022 www.diangon.com 版权所有 免责声明 不良信息举报

技术驱动未来! 电工学习网—专业电工基础知识电工技术学习网站。

栏目导航: 工控家园 | 三菱plc | 西门子plc | 欧姆龙plc | plc视频教程

快速回复 返回顶部 返回列表