
wincc无法访问数据库请检查访问权限是在突然断电,而没有退出wicc的激活。
1、在开始--运行注销一下wincc项目:resetwinccvbs看是否有效。
2、在我的电脑>>管理>>用户/用户组,检查当前登陆用户是否隶属于下列用户组。
3、PowerUser或Administraotr、SIMATICHMI、SQLServer2005MSSQLUser$COMPUTERNAMESWINCC类似问题,由于使用杀毒软件或其他破坏了西门子软件,针对这种解决方法,是重装系统来解决,为了减少维护工作量,在把软件安装完全后,对 *** 作系统做一个ghost备件,软件或系统出问题,还原一下几分钟就可解决。
安装时是带选项的,请注意选择。
Connectivity Pack提供用来解析WinCC数据库压缩归档的WinCC OLE DB驱动,不用它很难直接从WinCC的数据库中读取归档数据(SQL Server OLE DB无此功能)。
可以使用Dat@Monitor,它可以在Excel和Internet Explorer中以表格和图形的方式显示WinCC的数据库中的数据。
也可以使用Industrial Data Bridge(工业数据桥),它可以将WinCC的数据读写到第三方的数据库(SQL Server 2000/MS Access 2003/Oracle 9i),而后可以用VB/VC/net来访问。
不用脚本的话,在plc程序里实现。用脚本的话,方法多了。在输入输出连接一个变量a,a改变时,脚本里给别的变量赋值!脚本触发器选择变量a改变!还有很多办法,比如输入输出的内容改变事件,在这里给其他几个变量赋值,当然还是脚本赋值!
WINCC
作为一个工控软件,有着工控软件的一系列特征:能显示实时数据,历史数据,生
成实时数据曲线与历史数据曲线,
并能生成报表。
然而
WINCC
与其它的工控软件包有不同
的地方:
它的数据是保存在标准的及功能强大的
Sybase SQL Anywhere
数据库中
,
所以,
我们
可以像访问一般的数据库一样,通过
ODBC
直接访问
WINCC
的历史数据库。
一、
通过
Sybase Central 40
访问显示数据
Wincc
在安装时就把
Sysbase
数据引擎与
Sybase
Central
40
一同安装到系统中,你可以在
Program
Files\Sybase\Shared\
中找到
Sybase
Central
40
,你可在在其目录下
\java\
中发
现
scjviewexe
,该程序功能相当于
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
40
及别的一些工具不用
用户名与密码读取的。这就是我们
WinCC
的历史数据库。
注意:这两条
ODBC
名不是一成不变的,它是结构如下
CC_FY_02-10-16_10:40:18R
CC
:
固有的,指明是
WinCC
生成的
ODBC
。
FY
:
项目名,这是我这个
WinCC
项目名称
02-10-16
:最后一次修改的日期。
10:40:18
:最后一次修改的时间。
R
:
表示是运行库。
2
)
、运行
scjviewexe
,点击
Adaptive
Server
AnyWhere
7
按右键,选择
Connect
。将会d出
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 ADODBConnection
Private rs As ADODBRecordset
Const dsn = “CC_FY_02
-10-
16_10:40:18R”
Private sub insertData(nowV
alue as double)
Dim nowtime as string
Nowtime =now
cnOpen dsn, "", ""
sqlstr=”
insert
into
PDE#HQZ#GAS_PRE(T,V
,F)
V
alues(„”+
Nowtime
+”‟,”+
nowV
alue
+”,
8392705) ”
cnExecute sqlstr
cnclose
End sub
本程序中的子程序只处理了数据插入,其它读出就更为简单,与其它的
ADO
访问是一模一
样的,这里就不多说了。
三、
结语
能通过
ODBC
访问
WINCC
的历史数据,给我们提供了更多了解决办法,特别是在企业信
息化平台上使用非实时数据方面,可以人为给
WINCC
添加正确的历史数据,使
WINCC
的
功能更为强大。
由于
ODBC
名与项目的修改时间有关,所以在项目频繁变化时,请不要使用这个功能。
WinCC
在启动时自动添加
ODBC
名,在关闭时自动删除,所以,在
WINCC
关闭后,不能
再通过
ODBC
访问
ODBC
。
目前几乎所有组态软件都支持ODBC指令,用这些指令可以对各类数据库进行读、写、增加、删除等 *** 作。不同软件的做法不同,但道理都差不多,每一种组态软件都有专门章节指导。一般情况下,步骤是:1建立一个数据库2定义数据源:进入“控制面板”中的“管理工具”,用鼠标双击“数据源(ODBC)”选项,d出“ODBC数据源管理器”。3在组态软件中引用数据库 *** 作指令, *** 作已经定义好的数据库。
写入数据库方法主要有:
opc(西门子simaticnet opc、第三方kepware opc)
prodave(西门子的一个软件包,提高vb和c的通讯函数库)
simticnet软件提供了几个通讯dll(此法是一般的第三方scada所采用)
PLC发展成了取代继电器线路和进行顺序控制为主的产品。PLC厂家在原来CPU模板上提逐渐增加了各种通讯接口,现场总线技术及以太网技术也同步发展,使PLC的应用范围越来越广泛。 PLC具有稳定可靠、价格便宜、功能齐全、应用灵活方便、 *** 作维护方便的优点,这是它能持久的占有市场的根本原因。
说实话,打开容易,让wincc自己去关闭一个应用程序并不是那么的简单的。
我是用VBNET做程序的,我的通常做法是:让VB程序去检测wincc的状态,如果VB程序检测到wincc没有运行,那么把自己关闭。检测wincc有没有运行的方法比较多,你可以检测wincc的窗口是否存在也可以用软件读取wincc的内部变量比如:@DatasourceNameRT是不是空来判断。
下面是我的一小段程序(从项目中截取了一小段,不保证正确,只是思路),检测wincc是不是运行的,vbnet写的。仅作参考吧。
Private Sub Form1_Load(ByVal sender As SystemObject, ByVal e As SystemEventArgs) Handles MyBaseLoad
Dim DBstr As String
Dim WinCC As Object = CreateObject("WinCC-Runtime-Project")
DBstr = WinCCGetValue("@DatasourceNameRT")
WinCC = Nothing
Database = DBstr
If Database = "" Then
MsgBox("WinCC 没有运行,不能生成报表!")
Exit Sub
End If
以上就是关于wincc无法访问数据库请检查访问权限全部的内容,包括:wincc无法访问数据库请检查访问权限、Wincc7. 5不自带数据库、如何WINCC,通过c脚本读取存档变量等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)