参考书目:

  1. 使用系统仿真建模与分析——使用Flexsim(第2版).秦天保, 周向阳. 清华大学出版社.

基本操作

鼠标

按住Shift或Ctrl批量可操作

在这里插入图片描述

  1. 标准模式(Standard Mode/鼠标模式)下,按住shift,拖拽鼠标左键批量选中物体(或者说将物体分组)。
  2. 按住shift,在空白处拖拽鼠标左键,取消选择。
    standard mode

鼠标右键

单击鼠标右键退出当前模式

1.鼠标处于连线状态,或选中对象时,按右键或Esc退回到Standard Mode。

按住鼠标右键旋转镜头

鼠标滚轮

选中物体后鼠标滚轮可调整物体高度

在这里插入图片描述
在这里插入图片描述

常用快捷键

功能
Backspace 删除对象
按住A 鼠标A连接模式
按住S 鼠标S连接模式
按住Q 鼠标剪断Q连接模式
按住W 鼠标剪断W连接模式

仿真模型运行原理

在这里插入图片描述

目前只跟着第2章做了案例,对大概的运行原理有了一个推测。

设计上,面向过程,直接设计

将要仿真的对象直接转换为flex的对象,摆放、确认连接关系即可。

  • A连接是有向的;
  • B连接是无向的。

A连接从端口出,零一对象端口入。每个对象自己的出入端口有编号。

中间端口比如Dispatcher,其更像是Queue的分支(与Queue是S连接),与Operator是A连接(从Dispatcher到Operator)。在Queue的Flow页中选择Use Transport,即可调度Operator。

以Flow为事件驱动器

流动实体

书28页:流动实体(Flowitem)是系统中沿不同路线流动,并在不同地方被加工处理或被服务的对象。Flowitem可以代表产品、零件、托盘、容器、人、电话呼叫、订单等。Flowitem通常由Source对象生成,由Sink对象离开系统。

流动实体类型与标签

每个流动实体都内置属性实体类型(Itemtype),可以代表条形码、产品类型或工件号等。可以用于路线选择等决策逻辑。可以在通过增加Label来定义新属性。

控制与编程机制、代码

当Source创建流动实体时会触发onCreation触发器执行。可通过加号按钮为触发器增加代码模板。

在这里插入图片描述

通过卷轴按钮可以查看代码,这里以定义流动实体类型和颜色为例。

Object current = ownerobject(c);
Object item = param(1);
int rownumber = param(2); //row number of the schedule/sequence table




{ // ************* PickOption Start ************* //
/***popup:SetTypeAndColor*/
/**Set Item Type and Color*/
Object involved = /** \nFlowitem: *//***tag:involved*//**/item/**/;
double newtype = /** \nItem type: *//***tag:type*//**/duniform(1,3,getstream(current))/**/;
involved.Type = newtype;
involved.color = Color.byNumber(newtype);
} // ******* PickOption End ******* //
{ // ************* PickOption Start ************* //

旧版本中,各种对象都是treenode类型的,现在变为了Object。

这其中,代码表达的是:

  • current代表对象本身;
  • item代表刚刚创建的流动实体;
Object involved = item;  // 将item的引用赋值给involved变量
double newtype = duniform(1,3,getstream(current));  // 在分布中产生一个数赋给newtype
involved.Type = newtype;  // 将item的itemtype设为newtype
involved.color = Color.byNumber(newtype);  // 设置item的color

可见flexscript也是采用面向对象的思想的。至于Object有多少子类、属性,不必过于深究,还是以GUI操作为主。

学了一晚,让我想起小时候玩的魔兽争霸地图编辑器:world edit。如果flexsim再有什么心得的话,那就下篇再见。

后记(2019年12月5日):距离写这篇文章已经过去快3个月了。现在回头看,“以Flow为事件驱动器”的理解是不对的。对于flexsim的学习,读书不如读软件中自带的英文版User Manual。去读User Manual吧,以后学编程也要注意,有精力,则去读官方文档吧,去读底层吧,去读源码吧。现在知道了,所谓A、S连接也并非我想的那样,过家家似的连接在一起。A、S连接只不过是Port连接的一种表现,而连接有三种:Port、List与Conveyors。

Logo

魔乐社区(Modelers.cn) 是一个中立、公益的人工智能社区,提供人工智能工具、模型、数据的托管、展示与应用协同服务,为人工智能开发及爱好者搭建开放的学习交流平台。社区通过理事会方式运作,由全产业链共同建设、共同运营、共同享有,推动国产AI生态繁荣发展。

更多推荐