FC块中的临时变量(TEMP)怎么理解?

使用软件为博图V11

查找资料关于 FC块中的临时变量:

个人理解:FC块中的 临时变量 属于 区域变量 。

(1) 区域变量只能在所属的程序块(OB、FC、FB)范围内调用,在程序块调用时有效,程序块调用完成后释放,所以不能被其它程序块使用,本地数据区(L)中的变量为区域变量,例如每个程序块中的临时变量都属于区域变量。

(2)FC块中的临时变量是做中间变量使用的,利用临时变量不占用系统资源。

根据这句话的理解:“在程序块调用时有效,程序块调用完成后释放”
可不可以理解为:当我在FC块中定义一个 临时的字变量  ,在调用 FC块 时, 传送数字到这个临时的字变量中,当我结束调用FC块时,该临时变量中的值清零。

实验结果:
与猜想结果不符,无论是 位临时变量 还是 字临时变量,在FC调用结束后,均保持最后的状态。

个人觉得 FC块中的临时变量 更趋向于(2)描述中的用法。

想请教各位师傅,我对 临时变量 的理解有没有问题。还有临时变量应用的例子,怎样应用才能更好的体现出临时变量的用途?

问题补充:
感谢各位网友的回答,我图片2中的文字打错了,“FB块程序”应该是“FC块程序”

图片说明:

FC块中的临时变量(TEMP)怎么理解?    FC块中的临时变量(TEMP)怎么理解?   

最佳答案

你没理解彻底。“程序块调用完成后释放”并不是说对该临时变量清零,而是把地址释放了,这就是为什么说临时变量不占用系统资源的原因。临时变量的值还是存在的,存储在对应的V区中。在块中使用临时变量时都说“先赋值,再使用”,就是防止直接使用临时变量的地址中含有数值。

提问者对于答案的评价:
感谢各位网友的回答,特别是“ -我心飞翔-”大师傅,解决了我很多问题。 在“程序块调用完成后释放”的问题上有很多资料描述都很含糊,有些资料甚至描述为调用结束后就清零,但实际上仅仅是将本地数据区(L)的地址释放,释放后的地址又可以被其它临时变量调用,但是在这些地址中的数据不会被清零。同一个临时变量每次调用被分配的地址都不同。

原创文章,作者:more0621,如若转载,请注明出处:https://www.zhaoplc.com/plc223050.html

(3)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2018年1月1日 下午9:58
下一篇 2018年1月1日 下午9:59

相关推荐