您好, 根据您的描述,您正在模拟一个场景:多个加工台的芯片料箱会基于时间分布被填满,随后需要AMR(自主移动机器人)将其运至清空区倾倒,再将空料箱放回缓冲区。您目前遇到的问题是,每次只能运输一个料箱,而您希望扩展到多台并行机器,实现多台AMR协同工作(例如,一些AMR取走满箱,另一些AMR从缓冲区补充空箱)。 要实现多台AMR并行协同作业,关键在于建立一种**容量拉动式**的调度机制,而不是依赖单一的、顺序触发的信号。以下是一些建议的思路和方法,可以帮助您在Visual Components中实现这一目标: ### 核心思路:从“信号触发”转向“任务队列与资源调度” 您当前的“信号”方式可能形成了一个顺序链条。要并行化,需要将“需要运输的满箱”和“可用的空箱”视为任务,将AMR视为资源,并通过一个中央调度器或基于条件的任务分配系统来管理。 ### 具体建议方法: 1. **使用“物料流”或“任务分配器”组件**: * Visual Components 中的“物料流”或某些专用的任务分配器组件(具体名称可能因版本而异,例如“Dispatcher”、“Task Planner”或通过“AGV Interface”的高级功能)正是为这类场景设计的。 * **工作原理**:您可以将每个加工台的“满箱输出点”、清空区的“倾倒点”、缓冲区的“空箱存放/拾取点”定义为**任务点**。当加工台的料箱满时,它向系统发布一个“取走满箱”的任务。调度器会从空闲的AMR车队中分配一台去执行。同样,当加工台需要空箱时,发布“补充空箱”任务,由调度器分配给(可能是另一台)AMR去缓冲区取空箱并送达。 2. **利用“AGV Interface”或“Fleet Control”功能**: * 如果您使用的是支持车队管理的AGV/AMR模型,通常会有配套的接口或控件。您可以配置一个**车队**,并定义多个**运输任务**。这些任务可以设置为**并行处理**,只要有多台空闲的AMR,它们就可以同时被分配任务。 3. **通过“脚本”实现自定义调度逻辑**: * 如果标准组件灵活性不足,您可以使用Python脚本实现一个更自定义的调度系统。 * **基本架构**: * **任务列表**:创建两个全局列表(或队列),一个用于`pending_pickup_tasks`(待取走的满箱),一个用于`pending_delivery_tasks`(待补充的空箱)。 * **事件触发**:加工台料箱满时,将其位置/ID加入`pending_pickup_tasks`。加工台空箱被取走后,将其自身ID加入`pending_delivery_tasks`。 * **AMR状态管理**:每台AMR都有状态(空闲、前往取货、运送中、前往缓冲等)。 * **调度循环**:编写一个定期运行或事件驱动的函数,检查是否有`空闲AMR`和`待处理任务`。如果有,则将该任务分配给该AMR,并更新任务列表和AMR状态。AMR完成任务后,状态恢复为“空闲”,并触发下一个任务分配。 * **优先级与规则**:您可以在脚本中轻松定义规则,例如“优先处理等待时间最长的任务”或“让特定AMR专门负责取货或送货”。 4. **检查与配置关键点**: * **AMR数量**:确保您在场景中放置了多台AMR,并且它们都被正确配置到同一个车队或调度系统中。 * **路径网络与避让**:确保路径网络足够支持多车同时运行,并设置了合理的避让规则,防止死锁。 * **缓冲区与清空区的容量**:将这些区域设置为**允许多个容器同时存在**(例如,设置较大的容量或将其定义为“存储区”),避免成为流程瓶颈。 ### 操作步骤建议: 1. **审查现有组件**:首先查看您使用的“Buffer Zone”和“Dump Zone”组件属性,看是否有“最大容量”、“同时处理数量”或“任务生成”等相关设置。 2. **引入调度器**:尝试在组件库中搜索“Dispatcher”、“Task Planner”或“Material Flow”相关的组件,将其添加到场景中,并按照其帮助文档将您的加工台、缓冲区、清空区和AMR车队与其连接。 3. **考虑脚本方案**:如果标准调度器不符合您的特定逻辑,使用Python脚本实现上述自定义调度可能是最强大和灵活的方式。Visual Components的API通常支持获取组件状态、控制AMR移动和触发任务。 由于我无法直接查看您的`TestSimNew.vcmx`文件,以上是基于通用仿真原则和Visual Components常见功能提供的方向。建议您从**尝试配置一个车队调度器**或**开始编写一个简单的双任务队列脚本**入手,这应该能突破目前单次运输的限制,实现多AMR并行作业。 如果您在尝试具体方法时遇到问题,可以提供更多关于您所用组件类型或脚本片段的细节,以便获得更具体的指导。 祝您项目顺利!

Hello,

I am working on a scenario where I would want to emulate chip bins getting full based on time distributions. Once filled, AMRs would pick the bin and empty the bin in an empty bin zone and then place the empty bin on to a bin buffer. I used process nodes for the bin process, dump zone and buffer zone. And I set up signals between the bin process node and the buffer zone basically - based on a time delay, the signal gets sent to the buffer zone - which will initiate the AMR to pick a bin and loop it to the dump zone and back to the buffer. However I am having an issue where only one bin gets transported at a time. I want to scale this process to have multiple parallel machines - so multiple AMRs should work in tandem to pick full bins from the machine and another AMR should replenish this with a bin from the buffer. Is there any way I can have something like a capacity pull emulated so that multiple AMRs work in tandem? Any help would be highly appreciated

TestSimNew.vcmx(1.6 MB)

您好,我不太确定是否理解正确,但如果您希望AMR(自主移动机器人)去取回新产品,在实际产品完成并需要运送到下一工序之前,您可以采用两种方法:一是在机器前设置两个工序作为缓冲区;二是尝试使用 **StartTransportIn + WaitTransport** 方法,类似于 eCat 中的“双夹爪机器看管”布局模板。 从帮助文件中得知: **StartTransportIn** 语句允许您启动将一个或多个产品实例运输到工序中,并在运输过程中执行其他语句。 --- **TestSim_with StartTransportIn.vcmx** (1.8 MB) --- **rprasann** 2026年2月26日 下午4:10 3 感谢Tilma,另外我们将使用具备全向移动能力的AMR。有没有办法控制AMR的导航,使其在特定路径上能够横向移动,而不是直行? **rprasann** 2026年2月26日 下午4:26 4 我的意思是,为了避免撞到柱子,能否强制AMR保持当前朝向,先向左移动,再向前,然后向右? **image** 406×248 28.9 KB **JohnKim** 2026年2月27日 上午6:42 5

From the Help file:

A StartTransportIn statement allows you to start transporting one or more products instances into the process and to execute other statements while that is being done.

TestSim_with StartTransportIn.vcmx(1.8 MB)

Thank you Tilma, also we will be using an AMR with omni capabilities. Is there a way we can control the navigation of the AMR so that in a certain pathway - it moves sideways instead of straight?

What I mean is that here to avoid a column, is there a way I could force it to go left then forward and then right - in the same AGV orientation?

我认为仅靠基本提供的 PM 功能实现起来比较困难,但或许可以通过任务控制器(Mission Controller)实现。

@rprasann目前 VC 对应的是 MR 模块,没有 AMR 模块,因此使用 MR 来实现 AMR 功能可能无法实现或较为困难!