1.2的对应关系就是这样的, plc 寄存器编号从0开始对应以前的400001,组态王还是老驱动,参见我昆仑通泰的帖子。
3的问题有可能是高低位和寄存器的偏差,还有实数的格式
一个一个说:
寄存器地址偏移1你已经看到了。
数据类型分16位,32位和64位, 分别对应1、2、4个寄存器;
word, int,unint这些是16位, real,float一般是32位, double, long 有的就是64位了,占四个寄存器,具体要看软件的说明书了。
一般整数不会有字节顺序的问题,但32位的浮点数据就有高字节在前还是高字节在后的问题了,比如十六进制表示一个浮点的“数据”是0x12345678,这是四个字节两个字, 假设(我就不去用winhex换算了但建议你用winhex理解一下浮点数的存储格式)这个十六进制数表示的是1.645,那存在两个寄存器41001和41002中,41001中存0x1234,41002存0x5678,(高字节在前)你在plc中用浮点数格式显示41001,可能是1.645, 组态王可能显示的41001浮点数可能就是一个巨大的数,因为组态王可能设的是低字节在前,他理解成0x56781234了,这个顺序一般在驱动程序里可以设置,有的是以1234,3412的格式表示的。。。。。
但这样字节顺序引起的一般差别很大,不会是865变成875.。。,或许你是和下一个数据重叠了。。。。。
不知道你理解了没,详细原因请复习微机原理-数据格式一章。。。。