电子开发网

电子开发网电子设计 | 电子开发网Rss 2.0 会员中心 会员注册
搜索: 您现在的位置: 电子开发网 >> 电子开发 >> 梯形图实例 >> 正文

西门子PLC局部变量表与子程序使用技巧有哪些,局部变量与全局变量的定义

作者:佚名    文章来源:本站原创    点击数:    更新时间:2023/8/11

  局部变量表

  1.局部变量与全局变量

  程序中的每个POU(Program Organizational Unit,程序组织单元)均有白己的由64字节L存储器组成的局部变量表。它们用来定义有范围限制的变量,局部变量只在它被创建的POU中有效。与之相反,全局符号在各POU中均有效,只能在符号表/全局变量表中定义。全局符号与局部变量名称相同时,在定义局部变量的POU中,该局部变量的定义优先,该全局定义则在儿它POU中使用。

  局部变量适用于以下两种情况:

  (1)在子程序中只用局部变量,不用绝对地址或全局符号,子程序可移植到别的项目去。

  (2)如果使用临时变量(TEMP),同一片物理存储器可在不同的程序中重复使用。

  如果不是上述两种情况,不需要使用局部变量。通过在符号表(SIMATIC)或全局变量表(IEC)中进行定义,可使符号成为全局变量。 
 

全局变量:在I、Q、M、SM、AI、AQ、V、S、T、C、HC地址中的变量为全局变量。在符号表中定义的上述地址区中的符号为全局符号。

局部变量:每个程序组织单元(POU)中的局部(L)存储器,共64个字节。

定义和查看全局变量和局部变量:

首先定义:
 
 

 

然后引用:

 

局部变量会自动添加“#”。


  2.局部变量的类型

  TEMP(临时变量):暂时保存在局部数据区中的变量。只有在执行该POU时,定义的临时变量才被使用,POU执行完后,不再使用临时变量的数值。在主程序或中断程序中.局部变量表只包含TEMP变量。子程序中的局部变量表还有下面的3种变量:

  IN(输人变量):由调用它的POU提供的输人参数。

  OUT(输出变量);返回给调用它的POU的输出参数。

  IN_OUT(输人/输出变量);其初始值由调用它的POU提供,被子程序修改后返问给调用它的POU。

  3.局部变量的赋值

  在局部变量表中赋值时,只需指定声明局部变量的类型(TEMP,IN,IN_OUT或OUT)和数据类型(参见SIMATIC和IEC1131-3的数据类型),但不指定存储器地址,程序编辑器自动地在L存储区中为所有局部变量指定存储器位置。

  4.在局部变量表中增加新的变量

  对于主程序与中断程序,局部变量表显示一组已被预先定义为TEMP(临时)变量的行。要向表中增加行,只需用右键单击表中的某一行,选择“插人→行"指令,在所选行的上部插人新的行,选择“插人→行下"指令,在所选行的下部插人新的行。

  对于子程序,局部变量表显示数据类型被预先定义为IN、IN_OUT.OUT和TEMP的一系列行,不能改变它们的顺序。如果要增加新的局部变量,必须用鼠标右键单击已有的行,并用弹出菜单在所击行的上下插人相同类型的另一局部变量。

  5.局部变量数据类型检查

  局部变量作为参数向子程序传递时,在该子程序的局部变量表中指定的数据类型必须调用POU中的数据类型值匹配。

  例如从主程序0B1调用子程序SBR0,使用名为INPUT1的全局符号作为子程序的输人参数。在SBRO的局部变量表中,已经定义了一个名为FIRST的局部变量作为该输入参数,当0B1调用SBR0时,INPUTI的数值被传人FIRST,INPUTI和FIRST的数据类型必须匹配。

  6.显示或隐藏局部变量表

  将水平分裂条拉至程序编辑器视窗的倾部,则不再疑示局部变量表,但它仍然存在。将分裂条下拉,将再次显示局部变量表。

  7.在局部变量表中进行赋值

  在程序中使用符号名时,程序编辑器首先检查有关POU的局部变量表,然后检查符号表/全局变量表。如果某符号名在两处都没有定义,程序编辑器则将其视为全局符号,程序编辑器指定一条绿色波浪状下画线,并将名称括在双引号中,例如"UndefinedLocalVar(未定义的局部变量)。如果后来对该符号名赋了值,程序编辑器不会自动再次读取局部变量表并修改它。为了将该符号名作为局部变量使用,必须手工删除程序代码中的引号,并在符号名前插人#号,例如改为#UndefinedLocalVar。

  各子程序最多可调用16个输人/输出参数,如果超出16个,将返回错误。

  选择希望的变量类型所在的行,并在名称域中键人变量名称,在数据类型城中键人数据类型。不需在局部变量表中的安量名称前加并号,#号只在程序代码中的局部变量名之前使用。

  局部变量名可包含数字、字母和下画号(“_”),也可以包含扩展字符(ASII128-ASCII255)。第一个字符必须是字可或扩展字符,关键字不能作为符号名。

  局部变量表中的变量名被下载和存储在CPU存储器中,使用较长的变量名将占用较多的存储空问。

Tags:局部变量,子程序,西门子plc  
责任编辑:admin
相关文章列表
西门子S7-200SMART PLC 模拟量输入单位时间内如何计算采集次数的
西门子S7-200SMART PLC案例应用之中位值平均滤波算法,应用于模拟
S7-200smart如何实现递推平均
S7-200smart求平均值,去掉极值后求平均值,指针和间接寻址
西门子S7-200子程序,多次调用的“怪”现象
V4.0 STEP 7 MicroWIN 西门子S7-200系列PLC高阶课程-1 子程序
西门子PLC实例讲解:电路图、设计步骤丝杆滑台_丝杆平台
基于西门子PLC洗衣机全自动控制系统课程设计报告_S7-200全自动洗
详解西门子S7-200 PLC的数据类型 _200Smart和S7-200数据类型_数据
西门子PLC中的%I0.0中的百分号是什么意思
西门子S7-200SMART PLC的MODBUS TCP通信 STEP 7-MicroWIN SMART
西门子plc控制变频器 基于MM420的PLC顺序控制
西门子PLC S7-200SMART间接寻址使用技巧  指针用法
西门子PLC编程实现瞬时流量和累计流量的计算的例子 累积流量计算
西门子PLC模拟电压采集_S7-200模拟量采集实例 AIW0
西门子S7-200SMART PLC输出脉冲串的控制方式
STEP7 Micro/WIN指令库-用户自定义
西门子S7-200 SMART PLC组态数字量输出 STOP数字量输出点设置为特
西门子S7-200 SMART PLC模拟量,模拟量比例换算
西门子系统块提供S7-200 SMART CPU、信号板和扩展模块的组态
西门子PLC组态模拟量输出 组态设置
西门子S7-200SMART PLC的模拟量输入输出详细介绍  模块组态配置 
STEP 7-MicroWIN SMART西门子200smartPLC和编码器进行高速计数程
西门子200smartPLC 通过Modbus读取绝对值编码器的数据
西门子STEP7编程软件的功能及使用 STEP7-Micro/WIN32
Step7编程软件的应用窗口 SIMATIC Manager软件
西门子plc S7-200 port0和port1区别,通信协议库的调用
主从站通讯MBUS_CTRL和MUBS_INIT 两台西门子PLC之间的MODBUS无线
西门子200SMART PLC间接寻址和指针实例详解
西门子plc的指针用法 _ 西门子PLC 间接寻址(指针)
请文明参与讨论,禁止漫骂攻击,不要恶意评论、违禁词语。 昵称:
1分 2分 3分 4分 5分

还可以输入 200 个字
[ 查看全部 ] 网友评论
推荐文章
最新推荐
关于我们 - 联系我们 - 广告服务 - 友情链接 - 网站地图 - 版权声明 - 在线帮助 - 文章列表
返回顶部
刷新页面
下到页底
晶体管查询