
WD0001
Members-
Posts
14 -
Joined
Content Type
Profiles
Forums
Events
Gallery
Downloads
Everything posted by WD0001
-
I can't upload my model, so I'll describe it. I have a custom object named "Turntable", with the property "RotationTime". The turntable is used in both my top-level model, and inside a submodel. In the top-level model, I have a DataTable named "TurntableData", with the columns: EquipmentNumber (String) <Key Column> RotationTime (Real) I am passing both columns into my submodel's "TurntableData" RepeatGroup. In the top-level model, my turntable's OnRunInitialized process contains the following SetRow node: However, in the submodel I'll need a different approach, since a RepeatGroup doesn't have a key column. This is the Turntable_OnRunInitialized process in my submodel: At first, it seems to work. It sets the correct RotationTime for each turntable at the beginning of the simulation. However, as soon as an entity tries to enter the turntable, it gives me this error.
-
I have an entity that is riding a transporter along a path. Once the transporter reaches a certain node, the entity needs to be dropped off and park at that node, while the transporter continues. Another transporter will pick it up later and continue along the path. I did manage to get the Park step to work, but it seems much more complex than I was expecting. Is this the correct approach? I thought I could use the Dropoff step in the Node's "Entered" addon process, but that step fails every time. I can't even figure out what it's supposed to do. It just gives me this error message. Token.AssociatedObject.Name = "Vehicle1[1]" However, the error message makes it seem like Token.AssociatedObject is a DefaultEntity.
-
I'm not sure how to model this. 9 parts get transferred from Conveyor 1 onto a pallet. Once the pallet is full, Transporter 1 brings it to the Storage Area. Transporter 1 picks up an empty pallet from the Storage Area, and brings it to Conveyor 1. Transporter 2 picks up a full pallet from the Storage Area, and brings it to Conveyor 2. Transporter 2 leaves and waits for the pallet to become empty. Transporter 2 picks up the the empty pallet and brings it back to the Storage Area, where it can now be picked up again by Transporter 1. I don't want to use a Combiner/Separator, because I don't need to model the individual parts themselves. I'm considering just making the pallet a resource with a capacity of 9, or maybe I should use a material element instead. I'm not sure how to make the transporter pick up the resource from storage and drop it off where it's requested, though. My Storage Area will be a submodel containing a Station element. The transporter will not enter the submodel. Its just needs to go to its external nodes.
-
Statistics can be cleared either at the end of the warmup period, or by the ClearStatistics process step. How can I create an OnStatisticsCleared process? I tried making a state that has "Auto Reset When Statistics Cleared" checked, then monitoring that state for changes. However, when the state resets due to its statistics being cleared, the monitor isn't actually triggered by that state change.
-
Routing group availability depends on the entire route
WD0001 replied to WD0001's topic in SI General Discussions
I found a simple solution that seems to work. I added a property to my custom server called "MaximumNumberRoutingIn", and used that in the Routing Group's "Destination Blocked Condition" expression. Candidate.Node.NumberTravelers.RoutingIn >= Candidate.Node.AssociatedObject.MyServer.MaximumNumberRoutingIn -
Server1 is "available" if Conveyor4 has room for another entity. Server2 is "available" if Conveyor8 has room for another entity. Also, a server is only available if its Failure is not active. What is the best way to achieve this? Should I route entities to: Input@Server1 / Input@Server2 or BasicNode1 / BasicNode2, and block those nodes when the corresponding server fails?
-
Ok, it is working now. I'm not sure what I changed to fix it, though.
-
In VB.Net, you can use an expression like "TypeOf obj Is Node", which will return True if obj is a Node, or if it is a type that inherits from Node. How can I use a Simio expression to do something similar, to return True if an object is either a Server, or is subclassed from a Server (or a subclass of a subclass of a Server, etc)? Simio's "Is" keyword doesn't respect polymorphism.
-
I have a process that is triggered by a node's Entered event. However, it throws this error, because the entity's current location is actually still on the inbound link at the time the event is fired. If I execute it as an add-on process instead, then it works. The entity's current location is actually still on the inbound link at the time of the event. I can confirm this by changing the expression to show the link's name instead. Looking at the node's OnEntered process, EnteredAddonProcess executes immediately after EnteredEvent. Is this a bug? I am using Simio 15.252.31775 (64 bit)
-
The entity travels on a conveyor, and will be processed either at 1B or 2B. Once the entity reaches 1A, it will decide whether to proceed to 1B or 2B. The entity prefers to be processed at 2B. However, if 2A is occupied at that time, the entity will go to 1B instead. 1A/1B are attached to a carousel, so they move synchronously and swap places. 2A/2B are attached to a carousel, so they move synchronously and swap places. Entities on the conveyor move independently from each other. The conveyor slips underneath a stopped entity. The image below shows all of the locations where an entity can stop.
-
That worked. Thank you.
-
I am trying to set the server processing times from a table, but it results in an error message. ServerData table: Column 1 = object instance pointing to server Column 2 = processing time Server Process Logic: Processing Time = ServerData.ProcessingTime