仅在另一台机器不工作时才运行机器,反之亦然

问题描述 投票:0回答:1

下面是我的模型。我有机器 M1 和 M2。

以下是我的用例;

  • M1必须工作,只有当M2不工作时
  • M2必须工作,只有当M1不工作时
  • M1和M2不能同时操作

为了实现上述用例,我用逻辑编写了以下代码,如果M2繁忙,我想停止M1,反之亦然。

代码块;

M1 的“On Enter”;

if (M2.Busy()) { M1.suspend(); }

M2 的“On Enter”;

if (M1.Busy())  { M2.suspend(); }

不幸的是,代码最终出现错误,Busy() 和 Suspend() 未定义。

对此的任何帮助将不胜感激。

提前致谢!

anylogic
1个回答
0
投票

使用等待块代替队列。

源->w1->m1->w2->m2

在 w1 和 w2 中输入

if(m2.size()==0 && m1.size()==0) w1.free(agent);

在 m1 和 m2 退出时,假设 m2 优先,否则更改顺序

if(w2.size()>0) w2.free(w2.get(0));
else if(w1.size()>0) w1.free(w1.get(0));
© www.soinside.com 2019 - 2024. All rights reserved.