34272999
级别: 略有小成
精华主题: 0
发帖数量: 63 个
工控威望: 243 点
下载积分: 630 分
在线时间: 20(小时)
注册时间: 2007-08-12
最后登录: 2017-06-06
查看34272999的 主题 / 回贴
楼主  发表于: 2009-05-14 21:21
无意中发现,s7-200 传送指令MOV_W 传送数据的时候,不能把数据传送到连续的字里面(例如VW1,VW2)以下是我的测试程序
  LD     SM0.0
MOVW   1, VW1
MOVW   1, VW2


LDW=   VW1, 1
=      Q0.0


LDW=   VW2 1
=      Q0.2


这个程序我在CPU226上测试过,结果Q0.2动作,但是Q0.1不动作,但是换成不连续的字的时候,例如(VW0和VW2或者VW1和VW3)结果两个输出都能动作!

一直想不通这是为什么?求教!!谢谢!!
cvlsam
富士低压,POD(觸摸屏),PLC专卖
级别: VIP会员

精华主题: 3 篇
发帖数量: 6770 个
工控威望: 38371 点
下载积分: 3262 分
在线时间: 9513(小时)
注册时间: 2006-09-13
最后登录: 2024-11-26
查看cvlsam的 主题 / 回贴
1楼  发表于: 2009-05-14 21:48
从理论上来说,VW1包括,VB1和VB2,而VW2包括VB2,VB3,因此,当你使用LDW的时候,造成了地址重叠。

请注意,仅仅是理论上来讲,实际在常规应用中,一般字的存储空间地址符号以偶数开始,如VW0,VW2,VW4。

因此,如果你使用VW0和VW2,是没有问题的,因为地址没有重叠。

Regards
wwcwwc
级别: VIP会员

精华主题: 0
发帖数量: 3393 个
工控威望: 3189 点
下载积分: 70437 分
在线时间: 1604(小时)
注册时间: 2008-04-20
最后登录: 2024-11-19
查看wwcwwc的 主题 / 回贴
2楼  发表于: 2009-05-14 22:23
楼上说的是.就是前段时间我在站上发的程序,S7_200和TP177A例子,写的时侯没有发现地址重叠了,在现场调试时才发现的.不但要多看相关书籍,现场还要有一定的经验累积.
flin124
级别: 略有小成
精华主题: 0
发帖数量: 236 个
工控威望: 315 点
下载积分: 783 分
在线时间: 199(小时)
注册时间: 2008-11-18
最后登录: 2024-11-24
查看flin124的 主题 / 回贴
3楼  发表于: 2009-05-14 22:28
改为这样就可以了
LD     SM0.0
MOVW   1, VW1
MOVW   1, VW2

LDW=   VB2, 1
=      Q0.0

LDW=   VB3 1
=      Q0.2
醉湮邃虞
醉湮邃虞话老黑
级别: 略有小成
精华主题: 0
发帖数量: 229 个
工控威望: 409 点
下载积分: 1577 分
在线时间: 209(小时)
注册时间: 2009-01-16
最后登录: 2015-03-18
查看醉湮邃虞的 主题 / 回贴
4楼  发表于: 2009-05-14 23:53
没错,地址重叠:
PLC中的地址排列不论MB,还是IB,QB,VB,其地址增量是1
MW,IW,VW其地址增量是2
VD,MD等增量是4
也就是PLC中,只有字节是连续的地址空间,同样的空间还用来存放字或双字,比如
比如程序中使用了VD100, 也就包含使用了:vb100--vb103四个字节 或者VW100和VW102
VW100 包含 VB100 和VB101.
如果使用连续的VD地址空间,应该是 VD100,VD104 VD108,VD112..............增量是4
棋牌比赛免费得实物,闲暇好去处
http://www.jj.cn/indexTG.html?promoterid=108502812
34272999
级别: 略有小成
精华主题: 0
发帖数量: 63 个
工控威望: 243 点
下载积分: 630 分
在线时间: 20(小时)
注册时间: 2007-08-12
最后登录: 2017-06-06
查看34272999的 主题 / 回贴
5楼  发表于: 2009-05-15 22:36
谢谢楼上几位,根据几位的解答,我测试了一下,事实也确实是这样的,

VW 0 里面包含了 VB0 和VB1 两个字节,VW1里面包含了 VB1和VB2 两个字节,所以连续的字

地址是重叠的,所以不能传送正确的数据!!    

   奇怪的西门子!!好像日系PLC就没有这个问题!呵呵