wincc vbscript Split 函数用法

合集下载

wincc中使用vbs的常用函数

wincc中使用vbs的常用函数

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说明:--------------------------------------------------------------------------------描述返回表达式,此表达式已被格式化为日期或时间。

WinCC flexible如何使用VBScript方法

WinCC flexible如何使用VBScript方法

如何使用VBScript WinCC Flexible提纲如何创建报警系统如何使用VBScript如何配方概述组态脚本调试如何配方如何创建报警系统如何使用VBScriptWinCC Flexible如何使用VBScript概述系统函数及其使用脚本及其使用运行脚本的基本信息使用函数列表如何配方如何创建报警系统如何使用VBScriptWinCC Flexible——运行脚本的基本信息WinCC flexible 提供了预定义的系统函数提供了预定义的系统函数,,以用于常规的组态任务任务。

可以用它们在运行系统中完成许多任务可以用它们在运行系统中完成许多任务,,而无需编程技巧。

当然也可以用运行脚本来解决更复杂的问题当然也可以用运行脚本来解决更复杂的问题。

运行脚本具有编程接口编程接口,,可以在运行时访问部分项目数据可以在运行时访问部分项目数据。

运行脚本的使用是针对具有Visual Basic (VB)和Visual Basic Script (VBS)知识的项目设计者的项目设计者的。

概述系统函数的使用如何使用VBScript如何配方如何创建报警系统如何使用VBScriptWinCC Flexible——运行脚本的基本信息概述运行脚本的使用可以从OP 270/TP 270获得运行脚本获得运行脚本,,因此也可从WinCC flexible (标准版)获得获得。

它支持VBScript 编程语言编程语言。

使用运行脚本允许灵活地实现组态允许灵活地实现组态。

在运行时需要额外功能时可以创建运行脚本,例如例如::数值转换可以在不同度量单位之间使用脚本来转换数值可以在不同度量单位之间使用脚本来转换数值,,例如温度例如温度。

生产过程的自动化脚本可以通过将生产数据传送至PLC 控制生产过程控制生产过程。

如果需要,可以使用返回值检查状态和启动相应的措施可以使用返回值检查状态和启动相应的措施。

可以在脚本中保存自己的VB 脚本代码脚本代码。

vbscript Split函数用法详解(字符串转数组函数)

vbscript Split函数用法详解(字符串转数组函数)
vbscript Split函数用法
用法:传回数组= Split(原始字串,要找的字串,拆成几个数组)
描述
返回一个下标从零开始的一维数组,它包含指定数目的子字符串。
语法
Split(expression[, delimiter[, count[, compare]]])
例如用逗号(,)分割字符串为数组
End Sub
输出结果:"12345"、"12345"、"12345"
代码如下:
'这个VB程序是让求10个学生的考试成绩的平均分..
'比如95 85 70 75 80 90 60 65 95 100
'这10个人的分数的平均分...
Private Sub Form_Load()
Dim A$(), i As Long, intB As String, s As Integer
参数的设置
设置值
compare参数的设置值:
常数值描述
vbUseCompareOption -1用Option Compare语句中的设置值执行比较。
vbBinaryCompare 0执行二进制比较。
vbTextCompare 1执行文字比较。
vbDatabaseCompare 2仅用于Microsoft Access。基于您的数据库的信息执行比较。
End Sub 
split命令用途
将文件分割成几段。
语法
要将一个文件分割成包含指定行数的多个文件
split [ -l LineCount ] [ -a SuffixLength ] [ File [ Prefix ] ]

Wincc的VBS脚本使用

Wincc的VBS脚本使用

变量读写: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的常用函数

wincc中使用vbs的常用函数
参数: expression 是有效的数字表达式;digit表示小数点后的位数;leadingdigit,paren,groupdigit是任意选项.
例子<%=FormatCurrency(34.3456)%>
结果34.35
10.函数Formatdatetime()
功能:格式化日期表达式/变量
其中
“m” = ”month”;
“d” = ”day”;
如果是currentDate 格式,则,
“h” = ”hour”;
“s” = ”second”;
7.函数Datediff()
功能:计算某量个指定的时间差
格式: datediff(timeinterval,date1,date2[,firstdayofweek[,firstdayofyear]])
格式: isobject(expression)
参数: expression 是任意的变量.
例子:
<%
set con =server.creatobject(“adodb.connection”)
response.write isobject(con)
%>
结果: true
格式:month(time)
参数:time是日期变量
例子<% =month(#08/09/99) %>
结果:9
[color=#1E90FF]21.函数monthname()[/color]
功能:返回月份的字符串(名称).
格式:Monthname(date [,abb])
格式: dateadd(timeinterval,number,date)

WinCC-VBscript常用函数

WinCC-VBscript常用函数

WinCC VBscript常用函数1.数值型函数: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:ss Clng(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):设置页面编码类型,即<meta http-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(""):映射文件名的服务器站点绝对地址,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,页面会在提交前先执行语句,并根据返回值判断是否完成提交任务。

VBS基础篇-vbscript常用函数及功能

VBS基础篇-vbscript常用函数及功能

VBS基础篇-vbscript常⽤函数及功能vbs常⽤函数函数名语法功能Abs Abs(number)返回⼀个数的绝对值Sqr Sqr(number)返回⼀个数的平⽅根Sin Sin(number)返回⾓度的正⽞值Cos Cos(number)返回⾓度的余⽞值Tan Tan(number)返回⾓度的正切值Atn Atn(number)返回⾓度的反正切值Log Log(number)返回⼀个数的⾃然对数Int Int(number)取整函数,返回⼀个⼩于number的第⼀整数FormatNumber FormatNumber(number, numdigitsafterdecimal)转化为指定⼩数位数(numdigitsafterdecimal)的数字Rnd Rnd()返回⼀个从0到1的随机数Ubound Ubound(数组名,维数)返回该数组的最⼤下标Lbound Lbound(数组名,维数)返回最⼩下标数注释:Rnd 函数语法:Rnd[(number)]返回⼀随机数。

参数 number 可以是任何的数值表达式。

注解:Rnd 函数返回的随机数介于 0 和 1 之间,可等于 0,但不等于 1。

number 的值会影响 Rnd 返回的随机数:Number的取值返回值⼩于0每次都是使⽤numbe当做随机结果。

⼤于0随机序列中的下⼀个随机数。

等于0最近⼀次产⽣过的随机数。

省略随机序列中的下⼀个随机数。

各种转换函数及功能函数功能CStr(variant)将变量variant转化为字符串类型CDate(variant)将变量variant转化为⽇期类型CInt(variant)将变量variant转化为整数类型CLng(variant)将变量variant转化为长整数类型CSng(variant)将变量variant转化为single类型CDbl(variant)将变量variant转化为double类型CBool(variant)将变量variant转化为布尔类型注释:1整型2、长整型Long(长整型) ,其范围从 -2,147,483,648 到 2,147,483,647。

Wincc V7.3 通过VBS 记录连接PLC的时刻以及断开PLC的时刻的方法

Wincc V7.3 通过VBS 记录连接PLC的时刻以及断开PLC的时刻的方法

Wincc V7.3 通过VBS 记录连接PLC的时刻以及断开PLC的时刻的方法今天看QQ群里面有网友问怎么记下WINCC和PLC连接上和断开的时刻,这个问题有点意思,以前没有留意过,这两个事件也的确重要,于是尝试着做了一下试验成功了。

1. PLC一侧的编程新建两个BOOL变量,比如说是M14.0和M14.1,梯形图如下:这样一来,M14.1应该一直为1.2. WINCC一侧的编程在wincc一侧,新建四个变量:status 外部变量,二进制类型地址M14.1 替换值0 断开连接时替换。

注意这个变量不能从AS-OS传输过来,那种传输过来的不能设置替换功能,设置替换值是为了让PLC与上位机断开连接能够改变WINCC变量值。

ConnStatus:内部变量,二进制类型,初始值为0ConnTime:内部变量日期时间类型,记录连接上的时刻DisConnTime:内部变量日期时间类型,记录断开的时刻新建一个VBS全局脚本,触发器设置为周期性1s,这个周期也可以长一点,减少系统负荷。

Option ExplicitFunction actionDim ConnStatus,Status,ConnTime,DisconnTimeSet ConnStatus=HMIRuntime.Tags("ConnStatus") '内部变量Set Status=HMIRuntime.Tags("Status")Set ConnTime=HMIRuntime.Tags("ConnTime")Set DisConnTime=HMIRuntime.Tags("DisConnTime")If ConnStatus.Read =0 And Status.read=1 Then '连接上了ConnTime.Write NowConnStatus.Write 1End IfIfConnStatus.Read =1 And Status.read=0 Then '连接断开了DisConnTime.Write NowConnStatus.Write 0End IfEnd FunctionWincc画面上添加两个输入输出框,连接ConnTime和DisConnTime变量,输入输出框显示类型为日期时间类型。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

vbscript Split 函数用法用法:传回数组 = Split(原始字串, 要找的字串, 拆成几个数组)描述返回一个下标从零开始的一维数组,它包含指定数目的子字符串。

语法Split(expression[, delimiter[, count[, compare]]])例如用逗号(,)分割字符串为数组复制代码代码如下:str="1,2,3,4"strarr=split(str,",")for i=0 to ubound(strarr)msgbox strarr(i)nextSplit函数语法有如下几部分:部分描述expression 必需的。

包含子字符串和分隔符的字符串表达式。

如果expression是一个长度为零的字符串(""),Split则返回一个空数组,即没有元素和数据的数组。

delimiter 可选的。

用于标识子字符串边界的字符串字符。

如果忽略,则使用空格字符(" ")作为分隔符。

如果delimiter是一个长度为零的字符串,则返回的数组仅包含一个元素,即完整的 expression字符串。

count 可选的。

要返回的子字符串数,-1表示返回所有的子字符串。

compare 可选的。

数字值,表示判别子字符串时使用的比较方式。

关于其值,请参阅“设置值”部分。

参数的设置设置值compare参数的设置值:常数值描述vbUseCompareOption -1 用Option Compare语句中的设置值执行比较。

vbBinaryCompare 0 执行二进制比较。

vbTextCompare 1 执行文字比较。

vbDatabaseCompare 2 仅用于Microsoft Access。

基于您的数据库的信息执行比较。

复制代码代码如下:Private Sub Command1_Click()Dim MyStr As StringMyStr = "1234567123456712345"MyStrs = Split(MyStr, "67")For Each Strs In MyStrsPrint StrsNextEnd Sub输出结果:"12345"、"12345"、"12345"复制代码代码如下:'这个VB程序是让求10个学生的考试成绩的平均分.. '比如95 85 70 75 80 90 60 65 95 100'这10个人的分数的平均分...Private Sub Form_Load()Dim A$(), i As Long, intB As String, s As Integer If Dir("d:\平均分.dat") = vbNullString ThenOpen "d:\平均分.dat" For Output As #1Print #1, "95 85 70 75 80 90 60 65 95 100"Close #1End IfOpen "d:\平均分.dat" For Input As #1Input #1, intBClose #1A = Split(intB, Space(1), -1, 1)For i = 0 To UBound(A, 1)Debug.Print A(i); " ";s = s + A(i)Next iDebug.Print ",10个学生的平均成绩是 :" & s / 10 End SubPrivate Sub command1_Click()Dim AString As StringDim r() As String '把变量按照“,”分割出来的数组Dim rt As String '最终的结果,用换行符代替“,”Dim C As Integer '这个是循环用的AString = "高级,中级,低级,先进"r = Split(AString, ",") '把每个目录都分解出来For C = 0 To UBound(r) 'C由0开始循环到r数组的最大下标rt = rt & vbCrLf & vbCrLf & r(C) '把数组的每一个元素都添加到rt,用回车分割Next C '循环MsgBox rt '输出End SubPrivate Sub Form_Load()Dim strTextDate As StringstrTextDate = "2008-12-1 星期一"MsgBox Format(Split(strTextDate)(0), "yyyy-mm-dd")End Sub当小括号中写0时,返回数组中第一个元素,小括号中写1时返回数组中第二个元素。

依此类推,用这种写法返回数据时,必须用一个空格把字符串分开,其它字符仅当做一个数据。

例:Private Sub Form_Load()Dim AString As StringAString = "高级中级低级先进"MsgBox Split(AString)(0)MsgBox Split(AString)(1)MsgBox Split(AString)(2)MsgBox Split(AString)(3)End Sub以下只返回高级,中级,低级,先进仅当作一个串,即只能返回Split(AString)(0)的值,其它值都产生下标越界错误。

所以用以下方法分解时,只能用一个空格分割,而不能用其它字符分割.复制代码代码如下:Private Sub Form_Load()Dim AString As StringAString = "高级,中级,低级,先进"MsgBox Split(AString)(0)MsgBox Split(AString)(1)MsgBox Split(AString)(2)MsgBox Split(AString)(3)End Subsplit 命令用途将文件分割成几段。

语法要将一个文件分割成包含指定行数的多个文件split [ -l LineCount ] [ -a SuffixLength ] [ File [ Prefix ] ]要将一个文件分割成包含指定字节数的多个文件split -b Number [ k | m ] [ -a SuffixLength ] [ File [ Prefix ] ]描述split 命令读取指定文件,以 1000 行大小写在一组输出文件上。

第一个输出文件名由指定前缀(缺省值 x)和 aa 后缀组合构成,第二个文件名由前缀和 ab 后缀组合构成,如此按字典顺<img class="img InsertH2" alt="段落标题" src="../../System/_resource/blank.gif">序一直到 zz(最多 676 个文件)。

后缀的字母数及因此的输出名称文件数可用 -a 标志增加。

您指定的 Prefix 不能长于 PATH_MAX - 2 个字节(如果指定了 -a 标志,则不能长于 PA TH_MAX - SuffixLength 个字节)。

PATH_MAX 变量指定系统的最大路径名的长度(在 /u sr/include/sys/limits.h 文件中定义)。

如果您不指定输入文件或如果您指定 -(减号)文件名,那么 split 命令从标准输入读取文件。

标志注:-b 和 -l 标志是互斥的。

-a SuffixLength 指定用于形成输出名称文件后缀部分的字母数。

字母数确定可能的输出文件名组合数。

缺省是两个字母。

-b Number 将文件分割成 Number 变量指定的字节数。

将 k(千字节)或 m(兆字节)乘数加到 Number 值的末尾使文件分别分割成 Number*1024 字节或 Number*1,048,576 字节的几个段。

-l LineCount 指定每个输出文件的行数。

缺省值是 1000 行。

退出状态该命令返回以下退出值:0 命令成功运行。

>0 发生错误。

示例复制代码代码如下:1. 要将文件分割成 1000 行的段,请输入:split book此示例将 book 分割成 1000 行的段,命名为 xaa、 xab、 xac 等等。

2. 要将文件分割成 50 行的段并指定文件名前缀,请输入:split -l 50 book sect此示例将 book 分割成 50 行的段,命名为 sectaa、sectab、sectac 等等。

3. 要将文件分割成 2KB 的段,请输入:split -b 2k book此示例将 book 分割成 2*1024 字节的段,命名为 xaa、xab、xac 等等。

4. 要将文件分割成 676 个以上的段,请输入:split -l 5 -a 3 book sect此例将 book 分割成 5 行的段,命名为 sectaaa、sectaab、 sectaac 等等,直到 sectz zz(最多 17,576 个文件)。

相关文档
最新文档