1200PLC数据存储的顺序
前言:我们知道,西门子1200PLC有装载存储器、工作存储器、保持性存储器和系统存储器,那数据再这些存储器中的存储顺序是怎样的呢?在学习这个知识之前,需要先了解下进制转换的概念。
进制转换
我们比较熟悉的进制有二进制、十进制和十六进制,下面首先简单说下它们之间的概念和之间的转换。
1.十进制,表示逢10进1,它的基数:'0’,'1’,'2’,'3’,'4’,'5’,'6’,'7’,'8’,'9’,例如:(255)10 = 2×10的2次方 + 5×10的1次方 + 5×10的0次方 = 200 + 50 + 5 = 255
2.二进制,表示逢2进1,它的基数: '0’,'1’,例如:(1111 1111)2 = 1×2的7次方 + 1×2的6次方 + …. + 1×2的1次方 + 1×2的0次方 = 255。西门子PLC中二进制的表示方法为:2#1111 = (15)10,它在一个字节中的存储如下所示:
3.十六进制,表示逢16进1,它的基数: '0’,'1’,'2’,'3’,'4’,'5’,'6’,'7’,'8’,'9’,'A’,'B’,'C’,'D’,'E’,'F’,例如:(FF)16 = F×16的1次方 + F×16的0次方 = 255,西门子PLC中16进制的表示方法为:16#FF = (255)10。
由于四个bit位存储的范围为[0,15],这里的'15’也就是16进制的'F’,也就是说16进制数是二进制数的四合一结果,即:2#1010 0110 = 16#A6
数据存储
上面已经介绍了二进制、十进制和十六进制之间的转换,接下来以标志位M存储器为例,讲解下数据存储的循序。通过以下思考题入手:
思考题:若MD0 = 16#A8D1B9F2,请计算MB0、MB1、MB2、MB3的值。
解析:MD0是一个双字存储区,包含四个字节和32Bit的存储,每四个bit位构成一个16进制基数,一个字节就可以构成2个16进制的基数,如下图所示:
这样就可以计算出MB0 = 16#A8、MB1=16#D1、MB2 = 16#B9、MB3=16#F2,然后将十六进制转换成二进制(可以直接通过电脑计算器转换,不需要计算),如下图所示:
最后通过PLC程序验证上述答案,如下: