1、1Flexsim中文教程中文教程2Flexsim中文教程中文教程 Flexsim软件的安装步骤 Flexsim建模的基本概念 Flexsim软件的使用步骤 开发实例训练 Flexsim软件的高级开发3Flexsim中文教程中文教程 单机版单机版 根据电脑操作系统打上相应的补丁 安装Visual C+ .net 安装Flexsim 安装HASP Driver 插入软件加密狗 输入客户序列号 开始菜单 / Flexsim 3 / Flexsim License Activation4Flexsim中文教程中文教程 网络版 服务器上安装: 加密狗加密狗 hdd32.exe(加密狗驱动)(HASP d
2、evice driver) aksmon32.exe (服务器监控程序) lmsetup.exe (服务器序列号管理器)*上面三个文件在网络版安装光盘的目录下可以找到 客户机上安装: Visual C+ .net Flexsim软件 hdd32.exe (加密狗驱动) 在Flexsim安装目录生成一个network.txt文件5Flexsim中文教程中文教程 Flexsim软件的安装步骤 Flexsim建模的基本概念 Flexsim软件主窗口布局 Flexsim仿真模型的基本组成 Flexsim软件的使用步骤 开发实例训练 Flexsim软件的高级开发6Flexsim中文教程中文教程 Flex
3、sim软件主窗口由下面五部分构成 菜单 工具栏 对象库 模型视图 仿真控制栏7Flexsim中文教程中文教程 工具栏中常用到的按钮包括 ToolBox:编辑全局表格/变量 Commands:Flexsim命令帮助 Tree:打开模型树 Ortho:打开模型正投影视图 Persp:打开模型透视图8Flexsim中文教程中文教程 Flexsim软件的安装步骤 Flexsim建模的基本概念 Flexsim软件主窗口布局 Flexsim仿真模型的基本组成 Flexsim软件的使用步骤 开发实例训练 Flexsim软件的高级开发9Flexsim中文教程中文教程 对象(Objects) Flexsim采用
4、对象对实际过程中的各元素建模 连接(Connections) Flexsim中通过对象之间的连接定义模型的流程 方法(Methods) 对象中的方法定义了模型中各对象所需要完成的作业10Flexsim中文教程中文教程 Flexsim软件的安装步骤 Flexsim建模的基本概念 Flexsim软件主窗口布局 Flexsim仿真模型的基本组成 对象(Objects) 连接(Connections) 方法(Methods) Flexsim软件的使用步骤 开发实例训练 Flexsim软件的高级开发11Flexsim中文教程中文教程 Flexsim采用面向对象的技术 大部分Flexsim对象都是Fixe
5、dResource或TaskExecutor对象的子对象 子对象拥有其父对象所有的接口和相应的功能 用户相对比较容易很快掌握子对象的使用12Flexsim中文教程中文教程13Flexsim中文教程中文教程14Flexsim中文教程中文教程 资源类(Fixed Resources) Source, Queue, Processor, Sink, Combiner, Separator, MultiProcessor, Conveyor, MergeSort, FlowNode, Rack, and Reservoir 执行类(TaskExecuter) Dispatcher, Operator,
6、 Transporter, Elevator, Robot, Crane, ASRSvehicle 网络类(Node) NetworkNode, TrafficControl 图示类(Visual Object) VisualTool, Recorder15Flexsim中文教程中文教程 Fixed Resource类对象一般是仿真模型中的主干对象 此类对象决定了模型的流程16Flexsim中文教程中文教程 Task Executer对象可从Fixed Resource对象中获取并执行任务,如物料搬运或生产操作等。 一个Task Executer对象可以向其他Task Executor对象指派
7、任务,或者管理模型中所有的Task Executers对象。 Task Executers对象不参与模型中的流程指派。17Flexsim中文教程中文教程 NetworkNode对象一般用来设定Task Executor对象的行动路线18Flexsim中文教程中文教程 图示类对象可用在仿真模型中显示各种信息、标识、图片或图表等 VisualTool和Recorder对象可用来提高仿真模型的直观感,同时可用来实时显示和搜集模型的输出数据19Flexsim中文教程中文教程 迁移实体指模型中存在迁移的对象 迁移实体可用来表示生产或服务中的原料、产品或产品集,如零件、部件、托盘、容器等;也可以是任务执行
8、者 迁移实体可点击工具栏按钮Flowitem定义 可对每个迁移实体定义对象类别(Itemtype)20Flexsim中文教程中文教程 Flexsim软件的安装步骤 Flexsim建模的基本概念 Flexsim软件主窗口布局 Flexsim仿真模型的基本组成 对象(Objects) 连接(Connections) 方法(Methods) Flexsim软件的使用步骤 开发实例训练 Flexsim软件的高级开发21Flexsim中文教程中文教程 Flexsim模型中的对象之间是通过端口来连接的 三种类型的端口 输入端口(input ports) Fixed Resource之间的连接 输出端口(o
9、utput ports) Fixed Resource之间的连接 中心端口(center ports) 连接Task Executer和Fixed Resource22Flexsim中文教程中文教程 按下 “s”键的同时用鼠标从一个对象拖拉到另一个对象上以连接二者 “s”连接仅用于中心端口之间的连接(即连接Task Executer和Fixed Resource ) “s”连接用“w”取消(按下 “w”键的同时用鼠标从一个对象拖拉到另一个对象上以连接二者)23Flexsim中文教程中文教程 按下 “a”键的同时用鼠标从一个对象拖拉到另一个对象上以连接二者 “a”连接用于除中心端口之外的所有其他
10、的连接 “a”连接用“q”取消24Flexsim中文教程中文教程 Flexsim软件的安装步骤 Flexsim建模的基本概念 Flexsim软件主窗口布局 Flexsim仿真模型的基本组成 对象(Objects) 连接(Connections) 方法(Methods) Flexsim软件的使用步骤 开发实例训练 Flexsim软件的高级开发25Flexsim中文教程中文教程 方法是用来完成一项任务的一系列规则集 好的方法应是可以重复使用的 Flexsim采用一系列方法集来完成所建模型的作业26Flexsim中文教程中文教程 Arrival Method Determines how and w
11、hen FlowItems Enter the model Trigger Method Determines what, where, and when to assign information to FlowItems Flow Method Determines how, where, and when to move FlowItems through the model Navigation Method Model navigation, and fly through FlowItem Bin Method Defines the FlowItem Characteristic
12、s TaskExecuter Move Method Dertermins who, and how FlowItems move from one FixedResource to another27Flexsim中文教程中文教程 Flexsim软件的安装步骤 Flexsim建模的基本概念 Flexsim软件的使用步骤 开发实例训练 Flexsim软件的高级开发28Flexsim中文教程中文教程1 构建模型布局2 定义物流流程3 编辑对象参数4 编译运行仿真5 分析仿真结果29Flexsim中文教程中文教程 将仿真所需要的对象模型从对象库中拖拽到仿真视图窗口中的适当位置30Flexsim中文
13、教程中文教程 根据连接类型,按下“a”或“s”键的同时用鼠标从一个对象拖拉到另一个对象上以连接二者31Flexsim中文教程中文教程 连接两个对象端口所需按键“a”键 用来将对象1的输出端口连接到对象2的输入端口上“q”键 用来取消对象1的输出端口与对象2的输入端口之间的连接“s”键 用来连接对象1与对象2的中心端口“w”键 用来取消对象1与对象2的中心端口的连接32Flexsim中文教程中文教程 各类端口连接的显示位置输出端口显示在对象的右上角输入端口显示在对象的左上角中心端口显示在对象底部中心33Flexsim中文教程中文教程 察看对象的端口连接 对象属性窗口General选项卡 可调整端
14、口的编号顺序34Flexsim中文教程中文教程 双击对象可以打开对象的参数对话框35Flexsim中文教程中文教程 点击对象窗口左下角“Properties”按钮可调出对象属性对话框 对象属性对话框中包括 图形(Visual) 常规(General) 标签(Labels) 统计(Statistics)36Flexsim中文教程中文教程 编译模型 重置模型 控制动画速度 运行仿真37Flexsim中文教程中文教程 仿真之前通过菜单Stats / Stats Collecting选择统计对象 仿真时在对象属性对话框Statistics选项卡中可实时察看相应对象的统计数据和图表 点击Stats下的S
15、tandard Report或State Report可生成标准统计报告和状态统计报告38Flexsim中文教程中文教程 Flexsim软件的安装步骤 Flexsim建模的基本概念 Flexsim软件的使用步骤 开发实例训练 实例1:简单仿真模型的建立 实例2:统计信息的查看与显示 实例3:TaskExecuter的应用 实例4:NetworkNode的应用 实例5:美化与演示 Flexsim软件的高级开发39Flexsim中文教程中文教程 生产线同时生产三种产品,然后被送到监测车间的缓存区。检测车间有三台监测系统分别对这三种产品进行检测后,通过各自的传送带将产品运输出去40Flexsim中文
16、教程中文教程 产品到达检测车间的时间服从均值为20,方差为2的正态分布 到达检测车间的产品类别(1, 2, 3)服从均匀分布 缓存区容量为25件产品 传送带传输速度为1m/s41Flexsim中文教程中文教程 从对象库中拖放所需的对象到建模视图中42Flexsim中文教程中文教程 按住A键,同时用鼠标左键点击Source对象并且按住鼠标左键不放,然后拖动鼠标至Queue对象。此时会出现一条黄线连接Source 和Queue对象。然后松开鼠标左键,黄线将变成一条黑线,表示Source对象和Queue对象的端口已经连接上。 如上所述,分别连接Queue到Processor,Processor到Co
17、nveyor,以及Conveyor到Sink的连线。43Flexsim中文教程中文教程44Flexsim中文教程中文教程 定义产品的流出 设置缓存区参数 设置检测设备参数45Flexsim中文教程中文教程 双击Source对象,打开其参数对话框46Flexsim中文教程中文教程 从Inter-Arrival time 下拉框中选择Normal Distribution47Flexsim中文教程中文教程 修改选项的默认参数 点击Template按钮 修改其中的棕褐色的参数值:将10改为20 48Flexsim中文教程中文教程 选择Source Triggers选项卡, 在 OnCreation下
18、拉框中选择Set Itemtype and Color来改变产品类型和颜色 49Flexsim中文教程中文教程 选中选项后,点击Template 按钮,确定参数如图所示后,点击Apply和Ok按钮,关闭Source对象的参数对话框。 50Flexsim中文教程中文教程 双击Queue,其参数对话框将会出现 将Maximum Content 对应值改为 25. 点击Apply确认 51Flexsim中文教程中文教程 转到Flow选项卡,在 “Output” 框中, 选择 “Send To Port” 下拉框中的“By Itemtype (direct)” 选项 依次点击Apply和OK按钮,关闭
19、Queue对象的参数对话框52Flexsim中文教程中文教程 双击第一个Processor对象 在参数对话框“Process Time” 下拉框中选择 “Exponential Distribution”选项 将参数由默认值10改为30 同样设置其他两个Processor对象53Flexsim中文教程中文教程 编译模型 重置模型 运行仿真54Flexsim中文教程中文教程 现在模型视图处于由上到下的垂直投影图中,该投影图在建模时经常使用,若在模型显示方面经常使用透视图。 选择工具栏中的Persp按钮可打开一个新的透视图 55Flexsim中文教程中文教程56Flexsim中文教程中文教程 打开
20、模型视图窗口上的Setting菜单 取消选中“Hide Names”57Flexsim中文教程中文教程 鼠标右键单击对象,从弹出菜单选择property,然后从属性对话框中选择Statistics选项卡 Statistics选项卡中里面又包括General, State, Content, Staytime四个子选项卡 General和State选项卡中可以动态显示对象状态的变化情况 Content和Staytime选项卡缺省下不能显示对象的动态变化情况58Flexsim中文教程中文教程 仿真文件编写过程中要注意经常保存仿真文件 第一次保存 主窗口File菜单Save Model As 保存修
21、改 主窗口File菜单Save 59Flexsim中文教程中文教程 Flexsim软件的安装步骤 Flexsim建模的基本概念 Flexsim软件的使用步骤 开发实例训练 实例1:简单仿真模型的建立 实例2:统计信息的查看与显示 实例3:TaskExecuter的应用 实例4:NetworkNode的应用 实例5:美化与演示 Flexsim软件的高级开发60Flexsim中文教程中文教程 打开已保存的例1的模型文件 另存为Example2.fsm61Flexsim中文教程中文教程 按住Ctrl键,选中三个Processor对象,这时候所选中的对象外面出现一红色方框62Flexsim中文教程中文
22、教程 点击主窗口菜单Stats / Stats Collecting / Selected Objects On选择所选中对象为统计对象 进行统计的对象外面出现绿色方框 按住Shift键点击模型视图的空白区域,可取消所有对象的选定(红色方框)63Flexsim中文教程中文教程 拖放3个Recorder对象至建模视图中64Flexsim中文教程中文教程 打开透视图 依次打开Recorder的属性对话框,修改Visual选项卡中的Z为8, SX, SY均修改为6,SX修改为90,并视情况调整65Flexsim中文教程中文教程 双击第一个Recorder对象,打开参数对话框 点击按钮“Data Ca
23、pture Settings”,修改 Type of Data为Standard Data Object Name为Processor 1 Data to capture为Staytime 点击“Next”按钮返回到Recorder对象的参数对话框66Flexsim中文教程中文教程点击“Display Options”按钮修改Graph Title为Staytime of Processor 1修改坐标轴参数 Lower Bound改为0 Upper Bound改为20 Divisions改为10点击按钮“Done”退出参数设置依次修改其它两个Recorder对象的参数67Flexsim中文教
24、程中文教程68Flexsim中文教程中文教程 Flexsim软件的安装步骤 Flexsim建模的基本概念 Flexsim软件的使用步骤 开发实例训练 实例1:简单仿真模型的建立 实例2:统计信息的查看与显示 实例3:TaskExecuter的应用 实例4:NetworkNode的应用 实例5:美化与演示 Flexsim软件的高级开发69Flexsim中文教程中文教程 在例1的基础上,2个检测员参与到了产品的检测中 检测员的任务是从缓冲区取出产品,并安装到相应的监测系统中,安装时间为10秒 传送带末端的产品由叉车送出70Flexsim中文教程中文教程 打开例1的仿真模型文件,另存为Example
25、3.fsm 修改仿真模型如图71Flexsim中文教程中文教程 按住“s”将Dispatcher对象分别与第一个Queue对象和三个Process对象连接起来 同样连接第二个Queue对象与叉车对象72Flexsim中文教程中文教程 按住“a”连接Dispatcher对象的输出端口和两个Operator对象的输入端口73Flexsim中文教程中文教程 打开第一个Queue的参数窗口 在Flow选项卡中选中“Use Transport” 同样修改另一个Queue的选项74Flexsim中文教程中文教程 打开Processor对象的参数窗口 修改Setup Time为A constant Setu
26、p time of 10 选中Operators选项卡中的Use Operator(s) for Setup 同样修改其它两个Processor对象75Flexsim中文教程中文教程76Flexsim中文教程中文教程 Flexsim软件的安装步骤 Flexsim建模的基本概念 Flexsim软件的使用步骤 开发实例训练 实例1:简单仿真模型的建立 实例2:统计信息的查看与显示 实例3:TaskExecuter的应用 实例4:NetworkNode的应用 实例5:美化与演示 Flexsim软件的高级开发77Flexsim中文教程中文教程 将例3中的Sink改成3个货架,3种产品检测完毕后分别放入
27、对应的三个货架中 叉车只能够沿着规定路线行驶78Flexsim中文教程中文教程 删除Sink对象,添加三个Rack对象 将第二个Queue对象与三个Rack对象分别用“a”连接79Flexsim中文教程中文教程 修改第二个Queue对象的Send To Port参数为By Itemtype (direct) 修改货架高度为5层,点击“Apply Basic Settings”和“OK”确定80Flexsim中文教程中文教程 观察仿真运行时叉车的行驶路线81Flexsim中文教程中文教程 在模型视图中添加NetworkNode对象 “a”连接NetworkNode到相应的存取位置(蓝色细线)82
28、Flexsim中文教程中文教程 “a”连接相应的NetworkNode对象形成路网(绿色粗线) “a”连接叉车到路网中(红色细线)83Flexsim中文教程中文教程托拽路网上的SplinePoint(红色小球)可以修改路径的弯曲形状按住“x”键单击SplinePoint可以在路段上添加另一个SplinePoint按住“q”键从一个NetworkNode拖到另一个NetworkNode可取消托拽方向的连接,形成单向路径(取消路径需要按住取消双方向的连接)84Flexsim中文教程中文教程 设置一条单向路径85Flexsim中文教程中文教程86Flexsim中文教程中文教程 Flexsim软件的安
29、装步骤 Flexsim建模的基本概念 Flexsim软件的使用步骤 开发实例训练 实例1:简单仿真模型的建立 实例2:统计信息的查看与显示 实例3:TaskExecuter的应用 实例4:NetworkNode的应用 实例5:美化与演示 Flexsim软件的高级开发87Flexsim中文教程中文教程 Sky Box的应用 Fly Path的应用88Flexsim中文教程中文教程 Flexsim软件的安装步骤 Flexsim建模的基本概念 Flexsim软件的使用步骤 开发实例训练 Flexsim软件的高级开发 C+ ToolBox Experimenter89Flexsim中文教程中文教程 类
30、、实例、接口 封装 数据(属性、变量) 函数(方法) 继承 多态90Flexsim中文教程中文教程 int double char char* string fsnode*91Flexsim中文教程中文教程 int counter = 1; double size = xsize(current); char letter = A; char* tablename = “mytable”; string tablename = “mytable”; fsnode* nextobj = outobject(current,1);92Flexsim中文教程中文教程if (expression)co
31、de blockelsecode blockif (content(item) = 2)colorred(item);elsecolorblack(item);93Flexsim中文教程中文教程while (expression)code blockwhile (content(current) 0)destroyobject(last(current);94Flexsim中文教程中文教程for (var decl; expr; increment)code blockfor (int index = 1; index 与 +98标准节点对象节点数据或元函数节点方法 (C+)方法 (FlexS
32、cript)Flexsim中文教程中文教程99 节点树中的每一个node实际上都是 “fsnode” 类的一个实例 fsnode* 可声明指向一个fsnode类的实例的数据类型Flexsim中文教程中文教程100Flexsim中文教程中文教程 getnodename() getnodenum() getnodestr() setnodename() setnodenum() setnodestr() inc() getdatatype() getrank() setrank() content() up() rank() first() and last() prev() and next()
33、 objectexists()101Flexsim中文教程中文教程classessuperclassesvariableslabelsbehavioureventfunctionscppfunctionscppvariablesspatialspecialvisualconnectionseventsstats102 属性(Attributes) getnodenum(attribute(fsnode*); setnodenum(attribute(fsnode*),val); ex: getnodenum(spatialsx(current); 变量(Variables) getnodenu
34、m(var_s(fsnode*,”varname”); setnodenum(var_s(fsnode*,”varname”),val); ex: setnodenum(var_s(current,”maxcontent”),10);Flexsim中文教程中文教程103Flexsim中文教程中文教程 spatialx(yz), spatialrx(yz), spatialsx(yz) offsetx(yz), offsetrx(yz), offsetsx(yz) itemtype state_current stats_content, stats_contentmin, stats_cont
35、entmax, stats_contentavg stats_input, stats_output stats_creationtime displaygroup 104Flexsim中文教程中文教程 Flexsim软件的安装步骤 Flexsim建模的基本概念 Flexsim软件的使用步骤 开发实例训练 Flexsim软件的高级开发 C+ ToolBox Experimenter105Flexsim中文教程中文教程 ToolBox Global Tables Time Tables User Events (advance user) MTBF MTTR Watch Lists Global
36、 C+ Code Global Object Pointers Import Media Files Model Startup Code106Flexsim中文教程中文教程 全局表(Global Table) 用于储存模型输入输出数据等 可以是数值类型或字符串类型107Flexsim中文教程中文教程 单击工具栏上的ToolBox按钮 在Global Tables一栏中单击“Add” 然后单击“Edit” 重命名表格名 设置行数与列数 点击“Advanced”设置各行或列的数据类型108Flexsim中文教程中文教程 直接编辑表格附初值 借助事件的下拉列表对全局表进行修改109Flexsim中
37、文教程中文教程 相关函数 gettablenum(tablename, row, col); settablenum(tablename, row, col, value); gettablestr(tablename, row, col); settablestr(tablename, row, col, “string”);110Flexsim中文教程中文教程 Global C+ Code 可用来定义全局变量或函数111Flexsim中文教程中文教程 Model Startup Code将在编译以后立即执行 如reset();go();112Flexsim中文教程中文教程 Flexsim软
38、件的安装步骤 Flexsim建模的基本概念 Flexsim软件的使用步骤 开发实例训练 Flexsim软件的高级开发 C+ ToolBox Experimenter113Flexsim中文教程中文教程 可用Experimenter设置仿真模型的重复运行 Experimenter由两部分组成 Replications Events114Flexsim中文教程中文教程 Replications Warmup End Time Simulation End Time Replications per Scenario Number of Scenarios115Flexsim中文教程中文教程 事件触发可允许模型在下列时候修改参数: Start of experiment Start of Scenario Start of Replication End of warmup period End of Replication End of Scenario End of Experiment