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