Wincc的VBS脚本使用之欧阳理创编.docx

上传人:b****1 文档编号:13214077 上传时间:2023-06-12 格式:DOCX 页数:7 大小:17.86KB
下载 相关 举报
Wincc的VBS脚本使用之欧阳理创编.docx_第1页
第1页 / 共7页
Wincc的VBS脚本使用之欧阳理创编.docx_第2页
第2页 / 共7页
Wincc的VBS脚本使用之欧阳理创编.docx_第3页
第3页 / 共7页
Wincc的VBS脚本使用之欧阳理创编.docx_第4页
第4页 / 共7页
Wincc的VBS脚本使用之欧阳理创编.docx_第5页
第5页 / 共7页
Wincc的VBS脚本使用之欧阳理创编.docx_第6页
第6页 / 共7页
Wincc的VBS脚本使用之欧阳理创编.docx_第7页
第7页 / 共7页
亲,该文档总共7页,全部预览完了,如果喜欢就下载吧!
下载资源
资源描述

Wincc的VBS脚本使用之欧阳理创编.docx

《Wincc的VBS脚本使用之欧阳理创编.docx》由会员分享,可在线阅读,更多相关《Wincc的VBS脚本使用之欧阳理创编.docx(7页珍藏版)》请在冰点文库上搜索。

Wincc的VBS脚本使用之欧阳理创编.docx

Wincc的VBS脚本使用之欧阳理创编

变量读写:

Write和Read方法的语法:

时间:

2021.03.05

创作:

欧阳理

读:

1DimobjTagSetobjTag=HMIRunTime.Tags("变量名")

objTag.Read

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

写:

1DimobjTagSetobjTag=HMIRunTime.Tags("变量名")

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

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

中间变量的值写入:

DimobjTag,val

SetobjTag=HMIRunTime.Tags("变量名")

objTag.Read

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

VBS

语言使用方法

概述:

VBScript的全称是:

MicrosoftVisualBasicScriptEditon.(微软公司可视化BASIC脚本版).

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

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

一、入门

:

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

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

"="

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

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

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

例:

REM输入并回显你的名字

'使用InputBox和Msgbox函数

Dimname,msg

msg="请输入你的名字:

"

name=Inputbox(msg,"名称")

Msgbox(name)

上例中,Dim用来声明一个变量,在VBS中,变量类型并不是那么重要,就是说VBS中你不用考虑name储存的是一个整数还是一个小数(学名叫"浮点数"),也不用考虑是不是字符串(一串字符,比如:

"HelloWorld"),VBS会自动帮你搞定.所以第三行语句可以删除,效果不会变.

常量:

格式是:

const常量名=常量值.

例如

:

constPI=3.1415926constNAME="记忆碎片"

二、进阶

数据类型转换:

1)

Dima,b,c

a=inputbox("a是:

","输入半径")

b=Inputbox("b是:

","输入半径")

c=a*2+b*2

Msgbox(c)

这个输入1、2时是6

2)Dima,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"haveyouunderstood?

你还记得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

dimi,j

fori=1to9

fori=1to9

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

next'每个next对应一个for

next

1)do..loop和exitdo的用法

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

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

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

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

五、数组

定义:

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

你需要10个数据,就定义"9"。

六、函数

结构:

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

...

exitfunciton'结束函数,不是必需的

...

endfunction

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

就在于:

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

dimyname

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

")

callwho(yname)

sub

who(cname)

msgbox("你好"&cname)

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

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

endsub

按钮翻转程序

SubOnClick(ByvalItem)

Dimtag1

Settag1=HMIRuntime.Tags("Q02")

tag1.read

Iftag1.Value=1

Thentag1.write0

Else

tag1.Write1

按按钮增数程序:

Dimtag1

Settag1=HMIRuntime.Tags("旋转1")

tag1.Read

tag1.Value=tag1.Value+1

tag1.Write

EndIf

EndSub

按下按钮一个脉冲触发:

Dimmytime,bs

Setbs=HMIRuntime.Tags("b")

bs.Write

(1)

mytime=Timer+2

DoUntilTimer=mytime

Loop

bs.Write(0)

循环程序

Whilet=1

Dimmytime,bs

Setbs=HMIRuntime.Tags("b旋转")

bs.Write

(1)

mytimE=Timer+2

DOuntilTimEr=mytime

loop

bs.Write(0)

Wend

时间:

2021.03.05

创作:

欧阳理

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 自然科学 > 物理

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2