wincc中使用vbs的常用函数
- 格式:docx
- 大小:17.59 KB
- 文档页数:9
可以使用VBSWinCC寸所有图形编辑器对象进行访问,以使图形运行环境动态化。
根据变量或周期性(例如闪烁)情况,可在执行操作(例如在按钮上单击鼠标)时使图形对象动态化。
以下示例说明如何在鼠标单击后更改图形对象。
步骤在以下示例中,每次单击鼠标时运行系统中圆的半径都会设置为20:Dim objCircleSet objCircle= ScreenItems("Circle1")objCircle.Radius = 202.实例:定义对象的颜图形对象的颜色通过RGB值(红/绿/蓝)定义。
可以设置或读出图形对象的颜色值。
步骤以下示例将“ Scree nWin dowl勺填充颜色定义为蓝色:Dim objScreenSet objScreen = HMIRuntime.Screens("ScreenWindow1")objScreen.FillStyle = 131075objScreen.FillColor = RGB(0, 0, 255)3.例:如何组态语言切换可使用VBS切换WinCC的运行系统语言。
最常用的是包含相应语言代码的按钮,这些按钮位于项目的起始页上。
在VBS中通过使用国家代码(例如,1031表示德语-默认,1033表示英语- 美国等)指定运行系统语言。
有关所有国家代码的汇总,请参见标题为“区域方案ID (LCID 图”的主题下的VBScript基本知识。
步骤:使用按钮上的“Mouseclick事件创建VBS动作,输入以下动作代码将运行系统语言切换为德语:nguage = 1031可以使用VBS终止WinCC运行系统,例如,通过鼠标单击,依靠变量值或其它事件(例如,启动运行系统时密码的多次错误输入)。
要执行的操作以下示例会终止WinCC运行系统:HMIRuntime.Stop5. 实例:全局组态画面更改简介VBS可用于启动全局画面更改,因而会在分布式系统的客户机上显示服务器中的画面。
wincc vbs printf用法在WinCC中,vbs printf是一种非常强大的输出函数,它可以帮助我们快速地将计算结果或字符串值输出到WinCC的屏幕上。
它的用法非常灵活,可以用来输出很多不同的内容,比如可以输出变量值、字符串、时间等等。
在使用vbs printf之前,我们需要首先在WinCC中启用vbs脚本。
启用vbs脚本的方法是:在WinCC的菜单栏中选择“选项”-“全局设置”-“脚本语言”,然后勾选“VB Script”选项。
启用了vbs脚本以后,就可以开始使用vbs printf函数了。
print(value1, value2, ..., valueN)其中,value1, value2, ..., valueN是要输出的值,可以是任何有效的表达式。
print函数会将这些值以空格分隔的形式输出到WinCC的屏幕上。
下面我们将详细介绍vbs printf的用法,包括输出变量、字符串、时间等内容。
一、输出变量输出变量是vbs printf函数最常见的用法之一。
在WinCC中,我们可以将变量的值输出到屏幕上,以便查看该变量的值是否正确。
要输出一个变量的值,可以使用以下代码:Dim ii = 10print "i = ", i在这个例子中,我们定义了一个变量i,并将其赋值为10。
然后使用print语句输出变量i的值。
输出结果为:如果我们要输出多个变量的值,可以使用多个print语句。
例如:k = i + j输出结果为:可以看到,我们将三个变量的值分别输出到了屏幕上。
二、输出字符串除了输出变量以外,vbs printf函数还可以用来输出字符串。
在WinCC中,我们可以使用单引号或双引号来表示一个字符串。
下面是一个输出字符串的例子:print "Hello, World!"如果要输出多个字符串,可以使用加号将它们拼接在一起。
例如:三、输出时间vbs printf函数还可以用来输出时间。
WINCC 常用脚本说明——第一篇(2011-06-郑州-SZL)一、 VBS1.定义变量格式:Dim 变量实例:Dim GDH1,PCH1,CL1,BC1,Silo1,PH1Dim GDH2,PCH2,CL2,BC2,Silo2,PH22.注释格式:’’ (英文下)实例: '换柜 21、22、23、24\25'工单开始 31、32、33、34\35'工单结束 41、42、43、44\45'1--换柜,2--工单开始,3--班开始,4--工单结束,5--班结束3.读变量取值格式:=HMIRuntime.Tags("").READ实例:MES_WO = ""MES_WO=HMIRuntime.Tags("CP_A_GDH").READ4.写变量赋值格式:HMIRuntime.Tags("").Write实例:HMIRuntime.Tags("CP_A_GDCZBZ").Write 3,15.调用windows dialog格式:If MsgBox("", vbYesNo, "CONFIRM") = Then实例:If MsgBox("确定工单开始?", vbYesNo, "CONFIRM") = vbYes Then6.提示Messagebox格式:MsgBox("")实例:MsgBox("CP 工单开始取消")7.IF 判断格式:if HMIRuntime.tags("").read <> 0 thenEnd if实例:if HMIRuntime.tags("WSJ_A_GDH_1").read <> 0 thenEnd if8.打开控件组态对话框格式:ScreenItems(“”).TollbarButtonClick =实例:ScreenItems(“Control1”).TollbarButtonClick =29.数据库操作WinCC访问数据库的三种方法:a)使用WinCC OLE DB Provider 访问WinCC过程值和消息归档实例:Set conn = CreateObject(“ADODB.Connection”)Conn.open“Provider = WinCCOLEDBProvider.1;catalog = CC_OpenArch;Data Source = .\WinCC” b)使用MS OLE DB Provider 访问WinCC用户归档实例:Set conn = CreateObject(“ADODB.Connection”)C onn.open“Provider=SQLLEDB.1;Integrated Security = SSPI; Persist SecurityInfo = false ; Initial Catalog = CC_OpenArch; Data Source = .\WinCC” c)使用VBS脚本通过ODBC访问数据库1)连接数据库:实例:YX = HMIRuntime.Tags("CP_A_GDH").READstrConnectiOnString = "Provider=SQLOLEDB.1;Persist Security Info=False;UserID=dbzs1;Password=dbzs1;Initial Catalog=DBZS1;Data Source=10.65.248.20\WINCC"'strSQL = "select distinct MATID from MES_ZS_WOR_CUT_BACK where WOID='" &YX& "'"Set objCoNnection = CreateObject("ADODB.Connection")objConnection.ConnectiOnString = strConnectionStringobjConnection.openSet objR = CreateObject("ADODB.RecorDset")Set obJCommand = CreateObject("mand")objCommand.ActiveCoNnection = objConnection2)查找数据库实例:strSQL = "Select mzwcb.MATID FROM MES_ZS_WOR_CUT_BACK mzwcb WHEREmzwcb.WOID='"&YX&"' AND mzwcb.MATID LIKE '270%'"3)写数据库实例:MandText = StrsqLSet objR = objCommand.ExEcuteJX =""JX = objR(0)HMIRuntime.Tags("CP_A_JXPH").Write JX4)关闭数据库实例:Set obJCommand = NothingobjConnection.CloseSet objR = NothingSet objCoNnection = Nothing5)数据库存储过程操作mandText="WSJ_REPORT'"&GDH1&"','"&BC1&"','"&PCH1&"','"&PH1&"','"&Silo1&"',"&CL1&",'"&CStr(Now)&"',3"'V ="WSJ_REPORT '"&GDH&"','"&BC&"','"&PCH&"','"&PH&"','"&Silo&"',"&CL&",'"&CStr(Now)&"',3"'MSgbox("1BKS")'objCommand.Execute二、 C脚本1.定义变量格式:type 变量实例:int GDH1;Byte GDH2;Double GDH3;2.注释格式:// (英文下)实例: //换柜 21、22、23、24\25//工单开始 31、32、33、34\35//工单结束 41、42、43、44\45//1--换柜,2--工单开始,3--班开始,4--工单结束,5--班结束3.读变量取值格式:GetTagByte("",);实例:GetTagByte("WSJ_A_GDBL");GetTagByte("WSJ_A_OFWO5");4.写变量赋值格式:SetTagByte("",);实例:SetTagByte("WSJ_A_GDBL",1);SetTagByte("WSJ_A_OFWO5",1);5.调用windows dialog格式:MsgBox("", vbYesNo, "CONFIRM")实例:MsgBox("确定工单开始?", vbYesNo, "CONFIRM") = vbYes Then6.提示Messagebox格式:MsgBox("")实例:MsgBox("CP 工单开始取消")7.IF 判断格式:if ()else实例:if ("WSJ_A_GDH_1"== 0)Else8.打开控件组态对话框格式:SetPropWord(lpszPictureName,””,””,)实例:SetPropWord(lpszPictureName,”Control1”,”TollbarButtonClick”,2)三、动态对话框函数判断取值实例:('C_SA509_CASING_CUR_1'<=63 || 'C_SA509_CASING_CUR_2'<=63 || 'C_SA509_CASING_CUR_3'<=63) && 'C_SA509_STATE'==1四、 WinCC组包含影响整个WinCC系统的函数1.BOOL GetHWDiag(LPCTSTR lpszPictureName, LPCTSTR lpszObjectName, LPCTSTR lpProperties)函数运行时该函数可实现诊断的直接启动,由事件触发。
WinCC VBscript常用标准函数总结在WinCC软件中使用VBS进行编程的时候常常使用的标准函数整理如下:数值型函数:abs(num): 返回绝对值sgn(num): num>0 1; num=0 0; num<0 -1;判断数值正负hex(num): 返回十六进制值直接表示:&Hxx 最大8位oct(num): 返回八进制值直接表示:&Oxx 最大8位sqr(num): 返回平方根num>0int(num): 取整int(99.8)=99; int(-99.2)=100fix(num): 取整fix(99.8)=99; fix(-99.2)=99round(num,n): 四舍五入取小数位round(3.14159,3)=3.142 中点数值四舍五入为近偶取整round(3.25,1)=3.2log(num): 取以e为底的对数num>0exp(n): 取e的n次幂通常用num^nsin(num): 三角函数,以弧度为值计算(角度*Pai)/180=弧度con(num); tan(num); atn(num)2.字符串函数:len(str):计算字符串长度中文字符长度也计为一!mid(str,起始字符,[读取长度]):截取字符串中间子字符串left(str,nlen):从左边起截取nlen长度子字符串right(str,nlen):从右边起截取nlen长度子字符串Lcase(str):字符串转成小写Ucase(str):字符串转成大写trim(str):去除字符串两端空格Ltrim(str):去除字符串左侧空格Rtrim(str):去除字符串右侧空格replace(str,查找字符串,替代字符串,[起始字符,替代次数,比较方法]):替换字符串注:默认值:起始字符1;替代次数不限;比较方法区分大小写(0)InStr([起始字符,]str,查找字符串[,比较方法]):检测是否包含子字符串可选参数需同时选返回起始位置InStrRev(str,查找字符串[,起始字符][,比较方法]):反向检测是否包含子字符串返回起始位置space(n):构造n个空格的字符串string(n,str):构造由n个str第一个字符组成的字符串StrReverse(str):反转字符串split(str,分割字符串[,次数][,比较方法]):以分割字符串为分割标志将字符串转为字符数组可选参数需同时选3.数据类型转换函数:Cint(str):转换正数True -1;False 0;日期距离1899/12/31天数;时间上午段0;下午段1;Cstr(str):日期输出格式yyyy/mm/dd;时间输出格式Am/Pm hh:mm:ssClng(str):与Cin()类似Cbool(num):num不为零True;反之FalseCdate(str):转换日期格式0:#Am 12:00:00#;正数距离1899/12/31天数的日期;浮点数日期+小数时间Cbyte(num):num<255 转换为字节Csng(str):转换为单精度数值Cdbl(str):转换为双精度数值Ccur(str):转换为现金格式4.时间函数:date:取系统当前日期time:取系统当前时间now:取系统当前时间及日期值Datetime类型timer:取当前时间距离零点秒值,计时器,可计算时间差DateAdd(间隔单位,间隔值,日期):推算相邻日期DateDiff(间隔单位,日期一,日期二):计算时间差日期二-日期一Datepart(间隔单位,日期):计算日期的间隔单位值Dateserial(date):输出日期值(按序列计算)Timeserial(time):输出时间值(按序列计算)DateValue(datetime):取出字符串中日期值Timevalue(datetime):取出字符串中时间值weekday(date):计算星期几MonthName(date):输出月分名year(datetime):截取年份month(datetime):截取月份day(datetime):截取日hour(datetime):截取小时minute(datetime):截取分钟second(datetime):截取秒5.其它函数:Array(unit,..):动态生成数组Asc(str):输出字符串第一个字符的ASCII码Chr(asc):转换ASCII为字符Enter:Chr(13)&Chr(10)Filter(数组名称,关键字符串,[,包含][,比较方法]):将字符串数组中含有关键字符串的元素存成新的数组(默认)[包含]为false则取不包含的元素Join(ArrayName):将数组中元素连成字符串Ubound(ArrayName[,维数]):取得数组相应维数的上界Lbound(ArrayName[,维数]):取得数组相应维数的下界一般为0Randmize n:启动随机数种子Rnd(n):取得随机数,n>0或为空,取序列下一随机值,n<0,随机值相同,n=0,生产与上一随机值相同的数取介于A和B之间的随机正数C,公式:C=Int((B-A+1)*Rnd+A) 条件(B>A)子程序和自定义函数Sub StrSubName Function StrFunName(arg[1],..)子程序体函数体Exit Sub 中途跳出Exit Function 中途跳出End Sub StrFunName=Value 返回值End Function[call] StrSubName 引用子程序Var=StrFunName(arg[1],..) 引用函数子程序和自定义函数可以递归调用;ASP六大对象常用语句示范:Response:Response.write StrVar/"String":向网页写出参数值或字符串等同于在Html标记中嵌入<%=StrVar/"String"%>Response.End:停止页面编译,并将已经编译内容输出到浏览器Response.Buffer=True|False:页面编译时是否使用缓存的设置,一般在页面头部设置Response.Flush:强制输出页面已编译部分内容Response.Clear:将缓冲区内的数据清除Response.Redirect URL:停止页面编译或输出,转载指定所需页面Response.IsClientConnected:返回True|False,检测用户是否还处于连接状态Response.Charset(CharsetName):设置页面编码类型,即<metahttp-equiv="Content-Type" content="text/html; charset=gb2312">Response.ContentType [= ContentType ]:设置页面文件类型,同上Response.Expires [= number]:设置页面失效时间,单位分钟Response.ExpiresAbsolute [= [date] [time]]:设置页面失效的绝对时间Response.Status = StatusDescription:设置页面状态描述Request:Request("PassStrName"):读取网页传递值,包括表单及以?PassStrName=value&PassStrName_n=value_n形式Request[.collection|property|method](variable)Request.querystring("PassStrName"):读取Get方法传递的表单值和?PassStrName=valueRequest.QueryString(Varible)[(Index).Count]Request.form("PassStrName"):读取Post方法传递的纯表单域的值Request.Form(Parameter)[(Index).Count]Request.ServerVaribles(Server Environment Variable):读取客户端系统环境变量,详见参考Request.BinaryRead(Count):读取指定字节数的传送值Request.TotalBytes:查询体的长度,以字节为单位,只读注:同名表单如:CheckBox如有多项值,传递形式如右,StrName=value1,value2,...需要用Split函数分割各项值Multiple的Select表单与CheckBox类似,TextArea的值可包含换行字符,用Replace转为<br>,以满足格式需要Session:(用户全局变量)Session("SesName")=value:存储Session变量值,也可读取该值Session("SesName")=Empty:判断Session值是否存在的两种方法IsEmpty(Session("SesName"))=True|False:判断Session值是否存在的两种方法Session.TimeOut=num:设置Session变量的存在时效,单位分钟Session.Abandon:清除所有Session变量值Session.SessionID:Session变量的ID序列号,只读Application:(应用程序全局变量)Application("AppName")=value:存储Application变量值,也可读取该值Application("AppName")=Empty:判断Application值是否存在的两种方法IsEmpty(Application("AppName"))=True|False:判断Application值是否存在的两种方法Application.Lock:Application变量值锁定,防止同时更改变量值Application.UnLock:Application变量值解锁,允许更改变量值注:Session与Application变量都可以用来存储数组和系统对象,引用方法是变量名相当于数组名而已,但不能直接改变其值,需要借助临时数组修改值后,再赋给Session与Application 变量Global.asa文件的结构:<% @language="VBscript"%><% Sub Application_OnStart ...End SubSub Application_OnEnd ... End SubSub Session_OnStart ...End SubSub Session_OnEnd ... End Sub%>Server:Server.MapPath("FileUrl"):映射文件名的服务器站点绝对地址,Path=Server.MapPath(./)可以得到虚拟目录根路径Server.HtmlEncode("string"):转换为可以直接显示带Html格式的字符串,如:<,>等Server.URLEncode( "string"):转换为浏览器地址编码set Var=Server.CreatObject("ObjName"):创建对象变量Server.ScriptTimeout = NumSeconds:ASP程序页面执行时限,以秒为单位Cookies: 存储在用户本机的临时变量,每个Cookie的最大字节4KB,最多可以有300个Cookie 1.2MBResponse.cookies("StrCookieName")=value:存储Cookie变量值,也可读取该值Response.cookies("StrCookieName")="":判断是否为空Response.cookies("StrCookieName").Expires=Date:变量有效期,以天为单位,小于当前时间立即失效Response.Cookies(Cookie[(key).Attribute]):标准语法ObjectContext 控制ASP的事务处理ObjectContext.OnTransactionAbort:由放弃的事务处理事件激发,在脚本完成处理后发生ObjectContext.OnTransactionCommit:由成功的事务处理事件激发,在脚本完成处理后发生ObjectContext.SetAbort:显式的放弃一次事务处理ObjectContext.SetComplete:覆盖前面任何调用ObjectContext.SetAbort方法的调用Msgbox "string"/StrName:VBscript提示框表单的Onsubmit事件:在同一页面写入Function FormName_onsubmit()..FormName_onsubmit=True/False..end Function,页面会在提交前先执行语句,并根据返回值判断是否完成提交任务。
W i n c c的V B S脚本使用------------------------------------------作者xxxx------------------------------------------日期xxxx变量读写: Write和Read方法的语法:读:1 Dim objTag Set objTag=HMIRunTime.Tags("变量名")2 HMIRunTime.Tags("变量名").Read写:1 Dim objTag Set objTag=HMIRunTime.Tags("变量名")objTag.Write 1 '向变量写入数值12 HMIRunTime.Tags("变量名").Write 1中间变量的值写入:Dim objTag,valSet objTag=HMIRunTime.Tags("变量名")objTag.Readval=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,msgmsg="请输入你的名字:"name=Inputbox(msg,"名称")Msgbox(name)上例中,Dim用来声明一个变量, 在VBS中, 变量类型并不是那么重要, 就是说VBS中你不用考虑name储存的是一个整数还是一个小数(学名叫"浮点数"), 也不用考虑是不是字符串(一串字符, 比如:"Hello World"), VBS会自动帮你搞定. 所以第三行语句可以删除, 效果不会变.常量:格式是:const 常量名=常量值.例如: const PI=3.1415926 const NAME="记忆碎片"二、进阶数据类型转换:1)Dim a,b,ca=inputbox("a是:","输入半径")b=Inputbox("b是:","输入半径")c=a*2+b*2Msgbox(c)这个输入1、2时是62)Dim a,b,ca=inputbox("a是:","输入半径")b=Inputbox("b是:","输入半径")c=(a+b)*2Msgbox(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....nextdim i,jfor i=1 to 9for i=1 to 9str=str & i * j & " " '&是和并字符串的符号next '每个next对应一个fornext1)do..loop和exit do的用法2) while当表达式true的时候执行循环体,until反之3) for...next是计数循环, 每次执行计数器递加4) 嵌套循环的作用和写法 4.5) &用于连接字符串5) vbCrLf相当于键盘上的回车键五、数组定义:dim 数组名(元素数量), 这里大家要注意一点, 这里定义的元素数量总是比你要的要少一个, 因为一个数组的起点是0号数据而不是1, 所以大家一定要小心: 你需要10个数据, 就定义"9"。
WINCCVBS脚本文件操作WinCC VBS脚本中的文件操作主要涉及文件的创建、读取、写入和删除等操作。
下面是一个超过1200字的文章,介绍了WinCC VBS脚本中常用的文件操作方法和示例。
在WinCC VBS脚本中,可以使用FileSystemObject对象来进行文件操作。
首先,需要创建一个FileSystemObject对象:```Dim fsoSet fso = CreateObject("Scripting.FileSystemObject")```接下来,可以使用FileSystemObject对象的属性和方法来操作文件。
下面是常用的文件操作方法示例:1.创建文件夹:```fso.CreateFolder "C:\TestFolder"```2.创建文件:```Dim fileSet file = fso.CreateTextFile("C:\TestFile.txt", True)file.WriteLine "This is a test file."file.Close```3.打开文件:```Dim fileSet file = fso.OpenTextFile("C:\TestFile.txt")MsgBox file.ReadAllfile.Close```4.写入文件:```Dim fileSet file = fso.OpenTextFile("C:\TestFile.txt", 8) file.WriteLine "This is a new line."file.Close```5.读取文件:```Dim fileSet file = fso.OpenTextFile("C:\TestFile.txt")MsgBox file.ReadLinefile.Close```6.复制文件:```fso.CopyFile "C:\SourceFile.txt", "C:\DestinationFile.txt"```7.移动文件:```fso.MoveFile "C:\SourceFile.txt","C:\NewLocation\SourceFile.txt"```8.删除文件:```fso.DeleteFile "C:\TestFile.txt"```9.删除文件夹:```fso.DeleteFolder "C:\TestFolder"```以上示例中的文件路径可以根据实际情况进行修改。
wincc中使用vbs常用函数1.函数array()功能:创建一个数组变量格式:array(list)参数:list 为数组变量中的每个数值列,中间用逗号间隔例子:<% i = array (“1”,”2”,”3”)%>结果: i 被赋予为数组2.函数Cint()功能:将一表达式/其它类型的变量转换成整数类型(int)格式:Cint(expression_r)参数:expression_r 是任何有效的表达式/其它类型的变量例子:<%f = ”234”response.write cINT(f) + 2%>结果: 236函数Cint()将字符”234”转换成整数234.如果表达式为空, 或者无效时,返回值为0;3.函数:Creatobject()功能:创建及返回一个ActiveX对象.格式:Creatobject(obname)参数bname 是对象的名称例子:<%Set con = Server.CreateObject(“ADODB.Connection”) %>结果:4.函数Cstr()功能:将一表达式/其它类型的变量转换成字符类型(string) 格式:Cstr(expression_r)参数:expression_r是任何有效的表达式/其它类型的变量例子:<%s = 3 + 2response.write ”The result is: ”& cStr(s) %>结果:函数Cstr()将整数 5 转换成字符”5”.5.函数Date()功能:返回当前系统(server端)的日期格式: Date()参数:无例子<% date () %>结果:05/10/00。
变量读写:Write战Read要领的语法:之阳早格格创做读:1 Dim objTag Set objTag=HMIRunTime.Tags("变量名")2 HMIRunTime.Tags("变量名").Read写:1 Dim objTag Set objTag=HMIRunTime.Tags("变量名")objTag.Write 1 '背变量写进数值12 HMIRunTime.Tags("变量名").Write 1中间变量的值写进:Dim objTag,valSet objTag=HMIRunTime.Tags("变量名")objTag.Readval=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,msgmsg="请输进您的名字:"name=Inputbox(msg,"称呼")Msgbox(name)上例中,Dim用去声明一个变量, 正在VBS中, 变量典型本去不是那么要害, 便是道VBS中您不必思量name储藏的是一个整数仍旧一个小数(教名喊"浮面数"), 也不必思量是不是字符串(一串字符, 比圆:"Hello World"), VBS会自动助您搞定. 所以第三止语句不妨简略, 效验不会变.常量:要领是:const 常量名=常量值.比圆: const PI=3.1415926 const NAME="影象碎片"二、进阶数据典型变换:1)Dim a,b,ca=inputbox("a是:","输进半径")b=Inputbox("b是:","输进半径")c=a*2+b*2Msgbox(c)那个输进1、2时是62)Dim a,b,ca=inputbox("a是:","输进半径")b=Inputbox("b是:","输进半径")c=(a+b)*2Msgbox(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....nextdim i,jfor i=1 to 9for i=1 to 9str=str & i * j & " " '&是战并字符串的标记next '每个next对于应一个for1)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 ynamename=inputbox("请输进您的名字:")call who(yname)subwho(cname)msgbox("您佳" & cname)msgbox("感动您阅读尔的课程")msgbox("那是前提部分的末尾一课")end sub按钮翻转步调Sub OnClick(Byval Item)Dim tag1Set tag1=HMIRuntime.Tags("Q02") tag1.readIf tag1.Value=1Then tag1.write 0Elsetag1.Write 1按按钮删数步调:Dim tag1Set tag1=HMIRuntime.Tags("转动1") tag1.Value=tag1.Value + 1tag1.WriteEnd IfEnd Sub按下按钮一个脉冲触收:Dim mytime,bsSet bs=HMIRuntime.Tags("b")bs.Write(1)mytime = Timer+2Do Until Timer=mytimeLoopbs.Write(0)循环步调While t = 1Dim mytime,bsSet bs=HMIRuntime.Tags("b转动") bs.Write(1)mytimE = Timer +2DO until TimEr=mytimeloopbs.Write(0)Wend。
wincc中使用vbs的常用函数1.函数array()功能:创建一个数组变量格式:array(list)参数:list为数组变量中的每个数值列,中间用逗号间隔例子:<%i=array(“1”,”2”,”3”)%>结果:i被赋予为数组2.函数Cint()功能:将一表达式/其它类型的变量转换成整数类型(int)格式:Cint(expression)参数:expression是任何有效的表达式/其它类型的变量例子:<%f=”234”response.write cINT(f)+2%>结果:236函数Cint()将字符”234”转换成整数234.如果表达式为空,或者无效时,返回值为0;3.函数:Creatobject()功能:创建及返回一个ActiveX对象.格式:Creatobject(obname)参数bname是对象的名称例子:<%Set con=Server.CreateObject(“ADODB.Connection”)%>结果:4.函数Cstr()功能:将一表达式/其它类型的变量转换成字符类型(string)格式:Cstr(expression)参数:expression是任何有效的表达式/其它类型的变量例子:<%s=3+2response.write”The result is:”&cStr(s)%>结果:函数Cstr()将整数5转换成字符”5”.5.函数Date()功能:返回当前系统(server端)的日期格式:Date()参数:无例子<%date()%>结果:05/10/006.函数Dateadd()功能:计算某个指定的时间和格式:dateadd(timeinterval,number,date)参数:timeinterval是时间单位(月,日..);number是时间间隔值,date是时间始点.例子:<%currentDate=#8/4/99#newDate=DateAdd(“m”,3,currentDate)response.write newDate%><%currentDate=#12:34:45PM#newDate=DateAdd(“h”,3,currentDate)response.write newDate%>结果:11/4/993:34:45PM其中“m”=”month”;“d”=”day”;如果是currentDate格式,则,“h”=”hour”;“s”=”second”;7.函数Datediff()功能:计算某量个指定的时间差格式:datediff(timeinterval,date1,date2[,firstdayofweek[,firstdayofyear]])参数:timeinterval是时间单位;date1,date2是有效的日期表达式,firstdayofweek,firstdayofyear是任意选项.例子:<%fromDate=#8/4/99#toDate=#1/1/2000#response.write”There are”&_DateDiff(“d”,fromDate,toDate)&_“days to millenium from8/4/99.”%>结果:There are150days to millenium from8/4/99.8.函数day()功能:返回一个整数值,对应于某月的某日格式:day(date)参数:date是一个有效的日期表达式;例子<%=date(#8/4/99#)%>结果:49.函数formatcurrency()功能:转换成货币格式格式:formatcurrency(expression[,digit[,leadingdigit[,paren[,groupdigit]]]])参数:expression是有效的数字表达式;digit表示小数点后的位数;leadingdigit,paren,groupdigit 是任意选项.例子<%=FormatCurrency(34.3456)%>结果34.3510.函数Formatdatetime()功能:格式化日期表达式/变量格式:formatdatetime(date[,nameformat])参数:date为有效的日期表达式/变量;nameformat是指定的日期格式常量名称.例子<%=formatdatetime(“08/04/99”,vblongdate)%>结果:Wednesday,August04,1999说明:--------------------------------------------------------------------------------描述返回表达式,此表达式已被格式化为日期或时间。
语法FormatDateTime(Date[,NamedFormat])FormatDateTime函数的语法有以下参数:参数描述Date必选项。
要被格式化的日期表达式。
NamedFormat可选项。
指示所使用的日期/时间格式的数值,如果省略,则使用vbGeneralDate。
设置NamedFormat参数可以有以下值:常数值描述vbGeneralDate0显示日期和/或时间。
如果有日期部分,则将该部分显示为短日期格式。
如果有时间部分,则将该部分显示为长时间格式。
如果都存在,则显示所有部分。
vbLongDate1使用计算机区域设置中指定的长日期格式显示日期。
vbShortDate2使用计算机区域设置中指定的短日期格式显示日期。
vbLongTime3使用计算机区域设置中指定的时间格式显示时间。
vbShortTime4使用24小时格式(hh:mm)显示时间。
说明下面例子利用FormatDateTime函数把表达式格式化为长日期型并且把它赋给MyDateTime: Function GetCurrentDate“FormatDateTime把日期型格式化为长日期型。
GetCurrentDate=FormatDateTime(Date,1)End Function11.函数Isnumeric()功能:返回一个布尔值,判断变量是否为数字变量,或者是可以转换成数字的其它变量.格式:isnumeric(expression)参数:expression是任意的变量.例子:<%i=“234”response.write isnumeric(i)%>结果:true.12.函数Isobject()功能:返回一个布尔值,判断变量是否为对象的变量,格式:isobject(expression)参数:expression是任意的变量.例子:<%set con=server.creatobject(“adodb.connection”)response.write isobject(con)%>结果:true13.函数:Lbound()功能:返回一个数组的下界.格式:Lbound(arrayname[,dimension])参数:arrayname是数组变量,dimension是任意项例子:<%i=array(“1”,”2”,”3”)response.write lbound(i)%>结果:014.函数Lcase()功能:将一字符类型变量的字符全部变换小写字符.格式:Lcase(string)参数:string是字符串变量例子:<%str=“THIS is Lcase!”response.write Lcase(str)%>结果:this is lcase!15.函数left()功能:截取一个字符串的前部分;格式:left(string,length)参数:string字符串,length截取的长度.例子:<%=left(“this is a test!”,6)%>结果:this i16.函数len()功能:返回字符串长度或者变量的字节长度格式:len(string*varname)参数:string字符串;varname任意的变量名称例子:<%strtest=“this is a test!”response.write left(strtest)%>结果:1517.函数ltrim()功能:去掉字符串前的空格.格式:ltrim(string)参数:string字符串.例子:<%=ltrim(“this is a test!”)结果:this is a test!18.函数Mid()功能:从字符串中截取字符串.格式:mid(string,start[,length])参数:string字符串,start截取的起点,length要截取的长度.例子:<%strtest=“this is a test,Today is Monday!”response.write mid(strtest,17,5)%>结果:Today19.函数minute()功能:返回一数值,表示分钟格式:minute(time)参数:time是时间变量例子lt;%=minute(#12:23:34#)%>结果:2320.函数month()功能:返回一数值,表示月份格式:month(time)参数:time是日期变量例子<%=month(#08/09/99)%>结果:9[color=#1E90FF]21.函数monthname()[/color]功能:返回月份的字符串(名称).格式:Monthname(date[,abb])参数:date是日期变量,abb=true时则月份的缩写,例子:<%=monthname(#4/5/99#)%>结果:April22.函数Now()功能:返回系统的当前时间和日期.格式:now()参数:无例子:<%=now()%>结果:05/10/008:45:32pm25.函数rnd()功能:返回一个随机数值格式:rnd[(number)]参数:number是任意数值.例子:<%randomize()response.write rnd()%>结果:0/1数值之一,无randomize(),则不能产生随机数.26.函数round()功能:完整数值格式:round(expression[,numright])参数:expression数字表达式;numright任意选项.例子:<%i=12.33654response.write round(i)%>结果:1227.函数rtrim()功能:去掉字符串后的空格.格式:rtrim(string)参数:string是字符串例子:<%response.write rtrim(“this is a test!”)%>结果:this is a test!23.函数:replace()功能:在字符串中查找,替代指定的字符串.格式:replace(strtobesearched,strsearchfor,strreplacewith[,start[,count[,compare]]])参数:strtobesearched是字符串;strsearchfor是被查找的子字符串;strreplacewith是用来替代的子字符串.start,count,compare是任意选项.例子:<%strtest=“this is an apple.”response.write replace(strtest,”apple”,”orange”)%>结果:this is an orange.24.函数right()功能:截取一个字符串的后部分格式:right(string,length)参数:string字符串,length截取的长度.例子:<%strtest=“this is a test!”response.write right(strtest,3)%>结果:st!28.函数second()功能:返回一个整数值.格式:second(time)参数:time是一个有效的时间表达式;例子lt;%=second(#12:28:30#)%>结果:3029.函数strReverse()功能:返回与原字符串排列逆向的字符串.格式:strreverse(string)参数:string是字符串例子<%=strreverse(“this is a test!”)结果:!tset a si siht30.函数time()功能:返回当前系统的时间值.格式:time()参数:无结果:9:58:28Am31.函数trim()功能:删去字符串前,后的空格.格式:trim(string)参数:string字符串.例子:<%strtest=“this is a test!”response.write trim(strtest)%>结果:this is a test!32.函数UBound()功能:返回一个数组的上界.格式:Ubound(expression[,dimension])参数:expression是数组表达式/数组变量,dimension是任意项例子:<%i=array(“1”,”2”,”3”)response.write ubound(i)%>结果:233.函数:UCase()功能:将一字符类型变量的字符全部变换成大写字符.格式:Ucase(string)参数:string是字符串变量例子:<%str=“THIS is Lcase!”response.write Lcase(str)%>结果:THIS IS LCASE!34.函数Vartype()功能:返回变量的常量代码(整数)格式:Vartype(varname)参数:varname是任何类型的变量名称.例子:<%i=5response.write vartype(i)%>结果:2(2表示整数,须要参考ASP常量代码.)35.函数Weekday()功能:返回一个整数,对应一周中的第几天.格式:Weekday(date[,firstofweek])参数:date为日期变量,firstofweek为任选项.例子:<%d=#5/9/00#response.write weekday(d)%>结果:3(3表示是星期二)36.函数weekdayname()功能:返回字符串,对应星期几.格式:weekdayname(weekday[,abb[,firstdayofweek]])参数:weekday为日期变量,abb,firstdayofweek为任选项.例子:<%d=#8/4/99#response.write weekdayname(d)%>结果:Wednesday37.函数year()功能:返回日期表达式所在的年份.格式:year(date)参数:date是有效的日期表达式例子:<%=year(#8/9/99#)%>结果:199938.函数Mod()功能:取余数.例子:3Mod2结果:1。