黃迤波,杜寶江
(200093 上海市 上海理工大學(xué) 機械工程學(xué)院)
目前,AGV(Automated Guided Vehicle)自動導(dǎo)引小車廣泛應(yīng)用于物流系統(tǒng)和生產(chǎn)車間的自動搬運作業(yè)中[1],其通常選擇PLC 作為核心控制器[2]。因此訓(xùn)練學(xué)生通過編寫PLC 程序控制AGV 小車運行對提高其PLC 編程實用能力具有重要意義。
在傳統(tǒng)PLC 教學(xué)實驗中,由于場地和設(shè)備的限制[3],學(xué)生不能像在工廠中那樣,根據(jù)實際生產(chǎn)線中AGV 小車的控制要求和運動參數(shù)來設(shè)計編寫PLC 控制程序,并且也無法對其所編程序進行現(xiàn)場校驗以檢測其運行結(jié)果正確與否[4],因此對AGV 小車的PLC 編程控制實驗進行虛擬仿真就顯得尤為重要。本文通過Unity 3D 設(shè)計開發(fā)了基于三菱PLC 的AGV 小車控制虛擬仿真實驗系統(tǒng),并依照WebGL 標(biāo)準(zhǔn)發(fā)布到瀏覽器中以供學(xué)生實驗使用。
要實現(xiàn)通過PLC 編程控制AGV 小車運行,首先需要分析確定AGV 小車的控制信號在其運行過程中是如何傳遞的,并根據(jù)這些信號的類型和數(shù)量來選擇分配其PLC 型號和端口;其次,需要依照PLC 型號和端口情況參考PLC 驅(qū)動電動機的編程方法對其運行控制程序進行設(shè)計編寫;最后,將所編程序?qū)懭氲紸GV 小車的PLC 中,以運行校驗其程序的正確性[5]。
本實驗系統(tǒng)根據(jù)上述分析步驟,通過Unity 3D 設(shè)計開發(fā)了相應(yīng)的功能模塊,實驗整體流程及模塊具體功能如圖1 所示。
圖1 實驗系統(tǒng)總體設(shè)計Fig.1 Overall design of experimental system
通過上述功能模塊,本實驗系統(tǒng)即可完成對AGV 小車PLC 編程控制實驗的虛擬仿真,實現(xiàn)根據(jù)AGV 小車的控制要求和運動參數(shù)編寫PLC控制程序并對其進行模擬校驗的設(shè)計目的。
設(shè)計編寫PLC 控制程序,首先需要根據(jù)AGV 小車的控制系統(tǒng)組成來確定其PLC 輸入、輸出信號的類型和數(shù)量,然后依據(jù)PLC 輸入、輸出信號的類型和數(shù)量來選擇其型號及分配其端口。因此,本實驗系統(tǒng)需要首先分析給定AGV 小車的導(dǎo)航方式、定位方式、避障方式和驅(qū)動方式,然后通過Unity 3D 設(shè)計開發(fā)AGV 小車控制系統(tǒng)構(gòu)建和PLC 端口分配模塊,以供學(xué)生自主構(gòu)建AGV小車的控制系統(tǒng)及分配設(shè)計PLC 的端口功能。
針對實現(xiàn)自主構(gòu)建AGV 小車控制系統(tǒng)的需求,本實驗系統(tǒng)將首先分析給定AGV 小車的控制系統(tǒng)組成,然后根據(jù)各組成部分所用傳感器輸出信號及驅(qū)動器輸入信號的類型和數(shù)量,選擇確定AGV 小車的PLC 型號,并將其顯示到控制系統(tǒng)組成界面中,以實現(xiàn)AGV 小車控制系統(tǒng)的自主構(gòu)建。
本實驗的AGV小車控制系統(tǒng)由導(dǎo)航控制器、定位控制器、避障控制器、驅(qū)動控制器和核心控制器5 部分組成,其中導(dǎo)航、定位、避障和驅(qū)動控制器的所用設(shè)備型號及端口信號如表1 所示[6]。
表1 AGV 小車控制系統(tǒng)組成設(shè)備型號及端口信號Tab.1 Equipment model and port signal of AGV control system
根據(jù)表1 中各設(shè)備端口信號的類型和數(shù)量即可選擇確定AGV 小車核心控制器PLC 的型號。在選定提交PLC 型號時,本實驗系統(tǒng)將判斷其輸入、輸出端口數(shù)量是否夠用,檢測其輸出端口類型是否能夠?qū)ν獍l(fā)送高速脈沖信號。判斷檢測無誤后,系統(tǒng)會通過Text.text 將所選PLC 型號顯示到控制系統(tǒng)組成界面中,最終實現(xiàn)AGV 小車控制系統(tǒng)的自主構(gòu)建。
針對實現(xiàn)自主分配設(shè)計PLC 端口功能的需求,本實驗系統(tǒng)將首先分析確定PLC 各輸入、輸出信號的類型和數(shù)量,然后對其輸入、輸出端口功能進行分配設(shè)計及判斷檢測,以實現(xiàn)PLC 端口功能的自主分配。
根據(jù)前面分析可得本實驗系統(tǒng)AGV 小車PLC 的輸入、輸出信號數(shù)量如圖2 所示,參照該圖即可對PLC 的輸入、輸出端口進行分配設(shè)計,以便在編寫PLC 控制程序時使用。
圖2 AGV 小車PLC 輸入輸出端口信號Fig.2 AGV PLC input and output port signal
根據(jù)PLC 輸入、輸出信號的類型和數(shù)量即可分配設(shè)計其各端口的功能。在選擇分配各端口功能時,本實驗系統(tǒng)將通過Dropdown.captionText.text 獲取每個信號的所選端口,并判斷其是否適用于該控制信號,檢測其是否與其他信號的所選端口重復(fù)。在所有信號端口都分配完成且判斷檢測無誤后,系統(tǒng)將提示PLC 端口分配設(shè)計成功,最終實現(xiàn)AGV 小車PLC 端口的自主分配。
學(xué)生設(shè)計編寫PLC 控制程序發(fā)送脈沖信號給步進驅(qū)動器驅(qū)動步進電動機轉(zhuǎn)動,首先需要根據(jù)步進電動機的轉(zhuǎn)向、角速度和轉(zhuǎn)動總?cè)?shù)來確定PLC 所需輸出的脈沖速率和脈沖數(shù),然后依據(jù)PLC 端口分配情況和功能指令編寫方法來設(shè)計編寫其控制程序,因此本實驗系統(tǒng)需要首先分析給定AGV 小車的結(jié)構(gòu)參數(shù)和運動參數(shù),然后通過Unity 3D 設(shè)計開發(fā)AGV 小車PLC 輸出脈沖計算求解和控制程序編寫檢測模塊,以供學(xué)生設(shè)計編寫AGV 小車的PLC 控制程序。
針對實現(xiàn)計算求解PLC 所需輸出脈沖速率和脈沖數(shù)的需求,本實驗系統(tǒng)將首先根據(jù)給定的AGV 小車結(jié)構(gòu)和運動參數(shù)計算求解步進電動機的轉(zhuǎn)動參數(shù),然后通過步進電動機參數(shù)計算求解PLC 所需輸出的脈沖速率和脈沖數(shù),以實現(xiàn)PLC所需輸出脈沖的設(shè)計計算。
本實驗系統(tǒng)通過對AGV 小車機械結(jié)構(gòu)進行分析,可以得到其車輪半徑r、減速機構(gòu)傳動比i;通過對AGV 小車運動情況進行分析,可以得到其運動距離L、運動速度v、運動加速度a,則AGV 小車加減速時間t 的計算公式:
AGV小車步進電動機角速度ω計算公式:
AGV小車步進電動機轉(zhuǎn)動總?cè)?shù)n 計算公式:
系統(tǒng)通過對AGV小車步進電動機進行分析,可以得到其步距角θ,則PLC 所需輸出的脈沖速率f 的計算公式:
PLC 所需輸出的脈沖數(shù)P 的計算公式:
由式(4)、式(5)可求得AGV 小車PLC所需輸出的脈沖速率和脈沖數(shù)的數(shù)值。在計算完成且填寫提交后,本實驗系統(tǒng)將通過InputField.text 獲取填入的脈沖速率和脈沖數(shù)數(shù)值,并判斷檢測其是否計算求解正確。在判斷檢測無誤后,系統(tǒng)將提示PLC 輸出脈沖計算求解正確,最終實現(xiàn)AGV 小車PLC 所需輸出脈沖的設(shè)計計算。
為實現(xiàn)自主設(shè)計編寫AGV 小車PLC 控制程序的需求,本實驗系統(tǒng)將首先分析給出PLC 輸出脈沖信號驅(qū)動步進電動機的梯形圖編寫方法,然后對所編程序內(nèi)容進行實時判斷和檢測,以實現(xiàn)AGV 小車PLC 控制程序的編寫檢查。
根據(jù)前面求得的加減速時間、脈沖速率、脈沖數(shù)和已分配完成的PLC 各端口功能,即可對AGV 小車的PLC 控制程序進行設(shè)計編寫。使用傳送指令將最高速度、基底速度和加減速時間設(shè)定到特殊數(shù)據(jù)寄存器中;使用相對定位指令將脈沖速率和脈沖數(shù)通過輸出端口發(fā)送給步進驅(qū)動器以控制步進電動機的轉(zhuǎn)動。
根據(jù)上述方法即可設(shè)計編寫AGV 小車的PLC控制程序。在編寫PLC 梯形圖時,本實驗系統(tǒng)將實時獲取其程序內(nèi)容并進行判斷檢測,具體流程如圖3 所示。系統(tǒng)通過下拉式菜單實現(xiàn)了梯形圖程序各符號單元的選取,在符號單元選定之后,系統(tǒng)將根據(jù)其類型彈出相應(yīng)輸入框,以供填寫軟元件編號和功能指令內(nèi)容。在輸入完畢且點擊確定后,系統(tǒng)將通過InputField.text 獲取輸入文本,并檢測其內(nèi)容是否正確,在判斷其內(nèi)容準(zhǔn)確無誤后,系統(tǒng)會通過文本或圖片將所輸內(nèi)容顯示到編程界面之中。在全部程序編寫完成且點擊提交后,系統(tǒng)將檢測所編梯形圖是否存在重復(fù)和遺漏,判斷端口編號是否與之前設(shè)計分配時的一致。在判定程序編寫正確后,系統(tǒng)將輸出相關(guān)參數(shù)和控制邏輯到后面的控制仿真校驗?zāi)K中,以便檢測所編程序是否能夠正確驅(qū)動AGV 小車實現(xiàn)啟停。
圖3 控制程序編寫檢查功能實現(xiàn)流程Fig.3 Control program compiling and checking function realization process
學(xué)生在設(shè)計編寫完成PLC 梯形圖后,無法校驗其所編程序是否能夠準(zhǔn)確有效地控制AGV小車進行運動和避障,因此本實驗系統(tǒng)需要設(shè)計開發(fā)可受PLC 程序邏輯控制的AGV 小車運行仿真避障校驗?zāi)K,以供學(xué)生直觀理解控制信號在PLC 內(nèi)部是如何運行的,并校驗其所編PLC 程序的有效性和準(zhǔn)確性。
針對實現(xiàn)所編PLC 程序控制AGV 小車運行仿真的需求,本實驗系統(tǒng)將首先對所編PLC 程序中各軟元件的實時狀態(tài)進行模擬仿真,然后根據(jù)其輸出端口的脈沖發(fā)送狀態(tài)控制AGV 小車的啟停運動,以實現(xiàn)對所編梯形圖中控制運行部分的設(shè)計正確性校驗。
本實驗系統(tǒng)通過按鈕圖片替換來模擬仿真AGV 小車的啟動、停止和急停按鈕。在點擊該按鈕時,系統(tǒng)會通過GameObject.SetActive()函數(shù)關(guān)閉和顯示相關(guān)圖片,以模擬仿真按鈕開關(guān)和PLC 各軟元件的實時狀態(tài)。與此同時,系統(tǒng)將根據(jù)PLC 輸出端口實時狀態(tài),通過GameObject.transform.Translate()函數(shù)控制AGV 小車模型進行相應(yīng)運動,以模擬仿真其實際運行狀態(tài)。系統(tǒng)控制仿真及避障校驗?zāi)K如圖4 所示,其通過檢測AGV 小車的運動狀態(tài)和停止位置是否滿足生產(chǎn)線要求,從而實現(xiàn)對所編梯形圖中控制運行部分的正確性校驗。
圖4 控制仿真及避障校驗?zāi)KFig.4 Control simulation and obstacle avoidance verification module
針對實現(xiàn)所編PLC 程序控制AGV 小車自動避障的需求,本實驗系統(tǒng)將首先通過碰撞體組件對AGV 小車的避障檢測功能進行模擬仿真,然后根據(jù)AGV 小車在遇到和移走障礙物后是否能夠自動停車和重啟運行來對所編PLC 程序控制邏輯進行檢查,以實現(xiàn)對所編梯形圖中運行避障部分的設(shè)計正確性校驗。
本實驗系統(tǒng)通過給AGV 小車模型和障礙物模型分別添加碰撞體組件來對AGV 小車避障檢測功能進行模擬仿真,并通過調(diào)整AGV小車碰撞體組件的形狀和大小來對超聲波傳感器的檢測范圍進行模擬仿真。在AGV 小車碰撞體和障礙物碰撞體發(fā)生接觸時,系統(tǒng)會觸發(fā)OnTriggerEnter(Collider other)函數(shù),該函數(shù)通過物體標(biāo)簽來判斷AGV小車是否檢測到障礙物。在判斷結(jié)果為真后,系統(tǒng)將改變所編PLC 程序中超聲波傳感器信號端口的狀態(tài),并檢測所編PLC程序控制邏輯是否能夠隨之更改脈沖輸出端口的狀態(tài),使AGV 小車自動停止運行。若AGV 小車能夠自動停車,則說明所編梯形圖中停車避障部分設(shè)計編寫正確,否則該部分設(shè)計編寫即存在錯誤。
在AGV 小車檢測到障礙物且自動停車后,該障礙物可通過鼠標(biāo)點擊來被移走,此時AGV小車碰撞體接觸不到障礙物碰撞體,即AGV 小車超聲波傳感器在其運行路線上沒有發(fā)現(xiàn)障礙物,則系統(tǒng)將改變所編PLC 程序中超聲波傳感器信號端口的狀態(tài),并檢測所編PLC 程序控制邏輯是否能夠隨之更改脈沖輸出端口的狀態(tài),使AGV小車重新啟動繼續(xù)運行。若AGV 小車能夠繼續(xù)運動,則說明所編梯形圖中重啟運行部分設(shè)計編寫正確,否則該部分設(shè)計編寫即存在錯誤,從而實現(xiàn)對所編梯形圖中運行避障部分的正確性校驗。
本文通過Unity 3D 設(shè)計開發(fā)的基于三菱PLC的AGV 小車控制虛擬仿真實驗系統(tǒng),克服了傳統(tǒng)PLC 控制實驗中由于場地和設(shè)備限制從而無法根據(jù)生產(chǎn)線中AGV 小車的控制要求和運動參數(shù)對其進行PLC 程序編寫及現(xiàn)場校驗的問題。學(xué)生通過本實驗系統(tǒng)可以直觀有效地校驗其所編PLC控制程序正確與否,對提高其實際PLC 編程控制AGV 小車運行能力具有重要意義。該虛擬仿真實驗系統(tǒng)已應(yīng)用于某PLC 課程實驗教學(xué)中,學(xué)生使用效果良好,編程控制能力提升明顯。