访问wincc数据库

访问wincc数据库
访问wincc数据库

利用ODBC访问WINCC的历史数据库

WINCC作为一个工控软件,有着工控软件的一系列特征:能显示实时数据,历史数据,生成实时数据曲线与历史数据曲线,并能生成报表。然而WINCC与其它的工控软件包有不同的地方:它的数据是保存在标准的及功能强大的Sybase SQL Anywhere数据库中,所以,我们可以像访问一般的数据库一样,通过ODBC直接访问WINCC的历史数据库。

一、通过Sybase Central 4.0访问显示数据

Wincc 在安装时就把Sysbase数据引擎与Sybase Central 4.0一同安装到系统中,你可以在Program Files\Sybase\Shared\ 中找到Sybase Central 4.0 ,你可在在其目录下\java\中发现scjview.exe,该程序功能相当于SQL server 的企业管理器。你可以通过其查看你在WinCC中的归档数据。

使用方法:

1) 运行WINCC,这时WINCC会在ODBC中添加两条数据源:

CC_FY_02-10-16_10:40:18

CC_FY_02-10-16_10:40:18R

其中CC_FY_02-10-16_10:40:18R 是可以通过Sybase Central 4.0 及别的一些工具不用用户名与密码读取的。这就是我们WinCC的历史数据库。

注意:这两条ODBC名不是一成不变的,它是结构如下

CC_FY_02-10-16_10:40:18R

CC:固有的,指明是WinCC生成的ODBC。

FY :项目名,这是我这个WinCC项目名称

02-10-16:最后一次修改的日期。

10:40:18:最后一次修改的时间。

R:表示是运行库。

2)、运行scjview.exe,点击Adaptive Server AnyWhere 7 按右键,选择Connect。将会弹出Connect配置界面。

在Identification的页面,选中ODBC SOURCE NAME 点BROWSE则会列出所有对Sybase数据引擎的ODBC名,选择CC_FY_02-10-16_10:40:18R,点击“OK“、“OK“即可。

这时在Adaptive Server AnyWhere 7下面会出现你的计算机名,并已连通了你的WINCC历史数据库。

好了,我们现在可以查看WinCC的历史数据了。

展开:Adaptive Server AnyWhere 7(DBA)

展开:TABLE

我们现在可以看到数据库的表名与表结构了:

表名:PDE#HQZ#GAS_PRE 组成方式如下

PDE:固有

HQZ:归档名称

GAS_PRE:变量名。

表结构:有三个字段:T, V, F

T:时间

V:值

F:标志

由于没有可靠的资料可查,其F的名值表示的含义就不得而知,不过,在我的使用中,我将F值8392705作为一个合法值,在WINCC的处理中没有出过错,但别的FLAG值的含义,只能问西门子公司了。

二、利用VB编写程序访问WINCC历史数据库。

上面已明确描述了WINCC的历史数据库的结构组成与表结构,那么我们就可以通过编程访问WINCC的历史数据库。如其它通过ODBC访问的数据一样。如下面的小例子

在VB中,先引用ADO组件。并声明ADO变量。

Private cn As ADODB.Connection

Private rs As ADODB.Recordset

Const dsn = “CC_FY_02-10-16_10:40:18R”

Private sub insertData(nowV alue as double)

Dim nowtime as string

Nowtime =now

cn.Open dsn, "", ""

sql str=” insert into PDE#HQZ#GAS_PRE(T,V,F) Values(…”+ Nowtime +”?,”+ nowValue +”, 8392705) ”

cn.Execute sql str

cn.close

End sub

office:office" />

本程序中的子程序只处理了数据插入,其它读出就更为简单,与其它的ADO访问是一模一样的,这里就不多说了。

三、结语

能通过ODBC访问WINCC的历史数据,给我们提供了更多了解决办法,特别是在企业信息化平台上使用非实时数据方面,可以人为给WINCC添加正确的历史数据,使WINCC 的功能更为强大。

由于ODBC名与项目的修改时间有关,所以在项目频繁变化时,请不要使用这个功能。

WinCC在启动时自动添加ODBC名,在关闭时自动删除,所以,在WINCC关闭后,不能再通过ODBC访问ODBC。

WinCC的实时数据通过OPC DA记录到MS Access、MS SQL Server和Oracle数据库中的方法指南(中文)

? ???WinCC Industrial Data Bridge WinCC? ??OPC DA? MS Access?MS SQL Server Oracle Ё How to transfer process data of WinCC to MS Access,MS SQL Server and Oracle via WinCC Industrial Data Bridge and OPC DA

? Getting-Started???WinCC ? ?? ? ? ???? ??Oracle 9i????? ?? ?偸? ?? ? ??OPC DA? WinCC? MS Access? MS SQL Server? Oracle Key Words Industrial Data Bridge, OPC DA, WinCC, MS Access, MS SQL Server, Oracle A&D Service & Support Page 2-15

? ? ???:LQ&& ,QGXVWULDO 'DWD %ULGJH :LQ&&? ??23& '$? 06 $FFHVV?06 64/ 6HUYHU 2UDFOH Ё :LQ&& ,QGXVWULDO 'DWD %ULGJH?? ? ?? ??:LQ&& ,QGXVWULDO 'DWD %ULGJH :LQ&&? ??23& '$? 2UDFOH Ё ? ˉ ?? A&D Service & Support Page 3-15

? ???WinCC Industrial Data Bridge WinCC? ??OPC DA? MS Access?MS SQL Server Oracle Ё :LQ&& ,QGXVWULDO 'DWD %ULGJH?? ? WinCC/IndustrialDataBridge( ? ?) ? ? ( )? IT??? ?? ? ????? ?? ? 乚 ??OPC IT?? ?SQL ?? ?? ? ? ( Ё OPC?SQL? OLE-DB?Office? )? ? ? ?????? ???? ?? ??? ? ?? ??? (?????)?? ? OPC DA ? WinCC ⑤???? ? ?? ? ? ?? ?128? 512?2K 10K? ? ?? ? ? ? ???? ??П????“IndustrialDataBridge”?? ? (? ??OPC)???“ IndustrialDataBridge”? OPC ? ? ? ⑤ ?? П???? x??OPC ? ?? ?? ? ? ???SCADA ????? x ?? Excel Accesㄝ ?? ?г ? ?? ? ? ? x SQL ?? ?? ??? ?? ??? ??偅 ?????OPC? ?? ⑤?? ? ? ? ?/ ? ? ? ?? ?x ??? ?? ⑤?? ? ? ? ?? WinCC ?? ?? ? ?? ?? ?OPC DA ???WinAC ODK ?/ ? ?? ? ?? ? ? ?? x ? ? IT? A&D Service & Support Page 4-15

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

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("https://www.360docs.net/doc/a74283426.html,mand") Set oCom.ActiveConnection = conn https://www.360docs.net/doc/a74283426.html,mandType = 1 https://www.360docs.net/doc/a74283426.html,mandText = sSql Set oRs = oCom.Execute Set oRs = Nothing conn.Close Set conn = Nothing 在实际项目中需要修改的只有定义变量时增加或减少数据data的个数,Data1=HMIRuntime.tags("编号").read中的变量名,数据库的名字,以及数据库的表名 2、在读数据按钮中写入一下VBS脚本

WINCC数据库画面引用

来做了一个WinCC与数据库连接的程序,功能如下: 1、要求用户输入“实验目的”和“实验日期”,点击“建立表格”,则在数据库中创建了以“实验目的+时间”为名字的表 2、点击“连接数据库”连接上数据库,并开始写入数据 3、点击“断开数据库”则停止记录数据 做法: 通过一个数字量来判断数否记录数据,若该数字量是1则开始记录数据,否则停止。记录数据的时间间隔是1秒 在”建立表格“键入代码: Dim objConnection Dim strConnectionString Dim strSQL Dim objCommand Dim objscreen Dim obj_item Dim obj_item1 Dim biaoming Dim shjian Set shjian = HMIRuntime.Tags("shjian") Set biaoming = HMIRuntime.Tags("biaoming") Set objscreen=HMIRuntime.Screens("database") Set obj_item=objscreen.ScreenItems("IOField1") Set obj_item1=objscreen.ScreenItems("IOField") 注:不同界面的不同对象的引用方法 If shjian.Read= "" Or biaoming.Read= "" Then MsgBox "Please enter the table name and date!" Else strConnectionString = "Provider=MSDASQL;DSN=t;UID=;PWD=;" strSQL="create table " & Trim( obj_item.OutputValue ) & Trim( obj_item1.OutputValue ) & " (name varchar(64),age varchar(20))" 注:这是两个输入控件的连接方法(建立的表格) Set objConnection = CreateObject("ADODB.Connection") objConnection.ConnectionString = strConnectionString objConnection.Open Set objCommand = CreateObject("https://www.360docs.net/doc/a74283426.html,mand") With objCommand .ActiveConnection = objConnection .CommandText = strSQL End With

WINCC中使用ADO对象连接数据库 例子 常用属性 方法

在WINCC中连接数据库可以使用ADO控件进行连接数据库,但是通常都不是用的ADO控件进行连接数据库,以下讲讲winccZ中使用ADO对象连接查询数据库。以下以报警记录为例。 一、了解ADO对象 1.1ADO对象操作数据库是微软提供的一种接口。 1.2对ADO对象的访问使用CreateObject函数(详情请参看CreateObject函数资料) ADO组件的前缀是ADODB,所以访问的时候必须为ADODB.XX(X代表对象) eg: dim conn,oRs,oCom Set conn = CreateObject("ADODB.Connection") 'Connection对象 Set oRs = CreateObject("ADODB.Recordset") 'ADODB.Recordset对象 Set oCom = CreateObject("https://www.360docs.net/doc/a74283426.html,mand") 'https://www.360docs.net/doc/a74283426.html,mand命令对象 二、对象 2.1 Connection 对象 2.1.1 open 方法 语法 connection.Open ConnectionString,UserID,Password,OpengOptions 说明 ConnectionString:可选参数,字符串,包含连接信息 UserID:可选参数,字符串,包含建立连接时候用的用户名 Password:可选参数,字符串,包含建立连接时候用密码 OpenOptions:可选参数,连接打开方式 eg1:(连接数据库代码方法1,仅连接部分代码) Dim conn Dim tagDSNName Set tagDSNName = HMIRuntime.Tags("@DatasourceNameRT") Set conn = CreateObject("ADODB.Connection") conn.ConnectionString = "Provider=WinCCOLEDBProvider.1;Catalog="&tagDSNName.Read&";Data Source=.\WinCC" conn.CursorLocation = 3 conn.Open

wincc与SQL数据库交换数据

wincc与SQL数据库交换数据 2007-5-14 21:52 提问者:43494538|悬赏分:10 |浏览次数:1948次 查了一下午资料这是我写的VBS程序用来写数据到SQL数据库程序还是不能正常运行到cn.open语句时停止请各位高手指点一下万分感谢Dim strcn,cn,a,b,c Dim is_SQL,rscom Set cn=CreateObject("ADODB.Connection") Set rscom=CreateObject("ADODB.Recordset") a=HMIRuntime.Tags("text").Read b=HMIRuntime.Tags("text1").Read c=HMIRuntime.Tags("text2").Read strcn="Provider=SQLOLEDB.1;Integrated Security=SSPI;Persist Security Info=False;Initial Catalog=banpi;Data Source=123\wincc" 'banpi是在SQL数据库建立的database,123是wincc中建立的项目 cn.ConnectionString=strcn is_SQL ="insert into panpi(yuanliao,chang,kuan) Values('"&a&"','"&b&"','"&c&"')" 'panpi是banpi数据库下的一个table cn.open '测试时程序到这里不往下走应该是连接SQL数据库出错了吧cn.Execute is_SQL

WinCC V6.2 数据库访问

WinCC V6.2 数据库访问 我们现在的WinCC教材是以WinCC V6.0 SP3为软件平台而开发的,而之后,Siemens 又推出了V6.2、V7.0版本的WinCC。目前,BU大力推的是V7.0的WinCC,我们的WinCC 教材也准备升级为V7.0版本。但从用户的角度来说,对V7.0版本的WinCC还有一个逐步接受的过程,以后,我们碰到的客户,可能很多还是使用V6.2版本的软件。所以,我们还是有必要熟悉一下WinCC V6.2。本文主要介绍WinCC V6.2的数据库访问,由于WinCC V7.0和WinCC V6.2采用的都是SQL Server 2005数据库,故本文对了解WinCC V7.0的数据库访问也是有帮助的。 (一)若采用WinCC V6.2,原来的教材中有关操作和界面的变化 1. 打开SQL Server管理工具 SQL Server 2005和SQL Server 2000在界面上还是有很大不同的,原来的企业管理器变成了SQL Server Management Studio (SSMS)。 图1. 启动SSMS 2. 选择身份认证方式: WinCC 系统在SQL Server中注册了自己的账户,如WinCCAdmin、WinCCConnect等,所以,WinCC使用到了SQL Server的认证方式。外部程序访问数据库时,可以采用Windows 集成的认证方式。

图2. 选择身份认证方式 图3. WinCC在SQL Server中注册的用户3. 查看ValueID和ValueName的对应关系

4. 查看组态的消息 5. 查看归档片段的消息

wincc的ODBC连接

对WinCC的远程ODBC连接 显示订货号 问题: WinCC V5.1版本的标准设置中,不可以设置ODBC连接。它被用来通过MS Access, MS Query 等访问WinCC数据库。需要注意哪些设置? 解答: WinCC 站方面的准备(如果要访问运行系统的数据库,必须启动WinCC 运行系统)。打开“Sybase Central”,确定WinCC的数据库名。 图1:启动“Sybase Central” 选择菜单选项“工具> 连接”。在打开的掩码中按以下输入 用户ID:dba 口令:sql

图2:登录到数据库 在Sybase窗口中,可看到WinCC站名在窗口左边。点击+ 图标放大画面。现在可看到2个数据库。记住想要进行远程访问的数据库名。以RT 结尾的数据库为运行系统数据库,其它的为CS数据库。 图3a: 确定数据库名 鼠标右键点击所要数据库的属性,也可以选择数据库名并将它复制到剪贴板。如果这样做并将

名字储存在文本文件中,可以避免符号使用中的错误。(图3b)。 图3b:复制数据库名到剪贴板 远程站上的必要设置(另一台计算机)。 从控制面板中启动“数据源(ODBC)” (Windows NT)或通过“启动> 程序> ODBC数据管理器”(Windows 2000)启动。

图4:ODBC窗口中的设置 切换到“系统DSN”标签并选择“添加”(在此需注意“用户DSN”与“系统DSN”间的不同。有关于它们的解释在同窗口中的蓝色文本框中) 图5:选择驱动程序“Adaptive Server Anywhere 7.0”

在“ODBC”标签中,输入一个独有的名,例如在数据库中的名(但它也可以是所选择的其他名字)。必须在“延迟AutoCommit直到语句关闭”下打勾,以便在关闭一个链接着的表格时传送所做的改变。 图6:ODBC标签中的设置 请注册如下:(图7): 用户ID:dba 口令:sql

WINCC连接远程SQL

WINCC连接远程SQL 前端时间帮朋友用WINCC实现一个功能,需要用到连接远程SQL数据库的地方,本来以为会很简单的,把连接SQL数据库的脚本改成远程计算机的名称或者IP地址就好了,在家里用虚拟机测试的时候,发现没那么简单,最后折腾了大半天,才终于给搞好了。把折腾的步骤总结测试一下,这里给以后需要用到的朋友参考一下吧。其实主要还是SQL服务器需要开启远程访问功能,一边搜索一边测试,才弄好的。 1、远程服务器用虚拟机+WIN7+SQL2008,系统和软件全新安装,安装后,创建一个名位:SQLTEST的数据库,然后创建一个TALBETEST的表格,表格两列分别为int类型的ID和real类型的REALT,并插入两行数据用作测试。 2、添加一个用户用作远程登录,用户名:rem,密码:123456,并在用户映射属性里面勾选对应的数据库和属性,这里只设置允许读写的选项。

3、开始菜单-SQL Server文件夹-配置工具下打开SQL Server配置管理 器,开启TCP/IP远程访问,并设置远程访问端口。 里面的服务配置里面启用TCPIP协议:

IPALL就可以了。

4、防火墙设置。如果在远程电脑使用ssms测试连接不上,那就需要设置一下WIN7的防火墙了,在防火墙的高级设置里面,入站规则和出站规则,分别加入1433的端口允许,下图以出站规则为例。你也可以直接关闭防火墙, 这样就不用设置了

访问类型选择端口,点下一步 端口根据上面设置的,这里是1433,然后点下一步

操作里面选择允许连接,然后点下一步 配置文件全选,点下一步

利用ODBC访问WINCC的历史数据库

WINCC作为一个工控软件,有着工控软件的一系列特征:能显示实时数据,历史数据,生成实时数据曲线与历史数据曲线,并能生成报表。然而WINCC与其它的工控软件包有不同的地方:它的数据是保存在标准的及功能强大的Sybase SQL Anywhere数据库中,所以,我们可以像访问一般的数据库一样,通过ODBC直接访问WINCC的历史数据库。 一、通过Sybase Central 4.0访问显示数据 Wincc 在安装时就把Sysbase数据引擎与Sybase Central 4.0一同安装到系统中,你可以在Program Files\Sybase\Shared\ 中找到Sybase Central 4.0 ,你可在在其目录下\java\中发现scjview.exe,该程序功能相当于SQL server 的企业管理器。你可以通过其查看你在WinCC中的归档数据。 使用方法: 1) 运行WINCC,这时WINCC会在ODBC中添加两条数据源: CC_FY_02-10-16_10:40:18 CC_FY_02-10-16_10:40:18R 其中CC_FY_02-10-16_10:40:18R 是可以通过Sybase Central 4.0 及别的一些工具不用用户名与密码读取的。这就是我们WinCC的历史数据库。 注意:这两条ODBC名不是一成不变的,它是结构如下 CC_FY_02-10-16_10:40:18R CC:固有的,指明是WinCC生成的ODBC。 FY:项目名,这是我这个WinCC项目名称 02-10-16:最后一次修改的日期。 10:40:18:最后一次修改的时间。 R:表示是运行库。 2)、运行scjview.exe,点击Adaptive Server AnyWhere 7 按右键,选择Connect。将会弹出Connect配置界面。 在Identification的页面,选中ODBC SOURCE NAME 点BROWSE则会列出所有对Sybase 数据引擎的ODBC名,选择CC_FY_02-10-16_10:40:18R,点击“OK“、“OK“即可。 这时在Adaptive Server AnyWhere 7下面会出现你的计算机名,并已连通了你的WINCC历史数据库。

Wincc数据库培训教程(1)

https://www.360docs.net/doc/a74283426.html,
WinCC V5&V6 Database
WinCC的数据库
? WinCC V5.x
Sybase Anywhere 7 (最好的小型数据库)
? WinCC V6.x
MicroSoft SQL Server 2000 (中型数据库)
A&D CS HMI Zhu yu
2003.8

https://www.360docs.net/doc/a74283426.html,
WinCC V5&V6 Database
WinCC V5.x的数据库
? ? ? ? 变量记录和消息记录 数据库的结构 数据的存储方式 数据库的访问方式
A&D CS HMI Zhu yu
2003.8

https://www.360docs.net/doc/a74283426.html,
WinCC V5&V6 Database
数据库管理工具
? SCView:Sybase Central View
数据库管理工具,直接在“开始\运行”调用
? ISQL:Interactive SQL Sybase Anywhere的SQL工具,可以在SCView中直接调用
以窗口或命令行形式运行
A&D CS HMI Zhu yu
2003.8

https://www.360docs.net/doc/a74283426.html,
WinCC V5&V6 Database
数据库的一般结构
? 关系型数据库
- 由表(Table)组成,表的纵向为域(Field),横 向为记录(Record) 表间可以用相同的指建立连接,拼成虚拟的新表, 称为视图(View) 表或视图可以通过SQL(结构化查询语言)进行 检索和操作


A&D CS HMI Zhu yu
2003.8

wincc访问Acess数据库

wincc访问Acess数据库 我用的时wincc6.2,怎样去读写另一台电脑上的一个Acess数据库中的内容? 最佳答案 WINCC的VBS可以很好的操作EXCEL,操作ACCESS也没有问题。 Wincc用VBS脚本读写ACESS数据库 首先要进入系统的数据库设定。设定完后,将ACess数据库的路径存入Wincc中对应的一个变量。然后在用到数据库内容的地方,用 SubOnOpen() ”“打开时检查一下系统路径 IfTrim(HMIRuntime.Tags(“Db_Path”).Read)=““Then MsgBox”请检查系统数据库路径,系统检测到不正常!现在路径是:”&HMIRuntime.Tags(“Db_Path”).Read Else ”“定义combol对象 Dimcom Setcom=ScreenItems(“combolbox_receipe”) com.Clear

com.AddItem”请选择配方...”,0 ”“首先打开数据库 DimConn,ResultSet SetConn=CreateObject(“ADODB.Connection”) SetResultSet=CreateObject(“ADODB.Recordset”) Conn.open”Provider=Microsoft.Jet.OLEDB.4.0;DataSource=“& HMIRuntime.Tags(“Db_Path”).Read ResultSet.open”Select*Fromrecipe”,Conn,1,1 ”“依次读出数据库中配方的数量 DoWhileNotResultSet.EOF com.AddItemResultSet(“name”).value,ResultSet(“Id”).valuE ResultSet.MoveNext Loop com.ListIndex=0 SetResultSet=Null”“结果集置空 SetConn=Null”“连接置空 ResultSet.Close”“结果集关闭 Conn.close”“连接关闭

WINCC与数据库连接

WinCC与数据库连接 2009-06-02 16:03 近来做了一个WinCC与数据库连接的程序,功能如下: 1、要求用户输入“实验目的”和“实验日期”,点击“建立表格”,则在数据库中创建了以“实验目的+时间”为名字的表 2、点击“连接数据库”连接上数据库,并开始写入数据 3、点击“断开数据库”则停止记录数据 做法: 通过一个数字量来判断数否记录数据,若该数字量是1则开始记录数据,否则停止。记录数据的时间间隔是1秒 在”建立表格“键入代码: Dim objConnection Dim strConnectionString Dim strSQL Dim objCommand Dim objscreen Dim obj_item Dim obj_item1 Dim biaoming Dim shjian Set shjian = HMIRuntime.Tags("shjian") Set biaoming = HMIRuntime.Tags("biaoming") Set objscreen=HMIRuntime.Screens("database") Set obj_item=objscreen.ScreenItems("IOField1") Set obj_item1=objscreen.ScreenItems("IOField") 注:不同界面的不同对象的引用方法 If shjian.Read= "" Or biaoming.Read= "" Then MsgBox "Please enter the table name and date!" Else strConnectionString = "Provider=MSDASQL;DSN=t;UID=;PWD=;" strSQL="create table " & Trim( obj_item.OutputValue ) & Trim( obj_item1.OutputValue ) & " (name varchar(64),age varchar(20))" 注:这是两个输入控件的连接方法(建立的表格)

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

自动化控制技术-Wincc中VBS读写SQLServer数据库(一) 一种通用访问SQL Server数据库的方式 本文全面介绍了在Wincc中如何通过使用VBS脚本对SQL Server数据库进行读写,为Wincc在非标准功能的使用上,提供一个基础。 【关键词】TIA;Wincc;自控;VBS;SQL Server;MSFlexGrid;Microsoft 1Wincc数据库简介 在西门子Wincc组态软件中,软件组态信息的存储以及项目中使用到的历史数据的存储,采用的数据库为SQL Server数据库。从Wincc 6.2版本以后,随着数据库系统安全策略的提高,软件组态信息的存储以及历史数据的存储是将数据通过压缩的形式进行存储,即加密形式存储。 这样一来,如果想访问Wincc的数据,需要Wincc系统中增加一套Connectivity授权(工业数据桥)。VBS通过Connectivity访问历史数据和标准的SQL语法有很大不同,这种形式,我们会在“自动化控制技术-Wincc中VBS读写SQLServer数据库(二)”中进行介绍。本文将首先介绍VBS如何访问我们自己建立的数据库。

2软件环境 1、操作系统:Win7 64位旗舰版 2、Wincc V7.3 3、Microsoft SQL Server 2008 R2 4、Microsoft Office 2007 5、Visual Basic 6.0 3建立数据库 1、打开数据库管理器 在开始之前,先在数据库中建立一个我们需要用到的数据库。依次点击“开始- Microsoft SQL Server 2008 R2- SQL Server Management Studio”打开数据库管理器,路径如下图 2、连接数据库服务器 打开数据库管理器后,需要选择本地数据库库服务器,如果本地计算机只有单机Wincc系统,在Server name选项中是默认的本地服务器的名称。如果是客户端,则需要在Server name后面的下拉菜单中选择数据库服务器的名称。点击“Connect”按钮,链接数据库服务器。

Access数据库数据写入WinCC变量

Access数据库数据写入WinCC变量(VBS) 说明 1. 建立Access数据库:Wincc_Data,建立数据表:Wincc_Data,表中有五个字段:Tag1、Tag2、Tag3、Tag4、Tag5; 2. 建立ODBC数据源,名称定义为:Sample,连接指向:Wincc_Data; 3. 将数据库表Tag1字段的第50条记录数据写入WinCC变量U16Tag1中; VBS代码 Dim objConnection Dim objCommand Dim objRecordset Dim strConnectionString Dim strSQL Dim lngValue Dim lngCount strConnectionString= "Provider=MSDASQL;DSN=Sample;UID=;PWD=;" strSQL = "select Tag1 from WINCC_DATA where ID = 50" Set objConnection = CreateObject("ADODB.Connection") objConnection.ConnectionString = strConnectionString objConnection.Open Set objRecordset = CreateObject("ADODB.Recordset")

Set objCommand = CreateObject("https://www.360docs.net/doc/a74283426.html,mand") objCommand.ActiveConnection = objConnection https://www.360docs.net/doc/a74283426.html,mandText = strSQL Set objRecordset = objCommand.Execute lngCount = objRecordset.Fields.Count If (lngCount>0) Then objRecordset.movefirst lngValue = objRecordset.Fields(0).Value HMIRuntime.Tags("U16Tag1").Write lngValue Else HMIRuntime.Trace "Selection returned no fields" & vbNewLine End If Set objCommand = Nothing objConnection.Close Set objRecordset = Nothing Set objConnection = Nothing

访问wincc数据库

利用ODBC访问WINCC的历史数据库 WINCC作为一个工控软件,有着工控软件的一系列特征:能显示实时数据,历史数据,生成实时数据曲线与历史数据曲线,并能生成报表。然而WINCC与其它的工控软件包有不同的地方:它的数据是保存在标准的及功能强大的Sybase SQL Anywhere数据库中,所以,我们可以像访问一般的数据库一样,通过ODBC直接访问WINCC的历史数据库。 一、通过Sybase Central 4.0访问显示数据 Wincc 在安装时就把Sysbase数据引擎与Sybase Central 4.0一同安装到系统中,你可以在Program Files\Sybase\Shared\ 中找到Sybase Central 4.0 ,你可在在其目录下\java\中发现scjview.exe,该程序功能相当于SQL server 的企业管理器。你可以通过其查看你在WinCC中的归档数据。 使用方法: 1) 运行WINCC,这时WINCC会在ODBC中添加两条数据源: CC_FY_02-10-16_10:40:18 CC_FY_02-10-16_10:40:18R 其中CC_FY_02-10-16_10:40:18R 是可以通过Sybase Central 4.0 及别的一些工具不用用户名与密码读取的。这就是我们WinCC的历史数据库。 注意:这两条ODBC名不是一成不变的,它是结构如下 CC_FY_02-10-16_10:40:18R CC:固有的,指明是WinCC生成的ODBC。 FY :项目名,这是我这个WinCC项目名称 02-10-16:最后一次修改的日期。 10:40:18:最后一次修改的时间。 R:表示是运行库。 2)、运行scjview.exe,点击Adaptive Server AnyWhere 7 按右键,选择Connect。将会弹出Connect配置界面。 在Identification的页面,选中ODBC SOURCE NAME 点BROWSE则会列出所有对Sybase数据引擎的ODBC名,选择CC_FY_02-10-16_10:40:18R,点击“OK“、“OK“即可。

Wincc远程访问SQL2000数据库

Wincc远程访问SQL2000数据库(非wincc自带的SQL) 工程实例代码: Option Explicit Function action Dim sCon Dim sSql Dim conn Dim oRs Dim oCom Dim i Dim 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 C atalog=CTMDBN;Data Source=192.168.1.11" sSql="SELECT Temperature FROM channelinfo" '2.1Make connection Set conn=CreateObject("ADODB.Connection") conn.ConnectionString=sCon conn.Open '2.2Use command text for query Set oRs=CreateObject("ADODB.Recordset") Set oCom=CreateObject("https://www.360docs.net/doc/a74283426.html,mand") Set oCom.ActiveConnection=conn https://www.360docs.net/doc/a74283426.html,mandText=sSql '2.3Fill the recordset Set oRs=oCom.Execute '3.0Fill standard iofields object with recordset

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情况好一些,允许插入/修改等。TAGPRESSED的数据和WINCC内设置的变量管理下的归档是对应的、MSARCLONG 的数据和WINCC内设置的报警记录下的设置是对应的、 ARCHIVE的数据和WINCC 内的用户归档数据是对应的. 一般的,当我们使用WINCC制作在线表格和在线趋势使用的都是变量管理器下的归档。因此,我们打开TAGPRESSED的表,可以看到的一些都是变量记录的内容。通常也是在这里归档了用户的生产数据。因此,我们访问WINCC历史数据库,实际上是访问这里的变量记录。 3、访问历史数据库的方法/连接字符/SQL语句 访问数据库的方法: A:WINCCOLEDB访问压缩归档,也可以访问非压缩归档 B:MS ADO/OLEDB只能访问非压缩归档 对于这种说法,我只严正了WINCCOLEDB的方法,后者没有测试. 连接字符:

如何用标准的odbc sql接口访问wincc归档数据库文档

https://www.360docs.net/doc/a74283426.html,/CN/view/zh/26998539 WINCC作为一个工控软件,有着工控软件的一系列特征:能显示实时数据,历史数据,生成实时数据曲线与历史数据曲线,并能生成报表。然而WINCC与其它的工控软件包有不同的地方:它的数据是保存在标准的及功能强大的Sybase SQL Anywhere数据库中,所以,我们可以像访问一般的数据库一样,通过ODBC直接访问WINCC的历史数据库。 一、通过Sybase Central 4.0访问显示数据 Wincc 在安装时就把Sysbase数据引擎与Sybase Central 4.0一同安装到系统中,你可以在Program Files\Sybase\Shared\ 中找到Sybase Central 4.0 ,你可在在其目录下\Java\中发现scjview.exe,该程序功能相当于SQL Server的企业管理器。 你可以通过其查看你在WinCC中的归档数据。 使用方法: 1) 运行WINCC,这时WINCC会在ODBC中添加两条数据源: CC_FY_02-10-16_10:40:18 CC_FY_02-10-16_10:40:18R 其中CC_FY_02-10-16_10:40:18R 是可以通过 Sybase Central 4.0 及别的一 些工具不用用户名与密码读取的。这就是我们WinCC的历史数据库。 注意:这两条ODBC名不是一成不变的,它是结构如下 CC_FY_02-10-16_10:40:18R CC:固有的,指明是WinCC生成的ODBC。 FY :项目名,这是我这个WinCC项目名称 02-10-16:最后一次修改的日期。 10:40:18:最后一次修改的时间。 R:表示是运行库。 2)、运行scjview.exe,点击Adaptive Server AnyWhere 7 按右键,选择Connect。将会弹出Connect配置界面。

excel怎么读取wincc归档数据库

虽然这例子在西门子官方文档上已经有过例子,但作为刚刚接触这块的新手拿到官方的remote-xls还是有些摸不着头脑,不断报错自动化错误8000005,看了网上的例子可以通过WINCCOLEDB来完成,最后终于搞出来了,给大家分享一下,我使用的wincc 7.0 Sp3的软件第一步归档变量设置 归档变量设为1分钟,可以按你需要的设,不影响 请注意一点要在wincc启动当中选择变量记录否则会报错invalid object name dbo.Achive 第二步在excel当中设置 创建模板 日历控件通过插入控件Microsoft Date and picker 来完成的,注意某些office 没有工具箱控件,需要在文件下的选项中插入开发工具来完成 在开发工具下的Visual Basic编辑器中sheet1插入以下脚本 Dim sPro, sDsn, sSer, sCon, sSql Dim conn, oRs, oCom Dim DSNName Dim i As Integer Dim sStart, sStop As String '---声明

Sub get_wincc_data() Set DSNName = CreateObject("CCHMIRuntime.HMIRuntime") sDsn = DSNName.Tags("@DatasourceNameRT").Read'读取当前使用数据库,一定要加两句脚本,官方文档就没有 '--Get Database DSN name----------------------------------- '--build connection string----------------------------------- sPro = "Provider=WinCCOLEDBProvider.1;" '安装connectivity pack后使用wincc OLE-DB进行连接数据 sDsn = "Catalog=" & sDsn & ";" '从sdsn为前面获取的数据库 sSer = "Data Source=.WinCC" '本地计算机为.Wincc 远程可参考官方文档 sCon = sPro & sDsn & sSer '通讯内容为协议+数据库+计算机名 Set conn = CreateObject("ADODB.Connection") conn.ConnectionString = sCon conn.CursorLocation = 3 conn.Open Set oRs = CreateObject("ADODB.Recordset") Set oCom = CreateObject("https://www.360docs.net/doc/a74283426.html,mand") https://www.360docs.net/doc/a74283426.html,mandType = 1 Set oCom.ActiveConnection = conn '查询启止时间 ,由于本地添加了Date time picker控件,所以下面调用控件函数,0和23不需要改 sStart = Year(DTPicker1.Value) & "-" & Month(DTPicker1.Value) & "-" & Day(DTPicker1.Value) & " 00:00:00" sStop = Year(DTPicker1.Value) & "-" & Month(DTPicker1.Value) & "-" & Day(DTPicker1.Value) & " 23:00:00" '转为UTC时间 sStart = DateAdd("h", -8, CDate(sStart)) ‘改为格林威治标准时间 sStop = DateAdd("h", -8, CDate(sStop)) '读取归档变量 sSql = "Tag:R,('ProcessValueArchiveNewTag'),'" & sStart & "','" & sStop & "' order by datetime" https://www.360docs.net/doc/a74283426.html,mandText = sSql '把text值放入需要通信的包中 Set oRs = oCom.Execute ’执行通信包 If (oRs.EOF) Then '如果检测到空行,则oRs关闭 oRs.Close Else oRs.MoveFirst i = 0 Do While Not oRs.EOF Sheet1.Cells(i + 4, 2) = oRs.Fields("RealValue").Value '从第四行第二列开始赋值,行数不断递增

相关主题
相关文档
最新文档