登录
首页 PLC论坛 PLC论坛
回帖 发帖
正文

主题:请教:S7-200,变量VD100,如何保存其改变以前的值,以便下个扫描周期备用

点击:2897 回复:6

如,VD100当前值为0.6,然后在运行过程中需要将VD100改变为0.5.问题是,如何保存原来的值0.6?
在程序里写了一个命令,在VD100的值改变命令之前,先将VD100赋给临时变量VD110,然后再改变VD100,但实际效果是,当VD100发生变化后,VD110也立即随之发生了变化,原值没有被保存在VD110中!
原问题见:
http://m.gkong.com/bbs/382413.ashx
14-03-29 12:26
关键是如何判断VD100的值什么时候有变化?PLC扫描是有周期时间的,所以就牵扯到判断频率的问题,即多长时间比较一下VD100的前后2值是否相等。比较时如果不想等,就将前值DMOV到VD110即可。
14-03-29 13:39
楼上说的对,可以在每个扫描周期中记下当前数据,下个周期开始后,在读取当前数据,并将数据与上次保存的进行对比!
14-03-29 13:56
没有理解。。。
14-03-29 15:46
理解啦!在将原值VD100用MOV_R指令存放到临时变量VD110时,其使能端加一个对VD100和VD110的判断,只有当VD100和VD110相等时,意味着VD100没有发生变化,才可以将VD100送给VD110;否则,当VD100和VD110不等时,意味着VD100有了变化,就不能将变化过的VD100的值再给VD110了!这样就保存了VD100每个变化周期前的数值!
马上试,结果稍后汇报。
14-03-29 16:28
按住葫芦起来瓢,问题此起彼伏,相互牵扯。
14-03-29 16:52
ppp
16-07-12 22:50

工控新闻

更多新闻资讯