苏州实操派科技有限公司官网-实操派教育科技,汇川技术PLC培训,实操派PLC培训,苏州PLC培训机构

ST语法编程基础-ST语言简介

[复制链接]
1 213

附件下载,需登录可以查看贴内更多信息

您需要 登录 才可以下载或查看,没有账号?立即注册

x
1.png

2.png

3.png

4.png


1.ST语言简介
1.1 ST语言特点
      结构化文本编程语言是一种高级语言,类似于 Pascal,是一种特别为工业控制应用而开发的一种语言,也是在 InoProShop中最常用的一种语言, 对于熟悉计算机高级语言开发的人员来说,结构化文本语言更是易学易用,它可以实现选择、迭代、跳转语句等功能。
    此外,结构化文本语言还易读易理解,特别是当用有实际意义的标识符、批注来注释时,更是这样。 在复杂控制系统中, 结构化文本可以大大减少其代码量, 使复杂系统问题变得简单,缺点是调试不直观, 编译速度相对较慢。结构化文本的视图如图所示:
5.png

结构化文本有以下特点:
1、高级文本编程语言
2、结构化的编程
3、简单的标准结构
4、快速高效的编程
5、使用直观灵活
6、与PASCAL类似
7、有计算机编程经验的人可以很容易地使用它
8、符合IEC 61131-3标准

1.2 ST语言的执行顺序
使用结构化文本的程序执行顺序根据“行号” 依次从上至下开始顺序执行,如图所示。
6.png


1.3 表达式执行顺序
整个 ST 程序由指令构成,指令由分号 “;”分隔。这些指令由关键字和表达式组成。其中,表达式由操作符和操作数组成。一个操作数可以是一个常量,变量,功能调用或其他表达式。常量,例如:20,t#20s,‘22231 test’。
变量,例如:iVar,Var1[2,3]。
功能调用,值为调用返回值,例如:Fun1(1,2,4)。
其它表达式:10+3,var1 OR var2,(x+y)/z,                   iVar1:=iVar2+22。
表达式的求值以特定的操作符优先权定义的顺序,按操作符对操作数进行求值。表达式中具有最高优先权的操作符应首先进行求值,接着是下一个较低优先权的操作符等,从高到低依次求值完成。下表记录了ST语言的操作符及其优先级顺序。
7.png


2.关键字
关键字是语言元素特征化的词法单元。在 IEC61131-3 标准中,关键字作为编程语言的字,被用于定义不同结构或启动和中指特定的软件元素。
部分关键字配对使用,如 FUNCTION 与 END_FUNCTION 等。部分关键字单独使用,如 ABS等。关键字不能用于任何其他目的,如不能作为变量名或扩展名,既不能用 TON 作为变量名,也不能用 VAR 作为扩展名。
8.png

此外,下列功能模块和函数的标识符也被保留作为关键字:
1) 标准数据类型: BOOL, REAL, INT 等。
2) 标准函数名和功能块名: SIN, COS, RS, TON 等。
3) 指令表语言中的文本操作符: LD, ST, ADD, GT 等
4) 结构化文本语言中的文本操作符: NOT, MOD, AND 等。

3.操作符
9.png

10.png

11.png


4.常用ST指令介绍
4.1 赋值指令
        赋值指令用于变量赋值,也就是赋值关键字的左边是变量,右侧为要赋的值,通过赋值关键字进行赋值。例如:Var1 := Var2 * 10;完成执行后,Var1值为Var2的10倍。其中的赋值关键字包含三种:“:=”、“S=”、“R=”。
(1)  “:=”为一般赋值,右值直接赋给左值,左值和右值相等。
(2) “S=”为置位赋值,表示如果右值为TRUE,左值变量变为TRUE(置位),  直到调用R=命令来初始化。
(3)  “R=”为复位赋值,表示如果右值为TRUE,左值变量变为FALSE(复位)。用于复位S=指令置位的变量。例如:a S= b; 一旦b为 TRUE后,a会保持 TRUE, 即使b 变为 FALSE后。

4.2 功能块的调用
语法:  <FB 实例名>(FB输入变量:=<值和地址>|, <更多FB 输入变量:=<值和地址>|...更多 FB 输入变量);
下例中,一个延时功能块(TON)被调用,参数IN和PT被分配。那么结果变量Q被分配到变量A。延时FB通过&quot;TMR:TON&quot;实例化。
<FB instance name>, <FB variable>:
TMR(IN := %IX5, PT := 300);
A:=TMR.Q;

4.3 RETUTN 指令
RETURN指令表示当前置条件为TRUE时,离开此POU。
语法:
        RETURN;
示例
IF b=TRUE THEN
RETURN;
END_IF;
a:=a+1;
如果b是TRUE,语句a:=a+1;不会被执行,POU会立即被返回。

4.4 IF 指令
通过IF关键字,可以判断执行条件,根据执行条件,执行相应的指令。
语法:
IF <布尔表达式1> THEN
<IF_指令>
{ELSIF <布尔表达式2> THEN
<ELSIF_指令1>
ELSIF <布尔表达式n> THEN
<ELSIF_指令-1>
ELSE
<ELSE_指令>}
END_IF;
其中,{}内部分是可选的, 如果 <布尔表达式1> 为TRUE, 那么只有 <IF_指令> 被执行,其它不被执行,否则,从 <布尔表达式2>开始,一个一个计算布尔条件表达式直到其中一个表达式值为TRUE,然后执行此表达式对应的指令,如果没有表达式值为TRUE,那么执行 <ELSE_指令>对应的指令。
示例
IF temp<17
THEN heating_on := TRUE;
ELSE heating_on := FALSE;
END_IF;
这里,当温度低于17度时,加热打开,否则它保持关闭。

4.5 CASE 指令
使用CASE指令,可以根据一个条件变量,根据其对应的多个值罗列处理对应的命令。条件变量只能是整数。
语法:
CASE <Var1> OF
<value1>: <Instruction 1>
<value2>: <Instruction 2>
<value3, value4, value5>: <Instruction 3>
<value6 .. value10>: <Instruction4>
...
<value n>: <Instruction n>
ELSE <ELSE Instruction>
END_CASE;
CASE指令根据以下流程处理:
*  如果变量<Var1>的值为 <valueI>, 那么<Instruction I>会被执行
*  如果 <Var1>没有匹配任何一个值,那么<ELSE Instruction>被执行
* 如果同一个指令在几个变量值时执行,那么可以把这些值一个接一个的写出来,用逗号隔开,因此共同执行
*  如果同一个指令会在一个变量范围内执行,可以写上初始值和结束值,中间用两个点隔开。你可以把这些情况合一 。

4.6 WHILE 循环
WHILE循环和FOR循环一样可以作为循环处理使用,但和FOR循环不同是循环条件可以是任意布尔表达式 。一旦循环条件满足,循环就执行,否则退出循环。
语法:
WHILE <boolean expression> DO
<instructions>
END_WHILE;
当<Boolean_expression>值为TRUE时,<Instructions>指令开始执行,直到<Boolean_expression>值为FALSE。<Boolean_expression>在第一次值为FALSE,那么 <Instructions>永不会被执行。如果<Boolean_expression> 永远不会为FALSE,那么 <Instructions> 重复执行不停,这叫做死循环,编程时一定确保不要出现死循环。
示例
WHILE Counter<>0 DO
Var1:= Var1*2;
Counter := Counter-1;
END_WHILE
在一定意义上来说,WHILE循环和REPEAT循环比FOR循环功能更强大,因为不需要在执行循环之前计算循环次数。因此,在有些情况下,用WHILE循环和REPEAT循环两种循环就可以了。然而,如果清楚知道循环次数,那么FOR循环更好。

4.7 REPEAT
REPEAT循环不同于WHILE循环,因为循环条件是在循环指令执行后才检查的,这意味着,循环至少执行一次,不管循环条件值如何。语法:
REPEAT
<instructions>  
UNTIL <Boolean expression>
END_REPEAT;
执行逻辑为:<Instructions>一直执行直到<Boolean expression>值为TRUE。如果<Boolean expression>在第一次值TRUE,那么 <Instructions> 只被执行一遍。如果 <Boolean_expression> 值永远不是TRUE,那么 <Instructions> 永远执行不停,导致死循环。
示例
REPEAT
Var1:=Var1*2;
Counter:=Counter-1;
UNTIL Counter=0;
END_REPEAT;

4.8  CONTINUE 语句
CONTINUE指令在 FOR, WHILE和 REPEAT循环中使用,用于提前结束本轮循环,并重新开始下一轮循环。
示例
FOR Counter:=1 TO 5 BY DO
INT1:=INT1/2;
IF INT1=0 THEN
CONTINUE;
END_JF
Var:=Var1/UBT1L
END_FOR;
Erg:=Var1;

4.9 FOR循环
通过FOR循环,可以编写重复处理逻辑。
语法:
FOR <INT_Var> := <INIT_VALUE> TO <END_VALUE> {BY <Step size>} DO
<instructions>
END_FOR;
{} 内的部分是可选的。INT_Var是计数器,是整数类型,只要计数器<INT_Var>不大于<END_VALUE>,<Instructions>会被执行。在执行 <Instructions> 之前首先要检查该条件,如果 <INIT_VALUE>大于 <END_VALUE>,<instructions> 不会被执行。
当 <Instructions>执行一次后, <INT_Var>自动增加<Step size>。<Step size>可以是任意整数值,如果不写此参数,默认值为1。当<INT_Var>大于<END_VALUE>时,循环停止。
示例
FOR Counter:=1 TO 5 BY 1 DO
Var1:=Var1*2;
END_FOR;
Erg:=Var1;
我们假设Var1默认值是2, 经过FOR循环后,它的值是32。

4.10 注释
在结构化文本中有两种写注释的方法。
多行注释,用“(*”开始,“*)”结束。这允许注释跨行注释。例如: &quot;(*This is a comment.*)&quot;
单行注释,用“//”作为注释的开始直到本行结束。例如: &quot;// This is a comment.&quot;
注释可以在ST编辑器声明或实现部分的任意地方。
注释的嵌套:注释可以放置在其他注释中
示例(*a:=inst.out; (*to be checked*)b:=b+1;*) 2.1 ST语言简介.pdf (2.91 MB, 下载次数: 0)
免责声明:内容为网友自行发布或者来自互联网资源或者参考文献,如果侵犯了您的权益,请联系站长 1304546267@qq.com,我们会及时删除侵权内容,感谢您的理解!

相关帖子

回复

使用道具 举报

关键词:ST语法编程基础,ST语言简介

概述:
本文将介绍ST(Structured Text)语言的基础知识和语法编程,ST语言是一种可用于工业自动化领域的编程语言。首先,我们将介绍ST语言的概念和特点,然后深入探讨ST语法编程的基础知识,包括数据类型、变量声明、运算符、条件语句和循环语句,最后,我们将展示一些实例来帮助读者更好地理解ST语法编程。

第一部分:ST语言的概念和特点
1. ST语言简介:ST(Structured Text)语言是一种高级编程语言,它主要用于工业自动化系统中的程序编写。与其他编程语言相比,ST语言具有丰富的语法和强大的功能,可以用于编写复杂的控制逻辑。
2. ST语言的特点:ST语言具有以下特点:
   - 结构化:ST语言采用结构化编程风格,使得程序具有清晰的结构和良好的可读性。
   - 可移植性:ST语言的程序可以在不同的平台上运行,便于代码重用和维护。
   - 强大的数据处理能力:ST语言支持各种数据类型和运算符,可以进行复杂的数据处理和计算。
   - 可靠性:ST语言具有严格的语法检查和错误处理机制,可以提高程序的可靠性和稳定性。

第二部分:ST语法编程的基础知识
1. 数据类型:ST语言支持多种数据类型,包括整数、实数、布尔值等,可以根据需要选择合适的数据类型。
2. 变量声明:在ST语言中,需要先声明变量然后才能使用。变量声明包括变量名称、数据类型和初始值(可选)。
3. 运算符:ST语言支持各种运算符,包括数学运算符、逻辑运算符等。通过运算符,可以进行数据的计算和逻辑判断。
4. 条件语句:条件语句用于根据不同的条件执行不同的代码块。ST语言提供了if语句、switch语句等条件语句结构。
5. 循环语句:循环语句用于重复执行一段代码,ST语言提供了while循环和for循环两种方式。

第三部分:实例演示
以下是一些使用ST语法编程的实例,帮助读者更好地理解ST语法编程:
1. 温度控制:使用ST语法编写一个温度控制程序,根据传感器读数调整温度控制器的输出。
2. 计数器:使用ST语法编写一个计数器程序,实现对某个事件的计数功能。
3. 逻辑判断:使用ST语法编写一个逻辑判断程序,根据输入信号的状态执行不同的操作。

总结:
本文介绍了ST语言的基础知识和语法编程方法。ST语言是一种用于工业自动化领域的编程语言,具有结构化、可移植性和强大的数据处理能力等特点。通过学习ST语法编程的基础知识,包括数据类型、变量声明、运算符、条件语句和循环语句,读者可以更好地理解和应用ST语言进行程序开发。实例演示部分展示了一些使用ST语法编程的实例,帮助读者更好地理解ST语法编程的应用场景和方法。
                                                                                                                                                                                                                                                 以上内容来自  AI机器人,如需继续对话,则在此回答下“点击回复” 或者 在提问时  “@机器人”!禁止 "黄赌毒及政治敏感",违者封号,严重者 提交 网警公安部门。本站不对内容真实性负责,AI机器人有时候会乱说一通……
回复

使用道具 举报

data/attachment/temp/202212/30/133743h8cd9z14sjs84kaz.png_thumb.jpg 共31章节616课时

【全科班】汇川中型PLC从0到1就业班(Codesys系统化全科班课程-600节+)-汇川PLC教程

朱子文

咨询客服
https://shicaopai-video-files.oss-cn-hangzhou.aliyuncs.com/keke_video_base/image/20240206/VMdEZiqp3BMkbBIlMRRD.png 共9章节44课时

【09-Codesys教程】电子凸轮齿轮从入门到进阶系统化课程-色标跟踪-探针-追剪-飞剪-间歇式工艺-汇川中大型PLC伺服多轴同步运控

朱子文

¥ 699.00
https://shicaopai-video-files.oss-cn-hangzhou.aliyuncs.com/keke_video_base/image/20240217/v39r666Z663eBBGKErRm.png 共30章节630课时

【全科班】汇川技术H5U从0到1就业班(系统化全科班-600节+)

张汉清

咨询客服
https://shicaopai-video-files.oss-cn-hangzhou.aliyuncs.com/keke_video_base/image/20240207/HlL5SWHry9lPVdqC8i59.png 共5章节63课时

【01-Codesys教程】ST文本从0到1,从入门到进阶-汇川中大型PLC教程

朱子文

¥ 499.00
https://shicaopai-video-files.oss-cn-hangzhou.aliyuncs.com/keke_video_base/image/20240227/AMo32PcbJeIMJBT3m8Pu.png 共4章节36课时

03 中大型ST文本结合仿真软件小项目 31节-气缸功能块封装-状态机编程思路-小设备框架

朱子文

¥ 499.00
https://shicaopai-video-files.oss-cn-hangzhou.aliyuncs.com/keke_video_base/image/20240206/Fu5pu34pPcTpu0La443P.png 共6章节52课时

【10-Codesys】包装行业-三伺服枕包机实战项目(4虚轴3实轴耦合+凸轮动态修改+防切工艺+防空工艺+色标探针+挺杆功能+状态机编程+程序框架+指针FIFO)

朱子文

¥ 899.00
https://shicaopai-video-files.oss-cn-hangzhou.aliyuncs.com/keke_video_base/image/20240206/Su1ibr3I77yl78DLBR7D.png 共4章节29课时

【12-Codesys小课】中大型PLC-PID控制器算法从入门到进阶之液位控制系统

朱子文

¥ 699.00
https://shicaopai-video-files.oss-cn-hangzhou.aliyuncs.com/keke_video_base/image/20230603/Cz3hqDmDD8qHfT3MDm4m.png 共3章节30课时

【05-Codesys教程】汇川中大型PLC单轴运动控制教程-汇川PLC教程

朱子文

¥ 399.00
https://shicaopai-video-files.oss-cn-hangzhou.aliyuncs.com/keke_video_base/image/20230603/gXpEpJ8Qb78eD5lDqlnQ.png 共3章节25课时

【06-Codesys教程】汇川中大型PLC运动控制进阶篇(多轴PTP)-编程框架与编程模板实操

朱子文

¥ 499.00
https://shicaopai-video-files.oss-cn-hangzhou.aliyuncs.com/keke_video_base/image/20240206/e39s63ppg54Q2s5H33H9.png 共3章节24课时

【08-codesys教程】汇川中大型codesys教程-多轴运控扩展篇经验分享小知识分享

朱子文

¥ 299.00
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

data/attachment/temp/202212/30/133743h8cd9z14sjs84kaz.png_thumb.jpg 共31章节616课时

【全科班】汇川中型PLC从0到1就业班(Codesys系统化全科班课程-600节+)-汇川PLC教程

朱子文

咨询客服
https://shicaopai-video-files.oss-cn-hangzhou.aliyuncs.com/keke_video_base/image/20240206/VMdEZiqp3BMkbBIlMRRD.png 共9章节44课时

【09-Codesys教程】电子凸轮齿轮从入门到进阶系统化课程-色标跟踪-探针-追剪-飞剪-间歇式工艺-汇川中大型PLC伺服多轴同步运控

朱子文

¥ 699.00
https://shicaopai-video-files.oss-cn-hangzhou.aliyuncs.com/keke_video_base/image/20240217/v39r666Z663eBBGKErRm.png 共30章节630课时

【全科班】汇川技术H5U从0到1就业班(系统化全科班-600节+)

张汉清

咨询客服
https://shicaopai-video-files.oss-cn-hangzhou.aliyuncs.com/keke_video_base/image/20240207/HlL5SWHry9lPVdqC8i59.png 共5章节63课时

【01-Codesys教程】ST文本从0到1,从入门到进阶-汇川中大型PLC教程

朱子文

¥ 499.00
https://shicaopai-video-files.oss-cn-hangzhou.aliyuncs.com/keke_video_base/image/20240227/AMo32PcbJeIMJBT3m8Pu.png 共4章节36课时

03 中大型ST文本结合仿真软件小项目 31节-气缸功能块封装-状态机编程思路-小设备框架

朱子文

¥ 499.00
https://shicaopai-video-files.oss-cn-hangzhou.aliyuncs.com/keke_video_base/image/20240206/Fu5pu34pPcTpu0La443P.png 共6章节52课时

【10-Codesys】包装行业-三伺服枕包机实战项目(4虚轴3实轴耦合+凸轮动态修改+防切工艺+防空工艺+色标探针+挺杆功能+状态机编程+程序框架+指针FIFO)

朱子文

¥ 899.00
https://shicaopai-video-files.oss-cn-hangzhou.aliyuncs.com/keke_video_base/image/20240206/Su1ibr3I77yl78DLBR7D.png 共4章节29课时

【12-Codesys小课】中大型PLC-PID控制器算法从入门到进阶之液位控制系统

朱子文

¥ 699.00
https://shicaopai-video-files.oss-cn-hangzhou.aliyuncs.com/keke_video_base/image/20230603/Cz3hqDmDD8qHfT3MDm4m.png 共3章节30课时

【05-Codesys教程】汇川中大型PLC单轴运动控制教程-汇川PLC教程

朱子文

¥ 399.00
https://shicaopai-video-files.oss-cn-hangzhou.aliyuncs.com/keke_video_base/image/20230603/gXpEpJ8Qb78eD5lDqlnQ.png 共3章节25课时

【06-Codesys教程】汇川中大型PLC运动控制进阶篇(多轴PTP)-编程框架与编程模板实操

朱子文

¥ 499.00
https://shicaopai-video-files.oss-cn-hangzhou.aliyuncs.com/keke_video_base/image/20240206/e39s63ppg54Q2s5H33H9.png 共3章节24课时

【08-codesys教程】汇川中大型codesys教程-多轴运控扩展篇经验分享小知识分享

朱子文

¥ 299.00

到"π³ 实操派",学PLC就是快!汇川PLC及Codesys培训

项目实战 手把手教学 微信&电话 15850116008
超600节系统化课程,汇川优秀自动化讲师亲授!学一门Codesys,玩800家PLC仅剩少量名额
点击免费试听

到实操派,学PLC就是快!

扫码领取工控文库VIP

钻石VIP先到先得

服务电话 & 微信:9:00-22:00

15850116008

苏州实操派科技有限公司

公司地址:江苏省苏州市吴中区越溪街道天鹅荡路5号31B13

Copyright © 苏州实操派科技有限公司 2022 到实操派,学PLC就是快!工业自动化业务培训适用人群:成人 ( 苏ICP备2022021576号-3 )

公司地址:江苏省苏州市吴中区越溪街道天鹅荡路5号31B13

返回顶部