【问题标题】:Considering differences in the same materials - Stations考虑相同材料的差异 - 工作站
【发布时间】:2021-10-27 06:28:34
【问题描述】:

我正在尝试模拟制造装配过程,其中材料项目按照独特的生产线进行加工。在质量控制站中,当检测到故障时,将对象发送到维修区域(通过卡车托盘),并且在维修时,相同的资源将其拿走并将其放在生产线的起点。到目前为止,我已经对其进行了编程。

问题如下:当它是一个被修复的对象时,它必须遵循相同的传送带,但在站点中没有停止。对象必须进入一个站点并离开它,没有延迟(因为与站点相关的工作已经完成)。

我认为最好的办法是考虑代理中的差异(已修复与未修复),但是我无法在主代理中使用它...我还尝试了替代解决方案,例如定义每个站1中的变量并考虑在站延迟和以下站中:

triangular( 109.1*delay_bec, delaytime_bec*delay_bec, 307.6*delay_bec)

操作 - 完成过程中:

if(delay_bec==0){
delay_headers=0;
delay_bec=1;}

但没有任何效果...有什么帮助吗?

【问题讨论】:

    标签: anylogic


    【解决方案1】:

    我认为最好是考虑代理中的差异(已修复与未修复),但我无法在主代理中使用它...

    这其实是正确的做法。您需要创建一个自定义代理类型,提供一个布尔变量 isRepaired(或类似的),然后在延迟中您可以使用该特性动态调整持续时间:

    agent.isRepaired ? 0. : 100 
    

    这会使普通代理延迟 100 个时间单位,而修复后的代理则完全不会。

    显然,您必须确保流经流程块的代理属于您的自定义代理类型(请参阅帮助如何做到这一点)

    【讨论】:

    • 非常感谢本杰明,但问题是我做不到: - 在车站,如果我将“代理”指定为材料类型元素并且我写 agent.repairedfromCLT? 0. : triangular( 109.1, delaytime_bec, 307.6) 然后我收到错误“repairedfromCLT 无法解决” - 在站中,如果我将“电池”(我的代理的名称)指定为材料类型元素,然后我写与以前相同,然后我得到“ConveyorSimpleStation(ConveyorPath, ShapeDrawMode, boolean, double, double, Color, Color, ConveyorSimpleStationDescriptor) 未定义”
    • 看起来您仍在为 AnyLogic 中的一些 OOP 基础知识而苦苦挣扎。建议你先学习一些教程,看看如何去做,什么时候使用哪些关键词。还要检查benjamin-schumann.com/blog/2016/2/4/…
    猜你喜欢
    • 2022-12-20
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2010-10-23
    • 1970-01-01
    • 2018-07-12
    • 1970-01-01
    相关资源
    最近更新 更多