数据类型是编程的基础,这部分知识虽然看似简单,但要完整详细地说出来也不是一件容易的事。今天这篇文章我们来介绍CODESYS编程环境下的数值型数据类型,包括如下几个主题:
逻辑数据类型;
整数数据类型;
浮点数数据类型;
子范围类型;
数值型数据类型用来表示一个数值,这个数值可以是一个整数、浮点数或者用于逻辑运算的类型,下面详细介绍下。
1、逻辑数据类型
逻辑数据类型,也被称为二进制数据类型,它是用于数值的逻辑操作,比如逻辑与、逻辑或、逻辑非等等。逻辑型数据类型包括如下几种:
布尔型(BOOL);
字节型(BYTE);
字型(WORD);
双字型(DWORD);
长字型(LWORD);
各数据类型的数值范围及占用存储区的数量如表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所示:
名称 | 数值下限 | 数值上限 | 占用内存 | 命名前缀 |
---|---|---|---|---|
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 | 2147483647 | 32 位(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所示:
名称 | 数值下限 | 数值上限 | 占用内存 | 命名前缀 |
---|---|---|---|---|
REAL | 1.0E-44 | 3.402823E+38 | 32 位(bits) | r |
LREAL | 4.94065645841247E-324 | 1.7976931348623157E+308 | 64 位(bits) | lr |
4、子范围类型
子范围数据类型是为已有的数据类型定义子集。它的基本语法是:
<名称> : <值类型> (<下限> .. <上限>);
这里的<值类型>可以是:SINT, USINT, INT, UINT, DINT, UDINT, BYTE, WORD, DWORD, LINT, ULINT, LWORD;
举个例子:
整数的取值范围本来是-32768~32767,使用子范围类型可以在该范围内自定义。比如,定义一个取值范围0~100的整数变量iTemp如下图所示:
好了,关于CODESYS基本数据类型中的数值型数据类型就先介绍到这里。欢迎扫描下面的二维码关注我的微信视频号。
发表评论