黃俊強(qiáng) 陳柏金 黨發(fā)科
摘 要:結(jié)合某自動化立體倉庫的實(shí)際工作情況,對其監(jiān)控管理系統(tǒng)上下位之間數(shù)據(jù)通訊方式進(jìn)行了分析和設(shè)計(jì)。采用基于工業(yè)以太網(wǎng)和OPC通信技術(shù),實(shí)現(xiàn)了上位監(jiān)控管理服務(wù)器與下位主控PLC之間的通信。同時在監(jiān)控管理系統(tǒng)中配置多個OPC服務(wù)器,組成多OPC服務(wù)器/客戶端的網(wǎng)絡(luò)結(jié)構(gòu),增強(qiáng)了監(jiān)控管理系統(tǒng)的穩(wěn)定性,提高了自動化立體倉庫的任務(wù)指令執(zhí)行效率和管理水平。
關(guān)鍵詞:自動化立體倉庫;監(jiān)控管理系統(tǒng);多OPC服務(wù)器;異步數(shù)據(jù)訪問
中圖分類號:F406.5 文獻(xiàn)標(biāo)識碼:A
Abstract: According to the actual workflow of a AS/RS, the mode of data communication between host computer and PLC in monitor and management system is analyzed and designed. The data communication between host computer and master PLC is built on the basis of the OPC communication technology and industrial ethernet technology. Multiple OPC servers are configured in this monitor and management system. The multi OPC server/client network structure contribute to increasing the stability of monitor and management system, improving the efficiency and management level of AS/RS.
Key words: automated storage & retrieval system; monitor and management system; multiple OPC servers; asynchronous data access
0 引 言
隨著企業(yè)生產(chǎn)過程自動化程度的不斷提高,自動化立體倉庫被越來越廣泛的應(yīng)用到自動化生產(chǎn)線中。為了使自動化立體倉庫中的堆垛機(jī)、輸送機(jī)、條碼掃描識別系統(tǒng)及各種檢測傳感器等設(shè)備在系統(tǒng)中高效、安全的運(yùn)行,從而完成一系列任務(wù),一個高可靠性、高效率的監(jiān)控管理系統(tǒng)必不可少。自動化立體倉庫監(jiān)控管理系統(tǒng)主要負(fù)責(zé)從ERP接收和反饋出入庫任務(wù),自動控制作業(yè)指令的下發(fā),實(shí)時監(jiān)控下位物流設(shè)備堆垛機(jī)及輸送機(jī)的工作狀態(tài)和報警信息,以及對庫房內(nèi)部資源的合理管理利用。要實(shí)現(xiàn)上述功能,最主要的是實(shí)現(xiàn)上位監(jiān)控管理系統(tǒng)與下位物流設(shè)備之間的數(shù)據(jù)通信。上位服務(wù)器與下位機(jī)之間常用的通信方式有串行通信、現(xiàn)場總線通信、工業(yè)以太網(wǎng)通信等[1]。然而到目前為止,由于硬件的驅(qū)動器和與其連接的應(yīng)用程序之間的接口并沒有統(tǒng)一的標(biāo)準(zhǔn),一般來說要根據(jù)已選擇通信方式所對應(yīng)的通信協(xié)議在立體倉庫監(jiān)控管理系統(tǒng)軟件中編寫專門的通訊接口和設(shè)備驅(qū)動程序[2],這就會造成系統(tǒng)通用性差和可移植性差的弊病。而采用OPC技術(shù)將很好地解決這些問題。
本文以某公司自動化立體倉庫監(jiān)控管理系統(tǒng)開發(fā)為背景,詳細(xì)分析立體倉庫的組成結(jié)構(gòu),設(shè)計(jì)監(jiān)控管理系統(tǒng)上下位之間的數(shù)據(jù)通信網(wǎng)絡(luò)。介紹采用OPC通信技術(shù),在監(jiān)控管理系統(tǒng)中配置多個OPC服務(wù)器,組成多OPC服務(wù)器/客戶端的網(wǎng)絡(luò)結(jié)構(gòu),實(shí)現(xiàn)與下位PLC的實(shí)時通信,順利完成各項(xiàng)庫操作指令。
1 立體倉庫的結(jié)構(gòu)分析
該自動化立體倉庫只有一個庫區(qū)分為4個巷道,每個巷道由2排橫梁組合式雙貨位貨架組成,巷道長度在100米左右且均是直道。立體倉庫平面圖如圖1所示。
立體倉庫位于車間中部,兩邊都與自動化生產(chǎn)線相連,要求從庫房兩端都可以進(jìn)行出入庫操作。因此庫房兩端都規(guī)劃一片出入庫區(qū)域,每塊出入庫區(qū)域?qū)?yīng)一個控制室,里面均配備一臺工控計(jì)算機(jī)和一臺條碼打印機(jī)。在每條巷道中有一臺堆垛機(jī),用來取送托盤。由于要求立體倉庫兩端都可以進(jìn)行出入庫操作,則在巷道兩端各配備一臺輸送機(jī)。在出入庫區(qū)域靠近每臺輸送機(jī)旁安裝一臺觸屏計(jì)算機(jī)終端,每臺觸屏終端上安裝一部條碼掃描槍,用來出入庫時掃描物料條形碼。
庫管人員通過控制室中的工控計(jì)算機(jī)可以向立體倉庫中所有巷道下發(fā)出入庫任務(wù),而通過觸屏終端只能向?qū)?yīng)的輸送機(jī)和堆垛機(jī)下發(fā)庫操作指令。為了庫房的統(tǒng)一管理,只有主控制室里的工控計(jì)算機(jī)才有權(quán)限從集團(tuán)ERP接收出入庫任務(wù)并向其反饋任務(wù)完成狀態(tài)。
2 立體倉庫監(jiān)控管理系統(tǒng)的設(shè)計(jì)
傳統(tǒng)自動化立體倉庫監(jiān)控管理系統(tǒng)通常在上位只配置一臺監(jiān)控管理服務(wù)器,通過這臺服務(wù)器就可以完成立體倉庫的監(jiān)控管理任務(wù)。然而如前所述,在本立體倉庫的兩端都設(shè)置了一個控制室,這樣就避免了只有一個監(jiān)控管理服務(wù)器而造成入庫/領(lǐng)料工人以及庫管員在服務(wù)器和出入庫區(qū)域之間來回奔波的問題。因此將主控制室和副控制室中的工控計(jì)算機(jī)都設(shè)置成監(jiān)控管理服務(wù)器,在系統(tǒng)中組成多服務(wù)器結(jié)構(gòu)。
2.1 OPC簡介
OPC((OLE)for Process Control)是微軟公司以O(shè)LE/COM/DCOM技術(shù)為基礎(chǔ),采用客戶/服務(wù)器模式,為連接數(shù)據(jù)提供源(OPC,服務(wù)器)和數(shù)據(jù)使用者(OPC,客戶應(yīng)用程序)之間提供的一種軟件接口標(biāo)準(zhǔn)。OPC接口既適用于通過網(wǎng)絡(luò)把最下層控制設(shè)備的原始數(shù)據(jù)提供給作為數(shù)據(jù)使用者的上位應(yīng)用程序,也適用于應(yīng)用程序和物理設(shè)備的直接連接。隨著控制系統(tǒng)的不同,OPC服務(wù)器既可以是和OPC應(yīng)用程序在同一臺計(jì)算機(jī)上運(yùn)行的本地OPC服務(wù)器,也可以是在另外的計(jì)算機(jī)上運(yùn)行的遠(yuǎn)程OPC服務(wù)器[2]。
OPC服務(wù)器與OPC客戶端之間的交互包括兩個方面:客戶端程序從服務(wù)器讀取數(shù)據(jù)和客戶端程序向服務(wù)器寫入數(shù)據(jù)。兩者之間的數(shù)據(jù)訪問方法主要有同步訪問和異步訪問兩種[2]。
由于同步訪問適用于OPC客戶程序較少和數(shù)據(jù)量較小的場合,這里采用效率更高的異步訪問方式。異步訪問方式如圖2所示。OPC客戶程序?qū)PC服務(wù)器進(jìn)行請求后立刻返回,不用等待OPC服務(wù)器的響應(yīng),可以進(jìn)行其他操作。當(dāng)OPC服務(wù)器完成數(shù)據(jù)訪問時,觸發(fā)OPC客戶程序的異步訪問完成事件,將數(shù)據(jù)訪問結(jié)果傳送給OPC客戶程序[2-3]。
2.2 監(jiān)控管理系統(tǒng)的構(gòu)成
系統(tǒng)上位中,在主控制室中的工控計(jì)算機(jī)上安裝SIMATIC NET通信軟件及MYSQL數(shù)據(jù)庫,使其同時作為OPC服務(wù)器和數(shù)據(jù)庫服務(wù)器。副控制室中工控計(jì)算機(jī)安裝SIMATIC NET通信軟件和MYSQL的odbc鏈接驅(qū)動,使其作為OPC服務(wù)器和數(shù)據(jù)庫客戶端。而下面各巷道的觸屏計(jì)算機(jī)終端上則安裝OPC客戶端軟件和MYSQL的odbc鏈接驅(qū)動,作為OPC客戶端和數(shù)據(jù)庫客戶端。
系統(tǒng)下位由五臺S7-300PLC組成,一臺固定的主控PLC,四臺可移動的堆垛機(jī)PLC。主控PLC負(fù)責(zé)控制輸送機(jī),擴(kuò)展CP343-1以太網(wǎng)接口模塊,實(shí)現(xiàn)與上位機(jī)之間的數(shù)據(jù)通信,擴(kuò)展通訊模塊CP342-5通過Profibus DP現(xiàn)場總線和紅外光通信方式實(shí)現(xiàn)與四臺堆垛機(jī)PLC的數(shù)據(jù)通信。整個監(jiān)控管理系統(tǒng)的網(wǎng)絡(luò)結(jié)構(gòu)如圖3所示。
2.3 雙OPC服務(wù)器結(jié)構(gòu)
結(jié)合本立體倉庫的實(shí)際使用要求,在自動化立體倉庫監(jiān)控管理系統(tǒng)中,將主控制室和副控制室的工控計(jì)算機(jī)都配置成OPC服務(wù)器,各巷道觸屏終端配置成OPC客戶端,這樣組成雙OPC服務(wù)器/客戶端結(jié)構(gòu)。與傳統(tǒng)單OPC服務(wù)器/客戶端結(jié)構(gòu)相比,有如下優(yōu)點(diǎn):
(1)任務(wù)指令下發(fā)的便利性。集團(tuán)ERP下傳到立體倉庫的任務(wù)會儲存在立體倉庫內(nèi)部數(shù)據(jù)庫中等待分配。立體倉庫位于車間生產(chǎn)線中,可以根據(jù)生產(chǎn)實(shí)際需求和操作的方便,選擇從立體倉庫的任意一端進(jìn)行出入庫操作。操作人員選擇同側(cè)控制室中的服務(wù)器來接收要執(zhí)行的任務(wù),根據(jù)庫房出入庫準(zhǔn)則選擇合適的貨位,并將生成的任務(wù)指令排隊(duì)到任務(wù)列中。在具體巷道的觸屏操作端上,選擇任務(wù)列中的任務(wù)下發(fā)給下位設(shè)備。采用雙OPC服務(wù)器/客戶端,可以直接在立體倉庫的一側(cè)完成任務(wù)的操作,減少單OPC服務(wù)器/客戶端帶來的控制室與觸屏操作端不在同一側(cè)帶來操作上的麻煩,給任務(wù)指令下發(fā)帶來便利性。
(2)提高任務(wù)執(zhí)行效率。從任務(wù)操作流程可知,需要從控制室中的服務(wù)器上分配ERP下傳的任務(wù)。采用雙OPC服務(wù)器/客戶端結(jié)構(gòu),可以從立體倉庫兩端的控制室同時分配任務(wù),并能夠通過觸屏操作端操作全部巷道同時執(zhí)行庫操作指令,這樣既可以提高下位設(shè)備的利用率,也提高出入庫任務(wù)的執(zhí)行效率。
(3)提高系統(tǒng)的穩(wěn)定性。由于采用雙OPC服務(wù)器/客戶端結(jié)構(gòu),兩個控制室中的服務(wù)器都可以向所有巷道分配ERP下傳任務(wù)。當(dāng)一側(cè)控制室出現(xiàn)通信故障影響任務(wù)分配時,可通過另一控制室的服務(wù)器向要執(zhí)行任務(wù)的巷道下發(fā)指令,這樣可以提高系統(tǒng)的穩(wěn)定性,在某一服務(wù)器出現(xiàn)通信故障時仍能順利完成庫操作。
(4)方便庫管人員的管理。采用雙OPC服務(wù)器/客戶端結(jié)構(gòu),可將立體倉庫的庫管人員分配在庫房兩端的控制室中。庫管人員各司其職,根據(jù)系統(tǒng)權(quán)限管理好各自負(fù)責(zé)的巷道貨區(qū)。這樣可以合理安排庫管人員,強(qiáng)化責(zé)任意識,便于庫房人員管理。
3 監(jiān)控管理系統(tǒng)中上下位間的數(shù)據(jù)訪問
3.1 系統(tǒng)數(shù)據(jù)流分析
立體倉庫監(jiān)控管理系統(tǒng)只與主控PLC通信,主控PLC再通過紅外通信模塊與各巷道堆垛機(jī)PLC通信。因此監(jiān)控管理系統(tǒng)中上下位之間的數(shù)據(jù)通信即控制室中服務(wù)器和主控PLC之間的數(shù)據(jù)交互。監(jiān)控管理服務(wù)器向主控PLC下發(fā)庫操作作業(yè)指令并同時讀取主控PLC采集的監(jiān)控狀態(tài)信息。
下發(fā)給主控PLC的作業(yè)指令包括輸送機(jī)編號,堆垛機(jī)編號,作業(yè)類型以及貨位編號;從主控PLC中采集的狀態(tài)信息包括巷道堆垛機(jī)工作狀態(tài)、巷道堆垛機(jī)故障報警信息、輸送機(jī)工作狀態(tài)以及輸送機(jī)故障報警信息。
3.2 系統(tǒng)OPC數(shù)據(jù)訪問的實(shí)現(xiàn)
作為立體倉庫監(jiān)控管理系統(tǒng)需要實(shí)時了解立體倉庫的ERP任務(wù)狀態(tài)、貨位狀態(tài)、庫存信息和下位設(shè)備的狀態(tài),將這些信息按照巷道的不同添加到不同的數(shù)據(jù)組,定時刷新采集這些數(shù)據(jù)組中變量信息;而只有在作業(yè)指令下發(fā)時系統(tǒng)才向主控PLC執(zhí)行數(shù)據(jù)寫的操作。
選擇采用OPC異步讀寫的方式來實(shí)現(xiàn)OPC客戶程序與OPC服務(wù)器之間的數(shù)據(jù)交互。OPC異步數(shù)據(jù)訪問的實(shí)現(xiàn)步驟如下:
(1)OPC客戶程序連接OPC服務(wù)器,進(jìn)行添加OPC組和OPC項(xiàng)的操作
r1=CLSIDFromProgID(L"OPC.SimaticNET", &clsid;);
r1=CoCreateInstance(clsid,NULL,CLSCTX_LOCAL_SERVER, IID_IOPCServer, (void**)&m;_pIOPCServer);
通過上述函數(shù)創(chuàng)建一個OPCServer實(shí)例,調(diào)用函數(shù)AddGroup()添加四個組,每個組對應(yīng)立體倉庫中的一個巷道,函數(shù)AddItems()為每個組中要讀寫的數(shù)據(jù)添加對應(yīng)的項(xiàng)。
(2)創(chuàng)建回調(diào)類,并將回調(diào)類pCOPCDataCallback接口指針傳遞給OPC服務(wù)器
CComObject
CComObject
hRes=AtlAdvise(m_pIOPCGroupStateMgt,pCbUnk,IID_IOPCDataCallback,&m;_dwAdvise)。
(3)數(shù)據(jù)的異步讀、寫操作
OPC客戶程序獲得OPC組的IOPCAsyncIO2接口指針,然后調(diào)用該接口的讀、寫函數(shù)。
r1=m_pIOPCAsyncIO2->Read(34,phServer,g_dwReadTransID,&dwCancelID;,&pErrors;);
r1=m_pIOPCAsyncIO2->Write(8,phServer,values,g_dwWriteTransID,&dwCancelID;,&pErrors;)。
(4)數(shù)據(jù)回調(diào)反饋
當(dāng)OPC服務(wù)器完成數(shù)據(jù)讀寫操作后通過回調(diào)類pCOPCDataCallback接口指針通知OPC客戶程序。數(shù)據(jù)讀完成回調(diào)函數(shù)是OnReadComplete(),數(shù)據(jù)寫完成回調(diào)函數(shù)是OnWriteComplete()[3-4]。
4 總 結(jié)
本文以某公司自動化立體倉庫監(jiān)控管理系統(tǒng)開發(fā)為例,根據(jù)立體倉庫的實(shí)際功能需求,分析了監(jiān)控管理系統(tǒng)上下位之間數(shù)據(jù)通訊,設(shè)計(jì)了雙OPC服務(wù)器/多客戶端的OPC通信網(wǎng)絡(luò)結(jié)構(gòu)。并采用異步數(shù)據(jù)訪問的方式完成OPC服務(wù)器與OPC客戶程序之間的數(shù)據(jù)交互。
多OPC服務(wù)器在自動化立體倉庫中的應(yīng)用,使數(shù)據(jù)傳輸性能較傳統(tǒng)通信方式大大提高,增強(qiáng)了監(jiān)控管理系統(tǒng)的穩(wěn)定性,使任務(wù)指令下發(fā)更加便利,提高立體倉庫的任務(wù)指令執(zhí)行效率和管理水平。
參考文獻(xiàn):
[1] 杜亞江,馬殷元. OPC通信在自動化立體倉庫實(shí)時監(jiān)控系統(tǒng)中的應(yīng)用[J]. 蘭州交通大學(xué)學(xué)報,2010(6):87-90.
[2] 日本OPC協(xié)會. OPC應(yīng)用程序入門[Z]. OPC(中國)促進(jìn)委員會,2004.
[3] 佚名. 在VC中如何實(shí)現(xiàn)OPC數(shù)據(jù)訪問[Z]. SIEMENS,2006.
[4] 李曉虹,譚健斌,鄒益仁. 使用MTA技術(shù)實(shí)現(xiàn)OPC服務(wù)器的異步數(shù)據(jù)傳輸[J]. 化工自動化及儀表,2001,28(6):42-46.