01 CODESYS应用基础知识之数据类型-CODESYS资源下载区-酷德网 - CoDeSys软件教程下载,CoDeSys工控资讯门户 

酷德网

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

01 CODESYS应用基础知识之数据类型

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

    [LV.1]初来乍到

    发表于 2023-5-19 10:15:08 | 显示全部楼层 |阅读模式
    本章节主要介绍CODESYS的基本知识,包括以下内容:CODESYS支持的数据类型及简单介绍、CODESYS关于数据类型的相关规则、CODESYS数据类型之间的转换。这里必须说明,毕竟我也是学习者,这篇资料难免会有错漏,还请大家积极指正,共同进步。谢谢!
    一、CODESYS支持的数据类型与介绍:
           目前CODESYS提供的IDE所支持的数据类型有:__UXINT、__VECTOR、__XINT、__XWORD、BIT、BOOL、BYTE、DATE、DATE_AND_TIME、DINT、DT、DWORD、INT、LINT、LREAL、LTIME、LWORD、REAL、SINT、STRING、TIME、TIME_OF_DAY、TOD、UDINT、ULINT、USINT、WORD、WSTRING
    1. 常用的数据类型介绍:

    2. BIT:位数据类型,数据大小为一个bit,数据范围0~1

    3. BOOL:布尔数据类型,数据大小为一个bit,数据只能是TRUE或FALSE

    4. BYTE:字节数据类型,数据大小为一个字节大小(8个位),数据范围0~255

    5. DATE:日期数据类型,及PLC系统当前的时间,格式:D#年-月-日

    6. DATE_AND_TIME:日期时间数据类型,详细显示到时、分、秒,格式:DT#年-月-日-时-分-秒

    7. DINT:有符号双倍整形数据,数据大小为4个字节(32位),有符号就是最高位代表符号位。

    8. DT:与DATE_AND_TIME相同

    9. DWORD:有符号双字类型数据,这里的数据大小为4个字节(32位),有符号就是最高位代表符号位。

    10. INT:有符号整形数据类型,数据大小为2个字节,有符号就是最高位代表符号位。

    11. LINT:有符号长整形数据类型,数据大小为跟PLC系统有关,CPU位数是32位则为32位,有符号就是最高位代表符号位。

    12. LREAL:长实数类型,数据大小为8个字节

    13. LTIME:长整数时间设置,数据大小为8个字节,主要用来设置定时器的延时时间,格式为LTIME#xxx时间单位

    14. LWORD:长字类型数据,数据大小与CPU的位长度有关(32位的系统则为32位,64位的系统为64位)

    15. REAL:实数类型数据,数据大小为4个字节

    16. SINT:有符号短整形数据类型,数据大小为2个字节,有符号就是最高位代表符号位。

    17. TIME:整数时间数据类型,数据大小为4个字节,主要用来设置定时器的延时时间,格式为TIME#xxx时间单位。

    18. TIME_OF_DAY:年-月-日设置数据类型,该数据类型用来设置系统的年月日,数据格式:年-月-日

    19. UDINT:无符号双整形数据类型,数据长度为8个字节,无符号类型意味着数据最小为0

    20. ULINT:无符号长整形数据,数据大小与PLC系统有关,CPU为32位的则为32位,无符号类型意味着数据最小为0

    21. USINT:无符号短整形数据,数据大小为2个字节,无符号类型意味着数据最小为0

    22. WORD:字类型数据,数据大小为2个字节
    复制代码
    二、CODESYS关于的数据类型的相关规则:
    1、在CODESYSIDE中,数据类型与实例化不区分大小写,意味着在同个POU中,应该注意避免出现冲突的实例化数据;
    2、在CODESYS中,不同数据类型的变量不能直接赋值或运算;
    3、CODESYS中定义一个变量的基本格式是:
    方式1:文本格式
    1. PROGRAM PLC_PRG
    2. VAR                      //这里可以指定VAR到END_VAR之间的数据读写方向,默认是VAR,可读可写。还有INPUT_VAR和OUTPUT_VAR等//
    3.         
    4.         TEST:DATE;     //冒号(:)左边是变量名,右边对应为数据类型//
    5.         TEST_0:DATE_AND_TIME;
    6.         TEST_DT:DT;
    7.         TEST_REAL:LREAL;
    8.         TEST_LTIME:LTIME;
    9.         TEST_DAY:TIME_OF_DAY;

    10. END_VAR
    复制代码
    方式2:表格模式
    01 CODESYS应用基础知识之数据类型-1.jpg


    (欢迎继续补充)
    /
    三、CODESYS中变量数据类型的强制转换方法:
           在第二节我们讲到,CODESYS中不同数据类型的变量无法直接赋值或运算,但是在实际的编程中,往往需要进行不同类型数据的复制与运算。CODESYS为我们提供了许多数据类型强制转换函数来满足我们的需求:
    1. 1、这些函数的基本格式为:原数据类型_to_目标类型(原类型对应的变量)

    2. 2、这个是CODESYS提供的内置转换函数,目前支持任何数据类型之间的转换!

    3. 3、举个例子:
    4.    VAR_0:BOOL;
    5.    VAR_1:LTIME;

    6.    VAR_0 := LTIME_TO_BOOL(VAR_1);   //将LTIME数据类型变量转换为BOOL型//
    7.    VAR_1 := BOOL_TO_LTIME(VAR_0);   //将BOOL数据类型变量转换为LTIME型//


    8. 4、对于梯形图或顺序功能图格式的程序:看图哈
    复制代码
    01 CODESYS应用基础知识之数据类型-2.jpg


    /
    四、CODESYS中实现泛型变量及功能函数的重载
          CODESYS为我们提供了通用数据类型ANY。任何类型的数据都可以赋值给any类型的变量,ANY是一个结构体类型,包含成员diSize,pValue和Typeclass。ANY类型变量在函数或功能块中只能作为输入变量!!
    1.       ANY.diSize:通过此成员变量可以知道赋值给ANY的变量的字节大小;

    2.       ANY.pValue:这是一个动态数组,数组元素为赋值给ANY的变量的每个字节的数据;如pValue[0]为第0个字节的数据;

    3.       ANY.Typeclass: 该成员变量类型为num TYPE_CLASS,记录变量的实际数据类型。
    复制代码
    利用ANY变量实现功能函数重载的实例:
          第一步,创建工程时,工程的库管理器中应添加IBaseLibrary库:
    01 CODESYS应用基础知识之数据类型-3.jpg


    这个库的位置:
    01 CODESYS应用基础知识之数据类型-4.jpg


    进入高级选项中,查找路径:Intern->IoDriverBase->IBase。
        第二步,这里分两种情况讲解,创建自定义FB的重载和创建自定义FUN函数的重载
    01 CODESYS应用基础知识之数据类型-5.jpg


    这个是FB的重载实现框架
    01 CODESYS应用基础知识之数据类型-6.jpg


    这里是FUN的重载实现框架:
    01 CODESYS应用基础知识之数据类型-7.jpg


    01 CODESYS应用基础知识之数据类型-8.jpg


    +10
    不赞一个?
    打赏鼓励一下!
    回复

    使用道具 举报

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

    本版积分规则

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

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

    GMT+8, 2026-11-9 03:46 , Processed in 0.186586 second(s), 49 queries .

    酷德网

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

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