青島興儀電子設(shè)備有限責(zé)任公司
□ 鄭培寧
隨著養(yǎng)殖設(shè)備規(guī)?;l(fā)展,完全依靠管理者頻繁奔波于棟舍之間設(shè)置參數(shù)和查看信息,嚴(yán)重限制了工作服務(wù)效率,通過人工進(jìn)行大數(shù)據(jù)分析對比也不現(xiàn)實(shí)。如何對生產(chǎn)數(shù)據(jù)進(jìn)行二次分析利用,達(dá)到各設(shè)備間參數(shù)最佳狀態(tài),實(shí)現(xiàn)理想的飼養(yǎng)效果,成為養(yǎng)殖行業(yè)的迫切需求。
現(xiàn)有環(huán)境控制系統(tǒng)除了環(huán)境控制器,還需要實(shí)時感知的環(huán)境數(shù)據(jù)、驅(qū)動終端執(zhí)行機(jī)構(gòu)、遠(yuǎn)程控制等各個子功能模塊配合在一起使用。整個環(huán)境控制系統(tǒng)組成框圖如圖1所示。
圖1 禽舍環(huán)境控制系統(tǒng)構(gòu)成框圖
養(yǎng)殖云既是產(chǎn)品,更是服務(wù)。主要涵蓋傳感技術(shù)、數(shù)據(jù)采集技術(shù)、網(wǎng)絡(luò)通信技術(shù)、數(shù)據(jù)庫技術(shù)、自動控制理論、軟件工程技術(shù)等多學(xué)科相互交叉。
對于市場現(xiàn)有環(huán)境控制器而言,絕大多數(shù)是沒有物聯(lián)網(wǎng)技術(shù)背景下的產(chǎn)物,其在物聯(lián)網(wǎng)世界中沒有“身份”(識別號),這些設(shè)備想進(jìn)入物聯(lián)網(wǎng)和養(yǎng)殖云世界,需要新增一些接入設(shè)備。在物聯(lián)網(wǎng)和云之后的環(huán)境控制器,若加入了該技術(shù)支持,則其本身即可接入物聯(lián)網(wǎng)和云。下面對這兩種類型的環(huán)境控制器的接入方式分別論述技術(shù)解決方案。
大型養(yǎng)殖場中有數(shù)量較多的環(huán)境控制器,這些控制器要么運(yùn)行于單機(jī)模式,要么通過串口通信與生產(chǎn)管理的PC機(jī)聯(lián)網(wǎng),組成養(yǎng)殖場一級的專用監(jiān)控網(wǎng)絡(luò)?;趩螜C(jī)運(yùn)行或場級聯(lián)網(wǎng)需要的環(huán)境控制器,其身份識別碼只是一個簡單的數(shù)字編號,一般情況下這個數(shù)字編號是8bit無符號整數(shù),除去設(shè)備開發(fā)商保留的擴(kuò)展用地址號,其有效范圍一般在1—250,在這種情況下,當(dāng)環(huán)境控制器的數(shù)量超出250臺時,通常采用多臺PC機(jī)分片區(qū)管理。然而實(shí)際上由于串口通信的速率受可靠通信距離限制,當(dāng)養(yǎng)殖場的規(guī)模較大,養(yǎng)殖舍數(shù)量多時,存在部分養(yǎng)殖舍離辦公監(jiān)控室太遠(yuǎn),此時串口通信的速率就要降低,通常情況下,2400波特率可以保證在1200 m距離內(nèi)通信是穩(wěn)定可靠的。因此當(dāng)環(huán)境控制器數(shù)量眾多時,通信的實(shí)時性就會明顯下降。一般的規(guī)?;B(yǎng)殖場都以20棟以下的數(shù)量為一個管理單元,這樣批量操作的時延可降到用合理的程度。由于全場的養(yǎng)殖舍控制器都已經(jīng)連接到監(jiān)控PC上,因此只要把該集中監(jiān)控的PC機(jī)連接到云上就做到環(huán)境控制器的云接入。
這是一個體系化解決方案。從技術(shù)解決方案角度來說,涉及到ID的編碼、生產(chǎn)過程中的編碼管理、接入網(wǎng)絡(luò)后ID的識別與鑒權(quán)等一系列問題與解決。
1.ID的編碼
ID碼=產(chǎn)品碼+順序號,產(chǎn)品碼部分主要用于保證用盡量少的數(shù)據(jù)包含盡量多有關(guān)本機(jī)的信息;順序號主要作用是確定唯一性;二者結(jié)合后保證編碼數(shù)量能達(dá)到一定量級,既能滿足當(dāng)下產(chǎn)品要求,又給未來使用留有一定余量。
2.ID的識別與鑒權(quán)
ID識別與鑒權(quán)是有兩個層面的含義。第一層含義是指環(huán)控器本身可以對自身進(jìn)行識別自己是否是“正品原裝”產(chǎn)品,如果不是,則可以選擇強(qiáng)制停機(jī)、拒絕服務(wù)等活動;第二層含義是指云對接入自己的環(huán)控器進(jìn)行識別是否登記造冊的“原裝”產(chǎn)品,若是則為其建立運(yùn)行期數(shù)據(jù)檔案,否則拒絕其接入請求。
(1)正品自鑒別技術(shù)。環(huán)控器在生產(chǎn)時,分為兩個階段,第一階段首先為其燒寫B(tài)ootLoader引導(dǎo)加載程序。每生產(chǎn)一臺環(huán)控器,燒寫引導(dǎo)程序過程中,都自動在引導(dǎo)區(qū)中的特定位置寫入了符合前述規(guī)范的ID碼,ID碼可唯一標(biāo)識該環(huán)境控制器,同時該ID碼被量產(chǎn)工具自動記錄,并可通過導(dǎo)入記錄的方式將生產(chǎn)過的ID碼錄入云服務(wù)平臺的ID數(shù)據(jù)庫;第二階段,將已經(jīng)燒寫好BootLoader程序的主板上電,BootLoader程序得以執(zhí)行,讀取應(yīng)用程序區(qū)和引導(dǎo)區(qū)的特定位置,將讀到的數(shù)據(jù)進(jìn)行比對,如果相同,則說明是原裝正品,則Loader應(yīng)用程序并執(zhí)行,如果不相同則說明應(yīng)用程序是非法的,反復(fù)Boot等待更新應(yīng)用程序,直到更新完畢并驗(yàn)證為原裝正品后Loader用戶程序并執(zhí)行。
(2)正品云鑒別技術(shù)。在云上,專用服務(wù)軟件持續(xù)運(yùn)行,在接收到環(huán)境控制器發(fā)來的數(shù)據(jù)報文后,從報文中解析出環(huán)境控制器的ID碼,在ID數(shù)據(jù)庫中檢索該ID是否存在,若是則說明是正品發(fā)來的數(shù)據(jù),為其建立運(yùn)行時數(shù)據(jù)檔案,并持續(xù)記錄該環(huán)境控制器后續(xù)發(fā)來的運(yùn)行時數(shù)據(jù);否則可能是非正品環(huán)控制器發(fā)來的數(shù)據(jù),直接丟棄,拒絕為其建立數(shù)據(jù)檔案。
環(huán)境控制器的應(yīng)用軟件中留出用戶名稱填寫位置,終端用戶需要接入養(yǎng)殖云服務(wù)時,在其中填寫用戶名稱,服務(wù)器收到后,即更新該ID號的環(huán)境控制器所屬用戶,用戶即可為該環(huán)境控制器對應(yīng)的養(yǎng)殖舍填寫生產(chǎn)性能日志。至此已經(jīng)將該ID號下的生產(chǎn)性能日志與運(yùn)行數(shù)據(jù)建立關(guān)聯(lián)。通過這兩個方面的內(nèi)容,云即可根據(jù)運(yùn)行狀態(tài)數(shù)據(jù)與生產(chǎn)性能數(shù)據(jù)做出合理的關(guān)系判定,通過保證在雞舍中復(fù)制相同的環(huán)境以達(dá)到類同的生產(chǎn)性能。
在此基礎(chǔ)之上,還可以衍生出更為超前的環(huán)境控制器虛擬化的做法。在傳統(tǒng)數(shù)據(jù)采集探頭上加裝CPU與數(shù)據(jù)卡,在CPU的存儲器上采取前述ID編碼管理方案,將其改造成具備物聯(lián)網(wǎng)接入能力的智能探頭;繼電器板加裝CPU,在CPU的存儲器上采取前述ID編碼管理,將其改造成具備物聯(lián)網(wǎng)接入能力的智能執(zhí)行器;在云上建立智能探頭和智能執(zhí)行器的ID編碼檔案與在養(yǎng)殖舍中的分配對應(yīng)關(guān)系數(shù)據(jù)庫;智能探頭只完成數(shù)據(jù)的采集與上傳工作,執(zhí)行器只完成云規(guī)定動作的執(zhí)行。至于探頭采集的數(shù)據(jù)的分析與如何輸入執(zhí)行動作的決策工作則完全在云上完成,也正是基于此,才能將環(huán)境控制器虛擬化,多個智能探頭與智能執(zhí)行器共享云上的計算和決策資源,提高了云資源的利用率,降低了用戶采購和維護(hù)實(shí)體環(huán)境控制器的成本。在這種模式下,IoT網(wǎng)絡(luò)鏈接的可靠性與數(shù)據(jù)雙向通道的穩(wěn)定性也是系統(tǒng)運(yùn)行和安全生產(chǎn)成了方案成敗的關(guān)鍵所在。
1.環(huán)境控制器的軟件生產(chǎn)
把目標(biāo)代碼文件下載到嵌入式設(shè)備中通常有兩種編程方式,一種是在系統(tǒng)編程ISP(In System Programming),一種是在應(yīng)用編程IAP(In Application Programming)。ISP和IAP都可以使用串行通信口(通常稱作COM口)完成目標(biāo)代碼的下載,二者的本質(zhì)都是將目標(biāo)代碼下載并存儲到程序存儲器中以供復(fù)位后執(zhí)行,但是二者有著些許的不同。
一般來說,具有IAP能力的嵌入式設(shè)備,其程序存儲器內(nèi)都含有引導(dǎo)和加載用戶程序的bootloader軟件。嵌入式設(shè)備需要至少要執(zhí)行一次ISP過程才能將bootloader軟件下載到程序存儲器中,然后才具有IAP的能力。有些單片機(jī)(如STC51系列)出廠時就有bootloader,而有些單片機(jī)(如AVR Mega系列)具有boot和loader的功能,但要使用者自行開發(fā)bootloader軟件并通過ISP下載到芯片中才能使用這一功能。IAP是實(shí)現(xiàn)環(huán)境控制器OTA升級軟件的基礎(chǔ)。
圖2展示了使用bootloader技術(shù)前提下,如何首次制造產(chǎn)品,加載初始固件,銷售以及稍后使用新版本的固件更新產(chǎn)品的示例。
圖2 bootloader應(yīng)用示意圖
2.通過OTA升級軟件
環(huán)境控制器在正常工作時,運(yùn)行的是用戶程序區(qū)的Application,是無法運(yùn)行boot區(qū)的bootloader軟件的,此時云下發(fā)到環(huán)境控制器串口上的新Application,是無法被環(huán)境控制器所接受的。因此在Application中要留出接口,以便云下發(fā)新的Application時,環(huán)境控制器能知道云的意圖,轉(zhuǎn)而執(zhí)行bootloader程序,一旦bootloader程序得以執(zhí)行,其過程便和從本地計算機(jī)的COM口進(jìn)行IAP過程完全一樣,可以方便接收和更新Application。Application和云的通信活動觸發(fā)環(huán)境控制器執(zhí)行bootloader程序,完成Application的更新過程,由于沒有本地計算機(jī)參與的過程(即便有作為網(wǎng)關(guān)角色的本地計算機(jī),它本質(zhì)是作為數(shù)據(jù)的通道而存在的,完全可以忽視其計算機(jī)的屬性),因此可以看作是以O(shè)TA方式升級軟件。
養(yǎng)殖云服務(wù)以用戶需求為導(dǎo)向,是集信息提供和交互的大數(shù)據(jù)平臺,其建設(shè)過程從集中監(jiān)控開始,向大數(shù)據(jù)收集、分析、建模形成專家?guī)欤聪蛑笇?dǎo)用戶設(shè)置養(yǎng)殖工藝參數(shù)。養(yǎng)殖云服務(wù)通過對環(huán)境控制器運(yùn)行過程監(jiān)控,遠(yuǎn)程設(shè)置運(yùn)行參數(shù),可以實(shí)現(xiàn)養(yǎng)殖生產(chǎn)全程監(jiān)控,其更重要的應(yīng)用意義在于,將生產(chǎn)過程中數(shù)據(jù)與生產(chǎn)過程前后端連通,完成與食品安全追溯、客戶關(guān)系管理系統(tǒng)有機(jī)結(jié)合,實(shí)現(xiàn)全產(chǎn)業(yè)過程數(shù)字化服務(wù)平臺。
在這個應(yīng)用場景中,禽舍中僅存在傳感設(shè)備與執(zhí)行設(shè)備,環(huán)境參數(shù)的調(diào)節(jié)決策將在云上完成,云就是環(huán)境控制的核心,所有傳感設(shè)備、執(zhí)行設(shè)備與養(yǎng)殖云將組成一個巨大的 “環(huán)境控制系統(tǒng)”,養(yǎng)殖環(huán)境控制就此步入云時代。