描述
在STEP 7 (TIA Portal) 中,当执行扩展指令 “READ_DBL” 和 “WRIT_DBL” 时可能会在 “RET_VAL” 参数得到出错信息,它表示源 DB 和目标 DB 的数据类型是不同的,而尽管在两个数据块中使用的是相同的数据类型。在装载存储器(微存储卡)和工作存储器之间传输数据时,在以下情况会出现该出错信息。
- 当生成两个数据块时组态为 “已优化” 的块访问,且
- 在两个数据块中声明了具有相同元素数目的相同结构变量。例如数组类型 Array[1..10],且
- 编程使用同一类型的相同数目的变量
在优化的数据块访问的情况下,对数据结构的解释是不同的。如果创建数据块时用 “标准-与 S7-300/400 兼容” 组态块访问,那么上述情况不会发生。
图 01
解决方法
创建一种 PLC 数据类型,并在每一个块访问已优化的数据块访问中使用它。
图 02
数据备份注意事项
运行期间使用 “WRIT_DBL” 指令可以覆盖启动值。 CPU 从 STOP 到 RUN 的过程中,通过这种方式可以进行数据备份,而无需对 DB 块的变量做保持性声明。允许运行期间创建备份数据,且降低S7-1500 CPU 的保持性变量的使用数量。
- 使用类型相同的数据块(不管该数据块是否在装载存储器中),对 “WRIT_DBL” 指令的参数 “DSTBLK”(目标) 和 “SRCBLK” (源) 进行设置。
- 使用 “s显示监视值快照” 功能,备份 CPU 中的当前监视值。
- 当 CPU 从 STOP 到 RUN 后,如果当前值仍是有效的,可将它备份成启动值。
创建环境
本 FAQ 的图片用 STEP 7 (TIA Portal) V13+Upd 2 创建。
原创文章,作者:ximenziask,如若转载,请注明出处:https://www.zhaoplc.com/plc325779.html