PLC的M究竟是什么,今天就来认识它
最近几天有某工友表示PLC编程中不用M和T。我发现大家有些观点有误,这段时间比较忙,但忍了很久,实在忍不住了,抽半天时间写篇文章。用不用先不说,首先得知道M和T究竟是什么?T有点特殊,先不谈,把M搞清楚了T就容易搞清楚。如果学过单片机或计算机原理或嵌入式等硬件课程的就不用看了,因为这是非常基础的概念,我今天不用电子技术的语言来说,所以语言会不太严谨,主要目的是用通俗易懂的语言让搞PLC的人听懂,请工友们手下留情不要把我脸打肿了。先说说我接触编程的过程,我是学硬件的,编程最先学的是51单片机和X86汇编,然后学C/C++,最后才学的PLC,编程掌握不好,即使到今天我也无法准确阐述什么是面向对象!先自己打脸,但这不影响我用PLC做项目。其实PLC是最像单片机的,完全就是单片机的硬件升级软件简化版本,扯远了!下图是西门子S7-200手册里关于存储器结构的介绍。左边这个RAM就是今天的主角。
下图是对数据存储器的定义:
下图来看数据存储区究竟有些啥,请注意看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的编程方式。这么香干吗要放弃!
PLC辅助继电器M与状态继电器S有哪些区别?你知道吗?
PLC辅助继电器M与状态继电器S有哪些区别?
PLC中辅助继电器M和状态继电器S的区别主要是:
辅助继电器M和状态继电器S都是PLC内部的软继电器,只有0和1两个判断状态,但是他们的功能和使用位置却完全不一样。
1、辅助继电器M:
辅助继电器M相当于实践当中一般控制电路的中间继电器,它只是在PLC内部程序(梯形图)中使用,不能对外驱动外部负载,在PLC梯形图用于逻辑变换和逻辑记忆作用。辅助继电器M有通用辅助继电器、断电保持辅助继电器M和特殊辅助继电器M,辅助继电器M接受外部的信号也可以接受内部其他软元件的控制信号来控制其他部分,M的触点(常开、常闭)可以无数次被使用,但是线圈却只有一个,这是常用的辅助继电器M;还有特殊用辅助继电器M,一种只用它的触点,一种只用它的线圈。
2、状态继电器S:
状态继电器S一般都是用在步进状态编程SFC内,一个状态一般用一个状态继电器,只用S的线圈而不是触点,PLC编程时一般用指令STL+状态继电器S的触点符号就表示进入这个继电器代号的状态,所以在编程的电路中不用触点。
状态继电器S如果不用于步进指令编程SFC,它也可以当作辅助继电器M使用,使用方法和辅助继电器M一样。
相关问答
你好,请问plc中的m在编程中起什么作用?可否详细解说一下?
给你举一个简单的例子吧X1对应一个按钮A(点动按钮)X2对应一个按钮B(点动按钮)Y1对应一盏灯要求:1、A,B两个按钮串联。(与的关系)2、按下A,松手,再...怎...
plc中M是什么指令?
PLC中的M指令是“状态指令”,用于检测指定位置上的内存单元是否有特定条件发生。M指令可以作为一个数据检测和逻辑控制语句,这意味着它可以改变PLC的运行流程,...
plc里的m什么意思?
plc里的m的意思是状态寄存器。状态寄存器又名条件码寄存器,它是计算机系统的核心部件——运算器的一部分,状态寄存器用来存放两类信息:一类是体现当前指令执...
plc中m是什么意思?
PLC中M是Memory的英文缩写,指PLC内部存储器。它由一系列的存储单元组成,用来存储PLC运行时所需的数据和参数,如I/O信号、定时器、计数器、开关量等的状态信息...
plc中的m有什么用?
逻辑运算:M寄存器可以用于存储逻辑运算的结果,如与门、或门、非门等。通过将输入信号与M寄存器进行逻辑运算,可以得到所需的输出信号。计数器和定时器:M寄存...
编程PLC时,X.Y.M.T.C.S各代表的是什么?
按照一般PLC的规则理解,以上标志均出现在位操作指令中:X:输入接点,有的PLC用"I"标志;Y:输出接点,也可指输出线圈,有的PLC用"Q"标志;M:内...
PLC存储器中M和V的区别?
V区叫做变量存储区,M区叫位存储区,并且M区在每个CPU种类下都只有32个字节的存储空间;而V区有几千到上万个字节的存储区。也就是说编程的时候你使用M32.0就是非...
【西门子plcs7-200中I、Q、M、SM、T、C、V、S、L分别指什么?...
[回答]输入继电器I输出继电器Q通用辅助继电器M特殊继电器SM变量存储器V局部变量存储器L顺序控制继电器S定时器T计数器C模拟量输入映像寄存器AI模拟量输出...
西门子300PLC中,MB0,MB1,MW1,MW0,是什么意思?_作业帮
[最佳回答]M是位地址.比如M0.0,M0.1等.MB0是字节地址,包括8个位地址,从M0.M0.7.MB1的8个位地址,从M1.M1.7.MW0是字地址,包括MB0和MB1,即从M0.M1.7共16个位地.....
三菱plc型号标识中“m”表示?
三菱PLC的M我认为是输出“Memory即中间触点”为何种输出,即R(继电器)、T(晶体管)、S(可控硅)三菱PLC的M我认为是输出“Memory即中间触点”为何种输出,即R(继...