郭 威,蔡 強,* ,張延軍,徐勤利,王金輝
(1.杭州電子科技大學電子信息學院,杭州310018;2.浙江清華長三角研究院,浙江 嘉興314006)
隨著化石燃料的日趨枯竭,生物能源被認為是未來重要能源之一。微藻合成的油脂是一種極有前景的生物柴油大宗原料,微藻生物柴油產業化技術開發已成為近年來國內外生物能源領域和CO2減排領域的研究熱點[1],其中,高效培養能源微藻是生物柴油產業的關鍵技術之一。能源微藻高效培養裝置主要由生物反應器和監控系統兩部分組成。對于能源微藻培養過程來說,需要監測的參數主要有溫度、酸堿度(pH)、溶解氧(DO)和光照強度,通過監測能源微藻生長過程當中參數的變化,保存實驗過程數據進行分析,不斷改進實驗條件,為中試放大研究提供依據。
CAN(Controller Area Network)總線是一種支持分布式和實時控制的串行通信網絡[2]。CAN 總線與以往控制總線相比有如下特點:它是一種多主總線,即每個節點均可成為主節點,且從節點之間也可互相通信;通信速率可達1 Mbit/s;CAN 總線通信接口中集成了CAN 協議的物理層和數據鏈路層功能,可完成對通信數據的成幀處理;CAN 協議的最大特點是廢除了傳統的節點地址編碼,而代之以對通信數據塊進行編碼。采用這種方法的優點可使網絡內的節點個數在理論上不受限制,數據塊的標識符可由11 位或29 位二進制數組成,因此可以定義211個或229 個不同的數據塊,這種根據數據塊編碼的方式,還可使不同的節點同時接收到相同的數據,這一點對大規模分布式控制系統尤為重要。
能源微藻培養監控系統主要由采集從節點、控制從節點、CAN232MB 智能協議轉換器、監控主機和遠程計算機七部分組成,系統總體結構框圖如圖1 所示。本系統具有監控主機功能易于實現、功能可擴展和運行穩定等特點,系統方案設計流程:監控主機以工控機為核心,監控界面采用北京亞控科技發展有限公司的組態王Kingview6.53 來設計,在組態王Kingview6.53 中定義莫迪康串口設備作為主節點設備,采用ModbusRTU 通訊協議與各現場從節點之間通信。設計中使用CAN232MB 智能協議轉換器來實現串口側和CAN 側之間ModbusRTU 協議的雙向轉換[3]。監控主機主要負責現場傳感器數據的實時顯示,將數據存儲到數據庫和實驗流程組態,作為Web 服務器實現現場情況的Web 發布功能。采集從節點和控制從節點以意法半導體公司的STM32F107 為核心MCU來進行硬件電路設計[4]。采集從節點主要完成監測傳感器的信號調理、轉換和儲存等任務,通過CAN 通信接口實現數據交互。控制從節點的主要任務是時刻監聽主機發送過來的控制命令,根據控制命令的具體要求來完成現場蠕動泵和球閥的啟停操作和控制蠕動泵的轉速,達到實驗流程組態的目的。

圖1 系統總體結構框圖
系統硬件部分主要由現場傳感器信號提取電路、模數轉換電路、功率驅動電路、數模轉換電路和CAN 通信電路五部分組成。
本系統中采用PT100、pH 傳感器、DO 傳感器和照度傳感器對能源微藻培養環境進行實時監測。PT100 的信號提取電路采用文氏電橋,將鉑電阻阻值的變化轉換成差分電壓信號的變化,后級使用OP07 對差分信號進行放大處理。pH 傳感器采用離子選擇性的玻璃復合電極,電極本身阻值高為108Ω ~109Ω,輸出信號為毫伏級信號,在實驗過程中,由于pH 的動態變化比較緩慢,采取對輸入信號進行一階RC 濾波處理。為了減小傳感器內阻對測量精度的影響,采用輸入阻抗大于1012Ω 的ICL7621 來設計pH 傳感器的信號調理電路。本設計中采用基于Clark 原理的極譜型溶解氧電極[5],極譜型的溶解氧電極需要在陰陽電極之間加0.7 V的極化電壓,極化電壓可以通過穩壓管穩壓和電位器調壓的方式提供給溶解氧電極,電極輸出為納安級信號,微電流信號提取電路采用AD711 實現I/V轉換[6]。DO 電極微電流信號提取電路如圖2 所示。在能源微藻光自養過程中,光照強度對能源微藻的生長速率有直接影響,實驗室條件下,采取日光燈補光的方法來控制光照強度的變化。照度傳感器的量程為100 lux ~2 klux,對應的輸出信號為0 ~5 V,采用集成運放OP07 來設計電壓跟隨電路。

圖2 DO 電極微電流信號提取電路
為了提高對傳感器提取信號的轉換精度,本設計中選用美國模擬器件公司的16 位逐次逼近型模數轉換芯片AD976[7],轉換量程為-10 V ~+10 V,芯片外圍電路采用外部參考源連接方式,使用AD780 為AD976 提供穩定的2.5 V 外部參考源。通過控制模擬開關MAX308 實現模擬信號輸入通道的循環切換,MAX308 的COM 端與AD711 構成的電壓跟隨器連接。STM32F107 為AD976 提供R/C、CS 控制信號和讀取AD976 的BUSY 信號,AD976 的操作流程:使用R/C 和CS 控制信號來控制AD976 的轉換過程,R/C信號的下降沿將取樣/保持轉變為保持狀態,在CS 信號下降沿時開始轉換,BUSY 信號變為低,并保持到轉換完成,BUSY 信號上升沿時將輸出數據鎖存到輸出寄存器中,數據有效。當R/C 為高時,CS 下降沿輸出數據。STM32F107 讀取數字量輸入引腳電平狀態和進行數據轉換處理。
為了滿足監控系統的流程控制功能可擴展的要求,設計了16 路泵閥功率驅動電路。1 路功率驅動的實現方法:如圖3 所示,當GPIO 引腳輸出為高電平時,三極管S8050 導通,驅動光電耦合器TLP521打開,后級NPN 型功率達林頓管TIP142 導通,執行器接入供電電壓回路開始工作;當GPIO 引腳輸出為低電平時,供電回路斷開,執行器停止工作,由于執行器大多為電感型器件,上電工作時會產生反電動勢,采用二極管IN4007 可以起到續流保護作用。

圖3 功率驅動電路
本系統采用高精度蠕動泵、球閥等執行器來實現實驗流程的控制。在控制流程中,需要為4 個蠕動泵提供0 ~5 V 的電壓信號來控制轉速。本設計中采用了TI 公司的12 位并行輸入的4 通道D/A 轉換器DAC7724[8],內部帶有雙緩沖區的邏輯電路,可以同時更新4 個通道的數據,另外,其回讀電路可以讀取內部寄存器的內容。各內部寄存器均為電平觸發,可由A0、A1、R/W 和CS 四個信號來控制。當R/和為低電平時,可以向輸入寄存器寫數據,由A0 和A1 決定寫入哪組數據。DAC 寄存器隨輸入寄存器的更新而更新。當為低電平時,各通道都輸出相應的電壓,當為高電平時,各通道的輸入數據被鎖存在DAC 寄存器中。因此,通過控制A0、A1、R/和,使為高電平來依次修改四通道數據,然后再使LDAC 為低電平,完成四通道的輸出,各通道的輸出電壓公式為:

其中:VREFL與模擬地連接。VREFH為正參考電壓,由REF02 提供5 V 精準參考源,N 為微控制器輸出的二進制數,N 的取值范圍為0 ~4096。
CAN 通信電路由STM32F107 的片內CAN 控制器和通用CAN 收發模塊CTM8251 組成。CAN 收發模塊CTM8251 實現了CAN 控制器邏輯電平與CAN總線差分電平之間的轉換,另外CTM8251 還對CAN控制器與CAN 總線之間起到隔離作用,增強了總線各節點的抗干擾能力,確保了通信的可靠性。
系統軟件部分設計主要由采集從節點軟件設計、控制從節點軟件設計和監控主機軟件設計三部分組成。采集從節點和控制從節點程序在Keil uvision4 開發環境下采用C 語言[9]編寫。監控主機軟件采用KingView 6.53 版本的組態軟件開發。以下對各部分軟件設計進行詳細闡述。
采集從節點程序流程為:系統初始化后,進入主循環中,啟動片外AD976 操作,連續16 次轉換第1路外部模擬信號,將轉換結果存入數組并對數據進行加權平均濾波處理后保存在AD 寄存器中,然后切換到下一路模擬信號輸入通道進行處理。接下來,等待監控主機發送給本節點的請求命令,收到請求命令后利用CAN 控制器的過濾機制判斷是否為發給本節點的請求命令,若不是本節點命令幀,放棄本幀;是則觸發CAN 接收中斷,進入接收中斷程序接收存儲并解析出功能碼,當功能碼為0x03 時,設置相應的標志位為1,表示請求傳感器數據,根據寄存器的起始地址和長度信息,讀取對應的AD 寄存器和組裝響應幀通過CAN 通信電路發送給主機。采集從節點程序流程圖如圖4 所示。

圖4 采集從節點程序流程圖
控制從節點程序流程與采集從節點程序流程類似,系統初始化后,進入主循環,等待命令幀,收到命令后利用CAN 控制器的硬件過濾機制,判斷是否為發給本站的命令幀,是的話,進入CAN 接收中斷,存儲收到的命令幀并解析出功能碼,設置相應的標志位。通過判斷標志位來執行相關動作,當功能碼為0x0F 時,表示控制泵閥的啟停狀態信息,將啟停狀態信息保存到開關量寄存器中,當功能碼為0x10時,表示控制蠕動泵的轉速信息,將轉速信息保存到DA 寄存器中。組裝相應的響應幀發送給監控主機,然后根據保存的寄存器的值,執行蠕動泵和閥的啟停動作,控制蠕動泵的轉速。控制從節點程序流程圖如圖5 所示。

圖5 控制從節點程序流程圖
主監控界面采用組態王6.53 來設計[10]。在組態王工程瀏覽器的設備選項中添加ModbusRTU 設備作為主站設備,在數據字典中定義系統組態過程中所需要的IO 變量、內存變量和設置相應的寄存器值,來實現ModbusRTU 通訊協議中讀1 路或多路開關量輸出(功能碼01)、寫多路開關量輸出(功能碼0F)、讀多路寄存器(功能碼03)和寫多路寄存器(功能碼10)四種功能[11]。在組態王SQL 訪問管理器中創建表格模板,定義時間、溫度、pH、DO 和關照強度5 個字段;創建記錄體,定義記錄體字段與表格模板中的字段對應,選擇相應的組態王變量與記錄體中的字段對應;建立ODBC 數據源,在命令語言中執行SQLConnect()和SQLInsertt()函數,可以建立與MS Access 數據庫的連接和數據存儲。利用組態王的Web 功能實現畫面發布和數據發布功能,為遠程主機提供實時的現場信息。通過編寫應用程序命令語言、數據改變命令語言和事件命令語言等完成數據的轉換、顯示和存儲,實驗流程組態等功能[12]。
在實驗室調試過程中,監控主機在組態王6.53 運行環境下,主機設備為ModbusRTU 串口設備,串口參數設置為:波特率為9 600 bit/s,8 位數據位,1 位校驗位(偶校驗)和1 位停止位。通過CAN232MB 協議轉換器與現場采集從節點和控制從節點連接。設置協議轉換器轉換模式為Modbus 協議雙向轉換方式,CAN 端波特率設置為250 kbit/s。設置完成,啟動組態王運行系統。監控系統界面如圖6 所示。在組態王運行系統中,主機每隔1 s 向采集從節點發送數據請求命令,當按下實驗流程的按鈕時,執行發送相關的控制命令。監控界面實現了現場傳感器數據的實時曲線顯示、實驗流程控制、數據庫存儲和Web 發布功能。在實驗過程中,該系統可以長時間正常運行。

圖6 能源微藻培養監控系統界面
本文設計了一種基于CAN 總線的能源微藻培養監控系統,硬件部分選用STM32F107 作為控制器構建從節點,監控主機功能采用組態王6.53 來設計,開發了數據的實時曲線顯示、實驗流程控制、數據庫存儲和現場情況的Web 發布功能。本系統具有通信可靠性高、實時性高和功能可擴展性等特點,很好的滿足了能源微藻培養過程中參數的實時監測和實驗操作流程的控制功能的要求。
[1] 李元廣,譚天偉,黃英明.微藻生物柴油產業化技術中的若干科學問題及其分析[J]. 中國基礎科學·工業生物技術專刊,2009,11(5):64-70.
[2] 蘇晨,劉敬彪,章雪挺.CAN 總線在海洋數據監控系統中的設計與實現[J].電子器件,2011,34(3):269-272.
[3] CAN232MB/CAN485MB 智能協議轉換器產品數據手冊V2.20[M].2007.
[4] 喻金錢,喻斌.STM32F 系列ARM Cortex-M3 核微控制器開發與應用[M].北京:清華大學出版社,2011.
[5] 劉慶.高精度溶解氧測量儀的研究與設計[D]. 南京:南京信息工程大學,2009.
[6] 郭曉宇,劉敬彪,劉純虎. 基于酶電極的有機磷農藥檢測儀[J].儀表技術與傳感器,2009,2(2):25-28.
[7] 李宏勝,朱欣華,許向華,等.16 位AD 轉換器—AD976A 及應用[J].儀器儀表學報,2003,24(增刊):274-277.
[8] 黃愛芹.數模轉換器DAC7724 與AT89S51 單片機的接口及程序設計[J].電子元器件應用,2010,12(12):18-20
[9] Kenneth A Reek,著.徐波,譯.C 和指針POINTERS ON C[M].北京:人民郵電出版社,2008.
[10] 劉恩博,田敏,李江全,等.組態軟件數據采集與串口通信測控應用實踐[M].北京:人民郵電出版社,2010.
[11] 李偉.基于Modbus 協議的工控節點設計與實現[J].計算機工程,2010,36(16):226-231.
[12] 何諧. 基于組態王的生物發酵多參數優化控制系統的研究[D].鎮江:江蘇大學,2007.