在线更改

概述

默认情况下,在线更改命令将在在线菜单中提供,用于对当前活动应用程序触发在线更改设置活动应用程序)。当前选择的应用程序的上下文菜单中也会提供此命令。在这里,您可使用此命令仅对该应用程序触发在线更改,即使它当前不是活动应用程序也如此。

在线更改意味着仅重新加载在控制器上运行的应用程序的已修改部分。另请参阅下文中的禁止在线更改的操作

在线更改命令会修改运行中的应用程序,且不会影响重新启动过程。程序代码的行为与全面初始化后的行为不同,因为计算机会保持其状态。指针变量会保留其在上个循环中的值。如果变量上有指针,并且该指针由于在线更改而改变了其大小,该值将不再正确。

 警告
意外的设备操作
  • 确保新应用程序代码仍然将影响所需的系统行为。
  • 确保在每个循环中重新分配指针变量。
未按说明操作可能导致人身伤亡或设备损坏等严重后果。

在线更改期间,消息框的详细信息对话框 - 除有关下载过程的一般信息之外 - 还会列出更改的接口、相关变量以及生成了新代码的对象。如果数据位置改变,则会显示一条消息,指示指针使用可能出现问题。

注:Online Change Memory Reserve 视图中,您可以配置内存预留,这样,当在在线更改期间更改功能块时,内存中的实例变量就不必移动。

请记住,在登录到正在运行自上次下载以来已被修改的某个应用程序的控制器时,将会自动提供在线更改。

假设运行/停止输入已配置并设置为“运行”,在控制器处于“运行”状态期间进行的在线更改(部分下载)会在成功后使控制器返回“运行”状态。在使用登录并看在线变化选项之前,请在虚拟或非生产环境中测试对应用程序进行的修改,确认控制器和连接的设备是否具备 RUNNING 状态下的预期条件。

 警告
意外的设备操作
请务必先验证对“运行”状态下的应用程序进行的在线更改是否按预期方式运行,然后再将这些修改下载到控制器。
未按说明操作可能导致人身伤亡或设备损坏等严重后果。
注: 对应用程序的在线更改不会自动写入启动应用程序,并会在下一次重新启动控制器时由现有启动应用覆盖。如果您希望通过重启来永久应用所做的修改,则在视图 > 属性对话框中激活选项在线修改时的隐含启动应用程序,或者激活在线更改对话框中的选项更新启动项目

另请参阅:

禁止在线更改的操作

在某些操作(如全部清除操作)之后,无法执行在线更改,但必须执行完全下载。如果试图执行这样的操作,则会向您显示确认消息。

编辑程序 POU 时,代码不变图标始终提供有关此状态的信息。一旦您试图执行将禁止通过在线更改下载应用程序的操作,该图标就会变成红色 必须下载代码)。双击该图标,可以列表形式显示与上次下载的差异。此对话框提供了已执行的需要完全下载的操作。

下表列出了在应用程序的不同区域中执行的会禁止在线更改的操作和修改:

修改区域

修改操作

隐式检查 POU

激活或禁用检查函数(CheckBounds、CheckRange、CheckDiv 等)。

任务配置

修改配置设置。

项目设置

修改项目设置 > 编译选项对话框

应用程序属性

修改:

  • 属性 > 生成 > 编译器定义参数

  • 视图 > 目标内存设置选项卡

POU 属性

修改属性 > 生成 > 外部实现参数

任务本地全局变量列表

修改全局变量列表(任务本地)

功能块

修改:

  • 功能块 (EXTENDS FBbase) 的基本 POU,以及插入或删除基本功能块。

  • 接口列表 (IMPLEMENTS <interface name>)。

数据类型

修改:

  • 来自用户定义数据类型的变量的数据类型,将其改为另一用户定义数据类型(比如,从 TON 改为 TOF)。

  • 来自用户定义数据类型的数据类型,将其改为基本类型(比如,从 TON 改为 TIME)。

注: 建议将变量名称与数据类型一起修改。因此,变量被初始化为新变量,旧变量则被删除。仍然允许在线更改。

设备配置

修改:

  • 设备树(包括更新设备命令)。

  • 设备配置:缺省情况下,设备参数的修改会阻止在线更改。但可以事先在设备描述中配置例外。

注: 变量的 I/O 映射修改不会禁止在线更改。

可视化

切换覆盖功能。对于影响可视化或应用程序数据的在线更改(比如,插入新变量),会对可视化视图进行重新初始化。对于 Web 可视化,在短暂的等待时间之后,可视化视图会以起始页重启。

单位转换

已添加或删除用于单位转换的对象。

趋势

修改:

  • 变量数或者变量的最大数量。

  • 变量数以及描述或特殊行设置。