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 [
<举例:定义数组
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,那么可以用下面的形式访问该成员:
版权声明:本文标题:PLC变量的数据类型 内容由热心网友自发贡献,该文观点仅代表作者本人, 转载请联系作者并注明出处:https://m.elefans.com/xitong/1711792243a327699.html, 本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容,一经查实,本站将立刻删除。
发表评论