1、结构文本(ST)TM246结构文本(ST) TM 前提培训模块: TM0 Automation Studio基础TM Automation Studio在线通讯TM 自动化运行(Runtime)系统TM Automation Studio诊断软件: 无硬件: 无 简介结构文本(ST) TM目录简介. 目的结构文本特点. 概述. 特点. 可能性结构文本基础. 表达式. 赋值. 注释. 操作符优先级命令组. 布尔逻辑操作. 算术运算. 比较操作. 判断. Case语句. Loops. 调用功能块. 指针和动态变量小结练习附录. 关键字. 函数结构文本(ST) TM 简介1、简介结构文本是一种高级语
2、言,如果你知道如何使用高级语言来编程,像:Basic、PACSAL或C,那么你会很轻松的掌握Structured Text(ST)编程;如果不知道,你会看到ST有着简单、标准的结构,保证程序高效、快速运行并简单易懂。图. 书本印刷: 过去和现在在下一章里,你会学习到ST的命令、关键字、语法和其它的主题。所有的这些你都可以做练习,我们有许多帮助你理解ST的简单例程。结构文本(ST) TM1.1 目的课程参与者将熟悉使用结构文本给自动化目标编程。课程参与者将学到每个独立的命令组和它们之间如何工作。课程参与者将了解结构文本预留的关键字。图. 综述简介结构文本(ST) TM 2、结构化文本的特点2.1
3、 概述ST是针对自动化系统的高级文本编程语言。简单的标准结构确保快速、高效的编程。ST使用了高级语言的许多传统特性,包括:变量、操作符和控制流程语句。ST还能与其它的PLC编程语言一起工作。那么什么是结构文本呢?“结构“是指高水平的结构化编程能力,象一个“结构化的编程“;“文本“是指应用文本而不是梯形图和顺序函功能表的能力。ST语言不能代替其它的语言,每种语言都有它自己的优点和缺点。ST主要的一个优点就是能简化复杂的数学方程。2.2 特点结构化文本有以下特点:高级文本编程语言结构化的编程简单的标准结构快速高效的编程使用直观灵活与PASCAL类似有计算机编程经验的人可以很容易地使用它符合IEC
4、-标准2.3 可能性Automation Studio提供以下功能:数字量和模拟量I/O逻辑操作逻辑比较表达式算术运算判断语句机器的状态语句循环语句功能块可选用的动态变量诊断工具结构文本特点结构文本(ST) TM3、结构文本基础3.1 表达式表达式是指返回变量评估值的结构。表达式由操作符和操作数组成。操作数可以是常量,变量,调用函数或其它表达式。3.2 赋值操作符通过一个表达式和一个值来给变量赋值。赋值语句包括位于左边的变量,赋值操作符“:=“,及后边需要计算的表达式。所有的语句,包括赋值语句,必须要以分号“;“结尾。 当这行程序执行后,变量“Var“的值是变量“Var“的两倍。3.3 注释虽
5、然注释经常被删掉,但它们是源代码中非常重要的一部分。它们解释了一部分代码,使程序更易读懂。注释帮助你或其他人读你的程序,即使过去了很长时间。注释不被编译,因此不会影响程序的执行。注释应该用一对星号和小括号括起来“(*comment*)“。结构文本基础例子:图 Assignment例子:图. 单行注释例子:结构文本(ST) TM 3.4 操作符优先级如果在一个表达式中使用几个操作符,就会出现优先级的问题(执行的顺序)。操作符按优先级的顺序来执行。在任何一个表达式中,首先执行最高级别的操作符,接着执行低一级的操作符,等等,直到执行完所有的操作符。具有相同级别的操作符按照书写顺序从左至右依次执行。结
6、构文本基础操作符符号 / 语法: 括号()最高优先级函数调用例子Call argument(s)LN(A), MAX(X), 等. 注释*取反NOT乘除取模 (取除法的余数) */MOD加减+-比较, =等于不等于=不等于IF a 大于IF a b THEN =大于等于IF a = b THENb THEN 1. 比较Result := 1; 1. 语句(s)ELSIF THEN ELSIF a c THEN 2. 比较 (可选)Result := 2; 2. 语句(s)ELSE ELSE前面IF语句都不满足(可选)Result : = 3; 3. 语句(s)END_IF END_IF判断结束
7、结构文本(ST) TM 命令组4.4.1 IF最简单的IF判断语句。基本上,如果条件表达式的结果为TRUE就执行语句。如果条件表达式的结果是FALSE,程序就执行END_IF后面的语句。条件表达式可以是简单关联的语句或用运算符(and,or等)连接的复合语句。 例子:图. 简单 IF 语句程序图. 简单 IF 语句流程图结构文本(ST) TM4.4.2 ELSE它是简单IF语句的扩展。在IF结构中应该只有一个ELSE。如果条件为TRUE,执行语句A。如果条件为FALSE,执行语句B。命令组图. IF- ELSE 语句图. IF ELSE 程序结构文本(ST) TM 命令组4.4.3 ELSIF
8、运用一个或多个ELSE_IF语句可以实现多个不同的条件,而不用使用多个简单的IF语句创建复杂的程序逻辑。图. IF-ELSIF-ELSE 流程图图. 0 IF-ELSIF-ELSE 程序处理器自上而下地执行判定。如果条件的结果为TRUE,那么就执行属于这个条件的指令和命令,之后处理器就跳到判断语句的结尾(END_IF)。在程序的一次循环中,无论下一个条件是否为TRUE,只有上面属于第一个条件TRUE的语句被执行。如果IF或ELSIF条件都不为TRUE,那么就执行属于ELSE下的指令。结构文本(ST) TM命令组任务: 气象站 第 I部分用温度计来测量室外的温度,温度通过模拟量读取(=0),并且要以文本的形式在房间里显示。 当温度在C以下,显示“cold“(冷)。 当温度是在C到C之间,显示“opt“(最佳)。 当温度是C以上,显示“hot“(热)。用IF,ELSIF和ELSE语句实现这个任务。图. 温度计, 例子, IF备注:在ST中, 按如下指定一个字符串文本: StringVar := COLD