Jump to content
Simio Forum

Welcome to the Simio Forum

Welcome to the Simio Forum! Experience the full experience of the forum by becoming a Simio Insider! You must be an Insider to post on any forum!

Click_Here_button.png

  • Search By Tags

    Type tags separated by commas.
  • Search By Author

Content Type


Forums

  • Simio Public Forums
    • Welcome and How To Become a Simio Insider
    • Discussions
    • Simio News and Announcements
    • Simio Product Details
    • Simio-Related Positions Desired or Positions Available
  • Forums for Simio Insiders Only (See Public Forums Welcome topic to sign up)
    • SI Help Getting Started
    • SI General Discussions
    • SI Downloads
    • SI Shared Items
    • SI New Feature and Enhancements Submission and Voting
    • SI Ideas & Suggestions
    • SI Bugs and Issues
    • SI Performance Tips
    • SI Challenge Applications
    • SI Non-US Cultures
    • SI User Interface
    • SI Material Handling
    • SI Student Competition
    • SI Educational
    • SI Objects
    • SI Animation and Visualization
    • SI Reporting and Analysis
    • SI Agent Based Modeling
    • SI Scheduling
    • SI Emulation
    • SI Optimization
    • SI API

Categories

  • Files
    • Academic Information
    • Product Information
    • Case Studies

Find results in...

Find results that contain...


Date Created

  • Start

    End


Last Updated

  • Start

    End


Filter by number of...

Joined

  • Start

    End


Group


About Me


OCCUPATION


ICQ


WEBSITE


YAHOO


AOL


LOCATION


FACEBOOK


GOOGLEPLUS


SKYPE


TWITTER


YOUTUBE

Found 12 results

  1. Dear Simulationists, I am trying to model a manufacturing cell consisting of a metrology station, CNC machine, and an airblast station. Each processed batch contains 3 different parts. The batch is inspected in the metrology station, then is mounted on the CNC where the first part is machined. After the first part is machined, it is then taken out of the CNC machine and transported to the airblast station, and after that to the metrology station and the finished parts store, while the CNC machines the second part of the batch. The same is repeated for the second and third part of the batch. After all three parts are machined, the plate used as a fixture for the batch is also processed on the CNC, followed by transportation to the metrology station and the plate store. There are defect rates of different magnitude associated with different operations. My idea was to represent each of the operation steps as separate servers (4 CNCs, 4 metrology stations, 3 airblast stations) and create a process logic that assigns a single shared processing capacity on all servers performing the same function. For example, this would not allow the second CNC to start operating if the first is already operating. I have been struggling to define this process logic for three days now, and as my desperation levels grew progressively higher, I decided to seek assistance from the experts in this forum. I would deeply appreciate it if you share your ideas on how this process logic might look like, ideas about more efficient methods to model the scenario and any general feedback or suggestions! This is a repost of the thread from the public forum to allow file attachments. Thanks, Hristiyan
  2. Tricky problem. If you had posted this in a Simio Insiders forum instead of the public forum I could have replied with a model and figures. I would probably take the opposite approach - instead of adding additional "fake" machines, I would consider representing each workcell as a single server that makes use of associated resources for metrology, CNC, and airblast. I'd use Task Sequences to do the sequential processing of each part, then use the associated Loopback feature of Task Sequences to start over with the subsequent parts. There are a number of SimBits demonstrating task sequences. Unfortunately the only one demonstrating loopback (ServerUsingTaskSequencesWithDataTables_Loopback) uses data tables (which complicates things) but you might get the idea. Or you could do a similar approach with process logic steps. If you repost this in Simio Insiders you might get more help.
  3. Dear Simulationists, I am trying to model a manufacturing cell consisting of a metrology station, CNC machine, and an airblast station. Each processed batch contains 3 different parts. The batch is inspected in the metrology station, then is mounted on the CNC where the first part is machined. After the first part is machined, it is then taken out of the CNC machine and transported to the airblast station, and after that to the metrology station and the finished parts store, while the CNC machines the second part of the batch. The same is repeated for the second and third part of the batch. After all three parts are machined, the plate used as a fixture for the batch is also processed on the CNC, followed by transportation to the metrology station and the plate store. There are defect rates of different magnitude associated with different operations. My idea was to represent each of the operation steps as separate servers (4 CNCs, 4 metrology stations, 3 airblast stations) and create a process logic that assigns a single shared processing capacity on all servers performing the same function. For example, this would not allow the second CNC to start operating if the first is already operating. I have been struggling to define this process logic for three days now, and as my desperation levels grew progressively higher, I decided to seek assistance from the experts in this forum. I would deeply appreciate it if you share your ideas on how this process logic might look like, ideas about more efficient methods to model the scenario and any general feedback or suggestions! Thanks, Hristiyan
  4. Dear all, I have searched for quite a while in the public part of this forum, but I could not find the solution of my problem even though there were some similar issues. I have four servers and a worker who is required as secondary resource for each of them. The worker switches and is doing fine so far. However, for my optimization problem, I need to simulate the amount of workers that are necessary to ensure smooth operations. Therefore, I would like to change the capacity of each server to 2 for 2 workers or to 3 to simulate 3 workers, etc. Sadly, the capacity of the server is not changing in the simulation even though the data are entered. Is there a solution to increase the capacity of servers with a worker as secondary resource so that always several entities are processed when the simulated worker arrives? Thank you very much for your support. Greetings from Hamburg, Armin
  5. This post has been copied to the Simio Insiders forum with a response that contains a model attached. Attachments are not permitted in the general discussions forum and this post can serve as a help to others. single server multiple processing times Quote Postby Sammyy » Mon Aug 22, 2016 3:21 pm i want to make a model where the entities visit same server two times ,but each time their processing time and destination is different. I tried using sequence tables,but it does not work. Would really appreciate if someone could help me with this.. Here is an small example model where two part types come into the system. They are assigned a sequence to follow. Each server has two different process tasks with different times. As part of the sequence the entity follows, you will note that the route can return to the input transfer node of the server it just left. Check that your connectors also allow for the return to the input transfer node of the server you desire to send the entity. Also, be certain to set the output transfer nodes the correct Entity Destination Type property to By Sequence. Judy ServerSequence.spfx
  6. Because of spammers, we don't allow files to be posted to this public forum. You should really move this discussion to the Simio Insiders part of the forum. I have the same SimBit redone using a FreeSpace approach - I'll try to email it to you.
  7. Hi, It's my fourth topic in this forum within the last several days... This would be much more general. Are there any books on the market with the deep coverage of the flow library? Like a reference book with some examples would be just great. I checked the preview of 'Simio and Simulation: Modeling, Analysis, Applications', looks like it covers only Standard Library (well, with some advanced techniques, but on discrete simulation). 'Rapid Modeling Solutions: Introduction to Simulation and Simio' also focuses on introduction to discrete part of Simio. I managed to achieve certain progress on very simple models with flow library, but wonder whether there is a more detailed coverage?
  8. Dear Simio Forum Members, How can I realize a logic process for a vehicle? -- Initially, the vehicle picks up a part from Server 1 and drops it at the input node of server 2. --Then, once Server 2 finishes processing the part, vehicle picks up a part from server 1 and goes to the output node of server 2 to pick up the finished part, which means the vehicle now has two parts, one raw part ,one finished part. --Once vehicle picked up the finished part from server 2, it will go to the input node of server 2 and drop off the raw part. --Finally, the vehicle takes the finished part to SINK. So is there any way to realize the logic? I checked the routing logic of Vehicle. It seems that "On Demand" or "Fixed Route" cannot satisfy to build the logic. The vehicle seems to need to be controlled by itself. I have no ideas about it. Hope you can help me. Thanks! Bill Best regards,
  9. Dear Simio Forum Members, how would one define a robot/population of robots with a set of instructions: - pick up a part (from sink) - go to a "suitable" station ("suitable" is defined according to the minimum number of robots with parts in a queue waiting in front of the station, time of travel, waiting time and operation time.) - if there are already more robots in front of a station, choose an alternative one - wait in front of a station for the part to finish - pick up the finished part and continue to the next station/sink (according to list of stations) There are partial solutions within SimBits but I am still having difficulties to define these parameters. So, for now I would like to accomplish that one robot picks up the part and with that becomes the dedicated transporter around the system for that part - meaning it also waits in front of the station/server. And during this waiting, other robots are also picking up the parts and going to designated stations. If the station is occupied, goes in a queue holding the part. Any guidelines in finding a solution would be appreciated. Best Regards, Damir TU Vienna, Austria
  10. This fixed the outstanding bug where writing in an experiment would dump all csv files in the simulation root directory, ignoring the relative directories you specify in the file path in the file element. The fix was trivial, and I am sure I have raised it several times both on this forum. I made the fix a few months ago, and have kept meaning to post it here (if indeed I have not already). The problem with unofficial fixes is that it is another moving part to update, keep track of, and adds to installation complexity. I have lost previous fixes twice (due to fresh re-installs). Essentially "fileNameWithoutExtension = System.IO.Path.GetFileNameWithoutExtension(fileName);" was the culprit. I changed the "_writerFileName" directive from using the above variable to: _writerFileName = "fileName + "_" + simioScenarioName + "_Rep" + simioReplicationNumber + fileExtension;" I could do something neater (as the current output will have a ".csv" in the middle of the name), but did not spend any time on this. It would be appreciated if this was fixed and applied to the official write block (even if as a toggleable option), as due to the over-zealous licensing terms, the DLL will not load on an unlicensed client... meaning I have to choose between having the bug fixed and not dumping hundreds of thousands of CSV files in my simulation root... or causing clients considerable inconvenience by writing hundreds of thousands of CSV files into their simulation root. Here is the relevant code extract in the file element: if (String.IsNullOrEmpty(fileName) == false) { string fileRoot = null; string fileDirectoryName = null; string fileNameWithoutExtension = null; string fileExtension = null; try { fileRoot = System.IO.Path.GetPathRoot(fileName); fileDirectoryName = System.IO.Path.GetDirectoryName(fileName); fileNameWithoutExtension = System.IO.Path.GetFileNameWithoutExtension(fileName); fileExtension = System.IO.Path.GetExtension(fileName); } catch (ArgumentException e) { data.ExecutionContext.ExecutionInformation.ReportError(String.Format("Failed to create runtime file element. Message: {0}", e.Message)); } string simioProjectFolder = _data.ExecutionContext.ExecutionInformation.ProjectFolder; string simioExperimentName = _data.ExecutionContext.ExecutionInformation.ExperimentName; string simioScenarioName = _data.ExecutionContext.ExecutionInformation.ScenarioName; string simioReplicationNumber = _data.ExecutionContext.ExecutionInformation.ReplicationNumber.ToString(); if (String.IsNullOrEmpty(fileDirectoryName) || String.IsNullOrEmpty(fileRoot)) { fileDirectoryName = simioProjectFolder; fileName = fileDirectoryName + "\\" + fileName; } _readerFileName = fileName; if (String.IsNullOrEmpty(simioExperimentName)) _writerFileName = fileName; else _writerFileName = fileName + "_" + simioScenarioName + "_Rep" + simioReplicationNumber + fileExtension; } Using relative file paths worked at one stage, and was later broken. Below are two threads with work around un-offical dlls that probably implement the fix nicer. 10/07/2012 - http://www.simio.com/forums/viewtopic.php?f=19&t=829 07/12/2012 - http://www.simio.com/forums/viewtopic.php?f=20&t=987 TextFileReadWrite_compiled.zip TextFileReadWrite_source.zip
  11. The best way is to use the Combiner's ability to match a parent with a member based on some state on the entity. That state might represent an entity classification (like a part type or color) or might be something even more unique. The screenshot illustrates using a state representing a unique order number. We limit file attachments in the public parts of this forum. I have moved this discussion inside the Simio Insider section so I could also attach the model.CopyEntityThenRecombineWithOriginal.spfx
  12. I've created a tool which makes my life a bit easier when trying to code Design Add-Ins for Simio and I thought that I would share it with everyone else. Disclaimer: I'm an engineer that is mostly self-taught when it comes to programming so it may not work (all I know is that it works on my pc ). Also I know that it isn't the prettiest piece of software either. What the tool does is allow you to try c# code directly within Simio and evaluate the results. If you have ever used a dynamic programming language like Matlab or Mathematica then it will be familiar to you. Its like the command window in Matlab where you can enter commands without compiling. Its called a REPL (Read-Eval-Print-Loop). more info here: http://en.wikipedia.org/wiki/Read%E2%80%93eval%E2%80%93print_loop The code uses the Microsoft Roslyn Compiler API. more info here: http://en.wikipedia.org/wiki/Microsoft_Roslyn If you want to play around with the source code then you will probably need to install the Roslyn CTP. Download here: http://msdn.microsoft.com/en-gb/roslyn. I created the solution using Visual Studio 2012 and I believe that the roslyn compiler only works with VS 2012 at the moment. How to install: 1) Copy the SimioREPL folder from the zip file into either: C:\Program Files\Simio\UserExtensions or c:\Program Files (x86)\Simio\UserExtensions 2) The folder structure should be ..\Simio\UserExtensions\SimioREPL How to get started: 1) Create a new model in simio. 2) Select SimioREPL from the Select Add-In drop Menu (Project Home Ribbon) 3) Click "Insert Initializing Code" button. This inserts some code to get the whole thing going. You may need to change the directory of the dlls loaded if you are not using a 64-bit machine (delete the x86 part from the path). 4) Press the Execute button to evaluate the code. 5) You can now start playing with the interactive coding environment The bottom textbox displays the results from each execution loop. If no return values are given then it will display just the execution count. How to use (here is an example of how to use the tool): Enter c# code just like in a normal program, for example: int x = 10; You can find out the current value of a variable by entering its name without the ending semi-colon, for example: x or x*2 + 10 -3 This will display the value in the output text box at the bottom of the window. I've added the ability to use Write() and WriteLine(), just like in a console application. for example: WriteLine(object.ObjectName); If the code is invalid then the Exception message will be displayed in the results text box, and the input code will remain. If the code is valid then the input code is cleared. The context object is already defined. Use context as you normally would. Some example code Walkthrough: Add some objects to the model IIntelligentObjects intelligentObjects = context.ActiveModel.Facility.IntelligentObjects; IFixedObject sourceObject = intelligentObjects.CreateObject("Source", new FacilityLocation(-5, 0, -5)) as IFixedObject; IFixedObject serverObject = intelligentObjects.CreateObject("Server", new FacilityLocation(0, 0, 0)) as IFixedObject; IFixedObject sinkObject = intelligentObjects.CreateObject("Sink", new FacilityLocation(5, 0, 5)) as IFixedObject; ILinkObject path1 = intelligentObjects.CreateLink("Path",sourceObject.Nodes[0],serverObject.Nodes[0],null) as ILinkObject; ILinkObject path2 = intelligentObjects.CreateLink("Path",serverObject.Nodes[1],sinkObject.Nodes[0],null) as ILinkObject; [Execute] Move the source object intelligentObjects["Source1"].Location = new FacilityLocation(-4.5, 0, -2); [Execute] List all the nodes on the server object foreach(var node in serverObject.Nodes) { WriteLine(node); } [Execute] List all the objects in the model foreach(var ob in intelligentObjects) { WriteLine(ob.ObjectName); } [Execute] ---------- Hopefully you find this useful. If you improve the tool using the Source Code given then could you please repost the source code here in this forum topic. I'm sure that there are many things that can be improved by a proper programmer. What it really needs is intellisense . SimioREPL Source.zip SimioREPL UserExtension.zip
×
×
  • Create New...