直播课堂
HOME
直播课堂
正文内容
PLC编程元件V是什么 PLC的M究竟是什么,今天就来认识它
发布时间 : 2024-10-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的编程方式。这么香干吗要放弃!

专业讲解:PLC的寻址和编程元件

一、寻址

就是寻找操作数的存放地址。大部分指令都有操作数,而寻址方式的快慢直接影响到PLC的扫描速度。了解了寻址方式也有助于加强对指令功能特别是功能指令的执行过程的理解。单片机,微机中的寻址方式较多,而PLC的指令寻址方式相对较少,一般有下面三种:

1、直接寻址

操作数就存放在数据的地址。基本逻辑指令都是直接寻址方式。

2、立即寻址

其特点是操作数(一般为源址)就是一个10进制或16进制的常数。

3、变址寻址

这是一种最复杂的寻址方式,立即寻址和变址寻址均用在功能指令中。我们只能举例加以说明。

MOV D5V0 D10Z0

这是一条传送指令,D5V0表示操作数的地址存放在从D5开始向后偏移(V0)的寄存器中,而D10Z0表示把数的传送到D10向后偏移(Z0)的寄存器中,如果V0=K8,Z0=K10,且D13中存放的数据是K300,则指令执行结果是把D5向后偏移8个单位,即5+8=13,也就是数D13所存的数据K300送到10+10=20即D20寄存器中去。

变址方式可以使一些程序设计变得十分简短。

上面所讲的指令寻址方式的某些知识,在这门课程中虽然不会用到,但只要希望不断提高自己的PLC应用能力,就一定会用到。

二、编程元件

PLC内部有许多具有不同功能的器件,这些器件通常都是由电子电路和存储器组成的,它们都可以作为指令中操作数地址,我们把常数K/H和这些器件(又称作软元件)统称为PLC的编程元件。

三菱FX2N的编程元件可以分为位元件和字元件两大类。位元件是只有两种状态的开关量元件,而字元件是以字为单位进行数据处理的软元件。位元件有X,Y,M,S。字元件有T,C,D,V,Z,P,I,N和组合位元件。我们把常数K/H也归入字元件。

往期优秀文章回顾:

多种方法教你用PLC与变频器连接!可以说是很全面啦

相关问答

西门子m和v指令区别?

西门子S7-200系列PLC中,M和V是两种重要的内部寄存器类型,它们在功能和使用上存在显著的差异:1.存储内容侧重点不同:V寄存器主要用于存储中间变量数据,如用...

西门子plc编程梯形图中的v和M的区别?

这应该是针对S7-200CPU的编程。300及400CPU没有V存储器。从定义上来说,1、V存储器称为”变量存储器“,可以以位(Vx.x),字节(VBx),字(VWx),双字(Vx)来访问...

什么是PLC的V区啊?

DB块和M区,只有S7-300和S7-400有,M区和V区只有S7-200有,都为存储数据区,DB块可以断电保持,M区和V区为普能数据区,他们的最大存储空间取决于选用CPU。DB块和M...

PLC中字节、整数、等的用法?

拿西门子200PLC做例子,比如V存储区的数据,一个字节是8个位,字节用B表示,那么字节的地址就是VB??,比如VB100,这表示一个字节的数据,数据地址就在V存储区1...拿...

PLC编程器中POWERRUNBATT.VPROG-ECPU.E这些指示灯都来表什么?

POWER是电源指示;RUN是运行指示;BATT.V是电池电压低指示;PROG-E是通信指示;CPU.E是程序出错指示。POWER是电源指示;RUN是运行指示;BATT.V是电池电压低指示;P.....

西门子plc的v区与m区的区别?

西门子PLC中的M存储区和V存储区是两种不同类型的存储区域,它们的区别如下:1.用途不同:M存储区用于存储中间变量,例如计数器、定时器等,这些变...西...

plc里面fcv代表什么意思?

在PLC(可编程逻辑控制器)中,FCV通常是指"FieldControlVolume",即FieldControlVolume(现场控制体积)。它是一种PLC模块,用于实现...

西门子plc中mw和vw字有什么区别?

M和V都可以M0.0,V0.0,MB0,VB0,MW0,VW0;M一般习惯用于存储位,M0.0等V一般习惯用于存储字,VB,VW等M和V都可以M0.0,V0.0,MB0,VB0,MW0,VW0;M一...

plcAC110V~240V什么意思?

plc可编程控制器,其工作电源电压一般为AC110V~240V。这AC为英文的交流电缩写,其全称是:alternatingcurrent。而110v~240v意思是输入单相交流电的范围是110...

三菱PLC变址寄存器V和Z的区别?

在16位使用的时候,V和Z没什么区别,都可以对寄存器或常数进行变址或改变常数值的操作;在32位使用的时候,Z为低位。在16位使用的时候,V和Z没什么区别,都可以对...

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

QQ

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

热线

188-0000-0000
专属服务热线

微信

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