S7-1200需要被断电保持的数据必须被保持到保持性寄存器中。保持性寄存器中不需要超级电容供电维持,其中的数据可以永久保持。总共可以有10240个字节的数据具有保持特性。CPU暖启动或者断电再上电后,保持性存储区中的数据会保持为暖启动或者断电之前的数值,保持性存储区之外的数据会丢失,即恢复初始值。
S7-1200 CPU的M存储区、FB的背景数据块和全局数据块中的数据可以使用保持性存储区存储。
1、M存储区
用户可以在“PLC 变量” 标签页中,点击“保持”按钮来设定M存储区的保持范围,从MB0开始的连续字节数,例如设置10,则保持范围为MB0-MB9共10个字节,无法设置多个保持区,如下图所示:
2、FB块的背景数据块
FB块可以是优化的块或者非优化的块,新建的FB默认优化FB,可以在FB右键属性中修改,如图所示。
而系统FB,例如PID、运动控制、通讯等通常都是优化FB,无法修改优化属性。
优化FB的背景数据块是优化DB,非优化FB的背景数据块是非优化DB。
a. 对于优化FB
背景数据块中的每个变量都可以单独指定断电保持特性。打开FB,在上方的接口区,用户可以在“保持”列中修改每个变量的保持特性,如下图所示:
可以将每个变量单独设置保持或者不保持。
如果选择在IDB中设置,则该变量的保持性可以在背景数据块中设置,也就是说同一个变量可能在不同的背景数据块中设置不同的保持性。
b. 对于非优化FB
只能整体地指定其背景数据块的保持特性,不能每个变量单独指定。打开FB的一个背景数据块,用户可以在“保持”列中修改每个变量的保持特性,如下图所示:
如果多次调用经过上述设置的FB, 每次调用分配不同的背景数据块,用户可以分别指定每个背景数据块的保持特性。
3、全局数据块
与FB的背景数据块相同,全局数据块的也分为优化和非优化两种。使用优化DB块能够最优化地利用CPU内部的数据存储区。全局数据块的断电保持特性也与FB的背景数据块相同:
使用优化的全局数据块可以分别指定其内部每个变量的保存特性;使用非优化的全局数据块,只能对其整体指定一种保持特性。新建的DB默认优化DB,可以在DB右键属性中修改,如下图所示:
与FB的背景数据块特性设置相同,用户可以打开DB,通过勾选“保持”一列设定变量的保持特性,如下图所示:
注意:FB、DB中的UDT、STRUCT内部的变量无法设置独立的保持性,也就是说UDT、STRUCT内部的变量的保持性是一致的。