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查找对应数据库编码
建立数据库连接,有VB语言和C语言的,论坛里有。
方式也有两种:一中是wincc自己的数据库查询语句(看不大习惯);另一种普通连接,支持标准的SQL语句(建议此方式)
2.查询数据库语句:Sql="select时间from表名where条件
3.显示:可用msg直接编译显示;可导到控件;亦可导到Excel中如果是实时数据,你可以找到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访问数据库语法章节。