导读 8月科学教育网苏苏来为大家讲解下。dword,dwords这个很多人还不知道,现在让我们一起来看看吧!学SIEMENS PLC必须清楚Dword、Word、Byte、...

8月科学教育网苏苏来为大家讲解下。dword,dwords这个很多人还不知道,现在让我们一起来看看吧!

学SIEMENS PLC必须清楚Dword、Word、Byte、Bit、高低位的关系,你清楚吗?

这几天跟客户搞个ADS通信对接!

客户输入给我方设备通信接口是两个WORD,但是我方程序写的是一个DWORD,该怎么转换呢?

倍福的PLC没有直接word转dword的指令,要自己计算赋值,归根结底数据转换都把它看成二进制数计算,问题都能迎刃而解。

我想了两种方法:

方法1,最笨的方法,也是最简单的方法,就是把word和dword都拆分成位计算,如下,

先声明word1和word2是两个word类型;

再声明dword1是一个dword类型;

dword1.0:= word[1].0;

dword1.1:= word[1].1;

dword1.2:= word[1].2;

dword1.3:= word[1].3;

dword1.4:= word[1].4;

dword1.5:= word[1].5;

dword1.6:= word[1].6;

dword1.7:= word[1].7;

dword1.8:= word[1].8;

dword1.9:= word[1].9;

dword1.10:= word[1].10;

dword1.11:= word[1].11;

dword1.12:= word[1].12;

dword1.13:= word[1].13;

dword1.14:= word[1].14;

dword1.15:= word[1].15;

 dword1.16:= word[2].0;

dword1.17:= word[2].1;

dword1.18:= word[2].2;

dword1.19:= word[2].3;

dword1.20:= word[2].4;

dword1.21:= word[2].5;

dword1.22:= word[2].6;

dword1.23:= word[2].7;

dword1.24:= word[2].8;

dword1.25:= word[2].9;

dword1.26:= word[2].10;

dword1.27:= word[2].11;

dword1.28:= word[2].12;

dword1.29:= word[2].13;

dword1.30:= word[2].14;

dword1.31:= word[2].15;

方法2,通过二进制加法和乘法的方式计算得到,如下:

dword1:= word[1]*65536+word[2];

解读如下:

65536转换二进制是1 0000 0000 0000 0000;

word[1]*65536就是把word[1]左移16位,把这16位让给word[2];

word[1]*65536+word[2]就会组合成一个新数据,把dword[1]所以位赋值,得到dword[1]数据,完成转换。

本文dword,dwords到此分享完毕,希望对大家有所帮助。