恭喜,你发布的帖子
发布于 2018-07-24 17:06:52
6楼
关于对临时存储区的使用,对于很多新接触西门子产品的人来说,如果用不好是容易出现一定问题的,因为其存储区的特性,数据无法保持到下一次扫描,所以基本的原则是先赋值后使用。
之前有印象在300/400里面,临时存储区相同的数据是保持上一次写入的数据的,比如
FC1里面使用了LD0,并且写入了数据100,如果程序扫描完FC1,继续扫描FC2,如果FC2只是读取了LD0里面的数据,而读取之前并没有对其赋值,则LD0里的数据依然是100.。因此如果在一个程序块里面,如果使用L存储区之前没有对其进行赋值,那里面的数据可能是很混乱的,因为之前程序不确定是写入的什么数据。这对编程的新手来说如果没有注意到这一点,是可能会造成很多纠结。
但是到了1200/1500,个人猜测可能是西门子出于这方面的考虑,L存储区在每个程序块结束扫描之后都自动清零,比如上面说到的FC1里面LD0里面写了100,但是到了FC2里面,即使使用之前先不赋值,则实际的数据也不会是保持上个程序块写入的数据了,而是自动变成了0,所以个人认为,这应该是plc系统内部自己加了个清零的功能。
貌似临时存储区在主流PLC品牌里面,只有西门子有,如果是用好了,还是能节省一定的功能,方便和简化编程的。
施耐德也有temp变量,
搞笑的是施耐德的SATA变量是全局共用的,同一个名字。
请填写推广理由:
分享
只看
楼主