Jump to content

MEagar

Simio Insiders
  • Posts

    471
  • Joined

  • Last visited

  • Days Won

    13

Everything posted by MEagar

  1. Further more for the animation such that it does not look like the transporter is lifting off like a rocket.....use symbols (rotate transporter) and the onentered process.....
  2. Okay, cant open your model but I will try to explain.... Insert a Node on the floor where the vehicle is at the bottom of the lift....pos A -> f(x|y|z) = f(0,0,0)... Put an additional node at floor/Level 1...pos B -> f(x|y|z)=f(0,1,0)... and... Option 1: connect with a path where along vehicle can travel; in the vertical.... Option 2 : use a transfer block to move transporter between nodes.... Every time you direct the transporter to the destination node which is pos B...it will travel horizontally to pos A and then vertically to pos B... Use the shift->up key as a shortcut....This works....
  3. send me yours...you have my email in your inbox....can skype in about an hour's time....
  4. Try positioning the nodes in the vertical....if the node is not connected to a path, you might have to use the transfer block....
  5. I can catch you on skype to show you for I have various timers performing different things.... One example would be where I have priority based maintenance...i.e...Shutdown...Planned...Breakdown....each running off of their respective timers...As these activities timers can overlap as they form part of their own unique distributions, events are fired based on the priority constraint to allocate the transporter a different state...The logic involves correctly disposing of the tokens in a wait state of the previous constraint process as well as resetting and adjusting the timers....i.e....If I am on breakdown and scheduled maintenance hits, then the schedule maintenance process is executed and Breakdown processes stopped or delayed until a corresponding event is fired....this includes material handling assignments, crew, etc.... Another example would be dynamic generation of "demand" transporters based on a varying monthly rate dictated by variations in supply due to statistical randomly generated constraints... The timer is adjusted based on a change in arrival rate which is calculated and dynamically updated to ensure that there is always just enough demand for current available supply...This forms part of optimized planning for bulk carriers which cost a hell of a lot of money if they are just chilling in the ocean... But ultimately and perhaps the crown jewel is handling flow transfers from one transporter to another...since i had developed the logic before this super awesome new release of the transporter library, I needed events to check when the load or discharge level had been reached, or the full or empty state of the flowcontainer had been reached on either transporter, or objects fired events which needed to seize loading/discharging and stay, or seize loading/discharging and move away, as well as handle inherent timers on the transporter for breakdowns that will execute different processes depending on the type of breakdown....i.e. move the transporter or stay put... It all sounds really complex but its very simple.... Hit me up on skype...
  6. Unless they have changed it, the timers work pretty good. No state variable required. I have variable timers that is dynamically adjusted based on constraint events. Works like a charm. (",)
  7. Hi Guys, This is AWESOME !! The pipe is FINALLY the same as a real conveyor... Thanks, Mark
  8. What about having a separate process that contains an execute step, which is triggered by a timer... The execute step would call the process which you want, which is triggered by a firing an event ?? Not pretty but effective, I am sitting in the same boat...
  9. Hi All, Thanks to Christine for assisting me on this and I would thus like to share the methodology on the Blog for it may save you some time. When setting up Experiments, you define controls. These controls can be assigned in the process logic with a simple decide Block with a specified condition "Run.Mode == 2". When true, it will use the experimenter controls as inputs and when false, it will use the interactive inputs. See attached. This becomes VERY useful when using Excel Tables as inputs, which the Experimenter needs to overwrite. As the Experimenter does not have a trace window, by defaulting the decide block to true, and using the Controls section of the model property, see attached, as specified inputs, you impersonate the interactive run as a scenario being executed. All errors thrown in the Experimenter, which is not visible during the interactive run, will become evident. I hope this helped and saved some people some time. Was pulling my hair out for the experimenter had picked up errors which was not detected during the interactive mode. Mark
  10. Good Day, I have tried to search the blog yet came up short. I am sure the capability exists, just not sure where to look for it. My normal model works fine, yet my experiments fail. This is not an error i.t.o. defining the experiments but its somewhere in my code. This is predominately brought on by decision logic based on "Run.mode ==2" assignments. Anybody knows how I can find a trace window or some sort of indication where it is failing in the experiment ?? FANKS
  11. Glen, Can you please extend this for functions as well....
  12. Glen, If I had a sheet of golden stars, I would stick on on your forehead... THANK YOU SO MUCH !! Mark
  13. Ditto, I would also like to know...This is a request that I had requested but still no answer.... CSVs and Macros works....yet its a pain...please support the post under the SI Ideas & Suggestions section...
  14. Glen, how are we doing with exposing the property which contains the excel file's name used to bind tables...It would be fantastic if we could change ALL tables linking to the same excel file one shot with.... ITables objects = context.ActiveModel.Tables as ITables; if (objects != null) { foreach (var ob in objects) { WriteLine(String.Format("{0} ",ob.Name)); WriteLine(String.Format("{0} ",ob.Columns.Count)); WriteLine(String.Format("{0} ",ob.Properties.BINDCOLUMN_NAME ??)); } }
  15. Alan, Just a tip...You don't need so many tanks... Tanks are independent and will only be needed if you want to see the animated flow... Thus only one tank per pickup point is needed.... Also, You HAVE to use monitor else you will see your ... due to rounding....It does not always hit the Above Low Mark Function....
  16. If you have an email address I can send you the transporter logic that handles this.... Its tricky and it took me a while to develop, but its done....
  17. You can use a timer to execute a process at a specific time...or monitor works based on a change in a state or a variable.... This will enable you to do exactly what you want to do.... Look at the definitions tab -> elements on the left hand side - > Monitor or Timer on the top Ribbon... Else search the Help for Timer and Monitor respectively....
  18. Spot On.... If you look at some of my posts....you will see that I have requested a dynamic array of type object.... Node lists wont work and you have to use a table and set the columns to type object.... having the first column as an index column, you should be able to index the table and reference other objects in the table by using the search and find blocks....
  19. I had a similiar problem with the transporter not listening what you tell it to do.... Solution... Delete the on visiting Node process and rewrite the logic....There are setNode,s statements in the Onvisitingnode process which overwrites the user assignments as the process is the first and last process which executes during run time as a transporter moves through a node....
  20. Check the simbits and use the failure block with a element called monitor....
  21. Please support my post for arrays of type object...where each dimension can be of a different object type.
  22. Check out the "Pick Up Drop Off Flow" simbit... Tanks associated with the vehicles will solve the water usage problem.... Subclassing a path and adding a tank to it will solve your aggregation problem as you can use a flow equation to simulate the accumulation.... You can then simply scale the path tank down with the discharge or flow rate of the water trucks tank... Hope this helps...
×
×
  • Create New...