复杂数据类型是基本数据类型的组合。S7-1200CPU支持以下复杂数据类型:
•字符串;
•日期时间(DTL);
•结构(STRUCT);
•数组(ARRAY)。
1.字符串
S7-1200CPU包括两种字符串,STRING和WSTRING均是由字符串最大长度、字符串实际长度以及字符组成,如图4-2所示。
图4-2 字符串的组成
字符串可以在DB、OB/FC/FB接口区、PLC数据类型处定义,定义时可以定义字符串的最大长度,也可以使用默认最大长度,如图4-3所示。
字符串可以以符号寻址的方式整体使用,也可以只使用字符串的某一个字符,例如变量名[2],即为字符串的第2个字符,如图4-4所示。
图4-3 字符串的定义
图4-4 字符串的使用
字符串的使用步骤如下:
①字符串整体使用,将字符串常数‘abcd’移动到字符串类型的变量。
②从字符串“西门子”中取第二个字符“门”,移动到字符类型的变量。
2.日期时间(DTL)
DTL用于表示完整的日期时间,有固定的结构,见表4-4。
表4-4 DTL结构
DTL类型的数据范围为:DTL#1970-01-01-00∶00∶00.0~DTL#2262-04-11-23∶47∶16.854775807,可以在DB块、OB/FC/FB接口区、PLC数据类型处定义,定义DTL时起始值必须包含年、月、日、时、分、秒,TIA博途软件会根据年、月、日自行计算星期的值。
使用DTL时可以使用整个DTL变量,也可以单独使用其中一个组件。如变量名.YEAR、变量名.MINUTE等,如图4-5所示。
(www.xing528.com)
图4-5 DTL数据类型及其单一组件的使用
3.结构(STRUCT)
STRUCT类型是一种由多个不同数据类型元素组成的数据结构,元素可以是基本数据类型,也可以是STRUCT、数组等复杂数据类型以及PLC数据类型等,如图4-6所示。STRUCT类型嵌套STRUCT类型的深度限制为8级。
STRUCT类型的变量在程序中可作为一个变量整体,也可单独使用组成该STRUCT的元素。
STRUCT类型可以在DB、OB/FC/FB接口区、PLC数据类型处定义使用。
图4-6 STRUCT的定义
4.数组(ARRAY)
ARRAY类型是由数目固定且数据类型相同的元素组成的数据结构。
ARRAY类型的定义和使用需要注意以下几点:
•ARRAY类型可以在DB、OB/FC/FB接口区、PLC数据类型处定义;
•数组定义:名称[维度1下限..维度1上限,维度2下限..维度2上限,...]of<数据类型>;
•数组元素的数据类型包括:除数组类型、VARIANT类型以外的所有类型;
•数组下标的数据类型为双整数,下限值必须小于或等于上限值,上下限的限值为-2147483648~2147483647;
•一个数组最多可包含6个维度;
•可以使用局部常量或全局常量定义上下限值;
•使用时,数组元素通过下标进行寻址。下标可以是常数、常量、变量,可以是混合使用(多维数组),不可以是表达式,因此使用数组的变量下标,可以在程序中很容易地实现间接寻址,示例见第4.6章节常见问题5;
•FC的INPUT/INOUT以及FB的INOUT可以定义形如ARRAY[∗]这种变长数组,示例见第5.1.11章节常见问题6;
•数组可以降维使用。
例如:定义全局常量aaa=3,变量bbb为int类型,变量ccc为int类型;数组定义如图4-7所示,数组使用见表4-5。
图4-7 数组的定义
表4-5 数组的使用
免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。