标准数据类型
注:不同的数据覆盖不同的数值范围,如果使用的类型转换是从较大类型到较小类型的转换,则可能丢失信息。
数据类型 | 数据范围 | 占用内存 | 备注 |
---|---|---|---|
BOOL | TRUE、FALSE | 8位 | 布尔类型,用于逻辑判断 |
BYTE | 0~255 | 8位 | 无符号8位整型,表示0到255之间的整数 |
WORD | 0~65535 | 16位 | 无符号16位整型,表示0到65535之间的整数 |
DWORD | 0~4294967295 | 32位 | 无符号32位整型,表示0到4294967295之间的整数 |
SINT | -128~127 | 8位 | 有符号8位整型,表示-128到127之间的整数 |
USINT | 0~255 | 8位 | 无符号8位整型号,与BYTE相同 |
INT | -32768~32767 | 16位 | 有符号16位整型,表示-32768到32767之间的整数 |
UINT | 0~65535 | 16位 | 无符号16位整型号,与WORD相同 |
DINT | -2147483648~2147483647 | 32位 | 有符号32位整型,表示-2147483648到2147483647之间的整数 |
UDINT | 0~4294967295 | 32位 | 无符号32位整型号,与DWORD相同 |
REAL | -3.4E+38 ~ 3.4E+38 | 32位(IEEE 754) | 单精度浮点数 |
LREAL | -1.18E+4932 ~ 1.18E+4932 | 64位(IEEE 754) | 双精度浮点数 |
STRING | 可变长度 | 可变 | 字符串类型,长度可变 |
TIME | 0~2^32-1 ms | 32位 | 时间类型,表示毫秒数 |
DATE | 1970-01-01至2106-02-06 | 32位 | 日期类型,表示从1970年1月1日开始的天数 |
TOD | 00:00:00.000000至23:59:59.999999 | 64位 | 时间日期类型,包含时间、日期和毫秒数 |
ARRAY | 可变长度和类型 | 可变 | 数组类型,元素类型和长度可变 |
STRUCT | 可变类型和数量 | 可变 | 结构体类型,包含多个不同类型的成员 |
变量定义
nValue :INT := 123;
bValue :BOOL := 0;
sValue :STRING;
fValue :WORD;
强制类型转换:
nValue = TO_INT(3.14);
bValue = TO_BOOL(1);
sValue = TO_STRING(314);
fValue = TO_WORD('314');
数组数据类型
结构体数据类型
结构体定义
TYPE Stru_Name
STRUCT
b_Value : BOOL;
nValue :INT :
END_STRUCT
END_TYPE
结构体调用
//结构体声明
PROGRAM pName
VAR
struce_myname : Stru_Name;
END_VAR
//访问结构体变量
struce_myname.b_Value := TRUE;
struce_myname.nValue := 123;
枚举数据类型
枚举类型是由多个字符串常量组成的自定义数据类型,这些常量是枚举变量的值.
别名数据类型
自定义数据类型别名 Reference 的目的是声明出变量,常量,功能块的替代名称,方便使用.
指针数据类型
REF数据类型
·REFERENCE数据类型指向数据可以双向修改,双向同步更新
·指针数据类型指向数据只能单向同步
·注意:REF不能指向数组、指针、REF、位变量
常量数据类型
断电保持(PERSISTENT)数据类型