張 磊,雷 斌,高 博
(蘭州交通大學機電技術研究所,蘭州730070)
自動化立體倉庫作為CIMS(Computer Intergrated Manufacturing Systems,計算機集成制造系統)和FMS(Flexible Maunfacture System,柔性制造系統)的一部分,是生產加工環節中的一個緩沖環節。它是一個將毛坯、半成品、配套件或成品、工具等物料自動存取、自動檢索的多層倉庫存儲系統。現在智能化倉儲技術還處于初級發展階段,自動化立體倉庫仍是目前市場的主體。隨著中國企業規模的擴大和數量的增加,以及重視與合理應用土地這一稀缺資源的意識不斷增強,自動化立體倉庫必將得到更廣泛使用。
自動化立體倉庫設備主要包括堆垛機、輸送機等,這些設備由PLC控制。對這些設備的監控實際上就是上位監控計算機向控制相應設備的PLC發操作控制指令,同時接收下位PLC報告的設備工作信息。
設備監控系統功能一般包括設備調度、設備工作狀態顯示、記錄、報警、操作引導信息顯示、條碼讀取等。監控通信協議對于系統實現安全和高效的監控和調度是一個關鍵,設備監控通信協議需要考慮監控對象的工作特點和數據傳輸實時性要求以及可靠性要求。
系統監控可以分解成控制和監視兩個任務。控制是指上位監控計算機給PLC發送操作指令。操作指令類型包括:出庫、入庫、揀選出庫、庫內搬移。每條指令除了指令類型信息,還包括操作的操作地址,以及確認信息。監視主要是指記錄和顯示設備工作的狀況,主要是故障狀況。立體倉庫監控系統主要完成對入庫輸送機和堆垛機的監控。
本設計選擇的基于以太網的設備監控通信協議層次模型,如圖1。

圖1 監控通信協議層次模型
在傳輸層采用UDP/IP協議。UDP是一種無連接的傳輸協議,位于IP協議的上層。UDP采用簡單的校驗和技術進行差錯控制,不處理流量控制。同TCP協議相比,UDP傳輸不需要建立連接,報文簡單,傳輸的額外負載小,使得數據傳輸效率非常高,適用于實時通信。但UDP無法解決以太網本身通信不確定性和沖突的問題。這些問題可通過兩種方法結合解決:(1)在底層采用交換式以太網技術。(2)在應用層設計可靠的通信協議。
2.2.1 數據結構
為了防止通信對PLC輸入輸出映像區的占用和干擾,最好不要直接對輸入輸出映像區進行讀寫。同時為了方便實現用戶層應答協議,常用的方法是在PLC數據存儲器開辟2個數據區“窗口”,作為通信數據區。一塊數據區用于監控計算機發送指令,稱為PC寫區,專門由監控計算機寫,PLC讀。另一塊用于PLC報告狀態,稱為PLC寫區,專門由PLC寫,監控計算機讀。
PLC檢出故障后需要向監控計算機報告,如果把所有檢測到的狀態位(“0”表示正常、“1”表示故障)都傳到監控計算機,則信息量太大。例如,8個位置的超限故障則需要8 byte表示。對其進行壓縮是必要的,最常用的辦法是對故障狀況進行編碼,形成故障代碼。故障狀況以故障代碼形式發送給監控計算機,監控計算機把故障代碼翻譯成具體故障描述,在監控界面上顯示、報警,并記錄到數據庫,以備查詢。由于正常狀態沒必要報告,在正常情況下下位機不報告異常。系統中涉及的故障代碼包括堆垛機故障代碼和輸送機故障代碼。
2.2.2 通信原理及步驟
數據通信的關鍵在于數據的實時性和準確性。以PC向PLC發送數據為例,不僅要保證數據正確發送,還要保證PLC正確讀入。由于雙方各有獨立的數據塊,PC將數據寫到自己的數據塊中后,應等到PLC將數據讀入自己的數據塊中后,校驗PLC的讀取是否正確。
基本通信步驟如下:
(1) PC發送指令允許為1時,表示PLC可以接收指令。PC在PC寫區中寫入指令。(2) PLC在事件號發生變化時,將指令讀入,驗證指令合法性,驗證通過則清零PC發送指令允許,并將PC寫區“確認信息碼”置為1。表示PLC已經讀到指令數據,并禁止PC發送指令。(3) PC在收到“確認信息碼”為1后,表示指令發送成功。雙方作相應的處理后進行第2次通信。
下位機執行完一條指令后通過將“PC指令發送允許”置為1,向上位機報告。上位機接到完成報告后,即可發送下一條指令。通信過程中出現任何異常,下位機必須通知上位機,并結束此次通信,作相應的異常處理后,重新開始下一輪數據交換;若連續3次通信異常,系統將發出警告或停止運行。若下位機執行指令過程中出現異常,應停止運行并向上位機報告,等待管理員處理后重新聯機運行。
按照上述監控系統通信協議來完成監控,所需數據包括指令信息,條碼信息,PC寫區以及PLC寫區等幾部分組成。
指令信息來源于監控系統與管理系統的公共數據庫。首先在數據庫中建立指令緩沖表,無線終端作為數據產生者向數據庫中寫入指令,而監控系統作為數據使用者從數據庫取走指令,構成生產者-消費者通信模式。通過SQL語句,監控系統可以從公共數據庫中獲取指令信息。當指令處理過程中,可以進一步通過SQL語句完成對指令信息的修改。
條碼信息的獲取是通過映射得到的固定條碼掃描儀端口獲得的。經過映射后,監控系統可以像使用監控機本機所配的串口設備一樣使用該串口。通過加載VB程序中的RS-232串口通信控件,并進行相應的串口參數設置后即可通過該串口獲取條碼信息。
PC寫區以及PLC寫區這兩部分信息為PLC的兩個數據塊。完成對這兩個數據塊操作,必須通過OPC服務器來實現。
監控系統啟動時,首先建立與公共數據庫的鏈接。連接代碼如下所示:
If Conn.State Then Conn.Close Conn.Open Connstring
在與下位PLC建立連接的同時,應打開A區左右兩側的固定條碼掃描儀對應串口。代碼如下。
' 串口波特率設置
ComA.Settings 9600, n, 8, 1
ComB.Settings 9600, n, 8, 1
'串口接收門檻值設置
ComA.RThreshold = 7
ComB.RThreshold = 7
' 打開串口
If ComA.PortOpen = False Then ComA.PortOpen = True
If ComB.PortOpen = False Then ComB.PortOpen = True
串口打開后在OnComm事件中即可接收條碼信息。具體處理流程如圖3。
基于OPC技術規范的實時數據訪問方法主要有同步訪問、異步訪問和數據訂閱3種訪問方式。本系統中采用了同步方式和訂閱方式兩種方式完成數據訪問。
系統中的輸送機占位狀態、PC指令發送允許,堆垛機箱號和刪除通知標志位等數據為實時更新數據,在監控系統工作是需借助這些變量來完成系統工作,因而加入到了同步方式數據組,可以隨時采集該組變量信息。
輸送機報警、堆垛機報警,自動模式變換和PLC數據刪除通知,這幾類數據平常是不會發生變化的,不需要定時采集,而且這些變量是不需要監控機干預的,它反映了下位PLC系統的工作狀態,為只讀數據。比如輸送機報警,輸送機正常工作時沒有報警發生,則PLC數據塊中輸送機報警字恒為零。一旦發生報警,則輸送機報警字將發生變化,此時需要通知PC。采用訂閱方式時,一旦數據發生變化,則OPC服務器將自動通知監控程序,監控程序則可以做出相應的處理。這樣則節省程序定時去查詢這類數據,而讓OPC服務器來完成查詢工作,可以提高系統運行效率,節約系統資源。

圖3 串口接收數據處理流程
作為可靠的通信標準,以太網側重于數據處理方面,它滿足了制造業自動化現場級的部分要求,但有些現場級的要求是以太網所不能滿足的,例如過程自動化系統中需要本質安全防爆要求等等。因此,還需要進一步加以完善。本系統自投入以來,運行狀況良好,精確地完成了50 000余件托盤的出/入庫操作,入庫準確率達到了99.2%,庫存準確率達到了99.8%,有效提高了倉庫運行效率40%以上,同時還縮短了企業供貨時間,降低了企業生產成本,為公司帶來了明顯的經濟效益。
[1] 張春城. 對基于以太網的多路數據進行統計復用的研究與實現[D] . 成都:電子科技大學,2002 .
[2] 陸超,張曦煌. 基于工業以太網實時協議的改進[J] . 計算機應用,2005(10) .
[3] 方曉柯. 現場總線網絡技術的研究[D] . 沈陽:東北大學,2005 .