張曉昶,許 金,胡鴻志,3,管 芳,3
(1.桂林電子科技大學電子工程與自動化學院,廣西桂林 541004; 2.桂林電子科技大學教學實踐部,廣西桂林 541004;3.廣西自動檢測技術(shù)與儀器重點實驗室,廣西桂林 541004)
蠕動泵是一種通過泵頭擠壓膠管輸送液體的軟管泵,具有無污染的特點,被廣泛應(yīng)用于生化分析、醫(yī)療救護、水質(zhì)監(jiān)測等領(lǐng)域[1]。蠕動泵主要由步進電機、連接軸、壓輥子、進樣軟管、軟管卡緊裝置組成,在步進電機的帶動下壓輥子擠壓軟管內(nèi)液體流動[2]。
在流動注射分析系統(tǒng)(FIA)中需要精確控制樣品和化學試劑的流量,常使用蠕動泵作動力裝置,但蠕動泵的構(gòu)成原理使其運動時易產(chǎn)生脈動,影響系統(tǒng)測量精度[3]。在以分光光度計為檢測手段的FIA中,不同泵速的改變常會引入Schlieren效應(yīng),形成“假峰”,干擾測定[4]。另外,在野外現(xiàn)場、船載或原位時,工作環(huán)境比較復(fù)雜,以RS232為通信接口的傳統(tǒng)蠕動泵常會受到環(huán)境的干擾,導(dǎo)致系統(tǒng)不穩(wěn)定。
本文主要針對蠕動泵存在的上述問題,提出了基于CANopen的蠕動泵軟硬件解決方案。以嵌入式ARM處理器和DRV8711步進電機控制器為核心設(shè)計蠕動泵硬件電路驅(qū)動系統(tǒng),優(yōu)化了細分驅(qū)動參數(shù)和電流衰減模式,實現(xiàn)蠕動泵平滑穩(wěn)定的運動。系統(tǒng)采用梯形加減速運動曲線,研究了加減速過程,實現(xiàn)不同泵速間平緩切換,有效抑制了Schlieren效應(yīng)。軟件方案以RT-Thread實時操作系統(tǒng)為基礎(chǔ),采用CANopen構(gòu)建CAN總線應(yīng)用層協(xié)議,實現(xiàn)了通信子協(xié)議CiA 301、驅(qū)動和運動控制子協(xié)議CiA 402,完成了標準運動控制子設(shè)備的通信設(shè)計。
本方案基于DRV8711步進電機控制器,以STM32F103C8T6嵌入式微控制器為核心,使用步進電機作為執(zhí)行機構(gòu)設(shè)計蠕動泵驅(qū)動系統(tǒng),如圖1所示。系統(tǒng)使用STM32F103C8T6內(nèi)部集成的bxCAN控制器,結(jié)合CAN總線收發(fā)器芯片PCA82C250,構(gòu)建CAN總線控制網(wǎng)絡(luò)。為防止共模電壓超過CAN驅(qū)動器的接收電壓時損壞芯片和設(shè)備,設(shè)計了數(shù)字隔離電路,對主控制器電路進行電氣隔離保護。蠕動泵機械執(zhí)行選用雙極性步進電機,驅(qū)動電路由集成電路DRV8711和N溝道MOSFET搭建的功率H全橋構(gòu)成,DRV8711和控制器之間使用SPI協(xié)議實現(xiàn)通信。
圖1 系統(tǒng)結(jié)構(gòu)框圖
為實現(xiàn)蠕動泵轉(zhuǎn)速和位置的精密控制,以細分控制理論為基礎(chǔ),通過斬波恒流、電流衰減模式與加減速運動曲線等技術(shù),精確控制步進電機。
DRV8711內(nèi)部集成微步分度器,能實現(xiàn)最高256細分,通過斬波恒流的方式將兩相繞組電流細分成相位相差90°的正弦波電流。斬波電流以比較器為基礎(chǔ),實時硬件反饋電壓VISENSE與內(nèi)部細分表參考電壓進行比較,由此控制H橋?qū)顟B(tài),實現(xiàn)斬波恒流。VISENSE由電流檢測電阻RISENSE上的電壓與電流檢測放大器的增益ISGAIN相乘得到。參考電壓通過正弦查找表的輸出SINDAC乘以TORQUE寄存器中低8位的值得到,計算公式見式(1),其中SINDAC最大輸出電壓為2.75 V。
(1)
在電流斬波期間H橋使能,電機繞組電流根據(jù)如圖2中①所示方向開始上升,當電流達到斬波閾值后,H橋切換工作狀態(tài)進行電流衰減,防止角度過沖。圖2中②、③項分別為快速衰減模式和慢衰減模式下的電流方向,快速衰減模式下繞組電流通過兩個二極管和電源形成續(xù)流回路,電流迅速衰減;慢衰減模式下繞組電流通過下橋臂續(xù)流,電流緩慢衰減。慢衰減方式由于電流變化緩慢可以得到較小的電流紋波,然而當步進電機高速運行時,慢衰減不能及時降低繞組電流,無法保證電流的精確調(diào)節(jié)[5];使用快速衰減模式可以克服慢衰減的劣勢,但易造成較大的電流紋波。本文電流衰減使用自動混合衰減模式,電流高于閾值時立即進入快速衰減模式,更快的響應(yīng)電流的變化,隨后進入慢衰減模式,使平均電流準確的跟蹤峰值電流,降低了單獨使用快速衰減模式產(chǎn)生的電流紋波。
圖2 電流衰減模式
常見的電機加減速控制方案有梯形加減速、指數(shù)型加減速和S型加減速,其中梯形加減速具有加減速快的特點。蠕動泵切換泵速時需要快速響應(yīng)速度的變化,因此本系統(tǒng)采用梯形加減速方案控制蠕動泵轉(zhuǎn)速。梯形加減速運動曲線在步進電機加速過程中,加速度保持恒定不變,速度根據(jù)加速度線性增加到目標速度,減速過程與此相同[6]。運動曲線如圖3所示,運動過程包括了恒加速段T1、均速段T2和恒減速段T3,Vs、Ve分別為起止速度,Vc為目標速度,L為目標位置,a為加速度。
圖3 梯形加減速運動曲線
本系統(tǒng)蠕動泵設(shè)有速度模式和位置模式兩種運行模式,速度模式下蠕動泵接收到停止指令后根據(jù)運動曲線減速至停止狀態(tài);位置模式下步進電機旋轉(zhuǎn)至目標位置L,實現(xiàn)蠕動泵定量功能,梯形加減速曲線減速點的準確性決定了蠕動泵定量的精度,因此需精確計算出減速點L1+L2和減速點時間T1+T2。
根據(jù)梯形加減速算法推導(dǎo)公式,得速度函數(shù):
(2)
由速度位移公式可得位移函數(shù):
(3)
梯形加減速曲線中Vs=Ve,且加速段與減速段所用時間相同T1=T3,代入式(2)、式(3)進一步化簡得T1、T2、T3:
(4)
(5)
加速段與減速段的位移為
(6)
均速段的位移為
(7)
本系統(tǒng)采用CAN總線作為通信接口,移植RT-Thread實時操作系統(tǒng),嵌入CANopen協(xié)議開發(fā)通信應(yīng)用層軟件,將蠕動泵設(shè)計為標準的CANopen子設(shè)備。利用操作系統(tǒng)的任務(wù)調(diào)度和管理,將復(fù)雜的功能封裝成各個任務(wù),實現(xiàn)系統(tǒng)的穩(wěn)定運行。通信方案總體架構(gòu)如圖4所示,包含通信子協(xié)議CiA 301、驅(qū)動和運動控制子協(xié)議CiA 402兩部分。CiA 301核心是對象字典(OD)及多種通信對象,其中通信對象包括網(wǎng)絡(luò)管理(NMT)、過程數(shù)據(jù)對象(PDO)、服務(wù)數(shù)據(jù)對象(SDO)和特殊功能對象[7];CiA 402定義了驅(qū)動器狀態(tài)機和蠕動泵的兩種運行模式。通過建立蠕動泵對象字典完成通信參數(shù)和運行參數(shù)的配置,創(chuàng)建NMT服務(wù)管理節(jié)點狀態(tài),設(shè)計PDO實現(xiàn)運行參數(shù)的實時傳輸。
圖4 通信方案總體架構(gòu)
對象字典是所有數(shù)據(jù)結(jié)構(gòu)的集合,CANopen通過對象字典對設(shè)備功能進行描述。系統(tǒng)設(shè)計蠕動泵運行狀態(tài)的所有參數(shù)對象,每個對象由16位索引值和8位子索引值來識別,通過索引定位和子索引確定對象的方法實現(xiàn)蠕動泵對象字典的訪問。蠕動泵對象字典中索引和子索引使用結(jié)構(gòu)體定義來創(chuàng)建,根據(jù)subindex類型創(chuàng)建對象字典中每個對象條目,利用indextable類型以靜態(tài)數(shù)組的形式構(gòu)建整個對象字典。
對象字典中對象索引的結(jié)構(gòu)體定義如下:
typedefstructtd_indextable
{
subindex* Subindex;
UNS8 SubCount;
UNS16 index;
}indextable;
對象索引結(jié)構(gòu)體成員Subindex為指向?qū)ο笞铀饕闹羔?;SubCount為對象子索引數(shù)目;index為對象的索引值。對象子索引的結(jié)構(gòu)體定義如下:
typedef struct td_subindex
{
UNS8 AccessType;
UNS8 DataType;
UNS32 size;
Void*Object;
}subindex;
對象子索引結(jié)構(gòu)體成員AccessType為對象訪問權(quán)限,包括只讀(RO)、只寫(WO)和讀寫(RW);DataType為對象數(shù)據(jù)類型;size為對象數(shù)據(jù)大?。籓bject為指向?qū)ο髷?shù)據(jù)的指針。
對象字典是通信程序與應(yīng)用程序之間的接口,通信程序設(shè)計了數(shù)據(jù)交換(PDO、SDO)、報文監(jiān)控(心跳、啟動報文)和狀態(tài)控制功能。通過NMT服務(wù)實現(xiàn)蠕動泵網(wǎng)絡(luò)節(jié)點通信狀態(tài)的轉(zhuǎn)換,過程如圖5所示。蠕動泵上電后對CAN底層驅(qū)動進行初始化,初始化完成后節(jié)點發(fā)送CAN標識符(CAN-ID)為700H+Node-ID(節(jié)點號)的上線報文(Boot-up),提示主站該節(jié)點已加入通信網(wǎng)絡(luò),并自動進入預(yù)操作狀態(tài)。其它狀態(tài)間的轉(zhuǎn)換根據(jù)轉(zhuǎn)換條件,由主站NMT報文觸發(fā)。NMT報文CAN-ID為000H,數(shù)據(jù)長度為兩字節(jié),Byte0為圖5中的CS命令符、Byte1為Node-ID。為便于主站確認節(jié)點的狀態(tài),蠕動泵根據(jù)對象字典1017H的參數(shù)定義發(fā)送CAN-ID為700H+Node-ID的心跳報文。
1—上電或復(fù)位;2—初始化后自動轉(zhuǎn)換;3、6—CS為01H進入操作狀態(tài);4、7—CS為80H進入預(yù)操作狀態(tài);5、8—CS為02H進入停止狀態(tài);9、10、11—CS為81H復(fù)位應(yīng)用層;12、13、14—CS為82H復(fù)位節(jié)點通信。圖5 蠕動泵狀態(tài)轉(zhuǎn)換框圖
在預(yù)操作狀態(tài)下,通過SDO設(shè)置蠕動泵通信參數(shù)和配置信息。進入操作狀態(tài)后,利用PDO通信完成蠕動泵運行參數(shù)的實時交互。如表1所示,設(shè)計蠕動泵對象字典中PDO通信參數(shù),位置模式下根據(jù)運行速度、加速度和減速度3個參數(shù),步進電機按梯形加減速曲線運行至目標位置;速度模式下根據(jù)加減速參數(shù),蠕動泵按梯形加減速曲線運行在恒定的目標速度。RPDO1由主站發(fā)送的同步報文觸發(fā),確認蠕動泵操作模式,通過控制字切換運行狀態(tài);RPDO2由不同的操作模式確定,當目標位置或目標速度改變時觸發(fā)RPDO2;RPDO3用來傳輸梯形加減速曲線的加速度值和減速度值;蠕動泵運行狀態(tài)改變后觸發(fā)TPDO1,向主站反饋當前狀態(tài);TPDO2由同步報文觸發(fā),實時反饋蠕動泵當前位置和速度。
表1 蠕動泵PDO參數(shù)
測試方法:使用CAN總線分析儀CANScope對蠕動泵進行CANopen通信測試,通信波特率設(shè)置為1 Mbps,蠕動泵設(shè)備節(jié)點ID為2,心跳周期為3 s。
測試結(jié)果:如圖6所示,蠕動泵上電后自動發(fā)送Boot-up報文(幀數(shù)據(jù):00 H),啟動心跳報文上傳節(jié)點狀態(tài),利用NMT服務(wù)發(fā)送節(jié)點啟動報文(幀數(shù)據(jù):01 02H)控制節(jié)點狀態(tài)切換,節(jié)點由預(yù)操作狀態(tài)(幀數(shù)據(jù):7F H)成功轉(zhuǎn)換為操作狀態(tài)(幀數(shù)據(jù):05H),滿足CANopen通信要求,表明蠕動泵是一個標準CANopen子設(shè)備。
圖6 CANScope解析報文
測試方法:使用蘭格BT100-1L蠕動泵與本文設(shè)計的蠕動泵進行比對實驗,分別在不同泵速條件下,采用分光光度法對羅丹明溶液的吸光度進行一組實驗測量,計算每一泵速條件下吸光度的相對標準偏差(RSD),以此反應(yīng)該泵速條件下蠕動泵的脈動情況。
測試結(jié)果:RSD與轉(zhuǎn)速的關(guān)系曲線如圖7所示,由圖中數(shù)據(jù)可以看出BT100-1L蠕動泵在低轉(zhuǎn)速時脈動較大,高轉(zhuǎn)速時脈動減?。槐疚脑O(shè)計的蠕動泵脈動整體較小且不同轉(zhuǎn)速條件下變化較平穩(wěn)。
圖7 RSD與蠕動泵轉(zhuǎn)速關(guān)系曲線
測試方法:使用蠕動泵將間甲酚紫溶液與氫氧化鈉溶液泵送至混合三通,經(jīng)過化學反應(yīng)后使用分光光度法測量吸光度。在實驗過程中人為改變泵速產(chǎn)生Schlieren效應(yīng),驗證在相同條件下,加減速曲線對Schlieren效應(yīng)的影響。
測試結(jié)果:設(shè)置蠕動泵轉(zhuǎn)速在30 rpm~15 rpm~30 rpm和15 rpm~7.5 rpm~15 rpm條件下,不使用加減速模式直接切換泵速,分別得到如圖8(a)、(c)所示吸光度變化波形,由于Schlieren效應(yīng),在速度突變點形成明顯“假峰”。蠕動泵根據(jù)本文設(shè)計的梯形加減速方案運行時,在相同泵速變換條件下進行實驗,分別得如圖8(b)、(d)所示波形。對比梯形加減速方案和直接變換泵速所得的波形,可知梯形加減速方案在高速、低速間變換泵速均可有效抑制“假峰”的形成。
(a)
(b)
(c)
(d)
針對分析儀器蠕動泵存在的問題,本文設(shè)計了一種基于CANopen的高精度蠕動泵系統(tǒng)。系統(tǒng)設(shè)計為標準CANopen運動控制子設(shè)備,滿足通信子協(xié)議CiA 301、驅(qū)動和運動控制子協(xié)議CiA 402的通信要求,實現(xiàn)位置模式和速度模式兩種運行模式。硬件采用ARM微處理器結(jié)合DRV8711步進電機控制器的方案,具有結(jié)構(gòu)簡單、控制方便的特點,最高可設(shè)置256細分并支持電流自動混合衰減模式,實現(xiàn)了蠕動泵的平穩(wěn)運行,降低了蠕動泵的脈動。實踐表明,所設(shè)計的梯形加減速方案可有效抑制Schlieren效應(yīng),提高分析精度,具有廣泛的應(yīng)用前景。