張 騰,荊海剛
(浙江交工金筑交通建設有限公司,浙江杭州 310051)
傳統的自動倉儲系統通常采用自己的通信協議,而不同的現場設備監控平臺難以實現數據共享,不能有效分析數據,以提供全面的決策支持。應用OPC通信技術可以解決異構網絡之間的互聯問題,為系統中不同類型數據信息提供可靠的共享支持[1]。
OPC(OLE for Office Control)是OLE行業的過程控制標準,由國際組織的OPC基金會管理。它定義了如何使用微軟操作系統在計算機之間進行數據的實時交換,旨在開發一種基于微軟COM、DCOM和ActiveX技術的互操作接口標準。它還提供了更廣泛的自動化控制、系統現場設備和辦公室的互操作能力。
本文以自動倉儲仿真系統為例,開發了基于OPC通信技術的系統監控軟件。為保證監控軟件正常運行,需要建立監控軟件與PLC[2]控制器程序、現場設備的通訊。監控軟件和PLC控制器程序通過OPC通信技術實現互聯,采用C#語言開發程序接口,實現監控軟件控制功能[3]。
自動倉儲系統的硬件設備包括工控機(IPC)、堆垛機、輸送帶、提升機、移栽機、貨叉、PLC控制柜等設備[4]。工控機用于支持監控軟件的安裝,堆垛機用來存取貨物,貨物運輸采用輸送帶和提升機,移栽機是用來切換貨物運輸線路選擇[5]。PLC控制柜包括堆垛機PLC控制柜(從站)和現場設備PLC控制柜(主站)。堆垛機控制柜根據任務控制堆垛機的動作,主要涉及到橫向激光測距技術和縱向條碼掃描技術,現場設備控制柜用于控制輸送帶、提升機、貨叉等電氣設備的工作。控制系統硬件設備框架如圖1所示。
圖1 控制系統硬件設備架構
監控軟件作為自動倉儲系統的核心控制部分,主要完成控制策略的調度、數據處理與計算、信息傳輸等任務。它包括3個部分:數據庫、PLC控制、OPC通信程序接口。數據庫作為中間支持部分,主要用于支持PLC控制部分和系統數據處理的軟件運行,PLC控制用于調度現場設備的運行,實現數據采集、邏輯操作等任務,OPC通信程序接口包括OPC服務器通信配置和計算機OPC服務器程序接口開發。
根據自動存儲系統的要求,將監控軟件的設計概括為設備運行調度模塊、PLC控制模塊、程序接口模塊和數據庫信息處理4個主要支撐結構的設計。監控軟件設計框架如圖2所示。
圖2 監控軟件設計架構
因為程序接口的無縫連接,監控軟件控制模塊可以有序的執行任務。采用SIMATICNET和STEP7軟件搭建OPC服務器平臺[6],并使用C#開發OPC服務器接口程序,實現工控機與S7-300PLC的通訊[7],保證監控軟件的設計和調試的順利進行。進而監控軟件可以調度現場設備執行任務,并對各執行設備的工作狀態進行實時監控。
為建立OPC服務器與PLC之間的通信,必須配置OPC服務器。本文采用無線以太網實現工控機與PLC之間的通信,詳細介紹了OPC服務器配置及其OPC程序接口設計,所需軟件為STEP7 PLC軟件和SIMATICNET軟件,主要硬件設備包括工控機、西門子S7-300PLC、無線AP,配置方法如下。
(1)打開simatic net軟件—配置PC站點—添加OPC服務器—創建以太網(1)通信網絡—將IP地址設置為192.168.1.105→編譯并保存。
(2)打開Step7 PLC軟件,新建PLC控制器項目—配置以太網(1)通信網絡—設置IP地址192.168.1.102—下載到PLC控制器中。
(3)打開simatic net軟件的“站點配置編輯器”—單擊“導入站點”—在xdbs文件夾下找到xdb文件—導入,OPC服務器配置完成。
由于PLC是開放的,任何支持S7-300的設備都可以直接讀取PLC內的數據。通過配置OPC服務器并使用C#開發OPC服務器程序接口,變量結構由3個級別組成,如圖3所示。第一級是OPC服務器類型,服務器類型是opc.simaticNET;第二級是組,包含在服務器內部,將所有相同的變量放入一個組中;第三級是項(item),即一系列變量鏈接到OPC服務器,對應于PLC的I/Q等。
圖3 結構變量
為實現監控軟件與PLC的實時通訊與控制,需要開發OPC服務器接口程序。本文利用C#開發接口程序,主要步驟及程序代碼如下。
(1)聲明變量并列出主要變量
private OpcRcw.Da.IOPCServer ServerObj;
private Object GroupObj=null;
privateint pSvrGroupHandle=0;
private OpcRcw.Da.IOPCSyncIOIOPCSyncObj=null;
(2)創建一個opc服務器并建立到opc服務器的連接。opc服務器由函數public opc server()和函數public bool connect()創建,返回值用于顯示連接結果“true”表示連接成功,“false”表示連接失敗。
(3)將group添加到opc服務器中。opc服務器group對象由public bool addgroup()函數創建,并用返回值顯示結果“false”表示添加的組失敗,“true”表示添加的組成功。
(4)向group對象中添加項,即通過public bool add items()函數向服務器的group對象中添加多個項。
(5)數據同步讀寫程序由public bool syncwrite()和public bool syncread()變量值函數創建。
監控軟件作為實時監控客戶端,可對自動倉儲系統的工作狀態進行監控,使操作人員能夠以更高的效率對系統進行維護和控制。監控軟件界面如圖4所示。該軟件具有與數據庫、PLC、現場設備通訊切換功能、系統故障清除、系統工作模式切換、設備接口初始化等功能。其中初始化設備接口的功能是確保現場設備的準備工作,如輸送機接口、堆垛機接口、傳送帶接口等,以保證監控軟件在接到任務后正常執行,設備初始化接口程序代碼如下。
privatevoid
tsbInitDevice_Click(objectsender,EventArgs e)
{
if(ds.Tables[0].Rows.Count>0)
{
AddListSystemEvent;
foreach(DataRowrow in ds.Tables[0].Rows)
{
Stacker stk=new Stacker(this, row);
stackers.Add(row.ItemArray[0].ToString(), stk);
frm.Text=string.Format(stackers[row.ItemArray[0].
圖4 監控軟件操作界面
ToString()].deviceId);this.Controls.Add(stackers
[row.ItemArray[0].ToString()].pic);
stackers[row.ItemArray[0].ToString()].pic.BringToFront();
stackers[row.ItemArray[0].ToString()].pic.DoubleClick=newSystem.EventHandler(this.pic_StackerDoubleClick);
}}
if(ds.Tables[0].Rows.Count>0)
{
AddListSystemEvent();
foreach(DataRowrow in ds.Tables[0].Rows)
{
cr=new Convyer(this, row);
convyers.Add(row.ItemArray[0].ToString(), cr);
圖5 堆垛機控制流程
frm.Text=string.Format(convyers[row.ItemArray[0].
ToString()].deviceId);
this.Controls.Add(convyers[row.ItemArray[0].ToString()].
pic); convyers[row.ItemArray[0].ToString()].pic.BringTo-
Front(); convyers[row.ItemArray[0].ToString()].pic.Dou
bleClick +=newSystem.EventHandler(this.pic_ConvyerDouble-
Click);
}}}
監控軟件工作時,首先需要連接到數據庫和PLC,并初始化現場設備程序接口在線工作,其次需要使用堆垛機控制模塊來執行下發的任務。利用監控軟件對堆垛機控制模塊進行控制,實現對堆垛機的任務下發。在任務執行過程中,可以從監控軟件的圖像顯示區實時監控系統的運行狀態,若某個控制模塊出現故障,會出現紅色提示,以便快速找到故障發生位置并進行清除。堆垛機控制流程如圖5所示。
基于OPC通信技術,使用C#語言開發了監控軟件,為驗證系統中數據的實時傳輸效率,對各通信站點之間的數據傳輸響應時間進行了測試與分析。
首先,必須正確配置通信站點的IP地址,其次,通過發送不同的數據包來進行數據傳輸響應時間的采集和分析。選擇監控計算機作為數據包發送站點,分別向管理計算機站點、主站點PLC、從站點堆垛機PLC發送不同類型的數據包。如表1所示,從監控計算機到堆垛機PLC的數據傳輸平均響應時間分別為5 ms和2 ms。結果表明,該系統可以實現站間數據傳輸。從采集到的響應時間數據來看,自動存儲系統在無線網絡通信方式下,數據傳輸響應時間保持在不同通信站點之間15 ms以內,能夠滿足系統通信要求。
表1 無線網絡模式下數據傳輸實時監測
為進行比較分析,對有線以太網通信模式下的數據傳輸進行了測試,數據傳輸響應時間均小于1ms,如表2所示。雖然無線網絡通信的響應時間明顯大于有線通信,但它仍然能夠滿足系統通信的要求,大大提高了系統的靈活性和可擴展性。
表2 有限網絡模式下數據傳輸實時監測
需要注意的是,在自動倉儲系統傳輸距離越來越長的情況下,為保證無線網絡通信和實時傳輸的穩定性,可以采用增加無線中繼的方式,或者將無線AP安裝到更高的位置,同時盡量減少金屬貨架對無線信號的干擾。
本文研究了工控機與PLC控制器之間的通信方式,并開發了接口程序,闡述了監控軟件的功能。OPC通信技術有效地解決了系統內部異構網絡之間的互聯問題。并使用C#開發了系統監控軟件,該軟件已成功應用于自動倉儲仿真系統。實驗表明,異構網絡之間的連接是穩定的,監控軟件實現了對系統工作狀態的實時監控,并能快速定位故障源,提高系統維護效率,為物流倉儲系統發展提供借鑒。