打开APP
userphoto
未登录

开通VIP,畅享免费电子书等14项超值服

开通VIP
PLC的M究竟是什么,今天就来认识它!
跟我学PLC
114篇原创内容
公众号

最近几天论坛火热,有大虾表示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的编程方式。这么香干吗要放弃!

文章来源:工控论坛

本站仅提供存储服务,所有内容均由用户发布,如发现有害或侵权内容,请点击举报
打开APP,阅读全文并永久保存 查看更多类似文章
猜你喜欢
类似文章
【热】打开小程序,算一算2024你的财运
单片机的一些面试题整理
51单片机地址指针及其应用
8051系列单片机
51单片机的内部硬件结构(CPU工作原理,储存器结构,51,52和89C51,89S51型号对比)
单片机原理及接口技术复习提纲
试题6
更多类似文章 >>
生活服务
热点新闻
分享 收藏 导长图 关注 下载文章
绑定账号成功
后续可登录账号畅享VIP特权!
如果VIP功能使用有故障,
可点击这里联系客服!

联系客服