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訪問資料庫語法章節。