Flexsim脚本语言培训

合集下载

flexsim快速基础教程

flexsim快速基础教程

教程本基础教程将带你一起完成建立过程流、创建模型、输入数据、查看动画、以及分析输出结果的各个步骤。

每一节课都是基于上一节内容的,所以学完一节课要消化它,才能进入下一节课。

每节课大约需要至少45分钟的时间。

在第二课的最后还包括一个提高环节,可以为你的模型增色。

本教程包括下列课程;第一课:建立一个处理3种不同临时实体类型的简单模型。

每种临时实体的路径都不同。

本模型中使用的实体包括发生器、暂存区、处理器、输送机和吸收器。

对模型表现的基本统计做了介绍,也介绍了每一实体的参数选项。

第二课:使用第一课中建立的模型。

用户添加操作员和运输机。

介绍实体的属性界面,进一步讨论附加统计分析。

第二课提高内容:完成第二课之后,介绍如何使用记录器实体向模型添加3D图表和图形。

同时也介绍了如何使用可视化工具添加3D文本。

第三课:使用第二课中的模型,用户将要添加货架和网络路径。

将会添加高级统计功能和模型逻辑编程功能。

同时也将使用表来读取和写入数据。

每一课将会按照下列格式:1. 介绍2. 本课学习内容3. 估计完成时间4. 模型描述5. 模型数据6. Flexsim软件概念学习7. 逐步模型构建如果学习此课程有任何问题,请联系我们的技术团队。

Flexsim技术支持的电话是801-224-6914(美国),或者发邮件到 support@. 希望你在学习如何使用flexsim来优化你们的流程的过程中感到愉快。

重要提示:你必须在电脑上安装Visual C++.NET编译程序,否则此Flexsim软件将不会正确工作。

flexsim 评估版本附带的编译器并不具备与Microsoft Visual C++零售版本同样的能力。

如果你没有Visual C++ .NET,在购买Flexsim软件时,你可以选择捆绑购买Visual C++和Flexsim软件。

1第1课简介第1课介绍了图示与建立简单模型的基本概念。

在Flexsim中开始建立每个模型的好方法是先画一个图示。

Flexsim脚本语言培训课件

Flexsim脚本语言培训课件

• 节点是树结构最基本的组成模块 • 节点包含了实体、GUI和数据的所有信息。
2
节点的结构
• 节点有名字 • 节点可以拥有一个数据类型
– 数值 – 字符串 – 实体
• 如果节点拥有实体数据,使用 查看含有实体 信息(数据项和成员函数)的独立的节点列表 • 如果节点包含子节点,使用 展开并查看子节 点
16
实体的基本属性
• xloc( object ) yloc( object ) • setloc( object, xnum, ynum, znum ) • xsize( object ) ysize( object ) • setsize( object, xnum, ynum, znum ) • xrot( object ) yrot( object ) • setrot( object, xdeg, ydeg, zdeg ) zloc( object )
x加y x减y x 乘以 y x 除以 y x平方根 x的y次方 (xy) 与x最接近的整数 返回x的数值 返回x/y的余 返回x与y的最小值 返回x与y的最大值
13
赋值运算符
• • • • • • • x=y x += y x -= y x *= y x /= y x ++ x -= is used to set a value == is a comparison operator
设置 x 为 y 设置 x 等于 x加y 设置 x等于 x减y 设置x等于 x 乘以 y 设置 x等于 x除以 y x 加1 x 减1
• Remember: ‘=‘ is not the same as ‘==‘
14
基本的实体引用
• • • • current - 当前实体, 也就是代码所在的实体。 item - 导致事件触发的临时实体。 model() - 引用模型树 so() 对树结构中任意一个节点的临时引用。 右键单击节点,将其指定为so().

Flexsim4培训

Flexsim4培训

参数选项卡(Parameter Tabs)
参数窗口通过选项卡对参数进行分类 所有的固定资源对象都有“Flow”和“Triggers”选项卡( 尽管某些对象的触发器数量要多于其它对象)
下拉列表框
下拉列表选择
代码模版(适合修改参数) 代码编辑(使用Flexscript或C++)
代码模版
代码模版中蓝色字体可以是任何有效的数 字或表达式 代码模版可以在代码编辑中定制
复制对象
选中要复制的对象,在Edit Selected Objects菜单下点击“Duplicate”按钮
第四章
Flexsim对象库 对象库
固定资源(FixedResources) 任务执行器(TaskExecuters)
固定资源——模型中固定不动的对象(比如处理 器、存储区),表示模型中的某一流程步骤。 -Processor -Queue -Conveyor 任务执行器——模型中作为共享资源或移动资源 使用的可移动对象。 Operator Transport
吸收器(Sink)
用于销毁完成模型流程的实体
1.创建模型布局
使用鼠标将需要的对象从对象库中拖放到正视图窗口中 根据需要使用鼠标改变对象位置、大小和转角
2.连接端口
按下键盘上的“A”键,用鼠标拖放在对象间建立输出端 口—输入端口连接 方向!从流出实体的对象到流入实体的对象 模型中的对象发出和接收实体需要这种连接
模型一布局
发生器(Source)
用于在模型中产生实体(flowitem) 在此模型中通过产生实体模拟原料到达
暂存区(Queue)
用于存放暂时未被下游对象接收的实体 在此模型中模拟存放区,存放待处理原料
处理器(Processor)

Flexsim精华班培训课程安排

Flexsim精华班培训课程安排

Flexsim精华培训班培训内容大纲培训等级 详细内容 培训时间安排 初级培训 (一)、Flexsim 软件的安装步骤及升级方法时间:2天(二)、Flexsim 建模概念1. Flexsim 模型基本构成及菜单、界面介绍2. 标准实体(Objects)介绍(分类及功能)3. 流动实体(Flow Item)介绍4. 模型流程设定方法5. 参数设定方法6. 模型运行及仿真结果(三)、模块分论1. 布局及流程设定(连接)2. 货架、输送器等常用实体的运用3. 流动实体的类型设定及应用方法4. 标签设定及应用方法5. 实体及流动实体的外形(尺寸、颜色及图形)设定6. 全局表的使用7. 全局任务序列的编辑及使用8. 触发逻辑列表的使用及修改9. 信息的发送和接收10. 端口的关闭和开启11. 动态仿真结果3D 图表的建立12. 仿真结果的输出13. 飞行漫游(Fly‐Through)设定14. 模型调试(四)、建模练习中级培训 (一)、模块分论时间:3天1. 树节点2. Flexsim脚本语言3. 读写Excel数据的方法4. 自定义任务序列5. 自制实体(Objects)及实体库6. 统计知识简介及Expertfit 的使用方法7. 仿真实验器(Experimenter) 的使用(二)、建模练习通过开发1 个实际应用模型,掌握逻辑关系比较复杂的编程方法。

高级培训 (一)、模块分论时间:3天 1:实时读写Excel和ODBC数据库的方法2:协同任务、子任务序列3:运动学4:用户介面的制作方法(GUI)。

物流系统中Flexsim软件应用开发培训

物流系统中Flexsim软件应用开发培训
• 对象(Objects) • 连接(Connections) • 方法(Methods)
• Flexsim软件的使用步骤 • 开发实例训练 • Flexsim软件的高级开发
9
对象与继承
• Flexsim采用面向对象的技术 • 大部分Flexsim对象都是FixedResource
或TaskExecutor对象的子对象
– 子对象拥有其父对象所有的接口和相应的功 能
– 用户相对比较容易很快掌握子对象的使用
10
Flexsim家族树
11
Flexsim的对象库
12
对象分类
• 资源类(Fixed Resources)
– Source, Queue, Processor, Sink, Combiner, Separator, MultiProcessor, Conveyor, MergeSort, FlowNode, Rack, and Reservoir
– “q”键
• 用来取消对象1的输出端口与对象2的输入端口之间的连接
– “s”键
• 用来连接对象1与对象2的中心端口
– “w”键
• 用来取消对象1与对象2的中心端口的连接
30
步骤2. 定义物流流程 (续2)
• 各类端口连接的显示位置
– 输出端口显示在对象的右上角 – 输入端口显示在对象的左上角 – 中心端口显示在对象底部中心
• Navigation Method
– Model navigation, and fly through
• FlowItem Bin Method
– Defines the FlowItem Characteristics
• TaskExecuter Move Method

Flexsim培训2

Flexsim培训2
视图菜单中打开输出控制台
处理器参数
以处理器对象的编辑项为例 对每个编辑项考虑下面四个问题:
它的目的是什么? 什么时候用到它? 它提供了哪些可以使用的变量? 它返回什么值?
可用的变量和返回值
编辑项 Setup Time Process Time MTBF MTTR Send To Port Pull From Port Pull Requirement Request Transport From Pick Operator 可用变量 current, item, port current, item current current current, item current current, item, port current, item, port current, item 返回值 delay time delay time delay time delay time port number port number true/false numeric pointer numeric pointer
节点符号
标准文件夹 对象 对象数据 C++函数 FlexScript(Flexsim脚本)函数
模型树样本
什么是函数?
函数名(参数1,参数2,等等) 参数可以是
数值 字符串 指向对象或节点的指针
函数举例
colorrandom(item)
许多Flexsim函数的作用都是从“树”中读 取数据和向“树”存放数据
N/A
N/A N/A N/A N/A
OnProcessFinish
OnBreakDown OnRepair
current, item
current current

Flexsim培训(续)


getname( object ) setname( object, name ) getitemtype( object ) setitemtype( object, num) setcolor( object, red, green, blue ) colorred( object ) blue,green,white... setobjectshapeindex ( object , indexnum ) setobjecttextureindex ( object , indexnum ) setobjectimageindex ( object , indexnum )
int index = 1; double weight = 175.8; string category = “groceries”; treenode nextobj = next(current);
数组的声明和赋值
以下是数组使用的一些例子 intarray indexes = makearray(5); // makes an array with 5 elements indexes[1] = 2; // in Flexsim, arrays are 1-based indexes[2] = 3; indexes[3] = 2; indexes[4] = 6; indexes[5] = 10; doublearray weights = makearray(3); fillarray(weights, 3.5, 6.7, 1.4); // fillarray is a quick way of setting the array values stringarray fruits = makearray(2); fruits[1] = "Orange"; fruits[2] = "Watermelon"; treenodearray operators = makearray(4); operators[1] = centerobject(current, 1); operators[2] = centerobject(current, 2); operators[3] = centerobject(current, 3); operators[4] = centerobject(current, 4);

flexsim高级培训

异常处理
学会处理仿真过程中的异常情况,保证仿真过程 的稳定性和可靠性。
04 案例分析
案例一:生产线优化
总结词
详细描述
通过FlexSim高级培训,学习如何运用仿真 模型对生产线进行优化,提高生产效率。
利用FlexSim的强大功能,模拟生产线上的 各个环节,分析瓶颈问题,优化资源配置 ,实现生产流程的持续改进。
FlexSim具有直观的图形用户界面,使得用户能够快速地建立复杂的仿真模型。
flexsim的应用领域
物流与供应链管理
FlexSim可用于模拟物流网络、 仓库管理、运输优化等问题。
生产制造
FlexSim可以模拟生产线的运作 、工艺流程、产能规划等,帮 助企业优化生产过程。
交通规划
FlexSim可用于模拟交通流量、 交通网络设计、公共交通系统等 ,为交通规划提供决策支持。
总结词
详细描述
掌握FlexSim的高级建模技巧,对生产线进 行精细化模拟,实现生产效率最大化。
通过调整参数、优化布局和流程,实现生 产线的快速响应和高效运行,提高企业的 竞争力。
案例二:仓储物流模拟
总结词
学习如何运用FlexSim对仓储物流系统进行模拟,优化库存管理和物 流配送。
详细描述
通过FlexSim建立仓储物流模型,模拟货物入库、存储、拣选和出库 等环节,优化库存策略和物流路径,降低成本并提高效率。
自定义功能开发
自定义实体
通过编程实现自定义实体,扩展 flexsim的实体库。
自定义函数
编写自定义函数,实现特定功能, 提高仿真模型的灵活性。
自定义控制器
开发自定义控制器,实现对仿真 过程的精细控制。
优化与调试
性能优化

Flexsim初级培训1

• 临时实体 – 从模型中穿过的物品,如产品、客户、 纸质文件、电话处理等。
9
模型
实体
临时实体
10
FlexSim 模型
• FlexSim模型是由排队、加工和运输等因 素组成的一种系统。
– 排队:上游的到达速率超过下游的加工速率 时自然出现的一种现象。
– 加工:是在被加工的临时实体上强制执行的 延迟时间。
1. a • 切换网络节点的显示模式:
按住X键,然后点击任何一个
网络节点就会隐藏线和网络
2. A
节点。
5. A 3. A
6. a 4. A
40
路径选项卡
可以用 “连接类型”下拉 列表定义不同方向的模式 • 可定义两个运行工具之间的 最短间距 • 设置这条路径上运输工具的 最大速度。 • 设置虚拟距离。虚拟距离 是强迫使用的距离值。使用 虚拟距离你可以给这条路径 一个虚假长度。
实体将被销毁(不显示), 端口1输入的临时实体将代表 “组装”部分 。
• 注释: 来自端口2或者更高端 口的临时实体数量将自动添 加到组件列表中。
• 从端口1进入的临时实体总是 作为容器使用!
• 假定的目标数量是一个 !!
46
分解器
• 分解器用来将一个临时实体分成几个部分。分解的可以是 一个由合成器装盘的临时实体,还可以复制原始实体的多 个复本。在处理时间完成后进行分解/拆盘。
• 暂存区可以是桌子、 篮子、队列,或者等 待室等等。
43
处理器
• 只要对临时实体进行加工就会用到处理器。 • 处理器可以是任何类型的机器或工站,任何
消耗时间操作临时实体的东西。 • 临时实体在处理器中停留的时间必须涵盖预
置时间、加工时间和阻塞时间。停留时间有 时也包含等待操作员、叉车的时间,如果发 生故障时还包括维修处理器的时间。

Flexsim初级培训1

Flexsim初级培训
安装步骤及升级方法 Flexsim建模概念 Flexsim建模步骤 模块分论 建模练习
Company Logo
一、安装步骤
1、安装Flexsim 英文版 2、输入客户序列号进行激活
Help / License Activation
3、安装Flexsim 中文版 4、输入客户序列号进行激活
• 至于临时实体要通过哪个端口是由选定的 实体规则决定的。 (请看临时实体流选项卡, 发送至端口选 项).
29
端口连接模式
• 从菜单栏中提供了 不同模式
• 按“ESC”键返回 到普通光标模式
30
使用键盘快捷键连接端口
输入端口到 输出端口
断开
Q
中间端口到 中间端口
W
连接ALeabharlann S31查看端口连接
• 在“视图设置”中可 以显示/隐藏端口连
47
复合处理器
• 复合处理器可在同一个位置 执行多个工序。
• 每个工序拥有不同的加工时 间并使用不同数量的操作员。
• 输出/输入端口- 定义固定实体间临时实
体移动的路线.
– 输出端口显示在对象的右上角 – 输入端口显示在对象的左上角
输入端口 输出端口
25
S连接
• 按下s键的同时用鼠标从一个实体拖拉到 另一个实体上以连接二者
• s连接仅用于中心端口之间的连接 • s连接用w取消(按下w键的同时用鼠标
从一个实体拖拉到另一个实体上以连接 二者)
• 按住A键,在两个已 经连接的网络节点之 间点击和拖拽,方向 指示器变成黄色,象 征此方向禁止运输工 具超车。
• 按住A键,沿红色或 黄色箭头的方向,拖 拽,箭头变成绿色。
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
– – – – 它的应用目的是什么? 什么时候执行? 可以访问哪些变量? 它的返回值是什么?
19
访问变量和返回值
Edit Field编辑区域 Setup Time Process Time Send To Port Pull From Port Access Variables访问变量 current, item, port current, item current, item current Returns返回 delay time delay time port number port number
• 函数示例: colorrandom(item)
-(查看发生器实体的离开触发器)
• FlexSim中很多函数都用于读取树中的数据或者将数据 保存到树结构中
6
函数和“返回”语句
• 调用函数就像询问一个问题 • 用户输入参数,函数的“返回值”就是问题的 答案 • 实体的下拉列表中的属性都是函数 • 调用的函数不同,返回值的意义也不一样
7
一般规则
• 区分大小写(A不等同于a) • 没有特定格式(以“易读的”代码为目标,可以自由使用 空格、制表符和回车换行) • 文本字符串由引号括起,"mytext" • 被调用的函数后面用圆括号,逗号分隔其参数,
moveobject(object1, object2); Ex: ((x+3)*2)
设置 x 为 y 设置 x 等于 x加y 设置 x等于 x减y 设置x等于 x 乘以 y 设置 x等于 x除以 y x加1 x减1
• Remember: ‘=‘ is not the same as ‘==‘
14
基本的实体引用
• • • • current - 当前实体, 也就是代码所在的实体。 item - 导致事件触发的临时实体。 model() - 引用模型树 so() 对树结构中任意一个节点的临时引用。 右键单击节点,将其指定为so().
15
基本的实体数据统计
• • • • content( object ) getinput( object ) getoutput( object ) getstatenum( object )
• int inventory = content(current); • int produced = getoutput(current);
• 描述
– 做此练习,请不要使用代码模板 (从最基本的编辑选项开始,写 自己的代码)! – 模型布局,请看下一个幻灯片。 – 使用发生器的 “创建触发”编辑框, 将70%的临时实体设置为类 型1,剩余30%设置为类型2(使用bernoulli命令).
21
代码练习 1,2,3 A1的模型布局
22
If条件句
zsize( object )
zrot( object )
17
提示和打印
• 句法
– pt( text string ) – pf( float value ) – pd( discrete value ) – pr( ) – msg( “window title”, “message text”, button type )
逻辑语句 – 提供的帮助
– 现存的下拉列表选项是很好的示例 – 帮助>命令, 将鼠标放置到代码中的某个命令 上可出现提示。 – 帮助>属性提示
9
逻辑创建器
• 用模块的形式显示建模逻辑 • 通过组合模块,自定义逻辑和行为 • 可以切换模块视图和代码视图
10
变量类型
• • • • 整数型 浮点型 字符串 树节点型 whole numbers (1, 2, 3, 14324) real numbers (2.5, 3.14159) text string (―Anthony was here.‖) reference to a node in the tree
Pull Requirement
Request Transport From Pick Operator
current, item, port
current, item, port current, item
true/false (1/0)
numeric pointer numeric pointer
16
实体的基本属性
• xloc( object ) yloc( object ) • setloc( object, xnum, ynum, znum ) • xsize( object ) ysize( object ) • setsize( object, xnum, ynum, znum ) • xrot( object ) yrot( object ) • setrot( object, xdeg, ydeg, zdeg ) zloc( object )
N/A
N/A N/A N/A N/A N/A
20
代码练习 1
• 目的
– 学习在代码编辑窗口中编写代码。 – 对用于定义代码模板窗口的特殊注释进行介绍。 – bernoulli命令简介.
bernoulli(num probability, num succeed-value, num fail-value, [num stream])
}
27
代码练习3
• 目的
– 学习使用代码设置和读取标签
• 描述
– 使用练习1的模型布局. – 在临时实体箱中,在Box临时实体上设置名称为"routing"的数值 标签。 – 当临时实体离开处理器时,设置标签值为1到4的随机分布(使 用duniform()命令)。 – 在传送带的“发送至端口“域段中,使用switch()语句根据以下 规则发送临时实体到下游实体。
• 标签值 1 和3 到 端口 2 • 标签值 2 和4 到端口 1
• 问题
– 你可以使用代码,根据标签值设置临时实体的颜色吗 ?
28
更高级的实体引用
• rank(node, ranknum) • first(object) • last(object) • inobject(object, portnum) • outobject(object, portnum) • centerobject(object, portnum) • node(―relativepath‖, object) rank(current,3)
3
节点符号
• • • • • 标准文件夹节点 实体节点 实体数据 函数 (C++) 函数(FlexScript)
4
模型树
5
什么是函数?
functionname(argument1, argument2, etc) • 参数可以是:
– 数值型的值 – 字符串(“Text”) – 引用的一个实体或者节点
if (test expression) {
code block
} else {
code block
}
if (getitemtype(item) == 1) { colorred(item); } else { colorblack(item); }
23
代码练习 2
• 目的
– 学习使用代码设置和读取临时实体的类型 – 临时实体箱的介绍
first(current) last(current)
inobject(current,1) outobject(current,1) centerobject(current,1) node(―/Operator1‖,model())
29
While语句
while (test expression) { while (content(current) > 0) { code block destroyobject(last(curre nt)); } } 在编程时,只要While循环语句中的表达式返回真,代码 就会重复执行。它也可能通过break或者return语句来强 制跳出循环
• 节点是树结构最基本的组成模块 • 节点包含了实体、GUI和数据的所有信息。
2
节点的结构
• 节点有名字 • 节点可以拥有一个数据类型
– 数值 – 字符串 – 实体
• 如果节点拥有实体数据,使用 查看含有实体 信息(数据项和成员函数)的独立的节点列表 • 如果节点包含子节点,使用 展开并查看子节 点
• 函数和命令都以分号结束 • 根据需要,可以在数学和逻辑表达式中自由地使用圆括号, • • • • • 大括号用于定义一段逻辑代码 使用双斜线注释掉一行代码,//and type note here 多行注释以/*开始,*/结束 名字定义中不能含有空格或特殊字符,下划线除外 名字中可以含有数字,但是不能以数字开头 8
11
定义和设置变量
• • • • int index = 1; double weight = 175.8; string category = ―groceries‖; treenode forklift = centerobject(current,1);
12
数学运算符
• • • • • • • • • • • x+y x-y x*y x/y sqrt(x) pow(x,y) round(x) frac(x) fmod(x,y) min(x,y) max(x,y)
x加y x减y x 乘以 y x 除以 y x平方根 x的y次方 (xy) 与x最接近的整数 返回x的数值 返回x/y的余 返回x与y的最小值 返回x与y的最大值
13Biblioteka 值运算符• • • • • • • x=y x += y x -= y x *= y x /= y x ++ x -= is used to set a value == is a comparison operator
相关文档
最新文档