TEMP 如何理解临时变量的先赋值后使用

学着300的plc看到个临时变量说先赋值在使用,这个该如何先赋值 在使用呢!就这点想不出来呀,谁能说说,给个例子

问题补充:
临时变量,用线圈刷新赋值之外,还有别的方法吗,,如果程序第一行开始用,常开触点当临时变量可行不。

最佳答案

TEMP 不先赋值后使用会导致程序以下几种程序运行不正常的情况:

1. 某个块程序运行时好时坏,其中某个数值或多个数值偶尔不正常
    此问题在于,一定遵循“先赋值,再使用”。否则,TEMP的数值在每个扫描周期开始未有明确的赋值,此地址的数值将是随机的。
2. 多个块使用TEMP,单独使用任意一个都正常,无法一起正常使用
    此问题在于,TEMP未能先赋值,再使用;程序块1的TEMP中的数值并没有清零,而是CPU运行机制调用此地址使用或直接分配给程序块2使用,导致这个TEMP地址并不为0,因此程序混乱。
由于内存运行机制并不公开,因此,这一分配过程看起来是随机的。这可能导致,程序多次运行情况下正常,运行一段时间后出现问题。
只要遵循“先赋值,再使用”的原则,就可避免。
3. TEMP无法实现自锁
    此问题在于,TEMP数值无法像M点或Q点一样保持上一个周期的数值;TEMP需要在每个扫描周期有一个明确的赋值,即先赋值(写),再使用(读写)
解决方式,FB可使用STAT静态变量;FC可使用M区或全局DB地址。
总结,在使用临时变量TEMP时:
1.不能先使用,再赋值
2.不适用于自锁线圈
3.不适用于上升,下降沿
参考资料:http://www.ad.siemens.com.cn/productportal/prods/published/prog/prog_2.3/prog_2.3.html#T3

提问者对于答案的评价:

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

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2021年7月4日 下午11:34
下一篇 2021年7月4日

相关推荐

发表回复

登录后才能评论