為了幫助IT從業(yè)者職業(yè)之路擁有更多收獲,在諸多C粉的殷切期待下,由 CTO俱樂部打造的CTO線上講堂自登場(chǎng)以來獲得大家好評(píng)。本期邀請(qǐng)葉帆科技創(chuàng)始人兼CEO、前微軟.NET Micro Framework成員、微軟全球最有價(jià)值專家劉洪峰帶來“淺析工業(yè)級(jí)物聯(lián)網(wǎng)項(xiàng)目的快速開發(fā)”的主題分享。

歡迎加入CTO講堂微信群與業(yè)界大咖零距離溝通,11月12日本期講堂報(bào)名方式拖至文末查看。

淺析工業(yè)級(jí)物聯(lián)網(wǎng)項(xiàng)目的快速開發(fā)

分享嘉賓:葉帆科技創(chuàng)始人兼CEO、微軟全球最有價(jià)值專家 劉洪峰

嘉賓簡(jiǎn)介:劉洪峰,網(wǎng)名葉帆,葉帆科技創(chuàng)始人兼CEO,前微軟(中國).NET Micro Framework開發(fā)團(tuán)隊(duì)成員,微軟全球最有價(jià)值專家(MVP),CSDN十大MVB。以微軟.NET Micro Framework系統(tǒng)為核心,研發(fā)了物聯(lián)網(wǎng)智能網(wǎng)關(guān)、物聯(lián)網(wǎng)智能終端,YFIOs和YFHMI等物聯(lián)網(wǎng)中間件軟硬件平臺(tái)。

劉洪峰有十余年工控經(jīng)驗(yàn),是國內(nèi)最早一批接觸微軟.NET Micro Framework技術(shù)的人,從2007年.NET Micro Framework剛開始引入中國就開始研究。并于2008年加入微軟亞太集團(tuán).NET Micro Framework項(xiàng)目組,進(jìn)行了為期四年的深入學(xué)習(xí)。不僅完成了.NET Micro Framework第一個(gè)版本的文件系統(tǒng)(FAT32),也是全球第一個(gè)成功把.NET Micro Framework移植到ARM Cortex-M3架構(gòu)上的人。博客:
http://blog.csdn.net/yfiot、 微博:http://weibo.com/yfsoft

公司簡(jiǎn)介:北京葉帆易通科技有限公司(簡(jiǎn)稱:葉帆科技)是一家軟硬結(jié)合的高科技公司。專注于物聯(lián)網(wǎng)中間件、物聯(lián)網(wǎng)二次開發(fā)和軟硬件集成技術(shù)方案研究和開發(fā),以成熟的.NET Micro Framework技術(shù)為核心,用組態(tài)軟件的架構(gòu)和思想去構(gòu)建物聯(lián)網(wǎng)應(yīng)用方案。

以下是11月6日CTO講堂現(xiàn)場(chǎng)完整速記:

主持人:講堂正式開始,現(xiàn)在歡迎嘉賓葉帆科技創(chuàng)始人兼CEO劉洪峰,請(qǐng)您做個(gè)自我介紹吧。

劉洪峰:大家好,我是劉洪峰,葉帆科技創(chuàng)始人兼CEO。2001年進(jìn)入工控行業(yè),開發(fā)了一些諸如二型計(jì)量系統(tǒng)、焦?fàn)t四大機(jī)車自動(dòng)行走系統(tǒng)、LED廣告大屏顯示系統(tǒng)、WinCE嵌入式組態(tài)和地鐵隧道廣告通信系統(tǒng)等等。

08年進(jìn)入微軟研發(fā)集團(tuán).NET Micro Framework項(xiàng)目組做相關(guān)軟硬件開發(fā),做了一些比如養(yǎng)牛場(chǎng)遠(yuǎn)程監(jiān)控,遠(yuǎn)程醫(yī)療系統(tǒng)等案例。2013年創(chuàng)立葉帆科技,開始深入開發(fā)物聯(lián)網(wǎng)系統(tǒng),比如智能網(wǎng)關(guān),智能終端及YFIOs數(shù)據(jù)組態(tài)及YFHMI嵌入式組態(tài)等。

主持人:看您的經(jīng)歷有豐富的工控領(lǐng)域經(jīng)驗(yàn),在什么情況下你決定開始創(chuàng)業(yè)?最初的想法是怎樣的?創(chuàng)業(yè)中遇到的挑戰(zhàn)有哪些?

劉洪峰:在給別人打工的生涯中,你想做什么,其實(shí)是沒有主導(dǎo)權(quán)和決定權(quán)的。你擅長的技術(shù)或你看好的產(chǎn)品研發(fā)方向,往往和公司的決策背道而馳,這是讓人很痛苦的一件事。

在各種軟硬件技術(shù)能力積累到一定程度的時(shí)候,就想按自己的想法和思路做一些產(chǎn)品了。創(chuàng)業(yè)最大的挑戰(zhàn),應(yīng)該是在硬件研發(fā)方面,因?yàn)槲沂菑?995年開始的軟件開發(fā)學(xué)習(xí),而真正的硬件開發(fā)學(xué)習(xí)才是從2010年左右開始,所以在硬件設(shè)計(jì)、器件采購、生產(chǎn)和調(diào)試方面遇到了很多坎,中間也曾更替過三個(gè)硬件合作伙伴。直到今天才相對(duì)熟練的掌握了硬件的設(shè)計(jì)、開發(fā)、生產(chǎn)和調(diào)試流程。

主持人:請(qǐng)介紹一下目前葉帆科技目前的情況以及技術(shù)團(tuán)隊(duì)構(gòu)成。

劉洪峰:由于物聯(lián)網(wǎng)開發(fā)需要各方面的技術(shù),比如網(wǎng)絡(luò)Web服務(wù)開發(fā),手機(jī)平板移動(dòng)開發(fā),PC程序開發(fā)及嵌入式硬件開發(fā),還有各種通信類程序開發(fā),所以對(duì)人的技術(shù)能力要求比較高,但是作為一個(gè)創(chuàng)業(yè)型公司,很難一時(shí)找到比較合適的全職人員。所以技術(shù)團(tuán)隊(duì)主要一些核心人員和外圍各種技能的兼職開發(fā)人員構(gòu)成。

主持人:請(qǐng)您介紹下葉帆科技目前提供的產(chǎn)品及服務(wù)吧,相對(duì)同類產(chǎn)品競(jìng)爭(zhēng)優(yōu)勢(shì)有哪些?

劉洪峰:有三種類型:

  • 1. 面向教育領(lǐng)域,向一些智能硬件愛好者或教育類機(jī)構(gòu)和企業(yè)提供物聯(lián)網(wǎng)學(xué)習(xí)套件。
  • 2. 面向硬件定制領(lǐng)域,通過.NET Gadgeteer快速原型化硬件為客戶做出最初的原型,客戶認(rèn)可后,重新設(shè)計(jì)硬件,從而完成最終的產(chǎn)品。
  • 3. 面前傳統(tǒng)工控領(lǐng)域及物聯(lián)網(wǎng)領(lǐng)域,向客戶提供物聯(lián)網(wǎng)軟硬件產(chǎn)品及物聯(lián)網(wǎng)整體解決方案。

最大的優(yōu)勢(shì)有三點(diǎn):

  • 一、從軟到硬,從嵌入式到PC,到手機(jī)平板,到云端服務(wù)器,都可以是同一個(gè)開發(fā)環(huán)境,同一種開發(fā)語言,開發(fā)快捷,對(duì)開發(fā)人員的要求很低。
  • 二、.NET 平臺(tái),垃圾自動(dòng)回收,對(duì)工控7*24連續(xù)運(yùn)行要求的產(chǎn)品來說,會(huì)相對(duì)容易的開發(fā)出很可靠的產(chǎn)品。
  • 三、支持組態(tài)化開發(fā),少編程甚至免編程就可以快速完成物聯(lián)網(wǎng)項(xiàng)目的搭建。

主持人:請(qǐng)您談?wù)勎锫?lián)網(wǎng)和互聯(lián)網(wǎng)+的異同?

劉洪峰:簡(jiǎn)單的說:互聯(lián)網(wǎng)+,是通過互聯(lián)網(wǎng)把人和設(shè)備建立了直接的關(guān)聯(lián),人可以方便的遠(yuǎn)程操控各種智能設(shè)備。物聯(lián)網(wǎng),我一直認(rèn)為是工控網(wǎng)的外延,是有數(shù)據(jù)采集,具備自動(dòng)控制能力系統(tǒng)。人的角色只是監(jiān)視其中的異常情況,主要的控制邏輯是智能設(shè)備自動(dòng)完成,所以也就是所謂的自動(dòng)化控制。

相同點(diǎn):都是依托互聯(lián)網(wǎng)和移動(dòng)互聯(lián),還有需要云服務(wù)及移動(dòng)端設(shè)備。

不同點(diǎn):互聯(lián)網(wǎng)+,更多的體現(xiàn)在云服務(wù)層面,特別是和人交互方面,對(duì)智能硬件的要求并不是太高;物聯(lián)網(wǎng),需要一定的自動(dòng)化能力,并且對(duì)設(shè)備要求高,一般要求7*24連續(xù)運(yùn)行,并且大型物聯(lián)網(wǎng)系統(tǒng),會(huì)非常復(fù)雜,不僅傳感器總多,控制設(shè)備及控制邏輯也是多而繁雜。

主持人:工業(yè)級(jí)物聯(lián)網(wǎng)和其他物聯(lián)網(wǎng)都有哪些區(qū)別(比如智能家居產(chǎn)品),請(qǐng)談?wù)勀目捶ā?/p>

劉洪峰:一般情況下,對(duì)產(chǎn)品來說,有這么幾個(gè)級(jí)別:商用級(jí)(民用)、工業(yè)級(jí)、軍用級(jí)和汽車航空類級(jí)。其最大的指標(biāo)差異就是工作溫度,比如民用的是0~70度,工業(yè)的是-20-85度,軍用-40-125度。當(dāng)然可靠性,抗電磁干擾性要求也是逐步提高。

所以做產(chǎn)品的時(shí)候,工業(yè)級(jí)和非工業(yè)級(jí)在器件選購及板子設(shè)計(jì)方面都有比較大的區(qū)別,比如工業(yè)上,往往都是要做寬電壓輸入,光電隔離,抗電磁干擾等等處理。另外對(duì)程序要求也很高,可靠性要很強(qiáng),并且工控項(xiàng)目網(wǎng)關(guān)周期短,變化大,需要產(chǎn)品提供更多二次開發(fā)的支持。

主持人:典型工業(yè)級(jí)物聯(lián)網(wǎng)項(xiàng)目都包含哪些部分?

劉洪峰:三大部分:一、數(shù)據(jù)采集及設(shè)備控制(輸入和輸出);二、業(yè)務(wù)邏輯處理;三、遠(yuǎn)程動(dòng)畫監(jiān)控、視頻監(jiān)控、報(bào)表及曲線。當(dāng)然由于是工控項(xiàng)目,比如遠(yuǎn)程調(diào)試及遠(yuǎn)程升級(jí)工具等等也是非常必要的。

我舉兩個(gè)例子來詳細(xì)說明一下,一個(gè)是門禁系統(tǒng),一個(gè)是污水處理系統(tǒng)。我先簡(jiǎn)單介紹一下門禁系統(tǒng),一個(gè)相對(duì)典型的門禁系統(tǒng)的架構(gòu)示意圖如下:

淺析工業(yè)級(jí)物聯(lián)網(wǎng)項(xiàng)目的快速開發(fā)

輸入設(shè)備:RFID讀卡器+ID卡,串口攝像頭,常見的RFID讀卡器的通信協(xié)議接口一般是WG26(韋根26),電壓12V的比較多,也有5V的(如果是5V的一般可以直接對(duì)接主芯片,如果不是,需要做一些光隔或電平轉(zhuǎn)換處理)。智能網(wǎng)關(guān)封裝了WG26的功能庫(最多可以同時(shí)支持8路,并且不僅僅限定為26位數(shù)據(jù),最多可以100多位)。當(dāng)然不僅僅是ID號(hào),輸入的數(shù)字鍵和門鈴鍵也是以編碼信息提供給用戶(一般是4位編碼)。串口攝像頭通過RS232連接到網(wǎng)關(guān),網(wǎng)關(guān)封裝了一些常見攝像頭的協(xié)議庫,調(diào)用函數(shù)即可以獲取當(dāng)前的圖像。

輸出設(shè)備:繼電器模塊,語音模塊,門磁裝置。繼電器模塊控制比較簡(jiǎn)單,調(diào)用標(biāo)準(zhǔn)的.NET Micro Framework庫,寫入True就是通,寫入False就是斷開。語音模塊,支持WAV語音文件播放。門磁裝置由繼電器來進(jìn)行控制。

業(yè)務(wù)邏輯處理:

  • (1) 當(dāng)輸入正確的密碼后,語音模塊輸出“歡迎”的語音,并控制繼電器打開門磁裝置。
  • (2) 當(dāng)訪客按門鈴的時(shí)候,除了語音模塊,發(fā)出“叮咚”的聲音外,網(wǎng)關(guān)還自動(dòng)拍一個(gè)照片傳到已經(jīng)開啟并連接成功的客戶端程序。
  • (3) 當(dāng)用戶刷ID卡的時(shí)候,把ID號(hào)和數(shù)據(jù)庫中已經(jīng)存入ID號(hào)比較,如果正確,則語音模塊輸出“歡迎”語音,并且開門。如果比對(duì)失敗,則發(fā)出“ID號(hào)不存在的”語音。

遠(yuǎn)程監(jiān)控:

這個(gè)遠(yuǎn)程監(jiān)控比較簡(jiǎn)單,主要就是接收攝像頭圖片和控制門磁開閉。當(dāng)訪客按門鈴后,客戶端程序會(huì)自動(dòng)彈出,并顯示攝像頭圖片,用戶可以直接用鼠標(biāo)單擊按鈕,就可以遠(yuǎn)程開門(同時(shí)語音模塊,發(fā)出“請(qǐng)進(jìn)”的語音)。

以上的門禁系統(tǒng)比較簡(jiǎn)單,也談不上真正的工業(yè)級(jí),但是整個(gè)的環(huán)節(jié)和工業(yè)級(jí)項(xiàng)目類似。下面我們介紹一下污水處理系統(tǒng)

淺析工業(yè)級(jí)物聯(lián)網(wǎng)項(xiàng)目的快速開發(fā)淺析工業(yè)級(jí)物聯(lián)網(wǎng)項(xiàng)目的快速開發(fā)

輸入設(shè)備/輸出設(shè)備:

常見的工業(yè)級(jí)現(xiàn)場(chǎng),輸入輸出一般這么幾種,一種是干點(diǎn)輸入輸出,輸入一般是0-24V的電壓,高電壓表示1,低電壓表示0。輸出就是繼電器輸出了。當(dāng)然也有可控硅控制的輸出,優(yōu)點(diǎn)是開關(guān)次數(shù)多。另一種就是模擬量輸入輸出,輸入一般有三種,0-5V,0-10V,4-20mA,輸出0~20mA。這之外比較常見的通信接口就是RS485/422,RS232,CAN,以太網(wǎng)通信接口了。智能終端和智能網(wǎng)關(guān)設(shè)備的型號(hào)有十幾種之多,主要就是這些接口的各種組合。

針對(duì)這個(gè)污水項(xiàng)目,輸入主要就是若干路24V左右的開關(guān)信號(hào),比如高低水位信號(hào),各種電機(jī)是否開啟反饋信號(hào)等等。輸出信號(hào)就是通過控制繼電器,控制各種電機(jī)的啟停。另外還通過RS485,讀取電表或水表的讀數(shù)。

業(yè)務(wù)邏輯:

這個(gè)邏輯相對(duì)復(fù)雜,我們簡(jiǎn)單說一下,比如檢測(cè)到了高水位,我們開啟提升泵(還要根據(jù)配置及主設(shè)備是否正常,來開啟備用設(shè)備等等,其他泵類似),延時(shí)指定時(shí)間后,開啟鼓風(fēng)機(jī)等。根據(jù)定時(shí)開啟回流泵或排污泵。同時(shí)還要檢測(cè)報(bào)警信息,如鼓風(fēng)機(jī)溫度超高,則要自動(dòng)關(guān)閉鼓風(fēng)機(jī)等等。同樣當(dāng)檢測(cè)到低水位,要關(guān)閉相關(guān)的設(shè)備。

遠(yuǎn)程監(jiān)控:

淺析工業(yè)級(jí)物聯(lián)網(wǎng)項(xiàng)目的快速開發(fā)

這是現(xiàn)場(chǎng)監(jiān)控圖,動(dòng)畫基于Html5實(shí)現(xiàn),我們有一個(gè)組態(tài)軟件,可以直接導(dǎo)出html5的畫面。通過WebSocket進(jìn)行數(shù)據(jù)通信,各種動(dòng)畫IO,都是導(dǎo)出的時(shí)候 自動(dòng)綁定的。

淺析工業(yè)級(jí)物聯(lián)網(wǎng)項(xiàng)目的快速開發(fā)

這是運(yùn)行日志,記錄一些運(yùn)行情況,這個(gè)程序是物聯(lián)網(wǎng)中間件的一個(gè)策略程序,用戶可以自己把相關(guān)的內(nèi)容寫入,供最終用戶查詢。

淺析工業(yè)級(jí)物聯(lián)網(wǎng)項(xiàng)目的快速開發(fā)

這是攝像頭監(jiān)控,支持1~32個(gè)。

淺析工業(yè)級(jí)物聯(lián)網(wǎng)項(xiàng)目的快速開發(fā)

工藝報(bào)表,兩種方式,一個(gè)日?qǐng)?bào)表,一個(gè)是統(tǒng)計(jì)報(bào)表,可以切換顯示。這些字段都是可以自定義的。

淺析工業(yè)級(jí)物聯(lián)網(wǎng)項(xiàng)目的快速開發(fā)

工藝參數(shù),這個(gè)也是可以自定義的。以上是部分功能的頁面,工控中也常包括一些系統(tǒng)診斷方面的頁面。我們還有一個(gè)系統(tǒng)用戶的后臺(tái)頁面,可以對(duì)上述的頁面靈活定制。除了在PC上通過瀏覽器瀏覽外,也可以通過手機(jī)或平板來進(jìn)行操控。后續(xù)還將支持手機(jī)APP或微信接入操控。

主持人:再談到一些具體的技術(shù)方面,也就是今天的主題——工業(yè)級(jí)物聯(lián)網(wǎng)項(xiàng)目的快速開發(fā),組態(tài)畫面如何快速轉(zhuǎn)換為Html5動(dòng)畫?

劉洪峰:如果身處工控領(lǐng)域,那么對(duì)組態(tài)軟件不會(huì)陌生,為什么需要組態(tài)軟件呢?

因?yàn)楣た仨?xiàng)目工期相對(duì)較緊,及時(shí)同樣的項(xiàng)目,每個(gè)現(xiàn)場(chǎng)都會(huì)有一定的區(qū)別,如果新開發(fā)代碼,很難保證代碼的可靠性。所以用組態(tài)軟件,采用搭積木的方式,快速完成項(xiàng)目,由于每個(gè)模塊都是考驗(yàn)過的,所以整體可靠性也會(huì)很高。

我們的組態(tài)軟件的特色是除支持輕量級(jí)組態(tài)硬件(一個(gè)單片里面也可以跑組態(tài)),還支持PC組態(tài)及Html5組態(tài)。針對(duì)Html5動(dòng)畫來說,實(shí)現(xiàn)起來并不是特別難,難的是各種動(dòng)畫元素和設(shè)備變量的綁定及對(duì)應(yīng)關(guān)系,組態(tài)軟件轉(zhuǎn)換為Html5的優(yōu)勢(shì)是,不僅僅動(dòng)畫完全一一實(shí)現(xiàn),并且IO綁定關(guān)系還在,可以直接和后臺(tái)服務(wù)通信,快速顯示現(xiàn)場(chǎng)的設(shè)備狀態(tài)。

淺析工業(yè)級(jí)物聯(lián)網(wǎng)項(xiàng)目的快速開發(fā)

這是我們的組態(tài)開發(fā)環(huán)境,最早是WinCE的組態(tài)開發(fā)環(huán)境,后期我們調(diào)整為.NET Micro Framework的組態(tài)。再后來就是PC組態(tài)及現(xiàn)在的Html5組態(tài)。這個(gè)平臺(tái)可擴(kuò)展性強(qiáng),Html5組態(tài)就是通過插件導(dǎo)出的。上面的畫面是一個(gè) 垃圾處理的組態(tài)畫面。

淺析工業(yè)級(jí)物聯(lián)網(wǎng)項(xiàng)目的快速開發(fā)

導(dǎo)出到網(wǎng)頁上就是這個(gè)樣子:當(dāng)然需要傳入一些參數(shù),比如websocket服務(wù)器的ip,端口號(hào)。當(dāng)然也可以在網(wǎng)頁中直接嵌入,不過為了靈活,為了讓一個(gè)html5文件,顯示多個(gè)相同的現(xiàn)場(chǎng),采用參數(shù)的方式。

淺析工業(yè)級(jí)物聯(lián)網(wǎng)項(xiàng)目的快速開發(fā)

這個(gè)是污水處理的畫面,綁定關(guān)系要復(fù)雜一些,特別是流動(dòng)的動(dòng)畫。早期的這種畫面,不用組態(tài)方式,用代碼寫,是很繁瑣的。

淺析工業(yè)級(jí)物聯(lián)網(wǎng)項(xiàng)目的快速開發(fā)

導(dǎo)出到網(wǎng)頁上,就是這個(gè)樣子。

主持人:請(qǐng)談?wù)劵赪ebSocket協(xié)議,通過IO字典快速和后臺(tái)服務(wù)器進(jìn)行通信的技術(shù)特點(diǎn)。

劉洪峰:正是因?yàn)橛辛薟ebSocket才使得基于Html5組態(tài)有了實(shí)現(xiàn)的可能。我這樣表達(dá)可能不是太嚴(yán)謹(jǐn)。早期這種動(dòng)畫 一般都是flash,但是我們也知道 iOS系統(tǒng)已經(jīng)不支持flash了。如果用 其他基于http通信協(xié)議做 動(dòng)畫,代價(jià)也會(huì)很高。WebSocket天然的比較適合,并且一旦做好,目前可以說 全平臺(tái)支持。

通過Html5提供的繪圖指令,可以構(gòu)建組態(tài)圖元庫,每個(gè)圖元有一個(gè)或多個(gè)動(dòng)畫點(diǎn),每個(gè)動(dòng)畫點(diǎn)和一個(gè)IO字典里面的變量進(jìn)行綁定,根據(jù)這個(gè)變量的值顯示不同的顏色或圖案。組態(tài)軟件在導(dǎo)出Html5組態(tài)畫面的時(shí)候,會(huì)自動(dòng)進(jìn)行圖元和IO字典變量的綁定,WebSocket負(fù)責(zé)把這些變量和后臺(tái)WebSocket服務(wù)程序進(jìn)行對(duì)接(組態(tài)軟件導(dǎo)出組態(tài)畫面的同時(shí),會(huì)導(dǎo)出一個(gè)IO字典表,直接導(dǎo)入服務(wù)器后臺(tái)就可以實(shí)現(xiàn)對(duì)接)。

這里需要強(qiáng)調(diào)一下,做基于html5的組態(tài)和pc或嵌入式上的不同。后者程序都是編譯好的,通過配置,反序列化出來組態(tài),包括IO綁定。

但是 html5的是通過js腳本,是代碼形式存在,這就有最大的靈活度,意味著我們可以不用配置,代碼本身就是配置。另外就是js腳本在當(dāng)前硬件條件下,做復(fù)雜的動(dòng)畫和通信,效率是非常高的,超出我們的意料。

主持人:請(qǐng)介紹下智能網(wǎng)關(guān)/智能終端等通過組態(tài)化軟件支持,實(shí)現(xiàn)少編程或免編程完成數(shù)據(jù)采集,控制和通信的過程。

劉洪峰:舉一個(gè)簡(jiǎn)單的例子,比如采集溫濕度,溫濕度傳感器種類很多,通信鏈路和通信協(xié)議也多樣,比如有RS485、I2C、單總線、AD等等。這個(gè)時(shí)候如果是組態(tài)軟件支持,可以選擇部署對(duì)應(yīng)的驅(qū)動(dòng)即可,對(duì)應(yīng)的都是兩個(gè)變量T和H(溫度和濕度),用戶直接讀取這兩個(gè)變量值即可。

我們這個(gè)組態(tài)是可以自動(dòng)添加IO變量的,加入驅(qū)動(dòng)的同時(shí),IO變量也就有了。(當(dāng)然對(duì)比如modbus這種非明確IO的,不能實(shí)現(xiàn)自動(dòng)添加)。如果希望把溫度和濕度傳遞到云端去,這個(gè)時(shí)候直接配置一個(gè)系統(tǒng)策略(云和端通信),配置好需要上傳的IO字典即可(對(duì)應(yīng)服務(wù)器上的中間件,也需要配置一下,設(shè)定好對(duì)應(yīng)的上傳IO字典,一般都是導(dǎo)入IO的xml文件即可)。

如果需要控制,那么可以加一個(gè)一路或多路繼電器的驅(qū)動(dòng),每一路繼電器也對(duì)應(yīng)一個(gè)IO字典變量,向其中寫入1,就是開啟繼電器,寫入0,就是斷開繼電器。這個(gè)時(shí)候可以用一個(gè)標(biāo)準(zhǔn)系統(tǒng)策略,通過配置建立關(guān)系,比如T大于多少,就想繼電器的變量寫入1,低于多少,就寫入0。

當(dāng)然你也可以自己寫一個(gè)簡(jiǎn)單的策略(C#或VB.NET),直接讀取對(duì)應(yīng)的變量,經(jīng)過邏輯判斷后,向輸出變量寫入對(duì)應(yīng)的數(shù)據(jù),可以實(shí)現(xiàn)相對(duì)復(fù)雜的控制。

主持人:請(qǐng)展開介紹一下Windows Azure + Windows 10 IoT + .NET Micro Framwork, 一體化的開發(fā)體驗(yàn),全程軟硬件.NET支持。

劉洪峰:Windows Azure是微軟早就發(fā)力的一個(gè)云平臺(tái),不同于一般的云服務(wù)公司,微軟不僅僅提供所謂的云主機(jī),更多的是體現(xiàn)在云計(jì)算層面,并且和Visual Studio開發(fā)工具緊密結(jié)合,可以直接在線開發(fā)、上傳、調(diào)試。開發(fā)效率和開發(fā)能力被大大拓展。

Windows 10橫空出世最吸引人的地方就是UWP(通用平臺(tái)程序)的提出,這就意味著,只要是Windows 10的系統(tǒng),UWP程序都可以運(yùn)行,無論是X86還是ARM架構(gòu),無論是PC,還是XBOX,手機(jī)或平板。

Windows 10 IoT是一款完全免費(fèi)的系統(tǒng),專門針對(duì)物聯(lián)網(wǎng)研發(fā)的系統(tǒng),除了UWP等特性的支持外,還對(duì)GPIO,SPI,I2C等等芯片層面的直接開發(fā),提供了支持。并且在樹莓派這種ARM低端開發(fā)板上也可以運(yùn)行。大大擴(kuò)展了Windows 10的應(yīng)用范圍。這次我去參加微軟的技術(shù)大會(huì),Windows 10 IoT 又出來兩個(gè)版本, 當(dāng)前是Windows 10 IoT core, 新出的是 移動(dòng)版和企業(yè)版。

.NET Micro Framwork是微軟2001年就開始研發(fā)的輕量級(jí)系統(tǒng),可以在單片上運(yùn)行,目前可以看,是Windows 10 IoT的一個(gè)補(bǔ)充。最近剛剛推出了最新V4.4版本,支持UWP接口,AllJoyn通信協(xié)議。另外.NET Micro Framework家族也衍生了一個(gè)產(chǎn)品LLILUM,支持把標(biāo)準(zhǔn)UWP程序直接編譯為本地二進(jìn)制代碼,直接部署到芯片中運(yùn)行(更小,更快)。

我是從2006年開始了解.net mf,2007年這個(gè)技術(shù)進(jìn)入中國,2008年去微軟去學(xué)習(xí)這個(gè),2003那個(gè)時(shí)候的智能手表就是基于這個(gè)系統(tǒng)。LLILUM產(chǎn)品 其實(shí)目前德國的一個(gè)企業(yè)在做,就是把C#直接編譯成二進(jìn)制代碼,一年授權(quán)使用費(fèi)十幾萬,而微軟是完全免費(fèi)開源的。這個(gè)的執(zhí)行效率就很高了,對(duì)資源的要求也非常小了。

一言以蔽之,由于這些平臺(tái)全部都支持.NET平臺(tái)開發(fā),一樣的開發(fā)環(huán)境,一樣的開發(fā)語言,一致的開發(fā)調(diào)試體驗(yàn),會(huì)讓一個(gè)人的能力發(fā)揮最大,可以讓更少的人在更短的時(shí)間內(nèi)快速開發(fā)出可靠又實(shí)用的物聯(lián)網(wǎng)項(xiàng)目。

微軟的技術(shù)做深入的產(chǎn)品研發(fā)也許不是好選擇,但是做項(xiàng)目,做集成確是最好的選擇。特別是需要用戶做二次開發(fā)的。

主持人:看到您已經(jīng)在CSDN寫了10多年的技術(shù)博客,能做到這一份長期的積累實(shí)屬不易,請(qǐng)結(jié)合您自己這一路技術(shù)之路上的提升談?wù)劶夹g(shù)人該如何做到高效學(xué)習(xí)和提升技能?

劉洪峰:從1995年開始學(xué)習(xí)編程,從最初的TB(Ture Basic)到TC(Ture C),再到BC(Borland C/C++),在DOS平臺(tái)上花了近乎4年的時(shí)間去學(xué)習(xí)編程,把一些書籍上的數(shù)學(xué)算法一一實(shí)現(xiàn),各種功能的重復(fù)練習(xí),在興趣的支撐下去感受編程,鑄造一種編程思維。如果沒有這些作為基礎(chǔ),那么2008年進(jìn)入嵌入式領(lǐng)域,做嵌入式開發(fā)和硬件設(shè)計(jì),是很難順利切入的。

技術(shù)本身,說到底都是相通的。只要學(xué)習(xí)的早期很扎實(shí)和深入的學(xué)習(xí)一門語言及相關(guān)技術(shù),那么幾年學(xué)成后,再學(xué)習(xí)其他的就簡(jiǎn)單了。需要值得一提的是,C/C++是一切開發(fā)語言基礎(chǔ),學(xué)好這個(gè),其他的就不在話下了。

我到現(xiàn)在唯一比較感慨的就是,在DOS那個(gè)資訊相對(duì)貧瘠的時(shí)代,三年的時(shí)間專心在640*480分辨率的DOS系統(tǒng)上學(xué)習(xí)C和C++。所謂十年磨一劍,“十萬小時(shí)”定律,莫不是這個(gè)道理。選對(duì)一件事,一個(gè)方向,堅(jiān)定的走下去,肯定會(huì)有所成就的。

主持人:請(qǐng)結(jié)合您的切身體會(huì)談?wù)勔幻细竦腃TO或技術(shù)團(tuán)隊(duì)管理者應(yīng)該是怎樣的?

劉洪峰:技術(shù)領(lǐng)導(dǎo)者,需要選擇技術(shù)路線和方向,另外就是設(shè)計(jì)相關(guān)的架構(gòu)平臺(tái),有了這個(gè)為基礎(chǔ),可以針對(duì)性的進(jìn)行選人用人。

另外我比較習(xí)慣談心的方式,基本一兩個(gè)月就會(huì)和相關(guān)的人談一下,當(dāng)然這是團(tuán)隊(duì)規(guī)模不是太大的情況下,比較好的方式。目前其實(shí)很多公司,要的是業(yè)績和進(jìn)度,往往這方面對(duì)員工關(guān)心不夠,現(xiàn)在人的壓力比以前大多了。多一些人情關(guān)懷,另外在技術(shù)上 一定是技術(shù)領(lǐng)導(dǎo)者,領(lǐng)先者,至少思想上是,要起到指導(dǎo)作用,這樣才能在技術(shù)層面上,降低團(tuán)隊(duì)人員的壓力。

主持人:在提升葉帆技術(shù)團(tuán)隊(duì)方面,有哪些思考?

劉洪峰:團(tuán)隊(duì)需要看到希望,這個(gè)希望不僅僅是技術(shù)層面的,也有經(jīng)濟(jì)層面的。要做最有價(jià)值的項(xiàng)目,讓每個(gè)團(tuán)隊(duì)參與人員,都能感受到自身的價(jià)值所在。

我以前太過于偏重技術(shù),很多事都是自己去了解,很深依賴團(tuán)隊(duì),這是一個(gè)比較大的缺點(diǎn)。所以最近幾年,也是走了出去,多進(jìn)行交流和合作,其實(shí)是給自己的團(tuán)隊(duì),擴(kuò)展了一個(gè)更大的空間和舞臺(tái),讓他們可以更好的發(fā)揮自己的能力,同時(shí)可以有更好的未來。

主持人:可否跟大家談?wù)勅~帆的技術(shù)團(tuán)隊(duì)氛圍是怎樣的?公司招人過程中,比較看重新人的哪些特質(zhì)?

劉洪峰:只要團(tuán)隊(duì)目標(biāo)一致,氣氛就會(huì)比較融洽。比較看重的就是興趣,興趣是最好的老師,如果不喜歡自己所從事的工作,無論能力多強(qiáng),都是不可取的。時(shí)間有限,先簡(jiǎn)單說這些。

主持人:對(duì)想在技術(shù)路線上走得更遠(yuǎn)的人,您都有什么建議和忠告?推薦一些您覺得非常不錯(cuò)的書籍吧。

劉洪峰:還是那句話,興趣是最好的老師,選擇任何一個(gè)切入點(diǎn)都可以,深入研究幾年,然后再談其他?,F(xiàn)在是網(wǎng)絡(luò)的時(shí)代,技術(shù)變化很快,書籍往往會(huì)比較延遲,所以建議還是多上網(wǎng),多思考,培養(yǎng)自己的自學(xué)能力。

我個(gè)人的經(jīng)驗(yàn),如果想切入一個(gè)新的領(lǐng)域,或者是學(xué)習(xí)一門新的語言,那么最好選擇一個(gè)最入門的書籍,越簡(jiǎn)單越好,比著做一遍,有了感覺后。在利用網(wǎng)絡(luò)資源,有所側(cè)重的去深入學(xué)習(xí)。

互動(dòng)環(huán)節(jié):LLILUM編譯的二進(jìn)制代碼,在芯片上運(yùn)行可以采集到單總線協(xié)議的溫濕度值嗎?單總線協(xié)議需要識(shí)別微妙級(jí)別的脈沖。在IOT下實(shí)現(xiàn)的,非常不穩(wěn)定。
劉洪峰:LLILUM 并不都是C#代碼,底層還是C,其實(shí)目前是 mbed,所以 這種肯定用C實(shí)現(xiàn),然后C#接口調(diào)用,目前.net mf也支持單總線,也是底層C++驅(qū)動(dòng)。mf的好處是,讓一般初學(xué)者,也可以直接使用,復(fù)雜的留給高手 做驅(qū)動(dòng),做底層。
問:智能網(wǎng)管\智能終端 可以運(yùn)行自己寫的應(yīng)用嗎?
劉洪峰:當(dāng)然,這是我們最主推的功能。代替部分PLC或PC應(yīng)用場(chǎng)景,C#+VB.net開發(fā),VS在線直接調(diào)試。
問:如果有些傳感器的驅(qū)動(dòng)沒有,怎么辦?
劉洪峰:.net mf官方不支持一般用戶開發(fā)C++驅(qū)動(dòng),要寫必須移植的時(shí)候加入,我們擴(kuò)展了一個(gè)功能,類似wince的流式驅(qū)動(dòng),支持用mdk等工具 寫C++驅(qū)動(dòng)。然后C#直接調(diào)用。
互動(dòng)環(huán)節(jié):關(guān)于控制網(wǎng)絡(luò)安全問題,以及業(yè)界常用的防范方法。
劉洪峰:SPI,I2C,AD,DA,CAN,RS232,RS485這些都是常見的支持。由于我們是中間件平臺(tái),策略用戶可以自己寫,用戶可以選擇,這是一。我們也有自己的協(xié)議,比如是二進(jìn)制協(xié)議,采用常見的非對(duì)稱加密。其實(shí)我們更希望用戶自主來選擇,這樣技術(shù)多樣化,防范其實(shí)會(huì)更好,我們只是提供基礎(chǔ)平臺(tái)而已。
互動(dòng)環(huán)節(jié):如您所講,html5組態(tài)后臺(tái)是有一個(gè)基于WebScoket協(xié)議的WebScoket服務(wù)程序在支撐對(duì)吧,這個(gè)服務(wù)程序是云端在線提供還是本地化部署?它與嵌入組態(tài)的應(yīng)用系統(tǒng)的Web服務(wù)器是怎么一個(gè)部署關(guān)系?代理?
劉洪峰:web服務(wù)器都不需要,因?yàn)槭强蛻舳说某绦?。是的,我們這個(gè)有一個(gè)云端中間件,提供了websocket的服務(wù)。
問:websocket核心服務(wù)跟組態(tài)頁面建立的是無刷新推送機(jī)制還是請(qǐng)求響應(yīng)機(jī)制?
劉洪峰:淺析工業(yè)級(jí)物聯(lián)網(wǎng)項(xiàng)目的快速開發(fā)
這個(gè)放在本地也可以,也是一個(gè)二次開發(fā)平臺(tái)。目前我們是放在 阿里云,是的,這也是一個(gè)二次開發(fā)平臺(tái),用戶只需要關(guān)注具體業(yè)務(wù)邏輯即可,換句話說,可以最快的速度,開發(fā)出比較專業(yè)的物聯(lián)網(wǎng)系統(tǒng)。而不是簡(jiǎn)單的和幾個(gè)智能硬件進(jìn)行對(duì)接
淺析工業(yè)級(jí)物聯(lián)網(wǎng)項(xiàng)目的快速開發(fā)我們有模板 ,模板其實(shí)高一些層次的抽象。中間件平臺(tái)是更低一層。
問:那你這個(gè)中間件往下對(duì)數(shù)據(jù)網(wǎng)關(guān)接入有何要求?有標(biāo)準(zhǔn)協(xié)議輸出嗎?
劉洪峰:我們自己有自己的標(biāo)準(zhǔn)協(xié)議,通過導(dǎo)入,就可以直接對(duì)接。
淺析工業(yè)級(jí)物聯(lián)網(wǎng)項(xiàng)目的快速開發(fā)比如這里定義好 上傳IO,發(fā)布IO,上傳的 就是現(xiàn)場(chǎng)設(shè)備。
問:往上的話有沒有什么標(biāo)準(zhǔn)化的接口給上層業(yè)務(wù)系統(tǒng)用?說穿了就是只需要你采集數(shù)據(jù),其他都我們自己干
劉洪峰:發(fā)布的 就是websocket對(duì)接的。
淺析工業(yè)級(jí)物聯(lián)網(wǎng)項(xiàng)目的快速開發(fā)直接可以導(dǎo)入 設(shè)備組態(tài)的時(shí)候 上傳IO。
問:那目前有其他研發(fā)團(tuán)隊(duì)用你們的中間件嗎?而不是你自己的團(tuán)隊(duì),說穿了各方面標(biāo)準(zhǔn)化的輸出就好了,別人才能用,文檔API之類
劉洪峰:當(dāng)然,我們不做具體的項(xiàng)目,都是合作伙伴 配合完成最終的項(xiàng)目的。文檔目前還沒有太更新,后續(xù)會(huì)有比較新的。
互動(dòng)環(huán)節(jié):我現(xiàn)在是做PHP開發(fā)的,以前專業(yè)是電氣自動(dòng)化。我想要轉(zhuǎn)型到物聯(lián)網(wǎng)行業(yè),那么我需要從哪里做起呢?
劉洪峰:應(yīng)該先側(cè)重服務(wù)端,然后再考慮和硬件對(duì)接。
互動(dòng)環(huán)節(jié):哪兒可以看到價(jià)格信息?
劉洪峰:netmf.taobao.com 有我們一些產(chǎn)品。
問:產(chǎn)品很強(qiáng)大的樣子。支持vs2015community開發(fā)嗎?
劉洪峰:硬件支持 VS2010 VS2012 VS2013 VS2015開發(fā)。
互動(dòng)環(huán)節(jié):這些產(chǎn)品都有光隔離嗎?可以可靠用在工業(yè)現(xiàn)場(chǎng)嗎?
劉洪峰:當(dāng)然,我們這就是工業(yè)級(jí)的產(chǎn)品,最早的一代已經(jīng)在現(xiàn)場(chǎng)運(yùn)行3年了,新的也已經(jīng)一年半以上了。寬電壓,光電隔離,是一般的工控要求。

想與業(yè)界大咖零距離溝通,歡迎加入CTO講堂微信群,參與CTO講堂!

【CTO講堂第23期預(yù)告】

分享主題:微服務(wù)架構(gòu)在云端的應(yīng)用淺析工業(yè)級(jí)物聯(lián)網(wǎng)項(xiàng)目的快速開發(fā)

嘉賓簡(jiǎn)介:劉凡,好雨云創(chuàng)始人兼CEO。曾任澳客網(wǎng) CTO和CEO職位。擁有超過12年互聯(lián)網(wǎng)產(chǎn)品開發(fā)和管理經(jīng)驗(yàn),專注于互聯(lián)網(wǎng)技術(shù)架構(gòu)設(shè)計(jì),對(duì)產(chǎn)品設(shè)計(jì)、敏捷開發(fā)、安全、OKRs、大數(shù)據(jù)等領(lǐng)域有深入研究?,F(xiàn)推崇反應(yīng)式編程(
http:///),并在多個(gè)產(chǎn)品中成功應(yīng)用。

公司簡(jiǎn)介:好雨云成立于2015年4月, 6月份推出平臺(tái)公測(cè)版,截止目前平臺(tái)用戶已經(jīng)超過5千。公司的理想是讓所有的企業(yè),使用云像用水用電一樣簡(jiǎn)單。

好雨云解決應(yīng)用生命周期中的一系列問題,好雨提供一體化開發(fā)部署環(huán)境,支持主流開發(fā)語言,不需要特殊學(xué)習(xí),并融合了DevOps的敏捷最佳實(shí)踐,讓應(yīng)用一鍵部署。到了應(yīng)用運(yùn)行階段,隔離的私有網(wǎng)絡(luò),多份數(shù)據(jù)備份,99.95%的可靠性,保障應(yīng)用安全可靠的運(yùn)行。 當(dāng)用戶大量增加,只需要簡(jiǎn)單配置就能為應(yīng)用擴(kuò)容。當(dāng)業(yè)務(wù)越來越復(fù)雜,好雨的微服務(wù)架構(gòu),不影響現(xiàn)有業(yè)務(wù)的情況下,快速擴(kuò)展應(yīng)用。同時(shí),好雨云能最大限度使用服務(wù)器資源,減少浪費(fèi),幫用戶省錢。

加入方式:掃描二維碼加“C粉兒小助手”好友,申請(qǐng)入群。

還不是CTO俱樂部成員的各公司技術(shù)負(fù)責(zé)人,歡迎立即加入俱樂部:cto.csdn.net。