S7-200DB块为什么断电之后过一些时候在重启时数据都没有了~
最佳答案
如果你不打算花200多元人民币买个电池卡来保存数据的话可以直接使用EEPROM 数据写入指令库来保存数据。西门子不同型号的PLC本身数据保存时间都有规定的。一般像CPU224XP就可以在掉电情况下保持数据100小时左右。用EEPROM数据写入指令则是永久保持。具体你可以参考例程。
EEPROM 数据写入指令库及其使用
EEPROM(v1.0)指令库用于将连续 V 存储区中的数据(例如:VB200 至 VB205)写入 EEPROM,使其永久保持。
注意:此指令库/程序的作者和拥有者对于该软件的功能性和兼容性不负任何责任。使用该软件的风险完全由用户自行承担。由于它是免费的,所以不提供任何担保,错误纠正和热线支持,用户不必为此联系西门子技术支持与服务部门。
参考:CPU的数据保持功能
参考:使用超级电容和电池卡进行数据保持-系统块数据保持设置
要使用 EEPROM 指令库,须遵循下列步骤:
取得 EEPROM 指令库文件,并添加到编程软件 STEP 7-Micro/WIN 中;
按照要求编写用户程序调用 EEPROM 指令库。
添加 EEPROM 指令库
EEPROM 指令库
点击上面的链接下载 EEPROM 指令库到本地计算机硬盘,建议保存在 Micro/WIN 安装目录的 Lib 文件夹中。以下是一个完整路径的例子:
C:\Program Files\Siemens\STEP 7-Micro/WIN V4.0\Lib
然后将指令库库手动添加到 Micro/WIN 软件中。
参见添加指令库。
成功添加指令库后,用户可以在STEP7 Micro/win的指令树中找到‘EEPROM(V1.0)'
图 1. EEPROM 指令库
EEPROM 指令库编程
1、直接寻址方式存储
图2.EEPROOM_Direct
输入/输出 数据类型 注释
EN BOOL 必须持续为1(高电平)
Start BOOL 触发位,0->1上升沿变化激活”StoreToEprom”库指令
V_Start INT 被保持数据的起始偏移地址 (例如:200=VB200)
Length INT 被存储数据的长度(以字节为单位)
Memory INT ”StoreToEprom”库指令需要的临时存储区(Word)
Busy BOOL ”StoreToEprom”库指令在保存数据的过程中,值为1
Done BOOL ”StoreToEprom”库指令数据保存完成后,值为1
表1.EEPROM_Direct 参数
2、间接寻址方式存储
图3.EEPROM_Indirect
输入/输出 数据类型 注释
EN BOOL 必须持续为1(高电平)
Start BOOL 触发位,0->1上升沿变化激活”StoreToEprom”库指令
V_Start INT 该存储区中存储着被保持数据的起始偏移地址
例如:LD Q0.0
MOVD &VB200, MD20
此时MD20中存储着VB200的地址
Length INT 被存储数据的长度(以字节为单位)
Memory INT ”StoreToEprom”库指令需要的临时存储区(Word)
Busy BOOL ”StoreToEprom”库指令在保存数据的过程中,值为1
Done BOOL ”StoreToEprom”库指令数据保存完成后,值为1
表2.EEPROOM_Indirect参数
注意:
此库指令每个 CPU 循环周期向 EEPROM 备份一个字节数据,因此备份多个数据往往需要多个 CPU 循环周期,必须保证该时间段内使能端(EN )持续为‘1’。建议用户用 SM0.0 调用库指令。
如果用户需要永久存储的是实数或双字整数,必须保证保存过程中数据保持不变。
EEPROOM 被刷写次数的典型值为 100,000 次,因此用户不得以较高的频率向 EEPROM 中备份数据。
只有 STEP7 Micro/Win V3.2+SP4 和 V4.0 版本才支持使用该指令库
参考资料:Micro 'n Power.chm
提问者对于答案的评价:
ok
原创文章,作者:ximenziask,如若转载,请注明出处:https://www.zhaoplc.com/plc351710.html