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