代理人在运输车空闲之前不离开队列
Agents not leaving the queue before a transporter is free
在我的模型中,我有一个队列,来自不同来源的多个代理聚集在一起抓住一个传输器(见图)。但是现在他们在进入队列后立即离开到抢占运输机块。但我想让他们排队,直到一个运输车空闲,然后队列中的第一个应该抓住一个运输车,所以应该移动到抓住运输车块。我应该如何解决这个问题?
seizeTransporter 有自己的嵌入式队列。您可以使用 seizeTransporter4.size()
访问该值。如果您坚持让它们分开,而不是排队,请使用带有 stopDelay 选项的延迟块。每当 seizeTransporter4.size()
低于可用运输机的数量时,运行 停止延迟功能。喜欢
if (seizeTransporter4.size()<=3){
myDelay.stopDelay(myDelay.get(0));
}
有几种方法:
- 在队列之后,添加一个RestrictedArea元素来限制Seize seizeTransporter4元素中代理的数量。在队列中,您可以对代理进行排序。
- 使用 Wait 元素而不是队列元素,在这种情况下,您需要编写提取代理并将它们发送到 seizeTransporter4 元素的逻辑。
第二种方式在编写逻辑上更加灵活
在我的模型中,我有一个队列,来自不同来源的多个代理聚集在一起抓住一个传输器(见图)。但是现在他们在进入队列后立即离开到抢占运输机块。但我想让他们排队,直到一个运输车空闲,然后队列中的第一个应该抓住一个运输车,所以应该移动到抓住运输车块。我应该如何解决这个问题?
seizeTransporter 有自己的嵌入式队列。您可以使用 seizeTransporter4.size()
访问该值。如果您坚持让它们分开,而不是排队,请使用带有 stopDelay 选项的延迟块。每当 seizeTransporter4.size()
低于可用运输机的数量时,运行 停止延迟功能。喜欢
if (seizeTransporter4.size()<=3){
myDelay.stopDelay(myDelay.get(0));
}
有几种方法:
- 在队列之后,添加一个RestrictedArea元素来限制Seize seizeTransporter4元素中代理的数量。在队列中,您可以对代理进行排序。
- 使用 Wait 元素而不是队列元素,在这种情况下,您需要编写提取代理并将它们发送到 seizeTransporter4 元素的逻辑。
第二种方式在编写逻辑上更加灵活