如果说字符集和分界符是PLC编程的“基础语法”,那关键字和常数就是编程的“核心词汇”——关键字定义程序结构,常数是程序中不可修改的固定值,二者均为IEC61131-3标准的核心元素,也是CoDeSys等编程软件的通用规范。本文详解关键字的分类与使用禁忌,以及8类常用常数的书写规则。
一、关键字:PLC程序的“保留字”,不可挪用的结构定义词
关键字是特征化词法单元,用于定义程序结构、启动/终止软件元素,是编译器识别程序逻辑的关键,核心规则与分类如下:
|
关键字 |
说明 |
关键字 |
说明 |
|
PROGRAM END_PROGRAM |
程序段开始程序结束 |
EN ,ENO |
使能输入/输出 |
|
FUNCTION END_FUNCTION |
函数段开始 函数段结束 |
TRUE FALSE |
逻辑真 逻辑假 |
|
FUNCTION_BLOCK END_FUNCTION_ BLOCK |
功能块段开始 功能块段结束 |
TYPE END_TYPE |
数据类型段开始, 数据类型段结束 |
|
VAR END_VAR |
内部变量段开始变量段结束 |
STRUCT END_STRUCT |
结构体开始, 结构体结束 |
|
VAR_ INPUT END_VAR |
输入变量段开始变量段结束 |
IF THEN EISIF ELSE END_IF |
IF 语句 |
|
VAR_OUTPUT END_VAR |
输出变量段开始变量段结束 |
CASE OF ELSE END_CASE |
CASE 语句 |
|
VAR_ IN_OUT END_VAR |
输入输出变量段开始变量段结束 |
FOR TO BY DO END_FOR |
FOR 循环语句 |
|
VAR_GLOBAL END_VAR |
全局变量段开始变量段结束 |
REPEAT UNTIL END_REPEAT |
REPEAT 循环语句 |
|
CONSTANT |
常数变量 |
WHILE DO END_WHILE |
WHILE 循环语句 |
|
ARRAY OF |
数组 |
RETURN |
跳转返回符 |
|
AT |
直接地址 |
NOT,AND,OR,XOR |
逻辑操作符 |
- 程序结构关键字(配对使用):PROGRAM/END_PROGRAM、FUNCTION/END_FUNCTION、FUNCTION_BLOCK/END_FUNCTION_BLOCK(定义程序/函数/功能块范围)。
- 变量声明关键字(配对使用):VAR/END_VAR(内部)、VAR_INPUT/END_VAR(输入)、VAR_OUTPUT/END_VAR(输出)、VAR_IN_OUT/END_VAR(输入输出)、VAR_GLOBAL/END_VAR(全局)。
- 数据类型关键字(配对使用):TYPE/END_TYPE、STRUCT/END_STRUCT、ARRAY OF(数组)。
- 逻辑控制关键字(配对/单独):IF/THEN/ELSE/END_IF、CASE/OF/END_CASE、FOR/TO/DO/END_FOR(循环判断);TRUE/FALSE(逻辑值)、EN/ENO(使能输入输出)。
- 操作/跳转关键字:NOT/AND/OR/XOR(逻辑运算)、RETURN(跳转返回)、AT(直接地址)。
3.扩展保留关键字:标准数据类型(BOOL、INT、REAL等)、标准函数/功能块名(SIN、TON、RS等)、指令表操作符(LD、ADD、GT等)均为保留关键字。
二、常数:程序中不可修改的固定值,按类型遵循专属书写规则
常数又称数值文字,分为基础数值常数和特殊类型常数,书写格式为<类型>#<数值>(类型可省略,默认最小数据类型),核心要求:数值必须匹配指定数据类型,否则编译器报错。以下为8类高频常数的详细规范:
|
数值文字类型 |
表示方法 |
示例 |
|
整数文字 |
[整数类型名#]符号整数或二(八、十、十六)进制整数 |
INT#-34,U INT#32 |
|
|
二进制整数 |
2#0010_0010(34) |
|
|
八进制整数 |
8#77(63) |
|
|
十六进制整数 |
16#E5(229) |
|
实数 |
[实数类型名#]符号整数.整数[指数] |
REAL#4.94,6.3e-7 |
|
|
符号整数.整数 |
3.141592 |
|
布尔数 |
[布尔类型名#]0 或 1,False 或 True |
0,1,True,BOOL#1 |
TIME1 := T#14ms;
TIME2:= T#100S12ms;(*最高单位的值可以超出其限制*)
TIME3 := t#12h34m15s;

类型符,对 IEC 常数,有可能使用最小的数据类型。如必需使用另一种数据类型。则可借助于类型符而不需要显示地声明常数。为此,常数可使用一个前缀表示,该前缀决定了其类型。
![]()
<Type> :指定所要求的数据类型有 BOOL 、SINT 、USINT 、BYTE 、INT 、UINT 、WORD、 DINT 、 UDINT 、DWORD 、REAL 及 LREAL。
<Literal>:指定常数。输入的数据必须与<Type>下指定的数据类型相匹配。![]()
如果常数不能保证在不丢失数据的情况下转换为目标类型,系统将发出一个出错信息。类型符可用于一般常数。
三、实用技巧:类型符的灵活使用
可通过类型符前缀指定常数数据类型(如REAL#4.94、BYTE#255),无需显式声明;若常数无法无损转换为目标类型,系统将触发错误提示,有效避免数据丢失。
文末小结
关键字的核心是**“不挪用、记配对”,常数的核心是“记格式、匹配类型”。新手可先掌握高频关键字(如VAR、TON、IF)和常用常数(TIME、BOOL、数值),后续随编程经验逐步拓展。
网硕互联帮助中心






评论前必须登录!
注册