数据类型是PLC程序中出现的与变量紧密联系的数据形式,用于指定数据元素的大小并解析。在定义变量时,需要设置数据类型,每个指令参数至少支持一种数据类型。有些参数可支持多种数据类型。
S7-1200 PLC包括基本数据类型、复杂数据类型、用户数据类型和指针数据类型等数据类型。
在逻辑控制中,位是最基本的数据类型,即Bool(布尔),其他更多基本数据类型见表2-1。
表2-1 基本数据类型
在计算机系统中,所有的数据都是以二进制的形式存储的,整数一律用补码来表示和存储,正整数的补码为原码,负整数的补码为绝对值的反码加1。USInt、UInt、UDInt数据类型为无符号整型数。SInt、Int、DInt数据类型为有符号整型数。最高位为符号位。符号位为“0”表示正整数;符号位为“1”表示负整数。
浮点数分为Real(32位)和LReal(64位),不一样的存储长度,记录数据值的精度不一样。其中,最高位为符号位,符号位“0”表示正实数,符号位为“1”表示负实数。
字符的存储采用ASCII编码方式。ASCII编码是基于拉丁字母的一套计算机编码系统,主要用于显示现代英语和其他西欧语言,是现今最通用的单字节编码系统,等同于国际标准ISO/IEC 646,包含了所有的大小写字母、数字0到9及标点符号等。
S7-1200 PLC有两种字符串数据类型:String和WString。
String可存储一串单字节字符,提供了多达256个字节。其中,第一个字节用于存储字符串中的最大字符数,第二个字节用于存储当前字符数,接下来的字节用于存储最多254个字节的字符。String中的每个字节都可以是从16#00到16#FF之间的任意值。
WString可存储单字(双字节)值的较长字符串。其中,第一个字用于存储字符串中的最大字符数,第二个字用于存储当前字符数,接下来的字用于存储最多65534个字的字符。WString中的每个字可以是16#0000到16#FFFF之间的任意值。
长日期时间(DTL)使用12个字节的结构保存日期和时间信息。表2-2、表2-3分别为长时期时间的数据类型和结构元素。
表2-2 长时期时间数据类型
表2-3 长时期时间结构元素
数组类型是由数目固定且数据类型相同的元素组成的数据结构,定义为“Array [lo .. hi] of type”:
(1)lo:数组的起始(最低)下标。
(2)hi:数组的结束(最高)下标。
(3)type:数据类型选择,例如Bool、SInt和UDInt等。
结构数据类型是一种由多个不同数据类型元素组成的数据结构,其元素可以是基本数据类型,也可以是数组类型或用户数据类型等。嵌套结构类型的深度限制为8级。结构类型的变量在程序中可以作为一个变量整体,也可以单独使用组成元素。
用户数据类型,即User Data Type,简称UDT,是一种由多个不同数据类型元素组成的数据结构。其元素可以是基本数据类型,也可以是结构数据类型、数组类型及其他UDT等。UDT嵌套深度限制为8级。
UDT可在程序中统一更改和重复使用,一旦某UDT发生修改,则在执行软件编译后,会自动更新所有使用该数据类型的变量。
指针数据类型,即VARIANT,其参数是一个可以指向不同数据类型变量(而不是实例)的指针。VARIANT可以是基本数据类型(如Int或Real)的对象,还可以是String、DTL、Struct类型的Array,或者UDT类型的Array。VARIANT可以识别结构,并指向各个结构的元素。
S7-1200 PLC的地址区包括过程映像输入I区、过程映像输出Q区、位存储器M区和数据块DB区等。地址区的说明见表2-4。
表2-4 地址区的说明
每个存储单元都有唯一的地址,可利用这些地址访问存储单元中的信息。
绝对地址由以下元素组成:
(1)地址区助记符,如I、Q或M。
(2)要访问数据的单位,如B表示Byte、W表示Word、D表示DWord。
(3)数据地址,如Byte 3、Word 3。
如果访问地址中的位时,不需要输入要访问数据的单位,仅需输入数据的地址区助记符、字节位置和位位置(如I0.0、Q0.1或M3.4)。