淺談工業級物聯網項目架構設計及實施

前言linux

早在1999年就已經有了「物聯網」這個概念,可是直到十年以後的2009年,IBM提出「智慧地球」的概念,才推進不少國家把物聯網研究和發展提高到戰略層面。可是比較遺憾的是,直到如今的2015年,我國的物聯網的發展依然主要靠政府項目來拉動,因此如今的發展彷佛前景愈來愈不明朗。 政府彷佛意識到這是個問題,在一些互聯網公司的倡導和推進下,提出了「互聯網+」的概念。雖然「互聯網+」和「物聯網」都是以網爲主,可是發展的側重有了本質區別。「互聯網+」是以互聯網爲主,**智能模塊和傳感器爲輔,構建互聯生態。而「物聯網」倒是以互聯網爲基礎,重點在傳感器數據採集,設備控制,遠程監控爲主。數據庫

可是如今不少互聯網公司,作的是「互聯網+「的事,卻以」物聯網「的名義來宣傳。因此如今的人愈來愈搞不清」物聯網「的真實定位了。編程

我一直認爲從技術角度來看,所謂「物聯網「就是傳統工控網的一個外延。傳統的工業現場,考慮到生產安全,都是內部網絡。另外實施和維護的代價相對較高。而在互聯網和移動互聯網愈來愈完善的今天,在各個領域都有了遠程測控的要求。好比目前比較典型的農業大棚監控、森林防火監控、魚塘監測和養殖管理等等。 「互聯網+」和「物聯網」因爲發展的側重點不一樣,在作架構設計上確定有所不一樣。「互聯網+「的項目,其實更看重的是用戶數,通訊數據流量,這是衡量一個」互聯網+「項目成功的標誌,固然這是也是那些作雲平臺爲主的互聯網公司最看重的,用戶數和通訊數據流量正是他們的利益點所在。windows

而以中小項目爲主的「物聯網」項目,其實更看重的,一是系統穩定可靠,能保證系統長期穩定的運行,由於有些監控點每每部署在人跡罕至的地方,系統的可靠性成爲關鍵。二就是系統便於開發和維護,由於基於不一樣行業,不一樣工藝需求的,很難開發出像民用領域的通用產品,須要根據現場實際調整相關的業務邏輯和監控畫面,因此是否易於開發很關鍵。固然維護更爲重要,由於偏工業級的「物聯網」項目通常設計至少是三年或更長的生命週期,因此項目維護難以免,甚至系統還會根據現場工藝的變動進行變化,易於維護是「物聯網「項目一個不可或缺的要素。安全

由以上的說明,咱們能夠很清晰地瞭解,從技術角度來說,作「互聯網+」和「物聯網」項目的架構設計是有很大的不一樣,本篇文章主要介紹工業級「物聯網」項目的架構設計及實施。服務器

工業級物聯網的概念和特點 因爲筆者曾經在傳統工控領域工做7年之久,因此理解「物聯網」更可能是從工控的角度來考慮。所謂的工業級物聯網,不是工業領域的物聯網,而是具有工業領域的特點的物聯網項目,好比農、林、牧和漁業等領域的相關項目。和工業領域的項目不一樣,沒有那麼龐大和要求嚴格,採集和監控的數據也相對較少,對設備、及實施和維護的成本比較敏感,而且通常要求遠程監控。可是相同的要求是,設備要穩定可靠,便於根據工藝要求調整控制策略,方便升級、擴展,易於維護。 傳統工控項目,通常相對龐大,環節多,開發和實施週期都比較久,固然項目的費用也是相對高昂的。每每一個實施工控項目的公司,一年能作十幾個這樣的項目就已經很繁忙了。而在物聯網時代,因爲互聯網和移動互聯網基礎設施比較完善,雲服務公司也是層出不窮,能夠花最少的代價,相對快速的完成一些項目。 因爲開發和實施的代價大大下降,因此可作的領域被大大拓寬了,造成了一個良性循環,作的越多,越可靠,也越便宜。越便宜,可作的項目也愈來愈多。 工業級物聯網項目架構設計思想 瞭解了工業級的物聯網項目的一些特點,因此架構設計方面就有了方向和思路。咱們先從技術角度分析,當前一個典型的物聯網項目,從組成上來說,至少有三部分:一是設備端,二是雲端(主要指公有云),三是監控端。網絡

  1. 設備端架構設計 設備端主要負責數據採集,工藝邏輯執行及控制。 不管底層的設備數量有多少,通訊協議有多複雜,考慮到項目安全等等因素,每每和雲端通訊,聚集在一個設備上,這樣的設備的角色每每是物聯網網關,除了專門負責和雲端進行通訊外,有時候也會對原始數據進行必定的處理,執行一些業務邏輯相關的代碼。 和雲端通訊有不少協議可選,常見的有基於HTTP協議的Get或Put方法,從服務器獲取一些設置及狀態,及向服務器推送採集到的數據。可是對數據量相對比較大,實時性要求高的,每每是直接的Socket TCP/UDP通訊,這樣傳輸的代價相對較低,可是對編程設計方面要求比較高。 由以上分析,從功能層面上分,設備端架構通常可分三層,一是數據採集&控制輸出層;二是工藝流程執行層;三是數據上傳&命令接收通訊層。架構

  2. 雲端架構設計併發

雲端通常包含三部分:Web前臺+ Web後臺+中間件; 做爲工業級的物聯網項目,Web前臺通常會顯示這幾部份內容,一是工藝畫面,和現場實際的設備和工藝流程一一對應,畫面能夠實時反映工業現場運行的狀況。二是各類數據報表、曲線數據的保存、查詢和打印等。三是運行日誌,保存各類運行狀況,以備查詢。四是顯示系統診斷信息,便於系統出現問題的時候,及時判斷問題所在。 Web後臺相對複雜一些,通常完成三部份內容的工做,若是是設備端基於HTTP協議通訊,每每須要處理Get和Put請求。因爲前臺有實時畫面,因此Web後臺有時候也須要向前臺界面傳輸實時數據,目前有些實時數據是經過Web Socket協議進行傳輸,也能夠由專門的程序來處理。還有一部分功能比較重要,就是要創建設備數據和各類報表,曲線,日誌的對應關係,以便於適用儘量多的現場。 在工業級物聯網項目中,通常中間件必不可少,其主要功能就是負責和現場設備進行通訊,獲取數據或發送相關控制指令。此外還有一個比較重要的功能,因爲中間件程序通常是做爲系統的一個服務程序或普通應用程序,生命週期較長,能夠長時間連續運行,能夠處理一些相對複雜的業務邏輯、數據換算及數據轉儲。模塊化

  1. 監控端架構設計 監控端通常包含PC、手機或平板監控。 對通常項目而言,也許經過Web前臺就能夠掌控一切了,可是在移動互聯網的時代,若是對應的手機或平板上沒有對應的APP,那這個項目就感受有了一個很大的缺憾。有了手機或平板APP,就能夠身在任何地方,均可以相對方便的監控現場。 從功能上劃分,架構能夠相對簡單的分爲兩層,一就是UI界面顯示及操做層,二就是數據通訊層,實現和服務器信息交互。

  2. 小結 若是拋開其餘一切因素,僅從技術角度來說,實現以上三個大環節的功能,用什麼系統平臺,任何開發語言均可以完成其預約的功能。可是所謂的架構設計,不只僅從功能角度來設計整個的系統平臺,更多還要考慮其可靠性,擴展性,維護性等幾個方面。 做爲工業級的物聯網項目,大都是面向工、農、牧、漁等具體行業,每種行業雖然從技術角度而言有不少相似的部分,可是從工藝流程角度又有很大的區別,因此針對具體的項目,進行代碼調整及相關功能的擴展及二次開發必不可少。可是面向一線的工程師每每技術水平及能力相對比較低,可否快速編寫出可靠、健壯的代碼顯的很是重要,畢竟每一個項目現場實施時間是有限的,可是同時項目要求也是比較高的。 另一個物聯網項目,包含了嵌入式設備的開發、Web先後臺的開發、服務程序開發還有手機和平板程序開發,每一項從技術平臺上來講各類各樣,好比嵌入式設備,有微軟體系的Windows CE/XPE/.NET Micro Framework,有linux體系的嵌入式linux/uclinux等等,還有uCOSII/FreeRTOS/mbed OS等等實時嵌入式操做系統,其開發工具,系統架構各不相同,各有特點。手機和平板目前至少也有三種開發類型,一種是iOS開發,一種是安卓開發和windows 10 UWP通用程序開發等等。另外Web開發就更多了,這裏就不一一舉例了。 因此若是在總體架構設計中,每種部分都選用不一樣的技術路線,那麼每一種技術路線,意味着都要有一個團隊去開發,而且開發完畢後,還須要上下進行溝通,以便於把整個項目有機地聯繫在一塊兒。 開發完畢後,更多的還有維護工做,不只是開發團隊的維護,更爲重要的是現場維護,除了問題,如何及時定位,及時解決。針對如上問題,加上多年的現場實施和維護經驗,因此我更看重統一化和組態化的架構設計,下面我就講講咱們是如何構建物聯網項目的。 物聯網通用中間件平臺架構設計 因爲是一個物聯網通用中間件開發平臺,因此着眼點並非一兩個很是有行業特色的項目平臺,而是面向不一樣行業,不一樣具體應用的二次開發平臺,更多考慮跨行業應用的技術通用部分及同一個運行時平臺支持多個項目點的功能。 下面咱們就設備端、雲端中間件及物聯網通用平臺分別進行介紹。

4.1 物聯網嵌入式數據組態YFIOs架構設計 在工控領域,組態軟件司空見慣。爲何不少工業項目採用組態軟件,緣由主要有兩點,一是模塊化搭積木式的設計,技術門檻低,實施速度快,很是適合工控技術人員使用;二是可靠性很是高,因爲模塊之間耦合性低,重用度高,而且每一個模塊每每在不一樣項目現場,實際都獲得過運行考驗,因此穩定性自不待言。 YFIOs的設計思想就來源於標準的組態軟件,可是又具有了一些物聯網時代的功能特點。

圖1 YFIOs系統架構 從圖1架構圖上能夠看出,YFIOs包含三大部分:驅動層、策略層和核心層。 底部驅動層支持大部分物理通訊接口,主要功能就是和傳感器(或智能模塊)通訊,獲取相關的傳感器數據及發送控制執行指令。 上部策略層除了加載執行一些系統策略(如系統通訊策略)外,還能夠加載用戶策略,這樣能夠基於現場工藝流程,當即就能夠進行相關的工藝控制操做,不用送到服務端,等服務端遠程發出控制指令。 中間核心層是最關鍵的,除了啓動驅動和策略引擎外,還建立了兩個內存數據庫。一個是IODB,主要存放點數據(如溫度、溼度數據),另一個是IOBC,主要存放塊數據(如攝像頭圖片)。策略程序和驅動程序,徹底解耦合,經過IODB和IOBC進行數據交互。 和傳統組態軟件(特指數據組態部分)相比,YFIOs有以下特點:

基於.NET系統進行驅動和策略開發,因爲系統自帶垃圾回收機制,不用擔憂在編寫驅動和策略過程當中,因內存溢出等緣由致使系統當機。 傳統的組態軟件通常對外不提供驅動開發SDK,即便有,大都也採用C++進行開發,對開發者要求比較高。YFIOs和傳統組態軟件不一樣,驅動能夠採用C#和VB.NET進行開發。且驅動有多種運行模式,不只系統能夠調用,用戶策略也能夠調用。還能夠綁定策略事件,經過觸發的方式去執行指定的策略。 YFIOs的驅動能夠動態替換,若是配置了相關的鏈接變量,只要驅動變量接口兼容就能夠替換,這大大下降了系統運行後的維護成本,**的硬件設備能夠根據須要進行替換。 YFIOs系統支持遠程升級和遠程調試。支持三個層面升級,YFIOs運行時升級、YFIOs驅動和策略升級和YFIOs配置升級。 針對設備端,咱們也設計了基於物聯網畫面的組態軟件YFHMI,因爲這部分其實和傳統的畫面組態區別不是很大,因此這裏限於篇幅,再也不介紹了。 2. 物聯網雲端中間件YFCloud架構設計 雲端YFCloud中間件平臺,能夠說是徹底脫胎於嵌入式YFIOs,從圖2的架構圖上就能夠明顯看出,能夠這樣說,YFIOs是一個「單機版」的數據組態平臺,而YFCloud是一個「網絡版」數據組態平臺。 YFCloud和YFIOs均可以運行策略程序和建立IODB內存數據庫,不一樣的是YFCloud去掉了IODC內存數據庫,而且驅動層簡化爲一種,就是TCP/IP通訊接口,每個遠程設備,服務器都會分配一個Socket鏈接,登陸成功後,才能正常通訊。若是設備30秒上傳數據無變化,則發送心跳信號,不然60秒無數據收到,服務器會主動關閉鏈接。

圖2 YFCloud中間件架構 YFCloud還集成了WebSocket服務器,Web動態網頁能夠經過WebSocket協議和服務器進行通訊。 YFCloud物聯網中間件平臺是以項目爲最小單位來進行管理的,一個或多個項目對應一個項目模板,項目經過項目ID進行區分。因爲是二次開發平臺,因此YFCloud提供了一個平臺級的開發接口,經過接口能夠管理相關的項目模板和項目(如建立、編輯、刪除、啓動和中止等)。 3. 物聯網通用平臺架構設計

圖3 物聯網通用平臺架構 YFIOs嵌入式數據組態運行在物聯網智能網關上,直接和YFCloud進行通訊(雲端中間件經過導入YFIOs的上傳IO表,就能夠直接進行通訊了)。 物聯網通用平臺的Web前臺,目前默認具有以下功能(每一個項目模板能夠根據須要,進行選擇所須要的功能,項目徹底繼承了項目模板的選擇)工藝流程顯示、工藝報表(日報表,統計報表)、工藝曲線顯示、項目運行日誌、工藝參數配置和攝像頭監控等等。 物聯網通用平臺的Web後臺,主要功能就是用戶管理、角色管理(和功能匹配的角色)、項目模板管理和項目管理。限於篇幅,就不詳細介紹了。 4. 小結 該平臺的最大優點就是,從軟到硬,所有采用了.NET平臺。因此不須要太多的技術人員,就能夠從上到下進行項目開發。對客戶來講,因爲涉及到的技術領域比較少,因此二次開發及後續平臺維護也比較容易。 物聯網項目案例簡介1. 家庭遠程健康監控系統 這是比較早的一個案例了。設備外接血糖儀、血壓計、攝像頭、溫溼度模塊,內部集成了RFID刷卡器及3G模塊。經過3G和遠程服務器進行通訊,用戶或醫生經過網頁查看相關信息,其中醫生還能夠遠程留言併發送到設備。採用組態式的架構最大的好處就是, 因爲每一個家庭已有的血糖儀或血壓計型號不一樣,設備能夠根據對應的傳感器型號,選擇不一樣的驅動,可遠程部署驅動進行適配。

圖4 遠程監控檢測設備鏈接圖 2. 農業大棚監控系統 系統核心爲物聯網智能網關,外部鏈接攝像頭、溫溼度傳感器,經過以太網、Wifi或3G路由器把相關數據推送到服務器。 客戶能夠經過PC、平板或手機遠程監控蔬菜大棚中的做物生長狀況。

圖5 農業大棚手機監控圖 3. 近海漁業監控系統 經過水質傳感器,獲取當前水質狀況(Modbus RTU通訊);經過攝像頭獲取當前圖片;經過GPS獲取當前經緯度;經過GPRS模塊把數據傳送到遠端服務器。

圖6 漁業監控設備鏈接示意圖 4. 村級污水處理監控系統 物聯網智能網關經過RS485/CAN和智能終端鏈接在一塊兒,智能終端採集各類數據,或控制相關設備運行。網關經過無線路由器或GPRS模塊向服務器發送數據,或者接收服務器的控制指令。 Web網頁能夠查看現場工藝流程界面,工藝報表及設置工藝參數等等。

圖7 污水監控設備鏈接示意圖

圖8 污水監控Web界面圖 物聯網項目開發的將來發展方向 如今國內外互聯網企業巨頭,瞄準的物聯網領域,大都是民用領域,如智能家居、車聯網等等。這些領域的特色就是量大、而且相對統一,每一個客戶不須要特別的定製(特別是硬件層面,區別不大,個性化最多在軟件層面)。 可是在非民用領域,即便相似的項目,每每由於最終客戶不一樣,工藝流程的差別,軟硬件也會有相對大的變更。另外和民用產品不一樣,一是應用環境相對惡劣,二是要求24*7連續運行,對穩定可靠性要求比較高,三是要便於擴展,便於維護。 因此這類物聯網項目,將來的發展方向,確定是首先在可靠性上下工夫,知足長期使用的需求後,就是儘量提取共用部分,讓每一個項目的修改量降到最低。 固然將來最有可能的發展方向就是,隨着如今分工愈來愈細,雲計算髮展的愈來愈成熟,物聯網協議標準的確立和客戶技術能力的提升,將來也許是在最終客戶的統一協調下,不一樣物聯網廠商各作一部分(或軟或硬),共同完成最終的項目。

相關文章
相關標籤/搜索