this example shows a generic AGV control based on the free moving AGV (new in version 15)
create a trace file for each MU, see user defined Attribut method: onLocationChanged
you can use the statistics of the global variable e.g. to visualize the distribution of a attribute
integrate (machining) costs into the model
this example uses poses, ask for a training
this robot is made from a Station. All movements are done with poses.
how to use joints and poses to model doors at a machine
show the worker utilization with the color of their shirts (update)
see the observer control of the station; a graphic will be shown during operation
use the automatic routing of the MUs for control a work-sequence of the PickAndPlace robot
in the first step an interim product is created, in a second step the final product (see method)
create a pull control using a sensor control and observer in a tank
load and unload trucks (silo trucks, tanker)
control entrance and exit of the tank, so that it is possible to collect slowly fluids and pump out it quickly
fill and empty tanks in a sequence
the PickAndPlace robot assembles parts directly from a store
use the broker import request control and bill of process (BOP) to control the sequence of the worker
add a new graphic group to the worker, add a new graphic to the graphic group and show this graphic group while the worker is sitting
the worker loads parts from a pallet that is located on a line; I use a worker, that is not mediated by the broker, see entrance controls of the workplaces
how to create randomly the exact number of a sequence of parts
have a look into the exit control of the source
the worker processes one part from the start until the end of the process; variant using transporter instead of workers
worker only load and unload machines, but not staying at the machines during processing (except rework); based on transporter and tracks
sometimes I need worker that work like a transporter; this transporter has the walking animation of the worker (see worker method: animation, onCurrSpeedChanged)
use an observer control for location of the worker to record the activities of the worker
the worker is set to automaticMediation=false; for programming look into the entrance controls of the workplaces
set alternative services in the importer
set dynamically priorities for the requests by the importers; broker control
load the part to the machine and start after one minute the processing; this example uses the new function startProcessing; see entrance control of the workplaces
one piece flow production, see method workercontrol
if you connect a store with the assembly station and activate the transport importer, the assembly station will pull all necessary parts from the store (without programming)
the worker loads from a buffer three parts and distributes them to three different machines; see exit control of the workplace of the buffer
in this example I changed the WMS (warehouse management system) of the HBW of Plant Simulation into a data base WMS; all methods with the green icon are changed
load and unload a storage area using the multi portal crane; the store method is the exit control of the station
calculate the distance to the nearest worker and call him for carry the part
(see exit control of the stations)
this example uses the Plant Simulation GantryLoader class, H-type loader, subsequent processing; you find the programming in the method gantryProgram
this example uses the Plant Simulation gantry loader library; parallel processing, I loader, single gripper; for programming see exit control of source and exit control of stations
model assembly processes where the parts are located on a shifting conveyor; the model is based on transporters that create its own tracks dynamically
portal loader with two grippers, version 14.1, the orientation of transporter on transporter changed
model robots using transporter and track; version without parameterizing
training example; robot cell using Stations as robots (rotating icons), fully parameterized
if you are interested in, ask for a training
the worker is set to automaticMediation=false; the sequence is programmed using the command goTo and entrance controls in the workplaces
PickAndPlace robot picks and places MUs at any position of a conveyor; the configuration is done using drag and drop
loading a Part into a Container on a Conveyor using the target control and setDestination
model assembly processes with PickAndPlace robots; this example uses a cycle control (exit control of the sources) and the exit strategy MU-attribute (attribute previousLocation)
how to model a chain conveyor using dynamically created and deleted transporters
user defined turn table based on transporter and track, look into the conveyor objects for programming
how to load and unload machines with the multi portal crane
send the transporter to a sequence of destinations using a list as entry for the field destination
this is a simple example for developing a gantry loader control (I-loader) using the attribute targetPosition
shows different possibilities to stop a transporter and the behavior of the transporters with speed-time-diagrams
check out the LayoutOptimizer, the LayoutOptimizer changes the positions of blocks to reduce the transport efforts (using genetic algorithm)
a worker loads parts from a box and moves the box at the end itself; have a look in the exit control of the station and the entrance control of the workplace
use the GA (genetic algorithm)for optimize the routing of a transporter; the GA changes the routing list and try to find the shortest way, you need to delete and add the drain dynamically (see init and entrance control of the drain)
this model contains the Kanban cards as MUs, look for the programming in the exit controls of the source and the Kanban buffers; in this way you can realize the traditional way of optimizing of the WIP by reducing the number of KANBAN cards
This is a training example!
To avoid collisions the cranes block a certain area. You can find the controls in the craneTrack.
how to model a crusher using the fluids library, based on a fluid source and a fluid drain
use a source and a exit control to create filled containers (see exit control of the source)
see exit control of the worker; the operator unloads a line, loads a machine, waits until the processing is finished and unloads the machine
This is a training example (two days)! You can find the programming of the robot in the track of the robot, the programming of the worker in the entrance control of the workplace. The robot is based on transporter and track. The control is completely parameterized.
Ask for a training!
use SimTalk to make basic settings in the material flow elements
a worker unloads a line into a pallet, another worker transports the filled pallet
two cross sliding cars on one track, to avoid collisions, the cross sliding car waits on a pre-position until the other CSC changes its direction
- move idle cranes
- check the jobs of the neighbor cranes before starting
a new job
--> see portal.runJob
create valid Plant Simulation object names using the method regex_replace (and some other methods)
a worker loads machines depend on their availability, see exit control of M
a portal crane transports parts depend on a work plan (table BoP); see for programming entrance and exit controls of the stations and methods in the portal track
a portal crane transports charges of material from one tank to the next based on recipes (e.g. e-coating); in each step of the recipe multiple destinations are possible. Look for controls in the tanks and the portal track.
a production process in two steps; in the first step a interim product is created; the interim product will be filled again in the mixer together with other materials; the materials in the mixer are set dynamically
finding a gap between MUs for moving another MU to a track; in this example I use the contents list to check the position of all MUs on the track
this example shows a accumulating pallet conveyor, loaded and unloaded by PickAndPlace robots
see the attributes in the csc_track for initialization; the Special Job is programmed in the method doJob
a turntable with two lanes (lines) to connect two lines; it based on a turning transporter, the lanes are transporter with loadbay type line
this example shows a H type gantry loader (gantry loader with two grippers); the main programming is in the gantry track, works also very well in 3D
3 PickAndPlace robots assembly parts on a turntable (dialplate) with 4 places
controls: sensor control of dialplate, exit controls of robots, target control of the handling robot...
a simple example for using the fluid library
trigger a failure depend on the number of parts processed after the last maintenance (see entrance control and failure control of SingleProc1)
example for selfAnimation (animation of the object itself)
modeled as transporter, that turns (objectAngle)
this example shows how to create a pull control using the sensors of the tank object
loading boxes with bulk material using the portioner;
have a look into the entrance and exit control of the object CP
the cross sliding car is turning while moving to the next position to bring the part into the right orientation
a gantry without modeling the z-axis, see method control; the control is senor based, not parameterized
several worker follow each other in a "U" shape production system; realized using transporter and tracks
this example shows one version of how to deal with chaku chaku operated by a PickAndPlace robot
see sensor control of the track
record dwell times only for a limited period per day
setup at part change and for long running parts additional with a fixed interval; the setup behavior MU-attribute is used
make your own exit strategy, check the state of the successors and decide where to move the MU
If the first worker has finished his
process, he works together with
the second worker in the process in
--> see entrance control WorkerPool and exit control SingleProc
the worker waits until the buffer is full and transports 100 parts at once. I use a combination of exit and observer control in the buffer object.
at the end of the processing a work inspector has to work together with the worker for awhile (I split the process and change the service list of the importer, see entrance and exit control of the SingleProc)
record jobs per hour and calculate the maximum jobs per hour
load and unload with different grippers,
see inside in, processing and PickAndPlace for programming
first load a container as gripper, the control the process with the exit control of the pick and place
a template for you own rack service unit for a high bay warehouse (HBW), see rbg_do_job for basic programming
a worker loads and unload directly an assembly station; see for programming into the workstations
this is a SimTalk training example; how to model single part flow productions; the worker is modeled with transporter
this is a SimTalk training example; how to program the control for job shop production systems; bin transport; WIP control
this is a SimTalk training example; how to program the control for job shop production system
this is a training example; how to program a KANBAN control with KANBAN-cards; how to control the WIP using the number of KANBAN cards
SimTalk training example; how to balance a line based on work contents, cell assignments and assembly graph
this is a training example; modeling AGVs for supply an assembly line
look in the collision control of the transporter for the programming
visualize the progress of processing as bar using the display panel (see user defined attributes of SingleProc)
the principle of a turntable with two places (e.g. for machine feeding) based on track and transporter. For control look in the sensorcontrol of the track and the exit control of the SingleProc.
configuration of display panels for showing part per hour; one for the drain using statThroughputPerHour, one for a ParallelProc using a method
a tracking function based on an observer for the attribute location; have a look in the MU part in the class-library
creates from a string a valid Plant Simulation object name (replace special characters, do not start with a number, check if the name already exists and changes it if necessary...)
strReplace replaces one character in a string by another and Returns the changed string
see sensorControl of the object track;
the robot is based on a transporter/ track combination
distribute fluids using dynamically created connectors
mediate the worker with the lowest utilization; broker importer request control
how to identify the length of the warmup period
transporter automatic routing using the option "only if destination" of the sensors
set random process times using a formula
collect and pump up fluids in a tank
basic example for the Fluids library
a very basic model of a hospital/ emergency department
represent a number of MUs as area
using the distance control to keep a minimum distance between transporters
control the source, so that it moves only parts, if a worker is available
simulate the behavior of a can buffer; using a observer for the attribute collided of the MUs to create lateral movements
calculate the average and maximum waiting time of MUs in a buffer
change the 3D icon of the MU after processing
simplified model of a grain mill using the fluids library
after a break the broker mediates the worker anew, sometimes it is necessary to send the worker back to his unfinished work (broker importer request control)
create a cyclically feeding of two lines using a FlowControl
one piece flow production, the worker is connected with one part and realizes all processing steps of this part, you find the programming in the importer request control of the broker. The connection to the part is released in the entrance control of the WorkerPool.
write a logfile for the jobs of the worker; look in the observer control of the worker
simulate energy consumption with variable power input during the processing time (example: chamber oven)
simulate the energy consumption of e.g. lighting, look in the observer of the ShiftCalendar
change the color of the shirts of the worker depend on his utilization
modeling the energy consumption of a MultiPortalCrane object using a dummy object and observers for the trolley, portal and portalcrane (attribute resWorkíng)
how to realize different number of workers per shift, the programming you find in the ShiftCalendar object, user defined attributes, observer control for unplanned
"solid" MUs are transformed into fluid
Load and unload tanks using tanker or silo trucks
the separator splits one flow into two different flows
A PickAndPlace loads two parts and distributes the parts to two machines.
model bulk transports by merging and splitting MUs, here using the vector icon of the MUs
if you want to calculate with dates from Plant Simulation in databases, you need a timestamp. getTimestamp converts dateTime to real, timestamp_to_datetime creates from a timestamp (real) a datetime value
create dynamically parts for the assembly operation, if you need them
Genetic algorithm example (puffer dimensioning with constraint)
Genetic algorithm example (pearl chain optimization)
a sample for multi level experimental design
create a model using SimTalk based on a data set
use the profiler to improve the runtime behavior of your models
check the different behavior of waituntil and stopuntil
a split method, there is a split-method in Plant Simulation 11TR3
fail other objects, if one object is failed (like the LockoutZone)
check the different behavior of the entrance control
use the constructor for enter objects into a object list, when you insert them into a frame, use the destructor for delete them from the list, if you delete the object in the frame
use recursive programming for reading elements from sub-frames
use an observer for count the parts locating on a line
Change the creation table of the WorkerPool dynamically to make experiments with different numbers of workers
select the tank to load and unload tanks in a sequence
Use the PickAndPlace for load and unload containers, look in the ExitControl of the SingleProc and the PickAndPlace
process batches in one LHS and one RHS operation on the same line
create a sequence with a sorter and the sort option method
use the driving control of the transporter and the forward-destination lists of the tracks to look for the right successor (look in the driving-control of the transporter)
this example uses SQLite to model a warehouse control
if you use big layouts in 3D, it happens very easily, that you move this by mistake, this is a solution I used in several projects to avoid this, look in the observer of the layout-object
look in the exit-control of RC1, this is part of a smart-worker concept, I use the corner-points of the connector to create the track of the transporter
move parts with insert from one line to another into a gap (look in the sensor-control)
procurement, reorder point method, here: special case - multiple container system
an example for procurement and material disposition, in this case material will be ordered in fixed intervals and constant quantities
look in the sensor-control of the line for the programming to change the color of MUs dynamically.
this model contains a warehouse with procurement, reorder point method, warehouse key figures and experiments for the economic order size
this example shows the modeling of a batch-processing. Look in the entrance control of the dryers
the control of the robot in this example is partial parameterized (SensorTable) look in the SensorControl of the track.
this example shows the modeling of a handling robot using track and transporter; in this variant the control is programmed complete without parameterizing ("Quick and Dirty"), look in the sensorControl of the track
this example shows how to use the setting rotate user-defined with sensor. Look in the sensorControl of the turntable.
Assembly using the PickAndPlace robot and with the help of the exit strategy cycle sequence. The main-part triggers the transfer of the add-on parts (exit control).
distribute parts from one line to three using the exit strategy cyclic sequence of the PickAndPlace
sort MUs using the PickAndPlace-robot (exit behavior)
Check out the speed of simulations controlled by in memory databases. This is the example from my presentation at the Siemens world user conference in May 2014.
this example shows, how to load and unload complete trains
Kanban production in sequence cyclical
move batches from one buffer to another
(exit control of the first buffer)
this example shows the routing of the transporter using forward destination lists
look in the transporter, method drive(distance); a length-based control, the example shows a simple portal-loader control
toolchange as part of the failure-time based on part depend tool consumption
look in the entrance control of the drain
calculate a perl-chain based on a given distribution and restrictions (distances between variants). The Pearl-chain is produced by the source.
request the best worker for the job based on a skill-matrix
state-visualization using a simple object and changing his colors in the 3D graphic
how to use the ExperimentManager
change random values using SimTalk (in the example: uniform distributed processing time)
a small example for using the DataFit for examine random distributions
this example shows how to program a simple CONWIP-control
this example shows a model of a bin kanban system
a simple job-shop simulation with work-plans, resource management and production control
calculate the average buffer stock using a TimeSequence and the method meanValue
this example shows how to model a assembly of parts carried by skids
decoupling of cycle-sections with buffers
this example shows how to set different ProcTimes for different places in a ParallelProc
create a ready (finished) message using user defined attributes; this example shows also the modeling of a simple worker using the SingleProc
a simple animation using currIconNo
this example shows how to change the icon-size dynamically and how to create animation points
how to create delivery calls; this example demonstrates the use of nested tables
This example shows how to use the PickAndPlace-Robot for feeding an assembly-station (using the target-control)
Load the transporter using the AssemblyStation und unload the transporter using the DismantleStation
This example shows the use of the transferstation for loading and unloading of a transporter
modeling a Power&Free conveyor using a chain from transporters
The different tasks of the forklift are programmed in this example in the sensor controls of the tracks.
The worker first loads a trolley, then moves the trolley to the next station
This example shows how to model a cutting process direct on a conveyor. The part is replaced by smaller parts.
use acceleration and deceleration for the transporter; decelerate until the speed is zero, wait 5 seconds, accelerate to the former speed
This sample shows how to load a conveyor using worker...
A worker puts parts into a machine and works awhile on the machine. After this the machine finish his cycle in automatic mode. At the end of the cycle the worker unloads the machine. I use two sub-cycle for modeling this behavior (see user defined attributes of the class M).
Modeling of quay-cranes based on transporter with load bay type track, this example shows only the loading of vessels with container
modeling Power and Free conveyor using track and transporter, look in the library for special elements
worker unloads parts from a conveyor while the conveyor is moving (the worker is based on the Plant Simulation transporter)
the worker has to provide different processes on one SingleProc
Modeling a single-stage E-Kanban system.
a sample using the Plant Simulation Kanban Library
a simple pull-control using the generator and one method
This example shows how to determine the duration of an experiment using the system time.
A transporter drives and stops by schedule.
This example shows the use of the DismantleStation for modeling split-up operations.
The worker changes his speed depend on the occupation
this example shows how to produce/ move parts according to a time-table, schedule
worker loads and unloads a transporter, moves on the transporter and drives to the next station
using dEmp distribution for control a random behavior of the worker (exit behavoir: carry part away)
a solution for overtaking on a (single lane) track.
Cycletime calculation on the base of an output per week and the workingtime of a Shiftcalendar-object.
loading of machines is prevented, if the remaining time until pause is too short for processing the parts
loading of machines depend on the remaining working times of the parts on the machines
use of resWorking for preferred unloading of a station
shows the use of a Trigger-object for control of the MU creation of a Source
this example shows the use of the method calculateWorkingDuration of the object Shiftcalendar
shows the use of ADO; create databases, instert tables, data, find and display data, change data
This example shows how to read data from Excel and write data in Excel using the ActiveX interface.
read data from Plant Simulation, send data to Plant Simulation, send commands, react to events from Plant Simulation
read data from Plant Simulation using the COM interface
use of PickAndPlace robot for loading and unloading of machines (single gripper)
load and unload machines unsing PickAndPlace (double gripper)
writes data into a TableFile using drag and drop
use empirical distributions for ProcTime
shows the use of the ErrorHandler in SimTalk (method move --> userdefined attributes)
shows the battery behavoir of the transporter (consumption, charging) and battery statistics
simulation of in-line-buffer, look in the track, user defined attributes
Robot simulation with track and transporter; I use the effect of turning of a transporter in curves to model a robot, look in the user defined attributes of the track for the control
simple warehouse-simulation using table and methods for handling the necessary informations
Assembly with PickAndPlace, I use the exit-behavior cyclical sequence of the PickAndPlace for feeding the AssemblyStations with parts in the right order. Exit-controls are in the sorce_mainpart and B_mainpart.
look at user-defined attributes - times_table + init, another way to insert the times into the PickAndPlace-robot
A gantry loader loads and unloads 3 machines, methods contain the complete control.
Create a cross sliding car using a car with load bay type Line.
Use of the CrossSlidingCar (library element)
Calculates the output per shift (entrance-control drain)
Create sensors and entries in a sensorlist by drag and drop (method onDrop)
Warehouse control using SQLite
a simple milkrun-simulation
One transporter loads 3 machines depend on the workplans of the parts.
Transferline modeling based on a line.
For standard-licence user a trigger based on the tablefile. Each part triggers his own power-consumption-profile for the operation on the machines.
A TimeSequence based on a TableFile (e.g. for users with standard licence)
A generator based on a SingleProc (e.g. for user of the standard licence)
register parts, destroy them, create them anew, if you need them
worker-modeling using transporter and track
a table with destinations helps to find the right successor (exit-control track)
Before the start of the assembly I copy the BOM of the main part into the assembly list of the assembly station.
use the collision-control for hitching the wagons of a train
Use collision-control for hitching the wagons, look in the sensor-control of the track for load/unload programming.
how to use the attribute StatusWithIcons (icon editor)
One PickAndPlace-Robot loads and unloads 4 machines. I use the exit-behavior and exit-controls for control.
how to work with the TransferStation for loading and unloading transporters
This example demonstrates the use of the StorageCrane for loading and unloading of several machines.
This example shows, how to use a MultiPortalCrane for load and unload of several machines.
This example shows how to change the store-strategy of the StorageCrane and how to create stock-statistics (keywords: crane, store).
Use of the StorageCrane for loading and unloading of transporter.
It is quite difficult to calculate an overall system availability if you use buffers. This example shows, how it works with simulation.
- calculate with simulation sequence gaps, register sequence violations and calculate KPI sequence stability
A worker loads 3 parts and loads with them 3 different machines.
A worker takes two parts from two containers, passing them to two places at an assembly station, removes the finished part and puts it into a container.
In this example I use the entry-control of the workplace-object to load and unload stations.
Depend on the name of the failure-profile the control requests different kind of workers for removing the failures.
This example shows the extension of the store-object (store_ext), register parts, request parts, stock statistics.
- calculate the number of available workers, change dynamically the number of requested workers and set a new ProcTime
This example shows effects of priorities during brokering of a worker.
This example shows the use of an In-Memory-Database. The zip file also contains a database file, so you can compare the performance difference.
Assembly in connection with part collection
A simple Experiment Manager.
A special source(based on a buffer). It creates parts when you need it.
Using of z_uniform for modeling a machine based scrap rate
demonstrates the function automatic routing of plant simulation, change the lengths of the tracks and look what happens
track and transporter (very simple)
use TimeSequence for recording of statistical data
using the attribute name for splitting the material flow
different way to stop and start again a transporter
display the status of objects by changing icons
This example will show some typical statistical analysis
produce different MUs with one source
set up working times, pauses, unplanned times
using sensors on line objects
assembly and dismantling without objects AssemblyStation and DisamantlingStation
display material flow with Sankey Diagrams
using resources for simulate repair works
worker carries parts away
transporter control using QueueFile
calculation with userdefined attributes
simulation of a portal loader using a transporter and track
use the diagram object as plotter
use of PickAndPlace object
set different processing times for the places of the ParallelProc in Plant Simulation
simulate a machine with multi part processing (10 parts at the same time)
use changes of attributes and variables to start methods
use standard methods in SimTalk
failures in Plant Simulation 9
working with subframes; Methods Time Measurement
calculation in TableFiles
handling TableFiles, dynamic calculation of set up times
loading containers using SimTalk
conveyor belt simulation (very simple)
Plant Simulation object Line
kanban production (not the Plant Simulation kanban functions), easy to expand
FlowControl entrance sequence CYCLIC SEQUENCE; Just in Sequence simulation without programming SimTalk
shows the simulation of a pic and place robot using the objects transporter and track
outward stock movement using the generator object
use of the FlowControl exit strategy "method"
use the FlowControl for branch the material flow
use SimTalk for control a transporter
using of the Display object to visualize dynamically values
setting of the DisamantlingStation to enshure, that the pallet leaves the place after the parts
using the DismantleStation of Plant Simulation
DDE functions of Plant Simulation
shows the usage if the userface elements of Plant Simulation
cycle object of Plant Simulation
example for simulate a simple crossroads with traffic lights, shows also working with the two lane track
changing of the length attribute to simulate a belt production
using Plant Simulation to simulate a production "out of a box"
using the AttributeExplorer for setting many values at once
using the assembly station of Plant Simulation