加载中…
个人资料
  • 博客等级:
  • 博客积分:
  • 博客访问:
  • 关注人气:
  • 获赠金笔:0支
  • 赠出金笔:0支
  • 荣誉徽章:
正文 字体大小:

博图中VB脚本对变量运算方法及系统时间提取

(2017-08-16 11:33:46)
标签:

tia

博图

hmi组态

西门子精智面板系列支持对组态进行编写脚本,仅支持使用VB脚本编写(不支持C)。采用组态软件为博图V13

1.在编写脚本时,如果要对来自PLC的外部变量进行操作时,采用以下格式:
HmiRuntime.SmartTags("变量名")
若直接对变量名进行操作则无效。
例如:
HmiRuntime.SmartTags("chiller") = (HmiRuntime.SmartTags("chillerH")*1000) + HmiRuntime.SmartTags("chillerL") :
为正确的计算方式,含义为变量chiiler=chillerH*1000+chillerL。
若只编写:chiller=chillerH*1000+chillerL:
则为无效指令。

2.想要提取系统中的当前时间(年/月/日/周)指令如下:
年:HmiRuntime.SmartTags("变量名") = Year(Now):
月:HmiRuntime.SmartTags("变量名") = Month(Now):
日:HmiRuntime.SmartTags("变量名") = Day(Now):
周:HmiRuntime.SmartTags("变量名") = Weekday(Now):

备注:按照西方人的习惯,周天是每周的第一天,因此当前为周天时,Weekday(Now)提取的数为1,周一时,提取的数为2,以此类推。因此,如果想按照国人的习惯进行提取,需要编写脚本进行转换,参考脚本如下:
HmiRuntime.SmartTags("eee") = Weekday(Now):
If eee=1 Then ddd=7:
If eee=2 Then ddd=1:
If eee=3 Then ddd=2:
If eee=4 Then ddd=3:
If eee=5 Then ddd=4:
If eee=6 Then ddd=5:
If eee=7 Then ddd=6:
变量ddd的值即为我们想得到的周数据。

3.变量位数的操作指令
我们通过上述的指令得到的数据只能为实际的位数,例如年份,得到的数据为2017,2018,2019.....等等,为四位数,又例如月份,得到的1-9月为一位,10-12月为两位。有时我们想让得到的数据,为固定的位数,该怎么操作呢?我们以两位数为例。
   (1)仅提取“2017”中的“17”
   HmiRuntime.SmartTags("年份") = Right(Year(Now),2):
   通过上述指令,我们仅提取了“2017”这个四位数中最右侧的两位“17”。
   (2)使月份1-9,变为01-09
   HmiRuntime.SmartTags("bbb") = Right(0&Month(Now),2):
   这里我们采用了“&”“与”指令符。可以将两个数据合并在一起,在此,我们将“1”变为了“01”,再提取    右侧两位,即得“01”。将“12”变为了“012”,再提取右侧两位,即得“12”不变。

通过以上方法,保证我们提取的数据保持两位数不变。

0

阅读 收藏 喜欢 打印举报/Report
  

新浪BLOG意见反馈留言板 欢迎批评指正

新浪简介 | About Sina | 广告服务 | 联系我们 | 招聘信息 | 网站律师 | SINA English | 产品答疑

新浪公司 版权所有