結(jié)構(gòu)化查詢語言(SQL)可以幫助SCADA軟件用戶提高連接性以及發(fā)送和接收數(shù)據(jù)的能力。
將結(jié)構(gòu)化查詢語言(SQL)用于自動(dòng)化并不是什么新鮮事。不同系統(tǒng)的后臺(tái)使用SQL數(shù)據(jù)庫已經(jīng)有幾十年了,但即使在今天,仍有一些人對(duì)將SQL與監(jiān)控和數(shù)據(jù)采集(SCADA)等工業(yè)自動(dòng)化軟件集成在一起猶豫不決。隨著越來越多的SCADA軟件用戶感受到在當(dāng)今這個(gè)以數(shù)據(jù)為驅(qū)動(dòng)力的互聯(lián)世界中與時(shí)俱進(jìn)的壓力,SQL受到了更多的關(guān)注。
數(shù)據(jù)庫通常是任何控制系統(tǒng)中最重要的組件之一。經(jīng)過多年的發(fā)展,有一點(diǎn)越來越清楚,使用與開放數(shù)據(jù)庫(如SQL)集成的控制系統(tǒng)比使用專有數(shù)據(jù)庫的系統(tǒng)更具優(yōu)勢,這就是為什么SQL和工業(yè)應(yīng)用平臺(tái)的結(jié)合如此有價(jià)值的原因。
01SQL編程語言
根據(jù)美國國家標(biāo)準(zhǔn)學(xué)會(huì)(ANSI)的定義,SQL是在關(guān)系數(shù)據(jù)庫管理系統(tǒng)(RDBMS)中管理數(shù)據(jù)的標(biāo)準(zhǔn)編程語言,也是關(guān)系數(shù)據(jù)庫中使用最廣泛的語言之一。它最初是在20世紀(jì)70年代為IBM開發(fā)的,近50年來一直用于在SQL數(shù)據(jù)庫中存儲(chǔ)和管理數(shù)據(jù)。
它的主要功能是使用SQL語句,“查詢”或快速高效地詢問從少量到大量數(shù)據(jù)的問題,用戶可以在數(shù)據(jù)庫中存儲(chǔ)、更新、檢索、搜索或刪除特定數(shù)據(jù)。
軟件工程師使用SQL語言的各種組件(如標(biāo)識(shí)符、變量和搜索條件)構(gòu)建SQL查詢,以形成正確的語句。他們還可以將SQL查詢保存為“存儲(chǔ)程序”以便日后使用,這樣用戶就不必重寫經(jīng)常使用的查詢。這就是SQL如此高效的一部分原因,即使是專有數(shù)據(jù)庫也經(jīng)常使用同樣的基本結(jié)構(gòu)。
02SQL關(guān)系數(shù)據(jù)庫
雖然所有數(shù)據(jù)庫都存儲(chǔ)數(shù)據(jù)以供將來或持續(xù)使用,但數(shù)據(jù)庫的類型很多,且因結(jié)構(gòu)而異。使用最廣泛的數(shù)據(jù)庫類型被稱為關(guān)系數(shù)據(jù)庫。在關(guān)系數(shù)據(jù)庫中,每個(gè)數(shù)據(jù)點(diǎn)都與其周圍的數(shù)據(jù)相關(guān),其功能是組織和檢索關(guān)系數(shù)據(jù)。
“SQL數(shù)據(jù)庫是數(shù)據(jù)存儲(chǔ)和訪問檢索最重要的技術(shù)之一。” Inductive Automation首席技術(shù)架構(gòu)師Kevin McClusky說。
用戶可以認(rèn)為SQL數(shù)據(jù)庫有兩個(gè)主要功能:由SQL執(zhí)行的訪問檢索;以及使用數(shù)據(jù)庫引擎執(zhí)行的存儲(chǔ)。SQL數(shù)據(jù)庫將數(shù)據(jù)組織成文件和特定存儲(chǔ)區(qū)域,或者保存在物理硬盤,或者保存在基于云的SQL數(shù)據(jù)庫的在線服務(wù)器上。
SQL數(shù)據(jù)庫的結(jié)構(gòu)類似于具有行、列和單元格的Excel表,這使得組織和檢索任何數(shù)量的數(shù)據(jù)都很容易。這種結(jié)構(gòu)對(duì)于實(shí)時(shí)和時(shí)間序列(或歷史)數(shù)據(jù)特別有用。它有助于將與其它數(shù)據(jù)相關(guān)的數(shù)據(jù),按照通用特性組織到表中,以顯示事件或數(shù)據(jù)集的視圖。
SQL數(shù)據(jù)庫最強(qiáng)大的功能之一,是它能夠“查詢”或詢問數(shù)據(jù)并與之建立關(guān)系。SQL查詢允許用戶執(zhí)行分析、回答復(fù)雜問題、操作和聚合數(shù)據(jù),而無需許多步驟,因此可以從多個(gè)表中檢索數(shù)據(jù),將記錄與常見字段類型關(guān)聯(lián),利用數(shù)據(jù)中的關(guān)系,精確控制數(shù)據(jù)的去向或排除數(shù)據(jù)。
例如,一家公司可能有和員工相關(guān)的兩個(gè)不同表格,一個(gè)表格用于員工的個(gè)人數(shù)據(jù),如姓名、地址和出生日期,另一個(gè)表格則包含每個(gè)員工工資的詳細(xì)信息。雖然雇員表和工資表分別存在于數(shù)據(jù)庫中,但它們的數(shù)據(jù)可以相互關(guān)聯(lián),并可能一起檢索。
這種關(guān)聯(lián)是通過表格中唯一的標(biāo)識(shí)符(通常被稱為主鍵)來實(shí)現(xiàn)的,該標(biāo)識(shí)符可以在另一表格中引用。例如,員工唯一的ID號(hào)可以是員工表中的主鍵,而該ID可以用作工資表中的外部標(biāo)識(shí)符(通常被稱為外鍵)。這使得員工表中員工的數(shù)據(jù),可以通過其唯一員工ID,與工資表中的工資數(shù)據(jù)相關(guān)聯(lián)。創(chuàng)建這種關(guān)聯(lián)或關(guān)系的能力,是這類數(shù)據(jù)庫被稱為關(guān)系數(shù)據(jù)庫的原因。
通過在表之間創(chuàng)建這些關(guān)系,可以編寫查詢來聚合多個(gè)表的匯總結(jié)果,例如按部門列出員工工資。如果SQL數(shù)據(jù)庫連接到車間,用戶可以實(shí)時(shí)找到一個(gè)房間或多個(gè)房間的平均溫度、溫度控制機(jī)器何時(shí)或是否停機(jī)或工作了多長時(shí)間、多個(gè)停機(jī)事件數(shù)據(jù)集之間的標(biāo)準(zhǔn)偏差等等。
SQL查詢可以是簡單的:只需要一兩行代碼來查詢一個(gè)表;也可以是極其復(fù)雜的:需要數(shù)百行代碼來查詢多個(gè)表。不過,一般來說,查詢越短、越簡潔越好。McClusky說:“這些查詢的復(fù)雜程度取決于你的實(shí)際需要。”SQL查詢的范圍和靈活性,是關(guān)系型SQL數(shù)據(jù)庫成為數(shù)據(jù)檢索、存儲(chǔ)和管理的強(qiáng)大而通用工具的部分原因。
03SQL的四個(gè)主要優(yōu)勢
每年的技術(shù)趨勢此起彼伏。然而,在出現(xiàn)近50年后,SQL仍然很強(qiáng)大。以下是SQL表現(xiàn)持續(xù)優(yōu)秀的四個(gè)主要原因:簡單易用、可擴(kuò)展性、可訪問性及其多種選擇。
1.簡單易用
SQL是經(jīng)過高度開發(fā)的,而且非常容易學(xué)習(xí)。學(xué)習(xí)SQL有很多免費(fèi)資源,有很多人使用SQL,因此找到熟悉SQL的IT人員或工程師通常不是問題。此外,用戶只需要了解一些基本操作即可檢索、更新、刪除或聚合數(shù)據(jù)。
2.可擴(kuò)展性
與許多專有數(shù)據(jù)庫不同,SQL數(shù)據(jù)庫費(fèi)用并不高,可以處理大量數(shù)據(jù),這使其易于擴(kuò)展到任何業(yè)務(wù)。一些最流行的SQL數(shù)據(jù)庫甚至可以免費(fèi)使用,比如MySQL和Postgres。
3.可訪問性
像SQL數(shù)據(jù)庫這樣的開放標(biāo)準(zhǔn)技術(shù),對(duì)每個(gè)人都是可用的,而且很容易訪問,這和專有技術(shù)不同,專有技術(shù)通常需要高昂的付費(fèi),而且通常很難從中提取或遷移數(shù)據(jù)。用戶還可以將SQL數(shù)據(jù)庫與許多其它技術(shù)集成在一起,不必拘泥于單一的供應(yīng)商,也不必使用受限的定制數(shù)據(jù)庫。
4.多種選擇
“我認(rèn)為它仍然如此強(qiáng)大的另一個(gè)原因,是有很多不同的選擇。SQL是一種標(biāo)準(zhǔn)的查詢語言,有多個(gè)不同的數(shù)據(jù)庫供應(yīng)商,您不必被迫使用某一種類型的SQL數(shù)據(jù)庫,可以有很多選擇。”McClusky說。
在21世紀(jì)初,將SQL數(shù)據(jù)庫與歷史數(shù)據(jù)庫相結(jié)合并不常見,這導(dǎo)致了在處理超大量數(shù)據(jù)時(shí)出現(xiàn)問題。為了幫助解決這個(gè)可擴(kuò)展性問題,同時(shí)繼續(xù)使用SQL數(shù)據(jù)庫的一些基本結(jié)構(gòu),軟件工程師在1998年開發(fā)了NoSQL,然后在2011年開發(fā)了NewSQL。
不過,當(dāng)初NoSQL和NewSQL著手解決的可擴(kuò)展性問題,現(xiàn)在已經(jīng)比較少見,因?yàn)榇鎯?chǔ)空間更便宜,而且您可以將SQL數(shù)據(jù)庫與歷史記錄結(jié)合起來創(chuàng)建高性能數(shù)據(jù)庫。近年來,NoSQL越來越受歡迎。MongoDB和亞馬遜網(wǎng)絡(luò)服務(wù)的DynamoDB是目前最受歡迎的兩個(gè)NoSQL數(shù)據(jù)庫。
04收集和存儲(chǔ)時(shí)間序列數(shù)據(jù)
SQL數(shù)據(jù)庫的另一個(gè)主要好處是,它們可以幫助用戶從企業(yè)的時(shí)間序列數(shù)據(jù)中獲得更多價(jià)值。時(shí)間序列數(shù)據(jù)是以連續(xù)的時(shí)間間隔加上時(shí)間戳的數(shù)據(jù)序列。這些數(shù)據(jù)通常存儲(chǔ)在數(shù)據(jù)庫中,檢索后以表格或圖表的形式顯示任何類型的和時(shí)間進(jìn)度相關(guān)的數(shù)據(jù),如溫度、重量、體積等。
一些人認(rèn)為,時(shí)間序列數(shù)據(jù)只對(duì)確定特定時(shí)間點(diǎn)的單個(gè)數(shù)據(jù)點(diǎn)的狀態(tài)、跟蹤特定趨勢有用,在其它方面則用處不大。然而,時(shí)間序列數(shù)據(jù)實(shí)際上是從連接到SCADA系統(tǒng)的監(jiān)控機(jī)器和過程中獲得的最有價(jià)值的數(shù)據(jù)。時(shí)間序列數(shù)據(jù)可能有助于挽回因停機(jī)而造成的數(shù)百萬美元損失,為提高能源效率制定更詳細(xì)的計(jì)劃等等。
然而,許多企業(yè)要么沒有收集數(shù)據(jù)的手段,要么沒有存儲(chǔ)和檢索數(shù)據(jù)的應(yīng)用,因此它們并不收集時(shí)間序列數(shù)據(jù)。存儲(chǔ)時(shí)間序列數(shù)據(jù)基本上有三種選擇:可編程邏輯控制器(PLC)、專有過程歷史數(shù)據(jù)庫、或者SQL數(shù)據(jù)庫。
將數(shù)據(jù)存儲(chǔ)在PLC中不是一個(gè)好的解決方案。PLC存儲(chǔ)的數(shù)據(jù)越多,其效率就越低,不可避免地會(huì)降低整體運(yùn)行速度。如果沒有連接到數(shù)據(jù)庫,在PLC中檢索所存儲(chǔ)的數(shù)據(jù)也很困難。
過程歷史數(shù)據(jù)庫比PLC更好,但它們可能非常貴。它們也不像SQL數(shù)據(jù)庫那樣通用,并且不允許用戶輕松升級(jí)數(shù)據(jù)庫。
McClusky說:“你可能會(huì)找到一個(gè)很好的解決方案,但這個(gè)解決方案只能來自特定供應(yīng)商的生態(tài)系統(tǒng)中,而對(duì)于未來的升級(jí)不會(huì)有任何好處。”
對(duì)于存儲(chǔ)時(shí)間序列數(shù)據(jù)來說,SQL數(shù)據(jù)庫通常是最佳選擇。他們能夠?yàn)镾CADA系統(tǒng)處理大量的時(shí)間序列數(shù)據(jù),將時(shí)間序列數(shù)據(jù)轉(zhuǎn)換為整個(gè)組織都能讀取的簡單格式,從而豐富了時(shí)間序列數(shù)據(jù)。
許多大型企業(yè)系統(tǒng)已經(jīng)使用SQL數(shù)據(jù)庫很多年了。這些數(shù)據(jù)庫有時(shí)是IT數(shù)據(jù)庫,其中包含來自公司其它部門的信息;有時(shí)這些數(shù)據(jù)庫與企業(yè)資源規(guī)劃(ERP)軟件有關(guān)。客戶關(guān)系管理(CRM)和MES軟件也有使用SQL數(shù)據(jù)庫的悠久歷史。將SCADA系統(tǒng)或應(yīng)用程序連接到SQL數(shù)據(jù)庫,用戶可以快速有效地共享這些信息,并使其它系統(tǒng)更容易訪問這些數(shù)據(jù)。
一旦進(jìn)入SQL數(shù)據(jù)庫,時(shí)間序列數(shù)據(jù)就可以描述生產(chǎn)的方方面面,或者揭示看不見的趨勢,為企業(yè)節(jié)省一大筆財(cái)富。通過疊加這些信息,用戶可以實(shí)時(shí)查看每個(gè)系統(tǒng)如何影響另一個(gè)系統(tǒng),并找到提高效率和盈利能力的新方法。
例如,假設(shè)一家鈑金制造商注意到,盡管兩條生產(chǎn)線都運(yùn)行良好,但其中一條生產(chǎn)線材料的消耗速度比另一條快。在檢查了與每條生產(chǎn)線的材料庫存相連的SQL數(shù)據(jù)庫后,發(fā)現(xiàn)它們接收到的原材料數(shù)量相同。然后,用戶檢查連接到SCADA系統(tǒng)的SQL數(shù)據(jù)庫,從機(jī)器的PLC和傳感器收集時(shí)間序列數(shù)據(jù)。
在比較了這兩條生產(chǎn)線后,用戶發(fā)現(xiàn)其中一條生產(chǎn)線生產(chǎn)的金屬板比另一條厚幾微米。這可能是機(jī)器測量出了問題,可能是機(jī)器磨損需要更換,也可能是設(shè)置不正確。即使額外的幾微米在可接受的范圍內(nèi),解決這個(gè)問題也將為以后節(jié)省大量庫存和資金——這一切都是因?yàn)閷r(shí)間序列數(shù)據(jù)存儲(chǔ)在易于訪問的SQL數(shù)據(jù)庫中。
05連接OT和IT
在這一點(diǎn)上,SQL聽起來可能像是夢想成真,但并不是自動(dòng)化行業(yè)的每個(gè)人都最初都使用SQL數(shù)據(jù)庫。OT專業(yè)人員,尤其是SCADA用戶,對(duì)使用SQL處理時(shí)間序列數(shù)據(jù)持懷疑態(tài)度,而更喜歡專門為該任務(wù)設(shè)計(jì)的專有數(shù)據(jù)庫。然而,IT專業(yè)人員通常將擁有專有代碼和代碼翻譯器的專有數(shù)據(jù)庫,視為獲取有價(jià)值數(shù)據(jù)以及與業(yè)務(wù)其它部門有效溝通的另一個(gè)障礙。
讓問題對(duì)立雙方的專家意見統(tǒng)一,從來都不是一件容易的事,但幸運(yùn)的是,Ignition和SQL等工具可以讓OT與IT分歧的雙方再次合作。將SCADA系統(tǒng)連接到SQL數(shù)據(jù)庫,是IT和OT部門之間實(shí)現(xiàn)相互理解的一大步。
“SCADA系統(tǒng)獲取這些數(shù)據(jù)。它需要把這些數(shù)據(jù)存儲(chǔ)在某個(gè)地方,如果把它放在SQL數(shù)據(jù)庫中,你就擁有了SQL數(shù)據(jù)庫的所有優(yōu)勢。” McClusky說。
集成了這些技術(shù)就不必?fù)?dān)心連接到可能導(dǎo)致問題并阻礙系統(tǒng)其它部分的專有數(shù)據(jù)庫。此外,大多數(shù)IT員工都熟悉SQL,因此對(duì)于那些使用SQL數(shù)據(jù)庫和工業(yè)自動(dòng)化平臺(tái)對(duì)SCADA系統(tǒng)進(jìn)行現(xiàn)代化改造的員工來說,通常不需要對(duì)員工進(jìn)行培訓(xùn)就可以使用。
盡管有些人仍然不愿意將SQL與SCADA集成,但SQL和其它開放標(biāo)準(zhǔn)技術(shù)正變得越來越受歡迎。McClusky說:“對(duì)于那些擁有陳舊的制造業(yè)設(shè)置,想要實(shí)現(xiàn)基礎(chǔ)設(shè)施的現(xiàn)代化、正在轉(zhuǎn)向Ignition的人來說,SQL的使用絕對(duì)在增加,而且應(yīng)該在增加。”
這是因?yàn)镾QL數(shù)據(jù)庫與任何使用這些開放標(biāo)準(zhǔn)的新技術(shù)或應(yīng)用都是兼容的。SQL數(shù)據(jù)庫和SCADA的集成帶來了很多優(yōu)勢,因?yàn)榧夹g(shù)變化非常快,而SQL由于其互操作性可以跟上需求的發(fā)展。
關(guān)鍵概念:
SQL 可以幫助 SCADA 用戶更好地管理數(shù)據(jù)。
SQL 數(shù)據(jù)庫比其它數(shù)據(jù)庫更簡單易用,可以讓用戶在管理和處理數(shù)據(jù)方面擁有更多的自由度。
思考一下:
您如何從時(shí)間序列數(shù)據(jù)中獲得更多價(jià)值?
審核編輯:湯梓紅
-
SQL
+關(guān)注
關(guān)注
1文章
780瀏覽量
44784 -
數(shù)據(jù)庫
+關(guān)注
關(guān)注
7文章
3899瀏覽量
65726 -
編程語言
+關(guān)注
關(guān)注
10文章
1955瀏覽量
36020 -
SCADA
+關(guān)注
關(guān)注
6文章
279瀏覽量
37447
原文標(biāo)題:SCADA中使用SQL 關(guān)系數(shù)據(jù)庫 vs. 實(shí)時(shí)數(shù)據(jù)庫
文章出處:【微信號(hào):控制工程中文版,微信公眾號(hào):控制工程中文版】歡迎添加關(guān)注!文章轉(zhuǎn)載請注明出處。
發(fā)布評(píng)論請先 登錄
數(shù)據(jù)庫原理與應(yīng)用,下載
基于WINCC工控組態(tài)軟件的關(guān)系數(shù)據(jù)庫的研究
關(guān)系數(shù)據(jù)庫是什么?
數(shù)據(jù)庫SQL語句電子教程
Ebase實(shí)時(shí)數(shù)據(jù)庫手冊

紫金橋實(shí)時(shí)數(shù)據(jù)庫在天然氣生產(chǎn)指揮調(diào)度系統(tǒng)的應(yīng)用

紫金橋實(shí)時(shí)數(shù)據(jù)庫_實(shí)時(shí)數(shù)據(jù)轉(zhuǎn)儲(chǔ)功能深度剖析

數(shù)據(jù)庫學(xué)習(xí)入門資料之關(guān)系數(shù)據(jù)庫標(biāo)準(zhǔn)語言SQL的詳細(xì)資料概述
數(shù)據(jù)庫教程之關(guān)系數(shù)據(jù)庫標(biāo)準(zhǔn)語言SQL的詳細(xì)資料介紹
為什么要使用非關(guān)系數(shù)據(jù)庫

數(shù)據(jù)庫系統(tǒng)原理與應(yīng)用教程之關(guān)系數(shù)據(jù)庫的詳細(xì)資料說明

關(guān)系數(shù)據(jù)庫標(biāo)準(zhǔn)語言SQL的資料說明

如何使用工業(yè)實(shí)時(shí)數(shù)據(jù)庫與西門子PLC通訊?

數(shù)據(jù)庫數(shù)據(jù)恢復(fù)—SQL Server數(shù)據(jù)庫出現(xiàn)823錯(cuò)誤的數(shù)據(jù)恢復(fù)案例

評(píng)論