在西门子s7-200PLC中,VW寄存器是整数,有符号只能是-32677~+32678,无符号可以存储到65536。
I_DI是把16位字扩展到32位字,即VW到VD寄存器。
注意它是带符号扩展。
如:
已经超越有符号表示的范围,如果以有符号表示,则为-23787。
使用I_DI直接扩展:
而指令中又没法指定符号操作,它默认是有符号操作。
只能使用MOVW搬移指令,将VW1022移送到VW806,将VW804移送0。
这样就正常了。
注:S7-200的寄存器使用大端数据,就是高位在低寄存器,低位在高寄存器。