S7-200中READ-RTC读实时时钟指令与寄存器VW20/VW21/VW22和VW30/VW31/VW32和VW0/VW1/VW2和M0.4之间有什么联

如题所述

READ_RTC指令的执行结果均放在VB0-VB7的8个字节里,
VB0 年

VB1 月

VB2 日

VB3 时

VB4 分

VB5 秒

VB6 保留

VB7 星期几

当M0.0接通时,依次赋值。
第1-3条指令执行后:
VW20=6(每个VW由两个VB构成,即VW20由VB20/21构成,当VW20-6时,VB20=0,VB21=6)
VW21=0(VB21=0,VB21=0)
VW22=0(VB22=0,VB23=0)
所以上述三条指令执行后,VB20-VB23均为0。(等同于VW20=0及VW22=0,这才是正确的赋值操作)
第4-6条指令也是一样的情况,执行后,VB30-VB33均为0。(等同于VW30=0及VW32=0)
这前面6条指令实际的效果就是将对应的存储器清零。
第7条指令,读实时时钟
第8条指令,应该不用解释了吧。显而易见。
温馨提示:答案为网友推荐,仅供参考
第1个回答  2012-11-13
其它都与READ_RTC指令无关,可能是功能需要而同时执行的程序段。
READ_RTC指令的执行结果均放在VB0-VB7的8个字节里,
VB0 年

VB1 月

VB2 日

VB3 时

VB4 分

VB5 秒

VB6 保留

VB7 星期几追问

你能看懂上面的程序吗,能不能解释下

追答

这段程序其实是有问题的。

当M0.0接通时,依次赋值。
第1-3条指令执行后:
VW20=6(每个VW由两个VB构成,即VW20由VB20/21构成,当VW20-6时,VB20=0,VB21=6)
VW21=0(VB21=0,VB21=0)
VW22=0(VB22=0,VB23=0)
所以上述三条指令执行后,VB20-VB23均为0。(等同于VW20=0及VW22=0,这才是正确的赋值操作)
第4-6条指令也是一样的情况,执行后,VB30-VB33均为0。(等同于VW30=0及VW32=0)
这前面6条指令实际的效果就是将对应的存储器清零。
第7条指令,读实时时钟。
第8条指令,应该不用解释了吧。显而易见。

追问

m0.4,闭合的条件是?

追答

M0.4闭合的条件来自于程序中其它指令的输出或人机界面的输入。你所提供的程序段不能说明这个信号的来源。

本回答被网友采纳