PLANT SIMULATION中小車路由權重屬性的相關案例
饒等
發(fā)布于2021-12-02 11:13
13
2
標簽:Plant Simulation,案例學習,新手攻略
【免費下載】PLC軟件下載_PLC軟件安裝教程_PLC手冊下載_PLC案例下載!
【免費學習】 變頻器精品課程_西門子PLC精品教程_三菱PLC精品教程!
上次我們介紹了小車的路由權重屬性,并且講解了一個簡單案例,案例的內容是:分別給兩個小車(Transporter)對象定義不同的路由權重屬性,然后在一條軌道上定義其中一種小車的路由權重屬性的系數為-1,這種小車就不會從該軌道經過。我們通過這種方法簡單地控制了小車的行駛路徑。
但在上次的介紹中,從幫助文檔的信息里,我們可得知一條信息:Track(軌道)和TwoLaneTrack(雙通軌道)的所有長度將與指定給用戶定義屬性的值相乘。其實這個相乘得到的值才是決定小車路徑選擇的關鍵,小車會選擇該值最小的路徑行駛向目的地。我個人人文,這其實就是路徑的擁堵情況吧,這僅是我個人的理解。
那接下來我們就通過一個案例講解一下:
案例講解:
建模如下:
小車(Transporter)的路由權重屬性定義:
軌道自定義屬性的定義:
上方三條帶有顯示面板的軌道分別為:藍色(Highway)、綠色(CountryRoad)、灰色(CityRoad2)。它們的自定義屬性分別為:
藍色(Highway)
綠色(CountryRoad)
灰色(CityRoad2)
剩下的其它軌道的自定義屬性都為:
我們在小車中定義的路由權重屬性為“CurrentTraffic”,對應用戶定義屬性中“CurrentTraffic”,我們就且稱其為“當前權重系數”;“BasicWeight”則是我們定義的軌道上的“基礎權重系數”。
我們還定義了兩個方法,首先看到方法“reset”,代碼如下:
其中“reset”是系統(tǒng)中定義好的方法,它的觸發(fā)方式是:重置仿真。
只要我們重置仿真,該方法就會被觸發(fā)一次。每次我們重置仿真時,我們就將“基礎權重系數”賦值給“當前權重系數”。
再看方法“CheckTraffic”,代碼如下:
該方法中,用對應軌道上的小車數量除以雙通軌道A側的長度,得出一個結果,可以視為該軌道的車輛密度(與人口密度的計算方法類似),再用該結果與“基礎權重系數”相加得到“當前權重系數”。每當小車進入或退出一條軌道,軌道的“當前權重系數”必然是發(fā)生改變的。所以這個方法顧名思義,就是用來檢查交通,重新計算軌道的交通情況,只不過它的表現(xiàn)形式是軌道的“當前權重系數”而已。
所有軌道對象的“CheckTraffic”方法的代碼都是一樣的,并且全都通過入口和出口控件來觸發(fā),因為車輛進入道路和駛出道路,道路的交通情況都發(fā)生了改變,所以都要觸發(fā)一次方法來重新計算軌道的“當前權重系數”。
要注意的是,默認情況下,我們創(chuàng)建的軌道的控件中,入口和出口的觸發(fā),都勾選的是“前面”,這里我們要都修改為“后面”,這樣不僅符合實際。小車只有完全進入了軌道,或者完全退出了軌道,才會使“當前權重系數”的值發(fā)生改變。
而且我們在該方法中,沒有使用“move”指令,如果在出口前面觸發(fā)代碼,因為前面觸發(fā)的控件優(yōu)先級比連接器的優(yōu)先級要高,小車觸發(fā)控件后沒有得到“move”指令,小車就不會繼續(xù)運行到下一個軌道對象。而如果我們勾選了“后面”,連接器的優(yōu)先級則比后面觸發(fā)的控件優(yōu)先級更高,所以小車能正常行駛到下一個軌道對象。
Tip:因為所有軌道對象的“CheckTraffic”方法的代碼都一樣,所以其實可以寫好一個“CheckTraffic”方法放在模型框架中,再將該方法拖入到每個軌道對象的控件A中的入口、出口處即可。又或者我們先新建一個工具條,將我們需要用的對象拖入到工具條中,定義好相關的屬性,再使用這些對象。養(yǎng)成這樣一些好的習慣能大大減少我們修改模型的時間。
目的地設置及其他一些設置:
在“CityRoad1”的靠近出口處創(chuàng)建一個傳感器,并在傳感器中添加方法“SetTarget”,代碼如下:
該方法用于計算每條軌道的加權系數乘以長度,并且給車輛定義一個目的地“CityRoad6”,因為車輛開啟了自動路由,會根據路徑權重,計算出后續(xù)三條路線的總體的長度與加權系數之積,并選擇該值最小的路徑駛向目的地。
我們在還框架中添加了三個實數類型的全局變量“WeightBlue”、“WeightGreen”、“WeightGrey”分別用來計算小車三條行駛路線的總體的長度與加權系數之積。
但比較重要的,大家要注意的是:這三個全局變量僅僅是用來做展示,方便我們觀察計算的值,而不是影響我們小車做路徑選擇的因素,我們即使把這三個全局變量刪除,也不會影響我們小車的行駛路徑。
關于顯示面板:
而模型中的位于軌道上方的“CurrentTraffic”屬性我們沒有使用到全局變量做展示,那么究竟是如何讓它在對應的位置顯示出來的呢?
右鍵單擊對應的軌道,在彈出的選項中選擇“編輯顯示面板”,如圖:
會彈出編輯窗口(這是CityRoad2的顯示面板編輯窗口,我每個顯示面板的Y坐標相差)
使用方法:
(1)勾選“活動的”,激活顯示面板的使用;
(2)修改“位置”里的X、Y坐標,可調整顯示面板的位置;
(3)修改“大小”里的高度和寬度,可調整顯示面板的大小;
(4)可修改邊框顏色和背景色;
(5)點擊“元素”后方的“新建”,“編輯”會彈出下方的對話框,在對話框中能選擇我們需要顯示的值,值的位置,類型、位置、顏色等;
定義的兩個元素為:
以下是我的模型中三個顯示面板的位置,大家可以借鑒來進行調整到合適的位置:
Transfer Station沒有特別的定義,不進行仔細講解:
仿真結果:

當我們啟動仿真時,每次小車經過傳感器觸發(fā)“SetTarget”,模型中的三個圖形變量“WeightBlue”、“WeightGreen”、“WeightGrey”都會重新計算,發(fā)生相應的改變。我們通過觀察這三個值就可以知道,小車是選擇值最小的那條路徑通往目的地。并不是取決于當前權重系數“CurrentTraffic”。
總結:
一般來說,路由權重屬性應該不是大家常用的屬性,或者說不是大家做AGV小車路徑規(guī)劃時的首要選擇,但也不失為一種不一樣的方法思路。希望我的案例講解能對大家有所幫助。
(技成培訓網原創(chuàng),作者:劉若麟,未經授權不得轉載,違者必究)
電工精品教程
立即掃碼免費學習
|
電工題庫寶典
立即掃碼免費下載
|
超全PLC學習資料包
立即掃碼免費下載
|
故障查詢小程序
立即掃碼免費使用
|