
调用SFC0”SET_CLK”可以设置和启动CPU时钟的时间和日期。调用SFC1”READ_CLK“可以读取CPU系统时钟当前的日期和时间。
2、字符串
字符串(String)是字符(Char)组成的一堆数组,每个字节存放一个字符。第1字节是字符串的最大字符长度,第2个字节是字符串当前有效字符的个数,字符从第3个字节开始存放,一个字符串最多有254字符。字符串的默认长度为254B,如下图所示,在DB3中定义字符串Fault的长度为20个字符,它只占用从DB3.DBB20开始的22B,其初始值只有4个字符“over”。String变量中未使用的字节地址被初始化为B#16#00.
可以使用标准库的IEC苦衷的21个功能来处理字符串变量,见下表,包括字符串与其他数据类型的转换、字符串比较和字符串编辑,具体方法参见在线帮助。

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

4、结构
结构(STRUCT)可以是不同类型的数据组合,可以用基本数据类型、负载数据类型(包括数组和结构),和用户定义数据类型(UDT)做为结构的元素,例如一个结构可以由数组和结构组成,结构可以潜逃8层。用户可以把过程控制中有关数据统一组织在一个结构中,作为一个数据单元来使用,而不是使用大量单个的元素,为统一处理不同类型的数据和参数提供了方便。
5、用户定义数据类型
用户定义数据类型(User-Defined Data Types)简称UDT,是一种特殊的数据结构,用户只需要对它定义一次,定义好了可以在用户程序中作为数据类型使用,可以用它来产生大量的具有相同数据结构的数据块,用这些数据来输入用于不同目的的实际数据。例如生成用于颜料混合配方的UDT后,可以用它来生成用于不同颜色配方的数据组合。用户定义数据类型有基本数据类型和复杂数据类型组成。定义好以后可以在符号表中为它指定一个符号名,使用UDT可以节约录入数据的时间。
举例说明:
1、数组的生成和使用
(1)生成数组
可以在数据块中定义数组,也可以在逻辑块的变量声明表中定义它。下面介绍在数据块中定义的方法,在SIMATIC管理器中用菜单命令:【插入】-【S7块】-【数据块】生成数据块DB3,双击打开DB3,默认显示方式为声明视图方式如下图所示:声明视图用于定义、删除和修改共享数据块中的变量,指定它们的名称、数据类型和初始值。第一行和最后一行标有STRUCT和EDN_STRUCT,这两行中间有一个自动生成的临时占位符变量。

按如下图输入

在类型INT所在行的地址列自动生成*2.0,表示一个数组占用2B,地址列 12表示该数组的6个元素一共占用12B,地址列的内容自动生成,可以给每个变量加上注释,数组第一个元素维press[1,1],第6个元素为press[2,3],
(2)给数组元素赋初始值
Step7根据变量的数据类型给出默认的初始值,用户可以修改初始值,定义数组时可以在ARRAY所在的行的初始值中给元素赋初始值,如上图所示。执行菜单命令【视图】-【数据视图】,切换到数据视图方式,将显示数组和结构中个元素的初始值和实际值如下图所示

(3)访问数组中的数据
例如:”TANK” .press[2,1]。其中TANK是数据块DB3的符号名,press是数组名称,它们用英语的句号分开。方括号中的是数组元素的下表,该元素是数组的第4个元素如下图。