西门子16进制运算(一文解释西门子大小字节)
西门子在数据结构上和其他的PLC有所不同。称为大端(Big Endian)简而言之就是如果将MW100内写入16#FF00,那么MB100写入为16#FF、MB101写入16#00。
MW100展开MB100和MB101
那MD200从高字节到低字节展开为MW200、MW202。MB200、MB201、MB202、MB203
如图所示:MD200为16#0EFF_0FEE。则MB200:16#0E、MB201:16#FF
MB202:16#0F、MB203:16#EE
所以根据上述图文描述,对于我们日常解析word类型或者DWord类型我们就可以清晰的了解到对应的Byte的类型的内容。
有上述内容铺垫后理解进制关系就会容易一些,下面来解释一下16进制和十进制的关系。
MW100等于MW120
如上图,MW100等于MW120。而MW100等于2048,其实就是MW100的第11位为ture.
MB100的第3位为1。正如注释里描述的每个位对应的都是一个数值。那么MW100的值就是由这16个位的Ture和False来决定的。
MW120显示为16进制
同样MW120显示为16#0800。也同样标识了,MB100的第三位为1。那么如何解释MW100的值是用16#0800来表示呢?
是因为16#内最大的值为16,再大就要进一位了。同时依照图片中的注释可以看到,一个Byte内,前4位就已经可以表达16了。所以MW100就需要4个值来表达。
则16#0800.中的第一个0表示为:MB100的高字节4位。第二个8表示为:MB100的低字节4位。第三个0表示为:MB101的高字节的4位。第四个0表示为:MB101的低字节的4位。
同理MD200用16进制表示为:16#0000_0000、16#FFFF_FFFF.
上述就是我给大家展示的高低字节、以及16进制和10进制的转换关系,以及实际对应关系。建议大家实际在TIA中自己实际操作一下,就会理解更深刻。
,免责声明:本文仅代表文章作者的个人观点,与本站无关。其原创性、真实性以及文中陈述文字和内容未经本站证实,对本文以及其中全部或者部分内容文字的真实性、完整性和原创性本站不作任何保证或承诺,请读者仅作参考,并自行核实相关内容。文章投诉邮箱:anhduc.ph@yahoo.com