QQ登录

只需一步,快速开始

怎么在wincc上做个秒表计时的窗口,点击开始计时,复位取消

[ 复制链接 ]
怎么在wincc上做个秒表计时的窗口,点击开始计时,复位取消-----------wincc的画面刷新周期不够,如果是显示大于1s的,可以直接用vbs或者c脚本,否则你还不如直接用vb去做呢。

定义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。




回复

使用道具 举报

快速回复 返回列表 客服中心 搜索