Anylogic中如何根据晶圆类型分配至适配的测试机资源池?
解决Seize块根据晶圆类型选择适配测试机资源的方案
1. 给测试机资源添加可测晶圆类型属性
每个测试机Agent(即ResourcePool中的个体)需要添加属性存储可测试的晶圆类型列表:
- 在测试机Agent的Variables标签页,添加类型为
List<Integer>的变量,命名为testableWaferTypes。 - 针对不同测试机的ResourcePool,在其On create agent代码框中为变量赋值,比如Tester1的资源可测Wafer1和Wafer3:
testableWaferTypes = Arrays.asList(1, 3);
2. 配置Seize块的资源选择逻辑
- 在Seize块的Resources面板中,添加所有5个测试机的ResourcePool。
- 找到resourceChoiceCondition选项,打开表达式编辑器,输入以下判断逻辑:
这里resource.testableWaferTypes.contains(agent.waferType)agent指代当前进入Seize块的晶圆对象(可直接访问其waferType变量),resource指代当前评估的测试机资源对象,表达式会自动筛选出适配当前晶圆类型的可用测试机。
3. 额外注意事项
- 若习惯用数组存储可测类型,可将变量类型设为
int[],表达式调整为:Arrays.asList(resource.testableWaferArray).contains(agent.waferType) - AnyLogic会先筛选出可用状态的测试机,再通过
resourceChoiceCondition过滤适配类型,无需额外判断资源是否空闲。 - 可在Seize块后添加Logger块,打印
agent.waferType和resource的标识,验证资源选择是否符合预期。
内容的提问来源于stack exchange,提问作者Clément Bello
相关产品推荐
相关产品推荐

