作者 | 主题 |
---|---|
疯狂的馒头 侠客 经验值: 668 发帖数: 49 精华帖: 0 |
楼主 2017-09-19 11:57:20
主题:求教200的程序数据问题 |
渔明鱼工 至圣 经验值: 24191 发帖数: 2064 精华帖: 80 |
1楼 2017-09-19 13:08:23
主题:回复:求教200的程序数据问题 因为你的VD670是带符号位的,那么数值最大转换成VW只能到32767,超过此值就会出错,如果 VD670是不带符号位的那么数值最大转换可到65535。 无符号:WORD数据:0-65536;
网鱼能够改善伙食,还能释放工作中的压力。
|
LJCLWYF 侠圣 经验值: 3599 发帖数: 564 精华帖: 0 |
4楼 2017-09-19 16:28:48
主题:回复:求教200的程序数据问题 “S7-200PLC中,如何将大于32767的整数转换成正实数?”的链接http://www.ad.siemens.com.cn/club/bbs/post.aspx?a_id=1173976&b_id=25&s_id=0&num=11#anch
学无止境
|
yanxiao 至圣 经验值: 27029 发帖数: 11992 精华帖: 45 |
5楼 2017-09-20 21:23:11
主题:回复:求教200的程序数据问题 VD670=50000? 不用转换,只要不超出16位的表达范围,拿了VW672,走人。 |
yanxiao 至圣 经验值: 27029 发帖数: 11992 精华帖: 45 |
6楼 2017-09-20 21:36:09
主题:回复:求教200的程序数据问题 简单问题弄复杂了。 I_DI的实质是什么?对有符号数,值没有变,只是把符号位向高位扩展。 对于无符号数,16位变32位,没有符号需扩展,所以高16位直接写0。 反过来,如果一个32位的数,其数值范围没有超过16位的表达范围,直接取低16位就行了。 你用转换指令,只是偷懒,让系统帮你做数值范围检查。 |