TIA博途V14与博图TIA V13 SP1版本中 PLC 程序的兼容性及需要注意的事项
兼容性
理论上,在 TIA Portal V14 中可继续使用之前旧版本创建的所有 PLC 程序。但由于在版本 V14 中对编译器进行了改进并且更正了相关错误,在极少数情况下程序在升级后会有不同反应,或者需要手动调整程序代码。下面详细介绍了这些情况。
指令“SRW”、“SLW”和“SSI”(AWL)
从 TIA Portal V13 SP1 升级到 TIA Portal V14 之后,这些指令支持的偏移量值范围发生变更。
在版本 V13 SP1 中,S7-1200/1500 系列 CPU 中可指定的偏移量值范围为 0 到 31; S7-300/400 系列 CPU 可指定的偏移量值范围为 0 到 15。
在版本 V14 中,所有 CPU 系列 (S7-300/400/1200/1500) 的值范围统一为 0 到 15。
BCD 格式的表示
从 TIA Portal V13 SP1 到 TIA Portal V14,BCD 格式中的符号表示有所不同。
在版本 V13 SP1 中,显示 BCD 值时不带符号。
在版本 V14 及以上版本中,显示 BCD 值时带有符号。这将导致 BCD 格式值的表示发生变化。
指令“SET_BF:置位位域”和“RESET_BF:复位位域”
从 TIA Portal V13 SP1 到 TIA Portal V14,该指令对不同结构的响应有所不同。
在版本 V13 SP1 中,可置位或复位的位数通常由输出指定。如果已指定了一个 STRUCT 或 ARRAY PLC 数据类型的结构,这一规则同样适用。如果要置位或复位 10 个位而结构中仅包含 5 个位,则会对该地址序列中的以下 5 位进行置位或复位。
在 PLC 数据类型的结构(版本为 V14 及以上版本的 STRUCT 或 ARRAY)时,结构中所包含的位数即为可复位的最大位数。例如,如果指定值“20”且结构中包含 10 位,则仅置位这 10 个位。如果指定值“5”而结构中包含 10 位,则仅置位 5 个位。
指令“SCALE:缩放”和“UNSCALE:取消缩放”(S7-1500)
TIA Portal V13 SP1 中,该指令对限制条件(LO_LIM> HI_LIM)的响应与 TIA Portal V14 中的不同。
在版本 V13 SP1 中,下限大于上限时,将显示一条错误消息。
在 V14 及更高版本中,允许下限值大于上限值,输入值的结果将进行反向操作。
在 S7-300/400 系列 CPU 中,该指令通常可对输入值结果进行反向缩放。
固件版本 V1.8.1 及以上版本中,PLC 数据类型 (UDT) 中未使用的位
标准存储区中 PLC 数据类型未使用的各个位由系统占用或覆盖。例如,包含 4 位的 PLC 数据类型。
固件版本低于 V1.8.1 时,任何时候都不能使用 PLC 数据类型的未使用位。
固件版本为 V1.8.1 及更高版本时,即使只使用 4 位,所有位都将被占用或覆盖。
SCL (S7-1200) 固件版本 V4.2 及以上版本中,数据类型显式转换
如果固件版本低于 V4.2,在 SCL 中对数据类型 SINT/INT/DINT/REAL_TO_STRING/WSTRING 进行显示转换时,字符串将采用右对齐方式传送并在填充时使用前导空格。
示例:REAL_TO_WSTRING(12) = ' 1.200000E+1'
对于 TIA Portal V13 及以上版本,在 SCL 中对数据类型 SINT/INT/DINT/REAL_TO_STRING/WSTRING 进行显式转换时,字符串将显示前导符号并采用左对齐方式传送。
示例:REAL_TO_WSTRING(12) = '+1.200000E+1'
SCL:数据类型为 (W)STRING 的块参数的 EN/ENO 机制 (S7-1200/1500)
在 TIA Portal V14 及更高版本中,运行过程中传送数据类型为 (W)STRING 的块参数时,将检查参数是否截断。当形参和实参的长度与声明的长度不符时,可能会发生参数截断。在运行过程中,如果目标参数的声明长度小于接收的 (W)STRING 参数长度,则截断 (W)STRING 参数并将使能输出 ENO 设置为“FALSE”。
如果在用户程序中评估使能输出 ENO,则程序的语义可能会发生更改。
在优化块和标准块之间转发 STRING 参数 (S7-1200/1500)
在 TIA Portal V14 以下版本中,在优化块和非优化块之间传送 STRING 参数时不会传送该参数的长度信息。即,在 STRING 参数的后续处理中,无法通过 ENO 机制判断访问错误。即使发生访问错误,使能输出 ENO 的值也将为 TRUE。
在 TIA Portal V14 及更高版本中,将传送 STRING 长度信息。因此,可通过 ENO 机制监视访问错误。如果在用户程序中评估使能输出 ENO,则程序的语义可能会发生更改。
数据类型为“STRING”或“WSTRING”的常量的长度声明
局部常量和全局 (W)STRING 常量不支持长度声明。如果用户程序中包含有长度声明(如,“MyStringConst [7]”),则在升级时将自动移除。但这种更改不会对程序的语义造成影响。
HW_ANY 的基本数据类型从 WORD 变更为 UINT
硬件数据类型“HW_ANY”用于标识所有硬件组件,如模块。在 V14 版本中,“HW_ANY”的基本数据类型从 WORD 变更为 UINT。升级为 V14 后,为数据类型为“HW_ANY”的参数指定一个确定的 WORD 常量(如 W#16#1)或指定 WORD 数据类型的变量时,可能会发生编译错误。
此时,需更改常量的符号(如,更改为 16#1)或将变量的数据类型更改为 UINT。
块注释的长度
在 TIA Portal V14 及更高版本中,块注释的长度不得超过 32767 个 Unicode字符。
指令“SR:置位复位触发器”和“RS:复位置位触发器”的语法检查
在“S”输入处,输入、输出、位存储器以及静态或局部数据可用作操作数。但不允许使用常量。该版本的语法检查并不会拒绝常量“0”和“1”。在 TIA Portal V14 中,对语法检查功能进行了改进。“S”输入处不再支持常量“0”和“1”。之前对此进行编译不会报错,但新版本中将接收到一条错误消息。此时,需要更改用户程序并使用支持的操作数。
ANY 指针:访问优化数据
对于 S7-1500 系列 CPU,ANY 指针只能指向“标准”访问模式的存储区。ANY 指针不允许访问优化数据。
在 TIA Portal V14 及更高版本中,ANY 指针的语法检查更为严格。新版本将拒绝访问优化数据。之前对此进行编译不会报错,但新版本中将接收到一条错误消息。
“(L)REAL”数据类型
在 64 位的 Windows 版本中,LREAL 数据类型的评估有时会与之前的 32 位 Windows 版本不同。对 (L) Real 常量值进行取整时,最低有效位可能有所不同。
尾数中的最后一位数字可能不同,大多数情况下仅对精度造成轻微影响。
如果对尾数中的最后一位数字进行评估,则转换后 STEP 7 程序的语义可能会发生变更。
IEC 定时器中的“ST”参数
IEC 定时器中的“ST”参数仅为内部使用,禁止写入。因此,在 TIA Portal V14 及以上版本中该参数不再显示。如果在用户程序中对“ST”参数进行写访问,则升级后进行编译时将显示一条错误消息。
如果与项目间工程组态进行数据交换并使用 HMI 访问“ST”参数,则首先应导出该项目,然后再将其重新导入到代理 CPU 中。只有这样,“ST”参数才不会在 HMI 组态中显示。
消息的相关值 (S7-1500)
在使用旧版本 TIA Portal 创建的项目中,可以包含不同项目语言不同结构的嵌入式相关值。不同语言中,相关值的顺序可能不同,也可能会丢失。对此种类型进行项目时,需统一相关值的顺序。具体取决于原项目中参考语言的设置。此时,建议检查所翻译的文本信息并进行相应更改。
隐式转换“DB_ANY”数据类型的块参数
使用语法 DB_ANY.%DB(B|W|D) 访问“DB_ANY”数据类型的块参数时,之前不会进行数据类型隐式转换。只是简单地将源值的位模式转换为目标数据类型。如果目标数据类型小于源数据类型,则将发生溢出,导致写入的值错误或不准确。而发生精度丢失或运行时错误时,使能输出 ENO 也不会设置为“FALSE”。
在 V14 及以上版本中,通过语法 DB_ANY.%DB(B|W|D) 进行参数传递时,将按照数据类型的隐式转换规则进行转换。请注意,升级后可能会写入不同的值,并对程序的语义造成更改。此外,发生运行时错误时,使能输出 ENO 将设置为“FALSE”。
标准访问组织块的接口
进行标准访问的组织块接口大小需至少为 20 个字节。在旧版本的 TIA Portal 中,编译过程中仅检查 OB1 接口的最小大小。在 V14 及以上版本中,将检查所有组织块的接口。之前对此进行编译不会报错,但新版本中将接收到一条错误消息。
比较 WORD 数据类型的变量与 S5TIME 数据类型的变量
在 TIA Portal V14 及以上版本中,比较 WORD 数类型的变量与 S5TIME 数据类型的变量时,两种变量都将转换为 TIME 数据类型。WORD 变量将解释为一个 S5TIME 值。如果其中某个变量无法转换,则不进行比较且输出结果 FALSE。转换成功后,将基于所选择的比较表达式进行比较。
楼主最近还看过