直播课堂
HOME
直播课堂
正文内容
plc编程M变量 PLC的M究竟是什么,今天就来认识它
发布时间 : 2025-06-27
作者 : 小编
访问数量 : 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的编程方式。这么香干吗要放弃!

PLC变量表的使用,变量的声明、选用、显示、定义、更改、保持性

本篇我们以西门子S7-1200为例来介绍PLC变量表的使用。在S7-1200 CPU的编程理念中,特别强调符号寻址的使用,在开始编写程序之前,用户应当为输入、输出、中间变量定义相应的符号名,也就是标签。具体步骤如下:

PLC变量表

一、在PLC变量表中声明变量,在项目视图的项目树中,打开PLC1下的PLC变量文件夹,双击打开PLC变量表,在PLC变量表中单击第一行的名称列,输入变量符号名,例如输入start,按回车键确认。

打开变量表

在数据类型列中,选择数据类型为布尔型,在地址列中,输入地址I0.0,在注释列中根据需要输入注释,如电动机启动按钮,这样我们就完成了对start变量的声明。按照同样的方法声明stop变量和motor变量。

声明变量

二、在程序编辑器中选用和显示变量,在项目树中打开PLC1下的程序块文件夹,双击Main主程序,打开程序编辑器,在程序段1中拖放触点和线圈指令,编写电动机起保停控制程序。单击常开触点,在出现的输入框中点击旁边的方框,就会出现已定义PLC变量的下拉列表,从中选择start,按照同样的方法对所有指令完成操作。

选用变量

选中工具栏中启动或禁用绝对操作数按钮,在旁边的下拉列表中选中符号选项,则程序中只显示变量符号。 如果选择绝对选项,则程序中只显示变量地址。如果选择符号和绝对选项,则程序中同时显示变量符号和地址。

显示变量

三、在程序编辑器中定义和更改PLC变量,选中常开触点start。单击鼠标右键,选择重命名变量,在弹出的对话框中,将名称列的start改为M_start,单击更改按钮,完成输入,选中常闭触点stop,单击鼠标右键,在弹出的菜单中选择重新连接变量,将地址列的I0.1改为I0.2,单击更改按钮,完成输入。

重命名变量

在程序段2中插入常开触点,输入操作数tag1,按回车键确认。单击鼠标右键,在弹出的菜单中选择定义变量,在部分列中选择Global Memory,在地址列中输入M0.0数据类型选择为布尔型,单击定义按钮,完成输入。单击编辑栏中的PLC变量,回到PLC变量表。可以看到在程序编辑器中,对PLC变量的定义和更改已自动添加到PLC变量表中。

定义变量

四、设置PLC变量的保持性。在PLC变量表中可以为M存储器指定保持性存储区的宽度,在工具栏中单击保持性按钮,打开保持性存储器对话框。 在文本栏中输入10,表示从MB0开始的十个字节为保持性存储区,单击确定按钮。编址在该存储区中的所有变量被标识为有保持性,在PLC变量表的保持性列表中设置的复选标记,可以识别变量的保持性设置,如tag1变量的保持性。

变量保持性设置

本篇我们介绍了西门子S7-1200 PLC变量表的使用,学习了变量的声明、选用、显示、定义、更改、保持性设置等,想要学习更多PLC知识,欢迎持续关注本号文章!如需视频教程或PDF文档等学习资料可在本文留言,我会免费赠送给你,我们共同学习提高!

相关问答

plc中间继电器m的用法?

M是最常用的辅助继电器,其只有OFF(0)和ON(1)两种状态,和通常我们接触到的中间继电器一样,又分为常开触点和常闭触点常开触点和常闭触点是相反的两个触点...

plc中间变量怎么回事?

PLC中间变量就是我问编写PLC程序时,用于记录程序运行状态或者程序运行结果的寄存器。一般低端PLC的中间变量存储器,分为M区和D区,M区下班用于存储位(BOOL)变...

西门子PLC编程,存储区域IQMLD分别是什么意思?

I:输入地址,对应输入模块通道q:输出地址,对应输出模块通道M:辅助寄存器地址L:局部变量地址,相当于程序中的内部变量地址D:应该对应的书DB数据块地址。I:...

【C++的m_a,m_是申明变量的意思吗?申明a和b是变量?】作业帮

[最佳回答]一般m_开始的变量表示的是类的成员变量,

组态王变量怎么和plc输入输出关联起来?

通过设置辅助继电器M,即可实现和组态王对应,假设,我们现在组态王需要做一个点,变量名为“启动”,那么,我们定义变量属性时,就可以选择M继电器,同时,在S7...通...

plc梯形图中的各符号,_作业帮

[最佳回答]不同的PLC符号表示不一样!例如在三菱PLC中X表示输入继电器;Y输出继电器;D数据存储器;M表示辅助继电器;T时间继电器;C计数器.在西门子中:I表示输入继...

在linux变量中的m含义?

在Linux变量中,m通常表示“兆”,即1,000,000字节或1,024*1,024字节。这是计算机存储容量的常见单位之一,也称为“MB”或“MegaByte”。在Linux中,m通常用...

西门子200PLC的内部寄存器V和M有什么区别?

V是内部变量存储器,多用于保存数据;M是内部辅助继电器,多用于位控制。这个并没有什么重要的区分,多数时候可以互用V是内部变量存储器,多用于保存数据;M是内部...

在plc1200中如何在db数据块中设置M区的启动值?

DB块的中对应的变量必须要保证的确是传送到了M区的变量中才可以,这是你要检查的重点。DB块的中对应的变量必须要保证的确是传送到了M区的变量中才可以,这是你...

西门子plc中的m0.5是什么意思?

m是中间变量,相当于中间继电器的那种开关量变量。这种变量从0开始,逢8进位。第一组就是从0.0~0.7的m是中间变量,相当于中间继电器的那种开关量变量。这种变...

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

QQ

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

热线

188-0000-0000
专属服务热线

微信

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