CoDeSys入门实战一起学习(十八):数据单元类型(DUT)自定义实操案例-CODESYS资源下载区-酷德网 - CoDeSys软件教程下载,CoDeSys工控资讯门户 

酷德网

HSC6490-cn中国制造,中国芯~
查看: 333|回复: 0

CoDeSys入门实战一起学习(十八):数据单元类型(DUT)自定义实操案例

[复制链接]
  • TA的每日心情
    开心
    2017-11-20 22:07
  • 签到天数: 2 天

    [LV.1]初来乍到

    发表于 2026-3-18 10:39:44 | 显示全部楼层 |阅读模式
    在PLC编程中,默认数据类型(如INT、REAL)难以满足复杂场景需求,例如需关联“电机转速、转向、状态”的组合数据。CoDeSys的数据单元类型(DUT,Data Unit Type)支持自定义结构体、枚举、别名、联合类型,帮助简化编程、统一数据规范。本文将详解DUT的添加、类型选择及扩展用法。

    一、DUT核心类型与应用场景

    DUT包含四种核心类型,适配不同数据组织需求:

    DUT类型

    核心价值

    典型应用场景

    内存特点

    结构体(Structure)

    按业务逻辑组织相关数据

    电机参数、设备状态、坐标信息

    成员内存累加(按字节对齐)

    枚举(Enumeration)

    用语义化名称替代魔法数字,提升可读性

    运行模式、故障代码、报警级别

    占用1/2/4字节(取决于取值)

    别名(Alias)

    统一工程类型定义,便于后期维护

    物理量类型(速度/温度)、数组模板

    无额外内存开销(仅类型映射)

    联合(Union)

    同一内存空间按不同规则解析,节省内存

    通信协议解析、多格式数据复用

    占用最大成员的内存空间



    • 结构体(Structure):将多个不同类型变量组合为一个整体,如“电机参数”结构体包含转速(REAL)、转向(BOOL)、状态(INT);支持继承扩展,适配面向对象编程。
    CoDeSys入门实战一起学习(十八):数据单元类型(DUT)自定义实操案例-1.png



    • 枚举(Enumeration):将离散值定义为名称,如“运行状态”枚举包含“停止(0)、运行(1)、故障(2)”,提升代码可读性。
    CoDeSys入门实战一起学习(十八):数据单元类型(DUT)自定义实操案例-2.png



    • 别名(Alias):为现有数据类型定义别名,如将“REAL”别名设为“Speed_Type”,统一变量类型规范,便于后续修改。


    • 联合(Union):多个变量共用同一段内存,不同场景下读取不同数据,适用于内存紧张且数据不同时使用的场景。
    二、添加数据单元类型(DUT)步骤


    • 选中左侧“Application”节点,右键单击选择“添加对象”;
    • 在弹出的菜单中选择“数据单元类型(DUT)”,进入创建界面;
    • 输入DUT名称(如“Motor_Param_Struct”,便于识别用途),选择数据类型(结构体/枚举/别名/联合);
    • 点击“确认”,完成DUT创建,后续可在编辑器中添加成员变量或定义规则。
    三、DUT扩展与进阶用法

    1. 结构体继承扩展

    若需在现有结构体基础上补充成员,可使用“扩展”功能,无需重复定义原有变量:


    • 创建新结构体DUT,勾选“扩展”选项;
    • 选择需扩展的原有结构体(必须是已定义的结构体);
    • 添加新成员变量,扩展后的结构体将包含原有成员+新增成员,自动同步至当前工程。
    示例:基于“Base_Motor_Param”结构体,扩展“Advanced_Motor_Param”,新增“保护阈值(REAL)”成员,适配高端电机控制场景。

    2. 跨工程DUT复用

    若其他工程已定义所需DUT,可直接扩展复用,提升开发效率:


    • 确保原有工程的DUT已保存,在当前工程中创建新DUT;


    • 开启“扩展”功能,选择“从其他工程导入”,浏览并选中目标DUT文件;


    • 系统自动同步原有DUT定义,可在此基础上补充成员,实现快速复用。
    四、使用DUT的优势


    • 简化编程:复杂数据组合为一个DUT,减少变量数量,调用时直接引用DUT名称,提升代码简洁度;


    • 统一规范:团队开发中定义标准DUT,避免变量类型混乱,便于后期维护;


    • 灵活扩展:通过继承扩展DUT,适配不同场景需求,无需重构原有代码;


    • 提升可读性:枚举、结构体的名称化定义,让代码更易理解,降低调试难度。
    +10
    不赞一个?
    打赏鼓励一下!
    回复

    使用道具 举报

    您需要登录后才可以回帖 登录 | 立即注册 新浪微博登陆

    本版积分规则

    
    顶部qrcode底部
    关注酷德网订阅号,获取更多资讯!

    QQ|Archiver|手机版|小黑屋|酷德论坛 ( 苏ICP备16065247号-1 )|网站地图

    GMT+8, 2026-10-30 12:08 , Processed in 0.139737 second(s), 50 queries .

    酷德网

    © 2001-2013 Hicodesys. 技术支持 by 酷德网

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