应用数组基本数据类型常见问题ARRAY种类是由数量固定不动且基本数据类型同样的元素构成的算法设计。ARRAY种类的概念和应用必须留意以下几个方面:
ARRAY种类可以在DB、OB/FC/FB插口区、PLC基本数据类型处界定;没法在PLC自变量表格中界定。
数组定义:Array[层面1最低值..层面1限制,层面2最低值..层面2限制,...]of <基本数据类型>,较多可包括 6 个层面;
数组元素的基本数据类型包含:除数组种类、Variant类型之外的全部种类;
数组下标底基本数据类型为整数金额,下标准值务必小于或等于上标准值,上极限值的标准值在S7-1200 V3.0以及之前为Int范畴(-32768~ 32767),在S7-1200 V4.0以及之后前为DInt范畴(-2147483648 ~ 21474836487),可以应用部分变量定义或全局性变量定义界定左右标准值,数组的元素数量受DB块剩下室内空间的大小及其单独元素尺寸的限定;
从S7-1200 V2.0逐渐,字符可以不仅是参量、变量定义,还可以是自变量,还能够是混和应用(多维度数组),假如计算机语言是SCL得话,字符还能够是关系式。应用数组的自变量字符,可以在程序中非常容易地完成间接性寻址方式。留意,字符自变量务必是符号名,不可以是DB1.DBW0这类并没有相匹配符号名的绝对地址。
从S7-1200 V4.2逐渐,FC的Input/Output/InOut及其FB的InOut可以界定形如Array[*]这类拉长数组,规定一定是提升FC/FB块,在启用FC/FB的实参中可以填好随意基本数据类型同样的数组自变量;自然,还可以多维度拉长的数组,例如Array[*,*]of Int。
数组可以应用单独数组元素例如"DB1".Static_1[1],还可以应用全部数组例如"DB1".Static_1。多维度数组可以特征提取应用,例如三维数组:3D[0..2,0..3,0..4]of Int是一个3×4×5尺寸的Int数组,3D[0]是一个4×5大小的二维Int数组,3D[0,1]是一个5个元素的一维Int数组,自然多维度数组字符还可以换为自变量,例如3D[Tag_1,1]这类;
S7-1200 V4.2逐渐,多种环境适用数组方式,即Array of FB,那样可以在FB中应用循环系统命令更便捷的撰写程序。不兼容Array[*] of FB。
在TIA 博途 V10.5 SP2,S7-1200 V1.0的情况下,以前引进FieldRead 和 FieldWrite 命令,用以数组下标底变址寻址方式,这类方式 在TIA 博途 V11以后可以由字符自变量彻底替代,而且更加简单化,因此该命令也仅仅坐落于“挪动实际操作>原来”中,用以初期版本往上移殖时应用,它的操作方法参照FieldRead 和 FieldWrite 间接性寻址方式。
数组的基本上操作方法一. DB中建立,如图1所示:
图1 Array在DB中的创建
二. FC的InOut中建立,如图2所示:
图2 Array在FC形参中的创建
三. 数组做为实参,如图3所示:
图3 Array作为FC的实参
四. FC程序中应用数组元素,使用形参,如图4所示:
图4 FC程序中应用形参
五. FC程序中使用数组元素,字符为变址寻址方式,应用形参,如完成下述作用,将0-7这8数量,送进数组字符为0-7的8个元素,如图5-7所示:
(1)FC形参设定,如图5所示:
图5 FC形参设置
(2)程序编写,如图6所示:
图6 程序详细信息
(3)SCL的版本,如图7所示:
图7 SCL版本的程序
六. 在程序中立即应用数组元素,如图8所示:
图8 程序中立即应用数组元素
七. 在程序中立即应用数组元素,字符为变址寻址方式,如完成下述作用,将0-7这8数量,送进数组字符为0-7的8个元素,如图9-11所示:
(1)数据信息块界定,如图9所示:
图9 DB1的定义
(2)程序编写,如图10所示:
图10 程序详细信息
(3)SCL的版本,如图11所示:
图11 SCL版本程序
Array【*】应用案例完成下述作用:应用FC的Input界定数组Array[*] of Int,求进长数组元素的总数,可以依照下列流程来进行。
一. 应用Array[*] ,务必应用如图12所示的命令,测算数组元素的上最低值,进而得到元素数量:
图12 命令部位
二. 界定自变量,如图13所示。赋默认值,测算上最低值,如图14所示:
图13 界定形参
三、测算上最低值程序,如图14所示:
(1)键入Array[*]种类的自变量
(2)所愿上极限值的维数
(3)该维数下的最低值/限制,DINT种类
图14 测算上最低值
四. 求合程序,如图15所示:
图15 求和的程序
五. SCL的版本,如图16所示:
图16 SCL版本程序
六. OB1中启用实参为不一样数组元素数量的数组,如图17所示:
图17 OB1启用程序
Array of FB的应用案例完成下述作用:FB3多次启用FB4,在FB3内部结构循环系统启用,降低程序量。FB4的2个Input:Start,Stop,一个InOut:Run,创建Array[0..7] of FB4。与此同时创建自变量 Array[0..7] of Struct,做为相匹配FB4的插入和导出,如图18所示: