question

Leo L6 avatar image
0 Likes"
Leo L6 asked Leo L6 commented

How to make conveyor stop on station breakdown

Hello,

I would like to stop a conveyor based on station breakdown. I will attach a model where I try to do this by having a source when a station goes into breakdown which stops the conveyor. Then I use a wait for event to release token when station is repaired. Then I check if there are any other stations are broken down before starting the conveyor again. Here's the model: conveyorstop.fsm Unfortunately this doesn't seem to work.

Any help is appreciated.

FlexSim 22.0.16
conveyormtbf mttrbreakdownconveyor station
conveyorstop.fsm (49.2 KiB)
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
1 Like"
Jason Lightfoot answered Leo L6 commented

Stops accumulate, so while there is one stop or more remaining on the conveyor it will not resume, so you don't need to test if other stations are stopped, just use a unique id for each station that stops the conveyor:

 tonum(token.Station)

But you should in this case probably wait for the station that stopped to resume, rather than the whole Group - which then makes the token represent the breakdown cycle of one station:

1683549062417.png

It's also easier to read the macro definition for the state number:

1683546499570.png

You might also want to change the stream used for MTBF/MTBR to that of the station so that adding/removing stations does not affect the timing/sequence of failure of any of the other stations (a best practice for variance reduction).

1683548091969.png

Updated model attached.

conveyorstop_jl.fsm


1683546499570.png (4.5 KiB)
1683548091969.png (11.9 KiB)
1683549062417.png (11.4 KiB)
conveyorstop-jl.fsm (45.6 KiB)
· 2
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 ·

Here's another version, that uses an object process flow for each station and allows for multiple conveyor lines.

The conveyor is determined by this expression where 'current' is the station:

current.as(Conveyor.DecisionPoint).conveyor

By removing the direct reference to a particular conveyor you are making it generic and therefore scalable. This is another 'best practice' which in this case can save future modelling time.

conveyorstop_jl2.fsm

0 Likes 0 ·
Leo L6 avatar image Leo L6 Jason Lightfoot ♦♦ commented ·

Yes this works perfectly, thanks!

0 Likes 0 ·