2024年3月23日发(作者:归诗翠)
M区和V区的差别
M区只有32Byte,32x8=256位,用一个字节即可寻址,而V区的位只少要两个字节才能寻址
一位,请比较:
LDM0.0//2byte
LDV0.0//3byte
LDV511.0//3byte
LDV512.0
//5byte!
另外,V区有断电永久数据保存能功(数十年),M区断电只有短暂的保存能力
(几天)
两者没有本质区别,除了S7-200提到的一点外,还有就是M区容量小,也只有前14字节
可以永久保存,而V区通过程序任何子节都可以永久保存(SM31,SM32).
另外,您提
到的m0.0-m0.7,不完全对,实际上M区都可以用于那个功能,只是数量是8位,应该改
为Mx.0----Mx.7。
只有M区的前14字节可以通过设定后CPU自动永久保存。V区不用SM31SM32是不可
能实现永久保存的,设定的是靠电容保持。
这个概念我在96年就有了,现在变了吗?
不会的,我想还是您错了。
万泉河:确认一下。
不针对任何人,我想对于一些基
本的概念,大家应该有一个一致的、明确的结论。
V区和M区一样可以做永久保存,V区和M区一样可以当Byte/Word/DWord/bit,M区32
字节256位,不多不少,位地址合一个字节长,所以把它当做位变量时,可以达到较高的
编码效率。
所以M区有中间继电器的说法。
至于TD200使用M区来记录
KEY,也是因为它适合做位变量。
还有不同意见吗?
只有输入输出口(I 和Q)才可以强制的,M和V存贮器中值可以用状态表中的“写入”工
具来更改其值。
1、V和M没有变质的区别,地位几乎可以互换;
2、V多而M少。M少可以使指令码短,存贮和执行效率提高。
3、M有规定的一些使用,比如MB0-MB13如设为保持的话,在断电时是直接写eeprom
的,属永久型保持,除此之外的保持是临时的由超级电容或电池保持的。
4、V容量大,使用V比使用M指令代码要长,当然时间上也费一些。同样的V区,我
发现也有分区的情况,V0-V511是一块,相应的指令代码就比V512以上的要短,但是执行
时间上是否有区别,没有考证。所以经常使用的V变量,应放在V511之前,可以缩短指令
代码的长度。
5、V和M由于符号上的区别,习惯上把它们的用途作一些分类,比如M主要用来作位
变量,这样程序的可读性就更好。
这应该是针对S7-200 CPU的编程。300及400 CPU 没有V存储器。
从定义上来说,
1、V存储器称为”变量存储器“,可以以位(Vx.x),字节(VBx),字(VWx),双字
(Vx)来访问,您可以用V存储器存储程序执行过程中控制逻辑操作的中间结果,也可以
用它来保存与工序或任务相关的其他数据。
2、M存储器称为”状态存储器“,可以用位存储区作为控制继电器来存储中间操作状态和控
制信息。当然也可以如V存储器一样按位、字节、字或双字来访问。
V存储器地址范围一般比MV存储器地址范围大得多。
V属于数据区 M属于状态区
还有就是MODBUS的时候 只能认V 却不认M
2、200的M相当于300的M
200的V相当于300的DB
区别在于字节数。V字节在4000以上,M就18个
用起来设置掉电保持了完全一样。
300没有V,但有数据块
足够你用的了
用法上区别不大,但各有特点。
V区:容量大,偏重于存放数据。寻址时一般按字节、字、双字寻址,当然也可按位寻址。
M区:容量小,偏重于存放位状态。寻址时一般按位寻址。当然也可按字节、字、双字寻址。
有什么严格的区别?那看你是否按照下述约定来使用了。西门子的例程中是按照下述约定来编程的:
PLC执行程序过程中,会存在一些控制过程的中间结果,这些中间数据也需要用存储器来保存。变量存
储器就是根据这个实际的要求设计的。变量存储器是S7-200CPU为保存中间变量数据而建立的一个存储
区,用V表示。可以按位、字节、字、双字四种方式来存取。共有5120个字节.
2.位存储器(M)区
PLC执行程序过程中,可能会用到一些标志位,这些标志位也需要用存储器来寄存。位存储器就是根据
这个要求设计的。位存储器是S7-200CPU为保存标志位数据而建立的一个存储区,用M表示。该区虽
然叫位存储器,但是其中的数据不仅可以是位、还可以是字节、字或双字.共有32个字节.
作用是一样的东西,区别就是M数比V要少,所以你完全可以全用V,可以不用M,相当于一个生产工
厂,假如生产同一个产品,那么这一个是小工厂,一个是大工厂,还有一个最大的区别就是,M点不可以
设为断电保持,而V可以设为断电保持,当将其设为断电不保持之后,那它的作用与M完全一样,记住
1.变量存储器(V)(相当于内辅继电器)
是一样。
M0-M13存储区有一个特殊用途,就是将它们设为掉电保存后,里面的数据会永久保存,不受断电影响。
2.位存储器(M)区变量存储器是S7-200CPU为保存中间变量数据而建立的一个存储区,用V表示。可
以按位、字节、字、双字四种方式来存取。共有5120个字节.位存储器是S7-200CPU为保存标志位数据
而建立的一个存储区,用M表示。该区虽然叫位存储器,但是其中的数据不仅可以是位、还可以是字节、
字或双字.共有32个字节.
200中M区和V区用起来没有区别。M区比V区小。我习惯只用V区。
300中的M区就相当于200中的V区,一点区别都没有。V区怎么用,300中的M区就怎么用。
M区和V区我认为有以下几方面的差别:
10240字节。
2.断电保存:v区可以保存在由超级电容或电池卡供电的RAM中,也可以通过数据块或编程写入
EEPROM中。M区中MB0-MB13只能保存在EEPROM中,MB14-MB31只能保存在由超级电容或电池
卡供电的RAM中。
3.开机数据更新:因为数据保存的位置差别,开机的数据更新也有差别
总之,从实际使用而言,可以简单的理解为M区小一些,V区大一些。
有什么严格的区别?那看你是否按照下述约定来使用了。西门子的例程中是按照下述约定来编程的:
1.变量存储器(V)(相当于内辅继电器)
PLC执行程序过程中,会存在一些控制过程的中间结果,这些中间数据也需要用存储器来保存。变量存
储器就是根据这个实际的要求设计的。变量存储器是S7-200CPU为保存中间变量数据而建立的一个存储
区,用V表示。可以按位、字节、字、双字四种方式来存取。共有5120个字节.
2.位存储器(M)区
PLC执行程序过程中,可能会用到一些标志位,这些标志位也需要用存储器来寄存。位存储器就是根据
这个要求设计的。位存储器是S7-200CPU为保存标志位数据而建立的一个存储区,用M表示。该区虽
然叫位存储器,但是其中的数据不仅可以是位、还可以是字节、字或双字.共有32个字节.
按习惯来区别,V是 数据区 M时位状态区。
小的区别在,
有的比如数据块只能对V区进行赋值,
一些功能库块的参数也定义特定的区进行存储
个人觉得:两者用法基本相同。
细微差别:M大多情况下用作中间变量,位存取(尽管它也可以以字节、字、双字存取),并且200提供
的M变量不是很多M0.0-M31.7共32个字节。特殊情况,M0-M13这14个字节可以设置成永久性断电
保持寄存器区
200提供的V变量存储器区要大得多,在网络中与上位机交换数据一般只能用V变量
V和M基本上功能一样,但是V的内存区域大,所以一般用V存放模拟量数值和运算中间量,而M区域
一般用数字量的中间继电用。
使用上就没有什么严格的区分,VD MD 之间都可以通用。
1.存储区大小:M区一共32字节,V区根据不同的CPU类型有所差别。222为2048字节,226为
V区的数据具有断电保护功能,M区的数据断电保护范围需要设置过 v区比较大,而且掉电可以保存,其
他功能和m差不多
1、V和M没有变质的区别,地位几乎可以互换;
2、V多而M少。M少可以使指令码短,存贮和执行效率提高。
3、M有规定的一些使用,比如MB0-MB13如设为保持的话,在断电时是直接写eeprom的,属永久型保
持,除此之外的保持是临时的由超级电容或电池保持的。
4、V容量大,使用V比使用M指令代码要长,当然时间上也费一些。同样的V区,我发现也有分区的情
况,V0-V511是一块,相应的指令代码就比V512以上的要短,但是执行时间上是否有区别,没有考证。
所以经常使用的V变量,应放在V511之前,可以缩短指令代码的长度。
5、V和M由于符号上的区别,习惯上把它们的用途作一些分类,比如M主要用来作位变量,这样程序的
可读性就更大
另外,4个32位的AC与S7-300/400完全不一样。这4个AC的功能太退化了,可以不用
理会。在V区里开4个VD,其功能足以替代4个AC。
S7-200的数据主要分为:
与实际输入/输出信号相关的输入/输出映象区:
I:数字量输入(DI)
Q:数字量输出(DO)
AI:模拟量输入
AQ:模拟量输出
内部数据存储区:
V:变量存储区,可以按位、字节、字或双字来存取V 区数据;
M:位存储区,可以按位、字节、字或双字来存取M区数据;
T:定时器存储区,用于时间累计,分辨率分为1ms、10ms、100ms三种;
C:计数器存储区,用于累计其输入端脉冲电平由低到高的次数。CPU提供了三种类 型的
计数器:一种只能增计数;一种只能减计数;另外一种既可 以增计数,又可以减计数。
M区数据不够用怎么办?
回答:有些用户习惯使用M 区作为中间地址,但S7-200CPU中M区地址空间很小,只有
32个字节,往往不够用。而S7-200CPU中提供了大量的V 区存储空间,即用户数据空间。
V区:变量存储区
M区:位存储区
其实根本没有任何区别。在S7-200中仿佛你找不到像S7-300/400里的数据块。但仔细在
MicroWin编辑器里看一下会找到一个数据块按钮。点开后,编辑的是V区的内容。几乎
所有的数据类型都可用在这两个区里。但我从未在M区里用过实数,不知能不能在M区
用实数,估计能用但没意义,因为M区太小了。因此,即使你不用M区,所用的数据全
部放在V区也无妨,仅仅感觉不习惯。这点有些类似 S7-300/400里,你不用M区,开一
个数据块替代M区。
但S7-200里有3个区是值得好好研究的:HC高速计数, S顺控标志, SM系统标志。
可读性就更大
他功能和m差不多
一般用数字量的中间继电用。
1、V和M没有变质的区别,地位几乎可以互换;
2、V多而M少。M少可以使指令码短,存贮和执行效率提高。
持,除此之外的保持是临时的由超级电容或电池保持的。
V区的数据具有断电保护功能,M区的数据断电保护范围需要设置过 v区比较大,而且掉电可以保存,其
V和M基本上功能一样,但是V的内存区域大,所以一般用V存放模拟量数值和运算中间量,而M区域
3、M有规定的一些使用,比如MB0-MB13如设为保持的话,在断电时是直接写eeprom的,属永久型保
所以经常使用的V变量,应放在V511之前,可以缩短指令代码的长度。
况,V0-V511是一块,相应的指令代码就比V512以上的要短,但是执行时间上是否有区别,没有考证。
5、V和M由于符号上的区别,习惯上把它们的用途作一些分类,比如M主要用来作位变量,这样程序的
4、V容量大,使用V比使用M指令代码要长,当然时间上也费一些。同样的V区,我发现也有分区的情
V存储区相对很大,其用法与M 区相似,可以按位、字节、字或双字来存取V 区数据。
例:V10.1, VB20, VW100, VD200等等
2024年3月23日发(作者:归诗翠)
M区和V区的差别
M区只有32Byte,32x8=256位,用一个字节即可寻址,而V区的位只少要两个字节才能寻址
一位,请比较:
LDM0.0//2byte
LDV0.0//3byte
LDV511.0//3byte
LDV512.0
//5byte!
另外,V区有断电永久数据保存能功(数十年),M区断电只有短暂的保存能力
(几天)
两者没有本质区别,除了S7-200提到的一点外,还有就是M区容量小,也只有前14字节
可以永久保存,而V区通过程序任何子节都可以永久保存(SM31,SM32).
另外,您提
到的m0.0-m0.7,不完全对,实际上M区都可以用于那个功能,只是数量是8位,应该改
为Mx.0----Mx.7。
只有M区的前14字节可以通过设定后CPU自动永久保存。V区不用SM31SM32是不可
能实现永久保存的,设定的是靠电容保持。
这个概念我在96年就有了,现在变了吗?
不会的,我想还是您错了。
万泉河:确认一下。
不针对任何人,我想对于一些基
本的概念,大家应该有一个一致的、明确的结论。
V区和M区一样可以做永久保存,V区和M区一样可以当Byte/Word/DWord/bit,M区32
字节256位,不多不少,位地址合一个字节长,所以把它当做位变量时,可以达到较高的
编码效率。
所以M区有中间继电器的说法。
至于TD200使用M区来记录
KEY,也是因为它适合做位变量。
还有不同意见吗?
只有输入输出口(I 和Q)才可以强制的,M和V存贮器中值可以用状态表中的“写入”工
具来更改其值。
1、V和M没有变质的区别,地位几乎可以互换;
2、V多而M少。M少可以使指令码短,存贮和执行效率提高。
3、M有规定的一些使用,比如MB0-MB13如设为保持的话,在断电时是直接写eeprom
的,属永久型保持,除此之外的保持是临时的由超级电容或电池保持的。
4、V容量大,使用V比使用M指令代码要长,当然时间上也费一些。同样的V区,我
发现也有分区的情况,V0-V511是一块,相应的指令代码就比V512以上的要短,但是执行
时间上是否有区别,没有考证。所以经常使用的V变量,应放在V511之前,可以缩短指令
代码的长度。
5、V和M由于符号上的区别,习惯上把它们的用途作一些分类,比如M主要用来作位
变量,这样程序的可读性就更好。
这应该是针对S7-200 CPU的编程。300及400 CPU 没有V存储器。
从定义上来说,
1、V存储器称为”变量存储器“,可以以位(Vx.x),字节(VBx),字(VWx),双字
(Vx)来访问,您可以用V存储器存储程序执行过程中控制逻辑操作的中间结果,也可以
用它来保存与工序或任务相关的其他数据。
2、M存储器称为”状态存储器“,可以用位存储区作为控制继电器来存储中间操作状态和控
制信息。当然也可以如V存储器一样按位、字节、字或双字来访问。
V存储器地址范围一般比MV存储器地址范围大得多。
V属于数据区 M属于状态区
还有就是MODBUS的时候 只能认V 却不认M
2、200的M相当于300的M
200的V相当于300的DB
区别在于字节数。V字节在4000以上,M就18个
用起来设置掉电保持了完全一样。
300没有V,但有数据块
足够你用的了
用法上区别不大,但各有特点。
V区:容量大,偏重于存放数据。寻址时一般按字节、字、双字寻址,当然也可按位寻址。
M区:容量小,偏重于存放位状态。寻址时一般按位寻址。当然也可按字节、字、双字寻址。
有什么严格的区别?那看你是否按照下述约定来使用了。西门子的例程中是按照下述约定来编程的:
PLC执行程序过程中,会存在一些控制过程的中间结果,这些中间数据也需要用存储器来保存。变量存
储器就是根据这个实际的要求设计的。变量存储器是S7-200CPU为保存中间变量数据而建立的一个存储
区,用V表示。可以按位、字节、字、双字四种方式来存取。共有5120个字节.
2.位存储器(M)区
PLC执行程序过程中,可能会用到一些标志位,这些标志位也需要用存储器来寄存。位存储器就是根据
这个要求设计的。位存储器是S7-200CPU为保存标志位数据而建立的一个存储区,用M表示。该区虽
然叫位存储器,但是其中的数据不仅可以是位、还可以是字节、字或双字.共有32个字节.
作用是一样的东西,区别就是M数比V要少,所以你完全可以全用V,可以不用M,相当于一个生产工
厂,假如生产同一个产品,那么这一个是小工厂,一个是大工厂,还有一个最大的区别就是,M点不可以
设为断电保持,而V可以设为断电保持,当将其设为断电不保持之后,那它的作用与M完全一样,记住
1.变量存储器(V)(相当于内辅继电器)
是一样。
M0-M13存储区有一个特殊用途,就是将它们设为掉电保存后,里面的数据会永久保存,不受断电影响。
2.位存储器(M)区变量存储器是S7-200CPU为保存中间变量数据而建立的一个存储区,用V表示。可
以按位、字节、字、双字四种方式来存取。共有5120个字节.位存储器是S7-200CPU为保存标志位数据
而建立的一个存储区,用M表示。该区虽然叫位存储器,但是其中的数据不仅可以是位、还可以是字节、
字或双字.共有32个字节.
200中M区和V区用起来没有区别。M区比V区小。我习惯只用V区。
300中的M区就相当于200中的V区,一点区别都没有。V区怎么用,300中的M区就怎么用。
M区和V区我认为有以下几方面的差别:
10240字节。
2.断电保存:v区可以保存在由超级电容或电池卡供电的RAM中,也可以通过数据块或编程写入
EEPROM中。M区中MB0-MB13只能保存在EEPROM中,MB14-MB31只能保存在由超级电容或电池
卡供电的RAM中。
3.开机数据更新:因为数据保存的位置差别,开机的数据更新也有差别
总之,从实际使用而言,可以简单的理解为M区小一些,V区大一些。
有什么严格的区别?那看你是否按照下述约定来使用了。西门子的例程中是按照下述约定来编程的:
1.变量存储器(V)(相当于内辅继电器)
PLC执行程序过程中,会存在一些控制过程的中间结果,这些中间数据也需要用存储器来保存。变量存
储器就是根据这个实际的要求设计的。变量存储器是S7-200CPU为保存中间变量数据而建立的一个存储
区,用V表示。可以按位、字节、字、双字四种方式来存取。共有5120个字节.
2.位存储器(M)区
PLC执行程序过程中,可能会用到一些标志位,这些标志位也需要用存储器来寄存。位存储器就是根据
这个要求设计的。位存储器是S7-200CPU为保存标志位数据而建立的一个存储区,用M表示。该区虽
然叫位存储器,但是其中的数据不仅可以是位、还可以是字节、字或双字.共有32个字节.
按习惯来区别,V是 数据区 M时位状态区。
小的区别在,
有的比如数据块只能对V区进行赋值,
一些功能库块的参数也定义特定的区进行存储
个人觉得:两者用法基本相同。
细微差别:M大多情况下用作中间变量,位存取(尽管它也可以以字节、字、双字存取),并且200提供
的M变量不是很多M0.0-M31.7共32个字节。特殊情况,M0-M13这14个字节可以设置成永久性断电
保持寄存器区
200提供的V变量存储器区要大得多,在网络中与上位机交换数据一般只能用V变量
V和M基本上功能一样,但是V的内存区域大,所以一般用V存放模拟量数值和运算中间量,而M区域
一般用数字量的中间继电用。
使用上就没有什么严格的区分,VD MD 之间都可以通用。
1.存储区大小:M区一共32字节,V区根据不同的CPU类型有所差别。222为2048字节,226为
V区的数据具有断电保护功能,M区的数据断电保护范围需要设置过 v区比较大,而且掉电可以保存,其
他功能和m差不多
1、V和M没有变质的区别,地位几乎可以互换;
2、V多而M少。M少可以使指令码短,存贮和执行效率提高。
3、M有规定的一些使用,比如MB0-MB13如设为保持的话,在断电时是直接写eeprom的,属永久型保
持,除此之外的保持是临时的由超级电容或电池保持的。
4、V容量大,使用V比使用M指令代码要长,当然时间上也费一些。同样的V区,我发现也有分区的情
况,V0-V511是一块,相应的指令代码就比V512以上的要短,但是执行时间上是否有区别,没有考证。
所以经常使用的V变量,应放在V511之前,可以缩短指令代码的长度。
5、V和M由于符号上的区别,习惯上把它们的用途作一些分类,比如M主要用来作位变量,这样程序的
可读性就更大
另外,4个32位的AC与S7-300/400完全不一样。这4个AC的功能太退化了,可以不用
理会。在V区里开4个VD,其功能足以替代4个AC。
S7-200的数据主要分为:
与实际输入/输出信号相关的输入/输出映象区:
I:数字量输入(DI)
Q:数字量输出(DO)
AI:模拟量输入
AQ:模拟量输出
内部数据存储区:
V:变量存储区,可以按位、字节、字或双字来存取V 区数据;
M:位存储区,可以按位、字节、字或双字来存取M区数据;
T:定时器存储区,用于时间累计,分辨率分为1ms、10ms、100ms三种;
C:计数器存储区,用于累计其输入端脉冲电平由低到高的次数。CPU提供了三种类 型的
计数器:一种只能增计数;一种只能减计数;另外一种既可 以增计数,又可以减计数。
M区数据不够用怎么办?
回答:有些用户习惯使用M 区作为中间地址,但S7-200CPU中M区地址空间很小,只有
32个字节,往往不够用。而S7-200CPU中提供了大量的V 区存储空间,即用户数据空间。
V区:变量存储区
M区:位存储区
其实根本没有任何区别。在S7-200中仿佛你找不到像S7-300/400里的数据块。但仔细在
MicroWin编辑器里看一下会找到一个数据块按钮。点开后,编辑的是V区的内容。几乎
所有的数据类型都可用在这两个区里。但我从未在M区里用过实数,不知能不能在M区
用实数,估计能用但没意义,因为M区太小了。因此,即使你不用M区,所用的数据全
部放在V区也无妨,仅仅感觉不习惯。这点有些类似 S7-300/400里,你不用M区,开一
个数据块替代M区。
但S7-200里有3个区是值得好好研究的:HC高速计数, S顺控标志, SM系统标志。
可读性就更大
他功能和m差不多
一般用数字量的中间继电用。
1、V和M没有变质的区别,地位几乎可以互换;
2、V多而M少。M少可以使指令码短,存贮和执行效率提高。
持,除此之外的保持是临时的由超级电容或电池保持的。
V区的数据具有断电保护功能,M区的数据断电保护范围需要设置过 v区比较大,而且掉电可以保存,其
V和M基本上功能一样,但是V的内存区域大,所以一般用V存放模拟量数值和运算中间量,而M区域
3、M有规定的一些使用,比如MB0-MB13如设为保持的话,在断电时是直接写eeprom的,属永久型保
所以经常使用的V变量,应放在V511之前,可以缩短指令代码的长度。
况,V0-V511是一块,相应的指令代码就比V512以上的要短,但是执行时间上是否有区别,没有考证。
5、V和M由于符号上的区别,习惯上把它们的用途作一些分类,比如M主要用来作位变量,这样程序的
4、V容量大,使用V比使用M指令代码要长,当然时间上也费一些。同样的V区,我发现也有分区的情
V存储区相对很大,其用法与M 区相似,可以按位、字节、字或双字来存取V 区数据。
例:V10.1, VB20, VW100, VD200等等