读入的是8位字节的无符号整数,要求输出按32位无符号整数的形式。
S7200是按反高低字节直接的方式处理的,问题是具体是按那种?
有一下几种:将连续4 个单元(x1,x2,x3,x4),变换为(x4,x3,x2,x1)后,作为32 位数值处理
将连续4 个单元(x1,x2,x3,x4),变换(x3,x4,x1,x2)后,作为32 位数值处理;
将连续4 个单元号(x1,x2,x3,x4),变(x2,x1,x4,x3)后,作为32 位数值处理;
请各位高手指点,不胜感激!
问题补充:
我的意思是变量存储区定义的是VB,但是要求经过一定的处理方式以后,输出的是双字32位。
假设连续的4个单元是(X1,X2,X3,X4)输出是按那种方式?
现在有3种方式供选择,分别是(X4,X3,X2,X1);(X3,X4,X1,X2);(X2,X1,X3,X4)。
请问应选择哪一种?
最佳答案
存储时确实高低字节关系是反的,如果按字节去考虑编程的话会很费时间,而且出错的概率较大,其实我们直接存取数据就可以了,不用考虑实际的存储方式.
我建议你这种问题按如下方法解决:先把字节变为16位整数,再转化成32位双整数,即可输出或存储,不用考虑具体地址也不会出错: BTI
ITD
把转化后的D类型数据保存,如MD100
输出时直接调用MD100即可
虽然存储时存储的高低字节对应关系反了,但是你的输出肯定是正确的。
我说的您能理解吗,不行的话邮件联系lewanwan@sohu.com
提问者对于答案的评价:
谢谢
原创文章,作者:ximenziask,如若转载,请注明出处:https://www.zhaoplc.com/plc359223.html