下图来看数据存储区究竟有些啥,请把稳看M区:
看了上图可能明白了,M存储区在数据存储区,数据存储区又在RAM中。RMA长啥样?

下图左上那个蜈蚣状的CY62256便是西门子S7-222CPU的RAM。
便是块集成电路,我还是看不懂!
那就“拆”开给你看。下图便是内部构造:
没错,它便是一堆“房间”,32k字节。S7-222CPU利用了2k字节的存储空间,不管你是M还是T还是C,还是V,通通都在这里面。
那么如何在这一堆房间里访问找到我须要的那个她呢?看上图中A0---A14,这便是地址线,便是访问这些房间的地址,通过这些房间就能访问M、T、C、V等等。
那么M和V有什么差异吗?半毛差异都没有!
除了把M区放到MCU高速缓存中的PLC构造,像西门子S7-200系列这样的都是放到一个存储芯片中的。
文章开头说过,T跟M还有点不一样。对的,由于有些PLC的有些T是由硬件产生的,那便是集成在MCU里的硬件定时器,比如西门子S7-300就有硬件定时器。那么C呢?C也有硬件计数器和软件计数器之分,硬件计数器同样是由集成在MCU里的硬件来完成的。当然,PLC已经做好了,把这些硬件T、C的数据都映射(复制)到RAM里了,我们直接访问RAM就可以了,不用关系那些硬件T和C。当然,如果你喜好,PLC也是有指令让你能够直接访问这些硬件计数器的,比如台达就可以直接去读硬件计数器确当前值。
说了这么多如何证明M和V都是在一个芯片里呢?
那便是PLC供应了绝对地址访问功能,比如寄存器寻址,一个数据寄存器里存放的数据是一个地址数据,对的这个地址数据便是绝对地址,便是上图A0-----A14这个地址。再来看看国货之光汇川的PLC对存储空间的定义,下图:
这个就更清晰了,M和D有差异吗?半毛差异都没有!
实在还是有差异的,唯一的差异便是M区能让我们很方便地进行位寻址。
那么不用M可以吗?当然可以!
不过,既然M和D(V)没有差异,我们为什么不用?我也不知道!
那么某工友说的所谓标准化编程究竟是什么呢?我没买过他的资料,厂家的手册难道不喷鼻香吗?
从他的描述中,我的理解是,哪里是不用什么M、T,估计他鼓吹的只是全部用局部变量,不用全局变量,这样程序在进行移植的时候不用关心存储空间的分配,直接交给编程软件的编译系统来完成。M也可以定义为局部变量呀!
为什么不可以用?由于有些利用通用MCU的PLC,位寻址能力很弱,位寻址的韶光比字寻址韶光还长!
那么如何做到不用M呢?
很大略,你把V(D)数据地址当成一个M来利用就可以了。但大厂PLC利用的CUP都是自己设计的,保留了很强的位寻址和操纵能力。那么放弃利用M和T有实际意义吗?只要大厂还供应直接的位寻址和操纵能力,就没有必要放弃!
特殊是梯形图,天生的就非常适宜位寻址,用M的编程办法。这么喷鼻香干吗要放弃!