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)的使用方法
1.辅助继电器[M]
可编程控制器中有多个辅助继电器。这些辅助继电器的线圈与输出继电器相同,是通过可编程控制器中的各种 软元件的触点来驱动。 辅助继电器有无数的电子常开触点和常闭触点,可在可编程控制器中随意地使用。但是,不能通过这个触点直 接驱动外部负载,外部负载必须通过输出继电器进行驱动。
(1)辅助继电器的编号
辅助继电器(M)的编号如下表所示。(编号以10进制数分配)
*1. 非停电保持区域。根据设定的参数,可以更改为停电保持(保持)区域。
*2. 停电保持区域(保持)。根据设定的参数,可以更改为非停电保持。
*3. 关于停电保持的特性可以通过参数进行变更。
*4. 选件的电池,使用时,可通过参数变为停电保持(电池保持),但是,不能设定停电保持范围。
2.功能和动作实例如下图:
(1)一般用
当可编程控制器的电源断开后一般用的辅助继电器都变为OFF。希望根据 停电之前的状态进行控制时,就使用停电保持(保持)用辅助继电器。
(2) 停电保持用
如在可编程控制器的运行过程中断开电源,输出继电器和一般的辅助继电器全部都变为OFF。 当再次上电时,除去输入条件为ON的以外,都为OFF。但是,根据控制对象不同,也可能出现停电之前的状态 被记住,在再次运行时重新再现的情况。这样的情况下,使用停电保持用辅助继电器(又名保持继电器)。
FX3U·FX3UC可编程控制器的情况下,可以通过可编程控制器内置的电池执行软元件的停电保持。
FX3G·FX3GC可 编程控制器的情况下,可以通过可编程控制器内置的EEPROM执行软元件的停电保持。使用选件的电池时,通过 电池可以停电保持一般用软元件的一部分。
上图中是使用 M600(停电保持用软元件 )自保持动作的梯 形图实例。 在该梯形图中,X000为 ON,M600动作的话,X000即使开 路,M600也能对动作进行自我保持。 由于 M600 是停电保持用的软元件,即使由于停电导致 X000 开路,当再次运行的时候,M600 会继续之前的动 作。但是,再次运行的时候,如X001的常闭触点开路, M600就不会动作。
另一图 使用了置位、复位指令梯形图。
(1) 停电保持用的用途实例
希望再次起动时,前进方向与停电前的前进方向相同。
X000=ON(左限 )→M600=ON→向右驱动→停电→平台中途 停止→再次起动 (M600=ON) → X001=ON( 右限 ) → M600=OFF、M601=ON→向左驱动
(2) 将停电保持专用继电器作为一般用继电器使用的方法 将停电保持专用的辅助继电器作为一般用的辅助继电器使用时,请在程序的开头步附近设置如下图所示的 复位梯形图。
相关问答
plc中m是什么意思?
PLC中M是Memory的英文缩写,指PLC内部存储器。它由一系列的存储单元组成,用来存储PLC运行时所需的数据和参数,如I/O信号、定时器、计数器、开关量等的状态信息...
三菱PLC字符M表示什么意思?
在三菱PLC中,字符M通常表示内部的继电器(Relay)或存储器(Memory)地址。M地址通常用于存储和控制程序中的逻辑状态,例如开关状态、计数器值、定时器值等。M...
西门子plcm指令运用详解?
M指令是什么指令,S7-200和300里有M存储区不知道你所说的M指令具体是指什么M指令是什么指令,S7-200和300里有M存储区不知道你所说的M指令具体是指什么
PLC上的L+M接什么?模拟量模块的输出点是什么?
西门子S7-200模拟量输出模块有三种:EM231、EM232、EM235,电源有三个端子,分别为M、L+和地,其中地接地线,L+和M分别接24VDC的正极和负极。西门子S7-200模拟量...
plc输出端lm怎么接?
PLC输出端LM是指输出端中的两个极性,L表示输出端的正极,M表示输出端的负极。在实际接线中,需要将L端接入控制对象的正极,M端接入控制对象的负极,如灯泡或电...
三菱plc编程m指令?
轴1定位完成---M代码输出---轴2定位启动其次,在定位数据的最后一列,就是设置M代码的地方,每一个定位数据都可以设置一个M代码,M代码可以.轴1定位完成---M代...
plc内部继电器m点如何定义?
在PLC(可编程逻辑控制器)中,M点是一个内部的继电器,用于控制和判断逻辑运算。M点代表"中间继电器"(MiddleRelay)或"内部继电器"(Inter...
plc输入m和输出l的区别?
PLC的M端和L端是DC24V的接线端子,M端子接DC24V24V-,L端子接DC24V24V+,M端和L端之间电压为24V。同时M端也作为输入输出的公共端。输入端一般有I、X、E等标志...
西门子PLC电源模块上的3组L+、M是干嘛的?
PLC的电源一般都用两块24V电源模块来供电,模块1供电给PLC的CPU模块、输入输出模块的工作电源。模块2专门用于信号供电。24伏正供给现场信号开关,经开关后节输...
新代plc怎么自定义m代码?
PLC的M代码是指机器人控制程序中用于控制运动轴和外部设备的语句。不同品牌和型号的PLC可能略有不同,但通常可以通过以下步骤自定义M代码:打开PLC编程软件,并...