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查找對應資料庫編碼