- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
32
Global C++ Code
• Global C++ Code 可 用来定义全局变量或 函数
33
Model Startup Code
• Model Startup Code 将在编译以后立即执 行
•如 reset(); go();
34
• Flexsim软件的高级开发
– C++ – ToolBox – Experimenter
• ToolBox
– Global Tables – Time Tables – User Events (advance user) – MTBF MTTR – Watch Lists – Global C++ Code – Global Object Pointers – Import Media Files – Model Startup Code
– getnodenum(var_s(fsnode*,”varname”)); – setnodenum(var_s(fsnode*,”varname”),val); – ex: setnodenum(var_s(current,”maxcontent”),10);
25
通用属性的获取
• spatialx(yz), spatialrx(yz), spatialsx(yz) • offsetx(yz), offsetrx(yz), offsetsx(yz) • itemtype • state_current • stats_content, stats_contentmin,
• getnodename() • getnodenum() • getnodestr() • setnodename() • setnodenum() • setnodestr() • inc() • getdatatype()
• getrank() • setrank() • content() • up() • rank() • first() and last() • prev() and next() • objectexists()
有2台检测仪检测产品1,3
台检测仪检测产品2,产品将首先 到空闲可用的检测仪进行检测。
两种产品的检测时间是 120~150s之间的均匀分布。
西南科技大学制造科学与工程学院工业工程教研室 石宇强
8
设施规划与物流分析
补充实例
2 标签使用模型
工件按每30s的指数分布时间间 隔到达一个队列
有四种类型工件,工件类型的分 布为20%,30%,40%,10% 每种类型的工件都在专用机器上 进行加工,工件第一次加工的时 间为uniform(100,120)s,返工时 间为uniform(120,130)s 工件被加工后,在一个队列中等 待检验,检测时间为常数:10s 检验通过的工件离开模型,检验 不能通过的工件被送回到第一个 队列中等待返工,返工率为10% 返工的工件在队列中具有优先权
28
全局表
• 全局表(Global Table)
– 用于储存模型输入输出数据等 – 可以是数值类型或字符串类型
29
全局表的添加
• 单击工具栏上的ToolBox按钮 • 在Global Tables一栏中单击“Add” • 然后单击“Edit” • 重命名表格名 • 设置行数与列数 • 点击“Advanced”设置各行或列的数据类型
24
获取对象的属性与变量
• 属性(Attributes)
– getnodenum(attribute(fsnode*)); – setnodenum(attribute(fsnode*),val); – ex: getnodenum(spatialsx(current));
• 变量(Variables)
10
设施规划与物流分析
§8.5 高级开发简介
Flexsim软件的高级开发
C++ ToolBox Experimenter
西南科技大学制造科学与工程学院工业工程教研室 石宇强
11
C++与对象
• 类、实例、接口 • 封装
– 数据(属性、变量) – 函数(方法)
• 继承 • 多态
12
C++变量类型
• “a”连接叉车 到路网中(红 色细线)
4
路网修改方法
• 托拽路网上的SplinePoint(红色小球)可以修改路径的弯曲形状 • 按住“x”键单击SplinePoint可以在路段上添加另一个SplinePoint • 按住“q”键从一个NetworkNode拖到另一个NetworkNode可取消
30
全局表的修改
• 直接编辑表格附初值 • 借助事件的下拉列表对全局表进行修改
31
全局表的修改(2)
• 相关函数
– gettablenum(tablename, row, col); – settablenum(tablename, row, col, value); – gettablestr(tablename, row, col); – settablestr(tablename, row, col, “string”);
35
Experimenter
• 可用Experimenter设置仿真模型的重复 运行
• Experimenter由两部分组成
– Replications – Events
36
Experimenter Method Replications
• Replications
– Warmup End Time – Simulation End Time – Replications per Scenario – Number of Scenarios
设施规划与物流分析
第18讲 目 录
CH8 物流仿真软件Flexsim入门
§8.1 物流系统仿真概述
§8.2 Flexsim简介
§8.3 Flexsim基本概念及开发步骤
§8.4 实例介绍
补充
§8.5 高级开发简介
西南科技大学制造科学与工程学院工业工程教研室 石宇强
1
创建路网
• “a”连接相应的 NetworkNode 对象形成路网 (绿色粗线)
• int • double • char • char* • string • fsnode*
13
C++的变量声明
• int counter = 1; • double size = xsize(current); • char letter = ‘A’; • char* tablename = “mytable”; • string tablename = “mytable”; • fsnode* nextobj = outobject(current,1);
while (expression) {
code block }
while (content(current) > 0) {
destroyobject(last(current)); }
16
C++ Constructs: for
for (var decl; expr; increment) {
code block }
38
设施规划与物流分析
物流仿真实验安排
实验一 流水作业线的仿真 实验二 传送带系统仿真 实验三 循径运动系统仿真 实验四 综合实验
西南科技大学制造科学与工程学院工业工程教研室 石宇强
39
• >与+
20
Node的图标
标准节点 对象节点 数据或元函数节点 方法 (C++) 方法 (FlexScript)
21
Node: C++ class
• 节点树中的每一个node实际上都是 “fsnode” 类的一个实例
• fsnode* 可声明指向一个fsnode类的实例 的数据类型
22
与fsnode类型相关的函数
14
C++ Constructs: if
if (expression) {
code block } else {
code block }
if (content(item) == 2) {
colorred(item); } else {
colorblack(item); }
15
C++ Constructs: while
for (int index = 1; index <= content(current); index++)
{
colorblue(rank(current,index) );
}
17
C++ Constructs: switch
switch (integer/character value) {
case casenum: {
stats_contentmax, stats_contentavg • stats_input, stats_output • stats_creationtime • displaygroup
26
• Flexsim软件的高级开发
– C++ – ToolBox – Experimenter
27
ToolBox
23
Object的结构
• classes • superclasses • variables • labels • behaviour
– eventfunctions – cppfunctions – cppvariables
• spatial • special • visual • connections • events • stats