西门子PLC的局部变量使用技巧

今日头条

1141人已加入

描述

临时变量是临时存储在本地数据区的变量。只有在执行POU时,才使用定义的临时变量,而在执行POU后,不再使用临时变量的值。在主程序或中断程序中,局部变量表只包含TEMP变量。子程序的局部变量表中也有三个变量:输入变量、输出变量和输入输出变量。

在局部变量表中赋值时,只需要指定声明的局部变量的类型(TEMP、in、IN_OUT或OUT)和数据类型(参见SIMATIC和IEC1131-3数据类型),但不需要指定内存地址。程序编辑器自动为L存储区中的所有局部变量指定存储位置。起始地址为LO,每字节8位,可就地访问。字节、字和双字在本地内存中按字节顺序分配,如LBx、LWx或LDx。

当局部变量作为参数传递给子例程时,子例程的局部变量表中指定的数据类型必须与调用POU中的数据类型值匹配。比如在主程序OB1中调用子程序SBR0,使用全局符号INPUT1作为子程序的输入参数。在SBR0的局部变量表中,已经定义了一个名为FIRST的局部变量作为输入参数。OB1调用SBRO时,INPUT1的值传入FIRST,INPUT1和FIRST的数据类型必须匹配。

在程序中使用符号名时,程序编辑器首先检查关于POU的局部变量表,然后检查符号表/全局变量表。如果符号名称在两个地方都没有定义,程序编辑器会将其视为全局符号。程序编辑器指定一条绿色波浪下划线,并用双引号将名称括起来,例如“UndefinedLocalVar”(未定义的局部变量)。如果符号名稍后被赋值,程序编辑器将不会再次自动读取局部变量表并对其进行修改。为了将符号名用作局部变量,您必须手动删除程序代码中的引号,并在符号名前面插入#符号,例如,将其更改为#UndefinedLocalVar。

每个子程序最多可以调用16个输入/输出参数。如果超过16个,将返回一个错误。选择所需变量类型所在的行,并在名称字段中键入变量名,在数据类型字段中键入数据类型。在局部变量表中无需在变量名前加#号,程序代码中只在局部变量名前加。

局部变量名可以包含数字、字母、下划线(_)或扩展字符(ASCII128~255)。第一个字符必须是字母或扩展字符,关键字不能用作符号名称。

本地变量表中的变量名下载存储在CPU内存中,使用较长的变量名会占用更多的存储空间。以上是基本内容。不懂的朋友可以先看一个plc视频教程,比较容易理解。本文来源:www.jcpeixun.com。
 

  审核编辑:ymf

打开APP阅读更多精彩内容
声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉

全部0条评论

快来发表一下你的评论吧 !

×
20
完善资料,
赚取积分