无码人妻精品一区二区三18禁,影音先锋男人AV橹橹色,污污污污污污www网站免费,日韩成人av无码一区二区三区,欧美性受xxxx狂喷水

拒絕高深技術棧,裸機10分鐘搭建酷炫的工業物聯網監控平臺

白華軍

2020-03-30 / ,

小 T 導讀:工(gong)(gong)業(ye)(ye)物(wu)聯網監控平臺(tai)極為重要,但(dan)對企業(ye)(ye)而言,自(zi)研耗時耗力,研發(fa)高(gao)手(shou)不(bu)好找(zhao),開發(fa)出來還不(bu)一定(ding)好用;現成的(de)(de)解(jie)決方案(an)太(tai)貴,直接拿來用不(bu)一定(ding)適合……很(hen)多企業(ye)(ye)的(de)(de)管理者提到(dao)監控平臺(tai)就(jiu)頭疼。圖撲物(wu)聯將自(zi)己的(de)(de)底層(ceng)平臺(tai)IoTop與高(gao)效、高(gao)速的(de)(de)TDengine Database無縫集成,無需(xu)高(gao)手(shou)徹夜“肝”,零門檻,即使是菜鳥(niao),從上手(shou)到(dao)完(wan)成只需(xu)10分鐘,就(jiu)能搭(da)建一款炫(xuan)酷的(de)(de)工(gong)(gong)業(ye)(ye)物(wu)聯網監控平臺(tai)。

應用場景

在物(wu)聯(lian)網、工業互聯(lian)網領域,任何一(yi)個(ge)項目的(de)實現都離(li)不開兩(liang)部分:數據和展示。

對于(yu)工(gong)(gong)業生產監測(ce)數(shu)據的(de)(de)(de)(de)展(zhan)示,圖撲已經積累了(le)很成(cheng)熟的(de)(de)(de)(de)基(ji)于(yu)HTML5的(de)(de)(de)(de)2D、3D數(shu)據可視化(hua)技(ji)術,提供了(le)一套(tao)所見(jian)即所得的(de)(de)(de)(de)WEB圖形組態編輯器(qi),包(bao)含豐(feng)富的(de)(de)(de)(de)圖表展(zhan)示方(fang)式。客戶(hu)可以使用圖撲提供的(de)(de)(de)(de)IoT Platform快速的(de)(de)(de)(de)搭建私有(you)云,非常(chang)便捷的(de)(de)(de)(de)建立起物(wu)聯網和工(gong)(gong)業互聯網的(de)(de)(de)(de)WEB SCADA,實現邊緣計算和海(hai)量數(shu)據的(de)(de)(de)(de)展(zhan)示。

針對海量的設備上報數據,我們在做實時顯示的同時還考慮將歷史數據也進行無損保存,并在IoT Platform上給用戶提供數據查詢的支持。但這就對底層的時序數據存儲提出了相當高的要求。在對比了包括InfluxDB在內的幾個數據庫后,在最新的解決方中,我們選用了TDengine作為時序數據的存儲引擎。TDengine是濤思數據推出的一款開源的專為物聯網、車聯網、工業互聯網、IT運維等場景設計和優化的超高性能時序數據庫(Time-Series Database),本(ben)身還(huan)提供(gong)緩(huan)存、數(shu)據訂閱、流(liu)式計(ji)算(suan)等功能(neng),最大程度減少研發和運(yun)維的復雜度。

圖撲的(de)IoT Platform可以支持設備的(de)接入,架構示意圖如(ru)下。

拒絕高深技術棧,裸機10分鐘搭建酷炫的工業物聯網監控平臺 - TDengine Database 時序數據庫

實際應用案例-中央水機監測系統

以(yi)山東大(da)禹水(shui)(shui)處理有限(xian)公司中(zhong)央水(shui)(shui)機監控(kong)(kong)項目為(wei)例,我們來介(jie)紹在圖撲物聯(lian)網云(yun)平臺上集(ji)成使用(yong)TDengine Database的(de)思路。每個中(zhong)央水(shui)(shui)機設(she)(she)備采集(ji)與下發控(kong)(kong)制的(de)數據包含:進(jin)水(shui)(shui)流(liu)量(liang)、產(chan)水(shui)(shui)PH、產(chan)水(shui)(shui)電(dian)導、膜前壓(ya)力、濃水(shui)(shui)壓(ya)力、產(chan)水(shui)(shui)流(liu)量(liang)、開機沖(chong)洗時間(jian)設(she)(she)置、總計時間(jian)、停(ting)機沖(chong)洗時間(jian)設(she)(she)置、原水(shui)(shui)泵(beng)、高壓(ya)泵(beng)、進(jin)水(shui)(shui)閥(fa)、濃排閥(fa)、紫(zi)外線、回流(liu)閥(fa)、恢(hui)復、手自動切換、產(chan)水(shui)(shui)率、產(chan)水(shui)(shui)液位、多(duo)(duo)介(jie)質返(fan)洗、活(huo)性炭(tan)返(fan)洗、原水(shui)(shui)液位等。平臺通過堅實可靠的(de)連接多(duo)(duo)臺網關(guan)控(kong)(kong)制多(duo)(duo)臺PLC設(she)(she)備,實時監測這些(xie)指(zhi)標(biao)、管理設(she)(she)備并進(jin)行實時報警,達到水(shui)(shui)務治(zhi)理的(de)目的(de)。

現場的(de)(de)(de)傳感器主要(yao)包括溫度、壓力、流量(liang)等(deng)采(cai)集(ji)設(she)備,現場的(de)(de)(de)執行器主要(yao)包括電機、電磁閥控制(zhi)的(de)(de)(de)開關(guan)等(deng),PLC通過(guo)DI/DO、AI/AO實現傳感器信息的(de)(de)(de)采(cai)集(ji)和(he)執行器動作的(de)(de)(de)控制(zhi)。PLC設(she)備與MQTT網關(guan)之間采(cai)用Modbus/TCP協議通訊(xun),MQTT網關(guan)獲取采(cai)集(ji)到的(de)(de)(de)PLC設(she)備數據(ju)(ju)后再通過(guo)MQTT協議轉發到云端物聯(lian)網平臺。平臺接收到 MQTT 網關(guan)推送的(de)(de)(de)數據(ju)(ju)后,會先根據(ju)(ju)用戶配置的(de)(de)(de)存(cun)儲策略將數據(ju)(ju)寫入到TDengine中。用戶通過(guo)瀏覽(lan)器訪問(wen)圖(tu)形組態畫(hua)面(mian)可以實時接收平臺的(de)(de)(de)數據(ju)(ju)推送,并以直觀的(de)(de)(de)方式查看組態畫(hua)面(mian)的(de)(de)(de)變化,實現對中央水機設(she)備的(de)(de)(de)圖(tu)形化監測。平臺上(shang)可設(she)立多(duo)個(ge)項目(mu),一臺服務器可多(duo)個(ge)項目(mu)共存(cun)。

拒絕高深技術棧,裸機10分鐘搭建酷炫的工業物聯網監控平臺 - TDengine Database 時序數據庫

受益于TDengine的超高性能和超小體量,整個平臺架構變得簡化,解決工業物聯網監控分析系統開發成本高、周期長、運維難度大等痛點。

以schemaless方式使用TDengine

創(chuang)建數據庫iot_datas,數據的(de)保持時(shi)間(jian)為365天,過期(qi)的(de)數據將會被成(cheng)塊刪除:

CREATE DATABASE IF NOT EXISTS iot_datas KEEP 365

超級表iot_meters用于存儲設備的數據信息創建超級表的語句如下:

CREATE TABLE iot_meters (ts timestamp, value double) TAGS(device_id binary(20), point_id binary(20));

此時可使用自(zi)動(dong)建表(biao)(biao)(biao)語法(fa)來(lai)實現(xian)寫(xie)入數據時,用超級表(biao)(biao)(biao)定義的(de)表(biao)(biao)(biao)結構(gou)自(zi)動(dong)創建不存(cun)在的(de)子表(biao)(biao)(biao),若該表(biao)(biao)(biao)已存(cun)在則不會(hui)建立新表(biao)(biao)(biao)。自(zi)動(dong)建表(biao)(biao)(biao)語法(fa)跟(gen)insert/import語法(fa)非常(chang)相似(si),唯一區別是語句中(zhong)增加了(le)超級表(biao)(biao)(biao)和標(biao)簽信息。

假(jia)設有 1 個設備 meter_001,設備下有 1 路(lu)溫度 temp 和 1 路(lu)濕(shi)度 humi,我們(men)可以采用寫入數據(ju)自動(dong)建表(biao)的(de)方法(fa):

INSERT INTO iot_datas.meter_001_humi USING iot_datas.iot_meters TAGS ('meter_001', 'humi') VALUES ('2018-01-01 00:00:00.000',95);
?INSERT INTO iot_datas.meter_001_temp USING iot_datas.iot_meters TAGS ('meter_001', 'temp') VALUES ('2018-01-01 00:00:00.000',20);

注意:自動(dong)(dong)建(jian)(jian)表(biao)(biao)(biao)(biao)語句只(zhi)能自動(dong)(dong)建(jian)(jian)立子(zi)表(biao)(biao)(biao)(biao)而不能建(jian)(jian)立超級(ji)表(biao)(biao)(biao)(biao),這(zhe)就(jiu)(jiu)要(yao)求超級(ji)表(biao)(biao)(biao)(biao)已經(jing)被事先定義好。這(zhe)里實現schemaless的(de)(de)方(fang)式就(jiu)(jiu)是將超級(ji)表(biao)(biao)(biao)(biao)定義成(cheng)一個單值模(mo)型,也即每條記錄為:時(shi)(shi)間戳(chuo)+采集值。在超級(ji)表(biao)(biao)(biao)(biao)的(de)(de)標簽列中,要(yao)定義出設備(bei)ID、點(dian)位ID甚(shen)至點(dian)位物理量名稱、點(dian)位分組(zu)等(deng)信息。這(zhe)樣(yang)同(tong)一設備(bei)不同(tong)點(dian)位的(de)(de)數(shu)據上報后(hou),可以通(tong)過(guo)自動(dong)(dong)建(jian)(jian)表(biao)(biao)(biao)(biao)的(de)(de)語法向其對應子(zi)表(biao)(biao)(biao)(biao)中寫入(ru),在寫入(ru)時(shi)(shi)指定tag值。此(ci)時(shi)(shi),如果此(ci)點(dian)位對應子(zi)表(biao)(biao)(biao)(biao)不存在則會被自動(dong)(dong)創建(jian)(jian);如果此(ci)點(dian)位對應子(zi)表(biao)(biao)(biao)(biao)已經(jing)存在,則TDengine本身(shen)會跳過(guo)建(jian)(jian)表(biao)(biao)(biao)(biao)過(guo)程,直接寫入(ru)數(shu)據,這(zhe)樣(yang)也就(jiu)(jiu)是實現了一種schemaless的(de)(de)寫入(ru)方(fang)式。

當然,在確定設備(子(zi)表(biao))已經(jing)存在的情況下(xia),可(ke)以同時(shi)向不同的超(chao)級表(biao)中同時(shi)插(cha)入(ru)數據。注意(yi)為了提高寫(xie)入(ru)速(su)度,對同一條insert SQL語句,可(ke)以向多張表(biao)插(cha)入(ru)新記錄,具體如下(xia):

INSERT INTO iot_datas.meter_001_humi VALUES ('2018-01-01 00:00:01.000', 95)?            iot_datas.meter_001_temp VALUES ('2018-01-01 00:00:01.000', 20)

圖撲IoT Platform介紹

IoTopo 將TDengine的schemaless方案,做的更加簡便(bian),只需要一(yi)(yi)個數據庫一(yi)(yi)個超級表,所有設(she)備測點都是這(zhe)個超級表下(xia)的一(yi)(yi)個子(zi)表,子(zi)表的名稱可(ke)(ke)以(yi)僅由設(she)備序列號+測點ID組成。整個過程可(ke)(ke)以(yi)通過平臺的可(ke)(ke)視化(hua)界(jie)面完成。

1)時序數據庫配置

iotopo物(wu)聯網平臺采用(yong)RESTful接口連(lian)接TDengine,用(yong)戶可以修(xiu)(xiu)改(gai)(gai)(gai)鏈接參數,修(xiu)(xiu)改(gai)(gai)(gai)數據(ju)庫(ku)(ku)名稱(cheng),修(xiu)(xiu)改(gai)(gai)(gai)數據(ju)保留天數。保存修(xiu)(xiu)改(gai)(gai)(gai)后,平臺會(hui)自動創建(jian)數據(ju)庫(ku)(ku)和超級表,底層建(jian)表語(yu)句見(jian)前文。配置界面下如所示:

拒絕高深技術棧,裸機10分鐘搭建酷炫的工業物聯網監控平臺 - TDengine Database 時序數據庫

2) 添加設備

在設(she)(she)備(bei)(bei)管理界面,新(xin)建一個(ge)設(she)(she)備(bei)(bei),輸(shu)入設(she)(she)備(bei)(bei)序列號和設(she)(she)備(bei)(bei)名(ming)稱,在通訊設(she)(she)置(zhi)中,關聯 MQTT 網(wang)關,點(dian)擊(ji)確定。如下圖所示,我們(men)創建了一個(ge)中央水(shui)機(ji)的設(she)(she)備(bei)(bei),序列號名(ming)稱為:zhongyangshuijiceshi。

拒絕高深技術棧,裸機10分鐘搭建酷炫的工業物聯網監控平臺 - TDengine Database 時序數據庫

3) 配置測點及存儲策略

添加(jia)完(wan)設備(bei)后,需(xu)要(yao)配置(zhi)設備(bei)測點,測點ID 要(yao)與 MQTT 網關推(tui)送(song)的(de)數據保持一致(zhi)。如果測點需(xu)要(yao)保存(cun)(cun)到(dao)TDengine。可以(yi)配置(zhi)存(cun)(cun)儲(chu)間(jian)隔(ge)(以(yi)秒為(wei)單(dan)位),存(cun)(cun)儲(chu)間(jian)隔(ge)為(wei) 0 或空時不(bu)進行保存(cun)(cun),存(cun)(cun)儲(chu)間(jian)隔(ge)為(wei) -1 時表示(shi)變(bian)化存(cun)(cun)儲(chu)(數據發生(sheng)變(bian)化時存(cun)(cun)儲(chu)),存(cun)(cun)儲(chu)間(jian)隔(ge)為(wei) -2 時表示(shi)實(shi)時存(cun)(cun)儲(chu)(接收到(dao) MQTT 網關推(tui)的(de)數據時存(cun)(cun)儲(chu))。

拒絕高深技術棧,裸機10分鐘搭建酷炫的工業物聯網監控平臺 - TDengine Database 時序數據庫

當(dang)測(ce)點數據需要(yao)存(cun)(cun)儲到TDengine時,平臺(tai)會將數據保存(cun)(cun)到超級表(biao)下面的(de)子表(biao)中,比如保存(cun)(cun)“進水流(liu)量(liang)”的(de)底(di)層 SQL 語句如下:

INSERT INTO iot_datas.zhongyangshuijiceshi_jinshuiliuliang USING iot_datas.iot_meters TAGS ('zhongyangshuijiceshi', 'jinshuiliuliang')     VALUES ('2018-01-01 00:00:00.000', 20);

4)在組態畫面中顯示測點數據

在(zai)制作組態畫面時可(ke)以綁定(ding)測點的(de)實時數(shu)據(ju),如下圖所示,選中一個文本框點擊綁定(ding)按鈕(niu),彈出數(shu)據(ju)綁定(ding)界面,選擇實時數(shu)據(ju)和對應(ying)的(de)測點即(ji)可(ke)完成綁定(ding)。

拒絕高深技術棧,裸機10分鐘搭建酷炫的工業物聯網監控平臺 - TDengine Database 時序數據庫
拒絕高深技術棧,裸機10分鐘搭建酷炫的工業物聯網監控平臺 - TDengine Database 時序數據庫

運行組(zu)態(tai)畫面時,IoT Platform會自動從數據庫中讀取相應的測點數據并進行實時更新(xin)。組(zu)態(tai)畫面是可以導入和嵌入到其他項目中的,演(yan)示地址如下:

5)訪問自建的 TDengine 數據庫

如(ru)果用(yong)戶需要用(yong)到非IoT Platform創建(jian)的(de)TDengine數(shu)據(ju)(ju)(ju)庫(ku),可以通過創建(jian)數(shu)據(ju)(ju)(ju)源和數(shu)據(ju)(ju)(ju)集的(de)方式訪問TDengine。首先用(yong)戶需要在數(shu)據(ju)(ju)(ju)源管理界面創建(jian)一(yi)個數(shu)據(ju)(ju)(ju)源,配置(zhi)方法也是需要提供REST接(jie)口,和數(shu)據(ju)(ju)(ju)庫(ku)名稱。

創建數據源:

拒絕高深技術棧,裸機10分鐘搭建酷炫的工業物聯網監控平臺 - TDengine Database 時序數據庫

創建數據集:

拒絕高深技術棧,裸機10分鐘搭建酷炫的工業物聯網監控平臺 - TDengine Database 時序數據庫

用(yong)戶在組(zu)態畫面(mian)中(zhong)可以選擇一個表格控件,然后(hou)點擊表格控件的“行數(shu)據”綁定(ding)(ding)按鈕,在綁定(ding)(ding)界面(mian)中(zhong)選擇綁定(ding)(ding)數(shu)據集即可完成(cheng)綁定(ding)(ding),詳細可以參考:

拒絕高深技術棧,裸機10分鐘搭建酷炫的工業物聯網監控平臺 - TDengine Database 時序數據庫

通過(guo)前面(mian)簡(jian)單的配(pei)置,中央水機監控系統大部分功能就(jiu)實現了(le)。用戶(hu)可以通過(guo)IoTopo物聯(lian)網平(ping)臺方(fang)便的從TDengine中查詢到所有接入點位的數據,如下圖:

拒絕高深技術棧,裸機10分鐘搭建酷炫的工業物聯網監控平臺 - TDengine Database 時序數據庫

利用平(ping)臺的組(zu)態工(gong)具,我(wo)們(men)還開發了如下實時(shi)監控界(jie)面(mian)。

拒絕高深技術棧,裸機10分鐘搭建酷炫的工業物聯網監控平臺 - TDengine Database 時序數據庫

平臺選用TDengine的理由

在之前一(yi)個版本,平(ping)臺底層(ceng)使(shi)用(yong)的(de)是(shi)InfluxDB來存(cun)儲時序數據。然而InfluxDB在面對海量數據時的(de)讀寫性能存(cun)在瓶(ping)頸,因(yin)此我們決(jue)定采用(yong)性能更強悍的(de)TDengine。在深(shen)入使(shi)用(yong)TDengine后,我們還(huan)發現了(le)諸(zhu)多優勢。

1)支持SQL語句

TDengine支(zhi)持SQL語句操(cao)作,使得TDengine可(ke)以(yi)通(tong)過插件方式無縫的嵌入到(dao)很(hen)多大數據展示系統方案(an)中。

2)動態建表

在TDengine實現(xian)schemaless的(de)寫入方式,使數據庫可以動態的(de)適配多樣的(de)工業場景。

3)性能高、體量小

TDengine對順序(xu)產生的時序(xu)數(shu)(shu)據插入、查詢(xun)、聚合(he)統計性(xing)能非(fei)(fei)常高,而(er)整個數(shu)(shu)據庫體量(liang)卻非(fei)(fei)常小,這就(jiu)讓我們(men)的平(ping)臺變得更易(yi)搭建和維護(hu)。

4)節約存儲成本

由于(yu)TDengine是個列式存儲數(shu)據(ju)庫,數(shu)據(ju)壓縮后其存儲空間比一般數(shu)據(ju)庫大大減少(shao)。

IoTopo工業物聯網平臺組態示例

IoTopo工業(ye)物聯網平臺前端界面采用標準HTML5開發,支持 2D/3D圖形組態(tai),同時聽過豐(feng)富(fu)的(de)組態(tai)模版,可滿足(zu)絕大(da)多(duo)數(shu)(shu)工業(ye)數(shu)(shu)據可視(shi)化監控應用場景。

下面(mian)舉幾個項(xiang)目的例(li)子,來展示IoTopo物聯網平臺的組(zu)態(tai)界面(mian)。更多的界面(mian)可以訪問(wen):

?某智能新風系統項目

拒絕高深技術棧,裸機10分鐘搭建酷炫的工業物聯網監控平臺 - TDengine Database 時序數據庫

某工廠智能監控項目

拒絕高深技術棧,裸機10分鐘搭建酷炫的工業物聯網監控平臺 - TDengine Database 時序數據庫

某風力發電SCADA項目

拒絕高深技術棧,裸機10分鐘搭建酷炫的工業物聯網監控平臺 - TDengine Database 時序數據庫

某生活園區可視化項目

拒絕高深技術棧,裸機10分鐘搭建酷炫的工業物聯網監控平臺 - TDengine Database 時序數據庫

TDengine的(de)(de)(de)集成(cheng)為工業(ye)物聯(lian)(lian)(lian)網平臺提供了堅(jian)實的(de)(de)(de)底層,但后期也還(huan)有很多細化的(de)(de)(de)工作等待去開展,比如:多個超(chao)級表的(de)(de)(de)適配、多維度tag的(de)(de)(de)支持等。只要我(wo)們踏(ta)(ta)踏(ta)(ta)實實做產品,在(zai)物聯(lian)(lian)(lian)網和工業(ye)互(hu)聯(lian)(lian)(lian)網的(de)(de)(de)潮流中,一定可以做出更多的(de)(de)(de)貢(gong)獻。

作者簡介:白華軍(jun),智慧水(shui)務研究院(yuan)院(yuan)長(博士),從業16年,包括SAP ERP專(zhuan)家顧問(wen)、軟(ruan)件(jian)需求(qiu)分析(xi)師、技(ji)術架構(gou)師、軟(ruan)件(jian)項目經理(li)等(deng)。持續推動著大型電子商務與管(guan)理(li)信息系統成(cheng)功應用與運維;對(dui)JAVA,ASP.NET、C/C++/C#,WINDOWS/LINUX系統、HANA數據庫、工業物(wu)聯網、數據倉庫等(deng)技(ji)術都有資深建樹。

原文首發于