首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >存储不包含代理- Anylogic

存储不包含代理- Anylogic
EN

Stack Overflow用户
提问于 2020-07-29 02:15:33
回答 1查看 153关注 0票数 0

我正在使用Anylogic开发的项目遇到了一个问题。我想要有一个货架存储块和一个货架挑选块,以编程方式选择一个托盘货架,从阵列列表中选择它。

特别是,机架商店是这样工作的:rack store block

货架拣选块给我一个错误,说第一个托盘货架不包含代理,即使通过调试,它显示该托盘货架没有可用空间,而且其中的代理类型正确,要挑选的代理似乎正确地定位在托盘货架中。机架拾取块如下:rack pick block

我谈到的项目信息是可见的here,我用下面的代码打印了它们:

代码语言:javascript
复制
traceln(palletRackListKuka.get(0).getByIndex(0).agentInfo());
traceln("class is " + palletRackListKuka.get(0).randomAgent().getClass());
traceln("has space is " + palletRackListKuka.get(0).hasSpace());

我该如何解决这个问题呢?如果我说得不够清楚,请询问更多细节。

EN

回答 1

Stack Overflow用户

发布于 2020-07-29 23:30:13

RackStore和RackPick的工作方式是,流经这些块的代理是存储和挑选的代理。

因此,您的错误很可能是因为您在RackPick块中(以编程方式)选择的托盘货架与先前通过RackStore块时存储代理的托盘货架不是同一个货盘货架。您的控制台语句只显示托盘机架有一些所需类型的代理,而不是流经RackPick块的代理。

您只需将存储代理的托盘货架添加为其中的一个额外字段(变量),然后在挑选它时引用该字段。

编辑:为此,您已经为托盘货架提供了一个存储在其中的表达式,因此改为对您创建的函数(返回类型PalletRack)进行该函数调用,该函数选择托盘货架并将其存储在IndustrialContainer代理内的PalletRack类型变量中。

如果你想要“解耦”选择(即,选择什么是由外部以某种方式决定的),这是不同的,你必须有一些机制,然后

  • 选择您要选择的特定代理(例如,从同一产品的1000个实例中挑选),这通常与您的“存储/检索策略”有关;

  • 将该代理‘注入’到RackPick块中以选择它(例如,通过Enter块)。

有关此版本的信息,请参阅分发中心示例模型。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/63140396

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档