定义wincc内部变量:二进制:start,stop,无符号16位整数:mysecond
wincc中秒表启动按按钮:属性动态对话框,左侧选择常数:1;右侧选择变量:start
wincc全局脚本(周期1s)vbs中:
dim mytag(3)
mytag(0)=hmiruntime.tags("mysecond").read
mytag(1)=hmiruntime.tags("start").read
mytag(2)=hmiruntime.tags("stop").read
if mytag(1) then
mytag(0)=mytag(0)+1
end if
if mytag(2) then
mytag(0)=0
hmiruntime.tags("start").write 0
hmiruntime.tags("stop").write 0
end if
hmiruntime.tags("mysecond").write mytag(0)
---------一般来说,秒表基本上都要精确到ms,所以正常情况下,如果使用wincc自身提供的那些对象,由于响应比较慢,是不可能做到的。但是如果只需要精确到s的话,利用周期触发的动作,还是可以办到的。
如果有需求必须在wincc中实现精确到ms的秒表功能,那么只能通过其它的变通方法来实现,比如:
1、在画面中嵌入一个程序窗口,用来调用、执行可以完成此项功能的windows应用程序。
2、使用c脚本或vbs脚本,通过进入一个无限循环体来提高刷新率,编写相应指令计时并响应键盘鼠标的命令。但这样会导致系统假死,某些情况下不适用。
-----------单击开始计时按钮时,标志位,置1。
在秒表数字(如用静态文本显示)的Text属性中,选时间触发器,触发周期为1秒。
在Text属性中用脚本返回秒数。有个判断,即标志位为1时,秒数+1。
欢迎光临 工控编程吧 (https://www.gkbc8.com/) | Powered by Discuz! X3.4 |