北岛夜话
原创工业智能控制领域(PLC、单片机/嵌入式、机器人、通信、机器视觉)的技术及经验分享。
文章528 浏览8057984

基于CODESYS打造树莓派工业控制器(4)——ST语言编程的基础:数值数据类型

数据类型是编程的基础,这部分知识虽然看似简单,但要完整详细地说出来也不是一件容易的事。今天这篇文章我们来介绍CODESYS编程环境下的数值型数据类型,包括如下几个主题:

  • 逻辑数据类型;

  • 整数数据类型;

  • 浮点数数据类型;

  • 子范围类型;

cover.jpg

数值型数据类型用来表示一个数值,这个数值可以是一个整数、浮点数或者用于逻辑运算的类型,下面详细介绍下。

1、逻辑数据类型

逻辑数据类型,也被称为二进制数据类型,它是用于数值的逻辑操作,比如逻辑与、逻辑或、逻辑非等等。逻辑型数据类型包括如下几种:

  • 布尔型(BOOL);

  • 字节型(BYTE);

  • 字型(WORD);

  • 双字型(DWORD);

  • 长字型(LWORD);

各数据类型的数值范围及占用存储区的数量如表1所示:

表1——逻辑型数据
名称
数值下限
数值上限
占用内存
命名前缀
BOOL
0
1
8 位(bits)
x
BYTE
0
255
8 位(bits)by
WORD
0
65535
16 位(bits)w
DWORD
0
4294967295
32 位(bits)
dw
LWORD
0

264-1

64 位(bits)
lw

说明:布尔型(BOOL)变量有两种取值:TRUE(1)和FALSE(0),但是它占用8位的存储区。虽然逻辑型数据类型也可以进行加减等数学运算,但是不建议这样做;

2、整数数据类型

整数型数据类型用来表达不同的整数,包括如下几种:

  • 短整数(SINT);

  • 无符号短整数(USINT);

  • 整数(INT);

  • 无符号整数(UINT);

  • 双整数(DINT);

  • 无符号双整数(UDINT);

  • 长整数(LINT);

  • 无符号长整数(ULINT);

各数据类型的数值范围及占用存储区的数量如表2所示:

表2——整数型数据
名称
数值下限
数值上限
占用内存
命名前缀
SINT
-128
127
8 位(bits)si
USINT
0
255
8 位(bits)usi
INT
-32768
32767
16 位(bits)
i
UINT
0
65565
16 位(bits)ui
DINT
-2147483648
214748364732 位(bits)
di
UDINT
0
4294967295
32 位(bits)udi
LINT

-263

263-1

64 位(bits)li
ULINT
0

264-1

64 位(bits)
uli

3、浮点型数据

浮点数,也就是小数,有两种数据类型:REAL和LREAL。它们取值范围及占用内存如表3所示:

表3——浮点型数据
名称
数值下限
数值上限
占用内存
命名前缀
REAL
1.0E-44
3.402823E+38
32 位(bits)
r
LREAL
4.94065645841247E-3241.7976931348623157E+30864 位(bits)
lr

4、子范围类型

子范围数据类型是为已有的数据类型定义子集。它的基本语法是:
<名称> : <值类型> (<下限> .. <上限>);

这里的<值类型>可以是:SINT, USINT, INT, UINT, DINT, UDINT, BYTE, WORD, DWORD, LINT, ULINT, LWORD;

举个例子:

整数的取值范围本来是-32768~32767,使用子范围类型可以在该范围内自定义。比如,定义一个取值范围0~100的整数变量iTemp如下图所示:

子范围类型.PNG

好了,关于CODESYS基本数据类型中的数值型数据类型就先介绍到这里。欢迎扫描下面的二维码关注我的微信视频号。

取消

感谢您的支持,欢迎常来看看!

扫码支持
一点动力,多少随意

打开支付宝扫一扫,即可进行扫码打赏哦

发表评论