由于PLC物理存储器是以字节为单位,所以总是以字节单位来确定存储单元。在PLC中不同区域中的位、字节、字、双字表明如图1所示。(更详细的单元存储及单元寻址和表明方法见文章:PLC 的存储区详解及数据地址寻址表明方法)

图1 不同区域中的地址表明
简单的基本数据类型
数据类型是程序处理和控制的对象,在程序运行过程中,数据是通过变量来存储和传递的。变量有两个要素:名称和数据类型。对程序块或者数据块的变量声明时都要包含这两个要素。
数据的类型决定了数据的属性,例如数据的长度和取值范围等,TIA博途软件中的数据类型分为三大类:基本数据类型、复杂数据类型和其他数据类型。
基本数据类型最为常用,进一步可以分为位序列数据类型(也称为二进制数)、算数数据类型、字符数据类型、定时器数据类型及日期和时间数据类型。每一种数据类型都具备关键字、数据长度、取值范围和常数表等格式属性。
简单的基本数据类型
位序列数据类型包括布尔型(BOOL)、字节型(Byte)、字型(Word)和双字型(DWord)。
(1)位(BIT)位数据的数据类型为布尔(BOOL)型,在编程软件中BOOL变量的值“1”和“0”。它是计算中的数据最小存储单元。
(2)字节(BYTE)8位二进制数组成1个字节(Byte),例如字节IB9由I9.0~I9.7这8位组成,其中第0位为最低位(LSB),第7位为最高位(MSB)。
(3)字(WORD)相邻两个字节组成一个字(WORD),字用来表明无符号数。例如:MW102 由 MB102和MB103组成一个字。
(4)双字(DOUBLE WORD)相邻两个字组成1个双字(DOUBLE WORD),双字用来表明无符号数。
对于算数数据类型,包含8位,16位,32位,64位,既有有符号数,也包含无符号数。
西门子PLC基本的数据类型如图2所示。在图中展示了西门子S7-1200的基本数据类型,西门子S7-1500相对于1200多出的数据类型。

图2 西门子PLC基本数据类型
下表中,以1位,8位,16位,32位,64位来展示不同类型的数据的符号名,常数的表明范围—在算数数据类型使用过程中不要超出相应的数值范围。同时,对变量以绝对地址形式进行了示例,方便大家的理解。如表1,2所示。
表1 数据类型表明1

表2 数据类型表明2

位数据类型的每一位都能解释出实际的意义。如图3所示。

图3 位数据表明
算术数据类型主要分为整数数据类型和浮点数数据类型。
整数数据类型用来存储不带小数的整数数据。如图4所示。

图4 整数数据
浮点数数据类型用来存储带小数的数据。浮点数数据类型可以用很小的存储空间表明超级大和超级小的数值,因此其编码与整数有很大差异。如图5所示。

图5 浮点数计算
定时器类型是定时器指令专用的数据类型。
TIME的编码可以理解为DINT的编码。单位是毫秒(ms),因此该类型的最大定时时间就是DINT最大值对应的毫秒时间。如图6所示。

图6 定时器数据类型
基本数据类型中的时间日期类型有DATE和TIME_OF_DAY。 DATE类型将包含年、月的日期,以无符号整数UINT的形式保存。所能表达的日期范围是1990_01_01(0)至2169_06_06(65535),即为包含1990年1月1日的65536天内的任一天。
TIME_OF_DAY类型是一天中的时间(32位),简称TOD,它将包括小时、分钟、秒及毫秒的时间,以无符号长整数UDINT的形式保存。所能表达的时间范围是0小时0分0秒0毫秒(0)至23小时59分59秒999毫秒(86399999),即包含0小时0分0秒0毫秒的86400000(一天内的毫秒数)毫秒内的任一毫秒。
西门子PLC中包含的复杂数据类型如图7所示。

图7 复杂数据类型
复杂数据类型-日期时间
DTL是相对复杂的日期和时间类型,占用12字节。各个字节所表达的意义如图8所示。表达范围如图9所示。

图8 DTL数据空间表明

图9 DTL数据表达范围
复杂数据类型-字符串
STRING类型是ASCII字符串,每个可存储0~254个CHAR字符,每个字符占1个字节。STRING的总字节数 = 字符数 +2
WSTRING类型是Unicode字符串,每个可存储0~254个WCHAR字符,每个字符占1字。WSTRING的总字数 = 字符数 +2
字符CHAR主要为ASCII中除控制字符以外的大小写字母、阿拉伯数字、标点符号及运算符号等字符。举例:‘P’—— 16#50 ‘L’—— 16#4C ‘C’—— 16#43
16位宽字符WCHAR为全球文字统一编码Unicode字符。举例:WCHAR#‘中’—— 16#4E2D WCHAR#‘国’—— 16#56FD
复杂数据类型-数组
Array类型是由必定数目的同种数据类型元素组成的复杂数据类型。Array类型不可以再使用Array类型作为数组元素。如图10所示。

图10 数组类型数据
复杂数据类型-结构体
Struct类型是由固定数目的不同数据类型元素组成的复杂数据类型。可使用基本数据类型,还可嵌套Struct或Array类型。如图11所示。

图11 结构体类数据与非结构体类型数据对比
复杂数据类型-UDT
PLC数据类型又称为用户自定义数据类型UDT(User Data Type),相当于用来快速创建Struct的模板。通俗来讲,就是我们自己按照我们的需求,生成了我们需要的数据类型,用到这个数据类型的时候,直接调用这个数据类型就可以了。如图11中红框所示。

图12 自定义数据类型UDT
复杂数据类型-指针
指针是一个内存中的数据,它仅包含地址指向信息,而没有实际的数值。改变指针的指向,就相当于指向了另一个变量,因此可以通过它灵活地访问变量。
S7-1200 PLC指针类型仅支持VARIANT指针。
S7-1500 PLC还支持References、POINTER和ANY指针。
使用VARIANT指针可以传递的地址形式:P#DB8.DBX6.0 INT 10
参数类型是为在逻辑块之间传递参数的形参(Formal Parameter,形式参数)定义的数据类型,包括VARIANT和VOID两种。
VARIANT类型的参数是一个可以指向各种数据类型或参数类型变量的指针。
VARIANT参数类型变量在内存中不占用任何空间。
其他数据类型-系统数据类型-如图13所示。系统数据类型(SDT)由系统提供并具有预定义的结构,其结构由固定数目的可具有各种类型的元素构成,不能更改系统数据类型的结构。系统数据类型只能用于特定指令,表13给出了可用的系统数据类型及其用途。
其他数据类型-硬件数据类型-如图14所示。硬件数据类型由CPU提供,可用硬件数据类型的数目取决于CPU。根据硬件配置中设置的模块存储特定硬件数据类型。在用户程序中插入用于控制或激活已组态模块的指令时,可将这些可用常量用作参数。图14给出了可用的硬件数据类型及其用途。

图13 系统数据类型

图14 硬件数据类型
















- 最新
- 最热
只看作者