找回密码
 立即注册

QQ登录

只需一步,快速开始

查看: 1518|回复: 10

[S7-300]Step7 FC功能中的Temp变量的学习

  [复制链接]
  • 打卡等级:常驻代表
  • 打卡总天数:34
  • 打卡月天数:6
  • 打卡总奖励:9027
  • 最近打卡:2025-12-17 23:15:51

2823

主题

541

回帖

2万

积分

管理员

积分
22569
发表于 2024-11-2 15:56:29 | 显示全部楼层 |阅读模式
start和driver是外部输入输出接口。


例:如果在TEMP接口中新建一个变量A,数据类型为BOOL,地址0.0

1,正确的FC程序如下:

|  #start  #A
|--| |---------()
|
|  #A  #driver
|--|/|---------()

2,错误的例子:

|  #A  #driver
|--|/|---------()
|
|  #start  #A
|--| |---------()

分析:
程序的扫描是从上到下。S7 FC中的接口TMEP中的变量必须遵守:先赋值后使用的原则。

1程序,当start的值从0变为1,A也将从0变为1。扫描到第一段程序时,因为A的值已经发生改变,程序将成功扫描到A的常闭触点从1变为0,那么driver线圈将成功得从原来的1改变为0。

2程序,因为扫描到第一段程序的时候CPU没有发现A的值改变。之后A值将一直保持不变,即使start的值从0变为1,A值也不会发生改变;结果是程序没有反应。

下面是大家的一些心得体会

西门子这一点比其他的PLC都灵活,FB的DB作为FB的变量的固定存放地址,而Temp则是有系统分配临时区L地址。比如:存在FC1,FC2两个功能,它们都有两个Temp,那么当调用FC1时,系统分配L区域地址给FC1的Temp,如分配了LB0,LB1,那么当FC1调用完成后,系统认为LB0,LB1已经不需要,但是西门子的系统不会对临时区进行清零,只是继续分配,当调用FC2时,系统将LB0,LB1重新分配给FC2的Temp,此时如果不遵循先赋值后使用的准则,那么FC2的Temp使用的值将是FC1的Temp的值。


临时变量可以用于所有块中 (OB, FC, FB)。当块执行的时候它们被用来临时存储数据,当退出该块时这些数据将丢失。因此, 在PLC扫描运行时, FC块中的临时变量TEMP不能自锁!


TEMP变量不能自锁的原因显而易见:

每个扫描周期开始时,TEMP变量的值并不像Q或M那样可以保持上个周期的值。除非明确对其赋值,否则它的值是不确定的。

我使用TEMP只有一个原则:

第一次出现某个TEMP变量,必须是对其赋值(或线圈刷新)的写指令,而不能是读指令。

如果出现问题,建议使用STAT变量替代。

对TEMP的认识都有问题!

我的建议是做逻辑不用TEMP,只在做运算是用TEMP,会省去很多麻烦


工控课堂 www.gkket.com

0

主题

106

回帖

297

积分

注册会员

积分
297
发表于 2025-11-13 16:23:42 | 显示全部楼层
蹲一波同款,有没有姐妹 / 兄弟推荐?
工控课堂 www.gkket.com

0

主题

1672

回帖

4321

积分

金牌会员

积分
4321
发表于 2025-11-13 16:40:05 | 显示全部楼层
救命!这波发言太秀了,直接原地封神~
疯狂认同!楼主说出了我不敢说的话
工控课堂 www.gkket.com

0

主题

126

回帖

348

积分

注册会员

积分
348
发表于 2025-11-13 16:41:26 | 显示全部楼层
同款经历!我当初也这么过来的😂
工控课堂 www.gkket.com

0

主题

90

回帖

136

积分

新手上路

积分
136
发表于 2025-11-14 23:55:48 | 显示全部楼层
不请自来,只为说一句:太精彩了!
工控课堂 www.gkket.com

0

主题

84

回帖

131

积分

新手上路

积分
131
发表于 2025-11-15 00:00:40 | 显示全部楼层
楼主辛苦啦,期待下一篇分享!
工控课堂 www.gkket.com

0

主题

83

回帖

309

积分

注册会员

积分
309
发表于 2025-11-15 00:08:37 | 显示全部楼层
楼主太会说了,字字句句都在理~
工控课堂 www.gkket.com

0

主题

189

回帖

447

积分

注册会员

积分
447
发表于 2025-11-15 00:09:52 | 显示全部楼层
这逻辑绝了,分析得太到位了吧
工控课堂 www.gkket.com

0

主题

156

回帖

567

积分

中级会员

积分
567
发表于 2025-11-15 00:12:10 | 显示全部楼层
水贴也要有仪式感,我先来打卡~
工控课堂 www.gkket.com

0

主题

88

回帖

135

积分

新手上路

积分
135
发表于 2025-11-15 01:39:27 | 显示全部楼层
浅蹲一个后续,楼主更新踢我一下
工控课堂 www.gkket.com
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

关闭

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

QQ|手机版|免责声明|本站介绍|工控课堂 ( 沪ICP备20008691号-1 )

GMT+8, 2025-12-23 04:47 , Processed in 0.128290 second(s), 26 queries .

Powered by Discuz! X3.5

© 2001-2025 Discuz! Team.

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