當前位置:首頁 » 數據倉庫 » 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訪問資料庫語法章節。