通常创建S7-1500数据块DB都是保持缺省的属性值,但是一些特殊的操作需要对属性进行设置,下面就详细介绍一些S7-1500数据块的属性和设置。
鼠标点击创建的数据块,右键点击属性条目进入数据块的属性界面,在“常规”标签的“常规”栏中可以查看数据块的名称、类型、语言和编号,如图1所示,缺省设置下,数据块的编号由系统自动排序,也可以使能“手动”方式给定一个没有冲突、在取值范围内的编号。
图1
在“信息”栏中可以给该数据块一些注释便于程序的阅读,如图2所示。
图2
在“时间戳”标签栏中显示该数据块创建的时间、创建变量的时间等信息,如图3所示。
图3
在“编译”标签栏中显示该数据块的编译信息以及占用工作存储器和装载存储器的大小,如图4所示。
图4
注意:
所有的程序块下载都是先存储于SMC卡(装载存储器)中,然后再复制到CPU的工作存储器中,FC、FB、OB复制到工作存储器中的代码存储器中,DB复制到工作存储器中的数据存储器中。
在“保护”栏中可以为该数据块设置密码,如图5所示。
图5
数据块的保护与程序代码块例如FC的保护有一些区别,程序代码块的保护是防止代码被偷窥,数据块的保护是防止被修改,保护后的数据块可以打开,但是处于只读模式,如图6所示。
图6
在“属性”栏中可以设置数据块的存储、读写访问以及优化与非优化等属性,如图7所示。
图7
如果选择“仅存储在装载内存中”选项,DB块下载后只存储于CPU的装载存储区(SIMATIC MC卡)中。如果程序需要访问DB块的数据,需要调用指令READ_DBL将装载存储区的数据复制到工作存储区中,或者调用指令WRIT_DBL将数据写入到装载存储器中。如果在DB块的“属性”中勾选“在设备中写保护数据块”,可以将DB块以只读属性存储于CPU或者SMC卡中,禁止使用程序进行改写。使能“优化的块访问”选项,则该数据块就是优化的数据块;去使能“优化的块访问”则该数据块就是非优化的数据块。使能“数据块从OPC UA可访问”选项,该数据块数据可以被OPC UA 客户端访问。“数据块可通过Web服务器访问”不可以设置,如果使能CPU的Web服务器,则可以通过浏览器访问该数据块的值。
“下载但不重新初始化”功能只适合在优化数据块中添加新变量并下载时,保持数据块中原有变量的监控值不变。使能此功能必须在数据块属性中预留新增变量的存储空间,如图8所示。
图8
缺省情况下,所有块都预留一个100个字节的空间用于非保持变量,最大为2M字节。如果需要添加保持变量,必须使能“启用下载,但不重新初始化保持性变量”选项,并输入预留的字节数。图8中预留100个字节用于非保持变量,预留10个字节用于保持变量。打开需要添加变量的数据块,点击“激活存储区预留”按钮,数据块中的内容被保护,除“起始值”可以修改外,其它参数都不能修改,如图9所示。
图9
点击“添加行”或“插入行”按钮,添加新的变量并设置变量的属性,完成修改后下载数据块,数据块中原变量的过程值不会被初始化。如果去使能“激活存储区预留”按钮后再下载,则数据块需要重新初始化。
注意:
添加的变量不能超过预留的存储空间。
打开数据块并创建一个变量,可以设置该变量的保持特性。非优化DB只能整体选择保持或者非保持性;优化DB可以对其中的任何变量选择保持或者非保持性,参考图10。
图10
如果是一个优化FB块的实例化数据块(或称为背景数据块),保持特性可以在FB的接口参数中设置也可以在实例化数据块中设置。例如创建一个FB块,声明一个变量A,如果保持特性直接在FB的接口参数中设置,可以选择“非保持”或者“保持”;如果需要在实例化数据块中设置,则需要选择“在IDB中设置”,如图11所示。
图11
在FB块被调用后自动生成实例化数据块,打开该数据块,可以看到设置为“在IDB中设置”的变量,在数据块中可以设置保持特性,而没有设置为“在IDB中设置”的变量,在数据块中不能设置保持特性,如图12所示。
图12