Model Anylogic:如何根据代理的参数对ResourcePool中的设置时间(工具更改)建模?

Model Anylogic:如何根据代理的参数对ResourcePool中的设置时间(工具更改)建模?,model,simulation,production,anylogic,Model,Simulation,Production,Anylogic,因为我在最后一个问题上得到了很大的帮助,并且在帮助/教程中没有找到任何有用的提示,所以我将重试:) 简化的情况是: 不同产品变体的生产(代理产品带参数productID) 具有4个工位的生产线(建模为服务);每个站点有2台机器(建模为ResourcePool) 更换产品变型时,必须重新安装机器 我的想法是将机器状态记录为变量/参数(MachineStatus)。当资源单元被占用(代码在“占用时”执行)时,比较是否productID=machineStatus。如果它们相等,则没有延迟,如果它

因为我在最后一个问题上得到了很大的帮助,并且在帮助/教程中没有找到任何有用的提示,所以我将重试:) 简化的情况是:

  • 不同产品变体的生产(代理
    产品
    带参数
    productID
  • 具有4个工位的生产线(建模为
    服务
    );每个站点有2台机器(建模为
    ResourcePool
  • 更换产品变型时,必须重新安装机器
我的想法是将机器状态记录为变量/参数(
MachineStatus
)。当资源单元被占用(代码在“占用时”执行)时,比较是否
productID
=
machineStatus
。如果它们相等,则没有延迟,如果它们不同,则中断一定时间。但是,我有两三个问题:

  • 如何将变量
    MachineStatus
    分配给资源池的uni
    t?特别是如果我在一个资源池中有两台机器,因此有单独的MachineStatus
  • 我尝试使用self.timeout来模拟中断,但这会导致错误
  • 或者,一般而言;这种方法是有效的还是我忽略了一些重要的东西

谢谢你的帮助

可能有人对我如何解决这个问题感兴趣(与我的想法有点不同):

  • 定义参数
    MachineStatus
    和函数“RetoolingTime”
  • 我的服务块的
    DelayTime
    值:
MachineStatus.equals(agent.productID)?30:30+RetoolingTime(agent.productID,RetoolingTime)

请注意,30秒是我的正常处理时间,如果我必须重新装备,还有一个额外的重新装备时间,由函数计算

为了获得重新安装时间,我将代码写入函数的函数体
RetoolingTime