​S7-200SMART局部变量的应用 点击:1127 | 回复:1



板蓝根冲剂

    
  • 精华:0帖
  • 求助:1帖
  • 帖子:5帖 | 31回
  • 年度积分:59
  • 历史总积分:600
  • 注册:2018年11月21日
发表于:2019-04-10 10:37:16
楼主

    S7-200SMART局部变量的应用 

局部变量(Local variables)指在程序中只在特定过程或函数中可以访问的变量。局部变量是相对于全局变量而言的。在PLC中局部变量应用不是很多,西门子PLC则引入局部变量,成为PLC中独具特色的功能。

局部变量是分配给每个子程序的临时存贮区。当子程序被调用时,系统分配局部变量区给子程序;子程序执行完成后,该局部变量区被释放。释放时其中存贮的值也同时丢失,不能再下一扫描周期再被子程序使用。

局部变量区的大小为64个字节,其中最后4个字节被系统所占用,实际可供子程序使用的为60个字节。由于局部变量区的数据不能带到下一扫描周期,因此只能用于存储程序运算中的中间值,可以减少对全局变量区的占用。

由于局部变量区在子程序被调用时才被分配,且分配时并不对数据区进行初始化,所以其初始值是不确定的。因此在程序中用到这些存贮区的值的指令前,必须有对该存贮区地址的赋值操作,否则可能会出现错误的执行结果。尤其在子程序中存在大量的跳转指令时,很容易出现漏掉对局部变量赋值的情况,要格外注意。

每个子程序调用的输入/输出参数的最大限制是16,如果您尝试下载的程序超过此一限制,IN和out加起来共16个超过16个就会出错。使用过程中应注意以下几点:

1子程序或者中断程序不能访问分配给主程序的局部存储器。子程序不能访问分配给主程序、中断程序或者其他子程序的局部存储器。同样的,中断程序也不能访问分配给主程序或子程序的局部存储器。

2S7-200 SMART有64个字节的局部存储器,其中60个可以用作临时存储器或者给子程序传递参数。

3、IN、OUT、IN_OUT变量都会与外部进行数据交换,所以不需要数据交换时应使用TEMP变量。

下面讲述西门子S7-200SMART中局部变量的类型以及使用方法。

S7-200 SMART提供了四种类型的局部变量,用L表示。

IN:输入变量。将外部指定位置的参数传入子程序。

OUT:输出变量。将子程序的运算结果传出到外部指定参数位置。

IN_OUT:输入输出变量。将指定位置的外部参数传导子程序,再由子程序修改后再将结果返回到同样的地址。

TEMP:临时保存在局部数据堆栈中的临时变量。一旦POU完全执行,临时变量数值则无法再用。在两次POU执行之间,临时变量不保持其数值。





ju691031

  • 精华:0帖
  • 求助:0帖
  • 帖子:0帖 | 2258回
  • 年度积分:5
  • 历史总积分:106
  • 注册:2010年7月16日
发表于:2019-09-17 20:51:39
1楼

谢谢分享,回复看看


热门招聘
相关主题

官方公众号

智造工程师