隨著時序數據庫(Time Series Database)的日(ri)(ri)益普及,越(yue)來越(yue)多(duo)(duo)的工(gong)業自動化控(kong)制(zhi)(工(gong)控(kong))人員(yuan)開始(shi)認識到其強大能力。然(ran)而,時(shi)序(xu)數(shu)據(ju)庫(ku)(ku)在(zai)(zai)(zai)傳統實時(shi)數(shu)據(ju)庫(ku)(ku)應用領域,特(te)別(bie)是在(zai)(zai)(zai)過程監控(kong)層的推廣仍面臨挑戰,主要原因在(zai)(zai)(zai)于缺乏適合(he)操作技術(OT)人員(yuan)使用的連接方式。在(zai)(zai)(zai)工(gong)業自動化的五(wu)層架構中(zhong),過程監控(kong)層通常由監控(kong)與(yu)數(shu)據(ju)采集(ji)系統(SCADA)代(dai)表,這些(xie)系統與(yu)特(te)定 SCADA 廠(chang)商的實時(shi)數(shu)據(ju)庫(ku)(ku)緊密集(ji)成,主要服務于 OT 人員(yuan)。隨著(zhu)客(ke)戶(hu)在(zai)(zai)(zai)數(shu)據(ju)存儲(chu)、查詢和外部交(jiao)互方面遇(yu)到越(yue)來越(yue)多(duo)(duo)的瓶頸,他們對時(shi)序(xu)數(shu)據(ju)庫(ku)(ku)的需求(qiu)也(ye)日(ri)(ri)益增長。
為(wei)滿足這(zhe)一(yi)需(xu)求,TDengine 推出了全新的(de) ODBC 工(gong)具,顯著簡化(hua)了與 SCADA 系統(tong)的(de)交互。這(zhe)一(yi)工(gong)具使得 TDengine 在過程(cheng)監控層的(de)應用更加深入(ru),為(wei) SCADA 系統(tong)提(ti)供了更強大的(de)賦能(neng),幫助其進一(yi)步發揮價值。
SCADA 介紹
SCADA 英?全(quan)拼為(wei)”Supervisory Control And Data Acquisition”, 即(ji)數據(ju)(ju)(ju)采集與監(jian)視控(kong)制系統(tong)(tong)(tong)。SCADA 位(wei)于 IEC 62264-1 傳統(tong)(tong)(tong)五(wu)層(ceng)模型(xing)中(zhong) L2 層(ceng)過程(cheng)監(jian)控(kong)層(ceng),相對來講,更加側重集中(zhong)監(jian)視,通常對現場 設備(bei)(bei)、PLC、DCS 等(deng)數據(ju)(ju)(ju)采集,集中(zhong)監(jian)視以及(ji)控(kong)制。同時(shi),作為(wei)?控(kong)中(zhong)流砥(di)柱,為(wei)上層(ceng)?產(chan)管理(li)層(ceng),包含(han)(han) mes\mom 系統(tong)(tong)(tong)以及(ji)企業資源層(ceng),如 ERP 系統(tong)(tong)(tong),提供(gong)完整的?產(chan)數據(ju)(ju)(ju),包含(han)(han)實時(shi)、歷史、報警數據(ju)(ju)(ju), 以及(ji)相應(ying)的統(tong)(tong)(tong)計數據(ju)(ju)(ju)等(deng),是(shi)?業控(kong)制系統(tong)(tong)(tong)的堅實底座。部分?業將 SCADA 系統(tong)(tong)(tong)、現場控(kong)制系統(tong)(tong)(tong)、設備(bei)(bei) 感知系統(tong)(tong)(tong)以及(ji)相應(ying)的通訊?絡(luo)統(tong)(tong)(tong)?稱之為(wei) SCADA 系統(tong)(tong)(tong),即(ji)不再是(shi)純軟件的形態,?是(shi)軟、硬(ying)?起的綜合監(jian)控(kong)系統(tong)(tong)(tong)。為(wei)了?便認(ren)識,本?按照(zhao)傳統(tong)(tong)(tong)?業五(wu)層(ceng)架構進?講解(jie)。

SCADA 系統規(gui)模(mo)收縮性(xing)(xing)(xing)很?,性(xing)(xing)(xing)能較(jiao)好的(de) SCADA 產品會采?分(fen)布式部署架(jia)構(gou),將不同的(de)服(fu)務(wu)(wu)部署在不 同計算(suan)機節(jie)點(dian)上,充分(fen)利?計算(suan)機性(xing)(xing)(xing)能,單套(tao) SCADA 系統的(de)采集(ji)設備點(dian)數(shu)規(gui)模(mo)可以到數(shu)萬點(dian)規(gui)模(mo)。SCADA 功(gong)(gong)能通(tong)(tong)常分(fen)為采集(ji)服(fu)務(wu)(wu)、實(shi)時(shi)服(fu)務(wu)(wu)、歷史(shi)服(fu)務(wu)(wu)、報警服(fu)務(wu)(wu)、事(shi)件服(fu)務(wu)(wu)、登錄服(fu)務(wu)(wu)、校時(shi)服(fu)務(wu)(wu)、 腳本引擎、對外接(jie)?等??模(mo)塊。功(gong)(gong)能上包含實(shi)時(shi)?藝流程圖、實(shi)時(shi)報警、歷史(shi)報警、實(shi)時(shi)曲線、歷史(shi)曲線、實(shi)時(shi)報表、歷史(shi)報表、事(shi)件查詢、通(tong)(tong)訊監視、故障診斷、冗余部署等功(gong)(gong)能。
按照架(jia)構來分,SCADA 軟件(jian)包含單機、C/S 架(jia)構、B/S 架(jia)構、M/S 架(jia)構,即單機運?、客(ke)?端(duan)-服務端(duan)、瀏(liu)覽(lan)器-服務端(duan)、?持終(zhong)端(duan)-服務端(duan)模(mo)式(shi)運?。?前主(zhu)流(liu)的 SCADA 系統都(dou)?持 html5 瘦客(ke)?端(duan)發布(bu),可(ke)以(yi)在?機、電(dian)腦、智能(neng)(neng)電(dian)視、云桌?等進?瀏(liu)覽(lan)、操(cao)作和(he)(he)控制。新(xin)?代 SCADA 系統會融合云技術,將(jiang)會極?提? SCADA 數據處理、分析的規(gui)模(mo),以(yi)及帶客(ke)?端(duan)負(fu)載能(neng)(neng)?和(he)(he)系統本??可(ke)?性(xing)。

TDengine 與 SCADA 交互方式
TDengine 支持標準的 SQL 子集,以(yi) OT 人員最喜歡的方式實現(xian)數據信息(xi)的交互,如(ru)下(xia)圖所(suo)示(shi):

- SCADA->TDengine
SCADA 系統廣(guang)泛支持 OPC 和(he) MQTT 等標準通信協議,以便(bian)與外(wai)部系統進行數據交換。TDengine 平臺提供了對這些數據源類型(xing)的(de)直觀可視化采集功能,消除(chu)了手(shou)寫代(dai)碼的(de)需求,確保了數據的(de)順暢正(zheng)向流通。它的(de)操作界面簡潔明了,同時系統的(de)維護也(ye)極為方(fang)便(bian)。
- SCADA<->TDengine
SCADA 系(xi)統(tong)(tong)(tong)通(tong)(tong)過 ODBC 標(biao)(biao)準(zhun)接口與 TDengine 進(jin)行(xing)交互,確保了數(shu)(shu)據的(de)(de)雙向流通(tong)(tong)。這種訪問方式(shi)簡化(hua)了操(cao)(cao)作(zuo),使(shi)得 SCADA 與 TDengine 的(de)(de)集(ji)成變得像(xiang)操(cao)(cao)作(zuo) MySQL 數(shu)(shu)據庫(ku)一樣便捷,非(fei)常適合(he)(he) OT 人員(yuan)使(shi)用。TDengine 的(de)(de)最新 ODBC 版本不僅全面滿足了 SCADA 系(xi)統(tong)(tong)(tong)的(de)(de)訪問需求,而(er)(er)且在性能上顯著(zhu)超越了傳統(tong)(tong)(tong)數(shu)(shu)據庫(ku)。用戶(hu)可以輕松使(shi)用標(biao)(biao)準(zhun)的(de)(de) SQL 語句來執行(xing)復雜的(de)(de)查詢操(cao)(cao)作(zuo),如選擇、投影和聚合(he)(he),從(cong)而(er)(er)充(chong)分(fen)(fen)利(li)用 TDengine 的(de)(de)強大(da)數(shu)(shu)據處(chu)理能力。這不僅減輕了 SCADA 系(xi)統(tong)(tong)(tong)的(de)(de)工(gong)作(zuo)量,還促(cu)進(jin)了 SCADA 與其他系(xi)統(tong)(tong)(tong)之間的(de)(de)數(shu)(shu)據整合(he)(he),為全面的(de)(de)數(shu)(shu)據分(fen)(fen)析提供了更加豐富(fu)的(de)(de)應用方案。
TDengine 與 SCADA 交互場景
性能描述
考慮(lv)到不同 SCADA 系統(tong)(tong)(tong)的(de)腳本(ben)執行效(xiao)率和計算機硬件配置的(de)多樣性(xing)(xing),它們(men)在(zai)處理查詢和數據插(cha)入任(ren)務時的(de)性(xing)(xing)能可能會有所差異。經(jing)過對市場上一些領先的(de) SCADA 產品(如 WinCC 和 KingSCADA)進行深入測試,我們(men)發現(xian)在(zai)標準的(de) 4 核心 x86 Windows 系統(tong)(tong)(tong)環(huan)境下,這些系統(tong)(tong)(tong)能夠實現(xian)每(mei)秒數萬(wan)點(dian)的(de)訪問性(xing)(xing)能,這一性(xing)(xing)能水平已經(jing)完全能夠滿足絕大多數客(ke)戶的(de)實際應用需求。
架構描述
TDengine 天生適合承擔 IoT 中臺或(huo)數(shu)據(ju)中心(xin)的角色,無論是在(zai)邊緣側(ce)處(chu)理實時數(shu)據(ju),還是在(zai)中心(xin)側(ce)進行大規模(mo)數(shu)據(ju)分析,它都能(neng)提供出(chu)色的性(xing)(xing)能(neng)表現(xian)。這(zhe)一(yi)特(te)性(xing)(xing)不僅(jin)增(zeng)強(qiang)了現(xian)有技術方案的靈活性(xing)(xing)和擴(kuo)展(zhan)性(xing)(xing),還為創新和優(you)化提供了更多可能(neng)性(xing)(xing)。
TDengine 可以為邊(bian)緣 SCADA 提供(gong)數據支持,如下圖(tu)所示:

TDengine 作為中心庫,可以為 SCADA 提供數據(ju)支持,打破 SCADA 數據(ju)流動限制,充分調用 SCADA 展示分析能力(li),如下圖所示:

邊(bian)云(yun)協同(tong)。TDengine 支持單副本、雙副本、三副本的高(gao)可用、分布式、負載均衡集群方案,以及容災雙活部署,方案靈(ling)活,而且(qie)部署、運維十分方便。邊(bian)云(yun)系統支持斷(duan)線續傳(chuan)、統計學降(jiang)采(cai)樣同(tong)步、刪除修改同(tong)步等功能,數(shu)據傳(chuan)輸壓縮 80% 以上,極大節省帶寬。

在只讀應用場景中,TDengine 具(ju)備替代 SCADA 系統采集(ji)功能(neng)的(de)能(neng)力,有助于減少因 IO 點數而產生的(de)限制和成本(ben)。通過與 SCADA 客戶端的(de)無縫集(ji)成,TDengine 實現(xian)了一種創新的(de)組合方式(shi),顯著降低(di)了企業在數據采集(ji)和展示方面的(de)成本(ben)負擔。

功能描述
- 獲取實時數據
TDengine 的(de)批流一體功能(neng)顯(xian)著提升了數(shu)(shu)據(ju)(ju)處理能(neng)力,其支(zhi)持的(de)實時(shi)數(shu)(shu)據(ju)(ju)緩(huan)存確保(bao)了從數(shu)(shu)據(ju)(ju)寫入到查詢顯(xian)示的(de)耗時(shi)控(kong)制在(zai)數(shu)(shu)十毫(hao)秒以(yi)內,非常(chang)適合需要快速(su)(su)數(shu)(shu)據(ju)(ju)訪問(wen)的(de)應用場景,類似 Redis 等高速(su)(su)緩(huan)存解決方(fang)案。SCADA 系統利用 ODBC 接口能(neng)夠迅速(su)(su)捕獲實時(shi)數(shu)(shu)據(ju)(ju),這對于(yu)進行(xing)報警分(fen)析和(he)實時(shi)監控(kong)至(zhi)關重要。此外,TDengine 的(de)分(fen)組(zu)和(he)分(fen)區查詢功能(neng),為(wei)用戶提供了高效且靈活的(de)數(shu)(shu)據(ju)(ju)查詢和(he)變(bian)量賦值能(neng)力。
Select tbname,last(val) from meters partition by tbname;
- 獲取歷史數據
SCADA 系統能(neng)(neng)夠無縫地(di)從 TDengine 中檢索歷史數(shu)據(ju),不僅支持等間(jian)隔降采(cai)樣查(cha)詢(xun)(xun),以(yi)確(que)保數(shu)據(ju)的(de)(de)(de)均(jun)勻性和連續性,還能(neng)(neng)夠對時間(jian)戳進行(xing)拉齊處理(li),保障數(shu)據(ju)展(zhan)示(shi)的(de)(de)(de)一致性。此外,TDengine 的(de)(de)(de)步進和線性插值數(shu)據(ju)填充(chong)功能(neng)(neng),使得在面對數(shu)據(ju)缺(que)失(shi)或不連續的(de)(de)(de)情(qing)況時,依(yi)然能(neng)(neng)夠生成平(ping)滑連續的(de)(de)(de)曲線,極大(da)地(di)便利了(le)數(shu)據(ju)的(de)(de)(de)可視化和深入分析(xi)。如下所示(shi)的(de)(de)(de) SQL 查(cha)詢(xun)(xun)示(shi)例,進一步說明了(le)如何利用 TDengine 進行(xing)這些高級的(de)(de)(de)數(shu)據(ju)查(cha)詢(xun)(xun)和處理(li)操作。
Select _wstart,avg(val) from meters where ts>'2024-01-01 00:00:00' and ts<'2024-01-02 00:00:00' interval(1h)fill(prev);
- 獲取分析數據
TDengine 提供了(le)對 SQL2003 窗(chuang)(chuang)口(kou)(kou)分(fen)(fen)析語句(ju)的(de)(de)全面(mian)支持,包括時間(jian)窗(chuang)(chuang)口(kou)(kou)、事件窗(chuang)(chuang)口(kou)(kou)、狀態窗(chuang)(chuang)口(kou)(kou)、計數(shu)窗(chuang)(chuang)口(kou)(kou)和(he)會話窗(chuang)(chuang)口(kou)(kou)等,極大地增強了(le)數(shu)據(ju)分(fen)(fen)析的(de)(de)多維度(du)能力。利用這些(xie)功能,用戶能夠便捷地執(zhi)行復雜的(de)(de)查詢(xun),例如統計某段時間(jian)內設(she)備的(de)(de)狀態及(ji)其持續時間(jian),這在 SCADA 系統中(zhong)通常難(nan)以實現。TDengine 的(de)(de)這一優勢,讓數(shu)據(ju)分(fen)(fen)析變(bian)得更加直(zhi)接和(he)高效,為用戶提供了(le)更為深入的(de)(de)數(shu)據(ju)洞察。SQL 語句(ju)如下(xia):
Select sum(t) from (select _wstart,_wduration/1000 as t,val from meters where ts>'2024-01-01 00:00:00' and ts<'2024-01-02 00:00:00' state_window(val))where val=1;
- 設備斷線統計
物(wu)理量在指定離(li)線時間閾值內是否有數據入庫,如有則(ze)判 Online,否則(ze)判 Offline
select last(ts),tbname from meters partition by tbname having now-60s>last(ts);
- 數據存儲
TDengine 通過 OPC 和(he) MQTT 協議提供了可(ke)視(shi)化的(de)(de)數(shu)(shu)據(ju)(ju)采集配置,使得 SCADA 數(shu)(shu)據(ju)(ju)的(de)(de)集成(cheng)變得直觀而(er)高(gao)效。利用 TDengine 的(de)(de) ODBC 接(jie)口(kou),用戶(hu)可(ke)以(yi)輕松地(di)通過 SCADA 系(xi)統的(de)(de)腳本,將自定(ding)義數(shu)(shu)據(ju)(ju)定(ding)時或基于事件(jian)觸(chu)發地(di)存儲到 TDengine 中,實現數(shu)(shu)據(ju)(ju)的(de)(de)自動化收集和(he)實時更新。TDengine 的(de)(de)批量插入(ru)功能進一步優化了數(shu)(shu)據(ju)(ju)寫入(ru)過程,大幅提升了寫入(ru)效率,尤其(qi)在處理大規模數(shu)(shu)據(ju)(ju)集時,能夠顯著減少(shao)數(shu)(shu)據(ju)(ju)寫入(ru)時間,提高(gao)系(xi)統的(de)(de)整體性能。
Insert into d1 values('2024-08-01 00:00:00',1,1) d2 values('2024-08-0200:00:00',2,1).....
- AI 應用
借助 TDengine 的 AI 大模型功能,我們能輕松實現時序數據的預測和異常點檢測功能。其中預測包含對于歷史數據的補全以及未來數據的預測分析。使用也是非常簡單,TDgpt 提供了(le) SQL 函(han)數 Forecast 來實(shi)現時序數據的(de)預測,SQL 示例(li)如下:
select _rowts, forecast(ts, val, 300) from meters;
其中 forecast(ts, val, num[, confidence-level][, 'option str']):Note: ts(必(bi)選參(can)數(shu)(shu))表示時序列,為表中(zhong)已存在(zai)(zai)的列名;val(必(bi)選參(can)數(shu)(shu))是(shi)數(shu)(shu)據(ju)(ju)列,為表中(zhong)已存在(zai)(zai)的列名;num(必(bi)選參(can)數(shu)(shu))表示預測多少數(shu)(shu)據(ju)(ju)(即輸(shu)出(chu)行數(shu)(shu));confidence-level(可選參(can)數(shu)(shu))表示置信水平,[1, 99]之間的整數(shu)(shu);’option str’(可選參(can)數(shu)(shu))是(shi)預測參(can)數(shu)(shu),形(xing)如 k1=v1, k2=v2 的逗(dou)號(hao)分(fen)隔的字符串(chuan);返回(hui)(hui)值,該函(han)數(shu)(shu)的返回(hui)(hui)類型與 val 數(shu)(shu)據(ju)(ju)列類型一致,其他信息需要(yao)使用偽列進行提取(qu)。
TDgpt 提供了(le) SQL 函(han)數 Anomaly 提供時序數據異常檢(jian)測(ce),SQL示例如下:
select _rowts, anomaly(ts, val, 99) as anomaly from meters;
其中 anomaly(ts, val[, confidence-level][, 'option str']):
Note: 該函數的返回類型與 val 數據(ju)列(lie)類型一致(zhi),當輸入(ru)時間戳對應的數據(ju)預(yu)測(ce)為異常(chang)值(zhi)時,返回值(zhi)為預(yu)測(ce)值(zhi),否則返回值(zhi)為 NULL 。其他信息同 FORECAST,需要使用偽列(lie)進行(xing)提取。
總結
TDengine 與 SCADA 系統(tong)的無縫集成(cheng)(cheng),不僅簡(jian)化了操作流程,提高(gao)了工作效率,還(huan)顯(xian)著降低了整體成(cheng)(cheng)本。借助 TDengine 強大(da)的數(shu)據查詢和(he)分(fen)析能力,SCADA 系統(tong)能夠深入挖掘數(shu)據應用(yong)并高(gao)效展示(shi),從而為用(yong)戶提供更加豐富(fu)和(he)直觀的數(shu)據體驗(yan)。


























