Assembler Atom

All topics on the Atoms in any Enterprise Dynamics Library.
Post Reply
janosch
Posts: 5
Joined: Thursday 08 January, 2015 - 13:47

Assembler Atom

Post by janosch »

Hi,
i have a problem with my assembler atom. i want to simulate that the assembler fill bottles ( input chanel 1 ) with beer ( ic 2 ) and soda ( ic3 ). I don't know how to simulate, that the assembler changes the ic 2 and ic 3 after a while.
Please help me!
User avatar
HarryBunnik
Posts: 362
Joined: Monday 07 February, 2011 - 11:22

Re: Assembler Atom

Post by HarryBunnik »

Ha janosch,

What you can do is manipulate the B.O.M. based on what you want to produce (Place a label at the creation of the crate, what type of bottles it should contain). So if for instance you need 1 crate and 20 bottles of beer, you have to set the number of bottles of beer or soda. (OnEntry trigger of the crate (channel 1) might be a good place):

Code: Select all

If(
  Label([CrateForBeer], i) = true, 
  Do(
    Trace([Produce beer]), 
    cell(2, 1, c) := 20, 
    cell(3, 1, c) := 0
  ), 
  Do(
    Trace([Produce Soda]),    
    cell(2, 1, c) := 0, 
    cell(3, 1, c) := 20
  ) 
)
Good luck!

Harry
janosch
Posts: 5
Joined: Thursday 08 January, 2015 - 13:47

Re: Assembler Atom

Post by janosch »

Thank you very much for your fast response, Harry.
I guess you missunderstood my main problem. First of all the bottles are getting into the assembler from INPUTCHANEL 1. They need to be filled with beer (Inputchannel 2) or soda (Inputchannel 3). In the bill of material i have created 2 columns mentioned below:

Product 1 Product 2
Inputchannel 1 1 1
Inputchanel 2 1 0
Inputchannel3 0 1

Now we need to set a column reference for the bill of material. As an example, if i would set the reference to 1 - the assembler would produce the first column - in this case product 1. But i need a code which could change this reference by label or something else.

Janosch
User avatar
HarryBunnik
Posts: 362
Joined: Monday 07 February, 2011 - 11:22

Re: Assembler Atom

Post by HarryBunnik »

Ha Janosch,

Ok, then I understand (I hope). What you can do in that case is place some code on the "Column reference B.O.M." entry of the assembler (the first atom in the assembler is the bottle, hence the First(c)):

Code: Select all

Label([FillBottleWith], first(c))
You then have to set on the bottle a label which is indicating if the bottle should be filled with beer or soda. That you can do on the source I think.

Cheers,

Harry
janosch
Posts: 5
Joined: Thursday 08 January, 2015 - 13:47

Re: Assembler Atom

Post by janosch »

Im sorry, its again the wrong solution.
here is my model.
i hope its clear.
after the beer was filled in and the machine for the beer stops, the other machine for the soda doesnt start. and the third inputchanel doesnt open. thats the real problem.

thank you for your time
Attachments
Harryhelp.mod
(21.28 KiB) Downloaded 326 times
User avatar
HarryBunnik
Posts: 362
Joined: Monday 07 February, 2011 - 11:22

Re: Assembler Atom

Post by HarryBunnik »

Ok, there are Availability controls and Time Schedules in. That makes a difference for the approach.

Your problems lies in the fact that a bottle enters the Assembler and at that point it needs to know with what it will be filled (which column in the B.O.M. to use). But in your case, that is not known yet.

I've made a change (more similar to my first solution, where you update the B.O.M. based on that what you want to fill). I use the availability control to manipulate the B.O.M. table of the assembler and to make sure the correct input channel from the assembler is then opened .
HarryAnswer.mod
(21.62 KiB) Downloaded 346 times
Another option is to close the conveyor and only allow bottles to enter the assembler, when the source is also opened. That way you can tell which column to use from the B.O.M. That you could also do from the availability control.

Good luck,

Harry
janosch
Posts: 5
Joined: Thursday 08 January, 2015 - 13:47

Re: Assembler Atom

Post by janosch »

Thank you very much!!! That was exactly, what i#ve been searching for.
Maybe you could answer another short question:
I've planned that from time to time there is a broken bottle and a server who controll this. if there is a broken bottle, an operator should come and fix the problem ( send the bottle to another channel) after this i will free the operator.
an example model would be great!
User avatar
HarryBunnik
Posts: 362
Joined: Monday 07 February, 2011 - 11:22

Re: Assembler Atom

Post by HarryBunnik »

Good that it helped you!

Yes, that is possible to do. You can check the example model for the operators (ED9 : "...\Documents\Enterprise Dynamics 9\models\Examples\...\Operators\..." or ED 8 : "C:\Program Files (x86)\Enterprise Dynamics 8 Developer\Work\Examples\...\Operators\...") where the working of the operators is explained.

Good luck!

Harry
janosch
Posts: 5
Joined: Thursday 08 January, 2015 - 13:47

Re: Assembler Atom

Post by janosch »

Hi Harry!
Thank you so much, everything works good, but i have another question.
How could i check after the assemble if there is soda or beer in the bottle ?
This would be awesome!

janosch
User avatar
HarryBunnik
Posts: 362
Joined: Monday 07 February, 2011 - 11:22

Re: Assembler Atom

Post by HarryBunnik »

Ha janosch,

Nice that all is working out!

What I would do is at first change the icons of the crate and the 2 drinks. Also I would place on the OnExit trigger of the source a label, for instance Label([DrinkType], i) := 1 on the source for Beer and Label([DrinkType], i) := 2 on the source for Soda. That way you can identify the product by eye because of the different icon and on code by the label.

Since the assembler is placing the drink within the bottle, you've got to refer further on in the model to the Label of the product within the bottle, so the first(reference to the bottle) is the content. Another solution would be to place the label of the content of the bottle on the bottle when it exits the assembler OnExit: Label([DrinkType], i) := Label([DrinkType], first(i)), so you can ask it of the bottle directly. Just what suits you best!

Cheers,

Harry
Post Reply