question

anon-user avatar image
0 Likes"
anon-user asked Jason Lightfoot edited

How to attach a Dog Number to a conveyor


I want to use this function.

How do I attach a Dog Number to a dog on a conveyor?


ConveyorTypeProperties > Power And Free > Catch Condition > Match Label Value to Dog Number



FlexSim 20.1.3
flexsim 20.1.3conveyorsystempower and free conveyordog
5 |100000

Up to 12 attachments (including images) can be used with a maximum of 23.8 MiB each and 47.7 MiB total.

1 Answer

Jason Lightfoot avatar image
2 Likes"
Jason Lightfoot answered Jason Lightfoot edited

First thing to note is the number of dogs doesn't mimic real life where they would be returned in a loop - they immediately reappear at the start- so in your model there are 10 dogs.

Second is that the dognumbers are descending so they go from 10 to 1. In your model you only have number 1 so every 10th dog collects the item.

Attached is a model where I've numbered them 10 to 1 to match the conveyor. I've also printed to the console the dognumber and item number as each dog is evaluated

dognum00_jl.fsm


dognum00-jl.fsm (38.3 KiB)
· 3
5 |100000

Up to 12 attachments (including images) can be used with a maximum of 23.8 MiB each and 47.7 MiB total.

Jason Lightfoot avatar image Jason Lightfoot ♦♦ commented ·

Changing the labels to skip odd numbers gives this:


dognum00_jl_skip.fsm

0 Likes 0 ·
1605304121904.png (43.5 KiB)
anon-user avatar image anon-user commented ·



This is exactly what I wanted to do.

So I'm trying to make the same model myself.


But I have some questions.


I don't know how to get the dognumber and item number to the console.

Why do I need to put a motor object?

Is it possible to change the dog number of the conveyor arbitrarily?

0 Likes 0 ·
Jason Lightfoot avatar image Jason Lightfoot ♦♦ anon-user commented ·

If you open the Catch Condition code you will see the predefined parameters at the top and I added the line to print to the console as shown here:

Conveyor current = param(1);
Object item = param(2);
int dogNum = param(3);
int groupNum = param(4);
int groupMemberNum = param(5);

print ("dognum: ",dogNum,"  Item:",item.DogNum);

My understanding is that you don't need the motor for the simple example you gave, but you will if you use a number of conveyors that share the dogs and the numbering should be consitent between them.

The catch condition only fires when there is an item and a dog, but there's nothing to say that you need to label the items as we did, you could just have logic that checks if the dognumber is even or odd or something else. You could even look up a value in a global table to check something based on the dog number (which you could use as the row reference).

So far I've not seen a way to change the dog numbering - the system creates a unique number for each dog in the system. The spacing can be irregular though if you make the dog interval a comma seperated list of seperations.

Attached is an example with a lookup table.

dognum00_jl_lookup.fsm


0 Likes 0 ·