2.1.1 如何查看用户程序大小
2.2.1 ram 卡的使用
2.3.1feprom卡的使用
2.3.2 cpu 何时从 feprom 卡中拷贝程序到工作存储器中
2.3.3 如何删除 feprom 卡中的程序
目录
1.s7 400cpu存储区概述
s7-400 cpu 的存储区可以划分为三个区域:系统存储器csystem memory)、工作 存储 器(work memory)、装载存储 器(load memory),具体如图 1-1 所示。
1.系统存储器:
系统存储器csystem memory)用于存放输入输出过程映像区cpii,piq)、位存储器(m)、 定时器(t)和计数器(c))、块堆核和中断堆核以及面时存储器(本地数据堆核 local data lack)。
2.工作存储器:
工作存储器(work memory)用于存放与运行相关的程序和数据。s7-400cpu 的工作存储 器,一半用于存储与运行相关的程序代码(code memory),另一半存储与运行相关的数据 (data),这是一个国定分配。工作存储器集成在 cpu 中且不能扩展,通过后备电池保持。如 果工作内存对于一个应用程序来说不够大,则必须使用带有更大内存的 cpu。除了 cpu417- 4 (6es7 417-4xl00-0ab0 v1.1~v3.1)可以通过插入专用的存储卡来扩展工作存储器外,其它 型号的 cpu 的工作存储器都无法扩展。
3. 装载存储器:
装载存储器(load memory)是存放用户项目中不包含符号地址分配或注释(这些保留在编程设备 的存储器中)的所有用户程序和数据。装载存储器可以是外部扩展存储卡或是内部集成的 ram。在 s7-400 中,存储器卡(ram 或 flash eprom) 可以扩展集成的装载存储器。由于集成的装载存储 器容量有限,如果程序大于内置的装载存储器,则需要配置存储卡(ram 或 flash eprom)。ram 卡跟 cpu 内置的 ram 区形成无缝连接,完成扩展功能。而 flash eprom 卡与内置 ram 区是各 自独立的。
如果cpu中没有插入存储卡,当用户程序小于内置装载存储器时,在step7中执行“download ”命令,程序将下载到cpu的内置装载存储器中,cpu可以正常运行c新型 s7-300 cpu 使用的是mmc卡, 必须插卡才能下载程序)。工作存储器(work memory)、集成的装载存储 器和 ram 扩展的装载存储器(load memory)中的内容都需要后备电池保持。
2. s7-400 cpu 存储卡选型及使用
2.1 存储卡的分类及选型
在simatic s7-400cpu中使用的存储卡有以下 3 种:
1)用于s7 400 cpu的 ram 卡
2)用于s7 400 cpu的flash eprom 卡c以下简称feprom)
3)只用于cpu417-4(6es7 417-4xl00-0ab0 v1.1~v3.1) 的扩展工作存储器的ram卡
使用 ram 卡还是使用flash epromc以下简称feprom),取决于使用存储卡的目的:
主 要 用 途
选 择 卡
只想扩展cpu集成的装载存储器,并需要经常修改程序
使用ram卡
想在存储卡上永久的存储用户程序,即使掉电程序也不会丢
失或在cpu之外使用扩展卡c如插入pg中查看用户程序)
使用闪存卡cfeprom
卡)
当使用 ram 存储卡时,如果出现电源故障的话,系统必须能使用后备电池或通过“ext.batt”插 座为 cpu 提供外部备用电压,以便备份存储卡上的数据以及内部 ram 上的数据,否则程序会丢失。 当使用 feprom 存储卡时,用户程序存储在 feprom 卡中,如果出现电源故障,即使没有后 备电池,feprom 卡里的程序也不会丢失。cpu 再次上电后,会自动从 feprom 卡中拷贝用户程 序到 cpu 的工作存储器(work memory)中c注意:必须在 step7 中使用“plc”菜单下的“download the user program to memory card”命令, 程序才会下载到 feprom 卡里)。如果 cpu 使用 feprom 卡但没有使用后备电池,那么断电后一些保存在装载存储器中 ram 区的块和工作存储器、系统存储器中保存的数据都将丢失。
当用户程序占用的工作内存大于实际cpu 的工作内存,则需要更换工作内存更大的cpu或更改编 程方式使用户程序变小。如采用把数据块保存在装载存储器中,需要时再将数据块从装载存储器中复 制到工作存储器中,以减少用户程序对工作内存的占用量。
2.1.1 如何查看用户程序大小
在step7管理器中中点击“blocks”,然后鼠标右键选择“object properties”c如图2 1),弹出 属性对话框c如图2 2),在“blocks”选项中可以看到用户程序在各个存储器中占用的空间。
图2 2 以上是在离线状态下看到的用户程序大小,用户程序在离线状态显示的占用存储区的大小与在线状态显示的占用存储区的大小是不太相同的。
2.2 用于s7-400cpu和cpu318-2dp的ram卡
ram 卡用来扩展 cpu 的内置 ram 装载存储器,插入后和内置 ram 装载储器形成连续的存储 区 。用于 s7-400cpu 的 ram 卡型号如下:
注:以上产品的订货号会因为产品软硬件的升级略有调整,以新的标准产品样本为准。 另外 cpu318-2dp是s7-300cpu中**可以使用ram卡的,它的存储区分配与s7-400cpu类似,以下是只用于cpu318-2dp的ram卡:
128 kb 6es7 951-0ag00-0aa0
256 kb 6es7 951-1ah00-0aa0
512 kb 6es7 951-1aj00-0aa0
1 mb 6es7 951-1ak00-0aa0
2 mb 6es7 951-1al00-0aa0
注:以上产品的订货号会因为产品软硬件的升级略有调整,以新的标准产品样本为准。 注意: ram卡只能够用来扩展cpu的内置装载存储器(load memory),cpu的工作存储器cwork memory)的大小是国定的、不能扩展的(6es7 417-4xl00-0ab0 v1.1~v3.1除外)。
2.2.1 ram 卡的使用
由于s7400-cpu中集成了内置装载存储器,若是用户程序小于内置的装载存储器,则不使用外 置的装载存储器依然可以下载用户程序。若是用户程序大于内置的装载存储器,那么就要使用 ram 卡来扩展内置装载存储器,此时若想下载用户程序,必须将其插入 cpu上的插槽中,cpu 处于 stop 或 run p模式(对于使用钥匙开关的cpu是在run p模式,对于新的s7-400cpu使用拨钮 开关的则是在run模式下下),可使用cdownload命令)将整个用户程序或单个元素c如 fb、fc、 ob、db 或 sdb)下载到ram卡中。 如果从 cpu 中取出 ram 卡后将丢失上面的所有数据。如果电 源有可用的备用电池或通过“ext. batt.”插座为 cpu 提供外部备用电压,则只要 ram 卡仍在 cpu 中且 cpu 仍在机架上,即使切断电源模块的交流供电,ram 卡中的内容仍然保持。
所有 s7-400 cpu 都可以使用 ram 卡,插入后和内置 ram 装载存储区形成连续的存储区。 其使用需要注意以下几点:
1. ram 卡中的数据需要用电池来保存,需要在 cpu 带电时更换电池,否则掉电后程序将丢失。
2.ram卡中的内容可以通过 mres 或 clear/reset 指令来清除。
3.在线删除工作存储器中的程序块和db 块的同时会删除 ram 中相应的块。
4.ram卡与 plc 的内置 ram 装载存储区“无缝连接”。
5.将程序写入ram 卡中的方法只能使用“plc>download”命令和用快捷栏中的下载按键直接下载。 用户程序优先下载到内置的 ram 装载存储器中,当内置 ram 装载存储器下载满了,会自动把 剩余的块下载到扩展装载存储器 ram 卡中。下载的同时工作存储器的内容也会更新,与运行相 关的程序代码和数据块会被传输到工作存储器中。
6.ram卡严禁带电插拔。务必在电源关闭的条件下拆卸该卡。
7.对于使用ram 卡的 cpu 来说,当 cpu 设置读写保护后,,此时加密信息可以通过复位删除或执 行“download user program to memory card”下载一个空的程序到卡中,清除 cpu 中设置的 密码。
2.3用于s7-400cpu 的 feprom 卡
feprom 卡cflash eprom)可以扩展 cpu 的装载存储区,更重要的作用是作为程序备份。插 入 cpu 后,feprom 卡的扩展装载存储区和内置的装载存储区是各自独立的(ram 卡和内置的装载 存储区是无缝链接,融为一体的)。在没有后备电池时 plc 掉电,在 plc 每次上电后都会自动从 feprom 卡中拷贝程序到 cpu 的工作存储器中c前提是必须把程序下载到 feprom 卡里)。 feprom 卡的具体型号如下:
注:以上产品的订货号会因为产品软硬件的升级略有调整,以新的标准产品样本为准。
2.3.1feprom卡的使用
当使用 feprom 卡时,使用“download”命令下载程序时只是把程序下装到 cpu 内置的 ram
区,并没有下装到 feprom 卡里。要想实现程序备份必须把程序下载到 feprom 卡里。 将程序写入 feprom 卡,方法如下:
使用step 7 中的“plc >“download user program to memory card”。只有使用此命令才能 把程序下装到卡里,实现程序备份。使用此命令下载的用户程序只会占用 feprom 卡的使用空 间并不占用内置 load memory (ram)的空间。用户程序只能是整体写入 feprom 卡而不能写入 单个或部分程序块,同时,每次写入新的程序会清除原来存在卡中的程序。在用户程序被下装到 卡里之前,cpu 将被置为 stop 模式。
注意:用“download user program to memory card”指令下载程序到feprom卡中时会清空内置ram区的内容。如果用户修改了程序,并使用“download”命令下载到了cpu内置装载存储器但并没下载到feprom卡里,即卡里的程序和cpu中的程序是不一致的,那么使用此命令要谨慎。建议用户如果使用的是feprom卡,那么在 step7 中修改程序后请使用“download user program to memory card”下载到feprom卡中以保证程序的完整性。
使用 pg 时可以 用file > s7-memory card > open”打开存储卡再 用“plc > saveto memorycard ”将数据写入 feprom 卡里。此操作对于 mmc 卡同样有效。
2.3.2 cpu 何时从 feprom 卡中拷贝程序到工作存储器中
用 mres 进行复位时
下载整个程序时,完成后自动从卡中拷贝程序到工作存储器
程序掉电后,没有后备电池,重新上电后,会把卡中的程序拷贝到工作存储区(前提是cpu 使用 feprom 卡并且卡中有程序)
2.3.3 如何删除 feprom 卡中的程序
目前,feprom 卡中的程序使用在线的方式也无法删除,若想清除 feprom 卡中的程序,方 法有以下几种方法:
使用西门子的 pg或西门子的读卡器来删除卡中的内容。该方法可以彻底删除清除卡里的内容,使其成为一张空卡。若程序设置了密码保护,并使用“download user program to memory card”指令将设置读写保护的用户程序下载到 feprom 卡中,该密码是无法用存储器复位来清除的,在卡中加密又丢失了密码的情况就只能用这种方法来删除卡中的内容,而且在拔卡之后需要对 cpu 进行复位操作(用 mres)才能后消除 plc 的密码。当然cpu只要换一个feprom卡也可以继续使用。
使用 step 7 中的“plc” >“download user program to memory card”时可以把程序直接 下载到 feprom 卡中,每次用这个命令下载时,都会清除 feprom 卡中以前下载的程序, 同时会把内置的 ram 装载存储器中的内容清空。
当下 载的程序 大于工作 存储器 cwork memory) 或者大于 feprom 卡的容量时使 用 “download user program to memory card”命令,会出现报警信息,但下载过程仍然可以 继续,下载完成后会出现错误信息,此时 plc 故障灯亮csf),从“module information”模 板信息中可以看到 feprom 卡中内容为空,相当于删除了卡里的东西,之后可以重新向卡里 下载新的用户程序。
使用“download user program to memorycard”命令下载一个空的程序到卡中,即可清除卡中的原有的程序。
2.4扩展工作存储器的ram卡
该存储卡只用于订货号为 6es7 417-4xl00-0ab0 、版本号 v1.1~v3.1 的 cpu,该款 cpu 的不 但可以扩展装载内存cload memory),还可以扩展工作存储器cwork memory),内置工作存储 器为 4m,大可以扩展到 20m,即插入两块 2*4m 的 ram 卡。其它 cpu 均不能扩展工作存储器。 目前在产的 cpu 己经不能扩展工作内存。
扩展工作存储器的ram卡具体型号如下:
注:以上产品的订货号会因为产品软硬件的升级略有调整,以新的标准产品样本为准
2.5 s7-400cpu的存储卡其它信息
断电时对于 s7-400 cpu 每次拔卡后上电或者插卡后上电,cpu 都不会请求执行复位c请求 执行复位是 stop 灯以 0.5hz 的频率慢闪),而是在上电后自动完成完全复位的过程。所以在 断电时在拔卡后再上电,工作存储器中的程序和 ram 中的内容会丢失,即使有后备电池也一 样。当插入 ram 卡时,用户程序必须从编程器装入;当插入 feprom 卡时,卡中的内容将拷 贝到工作存储器中。
对于s7-400cpu 和 cpu318-2dp 不支持使用“copy ram to rom”指令,与该指令相关的 内容对 s7-400 cpu 及 cpu318-2dp 均无效。这也是与 s7-400cpu 与 s7-300cpu 的不同 之处。只有 s7-300cpu 标准型和新型 s7-300cpu支持此命令。
在 s7-400 cpu 中在线删除和重新加载块后,可能会在用户存储器(装载存储器和工作存储 器)中产生间隔,从而减少可使用的存储区域。经过一段时间的反复下载后,会提示存储空间 不足,这时需要使用压缩功能ccompressing),可将现有块在用户存储器中无间隔地重新 排列,并创建连续的空闲存储空间。下图显示了存储器占用的块是如何通过压缩功能移位到 一起的(如图 2-4)。只有在 stop 模式下压缩存储器时,所有的间隔才靠拢。
具体步骤如下:
1) 在“accessible nodes” 可访问节点窗口或项目的在线(online)视图中选择s7程序
选择菜单命令“plc > diagnostics/setting > moduleinformation”c如图2-5))
或在cpu在线时,在硬件配置窗口中选中cpu, 选择“plc> module information”(如图2-6)
3) 在随后显示的对话框中选择“memory”存储器标签页(如图2-7)。如果cpu支持压缩存储器功 能,则在该标签页中存在一个相应功能的按钮“compress”。
3 关于 s7-400cpu 数据保持问题
3.1 s7-400 cpu 启动类型:
cpu 的启动类型可分为冷启动、 暖启动和热启动c只有 s7-400cpu 才能进行热启动, cpu318-2dp 只支持暖启动和冷启动)。在硬件配置中,用鼠标双击 cpu,弹出属性窗口c如下 图 3-1),用户可以根据需要选择启动方式,但并不是所有的 cpu 都支持这三种启动方式ccpu 不支持的启动方式,该选项是灰色的不可选的)。