您现在的位置是:首页 > PLC技术 > PLC技术

S7-300/400的复杂数据类型

来源:艾特贸易2017-09-21

简介复杂数据类型包括日期和时间 (DATE_AND_TIME) 、字符串 (String) 、数组 (Array) 、结构 ( Struct) 和用户定义的数据类型 (UDT) 。 (1) 日期和时间 日期和时间 (DATE_AND_TIME ,缩写为 DT) 占用 8 个字节

    复杂数据类型包括日期和时间(DATE_AND_TIME)、字符串(String)、数组(Array)、结构( Struct)和用户定义的数据类型(UDT)

   (1)日期和时间

    日期和时间(DATE_AND_TIME,缩写为DT)占用8个字节的BCD码。第1~6个字节分别存储年、月、日、时、分和秒,毫秒存储在整个第7个字节和第8个字节的高4位,星期存放在第8个字节的低4位。星期日的代码为1,星期一…星期六的代码为27。例如2010727123025. 123秒可以表示为DT#10 - 07 - 27 - 123025. 123,可以省略毫秒部分。

    通过调用程序编辑器的文件夹“\LibrariesStandard LibraryIEC Function Block”中的IEC功能(见附表B-4),可以实现DATE_AND_TIME数据类型与基本数据类型之间的相互转换、日期时间的比较和加、减,具体的使用方法见在线帮助。

    调用SFC 0SET_CLK”,可以设置和启动CPU时钟的时间和日期。调用SFC1READ_CLK”,可以读取CPU系统时钟当前的日期和时间。

   (2)字符串

    字符串( String)是字符(Char)组成的一维数组,每个字节存放1个字符。第1个字节是字符串的最大字符长度,第2个字节是字符串当前有效字符的个数,字符从第3个字节开始存放,一个字符串最多有254个字符。字符串的默认长度为254B,在DB4中定义字符串Fault的长度为20个字符(见图4-7),它只占用从DB4. DBB20开始的22B,其初值只有4个字符‘Over’。String变量中未使用的字节地址被初始化为B#16#00

    DB4下载到仿真PLC,用变量表监控DB4. DBB20DB4. DBB21,它们的值分别为20(字符串Fault的长度为20)和4(当前有4个字符)。还可以看到从DB4.DBB22开始的4个字节中字符‘Over’的ASCII码。可以用语句表中的基本指令访问字符串中的字符,例如用指令“L   DB4. Fault[3]”来访问字符串Fadt的第3个字符。

    可以用标准库的IEC库中的21个功能来处理字符串变量(见附表B-4),包括字符串与其他数据类型的转换、字符串的比较和字符串的编辑,具体的使用方法见在线帮助。

   (3)数组

    数组( ARRAY)是同一类型的数据组合而成的一个单元,数组的维数最多为6维。图4-6给出了一个二维数组ARRAY[1..21..3]的内部结构,它共有6个字节元素,图中的每一小格为二进制的1位,每个元素占一行(一个字节)。ARRAY后面的方括号中的数字用来定义每一维的起始元素和结束元素在该维中的编号,可以取-32768~32767之间的整数。各维之间的数字用逗号隔开,每一维开始和结束的编号用两个小数点隔开。如果某一维有n个元素,该维的起始元素和结束元素的编号可以采用1n,例如AR-RAY[1..100]

二维数组的结构

    4-6    二维数组的结构

   (4)结构

    结构( STRUCT)可以是不同类型的数据的组合。可以用基本数据类型、复杂数据类型(包括数组和结构)和用户定义数据类型( UDT)作为结构中的元素,例如一个结构可以由数组和结构组成,结构可以嵌套8层。用户可以把过程控制中有关的数据统一组织在一个结构中,作为一个数据单元来使用,而不是使用大量的单个的元素,为统一处理不同类型的数据或参数提供了方便。

   (5)用户定义数据类型

    用户定义数据类型( User- Defined Data Types)简称为UDT,是一种特殊的数据结构,用户只需要对它定义一次,定义好以后可以在用户程序中作为数据类型使用。可以用它来产生大量的具有相同数据结构的数据块,用这些数据块来输入用于不同目的的实际数据。例如生成用于颜料混合配方的UDT后,可以用它生成用于不同颜色配方的数据组合。用户定义数据类型由基本数据类型和(或)复杂数据类型组成。定义好以后可以在符号表中为它指定一个符号名,使用UDT可以节约录入数据的时间。