300系统,为什么有两个数据区域,会自己有值,

MD664,以前用过,后来把以前的程序删除了,重新写的。但是现在发现,MD664还是会按照以前的程序写的情况变化。通讯我检查了,没有输入数据,我现在的程序里也只是读取MD664的值。我检查了块的交叉参考,也查了,MD664可能的各种形式的访问。我程序里就两个READ与他相关。不知道值怎么来的。怎么回事?

最佳答案

1、md的值是保持的,所以你从新写了程序如果没有地方给md664赋值的话,他还是保持原来你保存的值。
2、你有没有使用指针的程序?那里是无法交叉索引到的(因为用的是指针变量)。
3、你看看你的cpu的硬件属性中的memory clock有没有启用?是不是那里用到md664的中的一个字节?

提问者对于答案的评价:
我什么也没做,后来断电重启了下CPU就好了,不知道什么原因的。我也没有使用指针。也没有设置为断电保持。奇怪的很,重启了下,现在已经好了。

专家置评

可能你的PLC中仍然含有原来的程序,即在线和离线程序不一致。比如原来程序中含有FC1,FC1中对MD664有写操作。下载程序后,你将离线程序中FC1删除,选中所有块再次下载全部程序,那么FC1在PLC中不会被删除。但是选择“下载用户程序到存储卡”的方式下载,那么PLC会先清卡,然后将离线程序全部下载,这样就保持了离线和在线程序一致。参考:
MMC的信息与使用:
http://www.ad.siemens.com.cn/download/docMessage.aspx?ID=1216&loginID=&srno=&sendtime=

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

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2018年12月1日 下午7:06
下一篇 2018年12月1日 下午7:06

相关推荐