根据天数填写服务区块,即连续填写5天

  • 本文关键字:连续 5天 服务区 anylogic
  • 更新时间 :
  • 英文 :


基于的加油站

加油站基于我试图让模型做以下事情的那一天:我有一个带队列的5服务区。我需要模型为每个服务块分配一天,即在第1天填充第一个服务块。然后在第二天填充服务区块2,在第三天填充第三服务区块,在第四天填充第四服务区块,并在第五天填充第五服务区块。一旦第五个服务块完成,它将从服务块1再次开始。

我尝试通过集合使用exit-and enter块在5服务块和以下代码之间进行迭代:

double minSize = min(collection, sp -> (sp.Curing_Drying1.size()));
return findFirst(collection, sp -> (sp.Curing_Drying1.size()) == minSize).enter; 

请参阅所附图片以获取进一步的说明。

队列和延迟退出并进入收集

当前的模型没有将每个服务或延迟块分配给特定的一天。关于如何按顺序分配每个服务块工作一天,可以提供任何建议吗。

那么您想在给定的日子内向subProcess实例发送代理吗?

您可以将int参数allowedDay添加到SubProcess中。将每个值设置为0-4。

然后在您的exit块中,决定使用当前型号时间将代理发送到哪里:

for (SubProcess currProcess : collection) {
if (currProcess.allowedDay == (int)time(DAY)) {
currProcess.enter.take(agent);
}
}

诀窍是(int)time(DAY),它将当前模型时间转换为一天的数字。

显然,要确保正确处理错误。

最新更新