更多相关信息,请参见“比较编辑器”(Compare editor): •以下类别的在线/离线差异由于校验和不一致导致:虽然校验和不一致,但该程序仍兼容可用,程序的执行不受升级影响。升级后,可建立在线连接并立即开始监视。 – “程序代码”校验和 – “事件”校验和 –“已发布块的接口,无备注(软件单元)”校验和 • 而以下类别中的在线/离线差异则是真的不同,指示程序代码和含义不同,必需对程序进行重新编译并重新加载。 – “目标数据”(Target data) 类别中的所有校验和 另请参见“AUTOHOTSPOT” 将使能输入EN 的逻辑运算结果取反(FBD、S7-1200/S7-1500) 在以下状况下,无法正确评估使能输入 EN 的取反操作: • 在FBD 网络中,多条指令直接连接到指令的取反 EN 输入。 • 指令中存在多个布尔型输入。 • 至少一个布尔型输入并非由操作数提供。该错误在 V18 已更正。如果对使能输入 EN 取反,应确保升级后的程序流正确无误。 SCL:带有无类型常数的算术运算指令(S7-1200/S7-1500) SCL 中,一个操作数为有类型的 LReal 表达式,另一个操作数为无类型的 2#、8# 或16# 常 数的算术运算指令的特性已更改。无类型的常数通常会解释为无类型的整数。 参见 升级块 (页 46) 与 V17之前版本的 PLC 程序的兼容性 兼容性 理论上,在 TIA Portal V17 中可继续使用由旧版本创建的所有 PLC程序。但由于在版本 V17 中对编译器进行了改进并且更正了相关错误,在极少数情况下程序在升级后会有不同响应,或者需要手动调整程序代码。在下文中,对此进行了详细介绍。
升级到 V17 后,数据块的兼容性对 PLC 数据类型 (UDT) 的数据块进行升级后,即使在线程序与离线程序相同,也可能会显示 在线/离线不同。这些不同通常因校验和不一致导致。虽然校验和不一致,但这些块或 PLC 数据类型均兼容可用。即,程序执行不受升级影响。升级后,可建立在线连接并立即开始监视。 更多相关信息,请参见“比较编辑器”(Compareeditor): • “块属性”(Block properties) 类别中的在线/离线不同,由校验和不一致导致。这些块或 PLC数据类型均兼容可用。 • 而“目标数据”(Target data) 类别中的在线/离线不同,则为真的不同。即,程序代码和含义不同,程序需要重新编译并重新加载。 另请参见“AUTOHOTSPOT” 下载并监测发生变更的数据块(S7-1200/S7-1500) 下载数据块时,应遵循以下规则:如果离线项目中该块接口的时间戳晚于在线项目,则该块通常需要重新加载。这将导致变量值也将重新初始化。这样,可能会导致工厂运行时产生不一致错误。 在 V17及以上版本中,系统不再比较时间戳,而是对在线块与离线块的结构进行比较。仅当数据块的结构确实发生变更,才会在下载时进行重新初始化。另一大优势在于,即使在线 程序和离线程序中的显示不同,仍将继续监视程序状态。注: 更改 GRAPH、CEM 或 CFC 语言块中的程序代码时,可能会导致内部接口数据更改。即使块接口处未显示结构性变更,这些更改也需要进行重新初始化。 示例: 以下情况下,下载数据块时无需中断重新初始化: • 使用Openness 功能或版本控制接口,从外部源按照相同的结构多次生成数据块。 注:如果使用上述功能生成一个块或一个 GRAPH块且该块的存储器预留激活,则该块需 重新下载和重新初始化。 • 在接口中添加参数,之后再删除。说明 使用 V17 之前版本或S7-300/400 CPU 所创建块的功能。 新功能仅适用于块接口已由 S7-1200/1500 CPU 更改并加载到 V17版本中的块。之后,该在 线块的结构信息才有效,可用于后期在加载过程中进行比较。 打开数据块打开数据块时,系统将测试块中是否包含与实际值不一致的快照。检测后将发送消息通知用 户,而 CPU 中正在运行的程序不受影响。SCL:算术表达式或布尔运算中的派生数据类型 派生数据类型的使用规则现已规范。SCL 的算术表达式或布尔运算中不再支持这些数据类型。ARRAY 访问错误 (S7-1200/S7-1500) 如果在循环中执行访问操作,极少数情况下,系统不会检查 ARRAY访问错误。该错误现已 修复。如果发生 ARRAY 访问错误,则 CPU 将转入 STOP 模式或执行既定的错误处理操作。 导入源文件(S7-1200/S7-1500) 块、指令或 PLC 数据类型中可能包含写保护参数,这些参数的起始值不能初始化。例如,IEC定时器的某些参数不能初始化,否则功能会受影响。因此在 V17 及以上版本中,如果导入的外部源文件中包含有写保护参数初始化,则无法导入。 如果导入 SCL 文件时达到错误的Zui大数量(600条),则导入过程中止。源文件无法导入。
Serialize 和Deserialize (S7-1200/S7-1500) 在 Serialize 和 Deserialize 指令 V2.1及以上版本的优化版本中,由于过程数据的复杂性,所 需的工作存储器大小高于之前的版本。 使用 Serialize/DeserializeV2.2 时,工艺对象(如,TO_SpeedAxis.Statusword)的元素不再 允许与序列化(SRC_VARIABLE/DEST_ARRAY) 或取消序列化 (SRC_ARRAY/DEST_VARIABLE) 的输入/或输出参数进行互连。 SCL:隐式数据类型转换 调用 SCL 块时,in/out 参数 (InOut)的数据类型不会隐式转换为目标数据类型。该错误现已 修复。如果程序中使用 SCL 块并传送 in-out参数,则升级后需检查程序是否正常运行。 将 ARRAY 传递给 VARIANT 数据类型 在极少数情况下,如果 ARRAY包含在结构中且该 ARRAY 的访问路径包含一个取消引用,则 将该 ARRAY 传送到 VARIANT时返回的长度可能不正确。该错误已在版本 V15.0.1 中更正。 示例将计算“myVariant”输入处传递过来的数组长度。 参见升级块 (页 46)与 V16 之前版本的 PLC 程序的兼容性 内容 在线帮助中未包含的信息和有关产品特性的重要信息。兼容性 理论上,在 TIA Portal V16 中可继续使用由旧版本创建的所有 PLC 程序。但由于在版本 V16中对编译器进行了改进并且更正了相关错误,在极少数情况下程序在升级后会有不同响应,或者需要手动调整程序代码。在下文中,对此进行了详细介绍。项目升级到 V16 后的兼容性 项目升级到 V16之后,即使在线程序与离线程序相同,系统也可能指示出在线/离线存在不 同之处。在版本 V16中,这些不同是由于对校验和计算进行优化而导致的。但在大多数情 况下,这些块均具有兼容性。仅在极少数情况下,对项目进行在线监视和测试时,可能会由于校验和计算发生变更,需要 重新编译并下载该项目。有关项目特性升级的更多信息,请参见日志文件。如果日志文件中报告有校验和不一致错误,则意味着由于校验和计算发生变更而导致在线/离线不同。 更多信息,请参见部分“项目升级后的在线连接”。 升级 GRAPH块(S7-300、S7-400、S7-1500) 将低于 V15 版本的项目升级为 V16 后,系统将检查所修复的 GRAPH块是否包含在日志文件 中,并测试这些块在用户程序中是否可执行。 如果项目中包含有 GRAPH 块且这些块从 V15.x 升级到V16,则在对这些程序块进行监测前 需要先进行编译。 软件单元 在 V16 及以上版本中,软件单元名称需遵循以下规则: •允许使用的字符为所有字母数字字符和下划线。 • Zui多支持 125 个字符。 • 软件单元的名称在整个 CPU 范围内必需唯一,且CPU 中不得包含同名的块。 如果程序的软件单元名称不符合以上规则,则升级后将显示一条语法错误消息。此时,可更改该软件单元的属性并重新编译程序。 对实例进行语法检查(LAD、FBD、STL、GRAPH)通过调用函数块确定指定的背景数据块是否与被调用 FB 的类型相同时,系统将执行更全面 的检查。除了块编号和块结构,系统还将检查块名称。如果存在不一致,则在升级后将输出一条语法错误。此时,系统将检查块属性中“常 规”(General)部分中该背景数据块的类型。如果该类型与被调用 FB 不匹配,则需更改块调用并指定一个相匹配的实例。指令“UPPER_BOUND”和“LOWER BOUND”(LAD,S7-1200/S7-1500)指令“UPPER_BOUND”和“LOWER BOUND”指令的使能输入“EN”现可正确判断。如果输入“EN”的信号状态为“0”,则指令不执行且使能输出“ENO”的信号状态为“0”。使用其中一个指令时,系统将检查用户的程序顺序在升级后是否保持不变。 指令“S_CONV”(LAD) 在 TIA Portal 的之前版本中,从(W)Char 转换为 (W)String 的过程中,如果“S_CONV”指令使能输出“ENO”处未互连任何参数,则系统不对该这指令的启用输入“EN”进行判断。该错误现已修复。使用“S_CONV”指令时,系统将检查用户的程序顺序在升级后是否保持不变。 导入外部源文件 (SCL) 时初始化 STRUCT数据类型 STRUCT 的初始化规则现已统一。初始化列表现已基于相同规则进行评估,而与使用表格形 式或文本块接口无关。如果初始化列表中使用的语法不同,其中某些元素通过指定元素名称初始化时,其它元素仅 通过指定具体值,则导入 TIA Portal V16后将执行程序检查。