我想求一个时间段的秒数,改了很久,就是不成功,恳请各位大侠指点下,代码如下
Dim tz,sj,zero,jl
zero=HMIRuntime.Tags ("zero_tag").Read
jl=HMIRuntime.Tags ("jl_tag").Read
If zero=1 Then
HMIRuntime.Tags ("zero_tag").write 0
HMIRuntime.Tags ("qs_time").Write CStr(Now)
qs=CStr(Now)
End If
If jl=1 And zero=0 Then
HMIRuntime.Tags ("tz_time").Write CStr(Now)
tz=CStr(Now)
HMIRuntime.tags("sj").write CStr(DateDiff("s",qs,tz))
End If
我就求很短的一段时间,为什么所用时间那么大呀,我的输出格式都是字符串,附图,各位高手指点下吧
图片说明:
最佳答案
问题出在变量qs,当jl=1时,qs没有被赋值,DateDiff函数里的qs应该用读取变量qs_time的值来代替。
提问者对于答案的评价:
谢谢了大侠,我调试成功了,只是不明白我在前一个if 语句中不是对它赋值了呀,为什么在后一个if中没作用呀?
最佳答案作者回复:
因为实现这个过程你这段脚本会执行许多次,当你某一次满足第一个条件时,qs被赋值,但下一次再执行这段脚本qs的值不会被保持,当满足第二个条件时的那一次,第一个条件肯定不满足,所以qs不会被赋值,即使此时赋值也是不正确的时间,因为VBS脚本里没法定义静态变量,所以就是这个状况。
原创文章,作者:more0621,如若转载,请注明出处:https://www.zhaoplc.com/plc263118.html