首页 > 解决方案 > 如何使用 Anylogic 中的进入和退出块来跨代理类型及其各自的流程图传输代理?

问题描述

我目前正在研究电池交换站的仿真模型。

因此,在我的模型中,我已将充电器声明为具有自己的参数和流程图的代理类型,并且“主”有 2 个流程图(共 3 个)。

我有 2 组进入和退出模块,其中一组用于将充满电的电池从“主流程图”发送到“充电器流程图”,另一组将已放电的电池从“充电器流程图”发送到“主流程图”。

我在主流程图中添加了 5 个充电器代理,名称为 Spot_1、Spot_2....,我想访问主和充电器的这些进出块。最初我尝试仅在主图中访问它们,但没有成功(语法:Spot_1.enter.take(this))。然后我在“汽车”代理类型中构建了一个状态图,并尝试从那里访问这些块,但无法访问。

当前显示错误的语法: main.Old_Battery_In.take(this); main.Check_for_Availability.isBlocked() == false ; main.Spot_1.New_Battery_In.take (this);

我还添加了一个具有状态图的图像,并且代码在此处输入图像描述

Old_Battery_In 是 main 中的输入块,Check_for_Availability 是 main 中的保持块,New_Battery_In 是充电器中的输入块

拜托,谁能提出解决方案

标签: simulationanylogicagent-based-modeling

解决方案


为了能够从代理类型访问 main 中的块,您需要在 main 中拥有该类型的人口,即使是空的。将“Agent”元素从 Agent 面板拖放到 main,选择尝试访问 main 的类型并使其最初为空。之后,如果您再次运行,main 应该可以访问。


推荐阅读