西门子S-1200PLC运行模式下载
S7-1200下载但不重新初始化
●说明
S7-12004及以上版本的PLCCPU支持在运行时对功能块(FB)或数据块(DB)的接口进行扩展。这意味着可以在不将CPU置于STOP模式的情况下,下载经过修改的块,不影响块中的其他数据。这种方法简化了程序更新的过程,且无需重新初始化的下载操作不会对控制的过程产生不利影响。
●工作原理
默认情况下,每个功能块(FB)或数据块都预设有一个专用内存区域,用于将来可能的接口修改。在初次使用时,这部分内存通常不会被占用。如果计划在编译和下载块之后进行接口修改,必须先启用这个预留的内存区域。一旦启用,所有新声明的变量都会被存储在这个区域中。这样,后续的下载操作不会更改已经加载的变量值。
若计划在工厂停机期间更新程序,可以选择性地重置一个或多个程序块的存储器布局。这样做可以把块中的所有变量从预留存储区转移到常规存储区。清除预留存储器后,可以在将来的接口扩展中使用。
如果满足以下要求,1200 CPU 则可使用"无需重新初始化的下载"功能:
使用 S7-1200V4 及更高版本的CPU。
FB块使用LAD、FBD 或 SCL 创建。
DB块由用户创建。
FB或DB必须是"优化访问"。
●基本步骤
要扩充FB块或数据块的接口,请按照以下步骤操作,以便在不重新初始化的情况下加载块。
使用存储器预留区域可以帮助减轻存储器的使用压力,避免存储器的频繁分配和释放,提高程序的执行效率。通过定义合适的存储器预留区域大小,可以在一定程度上降低存储器的碎片化现象,提高存储器的利用率,减少存储器占用量。
激活存储器预留区域。
扩展块接口。
编译块。
将块下载到 CPU。
设置块扩展的预留存储器
●简介
默认情况下,每个功能块(FB)或数据块都会被分配一个100字节的预留空间,这个空间并不位于块的保持性存储区域中。在保持性存储区域中,默认并不设置预留空间,因为这部分存储区域是由CPU直接使用的。
项目可以根据需要调整每个块的预留空间大小,这个调整会影响项目中所有新创建的块。也可以为某个特定的块在保持性存储区域中设置预留空间,以及单独修改该块的预留空间大小。
●设置新块中预留存储器的大小
如果要在项目中为所有新创建的块设置预留存储器的大小,请按以下步骤操作:
在"选项"菜单中,选择"设置"命令。将在工作区中显示"设置"窗口。
在区域导航中选择"PLC 编程> 常规"组。
在“下载但不重新初始化”选项组内,您可以输入所需的字节数到“存储器预留”输入框中,以便为块接口的后续扩展分配预留存储器。这样,新创建的功能块(FB)和全局数据块(DB)将会被分配到指定大小的预留存储空间,而已经存在的块则不受此次更改的影响。
说明
只有支持"下载但不重新初始化"功能的块才会受到存储器预留设置的影响,其他类型的块不会受到这个设置的影响。
图1.为所有新创建的块设置预留存储器的大小
●设置现有块中预留存储器的大小
如果要设置现有块中预留存储器的大小,请按以下步骤操作:
在项目树中选择该块。
右键快捷菜单中选择"属性"命令。将打开"属性"对话框。
在浏览区中选择"下载但不重新初始化"组。
在"预留的存储空间大小"输入框中输入所需的字节数。
要在保持型存储器中设置预留区域,需要勾选"启用下载,但不重新初始化保持性变量"选项,并在"预留可保持性存储器"文本框中指定所需的字节数量。
说明
一旦为某个块设定了预留存储器,就无法修改其大小。
图2.设置现有块中预留存储器的大小
激活存储器预留区域
●简介
每个FB块或数据块都有一个默认的存储器预留区域分配给它,这个存储器预留区域在Zui初并没有使用。若已编译并加载块,但之后需要加载接口更改,可以启用存储器预留区域。在此之后声明的所有变量都将存储在存储器预留区域。
●要求
块目前已被编译。
块包含存储器预留区域。
●步骤
若要为FB块或全局数据块激活存储器预留区域,请按以下步骤操作:
打开块。
选择工具栏上的"下载但不重新初始化"按钮。
●结果
所有新声明的变量都会保存在存储器预留区域中,这使得在进行下载操作时不会影响正在运行的进程。
一旦变量被声明并保存在存储器预留区域中,通常就无法删除这些变量。除了可以更改的属性如"默认值"、"起始值"和"注释"之外,其它属性一般不能再进行修改。
图3.激活存储器预留区域