隨著工業(yè)物聯(lián)網(wǎng)時代的到來,企業(yè)用戶對建立數(shù)控機床在日常生產(chǎn)中的監(jiān)控和報警平臺的需求越來越大。通過搭建對于數(shù)控機床的監(jiān)控和報警平臺,企業(yè)用戶可以隨時了解自己生產(chǎn)線的工作情況,及時獲得異常反饋,從而合理安排生產(chǎn),規(guī)避風險等。TDengine作為一款新型的,面向物聯(lián)網(wǎng)的單機開源的數(shù)據(jù)引擎,以其輕體量、部署快、高寫入查詢性能、低資源占用、高并發(fā)、實時響應等特點,大大降低了監(jiān)控報警平臺部署的成本,提高了效率。
技術(shù)架構(gòu)及特點
TDengine的引入使得數(shù)控機床的監(jiān)控系統(tǒng)架構(gòu)變得極其簡單。平臺架構(gòu)如下圖所示:

采集器采集的數(shù)控機床的監(jiān)控數(shù)據(jù)匯集到MQTT Server上。隨后,數(shù)據(jù)輪詢模塊定期循環(huán)從MQTT Server上拉取數(shù)據(jù),并轉(zhuǎn)換為TDengine理解的SQL語句寫入引擎。TDengine后面可接入各種應用程序,實時查詢最新數(shù)據(jù)。少量的TDengine的配置信息等也會經(jīng)過ETL模塊轉(zhuǎn)換寫入一個關系型數(shù)據(jù)庫(Relational Database),方便各個應用查詢使用。
TDengine的引入使得架構(gòu)變得極其簡單。一方面,TDengine本身帶有緩存功能,從而使得在應用中不需要再部署其他的緩存數(shù)據(jù)庫來維持數(shù)據(jù)的高可靠。另一方面,TDengine的高并發(fā)性能,使得TDengine在處理高頻率的寫入任務的同時,可以同時拉起成百上千的查詢。而TDengine的實時性和低資源占用的特點也使得TDengine可以并發(fā)支持各種實時請求。
數(shù)據(jù)模型介紹及寫入和查詢
數(shù)控機床的監(jiān)控量,包括時間戳和報警信息在內(nèi)有多達60幾個字段。其中大部分字段為整形或浮點型。由于涉及非ASCII碼字符,其中的報警信息為nchar類型。報警信息字段的長度約有1K左右,而且大部分時候為空。數(shù)控機床的監(jiān)控采集頻率為10秒鐘一次,源源不斷地寫入TDengine。
由于數(shù)控機床采集數(shù)據(jù)schema的相似性,在建表時,可以采用超級表建表:
create table cnc_st (cnc_dqtime timestamp, ….) tags (cnc_id binary(64));
然后對于每臺數(shù)控機床創(chuàng)建一張單獨的表:
create table cnc_9293078 using cnc_st tags ('cnc_9293097');
利用超級表建表來處理數(shù)控機床的監(jiān)控有很大的優(yōu)勢:
- 一方面,超級表可以看成是很多表的集合。在對多表進行查詢時,可以通過對超級表的查詢在一個SQL語句中完成,避免進行多個SQL語句的查詢。
- 另一方面,通過超級表,可以實現(xiàn)表與表之間數(shù)據(jù)的聚合。
在數(shù)控機床的監(jiān)控中,經(jīng)常需要進行查詢的是各機床最新采集數(shù)據(jù)的展示和刷新。在TDengine中,這個可以通過一條SQL語句很容易實現(xiàn):
select last_row(*) from cnc_st group by tbname;
其中,tbname為關鍵表名關鍵字,用以按表名對結(jié)果進行分組。TDengine的應用大大簡化了數(shù)據(jù)實時獲取的流程,提高了響應度。
小結(jié)
不同于其他的大數(shù)據(jù)處理系統(tǒng),TDengine部署極其方便。這使得在搭建數(shù)控機床監(jiān)控平臺的過程中,用戶可以花極少的時間在數(shù)據(jù)庫系統(tǒng)的搭建上,大幅縮短工程周期。另外,TDengine的高性能、低資源消耗、實時響應以及高并發(fā)等特點,都使得它在一邊寫入數(shù)據(jù)的過程中,可以實時服務多個應用的請求。真正做到實時響應,實時監(jiān)控。



互聯(lián)網(wǎng).png)



-1.png)











伙伴.png)
伙伴.png)



