ATTENTION

This FlexSim Community Forum is read-only. Please post any new questions, ideas, or discussions to our new community (we call it Answers) at https://answers.flexsim.com/. Our new Question & Answer site brings a modern, mobile-friendly interface and more focus on getting answers quickly. There are a few differences between how our new Q&A community works vs. a classic, threaded-conversation-style forum like the one below, so be sure to read our Answers Best Practices.


flexsim.com

Go Back   FlexSim Community Forum > FlexSim Software > Q&A
Downloads

Q&A Using Flexsim and building models

  #1  
Old 05-07-2012
Vadim Fooks's Avatar
Vadim Fooks Vadim Fooks is offline
Flexsim User
 
Join Date: Feb 2012
Posts: 67
Downloads: 26
Uploads: 0
Thanks: 50
Thanked 24 Times in 13 Posts
Rep Power: 118
Vadim Fooks will become famous soon enough
Default One driver, two forklifts, multiple queues - is coordinated ts the only solution?

Ladies and Gentlemen,
I am looking at a situation where I have two source ->processor -> sink sequences and a forklift assigned to each, but only one operator to operate each forklift on the on-demand basis.
The straightforward solution is the coordinated task sequence from the tutorial but I really hope to come up a more elegant one for two reasons:
1) I have multiple queues and I really do not want to create copies of the same task sequences for each queue or even a call to the external function.
2) Ideally I would like to have this arrangement reusable.
So herein lie my questions:

Is it possible to delegate the creation of the custom task sequence to the dispatcher, get the source/destination data from the dispatched task sequence in the dispatcher's OnReceiveTaskSequence and create a new custom task sequence from there?

Is it possible to encapsulate this functionality in a "special kind of forklift" so it can be dropped into the model, connected to the operator and will start acting like a normal forklift that works only when there is someone available to drive it?

Thank you!
Vadim
  #2  
Old 05-08-2012
Esther Bennett Esther Bennett is offline
Flexsim User
 
Join Date: Mar 2008
Posts: 115
Downloads: 27
Uploads: 0
Thanks: 103
Thanked 116 Times in 50 Posts
Rep Power: 271
Esther Bennett is a name known to allEsther Bennett is a name known to allEsther Bennett is a name known to allEsther Bennett is a name known to allEsther Bennett is a name known to allEsther Bennett is a name known to all
Default

Hello Vadim,

Is there a reason to use two forklifts with one operator in your model in stead of just one operator that is connected to both lines? This would probably be the simplest solution, but might not be sufficient.

There are two ways to reuse a personalized forklift: add it to a userlibrary after you have added all the functionality. Or use a module to add a modified forklift.

Esther
  #3  
Old 05-08-2012
Steven Hamoen's Avatar
Steven Hamoen Steven Hamoen is offline
Talumis, Flexsim Distributor, The Netherlands
 
Join Date: Aug 2007
Location: Soest, NL
Posts: 854
Downloads: 43
Uploads: 0
Thanks: 391
Thanked 661 Times in 379 Posts
Rep Power: 684
Steven Hamoen has a reputation beyond reputeSteven Hamoen has a reputation beyond reputeSteven Hamoen has a reputation beyond reputeSteven Hamoen has a reputation beyond reputeSteven Hamoen has a reputation beyond reputeSteven Hamoen has a reputation beyond reputeSteven Hamoen has a reputation beyond reputeSteven Hamoen has a reputation beyond reputeSteven Hamoen has a reputation beyond reputeSteven Hamoen has a reputation beyond reputeSteven Hamoen has a reputation beyond repute
Default

To be honest I don't see your problem:
Quote:
Originally Posted by Vadim Fooks View Post
1) I have multiple queues and I really do not want to create copies of the same task sequences for each queue or even a call to the external function.
You only have to copy the "Request Transport From"/ "Use Transport" trigger, or you put your queue in a userlibrary and drag it in every time you need it, so you never create extra copies, you only create copies of the code but you do that every time you drag in a new object

Quote:
Originally Posted by Vadim Fooks View Post
2) Ideally I would like to have this arrangement reusable.
Why does this interfere with a coordinated tasksequence?

Again put your object in a userlibrary to reuse them, or put the complete constellation in a visual tool container and store that container in a user library

If you don't want to use coordinated tasksequence you can use a normal tasksequence and send it to the forklift truck with a sendmessage to itself and after that a utilize task. On the sendmessage you create a normal tasksequence for an operator with a freeoperators task. So the operator has a queue of tasksequence with forklift trucks that need him and the forklift cann't operate till an operator has reported itself. In the operator tasksequence you can even move it into the forklift.
Don't forget the utilize the operator when he is at the forklift.

But to be honest, this is a coordinated tasksequence so why bothering with doing all the things yourself when the program can do it for you!
  #4  
Old 05-08-2012
Vadim Fooks's Avatar
Vadim Fooks Vadim Fooks is offline
Flexsim User
 
Join Date: Feb 2012
Posts: 67
Downloads: 26
Uploads: 0
Thanks: 50
Thanked 24 Times in 13 Posts
Rep Power: 118
Vadim Fooks will become famous soon enough
Default

Everybody, thanks for the speedy response!
I decided to start with a coordinated task sequence and then see if I can package it for reuse (I am a noob).
I sort of struggled with it on my own until I figured out how to delegate the creation of the task sequence by sending a message from all queues to the dispatcher, and the rest was relatively easy.

Now that I got the easy part figured out, here are the challenges that I have not overcome yet:

1) Boarding and exiting the forklift takes time. How do I make my driver stay in the cabin if the next task involves the same forklift, but exit if the next task involves walking to the other one. Exiting and reentering would cause an undesirable delay.

1a) How do I make operator go to another location if all the queues are idle, but stay in the cabin if they are not? Again, I am looking for some kind of generic solution.
I suspect that the answer involves dispatcher sending itself a delayed message but not sure what to do if the message arrives and the next task has already started.

2) How do I disconnect the operator from the forklift without just ending the tasksequence and making it disconnect automagically if the next task requires a different forklift? The only way to make the operator exit the cabin that I found is by inserting TASKTYPE_MOVEOBJECT to model() which teleports the operator to (0, 0, 0).
Calling setloc() has resulted in some really weird behavior. I can make the operator walk back to the forklift, but that does not make sense.

3) The way I implemented it, queues depend on the dispatcher being connected to center port one and forklifts to center port two. Is there a way to discover what is connected to which port and act accordingly without hardcoding port numbers?



Thank you!
Vadim
  #5  
Old 05-08-2012
Jens Mühlheimer Jens Mühlheimer is offline
Flexsim User
 
Join Date: Jul 2008
Location: Stuttgart, Germany
Posts: 140
Downloads: 8
Uploads: 0
Thanks: 40
Thanked 35 Times in 27 Posts
Rep Power: 174
Jens Mühlheimer will become famous soon enoughJens Mühlheimer will become famous soon enough
Default

// nevermind ... reading helps
  #6  
Old 05-08-2012
Steven Hamoen's Avatar
Steven Hamoen Steven Hamoen is offline
Talumis, Flexsim Distributor, The Netherlands
 
Join Date: Aug 2007
Location: Soest, NL
Posts: 854
Downloads: 43
Uploads: 0
Thanks: 391
Thanked 661 Times in 379 Posts
Rep Power: 684
Steven Hamoen has a reputation beyond reputeSteven Hamoen has a reputation beyond reputeSteven Hamoen has a reputation beyond reputeSteven Hamoen has a reputation beyond reputeSteven Hamoen has a reputation beyond reputeSteven Hamoen has a reputation beyond reputeSteven Hamoen has a reputation beyond reputeSteven Hamoen has a reputation beyond reputeSteven Hamoen has a reputation beyond reputeSteven Hamoen has a reputation beyond reputeSteven Hamoen has a reputation beyond repute
Default

For points 1 and 2 I think you should take a look at callsubtasks. Then in the subtask determine if you do nothing or walk back to the central point.

Using the setloc should work so maybe there is something else that makes it behave weird.

For point 3 you can use classobject to determine what object is connected to what port. Or you can check if a certain variable is present or not.
  #7  
Old 10-16-2012
ameen shabeer ameen shabeer is offline
Contributing
 
Join Date: Jun 2012
Posts: 28
Downloads: 30
Uploads: 0
Thanks: 15
Thanked 1 Time in 1 Post
Rep Power: 0
ameen shabeer is on a distinguished road
Post hi

Anyone have the solved model of this post ?

regards
Ameen

Tags
coordinated task sequence, dispatcher, forklift, operator, transporter


Thread Thread Starter Forum Replies Last Post
Sketchup driver failure David Chan Installation 7 02-07-2011 09:27 AM
Specifying ODBC driver for PostgresSQL Nischith Kashyap Q&A 2 01-19-2011 10:09 AM
Coordinated Tasksequences Nico Zahn Q&A 1 11-26-2010 04:43 AM
THIS IS A CHALLENGE! tasksequence question regarding one forklift and 20 queues DilAmaya Q&A 1 09-13-2009 09:44 PM
Is there any simple solution to support batch mean method in flexsim? qin tian Q&A 1 02-29-2008 01:19 PM


All times are GMT -6.
Powered by vBulletin® Version 3.8.11
Copyright ©2000 - 2020, vBulletin Solutions Inc.
Copyright 1993-2018 FlexSim Software Products, Inc.