贝加莱(B&R)北京培训5.24——5.27
监控画面,右键点击空白处,选择“Insert Variable”选项,可以增加需要监测的变量。
三、5月26日
1、结构文本(ST)(参考贝加莱资料TM246) 1.1、ST介绍
ST是针对自动化系统的高级文本编程语言。简单的标准结构确保快速、高效的编程。ST使用了高级语言的许多传统特性,包括:变量、操作符和控制流程语句。ST还能与其它的PLC编程语言一起工作
“结构”是指高水平的结构化编程能力,像一个\结构化的编程\。 “文本”是指应用文本而不是梯形图和顺序函功能表的能力。 1.2、操作符优先级(图19) 1.3、数据类型转换
表达式左边的数据类型应该等同于(或大于)右边的数据类型。 (1)、隐性数据类型转换
该类型的转换由编译器完成。编译器将表达式中低的数据类型转换成高的数据类型。如果有两种或多个类型的变量参与运算,那么必须将它们转换成相同的类型以便执行运算。
16
贝加莱(B&R)北京培训5.24——5.27
(2)、显性数据类型转换
显性数据类型转换也是数据类型转换问题。我们知道,表达式的左右两边要有相同的数据类型,但必须注意当出现运算溢出问题,需
图19
要将左边的变量类型放大,右边至少有一个变量的类型和左边放大后的类型一致。
1.4、常用语句 1.4.1、IF语句(图20)
17
贝加莱(B&R)北京培训5.24——5.27
用IF语句表示判断,这里还要用到比较操作。判断分三部分: ? 简单IF语句 ? IF – ELSE语句 ? IF – ELSIF语句
IF语句的嵌套:嵌套对于依赖其它条件的条件测试很有用处。一个嵌套的IF语句其优先级低于上一层的优先级,它的执行取决于上一层IF条件的结果。使用嵌套时必须注意每个IF要和END_IF相匹配,否则会导致错误的执行顺序。
基本上,如果条件表达式的结果为TRUE就执行语句。如果条件表达式的结果是FALSE,程序就执行END_IF后面的语句。条件表达式可以是简单关联的语句或用运算符(and,or等)连接的复合语句。
图20
1.4.2、CASE语句(图21)
在CASE语句中,控制变量与几个值作比较,如果表达式的结果与其中一个值相同,那么就执行相应的语句。如果表达式的结果与任何一个值都不相同,那么就执行象IF 语句一样的ELSE分支。语句执行完
18
贝加莱(B&R)北京培训5.24——5.27
后,继续执行END_CASE后的程序。
CASE语句的语法:
? CASE语句以CASE开始,以END_CASE结束,并且各自单独占一行。
? 在CASE和OF之间的变量必须是UINT类型。
? 在CASE的子句中,只能使用正整数,不允许使用变量名或表达式。
? 数字不能重叠使或在几个区域内使用。
图21
1.4.3、FOR循环语句(图22)
在很多应用程序中,需要多次执行某些步骤,这就是重复执行代码的原因,这个过程叫循环。循环程序的设计中需要建立这样一种程序使它能够循环返回并循环执行自身程序。
循环语句使源代码简短并一目了然。 循环语句可以嵌套在其它语句中。
19
贝加莱(B&R)北京培训5.24——5.27
循环程序编写时很容易进入死循环,一直重复执行自身程序,引起控制器启动看门狗限制,并产生一个严重错误阻碍程序的执行。
因此,通常使用一些方法来跳出循环:设定循环次数或条件改变时停止循环。
如果提前可以确定循环的次数就用FOR语句。否则就用WHILE 或REPEAT。
FOR语句可以递增或递减循环控制变量的值,使它从起始值到达终止值。递增或递减的默认值为 。每次循环之前都会检测终止条件,如果循环控制变量的值超过终止值时,就不再执行语句段了。
图22
20