《EM-Plant环境下车间生产管理仿真与优化创新实验.docx》由会员分享,可在线阅读,更多相关《EM-Plant环境下车间生产管理仿真与优化创新实验.docx(44页珍藏版)》请在三一办公上搜索。
1、实验项目名称EM-Plant环境下车间生产管理仿真与优化创新实验实验学时24指导教师张帅、王军强实验地点航空楼B101实验对象工业工程本科生可选人数10EM-Plant环境下车间生产管理仿真与优化创新实验大纲实验名称:EM-Plant环境下车间生产管理仿真与优化创新实验实验学时:24适用专业:工业工程专业开课学院:机电学院开课学期:第6学期一、 实验课程简介本实验采用的是EM-Plant软件工具,该软件是面向对象的、图形化的、集成的建模、仿真工具,系统结构和实施都满足面向对象的要求。eM-Plant可以对各种规模的工厂和生产线,包括大规模的跨国企业,建模、仿真和优化生产系统,分析和优化生产布局
2、、资源利用率、产能和效率、物流和供需链等。二、 学生应达到的实验能力与标准1、上机实验前,应认真预习实验内容及有关的相应知识。2、查找有关信息,了解EM-Plant的初步知识。3、掌握仿真建模流程。4、了解EM-Plant建模的基本元素、对象及SimTalk语言。5、了解统计分析、优化工具。三、 讲授实验的基本理论与实验技术知识1、 熟悉和使用EM-Plant软件工具。2、 建立对象专业化的轴套装配过程仿真。3、 建立工艺专业化的轴套装配过程仿真。4、 建立轴加工的关键路线识别仿真。四、 实验考核与成绩评定平时上机实践与设计实验考核相结合,其中平时成绩占30%,实验考核占70%。EM_Plan
3、t创新实验指导书张帅 王军强 主编西 北 工 业 大 学2009年12月目 录实验一 轴套装配过程仿真(对象专业化)31实验目的32实验输入、输出参数33实验步骤33.1建立起始和结束对象33.2建立Complathe层和CompMill层33.3建立Drill、Grinder、Bearing_Buffer、Shaft_Buffer、Assembly设备53.4建立Table_In、Table_Shaft、Table_Bearing、Table_Result表73.5 Variable的建立103.6建立Method方法103.7各控件属性设置113.8完成后的仿真图154实验报告要求16实验
4、二 轴套装配过程仿真(工艺专业化)161实验简介162实验目的163输入参数164输出参数165实验步骤165.1建立起始和结束对象175.2建立车床、铣床、钻床、磨床及缓冲设备175.3建立Order、Bearing_gy、Shaft_gy、Table_Shaft、Table_Bearing、Table_machine、Table_Result表185.4 Variable的建立195.5建立Method方法195.6各控件属性设置215.7完成后的仿真图286实验报告要求29实验三 轴加工的关键路线识别291实验目的292实验输入参数293实验输出参数294实验步骤294.1建立起始和结束
5、对象294.2建立车床、铣床、钻床、磨床及缓冲设备304.3建立Table_A、TableFile_A、TableFile_B、TableFile_C表314.4 建立变量314.5建立Method方法344.6各控件属性设置364.7完成后的仿真图435实验报告要求45实验一 轴套装配过程仿真(对象专业化)1实验目的 模拟对象专业化组织方式下,动画显示轴和轴套的装配过程,了解轴和轴套BOM装配编程,统计总的装配时间,分析瓶颈设备。2实验输入、输出参数输入参数:轴和轴套的加工数量、装配关系、加工时间、加工工艺路线输出参数:产出、总的装配时间、设备利用率、瓶颈设备。l Table_shaft表:
6、记录轴的整个加工时间;l Table_Bearing表:记录轴套的整个加工时间;l Table_result表:用来记录装配时间;l Index:记录轴的数量;l index2:记录轴套的数量。3实验步骤3.1建立起始和结束对象在工具栏图1-1中点击“Source”对象和“Drain”对象,拖入到窗口中;图1-1工具栏3.2建立Complathe层和CompMill层图1-2如图1-2所示,右键点击“Models”,新建两个层,并重命名为“Complathe”和“CompMill”层。图1-3从Models中将“Complathe”和“CompMill”层拖入到窗口中,如图1-3所示。双击“C
7、omplathe”层进入图1-4所示页面,点击按键,建立Complathe的子层;先采用两个singleproc,把其分别命名为Lathe_1和Lathe_2,并把它们设置成并联结构,两端用Interface进行联接,点击按键,进行连线。图1-4建立Complathe层页面双击“CompMill”层进入图1-5所示页面,点击按键,建立CompMill的子层;先采用两个singleproc,把其分别命名为Mill_1和Mill_2,并把它们设置成并联结构,两端用Interface进行联接,点击按键,进行连线。图1-5 建立CompMill层页面3.3建立Drill、Grinder、Bearing
8、_Buffer、Shaft_Buffer、Assembly设备在左边的类型树中点击按键,并将其拖入窗口中,重新命名为Drill和Grinder。在左边的类型树中点击按键,将两个缓冲拖入窗口中,重新命名为Bearing_Buffer和Shaft_Buffer。在左边的类型树中点击按键,将一个装配设备拖入窗口中。对设备之间进行连接。点击左边类型树中的Complathe层,单击鼠标右键,选择“编辑图标”进入图标编辑页面(图1-6所示),粘贴已选定的图案,完成后点击按键。CompMill层、Drill设备、Grinder设备的图标以相同的方法设定。图1-6 图标编辑页面图标完成后就形成图1-7所示的装
9、配过程仿真页面。图1-7装配过程仿真页面3.4建立Table_In、Table_Shaft、Table_Bearing、Table_Result表点击工具栏(图1-8所示)中“Information Flow”选项卡中的按键,将其拖入窗口中,重新命名为Table_in。图1-8工具栏双击Table_in对象弹出窗口,单击表窗口Format菜单中的继承格式(Inherit Format)命令,取消该命令的勾选状态,如图1-9所示。图1-9 取消勾选表的继承格式命令单击表窗口Format菜单中的Column Index级联菜单中的Active和Show命令,如图1-10所示。然后,在行号为1的行上
10、面会出现1行,在该行中输入自定义列名。图1-10设置表显示自定义列名单击自定义列名,使其变为橙色,单击右键,在弹出的快捷菜单中点击Format命令,将弹出行定义对话框,单击行定义对话框中的数据类型(Data Type)标签如图1-11所示。图1-11设置自定义列名所在列的数据类型表Table_Shaft、Table_Bearing、Table_Result的建立方式与Table_In相同。表Talbe_in结构MUNumberNameAttribute.entity.Shaft1Shaft.entity.Bearing2Bearing表 table_Shaft结构Integer1Time2Ti
11、me3Time4stringShaft_CountShaft_In_TimeShaft_Out_TimeShaft_Machine_Time表 table_Bearing结构Integer1Time2Time3Time4stringBearing_CountBearing_In_TimeBearing_Out_TimeBearing_Machine_Time表table_Result结构Integer1Time2Time3Time4stringCountStartTimeEndTimeMachineTime双击打开Source,如图1-12所示。在Attribute选项卡的MU selecti
12、on下拉式列表框中选择:顺序循环,把 Table_in拖到Table选项中,并选中Format table选项,此时,将会对table_in直接进行格式化处理,在Controls选项卡的Entrance中选择Source_In。点击“Apply”和“OK”进行确定。图1-12 Source属性窗口双击“Table_in”表,如图1-13所示,点击按键,将其拖入表中第一行的“Object”位置,点击按键,将其拖入表中第二行的“Object”位置,输入其属性信息。图1-13 Table_in表显示窗口3.5 Variable的建立建立Shaft_Count, Shaft_In_Time, Shaf
13、t_Out_Time, Shaft_Machine_Time,Bearing_Count, Bearing_In_Time,Bearing_Out_Time,Bearing_Machine_Time,Index,Index2,Product_Count,StartTime,EndTime,MachineTime各变量。并把Shaft_Count, Bearing_Count, Index,Index2, Product_Count设置为integer类型,其余变量设置为time类型。3.6建立Method方法点击工具栏(图1-8所示)中“Information Flow”选项卡中的按键,将其拖
14、入窗口中,并重新命名为Source_in、Drill_Out 、Grinder_Out、Assembly_Out。3.6.1 Source_In方法双击“Source_in”,写入方法内容(图1-14所示),完成后点击按键,进行保存。图1-14 Source_in方法的程序窗口3.6.2 Drill_Out方法isdoif .name=Shaft then.move(Grinder);elseif .name=Bearing then.move(Assembly);index2:=index2+1;Bearing_Out_Time:=EventController.SimTime;Table_
15、Bearing3, index2:= Bearing_Out_Time;Table_Bearing4, index2:=Table_Bearing3, index2-Table_Bearing2, index2; Bearing_Machine_Time:= Bearing_Out_Time- Bearing_In_Time;end;end;3.6.3 Grinder_Out方法isdoShaft_Out_Time:=EventController.SimTime;Index:=Index+1;Table_Shaft3,Index:=Shaft_Out_Time;Table_Shaft4,In
16、dex:=Table_Shaft3,Index-Table_Shaft2,Index;Shaft_Machine_Time:=Shaft_Out_Time-Shaft_In_Time;end;3.6.4 Assembly_Out方法isdo Product_Count:=Product_Count+1;EndTime:=EventController.simtime;MachineTime:=EndTime-Table_Result2,Product_Count; Table_Result3,Product_Count:=EndTime;Table_Result4,Product_Count:
17、=MachineTime;end;3.7各控件属性设置在Lathe_1和Lathe_2的Time选项卡的precessing time:框中输入2:00:00图1-15 Lathe_1属性窗口 图1-16 Lathe_2属性窗口在Mill_1和Mill_2的Time选项卡的precessing time:框中输入1:00:00图1-17 Mill_1属性窗口 图1-18 Mill_2属性窗口在Drill的Time选项卡的precessing time:框中输入30:00图1-19 Drill-Times属性窗口在Grinder的Time选项卡的precessing time:框中输入30:00
18、图1-20 Grinder-Times属性窗口Drill_Out,Grinder_Out,Assembly_Out的方法应用:在Drill的Controls选项卡的Exit:中选择Drill_Out,并选择Front复选框,单击Apply应用。图1-21 Drill-Controls属性窗口在Grinder的Controls选项卡的Exit:中选择Grinder_Out,并选择Rear复选框,单击Apply应用并确认。图1-22 Grinder-Controls属性窗口在Assembly的Con0trols选项卡的Exit:中选择Assembly_Out,并选择Rear复选框,单击Apply应
19、用并确认。图1-23 Assembly-Controls属性窗口Assembly的属性设置:选择Attributes选项卡,Assembly table with:前,Main MU from predecessor:1 Assembly mode:删除MUs ,Exiting MU:主MU,Sequence:MUs然后服务,并单击Open,在第一行对应的Predecessor 中输入2,在Number中输入2,这样便可实现一个轴和两个轴套的装配。图1-24 Assembly-Attributes属性窗口3.8完成后的仿真图图1-25 完成的仿真图运行仿真模型时点击图1-25中的图标,清零时点
20、击图标。在模型运行前点击图中的“EventController”控件设定运行的时间。4实验报告要求1) 写出轴套装配系统界面的各个构成,系统布局区的组成;以及每一部分的功能;2) 写出实验目的、实验步骤;3) 将模型的不同参数运行结果进行对比,分析结果。实验二 轴套装配过程仿真(工艺专业化)1实验简介 实验一模拟了流水车间(flow shop)对象专业化下生产加工情形,针对工艺专业化job shop不同的加工工艺情形,实验二进行模拟仿真,动画显示轴和轴套的装配过程,了解轴和轴套BOM装配编程,统计总的装配时间,分析瓶颈设备。2实验目的 模拟仿真在给定的工艺路线和生产设备下,生产装配一定数量零件
21、所用的时间。并且可以得出各台机器的利用率等。3输入参数轴和轴承的生产工艺和工时,产品的个数及投料计划。某工厂总共需要生产两种零件,产品名称为 Shaft,Bearing每种产品的加工工艺及工时如下:ShaftBearing1 车 2H2 铣 1H3 钻孔 0.5H4 磨 0.5H5 铣 0.5H1 车 2H2 铣 1H3 钻孔 0.5H4 车 1H完成零件加工后,将一个Shaft和两个Bearing装配在一起。现在车间有车床2台、铣床2台、钻床1台及磨床1台。现在要求生产10件产品装配,请确定在现有设备资源情况下,生产完成这10件装配需要多久时间。4输出参数生产周期、各台设备利用率及图表显示。
22、5实验步骤5.1建立起始和结束对象在工具栏图2-1中点击“Source”对象和“Drain”对象,拖入到窗口中;图2-1工具栏5.2建立车床、铣床、钻床、磨床及缓冲设备点击图2-2中的图标,将其拖入窗口中,分别命名为che1、che2、xi1、xi2、zuan、mo六种设备;同时点击图2-2中的图标,将其拖入窗口中,分别命名为Che_buffer、Xi_buffer、Zuan_buffer、Mo_buffer、Shaft_buffer、Bearing_buffer六个缓冲。并且将六种设备的图标进行编辑。图2-2 类型树将缓冲和设备进行连线,形成图2-3所示的仿真结构模型。图2-3 仿真结构模型
23、5.3建立Order、Bearing_gy、Shaft_gy、Table_Shaft、Table_Bearing、Table_machine、Table_Result表表Order结构MUNumberNameAttribute.MUs.Shaft1Shaft.MUs.Bearing2Bearing表 Bearing_gy结构String1Time2stringGylxTime表 Shaft_gy结构String1Time2stringGylxTime表 table_Shaft结构Integer1Time2Time3Time4stringShaft_CountShaft_In_TimeShaft
24、_Out_TimeShaft_Machine_Time表 table_Bearing结构Integer1Time2Time3Time4stringBearing_CountBearing_In_TimeBearing_Out_TimeBearing_Machine_Time表table_Result结构Integer1Time2Time3Time4stringCountStartTimeEndTimeMachineTime表table_machine结构String0Time1Time2stringWorkingTimeWaitingTime5.4 Variable的建立建立Shaft_Cou
25、nt, Shaft_In_Time, Shaft_Out_Time, Shaft_Machine_Time,Bearing_Count,Bearing_In_Time,Bearing_Out_Time,Bearing_Machine_Time,Shaft_Index,Bearing_Index2,Product_Count,StartTime,EndTime,MachineTime各变量。并把Shaft_Count, Bearing_Count, Index,Index2, Product_Count设置为integer类型,其余变量设置为time类型。5.5建立Method方法5.5.1 R
26、eset方法isdoTable_Shaft.delete;Table_Bearing.delete;Table_machine.delete;end;5.5.2 Source_In方法isdoif .name=Shaft thenShaft_Count:=Shaft_Count+1;Shaft_In_Time:=EventController.SimTime;Table_Shaft1,Shaft_Count:= Shaft_Count;Table_Shaft2,Shaft_Count:=Shaft_In_Time;elseif .name=Bearing thenBearing_Count:=
27、Bearing_Count+1; Bearing_In_Time:=EventController.SimTime;Table_Bearing1,Bearing_Count:=Bearing_Count;Table_Bearing2,Bearing_Count:=Bearing_In_Time;end;StartTime:=EventController.SimTime;Table_Result1,Shaft_Count:=Shaft_Count;Table_Result2,Shaft_Count:=StartTime;end;5.5.3 Mathod方法isdo.Current_number
28、:=.Current_number+1;if .Name=Shaft then .Current_gylx:=Shaft_gyGylx,.Current_number; .Current_time:=Shaft_gyTime,.Current_number;else.Current_gylx:=Bearing_gyGylx,.Current_number;.Current_time:=Bearing_gyTime,.Current_number; end;inspect .Current_gylxwhen Che then.move(Che_buffer); when Zuanthen.mov
29、e(Zuan_buffer); when Mothen.move(Mo_buffer);when Xithen.move(Xi_buffer);when Finishthenif .Name=Shaft then.move(Shaft_buffer);else.move(Bearing_buffer);end;end;end;5.5.4 Shaft_mathod方法isdo Shaft_Out_Time:=EventController.SimTime;Shaft_Index:=Shaft_Index+1;Table_Shaft3,Shaft_Index:=Shaft_Out_Time;Tab
30、le_Shaft4,Shaft_Index:=Table_Shaft3,Shaft_Index-Table_Shaft2,Shaft_Index;Shaft_Machine_Time:=Shaft_Out_Time-Shaft_In_Time;end;5.5.5 Bearing_mathod方法isdoBearing_Index2:=Bearing_Index2+1;Bearing_Out_Time:=EventController.SimTime;Table_Bearing3, Bearing_Index2:= Bearing_Out_Time;Table_Bearing4, Bearing
31、_Index2:=Table_Bearing3, Bearing_Index2-Table_Bearing2, Bearing_Index2; Bearing_Machine_Time:= Bearing_Out_Time- Bearing_In_Time;end;5.5.6 mathod_out方法isdoProduct_Count:=Product_Count+1;EndTime:=EventController.simtime;MachineTime:=EndTime-Table_Result2,Product_Count; Table_Result3,Product_Count:=En
32、dTime;Table_Result4,Product_Count:=MachineTime;end;5.5.7 Endsim方法isdo Table_machineWorkingTime,che1:=che1.statWorkingTime;Table_machineWorkingTime,che2:=che2.statWorkingTime;Table_machineWorkingTime,xi1:=xi1.statWorkingTime;Table_machineWorkingTime,xi2:=xi2.statWorkingTime;Table_machineWorkingTime,z
33、uan:=zuan.statWorkingTime;Table_machineWorkingTime,mo:=mo.statWorkingTime;Table_machineWaitingTime,che1:=che1.statWaitingTime;Table_machineWaitingTime,che2:=che2.statWaitingTime;Table_machineWaitingTime,xi1:=xi1.statWaitingTime;Table_machineWaitingTime,xi2:=xi2.statWaitingTime;Table_machineWaitingTi
34、me,zuan:=zuan.statWaitingTime;Table_machineWaitingTime,mo:=mo.statWaitingTime;end;5.6各控件属性设置Source:将窗口中的Order表拖入到图2-4中的“Table”框中,并将“Format table”前的方框打上。图2-4 Source_Attributes属性窗口Source:将窗口中的Method方法拖入到图2-5中的“Exit”框中,并将“Front”前的方框打上。图2-5 Source_Controls属性窗口Che_buffer:将窗口中的Sourcein方法拖入到图2-6中的“Exit”框中,
35、并将“Rear”前的方框打上。图2-6 Che_buffer_Controls属性窗口Shaft_buffer:将窗口中的shaft_Method方法拖入到图2-7中的“Entrance”框中,并将“Front”前的方框打上。图2-7 Shaft_buffer_Controls属性窗口Bearing_buffer:将窗口中的bearing_Method方法拖入到图2-7中的“Entrance”框中,并将“Front”前的方框打上。图2-8 Bearing_buffer_Controls属性窗口che1_Times:在Times选项卡的precessing time:框中输入2:00:00图2-
36、9 che1_Times属性窗口Che1_Controls:将窗口中的Method1方法拖入到图2-10中的“Entrance”框中,将窗口中的Method方法拖入到 “Exit”框中 ,并将“Front”前的方框打上。图2-10 che1_Controls属性窗口Che2:Che2的属性定义与che1的定义相同。xi1_Times:在Times选项卡的precessing time:框中输入1:00:00图2-11 xi1_Times属性窗口Xi1:将窗口中的Method1方法拖入到图2-12中的“Entrance”框中,将窗口中的Method方法拖入到 “Exit”框中 ,并将“Front
37、”前的方框打上。图2-12 xi1_Controls属性窗口Xi2:xi2的属性定义与xi1的定义相同。zuan:在Times选项卡的precessing time:框中输入30:00图2-13 zuan_Times属性窗口zuan:将窗口中的Method1方法拖入到图2-14中的“Entrance”框中,将窗口中的Method方法拖入到 “Exit”框中 ,并将“Front”前的方框打上。图2-14 zuan_Controls属性窗口mo:mo的属性定义与zuan的定义相同。Assembly:选择Attributes选项卡,Assembly table with:前,Main MU from
38、 predecessor:1 Assembly mode:删除MUs ,Exiting MU:主MU,Sequence:MUs然后服务,并单击Open,在第一行对应的Predecessor 中输入2,在Number中输入2,这样便可实现一个轴和两个轴套的装配。图2-15 Assembly-Attributes属性窗口Drain:将窗口中的Method_out方法拖入到图2-16中的“Entrance”框中。 图2-16 Drain属性窗口5.7完成后的仿真图图2-17完成的仿真图运行仿真模型时点击图2-17中的图标,清零时点击图标。在模型运行前点击图中的“EventController”控件设
39、定运行的时间。6实验报告要求1) 写出轴套装配系统界面的各个构成,系统布局区的组成;以及每一部分的功能;2) 写出实验目的、实验步骤;3) 将模型的不同参数运行结果进行对比,分析结果。实验三 轴加工的关键路线识别1实验目的 在可选工艺路线情形下,通过对车间生产运行过程进行模拟,分析识别影响系统运行的关键路线。2实验输入参数设备:3台车床,4台钻床,3台铣床,1台磨床产品:A、B、C三中不同型号的轴加工时间:如下表所示。产品 工艺cuttingdrillmillgrindA(A_1/A_2两种)3分钟1分钟/30秒1分钟/2分钟1分钟B3分钟1分钟2分钟1分钟C2分钟2分钟2分钟1分钟终止条件:
40、当总输出零件为300件时(A、B、C三中轴的总量),系统自动停止运行。3实验输出参数不同产品的零件加工个数、3K图、设备利用率、瓶颈分析图、关键路线图。4实验步骤4.1建立起始和结束对象在工具栏图3-1中点击“Source”对象和“Drain”对象,拖入到窗口中;其中Source对象为三个,分别命名为entrance1、entrance2、entrance3。在工具栏中分别点击、图标,将其拖入到窗口中。图3-1工具栏4.2建立车床、铣床、钻床、磨床及缓冲设备点击图3-2中的图标,将其拖入窗口中,分别命名为cutting1、cutting2、cutting3、drilling1_1、drilli
41、ng1_2、drilling2、drilling3、milling1_1、milling1_2、 milling2、grinding十一种设备;同时点击图3-2中的图标,将其拖入窗口中,分别命名为buffer1、buffer2、buffer3、buffer四个缓冲。图3-2 类型树将缓冲和设备进行连线,形成图3-3所示的仿真结构模型。图3-3 仿真结构模型4.3建立Table_A、TableFile_A、TableFile_B、TableFile_C表表Table_A结构MUNumberNameAttribute.MUs.A10Aaa.MUs.A6Aaa表 TableFile_A结构Integ
42、er1Time2String3Time4stringValueInputTimeMUsTypeOutputTime表 TableFile_B结构Integer1Time2Time3stringValueInputTimeOutputTime表 TableFile_C结构Integer1Time2Time3stringValueInputTimeOutputTime双击Table_A表中的第一个属性“aa”,显示图3-4所示的属性表,在标记“Name of Attribute”的名称下输入“type”,同时在相应的数据类型下输入名称“A_1”。以同样的方法在第二个属性“aa”下标记名称“A_2”
43、。图3-4 产品A的属性信息4.4 建立变量4.4.1 Variable的建立建立ind_A,A_inputtime,A_Outputtime,ind_B,B_inputtime,B_Outputtime,ind_C,C_inputtime,C_Outputtime,A_Out,B_Out,C_Out,A_1_Oult,A_2_Out,A_Out+B_Out+C_Out各变量。并把ind_A, ind_B, ind_C, A_Out,B_Out,C_Out,A_1_Oult,A_2_Out设置为integer类型,其余变量设置为time类型。以ind_A变量为例,介绍一下变量的建立方法:图3-
44、5 工具栏点击图3-5工具栏中的“Information Flow”选项卡,点击按键,并将其拖入到窗口中。双击拖入的变量,弹出图3-6的对话框,点击文本框后的标记,使其变成样式,表示该文本框可以进行修改操作。输入变量的名称,在“Value”选项卡中选择“Data type”和输入“Value”值,点击“Apple”,“OK”。图3-6 变量的属性窗口4.4.2 Display的建立建立A:0,B:0,C:0三个数据显示的参数。步骤如下:点击图3-7工具栏中的“User Interface”选项卡,点击按键,并将其拖入到窗口中。图3-7 工具栏双击拖入的变量,弹出图3-8的对话框,将“Active”前的方框打上