ST结构化文本语言与示例(持续更新20221117)

基本数据类型

类型名称 类型标识符 数据下限 数据上限 存储空间
布尔型 BOOL 0 1 1bit
整型 字节型 BYTE 0 255 1byte
字型 WORD 0 65535 2byte
双字型 DWORD 0 4294967295 4byte
短整型 SINT -128 127 1byte
无符号短整型 USINT 0 255 1byte
整型 INT -32768 32767 2byte
无符号整型 UINT 0 65535 2byte
长整型 DINT -2147483648 2147483647 4byte
无符号长整型 UDINT 0 4294967295 4byte
实数型 REAL -3.402823E+38 3.402823E+38 4byte
字符串行 STRING 默认 80 个字符,最大255个字符,第一个字节存储字符串长度。 256byte
时间型 时间型 TIME TIME 表示一个时间值, 单位为毫秒, 初始值为 0。 4byte
时刻型 TOD TOD 表示当天的时刻, 单位为毫
秒, 初始值为凌晨 0 点 0 分。
4byte
日期型 DATE DATE 表示当前日期, 单位为秒,初始值是 1970 年 1 月 1 日。 4byte
日期时刻型 DT DT 表示当前日期和时刻, 单位为秒, 初始值是 1970 年 1 月 1 日凌晨 0 点 0 分。 4byte

自定义数据类型

数组定义:
<数组名>:ARRAY [<L1>..<M1>,<L2>..<M2>,<L3>..<M3>] OF <基本数据类型>一维数组
A1: ARRAY[0..9] OF BOOL;
二维数组
A2: ARRAY[0..9, 0..9] OF REAL;
三维数组
A3: ARRAY[0..9, 0..9, 0..9] OF INT;

枚举:
TYPE<标识符>:(<Enum_1>,<Enum_2>,…,<Enum_3>);
END_TYPE
定义举例
TYPE Color :
(
Red := 0,
Green,
Yellow
);
END_TYPE

结构:
TYPE <结构名>:
STRUCT
<变量声明 1>
<变量声明 2>
… <变
量声明 n>
END_STRUCT
END_TYPE
定义举例
TYPE Motor :
STRUCT
V:REAL;
A:REAL;
Hz:REAL;
END_STRUCT
END_TYPE

指针:
<指针名>: POINTER TO <数据类型或功能块类型>
定义举例
Pt:POINTER TO INT;
Int1:INT;
Int2:INT;
Pt:=ADR(Int1);(*取地址*)
Int2:=Pt^;(*取值*)