question

Preet avatar image
0 Likes"
Preet asked Preet commented

How to add delay in MTBF/MTTR and track that time on the faulted machine

Hello!

I have a model with many robots that gets faulted based on given MTBF MTTR function. I am sharing a demo model for someone who can provide a solution. I looking for help on adding below features. I tried multiple times/ways but did not get success.

1. How would I add a delay for x minutes between the processer1 gets faulted and the dispatcher gets a message? The idea here is that I want to add some delay as a proxy for time taken for communication. On the processer, I want to track that time as STATE_COMMUNICATION. I do not find such state. If there is no way to add this customizable state, then I will use any existing state and rename that as Communication.

2. I also want to track the timers of Technicians separately in stead of just Travel Empty. Currently i tracks travel empty when he go to repair the fault and come back to home position. What I want is to track 'Travel repair' when he travels for repair and 'Travel Home' when he walks back to the home position.delayed_MTBF_MTTR.fsm

Thank you!

FlexSim 23.0.2
mtbf mttrdelay
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

Felix Möhlmann avatar image
1 Like"
Felix Möhlmann answered Preet commented

While it would be possible to do this in the down function code alone by using the await statement to delay the creation of the task sequence, I would instead suggest to build out the logic in a Process Flow. This way it is much easier to follow what is happening and also makes implementing more complex logic easier (if necessary).

To start out, make the down function in the MTBF/MTTR do nothing and place an Event Triggered Source in a Process Flow that reacts to the "Down Function" event. The event offers the downobject and downtime as parameters. By assigning them to token labels, you can use them later in the flow.

With regards to the states:

FlexSim has 50 predefined, named states. As you say, you can use any of them to represent whatever state you want, regardless of their name, and later just change the display name in the state table.

If you make an object assume a state with a number > 50, it will automatically create new states (for that object only) up to that number, with their names just being the respective number. So if you don't want to use a default state, you can add new states easily like this.

These states will also persist through a model reset, so if you want to have the statistics panel display the proper name, you can go into the object's atrribute tree and change the state names there.

1676448151065.png

1676448174165.png

1676448210800.png

For the dashboard charts, only the given name in the connected state table matters.

delayed-mtbf-mttr_fm.fsm


· 1
5 |100000

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

Preet avatar image Preet commented ·
Hi @Felix Möhlmann This is awesome! Thank you very much for creating the process flow. It was very clear and I learned many concepts which I can implement on various modules. This exactly gave me what I am looking for.


0 Likes 0 ·