WinCC VBScript教程
WinCC课件十如何使用VBScript
7
WinCC flexible 如何使用VBScript
WinCC Flexible
如何创建报警系统 如何使用VBScript 如何配方
概述 ——脚本及其使用
在脚本中编写VB脚本代码,可以像使用系统函数一样使用项目 中完成的脚本。创建脚本时,确定其型号并定义传送参数。脚本 有两种类型——“函数”和“Sub(子程序)”。“函数”类型的脚本 具有一个返回值。“Sub”类型脚本作为“过程”引用,没有返回 值。
1. 用鼠标在项目窗口中选择“脚本”元素。 2. 在“脚本”弹出式菜单中选择“添加脚本”命令。在工作区 域中脚本被设置为新建标签。脚本组态设置的输入掩码在属性窗 口中打开。 3. 在属性窗口中为脚本输入一个有意义的名称。 4. 从属性窗口中选择脚本类型。 5. 如果脚本中需要参数,那么在属性窗口中输入参数名称并单 击“添加”。 只有当脚本还未在函数列表中组态或在其他脚本中调用时,才 可以改变脚本的参数或类型。
编写步骤如下:
1. 双击想要写入代码的脚本的项目窗口,脚本打开。 2. 编写代码。 3. 如果脚本是“Function”类型,分配函数名称给返回值。
18
WinCC flexible 如何使用VBScript
WinCC Flexible
如何创建报警系统 如何使用VBScript 如何配方
组态脚本 ——组态脚本 访问变量
系统函数及其使用 脚本及其使用 使用函数列表
2
WinCC flexible 如何使用VBScript
WinCC Flexible
如何创建报警系统 如何使用VBScript 如何配方
概述 ——运行脚本的基本信息 系统函数的使用
WinCC flexible提供了预定义的系统函数,以用于常规的组态 任务。可以用它们在运行系统中完成许多任务,而无需编程技巧。 当然也可以用运行脚本来解决更复杂的问题。运行脚本具有编程 接口,可以在运行时访问部分项目数据。运行脚本的使用是针对 具有Visual Basic (VB)和Visual Basic Script (VBS)知识的项目 设计者的。
wincc vbs模块方法
wincc vbs模块方法WinCC VBScript模块方法是用于编程和自动化WinCC项目的一种功能强大的工具。
它可以帮助用户在WinCC界面中实现各种功能和任务,包括数据处理、图表生成、报警处理等等。
在本文中,我们将一步一步回答关于WinCC VBScript模块方法的主题。
1. 什么是WinCC VBScript模块方法?WinCC VBScript模块方法是一种用于编程和自动化WinCC项目的工具。
它基于Visual Basic Scripting语言(VBScript),可以让用户通过编写脚本来实现各种功能和任务。
这些功能包括数据处理、图表生成、报警处理等等。
2. 如何使用WinCC VBScript模块方法?使用WinCC VBScript模块方法需要以下几个步骤:- 打开WinCC开发环境:首先,您需要打开WinCC开发环境,启动WinCC Explorer和VBScript编辑器。
- 创建VBScript模块:在VBScript编辑器中,您可以创建一个新的VBScript模块。
这个模块将成为您编写脚本的地方。
- 编写脚本:在VBScript模块中,您可以使用VBScript语法编写脚本。
您可以利用WinCC提供的函数和方法来实现各种功能和任务。
- 脚本调用:一旦您编写完脚本,您可以在WinCC项目的各个部分中调用脚本。
您可以在按钮的点击事件或某个对象的属性变化事件中调用脚本。
3. WinCC VBScript模块方法的应用场景有哪些?WinCC VBScript模块方法可以应用于各种场景和任务,包括但不限于以下几个方面:- 数据处理:您可以使用VBScript模块方法来处理和计算在WinCC项目中采集到的数据。
例如,您可以编写一个脚本来实现数据的加工、过滤和处理等操作。
- 图表生成:使用VBScript模块方法,您可以生成各种类型的图表,例如曲线图、柱状图和饼图等。
这些图表可以帮助您更好地可视化和分析数据。
WinCCVBScript教程
WinCC VBScript教程一(2010-05-01 08:01:04)转载标签:winccvbscritp教程it本文内容是基于WinCC V6.2中文版的,文中脚本程序均在WinCC V6.2中文版测试通过。
WinCC作为西门子公司的监控组态软件具有非常强的的功能,和很好的系统稳定性。
本系列教程主要讨论WinCC中的VBScript脚本系统在实际开发中的应用。
WinCC提供了丰富完整、功能强大的脚本编程。
主要分为C脚本、VBS脚本和VBA三种具有不同功能、及应用环境的脚本语言。
C脚本提供了访问各种Win32 API的功能,通过对不同的Win32 API的访问可以使用Windows平台及该平台上各种应用的功能。
VBS脚本者为开发者提供了一种易用和快速开发的脚本语言。
VBA提供了对WinCC软件功能扩展的能力。
Visual Basic Scripting Edition 是程序开发语言Visual Basic 家族的最新成员。
VB Script是非常易学的。
如果您已了解Visual Basic 或Visual Basic for Applications,就会很快熟悉VBScript。
如果您没有学过Visual Basic,只要学会VBScript,就能够使用所有的Visual Basic 语言进行程序设计。
本节主要对WinCC脚本、及VB Script进行简单介绍。
下节将介绍VB Script的基本语法。
本文转载自:中华工控168网WinCC VBScript教程二语法(2010-05-02 23:11:25)转载标签:it本节主要介绍VBScript语法,包括数据类型、变量、常数、过程、编码规则。
VBScript 数据类型VBScript 只有一种数据类型,称为 Variant。
Variant 是一种特殊的数据类型,根据使用的方式,它可以包含不同类别的信息。
因为 Variant 是VBScript 中唯一的数据类型,所以它也是VBScript 中所有函数的返回值的数据类型。
wincc中vbs手册
对不起,无法提供完整的WinCC VBS手册,但可以提供一些关于WinCC VBS的基本信息和常见问题解答。
WinCC(Windows Control and Communication)是一种工业自动化领域的监控和通信软件,它支持使用VBScript(VBS)进行脚本编程。
VBS是一种基于VB(Visual Basic)语言的脚本编程语言,它具有简单易学、功能强大的特点。
在WinCC中,VBS可用于自动化控制、数据采集、报表生成、用户管理等方面。
以下是一些关于WinCC VBS的基本信息和常见问题解答:1. 什么是WinCC VBS?答:WinCC VBS是用于在WinCC中实现自动化控制、数据采集、报表生成、用户管理等功能的脚本编程语言。
2. WinCC VBS与VBScript有何区别?答:WinCC VBS是基于VBScript的扩展版本,它增加了对WinCC特定功能的支持,如数据类型转换、文件操作、图形显示等。
3. 如何安装和使用WinCC VBS?答:安装WinCC时,需要同时安装VBS插件。
安装完成后,您可以通过编写VBS脚本并将其添加到WinCC项目中,使用VBS实现各种功能。
4. WinCC VBS支持哪些数据类型?答:WinCC VBS支持多种数据类型,包括字符串、数字、日期/时间、布尔值、数组和对象等。
5. 如何调试WinCC VBS脚本?答:您可以使用VBScript调试器来调试WinCC VBS脚本。
调试器提供了变量查看、断点设置、逐步执行等功能,帮助您找到脚本中的错误并进行修复。
6. 如何处理WinCC VBS中的错误?答:当WinCC VBS脚本中出现错误时,调试器会记录错误信息并提示您在哪里出错。
根据错误信息,您可以找到并修复代码中的问题。
7. WinCC VBS可以与哪些外部设备进行通信?答:WinCC VBS支持与多种外部设备进行通信,如串口设备、网络设备、PLC等。
Wincc的VBS脚本使用
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"。
WINCC VBS脚本过程调用
WINCC VBS脚本过程调用
如图1所示:我建立了带参数的过程procedure2
如图2所示:我在一个按钮的点击左键的动作中定义VBS动作,调用过程procedure2,如果我直接给procedure2赋值常数的话,能够将最终的结果输出到变量NewTag;
如图3所示:如果我在调用时,赋值的是两个变量,为什么就不行了,哪里出错了?
问题补充:
为什么WINCC的VBS脚本与WINCCFLEXIBLE2008的VBS脚本用起来那么不一样啊?在WINCCFLEXIBLE2008中调用SUB类型与函数类型都很方便啊。
为什么在WINCC中调用这么麻烦。
而且在WINCC 中调用SUB类型的过程,不能给其变量赋值吧?只能事先就把目标变量写到过程里面去。
能不能给我点关于WINCC中对于带参数与不带参数的VBS过程的调用方法与案例。
图片说明:1,图1 2,图2 3,图3
最佳答案
数据类型不匹配,你的变量是对象而不是数值,参数改为AA.Read、BB.Read即可。
WINCCVBS脚本文件操作
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脚本使用
变量读写: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脚本 Sub和Function过程
Sub OnClick(Byval Item) Dim a a=100 f(a) End Sub
5 递归函数过程
Function f(n) If n>0 Then f=n*f(n-1) Else f=1 End If Msgbox f End Function
Sub OnClicub
Sub b( t ) t=t-1 End Sub
4 使用数组作传递参数
Sub OnClick(ByVal Item) Dim b(2) b(1) = 1 b(2) = 2 xb End Sub
Sub x(a()) Dim s s=a(1)+a(2) Msgbox s End Sub
6 Function函数过程
3 传递参数是缺省的是按地址传递参数,有关键参数ByVal是按 值传递参数。
Sub scall() Dim x x =2 b(x) Msgbox x End Sub //结果为2,原始的数值没改变
Sub b(Byval t ) t=t-1 End Sub
Sub scall() Dim x x =2 b(x) Msgbox x //结果为1,原始的数值改变了 End Sub
WINCC VBS脚本 SUB和FUNCTION过程01
1. Sub过程是一系列由Sub和End Sub语句包围的VBScript语句, 它们执行操作但不返回值。 Sub过程可以接受参数(调用过程 传递的常量,变量或表达式)。 如果Sub过程没有参数,则其 Sub语句必须包含一个空的括号()。
2. Function过程类似于Sub过程,有返回值
Wincc的VBS脚本使用
1 Dim objTag Set objTag=("变量名")2 ("变量名").Read写:1 Dim objTag Set objTag=("变量名")1 '向变量写入数值12 ("变量名").Write 1中间变量的值写入:Dim objTag,valSet objTag=("变量名")val= '中间变量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= 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) 嵌套循环的作用和写法 &用于连接字符串5) vbCrLf相当于键盘上的回车键五、数组定义:dim 数组名(元素数量), 这里大家要注意一点, 这里定义的元素数量总是比你要的要少一个, 因为一个数组的起点是0号数据而不是1, 所以大家一定要小心: 你需要10个数据, 就定义"9"。
Wincc的VBS脚本使用演示教学
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却不发生错误呢?这时
call who(yname)
sub
who(cname)
msgbox("你好" & cname)
msgbox("感谢你阅读我的课程")
msgbox("这是基础部分的最后一课")
end sub
按钮翻转程序
Sub OnClick(Byval Item)
Dim tag1
Set tag1=HMIRuntime.Tags("Q02")
WinCC Vbs中文手册
可以使用VBSWinCC对所有图形编辑器对象进行访问,以使图形运行环境动态化。
根据变量或周期性(例如闪烁)情况,可在执行操作(例如在按钮上单击鼠标)时使图形对象动态化。
以下示例说明如何在鼠标单击后更改图形对象。
步骤在以下示例中,每次单击鼠标时运行系统中圆的半径都会设置为20:Dim objCircleSet objCircle= ScreenItems(Circle1)objCircle.Radius = 202.实例:定义对象的颜图形对象的颜色通过RGB值(红/绿/蓝)定义。
可以设置或读出图形对象的颜色值。
步骤以下示例将“ScreenWindow1”的填充颜色定义为蓝色:Dim objScreenSet objScreen = HMIRuntime.Screens(ScreenWindow1)objScreen.FillStyle = 131075objScreen.FillColor = RGB(0, 0, 255)3.例:如何组态语言切换1 / 18可使用VBS切换WinCC的运行系统语言。
最常用的是包含相应语言代码的按钮,这些按钮位于项目的起始页上。
在VBS中通过使用国家代码(例如,1031表示德语-默认,1033表示英语-美国等)指定运行系统语言。
有关所有国家代码的汇总,请参见标题为“区域方案ID (LCID)图”的主题下的VBScript基本知识。
步骤:使用按钮上的“Mouseclick”事件创建VBS动作,输入以下动作代码将运行系统语言切换为德语:nguage = 1031可以使用VBS终止WinCC运行系统,例如,通过鼠标单击,依靠变量值或其它事件(例如,启动运行系统时密码的多次错误输入)。
要执行的操作以下示例会终止WinCC运行系统:HMIRuntime.Stop5.实例:全局组态画面更改简介VBS可用于启动全局画面更改,因而会在分布式系统的客户机上显示服务器中的画面。
为此,服务器的服务器前缀必须位于目标画面之前。
WINCC VBS脚本 文件操作
'myleirong = txtfile.ReadLine
txtfile.SkipLine
myleirong1 = txtfile.ReadLine
'MsgBox myleirong
VBS ttfile.deletefolder
下面是其他一些经常用到的文件操作(注意:可用于所有格式的文件。红字是你的上文脚本已经定义过的)
VBS ttfile.size 返回文件大小
VBS ttfile.type 返回文件类型
请高手赐教!感激ing~ 问题点数:10、回复次数:4
1 楼superdullwolf(超级大笨狼,每天要自强,MVP)
脚本运行时库
处理文件
语言
JScript
VBScript
显示所有语言
有两种主要的文件处理类型:
创建、添加或删除数据,以及读取文件
移动、复制和删除文件
//判断d盘下是否有文件1.txt
VBS pd1=fso.FileExists(d:\1.txt)
if 0=pd1
//没有的话,在d盘下创建一个不可覆盖的文件1.txt
VBS set txtfile=fso.createtextfile("d:\1.txt",false)
//以在末尾写入的方式打开1.txt
Const ForWriting = 2
Set fso = CreateObject("Scripting.FileSystemObject")
博途中WinCCVBS脚本的基础用法
博途中WinCCVBS脚本的基础用法“PLC技术圈”VBS 脚本可以用在 WinCC Comfort/Advanced Runtime。
下面就是一些很实用技巧,希望对大家有所帮助!1、为什么一个由内部变量的“数值改变” 事件触发的脚本不被执行?如果使用一个内部变量调用另外一个内部变量,以此,例如被调用的变量又去执行一个脚本(比如,根据变量变化),此时一个安全机制会阻止这个功能被执行。
此安全功能是为了阻止连续的执行。
例如在内部变量“HMI_Tag_01” 属性下,“更改数值”事件去置位内部变量“HMI_Tag_02” 中的某一位。
同时内部变量“HMI_Tag_02” 的“更改数值”事件下又调用一个脚本。
结果:这个脚本不会被执行。
解决办法使用和控制器通讯的外部变量。
请注意,通过使用外部变量可以规避上述安全机制。
在项目运行时可能会产生问题。
2、如何在一个脚本中访问数组中的元素?对数组元素的访问是通过数组的名称和数组中由括号分隔的数组索引来实现的:“SmartTags('Array Name')(array index)”例如访问数组 'DB10_HMI_Data' 的第二个元素:Dim Tag_01 'Internal script tagTag_01 =SmartTags('DB10_HMI_Data')(2)注意使用下面语法访问字符串类型数组中的元素:Dim Tag_01 'Internal script tagTag_01 =SmartTags('DB10_HMI_Data[2]')例如通过一个循环描述数组'DM10_HMI_Data' 的第一个元素至第十一个元素Dim Tag_01For Tag_01=0 to 10SmartTags('DB10_HMI_Data')(Tag_01)= 5Next局部脚本的数组(该数组仅在此脚本中可用)可以使用同样的方式查询,对于多维数组,各个维度通过一个逗号分隔开。
西门子 HMI WinCC V7.2 WinCC:脚本编辑(VBS、ANSI-C、VBA)系统手册说
2
VBA for Automated Configuration
3
Print of the Online Help
02/2013
A5E32315920-AA
Legal information
Warning notice system This manual contains notices you have to observe in order to ensure your personal safety, as well as to prevent damage to property. The notices referring to your personal safety are highlighted in the manual by a safety alert symbol, notices referring only to property damage have no safety alert symbol. These notices shown below are graded according to the degree of danger.
Table of contents
1 VBS for Creating Procedures and Actions..................................................................................................11
Proper use of Siemens products Note the following:
WARNING Siemens products may only be used for the applications described in the catalog and in the relevant technical documentation. If products and components from other manufacturers are used, these must be recommended or approved by Siemens. Proper transport, storage, installation, assembly, commissioning, operation and maintenance are required to ensure that the products operate safely and without any problems. The permissible ambient conditions must be complied with. The information in the relevant documentation must be observed.
WinCC VBScript教程
WinCC VBScript教程一(2010-05-01 08:01:04)转载标签:winccvbscritp教程it本文内容是基于WinCC V6.2中文版的,文中脚本程序均在WinCC V6.2中文版测试通过。
WinCC作为西门子公司的监控组态软件具有非常强的的功能,和很好的系统稳定性。
本系列教程主要讨论WinCC中的VBScript脚本系统在实际开发中的应用。
WinCC提供了丰富完整、功能强大的脚本编程。
主要分为C脚本、VBS脚本和VBA三种具有不同功能、及应用环境的脚本语言。
C脚本提供了访问各种Win32 API的功能,通过对不同的Win32 API的访问可以使用Windows平台及该平台上各种应用的功能。
VBS脚本者为开发者提供了一种易用和快速开发的脚本语言。
VBA提供了对WinCC软件功能扩展的能力。
Visual Basic Scripting Edition 是程序开发语言Visual Basic 家族的最新成员。
VB Script是非常易学的。
如果您已了解Visual Basic 或Visual Basic for Applications,就会很快熟悉VBScript。
如果您没有学过Visual Basic,只要学会VBScript,就能够使用所有的Visual Basic 语言进行程序设计。
本节主要对WinCC脚本、及VB Script进行简单介绍。
下节将介绍VB Script的基本语法。
本文转载自:中华工控168网WinCC VBScript教程二语法(2010-05-02 23:11:25)转载标签:it本节主要介绍VBScript语法,包括数据类型、变量、常数、过程、编码规则。
VBScript 数据类型VBScript 只有一种数据类型,称为 Variant。
Variant 是一种特殊的数据类型,根据使用的方式,它可以包含不同类别的信息。
因为 Variant 是VBScript 中唯一的数据类型,所以它也是VBScript 中所有函数的返回值的数据类型。
WinCC-Vbs中文手册
1.实例:访问图形编辑器中的对象可以使用 VBS WinCC 对所有图形编辑器对象进行访问,以使图形运行环境动态化。
根据变量或周期性(例如闪烁)情况,可在执行操作(例如在按钮上单击鼠标)时使图形对象动态化。
以下示例说明如何在鼠标单击后更改图形对象。
步骤在以下示例中,每次单击鼠标时运行系统中圆的半径都会设置为 20:Dim objCircleSet objCircle= ScreenItems("Circle1”)objCircle.Radius = 202.实例:定义对象的颜图形对象的颜色通过 RGB 值(红/绿/蓝)定义。
可以设置或读出图形对象的颜色值。
步骤以下示例将“ScreenWindow1”的填充颜色定义为蓝色:Dim objScreenSet objScreen = HMIRuntime。
Screens(”ScreenWindow1”)objScreen.FillStyle = 131075objScreen。
FillColor = RGB(0, 0, 255)3.例:如何组态语言切换可使用 VBS 切换 WinCC 的运行系统语言。
最常用的是包含相应语言代码的按钮,这些按钮位于项目的起始页上。
在 VBS 中通过使用国家代码(例如,1031 表示德语 - 默认,1033 表示英语 - 美国等)指定运行系统语言.有关所有国家代码的汇总,请参见标题为“区域方案 ID (LCID) 图”的主题下的VBScript 基本知识.步骤:使用按钮上的“Mouse click”事件创建 VBS 动作,输入以下动作代码将运行系统语言切换为德语:HMIRuntime。
Language = 10314.实例:禁用运行系统简介可以使用 VBS 终止 WinCC 运行系统,例如,通过鼠标单击,依靠变量值或其它事件(例如,启动运行系统时密码的多次错误输入).要执行的操作以下示例会终止 WinCC 运行系统:HMIRuntime。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
WinCC VBScript教程一(2010-05-01 08:01:04)转载标签:winccvbscritp教程it本文内容是基于WinCC V6.2中文版的,文中脚本程序均在WinCC V6.2中文版测试通过。
WinCC作为西门子公司的监控组态软件具有非常强的的功能,和很好的系统稳定性。
本系列教程主要讨论WinCC中的VBScript脚本系统在实际开发中的应用。
WinCC提供了丰富完整、功能强大的脚本编程。
主要分为C脚本、VBS脚本和VBA三种具有不同功能、及应用环境的脚本语言。
C脚本提供了访问各种Win32 API的功能,通过对不同的Win32 API的访问可以使用Windows平台及该平台上各种应用的功能。
VBS脚本者为开发者提供了一种易用和快速开发的脚本语言。
VBA提供了对WinCC软件功能扩展的能力。
Visual Basic Scripting Edition 是程序开发语言Visual Basic 家族的最新成员。
VB Script是非常易学的。
如果您已了解Visual Basic 或Visual Basic for Applications,就会很快熟悉VBScript。
如果您没有学过Visual Basic,只要学会VBScript,就能够使用所有的Visual Basic 语言进行程序设计。
本节主要对WinCC脚本、及VB Script进行简单介绍。
下节将介绍VB Script的基本语法。
本文转载自:中华工控168网WinCC VBScript教程二语法(2010-05-02 23:11:25)转载标签:it本节主要介绍VBScript语法,包括数据类型、变量、常数、过程、编码规则。
VBScript 数据类型VBScript 只有一种数据类型,称为 Variant。
Variant 是一种特殊的数据类型,根据使用的方式,它可以包含不同类别的信息。
因为 Variant 是VBScript 中唯一的数据类型,所以它也是VBScript 中所有函数的返回值的数据类型。
最简单的 Variant 可以包含数字或字符串信息。
Variant 用于数字上下文中时作为数字处理,用于字符串上下文中时作为字符串处理。
这就是说,如果使用看起来象是数字的数据,则VBScript 会假定其为数字并以适用于数字的方式处理。
与此类似,如果使用的数据只可能是字符串,则VBScript 将按字符串处理。
也可以将数字包含在引号(" ") 中使其成为字符串。
Variant 子类型除简单数字或字符串以外,Variant 可以进一步区分数值信息的特定含义。
例如使用数值信息表示日期或时间。
此类数据在与其他日期或时间数据一起使用时,结果也总是表示为日期或时间。
从Boolean 值到浮点数,数值信息是多种多样的。
Variant 包含的数值信息类型称为子类型。
大多数情况下,可将所需的数据放进 Variant 中,而 Variant 也会按照最适用于其包含的数据的方式进行操作。
下表显示 Variant 包含的数据子类型:子类型描述Empty未初始化的 Variant。
对于数值变量,值为0;对于字符串变量,值为零长度字符串("")。
Null不包含任何有效数据的 Variant。
Boolean包含 True 或 False。
Byte包含0 到255 之间的整数。
Integer包含-32,768 到32,767 之间的整数。
Currency-922,337,203,685,477.5808 到922,337,203,685,477.5807。
Long包含-2,147,483,648 到2,147,483,647 之间的整数。
Single包含单精度浮点数,负数范围从-3.402823E38 到-1.401298E-45,正数范围从1.401298E-45 到3.402823E38。
Double包含双精度浮点数,负数范围从-1.79769313486232E308 到-4.94065645841247E-324,正数范围从4.94065645841247E-324 到1.79769313486232E308。
Date (Time)包含表示日期的数字,日期范围从公元100 年 1 月 1 日到公元9999 年12 月31 日。
String包含变长字符串,最大长度可为20 亿个字符。
Object包含对象。
Error包含错误号。
您可以使用转换函数来转换数据的子类型。
另外,可使用 VarType函数返回数据的 Variant 子类型。
VBScript 变量变量是一种使用方便的占位符,用于引用计算机内存地址,该地址可以存储脚本运行时可更改的程序信息。
例如,可以创建一个名为ClickCount 的变量来存储用户单击Web 页面上某个对象的次数。
使用变量并不需要了解变量在计算机内存中的地址,只要通过变量名引用变量就可以查看或更改变量的值。
在VBScript 中只有一个基本数据类型,即 Variant,因此所有变量的数据类型都是Variant。
声明变量声明变量的一种方式是使用 Dim 语句、Public 语句和 Private 语句在脚本中显式声明变量。
例如:Dim DegreesFahrenheit声明多个变量时,使用逗号分隔变量。
例如:Dim Top, Bottom, Left, Right另一种方式是通过直接在脚本中使用变量名这一简单方式隐式声明变量。
这通常不是一个好习惯,因为这样有时会由于变量名被拼错而导致在运行脚本时出现意外的结果。
因此,最好使用 Option Explicit 语句显式声明所有变量,并将其作为脚本的第一条语句。
命名规则变量命名必须遵循VBScript 的标准命名规则。
变量命名必须遵循:第一个字符必须是字母。
不能包含嵌入的句点。
长度不能超过255 个字符。
在被声明的作用域内必须唯一。
变量的作用域与存活期变量的作用域由声明它的位置决定。
如果在过程中声明变量,则只有该过程中的代码可以访问或更改变量值,此时变量具有局部作用域并被称为过程级变量。
如果在过程之外声明变量,则该变量可以被脚本中所有过程所识别,称为 Script 级变量,具有脚本级作用域。
变量存在的时间称为存活期。
Script 级变量的存活期从被声明的一刻起,直到脚本运行结束。
对于过程级变量,其存活期仅是该过程运行的时间,该过程结束后,变量随之消失。
在执行过程时,局部变量是理想的临时存储空间。
可以在不同过程中使用同名的局部变量,这是因为每个局部变量只被声明它的过程识别。
给变量赋值创建如下形式的表达式给变量赋值:变量在表达式左边,要赋的值在表达式右边。
例如: B = 200标量变量和数组变量多数情况下,只需为声明的变量赋一个值。
只包含一个值的变量被称为标量变量。
有时候,将多个相关值赋给一个变量更为方便,因此可以创建包含一系列值的变量,称为数组变量。
数组变量和标量变量是以相同的方式声明的,唯一的区别是声明数组变量时变量名后面带有括号( )。
下例声明了一个包含11 个元素的一维数组:Dim A(10)虽然括号中显示的数字是10,但由于在VBScript 中所有数组都是基于0 的,所以这个数组实际上包含11 个元素。
在基于0 的数组中,数组元素的数目总是括号中显示的数目加1。
这种数组被称为固定大小的数组。
在数组中使用索引为数组的每个元素赋值。
从0 到10,将数据赋给数组的元素,如下所示: A(0) = 256 A(1) = 324 A(2) = 100 . . . A(10) = 55与此类似,使用索引可以检索到所需的数组元素的数据。
例如:. . . SomeVariable = A(8) . . .数组并不仅限于一维。
数组的维数最大可以为60(尽管大多数人不能理解超过 3 或4 的维数)。
声明多维数组时用逗号分隔括号中每个表示数组大小的数字。
在下例中,MyTable 变量是一个有6 行和11 列的二维数组:Dim MyTable(5, 10)在二维数组中,括号中第一个数字表示行的数目,第二个数字表示列的数目。
也可以声明动态数组,即在运行脚本时大小发生变化的数组。
对数组的最初声明使用 Dim 语句或 ReDim 语句。
但是对于动态数组,括号中不包含任何数字。
例如:Dim MyArray() ReDim AnotherArray()要使用动态数组,必须随后使用 ReDim 确定维数和每一维的大小。
在下例中,ReDim 将动态数组的初始大小设置为25,而后面的 ReDim 语句将数组的大小重新调整为30,同时使用 Preserve关键字在重新调整大小时保留数组的内容。
ReDim MyArray(25) . . . ReDim Preserve MyArray(30)重新调整动态数组大小的次数是没有任何限制的,将数组的大小调小时,将会丢失被删除元素的数据。
VBScript 常数常数是具有一定含义的名称,用于代替数字或字符串,其值从不改变。
VBScript 定义了许多内部常数。
详细信息,请参阅 VBScript 语言参考。
创建常数您可以使用 Const 语句在VBScript 中创建用户自定义常数。
使用 Const 语句可以创建名称具有一定含义的字符串型或数值型常数,并给它们赋原义值。
例如:Const MyString = "这是一个字符串。
" Const MyAge = 49请注意字符串文字包含在两个引号(" ") 之间。
这是区分字符串型常数和数值型常数的最明显的方法。
日期文字和时间文字包含在两个井号(#) 之间。
例如:Const CutoffDate = #6-1-97#最好采用一个命名方案以区分常数和变量。
这样可以避免在运行脚本时对常数重新赋值。
例如,可以使用“vb”或“con”作常数名的前缀,或将常数名的所有字母大写。
将常数和变量区分开可以在开发复杂的脚本时避免混乱。
VBScript 运算符VBScript 有一套完整的运算符,包括算术运算符、比较运算符、连接运算符和逻辑运算符。
运算符优先级当表达式包含多个运算符时,将按预定顺序计算每一部分,这个顺序被称为运算符优先级。
可以使用括号越过这种优先级顺序,强制首先计算表达式的某些部分。
运算时,总是先执行括号中的运算符,然后再执行括号外的运算符。
但是,在括号中仍遵循标准运算符优先级。
当表达式包含多种运算符时,首先计算算术运算符,然后计算比较运算符,最后计算逻辑运算符。
所有比较运算符的优先级相同,即按照从左到右的顺序计算比较运算符。
算术运算符和逻辑运算符的优先级如下所示:算术运算符比较运算符逻辑运算符描述符号描述符号描述符号求幂^等于=逻辑非Not负号-不等于<>逻辑与And乘*小于<逻辑或Or除/大于>逻辑异或Xor整除\小于等于<=逻辑等价Eqv求余Mod大于等于>=逻辑隐含Imp加+对象引用比较Is减-字符串连接&当乘号与除号同时出现在一个表达式中时,按从左到右的顺序计算乘、除运算符。