视频1 视频21 视频41 视频61 视频文章1 视频文章21 视频文章41 视频文章61 推荐1 推荐3 推荐5 推荐7 推荐9 推荐11 推荐13 推荐15 推荐17 推荐19 推荐21 推荐23 推荐25 推荐27 推荐29 推荐31 推荐33 推荐35 推荐37 推荐39 推荐41 推荐43 推荐45 推荐47 推荐49 关键词1 关键词101 关键词201 关键词301 关键词401 关键词501 关键词601 关键词701 关键词801 关键词901 关键词1001 关键词1101 关键词1201 关键词1301 关键词1401 关键词1501 关键词1601 关键词1701 关键词1801 关键词1901 视频扩展1 视频扩展6 视频扩展11 视频扩展16 文章1 文章201 文章401 文章601 文章801 文章1001 资讯1 资讯501 资讯1001 资讯1501 标签1 标签501 标签1001 关键词1 关键词501 关键词1001 关键词1501 专题2001
Wincc的VBS脚本使用
2025-09-24 06:34:27 责编:小OO
文档
变量读写: Write和Read方法的语法:

读 :

1变量名")  

  objTag.Read

 2  HMIRunTime.Tags("变量名").Read 

写:

 变量名") 

   objTag.Write 1    '向变量写入数值1 

2  HMIRunTime.Tags("变量名").Write 1

 中间变量的值写入 :Dim objTag,val  

 Set objTag=HMIRunTime.Tags("变量名")  

 objTag.Read  

 val=objTag.Value  '中间变量val存放了变量的值 

VBS

语言使用方法

 

概述:

VBScript的全称是:Microsoft Visual Basic Script Editon.(微软公司可视化BASIC脚本版). 

正如其字面所透露的信息, VBS(VBScript的进一步简写)是基于Visual Basic的脚本语言. 

我进一步解释一下, Microsoft Visual Basic是微软公司出品的一套可视化编程工具, 语基于Basic. 脚本语言, 就是不编译成二进制文件, 直接由宿主(host)解释源代码并执行, 简单点说就是你写的程序不需要编译成.exe, 而是直接给用户发送.vbs的源程序, 用户就能执行了. 

一、入门

: 1) 注释(以REM或'开头)行在程序中不起作用, 但能让别人更容易读懂你的程序

. 2) 变量好像一个盒子, 或一个代号, 可以代表你想代表的东西. 变量赋值使用

"="

3) 以""包裹起来的字符称之为"字符串" 

4)  函数像一个"黑箱", 有参数和返回值, 用"="左边的变量可以接住返回值

5)  Inputbox函数弹出一个输入对话框,Msgbox则用于输出

 

例:

 REM 输入并回显你的名字

 '使用InputBox和Msgbox函数

 Dim name,msg

 msg="请输入你的名字:" 

name=Inputbox(msg,"名称") 

Msgbox(name) 

上例中,Dim用来声明一个变量, 在VBS中, 变量类型并不是那么重要, 就是说VBS中你不用考虑name储存的是一个整数还是一个小数(学名叫"浮点数"), 也不用考虑是不是字符串(一串字符, 比如:"Hello World"), VBS会自动帮你搞定. 所以第三行语句可以删除, 效果不会变.

常量:

 格式是:const 常量名=常量值. 

例如

: const PI=3.1415926 const NAME="记忆碎片" 

二、进阶

 数据类型转换:

1)

Dim a,b,c 

a=inputbox("a是:输入半径") 

b=Inputbox("b是:输入半径") 

c=a*2+b*2

Msgbox(c) 

这个输入1、2时是6 

2) Dim a,b,c 

a=inputbox("a是:输入半径")

 b=Inputbox("b是:输入半径")

 c=(a+b)*2 

Msgbox(c) 

这个输入1、2时是24  

为什么会不一样呢? 在数学上c=(a+b)*2 和 c=a*2+b*2是等价的, 在VBS中也是如此. 问题出在"+"上, 在VBS中, +不仅仅是加号的意思还表示把两个字符串连接起来, 例如"Hello"+"World"="HelloWorld" have you understood? 你还记得InoutBox函数的返回值吗? 是字符串! 这就看出问题了吧, 在编程中"1"不等于(<>)1, "1"是一个字符, 而1是一个数, 所以a,b都是字符串变量, "1"+"2"="12", 这就好像我们小时跟伙伴开玩笑问他们1+1=?一样, 我们总是笑着说"错啦,应该是11".但为什么, a可以*2却不发生错误呢? 这时

VBS比较智能的一个表现, 如果这个字符串的内容是一个数且对他进行数算, 则把字符串强制转换成数参与运算如果字符串代表一个数, 但不参加数算, 而是参加字符串运算(合并)则当作字符串处理, 所以你看到a+b=12, 这时候a+b的结果是一个字符串, 当它要乘以2的时候就被强制转换成了数字12, 这样我就得到了结果24

怎么修改这个程序呢? 我们需要用到另一个内建的函数:int, int函数的功能是将输入值转成整数值, 我们这样修改: c=(int(a)+int(b))*2 

四、循环结构

 for....next 

dim i,j

 for i=1 to 9

 for i=1 to 9

 str=str & i * j & " " '&是和并字符串的符号

 next '每个next对应一个for 

next 

1)do..loop和exit do的用法

 2) while当表达式true的时候执行循环体,until反之

 3) for...next是计数循环, 每次执行计数器递加

 4) 嵌套循环的作用和写法 4.5) &用于连接字符串

 5) vbCrLf相当于键盘上的回车键

五、数组

定义:

 dim 数组名(元素数量), 这里大家要注意一点, 这里定义的元素数量总是比你要的要少一个, 因为一个数组的起点是0号数据而不是1, 所以大家一定要小心: 你需要10个数据, 就定义"9"。

六、函数

 结构:

funciton 函数名(参数1, 参数2...参数n) '列表可以是空的, 但括号不能省略, 参数之间用分割

 ... 

exit funciton '结束函数, 不是必需的

 ... 

end function 

有时候我们并不需要返回什么值, 这个时候我们可以使用一种称之为"子程序"的结构. 子程序或称之为过程与函数的差别

 就在于:1) 没有返回值, 2) 使用sub关键字定义, 3) 通过Call调用.具个例子: 

 dim yname

 name=inputbox("请输入你的名字:") 

call who(yname)

 sub 

who(cname)

 msgbox("你好" & cname)

 msgbox("感谢你阅读我的课程") 

msgbox("这是基础部分的最后一课") 

end sub 

按钮翻转程序

 Sub OnClick(Byval Item)  

 Dim  tag1 

Set tag1=HMIRuntime.Tags("Q02") 

tag1.read 

If  tag1.Value=1 

Then tag1.write 0 

 Else 

tag1.Write 1 

按按钮增数程序:

Dim  tag1 

Set tag1=HMIRuntime.Tags("旋转1") 

tag1.Read

 tag1.Value=tag1.Value + 1 

tag1.Write 

End If 

End Sub

按下按钮一个脉冲触发:

 Dim mytime,bs

 mytime = Timer+2  

Loop 

  bs.Write(0) 

循环程序

  While t = 1

  Dim mytime,bs  

 Set bs=HMIRuntime.Tags("b旋转

bs.Write(1)

loop 

  bs.Write(0)  

   Wend       

 下载本文

显示全文
专题