【问题标题】:Anylogic - recording resource pool activityAnylogic - 记录资源池活动
【发布时间】: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.

如果有人知道该怎么做,请帮忙。提前谢谢你。

【问题讨论】:

标签: anylogic job-scheduling


【解决方案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循环不会感觉:在状态更改发生后,该代码不会“保持运行”。所以这更像是对库元素的操作方式的误解。
猜你喜欢
  • 1970-01-01
  • 2020-09-22
  • 2021-06-20
  • 2021-10-18
  • 2019-10-27
  • 2019-08-05
  • 2022-01-15
  • 2018-12-22
  • 2021-09-04
相关资源
最近更新 更多