admin管理员组

文章数量:1530518

2024年3月30日发(作者:)

PLC变量的数据类型

一、标准数据类型

1.1. 布尔型数据类型

布尔型变量可被赋予

TRUE

真或

FALSE

假.这个值为了逻辑量,占用1位存储空间.

1.2. 整型数据类型

整型变量可以是 BYTE、WORD、DWORD、SINT、USINT、INT、UINT、DINT 和 UDINT.

注意,当较长的数据类型转换为了较短的数据类型时,会丧失高位信息

去&数据类型范围和存储空间

类型

BOOL

BYTE

WORD

DWORD

SINT

USINT

INI

UINT

DINT

UDINT

类型名称

布尔型

字节型

字型

双字型

短整型

无符号短整型

整型

无符号整型

长整型

无符号长整型

数据下限

0

0

0

0

-128

0

-32768

0

-21474S3648

0

数据上限

1

255

65535

4294967295

127

255

32767

<55535

2147483647

4294967295

存储空间

Sbit

8 Bit

16 Bit

32B±t

8 Bit

8 Bit

16 Bit

16 Bit

32 Bit

32 Bit

1.3. 实型数据类型

REAL和LREAL是浮点数,用丁显示有理数.可以显示十进制数据,包含小数局部.也可以被描述成 指数形

式.REAL是32位浮点数,LREAL是64位浮点数.

?举例

R1:REAL:=1.64e+009

1.4. 字符申型数据

STRING型变量的声明局部在圆括号里指定了字符的数量.如果不说明大小,缺省的 大小是80个.

?举例

35个字符的字符申声明:

str1: STRING(35) := ,This is a string?;

1.5. 时间型数据类型

时间型变量分为了DATE、TIME、TOD、DT几种,用丁输入时间数据.

DATE 0期型变量:用「输入日期值.声明格式为了:“d铲、战DT、“DATE#. 令举例

RQ1 :=D ATE# 1996-05-06:

RQ2:=d#2002-l-1:

TIME时间型变量:系统允许声明时间tfl,通常被用在标准库中定义操作时间,声明 格式

了*,

f

“TIME#〉“time#:在财〞后面可以跟实际的时间声明,在这个声明中* 可以包含日期、

时,分,秒和毫秒口时间的声明必须根据以下顺序7日期-时-分-秒•毫秒. 在定义时间型变量的

时候要注意,低位不可以超过数据上限,而高位那么叩以超过数据上限#

今举例

正确的定义:

TIME1 :=T#14ms;

TIME1 := T#100S12ms:.允许最高位超过其数据上限*)

TIME1 := t#13dl2h34ml5s:

错误的定义:

TIME1 :=t#5in68s:

TIME1 := 15ms:

T1ME1 :=t#4msl3d:

(*低位超限*)

.缺少提示符T#*)

.输入顺序有误*)

TOD时刻型变量:使用这种类型的变最可以存储时刻:声明格式为了“TOD#L “tod#L -

TIME_OF_DAY#'

实数,即秒可以带小数局部.

.

举例

TIME_OF_D A Y# 15:36:30.123:

tod#00:00:00:

在W后跟时刻,格式为了时:分,秒占系统允许秒为了

DT H期+时刻型变量:日期型变量和时刻型变量可以组合成日期+时刻型变量,被称 为了

“DATE_AND_TIME"型变 ul.声明格式为了 *DT矿、7用〞、-DATE^AND_TIME#^、

tt

date_and_time#

J,

o在“#〞后跟Fl期+时刻,格式为了:年-月-日-时:分:秒口

< 举例

DATE ,AND_ TIME^1996-0?^06-l5:36:30:

dt# 1972-03-29^00:00:00:

二、自定义数据类型

2.1.数组

数组定义的语法格式:

<数组名 > :ARRAY [.., .., ..] OF < 根本数据类型 >;

<举例:定义数组

Card_gaine: ARRAY [k.13. 1...4] OF INT;.定义一个整型的二维数蛆 Caid_game*)

<举例:数组的完全初始化

Arrl:ARRAY [L.5] OF BYTE:- 123.4.5;

An2:ARRAY[L23..4] OF INT :- 13(7); (*即 11,7,7 的缩写形式*)

Arr3:ARRAY [L.22.33.4] OF INT := 2(0)4(4)23: ( *即 0044442*3 的缩写形式*)

中 举例:结构数组的初始化

TYPE STRUCT1:

STRUCT

pl :int;

p2:int:

p3;dword:

END_STRUCT

ENDJTYPE

Al[1..3] OF STRUCT! :=(pl:=l.p2:=10.p3:=

3),(pl:=2,p2:=0.p3:=2),(pl™4

:

p2:=5.p3:=l):

寺 举例'数组的局部初始化

A

IT

1:AKRAY OF BYTE:= L21

对于那些没有预先献值的元素,根据根本数据类型的缺省初始值进行初始化.在此例

中,元素[3]到[10]被初始化为了0占

2.2. 指针

程序运行时,变量地址和功能块地址保存在指针中.

指针定义的语法格式:

<指针名> :POINTER TO <数据类型/功能块>;

指针可以指向任意的数据类型、功能块和自定义类型.地址运算符

给指针.在指针后面增加取内容运算符

ADR用丁把变量或功能块的地址赋

膈;'可以获取指针所指的内容.

◊ 举例

pt:POINTER TO INT:

Vai_intLINT := 5:

Var_uit2:INT:

pt := ADR(Vai_intI):

Vai_int2:^ pt :

(*定义一个整型数据的指针pt*)

(*定义整型变鼠Vai_intl,使其等于5*)

(率定义整型变量Var_iiit2*)

(*取出Vajintl变最的地址,将地址值赋给供率)

(京将指针pt所指地址的值赋给Var_int2*即Vai_int2=5*)

2.3.枚举

枚举是一种用户自定义的数据类型,由一些字符常量所组成.这些常量被称为了枚举值 枚举定义的语法格

式:

TYPE <标识符 > :(<Enum_0>, <Enum_1>, ..., <Enum_n>);

END_TYPE

如果化举值没有初始化,那么从0开始计数.

举例

TYPE TRAFFIC SIGNAL : (Red. Yellow:=L Gieen:=10);

END_TYPE (*每种颜色的初始值:Red=O, Yellow=l, Green=10*)

TRAPFIC_SIGNAL1 : TRAFFIC_SIGNAL;

TRAFFIC_SIGNAL1:=O:(来交通信号灯的值是Red*)

FOR i:= Red TO Gieen DO

i := i + 1;

END_FOR;

注意,在一个枚举型变量中,或在同一程序的所有枚举型变量中,不能两次使用相同 的枚举值,如下例所示.

< 举例

TRAFFIC_SIGNAL: (red yeliow, green):

COLOR : (blue, white, red);

错误:red不能在枚举变蚩TRAFFIJSIGNAL和COLOR中同时使用,

2.4. 结构

在对象组织器的数据类型选项卡中,以对象的形式来创立结构变量.结构变量以关键

字TYPE和STRUCT开始,以关键字 END_STRUCT 和END_TYPE 结束.

定义结构变量的语法格式:

TYPE事构名

STRUCT

〈变量声明1>

〈变量声明2>

■ 4 !■

〈变量声明

11>

END_STRUC'T

END TYPE

◊ 举例:定义名为了Polygonline的结构

TYPE Polygonline:

STRUCT

Start:ARRAY [1..2] OF INT:

Pointl:ARRAY [1..2] OF INT:

Point2:ARRAY [1..2] OF INT:

Point3:ARRAY [1..2] OF INT:

Point4:ARRAY [1..2] OF INT:

End:ARRAY [1..2] OF INT:

END_STRUCT

END_TYPE

◊举例:初始化结构

Pl:Polygonline:=(Start:==2:=3:=4:=:=3.5):

访问结构成员的语法:

<结构名>.<结构成员名〉

◊举例

如果结构名为了Week,其中的一个成员名为了Monday,那么可以用下面的形式访问该成员:

本文标签: 变量数据类型数据声明地址