比较 WORD 数据类型的变量与 S5TIME数据类型的变量 (S7-1500) 在 TIA Portal V14 及以上版本中,比较 WORD 数类型的变量与 S5TIME数据类型的变量时, 两种变量都将转换为 TIME 数据类型。WORD 变量将解释为一个 S5TIME 值。如果其中某个变量无法转换,则不进行比较且输出结果 FALSE。转换成功后,将基于所选择的比较表达式 进行比较。 2与 V13 SP1 之前版本中PLC 程序的兼容性 内容 在线帮助中未包含的信息和有关产品特性的重要信息。 兼容性 可以继续在 V13 SP1 中使用所有通过TIA Portal V12 SP1 或 V13 创建的程序。但由于在 V13 SP1中对编译器进行了改进并且更正了编译器上的错误(程序代码的编译),在极少数情况下程序在升级后会有不同的反应,或者您必须手动调整程序代码。在下文中,对此进行了详 细介绍。 固件版本 V1.8.1及以上版本中,PLC 数据类型 (UDT) 中未使用的位 标准存储区中 PLC 数据类型未使用的各个位由系统占用或覆盖。例如,包含 4位的 PLC 数 据类型。 固件版本低于 V1.8.1 时,任何时候都不能使用 PLC 数据类型的未使用位。 固件版本为 V1.8.1及更高版本时,只使用 4 位,所有位都将被占用或覆盖。 说明 地址分配请勿为不同的符号地址重复分配相同的juedui地址。读取无效的 IO 输入 在 TIA Portal V12及更高版本中,仅当编程有诸如 %MW10 := “InvalidWordAccess":P 的故障访问方式且该访问方式有效并位于相关序列中时,才输出读取无效 IO 输入的错误代码 16#2942。例如,如果在其它程序块中未使用变量#tmpm,则可以为 #tmp := “InvalidWordAccess":P。 指令“S_CONV:转换字符串” 在 TIAPortal V13 SP1 中,EN/ENO 机制的运行特性与 TIA Portal V13 中的不同。 在版本 V13 中,ENO使能输出在发生错误时返回信号状态“0”,禁用了 ENO 使能输出也 是如此。如果已将一个指令切换到 ENO使能输出,则不执行该指令。 在版本 V13 SP1 中,ENO 使能输出在发生错误时返回信号状态“1”,禁用了 ENO 使能输出也是如此。如果已将一个指令切换到 ENO 使能输出,则如期执行该指令。 指令“SET:置位位数组”(S7-300/S7-400)在 TIA Portal 中,还可以将 SET 指令的 N 参数中数据块的元素互连。 指令“MUX:多路复用”(SCL) 对于 TIAPortal V13 及更早的版本,输入参数中的变量值作为函数值原样输出,K 参数 包含一个负整数也是如此。这种机制在 TIAPortal V13 SP1 中发生了改变。 在 TIA Portal V13 SP1 中,如果 MUX指令的输入参数中所用变量的数据类型有效且 K 参数 是一个负整数,则该变量的值将发生变更。有关有效的数据类型,请参见信息系统中的MUX 指令说明。
指令“DEMUX:多路分用”(SCL) 在 TIA Portal V13 及更早版本中,如果 K 参数的值小于0,则输出参数 OUTELSE 不输出任何 值。而当 K 参数的值大于可用输出时,输出参数 OUTELSE 中将输出输入参数 IN的值。这种 机制在 TIA Portal V13 SP1 中发生了改变。 在 TIA Portal V13 SP1 中,如果在 K参数中指定的值超出了可用输出的范围(K < 0 或 K > 可 用输出),则在 OUTELSE 输出参数中输出 IN输入参数的值。 指令“MOVE:移动值”(STL) (S7-1500) 从 TIA Portal V13 SP1 开始,STL中的“MOVE”指令将应用更加严格的语法规则: 对于 TIA Portal V13 及更早的版本,可以在输入参数 IN中指定无类型的常数,如“0”。 但如果要在 TIA Portal V13 SP1 中复制值“0”,则需要根据输出参数(如INT#0、DINT#0 等) 的数据类型指定一个有类型的常数。指令“Program_Alarm:生成具有相关值的程序报警”(S7-1500) 在 TIA Portal V13 SP1及更高版本中,相关值或文本列表的索引变量不允许再使用数据类型 INT,而采用数据类型 UINT。指令“READ_DBL:从装载内存的数据块中读取”和“WRIT_DBL:将数据写入到装载存储器的数据块中”如果使用“READ_DBL”V1.0 或“WRIT_DBL”V1.0 并使用参数 DSTBLK 访问属性为“仅存储在装载内存”的数据块,则 TIA Portal V13 SP1 将报告兼容错误。 对此,可使用这两个指令的版本 V1.2。指令“READ_DBL:从装载内存的数据块中读取”和“WRIT_DBL:将数据写入到装载存储器的数据块 中”(SCL) 在 TIAPortal V13 SP1 及以上版本中,SCL 指令“READ_DBL”和“WRIT_DBL”的语法规则与其它 编程语言的相同:在 TIA Portal V13 中,SRCBLK 和 DSTBLK 参数处指定的“标准”数据块可包含不同数据类型 的变量。 而在TIA Portal V13 SP1 及以上版本中,无论是“标准”数据块还是“优化”数据块,所包含的变量数据类型必须相同,否则将报告编译错误。函数值 (Return) 从 TIA Portal V13 SP1开始,函数调用将应用更加严格的语法规则: 在任何情况下都会确保写入函数值 (Return),函数中将运行多条可能的程序路径也是如此。将不会再有偶尔在运行时未写入函数值的风险。 但在编译时,用户可能会收到函数中的语法错误,如果 V13中无错误,将仍可以编译。在 这种情况下,请更改程序代码,让函数值在所有可能的程序路径中都会写入。 示例:比较硬件数据类型 HW_IO与 HW_DEVICE 从 TIA Portal V13 SP1 开始,对数据类型 HW_IO 与 HW_DEVICE的比较将采用更为严格的语 法规则: 对于 TIA Portal V13 及更早的版本,可以直接比较数据类型 HW_IO 与HW_DEVICE。 但如果要在 TIA Portal V13 SP1 中比较这两种数据类型,就必须在块接口的“Temp”部分创建 HW_ANY 数据类型的变量,将 LADDR(从数据类型 HW_DEVICE)复制到该变量。 才可以比较 HW_ANY与 HW_IO。 浮点数向 DWORD (GRAPH) 的隐式转换 (S7-1500) 从 TIA Portal V13 SP1开始,浮点数向 DWORD 的隐式转换将采用更严格的语法规则。对于 TIA Portal V13 及更低版本,无类型的常数值只要小于32 位(例如 1.0),就可以隐式 转换为 DWORD 数据类型。 对于 TIA Portal V13SP1,如果要将浮点数隐式转换为 DWORD 数据类型,就只能使用有类 型常数(例如 REAL#1.0),因为无类型常数(例如1.0)被解释为 LREAL 数据类型,无法 再隐式转换为 DWORD。 为 LTIME 常量赋值 (S7-1500) 从 TIAPortal V13 SP1 开始,为 LTIME 常量赋值时将采用更加严格的语法规则: 对于 TIA Portal V13及更早的版本,可以为 LTIME 常量指定一个 TIME 值(例如 T#10s)。 但如果要在 TIA Portal V13 SP1中为 LTIME 常量赋值,则需使用 LTIME 语法(如,LT#10s)。 请注意,在升级到 TIA Portal V13 SP1之前,需对先前版本的 TIA Portal 项目进行调整。 在 SCL 中,间接索引数据类型为位字符串的 ARRAY 元素(S7-1200/S7-1500) 在 TIA Portal V13 中,如果未设置 IEC检查,那么除整数数据类型的变量外,还可以使用 BYTE、WORD 或 DWORD 或 LWORD 数据类型的变量作为索引对 SCL 中S7-1200/1500 系列 CPU 的 ARRAY 元素进行寻址。但这不适用于 S7-300/400 系列的 CPU。结果是导致与 TIA Portal V12 SP1 不兼容,在 TIA Portal V12 SP1 中,还允许在S7-300/400 系列的 CPU 上使用数据类型位字符串进行间接索引。用于 STRING 转换的 EN/ENO 机制(S7-1200/S7-1500) 转换 说明 Strg_TO_Chars:将字符串转换为 Array of CHAR 禁用了ENO 使能输出,它也将返回信号 状态“0”: • 对于 CHARS 参数的无效字符 • 对于 PCHARS 参数的无效 ARRAY下标 • 如果 PCHARS 与 STRG 参数的和超过了目 标 ARRAY 的长度。 Chars_TO_Strg:将 Arrayof CHAR 转换为字 符串 禁用了 ENO 使能输出,它也将返回信号 状态“0”: • 如果 PCHARS 与 CNT参数的和超过了源 ARRAY 的长度。 本地数据堆栈溢出 (S7-300/S7-400) 从 TIA Portal V13 SP1开始,将会检查本地数据堆栈的大小以保证其不会超出在硬件配置中为 OB 属性定义的大小。 这意味着在 V13 中编译时无错的项目,在V13 SP1 中编译时就可能会报错。如果发生这种 情况,请在硬件配置中更改本地数据堆栈的Zui大大小。