西门子6ES7 810-4CC07-0KA5
SIEMENS西门子上海朕锌电气设备有限公司
联系人:钟涛(销售经理)
24小时销售及维修热线:18221357245
电 话:021-67226033
传 真:021-31663452
手 机:18221357245
Q Q : 1824547528
地址:上海市金山区枫湾路500号
《销售态度》:质量保证、诚信服务、及时到位!
《销售宗旨》:为客户创造价值是我们**追求的目标!
《产品质量》:原装正品,全新原装!
《产品优势》:专业销售 薄利多销 信誉好,口碑好,价格低,货期短,大量现货,服务周到!
问题描述:
当高性能电容的时间(根据 CPU 类型不同而不同)用完,或者电池模块过期(200天),修改过的参数就会丢失。使用以下程序库所提供的子程序,可以在 CPU 中的内部 EEPROM 中保存完整的变量区域,在运行期内该区域是不易失的(在系统手册中仅说明了保存单个变量)。
软件要求:
此操作程序库使用需要 STEP 7 Micro/WIN V4.0 SP7 或者更高的版本 。
警告:
当 CPU 启动时,包含 DB (数据块)的存储卡不可以被插入。如果包含 DB 的存储卡被插入,CPU 会读出存储卡的内容而不是去读内部 EEPROM,同时存储数据被错误的写回。
合并和使用库:
- 将下载的文件“store_to_eeprom.zip”保存在电脑上。
- 在独立的目录下解压文件“store_to_eeprom.zip”。
- 双击开始解压的 STEP 7 Micro/WIN 库 “store_to_eeprom.mwl”。
- 在 STEP 7-Micro/WIN 对话栏中打开确认集成的库。
增加的 “EEPROM (v1.0)”文件夹中包含了子程序“EEPROM_Direct"”和 “EEPROM_Indirect”。
图:01
使用子程序:
- 在网络中从文件夹“EEPROM (v1.0)”插入所需要的子程序。
- 根据例程中的参数列表给所选子程序分配输入输出参数。
使用适当的逻辑连接,以确保在执行期间程序执行触发输入位“Start”保持为1 (高)。
更多的信息也可以在子程序的注释中得到。.
注意:
不能以很高的频率在 EEPROM 上保存数据。EEPROM 典型的存储次数为100,000次。如果超过这个值,CPU 将发生故障。 如果按小时在 EEPROM 上保存数值,那么 EEPROM 的预计使用寿命是 11 到 12 年。
起始地址为直接寻址“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 (高),成功完成保存 |
起始地址为间接寻址“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 (高),成功完成保存 |
程序测试:
程序运行后, 删除可保持的 V 变量并将存储的数据装载回 CPU。
序号. | 解释 | |||||||||||||||||||||||||||||||||||||||||
1 | 删除数据: 由路径“View > Component > System Block"”到“System Block"”选择“Retentive Ranges”表。
选择数据范围,输入起始地址和范围。点击“Clear”按钮。 例程如下图显示:
控制器内存信息也可参考如下链接内容:
表格 1 控制器内存分配祥表 1).通过 PLCSave to Memory Card (EPROM)菜单才会下载到装载内存中 实际应用过程中,当前控制器的内存占有率及分配情况可以通过控制器在线信息 Memory页面查询到,如下图所示。
从该图中可以看到内存被划分为四个部分:Load Memory RAM(装载内存RAM)、Load Memory EPROM(装载内存EPROM)、Work Memory Code(工作内存Code)和Work Memory Data(工作内存Data)。每个部分的实际占用状况可以通过下侧的Free(空闲内存)、Assigned(已分配内存)、Total(总内存)、Largest Free Block(**连续空闲内存空间)和Max. Pluggable(**可安插内存量)看到。而每个部分详细的内部分配情况可以通过选择相应内存列后,点击右侧的Details Memory Area按钮查询到,如下图所示。
3.内存优化 3.1 用户程序内存需求
从上图中可以看到,用户程序所需装载内存为5354 bytes,系统数据(硬件组态)所需装载内存为7616 bytes,总和为12970 bytes,和CPU在线内存分配情况吻合(见上图 3 装载内存详细分配情况中load objects所示)。用户程序所需工作内存代码部分为2682 bytes,所需工作内存数据部分为630 bytes,和CPU在线内存分配情况吻合(见上图 4 工作内存 Code部分详细分配情况中logic blocks部分所示和上图 5 工作内存Data部分详细分配情况中data blocks部分所示)。 3.2 工作内存数据部分 本地数据内存需求
控制器中按照中断的优先级的方式分配本地数据的大小,通过CPU的属性对话框 Memory中设置,下图所示本地数据离线设置为8192 bytes,与上图 5 工作内存Data部分详细分配情况中在线的Local data分配吻合。 按照实际程序所需的本地数据进行下图8所示的Local data的设置,可以优化内存的分配。
3.3 工作内存代码部分 通信作业内存需求 3.4 工作内存代码部分 输入/输出映像区内存需求
此处为1000 Process image input/1000 Process image output,参考表格1中的数据,每个映像区字节需要分配12 bytes的空间,总共所需1000*12 = 12000 bytes输入/输出,与上图 4 工作内存 Code部分详细分配情况中Process-image inputs、Process-image outputs内存分配吻合。 实际程序中所需的映像区范围可以通过I/O卡件的地址范围查询到,查询到实际程序所需的映像区范围后,预留一定余量后对图9进行设置,可以优化内存的分配。
|