IEC 61131-3标准分为两个部分:公共元素和编程语言,如图
公共元素部分规范了数据类型定义与变量,给出了软件模型及其元素,并引入配置(Configuration)、资源(Resources)、任务(Tasks)和程序(Program)的概念,还规范了程序组织单元(程序、功能、功能块)和顺序功能图。
语言元素
每个PLC程序可以看做是各种语言元素的集合。IEC 61131-3标准为编程语言提供语言元素,例如,分界符、关键字、直接量和标识符。语言元素示例如
分界符
分界符(Delimiter)用于分隔程序语言元素的字符或字符组合。它是专用字符,不同分界符具有不同的含义。表
关键字
关键字(keyword)是语言元素特征化的词法单元。关键字是标准标志符。在IEC 61131-3标准中,关键字是结构声明和语句的固定符号表示法,其拼写和含义均由IEC 61131-3标准明确规定。因此,关键字不能用于用户定义的变量或其他名称,这一点与高级编程语言是一致的。
关键字不区分字母的大、小写。例如,关键字“FOR”和“for”是等价的。为了更好地进行区别,关键字通常以大写字母表示。
关键字主要包括基本数据类型的名称、标准功能名、标准功能块名、标准功能的输入参数名、标准功能块的输入和输出参数名、图形编程语言中的EN和ENO变量、指令表语言中的运算符、结构化文本语言中的语言元素、顺序功能图语言中的语言元素。
直接量
直接量用来表示常数变量的数值,其格式取决于变量的数据类型。直接量有3种基本类型。
1)数字直接量
数字直接量可以用于定义一个数值,它可以是十进制或其他进制的数。数值文字分为整数和实数。用十进制符号表示的数中,用小数点是否存在表示它是实数还是整数。通常有二进制数、八进制数、十进制数、十六进制数。为了说明数值的基,可用元素数据类型名称和“#”符号表示,但十进制的基数10#可以省略。
对十进制数值,为了表示数值的正、负,可在数值文字前添加前缀分界符。如-15、-126.83。但对数制的基(即2、8、10和16)不能添加类型前缀的分界符。因此,-8#456是错误的数据外部表示,应表示为8#-456。
布尔数据用整数0和1表示,也可用FALSE和TRUE的关键字表示。
2)字符串直接量
字符串是直接量在单引号之间的表示形式,由单字节字符串或双字节字符串组成。
单字节字符串文字由一系列通用的字节表示或′ 、英文双引号 " 、 '、英文双引号"、
′
、英文双引号"、与十六进制数组成。例如,‘ABC’,‘“’,‘D 7 ’等。当美元符号 D7’等。当美元符号D7’等。当美元符号用做前缀,使特殊字符能包含在一个字符串内。非印刷体的特殊字符用于显示或打印输出的格式化文本。因此,美元符号和引号本身必须用附加的前缀“”标识。双字节字符串文字由一系列通用的字节表示或由 ”标识。 双字节字符串文字由一系列通用的字节表示或由”标识。双字节字符串文字由一系列通用的字节表示或由”、英文单引号’、与十六进制数组成。它们用双引号在其前后标识。例如,“ A ”, “ ′ ”,“ 与十六进制数组成。它们用双引号在其前后标识。例如,“A”,“'”,“与十六进制数组成。它们用双引号在其前后标识。例如,“A”,“
′
”,“"”,“$UI8T”等。
需要注意的是单字节字符串不能用单引号开始,双字节字符串不能用双引号开始。字符串可以是空串,如“”和‘’。
3)时间直接量
时间直接量用于时间、持续时间和日期的数值。
时间直接量分为两种类型:持续时间直接量和日期直接量。持续时间直接量由关键字T#或TIME#在左边界定,支持按天、小时、秒和毫秒或其他任意组合表示的持续时间数据。持续时间直接量的单位位由下画线字符分隔。允许持续时间直接量最高有效位“溢出”(overflow)。例如,持续时间值t#135m_12s是有效的,编程系统会将该时间转换成“正确”的表达,即t#2h_15m_12s。时间单位可用大写或小写字母表示。持续时间的正值和负值是允许的。时间和日期的前缀关键字如表所示,它分为长前缀和短前缀格式。不论采用长前缀格式还是短前缀格式,表示的时间和日期都是有效的。