当前位置:首页 » 数据仓库 » wincc数据库查询
扩展阅读
webinf下怎么引入js 2023-08-31 21:54:13
堡垒机怎么打开web 2023-08-31 21:54:11

wincc数据库查询

发布时间: 2022-10-23 01:23:25

A. 怎么查看wincc在sql中的数据

目前几乎所有组态软件都支持ODBC指令,用这些指令可以对各类数据库进行读、写、增加、删除等操作。不同软件的做法不同,但道理都差不多,每一种组态软件都有专门章节指导。一般情况下,步骤是:1建立一个数据库2定义数据源:进入“控制面板”中的“管理工具”,用鼠标双击“数据源(ODBC)”选项,弹出“ODBC数据源管理器”。3在组态软件中引用数据库操作指令,操作已经定义好的数据库。

B. 如何利用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, "", ""

sqlstr=”
insert
into
PDE#HQZ#GAS_PRE(T,V
,F)
V
alues(„”+
Nowtime
+”‟,”+
nowV
alue
+”,
8392705) ”

cn.Execute sqlstr

cn.close

End sub

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

三、

结语

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

功能更为强大。

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

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

C. wincc历史数据怎么样按条件查询

1、没有钱买西门子的数据软件的情况可以使用脚本对SQL数据库做查询,但是需要编程人员有相当的C语言功底或者VBS功底。2、不清楚您是否熟悉VB的串口编程?在Wincc中对于串口的编程与VB类似,同样调用串口控件。是否能使用C进行串口的API编程,我没有尝试过,但是我个人认为,就C比VBS的能力来说,应该可以的。

D. wincc怎么查看日志

在介绍之前,还是先介绍一下项目的背景,这是一个针对某个火炉的温度控制系统,其中,需要对几个关键的工艺参数变量实现查询。主要有DATA,PIHAO,LUCI等。这几个变量在WINCC系统中属于内部变量,在对其查询之前要先建立用户归档,这样WINCC会自动将这些变量按照设定的存储规则存放到SQL数据库中。而对历史数据操作的核心就是对SQL数据库的正确操作以导出我们需要的数据。
通过VBS语言对按钮对象编辑一个脚本程序就可以方便地实现此功能。

下面,我将对查询的具体步骤与注意的地方一一详述。

1、定义连接字符串,可以通过ODBC方便地访问数据库的。使用VBS连接数据库,我们要知道以下信息:数据库名,数据源名。然后打开SQL数据库,这时候看到Databases下有很多的数据库,WINCC建立的数据库名是有规则的,一般是CC_工程名_年_月_日_时_分_秒R。
2、定义查询的SQL命令。
3、连接数据库。定义好了连接字符串与查询字符串,我们就可以访问SQL数据库了。
4、显示数据。
我使用WINCC提供的ListView控件显示数据。“控件2”就是我建立的ListView控件的名字
1、脚本在编写完毕之后,系统只会发现语法错误,如关键字拼写错误等,如果有逻辑错误,脚本不能运行,是不会有任何提示的刚开始运行时,一直不能取出相应的数据,后来发现是我的数据库名写错了。系统是不会提示你找不到数据库的。

2、取出数据之后,在ListView控件上显示的数据一直是杂乱无序并且是乱码,并非应当显示的那种数据库中的排列方式,且在程序中定义的列名不显示。
最后发现是控件属性设置的问题,ListView的默认显示类型并非报表类型,因此显示的是无次序的数据,所以,当我们修改其属性为报表类型之后,就会看到与数据库中一样的显示效果,并且列名也会正常显示。所以,WINCC中属性的设置就尤为重要了。

3、在解决了上面问题之后,虽然显示的序列是对的,但是显示的内容还是与预期的不符,尤其是时期这一列,显示的是一串纯数字。这个问题很明显,是显示格式的问题。因此,在程序中,对要显示的内容要转换成字符串的形式(CStr()函数)。

4、查询字符串的格式对于能否正确查询有着很重要的影响。例如:如果在数据库中日期的格式是MM-DD-YYYY(比如07-09-2014),那么,在SQL语句查询时,就不能用7-9-2014,这种方式的查询是没有结果的。

E. wincc查找对应数据库编码

  1. 建立数据库连接,有VB语言和C语言的,论坛里有。
    方式也有两种:一中是wincc自己的数据库查询语句(看不大习惯);另一种普通连接,支持标准的SQL语句(建议此方式)
    2.查询数据库语句:Sql="select时间from表名where条件
    3.显示:可用msg直接编译显示;可导到控件;亦可导到Excel中

  2. 如果是实时数据,你可以找到SQLSERVER里面的数据表后访问,但这样访问得到的数据大都没什么实际意思.如果是归档数据,这个你必须购买ConnectivityPack这个选件,因为winccv6.2以后的数据都是经过压缩了的数据,不支持直接访问

F. c#访问wincc数据库方法

wincc一般用的就是sql server数据库(或者mysql),你只需要查一下C#中怎么连接sql server就知道了。

G. wincc数据归档被覆盖的以前的记录还可以查到吗

一周内可以查到。
TIAWINCCWinCCProfessional的归档数据默认存储方式为:每天生成一个数据库文件,最多存储一周七天的数据,当数据存储超过一周时,按照先进先出的规则清空

H. VB访问WINCC的过程归档数据库 如何连接及查询望大虾指教

从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的方法,后者没有测试. 连接字符: WINCCOLEDB的连接字符为(本地): provider=winccoledbprovider.1,catalog=.\wincc,data source= 数据库名,user id=DBA,password=SQL 对于远程连接,因为没有条件测试,所以就不说了,希望有哪位朋友日后通过了测试,到这里告诉一下现在开始讲访问用户归档,过程值归档和消息归档的方法和语法: 1:查询过程值归档和消息归档的连接字符串 SET CON=Createobject("adodb.connection") con.open Provider=winccoledbprovider.1;catalog=cc_工程名_年_月_日_时_分_秒R,data source=.\wincc,user id=DBA,password=SQL 说明:按照WINCC规定的连接字符串,创建到数据库的连接,并且打开这个连接.其中,我们经常需要修改的是Catalog的值,这个值根据不同的工程和创建的时间不同,我们可以在ODBC管理器下或SQL的库中看到. 查询过程值归档和用户归档的SQL语句 TAG:R,'变量名1','起始时间','终止时间' where条件说明:WHERE子句只对用户归档有效,对过程值归档无效.变量名:这个变量名要和WINCC下的变量管理器的过程值归档名要一致.其格式为:归档名/变量名.起始时间和终止时间可以用相对时间和绝对时间,一般绝对时间比较容易理解,就是从开始时间到终止时间就好了.例如,查询从2006/3/12 12:20:20秒到2006/3/13/ 12:20:20秒的数据,则应该写成'2006-3-12 12:20:20' '2006-3-13 12:20:20'就好了.当然拉,也可以用相对时间格式,就是比目前时间的相对值,有个前移后移的问题,很简单的. 这里特别需要注意的是:记录到SQL数据库的时间都是格林威治时间,和中国的东8区有8个小时的时间差,也就是说记录的时间比本机PC时区晚8小时,这一点我们在测试是尤其重要.因为你是时间不正确,可能数据就没有显示,而导致你怀疑连接/命令/记录的有效性访问SQL数据库的方法过程描述. 这和访问普通的数据库的方法大致上是相同,唯一的就是由于WINCC的数据是经过了压缩的. 1:定义连接字符串,就是前面所讲到的. 2:创建ADODB的CONNECTION对象,在VB中直接用CREATEOBJECT(ADODB.CONNECTION)函数,在ASP的VB脚本中,需要使用内置SERVER对象创建CONNECTIONG对象. 3:打开到数据库的连接,使用CONNECTION的OPEN函数 4:创建COMMAND对象,并定义COMMAND对象采用用CMDTEXT方法,表明将要使用命令文本的方式来获取数据记录. 5:创建RECORDSET对象,并用COMMAND对象的返回记录集填充这个记录集. 6:RECORDSET对象的数据就可以被你任意的使用了

I. Wincc变量纪录数据库表怎么查看

Wincc变量纪录数据库表怎么查看
wincc的数据库是微软为西门子单独开发的,他的数据是加了密的,所以只能在wincc相应的表里看

J. VB访问WINCC的过程归档数据库 如何连接及查询望大虾指教

查询过程值归档语法:
TAG:R<ValueID
or
ValueName>,<TimeBegin>,<TimeEnd>
查询报警信息归档语法:
ALARMVIEW:SELECT
*FROM<ViewName>[WHERE<condition>...,optional]
详情请参阅《深入浅出Wincc6》一书中的利用ADO/Wincc
OLE
DB访问数据库语法章节。