ST语言语法

ST语言语法

libing_thinking 2019-09-29 20:04:08   5686   收藏 22
分类专栏: ST  工控
版权
PLC上用的最多的一个是梯形图,它使用起来直观方便,入门容易,非开发人员也可以很快入手,但是处理复杂的逻辑太麻烦;另外一种就是 ST(structed text, 结构化文本)语言,它写起来跟高级语言类似,学过高级语言的开发人员可以很快入手。这两种语言都是IEC 61131-3 中定义的,这个标准中还定义了其他三种语言:顺序功能图、功能块图、指令表。这里主要对ST语言的基本语法进行一些总结,主要基于codesys类的环境测试。

变量类型
基本类型
类型    关键字    位数
位    BIT    1
布尔型    BOOL    1
字节型    BYTE    8
字型    WORD    16
双字型    DWORD    32
长字型    LWORD    64
短整型    SINT    8
无符号短整型    USINT    8
整型    INT    16
无符号整型    UINT    16
双整型    DINT    32
无符号双整型    UDINT    32
长整型    LINT    64
实数    REAL    32
长实数    LREAL    64
字符串类型    STRING    8的倍数,不超过256乘8,默认81乘8
时间戳    TIME    32
时间    TIME_OF_DAY    32
日期    DATE    32
日期时间    DATE_AND_TIME    32
NOTE: 整形、字节型、字型都可以通过.号引出具体bit的值,e.g. i: INT;,那么 i 的第三位可以使用 i.3 引出,它的类型为BIT,可以转化为 BOOL 型。

复合类型
数组
关键字:ARRAY
定义格式:ARRAY[开始索引…结束索引] OF 元素类型;其中包含开始和结束索引值
e.g. aiStatus: ARRAY[1..100] OF INT;
结构体
关键字:STRUCT
定义格式:
    TYPE 类型名称:
    STRUCT
        变量名称:变量类型;
        ...
    END_STRUCT
    END_TYPE
1
2
3
4
5
6
联合体
关键字:UNION
定义格式:
    TYPE 类型名称:
    UNION
        变量名称:变量类型;
        ...
    END_UNION
    END_TYPE
1
2
3
4
5
6
枚举
关键字:()
定义格式:
    TYPE 类型名称:
        (变量名称;
        ...)  基本类型
    END_TYPE
1
2
3
4
变量定义
变量名称: 变量类型;
e.g. bEnable: BOOL;
控制语句
条件语句
关键字:IF, ELSIF, ELSE
格式:
IF 条件表达式 THEN
    ...
ELSIF 条件表达式 THEN
    ...
ELSE
    ...
END_IF
1
2
3
4
5
6
7
循环语句
关键字:FOR TO DO END_FOR, WHILE END_WHILE, REPEAT UNTIL END_REPEAT
格式:
    FOR 变量:=初始值 TO 目标值 DO
        ...
    END_FOR

    WHILE 条件表达式 DO
        ;
    END_WHILE
    
    REPEAT 
        ...
    UNTIL 条件表达式
    END_REPEAT
1
2
3
4
5
6
7
8
9
10
11
12
CASE语句
关键字:CASE OF
格式:
CASE 变量名称 OF
变量值1:
    ...
变量值2:
    ...
...
ELSE
    ...
END_CASE
1
2
3
4
5
6
7
8
9
跳转语句
EXIT
跳出当前循环,相当于C的 break
CONTINUE
跳出循环的当次执行,与C的continue类似
RETURN
返回,后面程序不再执行,与C的return有一定区别,ST的函数返回值不用RETURN返回,直接函数名接受值
JMP
跳转到指定标签位置,相当与C的goto
POU
POU(Programming Organisation Unit) 是IEC 61131-3 标准中最重要的基本编程单元,它包含如下三种类型

功能块
功能块实现了数据和操作的封装,类似与C++中的类,但调用起来又有很多不同之处,功能块中定义的变量如果没有特别声明为TEMP临时变量,那么都为静态变量
函数
函数对操作进行了封装,与C++中的函数概念类似,函数中定义的变量如果没有特别声明为STAT静态变量,那么都是临时变量
程序
程序就是一段顺序执行的代码,当然里面可以调用其他程序,使用函数、功能块
————————————————
版权声明:本文为CSDN博主「libing_thinking」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/libing_thinking/article/details/101711465

你可能感兴趣的:(PLC)