Server set up

All topics specific to modeling questions in Enterprise Dynamics
MartinL
Posts: 28
Joined: Tuesday 03 February, 2015 - 21:43

Re: Server set up

Post by MartinL »

Hi Bram,

I tested the model and it seems that previous problem is solved, but still one thing is missing.

As the UserEvent is not used any more, then also the product cycle time is not dependable on a product type any more. Seems that the functionality was forgotten, when the UserEvent was deleted.
If possible, then I would like ask some help to modify the script so that both times ( time with HumanResource and overall time in Assembly workplace) are dependant on label value, which is given to product in ArrivalList.

Furthermore, I was wondering what would be the best option to track the overall time, which product spend in Assembly Workplace ( CallHumanResource + Assembly Server + Queue13)? Basically, how to monitor the workplace utilization?

BR.
Martin
Bram de Vries
Posts: 60
Joined: Thursday 08 January, 2015 - 13:29

Re: Server set up

Post by Bram de Vries »

Hello Martin,

You can indeed still use the Label values in this new model. For the Human Resource time, you will have to replace all the instances where I have used the standard time of hr(3) with something like this:

Code: Select all

Case(Label([Type], First(c)), Hr(3), Hr(5))
The Case statement will decide based upon the label called Type of the product which time to use. It is now important that you carefully give products a certain label. Only products with label value 1 will get Hr(3) and only products with label value 2 will get Hr(5). If you want to a third type, you can give them a label value 3 and put the time you want them to get from the Human Resource as the third time in the Case statement. For the other time (10 hours), you can do the exact same thing.

Now your other question: I attached a model to illustrate this (notice that the above is not present in this model). I use a table in which I log the times that a product enters and leaves the assembly workplace. The entrytime is logged on entry of the CallHumanResource atom (only when a product enters from the first input channel and so for the first time). I use a label on the model itself to indicate which row of the table should be used for this product and I update this label everytime a new product enters the assembly workplace. I also check whether the table (called WorkplaceTimes) should get more rows. I use an initialize atom to reset the number of rows of the table and also the label on the model.

On entry of the packing server, I log the time when a product leaves the assembly workplace. Note that both the entry and exit time are in seconds. You can use these times to calculate the time a product actually spends at the assembly workplace.

Kind regards,

Bram
Attachments
AssemblyWorkplace_v8.mod
(24.47 KiB) Downloaded 266 times
MartinL
Posts: 28
Joined: Tuesday 03 February, 2015 - 21:43

Re: Server set up

Post by MartinL »

Hello Bram,

Tried to implement the Label value system to the model, but I'm struggling getting it to work. Basically I just switched following parts of the previous code:

Hr(3) = Case(Label([Assembly_HR], First(c)), Hr(3), Hr(5))

Hr(10) = Case(Label([Assembly], First(c)), Hr(10), Hr(16))

As I'm not very experienced in 4DS code, then I just Copy/Paste'd it to old code, but sadly it didn't do the trick. I attached the modified model and maybe you could take a quick look what's wrong. If you are able to get this example model to work, then hopefully I'm able to implement this also to my project model.

And for info, is there a limitation how many label values I could store in thid Case statement?

BR.
Martin
Attachments
AssemblyWorkplace_v7.2.mod
(22.18 KiB) Downloaded 262 times
Bram de Vries
Posts: 60
Joined: Thursday 08 January, 2015 - 13:29

Re: Server set up

Post by Bram de Vries »

Hello Martin,

Attached, you will find your model with two new features. Firstly, I noticed that products only got labels with value 1, so then a distinction in the process times will never be made. In the Arrivallist, I added a new product with label values of 2. I also noticed that we want to use the Case statement in the exit trigger of the assembly server as well. Because the First product of the server does not exist anymore in our model when the exit trigger is executed (since the product has just exited), we should have used the reference i there, in stead of First(c). I didn't spot this for my last post, so I changed this as well.

The model seems to be able to handle the different label values now. As for your last question, you can have a maximum of 255 parameters in the Case statement (so the first parameter for the Label upon which you want the decision to be based and then 254 for the possible values the result can attain).

Kind regards,

Bram
Attachments
AssemblyWorkplace_v8.mod
(24.47 KiB) Downloaded 252 times
MartinL
Posts: 28
Joined: Tuesday 03 February, 2015 - 21:43

Re: Server set up

Post by MartinL »

Hello Bram,

I'm afraid that you have attached the wrong model, beacause I couldn't find the new features you mentioned. Also the Assembly servers scripts seems to be unchanged.

BR.
Martin
Bram de Vries
Posts: 60
Joined: Thursday 08 January, 2015 - 13:29

Re: Server set up

Post by Bram de Vries »

Hello Martin,

You're right. I saw your version 7.2 and falsely assumed the next version would be 8, but I already had a version 8. I attached the model with the changes this time.

Kind regards,

Bram
Attachments
AssemblyWorkplace_v9.mod
(22.34 KiB) Downloaded 254 times
MartinL
Posts: 28
Joined: Tuesday 03 February, 2015 - 21:43

Re: Server set up

Post by MartinL »

Hello,

The model which you sent worked as promised, but as I used the same logic in my project model, then it needs still some modifications .

The thing is that, I have multiple inputs to the CallHumanResource and currently the Queue exit trigger only closes the Queue output where the product came. I have multiple different Queues in my model and I would need that if the product enters the Assembly Workplace then all the Queues outputs are closed. And when the Product leaves the Packing server ,then all Queues are opened again and the product which has waited the longest is let to the Assembly workplace and all queue outputs are closed again.

I also attached a model, which illustrates the situation.

BR.
Martin
Attachments
AssemblyWorkplace_v9.2.mod
(25.21 KiB) Downloaded 233 times
Bram de Vries
Posts: 60
Joined: Thursday 08 January, 2015 - 13:29

Re: Server set up

Post by Bram de Vries »

Hello Martin,

One question to start with: should the queues be opened when a product leaves or enters the packing server? Because until now this happened when a product enters the packing server (and so exited the assembly workplace).

Is it necessary that you have two separate queues after you arrivallists? Else you can attach both arrivallists to the same queue and products will already be in the queue in the order of their arrival (so the longest waiting product is at the front position of the queue). You can then keep using the code as it is. When a product leaves the assembly workplace, the longest waiting product before the workplace will leave the queue to enter the CallResource atom and the queue will be closed again.

Kind regards,

Bram
MartinL
Posts: 28
Joined: Tuesday 03 February, 2015 - 21:43

Re: Server set up

Post by MartinL »

Hello Bram

First, I changed the opening of the queues after packing in purpose.

Secondly, I have two production lines which start with ArrivalList and before Assembly worplaces they have their own seprate Queues. So using a extra Queue after the production lines own queus or replacesing them with one should do the trick, but this leads me to another question. In the model I have multiple Assebly workplaces after the Queue and this means that only the specific Queue output should be closed/opened where the product passed. At the moment all Queue outputs are closed and opened when one product enters or leaves the Assembly workplace.

Also attached the illustrating model.

BR.
Martin
Attachments
AssemblyWorkplace_v9.3.mod
(33.98 KiB) Downloaded 250 times
Bram de Vries
Posts: 60
Joined: Thursday 08 January, 2015 - 13:29

Re: Server set up

Post by Bram de Vries »

Hello Martin,

If I am correct, you want products from the arrival list to go to a workplace as soon as one is available. What I would do in this case is have one queue after your production lines (which acts as an actual queue for your workplaces) and then two queues after this queue, each of these is attached to one of the workplaces. I've attached a model depicting this situation.

When a product enters one of these queues, I would close the input of these queues. You can then open these queues when a product leaves the packing server of the corresponding workplace. This way, you only have one product per workplace, but when one workplace is busy with a product the other one can still receive other products. Please note that this second part is not yet present in the model I attached.

Hope this helps you on your way!

Bram
Attachments
AssemblyWorkplace_v10.mod
(35.99 KiB) Downloaded 249 times
Post Reply