研选课堂
HOME
研选课堂
正文内容
plc m指令如何编程 PLC的M究竟是什么,今天就来认识它
发布时间 : 2025-06-06
作者 : 小编
访问数量 : 23
扫码分享至微信

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的编程方式。这么香干吗要放弃!

FANUC(发那科)PMC(PLC)基础介绍27:M代码的实现方法

上一节我们介绍了译码器的使用方法,而译码器在数控机床上最常用的一个功能就是用它来制作M代码,比如冷却液的开启和关闭M08,M09,刚性攻丝M29等等。本节,我们就介绍一下M代码是如何在数控系统上实现的。

实现数控系统上M代码的制作一共只需要3步:代码译码,逻辑编程,代码完成信号输出

1、M代码译码:其实M代码译码很简单,套用固定的译码格式,然后输入我们想要制作的代码数和中间地址就可以了,见下图

M代码译码

我们只需要按照需求编辑红色方框里的内容就可以了,按照上图的内容,在加工程序中执行M03时R0.0接通,执行M4时R0.1接通,执行M5时R0.2接通......,执行M08时R0.6接通,执行M09时R0.7接通。

同样的格式,如果我们想要制作M10~M17,只需要重新指定代码号和译码地址就可以了,见下图

M代码译码

2、逻辑编程:当我们加工程序中执行到M代码时,代码所对应的中间地址就会接通,利用这个接通的中间地址,我们就可以完成PLC的逻辑编程。比如我们准备用M08来控制冷却液的开启,用M09来控制冷却液的关闭,冷却液的输出地址是Y0.0,那么冷却液的M代码控制程序如下:

M代码使用

3、M代码完成信号输出:M代码制作和逻辑编程都做好了之后,我们还要给系统一个M代码的完成信号,如果没有完成信号,那么加工程序就会一直停留在M代码行,而无法继续执行后续程序(如果发现程序光标停留在某个M代码行而不继续向下执行时,那一定是这个M代码的完成信号没有接通)。完成信号的输出,我只需要将G4.3接通即可。

M代码完成信号

将以上三部分的PLC程序组合到一起,就是一个完整的M代码制作程序。

PS:在进行M代码译码时,建议大家一定要按代码数字顺序排列号,避免译码地址重复造成PLC的逻辑错误。

相关问答

三菱plc编程m指令?

轴1定位完成---M代码输出---轴2定位启动其次,在定位数据的最后一列,就是设置M代码的地方,每一个定位数据都可以设置一个M代码,M代码可以.轴1定位完成---M代...

plcm端怎么接?

1.1M为输入端的公共端子,与DC24V连接,有PNP、NPN两种方式。2.PNP:1M接负,N和L1为交流电的输入端子,接AC120V~220V,给PLC供电。3.NPN:1M接正,M和L...

西门子系统m指令的用法?

1西门子系统的M指令是一种控制PLC的命令。2M指令可以用于启动、停止、暂停、复位PLC系统中的某些功能模块,也可以用于设置和清除内部寄存器的状态。3另外,M...

plc中m是什么意思?

PLC中M是Memory的英文缩写,指PLC内部存储器。它由一系列的存储单元组成,用来存储PLC运行时所需的数据和参数,如I/O信号、定时器、计数器、开关量等的状态信息...

新代plc怎么自定义m代码?

PLC的M代码是指机器人控制程序中用于控制运动轴和外部设备的语句。不同品牌和型号的PLC可能略有不同,但通常可以通过以下步骤自定义M代码:打开PLC编程软件,并...

plc中的m有什么用?

逻辑运算:M寄存器可以用于存储逻辑运算的结果,如与门、或门、非门等。通过将输入信号与M寄存器进行逻辑运算,可以得到所需的输出信号。计数器和定时器:M寄存...

【西门子plcs7-200中I、Q、M、SM、T、C、V、S、L分别指什么?...

[最佳回答]输入继电器I输出继电器Q通用辅助继电器M特殊继电器SM变量存储器V局部变量存储器L顺序控制继电器S定时器T计数器C模拟量输入映像寄存器AI模拟量输出...

plc输出m和q的区别?

Q线圈是输出过程映像寄存器,简单的说,就是数据传送给输出模块的,再驱动外部负载,而M是位存储器,是在程序执行过程中存放中间结果或保存数据用,可以理解成为...

西门子s7-200plc存储器位m的用法?

M作为中间存储器,可以以字节和字的形式进行数据处理。以位概念时,例如M0.0可当做中间继电器用。只是中间继电器使用时次数受触点数限制,而M存储器可无限制使用...

Plcm技能专长怎么写?

在撰写Plcm技能专长时,应遵循以下原则:突出重点:选择与职位匹配的技能并进行强调。量化成就:使用具体的数据、数字或例子来证明你的技能水平。使用动词...

 彩信广告  南京南瑞集团公司 
王经理: 180-0000-0000(微信同号)
10086@qq.com
北京海淀区西三旗街道国际大厦08A座
©2025  上海羊羽卓进出口贸易有限公司  版权所有.All Rights Reserved.  |  程序由Z-BlogPHP强力驱动
网站首页
电话咨询
微信号

QQ

在线咨询真诚为您提供专业解答服务

热线

188-0000-0000
专属服务热线

微信

二维码扫一扫微信交流
顶部