黃俊強 陳柏金 黨發科



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