王欣瑞


摘 要:在PLC傳統的經驗法設計及編程過程當中,存在編寫周期過長、程序可讀性差、不易糾錯、維護困難等問題。為了克服以上缺點,在立體倉庫控制系統的PLC程序編寫過程當中,采用了模塊化編程思想,取得了滿意的效果。
關鍵詞:PLC;編程;模塊化;立體倉庫
中圖分類號:TP273 文獻標識碼:A
0.引言
隨著我國經濟的高速發展,現代化企業生產規模的逐年擴大,物資供應與存儲已成為制約企業發展的一大因素。如何充分發揮潛力,在有限的場地實現倉庫存儲規模的最大化,是擺在每個企業管理人員面前的一大問題。而自動化立體倉庫的出現,不但有效地解決了存儲空間緊張的問題,同時實現了物流系統的合理化配置。
由于PLC操作簡單,性能可靠,在立體倉庫的控制系統中,廣泛使用了PLC作為啟停、開關、互鎖等功能。在以往的PLC程序設計和編程過程當中,往往采用經驗法進行設計。然而在立體倉庫的控制過程當中,特別是大型立體倉庫,邏輯關系復雜,互鎖條件較多,在采用經驗法設計過程中,存在編寫周期過長,程序可讀性差等問題。為了解決以上問題,在程序設計時采用模塊化設計取代傳統的經驗法設計,使程序邏輯關系便于梳理,增加了可讀性,特別是在后期維護和改變條件時,顯著減少了工作量。
1.立體倉庫控制系統的特點和結構
立體倉庫的庫位示意圖如圖1所示。
在庫位的分布上,有一個緩沖區作為貨物存放的初始位置。1~9號位倉庫的存儲位。整個立體倉庫的工作過程可以描述為:
(1)當貨物需要入庫進行存放時,叉車從緩沖區取貨,然后把貨物輸送至相應的倉位放置貨物,完成后叉車回到初始位置等待下一步操作。
(2)當貨物需要出庫拿取時,叉車找到相應的倉位進行取貨操作,然后把貨物送到緩沖區,完成后回到初始位置等待下一步操作。
為了實現上述功能,一般采用三維叉車作為執行元件。示意圖如圖2所示。
三維叉車由電機完成水平方向(X軸)拖動系統、垂直方向(Y軸)拖動系統、進出方向(Z軸)拖動系統的驅動。它可以完成從緩沖區到倉位的自動存貨過程和從倉位到緩沖區的自動取貨過程。
在使用該系統時,我們可以通過操作手柄選擇相應的倉位(1~9號,可根據實際現場條件進行增減),選擇入庫還是出庫,完成所需要的工作。
2.模塊化編程思想
我們為了解決一個復雜的問題時,往往采用模塊化的方式進行,即把一個復雜問題拆分成若干個便于理解和解決的模塊,每個模塊能夠實現特定的子功能,把所有模塊組合起來,再根據系統的要求加上一定的運行條件和邏輯判斷,從而實現整個系統的功能。
一般情況下,模塊具有以下幾個基本屬性,接口、功能、邏輯、狀態,功能、狀態與接口反映模塊的外部特性,邏輯反映它的內部特性。
在計算機編程語言中,特別是高級編程語言中,大量使用模塊化設計有助于解決復雜問題。而在PLC程序設計過程中,同樣可以借鑒這樣的編程思想。如果分解出來的模塊還是無法解決,則繼續分解形成新的模塊,直到解決問題為止。
另外需要注意的是,為降低軟件系統的復雜性,提高可理解性和可維護性,模塊不能任意劃分,應在分解時盡量保持其獨立性。模塊的獨立性可用兩個定性標度衡量,即耦合和內聚,要獲得較高的獨立性,就需要做到低耦合和高內聚。
3.模塊化編程在立體倉庫中的應用
整個立體化倉庫的控制流程如圖3所示。
通過該流程可知,整個立體倉庫的運行實際上分為每一個具體的步驟進行,每一個步驟包含了若干動作,實現所需要的功能。在控制流程中,可以把一個步驟看成一個模塊,每個步驟內有其自身的邏輯和功能,完成特定的動作。
在劃分方式上,可以把整個流程劃分為兩大模塊,即入庫模塊和出庫模塊。兩大模塊具有剛才列舉的基本屬性,入庫模塊完成貨物的入庫功能,出庫模塊完成貨物的出庫功能。當選擇入庫或者出庫時,可以看作接口的選擇;當入庫動作或者出庫動作時,就是系統運行的兩種不同狀態。而兩個模塊有其自身的邏輯控制功能,完成特定的動作。
在該控制系統中,按入庫、出庫的模塊劃分雖然能理清兩個不同功能的邏輯關系,但是并沒有降低系統的復雜性。在仔細分析工作過程后,我們可以繼續把兩大模塊拆分成若干個子模塊,即:
入庫功能分為緩沖區取貨模塊、送貨至指定倉位模塊、入庫完成模塊和復位模塊;出庫功能分為指定倉位取貨模塊、送貨至緩沖區模塊、出庫完成模塊和復位模塊。經過模塊的繼續細分后,整個工作過程條理清楚,大大降低了程序編寫的難度。
在子模塊程序的編寫上,注意工作過程的邏輯關系,前一模塊是后一模塊的啟動條件,在前一模塊沒有完成之前,后一模塊無法啟動;而當所有子模塊完成之后,入庫和出庫模塊才算完成。
模塊化設計還有一個好處是,相同功能模塊可以直接調用,比如入庫和出庫功能中,都使用了復位功能,我們在設計復位功能模塊的時候只要注意邏輯關系、互鎖和啟動條件,便可以在入庫或者出庫模塊的最后調用寫好的復位模塊,提高了效率。
最后需要說明的是,在立體倉庫的模塊化設計過程當中,在流程圖上沒有標注,但是經常重復使用的功能模塊不應該忘記編寫,比如頻繁使用的限位開關脈沖信號,驅動叉車在X、Y、Z軸方向上運動的信號等,都可以作為獨立模塊進行設計和編寫,方便在每個不同的子模塊中調用。
結語
采用模塊化編程思想,使PLC系統的編程變得簡單、靈活。特別是對于控制系統比較復雜的場合中,或者需要多次調用的情況下,采用模塊化編程后,使調試時間大幅減少,便于理清控制過程的邏輯關系,也為系統增加了方便的擴展功能(如增加倉位、增加緩沖區)。在自動化的復雜程度越來越高的今天,值得運用和推廣。
參考文獻
[1] [美] Kirk Knoernschild著,張衛濱譯. Java應用架構設計:模塊化模式與OSGi [M].北京:機械工業出版社,2013.
[2]張博,王志信.模塊化編程思想在PLC系統中的應用[J].化工自動化及儀表,2013(3):416-418.