Anylogic - 记录资源池活动
Posted
技术标签:
【中文标题】Anylogic - 记录资源池活动【英文标题】:Anylogic - recording resource pool activity 【发布时间】:2021-09-15 12:27:54 【问题描述】:我在 anylogic 中有一个作业车间调度模型,我想为资源池(机器)做一个甘特图。在资源池操作部分中存在一个名为 On unit state change 的部分,在资源池的帮助下,它说这个字段有一个与之关联的繁忙变量。
Here is the help of resource pool.
虽然我可以在这个字段中做一个while循环,这样当busy变量为真时,我将值1添加到我的数据集中,当busy为假时,我添加值0。但问题是当我运行我的使用该 while 循环的模型我没有收到任何错误,但我的模型不再运行。
Here is the while loop.
如果有人知道该怎么做,请帮忙。提前谢谢你。
【问题讨论】:
这是您的问题的后续帖子***.com/questions/68216923/… 吗?添加到数据集的解决方案不需要while循环吗? 【参考方案1】:是的,如果条件保持为真,while 循环很容易杀死模型。
您需要了解,只要池中的任何资源更改其状态,就会执行代码。
所以你不应该使用 while 循环,而应该使用简单的 if 语句:
if (unit.equals(theUnitMyGanttChartCaresAbout)
if (busy)
// tell Gantt chart that "unit" started being busy
else
// tell Gantt chart that "unit" started being idle
【讨论】:
嗯,关键是当资源改变状态时,“On unit state change”动作只执行(一次),所以while
循环不会感觉:在状态更改发生后,该代码不会“保持运行”。所以这更像是对库元素的操作方式的误解。以上是关于Anylogic - 记录资源池活动的主要内容,如果未能解决你的问题,请参考以下文章
Anylogic 抢占块 如果其他资源池忙,则从资源池中抢占资源