question

Carmen F avatar image
0 Likes"
Carmen F asked Carmen F commented

Problem managing operators with process flow & 3D Model & parameter

Hello,

I am using the process flow to control the operators as a resource referenced to 3D object. The quantity of this resource can be variable so it is defined by the "OP" parameter (see example: Operators_PF_Parameter_OK.jpg) My problem comes when I set the value of the parameter to 0, because the process flow logic still acquires the operator created in the 3D model and I don't know how to avoid it. Any suggestion to control this particular case?

I have attached a model with an example: Dummy_Operators_PF_Parameters_v01.fsm

Thanks in advance.

FlexSim 23.0.0
process flowoperatorsparameter
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

Sebastián Cañas avatar image
0 Likes"
Sebastián Cañas answered Carmen F commented

Hi @Carmen F ,
I suggest you to use Jason Lightfoot's answer here. With Process Flow you can reference a Dispatcher with the Create Task Sequence activity. With these activities you can also replace Acquire/Release activities.

Hope it helps!

dummy-operators-pf-parameters-v01_SC.fsm


· 7
5 |100000

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

Carmen F avatar image Carmen F commented ·

Hello @Sebastián Cañas,

Thanks for your answer but I wouldn't want to use a dispatcher because the acquisition of the resource in the real model has a certain complexity and is given by the application of some priority rules that I control through process flow. I have attached a new dummy including this aspect. Dummy_Operators_PF_Parameters_withPriorityRules_v01.fsm

In the example, depending on label "Type" of the item and the values in the global table "Operator_Priority", it is selected the operator profile to be acquired (Example: { 2,1} --> Firstly, it will be looking for OP2 and secondly for OP1). In addition, depending on the schedule, it will choose an operator from one shift or another but it is not relevant at this point.

If the first operator profile requested is not available, it will look for an operator from the second profile and so on. It will go through a loop until it finds a free one. Once the operator is acquired, the task sequence is created.

In the new attached example this logic is working, but I still don't know how to handle the case where the value of the parameter that controls the number of operators in a profile is =0. Example_malfunction_withParameter0.jpgIn this case, no operator of that profile should be acquired.

Any suggestions how to solve it using this approach or using another?

Thanks in advance.

0 Likes 0 ·
Jason Lightfoot avatar image Jason Lightfoot ♦♦ Carmen F commented ·

Push your available operators to a list and pull them off using an ORDER BY clause that references the expression:

 puller.orderProfile.indexOf(value.operatorID)

which assumes the puller has an array label containing the operator profile , where the values match those stored on the operators as the label 'operatorID'.

0 Likes 0 ·
Sebastián Cañas avatar image Sebastián Cañas Jason Lightfoot ♦♦ commented ·

@Carmen F ,

Besides Jason's suggestion, I made a demo model that seems to work! I'll explain the steps I did:

  • Add your operators to an objects group.
  • Reference the Group you'd created as PF Resource.
  • Create the Parameter with the Lower Bound as 0, reference the Group you'd created and select the operation Delete and Copy Group Members in the trigger On Set.
  • Create a Model Triggers OnModelReset. I reuse the code of Set Number in People Group that you find also in the operations of the trigger On Set of the parameters. I made a few changes, set the variable newValue as the parameter you set before and the variable group as the group you'd created.

parameterzero-pf.gif

ParameterOPZero_PF.fsm

0 Likes 0 ·
Show more comments
Show more comments