您的位置 首页 > 数码极客

ST语言入门基础

一、结构化文本(ST 语言)

结构化文本(Structured Text)简称 ST 语言,是 IEC61131-3 所规定的 PLC 编程语言之一,

用于工业控制的高级语言。由于其编写方式与一般计算机语言相似,多用于较为复杂的控制

场合和复杂的控制算法中。

1、特点:

编程语言采用高度简化的表达形式,使得程序紧凑,结构清晰;

带有多种控制语句,便于实现复杂的控制逻辑,如IF、 CASE条件语句和FOR、WHILE、 REPEAT循环语句;

程序结构清晰,便于阅读。

2、ST程序结构

ST语言的程序由语句组成,语句由表达式和关键字组成,表达式由操作数和操作符组成。

ST结构

二、语法基础

1、表达式

表达式的构成

ST语言的程序中,表达式由操作数和操作符组成。

一个表达式可包含一个或多个操作符、变量和函数

语法1

操作数

操作数可以是表示数据的数据文字、字符串文字、时间文字、变量元素、函数调用和其他表达式;

例如: 15、 TRUE、 T#20S、 ARRAY1[1]、 SIN(A)、(A>B) &(C=D)。

操作符

在一个表达式中使用多个操作符时,按优先级从高到低依次执行。 相同优先级的操作符按照书写顺序从左向右依次执行。

操作符

2、语句

赋值语句

赋值语句用于将赋值符号(:=)右侧的表达式计算的值赋给左侧的变量。

格式

赋值语句的一般形式如下, 其中“:=”为赋值操作符, 且要用分号“;”结尾。

格式 变量 := 表达式 ;

例子

变量1 := 100 ; //对变量1赋值100

变量2 := TRUE ; //对变量2赋值TRUE

变量3 := 变量1 *2 ; //将变量1乘以2后得到结果赋值给变量3

变量4 := SIN(变量3); //将变量3做正弦运算后的结果赋给变量4

数组A[1] := 1.5; //对数组A下标为1的元素赋值1.5

变量5 := 1; 变量6 := 1.5; 变量7 := FALSE; //一行中可以同时存在多条赋值语句

函数调用

u 函数(FC)调用后将其返回值作为表达式的值赋值给其他变量,其一般格式如下:

变量 := 函数名(参数表) ;

参数表有两种书写方式:

方式1: 变量 := 函数名 ( 函数输入参数1 := 输入变量1 ,函数输入参数2 := 输入变量2 , … );

方式2: 变量 := 函数名 (输入变量1 , 输入变量2 , … );

例如:通过函数MAX(取最大值)选取变量1和变量2中的最大值,并将该最大值赋值给变量3,两种调用方式如下:

方式1:变量3: =MAX(IN1:=变量1, IN2:=变量2);

方式2: 变量3: =MAX(变量1,变量2);

注意:

通过方式2调用时,参数表中的变量从左往右依次与函数的输入参数对应,所以不能空缺;

某些二元操作符不能作为函数名进行函数调用,如MOD、 AND,NOT等:

注意 变量: =MOD(变量1,变量2); ×

变量: =变量1 MOD 变量2; √

例子

函数调用

功能块调用

功能块(FB)调用需要将其进行实例化,通过实例名称实现调用,其一般格式如下:

格式

功能块实例名(参数表) ;

参数表有两种书写方式:

方式1: 功能块实例名 ( 功能块输入参数1 := 输入变量1 ,

功能块输入参数2 := 输入变量2 ,

功能块输出参数1=> 输出变量1 ,

功能块输出参数2=> 输出变量2,

… )

方式2: 功能块实例名 (输入变量1 , 输入变量2 , …,输出变量 1,输出变量2, ….);

例如:通过功能块TON的实例名TIMER1对TON进行调用:

方式1:

TIMER1( EN:= 变量1 , IN:= 变量2 , PT:= T#1S,

ENO =>变量4, Q =>变量5, ET=>变量6 );

方式2:

Timer1 (变量1 , 变量2 , T#1S, 变量4, 变量5, 变量6 );

直接赋值与间接赋值

直接赋值

通过功能块TON的实例名Timer1对TON进行调用:

Timer1 ( EN:= 变量1 ,

IN:= 变量2 ,

PT:= T#1S,

ENO =>变量4,

Q =>变量5,

ET=>变量6 );

间接赋值

Timer1 .EN:= 变量1; //对TON的输入参数EN进行赋值

Timer1 . IN:= 变量2; //对TON的输入参数IN进行赋值

Timer1 . PT:= T#1S; //对TON的输入参数PT进行赋值

Timer1 ( ); //调用TON功能块执行

变量4 := Timer1 .ENO; //将TON功能块输出参数ENO的状态输出到变量4

变量5 := Timer1 .Q; //将TON功能块输出参数Q的状态输出到变量5

变量6 := Timer1 .ET; //将TON功能块输出参数ET的状态输出到变量6

这次先讲到这里,下一篇我们继续学习ST里面常用的语句。

喜欢这篇文章的可以转发和关注我,如果有好的建议或意见请留言告诉我。

下次见!!

我是气球哥!!

责任编辑: 鲁达

1.内容基于多重复合算法人工智能语言模型创作,旨在以深度学习研究为目的传播信息知识,内容观点与本网站无关,反馈举报请
2.仅供读者参考,本网站未对该内容进行证实,对其原创性、真实性、完整性、及时性不作任何保证;
3.本站属于非营利性站点无毒无广告,请读者放心使用!

相关推荐