鹿紅超,高志慧,魏 來
(北京航空航天大學 機械工程及自動化學院,北京 100191)
對系統(tǒng)進行分布式控制逐漸成為工業(yè)控制領(lǐng)域中的主流。DCS[1]將系統(tǒng)的控制功能分散在各單個計算機上實現(xiàn),當某臺計算機出現(xiàn)故障時并不會導致系統(tǒng)其他功能的喪失,具有較高的可靠性。上層監(jiān)控系統(tǒng)只需負責信息的處理,將處理后的信息與底層計算機進行數(shù)據(jù)交換,而不需要實現(xiàn)底層機構(gòu)的具體控制,控制結(jié)構(gòu)簡單,易于維護。
單片機[2]具有較高的可靠性以及處理功能強大、易于實現(xiàn)模塊化等優(yōu)點,常用在底層機構(gòu)的控制上。在工業(yè)控制系統(tǒng)[3]中,PC 機常作為上位機進行數(shù)據(jù)的處理和控制信息的交換,單片機作為下位機控制機構(gòu)的運動及信息的采集,并將采集的信息作初步處理后發(fā)送至上位機進行進一步的處理。在上位機PC 與單片機通信方式中,常通過RS232 串口來實現(xiàn)PC 與多個單片機的一對一通信[4]。
立體藥庫[5]是一種新型的自動化倉儲系統(tǒng),可以實現(xiàn)異形包裝藥品的自動存取。
本研究以多個單片機為底層控制單元,以上位機PC 為上層信息處理系統(tǒng),設(shè)計一種小型的DCS 控制系統(tǒng),以實現(xiàn)立體藥庫存取藥品的運動。其中單片機外圍電路由顯示單元、控制單元、通信單元等組成。顯示單元用來顯示藥品的出藥數(shù)量;控制單元用來控制電機的正反轉(zhuǎn)、高低速及啟停運動;通信單元用來初步處理收集到的信息并將信息發(fā)送至上位機PC。上位機PC 則對將收到的信息進一步處理判斷,然后發(fā)送控制信息給下位機。
立體藥庫主要用來實現(xiàn)異形包裝藥品的存取,它由前后排貨架、儲藥盒、升降平臺及升降平臺上并排的10 個執(zhí)行機構(gòu)組成。執(zhí)行機構(gòu)由單相交流電機提供動力,通過控制電機的正、反轉(zhuǎn)實現(xiàn)貨架上儲藥盒的取出與送回。在存取藥品過程中,升降臺運動到指定層,執(zhí)行機構(gòu)正轉(zhuǎn),將藥盒取至升降臺上,然后升降臺運動到出藥口所在層,執(zhí)行機構(gòu)繼續(xù)正轉(zhuǎn),將藥盒送至出藥口,等待藥品拿出;藥品拿出后,藥盒返回原來所在的位置,此時電機反轉(zhuǎn)。該立體藥庫可以同時存取10 個儲藥盒。其結(jié)構(gòu)如圖1 所示。

圖1 立體藥庫結(jié)構(gòu)
在傳統(tǒng)的控制方法中,系統(tǒng)一般是通過一個PLC[6]作為控制元件來對10 個執(zhí)行機構(gòu)進行高低速、正反轉(zhuǎn)和啟停控制,以達到快速存取藥品的目的。
系統(tǒng)控制結(jié)構(gòu)如圖2 所示。

圖2 PLC 控制系統(tǒng)結(jié)構(gòu)圖
對于單相交流電機,系統(tǒng)一般通過調(diào)速器對其進行驅(qū)動控制。每個調(diào)速器在驅(qū)動執(zhí)行機構(gòu)正反轉(zhuǎn)、高低速及啟停的運動過程中需要至少5 個I/O 點,所以對于10個或更多的執(zhí)行機構(gòu)就需要PLC 擴展較多的I/O 模塊。且在運動時PLC 既需要控制10 個執(zhí)行機構(gòu)的運動,又要采集10 個執(zhí)行機構(gòu)的位置信息,且同時要對這些信息進行處理,這就增加了PLC 運行的負擔。當執(zhí)行機構(gòu)數(shù)量更多時,可能會導致PLC 內(nèi)部程序邏輯異常復雜,而且若某個執(zhí)行機構(gòu)出現(xiàn)故障時會導致整個控制系統(tǒng)無法使用。所以傳統(tǒng)的控制方法靈活性差,控制復雜,成本高,難以實現(xiàn)立體藥庫模塊化擴展[7]的控制需求。
由于單片機成本低廉,可靠性高,控制簡單,常用來作為底層運動部件控制器。在該設(shè)計中,單片機外圍電路由顯示模塊、通信模塊、控制模塊、信號采集模塊等組成。多個單片機通過RS485 總線與上位機PC 進行通信。
在該系統(tǒng)中,以上位機PC 作為主站,多個單片機為從站,構(gòu)成了一個小型的主從式集散系統(tǒng)。系統(tǒng)通過RS485[8]總線進行通信,PC 使用轉(zhuǎn)換模塊將RS232 信號轉(zhuǎn)換為RS485 信號。由于單片機數(shù)據(jù)信號電平為TTL電平,PC 機與單片機通信時需要MAX487 芯片進行信號電平轉(zhuǎn)換。該通信方式可以對單片機的數(shù)量進行擴展,消除了I/O 點數(shù)量的限制,最多可以驅(qū)動128 個單片機。
PC 與單片機串行通信的連接框圖如圖3 所示。

圖3 PC 與單片機通信連接框圖
3.2.1 顯示電路
顯示電路主要顯示所出藥品的數(shù)量,主要由兩個七段共陰極數(shù)碼管和譯碼器74LS240,反相譯碼器ULN2003 組成,顯示電路如圖4 所示。

圖4 顯示電路
LED 數(shù)碼管采取共陰極接法,數(shù)據(jù)顯示為動態(tài)顯示方式。輸入位經(jīng)譯碼器譯碼后輸出相應位驅(qū)動LED數(shù)碼管。數(shù)碼管的位選信號由單片機的P2.0~P2.1 輸出,ULN2003 譯碼后選通相應的數(shù)碼管,高電平有效。
3.2.3 通信電路
通信電路用來與上位機進行通信。由于單片機輸出信號為TTL 電平,而通信過程中所需電平為RS485 電平,研究者需要通過MAX487 將TTL 電平轉(zhuǎn)換為RS485 電平才能與實現(xiàn)與上位機的數(shù)據(jù)交換。通信電路如圖5 所示。

圖5 通信電路
3.2.4 控制電路
控制電路用來控制單相交流電機的高低速、正反轉(zhuǎn)和啟停運動[9]。在該設(shè)計中,由于單相交流電機的速度隨著驅(qū)動器輸入電壓的增加而增加,而驅(qū)動器輸入電壓的值是通過改變驅(qū)動器上的電阻來實現(xiàn)的,系統(tǒng)通過輸入不同的電阻值來改變單相交流電機的速度。該設(shè)計通過單片機輸出位P1.0~P1.2 控制繼電器的通斷來實現(xiàn)對驅(qū)動器的控制。繼電器1 常開觸點接驅(qū)動器開關(guān)輸入點實行電機的啟停運動,繼電器2 的常閉觸點和常開觸點接不同的輸入電阻值控制電機的高、低速,繼電器3 的常閉觸點和常開觸點接CW 及CCW 輸入端實行對電機的正、反轉(zhuǎn)控制。
3.2.5 傳感器輸入電路
傳感器用來檢測儲藥盒所在的位置,并將該位置信息傳入到單片機進行進一步的處理。傳感器輸入信號為開關(guān)量,輸入引腳為P2.4~P2.5。單片機通過檢測引腳電平的變化判斷傳感器是否感應到信號并做出相應的動作。
在PC 與單片機通信的過程中,PC 作為主站,啟動并控制每一次通信[10-11]。多個單片機作為從站,接收主站發(fā)送的信息并做出應答。每個單片機都有一個不同的站號,PC 通過發(fā)送不同的站號來選擇所需要的單片機。
在單片機的初始化過程中,本研究首先置SM2 為1,使單片機可以實現(xiàn)多機通信。單片機工作于通信模式2。由于PC 不能像單片機一樣發(fā)送第九位數(shù)據(jù)TB8,這就需要PC 發(fā)送的第9 位奇偶校驗位具有TB8位的功能,才能實現(xiàn)PC 與多個單片機一對一的通信。所以本研究在PC 發(fā)送地址時強制奇偶校驗位為1,而在發(fā)送數(shù)據(jù)時強制奇偶校驗位為0。
PC 與單片機的通信過程如下:
(1)PC 首先向單片機發(fā)送地址信息。
(2)單片機接收到PC 發(fā)送的地址信息后,執(zhí)行串口通信中斷程序,與自己的從站地址相比較,若發(fā)送的地址與從站地址相同,則返回地址應答信號并置SM2 為0;若不同則退出中斷。
(3)當PC 接收到單片機發(fā)送的地址應答信號后,判斷該應答信號是否正確,若正確則開始發(fā)送數(shù)據(jù),否則繼續(xù)發(fā)送地址信息。
(4)單片機接收到數(shù)據(jù)信息后,執(zhí)行串口中斷服務程序,并發(fā)送數(shù)據(jù)應答信號,并置SM2 為1。
(5)當PC 接收到正確的數(shù)據(jù)應答信號后,繼續(xù)選擇下一個單片機,并發(fā)送信息。
本研究對立體藥庫分別采用PLC 控制和基于單片機的DCS 控制兩種控制方案進行模擬出藥實驗,分析兩種控制方案下系統(tǒng)的出錯率及平均運行時間。其中,出藥總時間為:
式中:T1=t1+t2+…+ti+…tn,ti—單個處方正常運行出藥的時間,T1—試驗所有處方正常運行總時間,T2—系統(tǒng)故障后排除故障的總時間,T3—人工操作總時間。
單個處方出藥平均時間為:

式中:n—處方總數(shù)。
試驗過程如下:
(1)對立體藥庫分別采用傳統(tǒng)PLC 控制和基于單片機的DCS 控制進行運行實驗。由上位機向控制系統(tǒng)隨機發(fā)送1 000 個處方,其中每種處方含5 種藥品。
(2)記錄每個處方正常運行的起始時間和終止時間,求出單個處方運行的時間ti。
(3)對系統(tǒng)出現(xiàn)故障未能正常出藥的處方,記錄該處方的出藥時間。出藥時間包括系統(tǒng)出現(xiàn)故障及排除故障的時間。
(4)記錄每次處方出藥后人工取藥的時間,求出人工操作的總時間T3。
(5)統(tǒng)計出不同控制方式下所有處方出藥的總時間和處方出錯數(shù)量,求出處方平均運行時間和出錯率。
統(tǒng)計結(jié)果如表1 所示。

表1 處方結(jié)果統(tǒng)計表
結(jié)果表明:系統(tǒng)采用基于單片機的DCS 控制提高了系統(tǒng)的穩(wěn)定性,使系統(tǒng)出錯率比采用傳統(tǒng)PLC 控制低0.2%;同時該控制方法提高了系統(tǒng)的出藥效率,處方平均時間比傳統(tǒng)PLC 控制少4.5 s。
通過分析可知,在上位機向單片機發(fā)送藥品信息的過程中,系統(tǒng)采用基于單片機的DCS 控制,只需將處方中藥品所在的位置信息分別發(fā)送到各自的單片機,各單片機收到信息后則并行完成執(zhí)行機構(gòu)的運動控制及位置信息的采集等動作,并將采集后的信息發(fā)送至上位機進行進一步的處理,單片機之間互不影響。而系統(tǒng)采用傳統(tǒng)PLC 控制時,當上位機向PLC 發(fā)送藥品的位置信息后,PLC 需要控制多個執(zhí)行機構(gòu)的運動,同時對各機構(gòu)的位置信息進行采集并進行相應處理。隨著執(zhí)行機構(gòu)增加,它們之間的邏輯關(guān)系也會更加復雜。這就增加了PLC 的運行負擔,降低了系統(tǒng)的穩(wěn)定性。所以系統(tǒng)采用基于單片機的DCS 控制,大大提高了系統(tǒng)的穩(wěn)定性和運行效率。
該設(shè)計構(gòu)建了一個小型的DCS 系統(tǒng),即多個執(zhí)行機構(gòu)的運動分別由各個單片機控制完成,而單片機只需將運動信息與PC 進行數(shù)據(jù)交換,避免了直接由一個PLC控制多個執(zhí)行機構(gòu)出現(xiàn)的編程復雜、可靠性低等弊端,提高了出藥效率。同時系統(tǒng)可以根據(jù)需要擴展最多128個執(zhí)行機構(gòu),提高了系統(tǒng)的靈活性。該方法操作簡單、成本低廉,可以與調(diào)速器集成實現(xiàn)模塊化控制。
(Reference):
[1]程武山.分布式控制技術(shù)及應用[M].北京:科學出版社,2008.
[2]趙建領(lǐng).51 系列單片機開發(fā)寶典[M].2 版.北京:電子工業(yè)出版社,2012.12.
[3]張德江.計算機控制系統(tǒng)[M].北京:機械工業(yè)出版社,2011.
[4]董國增.MCS-51 單片機接口及應用實驗和訓練指導[M].2 版.北京:機械工業(yè)出版社,2009.
[5]趙雪峰.自動化藥房關(guān)鍵技術(shù)研究[D].北京:北京航空航天大學機械學院,2010.
[6]霍 罡.歐姆龍PLC 應用系統(tǒng)設(shè)計實例精解[M].北京:電子工業(yè)出版社,2010.
[7]吳秋明,和衛(wèi)星,陳曉平.基于RS485 總線的PC 與多單片機間的串行通信[J].微計算機信息,2006(23):143-145.
[8]王錦標,等.計算機控制系統(tǒng)[M].2 版.北京:清華大學出版社,2011.
[9]牛宗超.徐 森.基于M051 的單相交流異步電機調(diào)速控制系統(tǒng)設(shè)計[J].電工研究,2012(10):64-65.
[10]童奇波,仇榮剛.RS485 通信在隔膜紙成型插入機中的應用[J].輕工機械,2011,29(4)47-50.
[11]吳興中,歐青立.一種PC 與單片機多機RS232 串口通信設(shè)計[J].國外電子測量技術(shù),2009,28(1):74-76.