AnyLogic - 为什么基于条件的转换不起作用?

时间:2017-12-19 14:04:59

标签: conditional anylogic statechart

enter image description here

我有一个与状态图转换相关的问题(见上图)。我有一个名为palletInUse的变量,它是一个布尔类型,在true和false之间变化。对于我的状态图中的一个转换,我希望在变量palletInUse的值为true时进行更改。我试过它,例如:

palletInUse == true;

并尝试了不同的代码,例如equals和contentEquals等,但似乎没有任何效果。你有解决这个看似简单的问题吗?

提前致谢

2 个答案:

答案 0 :(得分:1)

只有当代理中的某些内容发生变化时,才会不断监控该情况。当您使用common" ="为变量分配新值时Java运算符,它不会被AnyLogic引擎捕获。之后你需要调用onChange()函数。然后,应该执行转换。 还有其他方法可以在没有显式onChange()调用的情况下触发条件检查。你可能会发现它们in AnyLogic Help article。 顺便说一下,你可以只指定布尔变量作为条件,不需要将它与truefalse进行比较:

palletInUse

答案 1 :(得分:0)

如果没有发生任何事情,则不评估该情况,因此您必须不断进行某些事情以评估您的状况。一种典型的做法如下图所示:

statechart auxiliar transition