我正在使用Anylogic开发的项目遇到了一个问题。我想要有一个货架存储块和一个货架挑选块,以编程方式选择一个托盘货架,从阵列列表中选择它。
特别是,机架商店是这样工作的:rack store block
货架拣选块给我一个错误,说第一个托盘货架不包含代理,即使通过调试,它显示该托盘货架没有可用空间,而且其中的代理类型正确,要挑选的代理似乎正确地定位在托盘货架中。机架拾取块如下:rack pick block
我谈到的项目信息是可见的here,我用下面的代码打印了它们:
traceln(palletRackListKuka.get(0).getByIndex(0).agentInfo());
traceln("class is " + palletRackListKuka.get(0).randomAgent().getClass());
traceln("has space is " + palletRackListKuka.get(0).hasSpace());我该如何解决这个问题呢?如果我说得不够清楚,请询问更多细节。
发布于 2020-07-29 23:30:13
RackStore和RackPick的工作方式是,流经这些块的代理是存储和挑选的代理。
因此,您的错误很可能是因为您在RackPick块中(以编程方式)选择的托盘货架与先前通过RackStore块时存储代理的托盘货架不是同一个货盘货架。您的控制台语句只显示托盘机架有一些所需类型的代理,而不是流经RackPick块的代理。
您只需将存储代理的托盘货架添加为其中的一个额外字段(变量),然后在挑选它时引用该字段。
编辑:为此,您已经为托盘货架提供了一个存储在其中的表达式,因此改为对您创建的函数(返回类型PalletRack)进行该函数调用,该函数选择托盘货架并将其存储在IndustrialContainer代理内的PalletRack类型变量中。
如果你想要“解耦”选择(即,选择什么是由外部以某种方式决定的),这是不同的,你必须有一些机制,然后
有关此版本的信息,请参阅分发中心示例模型。
https://stackoverflow.com/questions/63140396
复制相似问题