发布于 2011-10-23 14:04:26
7楼
举个例子吧,
假如DB1块中你引用了UTD1 、UDT2,在DB中UDT1占得字节为2,UDT2也占用了2字节。此时UTD1开始的地址是0.0 而UDT2起始地址为2.0。
现在你要修改UDT1,修改后UDT1大小为3字节了。全部更新后,UDT2的此时的起始地址变为了3.0。
当然PLC程序里引用的都是内存地址,他并不能识别UDT2的起始地址已经变为3.0,还是从2.0开始读,这样就会产生逻辑上的错误,所以那样的的话你PLC程序的每个引用也必须更改,如果UDT1不止UDT2还有UDT3、4、5、6......那更新起来是相当麻烦的,所以我建议重新建一个UDT,而不是去重建DB数据块,直接在DB块最后引用新建的UTD,前面错误的先不要管,当然这样会浪费些内存。