线下实训
HOME
线下实训
正文内容
plc编程关键词 PLC编程(ST)语言常用语句及功能简介
发布时间 : 2024-11-24
作者 : 小编
访问数量 : 23
扫码分享至微信

PLC编程(ST)语言常用语句及功能简介

前文给大家简单的讲了一下IEC61131-3&GB/T15969.3,可编程序控制器-第3部分:编程语言。IEC 61131-3国际标准的编程语言包括5种语言。

今天给大家带来的是其中我本人认为使用最方便,最简化的ST语言。

文本编程语言"结构文本(Structured Text),ST"来源于编程语言Pascal。主要分为赋值语句,选择语句,迭代语句。本次将从ST语言的操作符以及ST语言的语句来描述ST语言。大家不要认为ST语言很难。从本人的使用感受上来说,一个IF语句就可以应付90%以上的应用场景。

ST语言的操作符

ST语言的操作符

ST语言的语句

赋值语句(比较、结果、调用)

赋值语句用表达式的求值结果替代单个或多个元素变量的当前值。赋值语句应包括:左侧的变量应用,接着是赋值操作符":=",其后是要求值的表达式。

选择语句(IF、CASE)

选择语句包括IF语句和CASE语句。选择语句基于所规定的条件,选择其组成语句之一(或一组)用于执行。

IF 语句规定,仅当相关的布尔表达式求值为1(真)时,才会执行一组语句。如果条件为假,不是没有语句执行,而是执行跟着ELSE关键字(或ELSIF关键字,若其相关布尔条件为真)的语句组。

CASE 语句由一个对基本数据类型(选择符)变量求值表达式和一个语句组列表组成,每组都可应用一个或多个直接量或枚举值或子范围值来标记。这些标记的数据类型应该与选择符变量的数据类型匹配,选择符变量的值应该可以和标号进行比较。它规定执行第一组语句,其范围之一包含选择符的计算值。如果选择符的值在任何情形的范围中都不出现,则执行跟有关键字ELSE(若它在CASE语句中出现)的语句序列。否则,不执行任何语句序列。

迭代语句(WHILE、REPEAT、EXIT、CONTINUE、FOR)

FOR 语句使得直到END_FOR 关键字的语句序列重复地执行,一系列的值被赋给FOR循环控制变量。控制变量、初始值和终值是相同的整数类型(例如:SINT、INT、DINT)的表示,而不应被任何重复的语句改变。FOR语句将控制变量从初始值向上或者向下增加到终值,其增量由表达式的值决定;如果省略了BY结构,那么增量的默认值为1。

WHILE 语句使得直到END_WHILE 关键字的语句序列重复地执行,直到相关的布尔表达式为假时才结束。如果表达式初始就为假,则根本不执行语句组。

REPEAT 语句使得直到END_REPEAT 关键字的语句序列重复地执行(至少一次),直到相关的布尔表达式为真时才结束。

CONTINUE 语句用来跳过本次循环中CONTINUE 语句之后直到本层循环结束符之间的剩余语句。

EXIT 语句要在终止条件满足以前终止循环,应使用EXIT 语句。当EXIT 语句位于嵌套的循环结构内时,应从EXIT 所在的最内层循环退出,即在跟随EXIT 语句的第一循环的终止符后(END_FOREND_WHILEEND_REPEAT ),控制应传给下一个语句。

总结,在IEC 61131-3国际标准的编程语言中,ST语言作为一种高级的文本语言。熟悉并掌握它极大的提高工程师的编程效率。笔者经常将一些重复性高的工作(如地址表)使用ST语言在EXCEL中进行制作,大大减少了编程工作量。在以后有机会我会用视频的方式给大家演示一个怎么用ST语言编译转换成3种图形编程语言。

PLC的各种变量怎样使用?

我最早接触“静态变量”的概念是在计算机C语言的编程中,清楚的记得它需要用"static"关键字来声明。静态变量(Static Variable)其实也是一种变量(Variable),因此在介绍静态变量(Static Variable)之前,我们先来介绍下在计算机和PLC的编程中“变量(Variable) ”的概念。

1 什么是变量

所谓“变量 ”,是在程序的运行过程中,其值可以根据某些条件而发生变化的量。与“变量”相对的是“常量(Constant) ”,顾名思义,常量的值在整个程序的运行中保持不变。

变量的名字称为“变量名”,变量名通常是一个助记符,用来表示一个物理地址。在这个地址上存放着变量的值。

变量有两个特性:作用域和生命周期。

2 全局变量与局部变量

变量的作用域是指变量的作用范围,也就是在哪些范围内该变量是有效的。根据作用域的不同,变量可以分为全局变量(Global Variable)和局部变量(Local Variable)。

全局变量在整个程序范围内都有效。

在C语言中,全局变量是在函数外部声明的变量。比如下面C语言代码中的“a”和“x”都是全局变量:

注:由于C语言从上而下执行,全局变量x并不能在函数func1中访问。

在西门子S7系列PLC的编程中,那些存放在公共存储区的变量都属于全局变量。公共存储区包括输入缓存区(I)、输出缓存区(Q)、位存储区(M)、全局数据块(Global DB)、定时器(T)、计数器(C)等等。比如,位存储区的M0.0,你可以在主程序(OB)或子程序(FB、FC)中访问它,它是全局的。

局部变量(Local Variable)是只能在某个子程序(FB或FC)中访问的变量。

也就是说,局部变量是私有的,子程序(FB或FC)只能访问其自身内部定义的变量,而不能访问其它子程序内部定义的变量。

从生命周期来看,全局变量的生命周期是整个程序的运行周期。也就是说,只要PLC还运行用户程序,全局变量就一直有效。

而局部变量的生命周期则取决于其存放的位置。

2 临时变量与静态变量

对于S7系列PLC而言,局部变量有两个存放的位置:临时变量存储区 (堆栈)和背景数据块 (Instance DB)。

临时变量存储区(堆栈),也称为局部变量存储区(Local Memory),用来存放FB或FC在运行过程中的临时变量

在S7系列PLC中,FB、FC或者OB都被称为“程序组织单元(POU,program organizational unit)”。PLC为每个POU分配一定数量的临时变量存储区,在S7-300/400 PLC中,这个区域的大小为256字节;在S7-200 Smart PLC中,这个区域的大小为64字节。

临时变量存储区中的变量称为“临时变量 ”,它们只在当前POU运行时有效。当POU运行结束后,该变量将被释放(无法保存)。

注:当POU由于中断而被挂起时,其临时变量会被保存,以便下次中断现场恢复后继续执行。

如果想保存程序运行的中间值怎么办呢?答案是使用静态变量(Static Variable)。

在博途(TIA Portal)环境或Step7开发环境中,功能块(FB)接口有“Static(STAT)”一项。所有在“STAT”栏内定义的变量都将会被存放到背景数据块中。在FB运行结束后,“STAT”中定义的变量不会被释放。这种变量称为“静态变量 ”。如下图中的变量“STAT_test1”和“STAT_test2”:

注:FB中的IN、OUT参数也会保存到背景数据块中。背景数据块中的数据只能被拥有它的功能块(FB)访问。

说到这里,你应该明白了吧?静态变量从作用域上分属于局部变量;从生命周期上来看,它与用户程序的生命周期相同。临时变量也属于局部变量,不过其生命周期短,仅在POU运行的过程中有效。

相关问答

如何设置三菱PLC的关键字?

设置关键字是要PC与PLC联机才行。8位有效数字(或开头用A,B,C)可编程逻辑控制器,它采用一类可编程的存储器,用于其内部存储程序,执行逻辑运算、顺序控制、...

三菱PLC的FX系列PLC用GX编程软件读不出程序,并没有要求输入...

那当然是PLC里边没有任何程序让你读出了。4条回答:【推荐答案】用FXGPWin试一试,GX对FX的兼容性不大好,尤其是8.0对7.0写的程序

三菱plcfx2n系列的解密,关键字解密?

正确安装USB转COM口驱动,连接电脑和PLC,打开你的电脑设备管理器,里面会出现虚拟COM口编号,设置软件通信,通信测试,成功再打开解密软件,设置同前面的虚拟CO...

三菱plc关键字怎么破解?

格式化PLC,然后将源程序传进去格式化PLC,然后将源程序传进去

怎么解除三菱PLC的关键字?

三菱PLC的关键字一般指以"#"符号开头的地址,这些地址通常被保留用于PLC系统中的特定用途,无法直接修改或使用。如果您需要解除这些关键字地址的限制,可以按...

三菱PLC硬件设置密码怎么样设置_汽配人问答

[最佳回答]连接plc后在编程器上选择在线-登陆关键字-新建登陆(我这里没有连接plc所以是灰色的)

三菱plc如何设置密码?

以下是设置三菱PLC密码的步骤:1.在PLC程序中选择操作对象,例如程序、数据,然后从菜单栏选择“设定”。2.选择“设定”后,选择“保护设置”,然后在保护设...

PLC培训哪里好?

科技引领生活,爱科技的小青年带你在科技的海洋里无限遨游……PLC培训哪里好,这个问题可能是所有初学者都会问的,是想着通过一个好的培训更早的掌握PLC的知识...

三菱plc如何编密码-懂得

关键字就是你需要的设定的密码,必须为8位字符,否则无效。FX3U,FX3G可以设立两重密码。

三菱PLC时间锁程序?

三菱PLC锁机([密码])设置方式:将PLC通电,并通过编程电缆和电脑连接,在编程软件GX-DEVELOPER中依次选择“在线”→“登录关键字”→“新建登录”,在弹出的对...

 宫若梅  我是赝品妃 
王经理: 180-0000-0000(微信同号)
10086@qq.com
北京海淀区西三旗街道国际大厦08A座
©2024  上海羊羽卓进出口贸易有限公司  版权所有.All Rights Reserved.  |  程序由Z-BlogPHP强力驱动
网站首页
电话咨询
微信号

QQ

在线咨询真诚为您提供专业解答服务

热线

188-0000-0000
专属服务热线

微信

二维码扫一扫微信交流
顶部