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