Flexsim操作2_第1頁
Flexsim操作2_第2頁
Flexsim操作2_第3頁
Flexsim操作2_第4頁
Flexsim操作2_第5頁
已閱讀5頁,還剩80頁未讀 繼續免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

1、1仿真專班培訓仿真專班培訓李李 亞亞 兵兵2課程大綱課程大綱 第五部分、建模語言 第六部分、概念和模型3第五部分第五部分 建模語言建模語言 Flexsim層次化結構 樹形結構 建模語言 定制模型邏輯4什么是節點?什么是節點? Flexsim的基本數據結構是一個層次化的樹形結構 主樹模型和工程相關的對象和數據 視圖樹包括圖形用戶界面相關的對象和下拉菜單 模型樹模型相關的對象和數據 節點是“樹”的基本構成單元 節點在表面是看不到的,它們包含了對象、圖形用戶界面和數據的所有信息5節點結構節點結構 節點有名字 節點可以擁有一個數據項 數值 字符串 對象 如果節點擁有對象數據,使用 查看含有對象信息的展

2、開的節點列表(數據項和成員函數) 如果節點包含子節點,使用 展開并查看子節點6節點符號節點符號 標準文件夾 對象 對象數據 C+函數 FlexScript(Flexsim腳本)函數7模型樹樣本模型樹樣本8什么是函數?什么是函數? 函數名(參數1,參數2,等等) 參數可以是 數值 字符串 指向對象或節點的指針 函數舉例 colorrandom(item) 許多Flexsim函數的作用都是從“樹”中讀取數據和向“樹”存放數據9一般規則一般規則區分大小寫(A不等同于a)沒有限制特定的格式(以“易讀的”代碼為目標,可以自由使用空格、制表符和回車換行)文本字符串由引號括起,mytext函數調用后面用圓括

3、號,逗號分隔函數的參數,moveobject(item, container)函數總是以分號結束根據需要可以在數學和邏輯表達式中自由地使用圓括號,(x+10)*y大括號用于定義一段邏輯表達雙斜線用于一行中其后的部分,/my comment多行注釋以/*開始,*/結束名字定義中不能含有空格或特殊字符,下劃線除外名字中可以含有數字,但是不能以數字開頭10書寫邏輯可能用到的幫助書寫邏輯可能用到的幫助 現有的下拉菜單選項 示例和模型(/samples和/userprojects/DemoModels) Command Summary(命令集) Command Hints(命令提示) C+參考書11變量

4、類型變量類型 int(整數型),1、999 double(雙精度型),0.0、123.45 string(字符串型),good fsnode*(節點指針型),theOp、item12變量聲明和賦值變量聲明和賦值 整數型,int index = 1; 雙精度型,double length = 10.5; 字符串型,string str1 = qualified; 節點指針型,fsnode* myItem = last(current);13數學運算符數學運算符 x + y:x加y x y:x減y x * y:x乘以y x / y:x除以y sqrt(x):x的平方根 pow(x,y):x的y次方

5、 trunc(x):x取整數部分 frac(x):x的小數部分 fmod(x,y):x除以y的余數 min(x,y):x和y的較小值 max(x,y):x和y的較大值14比較比較 x y:x大于y x = y:x大于等于y x 2)moveobject(last(current),queue);在程序中,while循環是在測試表達式為真時使得一段代碼一直反復重復執行的結構,所以為了避免無限循環下去,最終測試表達式的值要為假。34“for”循環結構循環結構for(start expression; test expression; count expression)code blockfor(i

6、nt index = 1; index = content(current); index+)totalWeight += getlabelnum(rank(current,index),weight);for循環允許一段代碼重復執行一定次數,測試表達式最終值同樣需要為假,以避免無限循環。35代碼練習四代碼練習四 目的 學習使用for循環 描述 組合器將8個箱子放在1個托盤上 一個發生器提供托盤,另外一個發生器提供箱子 組合器發送實體到一條輸送機,再由這條輸送機發送到另一條輸送機 在第一條輸送機的離開觸發器,使用for循環改變托盤上所有箱子的顏色 問題 嘗試使用setobjectshapein

7、dex函數改變箱子的外形36代碼練習四布局代碼練習四布局37第六部分第六部分 概念和模型概念和模型 通過搭建一些模型學習更多Flexsim概念和用法38模型四模型四概念概念 實體類型 “推”與“拉”式規則 概率分布函數39處理器處理器“拉拉”實體實體 Pull From Port(接收端口):實體可以進入的輸入端口 Pull Requirement:決定是否允許一個實體進入 上游對象發送端口項設置為Open all ports(所有端口)40模型四模型四 目的 學習使用“拉”式規則,根據實體的實體類型定義它們的加工路線 描述 電子部件加工完成后需要接受測試 兩種類型的部件會進入堆放區,它們的到

8、達是隨機的,其中40%是類型為1的,60%是類型為2的。 部件到達的間隔時間服從均值為40秒的指數分布 兩臺測試機用于類型為1的部件,三臺測試機用于類型為2的部件 測試時間服從120到150秒的均勻分布 問題 嘗試平衡各個測試機的工作量 嘗試使用“推”規則實現此模型41模型四布局模型四布局42模型五模型五概念概念 標簽和實體類型 經驗分布:全局表 觸發器順序43模型五模型五 目的 學習如何在實體上設置和使用標簽,用于決定加工路線 描述 零件的到達服從均值為30秒的指數分布,四種類型的零件分別占全部零件的20%、30%、40%、10%。 四臺處理器分別處理這四種不同類型的零件。首次加工的零件的處

9、理時間服從100到120秒的均勻分布,返工的零件的處理時間服從120到130秒的均勻分布。 零件加工完成后會被測試。每個零件的測試時間是10秒鐘。測試合格的產品會離開模型,10%的產品會需要返工。 返工的零件將被優先處理 問題 瓶頸在哪里? 嘗試改變需要返工的零件的形狀44模型五布局模型五布局45模型六模型六概念概念 全局表 標簽 觸發器46全局表函數全局表函數 gettablenum(tablename, rownum, colnum) settablenum(tablename, rownum, colnum, num) gettablestr(tablename, rownum, col

10、num) settablestr(tablename, rownum, colnum, str) settablenum(Inventory, 1, 5, content(current) gettablestr(Alias, getitemtype(item), 2)47模型六模型六 目的 使用全局表定義加工路線的簡單案例 學習使用標簽跟蹤實體的加工步驟 描述 3種不同的產品需要進入一個由5臺處理器組成的加工單元 產品按照下述路線被處理 類型為1的產品需要經過工作臺1、3和2 類型為2的產品需要經過工作臺1、2和4 類型為3的產品需要經過工作臺2、4、3和5 使用全局表,以保證產品按照正確的

11、順序發送到相應的工作臺進行加工 所有沒有完全加工完成的產品都放置在同一個堆放區中 問題 嘗試用顏色標示產品所處的加工步驟48模型六布局模型六布局49模型七模型七概念概念 任務序列優先級 全局指針50模型七模型七 目的 學習如何使用一個操作員同時負責搬運和處理實體 描述 零件的到達時間間隔是服從均值為20秒的指數分布。零件到達后由操作員將其運送到一個空閑的工作臺上。 操作員需要對零件進行10秒鐘的預處理 之后工作臺自行處理實體,需要20秒鐘時間 加工完成后,實體離開系統 一個操作員負責所有的三個工作臺 問題 使操作員在運送完一個實體后,立即對該實體進行預處理 嘗試不使用中心端口連接實現此模型51

12、模型七布局模型七布局52模型八模型八概念概念 發送端口 “中斷”需求53模型八模型八 目的 學習使用移動資源上的“中斷”需求項 描述 發生器均勻地產生三種不同類型的實體,并隨機發送到其后的三個堆放區內。 一輛運輸車將實體運送到后面的三個堆放區內,此三個堆放區分別可以容納一種類型的實體。 實體經過處理器,最后由接收器離開系統。 運輸車輛最多一次可以裝載5個實體。 運輸車輛只能同時裝載同一類型的實體。 問題 嘗試其他“中斷”需求選項,觀察運輸車輛的行為。54模型八布局模型八布局55模型九模型九概念概念 移動資源組 自定義任務序列 時間表56模型九模型九 目的 練習使用移動資源組、調度規則 描述 一

13、個工作單元有5個工作臺 每個零件必須依次在5個工作臺上進行加工 此工作單元中有一組由3個操作員組成的移動資源組 操作員負責運送每個零件到下一個工作臺,以及預處理任務 預處理時間是5秒鐘,處理時間是15秒鐘 每25秒到達一個新零件 問題 每小時的生產能力是多少? 使用自定義任務序列,以提高生產能力。 使用時間表,安排操作員在不同的時間休息。 57模型九布局模型九布局58模型十模型十概念概念 更新組合器組件列表 Excel數據導入59定制定制Excel數據導入數據導入/導出導出規則 必須首先使用excellaunch函數啟動Excel,然后使用excelopen函數打開一個Excel文檔。使用ex

14、celsetsheet函數指定一個表單,然后可以使用excelreadnum,excelwritenum,excelimporttable和excelexporttable等函數進行讀寫操作。如果需要打開另一個文檔,需要先使用excelclose函數關閉當前文檔。最后使用excelquit函數退出Excel。示例excellaunch();excelopen(C:Program FilesFlexsim3userprojectsTrainingExcel Custom.xls);excelsetsheet(Sheet1);excelwritenum(1,2,gettablenum(Data,1

15、,1);settablenum(Data,1,1,excelreadnum(1,1);excelclose(true);excelquit();60模型十模型十 目的 學習如何控制組合器的組件列表 學習如何從Excel導入數據到發生器的到達時刻表 描述 一個供應商向5個不同的客戶提供總共10種不同的產品 每個客戶的訂單不同 每個客戶所訂的產品放在一個托盤上,經過輸送機進入接收器 使用訂單和時刻表兩個表格構建此模型 問題 從Excel中導入所需的表格61模型十布局模型十布局62模型十訂單表模型十訂單表Customer1Customer2Customer3Customer4Customer5Pro

16、duct112314Product220121Product301012Product412132Product533301Product624020Product700223Product823330Product912412Product101130063模型十到達時刻表模型十到達時刻表ArrivalTimeItemNameItemTypeQuantityCustomer10OrderA11Customer23600OrderB21Customer37200OrderC31Customer410800OrderD41Customer514400OrderE5164更深一步的概念和模型更深一

17、步的概念和模型 打開、關閉輸入/輸出端口 消息 抽象模型 全局對象指針 自定義任務序列 數據庫 用戶事件 模型初始化代碼 全局C+代碼 用戶函數65模型模型A1概念概念 打開、關閉輸入/輸出端口 消息66基本對象控制函數基本對象控制函數closeinput(obj),openinput(obj)stopinput(obj),resumeinput(obj)closeoutput(obj),openoutput(obj)stopoutput(obj),resumeoutput(obj)sendmessage(toobj, fromobj, param1, param2, param3)sendd

18、elayedmessage(toobj, delaytime, fromobj, param1, param2, param3)stopobject(obj),resumeobject(obj)moveobject(obj, container)closeoutput(current)senddelayedmessage(centerobject(current,1),10,current,1,getlabelnum(current,2),0)67消息消息 消息:一個對象發送到另一個對象的信息 當一個對象接收到消息時,它的“OnMessage”(消息)觸發器被觸發 消息的發出是通過函數send

19、message(發出即時消息)和senddelayedmessage(發出延時消息) 每條消息可以有三個附加的數值型參數68消息執行機制消息執行機制sendmessage(toobj,fromobj, param1,param2, param3)senddelayedmessage(toobj,delaytime, fromobj,param1, param2, param3)currentmsgsendingobjectmsgparam(1)msgparam(2)msgparam(3)delaytimecurrent69模型模型A1 目的 學習如何控制產品流和發送延時消息 描述 工作臺在處理

20、完每個產品之后,需要等待50秒鐘,才能繼續處理后面的產品。使用closeinput和senddelayedmessage函數實現此功能。 問題 如果此工作臺最多可以同時處理兩件產品,每次處理完一批(一件或兩件)產品之后需要等待,如何實現?70模型模型A1布局布局71模型模型A2概念概念 抽象模型 全局對象指針 For循環 moveobject函數72模型模型A2目的學習創建抽象模型的方法學習在觸發器中定義C+邏輯代碼描述每天都有貨物到達,也都有訂單到達,1份貨物可以滿足1份訂單的需求。每天到達貨物的數量和每天的訂單數量都服從均值為10的指數分布。一共有5種不同類型的貨物和訂單,每天到達的貨物和

21、訂單都會是其中一種,而且每一種的可能性都相同。貨物和訂單的類型相匹配。貨物到達時,如果現存的訂單顯示需要這種貨物,那么貨物要立即滿足訂單的需要,同時更新訂單;如果不需要則暫時存放起來。訂單到達時,如果庫存中的貨物有可以滿足需要的,那么立即消除相應的貨物和訂單;否則將訂單保留。問題如果連續運行1年需要多大的容量以暫存貨物?畫出表示每天缺貨總量的曲線圖訂單被滿足的平均等待時間是多長?73模型模型A2布局布局74模型模型A3概念概念 自定義任務序列 全局對象指針75移動資源控制移動資源控制 簡單指令createdelaytask(centerobject(current, 1), 100, STAT

22、E_UTILIZED, 0, 0)freeoperators(op, item) 自創建任務序列createemptytasksequence(te, priority, preempting) 返回值為指向此任務序列的指針(例如fsnode* ts)inserttask(ts, tasktype, involved1, involved2, param1, param2, param3, param4)dispatchtasksequence(ts)76任務序列示例任務序列示例fsnode *forklift = centerobject(current, 1);fsnode *origin

23、 = inobject(current, 1);fsnode *destination = outobject(current, 2);fsnode *item = first(origin);fsnode *ts = createemptytasksequence(forklift, 0, 0);inserttask(ts, TASKTYPE_TRAVEL, origin, NULL);inserttask(ts, TASKTYPE_FRLOAD, item, origin);inserttask(ts, TASKTYPE_TRAVEL, destination, NULL);insertt

24、ask(ts, TASKTYPE_FRUNLOAD, item, destination);dispatchtasksequence(ts);77任務類型任務類型TASKTYPE_LOAD: item, source TASKTYPE_FRLOAD: item, station, outputport TASKTYPE_UNLOAD: item, target TASKTYPE_FRUNLOAD: item, station, inputport TASKTYPE_UTILIZE: involved, station, state TASKTYPE_DELAY: NULL, NULL, del

25、aytime, state TASKTYPE_BREAK: NULL, NULL TASKTYPE_TRAVEL: destination, NULL TASKTYPE_TRAVELTOLOC: NULL, NULL, lx, ly, lz, endspeed TASKTYPE_TRAVELRELATIVE: NULL, NULL, ox, oy, oz, endspeedTASKTYPE_SENDMESSAGE: toobj, fromobj, param1, param2, param3, delaytimeTASKTYPE_MOVEOBJECT: obj, container, port78模型模型A3 目的 學習如何創建自己的任務序列 描述 模型中包括一個發生器,五個工作臺和一個接收器 操作員從發生器取一個實體到第一個工作臺進行加工,完成

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經權益所有人同意不得將文件中的內容挪作商業或盈利用途。
  • 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
  • 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論