陶金牛,李錫文
(1.華中科技大學(xué),湖北 武漢 430074;2.空軍第一航空學(xué)院,河南 信陽(yáng) 464000)
蠕動(dòng)泵,又稱(chēng)軟管泵,按工作原理屬于容積泵。工作時(shí),流體位于密封的軟管內(nèi),滾輪對(duì)軟管擠壓產(chǎn)生吸力[1],可以傳輸具有腐蝕性和剪切力敏感的流體[2],因此被廣泛應(yīng)用于制藥、食品和化工行業(yè)。
目前,小流量蠕動(dòng)泵使用較多,其傳輸?shù)牧黧w黏性低,流量以mL3/min計(jì),采用直流調(diào)速驅(qū)動(dòng)。而傳輸大傳輸流量(超過(guò)103L/h)、高黏度流體時(shí)應(yīng)采用變頻調(diào)速驅(qū)動(dòng)的蠕動(dòng)泵,但目前這種應(yīng)用還不完善。為了實(shí)現(xiàn)某定量加料系統(tǒng)中的自動(dòng)運(yùn)行和遠(yuǎn)程控制,本文針對(duì)采用LS變頻器的大流量蠕動(dòng)泵,基于虛擬儀器技術(shù),完成了其控制系統(tǒng)的開(kāi)發(fā)。
蠕動(dòng)泵控制系統(tǒng)硬件組成如圖1所示。通過(guò)基于LS專(zhuān)用通信協(xié)議編寫(xiě)的控制軟件,實(shí)現(xiàn)上位機(jī)與蠕動(dòng)泵之間的數(shù)據(jù)交換,實(shí)時(shí)改變轉(zhuǎn)速并獲取當(dāng)前的運(yùn)行參數(shù)。由于采用的是RS485半雙工異步(UART)通信,最大可靠通信距離達(dá)到700m,因此上位機(jī)和變頻器能夠布置在不同的場(chǎng)所,實(shí)現(xiàn)遠(yuǎn)程操縱。另外,變頻器與蠕動(dòng)泵之間支持最大電纜長(zhǎng)度為500m,也能夠?qū)崿F(xiàn)分開(kāi)放置。
上位機(jī)控制軟件使用LabVIEW進(jìn)行編寫(xiě)。Lab-VIEW圖形化編程語(yǔ)言具有完善的人機(jī)交互控件,并具有豐富的函數(shù)庫(kù)和儀器驅(qū)動(dòng),可以方便地將各廠商的硬件集成到系統(tǒng)中。本軟件各功能主要是對(duì)串口通信協(xié)議的調(diào)用,所以,編程的實(shí)質(zhì)是使用LabVIEW中VISA串口通信模塊實(shí)現(xiàn)LS通信協(xié)議的各種功能。
圖1 蠕動(dòng)泵控制系統(tǒng)硬件組成
系統(tǒng)使用LS公司生產(chǎn)的SV-iG5系列變頻器,它支持 Modbus-RTU、Modbus-ASCⅡ通信協(xié)議和 LS公司開(kāi)發(fā)的串行通信協(xié)議LS-BusASCⅡ。Modbus協(xié)議的應(yīng)用比較常見(jiàn),而LS協(xié)議目前主要應(yīng)用于LS旗下的變頻器、PLC等產(chǎn)品中。
LS通信協(xié)議支持RS-485接口,允許“兩線結(jié)構(gòu)”的點(diǎn)對(duì)點(diǎn)和點(diǎn)對(duì)多的數(shù)據(jù)傳輸,LS兩線制拓?fù)浣Y(jié)構(gòu)如圖2所示,圖2中S+,S-,CM對(duì)應(yīng)著RS485接口的邏輯1、邏輯0和公共地,最多可以支持16臺(tái)變頻器。
LS-BusASCⅡ是一個(gè)主/從協(xié)議,變頻器作為從機(jī),計(jì)算機(jī)作為主機(jī)。在同一時(shí)刻只有一個(gè)主站和多個(gè)從站連接于通信線路中,信息通信總是由主站發(fā)起,從站在沒(méi)有收到來(lái)自主站的請(qǐng)求時(shí)不發(fā)送數(shù)據(jù),從站之間不發(fā)生通信。
圖2 LS兩線制拓?fù)浣Y(jié)構(gòu)
類(lèi)似于 Modbus-ASCⅡ協(xié)議,LS-BusASCⅡ協(xié)議中數(shù)據(jù)以十六進(jìn)制ASCⅡ碼的形式傳輸[3]。例如,上位機(jī)要發(fā)送十進(jìn)制數(shù)值“3000”給變頻器,則首先要將其轉(zhuǎn)換為十六進(jìn)制字符串“0BB8”,然后將每個(gè)字符轉(zhuǎn)換為十六進(jìn)制ASCⅡ碼“30h42h43h38h”進(jìn)行傳輸。上位機(jī)接收變頻器的數(shù)據(jù)時(shí),執(zhí)行相反的過(guò)程。
LS-BusASCⅡ協(xié)議報(bào)文遵守嚴(yán)格的格式和字符長(zhǎng)度限制。協(xié)議規(guī)定了3種基本報(bào)文格式:請(qǐng)求、應(yīng)答回復(fù)和拒絕應(yīng)答回復(fù)。同時(shí)還規(guī)定了4種功能碼,分別是“R”,“W”,“X”和“Y”,代表4種基本操作:讀取寄存器、寫(xiě)入寄存器、監(jiān)控注冊(cè)和監(jiān)控讀取。這4種基本操作的請(qǐng)求、應(yīng)答回復(fù)和拒絕應(yīng)答回復(fù)報(bào)文各不相同,具體包含的字節(jié)見(jiàn)表1。
表1 LS-BusASCⅡ協(xié)議詳細(xì)報(bào)文格式及長(zhǎng)度
表1中,Drive No為儀器編號(hào)相當(dāng)于儀器的地址,在報(bào)文中占用2個(gè)字節(jié),從站編號(hào)從01開(kāi)始,最大為0F,上位機(jī)指定發(fā)送的對(duì)象需要與變頻器I/O-46參數(shù)中的字符一致;Address為寄存器地址,變頻器中不同地址的寄存器對(duì)應(yīng)著不同的功能,改變或讀取其中的值,可以改變或獲取蠕動(dòng)泵的運(yùn)行狀態(tài);協(xié)議采用了名為“SUM”的求和校驗(yàn),SUM值是全部有效字節(jié)(不帶頭尾碼)的十六進(jìn)制ASCⅡ碼相加后所得數(shù)值的低八位,SUM值首先由發(fā)送設(shè)備計(jì)算,然后將其轉(zhuǎn)換為字符串附在報(bào)文中,接收設(shè)備再次計(jì)算,并將計(jì)算結(jié)果與實(shí)際接收到的SUM值進(jìn)行比較,如果不相等,則報(bào)錯(cuò)。
系統(tǒng)的程序運(yùn)行界面如圖3所示,主要功能有蠕動(dòng)泵的正轉(zhuǎn)、反轉(zhuǎn)和停止,以及電壓、電流、頻率的設(shè)定與監(jiān)控。這些功能按觸發(fā)條件可以分為3類(lèi):按鈕觸發(fā)、旋鈕觸發(fā)和無(wú)動(dòng)作觸發(fā)。
按鈕觸發(fā)包括蠕動(dòng)泵的正轉(zhuǎn)、反轉(zhuǎn)和停止,這些指令通過(guò)點(diǎn)擊前面板上的布爾控件觸發(fā),不點(diǎn)擊不執(zhí)行,而且執(zhí)行時(shí)要從程序的其他分支跳出。旋鈕觸發(fā)包括頻率和轉(zhuǎn)速的設(shè)定,這種設(shè)定是實(shí)時(shí)的,改變了旋鈕的位置,蠕動(dòng)泵的轉(zhuǎn)速就隨之改變。電壓、電流、頻率的監(jiān)控顯示功能屬于無(wú)動(dòng)作觸發(fā)一類(lèi),而且需要實(shí)時(shí)更新,為了簡(jiǎn)化程序,我們把旋鈕觸發(fā)和無(wú)動(dòng)作觸發(fā)放在同一個(gè)程序分支中。主程序流程如圖4所示。
圖3 程序運(yùn)行界面
主程序是一個(gè)while循環(huán)結(jié)構(gòu),每一次循環(huán)都要監(jiān)測(cè)“正轉(zhuǎn)按鈕”、“反轉(zhuǎn)按鈕”和“停止按鈕”的值,并把這些值賦給一個(gè)一維數(shù)組,然后利用“搜索數(shù)組”函數(shù)獲取按鈕狀態(tài)變量,用這個(gè)變量去觸發(fā)條件結(jié)構(gòu)的分支。例如,當(dāng)“正轉(zhuǎn)按鈕”被按下,“搜索數(shù)組”函數(shù)輸出的值就為0,程序就執(zhí)行值為0的條件分支,若無(wú)按鈕按下,“搜索數(shù)組”函數(shù)的值為-1。
支持模塊化編程是LabVIEW開(kāi)發(fā)環(huán)境的一個(gè)優(yōu)點(diǎn),模塊化使得程序更加合理,層次也更加分明。整個(gè)程序的VI結(jié)構(gòu)如圖5所示。
子程序“正轉(zhuǎn)指令”的程序框圖如圖6所示,需要說(shuō)明的是,頭碼和尾碼并不存在于LabVIEW默認(rèn)的ASCⅡ編碼表中,因此,在子程序中直接用十六進(jìn)制字符串常量05h和06h作為輸入。其他命令字符只需要按照表1中所列協(xié)議格式編寫(xiě)程序即可生成。
圖4 主程序流程圖
本文分析總結(jié)了LS通信協(xié)議的規(guī)則和原理,在編程中采用了將LS協(xié)議字符串生成與串口操作分離的子程序結(jié)構(gòu),這種結(jié)構(gòu)可以減少串口讀寫(xiě)次數(shù),使主程序的結(jié)構(gòu)更加靈活,調(diào)試也更方便。所構(gòu)建的蠕動(dòng)泵控制程序,實(shí)現(xiàn)了對(duì)蠕動(dòng)泵的遠(yuǎn)程控制和監(jiān)控,穩(wěn)定性和實(shí)時(shí)性較好,已在某定量加料系統(tǒng)中投入了使用。
圖5 主程序VI結(jié)構(gòu)
圖6 正轉(zhuǎn)指令子VI
[1] 張萬(wàn)成.蠕動(dòng)泵及其應(yīng)用[J].化工自動(dòng)化及儀表,1986(6):69-71.
[2] 劉顯軍.蠕動(dòng)泵的結(jié)構(gòu)原理及其應(yīng)用[J].流體機(jī)械,1998(12):38-40.
[3] 機(jī)械工業(yè)儀器儀表綜合技術(shù)經(jīng)濟(jì)研究所.GB/T 19582.1—2008基于Modbus協(xié)議的工業(yè)自動(dòng)化網(wǎng)絡(luò)規(guī)范[S].北京:中國(guó)標(biāo)準(zhǔn)出版社,2008:1-48.