技術干貨丨工業互聯網核心引擎原理與實現——離線數據
【摘要】:
“離線數據”是相對“在線數據”而言的。所謂在線數據,就是可以通過數據采集終端直接采集到的數據,比如適配器對接設備控制器后直接采集到的數據,反之,“離線數據”就是不能通過數據采集終端直接采集的數據。
什么是離線數據:
“離線數據”是相對“在線數據”而言的。所謂在線數據,就是可以通過數據采集終端直接采集到的數據,比如適配器對接設備控制器后直接采集到的數據,反之,“離線數據”就是不能通過數據采集終端直接采集的數據。
一個工業物聯網項目是否能成功,關鍵就是數據采集,而數據采集并非我們想象得那么難。事實上,不是我們想要的所有數據都可以用數據采集終端采集到, 這是其一;其二,在諸多實際情況中,也并非都需要用數據采集終端去實時采集。

▲離線數據采集的場景說明
離線數據的采集,我們稱為“離線測量”采集。比如,一個數控機床加工出來的工件,我們需要知道它的幾何尺寸,就需要通過測量;比如,一個化工產品被生產出來,我們要進行化驗,看看它的化學成分,就需要用到化驗儀器,而化驗結果, 可能顯示在屏幕上,也可能是打印出來的;再比如,我們需要知道某個儀表上的讀數,而這個儀表是一個模擬表,沒法對接什么適配器,那我們就只好用眼睛去看這儀表的讀數。把上述這些數據進行采集,就是所謂的離線數據采集。
Collectos(離線數據庫):
MixIOT體系是支持離線數據的,但是對離線數據有兩個基本要求:一是要有獲得數據的途徑,二是要有把這些數據收集到的方法。
首先,我們介紹兩個重要的概念。
一個是Collectos,它是MixIOT體系中的一個“離線數據的數據庫”,就是用來保存離線數據的。另一個是 API-Q,這是MixIOT提供的一個收集離線數據收集的接口。了解了這兩個概念,我們就可以來說明離線數據采集的流程是什么。
我們舉個例子,這是一個石膏的生產工廠,除了用適配器采集生產設備在生產過程中的數據,我們還想把產品(石膏)的化學成分和pH值一并納入這個對象的數據庫。

▲石膏中的化學成分和PH值
把產品的數據納入同一個對象的目的,是為了弄清產品的質量跟生產設備運行、原材料及生產過程的各種數據之間的關系。而產品(石膏)的化學成分和 pH值,是通過化驗得到的。化驗的過程我們都了解,溶液、溶劑之類瓶瓶罐罐和什么滴定方法等,這些很顯然是沒辦法用適配器去采集數據的。這個時候,我們可以提供一個手機 APP,這個APP用到了 API-Q Collectos這個接口。假設我們需要一個小時做一次對產品的化驗,只需要把這個化驗結果輸入這個APP就行了。

▲ 石膏生產工廠在線數據與離線數據的采集
在這個示意圖中,我們看到,用了多個適配器直接對接這個裝置中的不同設備, 分別采集這些設備運行的數據,這就是在線數據的采集。除此之外,我們還需要一個 APP,手工輸入化驗結果數據,而這個APP得到手工輸入的數據后,再通過MixIOT API-Q接口,把手工輸入的數據發送到MixIOT系統,MixIOT 系統在收集到這些數據之后,就會保存到Collectos數據庫里面,等待后續的應用。
為什么我們要把產品(石膏)的成分也作為這個對象的數據呢?其實很好理解, 產品質量取決于什么?除了進來的原材料,當然就是跟這個設備的運行密切關系, 比如氧化的程度多一點少一點、水分多一點少一點、某個設備轉得快一點或者慢一點,都會對最后生產出來的石膏成分有影響,對石膏的pH值有影響。如果我們把這些通過化驗得到的離線數據也納入這個對象,那么我們能做的事情,就不僅僅是對這套石膏生產裝置的運行進行監控,而且還可以找出產品的質量與設備運行之間的關系。這就是為什么MixIOT要支持離線數據采集的意義所在。
另外需要說明的是,因為離線數據的采集是采用“離線測量”方式,所以,采集的頻度是可以很低的,比如,每一個批次的產品進行兩次化驗,或者1小時進行1次化驗。
離線數據標識(Collctos ID):
上面的例子中,我們介紹了用一個 APP 去做“石膏產品成分化驗結果”的離線數據采集。接下來要介紹,怎么讓MixIOT 把這些數據保存到離線數據庫Collectos 里面,怎么樣把這些數據整合到對象里面。
首先說一下,離線數據采集之前,我們需要做什么。
如果我們要使用離線數據,需要先在 MixIOT Admin的離線數據管理版塊中, 創建離線數據“項目”,每一個離線數據項都是一個項目,創建時配置好每個離線數據項目的信息。
以pH值項目的創建為例:
其中,“模板”是用來告訴MixIOT離線數據處理系統,這個數據的格式是什么。Float 代表浮點數,#.##是代表一位整數、兩位小數的格式,其作用就是自動把收集到的離線數據按這個標準來進行格式化。其他的信息當然也要填寫明白。
創建離線數據項目,實際上就相當于在 MixIOT系統里中聲明了有這些離線數據的存在。最前面的離線數據項目標識(1001、1002等)是由系統自動分配的。總之,離線數據項目的標識是唯一的,一個標識代表一個離線數據。
在剛才石膏產線這個例子中,我們需要創建6個離線數據項目,分別是“二水硫化鈣含量百分比”“半水硫化鈣含量百分比”“含水量百分比”“二氧化鈣含量百分比”“五氧化二磷含量百分比”和“pH值”。

▲ 離線數據pH值的創建
在 MixIOT Admin中創建好了這些離線數據項目后,就可以在對象的映射表中,建立離線數據與對象之間的關系了,寫出來是這樣的:
[ X901, “Percent of CaSO4.2H2O”, “二水硫化鈣含量百分比”, STA, &Collectos(“1001”) ]
[ X902, “Percent of CaSO4.1/2H2O”, “半水硫化鈣含量百分比”, STA, &Collectos(“1002”) ]
[ X903, “Percent of H2O”“含水量百分比”,STA, &Collectos(“1003”) ]
[ X904, “Percent of CaO2”,“二氧化鈣含量百分比”,STA,&Collectos(“1004”) ]
[ X905, “Percent of P2O5”,“五氧化二磷含量百分比”,STA,&Collectos(“1005”) ]
[ X906, “Percent of pH”,“pH 值”,STA,&Collectos(“1006”) ]
當我們的映射表中有了這些映射項之后,對象就多了X901-X906這6個FV變量。當我們在手機APP上輸入化驗結果,這些變量就有了數值,而且這些數值都變成了對象變量的數據,我們就可以進行各種數據處理,畫出含量百分比的變化曲線,通過變化曲線,我們就可以看到設備運行和生產過程的數據對石膏產品結果都有哪些影響。
還有一個很重要的地方,如果我們對產品的離線數據進行了采集,那么我們是可以計算產品的偏態估計值。所謂產品的偏態估計值,就是生產出來的產品,與標準高質量產品的要求有多少偏差。有關偏態估計值的詳細介紹,可以在公眾號留言獲取,這里就不詳細說了。
離線數據是MixIOT中非常重要的一個內容。除了對產品的化驗結果這類應用場景,還可以用于儀表讀數的采集、各種測量數據的采集、各種抽樣數據的采集等。總之,無法用適配器進行自動采集的數據,如果需要的話,都可以用離線數據的方法。
另外,說到離線數據這個話題,我們一定要提一下數控機床(或者叫加工中心, CNC)。假設你是一個機械加工廠的老板,你廠子里面有100臺數控機床,都按同一個加工程序來加工一批零件,但是加工出來的零件存在誤差,而且誤差的特征和變化趨勢都不一樣。
如果做一個物聯網項目,只是去實時監控這 100臺機床的運行狀態,請問這種物聯網有用嗎?答案是“沒有”!機床運行得再好,可是生產出來的都是廢品,那又有什么用呢?數控機床加工產生的誤差是一個非常復雜的事情,不僅跟機床運行的狀態有關,還跟刀具磨損、車間溫度濕度等因素有關。
如果把加工件的誤差作為離線數據,納入數控機床這個對象中,那情況可能就不一樣了,你可以用MixIOT來找到如何控制誤差的最佳辦法。

