●说明
为了可以编辑已经过调试且在系统上正常运行的 PLC 程序,S7-1200 V4 及更高版本的 CPU 支持在运行时对FB块或数据块接口进行扩展。无需将 CPU 设置为 STOP 模式,即可下载已修改的块,而不会影响数据块其他的值。这是一种简单的更改程序的方式。这一加载过程(无需重新初始化的下载)不会对所控制的过程造成负面影响。
●工作原理
原则上,每个FB块或数据块都默认有一个存储器预留区域,用于后续的接口更改。在初期并未使用该存储器中所预留的区域。如果确定在编译和下载块之后加载接口更改,则需激活存储器预留区域。之后声明的所有变量都将保存到存储器预留区域中。后续的下载不会影响已经加载变量的值。
如果决定稍后在工厂没有运转时修改程序,那么还可以一次性重置一个或多个块的存储器布局。通过该操作,可以将所有变量从预留区域移动到常规区域。预留存储器清除后,可供以后的接口扩展时使用。
●要求
如果满足以下要求,1200 CPU 则可使用"无需重新初始化的下载"功能:
●基本步骤
如果希望扩展FB块或数据块的接口,请执行以下步骤,然后在不重新初始化的情况下加载块。
●简介
基本上,每个FB块或数据块在默认情况下都预留了100个字节的区域。这一预留区域不在块的保持型存储区中。默认情况下,保持型存储区中没有提供预留区域,这是因为保持型存储器仅限 CPU 使用。
可以更改默认值100个字节,这适用于项目中所有新创建的块。此外,还可以单独更改特定块中预留区域的大小,并在保持型存储区中为特定块定义一个预留区域。
●设置新块中预留存储器的大小
如果要在项目中为所有新创建的块设置预留存储器的大小,请按以下步骤操作:
说明
此设置仅对支持"下载但不重新初始化"功能的块有效。 其它块不受此设置的影响。
图1.为所有新创建的块设置预留存储器的大小
●设置现有块中预留存储器的大小
如果要设置现有块中预留存储器的大小,请按以下步骤操作:
说明
如果已为当前块激活了预留存储器,那么无法再更改预留存储器的大小。
图2.设置现有块中预留存储器的大小
●简介
每个FB块或数据块都被分配有一个默认存储器预留区域。但是,该存储器预留区域在初期并未使用。如果已编译且加载了块,然后希望稍后加载接口更改,那么请激活存储器预留区域。随后声明的所有变量都将保存到存储器预留区域中。
●要求
●步骤
若要为FB块或全局数据块激活存储器预留区域,请按以下步骤操作:
●结果
图3.激活存储器预留区域
●简介
在激活FB块或全局数据块的预留存储器之后,可添加新变量。
●要求
预留存储器已激活。
●步骤
要声明其它变量,请按以下步骤操作:
图4.如果预留存储器过小,编译将终止
●简介
为了稍后在工厂尚未运转时修改块的存储器布局,可以禁用预留存储器。通过此操作,可以将所有变量从预留区域移动到常规区域。预留存储器仍然存在,可供之后进行接口扩展时使用。并再次具有块属性中所定义的空间大小。
说明
请注意,在禁用预留存储器之后,需要对块进行编译并再次加载。 在禁用存储器预留区域后,无法执行"无需重新初始化的下载"。
●要求
块中的预留存储器已激活。
●步骤
如果要激活FB块或全局数据块的预留存储器,请按以下步骤操作:
●结果
通过此操作,可以将之前位于预留区域的所有变量都移动到常规区域。因此,需要对块进行编译并再次加载,CPU 中变量的值在加载期间重新初始化。
图5.取消存储器预留区域
●简介
如果决定稍后在工厂尚未运转时修改程序,那么可以一次性重置块的存储器布局。通过此操作,可以将所有变量从预留存储器移动到常规存储区域中。预留存储器清除后,可供以后的接口扩展时使用。
●要求
●步骤
要重置一个或多个块的预留存储器,请按以下步骤操作:
●结果
之前位于预留存储器中所选块的所有变量,都从此区域移动到常规区域中。块已经过重新编译。变量在下一次加载期间重新初始化。块中所组态的预留存储器将保留,且继续保持活动状态。
图6.重置预留存储器
●注意
重置预留存储器时,在预留存储器中之前设置的所有变量都将在下次加载时重新初始化。 这适用于保持性和非保持性变量。
在工厂运行期间,更改变量值将导致严重的财产损失和人身伤害! 因此,在重置预留存储器后必须先在测试环境中进行全面彻底地程序检查之后,才能使用。