You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何解决AnyLogic中PML的Pickup块inPickup端口计数返回0的问题?

解决AnyLogic PML Pickup块inPickup端口count()始终返回0的问题

核心原因

pickup.inPickup.count()返回0的本质是你误解了这个端口的使用场景,或是没匹配正确的运输工具分配方式:

  • inPickup是Pickup块专门接收从流程中直接流入的运输工具的端口,只有当运输工具通过这个端口进入Pickup块时,count()才会返回非零值。
  • 如果你的运输工具是通过ResourcePool资源池分配的(这是PML模块中最常见的运输工具管理方式),inPickup端口根本不会被触发,所以count()自然为0。

解决方案

根据你的运输工具管理方式,选择对应的统计方法:

1. 若使用ResourcePool管理运输工具

直接通过资源池API获取当前参与Pickup任务的运输工具数量,替换原公式:

dataset.add(pickup.out.count() * transporterPool.getNumberOfBusyUnits())

这里transporterPool是你定义的运输工具资源池名称,getNumberOfBusyUnits()会返回当前正在执行运输任务的运输工具数量。

2. 直接获取Pickup块关联的运输工具

如果不需要依赖资源池,可使用Pickup块自带的API获取当前关联的运输工具集合:

dataset.add(pickup.out.count() * pickup.getTransporters().size())

getTransporters()返回Pickup块当前正在使用的所有运输工具,size()即为对应数量。

3. 若确实通过inPickup端口流入运输工具

检查以下几点:

  • 确认运输工具的生成/流转逻辑正确,确实有运输工具流入inPickup端口;
  • 检查流程连接线是否正确连接到inPickup(而非其他端口);
  • 确保调用count()的时机是在运输工具流入之后(比如在事件、状态变化触发器中,而非模型初始化阶段)。

内容的提问来源于stack exchange,提问作者Jahidul Hasan Razib

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.10 11:57:49