1、1,eM-Plant仿真技术教程,物流工程,2,CH1 仿真建模与eM-Plant,eM-plant仿真系统是德国 tecnomatix公司的产品,其前身为simple+,专门用于“离散系统”建模与仿真分析。 特点:面向对象建模集成仿真环境仿真过程可视化专用仿真语言开放数据接口2D+3D提供如GA,ARIS,Gantt等模块,3,浏览器窗口,4,Connector :连接器 EventController :仿真控制器 Frame:Frame窗口 Interface:层式结构接口 Source:产生MU Drain:回收MU SingleProc :单工位工作站 ParallelProc:多工
2、位并行工作站 Assembly:组装站点 DismantleStation:拆卸站点 Store:存储站,5,PlaceBuffer:带工作站的缓冲区 Buffer:缓冲区、暂存区 Sorter:带排序功能的缓冲区 Line:轨道(有速度) TurnTable:旋转台 AngularConverter:方向转换轨道 Track:单车道路线(不允许错车、无速度) TwoLaneTrack:双车道路线(允许错车) FlowControl:分流控制 Cycle:循环,6,WorkerPlace:工位 FootPath:工人的行走路径 WorkerPool:工人池 Worker:工人 Exporter
3、:服务提供者 Broker:资源调度者 ShiftCalendar:日程表,7,Method 方法 Variable 变量 TableFile:(二维)表 CardFile:随即表 StackFile:栈表、堆栈 QueueFile:队列表 Trigger:定时触发 AttributeExplorer:属性浏览器 TimeSequence:时间序列 Generator:发生器 XMLInterface:XML接口 FileInterface:文件接口 FileLink:文件链接,8,Comment:评论 Gauge:规格 (显示数据) Chart:图表 Report Dialog:对话框,9,
4、BottleneckAnalyzer:瓶颈分析器 SankeyDiagram:Sankey图 ExperimentManager:实验管理器 NeuralNet:神经网络 TransferStation:中转站 PortalCrane:门座起重机,10,第二章 eM-Plant的初步知识,11,CH2-1创建一个em-plant模型,CH2- Sample1,12,CH2-2 对象的复制和继承,CH2- Sample11 CH2- Sample12,13,第三章 eM-Plant建模的基本元素-对象,14,CH3-1 使用EventController对象跟踪仿真事件,CH3- EventDe
5、bugger1,15,CH3-2 Source对象中Operating mode项的作用,CH3- Source_operationmode,16,CH3-3 物流对象准备环节(Set-up)的设置,CH3- Station1s1_setup is doprint“setting up .“ end;,17,CH3-4 Trigger对象的应用,CH3- Trigger1s1_ctrl (old,new:boolean) is dos1.pause:=new; end;,18,第四章 分流、动画和层式结构,19,CH4-1 图标参考点、动画点及动画线的设置和作用,CH4- Animation1
6、,20,CH4-2 分流和分流动画,CH4- Sam_hierachy1,21,CH4-2 分流和分流动画,AddAttrib israndNo : real; dorandNo:=z_uniform(2,0,1);.createattr(“type“,“string“);if randno0.5 then.type:=“red“;.curricon:=“red“;else.type:=“green“;.curricon:=“green“;end;print .type; end;,Distri_entity(r :integer) : integer is doprint “call“;if
7、 .type= “red“ thenreturn 1;elsereturn 2;end; end;,22,CH4-3 层式结构,CH4- Sam_hierachy2 CH4- Sub_hierachy2,23,CH4-4 层式结构的动画设置,CH4- Sam_hierachy2 CH4- Sub_hierachy2,24,第五章 表和图,25,CH5-1栈表以及队列表的存取,CH5- StackFile_and_QueueFile,26,CH5-1栈表以及队列表的存取,Reset is dostackfile.delete;queuefile.delete;deletemovables; en
8、d;,countMu isi:integer; doif stackfile.empty theni:=1;elsei:=stackfile.dim+1;end;stackfile.push(i);queuefile.push(i); end;,27,CH5-1栈表以及队列表的存取,pop_from_file isi:integer; doif stackfile.dim7 theni:=stackfile.pop;print i;i:=queuefile.pop;print i;end; end;,28,CH5-2 Chart 对象的使用之一,CH5- ChartPlot1,29,CH5-2
9、 Chart 对象的使用之一,case is doif buffer_a.numMU 9 or buffer_b.numMU 9then ?.deleteMovables;end;-ifend;,30,CH5-3 Chart 对象的使用之二,CH5- Chartplot2reset is dodeletemovables;PartRecord.delete(2,12,3); end;,31,Creatpart,isi: real; doi:=z_uniform(1,0,1);.createattr(“type“,“string“);-Create attributeif i=0.2 then.
10、type:=“green“;PartRecord“Number“,2:=PartRecord“Number“,2+1; elseif i0.5 then.type:=“blue“;PartRecord“Number“,3:=PartRecord“Number“,3+1;end; end;,32,第六章 SimTalk语言和Method对象,33,CH6-1 Method调试器的使用,CH6- Debugger1M1 issum :real;dosum:=M2(10,7.5);print “result:“,sum; end;,34,CH6-1 Method调试器的使用,M2 (n1,n2 :r
11、eal) :real is doresult:= n1 + n2; end;,35,CH6-2 匿名指代符的使用,CH6- Sub_AI1AI1 is doprint .getno;print ?.name;print self;print current;print location;print location.location;print root; end;,36,CH6-2 匿名指代符的使用,CH6- AI1,37,CH6-3 Variable对象的使用,CH6- Variable1,38,CH6-3 Variable对象的使用,Reset is dodeletemovables;p
12、roductquantity:=0; end;,Move is do.move(Drain);end;,39,CH6-3 Variable对象的使用,Count is doproductquantity:=productquantity+1; end;,40,更改模型,Reset is dodeletemovables;productquantity:=0;productquantity1:=0; end;,41,更改模型,Count is doif .name=“Entityred“ thenproductquantity:=productquantity+1;elseproductquan
13、tity1:=productquantity1+1;end;end;,42,更改模型,Move isi:integer doif buffer.nummu=10 thenfor i:=1 to 10 loop.move(Drain);next;end; end;,43,CH6-4 Method对象的调用,CH6- BecalledInit is dodeletemovables;ref(test).methcall(0); end;,44,CH6-4 Method对象的调用,Test is doprint “test Method be called.“;print eventControll
14、er.simtime;M1;.models.ch6.becalled.M1;self.methcall(40);(V1); end;,45,CH6-4 Method对象的调用,M1 is doprint “M1 method is called.“; end;M2 is doprint “M2 method is called by a variable object.“; end;,46,第七章 物流对象-生产类物流对象,47,CH7-1 Assembly对象和DismantleStation对象的使用,CH7- Sam_assembly1,48,CH7-2 Buffer对象和PlaceBu
15、ffer对象的使用,CH7- Sam_buffer,49,Visitbuffer,is do-print placebuffer3.cont.name;-print placebuffer.PE(3).cont.name;-print buffer.PE(3).cont. name;end;,50,CH7-3 Store对象的使用,CH7- Sam_storereset is dodeletemovables; end;,51,MoveMu,isxdim,ydim:integer; doprint store.numMu; - print eventcontroller.simtime; -
16、waituntil drain.empty prio 1;for xdim:=1 to 3 loopfor ydim:=1 to 3 loopif storexdim,ydim.cont/=void thenstorexdim,ydim.cont.move;return;end;next;next; - ref(self).methcall(70); - self.methcall(0); end;,52,CH7-4 采用ShiftCalendar对象排班,CH7- ShiftCalendar1reset is dodeletemovables; end;,53,CH7-4 Cycle对象的使
17、用,CH7- Cycle1,54,第八章 物流对象-运输类物流对象,55,CH8-1 Line对象的使用,CH8- Sam_conveyor,56,CH8-2 Transporter对象的方向控制之一,CH8- CrossTransfer,57,CH8-2 Transporter对象的方向控制之一,INIT is do.MUs.transporter.create(track,2); end;EnterOrder isStation:object; dostation:=?;orderlist.push(station.name); end;,58,CH8-2 Transporter对象的方向
18、控制之一,Load1 is doprint “Loading SP1“;sp1.cont.move();.backwards:=false; end;,Load2 is doprint “Loading SP2“;sp2.cont.move();.backwards:=true; end;,59,Unload,isorder:string; doprint “Unloading.“;.stop;if not .empty thenwaituntil sp3.empty prio 1;.cont.move(sp3);end;waituntil orderlist.dim0 prio 1;orde
19、r:=orderlist.pop;if order=“SP1“ then.backwards:=true;else.backwards:=false;end;.continue; end;,60,CH8-3 Transporter对象的方向控制之二,CH8- Transporter1,61,CH8-3 Transporter对象的方向控制之二,reset is dodeletemovables;.Models.ch8.Mus.transporter.create(track11,10);track11.cont.speed:=2; end;,62,load,is doprint “loadin
20、g“;-.stop;source.cont.move();-.backwards:=false;if .cont.name=“red“ then.destination:=TRACK1;else .destination:=TRACK2;end;-.move;-.continue;.DestCtrl:=“Unload“; end;,63,Unload,is doprint “unloading“;if not .empty thenif .cont.name=“red“ then.cont.move(drain);else.cont.move(drain1);end;.destination:
21、=“;.DestCtrl:=“;end;.move; end;,64,CH8-4 Transporter对象的方向控制之三,CH8- Transporter2,65,CH8-4 Transporter对象的方向控制之三,reset is dodeletemovables;.Mus.transporter.create(track,2);track.cont.speed:=2;track.cont.destination:=“Track5“;track.cont.automaticrouting:=TRUE; end;,66,更改模型1,reset is dodeletemovables;.Mu
22、s.transporter.create(track,2);track.cont.speed:=2;track.cont.destination:=“Track5“;track.cont.automaticrouting:=False; end;,67,CH8-5 TurnTable对象的使用,CH8- Sam_turntable,68,第九章 物流对象-资源类物流对象,69,CH9-1 Exporter对象和 Broker对象的使用,CH9- Sam_exporter,70,CH9-2 WorkerPool对象、Workerplace对象及FootPath对象的使用,CH9- Sam_wor
23、kplace,71,CH9-3 设置一组工人(Workers)提供多项服务(Services),CH9- Sam_workplace1,72,CH9-4 服务请求在Broker对象之间的传递,CH9- Sam_broker1,73,更改模型1,74,更改模型2,75,第十章 eM-Plant的工具、附加件及应用模版,76,CH10-1 DataFit对象的使用,CH10- Datafit1,77,CH10-2 Experiment工具的使用之一,CH10- ExperimentManager1,78,CH10-3 Experiment工具的使用之二,某公司销售某单一产品,需要进行库存决策,在未
24、来的n个月中,应该持有多少库存量,才能使总成本最低。 在本例中,总成本由订货成本及库存持有成本构成。订货成本包括订货固定成本以及随订货量增加的可变成本。若库存量不足,则延迟交货,则不会发生缺货成本。所订货物可以选择两种交货方式:普通(Normal)和快递(Express)。,79,CH10-3 Experiment工具的使用之二,两种交货方式的成本构成如表:,80,CH10-3 Experiment工具的使用之二,公司采用(s, S)策略,即每隔一段时间检查库存,若库存量低于设定的安全库存量s,则向供货商订货,订货量为“S(最大库存量)- I(当前库存量)”。 在本例中,影响总成本的因素共有四个:安全库存量、检查库存时间间隔、交货方式以及最大库存量。现在假设每个因素只有两种选择,安全库存量(20或60件),检查库存时间间隔(1个月或2个月),交货方式(普通或快递),最大库存量(比安全库存多10件或50件)。,81,CH10-3 Experiment工具的使用之二,现在需要通过仿真,确定这四个因素应该如何搭配,才能使库存成本最低。,