博图中VB脚本对变量运算方法及系统时间提取
(2017-08-16 11:33:46)
标签:
tia博图hmi组态 |
西门子精智面板系列支持对组态进行编写脚本,仅支持使用VB脚本编写(不支持C)。采用组态软件为博图V13
(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”不变。
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月为两位。有时我们想让得到的数据,为固定的位数,该怎么操作呢?我们以两位数为例。
通过以上方法,保证我们提取的数据保持两位数不变。

加载中…