前文给大家简单的讲了一下IEC61131-3&GB/T15969.3,可编程序控制器-第3部分:编程语言。IEC 61131-3国际标准的编程语言包括5种语言。
今天给大家带来的是其中我本人认为使用最方便,最简化的ST语言。
文本编程语言"结构文本(Structured Text),ST"来源于编程语言Pascal。主要分为赋值语句,选择语句,迭代语句。本次将从ST语言的操作符以及ST语言的语句来描述ST语言。大家不要认为ST语言很难。从本人的使用感受上来说,一个IF语句就可以应付90%以上的应用场景。
ST语言的操作符
ST语言的操作符
ST语言的语句
赋值语句(比较、结果、调用)
赋值语句用表达式的求值结果替代单个或多个元素变量的当前值。赋值语句应包括:左侧的变量应用,接着是赋值操作符":=",其后是要求值的表达式。
选择语句(IF、CASE)
选择语句包括IF语句和CASE语句。选择语句基于所规定的条件,选择其组成语句之一(或一组)用于执行。
IF语句规定,仅当相关的布尔表达式求值为1(真)时,才会执行一组语句。如果条件为假,不是没有语句执行,而是执行跟着ELSE关键字(或ELSIF关键字,若其相关布尔条件为真)的语句组。
CASE语句由一个对基本数据类型(选择符)变量求值表达式和一个语句组列表组成,每组都可应用一个或多个直接量或枚举值或子范围值来标记。这些标记的数据类型应该与选择符变量的数据类型匹配,选择符变量的值应该可以和标号进行比较。它规定执行第一组语句,其范围之一包含选择符的计算值。如果选择符的值在任何情形的范围中都不出现,则执行跟有关键字ELSE(若它在CASE语句中出现)的语句序列。否则,不执行任何语句序列。
迭代语句(WHILE、REPEAT、EXIT、CONTINUE、FOR)
FOR语句使得直到END_FOR关键字的语句序列重复地执行,一系列的值被赋给FOR循环控制变量。控制变量、初始值和终值是相同的整数类型(例如:SINT、INT、DINT)的表示,而不应被任何重复的语句改变。FOR语句将控制变量从初始值向上或者向下增加到终值,其增量由表达式的值决定;如果省略了BY结构,那么增量的默认值为1。
WHILE语句使得直到END_WHILE关键字的语句序列重复地执行,直到相关的布尔表达式为假时才结束。如果表达式初始就为假,则根本不执行语句组。
REPEAT语句使得直到END_REPEAT关键字的语句序列重复地执行(至少一次),直到相关的布尔表达式为真时才结束。
CONTINUE语句用来跳过本次循环中CONTINUE语句之后直到本层循环结束符之间的剩余语句。
EXIT语句要在终止条件满足以前终止循环,应使用EXIT语句。当EXIT语句位于嵌套的循环结构内时,应从EXIT所在的最内层循环退出,即在跟随EXIT语句的第一循环的终止符后(END_FOR、END_WHILE、END_REPEAT),控制应传给下一个语句。
总结,在IEC 61131-3国际标准的编程语言中,ST语言作为一种高级的文本语言。熟悉并掌握它极大的提高工程师的编程效率。笔者经常将一些重复性高的工作(如地址表)使用ST语言在EXCEL中进行制作,大大减少了编程工作量。在以后有机会我会用视频的方式给大家演示一个怎么用ST语言编译转换成3种图形编程语言。