鹿紅超,高志慧,魏 來
(北京航空航天大學(xué) 機(jī)械工程及自動(dòng)化學(xué)院,北京 100191)
對(duì)系統(tǒng)進(jìn)行分布式控制逐漸成為工業(yè)控制領(lǐng)域中的主流。DCS[1]將系統(tǒng)的控制功能分散在各單個(gè)計(jì)算機(jī)上實(shí)現(xiàn),當(dāng)某臺(tái)計(jì)算機(jī)出現(xiàn)故障時(shí)并不會(huì)導(dǎo)致系統(tǒng)其他功能的喪失,具有較高的可靠性。上層監(jiān)控系統(tǒng)只需負(fù)責(zé)信息的處理,將處理后的信息與底層計(jì)算機(jī)進(jìn)行數(shù)據(jù)交換,而不需要實(shí)現(xiàn)底層機(jī)構(gòu)的具體控制,控制結(jié)構(gòu)簡單,易于維護(hù)。
單片機(jī)[2]具有較高的可靠性以及處理功能強(qiáng)大、易于實(shí)現(xiàn)模塊化等優(yōu)點(diǎn),常用在底層機(jī)構(gòu)的控制上。在工業(yè)控制系統(tǒng)[3]中,PC 機(jī)常作為上位機(jī)進(jìn)行數(shù)據(jù)的處理和控制信息的交換,單片機(jī)作為下位機(jī)控制機(jī)構(gòu)的運(yùn)動(dòng)及信息的采集,并將采集的信息作初步處理后發(fā)送至上位機(jī)進(jìn)行進(jìn)一步的處理。在上位機(jī)PC 與單片機(jī)通信方式中,常通過RS232 串口來實(shí)現(xiàn)PC 與多個(gè)單片機(jī)的一對(duì)一通信[4]。
立體藥庫[5]是一種新型的自動(dòng)化倉儲(chǔ)系統(tǒng),可以實(shí)現(xiàn)異形包裝藥品的自動(dòng)存取。
本研究以多個(gè)單片機(jī)為底層控制單元,以上位機(jī)PC 為上層信息處理系統(tǒng),設(shè)計(jì)一種小型的DCS 控制系統(tǒng),以實(shí)現(xiàn)立體藥庫存取藥品的運(yùn)動(dòng)。其中單片機(jī)外圍電路由顯示單元、控制單元、通信單元等組成。顯示單元用來顯示藥品的出藥數(shù)量;控制單元用來控制電機(jī)的正反轉(zhuǎn)、高低速及啟停運(yùn)動(dòng);通信單元用來初步處理收集到的信息并將信息發(fā)送至上位機(jī)PC。上位機(jī)PC 則對(duì)將收到的信息進(jìn)一步處理判斷,然后發(fā)送控制信息給下位機(jī)。
立體藥庫主要用來實(shí)現(xiàn)異形包裝藥品的存取,它由前后排貨架、儲(chǔ)藥盒、升降平臺(tái)及升降平臺(tái)上并排的10 個(gè)執(zhí)行機(jī)構(gòu)組成。執(zhí)行機(jī)構(gòu)由單相交流電機(jī)提供動(dòng)力,通過控制電機(jī)的正、反轉(zhuǎn)實(shí)現(xiàn)貨架上儲(chǔ)藥盒的取出與送回。在存取藥品過程中,升降臺(tái)運(yùn)動(dòng)到指定層,執(zhí)行機(jī)構(gòu)正轉(zhuǎn),將藥盒取至升降臺(tái)上,然后升降臺(tái)運(yùn)動(dòng)到出藥口所在層,執(zhí)行機(jī)構(gòu)繼續(xù)正轉(zhuǎn),將藥盒送至出藥口,等待藥品拿出;藥品拿出后,藥盒返回原來所在的位置,此時(shí)電機(jī)反轉(zhuǎn)。該立體藥庫可以同時(shí)存取10 個(gè)儲(chǔ)藥盒。其結(jié)構(gòu)如圖1 所示。
圖1 立體藥庫結(jié)構(gòu)
在傳統(tǒng)的控制方法中,系統(tǒng)一般是通過一個(gè)PLC[6]作為控制元件來對(duì)10 個(gè)執(zhí)行機(jī)構(gòu)進(jìn)行高低速、正反轉(zhuǎn)和啟??刂?,以達(dá)到快速存取藥品的目的。
系統(tǒng)控制結(jié)構(gòu)如圖2 所示。
圖2 PLC 控制系統(tǒng)結(jié)構(gòu)圖
對(duì)于單相交流電機(jī),系統(tǒng)一般通過調(diào)速器對(duì)其進(jìn)行驅(qū)動(dòng)控制。每個(gè)調(diào)速器在驅(qū)動(dòng)執(zhí)行機(jī)構(gòu)正反轉(zhuǎn)、高低速及啟停的運(yùn)動(dòng)過程中需要至少5 個(gè)I/O 點(diǎn),所以對(duì)于10個(gè)或更多的執(zhí)行機(jī)構(gòu)就需要PLC 擴(kuò)展較多的I/O 模塊。且在運(yùn)動(dòng)時(shí)PLC 既需要控制10 個(gè)執(zhí)行機(jī)構(gòu)的運(yùn)動(dòng),又要采集10 個(gè)執(zhí)行機(jī)構(gòu)的位置信息,且同時(shí)要對(duì)這些信息進(jìn)行處理,這就增加了PLC 運(yùn)行的負(fù)擔(dān)。當(dāng)執(zhí)行機(jī)構(gòu)數(shù)量更多時(shí),可能會(huì)導(dǎo)致PLC 內(nèi)部程序邏輯異常復(fù)雜,而且若某個(gè)執(zhí)行機(jī)構(gòu)出現(xiàn)故障時(shí)會(huì)導(dǎo)致整個(gè)控制系統(tǒng)無法使用。所以傳統(tǒng)的控制方法靈活性差,控制復(fù)雜,成本高,難以實(shí)現(xiàn)立體藥庫模塊化擴(kuò)展[7]的控制需求。
由于單片機(jī)成本低廉,可靠性高,控制簡單,常用來作為底層運(yùn)動(dòng)部件控制器。在該設(shè)計(jì)中,單片機(jī)外圍電路由顯示模塊、通信模塊、控制模塊、信號(hào)采集模塊等組成。多個(gè)單片機(jī)通過RS485 總線與上位機(jī)PC 進(jìn)行通信。
在該系統(tǒng)中,以上位機(jī)PC 作為主站,多個(gè)單片機(jī)為從站,構(gòu)成了一個(gè)小型的主從式集散系統(tǒng)。系統(tǒng)通過RS485[8]總線進(jìn)行通信,PC 使用轉(zhuǎn)換模塊將RS232 信號(hào)轉(zhuǎn)換為RS485 信號(hào)。由于單片機(jī)數(shù)據(jù)信號(hào)電平為TTL電平,PC 機(jī)與單片機(jī)通信時(shí)需要MAX487 芯片進(jìn)行信號(hào)電平轉(zhuǎn)換。該通信方式可以對(duì)單片機(jī)的數(shù)量進(jìn)行擴(kuò)展,消除了I/O 點(diǎn)數(shù)量的限制,最多可以驅(qū)動(dòng)128 個(gè)單片機(jī)。
PC 與單片機(jī)串行通信的連接框圖如圖3 所示。
圖3 PC 與單片機(jī)通信連接框圖
3.2.1 顯示電路
顯示電路主要顯示所出藥品的數(shù)量,主要由兩個(gè)七段共陰極數(shù)碼管和譯碼器74LS240,反相譯碼器ULN2003 組成,顯示電路如圖4 所示。
圖4 顯示電路
LED 數(shù)碼管采取共陰極接法,數(shù)據(jù)顯示為動(dòng)態(tài)顯示方式。輸入位經(jīng)譯碼器譯碼后輸出相應(yīng)位驅(qū)動(dòng)LED數(shù)碼管。數(shù)碼管的位選信號(hào)由單片機(jī)的P2.0~P2.1 輸出,ULN2003 譯碼后選通相應(yīng)的數(shù)碼管,高電平有效。
3.2.3 通信電路
通信電路用來與上位機(jī)進(jìn)行通信。由于單片機(jī)輸出信號(hào)為TTL 電平,而通信過程中所需電平為RS485 電平,研究者需要通過MAX487 將TTL 電平轉(zhuǎn)換為RS485 電平才能與實(shí)現(xiàn)與上位機(jī)的數(shù)據(jù)交換。通信電路如圖5 所示。
圖5 通信電路
3.2.4 控制電路
控制電路用來控制單相交流電機(jī)的高低速、正反轉(zhuǎn)和啟停運(yùn)動(dòng)[9]。在該設(shè)計(jì)中,由于單相交流電機(jī)的速度隨著驅(qū)動(dòng)器輸入電壓的增加而增加,而驅(qū)動(dòng)器輸入電壓的值是通過改變驅(qū)動(dòng)器上的電阻來實(shí)現(xiàn)的,系統(tǒng)通過輸入不同的電阻值來改變單相交流電機(jī)的速度。該設(shè)計(jì)通過單片機(jī)輸出位P1.0~P1.2 控制繼電器的通斷來實(shí)現(xiàn)對(duì)驅(qū)動(dòng)器的控制。繼電器1 常開觸點(diǎn)接驅(qū)動(dòng)器開關(guān)輸入點(diǎn)實(shí)行電機(jī)的啟停運(yùn)動(dòng),繼電器2 的常閉觸點(diǎn)和常開觸點(diǎn)接不同的輸入電阻值控制電機(jī)的高、低速,繼電器3 的常閉觸點(diǎn)和常開觸點(diǎn)接CW 及CCW 輸入端實(shí)行對(duì)電機(jī)的正、反轉(zhuǎn)控制。
3.2.5 傳感器輸入電路
傳感器用來檢測(cè)儲(chǔ)藥盒所在的位置,并將該位置信息傳入到單片機(jī)進(jìn)行進(jìn)一步的處理。傳感器輸入信號(hào)為開關(guān)量,輸入引腳為P2.4~P2.5。單片機(jī)通過檢測(cè)引腳電平的變化判斷傳感器是否感應(yīng)到信號(hào)并做出相應(yīng)的動(dòng)作。
在PC 與單片機(jī)通信的過程中,PC 作為主站,啟動(dòng)并控制每一次通信[10-11]。多個(gè)單片機(jī)作為從站,接收主站發(fā)送的信息并做出應(yīng)答。每個(gè)單片機(jī)都有一個(gè)不同的站號(hào),PC 通過發(fā)送不同的站號(hào)來選擇所需要的單片機(jī)。
在單片機(jī)的初始化過程中,本研究首先置SM2 為1,使單片機(jī)可以實(shí)現(xiàn)多機(jī)通信。單片機(jī)工作于通信模式2。由于PC 不能像單片機(jī)一樣發(fā)送第九位數(shù)據(jù)TB8,這就需要PC 發(fā)送的第9 位奇偶校驗(yàn)位具有TB8位的功能,才能實(shí)現(xiàn)PC 與多個(gè)單片機(jī)一對(duì)一的通信。所以本研究在PC 發(fā)送地址時(shí)強(qiáng)制奇偶校驗(yàn)位為1,而在發(fā)送數(shù)據(jù)時(shí)強(qiáng)制奇偶校驗(yàn)位為0。
PC 與單片機(jī)的通信過程如下:
(1)PC 首先向單片機(jī)發(fā)送地址信息。
(2)單片機(jī)接收到PC 發(fā)送的地址信息后,執(zhí)行串口通信中斷程序,與自己的從站地址相比較,若發(fā)送的地址與從站地址相同,則返回地址應(yīng)答信號(hào)并置SM2 為0;若不同則退出中斷。
(3)當(dāng)PC 接收到單片機(jī)發(fā)送的地址應(yīng)答信號(hào)后,判斷該應(yīng)答信號(hào)是否正確,若正確則開始發(fā)送數(shù)據(jù),否則繼續(xù)發(fā)送地址信息。
(4)單片機(jī)接收到數(shù)據(jù)信息后,執(zhí)行串口中斷服務(wù)程序,并發(fā)送數(shù)據(jù)應(yīng)答信號(hào),并置SM2 為1。
(5)當(dāng)PC 接收到正確的數(shù)據(jù)應(yīng)答信號(hào)后,繼續(xù)選擇下一個(gè)單片機(jī),并發(fā)送信息。
本研究對(duì)立體藥庫分別采用PLC 控制和基于單片機(jī)的DCS 控制兩種控制方案進(jìn)行模擬出藥實(shí)驗(yàn),分析兩種控制方案下系統(tǒng)的出錯(cuò)率及平均運(yùn)行時(shí)間。其中,出藥總時(shí)間為:
式中:T1=t1+t2+…+ti+…tn,ti—單個(gè)處方正常運(yùn)行出藥的時(shí)間,T1—試驗(yàn)所有處方正常運(yùn)行總時(shí)間,T2—系統(tǒng)故障后排除故障的總時(shí)間,T3—人工操作總時(shí)間。
單個(gè)處方出藥平均時(shí)間為:
式中:n—處方總數(shù)。
試驗(yàn)過程如下:
(1)對(duì)立體藥庫分別采用傳統(tǒng)PLC 控制和基于單片機(jī)的DCS 控制進(jìn)行運(yùn)行實(shí)驗(yàn)。由上位機(jī)向控制系統(tǒng)隨機(jī)發(fā)送1 000 個(gè)處方,其中每種處方含5 種藥品。
(2)記錄每個(gè)處方正常運(yùn)行的起始時(shí)間和終止時(shí)間,求出單個(gè)處方運(yùn)行的時(shí)間ti。
(3)對(duì)系統(tǒng)出現(xiàn)故障未能正常出藥的處方,記錄該處方的出藥時(shí)間。出藥時(shí)間包括系統(tǒng)出現(xiàn)故障及排除故障的時(shí)間。
(4)記錄每次處方出藥后人工取藥的時(shí)間,求出人工操作的總時(shí)間T3。
(5)統(tǒng)計(jì)出不同控制方式下所有處方出藥的總時(shí)間和處方出錯(cuò)數(shù)量,求出處方平均運(yùn)行時(shí)間和出錯(cuò)率。
統(tǒng)計(jì)結(jié)果如表1 所示。
表1 處方結(jié)果統(tǒng)計(jì)表
結(jié)果表明:系統(tǒng)采用基于單片機(jī)的DCS 控制提高了系統(tǒng)的穩(wěn)定性,使系統(tǒng)出錯(cuò)率比采用傳統(tǒng)PLC 控制低0.2%;同時(shí)該控制方法提高了系統(tǒng)的出藥效率,處方平均時(shí)間比傳統(tǒng)PLC 控制少4.5 s。
通過分析可知,在上位機(jī)向單片機(jī)發(fā)送藥品信息的過程中,系統(tǒng)采用基于單片機(jī)的DCS 控制,只需將處方中藥品所在的位置信息分別發(fā)送到各自的單片機(jī),各單片機(jī)收到信息后則并行完成執(zhí)行機(jī)構(gòu)的運(yùn)動(dòng)控制及位置信息的采集等動(dòng)作,并將采集后的信息發(fā)送至上位機(jī)進(jìn)行進(jìn)一步的處理,單片機(jī)之間互不影響。而系統(tǒng)采用傳統(tǒng)PLC 控制時(shí),當(dāng)上位機(jī)向PLC 發(fā)送藥品的位置信息后,PLC 需要控制多個(gè)執(zhí)行機(jī)構(gòu)的運(yùn)動(dòng),同時(shí)對(duì)各機(jī)構(gòu)的位置信息進(jìn)行采集并進(jìn)行相應(yīng)處理。隨著執(zhí)行機(jī)構(gòu)增加,它們之間的邏輯關(guān)系也會(huì)更加復(fù)雜。這就增加了PLC 的運(yùn)行負(fù)擔(dān),降低了系統(tǒng)的穩(wěn)定性。所以系統(tǒng)采用基于單片機(jī)的DCS 控制,大大提高了系統(tǒng)的穩(wěn)定性和運(yùn)行效率。
該設(shè)計(jì)構(gòu)建了一個(gè)小型的DCS 系統(tǒng),即多個(gè)執(zhí)行機(jī)構(gòu)的運(yùn)動(dòng)分別由各個(gè)單片機(jī)控制完成,而單片機(jī)只需將運(yùn)動(dòng)信息與PC 進(jìn)行數(shù)據(jù)交換,避免了直接由一個(gè)PLC控制多個(gè)執(zhí)行機(jī)構(gòu)出現(xiàn)的編程復(fù)雜、可靠性低等弊端,提高了出藥效率。同時(shí)系統(tǒng)可以根據(jù)需要擴(kuò)展最多128個(gè)執(zhí)行機(jī)構(gòu),提高了系統(tǒng)的靈活性。該方法操作簡單、成本低廉,可以與調(diào)速器集成實(shí)現(xiàn)模塊化控制。
(Reference):
[1]程武山.分布式控制技術(shù)及應(yīng)用[M].北京:科學(xué)出版社,2008.
[2]趙建領(lǐng).51 系列單片機(jī)開發(fā)寶典[M].2 版.北京:電子工業(yè)出版社,2012.12.
[3]張德江.計(jì)算機(jī)控制系統(tǒng)[M].北京:機(jī)械工業(yè)出版社,2011.
[4]董國增.MCS-51 單片機(jī)接口及應(yīng)用實(shí)驗(yàn)和訓(xùn)練指導(dǎo)[M].2 版.北京:機(jī)械工業(yè)出版社,2009.
[5]趙雪峰.自動(dòng)化藥房關(guān)鍵技術(shù)研究[D].北京:北京航空航天大學(xué)機(jī)械學(xué)院,2010.
[6]霍 罡.歐姆龍PLC 應(yīng)用系統(tǒng)設(shè)計(jì)實(shí)例精解[M].北京:電子工業(yè)出版社,2010.
[7]吳秋明,和衛(wèi)星,陳曉平.基于RS485 總線的PC 與多單片機(jī)間的串行通信[J].微計(jì)算機(jī)信息,2006(23):143-145.
[8]王錦標(biāo),等.計(jì)算機(jī)控制系統(tǒng)[M].2 版.北京:清華大學(xué)出版社,2011.
[9]牛宗超.徐 森.基于M051 的單相交流異步電機(jī)調(diào)速控制系統(tǒng)設(shè)計(jì)[J].電工研究,2012(10):64-65.
[10]童奇波,仇榮剛.RS485 通信在隔膜紙成型插入機(jī)中的應(yīng)用[J].輕工機(jī)械,2011,29(4)47-50.
[11]吳興中,歐青立.一種PC 與單片機(jī)多機(jī)RS232 串口通信設(shè)計(jì)[J].國外電子測(cè)量技術(shù),2009,28(1):74-76.