发布于 2011-07-18 14:32:23
12楼
TO:“老学童”大侠
首先DBD是32位,DBW是16位的
一个32位整数的范围(十进制有符号数字)为-2147483648到2147483647
一个16位整数的范围(十进制有符号数字)为-32768 到32767
在S7-300中当把一个DBD传送给DBW时实际上传送的是DBD的低16位,高16位为被舍弃,意味着当DBD内的值大于16位可表示范围的时候是不能获得正确的值的(除非这是你想要的)
一些编程语言(或者不同PLC)对语法及数据类型检查较松,如果你非要这么做自己就得保证结果的正确性。数据匹配只是更容易保证结果的正确性,以避免可能出错的可能性。
在使用一个变量或地址之前我想首先应该确定的就是它可表示的范围及你所使用的范围,以及数值超出范围的对策吧。
一切皆有可能