与 V14 SP1 之前版本中 PLC 程序的兼容性
内容
在线帮助中未包含的信息和有关产品特性的重要信息。
兼容性
在 V14 SP1 中,通常可继续使用之前由 TIA Portal 旧版本创建的所有 PLC 程序。但由于在版本 V14 SP1 中对编译器进行了改进并且更正了相关错误,在较少数情况下程序在升级后会有不同反应,或者需要手动调整程序代码。在下文中,对此进行了详细介绍。
此外,还可以选择以兼容性模式编辑项目。有关兼容性的更多信息,请参见“项目的兼容性”。
程序消息中相关值的总大小
在 S7-1500 CPU 中执行“Program_Alarm”指令时,报警过程较多支持 512 个字节的相关值。
在 TIA Portal 版本 V14 及以下版本中,编译过程中仅显示一条有关该数值的警告消息。在 TIA Portal V14 SP1 及以上版本中,该检查更为严格。如果**出该数值,则在编译过程中将输出一条错误消息,用于排除运行过程中的相关错误。此时,该检查过程不再参考“Program_Alarm”指令调用时 SD 参数的实际大小,而是参考 SD 参数可能的较大大小。即,用户需事先确定待传输字符串变量应声明的长度大小。这是因为,这些字符串变量将占用大量的字节空间。
将项目从版本 V14 及以下版本移植到 V14 SP1 Update 1 时,必需考虑这种情况。
SCL 中的程序循环 (S7-1200/S7-1500)
在 S7-1200/S7-1500 中,SCL 程序循环中的程序循环无法更改。
因此,以下程序示例将无效:
在 TIA Portal V14.0.1 及以上版本中,在编译过程中将执行更为精准的语法检查并输出一条兼容性错误消息。
SCL 中的 CASE 语句
在 CASE 语句中,不再支持与“GOTO”指令无关的标签。系统将指示发生语法错误。
多重实例的 ARRAY
如果将多重实例中的单个变量声明保持性设置“在 IDB 中设置”(Set in the IDB),则在某些情况下可能会发生 V14 中无法对多重实例的 ARRAY 进行正确寻址。该错误在 V14 SP1 已修复。
如果在用户程序中使用了此类变量,则需在升级后重新编译受影响的块。
背景数据块中参数类型为“Block_DB”的条目
在 LAD 和 FBD 中,不能使用数据类型为“BLOCK_DB”的输入,输入指令的背景数据块。所有 CPU 系列和所有块类型都具有这一特性。
在 TIA Portal V14 SP1 及以上版本中,将输出一条语法错误。
如果在用户程序中使用数据类型“Block_DB”传递背景数据块,则需更改用户程序。而需使用一个参数实例在运行过程中对该实例进行传输。
以块参数形式进行 I/O 访问(S7-1500 固件版本 V2.1 及以上版本)
如果发生 I/O 访问错误,以输入参数形式互连到块的直接 I/O 访问将无法再访问正在运行的块。此时,系统将使用块中该信号的替换值。
在 S7-1500 CPU 固件版本 V2.1 及以上版本和所有 S7-1200 CPU 中,系统特性保持不变:
发生 I/O 访问错误时,该块无法调用。块调用结束后,将继续程序执行。如果存在 OB 122 或启用了本地错误处理,则执行这些操作。
shtxjd.cn.b2b168.com/m/