- 工業互聯網核心引擎原理與實現
- 深圳市智物聯網絡有限公司
- 1829字
- 2020-09-29 16:10:53
NIEFAD 變換
MixIOT 體系中的NIEFAD 變換其實是兩個變換:一個是對I、N、D 這三種報文的數據進行處理;另一個是把R 報文里面的“E”(事件,Event)、“F”(故障,Fault)和“A”(報警,Alert)的數據挑出來,單獨放到一個關系數據庫里面,然后再對它們進行處理。
I、N、D 是報文類型,不是數據類型。它是怎么變換的呢?這是MixIOT 體系內部的事情,基本上不需要我們去做什么。
下面我們重點來說明E、F、A 是怎么變換的。這里要分清E、F、A 不是報文類型,而是數據類型。
圖8-2所示的是一個R 報文里面的柵格數據,其中,除了K1~K11(這些數據我們理解為溫度、壓力、電流、電壓之類的反映設備狀態的數據),還有其他數據。
F1、F2是故障數據;A1是報警數據;E1~E4是事件數據。
這些數據是跟設備的狀態數據一起報上來的,也是R 報文中的柵格。MixIOT體系收到報文數據后,就啟動了NIEFAD 變換。
簡單地說,NIEFAD 變換的作用,就是把它們從這個報文中“摘出來”,放到其他專門存儲這些數據的地方,讓這些數據各就各位,如圖8-3所示。

圖8-2 一個R 報文里面的柵格數據

圖8-3 NIEFAD 變換
那么,適配器報文的柵格數據中,哪些是事件數據,事件是什么?哪些是故障信息,故障是什么?哪些是報警信息,報警信息又是什么?這些問題就是通過代碼庫(Codebase)中的代碼庫表描述的。
代碼庫表(或者叫代碼庫腳本)跟映射表(或者叫映射腳本)其實很類似:

- 第一列描述的是柵格的數據類型。“EVNT”代表發生的事件,“FLT”代表故障,“ALT”代表報警;
- 第二列代表的是柵格數據的標識(Key),這個我們在之前的映射中已經說明過;
- 第三列是一個數字,這個數字就是用來代表這個事件、故障或報警的編號的。簡單地理解,就是我們把這些信息都用不同的編號進行標識。比如,你看到了“404”,就知道發生了什么;
- 第四、五列,分別是它們各自對應的英文和中文的含義。
我們注意到,FLT 和ALT 的寫法是后面加-A、-B 和-C,這個不是什么故障報警類型,而是代表這類數據“出現和消失的方式”,這個非常重要,是不能寫錯的。那么什么叫數據“出現和消失的方式”呢?下面我們來詳細解釋一下。
首先,這類數據信息都是來自設備的控制器的,而不同的設備控制器對這類信息的處理沒有統一標準。就拿上面這個編號為“2231”來說,編號“2231”對應的是ALT-C 數據類型,是一個“4#鍋爐高溫”的報警,這是一個一次性的報警信息。也就是說,當這個信息出現的時候,我們會看到數據柵格A1=1(TRUE)就在報文中出現了,我們也采集到了。但在這之后,即使這個報警被解除了,后面我們還會收到A1=1,這個柵格的值不會變,需要人工去設備的控制面板操作一下,A1=1才不會再出現。這就像有人跟你說,你的褲子拉鏈沒拉好,你后來自己拉好了,但是對方不會再跟你說拉好了,你要自己確認是否拉好了。這是控制器一種可能的做法。
有一種情況,就是當這個報警被解除后,你會采集到A1=0這個信息,也就是說,報警解除后會有信息反饋,這時我們就定義A1為ALT-A。只需要通過ALT-A的值(1或0)就能知道這個報警是什么時候出現的,什么時候消失的。這是控制器又一種可能的做法。
有的控制器可能是這樣做的:這個柵格A1=1不會變成A1=0,但也不會總重復,而是在某一個周期數據采集的時候,這個柵格不見了,也就是采集不到A1=1了。這時我們就定義A1為ALT-B。這是通過“出現和消失”這種方式實現的,而不是改變數值。這又是一種處理方式。
如果只告訴你出現了報警,而不告訴你報警解除了,這種情況又怎么處理呢?當出現A1=1這個數據柵格的時候,說明4#鍋爐出現了高溫報警,工作人員前去處置后,報警解除了,這個時候設備產生一個事件(E4)告知這個報警被解除,然后,需要通過人工在控制面板上解除這個報警,使A1=1這個數據柵格不再出現。這類方法在工業設備中非常常見。

在這個例子中,說明2231報警的消失是由于4231事件的出現。故障跟報警也與此類似。
在實際工業現場,我們可能會遇到更加復雜的情況,比如,事件導致的故障、故障導致的報警、報警導致的事件、故障導致的事件,然后通過某個事件又解除了報警等,把這些千變萬化的情況抽象出來,其實就是-ABC。簡單總結一下,如果是同一個Key,=1代表出現,=0代表消失,那就是-A;如果Key 只有=1,而且一直=1,這就是-C;如果Key 只有=1,不會=0,但也不會重復,那就是-B。
通過上面這個例子,你或許應該能感覺到,為什么MixIOT 體系要把事件、故障、報警放在一起,并且進行統一的編碼。圖8-3把EFA 串成了一個糖葫蘆,說明EFA 之間關系的復雜性。MixIOT 體系在這方面做足了功夫,不僅通過NIEFAD 變換把EFA 摘出來,而且MixIOT 體系還有其他的組件來處理這些-ABC 的相互關系,這些也是MixIOT 體系獨有的一個處理方法。