代码生成和在线修改

代码生成, 编译信息

机器代码将不会产生直到 “应用”工程被下载到目标系统之后(PLC ,仿真系统)。在每个下载编译信息中,都包含代码和加载应用程序的参考ID,将存储在工程路径中的文件 "<projectname>.<devicename>.<application ID>.compileinfo"。编译信息将在 “清除”之后删除。 “清除所有”命令将会执行。

通过项目编译的命令类没有代码自动生成 “编译命令”。编译过程将检测工程中的错误。 所有这些信息将会出现在 消息窗口(消息类‘编译’)。 在代码生成期间,一些更加细致的,以及由代码生成或者内存分配所产生的特殊错误,将会被存储。

在线修改

小心!

“在线修改”修改正在运行的程序,并不影响程序的重新启动。

确保新的应用程序代码仍然会影响系统的行为。

根据不同的控制系统,可能会导致机器或者零件的损坏,或者导致人的生命健康受到伤害。

提示!

1. 在线更改完成之后,由于机器保持他本身的状态,所以整个程序代码可能会在全部初始化结束后才会起作用。

2. 指针变量将会保持最后一个周期的值。如果一个指针变量在在线过程中改变了它指向值的大小,该值将不会被被纠正。所以要确保指针变量在每个周期都会得到重新分配。

如果目前在控制系统上运行的应用程序在它最后一次下载后做了修改,只有工程中改变的对象将会在控制器运行的状态下下载到运行系统中。

第一种在线修改的模式

当你要再次下载修改的应用程序时(核对编译信息,程序下载时存储在工程的文件夹中),将会被询问是做在线修改,全部下载还是登录不做任何修改。

 插图 50: 登录对话框

“在线修改登录”:这个选项默认选择。所以如果直接选择“OK”,所做的修改将被加载并立即在当前工程的各自对象的在线模式下显示出来。

“登录全部下载”:激活此选项,如果应用程序需要完全下载并全部初始化。

“登录不做修改”: 激活这个选项保持程序不做修改的登录。在一个不修改程序下载之后( “下载”),因此可能会导致一个完成的应用程序的下载,或者在下次重新登录时,再做一个在线修改。

通过登录中的“详细信息”按键可以获得当前集成开发环境(集成开发环境=编程系统)创建的工程的相关信息(工程名称,最后修改,IDE版本,作者以及相关描述)在当前PLC:

 插图 51: 应用信息对话框

如果在当前的PLC上有其他的应用程序,会出现如何处理相关情况的对话框。更多信息请参阅: “登录”

如果在线修改将会影响下载代码的严重变化,例如移动 指针地址或者必要的 接口引用重新定义,将会有另外一个对话框,在下载完成之前通过“OK”确认在线修改,对话框会提示那些影响必须考虑并允许终止在线修改:

插图 52: 在多处变化时在线更改消息框

提示!

从 V3.5 SP1 版本之后,除去隐式检查功能,例如像功能块检查,没有在线变化是可能的,只是做一个下载!相应的下载消息将会出现。

通过消息窗口中的“详细信息”按键,可以获得像接口中,POUs中,改变的变量数量以及清单:

插图 53: 详细在线更改信息对话框
第二种在线修改方式

通过命令 “在线修改”可以在一个应用程序中进行明确的在线修改。

注意在线修改在执行命令‘清除’ 操作之后将不再有效( “清除所有” “清除”)。在这种情况下,最后一次下载的改变将会清除。因此程序会进行一个完整的下载。

提示!

在进行在线修改之前,请确认:

在线修改是否不含错误?

应用程序的特定初始化(参考运行等)将不会被处理,因为机器会保持他是状态。新的应用程序是否可以不进行初始化就下载?

指针变量将会在最后一次循环中保持他的变量值。如果一个指针变量改变了它的大小,该值将不会正确的执行。因为这个原因应该在每次循环的时候重新分配变量的值。

如果在函数图中一个激活的步被移除,图表将不会继续执行。

启动应用程序(启动项目)

当前位置:每个应用程序在成功下载之后都会在目标系统文件夹中产生一个 "application.app" 文件,这个文件就是自启动应用。命令‘创建自启动程序’允许在线模式下将自启动应用存储到文件中。

一个工程中的自启动应用将会在控制器启动(“自启动”)时自动启动。因为这个原因,工程必须具有 <project name>.app文件。这个文件可以通过在线或者离线模式下的 “创建启动应用”命令实现(命令类‘在线模式’)。

如果想要在同一台PLC或者另一台PC上的编程系统得到自启动文件,而不需要进行在线修改或者下载,可以按照以下文档所描述的步骤进行: “将工程转换到其他系统”