生產非標準設備的機電企業生產所需的電氣材料元件涉及種類繁多, 使得庫存管理面臨著非常大的壓力, 例如元件出入庫時尋找貨架的位置十分困難, 元件庫存盤點難度較大, 使得庫存補充計劃比較難以制定, 一部分元件庫存積壓而另一部分庫存短缺的狀況同時存在, 此外由于產品設計人員對庫存情況缺乏了解, 使得一些積壓的元件不能快速有效地應用到新產品開發中。基于上述情況, 利用CAN總線技術, 同時引入單片機和計算機系統就倉儲管理系統進行了再塑造和再設計, 解決了元件貨架管理問題, 提高了管理水平和經濟效益。
某機電企業一個元件庫中共有12行貨架, 其中每行貨架有4層, 每層又有10個貨位, 其結構如圖1所示。用行、層、列表示貨位的位置, 該貨位唯一對應所存放的貨位, 為了貨位查找的方便, 每個貨位處設有相應的LED指示屏來顯示相關信息, 產品出入庫作業時顯示出入庫的數量, 沒有出入庫作業時顯示貨位存放貨物的數量, 出入庫作業時電子標簽告訴相關人員該處會有存取作業等待處理, 在庫存盤點時表示該處貨位庫存信息尚未盤點。另有一個開關按鈕可以控制LED指示屏, 如果某個貨位的作業處理完畢, 那就予以關閉。這樣可以大幅度地提高元件出庫率和貨架查找率。
基于CAN總線技術的解決方案框架如圖2所示。1個單片機系統負責控制1行貨架, 也就是說1個單片機系統負責管理40個貨位。如果這企業的倉庫由于擴展需要將貨架擴展到m行, 那么這m個單片機就構成了一個完整的貨架管理系統。該系統通過CAN總線與上位計算機系統進行通信, 而上位計算機系統基于業務數據倉庫對整個倉庫進行管理, 上位計算機通過向單片機系統發送指令以完成對貨架的管理。
基于CAN總線技術的單片機系統框架如圖3所示。
單片機型號選擇at89s51, 這個型號在同類型號中屬于高檔機型和功能增強型, 其主要優勢是帶有10KB的可以二次編程的存儲器, 并且內置監控電路, 因此性價比較高, 且不用再考慮存儲器的擴展問題。
使用8255芯片的a、b輸出口對數據進行鎖存操作, 考慮到bcd碼的特性, 所以兩個LED顯示屏的顯示可以由一個輸入口進行控制, 每個LED顯示屏與8255芯片安裝3個74ls47譯碼器, 用來處理bcd碼的轉換及顯示屏的工作驅動。
CAN總線在本質上屬于串行總線式信息通訊網絡, 其特征是通信可靠、靈活、性能可靠、數據傳輸距離遠等。配合使用sja1000獨立總線控制器, 同一個CAN總線網絡最大可以允許來自110個節點的接入, 其有效傳輸距離可以長達10km, 并且CAN總線網絡上的節點可以以多種方式進行工作, 允許網絡上的任何節點在任何時候向任意節點發送信息, 并且節點之間可以根據ID來設置屏蔽或接受該節點的信息, 使得總線數據傳輸中的沖突降到了最低點。此外CAN總線網絡具有較強的錯誤檢測處理機制, 當一個節點所發送的信息遇到干擾或傳送失敗后可以自動重新發送, 如果發生重大錯誤, 則該節點將自動從網絡中退出, 以免給整個網絡造成更多的負擔和影響。
CAN總線電路以sja1000獨立總線控制器為中心, 單片機系統與實際物理CAN總線的通過82c250 CAN收發器進行連接, 使用總線式的網絡拓撲結構, 該結構成本低可靠性高。sja1000獨立總線控制器的最大傳輸速率為1mbps, 并且對于11位和29位的編碼標示符具有很好的支持作用。
CAN接口卡內置在上位計算機的功能擴展槽中, 負責上位計算機與單片機系統之間的信息通訊和數據交換工作。CAN卡選擇Keorei公司的單口6n137光電耦合器總線卡8110, 將該卡直接內置在上位計算機的功能擴展槽中, 從而實現上位計算機與單片機之間的數據交換。
在對倉儲作業需求分析的基礎上, 得到如圖4所示的倉儲管理系統功能模塊架構。
當有電氣元件物資需要入庫的時候, 就需要添加入庫信息, 倉管員通過系統界面將數據記錄提交到系統數據庫中, 然后系統界面上出現出庫操作的命令, 信息錄入完畢后通過CAN總線傳輸到下位計算機系統中。下位計算機獲取上位計算機發送的信息后, 打開入庫元件所要存放貨位處的LED屏, 倉管作業員根據LED屏的指示進行元件入庫作業, 當完成作業后關閉存放物資元件處貨位的LED指示屏, 然后進行下一個批次的元件入庫作業, 等所有批次的物資入庫作業都結束后, 在操作系統界面上點擊結束入庫作業按鈕以完成本批次的元件入庫作業, 并根據新錄入的入庫作業信息對底層數據庫信息進行更新。其他功能的操作與之相類似。
下位計算機的軟件設計框架如圖5所示。該軟件框架相對簡單, 下位計算機在獲得CAN總線上位計算機發送來的命令后, 打開LED指示屏顯示相關信息, 并將LED指示屏的狀態信息反饋到上位計算機中, 使用nvidia公司的C51芯片可以很容易地實現這個功能。
visual basic語言作為企業級應用程序的開發工具, 本身的數據處理能力非常強大。現在大多數企業級的應用程序都是基于windows平臺的架構, 通過開發編譯activex和dll控件, 利用控件調用功能可以很容易地實現對硬件信息的讀取、寫入等控制, 就目前來看大部分供應商都為其產品提供了豐富的擴展控件, 以方便二次開發中的數據采集、傳輸、修改等操作。excel是一種最為簡單實用的電子表格數據庫軟件, 功能強大、操作簡便且能夠有效負載本文所研究問題的數據處理量, 其在企業產品管理、人事信息、客戶關系管理等方面廣泛應用, 且后續的培訓服務較為簡單。
基于此本文選用visual basic和excel作為開發上位計算機軟件的工具, 開發出來的上位計算機軟件界面如圖6所示。程序設計中上位計算機和下位計算機之間的通信通過總線CAN進行, 并且遵循了上下位計算機之間的通信協議, 在傳送速率、數據格式、同步方式、糾錯檢錯方式等方面都可以實現自動匹配。使用CAN總線接口卡的dll擴展函數進行上下位計算機之間的通信。