Creating an assembled product in a machine process

Hi - I have 3 components (defined as product types) that are picked up by the robot and then loaded onto a machine for processing. Once the processing is done, I would like the machine to transfer out the assembled product comprising the 3 components. Now, I’ve already created an assembly with all the three steps in the Product Type Editor (and defined the correct positioning for them in the Assembly Editor). What I fail to do is in the statements of my machine. What statement(s) do I need to include to be able to convert my 3 components into only 1 product and the transfer it out of the machine for the next process?
I would really appreciate your responses on this.
Thanks a lot!

You could use GetAssembly to get the order (or recipe) for that assembly, and then transport in the products (ingredients) that are requested by the order.
Make sure to set the TransportIn Mode to Process an Assembly, Assembly variable can be empty, and AssemblyOrderVariable should match the order name you got from the GetAssembly.

1 Like

Thanks for your quick reply.
I’ve been adding those statements hoping this could fix it, but it still fails. Half way through the third line, the flow gets totally ignored and then the robot places the loaded component close to its point of pick up. I changed the source from previous process to container, but nothing happens. I also changed Assembly data source from Product type to assembly instance, but still nothing.

You need to modify the process steps, because Press 1 appears multiple times there. Either rename the processes so each name is used only once, or create multiple flow groups.

1 Like

Well, that’s because how the flow should be. The robot needs to have multiple trips back and forth between conveyors/feeders and the machine (Press 1). But even when I limit the flow to only the first two steps (from Feeder to Press 1), still the command is not fully executed. I suspect it’s the TransportIn statement properties that are causing this. When I add TransferIn mode: Transport, the flow is completely fine.

I think you are confusing how assemblies work vs. just bundling products using Attach and Detach.

You only need to use a single TransportIn statement because it can bring in all the 3 products you specified in the AssemblyOrder.

Also once the assembly has been made, you only need to TransportOut the assembly product itself, the 3 products are attached to it.

Also your Assembly product itself (ChassisBoltSpring) shouldn’t have the same flow as its parts because it gets created in the Press 1 process, not in a Feeder. The parts also don’t need any further flow steps if they stay in the assembly for rest of the simulation.

The flow sequences don’t support having same process more than once. It will just loop from the first occurrence of each process. To work around this you have 2 options.

  1. You can to use the ChangeType statement (or detach and construct for assemblies) to change the product to a Product Type that is in a different flow group and thus has a separate flow definition.
  2. Create multiple processes in the machines and use process requirement statements to control which one runs based on e.g. available products (Reserve Product statement). Those different processes can then be used in the same flow sequence.

I would recommend watching some PM tutorials from the VC academy, and looking at the template layouts in eCat. Those should give a good idea how the PM flows and assemblies can be used.

1 Like

Thank you.
I’m going to consider these points. I’ve been watching and reading tutorials of course. I’ll keep doing that.

1 Like