Tutorial Task 4.4 - Change Instances Simultaneously
任务概述
在此任务中,您将改进原始对象流程,使其包含贴纸卷在被RollOperator运输和装载时的动画。随着贴纸机使用卷轴,它们会逐渐缩小。
您还将看到,对固定资源流程进行重大修改并同时更新所有关联实例是多么容易。通过本教程的最后,您会发现使用流程实例可以更轻松地对大型复杂模型进行重大更改。
步骤 1创建贴纸卷流动物品
第一步是在 3D 模型中创建贴纸卷流动物品。您将添加第二个 Source 对象来创建贴纸卷,并将它们放入 Roll Storage Queue 中。然后,您将修改 Flow Item Bin 中的流动物品,使其看起来更像贴纸卷。
将贴纸卷添加到 3D 模型中的步骤如下:
- 在您的 3D 模型中,从库中拖拽一个源,并将其放置在模型中心RollStorage队列的上方。
- 在属性中,重命名该源作为RollSource。
- 在RollSource和RollStorage之间创建一个端口连接(A-连接)。
- 点击RollSource以在右侧打开其属性。
- 在源部分下:
- 点击流程项类别菜单并选择圆柱体。
- 勾选在时间0到达框。
- 在到达间隔时间框中,输入
35.
- 在工具箱中,位于流项目箱旁边,点击展开按钮
。 - 双击圆柱体以在流项目箱中打开它。
- 在查看器中,点击圆柱体以选中它。然后,使用蓝色的锥形手柄调整圆柱体的大小,使其看起来更像一卷贴纸。
- 在属性中,将圆柱体的X尺寸和Y尺寸
更改为1。 - 关闭流项目箱。



考虑保存您的仿真模型。
步骤 2创建一个全局列表
在此步骤中,您将创建一个全局列表,用于存储所有库存中的贴纸卷。创建全局列表的方法如下:
- 点击RollStorage队列,在右侧显示其属性。
- 在触发器部分,点击添加按钮
打开菜单。选择进入时。 - 在OnEntry触发器框旁边,点击添加按钮
打开菜单。指向列表,然后选择推送到列表打开选择列表属性。 - 点击列表框以打开菜单。 选择添加新列表以创建新列表。
- 在列表属性对话框的顶部框中, 将新列表重命名为库存卷材。
- 按下确定按钮以保存更改并关闭 新列表。
- 回到卷材存储队列属性中,在触发器部分下,点击编辑
属性按钮
旁边的
。点击列表 - 框旁边的箭头以打开菜单。 点击Listbox to open a menu. Click库存中的卷轴以选择新列表。

请考虑保存您的仿真模型。
步骤 3向卷轴补充流程添加活动
在此步骤中,您将向贴纸卷补充流程中添加一些新活动,以创建贴纸卷动画。请注意,您可能需要调整“卷轴补充”形状的大小,以便容纳所有活动。
目前,您只需添加活动、重命名它们并在它们之间创建连接。活动属性的设置将在后续步骤中更改。
完成后,您的流程应如下图所示:

创建此流程的步骤如下:
- 确保贴纸卷逻辑固定流程已打开并处于活动状态。
- 暂时删除贴纸卷补充形状中所有活动之间的连接。您将在后续步骤中重新连接这些活动。
- 添加一个创建对象活动(位于物品) 之后来源:起始点 2 滚动来创建一个堆叠块。
- 添加一个分配标签活动(位于基础类别下)到第一个堆叠块与推入列表:贴纸滚动活动之间,不要将其与任何活动连接。
- 添加两个更改视觉活动(位于视觉类别下)到分配 标签活动的末尾,以创建第二个堆叠块。
- 将推入列表:贴纸滚动拖动到第二个堆叠块的末尾。
- 添加一个销毁对象活动(位于物体) 置于第二个堆叠块之后,且不将其与任何活动连接。
- 删除旅行:拾取卷轴活动。
- 添加一个从列表拉取活动(位于共享资产下)到销毁 物体活动的末尾,以创建第三个堆叠块。
- 点击任务活动块,并使用剪刀图标分离所有活动,使它们不再相互连接。
- 将创建任务序列活动拖到第三个堆叠块的末尾。
- 添加一个加载活动(位于任务 序列下)到第三个堆叠块的末尾。
- 拖动旅行活动至第三个堆叠块的末尾。
- 添加一个延迟(位于任务序列下)至第三个堆叠块的末尾。
- 添加一个移动对象(位于对象下)。
- 添加一个完成任务序列(位于任务序列下)至第三个块的末尾。
- 添加一个列表资产(位于共享资产下)至所有活动的右侧,且不与任何活动连接。
- 为清晰起见,重命名以下对象:
- 建立以下连接:
- 从第一个堆叠块连接到第二个块
- 从第二个堆叠块连接到第三个块
- 从第三个堆叠块循环回第一个块



| 对象 | 新名称 |
|---|---|
| 创建对象 | 创建对象:贴纸卷 |
| 分配标签 | 分配标签:卷数量 |
| 更改视觉(首次) | 更改视觉:设置位置 |
| 更改视觉(第二次) | 更改视觉:设置旋转 |
| 推入列表:贴纸卷 | 推入列表:使用中的贴纸卷 |
| 销毁对象 | 销毁对象:空卷 |
| 从列表中拉取 | 从列表中拉取:库存中的卷 |
| 加载 | 加载:拾取新卷 |
| 延迟 | 延迟:安装时间 |
| 移动对象 | 移动对象:进入模型 |
| 完成TS | 完成任务序列 |
| 列表 | 库存卷筒清单 |
检查确认您的流程与当前步骤起始处的图示相似
步骤4更改卷筒补充逻辑
在此步骤中,您将编辑"贴纸卷使用"流程图中各活动的属性。以下是该流程图内活动功能的概述:
| 活动项 | 说明 |
|---|---|
| 起始源:2个卷筒 | 您将把rollQuantity(卷筒数量)标签替换为名为rollNumber(卷筒编号)的新标签。请注意,在此流程图中,只有两个令牌会持续循环流动。根据令牌索引,rollNumber(卷筒编号)标签会为第一个令牌赋值为1,并为第二个令牌赋值为2。流程将利用该标签将两个卷筒放置在模型中的正确位置,使其在3D视图中互不重叠。 |
| 创建对象:贴纸卷筒 | 该活动将创建一个圆柱形流动物件(即贴纸卷筒)并将其置入模型中。您还将添加一个名为rollObject的新标签,该标签将保存对3D模型中创建的特定卷筒的引用。 |
| 分配标签:rollQuantity | 由于流程正常运行仍需rollQuantity标签,您将通过此活动将该标签添加至令牌。需要提醒的是,rollQuantity标签用于设置每个卷筒上的贴纸数量。您将把初始值设为20。 |
| 更改视觉:设置位置 | 该活动将设置3D模型中已装载到贴纸机上的贴纸卷筒的位置,使其显示在贴纸机旁。此活动将使用多个不同的标签和命令来实现该效果:
|
| 更改视觉:设置旋转 | 此活动将设置前两个贴纸卷的旋转,使它们看起来在贴纸机旁边直立。 |
| 推送到列表:正在使用的贴纸卷 | 您不会对此活动进行任何更改。需要提醒的是,当贴标机安装新卷筒时,该卷筒会被添加到"使用中的贴纸卷筒"列表中。当卷筒清空时(因为rollQuantity已减少至0),令牌将移至下一个活动。 |
| 销毁对象:空卷筒 | 此活动将在卷筒耗尽后销毁空卷筒。它将使用rollObject标签来识别应被销毁的贴纸卷筒。 |
| 从列表拉取:库存卷筒 | 此活动将从全局库存卷筒列表中拉取一个卷筒,并将其分配给令牌的rollObject标签。 |
| 创建任务序列:获取新卷筒 | 您需要将任务执行器指向3D模型中的RollOperator。需要提醒的是,此活动将创建一个新的任务序列(即一系列将分配给RollOperator的任务)。该任务序列名为getRoll通过在每次一卷贴纸用完时创建一个新的任务序列,可以防止RollOperator在拾取和安装新贴纸卷的过程中被打断或分派去执行其他任务。 |
| 装载:拾取新卷 | RollOperator将拾取一卷新贴纸。该活动会指示RollOperator拾取令牌中引用的3D对象。rollObject标签。 |
| 行进:安装新卷 | 此活动无需进行任何更改。作为提醒,该活动将指示RollOperator携带新卷返回贴纸机。 |
| 延迟:安装时间 | 此活动将模拟RollOperator在贴纸机上安装贴纸卷所需的时间。您将使用指数分布来获取此时间。 |
| 移动对象:进入模型 | 一旦RollOperator返回贴纸机,新卷将被移入模型。其在模型中的位置将基于流程前期“创建对象”活动中的设置。 |
要创建此功能:
- 点击第一个堆叠块。贴纸卷 补充形状以选择它。
- 在属性下的来源:起始2卷:
- 找到为创建的令牌分配标签组。 在名称框中,将标签名称更改为rollNumber。
- 点击值框旁的箭头以打开 菜单。选择令牌索引。

- 在属性下的创建对象:贴纸卷:
- 点击对象框旁的箭头以打开 菜单。指向流程项,然后选择圆柱体.
- 点击创建于选项以选中它。点击其下方框旁边的箭头,打开菜单并选择当前。
- 确保选中了分配至选项。在正下方的框中,输入
令牌。rollObject以更改标签名称。

- 点击贴纸卷补充装形状中的第二个堆叠块以选中它。
- 在属性下的分配标签:rollQuantity:
- 点击添加按钮
以添加新标签。 - 在名称框中,输入rollQuantity。
- 在值框中,输入20。

- 点击添加按钮
- 在属性下的更改视觉效果:设置位置:
- 点击更改视觉效果框旁边的
添加按钮以打开菜单。选择设置旋转、大小或位置以打开选取列表选项。在 - 对象框中,删除当前文本并输入token
。rollObjectrollObject. - 在X 位置框中,输入
current.location.x + token.rollNumber. - 在Y 位置框中,输入
current.location.y - current.size.y. - 在Z坐标框中,输入
1。

- 点击更改视觉效果框旁边的
- 在属性面板的更改视觉:设置旋转项下:
- 点击更改视觉框旁边的
添加按钮以打开菜单。选择设置旋转、大小或位置以打开选择列表选项。 - 点击设置菜单并选择旋转。
- 在对象框中,删除当前文本并输入
token。rollObject. - 在X旋转框中,输入
90.0。 - 在Y旋转框中,输入
90.0。 - 在Z旋转框中,输入
0。

- 点击更改视觉框旁边的
- 点击贴纸卷 补充形状中的第三个堆叠块以选择它。
- 在属性中的销毁对象:空卷下:
- 点击对象框旁边的箭头以 打开菜单。
- 指向 令牌标签 然后选择 rollObject 。 在流程中,点击 无链接 图标 旁边的 从列表中提取:存储中的卷 活动以进入采样模式。点击 列表:存储中的卷 资产以将它们链接在一起。 确保第三个堆叠块仍被选中。在 快速属性 下,位于 从列表中提取:存储中的卷 部分,验证是否选择了 分配给 选项。点击此选项下方框旁边的箭头以打开菜单。指向 令牌标签 然后选择 rollObjectToken Labelthen selectrollObject.

- In the process flow, click theNo Linkicon
next to thePull from List: Rolls in Storageactivity to enter sampling
mode. Click theList: Rolls in Storageasset to link them
together. - Make sure the third stacked block is still selected. InQuick PropertiesunderPull from List: Rolls in Storage, verify that theAssign tooption is selected. Click the arrow next to the box under this option to open a menu. Point toToken Labelthen selectrollObject.
- 在属性下的创建任务序列:获取新卷筒:
- 点击
任务执行器/分配器旁边的采样器按钮
- 点击
- ,并在3D模型中选择RollOperator。在属性下的装载:拾取新卷筒
- :点击物品框旁边的箭头以打开菜单。指向令牌标签,然后选择rollObject
- 。在属性下的延迟:安装时间
- :点击延迟时间统计分布并 选择指数分布以打开分布 选择器。
- 在位置框中,输入
5。保持 所有其他设置不变。

- 在属性下的移动对象:进入模型:
- 点击对象旁边的箭头以打开 菜单。指向令牌标签,然后选择rollObject。
- 在目标框中输入命令
current。上。 - 清除保留全局位置复选框。


请考虑保存您的仿真模型。
步骤 5编辑两个列表的属性 在这一步中,您将编辑流程中两个列表的属性。
首先,您需要将"使用中的贴纸卷"列表设置为动态列表。一旦此列表变为动态,它将同时减少列表和令牌上的
rollQuantity标签值。然后,其他活动和对象可以获取令牌上的rollQuantity标签值,以计算卷的剩余数量并更新其大小。接下来,您将更新新的共享资产"存储中的卷"列表,使其作为您在步骤 2 中创建的全局"存储卷"列表的别名。
要创建此功能:
点击
- 使用中的贴纸卷资产以选中它。在属性中,点击
- In Properties, click the高级属性按钮。
- 在字段选项卡上,位于rollQuantity标签字段旁边,勾选动态框。
- 按下确定按钮保存更改。
- 点击工具箱选项卡在左侧窗格中打开工具箱(以便您稍后可以采样全局列表)。
- 回到流程中,点击存储中的卷材列表在贴纸卷补充形状中以选择它。
- 在属性中,位于列表框旁边,点击采样器按钮。
进入采样模式。 - 在工具箱的全局列表下,点击库存中的卷筒以选中它。


考虑保存您的仿真模型。
步骤 6向卷筒使用流程添加活动
在此步骤中,您将向贴纸卷筒使用流程添加一些新活动,以创建贴纸卷筒动画。目前,您只需添加活动、重命名它们,并在它们之间创建连接。您将在后续步骤中更改活动的属性设置。
完成后,您的流程应如下所示:

要创建此流程:
- 在贴纸卷筒使用形状中,删除从第二个堆叠块到吸收器:流项退出的连接。
- 移动汇:流程项退出将活动略微下移 为其他活动腾出空间。
- 添加一个分配标签(位于基础类别下)活动到第二个堆叠块下方、 “汇:流程项退出”活动上方, 且不将其与其他活动连接。添加一个更改视觉
- 活动(位于对象类别下)到“分配标签” 活动之后,以创建第三个堆叠块。将汇:流程项退出活动拖拽到 第三个堆叠块顶部,将其添加至末端。将第二个堆叠块重新连接到第三个堆叠块。
- 为清晰起见,重命名以下对象:对象activity on top of the third stacked block to add it to the end.
- Reconnect the second stacked block to the third stacked block.
- For clarity, rename the following objects:
| Object | 新名称 |
|---|---|
| 分配标签 | 分配标签:获取数值 |
| 更改视觉效果 | 更改视觉效果:调整卷轴大小 |
请确认您的流程与此步骤开头的示例流程相似。
步骤 7更改卷轴使用逻辑
在此步骤中,您将编辑“贴纸卷使用”流程中的活动属性。以下是该流程中两个新增活动的功能概述:
| 活动 | 说明 |
|---|---|
| 分配标签:获取数值 | 此活动将创建三个新标签:
|
| 更改视觉效果:调整卷筒尺寸 | 此活动将更改3D模型中贴纸卷的尺寸。该活动将使用之前活动中设置的rollSize来确定贴纸卷的X和Y尺寸。Z尺寸将保持之前的值(不会更改)。 |
对于此流程的逻辑而言,getlabel命令至关重要。getlabel命令将获取流程中标记或3D模型中对象上的标签值。各种活动或对象可以使用该数据来影响模型的功能。getlabel命令有两个参数:
- 对象- 此参数指示您感兴趣的标签属于哪个对象。
- 标签名称- 此参数提供您感兴趣的标签名称。
当FlexSim执行getlabel命令时,它将返回该标签的值。例如,假设您的流程流中有一个令牌,其标签名为weight,值为15。用于从标签获取信息的getlabel命令将是:getlabel(token, "weight"),它将返回值15。
要创建此功能:
- 点击贴纸卷使用情况形状中的第三个堆叠块以选中它。
- 在属性下的分配
标签:获取值:
- 点击添加按钮
三次以添加一个新标签。 - 在三个标签的名称和值框中输入以下值:
名称 值 rollObjectCopy token。pulled。rollObjectrollQuantityCopy token。pulled。rollQuantityrollSize token.rollQuantityCopy / 20
- 点击添加按钮
- 在属性下的更改视觉:调整卷轴大小:
- 点击添加按钮
打开菜单。选择设置旋转、大小或位置。 - 点击设置菜单,然后选择大小。
- 在对象框中,输入
token。rollObjectCopy。 - 在X轴大小且Y 尺寸框中,输入
令牌。rollSize。 - 在Z 尺寸框中,输入
令牌。rollObjectCopy。作为(对象)。尺寸。z。

- 点击添加按钮
考虑保存您的仿真模型。
步骤 8更新原始贴纸系统
若您希望比较和对比前两个贴标系统与新的贴标系统,此步骤为可选操作。但若您希望前两个贴标系统具备相同功能,可将前两个贴标系统连接至固定资源流程,并删除工具箱中的原有流程。
步骤九运行并测试仿真模型
现在是最后一次测试模型的时候了。
重置并运行模型,观察其实际运作。

观察每个贴标机系统时,每台贴标机应显示两个初始贴纸卷。正在使用的贴纸卷会逐渐缩小直至消失。随后,卷材操作员将从库存中获取新贴纸卷,并在贴标机使用第二个贴纸卷的同时将其安装到贴标机上。
如有需要,可随时查看贴纸卷列表条目或流程的单独实例。
结论
观察模型运行时,您可能会注意到一些瓶颈点,以及贴标机因标签耗尽而停止运转的位置。构建此类模型后,便可开始研究瓶颈问题,并对不同变量进行实验,例如:需要多少操作员才能及时为贴纸卷安装贴标。
本教程关于流程流实例的介绍到此结束。希望您已掌握一些使用流程流实例构建流程逻辑的最佳实践。
Cookie preferences
May we collect and use your data?
Learn more about the Third Party Services we use and our Privacy Statement.THIRD PARTY SERVICES
Strictly necessary – required for our site to work and to provide services to you
Improve your experience – allows us to show you what is relevant to you
Customize your advertising – permits us to offer targeted advertising to you
Are you sure you want a less customized experience?
Your experience. Your choice.
May we collect and use your data to tailor your experience?
Explore the benefits of a customized experience by managing your privacy settings for this site or visit our Privacy Statement to learn more about your options.


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