发帖
 找回密码
 立即注册
搜索
0 0 0

【人员调度】如何让操作员在拥堵时自动跨区帮忙?

FlexSim 3 0 1 小时前
问题描述:
在 FlexSim 中模拟真实生产线时,常常会遇到复杂的“人员调度”问题。该模型分为左右两个区域,正常情况下 Operator1(Op1)负责左侧(M3-M5)三台处理器,Operator2(Op2)负责右侧(M1-M2)两台处理器。但现实中存在动态支援逻辑:当右侧缓冲区(Queue1)发生拥堵时(比如排队超过1个),Op1 需要完成当前任务后,跨区去支援右侧的M1处理器;待拥堵解除后再自动回归左侧本职工作;而Op2严禁去左侧。
解决方法:
第一步:
在左右两个区域“处理器”选项卡里,勾选了“使用操作员”,并在下拉菜单中选择了 Push to Task Sequence List
第二步:
打开全局列表TSList1的列表属性界面,在“字段”里添加自定义代码字段 customPriority,随后编写代码实现以下逻辑:
读取设备标签:通过 TS.tasks[2].involved1 找到发布任务的机器,读取它的 Side 和 Index。
如果是 Operator2 看到 Side == "Left" 的活,直接返回 -1 (拒绝)。同样,Op1 也不去 右侧的M2。
如果是 Op1 看右侧 M1 的活,则需要去查一下Model.find("Queue1").subnodes.length即暂存区1货物的排队情况。如果拥堵了(Model.find("Queue1").subnodes.length>1),直接返回 10 分(高分插队);如果不拥堵,返回 0 分。
第三步:
在PF里使用 Pull from List活动,设置筛选规则(Filter)为:WHERE customPriority >= 0 ORDER BY customPriority DESC。
这条语句的作用:过滤掉负分即不该干的 -> 按分数从高到低排序 -> 永远拿最高分的任务。
拉取出来的任务序列赋值给 token.taskSequence,然后执行它。

──── 0人觉得很赞 ────

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?立即注册

x
您需要登录后才可以回帖 立即登录
高级模式
返回
FlexSim
热门问答
查看更多
1
厂区生产线布局优化案例!新做的!
厂区生产线布局优化案例!新做的!
12157
227
2
Flexsim二次开发之塔吊
Flexsim二次开发之塔吊
6199
45
3
FlexSim2016 中国象棋
FlexSim2016 中国象棋
6066
44
4
快递分拨中心案例~新手可参考
快递分拨中心案例~新手可参考
5672
62
5
关于Processs Flow 使用的两个案例(AGV Elevator案例/子母穿梭
关于Processs Flow 使用的两个案例(AGV Elevator案例/子母穿梭
5540
34
博主榜
+ 10630
+ 7753
+ 6759
4
+ 6323
5
+ 6321
6
+ 5341
7
+ 4710
8
+ 3722
9
+ 3628
10
+ 3566