WINCC数据库 的访问
WINCC+VBS+ADO访问归档数据(V6.2测试通过)

WINCC+VBS+ADO访问归档数据(V6.2测试通过)Sub OnLButtonDown(ByVal Item, ByVal Flags, ByVal x, ByVal y)Dim oListDim objDim constrDim oRsDim objComDim comstrDim mDim nDim oItemDim sDim kSet oList=ScreenItems("控件5")oList.View=3oList.ListItems.ClearSet obj=CreateObject("ADODB.Connection")obj.CursorLocation=3obj.Open "Provider=WinCCOLEDBProvider.1; Catalog=CC_TEST_WIN_10_08_02_17_29_24R;DataSource=.\WINCC"Set oRs=CreateObject("ADODB.Recordset")Set objCom=CreateObject("mand")comstr="TAG:R,'ProcessValueArchive\NewTag','2008-08-14 1:36:20','2008-08-14 1:44:20'"Set objCom.ActiveConnection=objmandText=comstrSet oRs= objCom.Executem=oRs.Fields.CountWith oList.ColumnHeaders.Clear.ColumnHeaders.Add , , CStr(oRs.Fields(1).Name), 780.ColumnHeaders.Add , , CStr(oRs.Fields(2).Name), 900.ColumnHeaders.Add , , CStr(oRs.Fields(3).Name), 1050.ColumnHeaders.Add , , CStr(oRs.Fields(4).Name), 1200End WithIf (m > 0) ThenoRs.MoveFirstDo While Not oRs.EOF's = Left(CStr(oRs.Fields(1).value), 23)s = CDate(oRs.Fields(1).value)k = DateAdd("h", 8, s)Set oItem = oList.ListItems.Add 'ListItem 代表一行oItem.Text = k '第I行的行第一列oItem.SubItems(1) = FormatNumber(oRs.Fields(2).value, 1) '第I行的行第二列oItem.SubItems(2) = Hex(oRs.Fields(3).value) '第I行的行第三列oItem.SubItems(3) = FormatNumber(oRs.Fields(4).value, 1) '第I行的行第四列oRs.MoveNextLoopoRs.CloseElseEnd IfSet oRs = NothingSet obj=NothingSet objCom=Nothing obj.CloseSet obj=Nothing。
访问wincc数据库(二)2024

访问wincc数据库(二)引言:本文将继续介绍如何访问WinCC数据库。
在上一篇文章中,我们已经讨论了WinCC数据库的基本概念和连接方法。
本文将深入讨论如何在WinCC中执行查询、插入、更新和删除操作,并介绍一些常用的数据库操作技巧。
第一大点:执行查询操作1. 配置数据库连接:首先,在WinCC中配置正确的数据库连接参数,包括数据库类型、主机名、端口号和认证信息。
2. 编写查询语句:使用SQL语句编写查询语句,包括选择查询的表和字段,并可以添加一些查询条件。
3. 执行查询操作:在WinCC中使用合适的函数或组件执行查询操作,并获取查询结果集。
4. 处理查询结果:遍历查询结果集,读取所需的数据,并进行相应的处理和展示。
第二大点:执行插入操作1. 编写插入语句:使用SQL语句编写插入语句,指定要插入的表和字段,并提供相应的数据。
2. 执行插入操作:在WinCC中使用适当的函数或组件执行插入操作,并将数据插入到数据库中。
3. 处理插入结果:根据插入操作的结果进行相应的处理和反馈。
第三大点:执行更新操作1. 编写更新语句:使用SQL语句编写更新语句,指定要更新的表和字段,并提供相应的数据。
2. 执行更新操作:在WinCC中使用适当的函数或组件执行更新操作,并将数据更新到数据库中。
3. 处理更新结果:根据更新操作的结果进行相应的处理和反馈。
第四大点:执行删除操作1. 编写删除语句:使用SQL语句编写删除语句,指定要删除的表和条件。
2. 执行删除操作:在WinCC中使用适当的函数或组件执行删除操作,并将符合条件的数据从数据库中删除。
3. 处理删除结果:根据删除操作的结果进行相应的处理和反馈。
第五大点:常用的数据库操作技巧1. 数据过滤和排序:使用SQL语句中的WHERE和ORDER BY子句对数据进行过滤和排序,提取所需的数据。
2. 数据聚合和分组:使用SQL语句中的GROUP BY和聚合函数对数据进行统计和分组。
如何使用Excel通过OPC访问WinCC的实时数据

OPC(OLE for process control)作为标准软件接口,可以使各个生产商的设备和应用程序就能以统一的方式连接起来。
WinCC 既可以用作OPC 服务器提供数据,又可以作为OPC 客户机访问其他OPC 服务器中的数据。
WinCC集成的OPC服务器使得过程数据可由其它应用程序(OPC 客户机)访问。
在Excel中可以通过VBA脚本建立OPC 客户端,并通过OPC接口读取WinCC 中的数据,并将修改的数据写入WinCC。
1 OPC规范及功能OPC是一种一致的独立于制造商的软件接口。
OPC 接口基于Microsoft Windows 的COM(组件对象模型)和DCOM(分布式组件对象模型)技术。
另一方面,OPC XML 则基于Internet 标准XML、SOAP 和HTTP。
> COMCOM 是位于同一计算机上且属于不同程序的对象之间进行通讯时采用的标准协议。
服务端是提供服务的对象,比如提供数据。
客户端是使用由服务端提供的服务的应用程序。
> DCOMDCOM 代表COM 功能的扩展,从而允许对远程计算机上的对象的访问。
该接口允许在企业、管理办公室和生产的应用程序之间进行标准化的数据交换。
以前,访问过程数据的应用程序受限于通讯网络的访问协议。
使用OPC 标准软件接口,各个生产商的设备和应用程序就能以一致的方式连接起来。
OPC 客户端是访问过程数据、消息和OPC 服务端归档历史数据的应用程序。
访问需要通过OPC 软件接口。
OPC 服务端是一个程序,它为不同制造商的应用程序提供一个标准的软件接口。
OPC 服务端是在处理过程数据的应用程序、各种网络协议和用于访问这些数据的接口之间的中间层。
只有当设备的操作系统是基于Windows COM 和DCOM 技术时,才能使用OPC 软件接口进行数据交换。
目前,Windows 2000、Windows XP、Windows 2003 Server 和Windows VISTA 具有这些软件接口。
基于WINCC组态软件和第三方自动化设备的数据访问和记录方法

作者简介:陈奕良(1992-),男,自动化工程师,从事纸张薄膜类自动化设备设备电气设计工作。
收稿日期:2021-02-261 WINCC 组态软件与第三方自动化设备1.1 WINCC 组态软件WINCC 是一种实现现场数据采集、过程可视化和过程监控的自动化工具,俗称SCADA 。
其运行在windows 环境下,具有很好的兼容性和扩展性,适合复杂系统操作和数据监控。
本文以WINCC professional V15为例,主要使用WINCC 组态软件开发第三方设备的可视化操作界面、过程数据监控以及数据库记录功能。
WINCC 的组态如图1所示。
图1 WINCC 自动化组态1.2 第三方自动化设备第三方自动化设备由乙方提供,为采购设备,并不参与甲方设备的系统集成,因此无法直接由WINCC 组态软件的默认HMI 通讯通道进行访问。
其控制系统由西门子SIMOTION 控制器和西门子触摸屏组成,如图2所示,SIMOTION 是以设备代理的形式与触摸屏通讯,是单独的一个自动化组态系统,没法集成到WINCC 里。
不过基本市售的工业HMI 触摸屏都是支持OPC 通讯的,西门子的也不例外,可以设置作为OPC 服务器,这样WINCC 作为客户端就能访问西门子触摸屏的变量了。
图2 第三方设备自动化组态2 系统组态2.1 配置WINCC 通讯WINCC 组态软件支持多种PLC 控制器驱动,比如西门子的S7-300/400和S7-1200/1500系列,第三方的比如AB 和三菱的TCP/IP 协议等等,但是和第三方品牌或者乙方的设备通讯时必须有对方的编程源程序或者有支持与其得通讯驱动,在本例WINCC 就基于WINCC 组态软件和第三方自动化设备的数据访问和记录方法陈奕良,张帆(广东金明精机股份有限公司,广东 汕头 515098)摘要:本文介绍了基于WINCC 组态软件和第三方设备的应用系统,在PLC 设计的系统中一般通过可视化面板进行操作,功能简单,功能扩展有限,而通过组态软件设计的可视化操作系统,可以使用组态软件的功能和其支持的VC/VB 脚本编辑器,完善和丰富系统操作功能,提高系统自动化可视化程度及数据监控功能。
Excel中通过VBA脚本访问Wincc数据库读取多变量脚本的方法

Excel中通过VBA脚本访问Wincc数据库读取多变量脚本的方法摘要通过Excel中的VBA(Visual Basic for Application)脚本读取Wincc 数据库SQL server2005中的变量数据,实现了多时间段、各变量多数据类型的读取。
关键词Excel;VBA;Wincc;SQL server2005Excel是最流行的电子表格软件,其内嵌VBA编程语言,提供了对Wincc 数据库SQL server很好的支持,可以方便访问数据库,从数据库中提取变量存储信息、保存报表。
Wincc是西门子公司与微软公司在工业自动化领域共同开发的人机界面软件,广泛用于在工业自动化系统中与PLC等基础自动化设备连接,提供操作员对自动化系统的监视、操作、报警、报表等人机对话功能。
同时Wincc 将变量归档的结果存储于SQL server中,便于其他程序对SQL server的操作。
本文中Wincc的版本为6.2,附加的数据库版本是SQL Server 2005。
本文中从实际角度出发,提供一种直接使用Excel VBA编写客户端访问Wincc数据库SQL Server 2005的方法,针对用户对变量的要求,从数据库中同时挑选多个变量,不同的时间段、时间间隔,实现了不同要求的数据采集。
本实例中提供了关键的Excel示例代码,有一定的实用价值。
本文以煤气化气化装置实验数据采集为例进行说明。
1 变量归档在WinccExplorer界面中打开变量记录,点击归档,在右方区域点击右键,选择归档向导,根据向导的提示步骤创建归档变量。
若想改变采集周期,可点变量属性,分别设置采集、归档、显示时间,完成后再保存。
另需在计算机属性的起动设置中要给变量记录系统打勾才能正常调用。
2 数据采集软件的编写本文中,Wincc作为上位机组态软件,将发出的指令与采集回来的数据经过变量归档实时地存入数据库SQL server2005中,为了便于不同专业科研人员对于数据的处理,利用Excel内嵌的VBA编程语言,对数据库内的数据进行采集。
利用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:18CC_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:18RCC:固有的,指明是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 V6.0 用VBS链接数据库的几点说明

WinCC V6.0用VBS连接数据库的几点说明1、运行数据库DSNWinCC内部变量:@DatasourceNameRT,如:CC_MyTest_06_04_08_09_05_14R2、普通连接的ConnectionString(1)连接运行数据库strSQL="Provider=SQLOLEDB.1;Integrated Security=SSPI;Persist Security Info=False;Initial Catalog=CC_MyTest_06_04_08_09_05_14R;Data Source=.\WINCC"(2)连接其它数据库,如:NorthwindstrSQL="Provider=SQLOLEDB.1;Integrated Security=SSPI;Persist Security Info=False;Initial Catalog=Northwind;Data Source=.\WINCC"注:普通连接方式下,所有标准的SQL语句都可以使用。
3、归档数据库的ConnectionStringstrSQL="Provider=WinCCOLEDBProvider.1;Catalog=CC_MyTest_06_04_08_ 09_05_14R;Data Source=.\WinCC"在此连接方式下,只能用WinCCOLEDBProvider提供的方法访问归档数据库:(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'"(2)多个归档变量查询:strSQL = "TAG:R,(10;14;15),'2006-04-12 16:00:00','2006-04-1315:59:59'"或strSQL ="TAG:R,('Archive1\Tag1';'Archive2\Tag1';'Archive2\Tag2'),'2006-04-12 16:00:00','2006-04-13 15:59:59''"注:如果需要对查询结果再作过滤,可以使用Recordset.Filter属性再次过滤。
wincc访问Acess数据库

wincc访问Acess数据库我用的时wincc6.2,怎样去读写另一台电脑上的一个Acess数据库中的内容?最佳答案WINCC的VBS可以很好的操作EXCEL,操作ACCESS也没有问题。
Wincc用VBS脚本读写ACESS数据库首先要进入系统的数据库设定。
设定完后,将ACess数据库的路径存入Wincc中对应的一个变量。
然后在用到数据库内容的地方,用SubOnOpen()”“打开时检查一下系统路径IfTrim(HMIRuntime.Tags(“Db_Path”).Read)=““ThenMsgBox”请检查系统数据库路径,系统检测到不正常!现在路径是:”&HMIRuntime.Tags(“Db_Path”).ReadElse”“定义combol对象DimcomSetcom=ScreenItems(“combolbox_receipe”)com.Clearcom.AddItem”请选择配方...”,0”“首先打开数据库DimConn,ResultSetSetConn=CreateObject(“ADODB.Connection”)SetResultSet=CreateObject(“ADODB.Recordset”)Conn.open”Provider=Microsoft.Jet.OLEDB.4.0;DataSource=“& HMIRuntime.Tags(“Db_Path”).ReadResultSet.open”Select*Fromrecipe”,Conn,1,1”“依次读出数据库中配方的数量DoWhileNotResultSet.EOFcom.AddItemResultSet(“name”).value,ResultSet(“Id”).valuE ResultSet.MoveNextLoopcom.ListIndex=0SetResultSet=Null”“结果集置空SetConn=Null”“连接置空ResultSet.Close”“结果集关闭Conn.close”“连接关闭EndIfEndSub当系统切换到此页面时,将从数据库中读出表recipe中的值,到Combolbox中,并且将ListIndex=0的那一项列为默认项。