问题描述:
当高性能电容的时间(根据 CPU 类型不同而不同)用完,或者电池模块过期(200天),修改过的参数就会丢失。使用以下程序库所提供的子程序,可以在 CPU 中的内部 EEPROM 中保存完整的变量区域,在运行期内该区域是不易失的(在系统手册中仅说明了保存单个变量)。n
软件要求:
此操作程序库使用需要 STEP 7 Micro/WIN V4.0 SP7 或者更高的版本 。n
警告:
当 CPU 启动时,包含 DB (数据块)的存储卡不可以被插入。如果包含 DB 的存储卡被插入,CPU 会读出存储卡的内容而不是去读内部 EEPROM,同时存储数据被错误的写回。n
合并和使用库:
- 将下载的文件“store_to_eeprom.zip”保存在电脑上。n
- 在独立的目录下解压文件“store_to_eeprom.zip”。n
- 双击开始解压的 STEP 7 Micro/WIN 库 “store_to_eeprom.mwl”。n
- 在 STEP 7-Micro/WIN 对话栏中打开确认集成的库。
增加的“EEPROM (v1.0)”文件夹中包含了子程序“EEPROM_Direct"”和 “EEPROM_Indirect”。n
图:01n
使用子程序:
- 在网络中从文件夹“EEPROM (v1.0)”插入所需要的子程序。n
- 根据例程中的参数列表给所选子程序分配输入输出参数。
使用适当的逻辑连接,以确保在执行期间程序执行触发输入位“Start”保持为1 (高)。n
更多的信息也可以在子程序的注释中得到。.n
注意:
不能以很高的频率在 EEPROM 上保存数据。EEPROM 典型的存储次数为100,000次。如果超过这个值,CPU 将发生故障。 如果按小时在 EEPROM 上保存数值,那么 EEPROM 的预计使用寿命是 11 到 12 年。n
起始地址为直接寻址“EEPROM_direct"”例程:
图:02
参数 | 变量类型 | 说明 |
EN | BOOL |
必须始终为1(高) |
Start | BOOL | 上升沿 (0 ->1)触发程序运行;必须保持1 (高) 直到 BUSY位变成 0 (低)。 |
V_Start | INT | 偏移量指定(起始地址)。例如,200=VB 200 |
Length | INT | 从偏移量(起始地址)开始待保存的字节数 |
Memory | INT | 用于子程序的临时存储区 |
Busy | BOOL | 过程状态 1 (高),程序在运行中 |
Done | BOOL | 结束状态 1 (高),成功完成保存 |
表: 01
起始地址为间接寻址“EEPROM_indirect”例程:
图: 03
参数 | 变量类型 | 说明 |
EN | BOOL |
必须始终为1(高) |
Start | BOOL | 上升沿 (0 ->1)触发程序运行;必须保持1 (高) 直到 BUSY位变成 0 (低)。 |
Address | DWORD | 指定起始地址偏移量(起始地址以DWORD类型变量读入) |
Length | INT | 从偏移量(起始地址)开始待保存的字节数目 |
Memory | INT | 用于子程序的临时存储 |
Busy | BOOL | 过程状态 1 (高),程序在运行中 |
Done | BOOL | 结束状态 1 (高),成功完成保存 |
表:02
程序测试:
程序运行后, 删除可保持的 V 变量并将存储的数据装载回 CPU。
序号. | 解释 |
1 | 删除数据: 由路径“View > Component > System Block"”到“System Block"”选择“Retentive Ranges”表。
选择数据范围,输入起始地址和范围。点击“Clear”按钮。 例程如下图显示:
|
2 | 装载数据:
启动 CPU 时,存储数据从 CPU 的内部 EEPROM 中被写入存储器。 |
表: 03
补充说明:
下载:
store_to_eeprom.zip ( 4 KB )
关键字:
SMB31, SMW32
原创文章,作者:ximenziask,如若转载,请注明出处:https://www.zhaoplc.com/plc333983.html