设为首页收藏本站PLC编程入门

工业之家

 找回密码
 立即注册

QQ登录

只需一步,快速开始

简单一步 , 微信登陆

搜索
热搜: 接触器
查看: 824|回复: 1

S7-200局部变量说明

[复制链接]

8

主题

26

回帖

488

积分

电工入门

Rank: 1

积分
488
发表于 2015-4-11 22:22:21 | 显示全部楼层 |阅读模式
1S7-200局部变量说明
IN          调用POU提供的输入参数。
OUT         返回调用POU的输出参数。
IN_OUT     数值由调用POU提供的参数,由子程序修改,然后返回调用POU。
TEMPORARY  临时保存在局部数据堆栈中的临时变量。一旦POU完全执行,临时变量数值则无法再用。在两次POU执行之间,临时变量不保持其数值。
局部变量是分配给每个子程序的临时存贮区。当子程序被调用时,系统分配局部变量区给子程序;子程序执行完成后,该局部变量区被释放。释放时其中存贮的值也同时丢失,不能再下一扫描周期再被子程序使用。
    局部变量区的大小为64个字节,其中最后4个字节被系统所占用,实际可供子程序使用的为60个字节。由于局部变量区的数据不能带到上一扫描周期,因此只能用于存储程序运算中的中间值,可以减少对全局变量区的占用。局部变量区在子程序被调用时才被分配,且分配时并不对数据区进行初始化,所以其初始值是不确定的。因此在程序中用到这些存贮区的值的指令前,必须有对该存贮区地址的赋值操作,否则可能会出现错误的执行结果。尤其在子程序中存在大量的跳转指令时,很容易出现漏掉对局部变量赋值的情况,要格外注意。
每个子程序调用的输入/输出参数的最大限制是16,如果您尝试下载的程序超过此一限制,IN和out加起来共16个超过16个就会出错。
2  注意事项:
1、子程序或者中断程序不能访问分配给主程序的局部存储器。子程序不能访问分配给主程序、中断程序或者其他子程序的局部存储器。同样中断程序也不能访问分配给主程序或子程序的局部存储器。
    2、有关局部变量:
    S7-200有64个字节的局部存储器,其中60个可以用作临时存储器或者给子程序传递参数。
如果用梯形图或功能方块图编程,STEP7--Micro/WIN保留这些局部存储器的最后四个字节。
    局部存储器和变量存储器很相似,但只有一处区别。变量存储器是全局有效的,而局部存储器只在局部有效。全局是指同一个存储器可以被任何程序存取(包括主程序、子程序和中断程序)。局部是指存储器区和特定的程序相关联。S7--200给主程序分配64个局部存储器;给每一级子程序嵌套分配64个字节局部存储器;同样给中断程序分配64个字节局部存储器。
    S7--200 PLC根据需要分配局部存储器。也就是说,当主程序执行时,分配给子程序或中断程序的局部存储器是不存在的。当发生中断或者调用一个子程序时,需要分配局部存储器。新的局部存储器地址可能会覆盖另一个子程序或中断程序的局部存储器地址。
2  如何输入第一个局部变量赋值,欲在局部变量表中赋值,请遵循以下步骤:
1、确保正确的POU在程序编辑器窗口中显示,如有必要,点击所需的POU标记。(因为每个POU都有自己的局部变量表,您需要确保对正确的POU赋值。)
2、如果局部变量表处于隐藏状态,下拉水平分裂条,显示局部变量表。
3、为需要定义的变量选择具有正确说明类型的行,在“名称”域中为该变量键入一个名称。(如果在OB1或中断例行程序中赋值,局部变量表只包含TEMP变量。如果您在子程序中赋值,局部变量表包含IN、IN_OUT、OUT和TEMP变量。)不需要在局部变量表中的变量名前加#号。#号只用在程序代码中的局部变量前。
说明:局部变量名最多可包含23个字母数字字符和下划号,也可包含扩展字符(ASCII 128至 ASCII 255)。第一个字符只能是字母或扩展字符。将关键字用作符号名属于非法,名称的第一个字符是数字,或名称包含非字母数字字符或扩展字符集中的字符也属于非法。局部变量表变量名被下载并存储于CPU内存中,使用较长的变量名可能减少用于存储程序的内存空间。
4、在“数据类型”域中点击鼠标指针,并使用列表框为局部变量选择适当的数据类型。
说明:当将局部变量指定为子程序的参数时,必须保证为局部变量指定的数据类型不与子程序调用中使用的操作数发生冲突。为“名称”和“数据类型”域提供数值后,程序编辑器会自动为局部变量指定L内存地址。
2  如何在局部变量表中输入附加赋值
对于OB1和中断例行程序,局部变量表显示一组已被预先定义为TEMP变量的行。在OB1或中断例行程序中,只能使用这种说明类型。欲在表中增加更多行,只需点击最后一行中的一个单元格,然后使用ENTER键移过该行并向下移动,即自动生成一个新行。
对于子程序,局部变量表显示按照以下顺序预先定义说明类型的一组行:IN、IN_OUT、OUT和TEMP,不能改变该顺序。局部变量在该表中的顺序必须符合为子程序调用指令进行操作数赋值时对应的操作数顺序。如果希望增加附加局部变量,必须用鼠标右键点击现有行,并使用弹出菜单插入与点击行类型相同的另一局部变量。选择插入(Insert)> 行(Row),在所选行的上方插入新行,或选择插入(Insert)> 行下方(BelowRow),在所选行下方插入新行。


1.png

0

主题

97

回帖

1268

积分

初级新手

Rank: 3Rank: 3

积分
1268
发表于 2016-6-17 11:28:09 | 显示全部楼层
#在这里快速回复#        开心
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

关闭

站长推荐上一条 /1 下一条

QQ|手机版|小黑屋|PLC编程入门|电工基础知识_电工最常见电路_电工学习网_工业之家电工技术培训论坛 ( 蜀ICP备2023017387号-1 )  

GMT+8, 2024-5-5 23:51 , Processed in 0.124914 second(s), 29 queries .

Powered by Discuz! X3.4 Licensed

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表