資訊 > 正文

SCADA中使用SQL 關(guān)系數(shù)據(jù)庫(kù) vs. 實(shí)時(shí)數(shù)據(jù)庫(kù)

發(fā)布時(shí)間:2023-10-07 來(lái)源:控制工程網(wǎng)


本文圖片來(lái)源:CEChina.cn

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


標(biāo)簽:SQL,編程語(yǔ)言,基礎(chǔ)設(shè)施,數(shù)據(jù)采集,SCADA

相關(guān)文章