Tutorial Task 1.1 -FlexSim标准3D对象逻辑教程:快速创建运输与任务逻辑
购买adidas上京东官方旗舰店。
任务概述
在本系列教程中,你将学习为任务执行器创建任务逻辑的不同方法。如果你不熟悉什么是任务或任务执行器,请考虑在完成本教程前阅读任务逻辑的关键概念。
在第一个教程任务中,你将学习如何使用3D对象上可用的标准逻辑来构建任务。许多3D固定资源具有属性和基本逻辑,可用于为任务执行器分配简单任务,例如基本的装载和卸载任务,或在处理期间要求操作员在场。本教程将教你如何为这些简单任务创建逻辑。此任务还将包括对此方法优缺点的分析。
完成后,你的3D模型将类似于下图所示:
步骤 1构建3D模型
在此步骤中,你将为本教程构建一个基本的3D模型。首先添加一个平面,它将作为模型中3D对象的容器。然后,添加此模型所需的3D对象。
完成后,你的模型应类似于下图所示:
要构建此模型,请执行以下操作:
- 确保你的3D模型窗口已打开且处于活动状态。从库中,将一个平面(位于视觉类别下)拖入3D模型。
- 选中平面,在属性中,将平面的名称更改为StandardLogic。
- 单击颜色框旁边的箭头以打开颜色选择器菜单。选择最浅的黄色。
-
将平面的X尺寸
更改为21.00。
-
将以下3D对象拖到平面上:
- 一个发生器
- 一个队列
- 一个处理器
- 一个吸收器
- 一个操作员
- 排列3D对象,使其大致位于本步骤开头图片所示的位置。
- 仔细检查每个3D对象的名称是否以1结尾,例如Sink1、Queue1等。
检查你的模型,确保其与本步骤开头显示的图片相似。
步骤 2使用标准3D对象逻辑创建任务 在此步骤中,你将学习如何使用3D对象上可用的标准逻辑创建简单的运输任务。你将设置操作员将临时实体从队列运输到处理器,这在FlexSim中是一个相对简单直接的过程。你还将更改临时实体的到达率和处理时间。
要进行这些更改,请执行以下操作:
在以下对象之间创建端口连接(A连接):
-
从
- Source1到Queue1从
- Queue1到Processor1从
- Processor1到Sink1创建从
- Queue1到Operator1的中心端口连接(S连接)。单击
- Queue1以在右侧显示其属性。在
- 输出部分,勾选使用运输工具复选框。确认
- 使用运输工具框中显示为current.centerObjects[1]。单击
- Source1以在右侧显示其属性。在
- 发生器部分,勾选在时间0到达复选框。在
- 到达时间间隔框中,删除当前文本并输入5。重置并运行模型:
当临时实体到达队列时,操作员将在处理器可用时立即将其运输到处理器。
步骤 3
添加额外的操作员现在你已经使用标准逻辑构建了一个简单的运输任务,接下来你将通过向模型添加第二个操作员使其变得稍微复杂一些。在标准逻辑中,你需要一个分配器对象才能将任务分配给多个操作员。此步骤将引导你完成设置此系统的过程。完成后,你的3D模型应类似于下图所示:
要向模型添加第二个操作员,请执行以下操作:
移除
- Queue1和Operator1之间的中心端口连接。(要移除中心端口连接,请按住W键同时单击两个已连接的对象。)从库中,拖拽一个
- 分配器并将其放置在Queue1附近的平面上。同时将第二个
- 操作员拖到平面上。重命名操作员如下:
- 对象
- Operator1B以选中它。在属性中,单击颜色选择器框旁边的箭头并选择青绿色。创建从
- Dispatcher1到Queue1的中心端口连接(S连接)。创建从
- Dispatcher1到Operator1A和Operator1B的端口连接(A连接)。单击
- Dispatcher1以在右侧显示其属性。在
- 分配器部分,单击传递至框旁边的箭头以打开菜单。选择轮询可用。重置并运行模型:
| 新名称 | Operator1 |
|---|---|
| Operator1A | Operator2 |
| Operator1B | 单击 |
注意,在此场景中添加第二个操作员时,变化不大。系统的效率并不比只有一个操作员时高。这在很大程度上与标准逻辑让操作员在处理器处等待直到其完成处理临时实体有关。使用这种逻辑,增加一个额外的操作员并没有太大帮助。
步骤 4
添加第二个处理器当添加多个可能的目的地时,运输任务有时会变得更加复杂。在此步骤中,你将向模型添加第二个处理器,以查看这如何影响标准逻辑。你还将为操作员添加一种新类型的任务,以便更好地理解添加第二个处理器如何影响系统的整体逻辑。在此步骤中,你将要求操作员在Processor1A的设置时间内到场。这意味着临时实体将停留在处理器处,直到有操作员能在场。在项目处理之前,需要操作员来完成必要的设置。
要添加第二个处理器并创建设置时间逻辑,请执行以下操作:
移除从
- Dispatcher1到Operator1B的端口连接。(要移除端口连接,请按住Q键同时单击两个已连接的对象。)单击
-
StandardLogic平面以选中它。在快速属性中,将平面的Y尺寸更改为
10.00以使其更宽。将第二个
- 处理器拖到平面上。重命名处理器如下:
- 对象
-
从
- Queue1到Processor1B从
- Processor1B到Sink1单击
- Processor1B以在右侧显示其属性。在
- 处理器部分,将处理时间更改为5。创建从
- Dispatcher1到Processor1A的中心端口连接(S连接)。单击
- Processor1A以在右侧显示其属性。在
- 处理器部分的设置时间框中,删除当前数字并输入5。勾选
- 使用操作员进行设置复选框。确认
- 选择操作员框中显示为current.centerObjects[1]。重置并运行模型:
| 新名称 | Processor1 |
|---|---|
| Processor1A | Processor2 |
| Processor1B | 创建端口连接(A连接): |
注意,Operator1A倾向于按以下重复顺序执行任务:
将临时实体运输到Processor1A
- 将临时实体运输到Processor1B
- 完成Processor1A的设置时间(耗时5秒)
- 如果操作员在运送物品到Processor1B之前留下来完成Processor1A的设置,可能更有意义。然而,操作员没有按此顺序执行任务,因为它使用FIFO逻辑(先进先出)来决定将执行哪些任务。换句话说,操作员将按照它收到被分配任务的顺序来执行任务。
在这种情况下,Queue1和Processor1A都在向操作员分配任务。Queue1在任何端口空闲可以接收临时实体时分配运输任务。Processor1A在有临时实体且准备好让操作员协助设置时间时分配任务。因为Processor1A总是在Queue1分配运输任务之后分配任务,所以设置时间永远不会在Processor1A收到临时实体后立即执行。
此问题的解决方案是为任务添加优先级和抢占逻辑,这将在下一步中介绍。
步骤 5
添加优先级和抢占正如你在上一步末尾所见,操作员有时会以奇怪的顺序执行任务。因为操作员使用FIFO逻辑(先进先出)来执行任务,所以它有时会以效率不高或不直观的顺序执行任务。在此步骤中,你将学习如何使用任务优先级来解决此问题。
你可以通过为任务分配优先级编号来覆盖FIFO任务逻辑。任务执行器将先完成优先级编号较高的任务,再完成优先级编号较低的任务。默认情况下,所有任务的优先级都为0,因此任务执行器将首先处理优先级为1或更高的任何任务。(有关更多信息,请参阅
任务优先级和抢占。)在此步骤中,你将把设置时间任务的优先级分配为1,以便操作员在将临时实体交付给它后立即处理它。
要为设置时间任务添加优先级,请执行以下操作:
单击
- Processor1A以在右侧显示其属性。在
- 处理器部分,单击优先级框并将数字更改为1.00。确认
- 抢占菜单当前设置为仅抢占。重置并运行模型:
注意,操作员现在在离开去处理任何其他任务之前,会留下来完成Processor1A的设置时间。
结论
现在你已经使用标准3D操作逻辑构建了运输任务,你可以看到它有一些优点:
设置快捷
- - 你会注意到,设置一个使用标准操作逻辑的基本模型相对快速且容易。易于使用
- - 如果你想创建一个使用标准逻辑的简单运输任务,最好使用标准操作逻辑,因为它非常直接和简单。抢占和优先级
- - 使用标准3D对象逻辑为任务分配优先级和抢占相对容易。然而,使用标准操作逻辑也存在一些显著的缺点。以你刚刚构建的模型为例:
一些低效率
- - 如前所述,很难研究增加额外的操作员是否有助于提高系统效率,因为它们的行为并不总是符合你在正常业务系统中期望的实际操作员的工作方式。意外行为
- - 有时操作员可能会以奇怪的顺序执行任务,因为它是对仿真模型中事件发生时间的响应。每个3D对象都有特定的执行特定动作的事件顺序。一个问题是这些事件顺序不易发现,其逻辑不可见,因此很难预测或排除由时序问题引起的特定问题。中间任务
- - 如果你需要在队列和处理器之间添加一个中间任务怎么办?例如,想象一下,操作员应该在一台电脑前停下来扫描临时实体的条形码,或者操作员在将临时实体放到处理器上之前需要对其进行称重。自定义逻辑很难构建到标准逻辑系统中。模型可扩展性
- - 如果一个临时实体需要同时由两个操作员运输怎么办?如果你想能够添加额外的操作员来研究需要多少员工才能跟上工作负载怎么办?一旦你为模型增加了更多复杂性,标准逻辑就会变得有点难以扩展。虽然为这个基本的运输任务设置标准的3D逻辑很容易,但一旦你试图使其适应或定制为更复杂的业务流程,设置起来就会变得不那么容易。这时使用过程流工具就更有用了。
在接下来的几个教程任务中,你将学习使用过程流工具创建简单运输任务的几种不同方法。你将进一步了解每个系统的优缺点。请继续学习
返回任务逻辑教程:Tutorial 1-任务逻辑工具目录


微信扫一扫,打赏作者吧~