conveyor sendto

All topics on coding 4Dscript in Enterprise Dynamics.
Post Reply
vassilis94s
Posts: 19
Joined: Monday 05 December, 2016 - 15:16

conveyor sendto

Post by vassilis94s »

Hi,
I have the following problem:
I have a model with 6 sources .in each source in trigger on exit field i have written a function within which the following code:
var([valPalletType],vbValue),
valPalletType := Cell(Label([RowIndex], atmSource), 9, refProductionDetails),
Label([PType], i) := valPalletType, .
The sources then go to a queue. Then a conveyor leads products to two assemblers: 1 for a certain pallet size and 2 for another also defined pallet size. I have stated a table which shows which products match with the right assembler (column number 9 has number 1 for assembler 1 and number 2 for assembler 2). I have written the 4d script [if(Label([PType], i)=1,1,2)] into the sendto of conveyor in order to send specific products to the first assembler and specific to the second. The problem is that all products are sent to the second only..What's more, when i write [Label([PType], i)] the conveyor stucks with products and do not sent anything to the assemblers.. What can i do in order to make it works?
User avatar
Margit Thomsen
Posts: 5
Joined: Monday 17 January, 2011 - 10:19

Re: conveyor sendto

Post by Margit Thomsen »

Hi,
your condition in the sendto of the conveyor checks if the label [PType] is equal to "1" or not. Can you check the products with their labels in a simulation run?
You can use the menu: "Display \ Atom labels" to check each selected product.
In the Model Tree you have the possibility with: View \ View atom labels (the button in the middle) and select the product in the Tree.
So, you test if the labels are set according to your concept.

Best regards

Margit
vassilis94s
Posts: 19
Joined: Monday 05 December, 2016 - 15:16

Re: conveyor sendto

Post by vassilis94s »

Hi Margit,
Thank you for your reply. I managed to find the solution to this problem but something else occurred. When products enter the assembler atom they loose their label. I want after the assembler to retain the label or trigger_on_exit code i have written in sources, so as i will be able to use it in order to write a 4d script to the advancedtransporter which will transfer palletized products to warehouses. I would be greatful if you could help me.
Thank you so much,
Vassilis
User avatar
Margit Thomsen
Posts: 5
Joined: Monday 17 January, 2011 - 10:19

Re: conveyor sendto

Post by Margit Thomsen »

Hi Vassilis,

maybe you have to check the "pack contents" check box. You find information about the Assembler in the help:

Pack contents
When this box is checked, all atoms entering through input channels 2 and higher will be moved inside of the atom that first entered input channel 1 for the current join operation. If this box is not checked, then the atoms entering input channels 2 and higher will automatically be destroyed.
... and their labels can't be handled later on.

Hopefully this helps you further.

Best regards

Margit
vassilis94s
Posts: 19
Joined: Monday 05 December, 2016 - 15:16

Re: conveyor sendto

Post by vassilis94s »

Hi Margit,

Thank for your reply. I have already check it and i think that this i not what i mean. I attach you a simpler model in order to explain you in a better way. After the assembler products loose their label and all go to warehouse 1. I want the assembled product to hold a label with the value of the label that the input product carries so that it goes to the respective warehouse. (product from source 1 must go to warehouse 1 and product from source 2 must go to warehouse 2)
Thank you in advance.
Best Regards,
Vassilis
Attachments
model1.mod
(47.52 KiB) Downloaded 274 times
User avatar
Margit Thomsen
Posts: 5
Joined: Monday 17 January, 2011 - 10:19

Re: conveyor sendto

Post by Margit Thomsen »

Hi Vassilis,

thanks for the model. The labels are not lost, they are written on the products, NOT on the "Container8". On the Advanced Transporter the label is searched on the first hierarchical level (first(c)), so the Container.
In the Assembler - on Exit trigger - you could set a label on the Container according to the packed products label.
Example: Label([SourceNrContainer], i) := label([SourceNr], first(i))
Please pay attention: At the moment there is a mix of products possible, because you collect products of both Sources in the Queue5. So first(i) decides to look at the first product on the Container and gets its label SourceNr.

Wish you success!

Best regards
Margit
Post Reply