WINCC用VBS读取/写入1200时间参数

已锁定

尧儿

  • 帖子

    24
  • 精华

    0
  • 被关注

    3

论坛等级:游士

注册时间:2018-05-08

普通 普通 如何晋级?

WINCC用VBS读取/写入1200时间参数

3024

2

2018-09-25 15:10:05

先说一下大概的情况:

       因为数据转换问题,WINCC读取的1200时间变量不符合我们的要求,我们希望用VBS脚本或者C脚本来转换一下。

       我们打算在WINCC上设定24小时制时间,来读取/写入相应的1200地址。

       1200的地址格式是DW,我们参考了网上的经验,在WINCC中把DW转换成了Unsigned-DW。

       由于读取的数据是“毫秒”级别,我们又通过比例转换成了“秒”级别的。

       但是这样也出现了相应的问题,就是我们在WINCC上读取/写入的时间全部都是用秒来计算和显示的

       比如我在1200上写的00:10:00,那么WINCC上就显示为600;在1200上写1:00:00,那么WINCC上就显示为3600。这样对于运行人员来说换算起来极其麻烦且很容易出问题。所以我们希望能通过脚本来实现“数据表现形式的转换”。     


       我的初步设想是通过VBS脚本分别做一个“输入”与“输出”脚本。“输入”能把10:00:00转化为36000秒;“输出”能把36000秒转化为10:00:00。

      但是因为我对于脚本编写十分不精通,所以即使查了很多资料,也只能写出来一部分。


1200变量的写入与读取都是同一个地址

一、输出脚本:

      Dim mytg(5)

      mytag 0=hmiruntime.tags("1200变量").read

      mytag 1=Cint("mytag 0"/3600)                                                    小时

      mytag 2=Cint("mytag 0"-"mytag 1"*3600)/60                             分钟

      mytag 3="mytag 0"-"mytag 1"*3600-"mytag2"*60                     秒

      然后接下来就不知道怎么编写了,我希望的表现形式是:“mytag 1”:“mytag 2”:“mytag 3”,个人也建立了一个“内部变量”用来存储,但是不知道怎么用。。。


二、输入脚本:

      Dim mytag(5)

      怎么读取那个“mytag 1”:“mytag 2”:“mytag 3”也完全没有头绪。先用“读取变量”来表示

      mytag 1=Cint(“读取变量”/10000)

      mytag 2=Cint(“读取变量”-(“mytag 1”*10000)/100)

      mytag 3="读取变量" - ("mytag 1"*10000)- ("mytag 2"*100)

      mytag 0=(“mytag 1”*3600)+(“mytag 2”*60)+“mytag 3”

      然后接下来怎写入“1200变量”也是完全没有头绪了。


真心希望各位大大们能给一些建议,若是能提供其他的方案或是补足我写的脚本,真的是万分感谢。


WINCC用VBS读取/写入1200时间参数 已锁定
编辑推荐: 关闭

请填写推广理由:

本版热门话题

SIMATIC WinCC / Panel

共有32967条技术帖

相关推荐

热门标签

相关帖子推荐

guzhang

恭喜,你发布的帖子

评为精华帖!

快扫描右侧二维码晒一晒吧!

再发帖或跟帖交流2条,就能晋升VIP啦!开启更多专属权限!

  • 分享

  • 只看
    楼主

top
X 图片
您收到0封站内信:
×
×
信息提示
很抱歉!您所访问的页面不存在,或网址发生了变化,请稍后再试。