功能 :该命令用于启动当前应用程序的联机更改。此时,CODESYS 只重新下载 PLC 上已运行应用程序的更改部分。
请致电 :菜单栏:“在线”;“应用程序” 对象的上下文菜单
要求 :申请采用在线模式。
如果在设备树中选择了应用程序,则可在上下文菜单中使用该命令。这样,您就可以只对一个应用程序执行在线更改,即使该应用程序当前未激活。




小心

在线更改会修改正在运行的应用程序,不会导致重新启动。
确保新的应用程序代码仍然对受控系统产生所需的影响。
根据受控设备的不同,可能会损坏设备和工件,或危及人员的健康和生命。




注意

1.执行在线更改时,不会执行特定于应用程序的初始化(例如:归位),因为机器保留其状态。因此,新的程序代码可能达不到预期效果。
2.指针变量保留上一个循环的值。当指针指向的变量值在联机更改中被更改时,该变量将不再产生正确的值。确保在每个循环中重新分配指针。
3.更改父应用程序后,在线更改时会从控制器中移除子应用程序。




注意

编译器版本 >= 3.5.0.0 时,会对小改动进行快速在线修改。在这种情况下,只编译和下载修改过的区块。尤其是不会生成初始化代码。这意味着在初始化带有init_on_onlchange
属性的变量时,也不会生成代码。通常情况下,这不会产生任何影响,因为属性主要用于初始化带有地址的变量。但是,在在线更改过程中,变量不可能改变其地址。
要确保init_on_onlchange
属性在整个应用程序代码中的效果,必须通过使用编译器定义no_fast_online_change
来停用应用程序的快速联机更改功能。为此,请在应用程序“Properties” 中插入定义(“Build” 选项卡)。
下载时,CODESYS 还会在信息视图的“Build” 分类中列出已更改的接口、受影响的变量以及带有新生成代码的所有块。如果内存位置发生变化,对话框将提示您指针可能出现的问题。
在“在线更改内存储备” 视图中,可以为在线更改配置内存储备,这样在在线更改功能块时就不必移动内存中的实例变量。
是什么阻碍了在线更改?
CODESYS 中有一些操作,在这些操作之后就不再可能对控制器进行在线更改。之后,应用程序必须重新编译。一个典型的例子是“Clean All” 操作,它会删除上次下载时存储的编译信息。不过,这些操作通常会产生警告,您必须予以确认。
但也有一些 "正常 "编辑操作会导致下次登录时无法进行在线更改。因此,在程序 POU 中进行编辑时,请注意状态栏中的以下符号:.当该符号变为红色 (
) 时,只能向控制器进行完全下载。双击该符号可打开“Application Information” 对话框,其中列出了与上次下载的不同之处。在对话框中,您还可以找到有关哪些更改会阻止在线更改的信息。
应用程序不同区域的操作和更改会阻止在线更改:
检查功能 |
激活或取消校验功能 ( 更改校验函数的接口(也包括插入和删除局部变量) |
任务配置 |
更改配置设置 |
项目设置 |
更改“Settings” 部分中的“Compile Options”(Unicode、替换常量、登录、断点) “编译器定义的更改” |
应用特性 |
更改“目标系统内存设置” (“Build” 标签) |
POU 特性 |
更改“外部实施” 选项 (“Build” 选项卡) |
任务本地全局变量列表 |
所有更改 |
功能块 |
更改功能块的基本 POU ( 更改接口列表 ( |
数据类型 |
将变量的数据类型从用户定义的数据类型更改为另一种用户定义的数据类型(例如,从 将数据类型从用户定义的数据类型更改为基本类型(例如,从 请注意:作为一种变通方法,应始终将变量名称与数据类型一起更改。然后将变量初始化为新变量,并删除旧变量。这样就可以进行在线更改。 |
警报配置 |
更改警报数据库配置 更改锁存变量的数量(也会影响数据库中的内存格式) 更改分布式警报的配置 |
数据来源 |
配置中的所有更改 |
设备配置 |
更改设备树(也可通过“Update Device” 命令更改) 更改设备配置:默认情况下,无法在线更改设备参数。不过,可以在设备描述中配置例外情况。 请注意:可通过在线更改将 I/O 映射到变量。 |
可视化 |
切换叠加功能 V3.5 SP6 之前:更改跟踪元件的配置 请注意:在 V3.5 SP6 及更高版本中,以下内容适用:对于影响可视化或应用程序数据的在线更改(如插入新变量),可视化将完全重新初始化。以 TargetVisu 为例,这意味着可视化关闭后会重新打开起始页。对于 WebVisu,可视化也会在短暂等待后以启动可视化的方式重新启动。 |
单位换算 |
插入或移除用于单位换算的物体 |
趋势 |
更改变量数或最大变量数。更改带有说明或特殊行设置的变量数量 |