EEPROM 数据写入指令库及其使用

EEPROM(v1.0)指令库用于将连续 V 存储区中的数据(例如:VB200 至 VB205)写入 EEPROM,使其永久保持。

注意:此指令库/程序的作者和拥有者对于该软件的功能性和兼容性不负任何责任。使用该软件的风险完全由用户自行承担。由于它是免费的,所以不提供任何担保,错误纠正和热线支持,用户不必为此联系西门子技术支持与服务部门。

参考:CPU的数据保持功能
参考:使用超级电容和电池卡进行数据保持-系统块数据保持设置

要使用 EEPROM 指令库,须遵循下列步骤:

  1. 取得 EEPROM 指令库文件,并添加到编程软件 STEP 7-Micro/WIN 中;
  2. 按照要求编写用户程序调用 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参数

注意:

  1. 此库指令每个 CPU 循环周期向 EEPROM 备份一个字节数据,因此备份多个数据往往需要多个 CPU 循环周期,必须保证该时间段内使能端(EN )持续为‘1’。建议用户用 SM0.0 调用库指令。
  2. 如果用户需要永久存储的是实数或双字整数,必须保证保存过程中数据保持不变。
  3. EEPROOM 被刷写次数的典型值为 100,000 次,因此用户不得以较高的频率向 EEPROM 中备份数据。
  4. 只有 STEP7 Micro/Win V3.2+SP4 和 V4.0 版本才支持使用该指令库