数组型变量的定义以及应用-CODESYS资源下载区-酷德网 - CoDeSys软件教程下载,CoDeSys工控资讯门户 

酷德网

Kx-M3全新升级!!
查看: 253|回复: 0

数组型变量的定义以及应用

[复制链接]
  • TA的每日心情
    擦汗
    2019-8-13 14:13
  • 签到天数: 32 天

    [LV.5]常住居民I

    发表于 2021-1-27 14:50:35 | 显示全部楼层 |阅读模式
    数组,是数学上的一个重要概念,也广泛用于高级计算机语言,它是指多个相同数据类型的组合。前文结构体(STRUCT)在PLC 编程中的应用(CoDeSys平台) 介绍过结构体,它是不同数据类型的组合。而数组是指相同数据类型的组合。数组分为一维数组,二维数组和三维数组,当然也可以继续增加,但在PLC 编程中已经没有什么实际意义了。今天就像大家讲一下在CODESYS平台的PLC 中数组型变量的使用。说到底,数组也是一种变量,因此要先定义再使用。

    数组的定义
    数组的定义和普通变量的定义是一样的,只是增加数组的维度和个数,如下图所示

    ...
    数组型变量的定义
    共定义三个数组型变量,D1 D2 D3 分别是 一维数组,二维数组,三维数组。地址是数组的首地址,定义好后,PLC会为数组自动分配一段连续的地址。我们要 引用数组,使用[ ]符号,注意是英文输入法下的[ ],而不是中文输入法下的【】。如下图所示,

    ...
    一维数组的地址分配以及读取
    我 们为一维数组分配的首地址是%MD0,也就是数组中第一个元素D1[0] 的地址,D1[1]的地址是%MD1 也就是%MB4,关于CODESYS平台的内存寻址,可以参考 西门子博途与CoDeSys (IEC61131-3)的异同点(二)寻址方式异同。但是一般不建议给数组分配地址,因为这样会增加程序的复杂程度,一般使用指针或是MOVE指令,比如 D1[0]:=%MD0; 关于指针,将会单独介绍

    数组集合的类型
    数组内的数据类型只要一致,可以指向任何类型,甚至是自定义的类型,比如前面讲过的结构体结构体(STRUCT)在PLC 编程中的应用(CoDeSys平台),也可以定义在数组中。比如,我们先定义一个结构体变量 AXIS

    ...
    结构体变量AXIS
    然后再定义一个数组变量A1,它内部的变量类型就是结构体AXIS

    ...
    结构体型数组变量
    当然,你也可以为他分配一个首地址,但是这个地址必须使用L 型寻址,也就是64位的存储空间。关于数据类型的存储空间请参照跟我学编程之PLC常用数据类型介绍(一)


    ...
    上图可以看出,如果使用%MD 为结构体变量定义存储空间,编译会报错,因为结构体内部的数据类型是不确定的,必须预留足够的存储空间。当我们定义首地址后,系统会自动分配存储空间。
    定义好的结构体型数组变量,它的内部结构如下

    ...
    结构体型数组变量的内部
    如上图,可以清楚的看到,它有四个结构体类型组成分别是 A1[0], A1[1], A1[2], A1[3],每个内部又有四个变量。那么我们如何引用呢?对于它的引用,要先数组,后结构体,如下图


    ...
    结构体型数组变量的引用
    关于数组型变量就介绍到这,数组的应用非常广泛,特别时候处理连续的数据,比如通讯和配方,当然,要和指针变量联合使用,等介绍完指针变量后,会举例说明。
    可以这样说,数组就是为ST 语言而生,梯形图处理数组的工程量是十分庞大的,可读性也差。而ST也是专为数据处理而生。

    +10
    打赏鼓励一下!
    回复

    使用道具 举报

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

    本版积分规则

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

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

    GMT+8, 2021-10-17 11:22 , Processed in 0.162352 second(s), 55 queries .

    酷德网

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

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