目 錄
工業(yè)物聯(lián)網(wǎng)和集成系統(tǒng)解決方案的技術路線... 1
前言... 1
第一章 系統(tǒng)架構... 3
1.1 硬件構架圖... 3
1.2 組件構架圖... 4
第二章 技術選型與介紹... 5
2.1 開發(fā)環(huán)境... 5
2.2 數(shù)據(jù)源... 5
2.3 數(shù)據(jù)采集... 5
2.4 數(shù)據(jù)上傳服務... 6
2.5 消息中間件... 6
2.6 數(shù)據(jù)接收服務... 6
2.7 數(shù)據(jù)存儲... 6
2.8 數(shù)據(jù)接口... 7
2.9 Web業(yè)務系統(tǒng)... 7
2.10 手機移動終端App. 7
第三章 Demo的介紹... 8
3.1 目錄介紹... 8
3.2 Demo調(diào)試... 8
前言
2000年以后,互聯(lián)網(wǎng)在中國的大地上如火如荼的發(fā)展,在這個行業(yè)競爭中比的是加速度。我清晰的記得《世界是平的》中有這樣一段話:在非洲,羚羊每天早上醒來時,它知道自己必須跑得比最快的獅子還快,否則就會被吃掉;獅子每天早上醒來時,它知道自己必須追上跑得最慢的羚羊,否則就會被餓死;不管你是獅子還是羚羊,當太陽升起時,你最好開始奔跑!我們奔跑的這10多年的時間里,互聯(lián)網(wǎng)技術帶動了各行各來的發(fā)展,同時也席卷了各行各來。
2006年時,工業(yè)行業(yè)還在普遍使用電話線進行數(shù)據(jù)傳輸和遠程幫助。網(wǎng)絡技術慢慢的在向各行各業(yè)傳導,工業(yè)行業(yè)也在發(fā)展,局域網(wǎng)、光纖以太網(wǎng)、WIFI/3G/4G等已經(jīng)應用很廣泛了。互聯(lián)網(wǎng)技術在推動制造業(yè)發(fā)展的同時,也帶動了眾多公司的與時俱進,升級技術、提供更好的服務。
我們在思考,后互聯(lián)網(wǎng)時代將如何發(fā)展?將是互聯(lián)網(wǎng)與各行各業(yè)深度融合的過程,例如現(xiàn)在常被提及的物聯(lián)網(wǎng),我認為它本質(zhì)上是工業(yè)互聯(lián)網(wǎng),是制造技術與互聯(lián)網(wǎng)技術無縫對接。不管是叫物聯(lián)網(wǎng)還是工業(yè)互聯(lián)網(wǎng),未來物與物的交互、物與人的交互將無法避免。硬件與軟件的協(xié)同發(fā)展,更快的推動了這個進程,例如:智能芯片的發(fā)展、嵌入式操作系統(tǒng)的發(fā)展、智能傳感器的發(fā)展等。
大數(shù)據(jù)、分布式、云計算等也在以驚人的速度發(fā)展,有些人可能認為這些東西離我們生活還比較遙遠。但是并非是這樣的,距離2006年只不過10年左右,現(xiàn)在的發(fā)展卻是以前你無法想象的,而這種加速度的發(fā)展方式,2年的發(fā)展可能是你過去10年的發(fā)展之和。不管這些技術現(xiàn)在是否能夠落地,但是這種趨勢是無法改變的。
數(shù)據(jù)的流動可以變現(xiàn),現(xiàn)金的流動可以增加GDP。技術的進步就是生產(chǎn)力的提升,將來組織結構和關系也勢必發(fā)生變化。不管是否懂技術技術、是否懂管理,思維方式不轉變肯定會被淘汰。
下面對物聯(lián)網(wǎng)和集成系統(tǒng)的解決方案的技術路線進行介紹,只對技術選型和系統(tǒng)流程,對于架構的演變以及技術哪個更好不做具體說明。只供參考!!!
架構圖這塊主要表達一個大概的結構化的意思,可以不太準確,希望大家能夠理解。作為一個系統(tǒng)來講還包括網(wǎng)絡部署框架圖,根據(jù)應用場景和網(wǎng)絡環(huán)境不一樣網(wǎng)絡框架圖也不一樣,所以不在本文的討論范圍內(nèi)。
文章不介紹代碼部分,在Demo事例中有完整的代碼和注釋,可以下載調(diào)試。
開發(fā)語言:全部使用C#,配有少量的JS代碼。
開發(fā)工具:除App部分,所有組件都采用VS2012開發(fā),App程序采用VS2015開發(fā),VS2015是一個超級開發(fā)工具工廠,在Win10操作系統(tǒng)上開發(fā)IoT嵌入式程序,也沒有問題。
操作系統(tǒng):Windows 8.1,用習慣了也不錯,聽說要停止服務了,不過還有人在使用XP呢,不必擔心。
數(shù)據(jù)源也就是產(chǎn)生數(shù)據(jù)的東西,也有人把這塊統(tǒng)稱為傳感器,但是我認為這個叫法不太準確,所以我一般把這塊統(tǒng)稱為數(shù)據(jù)源。
數(shù)據(jù)源包括的內(nèi)容很多,例如:各類傳感器、大中小型設備、硬件電路、軟件組件等。各類數(shù)據(jù)源的通訊協(xié)議不同、通訊鏈路不同、通訊機制不同,在沒有統(tǒng)一標準的情況下,這部分的工作比重要。因為有了數(shù)據(jù)之后,你的業(yè)務系統(tǒng)才有應用的價值。
數(shù)據(jù)源我是寫了一個模塊的小程序,包括串口通訊和網(wǎng)口通訊。至于通訊協(xié)議,請參見《C#通訊(串口和網(wǎng)絡)框架的設計與實現(xiàn)(SuperIO)- 12.二次開發(fā)及應用》。
數(shù)據(jù)采集部分使用的是SuperIO框架,因為它支持串口和網(wǎng)口統(tǒng)一的插件式設備驅(qū)動開發(fā),也就是說開發(fā)一個驅(qū)動可以支持串口和網(wǎng)口通訊。另外,可擴展性比較強,可以大大減小工作量。
開發(fā)了一個驅(qū)動程序,在SuperIO平臺下增加兩個驅(qū)動實例,負責與數(shù)據(jù)源程序進行串口和網(wǎng)絡通訊。
數(shù)據(jù)上傳服務是在SuperIO平臺下開發(fā)的,可以繼承IAppService接口開發(fā)插件服務,并且掛載到SuperIO平臺下運行,設備驅(qū)動采集完數(shù)據(jù)后,可以通過接口傳遞到服務插件內(nèi),通過內(nèi)存交互數(shù)據(jù)。如果涉及到數(shù)據(jù)完全性的數(shù)據(jù)交互,可以通過介質(zhì)進行數(shù)據(jù)交互,例如:數(shù)據(jù)庫、文本文件等。
數(shù)據(jù)上傳服務直接與消息中間件(ActiveMQ)進行交互,再由AcitveMQ進行消息轉發(fā)。數(shù)據(jù)上傳服務實際上是消息生產(chǎn)者的角色。
消息中間件采用ActiveMQ,需要部署java運行環(huán)境。可用的消息中間件比較多,例如:RabbitMQ、ZeroMQ等。
根據(jù)應用場景不同,可以選擇的技術方案和技術路線也不一樣。消息中間件這塊也完全可以使用通訊組件來代替,例如:Netty和SuperSocket。
數(shù)據(jù)接收服務是在SuperIO平臺下開發(fā)的,可以繼承IAppService接口開發(fā)插件服務,并且掛載到SuperIO平臺下運行。
數(shù)據(jù)接收服務直接與ActiveMQ進行交互,接收ActiveMQ轉發(fā)過來的消息,實際上是消息消費者的角色。
數(shù)據(jù)存儲采用的是MongoDB,不太喜歡大而臃腫的東西,而且不需要ORM了,部署簡單,可以使用MongoVUE工具對數(shù)據(jù)庫進行管理。如果是大拿,可以直接cmd。
數(shù)據(jù)接口采用Web Api,符合RESTful風格的http協(xié)議,操作調(diào)用簡單、方便。拋棄了WebService的Soap協(xié)議,更沒有選擇WCF框架。
這塊并沒有實現(xiàn)權限、安全管理。
業(yè)務系統(tǒng)采用MVC框架,但是前端并沒有與后臺的控制器進行交互,而是與數(shù)據(jù)接口的WebAPI進行交互。前后端完全分離。
手機移動端使用VS2015開發(fā),使用Xamarin框架進行開發(fā),這個框架支持跨平臺。Xamarin是個很不錯的東西,唯一的缺點就是需要付費,對于中國IT人員來講,這一點應該不是障礙。
項目目錄介紹如下:
ClientService:上傳數(shù)據(jù)與交互組件。
DeviceDemo:設備驅(qū)動,負責采集數(shù)據(jù)。
DeviceExport:數(shù)據(jù)輸出組件,在Demo沒有使用。
DeviceShowUI:數(shù)據(jù)顯示視圖組件,負責顯示采集過來的數(shù)據(jù)信息。
FormTest:測試各部分的主工程。
PRotocolPackage:公用協(xié)議包。
ServerService:數(shù)據(jù)接收數(shù)據(jù)與交互組件。
SuperIO_App:移動APP端,需要VS2015打開。
SuperOPCClient:OPC客戶端組件。
SuperOPCServer:OPC服務端組件。
TestDevice:模擬客戶端測試程序。
WebAPI:WebAPI和Web業(yè)務端數(shù)據(jù)顯示。
下載地址:http://pan.baidu.com/s/1pJ7lZWf
(1) 下載DEMO和工具
下載SuperIO v2.2.7/SuperIO_Demo v2.rar;下載mongodb數(shù)據(jù)庫;下載ActiveMQ消息中間件。
(2) 啟動服務和程序
啟動mongodb,mongodb-win32-x86_64-2008plus-3.0.3-1/start.bat,默認監(jiān)聽端口為:2222。
啟動ActiveMQ服務,apache-activemq-5.12.0/bin/win64/activemq.bat,需要JAVA運行環(huán)境。
啟動SuperIO_Demo.sln解決方案,需要VS2012開發(fā)IDE,也可以轉成VS2015工程,重新編譯。
啟動SuperIO_App.sln解決方案,需要VS2015開發(fā)IDE,如果使用VS自帶的模擬器,需要執(zhí)行<adb connect 模擬器的ip>,才能把程序成功部署到模擬器,并且進行調(diào)試,否則VS工具一直處于部署階段。
(3)運行效果圖
(4)調(diào)試視頻
youku視頻不是太清楚,請下載高清調(diào)試視頻,地址:http://pan.baidu.com/s/1pJ7lZWf中的【視頻演示】。
作者:唯笑志在
Email:504547114@QQ.com
QQ:504547114
.NET開發(fā)技術聯(lián)盟:54256083
文檔下載:http://pan.baidu.com/s/1pJ7lZWf
官方網(wǎng)址:http://www.bmpj.net
新聞熱點
疑難解答