1.基本数据类型
基本数据类型见表7-1。
2.复杂数据类型
使用复杂数据类型是为了更好地构造数据,包括数组(ARRAY)、结构(STRUCT)、字符串(STRING)、日期和时间(DATE AND TIME)以及用户定义的数据类型(UDT)等。
表7-1 基本数据类型
(1)数组(ARRAY)
数组是由一组同一类型的数据组合在一起而形成的复杂数据类型。数组的维数最大可以到6维;数组中的元素可以是基本数据类型或者复杂数据类型中的任一数据类型(Array类型除外,即数组类型不可以嵌套);数组中每一维的下标取值范围是-32768~32767,要求下标的下限必须小于下标的上限。
例如,建立一个数组,数组有5个元素且为整数,可以建立数据块DB2,内容设置见表7-2,每个整数占2个字节,该数组共占10个字节。
表7- DB2内容
图7-4所示是数组中的第2个字和第4个字的赋值程序,将其下载至CPU中。
图7-4 赋值程序
打开数据块DB2,单击快捷键监视开关“”,弹出界面如图7-5所示,单击“是”按钮,弹出界面如图7-6所示。
图7-5 启动监视模式过程
由图7-6可见,数组中第2个变量和第3个变量状态已发生变化。同理可以修改或监控数组中的任何一个变量。
图7-6 DB1的变量监控
(2)结构(STRUCT)
结构是由一组不同类型(结构的元素可以是基本的或复杂的数据类型)的数据组合在一起而形成的复杂数据类型。结构通常用来定义一组相关的数据,例如被控电动机需要的参数包括启动、停止、设定速度及实际速度,建立数据表DB3,按表7-3所示的结构定义一组数据。
表7-3 Motor参数
调用结构中的变量程序如图7-7所示。当系统运行时,结构表中数据变化如图7-8所示。
图7-7 结构变量的调用
图7-8 结构变量监视
(3)字符串(STRING)
字符串用来处理消息文本,是最多有254个字符(CHAR)的一维数组,最大长度为256个字节(其中前两个字节用来存储字符串的长度信息)。字符串常量用单引号括起来,例如,实现‘HELLO’的显示。建立数据表DB4,内容如图7-9所示,编写一段变量传递程序以便观察变量数值,如图7-10所示。
图7-9 字符串数据块
图7-10 读出第一个字符的编码(www.xing528.com)
从图7-10可见,读出的第一个字符编码为16#48,通过图7-11所示的变量表监控数据可见,字符‘H’的十六进制编码是48。
图7-11 变量表监控变量
(4)日期和时间(DATE_AND_TIME)
该类数据类型用于存储年、月、日、时、分、秒、毫秒和星期,占用8个字节,用BCD格式保存。星期天的代码为1,星期一~星期六的代码为2~7。例如建立数据块DB5并打开数据块,在数据块中建立一个DT变量,初始值自动生成,如图7-12所示。
图7-12 DT变量的建立
如图7-13所示,DB5中共建立两个DT变量,每个变量占用8个字节,共16个字节。
图7-13 DB5数据块内容的建立
如图7-14所示,在OB1中编写系统时间设定和读出程序。图7-15所示为在线修改系统时间和读出系统时间的变量监控表。
图7-14 程序编写
图7-15 系统运行数据
(5)用户定义的数据类型(UDT)
用户自定义数据类型(由基本数据类型及复杂数据类型组成的模板)存放在UDT块中(UDT1~UDT65535),在另一个数据类型中作为一个数据类型“模板”。例如,每台机床需要监控的内容相同,则在STEP 7管理器界面的程序结构中选择“插入新对象”→“数据类型”,建立UDT1数据块并在其中建立相应的变量,见表7-4。
表7-4 UDT1变量内容
其他几台机床只需在全局符号表中为UDT1分配一个符号名就可以了,如图7-16所示建立一个数据块DB1,在其中建立了两个相同结构变量Auto_line_MT及Hand_line_MT的数组,两个区域共有8台机床。
图7-16 UDT1的应用
图7-17所示为DB1数据的在线监控状态。可见,当输入数据块时,如果需要输入几个相同的结构,利用UDT既可以节省输入时间又方便变量的管理。
图7-17 DB1块变量在线监控
3.参数数据类型
参数类型是一种用于逻辑块(FB、FC)之间传递参数的数据类型,如图7-18所示。
图7-18 参数变量的建立
在建立FB、FC接口参数时,主要有以下几种类型:
1)TIMER(定时器)和COUNTER(计数器)。
2)BLOCK(块):指定一个块用作输入和输出,实参应为同类型的块。
3)POINTER(指针):6字节指针类型,用来传递DB的块号和数据地址。
4)ANY:10字节指针类型,用来传递DB块号、数据地址、数据数量以及数据类型。
免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。