wincc中使用VBS脚本读写SQLServer数据库文件

合集下载

在WinCC中通过VBS操作SQL Server2005

在WinCC中通过VBS操作SQL Server2005

在WinCC中通过VBS操作SQL Server2005在项目中需要在一定条件满足时,保存一些数据到数据库中,并可根据条件查询。

考虑到WinCC6.2以后采用的就是SQL Server2005数据库,所以直接利用该数据库即可,通过SQL Server Management Studio(SSMS)可以创建自己的数据库,并安要求创建好表。

一、数据库连接在SQL Server Management Studio(SSMS)中创建名为evcp的数据库,再创建名为evcp的表,然后根据需要创建Columns,在本项目中创建了norder(流水号)、pileno(桩号)、cardno(卡号)、operno(员工号)、energy(电量)、cost (金额)、period(时长)、rate(费率)、pdate(日期)和ptime(时间)。

在本项目中采用ODBC的方式连接数据库,首先在控制面板中创建好数据源,配置好SQL Server驱动数据源,命名为evcs。

二、数据写入要求在一个状态量值为1的时候完成数据库的保存,等数据保存完后将状态量清0。

1、先在全局脚本VBS项目模块中创建函数savedata,代码如下:Sub savedataDim objConnectionDim objCommandDim objRecordsetDim strConnectionStringDim strSQLDim norder,pileno,cardno,operno,energy,cost,period,rate,pdate,ptimenorder=HMIRuntime.Tags("norder").Readpileno= HMIRuntime.Tags("pileno").Readcardno=HMIRuntime.Tags("cardno").Readoperno= HMIRuntime.Tags("operno").Readenergy= HMIRuntime.Tags("energy").Readcost= HMIRuntime.Tags("cost").Readperiod= HMIRuntime.Tags("period").Readrate= HMIRuntime.Tags("rate").Readpdate= HMIRuntime.Tags("pdate").Readptime= HMIRuntime.Tags("ptime").ReadstrConnectionString = "Provider=MSDASQL;DSN=evcs;UID=;PWD=;"Set objConnection = CreateObject("ADODB.Connection")objConnection.ConnectionString = strConnectionStringobjConnection.OpenSet objRecordset = CreateObject("ADODB.Recordset")Set objCommand = CreateObject("mand")objCommand.ActiveConnection = objConnectionstrSQL = "insert into evcp (norder,pileno,cardno,operno,energy,cost,period,rate,pdate,ptime) values ("&_"'"&norder&"',"&_"'"&pileno&"',"&_"'"&cardno&"',"&_"'"&operno&"',"&_"'"&energy&"',"&_"'"&cost&"',"&_"'"&period&"',"&_"'"&rate&"',"&_"'"&pdate&"',"&_"'"&ptime&"')"'MsgBox (strSQL)mandText = strSQLobjCommand.ExecuteSet objCommand = NothingobjConnection.CloseSet objRecordset = NothingSet objConnection = NothingEnd Sub2、在全局脚本VBS动作中创建1秒周期的周期性出发动作,并添加如下代码:Option ExplicitFunction actionDim v1v1=HMIRuntime.Tags("satuse").ReadIf v1 ThenCall savedataHMIRuntime.Tags("satuse").Write 0End ifEnd Function这样当satuse值为1时系统自动保存数据三、数据查询数据的查询要复杂一些,需要用到MSFlexGrid控件、MS Form2 ComboBox 控件和MS Form2 TextBox,这几个控件可以单独注册也可以安装VB6后自动添加。

WINCCVBS脚本文件操作

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脚本使用

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读写SQLServer数据库(一)

自动化控制技术-Wincc中VBS读写SQLServer数据库(一)

自动化控制技术-Wincc中VBS读写SQLServer数据库(一)一种通用访问SQL Server数据库的方式本文全面介绍了在Wincc中如何通过使用VBS脚本对SQL Server数据库进行读写,为Wincc在非标准功能的使用上,提供一个基础。

【关键词】TIA;Wincc;自控;VBS;SQL Server;MSFlexGrid;Microsoft1Wincc数据库简介在西门子Wincc组态软件中,软件组态信息的存储以及项目中使用到的历史数据的存储,采用的数据库为SQL Server数据库。

从Wincc 6.2版本以后,随着数据库系统安全策略的提高,软件组态信息的存储以及历史数据的存储是将数据通过压缩的形式进行存储,即加密形式存储。

这样一来,如果想访问Wincc的数据,需要Wincc系统中增加一套Connectivity授权(工业数据桥)。

VBS通过Connectivity访问历史数据和标准的SQL语法有很大不同,这种形式,我们会在“自动化控制技术-Wincc中VBS读写SQLServer数据库(二)”中进行介绍。

本文将首先介绍VBS如何访问我们自己建立的数据库。

2软件环境1、操作系统:Win7 64位旗舰版2、Wincc V7.33、Microsoft SQL Server 2008 R24、Microsoft Office 20075、Visual Basic 6.03建立数据库1、打开数据库管理器在开始之前,先在数据库中建立一个我们需要用到的数据库。

依次点击“开始- Microsoft SQL Server 2008 R2- SQL Server Management Studio”打开数据库管理器,路径如下图2、连接数据库服务器打开数据库管理器后,需要选择本地数据库库服务器,如果本地计算机只有单机Wincc系统,在Server name选项中是默认的本地服务器的名称。

如果是客户端,则需要在Server name后面的下拉菜单中选择数据库服务器的名称。

wincc中vbs脚本查询、写入和删除自定义sql2005数据库记录的语句

wincc中vbs脚本查询、写入和删除自定义sql2005数据库记录的语句

wincc中vbs脚本查询、写入和删除自定义sql2005数据库记录的语句与数据库已经建立连接,也可以关闭数据库。

看深入浅出wincc书上的语句不明白。

表名称:dxwtwo,字段名:xh,xm,gz大侠给写写:查询记录的语句,条件xh=100写入记录的语句,xh=200,xm=张强删除记录的语句,xh=333,xm=王五我按照sql的语句写入vbs脚本,wincc报错。

问题补充:我按照下面图片中的语句进行试验,还是不行:1、查询语句在*号位置报错,语句不执行,去了*号也不行2、删除语句在from和表格名称dxwtwo中间报错,语句也不执行我声明了连接;cn变量:is_sql麻烦你再给看一看。

谢谢。

图片说明:1,报错语句图片最佳答案Select*FromdxwtwoWherexh=100InsertIntodxwtwo(xh,xm)Values(200,”张强”)DeleteFromdxwtwoWhe rexh=333ANDxm=“王五”在wincc的vbs中,先定义一个变量,比如sql,而后赋值,比如sql=“InsertIntodxwtwo(xh,xm)Values(200,”“““张强”“““)”注意这时候张强作为字符串,用单引号标记。

然后,你定义的连接名.execute(sql)即可啊哈哈错得那两句应该删掉,我们定义is_sql变量是为了将sql语言赋予这个变量,所以要以字符串的形式(就是得加引号),通过execute方法来把对数据库的操作语言发送给SQLserver,由SQLserver执行这条语句。

如果想delete这种不需要返回值得,直接执行即可,如果像select这种,需要返回值的,要用借助ADO,来完成。

哈哈另一个问题也是你提的吧,查询结果赋给变量的那个问题。

(完整word版)wincc用户归档VB脚本与SQL使用说明

(完整word版)wincc用户归档VB脚本与SQL使用说明

一、报表建立本次项目要求:所有测量变量在一个工作周期结束后进行存储,也就是事件触发,不同与以往的周期触发。

1、要求能存储字符串类型的数据,所以本次报表使用用户归档来实现,因为变量记录工具是不能存储字符串类型数据的。

而且用户归档控件的事件触发比变量记录要灵活的多。

2、要求可以将数据导出到EXCEL表格中。

实现对数据的编辑。

具体实现方法如下:第1项不用过多在意,了解一下即可,从第2项起为主要内容。

第1项的作用就是讲解怎样触发用户归档存储数据的。

1、在建立报表前首先要新建两个系统变量,用于日期和时间的存储。

在WINCC组态环境内——右击变量管理——单击添加新的驱动程序——找到System Info.chn——单击打开如下图建立两个变量分别为riqi 和shijian——作为日期和时间的存储变量。

再建立两个控制变量,此变量需要与下位机程序进行连接。

分别为A_ID、A_JOP在下位机程序里进行编写,当自控程序运行完一边后将这两个变量分别赋值-1、6赋值结束后再将0赋给这两个变量。

程序如下图此目的是用于用户归档数据存储时事件触发条件,在后面用户归档建立会详细描写。

2、建立用户归档WINCC在第一次安装完后是没有用户归档控件的,需要再次将光盘插入重新安装一次,在选项中将用户归档添加进行安装。

单击下一步先点击创建,在创建变量完成后,将上面建立的两个变量A_ID/A_JOP分别添加到ID和指令内,方法:单击选择按钮——浏览变量添加即可。

此项是用于数据存储触发的。

也就是当ID和指令分别为-1和6时用户归档存储一次数据。

详细如下图单击完成实现对用户归档的创建。

3、创建VB脚本动作,是用于用户归档事件触发的动作,没有此动作用户归档将无法存储数据。

方法:打开VB脚本——单击文件——新建——动作。

然后将下面程序写入即可。

Function actionDim xiaoshiDim riqiDim flagSet flag = HMIRuntime.Tags("flag")flag.ReadIf flag.Value =1 Thenriqi=CStr(Year(Now))&"-"&CStr(Month(Now))&"-"&CStr(Day(Now))Dim A_IDSet A_ID = HMIRuntime.Tags("A_ID")Dim A_JOPSet A_JOP = HMIRuntime.Tags("A_JOP")A_ID.ReadA_ID.Write -1A_JOP.ReadA_JOP.Write 6End If输入完之后将其保存。

用WinCC脚本实现对SQL_Server数据库管理及产品报表

用WinCC脚本实现对SQL_Server数据库管理及产品报表

因此 ,在该 项 目中 ,我们 尝试 了用 WinCC的 VBS
图 1 钢 板 库 数 据 信 息 画 面
收 稿 日期 :2011-12—03 作者简 介 :丛雪松 (198O一 ),男 ,吉林公 主岭人 ,助理工程师 ,研究方 向:冶金 自动化 。
《装备制造技术)2012年第 3期
3 数据库 的建 立
Open动作 ,写人数据完成后 ,要将数据库关闭 ,即 Close动作。在生产线 自动生产时 ,数据记录是 自动实 现 的 ,当 自动化 系 统生 成 钢坯 信 息后 ,将触 发 写 入 动 作将 数 据写 入 到数 据 表 中 ,不 需 要操 作 工 干 预 ,当 生 产线设备出现异常情况 ,需要手动干预设备时 ,就有 可能导致控制系统 自动记 录数据的错误。因此本文 中提供 了手动修改数据记 录的功能 ,可以在经过授
中图分类号 :TP391
文献标识码 :B
文章编号 :1672—545X(2012)03—0046—03
winCc(wind0ws Control Center)是 由西 门子公 司 开发 的上位机 组态软件 ,该人机界 面和监控管理 系统 , 包括图形设计器、变量管理、报警记录、报表编辑器 、全 局脚本 、用户管理等功能。在工业现场基础 自动化系统 (PLC、DSC等 )技术迅速发展的基础上,得到了广泛的
用 当 中 ,都是 操 作人 员 人 工记 录 上述 数据 ,然后 输入
到相 应 的 Excel表格 当 中 ,需 要 时再 到表 格 中查 找 ,
每天 要 生 产成 百 上 千 只成 品钢 坯 ,操 作 人员 的工作
量可想而知 ,而且人工记录数据信息也容易 出现错 误 ,不 利 于产 品 的管理 。

WinCC 使用VB或VBS访问WINCC6.0历史数据库

WinCC 使用VB或VBS访问WINCC6.0历史数据库

WinCC 使用VB或VBS访问WINCC6.0历史数据库(2011-04-18 13:56:52)从WINCC6.0开始,就开始采用SQL3000SP3做为WINCC的后台数据库了。

而这个SQL2000SP3是由SIEMENS为WINCC做了二次开发的,采用了一些独有的技术,一些是我们知道的,一些是我们所不知道的。

所以当我们打开SQL管理器和用高级语言访问时,和常规的SQL访问的方法是有一些出入的。

即使我们能够很轻易的访问ACCESS。

普通的SQL2000的数据库,不见的你就能顺利的访问到WINCC 的历史数据。

官方的资料显示:1、WINCC的数据有设计时数据库和运行时数据库,分别放在相关的目录,对于数据使用者而言,我们知道就可以了。

设计时数据库我们了解没有什么意义。

但运行时数据库至少我们要知道它的名字,它的名字一般是“CC_工程名_年_月_日_时_分_秒R”,这个对于我们使用者而言,是很重要的的,无论你准备以DSN 或OLEDB的方式访问数据库,你都需要它。

如果你实在不知道它的名,你可以将WINCC激活,然后在“ODBC管理器”或“SQL企业管理器”下的“DATABASE”可以看到它,它就在那里.....2、运行时库的表的问题其实,这个是很多的用户很关心的问题。

常规的使用过高级语言访问SQL的技术人员都知道,很多的SQL语句,如SELECT 、INSERT INTO等等,都需要指明在某一库的表中对它进行操作。

因此,这个表的问题可能就是你访问SQL的拦路虎。

先告诉大家:WINCC6.0的SQL库操作是不需要表名的,因为他有自己定义的SQL语句。

其实,WINCC在运行时,根据WINCC的设置,数据归档是以一定时间做为基准,形成数据片段。

大体上有三个用户需要了解的表:1:ARCHIVE(用户归档记录)2:TAGPRESSED(TAGUNPRESSED)(压缩/非压缩变量归档记录)3:MSARCLONG(报警记录)事实上,我们在操作数据时,还是并不能直接使用常规的SQL来操作这些表,甚至不允许修改它,MSARCLONG情况好一些,允许插入/修改等。

WinCC V6.0 VBS 脚本实现对 SQL Server数据库的存储与查寻

WinCC V6.0 VBS 脚本实现对 SQL Server数据库的存储与查寻

巧妙运用WinCC V6.0 VBS 脚本实现对 SQL Server数据库的存储与查寻----西门子工厂自动化工程有限公司工程部北京摘要:本文着重描述了如何运用西门子新一代上位监控软件WinCC V6.0最新集成的VBS脚本编辑器通过编写结构化查寻语言,操作后台运行的 SQL Server2000数据库以实现对现场数据的存储与查寻,从而满足对工业现场的在线管理。

关键词:西门子,WinCC V6.0,VBS,SQLAbstractThis paper introduces that how to store and query the datum from Microsoft SQL Server 2000 database by using VBScript-Editor integrating SIEMENS HMI software WinCC V6, In order to meet industry field’s need.Key Words:SIEMENS,WinCC V6.0,VBS,SQL一、项目简介位于山东省烟台经济技术开发区内的上海通用东岳汽车有限公司,是上海通用汽车有限公司、上汽集团和通用汽车 (中国)分别出资建造的现代化轿车生产厂,是上海通用汽车有限公司用于生产其商用和家用轿车的几个生产基地之一。

主打产品即为目前市场上流行的赛欧型家用轿车。

公司总装和油漆车间新近各投产了一套由西门子工厂自动化工程有限公司制作的安顿 (Andon)现场管理与信号采集系统。

其中各条机运线,拉绳开关,安顿板指示灯, QCOS 点以及扫描枪的逻辑控制和信号采集均采用西门子基于PC技术的SLOT CPU和ET200S远程站完成。

上位监控系统采用一套西门子最新推出的基于SQL Server 2000数据库的WinCC V6 软件,用于对现场采集的实时信号进行监控、存储和历史查寻。

上位机与控制器的连接采用西门子高性能的PROFIBUS - DP工业现场总线,整体设计简单、通用,性能和功能完全达到厂方的要求。

wincc读写sql(vbs)

wincc读写sql(vbs)

1:首先在计算机的管理工具-- ODBC数据源管理器中,添加一个SQL SERVER的数据源。

在此配置中:在服务器的连接上要选择WINCC的服务器。

2:然后在WINCC的图形编辑器中,在输入域的属性中,选择事件,再选择键盘的释放动作,在动作代码框中写下如下代码:Dim conn,rsDim strsqlDim aa=HMIRuntime.Tags("tt_change").ReadSet conn=CreateObject("adodb.connection")Set rs=CreateObject("adodb.recordset")conn.Provider = "sqloledb"conn.open"SERVER=MICROSOF-9176CF\WINCC;uid=sa;pwd=sa;database=TT_CHA NGE"If nChar = "13" Thenstrsql="insert into tt_ch(TagValue)VALUES('" & a &"')" Set rs=conn.execute(strsql)conn.closeSet rs=NothingSet conn=NothingEnd If如此,即可实现WINCC的实时数据向SQL SERVER的数据写入!WinCC读取Access数据库wincc 2009-07-30 09:52:22 阅读240 评论1 字号:大中小订阅'经测试该代码在WinCC和vbs文件中均可用可用Dim objConn,objRs,strSqlSet objConn = CreateObject("ADODB.Connection")objConn.ConnectionString = "provider=microsoft.jet.oledb.4.0;data source=d:\student.mdb"objConn.openSet objRs = CreateObject("ADODB.RecordSet")strSql = "Select count(*) from 学生情况"objRs.open strSql,objConn,1,2msgbox "学生情况表中共有" & objRs(0) & "条记录",8,"记录统计:" objRs.closeSet objRs = nothingobjConn.closeSet objConn = nothingWincc读取远程非wincc数据库Option ExplicitFunction actionDim sConDim sSqlDim connDim oRsDim oComDim iDim temvalue,objtag'sCon = "Provider=SQLOLEDB.1;Integrated Security=SSPI;Persist Security Info=False;User ID=sa;Initial Catalog=CTMDBN;Data SouRCe=192.168.1.11"sCon="Provider=SQLOLEDB.1;Persist Security Info=False;User ID=sa;Initial Catalog=CTMDBN;Data Source=192.168.1.11"sSql = "SELECT Temperature FROM channelinfo"' 2.1 Make connectionSet conn = CreateObject("ADODB.Connection")conn.ConnectionString = sConconn.Open' 2.2 Use command text for querySet oRs = CreateObject("ADODB.Recordset")Set oCom = CreateObject("mand")Set oCom.ActiveConnection = connmandText = sSql' 2.3 Fill the recordsetSet oRs = oCom.Execute' 3.0 Fill standard iofields object with recordseti=0Do While oRs.eof=Falsetemvalue=oRS.Fields(0).Valuei=i+1HMIRuntime.Tags("t"&i).Write temvalue oRs.movenextLoopSet oRs = Nothingconn.CloseSet conn = NothingEnd Function。

WinCC用VBS连接数据库

WinCC用VBS连接数据库

在此连接方式下,只能用WinCCOLEDBProvider提供的方法访问归档数据库: Biblioteka (1)单个归档变量查询:
strSQL = "TAG:R,10,'2006-04-12 16:00:00','2006-04-13 15:59:59'"

strSQL = "TAG:R,'Archive1\Tag1','2006-04-12 16:00:00','2006-04-13 15:59:59'"
注:如果需要对查询结果再作过滤,可以使用Recordset.Filter属性再次过滤。
(3)报警信息的查询:
strSQL = "ALARMVIEW:Select * From AlgViewEnu Where DateTime>='2006-04-12 16:00:00' And DateTime<='2006-04-13 15:59:59' And MsgNR=11"
注:Where语句可以根据自己的需要填写。
注:普通连接方式下,所有标准的SQL语句都可以使用。
3、归档数据库的ConnectionString
strSQL="Provider=WinCCOLEDBProvider.1;Catalog=CC_MyTest_06_04_08_09_05_14R;Data Source=.\WinCC"
(2)多个归档变量查询:
strSQL = "TAG:R,(10;14;15),'2006-04-12 16:00:00','2006-04-13 15:59:59'"

wincc通过vbs访问数据库

wincc通过vbs访问数据库

本人通过WINCC的VBS读取SQL2000里的数据或者写入数据,通过在按钮控件做一个动作,当点击时写入数据库一个数据,代码如下: Dim rs,commDim cn,strcnDim is_sql,strSQLSet cn = CreateObject("ADODB.Connection")Set rs = CreateObject("ADODB.Recordset")strcn = "Provider=SQLOLEDB.1;Integrated Security=SSPI;Persist S ecurity Info=False;Initial Catalog=glj;Data Source=GLJ077\wincc" cn.ConnectionString = strcncn.OpenstrSQL = "INSERT INTO W1 (xm) V ALUES ('glj077') "rs.CursorLocation = adUseServerrs.Open strSQL, cn, 1, 3cn.CloseSet cn = Nothing发现如下问题:此代码在VB6.0中调试通过,可以写入数据glj077,但在WICC里不可以,虽然编译通过,但当按下按钮时,并没有写入数据.请各位高手帮忙看一下,是代码的问题还是需要在WINCC里还要装一些设置,望告之.谢谢!!!以上问题已解决,发现是代码问题,还有楼上那位兄弟说的对,常量不识别,必须用数字代替。

通过这几天的试验,学到了不少东西,现把学到的东西和大家分享一下,希望可以抛砖引玉。

在WINCC里,用VBS读取和写入到SQL2000数据方法有以下几种(仅写出本人实验通过的方法,至于其它方法,本人没有试验过,不在讨论范围)第一种方法代码如下(写入数据)Dim cn,strSQL,strcnSet cn = CreateObject("ADODB.Connection")strcn = "Provider=SQLOLEDB.1;Integrated Security=SSPI;Persist S ecurity Info=False;Initial Catalog=glj;Data Source=GLJ077\wincc" cn.ConnectionString = strcncn.Open strcnstrSQL = "INSERT INTO W1 (xm) V ALUES ('glj077') "cn.Execute strSQLcn.closeset cn=Nothing以上方法立用了字符串连接函数的Execute方法,实现对数据库的写入操作(改变strSQL字符的值应该可以实现其它操作,不过本人没有实验过)第二种方法代码如下:(可写可读)Dim cn,strSQL,strcnDim rs,rs1Dim RvalueSet cn = CreateObject("ADODB.Connection")Set rs=CreateObject("ADODB.RecordSet")Set rs1=CreateObject("ADODB.RecordSet")strcn = "Provider=SQLOLEDB.1;Integrated Security=SSPI;Persist S ecurity Info=False;Initial Catalog=glj;Data Source=GLJ077\wincc" cn.ConnectionString = strcncn.Open strcnstrSQL = "Select * from W1"rs.CursorLocation = 1(此处必须写数字代替字符串常量)写入数据Set rs1=rs.Open strSQL, cn, 1, 3 (同样,也必须用数字,发现没有,这个和我最初的代码有什么不一样,这也是我最初的程序不能正确执行的关键)rs1.AddNew 新建一条记录rs1.Fields("xm")="glj077" 往数据库表W1字段为xm中写入一条记录,值为glj077rs1.Update读取数据Set rs1=rs.Open strSQL, cn, 1, 3rs1.MovefistRvalue =rs1.Fields("xm") 读取第一条记录的值,修改SQL查询语句可以查找特定记录rs1.closers.closecn.closeset rs=Nothingset rs1=Nothingset cn=Nothing这种方法是利用记录集的方法来操作数据库的。

使用Wincc中的VBS进行变量读写

使用Wincc中的VBS进行变量读写

使用Wincc中的VBS进行变量读写Wincc6包含了VBS脚本编程,对于我等熟悉VB编程的可谓带来的福音,但是,由于西门子的C脚本编程功能实在太强大,加上要保持以前版本的一致性和用户编程习惯的延伸性,所以对于VBS脚本并没有太多的介绍。

这里我先来介绍一下Wincc中对于控件引用的一般性论述。

Wincc对于控件引用一般都采取定义变量-》使用Set变量=对象.(方法或属性)->引用变量来做的。

在变量读取或写入的过程中,我们要接触到一些属性和方法,例如,Read和Write方法,变量的Value 属性,熟练掌握这些属性和方法相当重要。

下面解释一下Write和Read方法的语法:Read data其中data是读取变量的方法,如果data=1,直接从AS系统读取,相当于C脚本中的Get*****wait()函数,如果省略,则从Wincc变量管理器中建立的变量中读取。

Write data,1其中data是需要写入变量的数值,1代表直接写入AS系统,相当于C脚本中的Set*****wait()函数,1省略,则写入到由Wincc变量管理器建立的变量中去。

实例:读取变量的方法:1Dim objTagSet objTag=HMIRunTime.Tags("变量名")objTag.Read2HMIRunTime.Tags("变量名").Read如果以上例程改成直接读取AS系统变量的话,程序为:1Dim objTagSet objTag=HMIRunTime.Tags("变量名")objTag.Read,12HMIRunTime.Tags("变量名").Read,1写变量的方法:1Dim objTagSet objTag=HMIRunTime.Tags("变量名")objTag.Write1'向变量写入数值1'也可以写为objTag.Write10向变量写入数值102HMIRunTime.Tags("变量名").Write1'也可以写为objTag.Write10除了以上方法外,你也可以将一个中间变量的值写入:Dim objTag,valSet objTag=HMIRunTime.Tags("变量名")objTag.Readval=objTag.Value'中间变量val存放了变量的值objtag.Write val'写入变量中去当然,其余的方法还有很多,这些都需要自己在编程过程中总结和灵活运用WINCC中VBS的read和write??Read data其中data是读取变量的方法,如果data=1,直接从AS系统读取,如果省略,则从Wincc变量管理器中建立的变量中读取。

wincc读写sql(vbs)

wincc读写sql(vbs)

1:首先在计算机的管理工具-- ODBC数据源管理器中,添加一个SQL SERVER的数据源。

在此配置中:在服务器的连接上要选择WINCC的服务器。

2:然后在WINCC的图形编辑器中,在输入域的属性中,选择事件,再选择键盘的释放动作,在动作代码框中写下如下代码:Dim conn,rsDim strsqlDim aa=HMIRuntime.Tags("tt_change").ReadSet conn=CreateObject("adodb.connection")Set rs=CreateObject("adodb.recordset")conn.Provider = "sqloledb"conn.open"SERVER=MICROSOF-9176CF\WINCC;uid=sa;pwd=sa;database=TT_CHA NGE"If nChar = "13" Thenstrsql="insert into tt_ch(TagValue)VALUES('" & a &"')" Set rs=conn.execute(strsql)conn.closeSet rs=NothingSet conn=NothingEnd If如此,即可实现WINCC的实时数据向SQL SERVER的数据写入!WinCC读取Access数据库wincc 2009-07-30 09:52:22 阅读240 评论1 字号:大中小订阅'经测试该代码在WinCC和vbs文件中均可用可用Dim objConn,objRs,strSqlSet objConn = CreateObject("ADODB.Connection")objConn.ConnectionString = "provider=microsoft.jet.oledb.4.0;data source=d:\student.mdb"objConn.openSet objRs = CreateObject("ADODB.RecordSet")strSql = "Select count(*) from 学生情况"objRs.open strSql,objConn,1,2msgbox "学生情况表中共有" & objRs(0) & "条记录",8,"记录统计:" objRs.closeSet objRs = nothingobjConn.closeSet objConn = nothingWincc读取远程非wincc数据库Option ExplicitFunction actionDim sConDim sSqlDim connDim oRsDim oComDim iDim temvalue,objtag'sCon = "Provider=SQLOLEDB.1;Integrated Security=SSPI;Persist Security Info=False;User ID=sa;Initial Catalog=CTMDBN;Data SouRCe=192.168.1.11"sCon="Provider=SQLOLEDB.1;Persist Security Info=False;User ID=sa;Initial Catalog=CTMDBN;Data Source=192.168.1.11"sSql = "SELECT Temperature FROM channelinfo"' 2.1 Make connectionSet conn = CreateObject("ADODB.Connection")conn.ConnectionString = sConconn.Open' 2.2 Use command text for querySet oRs = CreateObject("ADODB.Recordset")Set oCom = CreateObject("mand")Set oCom.ActiveConnection = connmandText = sSql' 2.3 Fill the recordsetSet oRs = oCom.Execute' 3.0 Fill standard iofields object with recordseti=0Do While oRs.eof=Falsetemvalue=oRS.Fields(0).Valuei=i+1HMIRuntime.Tags("t"&i).Write temvalue oRs.movenextLoopSet oRs = Nothingconn.CloseSet conn = NothingEnd Function。

Wincc的VBS脚本使用

Wincc的VBS脚本使用

Wincc的VBS脚本使用变量读写: Write和Read方法的语法:读:1 Dim objTag Set objTag=HMIRunTime.Tags(\变量名\ objTag.Read2 HMIRunTime.Tags(\变量名\ 写:1 Dim objTag Set objTag=HMIRunTime.Tags(\变量名\ objTag.Write 1'向变量写入数值1 2 HMIRunTime.Tags(\变量名\ 中间变量的值写入:DimobjTag,val Set 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储存的是一个整数还是一个小数(学名叫\浮点数\也不用考虑是不是字符串(一串字符, 比如:\World\VBS会自动帮你搞定. 所以第三行语句可以删除, 效果不会变. 常量:格式是:const 常量名=常量值. 例如: const PI=3.1415926 const NAME=\记忆碎片\二、进阶数据类型转换: 1)Dim a,b,ca=inputbox(\是:\输入半径\ b=Inputbox(\是:\输入半径\ c=a*2+b*2 Msgbox(c)这个输入1、2时是6 2) Dim a,b,ca=inputbox(\是:\输入半径\ b=Inputbox(\是:\输入半径\ c=(a+b)*2 Msgbox(c)这个输入1、2时是24为什么会不一样呢? 在数学上c=(a+b)*2 和 c=a*2+b*2是等价的, 在VBS中也是如此. 问题出在\上, 在VBS中, +不仅仅是加号的意思还表示把两个字符串连接起来, 例如\你还记得InoutBox函数的返回值吗? 是字符串! 这就看出问题了吧, 在编程中\不等于(<>)1, \是一个字符, 而1是一个数, 所以a,b都是字符串变量, \这就好像我们小时跟伙伴开玩笑问他们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,jfor i=1 to 9 for i=1 to 9str=str & i * j &\是和并字符串的符号 next '每个next对应一个for next1)do..loop和exit do的用法2) while当表达式true的时候执行循环体,until反之 3) for...next是计数循环, 每次执行计数器递加 4) 嵌套循环的作用和写法 4.5) &用于连接字符串 5) vbCrLf相当于键盘上的回车键五、数组定义:dim 数组名(元素数量), 这里大家要注意一点, 这里定义的元素数量总是比你要的要少一个, 因为一个数组的起点是0号数据而不是1, 所以大家一定要小心: 你需要10个数据, 就定义\。

wincc中使用VBS脚本读写SQLServer数据库文件

wincc中使用VBS脚本读写SQLServer数据库文件

例程:Wincc读写SQLServer数据库一、在数据库中建立数据库文件,文件名为“读写数据库”,在数据库中建立新的表,命名为“个人信息”分别建立编号、姓名、年龄。

二、数据库中建立表后,在wincc中建立与数据库中类型相同的变量,变量类型相同在读写数据时很重要。

在图形编辑器中新建画面,并在画面中增加三个输入输出域,并连接变量。

三、添加两个按钮控件,分别命名为写数据、读数据1、在写数据按钮中写入一下VBS脚本wincc变量写入数据库定义变量Dim sConDim sSqlDim oRsDim connDim oComDim ConDim Data1, Data2, Data3‘读取wincc变量Data1=HMIRuntime.tags("编号").readData2=HMIRuntime.tags("姓名").readData3=HMIRuntime.tags("年龄").read‘连接数据库Con="Provider=SQLOLEDB.1;Integrated Security=SSPI;Persist Security Info=False;Initial Catalog=读写数据库;Data Source=.\WINCC"Set conn = CreateObject("ADODB.Connection")conn.ConnectionString = Conconn.CursorLocation = 3conn.Open‘写入数据库sSql="insert into个人信息VALUES('" & Data1 & "','" & Data2&"','"&Data3&"');" Set oRs = CreateObject("ADODB.Recordset")Set oCom = CreateObject("mand")Set oCom.ActiveConnection = connmandType = 1mandText = sSqlSet oRs = oCom.ExecuteSet oRs = Nothingconn.CloseSet conn = NothingDim sSqlDim oRsDim connDim oComDim ConDim Data1, Data2, Data3'读取wincc变量Data1=HMIRuntime.tags("编号").readData2=HMIRuntime.tags("姓名").readData3=HMIRuntime.tags("年龄").read'连接数据库Con="Provider=SQLOLEDB.1;nitial Catalog=读写数据库;Data Source=panzhiyou;uid=sa;pwd=panzhiyou"Set conn = CreateObject("ADODB.Connection")conn.ConnectionString = Conconn.CursorLocation = 3conn.Open'写入数据库sSql="insert into个人信息VALUES('" & Data1 & "','" & Data2&"','"&Data3&"');" Set oRs = CreateObject("ADODB.Recordset")Set oCom = CreateObject("mand")Set oCom.ActiveConnection = connmandType = 1mandText = sSqlSet oRs = oCom.ExecuteSet oRs = Nothingconn.CloseSet conn = Nothing在实际项目中需要修改的只有定义变量时增加或减少数据data的个数,Data1=HMIRuntime.tags("编号").read中的变量名,数据库的名字,以及数据库的表名2、在读数据按钮中写入一下VBS脚本读取数据库变量到wincc变量定义变量Dim sConDim sSqlDim oRsDim connDim oComDim ConDim Data2Dim Data3Dim data4Dim data5Dim data6Dim data7data7=HMIRuntime.tags("编号").readCon="Provider=SQLOLEDB.1;Integrated Security=SSPI;Persist Security Info=False;Initial Catalog=读写数据库;Data Source=.\WINCC"Set conn = CreateObject("ADODB.Connection")conn.ConnectionString = Conconn.CursorLocation = 3conn.OpensSql="SELECT * FROM 个人信息 WHERE 编号='"&data7&"';"Set oRs = CreateObject("ADODB.Recordset")Set oCom = CreateObject("mand")Set oCom.ActiveConnection = connmandType = 1mandText = sSqlSet oRs = oCom.Execute'Set oRs = Nothingdata4=oRs.Fields(0).Valuedata5=oRs.Fields(1).Valuedata6=oRs.Fields(2).Value'data1.write data4Set data1=HMIRuntime.Tags("编号")Set data2=HMIRuntime.Tags("姓名")Set data3=HMIRuntime.Tags("年龄")data1.Readdata1.Write data4data2.Readdata2.Write data5data3.Readdata3.Write data6Set oRs = Nothingconn.CloseSet conn = NothingDim sConDim sSqlDim oRsDim connDim oComDim ConDim Data1Dim Data2Dim Data3Dim data4Dim data5Dim data6Dim data7data7=HMIRuntime.tags("编号").readCon="Provider=SQLOLEDB.1;nitial Catalog=读写数据库;Data Source=panzhiyou;uid=sa;pwd=panzhiyou"Set conn = CreateObject("ADODB.Connection")conn.ConnectionString = Conconn.CursorLocation = 3conn.OpensSql="SELECT * FROM 个人信息 WHERE 编号='"&data7&"';"Set oRs = CreateObject("ADODB.Recordset")Set oCom = CreateObject("mand")Set oCom.ActiveConnection = connmandType = 1mandText = sSqlSet oRs = oCom.Execute'Set oRs = Nothingdata4=oRs.Fields(0).Valuedata5=oRs.Fields(1).Valuedata6=oRs.Fields(2).Value'data1.write data4Set data1=HMIRuntime.Tags("编号")Set data2=HMIRuntime.Tags("姓名")Set data3=HMIRuntime.Tags("年龄")data1.Readdata1.Write data4data2.Readdata2.Write data5data3.Readdata3.Write data6Set oRs = Nothingconn.CloseSet conn = Nothing读取数据时,按照编号读取数据,在实际中需要修改数据库语言。

wincc用户归档VB脚本与SQL使用说明

wincc用户归档VB脚本与SQL使用说明

一、报表建立本次项目要求:所有测量变量在一个工作周期结束后进行存储,也就是事件触发,不同与以往的周期触发。

1、要求能存储字符串类型的数据,所以本次报表使用用户归档来实现,因为变量记录工具是不能存储字符串类型数据的。

而且用户归档控件的事件触发比变量记录要灵活的多。

2、要求可以将数据导出到EXCEL表格中。

实现对数据的编辑。

具体实现方法如下:第1项不用过多在意,了解一下即可,从第2项起为主要内容。

第1项的作用就是讲解怎样触发用户归档存储数据的。

1、在建立报表前首先要新建两个系统变量,用于日期和时间的存储。

在WINCC组态环境内——右击变量管理——单击添加新的驱动程序——找到System Info.chn——单击打开如下图建立两个变量分别为riqi 和shijian——作为日期和时间的存储变量。

再建立两个控制变量,此变量需要与下位机程序进行连接。

分别为A_ID、A_JOP在下位机程序里进行编写,当自控程序运行完一边后将这两个变量分别赋值-1、6赋值结束后再将0赋给这两个变量。

程序如下图此目的是用于用户归档数据存储时事件触发条件,在后面用户归档建立会详细描写。

2、建立用户归档WINCC在第一次安装完后是没有用户归档控件的,需要再次将光盘插入重新安装一次,在选项中将用户归档添加进行安装。

单击下一步先点击创建,在创建变量完成后,将上面建立的两个变量A_ID/A_JOP分别添加到ID和指令内,方法:单击选择按钮——浏览变量添加即可。

此项是用于数据存储触发的。

也就是当ID和指令分别为-1和6时用户归档存储一次数据。

详细如下图单击完成实现对用户归档的创建。

3、创建VB脚本动作,是用于用户归档事件触发的动作,没有此动作用户归档将无法存储数据。

方法:打开VB脚本——单击文件——新建——动作。

然后将下面程序写入即可。

Function actionDim xiaoshiDim riqiDim flagSet flag = HMIRuntime.Tags("flag")flag.ReadIf flag.Value =1 Thenriqi=CStr(Year(Now))&"-"&CStr(Month(Now))&"-"&CStr(Day(Now))Dim A_IDSet A_ID = HMIRuntime.Tags("A_ID")Dim A_JOPSet A_JOP = HMIRuntime.Tags("A_JOP")A_ID.ReadA_ID.Write -1A_JOP.ReadA_JOP.Write 6End If输入完之后将其保存。

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

Wincc读写SQLServer数据库
一、在数据库中建立数据库文件,文件名为“读写数据库”,在数据库中建立新的表,命名为“个人信息”分别建立编号、姓名、年龄。

二、数据库中建立表后,在wincc中建立与数据库中类型相同的变量,变量类型相同在读写数据时很重要。

在图形编辑器中新建画面,并在画面中增加三个输入输出域,并连接变量。

三、添加两个按钮控件,分别命名为写数据、读数据
1、在写数据按钮中写入一下VBS脚本
wincc变量写入数据库
定义变量
Dim sCon
Dim sSql
Dim oRs
Dim conn
Dim oCom
Dim Con
Dim Data1, Data2, Data3
‘读取wincc变量
Data1=HMIRuntime.tags("编号").read
Data2=HMIRuntime.tags("姓名").read
Data3=HMIRuntime.tags("年龄").read
‘连接数据库
Con="Provider=SQLOLEDB.1;Integrated Security=SSPI;Persist Security Info=False;Initial Catalog=读写数据库;Data Source=.\WINCC"
Set conn = CreateObject("ADODB.Connection")
conn.ConnectionString = Con
conn.CursorLocation = 3
conn.Open
‘写入数据库
sSql="insert into个人信息V ALUES('" & Data1 & "','" & Data2&"','"&Data3&"');"
Set oRs = CreateObject("ADODB.Recordset")
Set oCom = CreateObject("mand")
Set oCom.ActiveConnection = conn
mandType = 1
mandText = sSql
Set oRs = oCom.Execute
Set oRs = Nothing
conn.Close
Set conn = Nothing
在实际项目中需要修改的只有定义变量时增加或减少数据data的个数,Data1=HMIRuntime.tags("编号").read中的变量名,数据库的名字,以及数据库的表名
2、在读数据按钮中写入一下VBS脚本
读取数据库变量到wincc变量
定义变量
Dim sCon
Dim sSql
Dim oRs
Dim conn
Dim oCom
Dim Con
Dim Data1
Dim Data2
Dim Data3
Dim data4
Dim data5
Dim data6
Dim data7
data7=HMIRuntime.tags("编号").read
Con="Provider=SQLOLEDB.1;Integrated Security=SSPI;Persist Security Info=False;Initial Catalog=读写数据库;Data Source=.\WINCC"
Set conn = CreateObject("ADODB.Connection")
conn.ConnectionString = Con
conn.CursorLocation = 3
conn.Open
sSql="SELECT * FROM 个人信息WHERE 编号='"&data7&"';"
Set oRs = CreateObject("ADODB.Recordset")
Set oCom = CreateObject("mand")
Set oCom.ActiveConnection = conn
mandType = 1
mandText = sSql
Set oRs = oCom.Execute
'Set oRs = Nothing
data4=oRs.Fields(0).Value
data5=oRs.Fields(1).Value
data6=oRs.Fields(2).Value
'data1.write data4
Set data1=HMIRuntime.Tags("编号")
Set data2=HMIRuntime.Tags("姓名")
Set data3=HMIRuntime.Tags("年龄")
data1.Read
data1.Write data4
data2.Read
data2.Write data5
data3.Read
data3.Write data6
Set oRs = Nothing
conn.Close
Set conn = Nothing
读取数据时,按照编号读取数据,在实际中需要修改数据库语言。

运行wincc,再编号输入输出域中输入编号,点击读数据按钮,得到需要的数据。

相关文档
最新文档