wincc访问数据库
下载mysql-connector-odbc-5.1.6-win32.msi
第二步:安装mysql-connector-odbc-5.1.6-win32.msi
第三步:运行VB并新建一标准EXE工程, 通过菜单工程->引用 打开”引用”对话框, 找到 MicrosoftActiveX Data Objects x.x Library , 其中 x.x 是版本号, 可能会有很多个, 这里我选择的是2.5
第四步:打开代码窗口, 在 Form_Load 过程中输入下面的代码(具体说明在代码的注释中):
Vb代码
' 定义并创建数据库连接和访问对象
Dim cn As New ADODB.Connection
Dim rs As New ADODB.Recordset
' 定义数据库连接字符串变量
Dim strCn As String
' 定义数据库连接参数变量
Dim db_host As String
Dim db_user As String
Dim db_pass As String
Dim db_data As String
' 定义 SQL 语句变量
Dim sql As String
' 初始化数据库连接变量
db_host = "localhost"
db_user = "root"
db_pass = ""
db_data = "erqiuda"
' MySQL ODBC 连接参数
'+------------+---------------------+----------------------------------+
'| 参数名 | 默认值 | 说明 |
'+------------+------------------------------------------------------–+
'| user | ODBC (on Windows) | MySQL 用户名 |
'| server | localhost | MySQL 服务器地址 |
'| database | | 默认连接数据库 |
'| option | 0 | 参数用以指定连接的工作方式 |
'| port | 3306 | 连接端口 |
'| stmt | | 一段声明, 可以在连接数据库后运行 |
'| password | | MySQL 用户密码 |
'| socket | | (略) |
② 第三方软件访问Wincc数据库
西门子的运行数据库名不是固定的,但运行数据库前两个字“CC”,最后一个“R”,这是固定的,你可以通过字符判断获得。“Archive”是所有归档的变量名。但是你要访问归档数据的话,必须使用winccole-db协议,否则数据读不了。
③ c#访问wincc数据库方法
wincc一般用的就是sql server数据库(或者mysql),你只需要查一下C#中怎么连接sql server就知道了。
④ 用WINCC的C脚本如何访问远程SQL服务器上的数据库
WINCC中使用VB脚本是可以连接数据库的,我已经试过了,而且用的就是普通SQL语句,比如insertinto,updata,select.使用的ODBC连接的.但是在做读取数据库中的归档时是不能用直接用上面的语句的.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, "", ""
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
。
⑥ wincc无法访问数据库请检查访问权限
wincc无法访问数据库请检查访问权限是在突然断电,而没有退出wicc的激活。
1、在开始--运行注销一下wincc项目:resetwincc.vbs看是否有效。
2、在我的电脑>>管理>>用户/用户组,检查当前登陆用户是否隶属于下列用户组。
3、PowerUser或Administraotr、SIMATICHMI、SQLServer2005MSSQLUser$COMPUTERNAMESWINCC类似问题,由于使用杀毒软件或其他破坏了西门子软件,针对这种解决方法,是重装系统来解决,为了减少维护工作量,在把软件安装完全后,对操作系统做一个ghost备件,软件或系统出问题,还原一下几分钟就可解决。
⑦ 如何用WINCC里的脚本语言连接微软的数据库
WinCC的VBS虽可以声明Public变量,但作用域仅限于本画面,如下:
如果WinCC版本>=V6.0SP3,则可以使用Dataset对象,该对象可以在不同的VBS脚本中进行访问,下面是个简单的例子:
1、连接
DimobjConnection,strConnectionString
strConnectionString="Driver={SQLServer};Server=.WINCC;uid=;pass=;database=guowincc"
SetobjConnection=CreateObject("ADODB.Connection")
objConnection.ConnectionString=strConnectionString
objConnection.open
HMIRuntime.DataSet.Add"objConnection",objConnection
2、全局动作中引用
DimobjConnection
objConnection=HMIRuntime.DataSet("objConnection").Value
withobjCommand
.ActiveConnection=objConnection
xxxxxxxx
3、关闭连接:
DimobjConnection
objConnection=HMIRuntime.DataSet("objConnection").Value
objConnection.Close
SetobjConnection=Nothing
⑧ 如何访问wincc sqlserver数据库
用WINCC的C脚本访问他的SQL数据库并不合适!因为本来vc++ 和VB对比,vb访问数据库比VC要方便,容易掌握,快捷
最好的方法:采用VB编写SQL访问数据,外挂于WINCC。
访问WINCC SQL,用常规的方法是访问不到的,因为SQL FOR WINCC有独特的访问方式。
⑨ wincc查找对应数据库编码