使用软件为博图V11
查找资料关于 FC块中的临时变量:
个人理解:FC块中的 临时变量 属于 区域变量 。
(1) 区域变量只能在所属的程序块(OB、FC、FB)范围内调用,在程序块调用时有效,程序块调用完成后释放,所以不能被其它程序块使用,本地数据区(L)中的变量为区域变量,例如每个程序块中的临时变量都属于区域变量。
(2)FC块中的临时变量是做中间变量使用的,利用临时变量不占用系统资源。
根据这句话的理解:“在程序块调用时有效,程序块调用完成后释放”
可不可以理解为:当我在FC块中定义一个 临时的字变量 ,在调用 FC块 时, 传送数字到这个临时的字变量中,当我结束调用FC块时,该临时变量中的值清零。
实验结果:
与猜想结果不符,无论是 位临时变量 还是 字临时变量,在FC调用结束后,均保持最后的状态。
个人觉得 FC块中的临时变量 更趋向于(2)描述中的用法。
想请教各位师傅,我对 临时变量 的理解有没有问题。还有临时变量应用的例子,怎样应用才能更好的体现出临时变量的用途?
问题补充:
感谢各位网友的回答,我图片2中的文字打错了,“FB块程序”应该是“FC块程序”
图片说明:
最佳答案
你没理解彻底。“程序块调用完成后释放”并不是说对该临时变量清零,而是把地址释放了,这就是为什么说临时变量不占用系统资源的原因。临时变量的值还是存在的,存储在对应的V区中。在块中使用临时变量时都说“先赋值,再使用”,就是防止直接使用临时变量的地址中含有数值。
提问者对于答案的评价:
感谢各位网友的回答,特别是“ -我心飞翔-”大师傅,解决了我很多问题。 在“程序块调用完成后释放”的问题上有很多资料描述都很含糊,有些资料甚至描述为调用结束后就清零,但实际上仅仅是将本地数据区(L)的地址释放,释放后的地址又可以被其它临时变量调用,但是在这些地址中的数据不会被清零。同一个临时变量每次调用被分配的地址都不同。
原创文章,作者:more0621,如若转载,请注明出处:https://www.zhaoplc.com/plc223050.html