This video demonstrates how to use Simio stations and add-on processes to decouple entity arrivals from their processing availability, by storing entities in stations and moving them periodically or on demand.
Mind Map
Click to expand
Click to explore the full interactive mind map • Zoom, pan, and navigate
in this video we'll do a simple example
that demonstrates how to use semio
stations uh and we will use the add-on
processes to implement uh the station
logic and so the example we're doing is
a totally madeup example where we are
decoupling entity arrivals from their
availability for for processing so we're
going to have random arrivals and those
random arrivals will be stored and then
periodically moved into position to be
processed and the key Concepts that
we'll be using in this video are uh
talking about suio stations uh continue
talking about add-on processes which we
did in the previous video uh in
particular we'll talk about the search
step and user defined events and so
let's take a look at the model that
we'll be building so let me just click
go to run and what we have is random
arrivals uh here and
periodically uh every time an entity is
created created here every 1 minute I
believe all of the entities that are in
this location are moved to this location
and then on a SE on a different period
every two and a half minutes I believe
every all of the entities that are in
this uh station are transferred to the
the processing area we also have a user
defined event and so I can uh click the
S1 to S2 button at any time to initiate
the transfer from station one to station
two so specifically what's going on is
we have a station defined here station
one we have a station defined here
station two we have a button which is
tied to a user defined event called
event one and when entities arrive
they're transferred to station one then
we have a source which creates entities
periodically every 1 minute and when
entities are created all of the entities
in station St one are immediately move
to station two on a second period um
entities are created here at this source
and when they are all of the entities
are moved from station two uh into the
input buffer for uh server
one before we look at how we would build
this model we need to look at a couple
of key Concepts uh that we'll use in the
model uh first and foremost what is a
semio station well a station is is an
element that models capacity constrained
location for holding entities and so as
we know simio models entities that exist
in physical space and so a station
provides uh a location where I can store
entities and I can optionally have uh a
capacity associated with uh that
location when we look at a server object
This Server object from the standard uh
Library we've already talked at length
about the input buffer the processing
area in the output buffer and from an
implementation standpoint these are
actually stations so there's an input
buffer station processing station and an
output buffer station and when an entity
arrives to the server object it's
transferred into the input buffer and
then eventually transferred into the
process I'm sorry the input buffer
station then transferred into the
processing station and then eventually
transferred into the output buffer
station and so in using stations uh
there are two things we have to keep in
mind we can use uh we can use a transfer
step uh to transfer an entity from its
current location into a station and then
we use an end transfer step to signify
the end of the transfer from one station
to another so we'll see in our add-on
processes as we build the model we will
have a sequence of transfer in transfer
then transfer and in transfer and in the
um uh standard Library objects much of
the in transfer are done automatically
and uh many of the transfers are also
done automatically within the uh
processes uh that comprise the standard Library
Library
objects okay so let's have a look at uh
how we would build this model so we'll
just start out with a uh new model here
and the first thing we're going to do is
add our source uh object to create our
entities and we'll just use use the
Standard inal Time Properties and have
them arrive according to the poison
process and so we also have our default
entity and the when entities arrive what
we want to do is transfer them into a
station and so we need to First Define
that station so I'm going to go to the
model and the definitions and we see our
elements uh section here and I'm just
going to click on station and and we'll
just leave the default name of station
one so we've now uh created a station
and what we want to do is when entities
enter the um output node we will create
an add-on process that simply transfers
them into the station so I'm going to
click on the add-on process triggers and
use the shortcut so I'll just
doubleclick on the um entered and add
process and so when a uh entity enters
the the output buffer I want to transfer
immediately from the current node is we
did this when it we have the add-on
process when it enters the output and
this time we want to transfer to a
station and so the transfer uh two type
is station so we will transfer from the
current node which is the output to of
Source One to a station
and we want it to go to station one now
we also know that when a entity is
transferred into a station we have to
manually end the transfer so I'm going
to create a new process by clicking on
the create process button and it creates
a process named process one and I'm
simply going to add the end transfer now
we have a process that ends the transfer
and we need to tell simeo at what point
do we execute that process
and so I'm going to select the process
so I move away from any one of the steps
and just click and you see the hatch
line so I've selected the process and
I'm going to go over to the triggering
event name property click on that and
select station one entered and so now we
see the little lightning bolt symbol
here with station one. entered and that
tells us that this uh that uh this
process is ex executed when the event
station one entered occurred so if we
look at our model we have um entities
that arrive randomly Source uh Source
One when they enter the output node the
process output undor Source onecore
entered is executed that initiates a
transfer from that node to station one
when station one is entered simia will
automatically fire an event called
station 1. entered and which point we
simply end the transfer so if we go back
to our model now I want to display that
um the contents of station one so I'm
going to go to the animation ribbon and
just select detached q and now I'll draw
a detached Q
here and the Q State Property
defines the CU that the the detached
queue that I'd like to animate so I'm
going to go down to station one.
contents and station one. contents says
show me the contents of the station one
uh station and so now when I run my
model we can see that when entities
arrive they're immediately uh
transferred into the station now our
model doesn't do anything else so if we
continue to let our model run the
station will just continue to build
since we didn't put a capacity since we
didn't specify a capacity this would
just run until we exceeded the maximum
number of entities in the
system so the next step we're going to
do is add station two so recall that
when entities arrive uh in the random
arrive randomly they're placed in
station one and then periodically we
will transfer them to station two so I'm
going to go to my model at definitions
and create station two again we'll just
leave the default name then I'm going to
go back and I'm just going to copy the
animated que so I can just use use the
contrl C to copy it to the clipboard and
the contrl V to paste it and then I can
just go over and change the property
from station 1. contents to station 2.
contents the next thing I'll do is I
know that I have to end the transfer and
so this is something that when I'm doing
process when I'm doing models like this
I often forget so I try to do it as soon
as I create the station I go ahead and
create the process to um to end the
transfer so I'm going to do that call it
process two we'll just leave the default
name and I want this process to execute
when Station 2 is entered so it's a
identical to uh process one and except
it happens when station two is entered
so now we have uh our two stations and
we need the logic for pulling all of the
entities out of station one and
transferring them to Station 2 that's
the thing that we want to happen uh
periodically so I'm going to do that
with an add-on process process I'll go
create add-on process 3 and again we'll
just use the default name and
essentially what I need to do in this
process is pull everything out of
station one and transfer it to station
two so before I do that I'm going to add
an additional symbol to our uh default
entity so that we can change its color
uh as it um as it moves from Station to
Station so go back to our process here
we have process three and we'll use the search
search
step and over in the uh properties uh we
specify the collection type as a q state
so I'm telling samio I'd like to search
the Q State and I want selection one
contents and so this is saying uh search
the Q State selection one contents uh
and we're going to leave the remaining
basic logic to its defaults and I'm
going to open the advanced objects and
there there's a limit and if you click
it it says the maximum number of items
defined that defaults to one we want
everything so we'll change that to
infinity and so when the token executes
the search step it pulls everything out
of station one contents uh because we
have this set to infinity and all of
those uh the tokens representing those
entities come down uh the found uh
branch of our search so the first thing
I'm do is change their color so I'm
going to go to assign and say model entity.
entity.
picture and set the value to one it's
default to zero and then I'm simply
transfer uh this time from the current
station which will be station one to station
two so the process says when uh it when
this process is executed search uh the Q
State station 1. contents and with
everything you found with each entity
that you found set the picture to one
and transfer it to station two and
recall that when an entity enter station
two SIM automatically fires the station
2. entered event which then executes
process 2 which in turn ends the
transfer and so if we go back to our
model uh that should achieve uh what we
want now what we haven't done yet is
specified when to execute uh process 3
so I said earlier that this was an
add-on process as of now all we've
created is a standalone process so
before we create the periodic uh
entities that we'll pull uh pull the
entities out let's go ahead and specify
how we do the button so what I want to
do now is create a user defined event so
I'll go to model definitions events and
just click on on the event uh button on
the ribbon and it creates an event
called event one then I'll go back to my
processes and say I want process three
to execute when event one
fires so now we have a the lightning
bolt symbol saying when event one uh
fires or when event one occurs execute
this process go back to our facility to
the uh animation uh ribbon and we have a
button here so we'll just place the
button and then in the property we'll
specify event one so our button say or
our button logic says when you press the
button fire event one when event one is
fired then we should remove everything
from uh station one transfer it to
station two and the transfer will be
ended so we'll let it run for a little
while as we build up a couple of
entities in station one when I click the
button note exactly what we uh thought
was going to happen happen we remove all
the entities from station one they
change color because we've increased the
uh symbol index and placed in station
two so now that we can remove entities
from station one and put place them in
station two uh basically on command
using the button we want to generate the
periodic um pull so we're going to
create another source and I'll just go
directly uh into a sync and put a path
here and so I want this uh to happen on
a fixed period so I'll go to the
properties and say let's make the time
offset one and the uh time interval also
one and so every one minute starting at
minute one we're going to um um pull all
the entities out and so I'm going to do
that using an add-on process to the uh
output node and when an entity comes
enters the output node of source 2 I'm
simply going to execute process 3 so in
this case I didn't create a new add-on
process but instead I applied an
existing add-on process and and set the
trigger uh to that uh uh to that
particular um uh process so now when I
run every one minute we're going to
create an entity out of source 2 and so
the net result is that every 1 minute
everything that happens to be in in um
station one will be automatically moved
to station
two and finally to finish our model
we'll put our server so we have a server
here and we'll place a sync for entities
once they complete processing and what
we want to happen is on a second
interval I want to pull entities out of
station two and send them directly to
the server so I will uh put down uh
another source and another sync just as
we did before and the cycle that we want
to use here for this one doesn't really
matter but let's use two and a half
minutes so we'll do the same as we did
with the previous Source we'll set a
time offset to two and A2 and we'll set
a interval time to two and A2 so at the
end of uh at uh Source three what we
want to do is we want to pull everything
out of
the station two and send it to server
one so at this point we don't have a
process to do that so we'll go into the
processes and create a fourth process
and process 4 is going to look almost
exactly like uh process 3 so I'm just
going to highlight uh and use copy and
paste and paste that um the search and
instead of searching station one I'm
going to search station two I'm going to
assign uh but this time I'm going to to
assign model entity. picture a value of
two and before I forget I need to go
back and do that so I highlight my
entity add a symbol to get to my third
symbol and then we'll make it uh a
different color also so we'll make this
one uh light blue so we go and now our
default entity has three symbols the
green one the red one the blue one and
in process 4 uh we search all of the uh
cont contents of station two we
increment the picture and then we do a
transfer this time we're transferring
from a station current station to a node
and the node we want to transfer is the
input at server one so instead of going
Station to Station which we did in
process three we'll go station to input
at server one uh for process 4 then we
go back and the output for Source three
we will have an add-on process trigger
saying uh assign to process
4 and so now uh every uh entities arrive
randomly every one minute we should take
all of the entities from station two put
them in St I'm sorry station one and put
them in station two every two and a half
minutes everything should go from
station two uh to server one and so
let's um see if that's in fact what
happens so we grabbed everything for
station two and now everything goes from
station two to the
server and so we've effectively
implemented uh the model that uh we
specified in the beginning again this
model doesn't really do anything there's
no I haven't come up with a context for
it uh instead we wanted to just
demonstrate the use of simio stations
continue our exploration of add-on
processes and it turns out that in the
general modeling context this ability to
store in detached cues and ex ract or
pull from those cues sort of on demand
when when uh conditions in the model
warranted turns out to be quite powerful
Click on any text or timestamp to jump to that moment in the video
Share:
Most transcripts ready in under 5 seconds
One-Click Copy125+ LanguagesSearch ContentJump to Timestamps
Paste YouTube URL
Enter any YouTube video link to get the full transcript
Transcript Extraction Form
Most transcripts ready in under 5 seconds
Get Our Chrome Extension
Get transcripts instantly without leaving YouTube. Install our Chrome extension for one-click access to any video's transcript directly on the watch page.