郭 威,蔡 強,* ,張延軍,徐勤利,王金輝
(1.杭州電子科技大學電子信息學院,杭州310018;2.浙江清華長三角研究院,浙江 嘉興314006)
隨著化石燃料的日趨枯竭,生物能源被認為是未來重要能源之一。微藻合成的油脂是一種極有前景的生物柴油大宗原料,微藻生物柴油產(chǎn)業(yè)化技術(shù)開發(fā)已成為近年來國內(nèi)外生物能源領(lǐng)域和CO2減排領(lǐng)域的研究熱點[1],其中,高效培養(yǎng)能源微藻是生物柴油產(chǎn)業(yè)的關(guān)鍵技術(shù)之一。能源微藻高效培養(yǎng)裝置主要由生物反應(yīng)器和監(jiān)控系統(tǒng)兩部分組成。對于能源微藻培養(yǎng)過程來說,需要監(jiān)測的參數(shù)主要有溫度、酸堿度(pH)、溶解氧(DO)和光照強度,通過監(jiān)測能源微藻生長過程當中參數(shù)的變化,保存實驗過程數(shù)據(jù)進行分析,不斷改進實驗條件,為中試放大研究提供依據(jù)。
CAN(Controller Area Network)總線是一種支持分布式和實時控制的串行通信網(wǎng)絡(luò)[2]。CAN 總線與以往控制總線相比有如下特點:它是一種多主總線,即每個節(jié)點均可成為主節(jié)點,且從節(jié)點之間也可互相通信;通信速率可達1 Mbit/s;CAN 總線通信接口中集成了CAN 協(xié)議的物理層和數(shù)據(jù)鏈路層功能,可完成對通信數(shù)據(jù)的成幀處理;CAN 協(xié)議的最大特點是廢除了傳統(tǒng)的節(jié)點地址編碼,而代之以對通信數(shù)據(jù)塊進行編碼。采用這種方法的優(yōu)點可使網(wǎng)絡(luò)內(nèi)的節(jié)點個數(shù)在理論上不受限制,數(shù)據(jù)塊的標識符可由11 位或29 位二進制數(shù)組成,因此可以定義211個或229 個不同的數(shù)據(jù)塊,這種根據(jù)數(shù)據(jù)塊編碼的方式,還可使不同的節(jié)點同時接收到相同的數(shù)據(jù),這一點對大規(guī)模分布式控制系統(tǒng)尤為重要。
能源微藻培養(yǎng)監(jiān)控系統(tǒng)主要由采集從節(jié)點、控制從節(jié)點、CAN232MB 智能協(xié)議轉(zhuǎn)換器、監(jiān)控主機和遠程計算機七部分組成,系統(tǒng)總體結(jié)構(gòu)框圖如圖1 所示。本系統(tǒng)具有監(jiān)控主機功能易于實現(xiàn)、功能可擴展和運行穩(wěn)定等特點,系統(tǒng)方案設(shè)計流程:監(jiān)控主機以工控機為核心,監(jiān)控界面采用北京亞控科技發(fā)展有限公司的組態(tài)王Kingview6.53 來設(shè)計,在組態(tài)王Kingview6.53 中定義莫迪康串口設(shè)備作為主節(jié)點設(shè)備,采用ModbusRTU 通訊協(xié)議與各現(xiàn)場從節(jié)點之間通信。設(shè)計中使用CAN232MB 智能協(xié)議轉(zhuǎn)換器來實現(xiàn)串口側(cè)和CAN 側(cè)之間ModbusRTU 協(xié)議的雙向轉(zhuǎn)換[3]。監(jiān)控主機主要負責現(xiàn)場傳感器數(shù)據(jù)的實時顯示,將數(shù)據(jù)存儲到數(shù)據(jù)庫和實驗流程組態(tài),作為Web 服務(wù)器實現(xiàn)現(xiàn)場情況的Web 發(fā)布功能。采集從節(jié)點和控制從節(jié)點以意法半導體公司的STM32F107 為核心MCU來進行硬件電路設(shè)計[4]。采集從節(jié)點主要完成監(jiān)測傳感器的信號調(diào)理、轉(zhuǎn)換和儲存等任務(wù),通過CAN 通信接口實現(xiàn)數(shù)據(jù)交互??刂茝墓?jié)點的主要任務(wù)是時刻監(jiān)聽主機發(fā)送過來的控制命令,根據(jù)控制命令的具體要求來完成現(xiàn)場蠕動泵和球閥的啟停操作和控制蠕動泵的轉(zhuǎn)速,達到實驗流程組態(tài)的目的。
圖1 系統(tǒng)總體結(jié)構(gòu)框圖
系統(tǒng)硬件部分主要由現(xiàn)場傳感器信號提取電路、模數(shù)轉(zhuǎn)換電路、功率驅(qū)動電路、數(shù)模轉(zhuǎn)換電路和CAN 通信電路五部分組成。
本系統(tǒng)中采用PT100、pH 傳感器、DO 傳感器和照度傳感器對能源微藻培養(yǎng)環(huán)境進行實時監(jiān)測。PT100 的信號提取電路采用文氏電橋,將鉑電阻阻值的變化轉(zhuǎn)換成差分電壓信號的變化,后級使用OP07 對差分信號進行放大處理。pH 傳感器采用離子選擇性的玻璃復(fù)合電極,電極本身阻值高為108Ω ~109Ω,輸出信號為毫伏級信號,在實驗過程中,由于pH 的動態(tài)變化比較緩慢,采取對輸入信號進行一階RC 濾波處理。為了減小傳感器內(nèi)阻對測量精度的影響,采用輸入阻抗大于1012Ω 的ICL7621 來設(shè)計pH 傳感器的信號調(diào)理電路。本設(shè)計中采用基于Clark 原理的極譜型溶解氧電極[5],極譜型的溶解氧電極需要在陰陽電極之間加0.7 V的極化電壓,極化電壓可以通過穩(wěn)壓管穩(wěn)壓和電位器調(diào)壓的方式提供給溶解氧電極,電極輸出為納安級信號,微電流信號提取電路采用AD711 實現(xiàn)I/V轉(zhuǎn)換[6]。DO 電極微電流信號提取電路如圖2 所示。在能源微藻光自養(yǎng)過程中,光照強度對能源微藻的生長速率有直接影響,實驗室條件下,采取日光燈補光的方法來控制光照強度的變化。照度傳感器的量程為100 lux ~2 klux,對應(yīng)的輸出信號為0 ~5 V,采用集成運放OP07 來設(shè)計電壓跟隨電路。
圖2 DO 電極微電流信號提取電路
為了提高對傳感器提取信號的轉(zhuǎn)換精度,本設(shè)計中選用美國模擬器件公司的16 位逐次逼近型模數(shù)轉(zhuǎn)換芯片AD976[7],轉(zhuǎn)換量程為-10 V ~+10 V,芯片外圍電路采用外部參考源連接方式,使用AD780 為AD976 提供穩(wěn)定的2.5 V 外部參考源。通過控制模擬開關(guān)MAX308 實現(xiàn)模擬信號輸入通道的循環(huán)切換,MAX308 的COM 端與AD711 構(gòu)成的電壓跟隨器連接。STM32F107 為AD976 提供R/C、CS 控制信號和讀取AD976 的BUSY 信號,AD976 的操作流程:使用R/C 和CS 控制信號來控制AD976 的轉(zhuǎn)換過程,R/C信號的下降沿將取樣/保持轉(zhuǎn)變?yōu)楸3譅顟B(tài),在CS 信號下降沿時開始轉(zhuǎn)換,BUSY 信號變?yōu)榈?,并保持到轉(zhuǎn)換完成,BUSY 信號上升沿時將輸出數(shù)據(jù)鎖存到輸出寄存器中,數(shù)據(jù)有效。當R/C 為高時,CS 下降沿輸出數(shù)據(jù)。STM32F107 讀取數(shù)字量輸入引腳電平狀態(tài)和進行數(shù)據(jù)轉(zhuǎn)換處理。
為了滿足監(jiān)控系統(tǒng)的流程控制功能可擴展的要求,設(shè)計了16 路泵閥功率驅(qū)動電路。1 路功率驅(qū)動的實現(xiàn)方法:如圖3 所示,當GPIO 引腳輸出為高電平時,三極管S8050 導通,驅(qū)動光電耦合器TLP521打開,后級NPN 型功率達林頓管TIP142 導通,執(zhí)行器接入供電電壓回路開始工作;當GPIO 引腳輸出為低電平時,供電回路斷開,執(zhí)行器停止工作,由于執(zhí)行器大多為電感型器件,上電工作時會產(chǎn)生反電動勢,采用二極管IN4007 可以起到續(xù)流保護作用。
圖3 功率驅(qū)動電路
本系統(tǒng)采用高精度蠕動泵、球閥等執(zhí)行器來實現(xiàn)實驗流程的控制。在控制流程中,需要為4 個蠕動泵提供0 ~5 V 的電壓信號來控制轉(zhuǎn)速。本設(shè)計中采用了TI 公司的12 位并行輸入的4 通道D/A 轉(zhuǎn)換器DAC7724[8],內(nèi)部帶有雙緩沖區(qū)的邏輯電路,可以同時更新4 個通道的數(shù)據(jù),另外,其回讀電路可以讀取內(nèi)部寄存器的內(nèi)容。各內(nèi)部寄存器均為電平觸發(fā),可由A0、A1、R/W 和CS 四個信號來控制。當R/和為低電平時,可以向輸入寄存器寫數(shù)據(jù),由A0 和A1 決定寫入哪組數(shù)據(jù)。DAC 寄存器隨輸入寄存器的更新而更新。當為低電平時,各通道都輸出相應(yīng)的電壓,當為高電平時,各通道的輸入數(shù)據(jù)被鎖存在DAC 寄存器中。因此,通過控制A0、A1、R/和,使為高電平來依次修改四通道數(shù)據(jù),然后再使LDAC 為低電平,完成四通道的輸出,各通道的輸出電壓公式為:
其中:VREFL與模擬地連接。VREFH為正參考電壓,由REF02 提供5 V 精準參考源,N 為微控制器輸出的二進制數(shù),N 的取值范圍為0 ~4096。
CAN 通信電路由STM32F107 的片內(nèi)CAN 控制器和通用CAN 收發(fā)模塊CTM8251 組成。CAN 收發(fā)模塊CTM8251 實現(xiàn)了CAN 控制器邏輯電平與CAN總線差分電平之間的轉(zhuǎn)換,另外CTM8251 還對CAN控制器與CAN 總線之間起到隔離作用,增強了總線各節(jié)點的抗干擾能力,確保了通信的可靠性。
系統(tǒng)軟件部分設(shè)計主要由采集從節(jié)點軟件設(shè)計、控制從節(jié)點軟件設(shè)計和監(jiān)控主機軟件設(shè)計三部分組成。采集從節(jié)點和控制從節(jié)點程序在Keil uvision4 開發(fā)環(huán)境下采用C 語言[9]編寫。監(jiān)控主機軟件采用KingView 6.53 版本的組態(tài)軟件開發(fā)。以下對各部分軟件設(shè)計進行詳細闡述。
采集從節(jié)點程序流程為:系統(tǒng)初始化后,進入主循環(huán)中,啟動片外AD976 操作,連續(xù)16 次轉(zhuǎn)換第1路外部模擬信號,將轉(zhuǎn)換結(jié)果存入數(shù)組并對數(shù)據(jù)進行加權(quán)平均濾波處理后保存在AD 寄存器中,然后切換到下一路模擬信號輸入通道進行處理。接下來,等待監(jiān)控主機發(fā)送給本節(jié)點的請求命令,收到請求命令后利用CAN 控制器的過濾機制判斷是否為發(fā)給本節(jié)點的請求命令,若不是本節(jié)點命令幀,放棄本幀;是則觸發(fā)CAN 接收中斷,進入接收中斷程序接收存儲并解析出功能碼,當功能碼為0x03 時,設(shè)置相應(yīng)的標志位為1,表示請求傳感器數(shù)據(jù),根據(jù)寄存器的起始地址和長度信息,讀取對應(yīng)的AD 寄存器和組裝響應(yīng)幀通過CAN 通信電路發(fā)送給主機。采集從節(jié)點程序流程圖如圖4 所示。
圖4 采集從節(jié)點程序流程圖
控制從節(jié)點程序流程與采集從節(jié)點程序流程類似,系統(tǒng)初始化后,進入主循環(huán),等待命令幀,收到命令后利用CAN 控制器的硬件過濾機制,判斷是否為發(fā)給本站的命令幀,是的話,進入CAN 接收中斷,存儲收到的命令幀并解析出功能碼,設(shè)置相應(yīng)的標志位。通過判斷標志位來執(zhí)行相關(guān)動作,當功能碼為0x0F 時,表示控制泵閥的啟停狀態(tài)信息,將啟停狀態(tài)信息保存到開關(guān)量寄存器中,當功能碼為0x10時,表示控制蠕動泵的轉(zhuǎn)速信息,將轉(zhuǎn)速信息保存到DA 寄存器中。組裝相應(yīng)的響應(yīng)幀發(fā)送給監(jiān)控主機,然后根據(jù)保存的寄存器的值,執(zhí)行蠕動泵和閥的啟停動作,控制蠕動泵的轉(zhuǎn)速??刂茝墓?jié)點程序流程圖如圖5 所示。
圖5 控制從節(jié)點程序流程圖
主監(jiān)控界面采用組態(tài)王6.53 來設(shè)計[10]。在組態(tài)王工程瀏覽器的設(shè)備選項中添加ModbusRTU 設(shè)備作為主站設(shè)備,在數(shù)據(jù)字典中定義系統(tǒng)組態(tài)過程中所需要的IO 變量、內(nèi)存變量和設(shè)置相應(yīng)的寄存器值,來實現(xiàn)ModbusRTU 通訊協(xié)議中讀1 路或多路開關(guān)量輸出(功能碼01)、寫多路開關(guān)量輸出(功能碼0F)、讀多路寄存器(功能碼03)和寫多路寄存器(功能碼10)四種功能[11]。在組態(tài)王SQL 訪問管理器中創(chuàng)建表格模板,定義時間、溫度、pH、DO 和關(guān)照強度5 個字段;創(chuàng)建記錄體,定義記錄體字段與表格模板中的字段對應(yīng),選擇相應(yīng)的組態(tài)王變量與記錄體中的字段對應(yīng);建立ODBC 數(shù)據(jù)源,在命令語言中執(zhí)行SQLConnect()和SQLInsertt()函數(shù),可以建立與MS Access 數(shù)據(jù)庫的連接和數(shù)據(jù)存儲。利用組態(tài)王的Web 功能實現(xiàn)畫面發(fā)布和數(shù)據(jù)發(fā)布功能,為遠程主機提供實時的現(xiàn)場信息。通過編寫應(yīng)用程序命令語言、數(shù)據(jù)改變命令語言和事件命令語言等完成數(shù)據(jù)的轉(zhuǎn)換、顯示和存儲,實驗流程組態(tài)等功能[12]。
在實驗室調(diào)試過程中,監(jiān)控主機在組態(tài)王6.53 運行環(huán)境下,主機設(shè)備為ModbusRTU 串口設(shè)備,串口參數(shù)設(shè)置為:波特率為9 600 bit/s,8 位數(shù)據(jù)位,1 位校驗位(偶校驗)和1 位停止位。通過CAN232MB 協(xié)議轉(zhuǎn)換器與現(xiàn)場采集從節(jié)點和控制從節(jié)點連接。設(shè)置協(xié)議轉(zhuǎn)換器轉(zhuǎn)換模式為Modbus 協(xié)議雙向轉(zhuǎn)換方式,CAN 端波特率設(shè)置為250 kbit/s。設(shè)置完成,啟動組態(tài)王運行系統(tǒng)。監(jiān)控系統(tǒng)界面如圖6 所示。在組態(tài)王運行系統(tǒng)中,主機每隔1 s 向采集從節(jié)點發(fā)送數(shù)據(jù)請求命令,當按下實驗流程的按鈕時,執(zhí)行發(fā)送相關(guān)的控制命令。監(jiān)控界面實現(xiàn)了現(xiàn)場傳感器數(shù)據(jù)的實時曲線顯示、實驗流程控制、數(shù)據(jù)庫存儲和Web 發(fā)布功能。在實驗過程中,該系統(tǒng)可以長時間正常運行。
圖6 能源微藻培養(yǎng)監(jiān)控系統(tǒng)界面
本文設(shè)計了一種基于CAN 總線的能源微藻培養(yǎng)監(jiān)控系統(tǒng),硬件部分選用STM32F107 作為控制器構(gòu)建從節(jié)點,監(jiān)控主機功能采用組態(tài)王6.53 來設(shè)計,開發(fā)了數(shù)據(jù)的實時曲線顯示、實驗流程控制、數(shù)據(jù)庫存儲和現(xiàn)場情況的Web 發(fā)布功能。本系統(tǒng)具有通信可靠性高、實時性高和功能可擴展性等特點,很好的滿足了能源微藻培養(yǎng)過程中參數(shù)的實時監(jiān)測和實驗操作流程的控制功能的要求。
[1] 李元廣,譚天偉,黃英明.微藻生物柴油產(chǎn)業(yè)化技術(shù)中的若干科學問題及其分析[J]. 中國基礎(chǔ)科學·工業(yè)生物技術(shù)???009,11(5):64-70.
[2] 蘇晨,劉敬彪,章雪挺.CAN 總線在海洋數(shù)據(jù)監(jiān)控系統(tǒng)中的設(shè)計與實現(xiàn)[J].電子器件,2011,34(3):269-272.
[3] CAN232MB/CAN485MB 智能協(xié)議轉(zhuǎn)換器產(chǎn)品數(shù)據(jù)手冊V2.20[M].2007.
[4] 喻金錢,喻斌.STM32F 系列ARM Cortex-M3 核微控制器開發(fā)與應(yīng)用[M].北京:清華大學出版社,2011.
[5] 劉慶.高精度溶解氧測量儀的研究與設(shè)計[D]. 南京:南京信息工程大學,2009.
[6] 郭曉宇,劉敬彪,劉純虎. 基于酶電極的有機磷農(nóng)藥檢測儀[J].儀表技術(shù)與傳感器,2009,2(2):25-28.
[7] 李宏勝,朱欣華,許向華,等.16 位AD 轉(zhuǎn)換器—AD976A 及應(yīng)用[J].儀器儀表學報,2003,24(增刊):274-277.
[8] 黃愛芹.數(shù)模轉(zhuǎn)換器DAC7724 與AT89S51 單片機的接口及程序設(shè)計[J].電子元器件應(yīng)用,2010,12(12):18-20
[9] Kenneth A Reek,著.徐波,譯.C 和指針POINTERS ON C[M].北京:人民郵電出版社,2008.
[10] 劉恩博,田敏,李江全,等.組態(tài)軟件數(shù)據(jù)采集與串口通信測控應(yīng)用實踐[M].北京:人民郵電出版社,2010.
[11] 李偉.基于Modbus 協(xié)議的工控節(jié)點設(shè)計與實現(xiàn)[J].計算機工程,2010,36(16):226-231.
[12] 何諧. 基于組態(tài)王的生物發(fā)酵多參數(shù)優(yōu)化控制系統(tǒng)的研究[D].鎮(zhèn)江:江蘇大學,2007.