楼主最近还看过
当MB0~MB13在系统设定中设定为保持时,当CPU断电时会自动将数据写入EEPROM中,当CPU重新上电时会将数据从EEPROM中写回。
当要将特定的V区域保持到EEPROM中时,可以将要保存的V区域地址写入SMW32中,例如要保持VD100的数据,那么就将100使用MOV指令写入SMW32中,然后控制SMB31来操作。
SMB31是的0,1位控制要写入数据的长度:
00,01——字节 10——字 11——双字
SMB31的2~6位系统保留,其值为0。
SMB31的最高位为控制位,1代表写入EEPROM中。
如下图展示了程序的操作:
注意:
1、EEPROM有寿命限制,最低写入次数为10万次,典型的是1百万次,S7-200的扫描周期典型的是50MS,如果每个周期均执行写入操作,那么EEPROM很快会报废,因此请谨慎选择写入的次数。
2、一次EEPROM的写入操作大概会占用15MS的扫描周期。
3、不要问如何从EEPROM读取,因为CPU上电后,EEPROM的数据会自动写回对应的寄存器中。
4、鉴于以上缺陷,使用电池盒来保持数据依旧是最有性价比的。电池盒的订货号:6ES7 297-8BA20-0XA0
HAVE FUN!
西门子S7-200数据永久保存机制做的不够好。
最简单途径就是数据块中设置MB0~MB13为断电保存,断电后保存在MB0~MB13中的数据永远不会丢失,可惜只有14个字节的长度。
PLC插入电池卡,如上方法设置其他断电保存区域,断电后保存在设置区段中的数据依靠电池卡中的电池供电可以保存一年左右。没有电池卡,采用此方法保存数据,依靠PLC中的超级电容,设置区段中数据最多保持一周左右。
就是1楼介绍的编程方法实现永久保存,这个有点难度,搞不好还会损坏PLC的EEPROM,网上有(西门子也提供非官方文件)实现永久保存的程序包,可以拿来直接调用。